./PaxHeaders.14770/libprelude-5.2.00000644000000000000000000000011013726163666014740 xustar000000000000000024 mtime=1599662006.641 24 atime=1599662006.646 24 ctime=1599662006.641 libprelude-5.2.0/0000755000000000000000000000000013726163666013663 5ustar00rootroot00000000000000libprelude-5.2.0/PaxHeaders.14770/bindings0000644000000000000000000000011013726163660016372 xustar000000000000000024 mtime=1599662000.468 24 atime=1599662006.646 24 ctime=1599662000.468 libprelude-5.2.0/bindings/0000755000000000000000000000000013726163660015452 5ustar00rootroot00000000000000libprelude-5.2.0/bindings/PaxHeaders.14770/perl0000644000000000000000000000011013726163660017334 xustar000000000000000024 mtime=1599662000.234 24 atime=1599662006.646 24 ctime=1599662000.234 libprelude-5.2.0/bindings/perl/0000755000000000000000000000000013726163660016414 5ustar00rootroot00000000000000libprelude-5.2.0/bindings/perl/PaxHeaders.14770/Makefile.PL.in0000644000000000000000000000011013726163410021761 xustar000000000000000024 mtime=1599661832.497 24 atime=1599661832.724 24 ctime=1599661998.512 libprelude-5.2.0/bindings/perl/Makefile.PL.in0000644000000000000000000000471213726163410020770 0ustar00rootroot00000000000000# # Copyright (C) 2005-2020 CS GROUP - France. All Rights Reserved. # Author: Yoann Vandoorselaere # # This file is part of the Prelude library. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser 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. use Config; use ExtUtils::MakeMaker; use ExtUtils::MM_Unix; use File::Copy; use Cwd "abs_path"; my %attributs = (NAME => 'Prelude', INC => '-I@top_builddir@ -I@top_builddir@/src/include -I@top_srcdir@/src/include -I@top_builddir@/src/libprelude-error -I@top_srcdir@/bindings/c++/include', LIBS => ["-L@top_builddir@/src/.libs -lprelude -L@top_builddir@/bindings/c++/.libs -lpreludecpp", "-L$ENV{LIBDIR} -lprelude @LIBPRELUDE_LIBS@ @LIBADD_DL@ @LTLIBTHREAD@" ], LDDLFLAGS => "-L@top_builddir@/src/.libs $Config{lddlflags} @LDFLAGS@,-rpath"); if ( abs_path("@top_srcdir@") ne abs_path("@top_builddir@") ) { foreach my $filename ( qw/Prelude.cxx Prelude.pm/ ) { my $src = "@top_srcdir@/bindings/perl/$filename"; my $dst = "@top_builddir@/bindings/perl/$filename"; copy($src, $dst) if ( ! -e $dst ); } $attributs{"clean"} = {FILES => join(" ", map { "@top_builddir@/bindings/perl/$_" } qw/Prelude.cxx Prelude.pm Makefile/)}; } if ( -w $Config{"sitelib"} ) { $attributs{"INSTALLDIRS"} = "site"; } else { $attributs{"PREFIX"} = "@prefix@"; } WriteMakefile(%attributs); my($atime, $mtime) = (stat "Makefile.PL")[8,9]; utime($atime + 1, $mtime + 1, "Makefile"); package MY; sub install { my $str = shift->SUPER::install(@_); my @files = ((map { "\$(INSTALLSITEARCH)/$_" } qw/perllocal.pod Prelude.pm/), (map { "\$(INSTALLSITEARCH)/auto/Prelude/$_" } qw/Prelude.bs Prelude.so .packlist/), '$(INSTALLMAN3DIR)/Prelude.$(MAN3EXT)'); $str =~ s/(uninstall_from_sitedirs.+)\n.+\n/"$1\n\t\$(RM_F) " . join(" ", @files) . "\n"/e; return $str; } libprelude-5.2.0/bindings/perl/PaxHeaders.14770/libpreludecpp-perl.i0000644000000000000000000000010713726163410023354 xustar000000000000000024 mtime=1599661832.501 24 atime=1599661832.728 23 ctime=1599662000.23 libprelude-5.2.0/bindings/perl/libpreludecpp-perl.i0000644000000000000000000001465713726163410022366 0ustar00rootroot00000000000000/***** * * Copyright (C) 2005-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ %begin %{ #include "config.h" #include "../../libmissing/glthread/thread.h" %} /* * Conversion not allowed */ %ignore *::operator =; %ignore *::operator int() const; %ignore *::operator long() const; %ignore *::operator int32_t() const; %ignore *::operator uint32_t() const; %ignore *::operator int64_t() const; %ignore *::operator uint64_t() const; %ignore *::operator float() const; %ignore *::operator double() const; %ignore *::operator Prelude::IDMEFTime() const; %ignore *::operator const std::string() const; %ignore *::operator const char *() const; %header %{ #define TARGET_LANGUAGE_SELF SV * #define TARGET_LANGUAGE_OUTPUT_TYPE SV ** %} %fragment("IDMEFValueList_to_SWIG", "header") { int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret); SV *IDMEFValueList_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &value, void *extra) { int j = 0, ret; std::vector result = value; std::vector::const_iterator i; AV *myav; SV *svret, **svs = new SV*[result.size()]; for ( i = result.begin(); i != result.end(); i++ ) { if ( (*i).isNull() ) { SvREFCNT_inc(& PL_sv_undef); svs[j++] = &PL_sv_undef; } else { ret = IDMEFValue_to_SWIG(self, *i, NULL, &svs[j++]); if ( ret < 0 ) return NULL; } } myav = av_make(result.size(), svs); delete[] svs; svret = newRV_noinc((SV*) myav); sv_2mortal(svret); return svret; } } /* tell squid not to cast void * value */ %typemap(in) void *nocast_p { $1 = $input; } %fragment("TransitionFunc", "header") { static SV *__prelude_log_func; static gl_thread_t __initial_thread; static void _cb_perl_log(int level, const char *str) { if ( (gl_thread_t) gl_thread_self() != __initial_thread ) return; dSP; ENTER; SAVETMPS; PUSHMARK(SP); XPUSHs(SWIG_From_int(level)); XPUSHs(SWIG_FromCharPtr(str)); PUTBACK; perl_call_sv(__prelude_log_func, G_VOID); FREETMPS; LEAVE; } static int _cb_perl_write(prelude_msgbuf_t *fd, prelude_msg_t *msg) { ssize_t ret; PerlIO *io = (PerlIO *) prelude_msgbuf_get_data(fd); ret = PerlIO_write(io, (const char *) prelude_msg_get_message_data(msg), prelude_msg_get_len(msg)); if ( ret != prelude_msg_get_len(msg) ) return prelude_error_from_errno(errno); prelude_msg_recycle(msg); return 0; } static ssize_t _cb_perl_read(prelude_io_t *fd, void *buf, size_t size) { int ret; PerlIO *io = (PerlIO *) prelude_io_get_fdptr(fd); ret = PerlIO_read(io, buf, size); if ( ret < 0 ) ret = prelude_error_from_errno(errno); else if ( ret == 0 ) ret = prelude_error(PRELUDE_ERROR_EOF); return ret; } }; %typemap(in, fragment="TransitionFunc") void (*log_cb)(int level, const char *log) { if ( __prelude_log_func ) SvREFCNT_dec(__prelude_log_func); __prelude_log_func = $input; SvREFCNT_inc($input); $1 = _cb_perl_log; }; %exception read(void *nocast_p) { try { $action } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) result = 0; else SWIG_exception_fail(SWIG_RuntimeError, e.what()); } } %extend Prelude::IDMEF { void write(void *nocast_p) { PerlIO *io = IoIFP(sv_2io((SV *) nocast_p)); self->_genericWrite(_cb_perl_write, io); } int read(void *nocast_p) { PerlIO *io = IoIFP(sv_2io((SV *) nocast_p)); self->_genericRead(_cb_perl_read, io); return 1; } } %typemap(out, fragment="IDMEFValue_to_SWIG") Prelude::IDMEFValue { int ret; if ( $1.isNull() ) { SvREFCNT_inc (& PL_sv_undef); $result = &PL_sv_undef; } else { SV *mysv; ret = IDMEFValue_to_SWIG(NULL, $1, NULL, &mysv); if ( ret < 0 ) { std::stringstream s; s << "IDMEFValue typemap does not handle value of type '" << idmef_value_type_to_string((idmef_value_type_id_t) $1.getType()) << "'"; SWIG_exception_fail(SWIG_ValueError, s.str().c_str()); } $result = mysv; } argvi++; }; %init { STRLEN len; char **argv; int j, argc = 1, ret; AV *pargv = get_av("ARGV", FALSE); __initial_thread = (gl_thread_t) gl_thread_self(); ret = av_len(pargv); if ( ret >= 0 ) argc += ret + 1; if ( argc + 1 < 0 ) throw PreludeError("Invalid argc length"); argv = (char **) malloc((argc + 1) * sizeof(char *)); if ( ! argv ) throw PreludeError("Allocation failure"); argv[0] = SvPV(get_sv("0", FALSE), len); for ( j = 0; j < ret + 1; j++ ) argv[j + 1] = SvPV(*av_fetch(pargv, j, FALSE), len); argv[j + 1] = NULL; ret = prelude_init(&argc, argv); if ( ret < 0 ) { free(argv); throw PreludeError(ret); } free(argv); } libprelude-5.2.0/bindings/perl/PaxHeaders.14770/Prelude.cxx0000644000000000000000000000011013726163410021526 xustar000000000000000024 mtime=1599661832.501 24 atime=1599661832.724 24 ctime=1599662000.232 libprelude-5.2.0/bindings/perl/Prelude.cxx0000644000000000000000000211756613726163410020553 0ustar00rootroot00000000000000/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 4.0.1 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ #include "config.h" #include "../../libmissing/glthread/thread.h" #ifndef SWIGPERL #define SWIGPERL #endif #define SWIG_CASTRANK_MODE #ifdef __cplusplus /* SwigValueWrapper is described in swig.swg */ template class SwigValueWrapper { struct SwigMovePointer { T *ptr; SwigMovePointer(T *p) : ptr(p) { } ~SwigMovePointer() { delete ptr; } SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } } pointer; SwigValueWrapper& operator=(const SwigValueWrapper& rhs); SwigValueWrapper(const SwigValueWrapper& rhs); public: SwigValueWrapper() : pointer(0) { } SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; } operator T&() const { return *pointer.ptr; } T *operator&() { return pointer.ptr; } }; template T SwigValueInit() { return T(); } #endif /* ----------------------------------------------------------------------------- * This section contains generic SWIG labels for method/variable * declarations/attributes, and other compiler dependent labels. * ----------------------------------------------------------------------------- */ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) # define SWIGTEMPLATEDISAMBIGUATOR template # elif defined(__HP_aCC) /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ # define SWIGTEMPLATEDISAMBIGUATOR template # else # define SWIGTEMPLATEDISAMBIGUATOR # endif #endif /* inline attribute */ #ifndef SWIGINLINE # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) # define SWIGINLINE inline # else # define SWIGINLINE # endif #endif /* attribute recognised by some compilers to avoid 'unused' warnings */ #ifndef SWIGUNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif # elif defined(__ICC) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif #endif #ifndef SWIG_MSC_UNSUPPRESS_4505 # if defined(_MSC_VER) # pragma warning(disable : 4505) /* unreferenced local function has been removed */ # endif #endif #ifndef SWIGUNUSEDPARM # ifdef __cplusplus # define SWIGUNUSEDPARM(p) # else # define SWIGUNUSEDPARM(p) p SWIGUNUSED # endif #endif /* internal SWIG method */ #ifndef SWIGINTERN # define SWIGINTERN static SWIGUNUSED #endif /* internal inline SWIG method */ #ifndef SWIGINTERNINLINE # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif /* exporting methods */ #if defined(__GNUC__) # if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) # ifndef GCC_HASCLASSVISIBILITY # define GCC_HASCLASSVISIBILITY # endif # endif #endif #ifndef SWIGEXPORT # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(STATIC_LINKED) # define SWIGEXPORT # else # define SWIGEXPORT __declspec(dllexport) # endif # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) # define SWIGEXPORT __attribute__ ((visibility("default"))) # else # define SWIGEXPORT # endif # endif #endif /* calling conventions for Windows */ #ifndef SWIGSTDCALL # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # define SWIGSTDCALL __stdcall # else # define SWIGSTDCALL # endif #endif /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) # define _CRT_SECURE_NO_DEPRECATE #endif /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) # define _SCL_SECURE_NO_DEPRECATE #endif /* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ #if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) # define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 #endif /* Intel's compiler complains if a variable which was never initialised is * cast to void, which is a common idiom which we use to indicate that we * are aware a variable isn't used. So we just silence that warning. * See: https://github.com/swig/swig/issues/192 for more discussion. */ #ifdef __INTEL_COMPILER # pragma warning disable 592 #endif /* ----------------------------------------------------------------------------- * swigrun.swg * * This file contains generic C API SWIG runtime support for pointer * type checking. * ----------------------------------------------------------------------------- */ /* This should only be incremented when either the layout of swig_type_info changes, or for whatever reason, the runtime changes incompatibly */ #define SWIG_RUNTIME_VERSION "4" /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ #ifdef SWIG_TYPE_TABLE # define SWIG_QUOTE_STRING(x) #x # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) #else # define SWIG_TYPE_TABLE_NAME #endif /* You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for creating a static or dynamic library from the SWIG runtime code. In 99.9% of the cases, SWIG just needs to declare them as 'static'. But only do this if strictly necessary, ie, if you have problems with your compiler or suchlike. */ #ifndef SWIGRUNTIME # define SWIGRUNTIME SWIGINTERN #endif #ifndef SWIGRUNTIMEINLINE # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE #endif /* Generic buffer size */ #ifndef SWIG_BUFFER_SIZE # define SWIG_BUFFER_SIZE 1024 #endif /* Flags for pointer conversions */ #define SWIG_POINTER_DISOWN 0x1 #define SWIG_CAST_NEW_MEMORY 0x2 #define SWIG_POINTER_NO_NULL 0x4 /* Flags for new pointer objects */ #define SWIG_POINTER_OWN 0x1 /* Flags/methods for returning states. The SWIG conversion methods, as ConvertPtr, return an integer that tells if the conversion was successful or not. And if not, an error code can be returned (see swigerrors.swg for the codes). Use the following macros/flags to set or process the returning states. In old versions of SWIG, code such as the following was usually written: if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { // success code } else { //fail code } Now you can be more explicit: int res = SWIG_ConvertPtr(obj,vptr,ty.flags); if (SWIG_IsOK(res)) { // success code } else { // fail code } which is the same really, but now you can also do Type *ptr; int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); if (SWIG_IsOK(res)) { // success code if (SWIG_IsNewObj(res) { ... delete *ptr; } else { ... } } else { // fail code } I.e., now SWIG_ConvertPtr can return new objects and you can identify the case and take care of the deallocation. Of course that also requires SWIG_ConvertPtr to return new result values, such as int SWIG_ConvertPtr(obj, ptr,...) { if () { if () { *ptr = ; return SWIG_NEWOBJ; } else { *ptr = ; return SWIG_OLDOBJ; } } else { return SWIG_BADOBJ; } } Of course, returning the plain '0(success)/-1(fail)' still works, but you can be more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the SWIG errors code. Finally, if the SWIG_CASTRANK_MODE is enabled, the result code allows to return the 'cast rank', for example, if you have this int food(double) int fooi(int); and you call food(1) // cast rank '1' (1 -> 1.0) fooi(1) // cast rank '0' just use the SWIG_AddCast()/SWIG_CheckState() */ #define SWIG_OK (0) #define SWIG_ERROR (-1) #define SWIG_IsOK(r) (r >= 0) #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) /* The CastRankLimit says how many bits are used for the cast rank */ #define SWIG_CASTRANKLIMIT (1 << 8) /* The NewMask denotes the object was created (using new/malloc) */ #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) /* The TmpMask is for in/out typemaps that use temporal objects */ #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) /* Simple returning values */ #define SWIG_BADOBJ (SWIG_ERROR) #define SWIG_OLDOBJ (SWIG_OK) #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) /* Check, add and del mask methods */ #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) /* Cast-Rank Mode */ #if defined(SWIG_CASTRANK_MODE) # ifndef SWIG_TypeRank # define SWIG_TypeRank unsigned long # endif # ifndef SWIG_MAXCASTRANK /* Default cast allowed */ # define SWIG_MAXCASTRANK (2) # endif # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) SWIGINTERNINLINE int SWIG_AddCast(int r) { return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; } SWIGINTERNINLINE int SWIG_CheckState(int r) { return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; } #else /* no cast-rank mode */ # define SWIG_AddCast(r) (r) # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) #endif #include #ifdef __cplusplus extern "C" { #endif typedef void *(*swig_converter_func)(void *, int *); typedef struct swig_type_info *(*swig_dycast_func)(void **); /* Structure to store information on one type */ typedef struct swig_type_info { const char *name; /* mangled name of this type */ const char *str; /* human readable name of this type */ swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ struct swig_cast_info *cast; /* linked list of types that can cast into this type */ void *clientdata; /* language specific type data */ int owndata; /* flag if the structure owns the clientdata */ } swig_type_info; /* Structure to store a type and conversion function used for casting */ typedef struct swig_cast_info { swig_type_info *type; /* pointer to type that is equivalent to this type */ swig_converter_func converter; /* function to cast the void pointers */ struct swig_cast_info *next; /* pointer to next cast in linked list */ struct swig_cast_info *prev; /* pointer to the previous cast */ } swig_cast_info; /* Structure used to store module information * Each module generates one structure like this, and the runtime collects * all of these structures and stores them in a circularly linked list.*/ typedef struct swig_module_info { swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ size_t size; /* Number of types in this module */ struct swig_module_info *next; /* Pointer to next element in circularly linked list */ swig_type_info **type_initial; /* Array of initially generated type structures */ swig_cast_info **cast_initial; /* Array of initially generated casting structures */ void *clientdata; /* Language specific module data */ } swig_module_info; /* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class" == "Class", etc. Return 0 when the two name types are equivalent, as in strncmp, but skipping ' '. */ SWIGRUNTIME int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { while ((*f1 == ' ') && (f1 != l1)) ++f1; while ((*f2 == ' ') && (f2 != l2)) ++f2; if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; } return (int)((l1 - f1) - (l2 - f2)); } /* Check type equivalence in a name list like ||... Return 0 if equal, -1 if nb < tb, 1 if nb > tb */ SWIGRUNTIME int SWIG_TypeCmp(const char *nb, const char *tb) { int equiv = 1; const char* te = tb + strlen(tb); const char* ne = nb; while (equiv != 0 && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = SWIG_TypeNameComp(nb, ne, tb, te); if (*ne) ++ne; } return equiv; } /* Check type equivalence in a name list like ||... Return 0 if not equal, 1 if equal */ SWIGRUNTIME int SWIG_TypeEquiv(const char *nb, const char *tb) { return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0; } /* Check the typename */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheck(const char *c, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (strcmp(iter->type->name, c) == 0) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (iter->type == from) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Cast a pointer up an inheritance hierarchy */ SWIGRUNTIMEINLINE void * SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); } /* Dynamic pointer casting. Down an inheritance hierarchy */ SWIGRUNTIME swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { swig_type_info *lastty = ty; if (!ty || !ty->dcast) return ty; while (ty && (ty->dcast)) { ty = (*ty->dcast)(ptr); if (ty) lastty = ty; } return lastty; } /* Return the name associated with this type */ SWIGRUNTIMEINLINE const char * SWIG_TypeName(const swig_type_info *ty) { return ty->name; } /* Return the pretty name associated with this type, that is an unmangled type name in a form presentable to the user. */ SWIGRUNTIME const char * SWIG_TypePrettyName(const swig_type_info *type) { /* The "str" field contains the equivalent pretty names of the type, separated by vertical-bar characters. We choose to print the last name, as it is often (?) the most specific. */ if (!type) return NULL; if (type->str != NULL) { const char *last_name = type->str; const char *s; for (s = type->str; *s; s++) if (*s == '|') last_name = s+1; return last_name; } else return type->name; } /* Set the clientdata field for a type */ SWIGRUNTIME void SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_cast_info *cast = ti->cast; /* if (ti->clientdata == clientdata) return; */ ti->clientdata = clientdata; while (cast) { if (!cast->converter) { swig_type_info *tc = cast->type; if (!tc->clientdata) { SWIG_TypeClientData(tc, clientdata); } } cast = cast->next; } } SWIGRUNTIME void SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { SWIG_TypeClientData(ti, clientdata); ti->owndata = 1; } /* Search for a swig_type_info structure only by mangled name Search is a O(log #types) We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_MangledTypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { swig_module_info *iter = start; do { if (iter->size) { size_t l = 0; size_t r = iter->size - 1; do { /* since l+r >= 0, we can (>> 1) instead (/ 2) */ size_t i = (l + r) >> 1; const char *iname = iter->types[i]->name; if (iname) { int compare = strcmp(name, iname); if (compare == 0) { return iter->types[i]; } else if (compare < 0) { if (i) { r = i - 1; } else { break; } } else if (compare > 0) { l = i + 1; } } else { break; /* should never happen */ } } while (l <= r); } iter = iter->next; } while (iter != end); return 0; } /* Search for a swig_type_info structure for either a mangled name or a human readable name. It first searches the mangled names of the types, which is a O(log #types) If a type is not found it then searches the human readable names, which is O(#types). We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_TypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { /* STEP 1: Search the name field using binary search */ swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); if (ret) { return ret; } else { /* STEP 2: If the type hasn't been found, do a complete search of the str field (the human readable name) */ swig_module_info *iter = start; do { size_t i = 0; for (; i < iter->size; ++i) { if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) return iter->types[i]; } iter = iter->next; } while (iter != end); } /* neither found a match */ return 0; } /* Pack binary data into a string */ SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz) { static const char hex[17] = "0123456789abcdef"; const unsigned char *u = (unsigned char *) ptr; const unsigned char *eu = u + sz; for (; u != eu; ++u) { unsigned char uu = *u; *(c++) = hex[(uu & 0xf0) >> 4]; *(c++) = hex[uu & 0xf]; } return c; } /* Unpack binary data from a string */ SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { unsigned char *u = (unsigned char *) ptr; const unsigned char *eu = u + sz; for (; u != eu; ++u) { char d = *(c++); unsigned char uu; if ((d >= '0') && (d <= '9')) uu = (unsigned char)((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) uu = (unsigned char)((d - ('a'-10)) << 4); else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) uu |= (unsigned char)(d - '0'); else if ((d >= 'a') && (d <= 'f')) uu |= (unsigned char)(d - ('a'-10)); else return (char *) 0; *u = uu; } return c; } /* Pack 'void *' into a string buffer. */ SWIGRUNTIME char * SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { char *r = buff; if ((2*sizeof(void *) + 2) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,&ptr,sizeof(void *)); if (strlen(name) + 1 > (bsz - (r - buff))) return 0; strcpy(r,name); return buff; } SWIGRUNTIME const char * SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { *ptr = (void *) 0; return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sizeof(void *)); } SWIGRUNTIME char * SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { char *r = buff; size_t lname = (name ? strlen(name) : 0); if ((2*sz + 2 + lname) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); if (lname) { strncpy(r,name,lname+1); } else { *r = 0; } return buff; } SWIGRUNTIME const char * SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { memset(ptr,0,sz); return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sz); } #ifdef __cplusplus } #endif /* Errors in SWIG */ #define SWIG_UnknownError -1 #define SWIG_IOError -2 #define SWIG_RuntimeError -3 #define SWIG_IndexError -4 #define SWIG_TypeError -5 #define SWIG_DivisionByZero -6 #define SWIG_OverflowError -7 #define SWIG_SyntaxError -8 #define SWIG_ValueError -9 #define SWIG_SystemError -10 #define SWIG_AttributeError -11 #define SWIG_MemoryError -12 #define SWIG_NullReferenceError -13 #ifdef __cplusplus /* Needed on some windows machines---since MS plays funny games with the header files under C++ */ #include #include extern "C" { #endif #include "EXTERN.h" #include "perl.h" #include "XSUB.h" /* Add in functionality missing in older versions of Perl. Much of this is based on Devel-PPPort on cpan. */ /* Add PERL_REVISION, PERL_VERSION, PERL_SUBVERSION if missing */ #ifndef PERL_REVISION # if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION)) # define PERL_PATCHLEVEL_H_IMPLICIT # include # endif # if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL))) # include # endif # ifndef PERL_REVISION # define PERL_REVISION (5) # define PERL_VERSION PATCHLEVEL # define PERL_SUBVERSION SUBVERSION # endif #endif #if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE) #define PerlIO_exportFILE(fh,fl) (FILE*)(fh) #endif #ifndef SvIOK_UV # define SvIOK_UV(sv) (SvIOK(sv) && (SvUVX(sv) == SvIVX(sv))) #endif #ifndef SvUOK # define SvUOK(sv) SvIOK_UV(sv) #endif #if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5))) # define PL_sv_undef sv_undef # define PL_na na # define PL_errgv errgv # define PL_sv_no sv_no # define PL_sv_yes sv_yes # define PL_markstack_ptr markstack_ptr #endif #ifndef IVSIZE # ifdef LONGSIZE # define IVSIZE LONGSIZE # else # define IVSIZE 4 /* A bold guess, but the best we can make. */ # endif #endif #ifndef INT2PTR # if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE) # define PTRV UV # define INT2PTR(any,d) (any)(d) # else # if PTRSIZE == LONGSIZE # define PTRV unsigned long # else # define PTRV unsigned # endif # define INT2PTR(any,d) (any)(PTRV)(d) # endif # define NUM2PTR(any,d) (any)(PTRV)(d) # define PTR2IV(p) INT2PTR(IV,p) # define PTR2UV(p) INT2PTR(UV,p) # define PTR2NV(p) NUM2PTR(NV,p) # if PTRSIZE == LONGSIZE # define PTR2ul(p) (unsigned long)(p) # else # define PTR2ul(p) INT2PTR(unsigned long,p) # endif #endif /* !INT2PTR */ #ifndef SvPV_nolen # define SvPV_nolen(x) SvPV(x,PL_na) #endif #ifndef get_sv # define get_sv perl_get_sv #endif #ifndef ERRSV # define ERRSV get_sv("@",FALSE) #endif #ifndef pTHX_ #define pTHX_ #endif #include #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * error manipulation * ----------------------------------------------------------------------------- */ SWIGINTERN const char* SWIG_Perl_ErrorType(int code) { switch(code) { case SWIG_MemoryError: return "MemoryError"; case SWIG_IOError: return "IOError"; case SWIG_RuntimeError: return "RuntimeError"; case SWIG_IndexError: return "IndexError"; case SWIG_TypeError: return "TypeError"; case SWIG_DivisionByZero: return "ZeroDivisionError"; case SWIG_OverflowError: return "OverflowError"; case SWIG_SyntaxError: return "SyntaxError"; case SWIG_ValueError: return "ValueError"; case SWIG_SystemError: return "SystemError"; case SWIG_AttributeError: return "AttributeError"; default: return "RuntimeError"; } } /* ----------------------------------------------------------------------------- * perlrun.swg * * This file contains the runtime support for Perl modules * and includes code for managing global variables and pointer * type checking. * ----------------------------------------------------------------------------- */ #ifdef PERL_OBJECT #define SWIG_PERL_OBJECT_DECL CPerlObj *SWIGUNUSEDPARM(pPerl), #define SWIG_PERL_OBJECT_CALL pPerl, #else #define SWIG_PERL_OBJECT_DECL #define SWIG_PERL_OBJECT_CALL #endif /* Common SWIG API */ /* for raw pointers */ #define SWIG_ConvertPtr(obj, pp, type, flags) SWIG_Perl_ConvertPtr(SWIG_PERL_OBJECT_CALL obj, pp, type, flags) #define SWIG_ConvertPtrAndOwn(obj, pp, type, flags,own) SWIG_Perl_ConvertPtrAndOwn(SWIG_PERL_OBJECT_CALL obj, pp, type, flags, own) #define SWIG_NewPointerObj(p, type, flags) SWIG_Perl_NewPointerObj(SWIG_PERL_OBJECT_CALL p, type, flags) #define SWIG_AcquirePtr(ptr, src) SWIG_Perl_AcquirePtr(ptr, src) #define swig_owntype int /* for raw packed data */ #define SWIG_ConvertPacked(obj, p, s, type) SWIG_Perl_ConvertPacked(SWIG_PERL_OBJECT_CALL obj, p, s, type) #define SWIG_NewPackedObj(p, s, type) SWIG_Perl_NewPackedObj(SWIG_PERL_OBJECT_CALL p, s, type) /* for class or struct pointers */ #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags) #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags) /* for C or C++ function pointers */ #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_ConvertPtr(obj, pptr, type, 0) #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_NewPointerObj(ptr, type, 0) /* for C++ member pointers, ie, member methods */ #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewMemberObj(ptr, sz, type) SWIG_NewPackedObj(ptr, sz, type) /* Runtime API */ #define SWIG_GetModule(clientdata) SWIG_Perl_GetModule(clientdata) #define SWIG_SetModule(clientdata, pointer) SWIG_Perl_SetModule(pointer) /* Error manipulation */ #define SWIG_ErrorType(code) SWIG_Perl_ErrorType(code) #define SWIG_Error(code, msg) sv_setpvf(get_sv("@", GV_ADD), "%s %s", SWIG_ErrorType(code), msg) #define SWIG_fail goto fail /* Perl-specific SWIG API */ #define SWIG_MakePtr(sv, ptr, type, flags) SWIG_Perl_MakePtr(SWIG_PERL_OBJECT_CALL sv, ptr, type, flags) #define SWIG_MakePackedObj(sv, p, s, type) SWIG_Perl_MakePackedObj(SWIG_PERL_OBJECT_CALL sv, p, s, type) #define SWIG_SetError(str) SWIG_Error(SWIG_RuntimeError, str) #define SWIG_PERL_DECL_ARGS_1(arg1) (SWIG_PERL_OBJECT_DECL arg1) #define SWIG_PERL_CALL_ARGS_1(arg1) (SWIG_PERL_OBJECT_CALL arg1) #define SWIG_PERL_DECL_ARGS_2(arg1, arg2) (SWIG_PERL_OBJECT_DECL arg1, arg2) #define SWIG_PERL_CALL_ARGS_2(arg1, arg2) (SWIG_PERL_OBJECT_CALL arg1, arg2) /* ----------------------------------------------------------------------------- * pointers/data manipulation * ----------------------------------------------------------------------------- */ /* For backward compatibility only */ #define SWIG_POINTER_EXCEPTION 0 #ifdef __cplusplus extern "C" { #endif #define SWIG_OWNER SWIG_POINTER_OWN #define SWIG_SHADOW SWIG_OWNER << 1 #define SWIG_MAYBE_PERL_OBJECT SWIG_PERL_OBJECT_DECL /* SWIG Perl macros */ /* Macro to declare an XS function */ #ifndef XSPROTO # define XSPROTO(name) void name(pTHX_ CV* cv) #endif /* Macro to call an XS function */ #ifdef PERL_OBJECT # define SWIG_CALLXS(_name) _name(cv,pPerl) #else # ifndef MULTIPLICITY # define SWIG_CALLXS(_name) _name(cv) # else # define SWIG_CALLXS(_name) _name(PERL_GET_THX, cv) # endif #endif #ifdef PERL_OBJECT #define MAGIC_PPERL CPerlObj *pPerl = (CPerlObj *) this; #ifdef __cplusplus extern "C" { #endif typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *); #ifdef __cplusplus } #endif #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b) #define SWIGCLASS_STATIC #else /* PERL_OBJECT */ #define MAGIC_PPERL #define SWIGCLASS_STATIC static SWIGUNUSED #ifndef MULTIPLICITY #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b) #ifdef __cplusplus extern "C" { #endif typedef int (*SwigMagicFunc)(SV *, MAGIC *); #ifdef __cplusplus } #endif #else /* MULTIPLICITY */ #define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b) #ifdef __cplusplus extern "C" { #endif typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *); #ifdef __cplusplus } #endif #endif /* MULTIPLICITY */ #endif /* PERL_OBJECT */ # ifdef PERL_OBJECT # define SWIG_croak_null() SWIG_Perl_croak_null(pPerl) static void SWIGUNUSED SWIG_Perl_croak_null(CPerlObj *pPerl) # else static void SWIGUNUSED SWIG_croak_null() # endif { SV *err = get_sv("@", GV_ADD); # if (PERL_VERSION < 6) croak("%_", err); # else if (sv_isobject(err)) croak(0); else croak("%s", SvPV_nolen(err)); # endif } /* Define how strict is the cast between strings and integers/doubles when overloading between these types occurs. The default is making it as strict as possible by using SWIG_AddCast when needed. You can use -DSWIG_PERL_NO_STRICT_STR2NUM at compilation time to disable the SWIG_AddCast, making the casting between string and numbers less strict. In the end, we try to solve the overloading between strings and numerical types in the more natural way, but if you can avoid it, well, avoid it using %rename, for example. */ #ifndef SWIG_PERL_NO_STRICT_STR2NUM # ifndef SWIG_PERL_STRICT_STR2NUM # define SWIG_PERL_STRICT_STR2NUM # endif #endif #ifdef SWIG_PERL_STRICT_STR2NUM /* string takes precedence */ #define SWIG_Str2NumCast(x) SWIG_AddCast(x) #else /* number takes precedence */ #define SWIG_Str2NumCast(x) x #endif #include SWIGRUNTIME const char * SWIG_Perl_TypeProxyName(const swig_type_info *type) { if (!type) return NULL; if (type->clientdata != NULL) { return (const char*) type->clientdata; } else { return type->name; } } /* Identical to SWIG_TypeCheck, except for strcmp comparison */ SWIGRUNTIME swig_cast_info * SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (strcmp(SWIG_Perl_TypeProxyName(iter->type), c) == 0) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Acquire a pointer value */ SWIGRUNTIME int SWIG_Perl_AcquirePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, int own) { /* TODO */ return 0; } /* Function for getting a pointer value */ SWIGRUNTIME int SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags, int *own) { swig_cast_info *tc; void *voidptr = (void *)0; SV *tsv = 0; if (own) *own = 0; /* If magical, apply more magic */ if (SvGMAGICAL(sv)) mg_get(sv); /* Check to see if this is an object */ if (sv_isobject(sv)) { IV tmp = 0; tsv = (SV*) SvRV(sv); if ((SvTYPE(tsv) == SVt_PVHV)) { MAGIC *mg; if (SvMAGICAL(tsv)) { mg = mg_find(tsv,'P'); if (mg) { sv = mg->mg_obj; if (sv_isobject(sv)) { tsv = (SV*)SvRV(sv); tmp = SvIV(tsv); } } } else { return SWIG_ERROR; } } else { tmp = SvIV(tsv); } voidptr = INT2PTR(void *,tmp); } else if (! SvOK(sv)) { /* Check for undef */ *(ptr) = (void *) 0; return (flags & SWIG_POINTER_NO_NULL) ? SWIG_NullReferenceError : SWIG_OK; } else if (SvTYPE(sv) == SVt_RV) { /* Check for NULL pointer */ if (!SvROK(sv)) { /* In Perl 5.12 and later, SVt_RV == SVt_IV, so sv could be a valid integer value. */ if (SvIOK(sv)) { return SWIG_ERROR; } else { /* NULL pointer (reference to undef). */ *(ptr) = (void *) 0; return SWIG_OK; } } else { return SWIG_ERROR; } } else { /* Don't know what it is */ return SWIG_ERROR; } if (_t) { /* Now see if the types match */ char *_c = HvNAME(SvSTASH(SvRV(sv))); tc = SWIG_TypeProxyCheck(_c,_t); #ifdef SWIG_DIRECTORS if (!tc && !sv_derived_from(sv,SWIG_Perl_TypeProxyName(_t))) { #else if (!tc) { #endif return SWIG_ERROR; } { int newmemory = 0; *ptr = SWIG_TypeCast(tc,voidptr,&newmemory); if (newmemory == SWIG_CAST_NEW_MEMORY) { assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */ if (own) *own = *own | SWIG_CAST_NEW_MEMORY; } } } else { *ptr = voidptr; } /* * DISOWN implementation: we need a perl guru to check this one. */ if (tsv && (flags & SWIG_POINTER_DISOWN)) { /* * almost copy paste code from below SWIG_POINTER_OWN setting */ SV *obj = sv; HV *stash = SvSTASH(SvRV(obj)); GV *gv = *(GV**)hv_fetch(stash, "OWNER", 5, TRUE); if (isGV(gv)) { HV *hv = GvHVn(gv); /* * To set ownership (see below), a newSViv(1) entry is added. * Hence, to remove ownership, we delete the entry. */ if (hv_exists_ent(hv, obj, 0)) { hv_delete_ent(hv, obj, 0, 0); } } } return SWIG_OK; } SWIGRUNTIME int SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags) { return SWIG_Perl_ConvertPtrAndOwn(sv, ptr, _t, flags, 0); } SWIGRUNTIME void SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, int flags) { if (ptr && (flags & (SWIG_SHADOW | SWIG_POINTER_OWN))) { SV *self; SV *obj=newSV(0); HV *hash=newHV(); HV *stash; sv_setref_pv(obj, SWIG_Perl_TypeProxyName(t), ptr); stash=SvSTASH(SvRV(obj)); if (flags & SWIG_POINTER_OWN) { HV *hv; GV *gv = *(GV**)hv_fetch(stash, "OWNER", 5, TRUE); if (!isGV(gv)) gv_init(gv, stash, "OWNER", 5, FALSE); hv=GvHVn(gv); hv_store_ent(hv, obj, newSViv(1), 0); } sv_magic((SV *)hash, (SV *)obj, 'P', Nullch, 0); SvREFCNT_dec(obj); self=newRV_noinc((SV *)hash); sv_setsv(sv, self); SvREFCNT_dec((SV *)self); sv_bless(sv, stash); } else { sv_setref_pv(sv, SWIG_Perl_TypeProxyName(t), ptr); } } SWIGRUNTIMEINLINE SV * SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT void *ptr, swig_type_info *t, int flags) { SV *result = sv_newmortal(); SWIG_MakePtr(result, ptr, t, flags); return result; } SWIGRUNTIME void SWIG_Perl_MakePackedObj(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, int sz, swig_type_info *type) { char result[1024]; char *r = result; if ((2*sz + 1 + strlen(SWIG_Perl_TypeProxyName(type))) > 1000) return; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); strcpy(r,SWIG_Perl_TypeProxyName(type)); sv_setpv(sv, result); } SWIGRUNTIME SV * SWIG_Perl_NewPackedObj(SWIG_MAYBE_PERL_OBJECT void *ptr, int sz, swig_type_info *type) { SV *result = sv_newmortal(); SWIG_Perl_MakePackedObj(result, ptr, sz, type); return result; } /* Convert a packed pointer value */ SWIGRUNTIME int SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *obj, void *ptr, int sz, swig_type_info *ty) { swig_cast_info *tc; const char *c = 0; if ((!obj) || (!SvOK(obj))) return SWIG_ERROR; c = SvPV_nolen(obj); /* Pointer values must start with leading underscore */ if (*c != '_') return SWIG_ERROR; c++; c = SWIG_UnpackData(c,ptr,sz); if (ty) { tc = SWIG_TypeCheck(c,ty); if (!tc) return SWIG_ERROR; } return SWIG_OK; } /* Macros for low-level exception handling */ #define SWIG_croak(x) { SWIG_Error(SWIG_RuntimeError, x); SWIG_fail; } typedef XSPROTO(SwigPerlWrapper); typedef SwigPerlWrapper *SwigPerlWrapperPtr; /* Structure for command table */ typedef struct { const char *name; SwigPerlWrapperPtr wrapper; } swig_command_info; /* Information for constant table */ #define SWIG_INT 1 #define SWIG_FLOAT 2 #define SWIG_STRING 3 #define SWIG_POINTER 4 #define SWIG_BINARY 5 /* Constant information structure */ typedef struct swig_constant_info { int type; const char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype; } swig_constant_info; /* Structure for variable table */ typedef struct { const char *name; SwigMagicFunc set; SwigMagicFunc get; swig_type_info **type; } swig_variable_info; /* Magic variable code */ #ifndef PERL_OBJECT # ifdef __cplusplus # define swig_create_magic(s,a,b,c) _swig_create_magic(s,const_cast(a),b,c) # else # define swig_create_magic(s,a,b,c) _swig_create_magic(s,(char*)(a),b,c) # endif # ifndef MULTIPLICITY SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) # else SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *)) # endif #else # define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c) SWIGRUNTIME void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) #endif { MAGIC *mg; sv_magic(sv,sv,'U',name,strlen(name)); mg = mg_find(sv,'U'); mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL)); mg->mg_virtual->svt_get = (SwigMagicFunc) get; mg->mg_virtual->svt_set = (SwigMagicFunc) set; mg->mg_virtual->svt_len = 0; mg->mg_virtual->svt_clear = 0; mg->mg_virtual->svt_free = 0; } SWIGRUNTIME swig_module_info * SWIG_Perl_GetModule(void *SWIGUNUSEDPARM(clientdata)) { static void *type_pointer = (void *)0; SV *pointer; /* first check if pointer already created */ if (!type_pointer) { pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE | GV_ADDMULTI); if (pointer && SvOK(pointer)) { type_pointer = INT2PTR(swig_type_info **, SvIV(pointer)); } } return (swig_module_info *) type_pointer; } SWIGRUNTIME void SWIG_Perl_SetModule(swig_module_info *module) { SV *pointer; /* create a new pointer */ pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE | GV_ADDMULTI); sv_setiv(pointer, PTR2IV(module)); } #ifdef __cplusplus } #endif /* Workaround perl5 global namespace pollution. Note that undefining library * functions like fopen will not solve the problem on all platforms as fopen * might be a macro on Windows but not necessarily on other operating systems. */ #ifdef do_open #undef do_open #endif #ifdef do_close #undef do_close #endif #ifdef do_exec #undef do_exec #endif #ifdef scalar #undef scalar #endif #ifdef list #undef list #endif #ifdef apply #undef apply #endif #ifdef convert #undef convert #endif #ifdef Error #undef Error #endif #ifdef form #undef form #endif #ifdef vform #undef vform #endif #ifdef LABEL #undef LABEL #endif #ifdef METHOD #undef METHOD #endif #ifdef Move #undef Move #endif #ifdef yylex #undef yylex #endif #ifdef yyparse #undef yyparse #endif #ifdef yyerror #undef yyerror #endif #ifdef invert #undef invert #endif #ifdef ref #undef ref #endif #ifdef read #undef read #endif #ifdef write #undef write #endif #ifdef eof #undef eof #endif #ifdef close #undef close #endif #ifdef rewind #undef rewind #endif #ifdef free #undef free #endif #ifdef malloc #undef malloc #endif #ifdef calloc #undef calloc #endif #ifdef Stat #undef Stat #endif #ifdef check #undef check #endif #ifdef seekdir #undef seekdir #endif #ifdef open #undef open #endif #ifdef readdir #undef readdir #endif #ifdef bind #undef bind #endif #ifdef access #undef access #endif #ifdef stat #undef stat #endif #ifdef seed #undef seed #endif #ifdef bool /* Leave if macro is from C99 stdbool.h */ #ifndef __bool_true_false_are_defined #undef bool #endif #endif #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0) /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_Prelude__Client swig_types[0] #define SWIGTYPE_p_Prelude__ClientEasy swig_types[1] #define SWIGTYPE_p_Prelude__ClientProfile swig_types[2] #define SWIGTYPE_p_Prelude__Connection swig_types[3] #define SWIGTYPE_p_Prelude__ConnectionPool swig_types[4] #define SWIGTYPE_p_Prelude__IDMEF swig_types[5] #define SWIGTYPE_p_Prelude__IDMEFClass swig_types[6] #define SWIGTYPE_p_Prelude__IDMEFCriteria swig_types[7] #define SWIGTYPE_p_Prelude__IDMEFCriterion swig_types[8] #define SWIGTYPE_p_Prelude__IDMEFPath swig_types[9] #define SWIGTYPE_p_Prelude__IDMEFTime swig_types[10] #define SWIGTYPE_p_Prelude__IDMEFValue swig_types[11] #define SWIGTYPE_p_Prelude__PreludeError swig_types[12] #define SWIGTYPE_p_Prelude__PreludeLog swig_types[13] #define SWIGTYPE_p_char swig_types[14] #define SWIGTYPE_p_difference_type swig_types[15] #define SWIGTYPE_p_f_int_p_q_const__char__void swig_types[16] #define SWIGTYPE_p_idmef_criteria_t swig_types[17] #define SWIGTYPE_p_idmef_criterion_operator_t swig_types[18] #define SWIGTYPE_p_idmef_object_t swig_types[19] #define SWIGTYPE_p_idmef_path_t swig_types[20] #define SWIGTYPE_p_idmef_time_t swig_types[21] #define SWIGTYPE_p_idmef_value_t swig_types[22] #define SWIGTYPE_p_int swig_types[23] #define SWIGTYPE_p_key_type swig_types[24] #define SWIGTYPE_p_long_long swig_types[25] #define SWIGTYPE_p_mapped_type swig_types[26] #define SWIGTYPE_p_prelude_client_profile_t swig_types[27] #define SWIGTYPE_p_prelude_client_t swig_types[28] #define SWIGTYPE_p_prelude_connection_pool_t swig_types[29] #define SWIGTYPE_p_prelude_connection_t swig_types[30] #define SWIGTYPE_p_short swig_types[31] #define SWIGTYPE_p_size_type swig_types[32] #define SWIGTYPE_p_std__mapT_std__string_std__string_std__lessT_std__string_t_t swig_types[33] #define SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t swig_types[34] #define SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t swig_types[35] #define SWIGTYPE_p_timeval swig_types[36] #define SWIGTYPE_p_unsigned_char swig_types[37] #define SWIGTYPE_p_unsigned_int swig_types[38] #define SWIGTYPE_p_unsigned_long_long swig_types[39] #define SWIGTYPE_p_unsigned_short swig_types[40] #define SWIGTYPE_p_value_type swig_types[41] #define SWIGTYPE_p_void swig_types[42] static swig_type_info *swig_types[44]; static swig_module_info swig_module = {swig_types, 43, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) /* -------- TYPES TABLE (END) -------- */ #define SWIG_init boot_Prelude #define SWIG_name "Preludec::boot_Prelude" #define SWIG_prefix "Preludec::" #define SWIGVERSION 0x040001 #define SWIG_VERSION SWIGVERSION #define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a)) #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a)) #include #ifdef __cplusplus extern "C" #endif #ifndef PERL_OBJECT #ifndef MULTIPLICITY SWIGEXPORT void SWIG_init (CV* cv); #else SWIGEXPORT void SWIG_init (pTHXo_ CV* cv); #endif #else SWIGEXPORT void SWIG_init (CV *cv, CPerlObj *); #endif #include #include #include SWIGINTERN double SwigSvToNumber(SV* sv) { return SvIOK(sv) ? double(SvIVX(sv)) : SvNVX(sv); } SWIGINTERN std::string SwigSvToString(SV* sv) { STRLEN len; char *ptr = SvPV(sv, len); return std::string(ptr, len); } SWIGINTERN void SwigSvFromString(SV* sv, const std::string& s) { sv_setpvn(sv,s.data(),s.size()); } #include #include #include #pragma GCC diagnostic ignored "-Wunused-variable" #include #include #include "prelude.hxx" #include "prelude-log.hxx" #include "prelude-error.hxx" #include "prelude-connection.hxx" #include "prelude-connection-pool.hxx" #include "prelude-client-profile.hxx" #include "prelude-client.hxx" #include "prelude-client-easy.hxx" #include "idmef-criteria.hxx" #include "idmef-value.hxx" #include "idmef-path.hxx" #include "idmef-time.hxx" #include "idmef.hxx" using namespace Prelude; #define TARGET_LANGUAGE_SELF SV * #define TARGET_LANGUAGE_OUTPUT_TYPE SV ** SWIGINTERN swig_type_info* SWIG_pchar_descriptor(void) { static int init = 0; static swig_type_info* info = 0; if (!init) { info = SWIG_TypeQuery("_p_char"); init = 1; } return info; } SWIGINTERN int SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc) { if (SvMAGICAL(obj)) { SV *tmp = sv_newmortal(); SvSetSV(tmp, obj); obj = tmp; } if (SvPOK(obj)) { STRLEN len = 0; char *cstr = SvPV(obj, len); size_t size = len + 1; if (cptr) { if (alloc) { if (*alloc == SWIG_NEWOBJ) { *cptr = reinterpret_cast< char* >(memcpy(new char[size], cstr, sizeof(char)*(size))); } else { *cptr = cstr; *alloc = SWIG_OLDOBJ; } } } if (psize) *psize = size; return SWIG_OK; } else { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); if (pchar_descriptor) { char* vptr = 0; if (SWIG_ConvertPtr(obj, (void**)&vptr, pchar_descriptor, 0) == SWIG_OK) { if (cptr) *cptr = vptr; if (psize) *psize = vptr ? (strlen(vptr) + 1) : 0; if (alloc) *alloc = SWIG_OLDOBJ; return SWIG_OK; } } } return SWIG_TypeError; } SWIGINTERNINLINE SV * SWIG_FromCharPtrAndSize(const char* carray, size_t size) { SV *obj = sv_newmortal(); if (carray) { sv_setpvn(obj, carray, size); } else { sv_setsv(obj, &PL_sv_undef); } return obj; } SWIGINTERNINLINE SV * SWIG_FromCharPtr(const char *cptr) { return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0)); } SWIGINTERNINLINE SV * SWIG_From_long SWIG_PERL_DECL_ARGS_1(long value) { SV *sv; if (IVSIZE >= sizeof(value) || (value >= IV_MIN && value <= IV_MAX)) sv = newSViv(value); else sv = newSVpvf("%ld", value); return sv_2mortal(sv); } SWIGINTERNINLINE SV * SWIG_From_int SWIG_PERL_DECL_ARGS_1(int value) { return SWIG_From_long SWIG_PERL_CALL_ARGS_1(value); } #include #if !defined(SWIG_NO_LLONG_MAX) # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) # define LLONG_MAX __LONG_LONG_MAX__ # define LLONG_MIN (-LLONG_MAX - 1LL) # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) # endif #endif #if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE) # define SWIG_LONG_LONG_AVAILABLE #endif #include #if (defined(_MSC_VER) && (_MSC_VER < 1900)) || defined(__BORLANDC__) || defined(_WATCOM) # ifndef snprintf # define snprintf _snprintf # endif #endif #ifdef SWIG_LONG_LONG_AVAILABLE SWIGINTERNINLINE SV * SWIG_From_unsigned_SS_long_SS_long SWIG_PERL_DECL_ARGS_1(unsigned long long value) { SV *sv; if (UVSIZE >= sizeof(value) || value <= UV_MAX) sv = newSVuv((UV)(value)); else { //sv = newSVpvf("%llu", value); doesn't work in non 64bit Perl char temp[256]; sprintf(temp, "%llu", value); sv = newSVpv(temp, 0); } return sv_2mortal(sv); } #endif #include #ifdef _MSC_VER # ifndef strtoull # define strtoull _strtoui64 # endif # ifndef strtoll # define strtoll _strtoi64 # endif #endif SWIGINTERN int SWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val) { if (SvNIOK(obj)) { if (val) *val = SvNV(obj); return SWIG_OK; } else if (SvIOK(obj)) { if (val) *val = (double) SvIV(obj); return SWIG_AddCast(SWIG_OK); } else { const char *nptr = SvPV_nolen(obj); if (nptr) { char *endptr; double v; errno = 0; v = strtod(nptr, &endptr); if (errno == ERANGE) { errno = 0; return SWIG_OverflowError; } else { if (*endptr == '\0') { if (val) *val = v; return SWIG_Str2NumCast(SWIG_OK); } } } } return SWIG_TypeError; } #include #include SWIGINTERNINLINE int SWIG_CanCastAsInteger(double *d, double min, double max) { double x = *d; if ((min <= x && x <= max)) { double fx = floor(x); double cx = ceil(x); double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */ if ((errno == EDOM) || (errno == ERANGE)) { errno = 0; } else { double summ, reps, diff; if (rd < x) { diff = x - rd; } else if (rd > x) { diff = rd - x; } else { return 1; } summ = rd + x; reps = diff/summ; if (reps < 8*DBL_EPSILON) { *d = rd; return 1; } } } return 0; } #ifdef SWIG_LONG_LONG_AVAILABLE SWIGINTERN int SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, unsigned long long *val) { if (SvUOK(obj)) { /* pretty sure this should be conditional on * (UVSIZE <= sizeof(*val) || v <= ULLONG_MAX) */ if (val) *val = SvUV(obj); return SWIG_OK; } else if (SvIOK(obj)) { IV v = SvIV(obj); if (v >= 0 && (IVSIZE <= sizeof(*val) || v <= ULLONG_MAX)) { if (val) *val = v; return SWIG_OK; } else { return SWIG_OverflowError; } } else { int dispatch = 0; const char *nptr = SvPV_nolen(obj); if (nptr) { char *endptr; unsigned long long v; errno = 0; v = strtoull(nptr, &endptr,0); if (errno == ERANGE) { errno = 0; return SWIG_OverflowError; } else { if (*endptr == '\0') { if (val) *val = v; return SWIG_Str2NumCast(SWIG_OK); } } } if (!dispatch) { const double mant_max = 1LL << DBL_MANT_DIG; double d; int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) { if (val) *val = (unsigned long long)(d); return res; } } } return SWIG_TypeError; } #endif SWIGINTERNINLINE SV * SWIG_From_std_string SWIG_PERL_DECL_ARGS_1(const std::string& s) { return SWIG_FromCharPtrAndSize(s.data(), s.size()); } SWIGINTERN int SWIG_AsVal_bool SWIG_PERL_DECL_ARGS_2(SV *obj, bool* val) { if (obj == &PL_sv_yes) { if (val) *val = true; return SWIG_OK; } else if (obj == &PL_sv_no) { if (val) *val = false; return SWIG_OK; } else { if (val) *val = SvTRUE(obj) ? true : false; return SWIG_AddCast(SWIG_OK); } } SWIGINTERN int SWIG_AsVal_long SWIG_PERL_DECL_ARGS_2(SV *obj, long* val) { if (SvUOK(obj)) { UV v = SvUV(obj); if (UVSIZE < sizeof(*val) || v <= LONG_MAX) { if (val) *val = v; return SWIG_OK; } return SWIG_OverflowError; } else if (SvIOK(obj)) { IV v = SvIV(obj); if (IVSIZE <= sizeof(*val) || (v >= LONG_MIN && v <= LONG_MAX)) { if(val) *val = v; return SWIG_OK; } return SWIG_OverflowError; } else { int dispatch = 0; const char *nptr = SvPV_nolen(obj); if (nptr) { char *endptr; long v; errno = 0; v = strtol(nptr, &endptr,0); if (errno == ERANGE) { errno = 0; return SWIG_OverflowError; } else { if (*endptr == '\0') { if (val) *val = v; return SWIG_Str2NumCast(SWIG_OK); } } } if (!dispatch) { double d; int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) { if (val) *val = (long)(d); return res; } } } return SWIG_TypeError; } SWIGINTERN int SWIG_AsVal_int SWIG_PERL_DECL_ARGS_2(SV * obj, int *val) { long v; int res = SWIG_AsVal_long SWIG_PERL_CALL_ARGS_2(obj, &v); if (SWIG_IsOK(res)) { if ((v < INT_MIN || v > INT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< int >(v); } } return res; } SWIGINTERNINLINE SV * SWIG_From_unsigned_SS_long SWIG_PERL_DECL_ARGS_1(unsigned long value) { SV *sv; if (UVSIZE >= sizeof(value) || value <= UV_MAX) sv = newSVuv(value); else sv = newSVpvf("%lu", value); return sv_2mortal(sv); } SWIGINTERNINLINE SV * SWIG_From_unsigned_SS_int SWIG_PERL_DECL_ARGS_1(unsigned int value) { return SWIG_From_unsigned_SS_long SWIG_PERL_CALL_ARGS_1(value); } SWIGINTERNINLINE SV * SWIG_From_bool SWIG_PERL_DECL_ARGS_1(bool value) { return boolSV(value); } static SV *__prelude_log_func; static gl_thread_t __initial_thread; static void _cb_perl_log(int level, const char *str) { if ( (gl_thread_t) gl_thread_self() != __initial_thread ) return; dSP; ENTER; SAVETMPS; PUSHMARK(SP); XPUSHs(SWIG_From_int(level)); XPUSHs(SWIG_FromCharPtr(str)); PUTBACK; perl_call_sv(__prelude_log_func, G_VOID); FREETMPS; LEAVE; } static int _cb_perl_write(prelude_msgbuf_t *fd, prelude_msg_t *msg) { ssize_t ret; PerlIO *io = (PerlIO *) prelude_msgbuf_get_data(fd); ret = PerlIO_write(io, (const char *) prelude_msg_get_message_data(msg), prelude_msg_get_len(msg)); if ( ret != prelude_msg_get_len(msg) ) return prelude_error_from_errno(errno); prelude_msg_recycle(msg); return 0; } static ssize_t _cb_perl_read(prelude_io_t *fd, void *buf, size_t size) { int ret; PerlIO *io = (PerlIO *) prelude_io_get_fdptr(fd); ret = PerlIO_read(io, buf, size); if ( ret < 0 ) ret = prelude_error_from_errno(errno); else if ( ret == 0 ) ret = prelude_error(PRELUDE_ERROR_EOF); return ret; } SWIGINTERN int SWIG_AsPtr_std_string SWIG_PERL_DECL_ARGS_2(SV * obj, std::string **val) { char* buf = 0 ; size_t size = 0; int alloc = SWIG_OLDOBJ; if (SWIG_IsOK((SWIG_AsCharPtrAndSize(obj, &buf, &size, &alloc)))) { if (buf) { if (val) *val = new std::string(buf, size - 1); if (alloc == SWIG_NEWOBJ) delete[] buf; return SWIG_NEWOBJ; } else { if (val) *val = 0; return SWIG_OLDOBJ; } } else { static int init = 0; static swig_type_info* descriptor = 0; if (!init) { descriptor = SWIG_TypeQuery("std::string" " *"); init = 1; } if (descriptor) { std::string *vptr; int res = SWIG_ConvertPtr(obj, (void**)&vptr, descriptor, 0); if (SWIG_IsOK(res) && val) *val = vptr; return res; } } return SWIG_ERROR; } #ifdef SWIG_LONG_LONG_AVAILABLE SWIGINTERN int SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val) { if (SvUOK(obj)) { UV v = SvUV(obj); /* pretty sure this could allow v == LLONG MAX */ if (UVSIZE < sizeof(*val) || v < LLONG_MAX) { if (val) *val = v; return SWIG_OK; } return SWIG_OverflowError; } else if (SvIOK(obj)) { IV v = SvIV(obj); if (IVSIZE <= sizeof(*val) || (v >= LLONG_MIN && v <= LLONG_MAX)) { if (val) *val = v; return SWIG_OK; } return SWIG_OverflowError; } else { int dispatch = 0; const char *nptr = SvPV_nolen(obj); if (nptr) { char *endptr; long long v; errno = 0; v = strtoll(nptr, &endptr,0); if (errno == ERANGE) { errno = 0; return SWIG_OverflowError; } else { if (*endptr == '\0') { if (val) *val = v; return SWIG_Str2NumCast(SWIG_OK); } } } if (!dispatch) { const double mant_max = 1LL << DBL_MANT_DIG; const double mant_min = -mant_max; double d; int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, mant_min, mant_max)) { if (val) *val = (long long)(d); return res; } } } return SWIG_TypeError; } #endif /* Getting isfinite working pre C99 across multiple platforms is non-trivial. Users can provide SWIG_isfinite on older platforms. */ #ifndef SWIG_isfinite /* isfinite() is a macro for C99 */ # if defined(isfinite) # define SWIG_isfinite(X) (isfinite(X)) # elif defined(__cplusplus) && __cplusplus >= 201103L /* Use a template so that this works whether isfinite() is std::isfinite() or * in the global namespace. The reality seems to vary between compiler * versions. * * Make sure namespace std exists to avoid compiler warnings. * * extern "C++" is required as this fragment can end up inside an extern "C" { } block */ namespace std { } extern "C++" template inline int SWIG_isfinite_func(T x) { using namespace std; return isfinite(x); } # define SWIG_isfinite(X) (SWIG_isfinite_func(X)) # elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) # define SWIG_isfinite(X) (__builtin_isfinite(X)) # elif defined(__clang__) && defined(__has_builtin) # if __has_builtin(__builtin_isfinite) # define SWIG_isfinite(X) (__builtin_isfinite(X)) # endif # elif defined(_MSC_VER) # define SWIG_isfinite(X) (_finite(X)) # elif defined(__sun) && defined(__SVR4) # include # define SWIG_isfinite(X) (finite(X)) # endif #endif /* Accept infinite as a valid float value unless we are unable to check if a value is finite */ #ifdef SWIG_isfinite # define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX) && SWIG_isfinite(X)) #else # define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX)) #endif SWIGINTERN int SWIG_AsVal_float SWIG_PERL_DECL_ARGS_2(SV * obj, float *val) { double v; int res = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj, &v); if (SWIG_IsOK(res)) { if (SWIG_Float_Overflow_Check(v)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< float >(v); } } return res; } SWIGINTERNINLINE SV * SWIG_From_double SWIG_PERL_DECL_ARGS_1(double value) { return sv_2mortal(newSVnv(value)); } SWIGINTERNINLINE SV * SWIG_From_float SWIG_PERL_DECL_ARGS_1(float value) { return SWIG_From_double SWIG_PERL_CALL_ARGS_1(value); } #ifdef SWIG_LONG_LONG_AVAILABLE SWIGINTERNINLINE SV * SWIG_From_long_SS_long SWIG_PERL_DECL_ARGS_1(long long value) { SV *sv; if (IVSIZE >= sizeof(value) || (value >= IV_MIN && value <= IV_MAX)) sv = newSViv((IV)(value)); else { //sv = newSVpvf("%lld", value); doesn't work in non 64bit Perl char temp[256]; sprintf(temp, "%lld", value); sv = newSVpv(temp, 0); } return sv_2mortal(sv); } #endif #ifndef SWIG_FromBytePtrAndSize # define SWIG_FromBytePtrAndSize(arg, len) SWIG_FromCharPtrAndSize(arg, len) #endif int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret); SV *IDMEFValueList_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &value, void *extra) { int j = 0, ret; std::vector result = value; std::vector::const_iterator i; AV *myav; SV *svret, **svs = new SV*[result.size()]; for ( i = result.begin(); i != result.end(); i++ ) { if ( (*i).isNull() ) { SvREFCNT_inc(& PL_sv_undef); svs[j++] = &PL_sv_undef; } else { ret = IDMEFValue_to_SWIG(self, *i, NULL, &svs[j++]); if ( ret < 0 ) return NULL; } } myav = av_make(result.size(), svs); delete[] svs; svret = newRV_noinc((SV*) myav); sv_2mortal(svret); return svret; } int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret) { idmef_value_t *value = result; Prelude::IDMEFValue::IDMEFValueTypeEnum type = result.getType(); if ( type == Prelude::IDMEFValue::TYPE_STRING ) { prelude_string_t *str = idmef_value_get_string(value); *ret = SWIG_FromCharPtrAndSize(prelude_string_get_string(str), prelude_string_get_len(str)); } else if ( type == Prelude::IDMEFValue::TYPE_INT8 ) *ret = SWIG_From_int(idmef_value_get_int8(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT8 ) *ret = SWIG_From_unsigned_SS_int(idmef_value_get_uint8(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT16 ) *ret = SWIG_From_int(idmef_value_get_int16(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT16 ) *ret = SWIG_From_unsigned_SS_int(idmef_value_get_uint16(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT32 ) *ret = SWIG_From_int(idmef_value_get_int32(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT32 ) *ret = SWIG_From_unsigned_SS_int(idmef_value_get_uint32(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT64 ) *ret = SWIG_From_long_SS_long(idmef_value_get_int64(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT64 ) *ret = SWIG_From_unsigned_SS_long_SS_long(idmef_value_get_uint64(value)); else if ( type == Prelude::IDMEFValue::TYPE_FLOAT ) *ret = SWIG_From_float(idmef_value_get_float(value)); else if ( type == Prelude::IDMEFValue::TYPE_DOUBLE ) *ret = SWIG_From_double(idmef_value_get_double(value)); else if ( type == Prelude::IDMEFValue::TYPE_ENUM ) { const char *s = idmef_class_enum_to_string(idmef_value_get_class(value), idmef_value_get_enum(value)); *ret = SWIG_FromCharPtr(s); } else if ( type == Prelude::IDMEFValue::TYPE_TIME ) { Prelude::IDMEFTime t = result; *ret = SWIG_NewPointerObj(new Prelude::IDMEFTime(t), SWIGTYPE_p_Prelude__IDMEFTime, 1); } else if ( type == Prelude::IDMEFValue::TYPE_LIST ) *ret = IDMEFValueList_to_SWIG(self, result, extra); else if ( type == Prelude::IDMEFValue::TYPE_DATA ) { idmef_data_t *d = idmef_value_get_data(value); idmef_data_type_t t = idmef_data_get_type(d); if ( t == IDMEF_DATA_TYPE_BYTE || t == IDMEF_DATA_TYPE_BYTE_STRING ) *ret = SWIG_FromBytePtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d)); else if ( t == IDMEF_DATA_TYPE_CHAR ) *ret = SWIG_FromCharPtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d)); else if ( t == IDMEF_DATA_TYPE_CHAR_STRING ) *ret = SWIG_FromCharPtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d) - 1); else if ( t == IDMEF_DATA_TYPE_FLOAT ) *ret = SWIG_From_float(idmef_data_get_float(d)); else if ( t == IDMEF_DATA_TYPE_UINT32 || IDMEF_DATA_TYPE_INT ) *ret = SWIG_From_unsigned_SS_long_SS_long(idmef_data_get_int(d)); } else if ( type == Prelude::IDMEFValue::TYPE_CLASS ) { idmef_object_t *obj = (idmef_object_t *) idmef_value_get_object(value); *ret = SWIG_NewPointerObj(new Prelude::IDMEF(idmef_object_ref(obj)), SWIGTYPE_p_Prelude__IDMEF, 1); } else return -1; return 1; } SWIGINTERN int SWIG_AsVal_unsigned_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, unsigned long *val) { if (SvUOK(obj)) { UV v = SvUV(obj); if (UVSIZE <= sizeof(*val) || v <= ULONG_MAX) { if (val) *val = v; return SWIG_OK; } return SWIG_OverflowError; } else if (SvIOK(obj)) { IV v = SvIV(obj); if (v >= 0 && (IVSIZE <= sizeof(*val) || v <= ULONG_MAX)) { if (val) *val = v; return SWIG_OK; } return SWIG_OverflowError; } else { int dispatch = 0; const char *nptr = SvPV_nolen(obj); if (nptr) { char *endptr; unsigned long v; errno = 0; v = strtoul(nptr, &endptr,0); if (errno == ERANGE) { errno = 0; return SWIG_OverflowError; } else { if (*endptr == '\0') { if (val) *val = v; return SWIG_Str2NumCast(SWIG_OK); } } } if (!dispatch) { double d; int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) { if (val) *val = (unsigned long)(d); return res; } } } return SWIG_TypeError; } SWIGINTERN int SWIG_AsVal_unsigned_SS_int SWIG_PERL_DECL_ARGS_2(SV * obj, unsigned int *val) { unsigned long v; int res = SWIG_AsVal_unsigned_SS_long SWIG_PERL_CALL_ARGS_2(obj, &v); if (SWIG_IsOK(res)) { if ((v > UINT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< unsigned int >(v); } } return res; } SWIGINTERN Prelude::IDMEFValue Prelude_IDMEFPath_get(Prelude::IDMEFPath *self,Prelude::IDMEF &message){ Prelude::IDMEFValue value; value = self->get(message); if ( value.isNull() && self->isAmbiguous() ) { std::vector v; return Prelude::IDMEFValue(v); } return value; } SWIGINTERNINLINE SV * SWIG_From_size_t SWIG_PERL_DECL_ARGS_1(size_t value) { #ifdef SWIG_LONG_LONG_AVAILABLE if (sizeof(size_t) <= sizeof(unsigned long)) { #endif return SWIG_From_unsigned_SS_long SWIG_PERL_CALL_ARGS_1(static_cast< unsigned long >(value)); #ifdef SWIG_LONG_LONG_AVAILABLE } else { /* assume sizeof(size_t) <= sizeof(unsigned long long) */ return SWIG_From_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_1(static_cast< unsigned long long >(value)); } #endif } SWIGINTERN void Prelude_IDMEF_write(Prelude::IDMEF *self,void *nocast_p){ PerlIO *io = IoIFP(sv_2io((SV *) nocast_p)); self->_genericWrite(_cb_perl_write, io); } SWIGINTERN int Prelude_IDMEF_read(Prelude::IDMEF *self,void *nocast_p){ PerlIO *io = IoIFP(sv_2io((SV *) nocast_p)); self->_genericRead(_cb_perl_read, io); return 1; } SWIGINTERN Prelude::IDMEFValue Prelude_IDMEF_get(Prelude::IDMEF *self,char const *path){ Prelude::IDMEFValue value; Prelude::IDMEFPath ipath = Prelude::IDMEFPath(*self, path); value = ipath.get(*self); if ( value.isNull() && ipath.isAmbiguous() ) { std::vector v; return Prelude::IDMEFValue(v); } return value; } #ifdef __cplusplus extern "C" { #endif #ifdef PERL_OBJECT #define MAGIC_CLASS _wrap_Prelude_var:: class _wrap_Prelude_var : public CPerlObj { public: #else #define MAGIC_CLASS #endif SWIGCLASS_STATIC int swig_magic_readonly(pTHX_ SV *SWIGUNUSEDPARM(sv), MAGIC *SWIGUNUSEDPARM(mg)) { MAGIC_PPERL croak("Value is read-only."); return 0; } #ifdef PERL_OBJECT }; #endif #ifdef __cplusplus } #endif #ifdef __cplusplus extern "C" { #endif XS(_wrap_checkVersion__SWIG_0) { { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int argvi = 0; char *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: checkVersion(version);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "checkVersion" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (char *)Prelude::checkVersion((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; SWIG_croak_null(); } } XS(_wrap_checkVersion__SWIG_1) { { int argvi = 0; char *result = 0 ; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: checkVersion();"); } { try { result = (char *)Prelude::checkVersion(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_checkVersion) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 0) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_checkVersion__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_checkVersion__SWIG_0); return; } } croak("No matching function for overloaded 'checkVersion'"); XSRETURN(0); } XS(_wrap_new_ClientProfile__SWIG_0) { { int argvi = 0; Prelude::ClientProfile *result = 0 ; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: new_ClientProfile();"); } { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientProfile, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_ClientProfile__SWIG_1) { { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int argvi = 0; Prelude::ClientProfile *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_ClientProfile(profile);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientProfile" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientProfile, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; SWIG_croak_null(); } } XS(_wrap_new_ClientProfile__SWIG_2) { { prelude_client_profile_t *arg1 = (prelude_client_profile_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::ClientProfile *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_ClientProfile(profile);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_prelude_client_profile_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientProfile" "', argument " "1"" of type '" "prelude_client_profile_t *""'"); } arg1 = reinterpret_cast< prelude_client_profile_t * >(argp1); { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientProfile, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_ClientProfile__SWIG_3) { { Prelude::ClientProfile *arg1 = 0 ; void *argp1 ; int res1 = 0 ; int argvi = 0; Prelude::ClientProfile *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_ClientProfile(p);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__ClientProfile, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientProfile" "', argument " "1"" of type '" "Prelude::ClientProfile const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ClientProfile" "', argument " "1"" of type '" "Prelude::ClientProfile const &""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile((Prelude::ClientProfile const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientProfile, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_ClientProfile) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 0) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_prelude_client_profile_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__ClientProfile, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ClientProfile__SWIG_0); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ClientProfile__SWIG_2); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ClientProfile__SWIG_3); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ClientProfile__SWIG_1); return; } } croak("No matching function for overloaded 'new_ClientProfile'"); XSRETURN(0); } XS(_wrap_delete_ClientProfile) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_ClientProfile(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ClientProfile" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getUid) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getUid(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getUid" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (int)(arg1)->getUid(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getGid) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getGid(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getGid" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (int)(arg1)->getGid(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getName) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; char *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getName(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getName" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (char *)(arg1)->getName(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_setName) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: ClientProfile_setName(self,name);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_setName" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ClientProfile_setName" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { result = (int)(arg1)->setName((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_ClientProfile_getAnalyzerId) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; uint64_t result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getAnalyzerId(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getAnalyzerId" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (uint64_t)(arg1)->getAnalyzerId(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_1(static_cast< unsigned long long >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_setAnalyzerId) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; uint64_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long long val2 ; int ecode2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: ClientProfile_setAnalyzerId(self,id);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_setAnalyzerId" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ClientProfile_setAnalyzerId" "', argument " "2"" of type '" "uint64_t""'"); } arg2 = static_cast< uint64_t >(val2); { try { (arg1)->setAnalyzerId(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getConfigFilename) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getConfigFilename(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getConfigFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getConfigFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getAnalyzeridFilename) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getAnalyzeridFilename(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getAnalyzeridFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getAnalyzeridFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getTlsKeyFilename) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getTlsKeyFilename(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getTlsKeyFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsKeyFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getTlsServerCaCertFilename) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getTlsServerCaCertFilename(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getTlsServerCaCertFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsServerCaCertFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getTlsServerKeyCertFilename) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getTlsServerKeyCertFilename(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getTlsServerKeyCertFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsServerKeyCertFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getTlsServerCrlFilename) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getTlsServerCrlFilename(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getTlsServerCrlFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsServerCrlFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getTlsClientKeyCertFilename) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getTlsClientKeyCertFilename(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getTlsClientKeyCertFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsClientKeyCertFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getTlsClientTrustedCertFilename) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getTlsClientTrustedCertFilename(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getTlsClientTrustedCertFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsClientTrustedCertFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getBackupDirname) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getBackupDirname(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getBackupDirname" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getBackupDirname(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_getProfileDirname) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getProfileDirname(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getProfileDirname" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getProfileDirname(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ClientProfile_setPrefix) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: ClientProfile_setPrefix(self,prefix);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_setPrefix" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ClientProfile_setPrefix" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { (arg1)->setPrefix((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_ClientProfile_getPrefix) { { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ClientProfile_getPrefix(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getPrefix" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getPrefix(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_delete_Connection) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_Connection(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Connection" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_Connection__SWIG_0) { { int argvi = 0; Prelude::Connection *result = 0 ; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: new_Connection();"); } { try { result = (Prelude::Connection *)new Prelude::Connection(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Connection, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_Connection__SWIG_1) { { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int argvi = 0; Prelude::Connection *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_Connection(addr);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Connection" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::Connection *)new Prelude::Connection((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Connection, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; SWIG_croak_null(); } } XS(_wrap_new_Connection__SWIG_2) { { Prelude::Connection *arg1 = 0 ; void *argp1 ; int res1 = 0 ; int argvi = 0; Prelude::Connection *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_Connection(con);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__Connection, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Connection" "', argument " "1"" of type '" "Prelude::Connection const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Connection" "', argument " "1"" of type '" "Prelude::Connection const &""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (Prelude::Connection *)new Prelude::Connection((Prelude::Connection const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Connection, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_Connection__SWIG_3) { { prelude_connection_t *arg1 = (prelude_connection_t *) 0 ; bool arg2 ; void *argp1 = 0 ; int res1 = 0 ; bool val2 ; int ecode2 = 0 ; int argvi = 0; Prelude::Connection *result = 0 ; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: new_Connection(con,own_data);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_prelude_connection_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Connection" "', argument " "1"" of type '" "prelude_connection_t *""'"); } arg1 = reinterpret_cast< prelude_connection_t * >(argp1); ecode2 = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Connection" "', argument " "2"" of type '" "bool""'"); } arg2 = static_cast< bool >(val2); { try { result = (Prelude::Connection *)new Prelude::Connection(arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Connection, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_Connection__SWIG_4) { { prelude_connection_t *arg1 = (prelude_connection_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::Connection *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_Connection(con);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_prelude_connection_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Connection" "', argument " "1"" of type '" "prelude_connection_t *""'"); } arg1 = reinterpret_cast< prelude_connection_t * >(argp1); { try { result = (Prelude::Connection *)new Prelude::Connection(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Connection, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_Connection) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 0) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__Connection, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_prelude_connection_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_prelude_connection_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 5; if (_rank == _rankm) goto dispatch; } } check_5: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Connection__SWIG_0); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Connection__SWIG_2); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Connection__SWIG_4); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Connection__SWIG_1); return; case 5: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Connection__SWIG_3); return; } } croak("No matching function for overloaded 'new_Connection'"); XSRETURN(0); } XS(_wrap_Connection_getConnection) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; prelude_connection_t *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_getConnection(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getConnection" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (prelude_connection_t *)((Prelude::Connection const *)arg1)->getConnection(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_prelude_connection_t, 0 | 0); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_close) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_close(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_close" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { (arg1)->close(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_connect) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; Prelude::ClientProfile *arg2 = 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: Connection_connect(self,cp,permission);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_connect" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__ClientProfile, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Connection_connect" "', argument " "2"" of type '" "Prelude::ClientProfile &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Connection_connect" "', argument " "2"" of type '" "Prelude::ClientProfile &""'"); } arg2 = reinterpret_cast< Prelude::ClientProfile * >(argp2); ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Connection_connect" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); { try { (arg1)->connect(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_setState) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: Connection_setState(self,state);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_setState" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Connection_setState" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { (arg1)->setState(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_getState) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_getState(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getState" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (int)((Prelude::Connection const *)arg1)->getState(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_setData) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: Connection_setData(self,data);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_setData" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); res2 = SWIG_ConvertPtr(ST(1),SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Connection_setData" "', argument " "2"" of type '" "void *""'"); } { try { (arg1)->setData(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_getData) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; void *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_getData(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getData" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (void *)((Prelude::Connection const *)arg1)->getData(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_getPermission) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_getPermission(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getPermission" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (int)((Prelude::Connection const *)arg1)->getPermission(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_setPeerAnalyzerid) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; uint64_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long long val2 ; int ecode2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: Connection_setPeerAnalyzerid(self,analyzerid);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_setPeerAnalyzerid" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Connection_setPeerAnalyzerid" "', argument " "2"" of type '" "uint64_t""'"); } arg2 = static_cast< uint64_t >(val2); { try { (arg1)->setPeerAnalyzerid(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_getPeerAnalyzerid) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; uint64_t result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_getPeerAnalyzerid(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getPeerAnalyzerid" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (uint64_t)((Prelude::Connection const *)arg1)->getPeerAnalyzerid(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_1(static_cast< unsigned long long >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_getLocalAddr) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; char *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_getLocalAddr(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getLocalAddr" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (char *)((Prelude::Connection const *)arg1)->getLocalAddr(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_getLocalPort) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; unsigned int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_getLocalPort(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getLocalPort" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (unsigned int)((Prelude::Connection const *)arg1)->getLocalPort(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_unsigned_SS_int SWIG_PERL_CALL_ARGS_1(static_cast< unsigned int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_getPeerAddr) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; char *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_getPeerAddr(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getPeerAddr" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (char *)((Prelude::Connection const *)arg1)->getPeerAddr(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_getPeerPort) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; unsigned int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_getPeerPort(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getPeerPort" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (unsigned int)((Prelude::Connection const *)arg1)->getPeerPort(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_unsigned_SS_int SWIG_PERL_CALL_ARGS_1(static_cast< unsigned int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_isAlive) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_isAlive(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_isAlive" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (bool)((Prelude::Connection const *)arg1)->isAlive(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_getFd) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_getFd(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getFd" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (int)((Prelude::Connection const *)arg1)->getFd(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Connection_recvIDMEF) { { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEF result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Connection_recvIDMEF(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_recvIDMEF" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (arg1)->recvIDMEF(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj((new Prelude::IDMEF(static_cast< const Prelude::IDMEF& >(result))), SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_OWN | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_delete_ConnectionPool) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_ConnectionPool(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ConnectionPool" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_ConnectionPool__SWIG_0) { { int argvi = 0; Prelude::ConnectionPool *result = 0 ; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: new_ConnectionPool();"); } { try { result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ConnectionPool, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_ConnectionPool__SWIG_1) { { prelude_connection_pool_t *arg1 = (prelude_connection_pool_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::ConnectionPool *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_ConnectionPool(pool);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_prelude_connection_pool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ConnectionPool" "', argument " "1"" of type '" "prelude_connection_pool_t *""'"); } arg1 = reinterpret_cast< prelude_connection_pool_t * >(argp1); { try { result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ConnectionPool, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_ConnectionPool__SWIG_2) { { Prelude::ConnectionPool *arg1 = 0 ; void *argp1 ; int res1 = 0 ; int argvi = 0; Prelude::ConnectionPool *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_ConnectionPool(pool);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__ConnectionPool, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ConnectionPool" "', argument " "1"" of type '" "Prelude::ConnectionPool const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ConnectionPool" "', argument " "1"" of type '" "Prelude::ConnectionPool const &""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool((Prelude::ConnectionPool const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ConnectionPool, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_ConnectionPool__SWIG_3) { { Prelude::ClientProfile *arg1 = 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; Prelude::ConnectionPool *result = 0 ; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: new_ConnectionPool(cp,permission);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__ClientProfile, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ConnectionPool" "', argument " "1"" of type '" "Prelude::ClientProfile &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ConnectionPool" "', argument " "1"" of type '" "Prelude::ClientProfile &""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ConnectionPool" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool(*arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ConnectionPool, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_ConnectionPool) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 0) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_prelude_connection_pool_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__ConnectionPool, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__ClientProfile, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConnectionPool__SWIG_0); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConnectionPool__SWIG_1); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConnectionPool__SWIG_2); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConnectionPool__SWIG_3); return; } } croak("No matching function for overloaded 'new_ConnectionPool'"); XSRETURN(0); } XS(_wrap_ConnectionPool_init) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ConnectionPool_init(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_init" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { (arg1)->init(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ConnectionPool_setConnectionString) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: ConnectionPool_setConnectionString(self,str);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_setConnectionString" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConnectionPool_setConnectionString" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { (arg1)->setConnectionString((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_ConnectionPool_getConnectionString) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; char *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ConnectionPool_getConnectionString(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_getConnectionString" "', argument " "1"" of type '" "Prelude::ConnectionPool const *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { result = (char *)((Prelude::ConnectionPool const *)arg1)->getConnectionString(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ConnectionPool_getConnectionList) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::vector< Prelude::Connection > result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ConnectionPool_getConnectionList(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_getConnectionList" "', argument " "1"" of type '" "Prelude::ConnectionPool const *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { result = ((Prelude::ConnectionPool const *)arg1)->getConnectionList(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { size_t len = (&result)->size(); SV **svs = new SV*[len]; for (size_t i=0; i 2)) { SWIG_croak("Usage: ConnectionPool_setFlags(self,flags);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_setFlags" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ConnectionPool_setFlags" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { (arg1)->setFlags(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ConnectionPool_getFlags) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ConnectionPool_getFlags(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_getFlags" "', argument " "1"" of type '" "Prelude::ConnectionPool const *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { result = (int)((Prelude::ConnectionPool const *)arg1)->getFlags(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ConnectionPool_setData) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: ConnectionPool_setData(self,data);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_setData" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); res2 = SWIG_ConvertPtr(ST(1),SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConnectionPool_setData" "', argument " "2"" of type '" "void *""'"); } { try { (arg1)->setData(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ConnectionPool_getData) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; void *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: ConnectionPool_getData(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_getData" "', argument " "1"" of type '" "Prelude::ConnectionPool const *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { result = (void *)((Prelude::ConnectionPool const *)arg1)->getData(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ConnectionPool_addConnection) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: ConnectionPool_addConnection(self,con);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_addConnection" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__Connection, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConnectionPool_addConnection" "', argument " "2"" of type '" "Prelude::Connection""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConnectionPool_addConnection" "', argument " "2"" of type '" "Prelude::Connection""'"); } else { arg2 = *(reinterpret_cast< Prelude::Connection * >(argp2)); } } { try { (arg1)->addConnection(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ConnectionPool_delConnection) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: ConnectionPool_delConnection(self,con);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_delConnection" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__Connection, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConnectionPool_delConnection" "', argument " "2"" of type '" "Prelude::Connection""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConnectionPool_delConnection" "', argument " "2"" of type '" "Prelude::Connection""'"); } else { arg2 = *(reinterpret_cast< Prelude::Connection * >(argp2)); } } { try { (arg1)->delConnection(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ConnectionPool_setConnectionAlive) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: ConnectionPool_setConnectionAlive(self,con);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_setConnectionAlive" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__Connection, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConnectionPool_setConnectionAlive" "', argument " "2"" of type '" "Prelude::Connection &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConnectionPool_setConnectionAlive" "', argument " "2"" of type '" "Prelude::Connection &""'"); } arg2 = reinterpret_cast< Prelude::Connection * >(argp2); { try { (arg1)->setConnectionAlive(*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ConnectionPool_setConnectionDead) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: ConnectionPool_setConnectionDead(self,con);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_setConnectionDead" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__Connection, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConnectionPool_setConnectionDead" "', argument " "2"" of type '" "Prelude::Connection &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConnectionPool_setConnectionDead" "', argument " "2"" of type '" "Prelude::Connection &""'"); } arg2 = reinterpret_cast< Prelude::Connection * >(argp2); { try { (arg1)->setConnectionDead(*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_ConnectionPool_setRequiredPermission) { { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: ConnectionPool_setRequiredPermission(self,permission);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_setRequiredPermission" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ConnectionPool_setRequiredPermission" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { (arg1)->setRequiredPermission(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_delete_Client) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_Client(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Client" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_Client__SWIG_0) { { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int argvi = 0; Prelude::Client *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_Client(profile);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Client" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::Client *)new Prelude::Client((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; SWIG_croak_null(); } } XS(_wrap_new_Client__SWIG_1) { { Prelude::Client *arg1 = 0 ; void *argp1 ; int res1 = 0 ; int argvi = 0; Prelude::Client *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_Client(client);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__Client, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Client" "', argument " "1"" of type '" "Prelude::Client const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Client" "', argument " "1"" of type '" "Prelude::Client const &""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { result = (Prelude::Client *)new Prelude::Client((Prelude::Client const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_Client) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__Client, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Client__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Client__SWIG_0); return; } } croak("No matching function for overloaded 'new_Client'"); XSRETURN(0); } XS(_wrap_Client_start) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Client_start(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_start" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { (arg1)->start(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_init) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Client_init(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_init" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { (arg1)->init(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_getClient) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; prelude_client_t *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Client_getClient(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_getClient" "', argument " "1"" of type '" "Prelude::Client const *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { result = (prelude_client_t *)((Prelude::Client const *)arg1)->getClient(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_prelude_client_t, 0 | 0); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_sendIDMEF) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: Client_sendIDMEF(self,message);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_sendIDMEF" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client_sendIDMEF" "', argument " "2"" of type '" "Prelude::IDMEF const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client_sendIDMEF" "', argument " "2"" of type '" "Prelude::IDMEF const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { (arg1)->sendIDMEF((Prelude::IDMEF const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_recvIDMEF__SWIG_0) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: Client_recvIDMEF(self,idmef,timeout);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_recvIDMEF" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client_recvIDMEF" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client_recvIDMEF" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Client_recvIDMEF" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); { try { result = (int)(arg1)->recvIDMEF(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_recvIDMEF__SWIG_1) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: Client_recvIDMEF(self,idmef);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_recvIDMEF" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client_recvIDMEF" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client_recvIDMEF" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = (int)(arg1)->recvIDMEF(*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_recvIDMEF) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__Client, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__Client, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_Client_recvIDMEF__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_Client_recvIDMEF__SWIG_0); return; } } croak("No matching function for overloaded 'Client_recvIDMEF'"); XSRETURN(0); } XS(_wrap_Client_getFlags) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Client_getFlags(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_getFlags" "', argument " "1"" of type '" "Prelude::Client const *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { result = (int)((Prelude::Client const *)arg1)->getFlags(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_setFlags) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: Client_setFlags(self,flags);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_setFlags" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Client_setFlags" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { (arg1)->setFlags(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_getRequiredPermission) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Client_getRequiredPermission(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_getRequiredPermission" "', argument " "1"" of type '" "Prelude::Client const *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { result = (int)((Prelude::Client const *)arg1)->getRequiredPermission(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_setRequiredPermission) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: Client_setRequiredPermission(self,permission);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_setRequiredPermission" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Client_setRequiredPermission" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { (arg1)->setRequiredPermission(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_getConfigFilename) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; char *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Client_getConfigFilename(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_getConfigFilename" "', argument " "1"" of type '" "Prelude::Client const *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { result = (char *)((Prelude::Client const *)arg1)->getConfigFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_setConfigFilename) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: Client_setConfigFilename(self,name);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_setConfigFilename" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client_setConfigFilename" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { (arg1)->setConfigFilename((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_Client_getConnectionPool) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::ConnectionPool *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: Client_getConnectionPool(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_getConnectionPool" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { result = (Prelude::ConnectionPool *) &(arg1)->getConnectionPool(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ConnectionPool, 0 | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_setConnectionPool) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::ConnectionPool arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: Client_setConnectionPool(self,pool);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_setConnectionPool" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__ConnectionPool, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client_setConnectionPool" "', argument " "2"" of type '" "Prelude::ConnectionPool""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client_setConnectionPool" "', argument " "2"" of type '" "Prelude::ConnectionPool""'"); } else { arg2 = *(reinterpret_cast< Prelude::ConnectionPool * >(argp2)); } } { try { (arg1)->setConnectionPool(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client___lshift__) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; Prelude::Client *result = 0 ; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: Client___lshift__(self,idmef);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client___lshift__" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client___lshift__" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client___lshift__" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = (Prelude::Client *) &(arg1)->operator <<(*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, 0 | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client___rshift__) { { Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; Prelude::Client *result = 0 ; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: Client___rshift__(self,idmef);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client___rshift__" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client___rshift__" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client___rshift__" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = (Prelude::Client *) &(arg1)->operator >>(*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, 0 | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_Client_setRecvTimeout) { { Prelude::Client *arg1 = 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; Prelude::Client *result = 0 ; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: Client_setRecvTimeout(c,timeout);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__Client, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_setRecvTimeout" "', argument " "1"" of type '" "Prelude::Client &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client_setRecvTimeout" "', argument " "1"" of type '" "Prelude::Client &""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Client_setRecvTimeout" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = (Prelude::Client *) &Prelude::Client::setRecvTimeout(*arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, 0 | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_PreludeLog_setLevel) { { int arg1 ; int val1 ; int ecode1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: PreludeLog_setLevel(level);"); } ecode1 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "PreludeLog_setLevel" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); { try { Prelude::PreludeLog::setLevel(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_PreludeLog_setDebugLevel) { { int arg1 ; int val1 ; int ecode1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: PreludeLog_setDebugLevel(level);"); } ecode1 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "PreludeLog_setDebugLevel" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); { try { Prelude::PreludeLog::setDebugLevel(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_PreludeLog_setFlags) { { int arg1 ; int val1 ; int ecode1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: PreludeLog_setFlags(flags);"); } ecode1 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "PreludeLog_setFlags" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); { try { Prelude::PreludeLog::setFlags(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_PreludeLog_getFlags) { { int argvi = 0; int result; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: PreludeLog_getFlags();"); } { try { result = (int)Prelude::PreludeLog::getFlags(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_PreludeLog_setLogfile) { { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: PreludeLog_setLogfile(filename);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PreludeLog_setLogfile" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { Prelude::PreludeLog::setLogfile((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; SWIG_croak_null(); } } XS(_wrap_PreludeLog_setCallback) { { void (*arg1)(int,char const *) = (void (*)(int,char const *)) 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: PreludeLog_setCallback(log_cb);"); } { if ( __prelude_log_func ) SvREFCNT_dec(__prelude_log_func); __prelude_log_func = ST(0); SvREFCNT_inc(ST(0)); arg1 = _cb_perl_log; } { try { Prelude::PreludeLog::setCallback(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_PreludeLog) { { int argvi = 0; Prelude::PreludeLog *result = 0 ; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: new_PreludeLog();"); } { try { result = (Prelude::PreludeLog *)new Prelude::PreludeLog(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__PreludeLog, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_delete_PreludeLog) { { Prelude::PreludeLog *arg1 = (Prelude::PreludeLog *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_PreludeLog(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__PreludeLog, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PreludeLog" "', argument " "1"" of type '" "Prelude::PreludeLog *""'"); } arg1 = reinterpret_cast< Prelude::PreludeLog * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_delete_PreludeError) { { Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_PreludeError(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PreludeError" "', argument " "1"" of type '" "Prelude::PreludeError *""'"); } arg1 = reinterpret_cast< Prelude::PreludeError * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_PreludeError__SWIG_0) { { int argvi = 0; Prelude::PreludeError *result = 0 ; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: new_PreludeError();"); } { try { result = (Prelude::PreludeError *)new Prelude::PreludeError(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__PreludeError, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_PreludeError__SWIG_1) { { int arg1 ; int val1 ; int ecode1 = 0 ; int argvi = 0; Prelude::PreludeError *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_PreludeError(error);"); } ecode1 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_PreludeError" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); { try { result = (Prelude::PreludeError *)new Prelude::PreludeError(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__PreludeError, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_PreludeError__SWIG_2) { { std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; int argvi = 0; Prelude::PreludeError *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_PreludeError(message);"); } { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(0), &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_PreludeError" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_PreludeError" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } { try { result = (Prelude::PreludeError *)new Prelude::PreludeError((std::string const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__PreludeError, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (SWIG_IsNewObj(res1)) delete arg1; XSRETURN(argvi); fail: if (SWIG_IsNewObj(res1)) delete arg1; SWIG_croak_null(); } } XS(_wrap_new_PreludeError) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 0) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(0), (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_PreludeError__SWIG_0); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_PreludeError__SWIG_1); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_PreludeError__SWIG_2); return; } } croak("No matching function for overloaded 'new_PreludeError'"); XSRETURN(0); } XS(_wrap_PreludeError_getCode) { { Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: PreludeError_getCode(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__PreludeError, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PreludeError_getCode" "', argument " "1"" of type '" "Prelude::PreludeError const *""'"); } arg1 = reinterpret_cast< Prelude::PreludeError * >(argp1); { try { result = (int)((Prelude::PreludeError const *)arg1)->getCode(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_PreludeError_what) { { Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; char *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: PreludeError_what(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__PreludeError, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PreludeError_what" "', argument " "1"" of type '" "Prelude::PreludeError const *""'"); } arg1 = reinterpret_cast< Prelude::PreludeError * >(argp1); { try { result = (char *)((Prelude::PreludeError const *)arg1)->what(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_ClientEasy__SWIG_0) { { char *arg1 = (char *) 0 ; int arg2 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; char *arg5 = (char *) 0 ; char *arg6 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int val2 ; int ecode2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; int res6 ; char *buf6 = 0 ; int alloc6 = 0 ; int argvi = 0; Prelude::ClientEasy *result = 0 ; dXSARGS; if ((items < 6) || (items > 6)) { SWIG_croak("Usage: new_ClientEasy(profile,permission,model,classname,manufacturer,version);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientEasy" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ClientEasy" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ClientEasy" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(ST(3), &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_ClientEasy" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); res5 = SWIG_AsCharPtrAndSize(ST(4), &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "new_ClientEasy" "', argument " "5"" of type '" "char const *""'"); } arg5 = reinterpret_cast< char * >(buf5); res6 = SWIG_AsCharPtrAndSize(ST(5), &buf6, NULL, &alloc6); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "new_ClientEasy" "', argument " "6"" of type '" "char const *""'"); } arg6 = reinterpret_cast< char * >(buf6); { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientEasy, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; SWIG_croak_null(); } } XS(_wrap_new_ClientEasy__SWIG_1) { { char *arg1 = (char *) 0 ; int arg2 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; char *arg5 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int val2 ; int ecode2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; int argvi = 0; Prelude::ClientEasy *result = 0 ; dXSARGS; if ((items < 5) || (items > 5)) { SWIG_croak("Usage: new_ClientEasy(profile,permission,model,classname,manufacturer);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientEasy" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ClientEasy" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ClientEasy" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(ST(3), &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_ClientEasy" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); res5 = SWIG_AsCharPtrAndSize(ST(4), &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "new_ClientEasy" "', argument " "5"" of type '" "char const *""'"); } arg5 = reinterpret_cast< char * >(buf5); { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientEasy, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; SWIG_croak_null(); } } XS(_wrap_new_ClientEasy__SWIG_2) { { char *arg1 = (char *) 0 ; int arg2 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int val2 ; int ecode2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; int argvi = 0; Prelude::ClientEasy *result = 0 ; dXSARGS; if ((items < 4) || (items > 4)) { SWIG_croak("Usage: new_ClientEasy(profile,permission,model,classname);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientEasy" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ClientEasy" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ClientEasy" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(ST(3), &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_ClientEasy" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientEasy, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; SWIG_croak_null(); } } XS(_wrap_new_ClientEasy__SWIG_3) { { char *arg1 = (char *) 0 ; int arg2 ; char *arg3 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int val2 ; int ecode2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int argvi = 0; Prelude::ClientEasy *result = 0 ; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: new_ClientEasy(profile,permission,model);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientEasy" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ClientEasy" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ClientEasy" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1,arg2,(char const *)arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientEasy, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; SWIG_croak_null(); } } XS(_wrap_new_ClientEasy__SWIG_4) { { char *arg1 = (char *) 0 ; int arg2 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; Prelude::ClientEasy *result = 0 ; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: new_ClientEasy(profile,permission);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientEasy" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ClientEasy" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientEasy, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; SWIG_croak_null(); } } XS(_wrap_new_ClientEasy__SWIG_5) { { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int argvi = 0; Prelude::ClientEasy *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_ClientEasy(profile);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientEasy" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientEasy, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; SWIG_croak_null(); } } XS(_wrap_new_ClientEasy) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(2), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 4) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(2), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(3), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: if (items == 5) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(2), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(3), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(4), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 5; if (_rank == _rankm) goto dispatch; } } check_5: if (items == 6) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(2), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(3), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(4), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(5), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 6; if (_rank == _rankm) goto dispatch; } } check_6: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ClientEasy__SWIG_5); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ClientEasy__SWIG_4); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ClientEasy__SWIG_3); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ClientEasy__SWIG_2); return; case 5: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ClientEasy__SWIG_1); return; case 6: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ClientEasy__SWIG_0); return; } } croak("No matching function for overloaded 'new_ClientEasy'"); XSRETURN(0); } XS(_wrap_delete_ClientEasy) { { Prelude::ClientEasy *arg1 = (Prelude::ClientEasy *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_ClientEasy(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__ClientEasy, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ClientEasy" "', argument " "1"" of type '" "Prelude::ClientEasy *""'"); } arg1 = reinterpret_cast< Prelude::ClientEasy * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFCriterion) { { int argvi = 0; Prelude::IDMEFCriterion *result = 0 ; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: new_IDMEFCriterion();"); } { try { result = (Prelude::IDMEFCriterion *)new Prelude::IDMEFCriterion(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFCriterion, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_delete_IDMEFCriterion) { { Prelude::IDMEFCriterion *arg1 = (Prelude::IDMEFCriterion *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_IDMEFCriterion(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFCriterion, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEFCriterion" "', argument " "1"" of type '" "Prelude::IDMEFCriterion *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriterion * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_delete_IDMEFCriteria) { { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_IDMEFCriteria(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEFCriteria" "', argument " "1"" of type '" "Prelude::IDMEFCriteria *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFCriteria__SWIG_0) { { int argvi = 0; Prelude::IDMEFCriteria *result = 0 ; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: new_IDMEFCriteria();"); } { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFCriteria__SWIG_1) { { Prelude::IDMEFCriteria *arg1 = 0 ; void *argp1 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFCriteria *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFCriteria(criteria);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__IDMEFCriteria, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFCriteria" "', argument " "1"" of type '" "Prelude::IDMEFCriteria const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFCriteria" "', argument " "1"" of type '" "Prelude::IDMEFCriteria const &""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria((Prelude::IDMEFCriteria const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFCriteria__SWIG_2) { { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int argvi = 0; Prelude::IDMEFCriteria *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFCriteria(criteria);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFCriteria" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; SWIG_croak_null(); } } XS(_wrap_new_IDMEFCriteria__SWIG_3) { { std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; int argvi = 0; Prelude::IDMEFCriteria *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFCriteria(criteria);"); } { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(0), &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFCriteria" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFCriteria" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria((std::string const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (SWIG_IsNewObj(res1)) delete arg1; XSRETURN(argvi); fail: if (SWIG_IsNewObj(res1)) delete arg1; SWIG_croak_null(); } } XS(_wrap_new_IDMEFCriteria__SWIG_4) { { idmef_criteria_t *arg1 = (idmef_criteria_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFCriteria *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFCriteria(criteria);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_idmef_criteria_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFCriteria" "', argument " "1"" of type '" "idmef_criteria_t *""'"); } arg1 = reinterpret_cast< idmef_criteria_t * >(argp1); { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFCriteria) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 0) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_idmef_criteria_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(0), (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 5; if (_rank == _rankm) goto dispatch; } } check_5: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFCriteria__SWIG_0); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFCriteria__SWIG_1); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFCriteria__SWIG_4); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFCriteria__SWIG_3); return; case 5: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFCriteria__SWIG_2); return; } } croak("No matching function for overloaded 'new_IDMEFCriteria'"); XSRETURN(0); } XS(_wrap_IDMEFCriteria_match) { { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEF *arg2 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFCriteria_match(self,message);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFCriteria_match" "', argument " "1"" of type '" "Prelude::IDMEFCriteria const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFCriteria_match" "', argument " "2"" of type '" "Prelude::IDMEF *""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = (int)((Prelude::IDMEFCriteria const *)arg1)->match(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFCriteria_clone) { { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFCriteria result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFCriteria_clone(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFCriteria_clone" "', argument " "1"" of type '" "Prelude::IDMEFCriteria const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { result = ((Prelude::IDMEFCriteria const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj((new Prelude::IDMEFCriteria(static_cast< const Prelude::IDMEFCriteria& >(result))), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_POINTER_OWN | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFCriteria_andCriteria) { { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEFCriteria *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFCriteria_andCriteria(self,criteria);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFCriteria_andCriteria" "', argument " "1"" of type '" "Prelude::IDMEFCriteria *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFCriteria, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFCriteria_andCriteria" "', argument " "2"" of type '" "Prelude::IDMEFCriteria const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFCriteria_andCriteria" "', argument " "2"" of type '" "Prelude::IDMEFCriteria const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp2); { try { (arg1)->andCriteria((Prelude::IDMEFCriteria const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFCriteria_orCriteria) { { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEFCriteria *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFCriteria_orCriteria(self,criteria);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFCriteria_orCriteria" "', argument " "1"" of type '" "Prelude::IDMEFCriteria *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFCriteria, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFCriteria_orCriteria" "', argument " "2"" of type '" "Prelude::IDMEFCriteria const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFCriteria_orCriteria" "', argument " "2"" of type '" "Prelude::IDMEFCriteria const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp2); { try { (arg1)->orCriteria((Prelude::IDMEFCriteria const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFCriteria_toString) { { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFCriteria_toString(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFCriteria_toString" "', argument " "1"" of type '" "Prelude::IDMEFCriteria const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { result = ((Prelude::IDMEFCriteria const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFValue_getType) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFValue::IDMEFValueTypeEnum result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFValue_getType(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue_getType" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)((Prelude::IDMEFValue const *)arg1)->getType(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFValue_isNull) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFValue_isNull(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue_isNull" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->isNull(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_0) { { int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: new_IDMEFValue();"); } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_delete_IDMEFValue) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_IDMEFValue(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEFValue" "', argument " "1"" of type '" "Prelude::IDMEFValue *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_1) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFValue(idmef);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_2) { { std::vector< Prelude::IDMEF > *arg1 = 0 ; std::vector< Prelude::IDMEF > temp1 ; std::vector< Prelude::IDMEF > *v1 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFValue(value);"); } { if (SWIG_ConvertPtr(ST(0),(void **) &v1, SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t,1) != -1) { arg1 = v1; } else if (SvROK(ST(0))) { AV *av = (AV *)SvRV(ST(0)); if (SvTYPE(av) != SVt_PVAV) SWIG_croak("Type error in argument 1 of new_IDMEFValue. " "Expected an array of " "Prelude::IDMEF"); SV **tv; I32 len = av_len(av) + 1; Prelude::IDMEF* obj; for (int i=0; i const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_3) { { Prelude::IDMEFValue *arg1 = 0 ; void *argp1 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFValue(value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "Prelude::IDMEFValue const &""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((Prelude::IDMEFValue const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_4) { { std::vector< Prelude::IDMEFValue > *arg1 = 0 ; std::vector< Prelude::IDMEFValue > temp1 ; std::vector< Prelude::IDMEFValue > *v1 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFValue(value);"); } { if (SWIG_ConvertPtr(ST(0),(void **) &v1, SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t,1) != -1) { arg1 = v1; } else if (SvROK(ST(0))) { AV *av = (AV *)SvRV(ST(0)); if (SvTYPE(av) != SVt_PVAV) SWIG_croak("Type error in argument 1 of new_IDMEFValue. " "Expected an array of " "Prelude::IDMEFValue"); SV **tv; I32 len = av_len(av) + 1; Prelude::IDMEFValue* obj; for (int i=0; i const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_5) { { idmef_value_t *arg1 = (idmef_value_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFValue(value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_idmef_value_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "idmef_value_t *""'"); } arg1 = reinterpret_cast< idmef_value_t * >(argp1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_6) { { std::string *arg1 = 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; int res1 = SWIG_OLDOBJ ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: new_IDMEFValue(value,path);"); } { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(0), &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_IDMEFValue" "', argument " "2"" of type '" "Prelude::IDMEFPath *""'"); } arg2 = reinterpret_cast< Prelude::IDMEFPath * >(argp2); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::string const &)*arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (SWIG_IsNewObj(res1)) delete arg1; XSRETURN(argvi); fail: if (SWIG_IsNewObj(res1)) delete arg1; SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_7) { { std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFValue(value);"); } { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(0), &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::string const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (SWIG_IsNewObj(res1)) delete arg1; XSRETURN(argvi); fail: if (SWIG_IsNewObj(res1)) delete arg1; SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_8) { { char *arg1 = (char *) 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: new_IDMEFValue(value,path);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_IDMEFValue" "', argument " "2"" of type '" "Prelude::IDMEFPath *""'"); } arg2 = reinterpret_cast< Prelude::IDMEFPath * >(argp2); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((char const *)arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_9) { { int32_t arg1 ; int val1 ; int ecode1 = 0 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFValue(value);"); } ecode1 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "int32_t""'"); } arg1 = static_cast< int32_t >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_10) { { int64_t arg1 ; long long val1 ; int ecode1 = 0 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFValue(value);"); } ecode1 = SWIG_AsVal_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(0), &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "int64_t""'"); } arg1 = static_cast< int64_t >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_11) { { uint64_t arg1 ; unsigned long long val1 ; int ecode1 = 0 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFValue(value);"); } ecode1 = SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(0), &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "uint64_t""'"); } arg1 = static_cast< uint64_t >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_12) { { float arg1 ; float val1 ; int ecode1 = 0 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFValue(value);"); } ecode1 = SWIG_AsVal_float SWIG_PERL_CALL_ARGS_2(ST(0), &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "float""'"); } arg1 = static_cast< float >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_13) { { double arg1 ; double val1 ; int ecode1 = 0 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFValue(value);"); } ecode1 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(0), &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue__SWIG_14) { { Prelude::IDMEFTime *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFValue *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFValue(time);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "Prelude::IDMEFTime &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "Prelude::IDMEFTime &""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFValue) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 0) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFValue, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_idmef_value_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 5; if (_rank == _rankm) goto dispatch; } } check_5: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 6; if (_rank == _rankm) goto dispatch; } } check_6: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { { int res = SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(0), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_7; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 7; if (_rank == _rankm) goto dispatch; } } check_7: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { { int res = SWIG_AsVal_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(0), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_8; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 8; if (_rank == _rankm) goto dispatch; } } check_8: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { { int res = SWIG_AsVal_float SWIG_PERL_CALL_ARGS_2(ST(0), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_9; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 9; if (_rank == _rankm) goto dispatch; } } check_9: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { { int res = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(0), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_10; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 10; if (_rank == _rankm) goto dispatch; } } check_10: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(0), (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_11; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 11; if (_rank == _rankm) goto dispatch; } } check_11: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { { { /* wrapped vector? */ std::vector< Prelude::IDMEF >* v; if (SWIG_ConvertPtr(ST(0),(void **) &v, SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t,0) != -1) { _v = 1; } else if (SvROK(ST(0))) { /* native sequence? */ AV *av = (AV *)SvRV(ST(0)); if (SvTYPE(av) == SVt_PVAV) { I32 len = av_len(av) + 1; if (len == 0) { /* an empty sequence can be of any type */ _v = 1; } else { /* check the first element only */ Prelude::IDMEF* obj; SV **tv = av_fetch(av, 0, 0); if (SWIG_ConvertPtr(*tv, (void **)&obj, SWIGTYPE_p_Prelude__IDMEF,0) != -1) _v = 1; else _v = 0; } } } else { _v = 0; } } } } if (!_v) goto check_12; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 12; if (_rank == _rankm) goto dispatch; } } check_12: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { { { /* wrapped vector? */ std::vector< Prelude::IDMEFValue >* v; if (SWIG_ConvertPtr(ST(0),(void **) &v, SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t,0) != -1) { _v = 1; } else if (SvROK(ST(0))) { /* native sequence? */ AV *av = (AV *)SvRV(ST(0)); if (SvTYPE(av) == SVt_PVAV) { I32 len = av_len(av) + 1; if (len == 0) { /* an empty sequence can be of any type */ _v = 1; } else { /* check the first element only */ Prelude::IDMEFValue* obj; SV **tv = av_fetch(av, 0, 0); if (SWIG_ConvertPtr(*tv, (void **)&obj, SWIGTYPE_p_Prelude__IDMEFValue,0) != -1) _v = 1; else _v = 0; } } } else { _v = 0; } } } } if (!_v) goto check_13; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 13; if (_rank == _rankm) goto dispatch; } } check_13: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(0), (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_14; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_14; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 14; if (_rank == _rankm) goto dispatch; } } check_14: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_15; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_15; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 15; if (_rank == _rankm) goto dispatch; } } check_15: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_0); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_1); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_3); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_5); return; case 5: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_14); return; case 6: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_9); return; case 7: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_11); return; case 8: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_10); return; case 9: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_12); return; case 10: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_13); return; case 11: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_7); return; case 12: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_2); return; case 13: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_4); return; case 14: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_6); return; case 15: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFValue__SWIG_8); return; } } croak("No matching function for overloaded 'new_IDMEFValue'"); XSRETURN(0); } XS(_wrap_IDMEFValue_match) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFValue_match(self,value,op);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue_match" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue_match" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue_match" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFValue_match" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); { try { result = (int)((Prelude::IDMEFValue const *)arg1)->match((Prelude::IDMEFValue const &)*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFValue_clone) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFValue result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFValue_clone(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue_clone" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = ((Prelude::IDMEFValue const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { int ret; if ( (&result)->isNull() ) { SvREFCNT_inc (& PL_sv_undef); ST(argvi) = &PL_sv_undef; } else { SV *mysv; ret = IDMEFValue_to_SWIG(NULL, result, NULL, &mysv); if ( ret < 0 ) { std::stringstream s; s << "IDMEFValue typemap does not handle value of type '" << idmef_value_type_to_string((idmef_value_type_id_t) (&result)->getType()) << "'"; SWIG_exception_fail(SWIG_ValueError, s.str().c_str()); } ST(argvi) = mysv; } argvi++; } XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFValue_toString) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFValue_toString(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue_toString" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = ((Prelude::IDMEFValue const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFValue___eq____SWIG_0) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; std::vector< Prelude::IDMEFValue > *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; std::vector< Prelude::IDMEFValue > temp2 ; std::vector< Prelude::IDMEFValue > *v2 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFValue___eq__(self,vlist);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___eq__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { if (SWIG_ConvertPtr(ST(1),(void **) &v2, SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t,1) != -1) { arg2 = v2; } else if (SvROK(ST(1))) { AV *av = (AV *)SvRV(ST(1)); if (SvTYPE(av) != SVt_PVAV) SWIG_croak("Type error in argument 2 of IDMEFValue___eq__. " "Expected an array of " "Prelude::IDMEFValue"); SV **tv; I32 len = av_len(av) + 1; Prelude::IDMEFValue* obj; for (int i=0; ioperator ==((std::vector< Prelude::IDMEFValue > const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFValue___le__) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFValue___le__(self,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___le__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___le__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___le__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator <=((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFValue___ge__) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFValue___ge__(self,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___ge__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___ge__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___ge__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator >=((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFValue___lt__) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFValue___lt__(self,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___lt__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___lt__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___lt__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator <((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFValue___gt__) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFValue___gt__(self,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___gt__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___gt__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___gt__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator >((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFValue___eq____SWIG_1) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFValue___eq__(self,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___eq__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___eq__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___eq__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator ==((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFValue___eq__) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFValue, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEFValue, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFValue, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { { /* wrapped vector? */ std::vector< Prelude::IDMEFValue >* v; if (SWIG_ConvertPtr(ST(1),(void **) &v, SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t,0) != -1) { _v = 1; } else if (SvROK(ST(1))) { /* native sequence? */ AV *av = (AV *)SvRV(ST(1)); if (SvTYPE(av) == SVt_PVAV) { I32 len = av_len(av) + 1; if (len == 0) { /* an empty sequence can be of any type */ _v = 1; } else { /* check the first element only */ Prelude::IDMEFValue* obj; SV **tv = av_fetch(av, 0, 0); if (SWIG_ConvertPtr(*tv, (void **)&obj, SWIGTYPE_p_Prelude__IDMEFValue,0) != -1) _v = 1; else _v = 0; } } } else { _v = 0; } } } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFValue___eq____SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFValue___eq____SWIG_0); return; } } croak("No matching function for overloaded 'IDMEFValue___eq__'"); XSRETURN(0); } XS(_wrap_IDMEFValue___ne__) { { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFValue___ne__(self,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___ne__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___ne__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___ne__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator !=((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFPath__SWIG_0) { { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int argvi = 0; Prelude::IDMEFPath *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFPath(buffer);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFPath" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFPath, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; SWIG_croak_null(); } } XS(_wrap_new_IDMEFPath__SWIG_1) { { Prelude::IDMEF *arg1 = 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int argvi = 0; Prelude::IDMEFPath *result = 0 ; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: new_IDMEFPath(idmef,buffer);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFPath" "', argument " "1"" of type '" "Prelude::IDMEF &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFPath" "', argument " "1"" of type '" "Prelude::IDMEF &""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_IDMEFPath" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath(*arg1,(char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFPath, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_new_IDMEFPath__SWIG_2) { { idmef_path_t *arg1 = (idmef_path_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFPath *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFPath(path);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_idmef_path_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFPath" "', argument " "1"" of type '" "idmef_path_t *""'"); } arg1 = reinterpret_cast< idmef_path_t * >(argp1); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFPath, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFPath__SWIG_3) { { Prelude::IDMEFPath *arg1 = 0 ; void *argp1 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFPath *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFPath(path);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__IDMEFPath, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFPath" "', argument " "1"" of type '" "Prelude::IDMEFPath const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFPath" "', argument " "1"" of type '" "Prelude::IDMEFPath const &""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath((Prelude::IDMEFPath const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFPath, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFPath) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_idmef_path_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFPath__SWIG_2); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFPath__SWIG_3); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFPath__SWIG_0); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFPath__SWIG_1); return; } } croak("No matching function for overloaded 'new_IDMEFPath'"); XSRETURN(0); } XS(_wrap_delete_IDMEFPath) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_IDMEFPath(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEFPath" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_set__SWIG_0) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; std::vector< Prelude::IDMEF > *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; std::vector< Prelude::IDMEF > temp3 ; std::vector< Prelude::IDMEF > *v3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_set(self,message,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { if (SWIG_ConvertPtr(ST(2),(void **) &v3, SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t,1) != -1) { arg3 = v3; } else if (SvROK(ST(2))) { AV *av = (AV *)SvRV(ST(2)); if (SvTYPE(av) != SVt_PVAV) SWIG_croak("Type error in argument 3 of IDMEFPath_set. " "Expected an array of " "Prelude::IDMEF"); SV **tv; I32 len = av_len(av) + 1; Prelude::IDMEF* obj; for (int i=0; iset(*arg2,(std::vector< Prelude::IDMEF > const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_set__SWIG_1) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEF *arg3 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_set(self,message,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "Prelude::IDMEF *""'"); } arg3 = reinterpret_cast< Prelude::IDMEF * >(argp3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_set__SWIG_2) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; std::vector< Prelude::IDMEFValue > *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; std::vector< Prelude::IDMEFValue > temp3 ; std::vector< Prelude::IDMEFValue > *v3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_set(self,message,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { if (SWIG_ConvertPtr(ST(2),(void **) &v3, SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t,1) != -1) { arg3 = v3; } else if (SvROK(ST(2))) { AV *av = (AV *)SvRV(ST(2)); if (SvTYPE(av) != SVt_PVAV) SWIG_croak("Type error in argument 3 of IDMEFPath_set. " "Expected an array of " "Prelude::IDMEFValue"); SV **tv; I32 len = av_len(av) + 1; Prelude::IDMEFValue* obj; for (int i=0; iset(*arg2,(std::vector< Prelude::IDMEFValue > const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_set__SWIG_3) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEFValue *arg3 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_set(self,message,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "Prelude::IDMEFValue *""'"); } arg3 = reinterpret_cast< Prelude::IDMEFValue * >(argp3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_set__SWIG_4) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEFTime *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_set(self,message,time);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); res3 = SWIG_ConvertPtr(ST(2), &argp3, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "Prelude::IDMEFTime &""'"); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "Prelude::IDMEFTime &""'"); } arg3 = reinterpret_cast< Prelude::IDMEFTime * >(argp3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_set__SWIG_5) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; std::string *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int res3 = SWIG_OLDOBJ ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_set(self,message,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { std::string *ptr = (std::string *)0; res3 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(2), &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "std::string const &""'"); } arg3 = ptr; } { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,(std::string const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (SWIG_IsNewObj(res3)) delete arg3; XSRETURN(argvi); fail: if (SWIG_IsNewObj(res3)) delete arg3; SWIG_croak_null(); } } XS(_wrap_IDMEFPath_set__SWIG_6) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; int32_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_set(self,message,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "int32_t""'"); } arg3 = static_cast< int32_t >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_set__SWIG_7) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; int64_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; long long val3 ; int ecode3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_set(self,message,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "int64_t""'"); } arg3 = static_cast< int64_t >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_set__SWIG_8) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; uint64_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; unsigned long long val3 ; int ecode3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_set(self,message,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "uint64_t""'"); } arg3 = static_cast< uint64_t >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_set__SWIG_9) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; float arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; float val3 ; int ecode3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_set(self,message,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_float SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_set__SWIG_10) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; double val3 ; int ecode3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_set(self,message,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_set) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(2), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(2), &vptr, SWIGTYPE_p_Prelude__IDMEFValue, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(2), &vptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 5; if (_rank == _rankm) goto dispatch; } } check_5: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 6; if (_rank == _rankm) goto dispatch; } } check_6: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_7; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_7; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_float SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_7; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 7; if (_rank == _rankm) goto dispatch; } } check_7: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_8; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_8; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_8; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 8; if (_rank == _rankm) goto dispatch; } } check_8: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_9; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_9; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(2), (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_9; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 9; if (_rank == _rankm) goto dispatch; } } check_9: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_10; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_10; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { { /* wrapped vector? */ std::vector< Prelude::IDMEF >* v; if (SWIG_ConvertPtr(ST(2),(void **) &v, SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t,0) != -1) { _v = 1; } else if (SvROK(ST(2))) { /* native sequence? */ AV *av = (AV *)SvRV(ST(2)); if (SvTYPE(av) == SVt_PVAV) { I32 len = av_len(av) + 1; if (len == 0) { /* an empty sequence can be of any type */ _v = 1; } else { /* check the first element only */ Prelude::IDMEF* obj; SV **tv = av_fetch(av, 0, 0); if (SWIG_ConvertPtr(*tv, (void **)&obj, SWIGTYPE_p_Prelude__IDMEF,0) != -1) _v = 1; else _v = 0; } } } else { _v = 0; } } } } if (!_v) goto check_10; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 10; if (_rank == _rankm) goto dispatch; } } check_10: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_11; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_11; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { { /* wrapped vector? */ std::vector< Prelude::IDMEFValue >* v; if (SWIG_ConvertPtr(ST(2),(void **) &v, SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t,0) != -1) { _v = 1; } else if (SvROK(ST(2))) { /* native sequence? */ AV *av = (AV *)SvRV(ST(2)); if (SvTYPE(av) == SVt_PVAV) { I32 len = av_len(av) + 1; if (len == 0) { /* an empty sequence can be of any type */ _v = 1; } else { /* check the first element only */ Prelude::IDMEFValue* obj; SV **tv = av_fetch(av, 0, 0); if (SWIG_ConvertPtr(*tv, (void **)&obj, SWIGTYPE_p_Prelude__IDMEFValue,0) != -1) _v = 1; else _v = 0; } } } else { _v = 0; } } } } if (!_v) goto check_11; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 11; if (_rank == _rankm) goto dispatch; } } check_11: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_set__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_set__SWIG_3); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_set__SWIG_4); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_set__SWIG_6); return; case 5: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_set__SWIG_8); return; case 6: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_set__SWIG_7); return; case 7: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_set__SWIG_9); return; case 8: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_set__SWIG_10); return; case 9: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_set__SWIG_5); return; case 10: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_set__SWIG_0); return; case 11: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_set__SWIG_2); return; } } croak("No matching function for overloaded 'IDMEFPath_set'"); XSRETURN(0); } XS(_wrap_IDMEFPath_getClass__SWIG_0) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; Prelude::IDMEFClass result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFPath_getClass(self,depth);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getClass" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_getClass" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = ((Prelude::IDMEFPath const *)arg1)->getClass(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj((new Prelude::IDMEFClass(static_cast< const Prelude::IDMEFClass& >(result))), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_OWN | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_getClass__SWIG_1) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFClass result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFPath_getClass(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getClass" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = ((Prelude::IDMEFPath const *)arg1)->getClass(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj((new Prelude::IDMEFClass(static_cast< const Prelude::IDMEFClass& >(result))), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_OWN | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_getClass) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_getClass__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_getClass__SWIG_0); return; } } croak("No matching function for overloaded 'IDMEFPath_getClass'"); XSRETURN(0); } XS(_wrap_IDMEFPath_getValueType__SWIG_0) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; Prelude::IDMEFValue::IDMEFValueTypeEnum result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFPath_getValueType(self,depth);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getValueType" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_getValueType" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)((Prelude::IDMEFPath const *)arg1)->getValueType(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_getValueType__SWIG_1) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFValue::IDMEFValueTypeEnum result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFPath_getValueType(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getValueType" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)((Prelude::IDMEFPath const *)arg1)->getValueType(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_getValueType) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_getValueType__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_getValueType__SWIG_0); return; } } croak("No matching function for overloaded 'IDMEFPath_getValueType'"); XSRETURN(0); } XS(_wrap_IDMEFPath_setIndex__SWIG_0) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; unsigned int arg2 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_setIndex(self,index,depth);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_setIndex" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_setIndex" "', argument " "2"" of type '" "unsigned int""'"); } arg2 = static_cast< unsigned int >(val2); ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_setIndex" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); { try { result = (int)(arg1)->setIndex(arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_setIndex__SWIG_1) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; unsigned int arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFPath_setIndex(self,index);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_setIndex" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_setIndex" "', argument " "2"" of type '" "unsigned int""'"); } arg2 = static_cast< unsigned int >(val2); { try { result = (int)(arg1)->setIndex(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_setIndex) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_unsigned_SS_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_unsigned_SS_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_setIndex__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_setIndex__SWIG_0); return; } } croak("No matching function for overloaded 'IDMEFPath_setIndex'"); XSRETURN(0); } XS(_wrap_IDMEFPath_undefineIndex__SWIG_0) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFPath_undefineIndex(self,depth);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_undefineIndex" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_undefineIndex" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = (int)(arg1)->undefineIndex(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_undefineIndex__SWIG_1) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFPath_undefineIndex(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_undefineIndex" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (int)(arg1)->undefineIndex(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_undefineIndex) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_undefineIndex__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_undefineIndex__SWIG_0); return; } } croak("No matching function for overloaded 'IDMEFPath_undefineIndex'"); XSRETURN(0); } XS(_wrap_IDMEFPath_getIndex__SWIG_0) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFPath_getIndex(self,depth);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getIndex" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_getIndex" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = (int)((Prelude::IDMEFPath const *)arg1)->getIndex(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_getIndex__SWIG_1) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFPath_getIndex(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getIndex" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (int)((Prelude::IDMEFPath const *)arg1)->getIndex(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_getIndex) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_getIndex__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_getIndex__SWIG_0); return; } } croak("No matching function for overloaded 'IDMEFPath_getIndex'"); XSRETURN(0); } XS(_wrap_IDMEFPath_makeChild) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; char *arg2 = (char *) 0 ; unsigned int arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; unsigned int val3 ; int ecode3 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_makeChild(self,child_name,index);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_makeChild" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_makeChild" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_unsigned_SS_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_makeChild" "', argument " "3"" of type '" "unsigned int""'"); } arg3 = static_cast< unsigned int >(val3); { try { result = (int)(arg1)->makeChild((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_IDMEFPath_makeParent) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFPath_makeParent(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_makeParent" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (int)(arg1)->makeParent(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_compare__SWIG_0) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFPath_compare(self,path,depth);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_compare" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_compare" "', argument " "2"" of type '" "Prelude::IDMEFPath *""'"); } arg2 = reinterpret_cast< Prelude::IDMEFPath * >(argp2); ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_compare" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); { try { result = (int)((Prelude::IDMEFPath const *)arg1)->compare(arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_compare__SWIG_1) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFPath_compare(self,path);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_compare" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_compare" "', argument " "2"" of type '" "Prelude::IDMEFPath *""'"); } arg2 = reinterpret_cast< Prelude::IDMEFPath * >(argp2); { try { result = (int)((Prelude::IDMEFPath const *)arg1)->compare(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_compare) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_compare__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_compare__SWIG_0); return; } } croak("No matching function for overloaded 'IDMEFPath_compare'"); XSRETURN(0); } XS(_wrap_IDMEFPath_clone) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; SwigValueWrapper< Prelude::IDMEFPath > result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFPath_clone(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_clone" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = ((Prelude::IDMEFPath const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj((new Prelude::IDMEFPath(static_cast< const Prelude::IDMEFPath& >(result))), SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_OWN | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_checkOperator) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; idmef_criterion_operator_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFPath_checkOperator(self,op);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_checkOperator" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_idmef_criterion_operator_t, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_checkOperator" "', argument " "2"" of type '" "idmef_criterion_operator_t""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_checkOperator" "', argument " "2"" of type '" "idmef_criterion_operator_t""'"); } else { arg2 = *(reinterpret_cast< idmef_criterion_operator_t * >(argp2)); } } { try { result = (int)((Prelude::IDMEFPath const *)arg1)->checkOperator(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_getApplicableOperators) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; idmef_criterion_operator_t result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFPath_getApplicableOperators(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getApplicableOperators" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = ((Prelude::IDMEFPath const *)arg1)->getApplicableOperators(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj((new idmef_criterion_operator_t(static_cast< const idmef_criterion_operator_t& >(result))), SWIGTYPE_p_idmef_criterion_operator_t, SWIG_POINTER_OWN | 0); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_getName__SWIG_0) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; char *result = 0 ; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFPath_getName(self,depth);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getName" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_getName" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = (char *)((Prelude::IDMEFPath const *)arg1)->getName(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_getName__SWIG_1) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; char *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFPath_getName(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getName" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (char *)((Prelude::IDMEFPath const *)arg1)->getName(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_getName) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_getName__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_getName__SWIG_0); return; } } croak("No matching function for overloaded 'IDMEFPath_getName'"); XSRETURN(0); } XS(_wrap_IDMEFPath_isAmbiguous) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFPath_isAmbiguous(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_isAmbiguous" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (bool)((Prelude::IDMEFPath const *)arg1)->isAmbiguous(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_hasLists) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFPath_hasLists(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_hasLists" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (int)((Prelude::IDMEFPath const *)arg1)->hasLists(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_isList__SWIG_0) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFPath_isList(self,depth);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_isList" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_isList" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = (bool)((Prelude::IDMEFPath const *)arg1)->isList(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_isList__SWIG_1) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFPath_isList(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_isList" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (bool)((Prelude::IDMEFPath const *)arg1)->isList(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_isList) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_isList__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFPath_isList__SWIG_0); return; } } croak("No matching function for overloaded 'IDMEFPath_isList'"); XSRETURN(0); } XS(_wrap_IDMEFPath_getDepth) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; unsigned int result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFPath_getDepth(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getDepth" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (unsigned int)((Prelude::IDMEFPath const *)arg1)->getDepth(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_unsigned_SS_int SWIG_PERL_CALL_ARGS_1(static_cast< unsigned int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFPath_get) { { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; Prelude::IDMEFValue result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFPath_get(self,message);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_get" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_get" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_get" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = Prelude_IDMEFPath_get(arg1,*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { int ret; if ( (&result)->isNull() ) { SvREFCNT_inc (& PL_sv_undef); ST(argvi) = &PL_sv_undef; } else { SV *mysv; ret = IDMEFValue_to_SWIG(NULL, result, NULL, &mysv); if ( ret < 0 ) { std::stringstream s; s << "IDMEFValue typemap does not handle value of type '" << idmef_value_type_to_string((idmef_value_type_id_t) (&result)->getType()) << "'"; SWIG_exception_fail(SWIG_ValueError, s.str().c_str()); } ST(argvi) = mysv; } argvi++; } XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFTime__SWIG_0) { { int argvi = 0; Prelude::IDMEFTime *result = 0 ; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: new_IDMEFTime();"); } { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFTime__SWIG_1) { { idmef_time_t *arg1 = (idmef_time_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFTime *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFTime(time);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_idmef_time_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFTime" "', argument " "1"" of type '" "idmef_time_t *""'"); } arg1 = reinterpret_cast< idmef_time_t * >(argp1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFTime__SWIG_2) { { time_t arg1 ; long long val1 ; int ecode1 = 0 ; int argvi = 0; Prelude::IDMEFTime *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFTime(time);"); } ecode1 = SWIG_AsVal_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(0), &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFTime" "', argument " "1"" of type '" "time_t""'"); } arg1 = static_cast< time_t >(val1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFTime__SWIG_3) { { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int argvi = 0; Prelude::IDMEFTime *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFTime(string);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFTime" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; SWIG_croak_null(); } } XS(_wrap_new_IDMEFTime__SWIG_4) { { timeval *arg1 = (timeval *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFTime *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFTime(tv);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_timeval, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFTime" "', argument " "1"" of type '" "timeval const *""'"); } arg1 = reinterpret_cast< timeval * >(argp1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime((timeval const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFTime__SWIG_5) { { Prelude::IDMEFTime *arg1 = 0 ; void *argp1 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFTime *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFTime(value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFTime" "', argument " "1"" of type '" "Prelude::IDMEFTime const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFTime" "', argument " "1"" of type '" "Prelude::IDMEFTime const &""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime((Prelude::IDMEFTime const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFTime) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 0) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_idmef_time_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_timeval, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { { int res = SWIG_AsVal_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(0), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 5; if (_rank == _rankm) goto dispatch; } } check_5: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 6; if (_rank == _rankm) goto dispatch; } } check_6: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFTime__SWIG_0); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFTime__SWIG_1); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFTime__SWIG_4); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFTime__SWIG_5); return; case 5: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFTime__SWIG_2); return; case 6: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFTime__SWIG_3); return; } } croak("No matching function for overloaded 'new_IDMEFTime'"); XSRETURN(0); } XS(_wrap_delete_IDMEFTime) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_IDMEFTime(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEFTime" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime_set__SWIG_0) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFTime_set(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_set" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { (arg1)->set(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime_set__SWIG_1) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; time_t *arg2 = (time_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFTime_set(self,time);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_set" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_long_long, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFTime_set" "', argument " "2"" of type '" "time_t const *""'"); } arg2 = reinterpret_cast< time_t * >(argp2); { try { (arg1)->set((time_t const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime_set__SWIG_2) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFTime_set(self,string);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_set" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFTime_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { (arg1)->set((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_IDMEFTime_set__SWIG_3) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; timeval *arg2 = (timeval *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFTime_set(self,tv);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_set" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_timeval, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFTime_set" "', argument " "2"" of type '" "timeval const *""'"); } arg2 = reinterpret_cast< timeval * >(argp2); { try { (arg1)->set((timeval const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime_set) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFTime, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFTime, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_long_long, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFTime, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(1), &vptr, SWIGTYPE_p_timeval, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFTime, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFTime_set__SWIG_0); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFTime_set__SWIG_1); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFTime_set__SWIG_3); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFTime_set__SWIG_2); return; } } croak("No matching function for overloaded 'IDMEFTime_set'"); XSRETURN(0); } XS(_wrap_IDMEFTime_setSec) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; uint32_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFTime_setSec(self,sec);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_setSec" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFTime_setSec" "', argument " "2"" of type '" "uint32_t""'"); } arg2 = static_cast< uint32_t >(val2); { try { (arg1)->setSec(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime_setUSec) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; uint32_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFTime_setUSec(self,usec);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_setUSec" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFTime_setUSec" "', argument " "2"" of type '" "uint32_t""'"); } arg2 = static_cast< uint32_t >(val2); { try { (arg1)->setUSec(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime_setGmtOffset) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; int32_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFTime_setGmtOffset(self,gmtoff);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_setGmtOffset" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFTime_setGmtOffset" "', argument " "2"" of type '" "int32_t""'"); } arg2 = static_cast< int32_t >(val2); { try { (arg1)->setGmtOffset(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime_getSec) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; uint32_t result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFTime_getSec(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_getSec" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (uint32_t)((Prelude::IDMEFTime const *)arg1)->getSec(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_unsigned_SS_int SWIG_PERL_CALL_ARGS_1(static_cast< unsigned int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime_getUSec) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; uint32_t result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFTime_getUSec(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_getUSec" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (uint32_t)((Prelude::IDMEFTime const *)arg1)->getUSec(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_unsigned_SS_int SWIG_PERL_CALL_ARGS_1(static_cast< unsigned int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime_getGmtOffset) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int32_t result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFTime_getGmtOffset(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_getGmtOffset" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (int32_t)((Prelude::IDMEFTime const *)arg1)->getGmtOffset(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime_getTime) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; double result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFTime_getTime(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_getTime" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (double)((Prelude::IDMEFTime const *)arg1)->getTime(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_double SWIG_PERL_CALL_ARGS_1(static_cast< double >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime_clone) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFTime result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFTime_clone(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_clone" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = ((Prelude::IDMEFTime const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj((new Prelude::IDMEFTime(static_cast< const Prelude::IDMEFTime& >(result))), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_OWN | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime_toString) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFTime_toString(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_toString" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = ((Prelude::IDMEFTime const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime___ne__) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFTime___ne__(self,time);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime___ne__" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFTime___ne__" "', argument " "2"" of type '" "Prelude::IDMEFTime const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFTime___ne__" "', argument " "2"" of type '" "Prelude::IDMEFTime const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(argp2); { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator !=((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime___ge__) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFTime___ge__(self,time);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime___ge__" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFTime___ge__" "', argument " "2"" of type '" "Prelude::IDMEFTime const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFTime___ge__" "', argument " "2"" of type '" "Prelude::IDMEFTime const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(argp2); { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator >=((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime___le__) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFTime___le__(self,time);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime___le__" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFTime___le__" "', argument " "2"" of type '" "Prelude::IDMEFTime const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFTime___le__" "', argument " "2"" of type '" "Prelude::IDMEFTime const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(argp2); { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator <=((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime___eq__) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFTime___eq__(self,time);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime___eq__" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFTime___eq__" "', argument " "2"" of type '" "Prelude::IDMEFTime const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFTime___eq__" "', argument " "2"" of type '" "Prelude::IDMEFTime const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(argp2); { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator ==((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime___gt__) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFTime___gt__(self,time);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime___gt__" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFTime___gt__" "', argument " "2"" of type '" "Prelude::IDMEFTime const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFTime___gt__" "', argument " "2"" of type '" "Prelude::IDMEFTime const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(argp2); { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator >((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFTime___lt__) { { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFTime___lt__(self,time);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime___lt__" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFTime___lt__" "', argument " "2"" of type '" "Prelude::IDMEFTime const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFTime___lt__" "', argument " "2"" of type '" "Prelude::IDMEFTime const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(argp2); { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator <((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFClass__SWIG_0) { { idmef_class_id_t arg1 ; int val1 ; int ecode1 = 0 ; int argvi = 0; Prelude::IDMEFClass *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFClass(id);"); } ecode1 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFClass" "', argument " "1"" of type '" "idmef_class_id_t""'"); } arg1 = static_cast< idmef_class_id_t >(val1); { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFClass__SWIG_1) { { int argvi = 0; Prelude::IDMEFClass *result = 0 ; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: new_IDMEFClass();"); } { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFClass__SWIG_2) { { Prelude::IDMEFPath *arg1 = 0 ; void *argp1 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFClass *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFClass(path);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__IDMEFPath, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFClass" "', argument " "1"" of type '" "Prelude::IDMEFPath const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFClass" "', argument " "1"" of type '" "Prelude::IDMEFPath const &""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass((Prelude::IDMEFPath const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEFClass__SWIG_3) { { std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; int argvi = 0; Prelude::IDMEFClass *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEFClass(path);"); } { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(0), &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFClass" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFClass" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass((std::string const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (SWIG_IsNewObj(res1)) delete arg1; XSRETURN(argvi); fail: if (SWIG_IsNewObj(res1)) delete arg1; SWIG_croak_null(); } } XS(_wrap_new_IDMEFClass) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 0) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(0), (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFClass__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFClass__SWIG_2); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFClass__SWIG_0); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEFClass__SWIG_3); return; } } croak("No matching function for overloaded 'new_IDMEFClass'"); XSRETURN(0); } XS(_wrap_IDMEFClass_getDepth) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; size_t result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFClass_getDepth(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getDepth" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getDepth(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_size_t SWIG_PERL_CALL_ARGS_1(static_cast< size_t >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFClass_get__SWIG_0) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; Prelude::IDMEFClass result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFClass_get(self,child);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_get" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFClass_get" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = (arg1)->get(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj((new Prelude::IDMEFClass(static_cast< const Prelude::IDMEFClass& >(result))), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_OWN | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFClass_get__SWIG_1) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; std::string *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 = SWIG_OLDOBJ ; int argvi = 0; Prelude::IDMEFClass result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFClass_get(self,name);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_get" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { std::string *ptr = (std::string *)0; res2 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(1), &ptr); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFClass_get" "', argument " "2"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFClass_get" "', argument " "2"" of type '" "std::string const &""'"); } arg2 = ptr; } { try { result = (arg1)->get((std::string const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj((new Prelude::IDMEFClass(static_cast< const Prelude::IDMEFClass& >(result))), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_OWN | SWIG_SHADOW); argvi++ ; if (SWIG_IsNewObj(res2)) delete arg2; XSRETURN(argvi); fail: if (SWIG_IsNewObj(res2)) delete arg2; SWIG_croak_null(); } } XS(_wrap_IDMEFClass_get) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFClass, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFClass, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(1), (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFClass_get__SWIG_0); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFClass_get__SWIG_1); return; } } croak("No matching function for overloaded 'IDMEFClass_get'"); XSRETURN(0); } XS(_wrap_IDMEFClass_getChildCount) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; size_t result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFClass_getChildCount(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getChildCount" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getChildCount(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_size_t SWIG_PERL_CALL_ARGS_1(static_cast< size_t >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFClass_isList) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFClass_isList(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_isList" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (bool)(arg1)->isList(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFClass_isKeyedList) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; bool result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFClass_isKeyedList(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_isKeyedList" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (bool)(arg1)->isKeyedList(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFClass_getName) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFClass_getName(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getName" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getName(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFClass_toString) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFClass_toString(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_toString" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFClass_getValueType) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEFValue::IDMEFValueTypeEnum result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFClass_getValueType(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getValueType" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)(arg1)->getValueType(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFClass_getAttributes) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::map< std::string,std::string,std::less< std::string > > result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFClass_getAttributes(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getAttributes" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getAttributes(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj((new std::map< std::string,std::string,std::less< std::string > >(static_cast< const std::map< std::string,std::string,std::less< std::string > >& >(result))), SWIGTYPE_p_std__mapT_std__string_std__string_std__lessT_std__string_t_t, SWIG_POINTER_OWN | 0); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFClass_getPath__SWIG_0) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; int arg3 ; std::string *arg4 = 0 ; std::string *arg5 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; int res4 = SWIG_OLDOBJ ; int res5 = SWIG_OLDOBJ ; int argvi = 0; std::string result; dXSARGS; if ((items < 5) || (items > 5)) { SWIG_croak("Usage: IDMEFClass_getPath(self,rootidx,depth,sep,listidx);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getPath" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFClass_getPath" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFClass_getPath" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); { std::string *ptr = (std::string *)0; res4 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(3), &ptr); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "IDMEFClass_getPath" "', argument " "4"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFClass_getPath" "', argument " "4"" of type '" "std::string const &""'"); } arg4 = ptr; } { std::string *ptr = (std::string *)0; res5 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(4), &ptr); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "IDMEFClass_getPath" "', argument " "5"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFClass_getPath" "', argument " "5"" of type '" "std::string const &""'"); } arg5 = ptr; } { try { result = (arg1)->getPath(arg2,arg3,(std::string const &)*arg4,(std::string const &)*arg5); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; if (SWIG_IsNewObj(res4)) delete arg4; if (SWIG_IsNewObj(res5)) delete arg5; XSRETURN(argvi); fail: if (SWIG_IsNewObj(res4)) delete arg4; if (SWIG_IsNewObj(res5)) delete arg5; SWIG_croak_null(); } } XS(_wrap_IDMEFClass_getPath__SWIG_1) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; int arg3 ; std::string *arg4 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; int res4 = SWIG_OLDOBJ ; int argvi = 0; std::string result; dXSARGS; if ((items < 4) || (items > 4)) { SWIG_croak("Usage: IDMEFClass_getPath(self,rootidx,depth,sep);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getPath" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFClass_getPath" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFClass_getPath" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); { std::string *ptr = (std::string *)0; res4 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(3), &ptr); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "IDMEFClass_getPath" "', argument " "4"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFClass_getPath" "', argument " "4"" of type '" "std::string const &""'"); } arg4 = ptr; } { try { result = (arg1)->getPath(arg2,arg3,(std::string const &)*arg4); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; if (SWIG_IsNewObj(res4)) delete arg4; XSRETURN(argvi); fail: if (SWIG_IsNewObj(res4)) delete arg4; SWIG_croak_null(); } } XS(_wrap_IDMEFClass_getPath__SWIG_2) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEFClass_getPath(self,rootidx,depth);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getPath" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFClass_getPath" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFClass_getPath" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); { try { result = (arg1)->getPath(arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFClass_getPath__SWIG_3) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEFClass_getPath(self,rootidx);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getPath" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFClass_getPath" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = (arg1)->getPath(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFClass_getPath__SWIG_4) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFClass_getPath(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getPath" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getPath(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEFClass_getPath) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFClass, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 2) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFClass, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFClass, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 4) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFClass, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(3), (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: if (items == 5) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEFClass, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(3), (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(4), (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 5; if (_rank == _rankm) goto dispatch; } } check_5: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFClass_getPath__SWIG_4); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFClass_getPath__SWIG_3); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFClass_getPath__SWIG_2); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFClass_getPath__SWIG_1); return; case 5: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEFClass_getPath__SWIG_0); return; } } croak("No matching function for overloaded 'IDMEFClass_getPath'"); XSRETURN(0); } XS(_wrap_IDMEFClass_getEnumValues) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::vector< std::string > result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEFClass_getEnumValues(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getEnumValues" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getEnumValues(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { size_t len = (&result)->size(); SV **svs = new SV*[len]; for (size_t i=0; i 1)) { SWIG_croak("Usage: IDMEFClass_getApplicableOperator(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getApplicableOperator" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (Prelude::IDMEFCriterion::IDMEFCriterionOperatorEnum)(arg1)->getApplicableOperator(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_delete_IDMEFClass) { { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_IDMEFClass(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEFClass" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_delete_IDMEF) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: delete_IDMEF(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEF" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEF__SWIG_0) { { int argvi = 0; Prelude::IDMEF *result = 0 ; dXSARGS; if ((items < 0) || (items > 0)) { SWIG_croak("Usage: new_IDMEF();"); } { try { result = (Prelude::IDMEF *)new Prelude::IDMEF(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEF, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEF__SWIG_1) { { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int argvi = 0; Prelude::IDMEF *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEF(json);"); } res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEF" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::IDMEF *)new Prelude::IDMEF((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEF, SWIG_OWNER | SWIG_SHADOW); argvi++ ; if (alloc1 == SWIG_NEWOBJ) delete[] buf1; XSRETURN(argvi); fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; SWIG_croak_null(); } } XS(_wrap_new_IDMEF__SWIG_2) { { Prelude::IDMEF *arg1 = 0 ; void *argp1 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEF *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEF(idmef);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEF" "', argument " "1"" of type '" "Prelude::IDMEF const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEF" "', argument " "1"" of type '" "Prelude::IDMEF const &""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (Prelude::IDMEF *)new Prelude::IDMEF((Prelude::IDMEF const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEF, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEF__SWIG_3) { { idmef_object_t *arg1 = (idmef_object_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEF *result = 0 ; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: new_IDMEF(message);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_idmef_object_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEF" "', argument " "1"" of type '" "idmef_object_t *""'"); } arg1 = reinterpret_cast< idmef_object_t * >(argp1); { try { result = (Prelude::IDMEF *)new Prelude::IDMEF(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEF, SWIG_OWNER | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_new_IDMEF) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 0) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_idmef_object_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 1) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { int res = SWIG_AsCharPtrAndSize(ST(0), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEF__SWIG_0); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEF__SWIG_2); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEF__SWIG_3); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IDMEF__SWIG_1); return; } } croak("No matching function for overloaded 'new_IDMEF'"); XSRETURN(0); } XS(_wrap_IDMEF_set__SWIG_0) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; std::vector< Prelude::IDMEF > *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; std::vector< Prelude::IDMEF > temp3 ; std::vector< Prelude::IDMEF > *v3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEF_set(self,path,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { if (SWIG_ConvertPtr(ST(2),(void **) &v3, SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t,1) != -1) { arg3 = v3; } else if (SvROK(ST(2))) { AV *av = (AV *)SvRV(ST(2)); if (SvTYPE(av) != SVt_PVAV) SWIG_croak("Type error in argument 3 of IDMEF_set. " "Expected an array of " "Prelude::IDMEF"); SV **tv; I32 len = av_len(av) + 1; Prelude::IDMEF* obj; for (int i=0; iset((char const *)arg2,(std::vector< Prelude::IDMEF > const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_IDMEF_set__SWIG_1) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEF *arg3 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEF_set(self,path,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "Prelude::IDMEF *""'"); } arg3 = reinterpret_cast< Prelude::IDMEF * >(argp3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_IDMEF_set__SWIG_2) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; std::vector< Prelude::IDMEFValue > *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; std::vector< Prelude::IDMEFValue > temp3 ; std::vector< Prelude::IDMEFValue > *v3 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEF_set(self,path,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { if (SWIG_ConvertPtr(ST(2),(void **) &v3, SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t,1) != -1) { arg3 = v3; } else if (SvROK(ST(2))) { AV *av = (AV *)SvRV(ST(2)); if (SvTYPE(av) != SVt_PVAV) SWIG_croak("Type error in argument 3 of IDMEF_set. " "Expected an array of " "Prelude::IDMEFValue"); SV **tv; I32 len = av_len(av) + 1; Prelude::IDMEFValue* obj; for (int i=0; iset((char const *)arg2,(std::vector< Prelude::IDMEFValue > const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_IDMEF_set__SWIG_3) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; std::string *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 = SWIG_OLDOBJ ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEF_set(self,path,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { std::string *ptr = (std::string *)0; res3 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(2), &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEF_set" "', argument " "3"" of type '" "std::string const &""'"); } arg3 = ptr; } { try { (arg1)->set((char const *)arg2,(std::string const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; SWIG_croak_null(); } } XS(_wrap_IDMEF_set__SWIG_4) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEFValue *arg3 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEF_set(self,path,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "Prelude::IDMEFValue *""'"); } arg3 = reinterpret_cast< Prelude::IDMEFValue * >(argp3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_IDMEF_set__SWIG_5) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEFTime *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEF_set(self,path,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_ConvertPtr(ST(2), &argp3, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "Prelude::IDMEFTime &""'"); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEF_set" "', argument " "3"" of type '" "Prelude::IDMEFTime &""'"); } arg3 = reinterpret_cast< Prelude::IDMEFTime * >(argp3); { try { (arg1)->set((char const *)arg2,*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_IDMEF_set__SWIG_6) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; int32_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int val3 ; int ecode3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEF_set(self,path,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "int32_t""'"); } arg3 = static_cast< int32_t >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_IDMEF_set__SWIG_7) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; int64_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; long long val3 ; int ecode3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEF_set(self,path,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "int64_t""'"); } arg3 = static_cast< int64_t >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_IDMEF_set__SWIG_8) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; uint64_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; unsigned long long val3 ; int ecode3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEF_set(self,path,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "uint64_t""'"); } arg3 = static_cast< uint64_t >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_IDMEF_set__SWIG_9) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; float arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; float val3 ; int ecode3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEF_set(self,path,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_float SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_IDMEF_set__SWIG_10) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; double val3 ; int ecode3 = 0 ; int argvi = 0; dXSARGS; if ((items < 3) || (items > 3)) { SWIG_croak("Usage: IDMEF_set(self,path,value);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(2), &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } XS(_wrap_IDMEF_set) { dXSARGS; { unsigned long _index = 0; SWIG_TypeRank _rank = 0; if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(2), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 1; if (_rank == _rankm) goto dispatch; } } check_1: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(2), &vptr, SWIGTYPE_p_Prelude__IDMEFValue, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 2; if (_rank == _rankm) goto dispatch; } } check_2: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(2), &vptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_3; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 3; if (_rank == _rankm) goto dispatch; } } check_3: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_4; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 4; if (_rank == _rankm) goto dispatch; } } check_4: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_5; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 5; if (_rank == _rankm) goto dispatch; } } check_5: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_6; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 6; if (_rank == _rankm) goto dispatch; } } check_6: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_7; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_7; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_float SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_7; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 7; if (_rank == _rankm) goto dispatch; } } check_7: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_8; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_8; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { int res = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(2), NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_8; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 8; if (_rank == _rankm) goto dispatch; } } check_8: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_9; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_9; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(2), (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_9; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 9; if (_rank == _rankm) goto dispatch; } } check_9: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_10; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_10; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { { /* wrapped vector? */ std::vector< Prelude::IDMEF >* v; if (SWIG_ConvertPtr(ST(2),(void **) &v, SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t,0) != -1) { _v = 1; } else if (SvROK(ST(2))) { /* native sequence? */ AV *av = (AV *)SvRV(ST(2)); if (SvTYPE(av) == SVt_PVAV) { I32 len = av_len(av) + 1; if (len == 0) { /* an empty sequence can be of any type */ _v = 1; } else { /* check the first element only */ Prelude::IDMEF* obj; SV **tv = av_fetch(av, 0, 0); if (SWIG_ConvertPtr(*tv, (void **)&obj, SWIGTYPE_p_Prelude__IDMEF,0) != -1) _v = 1; else _v = 0; } } } else { _v = 0; } } } } if (!_v) goto check_10; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 10; if (_rank == _rankm) goto dispatch; } } check_10: if (items == 3) { SWIG_TypeRank _ranki = 0; SWIG_TypeRank _rankm = 0; SWIG_TypeRank _pi = 1; int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_11; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { int res = SWIG_AsCharPtrAndSize(ST(1), 0, NULL, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_11; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; { { { /* wrapped vector? */ std::vector< Prelude::IDMEFValue >* v; if (SWIG_ConvertPtr(ST(2),(void **) &v, SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t,0) != -1) { _v = 1; } else if (SvROK(ST(2))) { /* native sequence? */ AV *av = (AV *)SvRV(ST(2)); if (SvTYPE(av) == SVt_PVAV) { I32 len = av_len(av) + 1; if (len == 0) { /* an empty sequence can be of any type */ _v = 1; } else { /* check the first element only */ Prelude::IDMEFValue* obj; SV **tv = av_fetch(av, 0, 0); if (SWIG_ConvertPtr(*tv, (void **)&obj, SWIGTYPE_p_Prelude__IDMEFValue,0) != -1) _v = 1; else _v = 0; } } } else { _v = 0; } } } } if (!_v) goto check_11; _ranki += _v*_pi; _rankm += _pi; _pi *= SWIG_MAXCASTRANK; if (!_index || (_ranki < _rank)) { _rank = _ranki; _index = 11; if (_rank == _rankm) goto dispatch; } } check_11: dispatch: switch(_index) { case 1: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEF_set__SWIG_1); return; case 2: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEF_set__SWIG_4); return; case 3: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEF_set__SWIG_5); return; case 4: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEF_set__SWIG_6); return; case 5: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEF_set__SWIG_8); return; case 6: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEF_set__SWIG_7); return; case 7: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEF_set__SWIG_9); return; case 8: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEF_set__SWIG_10); return; case 9: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEF_set__SWIG_3); return; case 10: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEF_set__SWIG_0); return; case 11: PUSHMARK(MARK); SWIG_CALLXS(_wrap_IDMEF_set__SWIG_2); return; } } croak("No matching function for overloaded 'IDMEF_set'"); XSRETURN(0); } XS(_wrap_IDMEF_clone) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; Prelude::IDMEF result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEF_clone(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_clone" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_NewPointerObj((new Prelude::IDMEF(static_cast< const Prelude::IDMEF& >(result))), SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_OWN | SWIG_SHADOW); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEF_getId) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; idmef_class_id_t result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEF_getId(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_getId" "', argument " "1"" of type '" "Prelude::IDMEF const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (idmef_class_id_t)((Prelude::IDMEF const *)arg1)->getId(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEF_toString) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEF_toString(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_toString" "', argument " "1"" of type '" "Prelude::IDMEF const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = ((Prelude::IDMEF const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEF_toJSON) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; std::string result; dXSARGS; if ((items < 1) || (items > 1)) { SWIG_croak("Usage: IDMEF_toJSON(self);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_toJSON" "', argument " "1"" of type '" "Prelude::IDMEF const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = ((Prelude::IDMEF const *)arg1)->toJSON(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_std_string SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEF___eq__) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; Prelude::IDMEF *arg2 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEF___eq__(self,idmef);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF___eq__" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF___eq__" "', argument " "2"" of type '" "Prelude::IDMEF const *""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = (int)(arg1)->operator ==((Prelude::IDMEF const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEF_write) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEF_write(self,nocast_p);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_write" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { arg2 = ST(1); } { try { Prelude_IDMEF_write(arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } ST(argvi) = &PL_sv_undef; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEF_read) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int argvi = 0; int result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEF_read(self,nocast_p);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_read" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { arg2 = ST(1); } { try { result = (int)Prelude_IDMEF_read(arg1,arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) result = 0; else SWIG_exception_fail(SWIG_RuntimeError, e.what()); } } ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ; XSRETURN(argvi); fail: SWIG_croak_null(); } } XS(_wrap_IDMEF_get) { { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int argvi = 0; Prelude::IDMEFValue result; dXSARGS; if ((items < 2) || (items > 2)) { SWIG_croak("Usage: IDMEF_get(self,path);"); } res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_get" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_get" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { result = Prelude_IDMEF_get(arg1,(char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { int ret; if ( (&result)->isNull() ) { SvREFCNT_inc (& PL_sv_undef); ST(argvi) = &PL_sv_undef; } else { SV *mysv; ret = IDMEFValue_to_SWIG(NULL, result, NULL, &mysv); if ( ret < 0 ) { std::stringstream s; s << "IDMEFValue typemap does not handle value of type '" << idmef_value_type_to_string((idmef_value_type_id_t) (&result)->getType()) << "'"; SWIG_exception_fail(SWIG_ValueError, s.str().c_str()); } ST(argvi) = mysv; } argvi++; } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; XSRETURN(argvi); fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; SWIG_croak_null(); } } /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static void *_p_Prelude__ClientTo_p_Prelude__ClientProfile(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Prelude::ClientProfile *) ((Prelude::Client *) x)); } static void *_p_Prelude__ClientEasyTo_p_Prelude__ClientProfile(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Prelude::ClientProfile *) (Prelude::Client *) ((Prelude::ClientEasy *) x)); } static void *_p_Prelude__ClientEasyTo_p_Prelude__Client(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Prelude::Client *) ((Prelude::ClientEasy *) x)); } static swig_type_info _swigt__p_Prelude__Client = {"_p_Prelude__Client", "Prelude::Client *", 0, 0, (void*)"Prelude::Client", 0}; static swig_type_info _swigt__p_Prelude__ClientEasy = {"_p_Prelude__ClientEasy", "Prelude::ClientEasy *", 0, 0, (void*)"Prelude::ClientEasy", 0}; static swig_type_info _swigt__p_Prelude__ClientProfile = {"_p_Prelude__ClientProfile", "Prelude::ClientProfile *", 0, 0, (void*)"Prelude::ClientProfile", 0}; static swig_type_info _swigt__p_Prelude__Connection = {"_p_Prelude__Connection", "Prelude::Connection *", 0, 0, (void*)"Prelude::Connection", 0}; static swig_type_info _swigt__p_Prelude__ConnectionPool = {"_p_Prelude__ConnectionPool", "Prelude::ConnectionPool *", 0, 0, (void*)"Prelude::ConnectionPool", 0}; static swig_type_info _swigt__p_Prelude__IDMEF = {"_p_Prelude__IDMEF", "Prelude::IDMEF *", 0, 0, (void*)"Prelude::IDMEF", 0}; static swig_type_info _swigt__p_Prelude__IDMEFClass = {"_p_Prelude__IDMEFClass", "Prelude::IDMEFClass *", 0, 0, (void*)"Prelude::IDMEFClass", 0}; static swig_type_info _swigt__p_Prelude__IDMEFCriteria = {"_p_Prelude__IDMEFCriteria", "Prelude::IDMEFCriteria *", 0, 0, (void*)"Prelude::IDMEFCriteria", 0}; static swig_type_info _swigt__p_Prelude__IDMEFCriterion = {"_p_Prelude__IDMEFCriterion", "Prelude::IDMEFCriterion *", 0, 0, (void*)"Prelude::IDMEFCriterion", 0}; static swig_type_info _swigt__p_Prelude__IDMEFPath = {"_p_Prelude__IDMEFPath", "Prelude::IDMEFPath *", 0, 0, (void*)"Prelude::IDMEFPath", 0}; static swig_type_info _swigt__p_Prelude__IDMEFTime = {"_p_Prelude__IDMEFTime", "Prelude::IDMEFTime *", 0, 0, (void*)"Prelude::IDMEFTime", 0}; static swig_type_info _swigt__p_Prelude__IDMEFValue = {"_p_Prelude__IDMEFValue", "Prelude::IDMEFValue *", 0, 0, (void*)"Prelude::IDMEFValue", 0}; static swig_type_info _swigt__p_Prelude__PreludeError = {"_p_Prelude__PreludeError", "Prelude::PreludeError *", 0, 0, (void*)"Prelude::PreludeError", 0}; static swig_type_info _swigt__p_Prelude__PreludeLog = {"_p_Prelude__PreludeLog", "Prelude::PreludeLog *", 0, 0, (void*)"Prelude::PreludeLog", 0}; static swig_type_info _swigt__p_char = {"_p_char", "char *|int8_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_difference_type = {"_p_difference_type", "difference_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_int_p_q_const__char__void = {"_p_f_int_p_q_const__char__void", "void (*)(int,char const *)", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_criteria_t = {"_p_idmef_criteria_t", "idmef_criteria_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_criterion_operator_t = {"_p_idmef_criterion_operator_t", "idmef_criterion_operator_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_object_t = {"_p_idmef_object_t", "idmef_object_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_path_t = {"_p_idmef_path_t", "idmef_path_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_time_t = {"_p_idmef_time_t", "idmef_time_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_value_t = {"_p_idmef_value_t", "idmef_value_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_int = {"_p_int", "int *|int32_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_key_type = {"_p_key_type", "key_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_long_long = {"_p_long_long", "int64_t *|long long *|time_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_mapped_type = {"_p_mapped_type", "mapped_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_client_profile_t = {"_p_prelude_client_profile_t", "prelude_client_profile_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_client_t = {"_p_prelude_client_t", "prelude_client_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_connection_pool_t = {"_p_prelude_connection_pool_t", "prelude_connection_pool_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_connection_t = {"_p_prelude_connection_t", "prelude_connection_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_short = {"_p_short", "short *|int16_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_size_type = {"_p_size_type", "size_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__mapT_std__string_std__string_std__lessT_std__string_t_t = {"_p_std__mapT_std__string_std__string_std__lessT_std__string_t_t", "std::map< std::string,std::string,std::less< std::string > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_Prelude__IDMEFValue_t = {"_p_std__vectorT_Prelude__IDMEFValue_t", "std::vector< Prelude::IDMEFValue > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_Prelude__IDMEF_t = {"_p_std__vectorT_Prelude__IDMEF_t", "std::vector< Prelude::IDMEF > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_timeval = {"_p_timeval", "timeval *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "unsigned char *|uint8_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "uint32_t *|unsigned int *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_long_long = {"_p_unsigned_long_long", "uint64_t *|unsigned long long *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "unsigned short *|uint16_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_value_type = {"_p_value_type", "value_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_void = {"_p_void", "void *", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_Prelude__Client, &_swigt__p_Prelude__ClientEasy, &_swigt__p_Prelude__ClientProfile, &_swigt__p_Prelude__Connection, &_swigt__p_Prelude__ConnectionPool, &_swigt__p_Prelude__IDMEF, &_swigt__p_Prelude__IDMEFClass, &_swigt__p_Prelude__IDMEFCriteria, &_swigt__p_Prelude__IDMEFCriterion, &_swigt__p_Prelude__IDMEFPath, &_swigt__p_Prelude__IDMEFTime, &_swigt__p_Prelude__IDMEFValue, &_swigt__p_Prelude__PreludeError, &_swigt__p_Prelude__PreludeLog, &_swigt__p_char, &_swigt__p_difference_type, &_swigt__p_f_int_p_q_const__char__void, &_swigt__p_idmef_criteria_t, &_swigt__p_idmef_criterion_operator_t, &_swigt__p_idmef_object_t, &_swigt__p_idmef_path_t, &_swigt__p_idmef_time_t, &_swigt__p_idmef_value_t, &_swigt__p_int, &_swigt__p_key_type, &_swigt__p_long_long, &_swigt__p_mapped_type, &_swigt__p_prelude_client_profile_t, &_swigt__p_prelude_client_t, &_swigt__p_prelude_connection_pool_t, &_swigt__p_prelude_connection_t, &_swigt__p_short, &_swigt__p_size_type, &_swigt__p_std__mapT_std__string_std__string_std__lessT_std__string_t_t, &_swigt__p_std__vectorT_Prelude__IDMEFValue_t, &_swigt__p_std__vectorT_Prelude__IDMEF_t, &_swigt__p_timeval, &_swigt__p_unsigned_char, &_swigt__p_unsigned_int, &_swigt__p_unsigned_long_long, &_swigt__p_unsigned_short, &_swigt__p_value_type, &_swigt__p_void, }; static swig_cast_info _swigc__p_Prelude__Client[] = { {&_swigt__p_Prelude__Client, 0, 0, 0}, {&_swigt__p_Prelude__ClientEasy, _p_Prelude__ClientEasyTo_p_Prelude__Client, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__ClientEasy[] = { {&_swigt__p_Prelude__ClientEasy, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__ClientProfile[] = { {&_swigt__p_Prelude__Client, _p_Prelude__ClientTo_p_Prelude__ClientProfile, 0, 0}, {&_swigt__p_Prelude__ClientProfile, 0, 0, 0}, {&_swigt__p_Prelude__ClientEasy, _p_Prelude__ClientEasyTo_p_Prelude__ClientProfile, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__Connection[] = { {&_swigt__p_Prelude__Connection, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__ConnectionPool[] = { {&_swigt__p_Prelude__ConnectionPool, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEF[] = { {&_swigt__p_Prelude__IDMEF, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFClass[] = { {&_swigt__p_Prelude__IDMEFClass, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFCriteria[] = { {&_swigt__p_Prelude__IDMEFCriteria, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFCriterion[] = { {&_swigt__p_Prelude__IDMEFCriterion, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFPath[] = { {&_swigt__p_Prelude__IDMEFPath, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFTime[] = { {&_swigt__p_Prelude__IDMEFTime, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFValue[] = { {&_swigt__p_Prelude__IDMEFValue, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__PreludeError[] = { {&_swigt__p_Prelude__PreludeError, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__PreludeLog[] = { {&_swigt__p_Prelude__PreludeLog, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_difference_type[] = { {&_swigt__p_difference_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_int_p_q_const__char__void[] = { {&_swigt__p_f_int_p_q_const__char__void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_criteria_t[] = { {&_swigt__p_idmef_criteria_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_criterion_operator_t[] = { {&_swigt__p_idmef_criterion_operator_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_object_t[] = { {&_swigt__p_idmef_object_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_path_t[] = { {&_swigt__p_idmef_path_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_time_t[] = { {&_swigt__p_idmef_time_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_value_t[] = { {&_swigt__p_idmef_value_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_key_type[] = { {&_swigt__p_key_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_long_long[] = { {&_swigt__p_long_long, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_mapped_type[] = { {&_swigt__p_mapped_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_client_profile_t[] = { {&_swigt__p_prelude_client_profile_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_client_t[] = { {&_swigt__p_prelude_client_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_connection_pool_t[] = { {&_swigt__p_prelude_connection_pool_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_connection_t[] = { {&_swigt__p_prelude_connection_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_short[] = { {&_swigt__p_short, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_size_type[] = { {&_swigt__p_size_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__mapT_std__string_std__string_std__lessT_std__string_t_t[] = { {&_swigt__p_std__mapT_std__string_std__string_std__lessT_std__string_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_Prelude__IDMEFValue_t[] = { {&_swigt__p_std__vectorT_Prelude__IDMEFValue_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_Prelude__IDMEF_t[] = { {&_swigt__p_std__vectorT_Prelude__IDMEF_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_timeval[] = { {&_swigt__p_timeval, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_char[] = { {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_long_long[] = { {&_swigt__p_unsigned_long_long, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_short[] = { {&_swigt__p_unsigned_short, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_value_type[] = { {&_swigt__p_value_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_void[] = { {&_swigt__p_void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { _swigc__p_Prelude__Client, _swigc__p_Prelude__ClientEasy, _swigc__p_Prelude__ClientProfile, _swigc__p_Prelude__Connection, _swigc__p_Prelude__ConnectionPool, _swigc__p_Prelude__IDMEF, _swigc__p_Prelude__IDMEFClass, _swigc__p_Prelude__IDMEFCriteria, _swigc__p_Prelude__IDMEFCriterion, _swigc__p_Prelude__IDMEFPath, _swigc__p_Prelude__IDMEFTime, _swigc__p_Prelude__IDMEFValue, _swigc__p_Prelude__PreludeError, _swigc__p_Prelude__PreludeLog, _swigc__p_char, _swigc__p_difference_type, _swigc__p_f_int_p_q_const__char__void, _swigc__p_idmef_criteria_t, _swigc__p_idmef_criterion_operator_t, _swigc__p_idmef_object_t, _swigc__p_idmef_path_t, _swigc__p_idmef_time_t, _swigc__p_idmef_value_t, _swigc__p_int, _swigc__p_key_type, _swigc__p_long_long, _swigc__p_mapped_type, _swigc__p_prelude_client_profile_t, _swigc__p_prelude_client_t, _swigc__p_prelude_connection_pool_t, _swigc__p_prelude_connection_t, _swigc__p_short, _swigc__p_size_type, _swigc__p_std__mapT_std__string_std__string_std__lessT_std__string_t_t, _swigc__p_std__vectorT_Prelude__IDMEFValue_t, _swigc__p_std__vectorT_Prelude__IDMEF_t, _swigc__p_timeval, _swigc__p_unsigned_char, _swigc__p_unsigned_int, _swigc__p_unsigned_long_long, _swigc__p_unsigned_short, _swigc__p_value_type, _swigc__p_void, }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ static swig_constant_info swig_constants[] = { {0,0,0,0,0,0} }; #ifdef __cplusplus } #endif static swig_variable_info swig_variables[] = { {0,0,0,0} }; static swig_command_info swig_commands[] = { {"Preludec::checkVersion", _wrap_checkVersion}, {"Preludec::new_ClientProfile", _wrap_new_ClientProfile}, {"Preludec::delete_ClientProfile", _wrap_delete_ClientProfile}, {"Preludec::ClientProfile_getUid", _wrap_ClientProfile_getUid}, {"Preludec::ClientProfile_getGid", _wrap_ClientProfile_getGid}, {"Preludec::ClientProfile_getName", _wrap_ClientProfile_getName}, {"Preludec::ClientProfile_setName", _wrap_ClientProfile_setName}, {"Preludec::ClientProfile_getAnalyzerId", _wrap_ClientProfile_getAnalyzerId}, {"Preludec::ClientProfile_setAnalyzerId", _wrap_ClientProfile_setAnalyzerId}, {"Preludec::ClientProfile_getConfigFilename", _wrap_ClientProfile_getConfigFilename}, {"Preludec::ClientProfile_getAnalyzeridFilename", _wrap_ClientProfile_getAnalyzeridFilename}, {"Preludec::ClientProfile_getTlsKeyFilename", _wrap_ClientProfile_getTlsKeyFilename}, {"Preludec::ClientProfile_getTlsServerCaCertFilename", _wrap_ClientProfile_getTlsServerCaCertFilename}, {"Preludec::ClientProfile_getTlsServerKeyCertFilename", _wrap_ClientProfile_getTlsServerKeyCertFilename}, {"Preludec::ClientProfile_getTlsServerCrlFilename", _wrap_ClientProfile_getTlsServerCrlFilename}, {"Preludec::ClientProfile_getTlsClientKeyCertFilename", _wrap_ClientProfile_getTlsClientKeyCertFilename}, {"Preludec::ClientProfile_getTlsClientTrustedCertFilename", _wrap_ClientProfile_getTlsClientTrustedCertFilename}, {"Preludec::ClientProfile_getBackupDirname", _wrap_ClientProfile_getBackupDirname}, {"Preludec::ClientProfile_getProfileDirname", _wrap_ClientProfile_getProfileDirname}, {"Preludec::ClientProfile_setPrefix", _wrap_ClientProfile_setPrefix}, {"Preludec::ClientProfile_getPrefix", _wrap_ClientProfile_getPrefix}, {"Preludec::delete_Connection", _wrap_delete_Connection}, {"Preludec::new_Connection", _wrap_new_Connection}, {"Preludec::Connection_getConnection", _wrap_Connection_getConnection}, {"Preludec::Connection_close", _wrap_Connection_close}, {"Preludec::Connection_connect", _wrap_Connection_connect}, {"Preludec::Connection_setState", _wrap_Connection_setState}, {"Preludec::Connection_getState", _wrap_Connection_getState}, {"Preludec::Connection_setData", _wrap_Connection_setData}, {"Preludec::Connection_getData", _wrap_Connection_getData}, {"Preludec::Connection_getPermission", _wrap_Connection_getPermission}, {"Preludec::Connection_setPeerAnalyzerid", _wrap_Connection_setPeerAnalyzerid}, {"Preludec::Connection_getPeerAnalyzerid", _wrap_Connection_getPeerAnalyzerid}, {"Preludec::Connection_getLocalAddr", _wrap_Connection_getLocalAddr}, {"Preludec::Connection_getLocalPort", _wrap_Connection_getLocalPort}, {"Preludec::Connection_getPeerAddr", _wrap_Connection_getPeerAddr}, {"Preludec::Connection_getPeerPort", _wrap_Connection_getPeerPort}, {"Preludec::Connection_isAlive", _wrap_Connection_isAlive}, {"Preludec::Connection_getFd", _wrap_Connection_getFd}, {"Preludec::Connection_recvIDMEF", _wrap_Connection_recvIDMEF}, {"Preludec::delete_ConnectionPool", _wrap_delete_ConnectionPool}, {"Preludec::new_ConnectionPool", _wrap_new_ConnectionPool}, {"Preludec::ConnectionPool_init", _wrap_ConnectionPool_init}, {"Preludec::ConnectionPool_setConnectionString", _wrap_ConnectionPool_setConnectionString}, {"Preludec::ConnectionPool_getConnectionString", _wrap_ConnectionPool_getConnectionString}, {"Preludec::ConnectionPool_getConnectionList", _wrap_ConnectionPool_getConnectionList}, {"Preludec::ConnectionPool_setFlags", _wrap_ConnectionPool_setFlags}, {"Preludec::ConnectionPool_getFlags", _wrap_ConnectionPool_getFlags}, {"Preludec::ConnectionPool_setData", _wrap_ConnectionPool_setData}, {"Preludec::ConnectionPool_getData", _wrap_ConnectionPool_getData}, {"Preludec::ConnectionPool_addConnection", _wrap_ConnectionPool_addConnection}, {"Preludec::ConnectionPool_delConnection", _wrap_ConnectionPool_delConnection}, {"Preludec::ConnectionPool_setConnectionAlive", _wrap_ConnectionPool_setConnectionAlive}, {"Preludec::ConnectionPool_setConnectionDead", _wrap_ConnectionPool_setConnectionDead}, {"Preludec::ConnectionPool_setRequiredPermission", _wrap_ConnectionPool_setRequiredPermission}, {"Preludec::delete_Client", _wrap_delete_Client}, {"Preludec::new_Client", _wrap_new_Client}, {"Preludec::Client_start", _wrap_Client_start}, {"Preludec::Client_init", _wrap_Client_init}, {"Preludec::Client_getClient", _wrap_Client_getClient}, {"Preludec::Client_sendIDMEF", _wrap_Client_sendIDMEF}, {"Preludec::Client_recvIDMEF", _wrap_Client_recvIDMEF}, {"Preludec::Client_getFlags", _wrap_Client_getFlags}, {"Preludec::Client_setFlags", _wrap_Client_setFlags}, {"Preludec::Client_getRequiredPermission", _wrap_Client_getRequiredPermission}, {"Preludec::Client_setRequiredPermission", _wrap_Client_setRequiredPermission}, {"Preludec::Client_getConfigFilename", _wrap_Client_getConfigFilename}, {"Preludec::Client_setConfigFilename", _wrap_Client_setConfigFilename}, {"Preludec::Client_getConnectionPool", _wrap_Client_getConnectionPool}, {"Preludec::Client_setConnectionPool", _wrap_Client_setConnectionPool}, {"Preludec::Client___lshift__", _wrap_Client___lshift__}, {"Preludec::Client___rshift__", _wrap_Client___rshift__}, {"Preludec::Client_setRecvTimeout", _wrap_Client_setRecvTimeout}, {"Preludec::PreludeLog_setLevel", _wrap_PreludeLog_setLevel}, {"Preludec::PreludeLog_setDebugLevel", _wrap_PreludeLog_setDebugLevel}, {"Preludec::PreludeLog_setFlags", _wrap_PreludeLog_setFlags}, {"Preludec::PreludeLog_getFlags", _wrap_PreludeLog_getFlags}, {"Preludec::PreludeLog_setLogfile", _wrap_PreludeLog_setLogfile}, {"Preludec::PreludeLog_setCallback", _wrap_PreludeLog_setCallback}, {"Preludec::new_PreludeLog", _wrap_new_PreludeLog}, {"Preludec::delete_PreludeLog", _wrap_delete_PreludeLog}, {"Preludec::delete_PreludeError", _wrap_delete_PreludeError}, {"Preludec::new_PreludeError", _wrap_new_PreludeError}, {"Preludec::PreludeError_getCode", _wrap_PreludeError_getCode}, {"Preludec::PreludeError_what", _wrap_PreludeError_what}, {"Preludec::new_ClientEasy", _wrap_new_ClientEasy}, {"Preludec::delete_ClientEasy", _wrap_delete_ClientEasy}, {"Preludec::new_IDMEFCriterion", _wrap_new_IDMEFCriterion}, {"Preludec::delete_IDMEFCriterion", _wrap_delete_IDMEFCriterion}, {"Preludec::delete_IDMEFCriteria", _wrap_delete_IDMEFCriteria}, {"Preludec::new_IDMEFCriteria", _wrap_new_IDMEFCriteria}, {"Preludec::IDMEFCriteria_match", _wrap_IDMEFCriteria_match}, {"Preludec::IDMEFCriteria_clone", _wrap_IDMEFCriteria_clone}, {"Preludec::IDMEFCriteria_andCriteria", _wrap_IDMEFCriteria_andCriteria}, {"Preludec::IDMEFCriteria_orCriteria", _wrap_IDMEFCriteria_orCriteria}, {"Preludec::IDMEFCriteria_toString", _wrap_IDMEFCriteria_toString}, {"Preludec::IDMEFValue_getType", _wrap_IDMEFValue_getType}, {"Preludec::IDMEFValue_isNull", _wrap_IDMEFValue_isNull}, {"Preludec::delete_IDMEFValue", _wrap_delete_IDMEFValue}, {"Preludec::new_IDMEFValue", _wrap_new_IDMEFValue}, {"Preludec::IDMEFValue_match", _wrap_IDMEFValue_match}, {"Preludec::IDMEFValue_clone", _wrap_IDMEFValue_clone}, {"Preludec::IDMEFValue_toString", _wrap_IDMEFValue_toString}, {"Preludec::IDMEFValue___le__", _wrap_IDMEFValue___le__}, {"Preludec::IDMEFValue___ge__", _wrap_IDMEFValue___ge__}, {"Preludec::IDMEFValue___lt__", _wrap_IDMEFValue___lt__}, {"Preludec::IDMEFValue___gt__", _wrap_IDMEFValue___gt__}, {"Preludec::IDMEFValue___eq__", _wrap_IDMEFValue___eq__}, {"Preludec::IDMEFValue___ne__", _wrap_IDMEFValue___ne__}, {"Preludec::new_IDMEFPath", _wrap_new_IDMEFPath}, {"Preludec::delete_IDMEFPath", _wrap_delete_IDMEFPath}, {"Preludec::IDMEFPath_set", _wrap_IDMEFPath_set}, {"Preludec::IDMEFPath_getClass", _wrap_IDMEFPath_getClass}, {"Preludec::IDMEFPath_getValueType", _wrap_IDMEFPath_getValueType}, {"Preludec::IDMEFPath_setIndex", _wrap_IDMEFPath_setIndex}, {"Preludec::IDMEFPath_undefineIndex", _wrap_IDMEFPath_undefineIndex}, {"Preludec::IDMEFPath_getIndex", _wrap_IDMEFPath_getIndex}, {"Preludec::IDMEFPath_makeChild", _wrap_IDMEFPath_makeChild}, {"Preludec::IDMEFPath_makeParent", _wrap_IDMEFPath_makeParent}, {"Preludec::IDMEFPath_compare", _wrap_IDMEFPath_compare}, {"Preludec::IDMEFPath_clone", _wrap_IDMEFPath_clone}, {"Preludec::IDMEFPath_checkOperator", _wrap_IDMEFPath_checkOperator}, {"Preludec::IDMEFPath_getApplicableOperators", _wrap_IDMEFPath_getApplicableOperators}, {"Preludec::IDMEFPath_getName", _wrap_IDMEFPath_getName}, {"Preludec::IDMEFPath_isAmbiguous", _wrap_IDMEFPath_isAmbiguous}, {"Preludec::IDMEFPath_hasLists", _wrap_IDMEFPath_hasLists}, {"Preludec::IDMEFPath_isList", _wrap_IDMEFPath_isList}, {"Preludec::IDMEFPath_getDepth", _wrap_IDMEFPath_getDepth}, {"Preludec::IDMEFPath_get", _wrap_IDMEFPath_get}, {"Preludec::new_IDMEFTime", _wrap_new_IDMEFTime}, {"Preludec::delete_IDMEFTime", _wrap_delete_IDMEFTime}, {"Preludec::IDMEFTime_set", _wrap_IDMEFTime_set}, {"Preludec::IDMEFTime_setSec", _wrap_IDMEFTime_setSec}, {"Preludec::IDMEFTime_setUSec", _wrap_IDMEFTime_setUSec}, {"Preludec::IDMEFTime_setGmtOffset", _wrap_IDMEFTime_setGmtOffset}, {"Preludec::IDMEFTime_getSec", _wrap_IDMEFTime_getSec}, {"Preludec::IDMEFTime_getUSec", _wrap_IDMEFTime_getUSec}, {"Preludec::IDMEFTime_getGmtOffset", _wrap_IDMEFTime_getGmtOffset}, {"Preludec::IDMEFTime_getTime", _wrap_IDMEFTime_getTime}, {"Preludec::IDMEFTime_clone", _wrap_IDMEFTime_clone}, {"Preludec::IDMEFTime_toString", _wrap_IDMEFTime_toString}, {"Preludec::IDMEFTime___ne__", _wrap_IDMEFTime___ne__}, {"Preludec::IDMEFTime___ge__", _wrap_IDMEFTime___ge__}, {"Preludec::IDMEFTime___le__", _wrap_IDMEFTime___le__}, {"Preludec::IDMEFTime___eq__", _wrap_IDMEFTime___eq__}, {"Preludec::IDMEFTime___gt__", _wrap_IDMEFTime___gt__}, {"Preludec::IDMEFTime___lt__", _wrap_IDMEFTime___lt__}, {"Preludec::new_IDMEFClass", _wrap_new_IDMEFClass}, {"Preludec::IDMEFClass_getDepth", _wrap_IDMEFClass_getDepth}, {"Preludec::IDMEFClass_get", _wrap_IDMEFClass_get}, {"Preludec::IDMEFClass_getChildCount", _wrap_IDMEFClass_getChildCount}, {"Preludec::IDMEFClass_isList", _wrap_IDMEFClass_isList}, {"Preludec::IDMEFClass_isKeyedList", _wrap_IDMEFClass_isKeyedList}, {"Preludec::IDMEFClass_getName", _wrap_IDMEFClass_getName}, {"Preludec::IDMEFClass_toString", _wrap_IDMEFClass_toString}, {"Preludec::IDMEFClass_getValueType", _wrap_IDMEFClass_getValueType}, {"Preludec::IDMEFClass_getAttributes", _wrap_IDMEFClass_getAttributes}, {"Preludec::IDMEFClass_getPath", _wrap_IDMEFClass_getPath}, {"Preludec::IDMEFClass_getEnumValues", _wrap_IDMEFClass_getEnumValues}, {"Preludec::IDMEFClass_getApplicableOperator", _wrap_IDMEFClass_getApplicableOperator}, {"Preludec::delete_IDMEFClass", _wrap_delete_IDMEFClass}, {"Preludec::delete_IDMEF", _wrap_delete_IDMEF}, {"Preludec::new_IDMEF", _wrap_new_IDMEF}, {"Preludec::IDMEF_set", _wrap_IDMEF_set}, {"Preludec::IDMEF_clone", _wrap_IDMEF_clone}, {"Preludec::IDMEF_getId", _wrap_IDMEF_getId}, {"Preludec::IDMEF_toString", _wrap_IDMEF_toString}, {"Preludec::IDMEF_toJSON", _wrap_IDMEF_toJSON}, {"Preludec::IDMEF___eq__", _wrap_IDMEF___eq__}, {"Preludec::IDMEF_write", _wrap_IDMEF_write}, {"Preludec::IDMEF_read", _wrap_IDMEF_read}, {"Preludec::IDMEF_get", _wrap_IDMEF_get}, {0,0} }; /* ----------------------------------------------------------------------------- * Type initialization: * This problem is tough by the requirement that no dynamic * memory is used. Also, since swig_type_info structures store pointers to * swig_cast_info structures and swig_cast_info structures store pointers back * to swig_type_info structures, we need some lookup code at initialization. * The idea is that swig generates all the structures that are needed. * The runtime then collects these partially filled structures. * The SWIG_InitializeModule function takes these initial arrays out of * swig_module, and does all the lookup, filling in the swig_module.types * array with the correct data and linking the correct swig_cast_info * structures together. * * The generated swig_type_info structures are assigned statically to an initial * array. We just loop through that array, and handle each type individually. * First we lookup if this type has been already loaded, and if so, use the * loaded structure instead of the generated one. Then we have to fill in the * cast linked list. The cast data is initially stored in something like a * two-dimensional array. Each row corresponds to a type (there are the same * number of rows as there are in the swig_type_initial array). Each entry in * a column is one of the swig_cast_info structures for that type. * The cast_initial array is actually an array of arrays, because each row has * a variable number of columns. So to actually build the cast linked list, * we find the array of casts associated with the type, and loop through it * adding the casts to the list. The one last trick we need to do is making * sure the type pointer in the swig_cast_info struct is correct. * * First off, we lookup the cast->type name to see if it is already loaded. * There are three cases to handle: * 1) If the cast->type has already been loaded AND the type we are adding * casting info to has not been loaded (it is in this module), THEN we * replace the cast->type pointer with the type pointer that has already * been loaded. * 2) If BOTH types (the one we are adding casting info to, and the * cast->type) are loaded, THEN the cast info has already been loaded by * the previous module so we just ignore it. * 3) Finally, if cast->type has not already been loaded, then we add that * swig_cast_info to the linked list (because the cast->type) pointer will * be correct. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* c-mode */ #endif #endif #if 0 #define SWIGRUNTIME_DEBUG #endif SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { size_t i; swig_module_info *module_head, *iter; int init; /* check to see if the circular list has been setup, if not, set it up */ if (swig_module.next==0) { /* Initialize the swig_module */ swig_module.type_initial = swig_type_initial; swig_module.cast_initial = swig_cast_initial; swig_module.next = &swig_module; init = 1; } else { init = 0; } /* Try and load any already created modules */ module_head = SWIG_GetModule(clientdata); if (!module_head) { /* This is the first module loaded for this interpreter */ /* so set the swig module into the interpreter */ SWIG_SetModule(clientdata, &swig_module); } else { /* the interpreter has loaded a SWIG module, but has it loaded this one? */ iter=module_head; do { if (iter==&swig_module) { /* Our module is already in the list, so there's nothing more to do. */ return; } iter=iter->next; } while (iter!= module_head); /* otherwise we must add our module into the list */ swig_module.next = module_head->next; module_head->next = &swig_module; } /* When multiple interpreters are used, a module could have already been initialized in a different interpreter, but not yet have a pointer in this interpreter. In this case, we do not want to continue adding types... everything should be set up already */ if (init == 0) return; /* Now work on filling in swig_module.types */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: size %lu\n", (unsigned long)swig_module.size); #endif for (i = 0; i < swig_module.size; ++i) { swig_type_info *type = 0; swig_type_info *ret; swig_cast_info *cast; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name); #endif /* if there is another module already loaded */ if (swig_module.next != &swig_module) { type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); } if (type) { /* Overwrite clientdata field */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found type %s\n", type->name); #endif if (swig_module.type_initial[i]->clientdata) { type->clientdata = swig_module.type_initial[i]->clientdata; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); #endif } } else { type = swig_module.type_initial[i]; } /* Insert casting types */ cast = swig_module.cast_initial[i]; while (cast->type) { /* Don't need to add information already in the list */ ret = 0; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); #endif if (swig_module.next != &swig_module) { ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); #ifdef SWIGRUNTIME_DEBUG if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); #endif } if (ret) { if (type == swig_module.type_initial[i]) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: skip old type %s\n", ret->name); #endif cast->type = ret; ret = 0; } else { /* Check for casting already in the list */ swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); #ifdef SWIGRUNTIME_DEBUG if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); #endif if (!ocast) ret = 0; } } if (!ret) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); #endif if (type->cast) { type->cast->prev = cast; cast->next = type->cast; } type->cast = cast; } cast++; } /* Set entry in modules->types array equal to the type */ swig_module.types[i] = type; } swig_module.types[i] = 0; #ifdef SWIGRUNTIME_DEBUG printf("**** SWIG_InitializeModule: Cast List ******\n"); for (i = 0; i < swig_module.size; ++i) { int j = 0; swig_cast_info *cast = swig_module.cast_initial[i]; printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name); while (cast->type) { printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); cast++; ++j; } printf("---- Total casts: %d\n",j); } printf("**** SWIG_InitializeModule: Cast List ******\n"); #endif } /* This function will propagate the clientdata field of type to * any new swig_type_info structures that have been added into the list * of equivalent types. It is like calling * SWIG_TypeClientData(type, clientdata) a second time. */ SWIGRUNTIME void SWIG_PropagateClientData(void) { size_t i; swig_cast_info *equiv; static int init_run = 0; if (init_run) return; init_run = 1; for (i = 0; i < swig_module.size; i++) { if (swig_module.types[i]->clientdata) { equiv = swig_module.types[i]->cast; while (equiv) { if (!equiv->converter) { if (equiv->type && !equiv->type->clientdata) SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); } equiv = equiv->next; } } } } #ifdef __cplusplus #if 0 { /* c-mode */ #endif } #endif #if defined(__cplusplus) && ! defined(XSPROTO) extern "C" #endif XS(SWIG_init) { dXSARGS; int i; (void)items; SWIG_InitializeModule(0); /* Install commands */ for (i = 0; swig_commands[i].name; i++) { /* Casts only needed for Perl < 5.10. */ #ifdef __cplusplus newXS(const_cast(swig_commands[i].name), swig_commands[i].wrapper, const_cast(__FILE__)); #else newXS((char*)swig_commands[i].name, swig_commands[i].wrapper, (char*)__FILE__); #endif } /* Install variables */ for (i = 0; swig_variables[i].name; i++) { SV *sv; sv = get_sv(swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI); if (swig_variables[i].type) { SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0); } else { sv_setiv(sv,(IV) 0); } swig_create_magic(sv, swig_variables[i].name, swig_variables[i].set, swig_variables[i].get); } /* Install constant */ for (i = 0; swig_constants[i].type; i++) { SV *sv; sv = get_sv(swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI); switch(swig_constants[i].type) { case SWIG_INT: sv_setiv(sv, (IV) swig_constants[i].lvalue); break; case SWIG_FLOAT: sv_setnv(sv, (double) swig_constants[i].dvalue); break; case SWIG_STRING: sv_setpv(sv, (const char *) swig_constants[i].pvalue); break; case SWIG_POINTER: SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0); break; case SWIG_BINARY: SWIG_MakePackedObj(sv, swig_constants[i].pvalue, swig_constants[i].lvalue, *(swig_constants[i].ptype)); break; default: break; } SvREADONLY_on(sv); } STRLEN len; char **argv; int j, argc = 1, ret; AV *pargv = get_av("ARGV", FALSE); __initial_thread = (gl_thread_t) gl_thread_self(); ret = av_len(pargv); if ( ret >= 0 ) argc += ret + 1; if ( argc + 1 < 0 ) throw PreludeError("Invalid argc length"); argv = (char **) malloc((argc + 1) * sizeof(char *)); if ( ! argv ) throw PreludeError("Allocation failure"); argv[0] = SvPV(get_sv("0", FALSE), len); for ( j = 0; j < ret + 1; j++ ) argv[j + 1] = SvPV(*av_fetch(pargv, j, FALSE), len); argv[j + 1] = NULL; ret = prelude_init(&argc, argv); if ( ret < 0 ) { free(argv); throw PreludeError(ret); } free(argv); SWIG_TypeClientData(SWIGTYPE_p_Prelude__ClientProfile, (void*) "Prelude::ClientProfile"); SWIG_TypeClientData(SWIGTYPE_p_Prelude__Connection, (void*) "Prelude::Connection"); SWIG_TypeClientData(SWIGTYPE_p_Prelude__ConnectionPool, (void*) "Prelude::ConnectionPool"); /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_ASYNC_SEND", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::ASYNC_SEND))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_FLAGS_ASYNC_SEND", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::FLAGS_ASYNC_SEND))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_ASYNC_TIMER", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::ASYNC_TIMER))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_FLAGS_ASYNC_TIMER", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::FLAGS_ASYNC_TIMER))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_HEARTBEAT", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::HEARTBEAT))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_FLAGS_HEARTBEAT", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::FLAGS_HEARTBEAT))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_CONNECT", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::CONNECT))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_FLAGS_CONNECT", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::FLAGS_CONNECT))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_AUTOCONFIG", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::AUTOCONFIG))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_FLAGS_AUTOCONFIG", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::FLAGS_AUTOCONFIG))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_IDMEF_READ", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::IDMEF_READ))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_PERMISSION_IDMEF_READ", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::PERMISSION_IDMEF_READ))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_ADMIN_READ", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::ADMIN_READ))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_PERMISSION_ADMIN_READ", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::PERMISSION_ADMIN_READ))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_IDMEF_WRITE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::IDMEF_WRITE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_PERMISSION_IDMEF_WRITE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::PERMISSION_IDMEF_WRITE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_ADMIN_WRITE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::ADMIN_WRITE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "Client_PERMISSION_ADMIN_WRITE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::Client::PERMISSION_ADMIN_WRITE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; SWIG_TypeClientData(SWIGTYPE_p_Prelude__Client, (void*) "Prelude::Client"); /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "PreludeLog_DEBUG", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::PreludeLog::DEBUG))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "PreludeLog_INFO", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::PreludeLog::INFO))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "PreludeLog_WARNING", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::PreludeLog::WARNING))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "PreludeLog_ERROR", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::PreludeLog::ERROR))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "PreludeLog_CRITICAL", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::PreludeLog::CRITICAL))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "PreludeLog_QUIET", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::PreludeLog::QUIET))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "PreludeLog_SYSLOG", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::PreludeLog::SYSLOG))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; SWIG_TypeClientData(SWIGTYPE_p_Prelude__PreludeLog, (void*) "Prelude::PreludeLog"); SWIG_TypeClientData(SWIGTYPE_p_Prelude__PreludeError, (void*) "Prelude::PreludeError"); SWIG_TypeClientData(SWIGTYPE_p_Prelude__ClientEasy, (void*) "Prelude::ClientEasy"); /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_NOT", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_NOCASE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOCASE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_EQUAL", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_EQUAL))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_EQUAL_NOCASE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_EQUAL_NOCASE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_NOT_EQUAL", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_EQUAL))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_NOT_EQUAL_NOCASE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_EQUAL_NOCASE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_LESSER", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_LESSER))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_LESSER_OR_EQUAL", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_LESSER_OR_EQUAL))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_GREATER", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_GREATER))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_GREATER_OR_EQUAL", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_GREATER_OR_EQUAL))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_SUBSTR", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_SUBSTR))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_SUBSTR_NOCASE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_SUBSTR_NOCASE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_NOT_SUBSTR", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_SUBSTR))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_NOT_SUBSTR_NOCASE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_SUBSTR_NOCASE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_REGEX", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_REGEX))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_REGEX_NOCASE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_REGEX_NOCASE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_NOT_REGEX", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_REGEX))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_NOT_REGEX_NOCASE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_REGEX_NOCASE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_NULL", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NULL))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriterion_OPERATOR_NOT_NULL", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_NULL))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEFCriterion, (void*) "Prelude::IDMEFCriterion"); /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriteria_OPERATOR_NOT", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriteria::OPERATOR_NOT))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriteria_OPERATOR_AND", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriteria::OPERATOR_AND))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFCriteria_OPERATOR_OR", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFCriteria::OPERATOR_OR))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEFCriteria, (void*) "Prelude::IDMEFCriteria"); /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_UNKNOWN", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_UNKNOWN))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_INT8", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_INT8))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_UINT8", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_UINT8))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_INT16", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_INT16))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_UINT16", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_UINT16))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_INT32", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_INT32))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_UINT32", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_UINT32))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_INT64", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_INT64))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_UINT64", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_UINT64))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_FLOAT", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_FLOAT))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_DOUBLE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_DOUBLE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_STRING", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_STRING))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_TIME", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_TIME))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_DATA", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_DATA))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_ENUM", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_ENUM))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_LIST", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_LIST))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; /*@SWIG:/usr/share/swig/4.0.1/perl5/perltypemaps.swg,65,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "IDMEFValue_TYPE_CLASS", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(Prelude::IDMEFValue::TYPE_CLASS))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEFValue, (void*) "Prelude::IDMEFValue"); SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEFPath, (void*) "Prelude::IDMEFPath"); SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEFTime, (void*) "Prelude::IDMEFTime"); SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEFClass, (void*) "Prelude::IDMEFClass"); SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEF, (void*) "Prelude::IDMEF"); ST(0) = &PL_sv_yes; XSRETURN(1); } libprelude-5.2.0/bindings/perl/PaxHeaders.14770/Prelude.pm0000644000000000000000000000011013726163410021340 xustar000000000000000024 mtime=1599661832.501 24 atime=1599661832.727 24 ctime=1599662000.234 libprelude-5.2.0/bindings/perl/Prelude.pm0000644000000000000000000005453013726163410020352 0ustar00rootroot00000000000000# This file was automatically generated by SWIG (http://www.swig.org). # Version 4.0.1 # # Do not make changes to this file unless you know what you are doing--modify # the SWIG interface file instead. package Prelude; use base qw(Exporter); use base qw(DynaLoader); package Preludec; bootstrap Prelude; package Prelude; @EXPORT = qw(); # ---------- BASE METHODS ------------- package Prelude; sub TIEHASH { my ($classname,$obj) = @_; return bless $obj, $classname; } sub CLEAR { } sub FIRSTKEY { } sub NEXTKEY { } sub FETCH { my ($self,$field) = @_; my $member_func = "swig_${field}_get"; $self->$member_func(); } sub STORE { my ($self,$field,$newval) = @_; my $member_func = "swig_${field}_set"; $self->$member_func($newval); } sub this { my $ptr = shift; return tied(%$ptr); } # ------- FUNCTION WRAPPERS -------- package Prelude; *checkVersion = *Preludec::checkVersion; ############# Class : Prelude::ClientProfile ############## package Prelude::ClientProfile; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude ); %OWNER = (); %ITERATORS = (); sub new { my $pkg = shift; my $self = Preludec::new_ClientProfile(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_ClientProfile($self); delete $OWNER{$self}; } } *getUid = *Preludec::ClientProfile_getUid; *getGid = *Preludec::ClientProfile_getGid; *getName = *Preludec::ClientProfile_getName; *setName = *Preludec::ClientProfile_setName; *getAnalyzerId = *Preludec::ClientProfile_getAnalyzerId; *setAnalyzerId = *Preludec::ClientProfile_setAnalyzerId; *getConfigFilename = *Preludec::ClientProfile_getConfigFilename; *getAnalyzeridFilename = *Preludec::ClientProfile_getAnalyzeridFilename; *getTlsKeyFilename = *Preludec::ClientProfile_getTlsKeyFilename; *getTlsServerCaCertFilename = *Preludec::ClientProfile_getTlsServerCaCertFilename; *getTlsServerKeyCertFilename = *Preludec::ClientProfile_getTlsServerKeyCertFilename; *getTlsServerCrlFilename = *Preludec::ClientProfile_getTlsServerCrlFilename; *getTlsClientKeyCertFilename = *Preludec::ClientProfile_getTlsClientKeyCertFilename; *getTlsClientTrustedCertFilename = *Preludec::ClientProfile_getTlsClientTrustedCertFilename; *getBackupDirname = *Preludec::ClientProfile_getBackupDirname; *getProfileDirname = *Preludec::ClientProfile_getProfileDirname; *setPrefix = *Preludec::ClientProfile_setPrefix; *getPrefix = *Preludec::ClientProfile_getPrefix; sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::Connection ############## package Prelude::Connection; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude ); %OWNER = (); %ITERATORS = (); sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_Connection($self); delete $OWNER{$self}; } } sub new { my $pkg = shift; my $self = Preludec::new_Connection(@_); bless $self, $pkg if defined($self); } *getConnection = *Preludec::Connection_getConnection; *close = *Preludec::Connection_close; *connect = *Preludec::Connection_connect; *setState = *Preludec::Connection_setState; *getState = *Preludec::Connection_getState; *setData = *Preludec::Connection_setData; *getData = *Preludec::Connection_getData; *getPermission = *Preludec::Connection_getPermission; *setPeerAnalyzerid = *Preludec::Connection_setPeerAnalyzerid; *getPeerAnalyzerid = *Preludec::Connection_getPeerAnalyzerid; *getLocalAddr = *Preludec::Connection_getLocalAddr; *getLocalPort = *Preludec::Connection_getLocalPort; *getPeerAddr = *Preludec::Connection_getPeerAddr; *getPeerPort = *Preludec::Connection_getPeerPort; *isAlive = *Preludec::Connection_isAlive; *getFd = *Preludec::Connection_getFd; *recvIDMEF = *Preludec::Connection_recvIDMEF; sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::ConnectionPool ############## package Prelude::ConnectionPool; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude ); %OWNER = (); %ITERATORS = (); sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_ConnectionPool($self); delete $OWNER{$self}; } } sub new { my $pkg = shift; my $self = Preludec::new_ConnectionPool(@_); bless $self, $pkg if defined($self); } *init = *Preludec::ConnectionPool_init; *setConnectionString = *Preludec::ConnectionPool_setConnectionString; *getConnectionString = *Preludec::ConnectionPool_getConnectionString; *getConnectionList = *Preludec::ConnectionPool_getConnectionList; *setFlags = *Preludec::ConnectionPool_setFlags; *getFlags = *Preludec::ConnectionPool_getFlags; *setData = *Preludec::ConnectionPool_setData; *getData = *Preludec::ConnectionPool_getData; *addConnection = *Preludec::ConnectionPool_addConnection; *delConnection = *Preludec::ConnectionPool_delConnection; *setConnectionAlive = *Preludec::ConnectionPool_setConnectionAlive; *setConnectionDead = *Preludec::ConnectionPool_setConnectionDead; *setRequiredPermission = *Preludec::ConnectionPool_setRequiredPermission; sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::Client ############## package Prelude::Client; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude::ClientProfile Prelude ); %OWNER = (); %ITERATORS = (); *ASYNC_SEND = *Preludec::Client_ASYNC_SEND; *FLAGS_ASYNC_SEND = *Preludec::Client_FLAGS_ASYNC_SEND; *ASYNC_TIMER = *Preludec::Client_ASYNC_TIMER; *FLAGS_ASYNC_TIMER = *Preludec::Client_FLAGS_ASYNC_TIMER; *HEARTBEAT = *Preludec::Client_HEARTBEAT; *FLAGS_HEARTBEAT = *Preludec::Client_FLAGS_HEARTBEAT; *CONNECT = *Preludec::Client_CONNECT; *FLAGS_CONNECT = *Preludec::Client_FLAGS_CONNECT; *AUTOCONFIG = *Preludec::Client_AUTOCONFIG; *FLAGS_AUTOCONFIG = *Preludec::Client_FLAGS_AUTOCONFIG; *IDMEF_READ = *Preludec::Client_IDMEF_READ; *PERMISSION_IDMEF_READ = *Preludec::Client_PERMISSION_IDMEF_READ; *ADMIN_READ = *Preludec::Client_ADMIN_READ; *PERMISSION_ADMIN_READ = *Preludec::Client_PERMISSION_ADMIN_READ; *IDMEF_WRITE = *Preludec::Client_IDMEF_WRITE; *PERMISSION_IDMEF_WRITE = *Preludec::Client_PERMISSION_IDMEF_WRITE; *ADMIN_WRITE = *Preludec::Client_ADMIN_WRITE; *PERMISSION_ADMIN_WRITE = *Preludec::Client_PERMISSION_ADMIN_WRITE; sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_Client($self); delete $OWNER{$self}; } } sub new { my $pkg = shift; my $self = Preludec::new_Client(@_); bless $self, $pkg if defined($self); } *start = *Preludec::Client_start; *init = *Preludec::Client_init; *getClient = *Preludec::Client_getClient; *sendIDMEF = *Preludec::Client_sendIDMEF; *recvIDMEF = *Preludec::Client_recvIDMEF; *getFlags = *Preludec::Client_getFlags; *setFlags = *Preludec::Client_setFlags; *getRequiredPermission = *Preludec::Client_getRequiredPermission; *setRequiredPermission = *Preludec::Client_setRequiredPermission; *getConfigFilename = *Preludec::Client_getConfigFilename; *setConfigFilename = *Preludec::Client_setConfigFilename; *getConnectionPool = *Preludec::Client_getConnectionPool; *setConnectionPool = *Preludec::Client_setConnectionPool; *__lshift__ = *Preludec::Client___lshift__; *__rshift__ = *Preludec::Client___rshift__; *setRecvTimeout = *Preludec::Client_setRecvTimeout; sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::PreludeLog ############## package Prelude::PreludeLog; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude ); %OWNER = (); %ITERATORS = (); *DEBUG = *Preludec::PreludeLog_DEBUG; *INFO = *Preludec::PreludeLog_INFO; *WARNING = *Preludec::PreludeLog_WARNING; *ERROR = *Preludec::PreludeLog_ERROR; *CRITICAL = *Preludec::PreludeLog_CRITICAL; *QUIET = *Preludec::PreludeLog_QUIET; *SYSLOG = *Preludec::PreludeLog_SYSLOG; *setLevel = *Preludec::PreludeLog_setLevel; *setDebugLevel = *Preludec::PreludeLog_setDebugLevel; *setFlags = *Preludec::PreludeLog_setFlags; *getFlags = *Preludec::PreludeLog_getFlags; *setLogfile = *Preludec::PreludeLog_setLogfile; *setCallback = *Preludec::PreludeLog_setCallback; sub new { my $pkg = shift; my $self = Preludec::new_PreludeLog(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_PreludeLog($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::PreludeError ############## package Prelude::PreludeError; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude ); %OWNER = (); %ITERATORS = (); sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_PreludeError($self); delete $OWNER{$self}; } } sub new { my $pkg = shift; my $self = Preludec::new_PreludeError(@_); bless $self, $pkg if defined($self); } *getCode = *Preludec::PreludeError_getCode; *what = *Preludec::PreludeError_what; sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::ClientEasy ############## package Prelude::ClientEasy; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude::Client Prelude ); %OWNER = (); %ITERATORS = (); sub new { my $pkg = shift; my $self = Preludec::new_ClientEasy(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_ClientEasy($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::IDMEFCriterion ############## package Prelude::IDMEFCriterion; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude ); %OWNER = (); %ITERATORS = (); *OPERATOR_NOT = *Preludec::IDMEFCriterion_OPERATOR_NOT; *OPERATOR_NOCASE = *Preludec::IDMEFCriterion_OPERATOR_NOCASE; *OPERATOR_EQUAL = *Preludec::IDMEFCriterion_OPERATOR_EQUAL; *OPERATOR_EQUAL_NOCASE = *Preludec::IDMEFCriterion_OPERATOR_EQUAL_NOCASE; *OPERATOR_NOT_EQUAL = *Preludec::IDMEFCriterion_OPERATOR_NOT_EQUAL; *OPERATOR_NOT_EQUAL_NOCASE = *Preludec::IDMEFCriterion_OPERATOR_NOT_EQUAL_NOCASE; *OPERATOR_LESSER = *Preludec::IDMEFCriterion_OPERATOR_LESSER; *OPERATOR_LESSER_OR_EQUAL = *Preludec::IDMEFCriterion_OPERATOR_LESSER_OR_EQUAL; *OPERATOR_GREATER = *Preludec::IDMEFCriterion_OPERATOR_GREATER; *OPERATOR_GREATER_OR_EQUAL = *Preludec::IDMEFCriterion_OPERATOR_GREATER_OR_EQUAL; *OPERATOR_SUBSTR = *Preludec::IDMEFCriterion_OPERATOR_SUBSTR; *OPERATOR_SUBSTR_NOCASE = *Preludec::IDMEFCriterion_OPERATOR_SUBSTR_NOCASE; *OPERATOR_NOT_SUBSTR = *Preludec::IDMEFCriterion_OPERATOR_NOT_SUBSTR; *OPERATOR_NOT_SUBSTR_NOCASE = *Preludec::IDMEFCriterion_OPERATOR_NOT_SUBSTR_NOCASE; *OPERATOR_REGEX = *Preludec::IDMEFCriterion_OPERATOR_REGEX; *OPERATOR_REGEX_NOCASE = *Preludec::IDMEFCriterion_OPERATOR_REGEX_NOCASE; *OPERATOR_NOT_REGEX = *Preludec::IDMEFCriterion_OPERATOR_NOT_REGEX; *OPERATOR_NOT_REGEX_NOCASE = *Preludec::IDMEFCriterion_OPERATOR_NOT_REGEX_NOCASE; *OPERATOR_NULL = *Preludec::IDMEFCriterion_OPERATOR_NULL; *OPERATOR_NOT_NULL = *Preludec::IDMEFCriterion_OPERATOR_NOT_NULL; sub new { my $pkg = shift; my $self = Preludec::new_IDMEFCriterion(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_IDMEFCriterion($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::IDMEFCriteria ############## package Prelude::IDMEFCriteria; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude ); %OWNER = (); %ITERATORS = (); *OPERATOR_NOT = *Preludec::IDMEFCriteria_OPERATOR_NOT; *OPERATOR_AND = *Preludec::IDMEFCriteria_OPERATOR_AND; *OPERATOR_OR = *Preludec::IDMEFCriteria_OPERATOR_OR; sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_IDMEFCriteria($self); delete $OWNER{$self}; } } sub new { my $pkg = shift; my $self = Preludec::new_IDMEFCriteria(@_); bless $self, $pkg if defined($self); } *match = *Preludec::IDMEFCriteria_match; *clone = *Preludec::IDMEFCriteria_clone; *andCriteria = *Preludec::IDMEFCriteria_andCriteria; *orCriteria = *Preludec::IDMEFCriteria_orCriteria; *toString = *Preludec::IDMEFCriteria_toString; sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::IDMEFValue ############## package Prelude::IDMEFValue; use overload "<=" => sub { $_[0]->__le__($_[1])}, ">=" => sub { $_[0]->__ge__($_[1])}, "<" => sub { $_[0]->__lt__($_[1])}, "!=" => sub { $_[0]->__ne__($_[1])}, "==" => sub { $_[0]->__eq__($_[1])}, ">" => sub { $_[0]->__gt__($_[1])}, "=" => sub { my $class = ref($_[0]); $class->new($_[0]) }, "fallback" => 1; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude ); %OWNER = (); %ITERATORS = (); *TYPE_UNKNOWN = *Preludec::IDMEFValue_TYPE_UNKNOWN; *TYPE_INT8 = *Preludec::IDMEFValue_TYPE_INT8; *TYPE_UINT8 = *Preludec::IDMEFValue_TYPE_UINT8; *TYPE_INT16 = *Preludec::IDMEFValue_TYPE_INT16; *TYPE_UINT16 = *Preludec::IDMEFValue_TYPE_UINT16; *TYPE_INT32 = *Preludec::IDMEFValue_TYPE_INT32; *TYPE_UINT32 = *Preludec::IDMEFValue_TYPE_UINT32; *TYPE_INT64 = *Preludec::IDMEFValue_TYPE_INT64; *TYPE_UINT64 = *Preludec::IDMEFValue_TYPE_UINT64; *TYPE_FLOAT = *Preludec::IDMEFValue_TYPE_FLOAT; *TYPE_DOUBLE = *Preludec::IDMEFValue_TYPE_DOUBLE; *TYPE_STRING = *Preludec::IDMEFValue_TYPE_STRING; *TYPE_TIME = *Preludec::IDMEFValue_TYPE_TIME; *TYPE_DATA = *Preludec::IDMEFValue_TYPE_DATA; *TYPE_ENUM = *Preludec::IDMEFValue_TYPE_ENUM; *TYPE_LIST = *Preludec::IDMEFValue_TYPE_LIST; *TYPE_CLASS = *Preludec::IDMEFValue_TYPE_CLASS; *getType = *Preludec::IDMEFValue_getType; *isNull = *Preludec::IDMEFValue_isNull; sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_IDMEFValue($self); delete $OWNER{$self}; } } sub new { my $pkg = shift; my $self = Preludec::new_IDMEFValue(@_); bless $self, $pkg if defined($self); } *match = *Preludec::IDMEFValue_match; *clone = *Preludec::IDMEFValue_clone; *toString = *Preludec::IDMEFValue_toString; *__le__ = *Preludec::IDMEFValue___le__; *__ge__ = *Preludec::IDMEFValue___ge__; *__lt__ = *Preludec::IDMEFValue___lt__; *__gt__ = *Preludec::IDMEFValue___gt__; *__eq__ = *Preludec::IDMEFValue___eq__; *__ne__ = *Preludec::IDMEFValue___ne__; sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::IDMEFPath ############## package Prelude::IDMEFPath; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude ); %OWNER = (); %ITERATORS = (); sub new { my $pkg = shift; my $self = Preludec::new_IDMEFPath(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_IDMEFPath($self); delete $OWNER{$self}; } } *set = *Preludec::IDMEFPath_set; *getClass = *Preludec::IDMEFPath_getClass; *getValueType = *Preludec::IDMEFPath_getValueType; *setIndex = *Preludec::IDMEFPath_setIndex; *undefineIndex = *Preludec::IDMEFPath_undefineIndex; *getIndex = *Preludec::IDMEFPath_getIndex; *makeChild = *Preludec::IDMEFPath_makeChild; *makeParent = *Preludec::IDMEFPath_makeParent; *compare = *Preludec::IDMEFPath_compare; *clone = *Preludec::IDMEFPath_clone; *checkOperator = *Preludec::IDMEFPath_checkOperator; *getApplicableOperators = *Preludec::IDMEFPath_getApplicableOperators; *getName = *Preludec::IDMEFPath_getName; *isAmbiguous = *Preludec::IDMEFPath_isAmbiguous; *hasLists = *Preludec::IDMEFPath_hasLists; *isList = *Preludec::IDMEFPath_isList; *getDepth = *Preludec::IDMEFPath_getDepth; *get = *Preludec::IDMEFPath_get; sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::IDMEFTime ############## package Prelude::IDMEFTime; use overload "<=" => sub { $_[0]->__le__($_[1])}, "!=" => sub { $_[0]->__ne__($_[1])}, ">=" => sub { $_[0]->__ge__($_[1])}, "<" => sub { $_[0]->__lt__($_[1])}, "==" => sub { $_[0]->__eq__($_[1])}, ">" => sub { $_[0]->__gt__($_[1])}, "=" => sub { my $class = ref($_[0]); $class->new($_[0]) }, "fallback" => 1; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude ); %OWNER = (); %ITERATORS = (); sub new { my $pkg = shift; my $self = Preludec::new_IDMEFTime(@_); bless $self, $pkg if defined($self); } sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_IDMEFTime($self); delete $OWNER{$self}; } } *set = *Preludec::IDMEFTime_set; *setSec = *Preludec::IDMEFTime_setSec; *setUSec = *Preludec::IDMEFTime_setUSec; *setGmtOffset = *Preludec::IDMEFTime_setGmtOffset; *getSec = *Preludec::IDMEFTime_getSec; *getUSec = *Preludec::IDMEFTime_getUSec; *getGmtOffset = *Preludec::IDMEFTime_getGmtOffset; *getTime = *Preludec::IDMEFTime_getTime; *clone = *Preludec::IDMEFTime_clone; *toString = *Preludec::IDMEFTime_toString; *__ne__ = *Preludec::IDMEFTime___ne__; *__ge__ = *Preludec::IDMEFTime___ge__; *__le__ = *Preludec::IDMEFTime___le__; *__eq__ = *Preludec::IDMEFTime___eq__; *__gt__ = *Preludec::IDMEFTime___gt__; *__lt__ = *Preludec::IDMEFTime___lt__; sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::IDMEFClass ############## package Prelude::IDMEFClass; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude ); %OWNER = (); %ITERATORS = (); sub new { my $pkg = shift; my $self = Preludec::new_IDMEFClass(@_); bless $self, $pkg if defined($self); } *getDepth = *Preludec::IDMEFClass_getDepth; *get = *Preludec::IDMEFClass_get; *getChildCount = *Preludec::IDMEFClass_getChildCount; *isList = *Preludec::IDMEFClass_isList; *isKeyedList = *Preludec::IDMEFClass_isKeyedList; *getName = *Preludec::IDMEFClass_getName; *toString = *Preludec::IDMEFClass_toString; *getValueType = *Preludec::IDMEFClass_getValueType; *getAttributes = *Preludec::IDMEFClass_getAttributes; *getPath = *Preludec::IDMEFClass_getPath; *getEnumValues = *Preludec::IDMEFClass_getEnumValues; *getApplicableOperator = *Preludec::IDMEFClass_getApplicableOperator; sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_IDMEFClass($self); delete $OWNER{$self}; } } sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } ############# Class : Prelude::IDMEF ############## package Prelude::IDMEF; use overload "==" => sub { $_[0]->__eq__($_[1])}, "=" => sub { my $class = ref($_[0]); $class->new($_[0]) }, "fallback" => 1; use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); @ISA = qw( Prelude ); %OWNER = (); %ITERATORS = (); sub DESTROY { return unless $_[0]->isa('HASH'); my $self = tied(%{$_[0]}); return unless defined $self; delete $ITERATORS{$self}; if (exists $OWNER{$self}) { Preludec::delete_IDMEF($self); delete $OWNER{$self}; } } sub new { my $pkg = shift; my $self = Preludec::new_IDMEF(@_); bless $self, $pkg if defined($self); } *set = *Preludec::IDMEF_set; *clone = *Preludec::IDMEF_clone; *getId = *Preludec::IDMEF_getId; *toString = *Preludec::IDMEF_toString; *toJSON = *Preludec::IDMEF_toJSON; *__eq__ = *Preludec::IDMEF___eq__; *write = *Preludec::IDMEF_write; *read = *Preludec::IDMEF_read; *get = *Preludec::IDMEF_get; sub DISOWN { my $self = shift; my $ptr = tied(%$self); delete $OWNER{$ptr}; } sub ACQUIRE { my $self = shift; my $ptr = tied(%$self); $OWNER{$ptr} = 1; } # ------- VARIABLE STUBS -------- package Prelude; 1; libprelude-5.2.0/bindings/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163513020511 xustar000000000000000024 mtime=1599661899.062 24 atime=1599661945.795 24 ctime=1599662000.225 libprelude-5.2.0/bindings/Makefile.in0000644000000000000000000020515013726163513017517 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = bindings DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(dist_swigdata_DATA) $(dist_swigperldata_DATA) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(swigdatadir)" \ "$(DESTDIR)$(swigperldatadir)" DATA = $(dist_swigdata_DATA) $(dist_swigperldata_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = c++ lua python ruby EXTRA_DIST = libpreludecpp.i perl/libpreludecpp-perl.i perl/Makefile.PL.in perl/Prelude.cxx perl/Prelude.pm CLEANFILES = perl/Prelude.o DISTCLEANFILES = lua/prelude.cxx perl/Prelude.cxx ruby/Prelude.cxx MAINTAINERCLEANFILES = \ lua/prelude.cxx \ perl/Makefile \ perl/Prelude.cxx \ perl/Prelude.pm \ perl/Prelude.bs \ python/_prelude.cxx \ python/prelude.py \ ruby/Prelude.cxx swigdatadir = @SWIG_DATA_DIR@ dist_swigdata_DATA = libpreludecpp.i swigperldatadir = @SWIG_DATA_DIR@/perl dist_swigperldata_DATA = perl/libpreludecpp-perl.i all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu bindings/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_swigdataDATA: $(dist_swigdata_DATA) @$(NORMAL_INSTALL) @list='$(dist_swigdata_DATA)'; test -n "$(swigdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(swigdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(swigdatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(swigdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(swigdatadir)" || exit $$?; \ done uninstall-dist_swigdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_swigdata_DATA)'; test -n "$(swigdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(swigdatadir)'; $(am__uninstall_files_from_dir) install-dist_swigperldataDATA: $(dist_swigperldata_DATA) @$(NORMAL_INSTALL) @list='$(dist_swigperldata_DATA)'; test -n "$(swigperldatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(swigperldatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(swigperldatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(swigperldatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(swigperldatadir)" || exit $$?; \ done uninstall-dist_swigperldataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_swigperldata_DATA)'; test -n "$(swigperldatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(swigperldatadir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(swigdatadir)" "$(DESTDIR)$(swigperldatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) @HAVE_EASY_BINDINGS_FALSE@clean-local: @HAVE_PERL_FALSE@clean-local: @HAVE_EASY_BINDINGS_FALSE@install-exec-hook: @HAVE_PERL_FALSE@install-exec-hook: @HAVE_EASY_BINDINGS_FALSE@uninstall-hook: @HAVE_PERL_FALSE@uninstall-hook: clean: clean-recursive clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dist_swigdataDATA \ install-dist_swigperldataDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-dist_swigdataDATA \ uninstall-dist_swigperldataDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(am__recursive_targets) install-am install-exec-am \ install-strip uninstall-am .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool clean-local \ cscopelist-am ctags ctags-am distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dist_swigdataDATA \ install-dist_swigperldataDATA install-dvi install-dvi-am \ install-exec install-exec-am install-exec-hook install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-dist_swigdataDATA uninstall-dist_swigperldataDATA \ uninstall-hook all-am: perl @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@perl: perl-build # # Workaround invalid Makefile generated by MakeMaker when UTF-8 is enabled. # @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@perl-makefile: @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@ cd perl && LANG="" DESTDIR=$(DESTDIR) LIBDIR=$(libdir) $(PERL) Makefile.PL @PERL_EXTRA_PARAMS@ CC="$(CXX)" @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@perl/Prelude.cxx: $(top_srcdir)/bindings/c++/include/*.hxx libpreludecpp.i perl/libpreludecpp-perl.i @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@@HAVE_SWIG_TRUE@ $(SWIG) -c++ -DSWIG_COMPILE_LIBPRELUDE -I$(top_srcdir)/bindings -I$(top_srcdir)/bindings/c++/include -I$(top_srcdir)/src/include -I$(top_srcdir)/src/libprelude-error -perl5 -o $@ libpreludecpp.i @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@perl-build: perl/Prelude.cxx perl-makefile @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@ cd perl && $(MAKE) LD_RUN_PATH="" CC="$(CXX)" @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@install-exec-hook: perl-makefile @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@ cd perl && $(MAKE) LD_RUN_PATH="" install @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@uninstall-hook: perl-makefile @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@ cd perl && $(MAKE) uninstall @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@clean-local: @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@ if test -f perl/Makefile; then cd perl && $(MAKE) clean; fi @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_TRUE@ rm -f perl/Makefile.old @HAVE_EASY_BINDINGS_TRUE@@HAVE_PERL_FALSE@perl: @HAVE_EASY_BINDINGS_FALSE@perl: -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/bindings/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163410020502 xustar000000000000000024 mtime=1599661832.487 23 atime=1599661832.72 24 ctime=1599662000.226 libprelude-5.2.0/bindings/Makefile.am0000644000000000000000000000317313726163410017503 0ustar00rootroot00000000000000SUBDIRS = c++ lua python ruby EXTRA_DIST = libpreludecpp.i perl/libpreludecpp-perl.i perl/Makefile.PL.in perl/Prelude.cxx perl/Prelude.pm CLEANFILES = perl/Prelude.o DISTCLEANFILES = lua/prelude.cxx perl/Prelude.cxx ruby/Prelude.cxx MAINTAINERCLEANFILES = \ lua/prelude.cxx \ perl/Makefile \ perl/Prelude.cxx \ perl/Prelude.pm \ perl/Prelude.bs \ python/_prelude.cxx \ python/prelude.py \ ruby/Prelude.cxx swigdatadir = @SWIG_DATA_DIR@ dist_swigdata_DATA = libpreludecpp.i swigperldatadir = @SWIG_DATA_DIR@/perl dist_swigperldata_DATA = perl/libpreludecpp-perl.i all-am: perl if HAVE_EASY_BINDINGS if HAVE_PERL perl: perl-build # # Workaround invalid Makefile generated by MakeMaker when UTF-8 is enabled. # perl-makefile: cd perl && LANG="" DESTDIR=$(DESTDIR) LIBDIR=$(libdir) $(PERL) Makefile.PL @PERL_EXTRA_PARAMS@ CC="$(CXX)" perl/Prelude.cxx: $(top_srcdir)/bindings/c++/include/*.hxx libpreludecpp.i perl/libpreludecpp-perl.i if HAVE_SWIG $(SWIG) -c++ -DSWIG_COMPILE_LIBPRELUDE -I$(top_srcdir)/bindings -I$(top_srcdir)/bindings/c++/include -I$(top_srcdir)/src/include -I$(top_srcdir)/src/libprelude-error -perl5 -o $@ libpreludecpp.i endif perl-build: perl/Prelude.cxx perl-makefile cd perl && $(MAKE) LD_RUN_PATH="" CC="$(CXX)" install-exec-hook: perl-makefile cd perl && $(MAKE) LD_RUN_PATH="" install uninstall-hook: perl-makefile cd perl && $(MAKE) uninstall clean-local: if test -f perl/Makefile; then cd perl && $(MAKE) clean; fi rm -f perl/Makefile.old else perl: endif else perl: endif -include $(top_srcdir)/git.mk libprelude-5.2.0/bindings/PaxHeaders.14770/libpreludecpp.i0000644000000000000000000000011013726163410021444 xustar000000000000000024 mtime=1599661832.493 24 atime=1599661832.721 24 ctime=1599662000.228 libprelude-5.2.0/bindings/libpreludecpp.i0000644000000000000000000003151613726163410020455 0ustar00rootroot00000000000000/***** * * Copyright (C) 2005-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #if defined(SWIGPYTHON) || defined(SWIGLUA) %module prelude #else %module Prelude #endif %warnfilter(509); %feature("nothread", "1"); %include "std_string.i" %include "std_vector.i" %include "std_map.i" %include "exception.i" %{ #pragma GCC diagnostic ignored "-Wunused-variable" #include #include #include "prelude.hxx" #include "prelude-log.hxx" #include "prelude-error.hxx" #include "prelude-connection.hxx" #include "prelude-connection-pool.hxx" #include "prelude-client-profile.hxx" #include "prelude-client.hxx" #include "prelude-client-easy.hxx" #include "idmef-criteria.hxx" #include "idmef-value.hxx" #include "idmef-path.hxx" #include "idmef-time.hxx" #include "idmef.hxx" using namespace Prelude; %} typedef char int8_t; typedef unsigned char uint8_t; typedef short int16_t; typedef unsigned short uint16_t; typedef int int32_t; typedef unsigned int uint32_t; typedef long long int64_t; typedef unsigned long long uint64_t; %ignore prelude_error_t; typedef signed int prelude_error_t; %ignore idmef_class_id_t; typedef int idmef_class_id_t; typedef long long time_t; %exception { try { $action } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } #ifdef SWIGPERL %include perl/libpreludecpp-perl.i #endif #ifdef SWIGPYTHON %include python/libpreludecpp-python.i #endif #ifdef SWIGRUBY %include ruby/libpreludecpp-ruby.i #endif #ifdef SWIGLUA %include lua/libpreludecpp-lua.i #endif %ignore operator <<(std::ostream &os, const Prelude::IDMEF &idmef); %ignore operator >>(std::istream &is, const Prelude::IDMEF &idmef); %template() std::vector; %template() std::vector; %template() std::vector; %template() std::vector; %template() std::map; #ifdef SWIG_COMPILE_LIBPRELUDE %extend Prelude::IDMEF { Prelude::IDMEFValue get(const char *path) { Prelude::IDMEFValue value; Prelude::IDMEFPath ipath = Prelude::IDMEFPath(*self, path); value = ipath.get(*self); if ( value.isNull() && ipath.isAmbiguous() ) { std::vector v; return Prelude::IDMEFValue(v); } return value; } } %extend Prelude::IDMEFPath { Prelude::IDMEFValue get(Prelude::IDMEF &message) { Prelude::IDMEFValue value; value = self->get(message); if ( value.isNull() && self->isAmbiguous() ) { std::vector v; return Prelude::IDMEFValue(v); } return value; } } #endif %ignore Prelude::IDMEF::get; %ignore Prelude::IDMEFPath::get; %fragment("SWIG_FromBytePtrAndSize", "header", fragment="SWIG_FromCharPtrAndSize") %{ #ifndef SWIG_FromBytePtrAndSize # define SWIG_FromBytePtrAndSize(arg, len) SWIG_FromCharPtrAndSize(arg, len) #endif %} %fragment("IDMEFValue_to_SWIG", "header", fragment="SWIG_From_double", fragment="SWIG_From_float", fragment="SWIG_From_int", fragment="SWIG_From_unsigned_SS_int", fragment="SWIG_From_long_SS_long", fragment="SWIG_From_unsigned_SS_long_SS_long", fragment="SWIG_FromCharPtr", fragment="SWIG_FromCharPtrAndSize", fragment="SWIG_FromBytePtrAndSize", fragment="IDMEFValueList_to_SWIG") { int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret) { idmef_value_t *value = result; Prelude::IDMEFValue::IDMEFValueTypeEnum type = result.getType(); if ( type == Prelude::IDMEFValue::TYPE_STRING ) { prelude_string_t *str = idmef_value_get_string(value); *ret = SWIG_FromCharPtrAndSize(prelude_string_get_string(str), prelude_string_get_len(str)); } else if ( type == Prelude::IDMEFValue::TYPE_INT8 ) *ret = SWIG_From_int(idmef_value_get_int8(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT8 ) *ret = SWIG_From_unsigned_SS_int(idmef_value_get_uint8(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT16 ) *ret = SWIG_From_int(idmef_value_get_int16(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT16 ) *ret = SWIG_From_unsigned_SS_int(idmef_value_get_uint16(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT32 ) *ret = SWIG_From_int(idmef_value_get_int32(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT32 ) *ret = SWIG_From_unsigned_SS_int(idmef_value_get_uint32(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT64 ) *ret = SWIG_From_long_SS_long(idmef_value_get_int64(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT64 ) *ret = SWIG_From_unsigned_SS_long_SS_long(idmef_value_get_uint64(value)); else if ( type == Prelude::IDMEFValue::TYPE_FLOAT ) *ret = SWIG_From_float(idmef_value_get_float(value)); else if ( type == Prelude::IDMEFValue::TYPE_DOUBLE ) *ret = SWIG_From_double(idmef_value_get_double(value)); else if ( type == Prelude::IDMEFValue::TYPE_ENUM ) { const char *s = idmef_class_enum_to_string(idmef_value_get_class(value), idmef_value_get_enum(value)); *ret = SWIG_FromCharPtr(s); } else if ( type == Prelude::IDMEFValue::TYPE_TIME ) { Prelude::IDMEFTime t = result; *ret = SWIG_NewPointerObj(new Prelude::IDMEFTime(t), $descriptor(Prelude::IDMEFTime *), 1); } else if ( type == Prelude::IDMEFValue::TYPE_LIST ) *ret = IDMEFValueList_to_SWIG(self, result, extra); else if ( type == Prelude::IDMEFValue::TYPE_DATA ) { idmef_data_t *d = idmef_value_get_data(value); idmef_data_type_t t = idmef_data_get_type(d); if ( t == IDMEF_DATA_TYPE_BYTE || t == IDMEF_DATA_TYPE_BYTE_STRING ) *ret = SWIG_FromBytePtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d)); else if ( t == IDMEF_DATA_TYPE_CHAR ) *ret = SWIG_FromCharPtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d)); else if ( t == IDMEF_DATA_TYPE_CHAR_STRING ) *ret = SWIG_FromCharPtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d) - 1); else if ( t == IDMEF_DATA_TYPE_FLOAT ) *ret = SWIG_From_float(idmef_data_get_float(d)); else if ( t == IDMEF_DATA_TYPE_UINT32 || IDMEF_DATA_TYPE_INT ) *ret = SWIG_From_unsigned_SS_long_SS_long(idmef_data_get_int(d)); } else if ( type == Prelude::IDMEFValue::TYPE_CLASS ) { idmef_object_t *obj = (idmef_object_t *) idmef_value_get_object(value); *ret = SWIG_NewPointerObj(new Prelude::IDMEF(idmef_object_ref(obj)), $descriptor(Prelude::IDMEF *), 1); } else return -1; return 1; } } %ignore Prelude::IDMEF::IDMEF(std::istream &); %ignore Prelude::IDMEFValue::operator const char*() const; %ignore Prelude::IDMEFValue::operator std::vector() const; %ignore Prelude::IDMEFValue::operator Prelude::IDMEFTime() const; %ignore Prelude::IDMEFValue::operator int8_t() const; %ignore Prelude::IDMEFValue::operator uint8_t() const; %ignore Prelude::IDMEFValue::operator int16_t() const; %ignore Prelude::IDMEFValue::operator uint16_t() const; %ignore Prelude::IDMEFValue::operator int32_t() const; %ignore Prelude::IDMEFValue::operator uint32_t() const; %ignore Prelude::IDMEFValue::operator int64_t() const; %ignore Prelude::IDMEFValue::operator uint64_t() const; %ignore Prelude::IDMEFValue::operator float() const; %ignore Prelude::IDMEFValue::operator double() const; /* * Force SWIG to use the IDMEFValue * version of the Set() function, * so that the user might provide NULL IDMEFValue. Force usage of the * std::string value, for binary data. */ %ignore Prelude::IDMEF::set(char const *, int8_t); %ignore Prelude::IDMEF::set(char const *, uint8_t); %ignore Prelude::IDMEF::set(char const *, int16_t); %ignore Prelude::IDMEF::set(char const *, uint16_t); %ignore Prelude::IDMEF::set(char const *, char const *); %ignore Prelude::IDMEF::set(char const *, Prelude::IDMEFValue &value); %ignore Prelude::IDMEFPath::set(Prelude::IDMEF &, int8_t) const; %ignore Prelude::IDMEFPath::set(Prelude::IDMEF &, uint8_t) const; %ignore Prelude::IDMEFPath::set(Prelude::IDMEF &, int16_t) const; %ignore Prelude::IDMEFPath::set(Prelude::IDMEF &, uint16_t) const; %ignore Prelude::IDMEFPath::set(Prelude::IDMEF &, char const *) const; %ignore Prelude::IDMEFPath::set(Prelude::IDMEF &, Prelude::IDMEFValue &) const; %ignore Prelude::IDMEFValue::IDMEFValue(char const *); %ignore idmef_path_t; %ignore idmef_object_t; %ignore idmef_criteria_t; %ignore prelude_client_t; %ignore prelude_client_profile_t; %ignore prelude_connection_t; %ignore prelude_connection_pool_t; %ignore operator idmef_path_t *() const; %ignore operator idmef_criteria_t *() const; %ignore operator idmef_object_t *() const; %ignore operator prelude_connection_t *(); %ignore operator prelude_connection_pool_t *(); %ignore operator idmef_message_t *() const; %ignore operator idmef_time_t *() const; %ignore operator idmef_value_t *() const; %ignore operator prelude_client_profile_t *() const; /* * We need to unlock the interpreter lock before calling certain methods * because they might acquire internal libprelude mutex that may also be * acquired undirectly through the libprelude asynchronous stack. * * [Thread 2]: Libprelude async stack * -> Lock internal mutexX * -> prelude_log() * -> SWIG/C log callback * -> Wait on Interpreter lock [DEADLOCK] * -> Python logging callback (never called) * * [Thread 1] ConnectionPool::Recv() * -> Acquire Interpreter lock * *** At this time, thread 2 lock internal mutexX * -> Wait on internal mutexX [DEADLOCK] * * In this situation, [Thread 1] hold the Interpreter lock and is * waiting on mutexX, which itself cannot be released by [Thread 2] * until [Thread 1] unlock the Interpreter lock. * * One rule to prevent deadlock is to always acquire mutex in the same * order. We thus need to make sure the interpreter lock is released * before calling C++ method that are susceptible to lock a mutex that * is also triggered from the asynchronous interface. * * Note that we are not releasing the Interpreter lock in all C++ call, * because it come at a performance cost, so we only try to do it when * needed. */ #ifdef SWIG_COMPILE_LIBPRELUDE %feature("exceptionclass") Prelude::PreludeError; %feature("kwargs") Prelude::ClientEasy::ClientEasy; %feature("kwargs") Prelude::Client::recvIDMEF; %feature("kwargs") Prelude::IDMEFClass::getPath; %feature("kwargs") Prelude::IDMEFPath::getClass; %feature("kwargs") Prelude::IDMEFPath::getValueType; %feature("kwargs") Prelude::IDMEFPath::setIndex; %feature("kwargs") Prelude::IDMEFPath::getIndex; %feature("kwargs") Prelude::IDMEFPath::undefineIndex; %feature("kwargs") Prelude::IDMEFPath::compare; %feature("kwargs") Prelude::IDMEFPath::getName; %feature("kwargs") Prelude::IDMEFPath::isList; %include prelude.hxx %include prelude-client-profile.hxx %feature("nothread", "0"); %include prelude-connection.hxx %include prelude-connection-pool.hxx %include prelude-client.hxx %feature("nothread", "1"); %include prelude-log.hxx %include prelude-error.hxx %include prelude-client-easy.hxx %include idmef-criteria.hxx %include idmef-value.hxx %include idmef-path.hxx %include idmef-time.hxx %include idmef-class.hxx %include idmef.hxx #endif libprelude-5.2.0/bindings/PaxHeaders.14770/c++0000644000000000000000000000011013726163660016742 xustar000000000000000024 mtime=1599662000.309 24 atime=1599662006.646 24 ctime=1599662000.309 libprelude-5.2.0/bindings/c++/0000755000000000000000000000000013726163660016022 5ustar00rootroot00000000000000libprelude-5.2.0/bindings/c++/PaxHeaders.14770/Makefile.in0000644000000000000000000000010713726163513021067 xustar000000000000000024 mtime=1599661899.292 23 atime=1599661945.83 24 ctime=1599662000.279 libprelude-5.2.0/bindings/c++/Makefile.in0000644000000000000000000025566113726163513020103 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = bindings/c++ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) @HAVE_EASY_BINDINGS_TRUE@libpreludecpp_la_DEPENDENCIES = $(top_builddir)/src/.libs/libprelude.la am__libpreludecpp_la_SOURCES_DIST = prelude-error.cxx idmef.cxx \ idmef-class.cxx idmef-criteria.cxx idmef-path.cxx \ idmef-time.cxx idmef-value.cxx prelude.cxx prelude-client.cxx \ prelude-client-easy.cxx prelude-client-profile.cxx \ prelude-connection.cxx prelude-connection-pool.cxx \ prelude-log.cxx @HAVE_EASY_BINDINGS_TRUE@am_libpreludecpp_la_OBJECTS = \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-prelude-error.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-idmef.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-idmef-class.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-idmef-criteria.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-idmef-path.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-idmef-time.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-idmef-value.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-prelude.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-prelude-client.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-prelude-client-easy.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-prelude-client-profile.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-prelude-connection.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-prelude-connection-pool.lo \ @HAVE_EASY_BINDINGS_TRUE@ libpreludecpp_la-prelude-log.lo libpreludecpp_la_OBJECTS = $(am_libpreludecpp_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libpreludecpp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(libpreludecpp_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_EASY_BINDINGS_TRUE@am_libpreludecpp_la_rpath = -rpath $(libdir) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(libpreludecpp_la_SOURCES) DIST_SOURCES = $(am__libpreludecpp_la_SOURCES_DIST) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = include DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @HAVE_EASY_BINDINGS_TRUE@SUBDIRS = include @HAVE_EASY_BINDINGS_TRUE@lib_LTLIBRARIES = libpreludecpp.la @HAVE_EASY_BINDINGS_TRUE@libpreludecpp_ladir = ${prefix}/lib @HAVE_EASY_BINDINGS_TRUE@libpreludecpp_la_SOURCES = \ @HAVE_EASY_BINDINGS_TRUE@ prelude-error.cxx \ @HAVE_EASY_BINDINGS_TRUE@ idmef.cxx \ @HAVE_EASY_BINDINGS_TRUE@ idmef-class.cxx \ @HAVE_EASY_BINDINGS_TRUE@ idmef-criteria.cxx \ @HAVE_EASY_BINDINGS_TRUE@ idmef-path.cxx \ @HAVE_EASY_BINDINGS_TRUE@ idmef-time.cxx \ @HAVE_EASY_BINDINGS_TRUE@ idmef-value.cxx \ @HAVE_EASY_BINDINGS_TRUE@ prelude.cxx \ @HAVE_EASY_BINDINGS_TRUE@ prelude-client.cxx \ @HAVE_EASY_BINDINGS_TRUE@ prelude-client-easy.cxx \ @HAVE_EASY_BINDINGS_TRUE@ prelude-client-profile.cxx \ @HAVE_EASY_BINDINGS_TRUE@ prelude-connection.cxx \ @HAVE_EASY_BINDINGS_TRUE@ prelude-connection-pool.cxx \ @HAVE_EASY_BINDINGS_TRUE@ prelude-log.cxx @HAVE_EASY_BINDINGS_TRUE@libpreludecpp_la_LDFLAGS = -no-undefined -version-info @LIBPRELUDECPP_SONAME@ @HAVE_EASY_BINDINGS_TRUE@libpreludecpp_la_LIBADD = $(top_builddir)/src/.libs/libprelude.la @HAVE_EASY_BINDINGS_TRUE@libpreludecpp_la_CPPFLAGS = -I$(top_builddir) -I$(top_builddir)/src/include -I$(top_srcdir)/src/include -I$(top_builddir)/src/libprelude-error -I$(top_builddir)/bindings/c++/include -I$(top_srcdir)/bindings/c++/include all: all-recursive .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/c++/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu bindings/c++/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libpreludecpp.la: $(libpreludecpp_la_OBJECTS) $(libpreludecpp_la_DEPENDENCIES) $(EXTRA_libpreludecpp_la_DEPENDENCIES) $(AM_V_CXXLD)$(libpreludecpp_la_LINK) $(am_libpreludecpp_la_rpath) $(libpreludecpp_la_OBJECTS) $(libpreludecpp_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-idmef-class.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-idmef-criteria.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-idmef-path.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-idmef-time.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-idmef-value.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-idmef.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-prelude-client-easy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-prelude-client-profile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-prelude-client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-prelude-connection-pool.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-prelude-connection.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-prelude-error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-prelude-log.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpreludecpp_la-prelude.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libpreludecpp_la-prelude-error.lo: prelude-error.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-prelude-error.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-prelude-error.Tpo -c -o libpreludecpp_la-prelude-error.lo `test -f 'prelude-error.cxx' || echo '$(srcdir)/'`prelude-error.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-prelude-error.Tpo $(DEPDIR)/libpreludecpp_la-prelude-error.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='prelude-error.cxx' object='libpreludecpp_la-prelude-error.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-prelude-error.lo `test -f 'prelude-error.cxx' || echo '$(srcdir)/'`prelude-error.cxx libpreludecpp_la-idmef.lo: idmef.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-idmef.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-idmef.Tpo -c -o libpreludecpp_la-idmef.lo `test -f 'idmef.cxx' || echo '$(srcdir)/'`idmef.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-idmef.Tpo $(DEPDIR)/libpreludecpp_la-idmef.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='idmef.cxx' object='libpreludecpp_la-idmef.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-idmef.lo `test -f 'idmef.cxx' || echo '$(srcdir)/'`idmef.cxx libpreludecpp_la-idmef-class.lo: idmef-class.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-idmef-class.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-idmef-class.Tpo -c -o libpreludecpp_la-idmef-class.lo `test -f 'idmef-class.cxx' || echo '$(srcdir)/'`idmef-class.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-idmef-class.Tpo $(DEPDIR)/libpreludecpp_la-idmef-class.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='idmef-class.cxx' object='libpreludecpp_la-idmef-class.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-idmef-class.lo `test -f 'idmef-class.cxx' || echo '$(srcdir)/'`idmef-class.cxx libpreludecpp_la-idmef-criteria.lo: idmef-criteria.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-idmef-criteria.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-idmef-criteria.Tpo -c -o libpreludecpp_la-idmef-criteria.lo `test -f 'idmef-criteria.cxx' || echo '$(srcdir)/'`idmef-criteria.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-idmef-criteria.Tpo $(DEPDIR)/libpreludecpp_la-idmef-criteria.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='idmef-criteria.cxx' object='libpreludecpp_la-idmef-criteria.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-idmef-criteria.lo `test -f 'idmef-criteria.cxx' || echo '$(srcdir)/'`idmef-criteria.cxx libpreludecpp_la-idmef-path.lo: idmef-path.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-idmef-path.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-idmef-path.Tpo -c -o libpreludecpp_la-idmef-path.lo `test -f 'idmef-path.cxx' || echo '$(srcdir)/'`idmef-path.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-idmef-path.Tpo $(DEPDIR)/libpreludecpp_la-idmef-path.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='idmef-path.cxx' object='libpreludecpp_la-idmef-path.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-idmef-path.lo `test -f 'idmef-path.cxx' || echo '$(srcdir)/'`idmef-path.cxx libpreludecpp_la-idmef-time.lo: idmef-time.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-idmef-time.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-idmef-time.Tpo -c -o libpreludecpp_la-idmef-time.lo `test -f 'idmef-time.cxx' || echo '$(srcdir)/'`idmef-time.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-idmef-time.Tpo $(DEPDIR)/libpreludecpp_la-idmef-time.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='idmef-time.cxx' object='libpreludecpp_la-idmef-time.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-idmef-time.lo `test -f 'idmef-time.cxx' || echo '$(srcdir)/'`idmef-time.cxx libpreludecpp_la-idmef-value.lo: idmef-value.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-idmef-value.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-idmef-value.Tpo -c -o libpreludecpp_la-idmef-value.lo `test -f 'idmef-value.cxx' || echo '$(srcdir)/'`idmef-value.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-idmef-value.Tpo $(DEPDIR)/libpreludecpp_la-idmef-value.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='idmef-value.cxx' object='libpreludecpp_la-idmef-value.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-idmef-value.lo `test -f 'idmef-value.cxx' || echo '$(srcdir)/'`idmef-value.cxx libpreludecpp_la-prelude.lo: prelude.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-prelude.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-prelude.Tpo -c -o libpreludecpp_la-prelude.lo `test -f 'prelude.cxx' || echo '$(srcdir)/'`prelude.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-prelude.Tpo $(DEPDIR)/libpreludecpp_la-prelude.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='prelude.cxx' object='libpreludecpp_la-prelude.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-prelude.lo `test -f 'prelude.cxx' || echo '$(srcdir)/'`prelude.cxx libpreludecpp_la-prelude-client.lo: prelude-client.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-prelude-client.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-prelude-client.Tpo -c -o libpreludecpp_la-prelude-client.lo `test -f 'prelude-client.cxx' || echo '$(srcdir)/'`prelude-client.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-prelude-client.Tpo $(DEPDIR)/libpreludecpp_la-prelude-client.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='prelude-client.cxx' object='libpreludecpp_la-prelude-client.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-prelude-client.lo `test -f 'prelude-client.cxx' || echo '$(srcdir)/'`prelude-client.cxx libpreludecpp_la-prelude-client-easy.lo: prelude-client-easy.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-prelude-client-easy.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-prelude-client-easy.Tpo -c -o libpreludecpp_la-prelude-client-easy.lo `test -f 'prelude-client-easy.cxx' || echo '$(srcdir)/'`prelude-client-easy.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-prelude-client-easy.Tpo $(DEPDIR)/libpreludecpp_la-prelude-client-easy.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='prelude-client-easy.cxx' object='libpreludecpp_la-prelude-client-easy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-prelude-client-easy.lo `test -f 'prelude-client-easy.cxx' || echo '$(srcdir)/'`prelude-client-easy.cxx libpreludecpp_la-prelude-client-profile.lo: prelude-client-profile.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-prelude-client-profile.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-prelude-client-profile.Tpo -c -o libpreludecpp_la-prelude-client-profile.lo `test -f 'prelude-client-profile.cxx' || echo '$(srcdir)/'`prelude-client-profile.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-prelude-client-profile.Tpo $(DEPDIR)/libpreludecpp_la-prelude-client-profile.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='prelude-client-profile.cxx' object='libpreludecpp_la-prelude-client-profile.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-prelude-client-profile.lo `test -f 'prelude-client-profile.cxx' || echo '$(srcdir)/'`prelude-client-profile.cxx libpreludecpp_la-prelude-connection.lo: prelude-connection.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-prelude-connection.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-prelude-connection.Tpo -c -o libpreludecpp_la-prelude-connection.lo `test -f 'prelude-connection.cxx' || echo '$(srcdir)/'`prelude-connection.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-prelude-connection.Tpo $(DEPDIR)/libpreludecpp_la-prelude-connection.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='prelude-connection.cxx' object='libpreludecpp_la-prelude-connection.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-prelude-connection.lo `test -f 'prelude-connection.cxx' || echo '$(srcdir)/'`prelude-connection.cxx libpreludecpp_la-prelude-connection-pool.lo: prelude-connection-pool.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-prelude-connection-pool.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-prelude-connection-pool.Tpo -c -o libpreludecpp_la-prelude-connection-pool.lo `test -f 'prelude-connection-pool.cxx' || echo '$(srcdir)/'`prelude-connection-pool.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-prelude-connection-pool.Tpo $(DEPDIR)/libpreludecpp_la-prelude-connection-pool.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='prelude-connection-pool.cxx' object='libpreludecpp_la-prelude-connection-pool.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-prelude-connection-pool.lo `test -f 'prelude-connection-pool.cxx' || echo '$(srcdir)/'`prelude-connection-pool.cxx libpreludecpp_la-prelude-log.lo: prelude-log.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libpreludecpp_la-prelude-log.lo -MD -MP -MF $(DEPDIR)/libpreludecpp_la-prelude-log.Tpo -c -o libpreludecpp_la-prelude-log.lo `test -f 'prelude-log.cxx' || echo '$(srcdir)/'`prelude-log.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libpreludecpp_la-prelude-log.Tpo $(DEPDIR)/libpreludecpp_la-prelude-log.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='prelude-log.cxx' object='libpreludecpp_la-prelude-log.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpreludecpp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libpreludecpp_la-prelude-log.lo `test -f 'prelude-log.cxx' || echo '$(srcdir)/'`prelude-log.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libLTLIBRARIES \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/bindings/c++/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163410021052 xustar000000000000000024 mtime=1599661832.487 23 atime=1599661832.72 24 ctime=1599662000.281 libprelude-5.2.0/bindings/c++/Makefile.am0000644000000000000000000000151413726163410020050 0ustar00rootroot00000000000000if HAVE_EASY_BINDINGS SUBDIRS = include lib_LTLIBRARIES = libpreludecpp.la libpreludecpp_ladir = ${prefix}/lib libpreludecpp_la_SOURCES = \ prelude-error.cxx \ idmef.cxx \ idmef-class.cxx \ idmef-criteria.cxx \ idmef-path.cxx \ idmef-time.cxx \ idmef-value.cxx \ prelude.cxx \ prelude-client.cxx \ prelude-client-easy.cxx \ prelude-client-profile.cxx \ prelude-connection.cxx \ prelude-connection-pool.cxx \ prelude-log.cxx libpreludecpp_la_LDFLAGS = -no-undefined -version-info @LIBPRELUDECPP_SONAME@ libpreludecpp_la_LIBADD = $(top_builddir)/src/.libs/libprelude.la libpreludecpp_la_CPPFLAGS = -I$(top_builddir) -I$(top_builddir)/src/include -I$(top_srcdir)/src/include -I$(top_builddir)/src/libprelude-error -I$(top_builddir)/bindings/c++/include -I$(top_srcdir)/bindings/c++/include endif -include $(top_srcdir)/git.mk libprelude-5.2.0/bindings/c++/PaxHeaders.14770/prelude-error.cxx0000644000000000000000000000011013726163410022323 xustar000000000000000024 mtime=1599661832.492 24 atime=1599661832.721 24 ctime=1599662000.283 libprelude-5.2.0/bindings/c++/prelude-error.cxx0000644000000000000000000000320313726163410021324 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include #include #include "prelude-error.hxx" #include using namespace Prelude; PreludeError::PreludeError(void) throw() { _error = -1; } PreludeError::PreludeError(const std::string &message) throw() { _error = -1; _message = message; } PreludeError::PreludeError(int error) throw() { _error = error; _message = prelude_strerror(error); } const char *PreludeError::what() const throw() { return _message.c_str(); } int PreludeError::getCode() const { return prelude_error_get_code(_error); } PreludeError::operator const char *() const { return _message.c_str(); } PreludeError::operator int () const { return prelude_error_get_code(_error); } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/idmef.cxx0000644000000000000000000000010713726163410020626 xustar000000000000000024 mtime=1599661832.488 23 atime=1599661832.72 24 ctime=1599662000.284 libprelude-5.2.0/bindings/c++/idmef.cxx0000644000000000000000000001732013726163410017626 0ustar00rootroot00000000000000/***** * * Copyright (C) 2009-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include #include #include #include #include #include #include "prelude-error.hxx" #include "idmef-path.hxx" #include "idmef.hxx" using namespace Prelude; static int ostream_write(prelude_msgbuf_t *fd, prelude_msg_t *msg) { std::ostream *os = (std::ostream *) prelude_msgbuf_get_data(fd); os->write((const char *)prelude_msg_get_message_data(msg), prelude_msg_get_len(msg)); prelude_msg_recycle(msg); return 0; } static ssize_t istream_read(prelude_io_t *fd, void *buf, size_t size) { std::istream *is = (std::istream *) prelude_io_get_fdptr(fd); is->read((char *) buf, size); return is->gcount(); } IDMEF::IDMEF() : _object(NULL) { int ret; ret = idmef_message_new((idmef_message_t **) &_object); if ( ret < 0 ) throw PreludeError(ret); } IDMEF::IDMEF(const char *json) : _object(NULL) { int ret; ret = idmef_object_new_from_json(&_object, json); if ( ret < 0 ) throw PreludeError(ret); } IDMEF::IDMEF(std::istream &is) { _genericRead(istream_read, &is); } IDMEF::IDMEF(const IDMEF &idmef) { _object = (idmef._object) ? idmef_object_ref(idmef._object) : NULL; } IDMEF::IDMEF(idmef_object_t *object) { _object = object; } IDMEF::~IDMEF() { if ( _object ) idmef_object_destroy(_object); } void IDMEF::set(const char *path, const std::vector &value) { IDMEFPath(*this, path).set(*this, value); } void IDMEF::set(const char *path, IDMEF *value) { IDMEFPath(*this, path).set(*this, value); } void IDMEF::set(const char *path, const std::vector &value) { IDMEFPath(*this, path).set(*this, value); } void IDMEF::set(const char *path, IDMEFValue *value) { IDMEFPath(*this, path).set(*this, value); } void IDMEF::set(const char *path, IDMEFValue &value) { IDMEFPath(*this, path).set(*this, &value); } void IDMEF::set(const char *path, const std::string &value) { IDMEFPath(*this, path).set(*this, value); } void IDMEF::set(const char *path, const char *value) { IDMEFPath(*this, path).set(*this, value); } void IDMEF::set(const char *path, int32_t value) { IDMEFPath(*this, path).set(*this, value); } void IDMEF::set(const char *path, int64_t value) { IDMEFPath(*this, path).set(*this, value); } void IDMEF::set(const char *path, uint64_t value) { IDMEFPath(*this, path).set(*this, value); } void IDMEF::set(const char *path, float value) { IDMEFPath(*this, path).set(*this, value); } void IDMEF::set(const char *path, double value) { IDMEFPath(*this, path).set(*this, value); } void IDMEF::set(const char *path, IDMEFTime &value) { IDMEFPath(*this, path).set(*this, value); } IDMEFValue IDMEF::get(const char *path) { return IDMEFPath(*this, path).get(*this); } int IDMEF::operator == (const IDMEF *idmef) { if ( ! idmef ) return 0; if ( _object == idmef->_object ) return 1; return idmef_object_compare(_object, idmef->_object) == 0 ? 1 : 0; } IDMEF IDMEF::clone() { int ret; idmef_object_t *clone; ret = idmef_object_clone(_object, &clone); if ( ret < 0 ) throw PreludeError(ret); return IDMEF(clone); } idmef_class_id_t IDMEF::getId() const { return _object->_idmef_object_id; } const std::string IDMEF::toString() const { int ret; std::string str; prelude_io_t *fd; ret = prelude_io_new(&fd); if ( ret < 0 ) throw PreludeError(ret); prelude_io_set_buffer_io(fd); idmef_object_print(_object, fd); str.assign((const char *) prelude_io_get_fdptr(fd), prelude_io_pending(fd)); prelude_io_close(fd); prelude_io_destroy(fd); return str; } const std::string IDMEF::toJSON() const { int ret; std::string str; prelude_io_t *fd; ret = prelude_io_new(&fd); if ( ret < 0 ) throw PreludeError(ret); prelude_io_set_buffer_io(fd); idmef_object_print_json(_object, fd); str.assign((const char *) prelude_io_get_fdptr(fd), prelude_io_pending(fd)); prelude_io_close(fd); prelude_io_destroy(fd); return str; } void IDMEF::_genericRead(ssize_t (read_cb)(prelude_io_t *fd, void *buf, size_t size), void *fd_data) { int ret; prelude_io_t *fd; prelude_msg_t *msg = NULL; if ( this->_object->_idmef_object_id != IDMEF_CLASS_ID_MESSAGE ) throw PreludeError("read operation only supported on root IDMEF object"); ret = prelude_io_new(&fd); if ( ret < 0 ) throw PreludeError(ret); prelude_io_set_fdptr(fd, fd_data); prelude_io_set_read_callback(fd, read_cb); ret = prelude_msg_read(&msg, fd); prelude_io_destroy(fd); if ( ret < 0 ) throw PreludeError(ret); ret = idmef_message_read((idmef_message_t *) this->_object, msg); if ( ret < 0 ) { prelude_msg_destroy(msg); throw PreludeError(ret); } idmef_message_set_pmsg((idmef_message_t *) this->_object, msg); } std::istream &operator >>(std::istream &is, Prelude::IDMEF &idmef) { idmef._genericRead(istream_read, &is); return is; } size_t IDMEF::_genericWrite(int (write_cb)(prelude_msgbuf_t *msgbuf, prelude_msg_t *msg), void *fd_data) const { int ret; prelude_msgbuf_t *fd; if ( this->_object->_idmef_object_id != IDMEF_CLASS_ID_MESSAGE ) throw PreludeError("write operation only supported on root IDMEF object"); ret = prelude_msgbuf_new(&fd); if ( ret < 0 ) throw PreludeError(ret); prelude_msgbuf_set_data(fd, fd_data); prelude_msgbuf_set_callback(fd, write_cb); ret = idmef_message_write((idmef_message_t *) this->_object, fd); if ( ret < 0 ) { prelude_msgbuf_destroy(fd); throw PreludeError(ret); } prelude_msgbuf_destroy(fd); return ret; } std::ostream &operator <<(std::ostream &os, const IDMEF &idmef) { idmef._genericWrite(ostream_write, &os); return os; } IDMEF::operator const std::string() const { return toString(); } IDMEF::operator idmef_object_t *() const { return (idmef_object_t *) _object; } IDMEF &IDMEF::operator = (const IDMEF &idmef) { if ( this != &idmef && _object != idmef._object ) { if ( _object ) idmef_object_destroy(_object); _object = (idmef._object) ? idmef_object_ref(idmef._object) : NULL; } return *this; } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/idmef-class.cxx0000644000000000000000000000010713726163410021731 xustar000000000000000024 mtime=1599661832.487 23 atime=1599661832.72 24 ctime=1599662000.286 libprelude-5.2.0/bindings/c++/idmef-class.cxx0000644000000000000000000001440613726163410020733 0ustar00rootroot00000000000000/***** * * Copyright (C) 2014-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include #include #include #include "prelude.hxx" using namespace Prelude; IDMEFClass::IDMEFClass(idmef_class_id_t id) { _id = id; _depth = 0; } IDMEFClass::IDMEFClass(const IDMEFPath &path) { int i; IDMEFClass root; for ( i = 0; i < path.getDepth(); i++ ) root = root.get(path.getName(i)); *this = root; } IDMEFClass::IDMEFClass(const std::string &path) { *this = IDMEFClass(IDMEFPath(path.c_str())); } IDMEFClass::IDMEFClass(IDMEFClass &parent, int child_id, int depth) { IDMEFClass::IDMEFClassElem elem; if ( depth >= 16 ) throw PreludeError(prelude_error(PRELUDE_ERROR_IDMEF_PATH_DEPTH)); _depth = depth; _pathelem = parent._pathelem; _id = idmef_class_get_child_class(parent._id, child_id); elem.parent_id = parent._id; elem.idx = child_id; _pathelem.push_back(elem); } std::string IDMEFClass::toString(void) { unsigned int i = 0; std::string s = "IDMEFClass(" + getName(); do { if ( i > 0 ) s += ", "; try { s += get(i++).toString(); } catch(...) { break; } } while ( TRUE ); s += "\n)"; return s; } bool IDMEFClass::isList(void) { if ( _pathelem.size() == 0 ) throw PreludeError("Already in rootclass, cannot retrieve parents info"); return idmef_class_is_child_list(_pathelem.back().parent_id, _pathelem.back().idx); } bool IDMEFClass::isKeyedList(void) { if ( _pathelem.size() == 0 ) throw PreludeError("Already in rootclass, cannot retrieve parents info"); return idmef_class_is_child_keyed_list(_pathelem.back().parent_id, _pathelem.back().idx); } Prelude::IDMEFValue::IDMEFValueTypeEnum IDMEFClass::getValueType(void) { if ( _pathelem.size() == 0 ) throw PreludeError("Already in rootclass, cannot retrieve parents info"); return (Prelude::IDMEFValue::IDMEFValueTypeEnum) idmef_class_get_child_value_type(_pathelem.back().parent_id, _pathelem.back().idx); } std::map IDMEFClass::getAttributes(void) { int i; std::map ret; const char **attrs; if ( _pathelem.size() == 0 ) throw PreludeError("Already in rootclass, cannot retrieve parents info"); attrs = idmef_class_get_child_attributes(_pathelem.back().parent_id, _pathelem.back().idx); for ( i = 0; attrs && attrs[i] != NULL; i++ ) { if ( i % 2 == 1 ) ret[attrs[i - 1]] = attrs[i]; } return ret; } std::string IDMEFClass::getName(void) { if ( _pathelem.size() == 0 ) return idmef_class_get_name(_id); return idmef_class_get_child_name(_pathelem.back().parent_id, _pathelem.back().idx); } size_t IDMEFClass::getDepth(void) { return _pathelem.size(); } std::string IDMEFClass::getPath(int rootidx, int depth, const std::string &sep, const std::string &listidx) { std::string out; if ( depth >= 0 ) { if ( (depth + 1) == _pathelem.size() ) return getName(); IDMEFClassElem elem = _pathelem[depth]; return idmef_class_get_child_name(elem.parent_id, elem.idx); } for ( std::vector::iterator it = _pathelem.begin() + rootidx; it != _pathelem.end(); it++) { out += idmef_class_get_child_name((*it).parent_id, (*it).idx); if ( idmef_class_is_child_list((*it).parent_id, (*it).idx) ) out += listidx; if ( it + 1 != _pathelem.end() ) out += sep; } return out; } IDMEFClass IDMEFClass::get(const std::string &name) { int i = idmef_class_find_child(_id, name.c_str()); if ( i < 0 ) throw PreludeError(i); return get(i); } IDMEFClass IDMEFClass::get(int i) { idmef_class_id_t cl; idmef_value_type_id_t vl; cl = idmef_class_get_child_class(_id, i); if ( cl < 0 ) { vl = (idmef_value_type_id_t) idmef_class_get_child_value_type(_id, i); if ( vl < 0 ) throw PreludeError(vl); } return IDMEFClass(*this, i, _depth + 1); } std::vector IDMEFClass::getEnumValues(void) { int i = 0; const char *ret; std::vector ev; if ( getValueType() != IDMEFValue::TYPE_ENUM ) throw PreludeError("Input class is not enumeration"); do { ret = idmef_class_enum_to_string(_id, i++); if ( ret ) ev.push_back(ret); } while ( ret || i == 1 ); /* entry 0 might be NULL, if the enumeration has no default value */ return ev; } IDMEFCriterion::IDMEFCriterionOperatorEnum IDMEFClass::getApplicableOperator(void) { int ret; idmef_criterion_operator_t op; ret = idmef_value_type_get_applicable_operators((idmef_value_type_id_t) getValueType(), &op); if ( ret < 0 ) throw PreludeError(ret); return (IDMEFCriterion::IDMEFCriterionOperatorEnum) ret; } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/idmef-criteria.cxx0000644000000000000000000000010713726163410022426 xustar000000000000000024 mtime=1599661832.487 23 atime=1599661832.72 24 ctime=1599662000.288 libprelude-5.2.0/bindings/c++/idmef-criteria.cxx0000644000000000000000000000727113726163410021432 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "idmef.hxx" #include "idmef-criteria.hxx" #include "prelude-error.hxx" using namespace Prelude; IDMEFCriteria::~IDMEFCriteria() { if ( _criteria ) idmef_criteria_destroy(_criteria); } IDMEFCriteria::IDMEFCriteria(const IDMEFCriteria &criteria) { _criteria = (criteria._criteria) ? idmef_criteria_ref(criteria._criteria) : NULL; } IDMEFCriteria::IDMEFCriteria(idmef_criteria_t *criteria) { _criteria = criteria; } IDMEFCriteria::IDMEFCriteria(const char *criteria) { int ret; ret = idmef_criteria_new_from_string(&_criteria, criteria); if ( ret < 0 ) throw PreludeError(ret); } IDMEFCriteria::IDMEFCriteria(const std::string &criteria) { int ret; ret = idmef_criteria_new_from_string(&_criteria, criteria.c_str()); if ( ret < 0 ) throw PreludeError(ret); } IDMEFCriteria::IDMEFCriteria() { int ret; ret = idmef_criteria_new(&_criteria); if ( ret < 0 ) throw PreludeError(ret); } IDMEFCriteria IDMEFCriteria::clone() const { int ret; idmef_criteria_t *cl; ret = idmef_criteria_clone(this->_criteria, &cl); if ( ret < 0 ) throw PreludeError(ret); return IDMEFCriteria(cl); } void IDMEFCriteria::andCriteria(const IDMEFCriteria &criteria) { idmef_criteria_and_criteria(this->_criteria, criteria._criteria); } void IDMEFCriteria::orCriteria(const IDMEFCriteria &criteria) { idmef_criteria_or_criteria(this->_criteria, criteria._criteria); } int IDMEFCriteria::match(IDMEF *message) const { int ret; ret = idmef_criteria_match(this->_criteria, *message); if ( ret < 0 ) throw PreludeError(ret); return ret; } const std::string IDMEFCriteria::toString() const { int ret; std::string s; prelude_string_t *str; ret = prelude_string_new(&str); if ( ret < 0 ) throw PreludeError(ret); ret = idmef_criteria_to_string(_criteria, str); if ( ret < 0 ) { prelude_string_destroy(str); throw PreludeError(ret); } s = prelude_string_get_string(str); prelude_string_destroy(str); return s; } IDMEFCriteria::operator const std::string() const { return toString(); } IDMEFCriteria::operator idmef_criteria_t *() const { return _criteria; } IDMEFCriteria &IDMEFCriteria::operator=(const IDMEFCriteria &criteria) { if ( this != &criteria && _criteria != criteria._criteria ) { if ( _criteria ) idmef_criteria_destroy(_criteria); _criteria = (criteria._criteria) ? idmef_criteria_ref(criteria._criteria) : NULL; } return *this; } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/idmef-path.cxx0000644000000000000000000000010713726163410021560 xustar000000000000000024 mtime=1599661832.488 23 atime=1599661832.72 24 ctime=1599662000.289 libprelude-5.2.0/bindings/c++/idmef-path.cxx0000644000000000000000000001754413726163410020570 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "idmef.hxx" #include "idmef-path.hxx" #include "idmef-class.hxx" #include "prelude-error.hxx" #include "idmef-object-prv.h" using namespace Prelude; IDMEFPath::IDMEFPath(const char *buffer) { int ret; ret = idmef_path_new_fast(&_path, buffer); if ( ret < 0 ) throw PreludeError(ret); } IDMEFPath::IDMEFPath(IDMEF &idmef, const char *buffer) { int ret; idmef_object_t *obj = (idmef_object_t *) idmef; ret = idmef_path_new_from_root_fast(&_path, obj->_idmef_object_id, buffer); if ( ret < 0 ) throw PreludeError(ret); } IDMEFPath::IDMEFPath(idmef_path_t *path) { _path = path; } IDMEFPath::IDMEFPath(const IDMEFPath &path) { _path = (path._path) ? idmef_path_ref(path._path) : NULL; } IDMEFPath::~IDMEFPath() { idmef_path_destroy(_path); } IDMEFValue IDMEFPath::get(const IDMEF &message) const { int ret; idmef_value_t *value; ret = idmef_path_get(_path, message, &value); if ( ret < 0 ) throw PreludeError(ret); else if ( ret == 0 ) return IDMEFValue((idmef_value_t *) NULL); return IDMEFValue(value); } Prelude::IDMEFValue::IDMEFValueTypeEnum IDMEFPath::getValueType(int depth) const { return (Prelude::IDMEFValue::IDMEFValueTypeEnum) idmef_path_get_value_type(_path, depth); } int IDMEFPath::checkOperator(idmef_criterion_operator_t op) const { return idmef_path_check_operator(_path, op); } idmef_criterion_operator_t IDMEFPath::getApplicableOperators() const { int ret; idmef_criterion_operator_t res; ret = idmef_path_get_applicable_operators(_path, &res); if ( ret < 0 ) throw PreludeError(ret); return res; } void IDMEFPath::set(IDMEF &message, const std::vector &value) const { int ret; IDMEFValue v = value; ret = idmef_path_set(_path, message, v); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFPath::set(IDMEF &message, IDMEF *value) const { int ret; if ( ! value ) ret = idmef_path_set(_path, message, NULL); else ret = idmef_path_set(_path, message, IDMEFValue(value)); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFPath::set(IDMEF &message, IDMEFValue *value) const { int ret; if ( ! value ) ret = idmef_path_set(_path, message, NULL); else ret = idmef_path_set(_path, message, *value); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFPath::set(IDMEF &message, const std::vector &value) const { int ret; IDMEFValue v = value; ret = idmef_path_set(_path, message, v); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFPath::set(IDMEF &message, IDMEFValue &value) const { int ret; ret = idmef_path_set(_path, message, value); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFPath::set(IDMEF &message, const std::string &value) const { int ret; ret = idmef_path_set(_path, message, IDMEFValue(value)); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFPath::set(IDMEF &message, const char *value) const { int ret; if ( value ) ret = idmef_path_set(_path, message, IDMEFValue(value)); else ret = idmef_path_set(_path, message, (idmef_value_t *) NULL); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFPath::set(IDMEF &message, int32_t value) const { int ret; ret = idmef_path_set(_path, message, IDMEFValue(value)); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFPath::set(IDMEF &message, int64_t value) const { int ret; ret = idmef_path_set(_path, message, IDMEFValue(value)); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFPath::set(IDMEF &message, uint64_t value) const { int ret; ret = idmef_path_set(_path, message, IDMEFValue(value)); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFPath::set(IDMEF &message, float value) const { int ret; ret = idmef_path_set(_path, message, IDMEFValue(value)); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFPath::set(IDMEF &message, double value) const { int ret; ret = idmef_path_set(_path, message, IDMEFValue(value)); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFPath::set(IDMEF &message, IDMEFTime &time) const { int ret; ret = idmef_path_set(_path, message, IDMEFValue(time)); if ( ret < 0 ) throw PreludeError(ret); } IDMEFClass IDMEFPath::getClass(int depth) const { return IDMEFClass(idmef_path_get_class(_path, depth)); } int IDMEFPath::setIndex(unsigned int index, int depth) { if ( depth < 0 ) depth = getDepth(); return idmef_path_set_index(_path, depth, index); } int IDMEFPath::undefineIndex(int depth) { if ( depth < 0 ) depth = getDepth(); return idmef_path_undefine_index(_path, depth); } int IDMEFPath::getIndex(int depth) const { if ( depth < 0 ) depth = getDepth(); return idmef_path_get_index(_path, depth); } int IDMEFPath::makeChild(const char *child_name, unsigned int index=0) { return idmef_path_make_child(_path, child_name, index); } int IDMEFPath::makeParent() { return idmef_path_make_parent(_path); } int IDMEFPath::compare(IDMEFPath *path, int depth) const { int ret; if ( depth < 0 ) ret = idmef_path_compare(_path, path->_path); else ret = idmef_path_ncompare(_path, path->_path, depth); return ret; } IDMEFPath IDMEFPath::clone() const { int ret; idmef_path_t *cpath; ret = idmef_path_clone(_path, &cpath); if ( ret < 0 ) throw PreludeError(ret); return IDMEFPath(cpath); } const char *IDMEFPath::getName(int depth) const { return idmef_path_get_name(_path, depth); } bool IDMEFPath::isAmbiguous() const { return idmef_path_is_ambiguous(_path); } int IDMEFPath::hasLists() const { return idmef_path_has_lists(_path); } bool IDMEFPath::isList(int depth) const { return idmef_path_is_list(_path, depth); } unsigned int IDMEFPath::getDepth() const { return idmef_path_get_depth(_path); } IDMEFPath &IDMEFPath::operator=(const IDMEFPath &path) { if ( this != &path && _path != path._path ) { if ( _path ) idmef_path_destroy(_path); _path = (path._path) ? idmef_path_ref(path._path) : NULL; } return *this; } IDMEFPath::operator idmef_path_t *() const { return _path; } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/idmef-time.cxx0000644000000000000000000000010713726163410021562 xustar000000000000000024 mtime=1599661832.488 23 atime=1599661832.72 24 ctime=1599662000.291 libprelude-5.2.0/bindings/c++/idmef-time.cxx0000644000000000000000000001207013726163410020557 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "prelude-error.hxx" #include "idmef-time.hxx" using namespace Prelude; IDMEFTime::~IDMEFTime() { if ( _time ) idmef_time_destroy(_time); } IDMEFTime::IDMEFTime(const IDMEFTime &time) { _time = (time._time) ? idmef_time_ref(time._time) : NULL; } IDMEFTime::IDMEFTime() { int ret; ret = idmef_time_new_from_gettimeofday(&_time); if ( ret < 0 ) throw PreludeError(ret); } IDMEFTime::IDMEFTime(idmef_time_t *time) { _time = time; } IDMEFTime::IDMEFTime(time_t time) { int ret; ret = idmef_time_new_from_time(&_time, &time); if ( ret < 0 ) throw PreludeError(ret); } IDMEFTime::IDMEFTime(const char *str) { int ret; ret = idmef_time_new_from_string(&_time, str); if ( ret < 0 ) throw PreludeError(ret); } IDMEFTime::IDMEFTime(const struct timeval *tv) { int ret; ret = idmef_time_new_from_timeval(&_time, tv); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFTime::set(const time_t *t) { idmef_time_set_from_time(_time, t); } void IDMEFTime::set(const struct timeval *tv) { int ret; ret = idmef_time_set_from_timeval(_time, tv); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFTime::set(const char *str) { int ret; ret = idmef_time_set_from_string(_time, str); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFTime::set() { int ret; ret = idmef_time_set_from_gettimeofday(_time); if ( ret < 0 ) throw PreludeError(ret); } void IDMEFTime::setSec(uint32_t sec) { idmef_time_set_sec(_time, sec); } void IDMEFTime::setUSec(uint32_t usec) { idmef_time_set_usec(_time, usec); } void IDMEFTime::setGmtOffset(int32_t gmtoff) { idmef_time_set_gmt_offset(_time, gmtoff); } uint32_t IDMEFTime::getSec() const { return idmef_time_get_sec(_time); } uint32_t IDMEFTime::getUSec() const { return idmef_time_get_usec(_time); } int32_t IDMEFTime::getGmtOffset() const { return idmef_time_get_gmt_offset(_time); } IDMEFTime IDMEFTime::clone() const { int ret; idmef_time_t *clone; ret = idmef_time_clone(_time, &clone); if ( ret < 0 ) throw PreludeError(ret); return IDMEFTime(clone); } const std::string IDMEFTime::toString() const { int ret; std::string cs; prelude_string_t *str = NULL; ret = prelude_string_new(&str); if ( ret < 0 ) throw PreludeError(ret); ret = idmef_time_to_string(_time, str); if ( ret < 0 ) throw PreludeError(ret); cs = prelude_string_get_string(str); prelude_string_destroy(str); return cs; } bool IDMEFTime::operator <= (const IDMEFTime &time) const { return ( (double) *this <= (double) time ); } bool IDMEFTime::operator < (const IDMEFTime &time) const { return ( (double) *this < (double) time ); } bool IDMEFTime::operator >= (const IDMEFTime &time) const { return ( (double) *this >= (double) time ); } bool IDMEFTime::operator > (const IDMEFTime &time) const { return ( (double) *this > (double) time ); } bool IDMEFTime::operator != (const IDMEFTime &time) const { return ( (double) *this != (double) time ); } bool IDMEFTime::operator == (const IDMEFTime &time) const { return ( (double) *this == (double) time ); } IDMEFTime::operator int() const { return getSec(); } IDMEFTime::operator long() const { return getSec(); } IDMEFTime::operator double() const { return getSec() + (getUSec() * 1e-6); } IDMEFTime::operator const std::string() const { return toString(); } IDMEFTime::operator idmef_time_t *() const { return _time; } IDMEFTime &IDMEFTime::operator=(const IDMEFTime &time) { if ( this != &time && _time != time._time ) { if ( _time ) idmef_time_destroy(_time); _time = (time._time) ? idmef_time_ref(time._time) : NULL; } return *this; } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/idmef-value.cxx0000644000000000000000000000010713726163410021740 xustar000000000000000024 mtime=1599661832.488 23 atime=1599661832.72 24 ctime=1599662000.293 libprelude-5.2.0/bindings/c++/idmef-value.cxx0000644000000000000000000003155613726163410020747 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include #include #include "prelude-error.hxx" #include "idmef.hxx" #include "idmef-path.hxx" #include "idmef-value.hxx" #include "idmef-criteria.hxx" using namespace Prelude; IDMEFValue::~IDMEFValue() { if ( _value ) idmef_value_destroy(_value); } IDMEFValue::IDMEFValueTypeEnum IDMEFValue::getType() const { return (IDMEFValue::IDMEFValueTypeEnum) idmef_value_get_type(_value); } bool IDMEFValue::isNull() const { return (! _value) ? TRUE : FALSE; } IDMEFValue::IDMEFValue() { _value = NULL; } IDMEFValue::IDMEFValue(const IDMEFValue &value) { idmef_value_t *v = NULL; if ( value._value ) v = idmef_value_ref(value._value); _value = v; } void IDMEFValue::_InitFromString(const char *value, size_t len) { int ret; prelude_string_t *str; ret = prelude_string_new_dup_fast(&str, value, len); if ( ret < 0 ) throw PreludeError(ret); ret = idmef_value_new_string(&_value, str); if ( ret < 0 ) { prelude_string_destroy(str); throw PreludeError(ret); } } IDMEFValue::IDMEFValue(const char *value, Prelude::IDMEFPath *path) { int ret; if ( ! path ) _InitFromString(value, strlen(value)); else { ret = idmef_value_new_from_path(&_value, (idmef_path_t *) *path, value); if ( ret < 0 ) throw PreludeError(ret); } } IDMEFValue::IDMEFValue(const std::string &value, Prelude::IDMEFPath *path) { int ret; if ( ! path ) _InitFromString(value.c_str(), value.size()); else { ret = idmef_value_new_from_path(&_value, (idmef_path_t *) *path, value.c_str()); if ( ret < 0 ) throw PreludeError(ret); } } IDMEFValue::IDMEFValue(int32_t value) { int ret = idmef_value_new_int32(&_value, value); if ( ret < 0 ) throw PreludeError(ret); } IDMEFValue::IDMEFValue(int64_t value) { int ret = idmef_value_new_int64(&_value, value); if ( ret < 0 ) throw PreludeError(ret); } IDMEFValue::IDMEFValue(uint64_t value) { int ret = idmef_value_new_uint64(&_value, value); if ( ret < 0 ) throw PreludeError(ret); } IDMEFValue::IDMEFValue(float value) { int ret = idmef_value_new_float(&_value, value); if ( ret < 0 ) throw PreludeError(ret); } IDMEFValue::IDMEFValue(double value) { int ret = idmef_value_new_double(&_value, value); if ( ret < 0 ) throw PreludeError(ret); } IDMEFValue::IDMEFValue(IDMEFTime &time) { int ret = idmef_value_new_time(&_value, idmef_time_ref(time)); if ( ret < 0 ) throw PreludeError(ret); } IDMEFValue::IDMEFValue(IDMEF *idmef) { int ret; idmef_value_t *v = NULL; if ( idmef ) { ret = idmef_value_new_class(&v, idmef->getId(), idmef_object_ref((idmef_object_t *) *idmef)); if ( ret < 0 ) throw PreludeError(ret); } _value = v; } IDMEFValue::IDMEFValue(const std::vector &value) { int ret; idmef_value_t *vitem; std::vector::const_iterator i; ret = idmef_value_new_list(&_value); if ( ret < 0 ) throw PreludeError(ret); for ( i = value.begin(); i != value.end(); i++ ) { ret = idmef_value_new_class(&vitem, i->getId(), idmef_object_ref((idmef_object_t *) *i)); if ( ret < 0 ) throw PreludeError(ret); idmef_value_list_add(_value, vitem); } } IDMEFValue::IDMEFValue(const std::vector &value) { int ret; std::vector::const_iterator i; ret = idmef_value_new_list(&_value); if ( ret < 0 ) throw PreludeError(ret); for ( i = value.begin(); i != value.end(); i++ ) idmef_value_list_add(_value, idmef_value_ref(*i)); } IDMEFValue::IDMEFValue(idmef_value_t *value) { _value = value; } int IDMEFValue::match(const IDMEFValue &value, int op) const { int ret; ret = idmef_value_match(this->_value, value._value, (idmef_criterion_operator_t) op); if ( ret < 0 ) throw PreludeError(ret); return ret; } IDMEFValue IDMEFValue::clone() const { int ret; idmef_value_t *clone; ret = idmef_value_clone(_value, &clone); if ( ret < 0 ) throw PreludeError(ret); return IDMEFValue(clone); } const std::string IDMEFValue::toString() const { int ret; std::string s; prelude_string_t *str; ret = prelude_string_new(&str); if ( ret < 0 ) throw PreludeError(ret); ret = idmef_value_to_string(_value, str); if ( ret < 0 ) { prelude_string_destroy(str); throw PreludeError(ret); } s = prelude_string_get_string(str); prelude_string_destroy(str); return s; } static int iterate_cb(idmef_value_t *value, void *extra) { std::vector *vlist = (std::vector *) extra; if ( value ) value = idmef_value_ref(value); vlist->push_back(IDMEFValue(value)); return 0; } IDMEFValue::operator std::vector () const { std::vector vlist; if ( ! _value ) return vlist; if ( getType() != TYPE_LIST ) { std::stringstream s; s << "Left value doesn't fit '" << idmef_value_type_to_string((idmef_value_type_id_t) getType()) << "' requirement"; throw PreludeError(s.str()); } idmef_value_iterate(_value, iterate_cb, &vlist); return vlist; } IDMEFValue::operator IDMEFTime () const { prelude_except_if_fail(_value); if ( getType() != TYPE_TIME ) { std::stringstream s; s << "Left value doesn't fit '" << idmef_value_type_to_string((idmef_value_type_id_t) getType()) << "' requirement"; throw PreludeError(s.str()); } return IDMEFTime(idmef_time_ref(idmef_value_get_time(_value))); } IDMEFValue::operator int32_t () const { IDMEFValueTypeEnum vtype; prelude_except_if_fail(_value); vtype = getType(); if ( vtype == TYPE_INT8 ) return idmef_value_get_int8(_value); else if ( vtype == TYPE_UINT8 ) return idmef_value_get_uint8(_value); else if ( vtype == TYPE_INT16 ) return idmef_value_get_int16(_value); else if ( vtype == TYPE_UINT16 ) return idmef_value_get_uint16(_value); else if ( vtype == TYPE_INT32 ) return idmef_value_get_int32(_value); else if ( vtype == TYPE_ENUM ) return idmef_value_get_enum(_value); std::stringstream s; s << "Left value doesn't fit '" << idmef_value_type_to_string((idmef_value_type_id_t) vtype) << "' requirement"; throw PreludeError(s.str()); } IDMEFValue::operator uint32_t () const { prelude_except_if_fail(_value); if ( getType() == TYPE_UINT32 ) return idmef_value_get_uint32(_value); else return (int32_t) *this; } IDMEFValue::operator int64_t () const { prelude_except_if_fail(_value); if ( getType() == TYPE_INT64 ) return idmef_value_get_int64(_value); else return (uint32_t) *this; } IDMEFValue::operator uint64_t () const { prelude_except_if_fail(_value); if ( getType() == TYPE_UINT64 ) return idmef_value_get_uint64(_value); else return (int64_t) *this; } IDMEFValue::operator float () const { IDMEFValueTypeEnum vtype; prelude_except_if_fail(_value); vtype = getType(); if ( vtype == TYPE_FLOAT ) return idmef_value_get_float(_value); else if ( vtype == TYPE_DATA ) { idmef_data_t *d = idmef_value_get_data(_value); if ( idmef_data_get_type(d) == IDMEF_DATA_TYPE_FLOAT ) return idmef_data_get_float(d); } std::stringstream s; s << "Left value doesn't fit '" << idmef_value_type_to_string((idmef_value_type_id_t) vtype) << "' requirement"; throw PreludeError(s.str()); } IDMEFValue::operator double () const { prelude_except_if_fail(_value); if ( getType() == TYPE_DOUBLE ) return idmef_value_get_double(_value); else return (float) *this; } std::string IDMEFValue::convert_string() const { std::stringstream s; prelude_except_if_fail(_value); if ( getType() == TYPE_STRING ) return prelude_string_get_string(idmef_value_get_string(_value)); else if ( getType() == TYPE_TIME ) return IDMEFTime(idmef_time_ref(idmef_value_get_time(_value))); else if ( getType() == TYPE_ENUM ) return idmef_class_enum_to_string(idmef_value_get_class(_value), idmef_value_get_enum(_value)); else if ( getType() == TYPE_DATA ) { idmef_data_t *d = idmef_value_get_data(_value); idmef_data_type_t t = idmef_data_get_type(d); if ( t == IDMEF_DATA_TYPE_CHAR_STRING ) return (const char *) idmef_data_get_char_string(d); else if ( t == IDMEF_DATA_TYPE_CHAR ) { s << idmef_data_get_char(d); return s.str(); } else if ( t == IDMEF_DATA_TYPE_FLOAT ) { s << idmef_data_get_float(d); return s.str(); } else if ( t == IDMEF_DATA_TYPE_INT ) { s << idmef_data_get_int(d); return s.str(); } else { s << "Left value doesn't fit 'data' type '" << t << "' requirement"; throw PreludeError(s.str()); } } s << "Left value doesn't fit '" << idmef_value_type_to_string((idmef_value_type_id_t) getType()) << "' requirement"; throw PreludeError(s.str()); } IDMEFValue &IDMEFValue::operator=(const IDMEFValue &p) { if ( this != &p && _value != p._value ) { if ( _value ) idmef_value_destroy(_value); _value = (p._value) ? idmef_value_ref(p._value) : NULL; } return *this; } IDMEFValue::operator const char*() const { static std::string t; t = this->convert_string(); return t.c_str(); } IDMEFValue::operator idmef_value_t *() const { return _value; } bool IDMEFValue::operator <= (const IDMEFValue &value) const { return this->match(value, IDMEFCriterion::OPERATOR_LESSER|IDMEFCriterion::OPERATOR_EQUAL); } bool IDMEFValue::operator >= (const IDMEFValue &value) const { return this->match(value, IDMEFCriterion::OPERATOR_GREATER|IDMEFCriterion::OPERATOR_EQUAL); } bool IDMEFValue::operator < (const IDMEFValue &value) const { return this->match(value, IDMEFCriterion::OPERATOR_LESSER); } bool IDMEFValue::operator > (const IDMEFValue &value) const { return this->match(value, IDMEFCriterion::OPERATOR_GREATER); } bool IDMEFValue::operator == (const IDMEFValue &value) const { return this->match(value, IDMEFCriterion::OPERATOR_EQUAL); } bool IDMEFValue::operator == (const std::vector &vlist) const { return this->match(vlist, IDMEFCriterion::OPERATOR_EQUAL); } bool IDMEFValue::operator != (const IDMEFValue &value) const { return this->match(value, IDMEFCriterion::OPERATOR_NOT|IDMEFCriterion::OPERATOR_EQUAL); } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/prelude.cxx0000644000000000000000000000011013726163410021174 xustar000000000000000024 mtime=1599661832.493 24 atime=1599661832.721 24 ctime=1599662000.294 libprelude-5.2.0/bindings/c++/prelude.cxx0000644000000000000000000000255213726163410020203 0ustar00rootroot00000000000000/***** * * Copyright (C) 2009-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include #include "prelude.hxx" const char *Prelude::checkVersion(const char *wanted) { const char *ret; ret = prelude_check_version(wanted); if ( wanted && ! ret ) { std::string s = "libprelude "; s += wanted; s += " or higher is required ("; s += prelude_check_version(NULL); s += " found)."; throw PreludeError(s); } return ret; } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/prelude-client.cxx0000644000000000000000000000011013726163410022450 xustar000000000000000024 mtime=1599661832.492 24 atime=1599661832.721 24 ctime=1599662000.296 libprelude-5.2.0/bindings/c++/prelude-client.cxx0000644000000000000000000001061313726163410021454 0ustar00rootroot00000000000000/***** * * Copyright (C) 2009-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "idmef.hxx" #include "prelude-error.hxx" #include "prelude-client.hxx" #include "prelude-client-profile.hxx" using namespace Prelude; Client::Client(const char *profile) : _recv_timeout(-1) { int ret; ret = prelude_client_new(&_client, profile); if ( ret < 0 ) throw PreludeError(ret); _profile = prelude_client_get_profile(_client); _pool = ConnectionPool(prelude_connection_pool_ref(prelude_client_get_connection_pool(_client))); } Client::Client(const Client &client) { _client = (client._client) ? prelude_client_ref(client._client) : NULL; } Client::~Client() { _profile = NULL; prelude_client_destroy(_client, PRELUDE_CLIENT_EXIT_STATUS_SUCCESS); } void Client::start() { int ret; init(); ret = prelude_client_start(_client); if ( ret < 0 ) throw PreludeError(ret); } void Client::init() { int ret; ret = prelude_client_init(_client); if ( ret < 0 ) throw PreludeError(ret); _profile = prelude_client_get_profile(_client); } prelude_client_t *Client::getClient() const { return _client; } void Client::sendIDMEF(const IDMEF &message) { prelude_client_send_idmef(_client, (idmef_message_t *) (idmef_object_t *) message); } int Client::recvIDMEF(Prelude::IDMEF &idmef, int timeout) { int ret; idmef_message_t *idmef_p; ret = prelude_client_recv_idmef(_client, timeout, &idmef_p); if ( ret < 0 ) throw PreludeError(ret); else if ( ret == 0 ) return 0; idmef = IDMEF((idmef_object_t *)idmef_p); return 1; } int Client::getFlags() const { return prelude_client_get_flags(_client); } void Client::setFlags(int flags) { int ret; ret = prelude_client_set_flags(_client, (prelude_client_flags_t) flags); if ( ret < 0 ) throw PreludeError(ret); } int Client::getRequiredPermission() const { return prelude_client_get_required_permission(_client); } void Client::setRequiredPermission(int permission) { prelude_client_set_required_permission(_client, (prelude_connection_permission_t) permission); } const char *Client::getConfigFilename() const { return prelude_client_get_config_filename(_client); } void Client::setConfigFilename(const char *name) { int ret; ret = prelude_client_set_config_filename(_client, name); if ( ret < 0 ) throw PreludeError(ret); } ConnectionPool &Client::getConnectionPool() { return _pool; } void Client::setConnectionPool(ConnectionPool pool) { _pool = pool; prelude_client_set_connection_pool(_client, prelude_connection_pool_ref(pool)); } Client &Client::operator << (IDMEF &idmef) { sendIDMEF(idmef); return *this; } Client &Client::operator >> (IDMEF &idmef) { int ret; ret = recvIDMEF(idmef, _recv_timeout); if ( ret <= 0 ) throw PreludeError(ret); return *this; } Client &Client::setRecvTimeout(Client &c, int timeout) { c._recv_timeout = timeout; return c; } Client &Client::operator=(const Client &c) { if ( this != &c && _client != c._client ) { if ( _client ) prelude_client_destroy(_client, PRELUDE_CLIENT_EXIT_STATUS_SUCCESS); _client = (c._client) ? prelude_client_ref(c._client) : NULL; } return *this; } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/prelude-client-easy.cxx0000644000000000000000000000011013726163410023407 xustar000000000000000024 mtime=1599661832.491 24 atime=1599661832.721 24 ctime=1599662000.298 libprelude-5.2.0/bindings/c++/prelude-client-easy.cxx0000644000000000000000000000472413726163410022421 0ustar00rootroot00000000000000/***** * * Copyright (C) 2009-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "idmef.hxx" #include "prelude-client-profile.hxx" #include "prelude-client-easy.hxx" #include "prelude-error.hxx" using namespace Prelude; void ClientEasy::setup_analyzer(idmef_analyzer_t *analyzer, const char *_model, const char *_class, const char *_manufacturer, const char *_version) { int ret; prelude_string_t *string; ret = idmef_analyzer_new_model(analyzer, &string); if ( ret < 0 ) throw PreludeError(ret); prelude_string_set_dup(string, _model); ret = idmef_analyzer_new_class(analyzer, &string); if ( ret < 0 ) throw PreludeError(ret); prelude_string_set_dup(string, _class); ret = idmef_analyzer_new_manufacturer(analyzer, &string); if ( ret < 0 ) throw PreludeError(ret); prelude_string_set_dup(string, _manufacturer); ret = idmef_analyzer_new_version(analyzer, &string); if ( ret < 0 ) throw PreludeError(ret); prelude_string_set_dup(string, _version); } ClientEasy::ClientEasy(const char *profile, int permission, const char *_model, const char *_class, const char *_manufacturer, const char *_version) : Client(profile) { setRequiredPermission(permission); setFlags(getFlags() | Client::FLAGS_ASYNC_TIMER); setup_analyzer(prelude_client_get_analyzer(getClient()), _model, _class, _manufacturer, _version); } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/prelude-client-profile.cxx0000644000000000000000000000011013726163410024106 xustar000000000000000024 mtime=1599661832.491 24 atime=1599661832.721 24 ctime=1599662000.299 libprelude-5.2.0/bindings/c++/prelude-client-profile.cxx0000644000000000000000000001071513726163410023115 0ustar00rootroot00000000000000/***** * * Copyright (C) 2009-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "prelude-error.hxx" #include "prelude-client-profile.h" #include "prelude-client-profile.hxx" using namespace Prelude; #define _RETURN_NEW_BUFFER_FROM_FUNCTION_BUFFERSIZE(function) do { \ char buf[PATH_MAX]; \ \ (function)(_profile, buf, sizeof(buf)); \ \ return std::string(buf); \ } while(0) ClientProfile::ClientProfile() { _profile = NULL; } ClientProfile::ClientProfile(prelude_client_profile_t *profile) : _profile(profile) { _profile = profile; } ClientProfile::ClientProfile(const char *profile) { int ret; ret = prelude_client_profile_new(&_profile, profile); if ( ret < 0 ) throw PreludeError(ret); } ClientProfile::ClientProfile(const ClientProfile &p) { _profile = (p._profile) ? prelude_client_profile_ref(p._profile) : NULL; } ClientProfile::~ClientProfile() { if ( _profile ) prelude_client_profile_destroy(_profile); } const std::string ClientProfile::getConfigFilename() { _RETURN_NEW_BUFFER_FROM_FUNCTION_BUFFERSIZE(prelude_client_profile_get_config_filename); } const std::string ClientProfile::getAnalyzeridFilename() { _RETURN_NEW_BUFFER_FROM_FUNCTION_BUFFERSIZE(prelude_client_profile_get_analyzerid_filename); } const std::string ClientProfile::getTlsKeyFilename() { _RETURN_NEW_BUFFER_FROM_FUNCTION_BUFFERSIZE(prelude_client_profile_get_tls_key_filename); } const std::string ClientProfile::getTlsServerCaCertFilename() { _RETURN_NEW_BUFFER_FROM_FUNCTION_BUFFERSIZE(prelude_client_profile_get_tls_server_ca_cert_filename); } const std::string ClientProfile::getTlsServerKeyCertFilename() { _RETURN_NEW_BUFFER_FROM_FUNCTION_BUFFERSIZE(prelude_client_profile_get_tls_server_keycert_filename); } const std::string ClientProfile::getTlsServerCrlFilename() { _RETURN_NEW_BUFFER_FROM_FUNCTION_BUFFERSIZE(prelude_client_profile_get_tls_server_crl_filename); } const std::string ClientProfile::getTlsClientKeyCertFilename() { _RETURN_NEW_BUFFER_FROM_FUNCTION_BUFFERSIZE(prelude_client_profile_get_tls_client_keycert_filename); } const std::string ClientProfile::getTlsClientTrustedCertFilename() { _RETURN_NEW_BUFFER_FROM_FUNCTION_BUFFERSIZE(prelude_client_profile_get_tls_client_trusted_cert_filename); } const std::string ClientProfile::getBackupDirname() { _RETURN_NEW_BUFFER_FROM_FUNCTION_BUFFERSIZE(prelude_client_profile_get_backup_dirname); } const std::string ClientProfile::getProfileDirname() { _RETURN_NEW_BUFFER_FROM_FUNCTION_BUFFERSIZE(prelude_client_profile_get_profile_dirname); } void ClientProfile::setPrefix(const char *prefix) { int ret; ret = prelude_client_profile_set_prefix(_profile, prefix); if ( ret < 0 ) throw PreludeError(ret); } const std::string ClientProfile::getPrefix() { _RETURN_NEW_BUFFER_FROM_FUNCTION_BUFFERSIZE(prelude_client_profile_get_prefix); } ClientProfile::operator prelude_client_profile_t *() const { return _profile; } ClientProfile &ClientProfile::operator=(const ClientProfile &p) { if ( this != &p && _profile != p._profile ) { if ( _profile ) prelude_client_profile_destroy(_profile); _profile = (p._profile) ? prelude_client_profile_ref(p._profile) : NULL; } return *this; } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/prelude-connection.cxx0000644000000000000000000000011013726163410023331 xustar000000000000000024 mtime=1599661832.492 24 atime=1599661832.721 24 ctime=1599662000.301 libprelude-5.2.0/bindings/c++/prelude-connection.cxx0000644000000000000000000000772213726163410022344 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include #include "prelude.h" #include "prelude-connection-pool.h" #include "prelude-connection-pool.hxx" #include "prelude-client.hxx" #include "prelude-error.hxx" using namespace Prelude; Connection::~Connection() { if ( _con ) prelude_connection_destroy(_con); } Connection::Connection() { _con = NULL; } Connection::Connection(const Connection &con) { _con = (con._con) ? prelude_connection_ref(con._con) : NULL; } Connection::Connection(const char *addr) { int ret; ret = prelude_connection_new(&_con, addr); if ( ret < 0 ) throw PreludeError(ret); } Connection::Connection(prelude_connection_t *con, bool own_data) { _con = con; } prelude_connection_t *Connection::getConnection() const { return _con; } void Connection::close() { prelude_connection_close(_con); } void Connection::connect(ClientProfile &cp, int permission) { int ret; ret = prelude_connection_connect(_con, cp, (prelude_connection_permission_t) permission); if ( ret < 0 ) throw PreludeError(ret); } void Connection::setState(int state) { prelude_connection_set_state(_con, (prelude_connection_state_t) state); } int Connection::getState() const { return prelude_connection_get_state(_con); } void Connection::setData(void *data) { prelude_connection_set_data(_con, data); } void *Connection::getData() const { return prelude_connection_get_data(_con); } int Connection::getPermission() const { return prelude_connection_get_permission(_con); } void Connection::setPeerAnalyzerid(uint64_t analyzerid) { prelude_connection_set_peer_analyzerid(_con, analyzerid); } uint64_t Connection::getPeerAnalyzerid() const { return prelude_connection_get_peer_analyzerid(_con); } const char *Connection::getLocalAddr() const { return prelude_connection_get_local_addr(_con); } unsigned int Connection::getLocalPort() const { return prelude_connection_get_local_port(_con); } const char *Connection::getPeerAddr() const { return prelude_connection_get_peer_addr(_con); } unsigned int Connection::getPeerPort() const { return prelude_connection_get_peer_port(_con); } int Connection::getFd() const { return prelude_io_get_fd(prelude_connection_get_fd(_con)); } Prelude::IDMEF Connection::recvIDMEF() { int ret; idmef_message_t *idmef; ret = prelude_connection_recv_idmef(_con, &idmef); if ( ret < 0 ) throw PreludeError(ret); return IDMEF((idmef_object_t *) idmef); } bool Connection::isAlive() const { return prelude_connection_is_alive(_con); } Connection &Connection::operator=(const Connection &con) { if ( this != &con && _con != con._con ) { if ( _con ) prelude_connection_destroy(_con); _con = (con._con) ? prelude_connection_ref(con._con) : NULL; } return *this; } Connection::operator prelude_connection_t *() { return _con; } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/prelude-connection-pool.cxx0000644000000000000000000000011013726163410024300 xustar000000000000000024 mtime=1599661832.492 24 atime=1599661832.721 24 ctime=1599662000.303 libprelude-5.2.0/bindings/c++/prelude-connection-pool.cxx0000644000000000000000000001037313726163410023307 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include #include "prelude.h" #include "prelude-connection-pool.h" #include "prelude-connection-pool.hxx" #include "prelude-client.hxx" #include "prelude-error.hxx" using namespace Prelude; ConnectionPool::~ConnectionPool() { if ( _pool ) prelude_connection_pool_destroy(_pool); } ConnectionPool::ConnectionPool() { _pool = NULL; } ConnectionPool::ConnectionPool(prelude_connection_pool_t *pool) { _pool = pool; } ConnectionPool::ConnectionPool(const ConnectionPool &con) { _pool = (con._pool) ? prelude_connection_pool_ref(con._pool) : NULL; } ConnectionPool::ConnectionPool(ClientProfile &cp, int permission) { int ret; ret = prelude_connection_pool_new(&_pool, cp, (prelude_connection_permission_t) permission); if ( ret < 0 ) throw PreludeError(ret); } void ConnectionPool::init() { int ret; ret = prelude_connection_pool_init(_pool); if ( ret < 0 ) throw PreludeError(ret); } std::vector ConnectionPool::getConnectionList() const { std::vector clist; prelude_connection_t *con; prelude_list_t *head, *tmp; head = prelude_connection_pool_get_connection_list(_pool); prelude_list_for_each(head, tmp) { con = (prelude_connection_t *) prelude_linked_object_get_object(tmp); clist.push_back(Connection(prelude_connection_ref(con))); } return clist; } void ConnectionPool::addConnection(Connection con) { prelude_connection_pool_add_connection(_pool, prelude_connection_ref(con)); } void ConnectionPool::delConnection(Connection con) { prelude_connection_pool_del_connection(_pool, con); } void ConnectionPool::setConnectionDead(Connection &con) { prelude_connection_pool_set_connection_dead(_pool, con); } void ConnectionPool::setConnectionAlive(Connection &con) { prelude_connection_pool_set_connection_alive(_pool, con); } void ConnectionPool::setConnectionString(const char *str) { int ret; ret = prelude_connection_pool_set_connection_string(_pool, str); if ( ret < 0 ) throw PreludeError(ret); } const char *ConnectionPool::getConnectionString() const { return prelude_connection_pool_get_connection_string(_pool); } int ConnectionPool::getFlags() const { return prelude_connection_pool_get_flags(_pool); } void ConnectionPool::setFlags(int flags) { prelude_connection_pool_set_flags(_pool, (prelude_connection_pool_flags_t) flags); } void ConnectionPool::setRequiredPermission(int permission) { prelude_connection_pool_set_required_permission(_pool, (prelude_connection_permission_t) permission); } void ConnectionPool::setData(void *data) { prelude_connection_pool_set_data(_pool, data); } void *ConnectionPool::getData() const { return prelude_connection_pool_get_data(_pool); } ConnectionPool &ConnectionPool::operator=(const ConnectionPool &pool) { if ( this != &pool && _pool != pool._pool ) { if ( _pool ) prelude_connection_pool_destroy(_pool); _pool = (pool._pool) ? prelude_connection_pool_ref(pool._pool) : NULL; } return *this; } ConnectionPool::operator prelude_connection_pool_t *() { return _pool; } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/prelude-log.cxx0000644000000000000000000000011013726163410021753 xustar000000000000000024 mtime=1599661832.492 24 atime=1599661832.721 24 ctime=1599662000.304 libprelude-5.2.0/bindings/c++/prelude-log.cxx0000644000000000000000000000310513726163410020755 0ustar00rootroot00000000000000/***** * * Copyright (C) 2009-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include #include using namespace Prelude; void PreludeLog::setLevel(int level) { prelude_log_set_level((prelude_log_t) level); } void PreludeLog::setDebugLevel(int level) { prelude_log_set_debug_level(level); } void PreludeLog::setFlags(int flags) { prelude_log_set_flags((prelude_log_flags_t) flags); } int PreludeLog::getFlags() { return prelude_log_get_flags(); } void PreludeLog::setLogfile(const char *filename) { prelude_log_set_logfile(filename); } void PreludeLog::setCallback(void (*log_cb)(int level, const char *log)) { prelude_log_set_callback((void (*)(prelude_log_t level, const char *log)) log_cb); } libprelude-5.2.0/bindings/c++/PaxHeaders.14770/include0000644000000000000000000000011013726163660020365 xustar000000000000000024 mtime=1599662000.368 24 atime=1599662006.646 24 ctime=1599662000.368 libprelude-5.2.0/bindings/c++/include/0000755000000000000000000000000013726163660017445 5ustar00rootroot00000000000000libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163513022504 xustar000000000000000024 mtime=1599661899.455 24 atime=1599661945.867 24 ctime=1599662000.343 libprelude-5.2.0/bindings/c++/include/Makefile.in0000644000000000000000000016555413726163513021527 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = bindings/c++/include DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(include_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(include_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = $(prefix)/include/libprelude infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ include_HEADERS = \ prelude-error.hxx \ idmef.hxx \ idmef-class.hxx \ idmef-criteria.hxx \ idmef-path.hxx \ idmef-time.hxx \ idmef-value.hxx \ prelude.hxx \ prelude-client.hxx \ prelude-client-easy.hxx \ prelude-client-profile.hxx \ prelude-connection.hxx \ prelude-connection-pool.hxx \ prelude-log.hxx all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/c++/include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu bindings/c++/include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-includeHEADERS -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163410022475 xustar000000000000000024 mtime=1599661832.489 23 atime=1599661832.72 24 ctime=1599662000.345 libprelude-5.2.0/bindings/c++/include/Makefile.am0000644000000000000000000000061113726163410021470 0ustar00rootroot00000000000000includedir = $(prefix)/include/libprelude include_HEADERS = \ prelude-error.hxx \ idmef.hxx \ idmef-class.hxx \ idmef-criteria.hxx \ idmef-path.hxx \ idmef-time.hxx \ idmef-value.hxx \ prelude.hxx \ prelude-client.hxx \ prelude-client-easy.hxx \ prelude-client-profile.hxx \ prelude-connection.hxx \ prelude-connection-pool.hxx \ prelude-log.hxx -include $(top_srcdir)/git.mk libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/prelude-error.hxx0000644000000000000000000000011013726163410023753 xustar000000000000000024 mtime=1599661832.491 24 atime=1599661832.721 24 ctime=1599662000.347 libprelude-5.2.0/bindings/c++/include/prelude-error.hxx0000644000000000000000000000351213726163410022757 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_ERROR_HXX #define _LIBPRELUDE_PRELUDE_ERROR_HXX #include #include #define prelude_except_if_fail(cond) do { \ if ( ! (cond) ) \ throw PreludeError(prelude_error(PRELUDE_ERROR_ASSERTION)); \ } while(0) namespace Prelude { class PreludeError: public std::exception { protected: int _error; std::string _message; public: virtual ~PreludeError() throw() {}; PreludeError(void) throw(); PreludeError(int error) throw(); PreludeError(const std::string &message) throw(); int getCode(void) const; virtual const char *what() const throw(); operator const char *() const; operator int () const; }; }; #endif libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/idmef.hxx0000644000000000000000000000010713726163410022256 xustar000000000000000023 mtime=1599661832.49 24 atime=1599661832.721 24 ctime=1599662000.348 libprelude-5.2.0/bindings/c++/include/idmef.hxx0000644000000000000000000000655113726163410021262 0ustar00rootroot00000000000000/***** * * Copyright (C) 2009-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_HXX #define _LIBPRELUDE_IDMEF_HXX #include #include #include "idmef-value.hxx" #include "idmef-time.hxx" namespace Prelude { class IDMEF; } std::ostream & operator <<(std::ostream &os, const Prelude::IDMEF &idmef); std::istream & operator >>(std::istream &is, Prelude::IDMEF &idmef); namespace Prelude { class Client; class IDMEF { friend std::ostream & ::operator <<(std::ostream &os, const IDMEF &idmef); friend std::istream & ::operator >>(std::istream &is, IDMEF &idmef); protected: idmef_object_t *_object; public: ~IDMEF(); IDMEF(); IDMEF(const char *json); IDMEF(const IDMEF &idmef); IDMEF(idmef_object_t *message); IDMEF(std::istream &is); void set(const char *path, const std::vector &value); void set(const char *path, Prelude::IDMEF *value); void set(const char *path, const std::vector &value); void set(const char *path, const std::string &value); void set(const char *path, Prelude::IDMEFValue *value); void set(const char *path, Prelude::IDMEFValue &value); void set(const char *path, Prelude::IDMEFTime &value); void set(const char *path, const char *value); void set(const char *path, int32_t value); void set(const char *path, int64_t value); void set(const char *path, uint64_t value); void set(const char *path, float value); void set(const char *path, double value); Prelude::IDMEFValue get(const char *path); #ifndef SWIG size_t _genericWrite(int (write_cb)(prelude_msgbuf_t *msgbuf, prelude_msg_t *msg), void *fd_data) const; void _genericRead(ssize_t (read_cb)(prelude_io_t *fd, void *buf, size_t size), void *fd_data); #endif IDMEF clone(); idmef_class_id_t getId() const; const std::string toString() const; const std::string toJSON() const; operator const std::string() const; operator idmef_object_t *() const; IDMEF &operator = (const IDMEF &idmef); int operator == (const IDMEF *idmef); }; }; #endif /* __LIBPRELUDE_IDMEF_HXX */ libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/idmef-class.hxx0000644000000000000000000000010713726163410023361 xustar000000000000000024 mtime=1599661832.489 24 atime=1599661832.721 23 ctime=1599662000.35 libprelude-5.2.0/bindings/c++/include/idmef-class.hxx0000644000000000000000000000510713726163410022361 0ustar00rootroot00000000000000/***** * * Copyright (C) 2014-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_CLASS_HXX #define _LIBPRELUDE_IDMEF_CLASS_HXX #include #include #include #include "idmef-criteria.hxx" #include "idmef-path.hxx" namespace Prelude { class IDMEFClass { private: class IDMEFClassElem { public: int idx; idmef_class_id_t parent_id; }; int _depth; idmef_class_id_t _id; std::vector _pathelem; IDMEFClass(IDMEFClass &parent, int child_id, int depth=0); public: IDMEFClass(idmef_class_id_t id=IDMEF_CLASS_ID_MESSAGE); IDMEFClass(const IDMEFPath &path); IDMEFClass(const std::string &path); size_t getDepth(void); IDMEFClass get(int child); IDMEFClass get(const std::string &name); size_t getChildCount() { return idmef_class_get_child_count(_id); }; /* main object operation */ bool isList(void); bool isKeyedList(void); std::string getName(void); std::string toString(void); Prelude::IDMEFValue::IDMEFValueTypeEnum getValueType(void); std::map getAttributes(void); std::string getPath(int rootidx=0, int depth=-1, const std::string &sep = ".", const std::string &listidx=""); std::vector getEnumValues(void); Prelude::IDMEFCriterion::IDMEFCriterionOperatorEnum getApplicableOperator(void); }; }; #endif libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/idmef-criteria.hxx0000644000000000000000000000011013726163410024050 xustar000000000000000024 mtime=1599661832.489 24 atime=1599661832.721 24 ctime=1599662000.352 libprelude-5.2.0/bindings/c++/include/idmef-criteria.hxx0000644000000000000000000001014413726163410023053 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_CRITERIA_HXX #define _LIBPRELUDE_IDMEF_CRITERIA_HXX #include #include "prelude.h" #include "idmef.hxx" namespace Prelude { class IDMEFCriterion { public: enum IDMEFCriterionOperatorEnum { OPERATOR_NOT = IDMEF_CRITERION_OPERATOR_NOT, OPERATOR_NOCASE = IDMEF_CRITERION_OPERATOR_NOCASE, OPERATOR_EQUAL = IDMEF_CRITERION_OPERATOR_EQUAL, OPERATOR_EQUAL_NOCASE = IDMEF_CRITERION_OPERATOR_EQUAL_NOCASE, OPERATOR_NOT_EQUAL = IDMEF_CRITERION_OPERATOR_NOT_EQUAL, OPERATOR_NOT_EQUAL_NOCASE = IDMEF_CRITERION_OPERATOR_NOT_EQUAL_NOCASE, OPERATOR_LESSER = IDMEF_CRITERION_OPERATOR_LESSER, OPERATOR_LESSER_OR_EQUAL = IDMEF_CRITERION_OPERATOR_LESSER_OR_EQUAL, OPERATOR_GREATER = IDMEF_CRITERION_OPERATOR_GREATER, OPERATOR_GREATER_OR_EQUAL = IDMEF_CRITERION_OPERATOR_GREATER_OR_EQUAL, OPERATOR_SUBSTR = IDMEF_CRITERION_OPERATOR_SUBSTR, OPERATOR_SUBSTR_NOCASE = IDMEF_CRITERION_OPERATOR_SUBSTR_NOCASE, OPERATOR_NOT_SUBSTR = IDMEF_CRITERION_OPERATOR_NOT_SUBSTR, OPERATOR_NOT_SUBSTR_NOCASE = IDMEF_CRITERION_OPERATOR_NOT_SUBSTR_NOCASE, OPERATOR_REGEX = IDMEF_CRITERION_OPERATOR_REGEX, OPERATOR_REGEX_NOCASE = IDMEF_CRITERION_OPERATOR_REGEX_NOCASE, OPERATOR_NOT_REGEX = IDMEF_CRITERION_OPERATOR_NOT_REGEX, OPERATOR_NOT_REGEX_NOCASE = IDMEF_CRITERION_OPERATOR_NOT_REGEX_NOCASE, OPERATOR_NULL = IDMEF_CRITERION_OPERATOR_NULL, OPERATOR_NOT_NULL = IDMEF_CRITERION_OPERATOR_NOT_NULL }; }; class IDMEFCriteria { private: idmef_criteria_t *_criteria; public: enum IDMEFCriteriaOperatorEnum { OPERATOR_NOT = IDMEF_CRITERIA_OPERATOR_NOT, OPERATOR_AND = IDMEF_CRITERIA_OPERATOR_AND, OPERATOR_OR = IDMEF_CRITERIA_OPERATOR_OR }; ~IDMEFCriteria(); IDMEFCriteria(); IDMEFCriteria(const IDMEFCriteria &criteria); IDMEFCriteria(const char *criteria); IDMEFCriteria(const std::string &criteria); IDMEFCriteria(idmef_criteria_t *criteria); int match(Prelude::IDMEF *message) const; IDMEFCriteria clone() const; void andCriteria(const IDMEFCriteria &criteria); void orCriteria(const IDMEFCriteria &criteria); const std::string toString() const; operator const std::string() const; operator idmef_criteria_t *() const; IDMEFCriteria &operator=(const IDMEFCriteria &criteria); }; }; #endif libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/idmef-path.hxx0000644000000000000000000000011013726163410023202 xustar000000000000000024 mtime=1599661832.489 24 atime=1599661832.721 24 ctime=1599662000.353 libprelude-5.2.0/bindings/c++/include/idmef-path.hxx0000644000000000000000000000713513726163410022213 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_PATH_HXX #define _LIBPRELUDE_IDMEF_PATH_HXX #include "prelude.h" #include "idmef-path.h" #include "idmef.hxx" #include "prelude-error.hxx" #include "idmef-value.hxx" namespace Prelude { class IDMEFClass; class IDMEFPath { private: idmef_path_t *_path; public: IDMEFPath(const char *buffer); IDMEFPath(Prelude::IDMEF &idmef, const char *buffer); IDMEFPath(idmef_path_t *path); IDMEFPath(const IDMEFPath &path); ~IDMEFPath(); Prelude::IDMEFValue get(const Prelude::IDMEF &message) const; void set(Prelude::IDMEF &message, const std::vector &value) const; void set(Prelude::IDMEF &message, Prelude::IDMEF *value) const; void set(Prelude::IDMEF &message, const std::vector &value) const; void set(Prelude::IDMEF &message, Prelude::IDMEFValue *value) const; void set(Prelude::IDMEF &message, Prelude::IDMEFValue &value) const; void set(Prelude::IDMEF &message, Prelude::IDMEFTime &time) const; void set(Prelude::IDMEF &message, const std::string &value) const; void set(Prelude::IDMEF &message, const char *value) const; void set(Prelude::IDMEF &message, int32_t value) const; void set(Prelude::IDMEF &message, int64_t value) const; void set(Prelude::IDMEF &message, uint64_t value) const; void set(Prelude::IDMEF &message, float value) const; void set(Prelude::IDMEF &message, double value) const; Prelude::IDMEFClass getClass(int depth=-1) const; Prelude::IDMEFValue::IDMEFValueTypeEnum getValueType(int depth=-1) const; int setIndex(unsigned int index, int depth=-1); int undefineIndex(int depth=-1); int getIndex(int depth=-1) const; int makeChild(const char *child_name, unsigned int index); int makeParent(); int compare(IDMEFPath *path, int depth=-1) const; IDMEFPath clone() const; int checkOperator(idmef_criterion_operator_t op) const; idmef_criterion_operator_t getApplicableOperators() const; const char *getName(int depth=-1) const; bool isAmbiguous() const; int hasLists() const; bool isList(int depth=-1) const; unsigned int getDepth() const; IDMEFPath &operator = (const IDMEFPath &path); operator idmef_path_t*() const; }; }; #endif libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/idmef-time.hxx0000644000000000000000000000011013726163410023204 xustar000000000000000024 mtime=1599661832.489 24 atime=1599661832.721 24 ctime=1599662000.355 libprelude-5.2.0/bindings/c++/include/idmef-time.hxx0000644000000000000000000000523113726163410022210 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_TIME_HXX #define _LIBPRELUDE_IDMEF_TIME_HXX #include "prelude.h" namespace Prelude { class IDMEFTime { protected: idmef_time_t *_time; public: IDMEFTime(); IDMEFTime(idmef_time_t *time); IDMEFTime(const time_t time); IDMEFTime(const char *string); IDMEFTime(const struct timeval *tv); IDMEFTime(const IDMEFTime &value); ~IDMEFTime(); void set(); void set(const time_t *time); void set(const char *string); void set(const struct timeval *tv); void setSec(uint32_t sec); void setUSec(uint32_t usec); void setGmtOffset(int32_t gmtoff); uint32_t getSec() const; uint32_t getUSec() const; int32_t getGmtOffset() const; double getTime() const { return (double) *this; }; IDMEFTime clone() const; const std::string toString() const; operator int() const; operator long() const; operator double() const; operator const std::string() const; operator idmef_time_t *() const; bool operator != (const IDMEFTime &time) const; bool operator >= (const IDMEFTime &time) const; bool operator <= (const IDMEFTime &time) const; bool operator == (const IDMEFTime &time) const; bool operator > (const IDMEFTime &time) const; bool operator < (const IDMEFTime &time) const; IDMEFTime & operator = (const IDMEFTime &p); }; }; #endif libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/idmef-value.hxx0000644000000000000000000000010713726163410023370 xustar000000000000000023 mtime=1599661832.49 24 atime=1599661832.721 24 ctime=1599662000.357 libprelude-5.2.0/bindings/c++/include/idmef-value.hxx0000644000000000000000000001100613726163410022363 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_VALUE_HXX #define _LIBPRELUDE_IDMEF_VALUE_HXX #include #include "idmef-time.hxx" namespace Prelude { class IDMEF; class IDMEFPath; } namespace Prelude { class IDMEFValue { private: void _InitFromString(const char *value, size_t size); std::string convert_string() const; protected: idmef_value_t *_value; std::string _myconv; public: enum IDMEFValueTypeEnum { TYPE_UNKNOWN = IDMEF_VALUE_TYPE_UNKNOWN, TYPE_INT8 = IDMEF_VALUE_TYPE_INT8, TYPE_UINT8 = IDMEF_VALUE_TYPE_UINT8, TYPE_INT16 = IDMEF_VALUE_TYPE_INT16, TYPE_UINT16 = IDMEF_VALUE_TYPE_UINT16, TYPE_INT32 = IDMEF_VALUE_TYPE_INT32, TYPE_UINT32 = IDMEF_VALUE_TYPE_UINT32, TYPE_INT64 = IDMEF_VALUE_TYPE_INT64, TYPE_UINT64 = IDMEF_VALUE_TYPE_UINT64, TYPE_FLOAT = IDMEF_VALUE_TYPE_FLOAT, TYPE_DOUBLE = IDMEF_VALUE_TYPE_DOUBLE, TYPE_STRING = IDMEF_VALUE_TYPE_STRING, TYPE_TIME = IDMEF_VALUE_TYPE_TIME, TYPE_DATA = IDMEF_VALUE_TYPE_DATA, TYPE_ENUM = IDMEF_VALUE_TYPE_ENUM, TYPE_LIST = IDMEF_VALUE_TYPE_LIST, TYPE_CLASS = IDMEF_VALUE_TYPE_CLASS }; IDMEFValueTypeEnum getType() const; bool isNull() const; IDMEFValue(); ~IDMEFValue(); IDMEFValue(IDMEF *idmef); IDMEFValue(const std::vector &value); IDMEFValue(const IDMEFValue &value); IDMEFValue(const std::vector &value); IDMEFValue(idmef_value_t *value); IDMEFValue(const std::string &value, Prelude::IDMEFPath *path=NULL); IDMEFValue(const char *value, Prelude::IDMEFPath *path=NULL); IDMEFValue(int32_t value); IDMEFValue(int64_t value); IDMEFValue(uint64_t value); IDMEFValue(float value); IDMEFValue(double value); IDMEFValue(Prelude::IDMEFTime &time); int match(const IDMEFValue &value, int op) const; IDMEFValue clone() const; const std::string toString() const; operator int32_t() const; operator uint32_t() const; operator int64_t() const; operator uint64_t() const; operator double() const; operator std::vector() const; operator const char*() const; operator float() const; operator Prelude::IDMEFTime() const; operator idmef_value_t *() const; IDMEFValue & operator=(const IDMEFValue &p); bool operator == (const std::vector &vlist) const; bool operator <= (const IDMEFValue &value) const; bool operator >= (const IDMEFValue &value) const; bool operator < (const IDMEFValue &value) const; bool operator > (const IDMEFValue &value) const; bool operator == (const IDMEFValue &value) const; bool operator != (const IDMEFValue &value) const; }; }; #endif libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/prelude.hxx0000644000000000000000000000011013726163410022624 xustar000000000000000024 mtime=1599661832.491 24 atime=1599661832.721 24 ctime=1599662000.358 libprelude-5.2.0/bindings/c++/include/prelude.hxx0000644000000000000000000000250413726163410021630 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include #ifndef _LIBPRELUDE_PRELUDE_HXX #define _LIBPRELUDE_PRELUDE_HXX #include "prelude-client.hxx" #include "prelude-client-easy.hxx" #include "prelude-connection.hxx" #include "prelude-connection-pool.hxx" #include "idmef.hxx" #include "idmef-class.hxx" #include "idmef-path.hxx" #include "idmef-value.hxx" #include "idmef-criteria.hxx" namespace Prelude { const char *checkVersion(const char *version = NULL); } #endif libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/prelude-client.hxx0000644000000000000000000000010613726163410024105 xustar000000000000000023 mtime=1599661832.49 24 atime=1599661832.721 23 ctime=1599662000.36 libprelude-5.2.0/bindings/c++/include/prelude-client.hxx0000644000000000000000000000760213726163410023110 0ustar00rootroot00000000000000/***** * * Copyright (C) 2009-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_CLIENT_HXX #define _LIBPRELUDE_PRELUDE_CLIENT_HXX #include "idmef.hxx" #include "prelude-connection-pool.hxx" #include "prelude-client-profile.hxx" namespace Prelude { class IDMEF; class Client : public ClientProfile { private: prelude_client_t *_client; ConnectionPool _pool; protected: int _recv_timeout; public: enum ClientFlagsEnum { ASYNC_SEND = PRELUDE_CLIENT_FLAGS_ASYNC_SEND, FLAGS_ASYNC_SEND = PRELUDE_CLIENT_FLAGS_ASYNC_SEND, ASYNC_TIMER = PRELUDE_CLIENT_FLAGS_ASYNC_TIMER, FLAGS_ASYNC_TIMER = PRELUDE_CLIENT_FLAGS_ASYNC_TIMER, HEARTBEAT = PRELUDE_CLIENT_FLAGS_HEARTBEAT, FLAGS_HEARTBEAT = PRELUDE_CLIENT_FLAGS_HEARTBEAT, CONNECT = PRELUDE_CLIENT_FLAGS_CONNECT, FLAGS_CONNECT = PRELUDE_CLIENT_FLAGS_CONNECT, AUTOCONFIG = PRELUDE_CLIENT_FLAGS_AUTOCONFIG, FLAGS_AUTOCONFIG = PRELUDE_CLIENT_FLAGS_AUTOCONFIG, }; enum ConnectionPermissionEnum { IDMEF_READ = PRELUDE_CONNECTION_PERMISSION_IDMEF_READ, PERMISSION_IDMEF_READ = PRELUDE_CONNECTION_PERMISSION_IDMEF_READ, ADMIN_READ = PRELUDE_CONNECTION_PERMISSION_ADMIN_READ, PERMISSION_ADMIN_READ = PRELUDE_CONNECTION_PERMISSION_ADMIN_READ, IDMEF_WRITE = PRELUDE_CONNECTION_PERMISSION_IDMEF_WRITE, PERMISSION_IDMEF_WRITE = PRELUDE_CONNECTION_PERMISSION_IDMEF_WRITE, ADMIN_WRITE = PRELUDE_CONNECTION_PERMISSION_ADMIN_WRITE, PERMISSION_ADMIN_WRITE = PRELUDE_CONNECTION_PERMISSION_ADMIN_WRITE, }; ~Client(); Client(const char *profile); Client(const Client &client); void start(); void init(); prelude_client_t *getClient() const; void sendIDMEF(const Prelude::IDMEF &message); int recvIDMEF(Prelude::IDMEF &idmef, int timeout=-1); int getFlags() const; void setFlags(int flags); int getRequiredPermission() const; void setRequiredPermission(int permission); const char *getConfigFilename() const; void setConfigFilename(const char *name); Prelude::ConnectionPool &getConnectionPool(); void setConnectionPool(Prelude::ConnectionPool pool); Client &operator << (Prelude::IDMEF &idmef); Client &operator >> (Prelude::IDMEF &idmef); Client &operator=(const Client &p); static Client &setRecvTimeout(Client &c, int timeout); }; }; #endif libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/prelude-client-easy.hxx0000644000000000000000000000010713726163410025045 xustar000000000000000023 mtime=1599661832.49 24 atime=1599661832.721 24 ctime=1599662000.362 libprelude-5.2.0/bindings/c++/include/prelude-client-easy.hxx0000644000000000000000000000352013726163410024042 0ustar00rootroot00000000000000/***** * * Copyright (C) 2009-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_CLIENT_EASY_HXX #define _LIBPRELUDE_PRELUDE_CLIENT_EASY_HXX #include "prelude.h" #include "idmef.hxx" #include "prelude-client.hxx" namespace Prelude { class ClientEasy : public Client { private: void setup_analyzer(idmef_analyzer *analyzer, const char *_model, const char *_class, const char *_manufacturer, const char *version); public: ClientEasy(const char *profile, int permission = Client::IDMEF_WRITE, const char *model = "Unknown model", const char *classname = "Unknown class", const char *manufacturer = "Unknown manufacturer", const char *version = "Unknown version"); }; }; #endif libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/prelude-client-profile.hxx0000644000000000000000000000010713726163410025544 xustar000000000000000023 mtime=1599661832.49 24 atime=1599661832.721 24 ctime=1599662000.363 libprelude-5.2.0/bindings/c++/include/prelude-client-profile.hxx0000644000000000000000000000554413726163410024551 0ustar00rootroot00000000000000/***** * * Copyright (C) 2009-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef __PRELUDE_CLIENT_PROFILE__ #define __PRELUDE_CLIENT_PROFILE__ #include #include "prelude.h" namespace Prelude { class ClientProfile { protected: bool _own_data; prelude_client_profile_t *_profile; public: ClientProfile(); ClientProfile(const char *profile); ClientProfile(prelude_client_profile_t * profile); ClientProfile(const ClientProfile &p); ~ClientProfile(); int getUid() { return (int)prelude_client_profile_get_uid(_profile); } int getGid() { return (int)prelude_client_profile_get_gid(_profile); } const char *getName() { return prelude_client_profile_get_name(_profile); } int setName(const char *name) { return prelude_client_profile_set_name(_profile,name); } /* XXX uint64_t has to be converted */ uint64_t getAnalyzerId() { return prelude_client_profile_get_analyzerid(_profile); } void setAnalyzerId(uint64_t id) { prelude_client_profile_set_analyzerid(_profile,id); } const std::string getConfigFilename(); const std::string getAnalyzeridFilename(); const std::string getTlsKeyFilename(); const std::string getTlsServerCaCertFilename(); const std::string getTlsServerKeyCertFilename(); const std::string getTlsServerCrlFilename(); const std::string getTlsClientKeyCertFilename(); const std::string getTlsClientTrustedCertFilename(); const std::string getBackupDirname(); const std::string getProfileDirname(); void setPrefix(const char *prefix); const std::string getPrefix(); operator prelude_client_profile_t *() const; ClientProfile &operator=(const ClientProfile &p); }; }; #endif libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/prelude-connection.hxx0000644000000000000000000000011013726163410024761 xustar000000000000000024 mtime=1599661832.491 24 atime=1599661832.721 24 ctime=1599662000.365 libprelude-5.2.0/bindings/c++/include/prelude-connection.hxx0000644000000000000000000000455513726163410023775 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_CONNECTION_HXX #define _LIBPRELUDE_PRELUDE_CONNECTION_HXX #include "prelude-connection.h" #include "prelude-client-profile.hxx" #include "idmef.hxx" namespace Prelude { class IDMEF; class Connection { private: prelude_connection_t *_con; public: ~Connection(); Connection(); Connection(const char *addr); Connection(const Connection &con); Connection(prelude_connection_t *con, bool own_data=FALSE); prelude_connection_t *getConnection() const; void close(); void connect(Prelude::ClientProfile &cp, int permission); void setState(int state); int getState() const; void setData(void *data); void *getData() const; int getPermission() const; void setPeerAnalyzerid(uint64_t analyzerid); uint64_t getPeerAnalyzerid() const; const char *getLocalAddr() const; unsigned int getLocalPort() const; const char *getPeerAddr() const; unsigned int getPeerPort() const; bool isAlive() const; int getFd() const; Prelude::IDMEF recvIDMEF(); Connection & operator=(const Connection &con); operator prelude_connection_t *(); }; }; #endif libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/prelude-connection-pool.hxx0000644000000000000000000000010713726163410025736 xustar000000000000000023 mtime=1599661832.49 24 atime=1599661832.721 24 ctime=1599662000.367 libprelude-5.2.0/bindings/c++/include/prelude-connection-pool.hxx0000644000000000000000000000452713726163410024743 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_CONNECTION_POOL_HXX #define _LIBPRELUDE_PRELUDE_CONNECTION_POOL_HXX #include "prelude.h" #include "prelude-client-profile.hxx" #include "prelude-connection.hxx" namespace Prelude { class ConnectionPool { private: prelude_connection_pool_t *_pool; public: ~ConnectionPool(); ConnectionPool(); ConnectionPool(prelude_connection_pool_t *pool); ConnectionPool(const ConnectionPool &pool); ConnectionPool(Prelude::ClientProfile &cp, int permission); void init(); void setConnectionString(const char *str); const char *getConnectionString() const; std::vector getConnectionList() const; void setFlags(int flags); int getFlags() const; void setData(void *data); void *getData() const; void addConnection(Prelude::Connection con); void delConnection(Prelude::Connection con); void setConnectionAlive(Prelude::Connection &con); void setConnectionDead(Prelude::Connection &con); void setRequiredPermission(int permission); ConnectionPool &operator=(const ConnectionPool &pool); operator prelude_connection_pool_t *(); }; }; #endif /* __PRELUDE_CONNECTION_POOL__ */ libprelude-5.2.0/bindings/c++/include/PaxHeaders.14770/prelude-log.hxx0000644000000000000000000000011013726163410023403 xustar000000000000000024 mtime=1599661832.491 24 atime=1599661832.721 24 ctime=1599662000.369 libprelude-5.2.0/bindings/c++/include/prelude-log.hxx0000644000000000000000000000376113726163410022415 0ustar00rootroot00000000000000/***** * * Copyright (C) 2009-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_LOG_HXX #define _LIBPRELUDE_PRELUDE_LOG_HXX #include "prelude.h" #include "idmef-path.h" #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ # undef ERROR #endif namespace Prelude { class PreludeLog { public: enum LogLevelEnum { DEBUG = PRELUDE_LOG_DEBUG, INFO = PRELUDE_LOG_INFO, WARNING = PRELUDE_LOG_WARN, ERROR = PRELUDE_LOG_ERR, CRITICAL = PRELUDE_LOG_CRIT }; enum LogFlagsEnum { QUIET = PRELUDE_LOG_FLAGS_QUIET, SYSLOG = PRELUDE_LOG_FLAGS_SYSLOG }; static void setLevel(int level); static void setDebugLevel(int level); static void setFlags(int flags); static int getFlags(void); static void setLogfile(const char *filename); static void setCallback(void (*log_cb)(int level, const char *log)); }; }; #endif libprelude-5.2.0/bindings/PaxHeaders.14770/lua0000644000000000000000000000011013726163660017153 xustar000000000000000024 mtime=1599662000.417 24 atime=1599662006.646 24 ctime=1599662000.417 libprelude-5.2.0/bindings/lua/0000755000000000000000000000000013726163660016233 5ustar00rootroot00000000000000libprelude-5.2.0/bindings/lua/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163513021272 xustar000000000000000024 mtime=1599661899.642 24 atime=1599661945.901 24 ctime=1599662000.412 libprelude-5.2.0/bindings/lua/Makefile.in0000644000000000000000000020204513726163513020300 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = bindings/lua DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp $(am__dist_swigdata_DATA_DIST) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(preludedir)" "$(DESTDIR)$(swigdatadir)" LTLIBRARIES = $(prelude_LTLIBRARIES) @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@prelude_la_DEPENDENCIES = $(top_builddir)/bindings/c++/.libs/libpreludecpp.la am__prelude_la_SOURCES_DIST = prelude.cxx @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@am_prelude_la_OBJECTS = \ @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@ prelude.lo prelude_la_OBJECTS = $(am_prelude_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = prelude_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(prelude_la_LDFLAGS) $(LDFLAGS) -o $@ @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@am_prelude_la_rpath = -rpath \ @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@ $(preludedir) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(prelude_la_SOURCES) DIST_SOURCES = $(am__prelude_la_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__dist_swigdata_DATA_DIST = libpreludecpp-lua.i DATA = $(dist_swigdata_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @HAVE_EASY_BINDINGS_TRUE@EXTRA_DIST = libpreludecpp-lua.i prelude.cxx @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@swigdatadir = @SWIG_DATA_DIR@/lua @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@dist_swigdata_DATA = libpreludecpp-lua.i @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@AM_CPPFLAGS = -I@top_srcdir@ -I@top_builddir@/src/include -I@top_srcdir@/src/include -I@top_builddir@/src/libprelude-error -I@top_srcdir@/bindings/c++/include @LUA_CFLAGS@ -I@top_srcdir@/libmissing -I@top_builddir@/libmissing @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@prelude_la_LDFLAGS = -module -avoid-version @LUA_LIBS@ @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@prelude_la_LIBADD = $(top_builddir)/bindings/c++/.libs/libpreludecpp.la @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@prelude_la_SOURCES = prelude.cxx @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@preludedir = $(libdir)/lua/@LUA_VERSION@ @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@prelude_LTLIBRARIES = prelude.la all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/lua/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu bindings/lua/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-preludeLTLIBRARIES: $(prelude_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(prelude_LTLIBRARIES)'; test -n "$(preludedir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(preludedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(preludedir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(preludedir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(preludedir)"; \ } uninstall-preludeLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(prelude_LTLIBRARIES)'; test -n "$(preludedir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(preludedir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(preludedir)/$$f"; \ done clean-preludeLTLIBRARIES: -test -z "$(prelude_LTLIBRARIES)" || rm -f $(prelude_LTLIBRARIES) @list='$(prelude_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } prelude.la: $(prelude_la_OBJECTS) $(prelude_la_DEPENDENCIES) $(EXTRA_prelude_la_DEPENDENCIES) $(AM_V_CXXLD)$(prelude_la_LINK) $(am_prelude_la_rpath) $(prelude_la_OBJECTS) $(prelude_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_swigdataDATA: $(dist_swigdata_DATA) @$(NORMAL_INSTALL) @list='$(dist_swigdata_DATA)'; test -n "$(swigdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(swigdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(swigdatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(swigdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(swigdatadir)" || exit $$?; \ done uninstall-dist_swigdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_swigdata_DATA)'; test -n "$(swigdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(swigdatadir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: for dir in "$(DESTDIR)$(preludedir)" "$(DESTDIR)$(swigdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-preludeLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_swigdataDATA install-preludeLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_swigdataDATA uninstall-preludeLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-preludeLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dist_swigdataDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-preludeLTLIBRARIES \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am \ uninstall-dist_swigdataDATA uninstall-preludeLTLIBRARIES @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@prelude.cxx: $(top_srcdir)/bindings/c++/include/*.hxx $(top_srcdir)/bindings/libpreludecpp.i libpreludecpp-lua.i @HAVE_EASY_BINDINGS_TRUE@@HAVE_LUA_TRUE@@HAVE_SWIG_TRUE@ $(SWIG) -c++ -DSWIG_COMPILE_LIBPRELUDE -I$(top_srcdir)/bindings -I$(top_srcdir)/bindings/c++/include -I$(top_srcdir)/src/include -I$(top_srcdir)/src/libprelude-error -lua -o $@ $(top_srcdir)/bindings/libpreludecpp.i -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/bindings/lua/PaxHeaders.14770/Makefile.am0000644000000000000000000000011013726163410021255 xustar000000000000000024 mtime=1599661832.493 24 atime=1599661832.721 24 ctime=1599662000.414 libprelude-5.2.0/bindings/lua/Makefile.am0000644000000000000000000000177013726163410020265 0ustar00rootroot00000000000000if HAVE_EASY_BINDINGS EXTRA_DIST = libpreludecpp-lua.i prelude.cxx if HAVE_LUA swigdatadir = @SWIG_DATA_DIR@/lua dist_swigdata_DATA = libpreludecpp-lua.i AM_CPPFLAGS = -I@top_srcdir@ -I@top_builddir@/src/include -I@top_srcdir@/src/include -I@top_builddir@/src/libprelude-error -I@top_srcdir@/bindings/c++/include @LUA_CFLAGS@ -I@top_srcdir@/libmissing -I@top_builddir@/libmissing prelude_la_LDFLAGS = -module -avoid-version @LUA_LIBS@ prelude_la_LIBADD = $(top_builddir)/bindings/c++/.libs/libpreludecpp.la prelude_la_SOURCES = prelude.cxx preludedir = $(libdir)/lua/@LUA_VERSION@ prelude_LTLIBRARIES = prelude.la prelude.cxx: $(top_srcdir)/bindings/c++/include/*.hxx $(top_srcdir)/bindings/libpreludecpp.i libpreludecpp-lua.i if HAVE_SWIG $(SWIG) -c++ -DSWIG_COMPILE_LIBPRELUDE -I$(top_srcdir)/bindings -I$(top_srcdir)/bindings/c++/include -I$(top_srcdir)/src/include -I$(top_srcdir)/src/libprelude-error -lua -o $@ $(top_srcdir)/bindings/libpreludecpp.i endif endif endif -include $(top_srcdir)/git.mk libprelude-5.2.0/bindings/lua/PaxHeaders.14770/libpreludecpp-lua.i0000644000000000000000000000011013726163410023004 xustar000000000000000024 mtime=1599661832.493 24 atime=1599661832.722 24 ctime=1599662000.416 libprelude-5.2.0/bindings/lua/libpreludecpp-lua.i0000644000000000000000000002600013726163410022005 0ustar00rootroot00000000000000/***** * * Copyright (C) 2005-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ %begin %{ #include "config.h" #include "glthread/thread.h" %} /* * Lua overloading fixes */ %ignore IDMEFCriteria(std::string const &); %ignore IDMEFValue(int8_t); %ignore IDMEFValue(uint8_t); %ignore IDMEFValue(int16_t); %ignore IDMEFValue(uint16_t); %ignore IDMEFValue(int32_t); %ignore IDMEFValue(uint32_t); %ignore IDMEFValue(int64_t); %ignore IDMEFValue(uint64_t); %ignore IDMEFValue(float); %ignore IDMEFValue(std::string); %ignore Set(Prelude::IDMEF &, int8_t); %ignore Set(Prelude::IDMEF &, uint8_t); %ignore Set(Prelude::IDMEF &, int16_t); %ignore Set(Prelude::IDMEF &, uint16_t); %ignore Set(Prelude::IDMEF &, int32_t); %ignore Set(Prelude::IDMEF &, uint32_t); %ignore Set(Prelude::IDMEF &, int64_t); %ignore Set(Prelude::IDMEF &, uint64_t); %ignore Set(Prelude::IDMEF &, float); %ignore Set(Prelude::IDMEF &, std::string); %ignore Set(char const *, int8_t); %ignore Set(char const *, uint8_t); %ignore Set(char const *, int16_t); %ignore Set(char const *, uint16_t); %ignore Set(char const *, int32_t); %ignore Set(char const *, uint32_t); %ignore Set(char const *, int64_t); %ignore Set(char const *, uint64_t); %ignore Set(char const *, float); %ignore Set(char const *, std::string); /* * Conversion not allowed */ %ignore *::operator =; %ignore *::operator int() const; %ignore *::operator long() const; %ignore *::operator int32_t() const; %ignore *::operator uint32_t() const; %ignore *::operator int64_t() const; %ignore *::operator uint64_t() const; %ignore *::operator float() const; %ignore *::operator double() const; %ignore *::operator Prelude::IDMEFTime() const; %ignore operator <<; %ignore operator >>; %rename (__str__) *::operator const char *() const; %begin %{ #define TARGET_LANGUAGE_SELF void * #define TARGET_LANGUAGE_OUTPUT_TYPE int * %} %header { char *my_strdup(const char *in) { char *out = new char[strlen(in) + 1]; strcpy(out, in); return out; } } %ignore Prelude::IDMEFCriteria::operator const std::string() const; %newobject Prelude::IDMEFCriteria::__str__; %extend Prelude::IDMEFCriteria { char *__str__() { return my_strdup(self->toString().c_str()); } } %ignore Prelude::IDMEFTime::operator const std::string() const; %newobject Prelude::IDMEFTime::__str__; %extend Prelude::IDMEFTime { char *__str__() { return my_strdup(self->toString().c_str()); } } %ignore Prelude::IDMEF::operator const std::string() const; %newobject Prelude::IDMEF::__str__; %extend Prelude::IDMEF { char *__str__() { return my_strdup(self->toString().c_str()); } } %header %{ int integer2lua(lua_State *L, lua_Number result) { lua_pushnumber(L, (lua_Number) result); return 0; } int str2lua(lua_State *L, const char *str) { lua_pushstring(L, str); return 0; } int strsize2lua(lua_State *L, const char *str, size_t len) { lua_pushlstring(L, str, len); return 0; } int _SWIG_Prelude_NewPointerObj(lua_State *L, void *obj, swig_type_info *objtype, int val) { SWIG_NewPointerObj(L, obj, objtype, val); return 0; } %} /* tell squid not to cast void * value */ %typemap(in) void *nocast_p { FILE **pf; pf = (FILE **)lua_touserdata(L, $input); if (pf == NULL) { lua_pushstring(L,"Argument is not a file"); SWIG_fail; } $1 = *pf; } %fragment("TransitionFunc", "header") { static int __prelude_log_func; static lua_State *__lua_state = NULL; static gl_thread_t __initial_thread; static void _cb_lua_log(int level, const char *str) { if ( (gl_thread_t) gl_thread_self() != __initial_thread ) return; lua_rawgeti(__lua_state, LUA_REGISTRYINDEX, __prelude_log_func); lua_pushnumber(__lua_state, level); lua_pushstring(__lua_state, str); lua_call(__lua_state, 2, 0); } static int _cb_lua_write(prelude_msgbuf_t *fd, prelude_msg_t *msg) { size_t ret; FILE *f = (FILE *) prelude_msgbuf_get_data(fd); ret = fwrite((const char *)prelude_msg_get_message_data(msg), 1, prelude_msg_get_len(msg), f); if ( ret != prelude_msg_get_len(msg) ) return prelude_error_from_errno(errno); prelude_msg_recycle(msg); return 0; } static ssize_t _cb_lua_read(prelude_io_t *fd, void *buf, size_t size) { ssize_t ret; FILE *f = (FILE *) prelude_io_get_fdptr(fd); ret = fread(buf, 1, size, f); if ( ret < 0 ) ret = prelude_error_from_errno(errno); else if ( ret == 0 ) ret = prelude_error(PRELUDE_ERROR_EOF); return ret; } }; %typemap(in, fragment="TransitionFunc") void (*log_cb)(int level, const char *log) { if ( ! lua_isfunction(L, -1) ) SWIG_exception(SWIG_ValueError, "Argument should be a function"); if ( __lua_state ) luaL_unref(L, LUA_REGISTRYINDEX, __prelude_log_func); __prelude_log_func = luaL_ref(L, LUA_REGISTRYINDEX); $1 = _cb_lua_log; __lua_state = L; }; %exception { try { $action } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } %exception read(void *nocast_p) { try { $action } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) return 0; else { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } } %extend Prelude::IDMEF { void write(void *nocast_p) { self->_genericWrite(_cb_lua_write, nocast_p); } int read(void *nocast_p) { self->_genericRead(_cb_lua_read, nocast_p); return 1; } } %fragment("SWIG_NewPointerObj", "header") { #define SWIG_NewPointerObj(obj, objtype, val) _SWIG_Prelude_NewPointerObj((lua_State *) extra, obj, objtype, val); } %fragment("SWIG_FromCharPtr", "header") { #define SWIG_FromCharPtr(result) str2lua((lua_State *) extra, result) } %fragment("SWIG_FromBytePtrAndSize", "header") { #define SWIG_FromBytePtrAndSize(result, len) strsize2lua((lua_State *) extra, result, len) } %fragment("SWIG_FromCharPtrAndSize", "header") { #define SWIG_FromCharPtrAndSize(result, len) strsize2lua((lua_State *) extra, result, len) } %fragment("SWIG_From_float", "header") { #define SWIG_From_float(result) integer2lua((lua_State *) extra, result) } %fragment("SWIG_From_int", "header") { #define SWIG_From_int(result) integer2lua((lua_State *) extra, result) } %fragment("SWIG_From_double", "header") { #define SWIG_From_double(result) integer2lua((lua_State *) extra, result) } %fragment("SWIG_From_unsigned_SS_int", "header") { #define SWIG_From_unsigned_SS_int(result) integer2lua((lua_State *) extra, result) } %fragment("SWIG_From_long_SS_long", "header") { #define SWIG_From_long_SS_long(result) integer2lua((lua_State *) extra, result) } %fragment("SWIG_From_unsigned_SS_long_SS_long", "header") { #define SWIG_From_unsigned_SS_long_SS_long(result) integer2lua((lua_State *) extra, result) } %fragment("IDMEFValueList_to_SWIG", "header") { int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret); int IDMEFValueList_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &value, void *extra) { bool is_list; int index = 0, ret, unused; std::vector result = value; std::vector::const_iterator i; lua_newtable((lua_State *) extra); for ( i = result.begin(); i != result.end(); i++ ) { ret = lua_checkstack((lua_State *) extra, 2); if ( ret < 0 ) return ret; if ( (*i).isNull() ) { lua_pushnil((lua_State *) extra); lua_rawseti((lua_State *) extra, -2, ++index); } else { is_list = (i->getType() == IDMEFValue::TYPE_LIST); if ( is_list ) lua_pushnumber((lua_State *) extra, ++index); ret = IDMEFValue_to_SWIG(&unused, *i, extra, &unused); if ( ret < 0 ) return -1; if ( is_list ) lua_settable((lua_State *) extra, -3); else lua_rawseti((lua_State *) extra, -2, ++index); } } return 1; } } %typemap(out, fragment="IDMEFValue_to_SWIG") Prelude::IDMEFValue { int ret, unused; if ( $1.isNull() ) { lua_pushnil(L); SWIG_arg = 1; } else { SWIG_arg = IDMEFValue_to_SWIG(&unused, $1, L, &unused); if ( SWIG_arg < 0 ) { std::stringstream s; s << "IDMEFValue typemap does not handle value of type '" << idmef_value_type_to_string((idmef_value_type_id_t) $1.getType()) << "'"; SWIG_exception(SWIG_ValueError, s.str().c_str()); } } }; #define MAX(x, y) ((x) > (y) ? (x) : (y)) %init { int argc = 0, ret; static char *argv[1024]; __initial_thread = (gl_thread_t) gl_thread_self(); lua_getglobal(L, "arg"); if ( ! lua_istable(L, -1) ) return; lua_pushnil(L); while ( lua_next(L, -2) != 0 ) { int idx; const char *val; idx = lua_tonumber(L, -2); val = lua_tostring(L, -1); lua_pop(L, 1); if ( idx < 0 ) continue; if ( idx >= ((sizeof(argv) / sizeof(char *)) - 1) ) throw PreludeError("Argument index too large"); argv[idx] = strdup(val); argc = MAX(idx, argc); } argc++; argv[argc] = NULL; ret = prelude_init(&argc, argv); if ( ret < 0 ) throw PreludeError(ret); } libprelude-5.2.0/bindings/lua/PaxHeaders.14770/prelude.cxx0000644000000000000000000000011013726163410021405 xustar000000000000000024 mtime=1599661832.497 24 atime=1599661832.722 24 ctime=1599662000.418 libprelude-5.2.0/bindings/lua/prelude.cxx0000644000000000000000000160022713726163410020420 0ustar00rootroot00000000000000/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 4.0.1 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ #include "config.h" #include "glthread/thread.h" #define TARGET_LANGUAGE_SELF void * #define TARGET_LANGUAGE_OUTPUT_TYPE int * #ifndef SWIGLUA #define SWIGLUA #endif #define SWIG_LUA_TARGET SWIG_LUA_FLAVOR_LUA #define SWIG_LUA_MODULE_GLOBAL #ifdef __cplusplus /* SwigValueWrapper is described in swig.swg */ template class SwigValueWrapper { struct SwigMovePointer { T *ptr; SwigMovePointer(T *p) : ptr(p) { } ~SwigMovePointer() { delete ptr; } SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } } pointer; SwigValueWrapper& operator=(const SwigValueWrapper& rhs); SwigValueWrapper(const SwigValueWrapper& rhs); public: SwigValueWrapper() : pointer(0) { } SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; } operator T&() const { return *pointer.ptr; } T *operator&() { return pointer.ptr; } }; template T SwigValueInit() { return T(); } #endif /* ----------------------------------------------------------------------------- * This section contains generic SWIG labels for method/variable * declarations/attributes, and other compiler dependent labels. * ----------------------------------------------------------------------------- */ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) # define SWIGTEMPLATEDISAMBIGUATOR template # elif defined(__HP_aCC) /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ # define SWIGTEMPLATEDISAMBIGUATOR template # else # define SWIGTEMPLATEDISAMBIGUATOR # endif #endif /* inline attribute */ #ifndef SWIGINLINE # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) # define SWIGINLINE inline # else # define SWIGINLINE # endif #endif /* attribute recognised by some compilers to avoid 'unused' warnings */ #ifndef SWIGUNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif # elif defined(__ICC) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif #endif #ifndef SWIG_MSC_UNSUPPRESS_4505 # if defined(_MSC_VER) # pragma warning(disable : 4505) /* unreferenced local function has been removed */ # endif #endif #ifndef SWIGUNUSEDPARM # ifdef __cplusplus # define SWIGUNUSEDPARM(p) # else # define SWIGUNUSEDPARM(p) p SWIGUNUSED # endif #endif /* internal SWIG method */ #ifndef SWIGINTERN # define SWIGINTERN static SWIGUNUSED #endif /* internal inline SWIG method */ #ifndef SWIGINTERNINLINE # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif /* exporting methods */ #if defined(__GNUC__) # if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) # ifndef GCC_HASCLASSVISIBILITY # define GCC_HASCLASSVISIBILITY # endif # endif #endif #ifndef SWIGEXPORT # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(STATIC_LINKED) # define SWIGEXPORT # else # define SWIGEXPORT __declspec(dllexport) # endif # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) # define SWIGEXPORT __attribute__ ((visibility("default"))) # else # define SWIGEXPORT # endif # endif #endif /* calling conventions for Windows */ #ifndef SWIGSTDCALL # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # define SWIGSTDCALL __stdcall # else # define SWIGSTDCALL # endif #endif /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) # define _CRT_SECURE_NO_DEPRECATE #endif /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) # define _SCL_SECURE_NO_DEPRECATE #endif /* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ #if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) # define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 #endif /* Intel's compiler complains if a variable which was never initialised is * cast to void, which is a common idiom which we use to indicate that we * are aware a variable isn't used. So we just silence that warning. * See: https://github.com/swig/swig/issues/192 for more discussion. */ #ifdef __INTEL_COMPILER # pragma warning disable 592 #endif /* ----------------------------------------------------------------------------- * swigrun.swg * * This file contains generic C API SWIG runtime support for pointer * type checking. * ----------------------------------------------------------------------------- */ /* This should only be incremented when either the layout of swig_type_info changes, or for whatever reason, the runtime changes incompatibly */ #define SWIG_RUNTIME_VERSION "4" /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ #ifdef SWIG_TYPE_TABLE # define SWIG_QUOTE_STRING(x) #x # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) #else # define SWIG_TYPE_TABLE_NAME #endif /* You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for creating a static or dynamic library from the SWIG runtime code. In 99.9% of the cases, SWIG just needs to declare them as 'static'. But only do this if strictly necessary, ie, if you have problems with your compiler or suchlike. */ #ifndef SWIGRUNTIME # define SWIGRUNTIME SWIGINTERN #endif #ifndef SWIGRUNTIMEINLINE # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE #endif /* Generic buffer size */ #ifndef SWIG_BUFFER_SIZE # define SWIG_BUFFER_SIZE 1024 #endif /* Flags for pointer conversions */ #define SWIG_POINTER_DISOWN 0x1 #define SWIG_CAST_NEW_MEMORY 0x2 #define SWIG_POINTER_NO_NULL 0x4 /* Flags for new pointer objects */ #define SWIG_POINTER_OWN 0x1 /* Flags/methods for returning states. The SWIG conversion methods, as ConvertPtr, return an integer that tells if the conversion was successful or not. And if not, an error code can be returned (see swigerrors.swg for the codes). Use the following macros/flags to set or process the returning states. In old versions of SWIG, code such as the following was usually written: if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { // success code } else { //fail code } Now you can be more explicit: int res = SWIG_ConvertPtr(obj,vptr,ty.flags); if (SWIG_IsOK(res)) { // success code } else { // fail code } which is the same really, but now you can also do Type *ptr; int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); if (SWIG_IsOK(res)) { // success code if (SWIG_IsNewObj(res) { ... delete *ptr; } else { ... } } else { // fail code } I.e., now SWIG_ConvertPtr can return new objects and you can identify the case and take care of the deallocation. Of course that also requires SWIG_ConvertPtr to return new result values, such as int SWIG_ConvertPtr(obj, ptr,...) { if () { if () { *ptr = ; return SWIG_NEWOBJ; } else { *ptr = ; return SWIG_OLDOBJ; } } else { return SWIG_BADOBJ; } } Of course, returning the plain '0(success)/-1(fail)' still works, but you can be more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the SWIG errors code. Finally, if the SWIG_CASTRANK_MODE is enabled, the result code allows to return the 'cast rank', for example, if you have this int food(double) int fooi(int); and you call food(1) // cast rank '1' (1 -> 1.0) fooi(1) // cast rank '0' just use the SWIG_AddCast()/SWIG_CheckState() */ #define SWIG_OK (0) #define SWIG_ERROR (-1) #define SWIG_IsOK(r) (r >= 0) #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) /* The CastRankLimit says how many bits are used for the cast rank */ #define SWIG_CASTRANKLIMIT (1 << 8) /* The NewMask denotes the object was created (using new/malloc) */ #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) /* The TmpMask is for in/out typemaps that use temporal objects */ #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) /* Simple returning values */ #define SWIG_BADOBJ (SWIG_ERROR) #define SWIG_OLDOBJ (SWIG_OK) #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) /* Check, add and del mask methods */ #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) /* Cast-Rank Mode */ #if defined(SWIG_CASTRANK_MODE) # ifndef SWIG_TypeRank # define SWIG_TypeRank unsigned long # endif # ifndef SWIG_MAXCASTRANK /* Default cast allowed */ # define SWIG_MAXCASTRANK (2) # endif # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) SWIGINTERNINLINE int SWIG_AddCast(int r) { return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; } SWIGINTERNINLINE int SWIG_CheckState(int r) { return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; } #else /* no cast-rank mode */ # define SWIG_AddCast(r) (r) # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) #endif #include #ifdef __cplusplus extern "C" { #endif typedef void *(*swig_converter_func)(void *, int *); typedef struct swig_type_info *(*swig_dycast_func)(void **); /* Structure to store information on one type */ typedef struct swig_type_info { const char *name; /* mangled name of this type */ const char *str; /* human readable name of this type */ swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ struct swig_cast_info *cast; /* linked list of types that can cast into this type */ void *clientdata; /* language specific type data */ int owndata; /* flag if the structure owns the clientdata */ } swig_type_info; /* Structure to store a type and conversion function used for casting */ typedef struct swig_cast_info { swig_type_info *type; /* pointer to type that is equivalent to this type */ swig_converter_func converter; /* function to cast the void pointers */ struct swig_cast_info *next; /* pointer to next cast in linked list */ struct swig_cast_info *prev; /* pointer to the previous cast */ } swig_cast_info; /* Structure used to store module information * Each module generates one structure like this, and the runtime collects * all of these structures and stores them in a circularly linked list.*/ typedef struct swig_module_info { swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ size_t size; /* Number of types in this module */ struct swig_module_info *next; /* Pointer to next element in circularly linked list */ swig_type_info **type_initial; /* Array of initially generated type structures */ swig_cast_info **cast_initial; /* Array of initially generated casting structures */ void *clientdata; /* Language specific module data */ } swig_module_info; /* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class" == "Class", etc. Return 0 when the two name types are equivalent, as in strncmp, but skipping ' '. */ SWIGRUNTIME int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { while ((*f1 == ' ') && (f1 != l1)) ++f1; while ((*f2 == ' ') && (f2 != l2)) ++f2; if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; } return (int)((l1 - f1) - (l2 - f2)); } /* Check type equivalence in a name list like ||... Return 0 if equal, -1 if nb < tb, 1 if nb > tb */ SWIGRUNTIME int SWIG_TypeCmp(const char *nb, const char *tb) { int equiv = 1; const char* te = tb + strlen(tb); const char* ne = nb; while (equiv != 0 && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = SWIG_TypeNameComp(nb, ne, tb, te); if (*ne) ++ne; } return equiv; } /* Check type equivalence in a name list like ||... Return 0 if not equal, 1 if equal */ SWIGRUNTIME int SWIG_TypeEquiv(const char *nb, const char *tb) { return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0; } /* Check the typename */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheck(const char *c, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (strcmp(iter->type->name, c) == 0) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (iter->type == from) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Cast a pointer up an inheritance hierarchy */ SWIGRUNTIMEINLINE void * SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); } /* Dynamic pointer casting. Down an inheritance hierarchy */ SWIGRUNTIME swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { swig_type_info *lastty = ty; if (!ty || !ty->dcast) return ty; while (ty && (ty->dcast)) { ty = (*ty->dcast)(ptr); if (ty) lastty = ty; } return lastty; } /* Return the name associated with this type */ SWIGRUNTIMEINLINE const char * SWIG_TypeName(const swig_type_info *ty) { return ty->name; } /* Return the pretty name associated with this type, that is an unmangled type name in a form presentable to the user. */ SWIGRUNTIME const char * SWIG_TypePrettyName(const swig_type_info *type) { /* The "str" field contains the equivalent pretty names of the type, separated by vertical-bar characters. We choose to print the last name, as it is often (?) the most specific. */ if (!type) return NULL; if (type->str != NULL) { const char *last_name = type->str; const char *s; for (s = type->str; *s; s++) if (*s == '|') last_name = s+1; return last_name; } else return type->name; } /* Set the clientdata field for a type */ SWIGRUNTIME void SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_cast_info *cast = ti->cast; /* if (ti->clientdata == clientdata) return; */ ti->clientdata = clientdata; while (cast) { if (!cast->converter) { swig_type_info *tc = cast->type; if (!tc->clientdata) { SWIG_TypeClientData(tc, clientdata); } } cast = cast->next; } } SWIGRUNTIME void SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { SWIG_TypeClientData(ti, clientdata); ti->owndata = 1; } /* Search for a swig_type_info structure only by mangled name Search is a O(log #types) We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_MangledTypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { swig_module_info *iter = start; do { if (iter->size) { size_t l = 0; size_t r = iter->size - 1; do { /* since l+r >= 0, we can (>> 1) instead (/ 2) */ size_t i = (l + r) >> 1; const char *iname = iter->types[i]->name; if (iname) { int compare = strcmp(name, iname); if (compare == 0) { return iter->types[i]; } else if (compare < 0) { if (i) { r = i - 1; } else { break; } } else if (compare > 0) { l = i + 1; } } else { break; /* should never happen */ } } while (l <= r); } iter = iter->next; } while (iter != end); return 0; } /* Search for a swig_type_info structure for either a mangled name or a human readable name. It first searches the mangled names of the types, which is a O(log #types) If a type is not found it then searches the human readable names, which is O(#types). We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_TypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { /* STEP 1: Search the name field using binary search */ swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); if (ret) { return ret; } else { /* STEP 2: If the type hasn't been found, do a complete search of the str field (the human readable name) */ swig_module_info *iter = start; do { size_t i = 0; for (; i < iter->size; ++i) { if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) return iter->types[i]; } iter = iter->next; } while (iter != end); } /* neither found a match */ return 0; } /* Pack binary data into a string */ SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz) { static const char hex[17] = "0123456789abcdef"; const unsigned char *u = (unsigned char *) ptr; const unsigned char *eu = u + sz; for (; u != eu; ++u) { unsigned char uu = *u; *(c++) = hex[(uu & 0xf0) >> 4]; *(c++) = hex[uu & 0xf]; } return c; } /* Unpack binary data from a string */ SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { unsigned char *u = (unsigned char *) ptr; const unsigned char *eu = u + sz; for (; u != eu; ++u) { char d = *(c++); unsigned char uu; if ((d >= '0') && (d <= '9')) uu = (unsigned char)((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) uu = (unsigned char)((d - ('a'-10)) << 4); else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) uu |= (unsigned char)(d - '0'); else if ((d >= 'a') && (d <= 'f')) uu |= (unsigned char)(d - ('a'-10)); else return (char *) 0; *u = uu; } return c; } /* Pack 'void *' into a string buffer. */ SWIGRUNTIME char * SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { char *r = buff; if ((2*sizeof(void *) + 2) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,&ptr,sizeof(void *)); if (strlen(name) + 1 > (bsz - (r - buff))) return 0; strcpy(r,name); return buff; } SWIGRUNTIME const char * SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { *ptr = (void *) 0; return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sizeof(void *)); } SWIGRUNTIME char * SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { char *r = buff; size_t lname = (name ? strlen(name) : 0); if ((2*sz + 2 + lname) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); if (lname) { strncpy(r,name,lname+1); } else { *r = 0; } return buff; } SWIGRUNTIME const char * SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { memset(ptr,0,sz); return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sz); } #ifdef __cplusplus } #endif /* Errors in SWIG */ #define SWIG_UnknownError -1 #define SWIG_IOError -2 #define SWIG_RuntimeError -3 #define SWIG_IndexError -4 #define SWIG_TypeError -5 #define SWIG_DivisionByZero -6 #define SWIG_OverflowError -7 #define SWIG_SyntaxError -8 #define SWIG_ValueError -9 #define SWIG_SystemError -10 #define SWIG_AttributeError -11 #define SWIG_MemoryError -12 #define SWIG_NullReferenceError -13 /* ----------------------------------------------------------------------------- * luarun.swg * * This file contains the runtime support for Lua modules * and includes code for managing global variables and pointer * type checking. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #endif #include "lua.h" #include "lauxlib.h" #include /* for malloc */ #include /* for a few sanity tests */ /* ----------------------------------------------------------------------------- * Lua flavors * ----------------------------------------------------------------------------- */ #define SWIG_LUA_FLAVOR_LUA 1 #define SWIG_LUA_FLAVOR_ELUA 2 #define SWIG_LUA_FLAVOR_ELUAC 3 #if !defined(SWIG_LUA_TARGET) # error SWIG_LUA_TARGET not defined #endif #if defined(SWIG_LUA_ELUA_EMULATE) struct swig_elua_entry; typedef struct swig_elua_key { int type; union { const char* strkey; lua_Number numkey; } key; } swig_elua_key; typedef struct swig_elua_val { int type; union { lua_Number number; const struct swig_elua_entry *table; const char *string; lua_CFunction function; struct { char member; long lvalue; void *pvalue; swig_type_info **ptype; } userdata; } value; } swig_elua_val; typedef struct swig_elua_entry { swig_elua_key key; swig_elua_val value; } swig_elua_entry; #define LSTRKEY(x) {LUA_TSTRING, {.strkey = x} } #define LNUMKEY(x) {LUA_TNUMBER, {.numkey = x} } #define LNILKEY {LUA_TNIL, {.strkey = 0} } #define LNUMVAL(x) {LUA_TNUMBER, {.number = x} } #define LFUNCVAL(x) {LUA_TFUNCTION, {.function = x} } #define LROVAL(x) {LUA_TTABLE, {.table = x} } #define LNILVAL {LUA_TNIL, {.string = 0} } #define LSTRVAL(x) {LUA_TSTRING, {.string = x} } #define LUA_REG_TYPE swig_elua_entry #define SWIG_LUA_ELUA_EMUL_METATABLE_KEY "__metatable" #define lua_pushrotable(L,p)\ lua_newtable(L);\ assert(p);\ SWIG_Lua_elua_emulate_register(L,(swig_elua_entry*)(p)); #define SWIG_LUA_CONSTTAB_POINTER(B,C,D)\ LSTRKEY(B), {LUA_TUSERDATA, { .userdata={0,0,(void*)(C),&D} } } #define SWIG_LUA_CONSTTAB_BINARY(B,S,C,D)\ LSTRKEY(B), {LUA_TUSERDATA, { .userdata={1,S,(void*)(C),&D} } } #endif #if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC) # define SWIG_LUA_CONSTTAB_INT(B, C) LSTRKEY(B), LNUMVAL(C) # define SWIG_LUA_CONSTTAB_FLOAT(B, C) LSTRKEY(B), LNUMVAL(C) # define SWIG_LUA_CONSTTAB_STRING(B, C) LSTRKEY(B), LSTRVAL(C) # define SWIG_LUA_CONSTTAB_CHAR(B, C) LSTRKEY(B), LNUMVAL(C) /* Those two types of constants are not supported in elua */ #ifndef SWIG_LUA_CONSTTAB_POINTER #warning eLua does not support pointers as constants. By default, nil will be used as value #define SWIG_LUA_CONSTTAB_POINTER(B,C,D) LSTRKEY(B), LNILVAL #endif #ifndef SWIG_LUA_CONSTTAB_BINARY #warning eLua does not support pointers to member as constants. By default, nil will be used as value #define SWIG_LUA_CONSTTAB_BINARY(B, S, C, D) LSTRKEY(B), LNILVAL #endif #else /* SWIG_LUA_FLAVOR_LUA */ # define SWIG_LUA_CONSTTAB_INT(B, C) SWIG_LUA_INT, (char *)B, (long)C, 0, 0, 0 # define SWIG_LUA_CONSTTAB_FLOAT(B, C) SWIG_LUA_FLOAT, (char *)B, 0, (double)C, 0, 0 # define SWIG_LUA_CONSTTAB_STRING(B, C) SWIG_LUA_STRING, (char *)B, 0, 0, (void *)C, 0 # define SWIG_LUA_CONSTTAB_CHAR(B, C) SWIG_LUA_CHAR, (char *)B, (long)C, 0, 0, 0 # define SWIG_LUA_CONSTTAB_POINTER(B,C,D)\ SWIG_LUA_POINTER, (char *)B, 0, 0, (void *)C, &D # define SWIG_LUA_CONSTTAB_BINARY(B, S, C, D)\ SWIG_LUA_BINARY, (char *)B, S, 0, (void *)C, &D #endif #ifndef SWIG_LUA_ELUA_EMULATE #if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC) # define LRO_STRVAL(v) {{.p = (char *) v}, LUA_TSTRING} # define LSTRVAL LRO_STRVAL #endif #endif /* SWIG_LUA_ELUA_EMULATE*/ #ifndef SWIG_LUA_ELUA_EMULATE #if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC) #ifndef MIN_OPT_LEVEL #define MIN_OPT_LEVEL 2 #endif #include "lrodefs.h" #include "lrotable.h" #endif #endif /* SWIG_LUA_ELUA_EMULATE*/ /* ----------------------------------------------------------------------------- * compatibility defines * ----------------------------------------------------------------------------- */ /* History of Lua C API length functions: In Lua 5.0 (and before?) there was "lua_strlen". In Lua 5.1, this was renamed "lua_objlen", but a compatibility define of "lua_strlen" was added. In Lua 5.2, this function was again renamed, to "lua_rawlen" (to emphasize that it doesn't call the "__len" metamethod), and the compatibility define of lua_strlen was removed. All SWIG uses have been updated to "lua_rawlen", and we add our own defines of that here for older versions of Lua. */ #if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 501 # define lua_rawlen lua_strlen #elif LUA_VERSION_NUM == 501 # define lua_rawlen lua_objlen #endif /* lua_pushglobaltable is the recommended "future-proof" way to get the global table for Lua 5.2 and later. Here we define lua_pushglobaltable ourselves for Lua versions before 5.2. */ #if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 502 # define lua_pushglobaltable(L) lua_pushvalue(L, LUA_GLOBALSINDEX) #endif /* lua_absindex was introduced in Lua 5.2 */ #if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 502 # define lua_absindex(L,i) ((i)>0 || (i) <= LUA_REGISTRYINDEX ? (i) : lua_gettop(L) + (i) + 1) #endif /* lua_rawsetp was introduced in Lua 5.2 */ #if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 502 #define lua_rawsetp(L,index,ptr)\ lua_pushlightuserdata(L,(void*)(ptr));\ lua_insert(L,-2);\ lua_rawset(L,index); #define lua_rawgetp(L,index,ptr)\ lua_pushlightuserdata(L,(void*)(ptr));\ lua_rawget(L,index); #endif /* -------------------------------------------------------------------------- * Helper functions for error handling * -------------------------------------------------------------------------- */ /* Push the string STR on the Lua stack, like lua_pushstring, but prefixed with the location of the innermost Lua call-point (as formatted by luaL_where). */ SWIGRUNTIME void SWIG_Lua_pusherrstring (lua_State *L, const char *str) { luaL_where (L, 1); lua_pushstring (L, str); lua_concat (L, 2); } /* Push a formatted string generated from FMT and following args on the Lua stack, like lua_pushfstring, but prefixed with the location of the innermost Lua call-point (as formatted by luaL_where). */ SWIGRUNTIME void SWIG_Lua_pushferrstring (lua_State *L, const char *fmt, ...) { va_list argp; va_start(argp, fmt); luaL_where(L, 1); lua_pushvfstring(L, fmt, argp); va_end(argp); lua_concat(L, 2); } /* ----------------------------------------------------------------------------- * global swig types * ----------------------------------------------------------------------------- */ /* Constant table */ #define SWIG_LUA_INT 1 #define SWIG_LUA_FLOAT 2 #define SWIG_LUA_STRING 3 #define SWIG_LUA_POINTER 4 #define SWIG_LUA_BINARY 5 #define SWIG_LUA_CHAR 6 /* Structure for variable linking table */ typedef struct { const char *name; lua_CFunction get; lua_CFunction set; } swig_lua_var_info; #if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC) typedef const LUA_REG_TYPE swig_lua_method; typedef const LUA_REG_TYPE swig_lua_const_info; #else /* Normal lua */ typedef luaL_Reg swig_lua_method; /* Constant information structure */ typedef struct { int type; char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype; } swig_lua_const_info; #endif typedef struct { const char *name; lua_CFunction getmethod; lua_CFunction setmethod; } swig_lua_attribute; struct swig_lua_class; /* Can be used to create namespaces. Currently used to wrap class static methods/variables/constants */ typedef struct swig_lua_namespace { const char *name; swig_lua_method *ns_methods; swig_lua_attribute *ns_attributes; swig_lua_const_info *ns_constants; struct swig_lua_class **ns_classes; struct swig_lua_namespace **ns_namespaces; } swig_lua_namespace; typedef struct swig_lua_class { const char *name; /* Name that this class has in Lua */ const char *fqname; /* Fully qualified name - Scope + class name */ swig_type_info **type; lua_CFunction constructor; void (*destructor)(void *); swig_lua_method *methods; swig_lua_attribute *attributes; swig_lua_namespace *cls_static; swig_lua_method *metatable; /* 0 for -eluac */ struct swig_lua_class **bases; const char **base_names; } swig_lua_class; /* this is the struct for wrapping all pointers in SwigLua */ typedef struct { swig_type_info *type; int own; /* 1 if owned & must be destroyed */ void *ptr; } swig_lua_userdata; /* this is the struct for wrapping arbitrary packed binary data (currently it is only used for member function pointers) the data ordering is similar to swig_lua_userdata, but it is currently not possible to tell the two structures apart within SWIG, other than by looking at the type */ typedef struct { swig_type_info *type; int own; /* 1 if owned & must be destroyed */ char data[1]; /* arbitrary amount of data */ } swig_lua_rawdata; /* Common SWIG API */ #define SWIG_NewPointerObj(L, ptr, type, owner) SWIG_Lua_NewPointerObj(L, (void *)ptr, type, owner) #define SWIG_ConvertPtr(L,idx, ptr, type, flags) SWIG_Lua_ConvertPtr(L,idx,ptr,type,flags) #define SWIG_MustGetPtr(L,idx, type,flags, argnum,fnname) SWIG_Lua_MustGetPtr(L,idx, type,flags, argnum,fnname) /* for C++ member pointers, ie, member methods */ #define SWIG_ConvertMember(L, idx, ptr, sz, ty) SWIG_Lua_ConvertPacked(L, idx, ptr, sz, ty) #define SWIG_NewMemberObj(L, ptr, sz, type) SWIG_Lua_NewPackedObj(L, ptr, sz, type) /* Runtime API */ #define SWIG_GetModule(clientdata) SWIG_Lua_GetModule((lua_State*)(clientdata)) #define SWIG_SetModule(clientdata, pointer) SWIG_Lua_SetModule((lua_State*) (clientdata), pointer) #define SWIG_MODULE_CLIENTDATA_TYPE lua_State* /* Contract support */ #define SWIG_contract_assert(expr, msg) \ if (!(expr)) { SWIG_Lua_pusherrstring(L, (char *) msg); goto fail; } else /* helper #defines */ #define SWIG_fail {goto fail;} #define SWIG_fail_arg(func_name,argnum,type) \ {SWIG_Lua_pushferrstring(L,"Error in %s (arg %d), expected '%s' got '%s'",\ func_name,argnum,type,SWIG_Lua_typename(L,argnum));\ goto fail;} #define SWIG_fail_ptr(func_name,argnum,type) \ SWIG_fail_arg(func_name,argnum,(type && type->str)?type->str:"void*") #define SWIG_check_num_args(func_name,a,b) \ if (lua_gettop(L)b) \ {SWIG_Lua_pushferrstring(L,"Error in %s expected %d..%d args, got %d",func_name,a,b,lua_gettop(L));\ goto fail;} #define SWIG_Lua_get_table(L,n) \ (lua_pushstring(L, n), lua_rawget(L,-2)) #define SWIG_Lua_add_function(L,n,f) \ (lua_pushstring(L, n), \ lua_pushcfunction(L, f), \ lua_rawset(L,-3)) #define SWIG_Lua_add_boolean(L,n,b) \ (lua_pushstring(L, n), \ lua_pushboolean(L, b), \ lua_rawset(L,-3)) /* special helper for allowing 'nil' for usertypes */ #define SWIG_isptrtype(L,I) (lua_isuserdata(L,I) || lua_isnil(L,I)) #ifdef __cplusplus /* Special helper for member function pointers it gets the address, casts it, then dereferences it */ /*#define SWIG_mem_fn_as_voidptr(a) (*((char**)&(a))) */ #endif /* storing/access of swig_module_info */ SWIGRUNTIME swig_module_info * SWIG_Lua_GetModule(lua_State *L) { swig_module_info *ret = 0; lua_pushstring(L,"swig_runtime_data_type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME); lua_rawget(L,LUA_REGISTRYINDEX); if (lua_islightuserdata(L,-1)) ret=(swig_module_info*)lua_touserdata(L,-1); lua_pop(L,1); /* tidy */ return ret; } SWIGRUNTIME void SWIG_Lua_SetModule(lua_State *L, swig_module_info *module) { /* add this all into the Lua registry: */ lua_pushstring(L,"swig_runtime_data_type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME); lua_pushlightuserdata(L,(void*)module); lua_rawset(L,LUA_REGISTRYINDEX); } /* ----------------------------------------------------------------------------- * global variable support code: modules * ----------------------------------------------------------------------------- */ /* this function is called when trying to set an immutable. default action is to print an error. This can removed with a compile flag SWIGLUA_IGNORE_SET_IMMUTABLE */ SWIGINTERN int SWIG_Lua_set_immutable(lua_State *L) { /* there should be 1 param passed in: the new value */ #ifndef SWIGLUA_IGNORE_SET_IMMUTABLE lua_pop(L,1); /* remove it */ luaL_error(L,"This variable is immutable"); #endif return 0; /* should not return anything */ } #ifdef SWIG_LUA_ELUA_EMULATE SWIGRUNTIME void SWIG_Lua_NewPointerObj(lua_State *L,void *ptr,swig_type_info *type, int own); SWIGRUNTIME void SWIG_Lua_NewPackedObj(lua_State *L,void *ptr,size_t size,swig_type_info *type); static int swig_lua_elua_emulate_unique_key; /* This function emulates eLua rotables behaviour. It loads a rotable definition into the usual lua table. */ SWIGINTERN void SWIG_Lua_elua_emulate_register(lua_State *L, const swig_elua_entry *table) { int i, table_parsed, parsed_tables_array, target_table; assert(lua_istable(L,-1)); target_table = lua_gettop(L); /* Get the registry where we put all parsed tables to avoid loops */ lua_rawgetp(L, LUA_REGISTRYINDEX, &swig_lua_elua_emulate_unique_key); if(lua_isnil(L,-1)) { lua_pop(L,1); lua_newtable(L); lua_pushvalue(L,-1); lua_rawsetp(L,LUA_REGISTRYINDEX,(void*)(&swig_lua_elua_emulate_unique_key)); } parsed_tables_array = lua_gettop(L); lua_pushvalue(L,target_table); lua_rawsetp(L, parsed_tables_array, table); table_parsed = 0; const int SWIGUNUSED pairs_start = lua_gettop(L); for(i = 0;table[i].key.type != LUA_TNIL || table[i].value.type != LUA_TNIL;i++) { const swig_elua_entry *entry = table + i; int is_metatable = 0; switch(entry->key.type) { case LUA_TSTRING: lua_pushstring(L,entry->key.key.strkey); if(strcmp(entry->key.key.strkey, SWIG_LUA_ELUA_EMUL_METATABLE_KEY) == 0) is_metatable = 1; break; case LUA_TNUMBER: lua_pushnumber(L,entry->key.key.numkey); break; case LUA_TNIL: lua_pushnil(L); break; default: assert(0); } switch(entry->value.type) { case LUA_TSTRING: lua_pushstring(L,entry->value.value.string); break; case LUA_TNUMBER: lua_pushnumber(L,entry->value.value.number); break; case LUA_TFUNCTION: lua_pushcfunction(L,entry->value.value.function); break; case LUA_TTABLE: lua_rawgetp(L,parsed_tables_array, entry->value.value.table); table_parsed = !lua_isnil(L,-1); if(!table_parsed) { lua_pop(L,1); /*remove nil */ lua_newtable(L); SWIG_Lua_elua_emulate_register(L,entry->value.value.table); } if(is_metatable) { assert(lua_istable(L,-1)); lua_pushvalue(L,-1); lua_setmetatable(L,target_table); } break; case LUA_TUSERDATA: if(entry->value.value.userdata.member) SWIG_NewMemberObj(L,entry->value.value.userdata.pvalue, entry->value.value.userdata.lvalue, *(entry->value.value.userdata.ptype)); else SWIG_NewPointerObj(L,entry->value.value.userdata.pvalue, *(entry->value.value.userdata.ptype),0); break; case LUA_TNIL: lua_pushnil(L); break; default: assert(0); } assert(lua_gettop(L) == pairs_start + 2); lua_rawset(L,target_table); } lua_pop(L,1); /* Removing parsed tables storage */ assert(lua_gettop(L) == target_table); } SWIGINTERN void SWIG_Lua_elua_emulate_register_clear(lua_State *L) { lua_pushnil(L); lua_rawsetp(L, LUA_REGISTRYINDEX, &swig_lua_elua_emulate_unique_key); } SWIGINTERN void SWIG_Lua_get_class_registry(lua_State *L); SWIGINTERN int SWIG_Lua_emulate_elua_getmetatable(lua_State *L) { SWIG_check_num_args("getmetatable(SWIG eLua emulation)", 1, 1); SWIG_Lua_get_class_registry(L); lua_getfield(L,-1,"lua_getmetatable"); lua_remove(L,-2); /* remove the registry*/ assert(!lua_isnil(L,-1)); lua_pushvalue(L,1); assert(lua_gettop(L) == 3); /* object | function | object again */ lua_call(L,1,1); if(!lua_isnil(L,-1)) /*There is an ordinary metatable */ return 1; /*if it is a table, then emulate elua behaviour - check for __metatable attribute of a table*/ assert(lua_gettop(L) == 2); if(lua_istable(L,-2)) { lua_pop(L,1); /*remove the nil*/ lua_getfield(L,-1, SWIG_LUA_ELUA_EMUL_METATABLE_KEY); } assert(lua_gettop(L) == 2); return 1; fail: lua_error(L); return 0; } SWIGINTERN void SWIG_Lua_emulate_elua_swap_getmetatable(lua_State *L) { SWIG_Lua_get_class_registry(L); lua_pushglobaltable(L); lua_pushstring(L,"lua_getmetatable"); lua_getfield(L,-2,"getmetatable"); assert(!lua_isnil(L,-1)); lua_rawset(L,-4); lua_pushstring(L, "getmetatable"); lua_pushcfunction(L, SWIG_Lua_emulate_elua_getmetatable); lua_rawset(L,-3); lua_pop(L,2); } /* END OF REMOVE */ #endif /* ----------------------------------------------------------------------------- * global variable support code: namespaces and modules (which are the same thing) * ----------------------------------------------------------------------------- */ SWIGINTERN int SWIG_Lua_namespace_get(lua_State *L) { /* there should be 2 params passed in (1) table (not the meta table) (2) string name of the attribute */ assert(lua_istable(L,-2)); /* just in case */ lua_getmetatable(L,-2); assert(lua_istable(L,-1)); SWIG_Lua_get_table(L,".get"); /* find the .get table */ assert(lua_istable(L,-1)); /* look for the key in the .get table */ lua_pushvalue(L,2); /* key */ lua_rawget(L,-2); lua_remove(L,-2); /* stack tidy, remove .get table */ if (lua_iscfunction(L,-1)) { /* found it so call the fn & return its value */ lua_call(L,0,1); /* 1 value in (userdata),1 out (result) */ lua_remove(L,-2); /* stack tidy, remove metatable */ return 1; } lua_pop(L,1); /* remove whatever was there */ /* ok, so try the .fn table */ SWIG_Lua_get_table(L,".fn"); /* find the .get table */ assert(lua_istable(L,-1)); /* just in case */ lua_pushvalue(L,2); /* key */ lua_rawget(L,-2); /* look for the fn */ lua_remove(L,-2); /* stack tidy, remove .fn table */ if (lua_isfunction(L,-1)) /* note: whether it's a C function or lua function */ { /* found it so return the fn & let lua call it */ lua_remove(L,-2); /* stack tidy, remove metatable */ return 1; } lua_pop(L,1); /* remove whatever was there */ return 0; } SWIGINTERN int SWIG_Lua_namespace_set(lua_State *L) { /* there should be 3 params passed in (1) table (not the meta table) (2) string name of the attribute (3) any for the new value */ assert(lua_istable(L,1)); lua_getmetatable(L,1); /* get the meta table */ assert(lua_istable(L,-1)); SWIG_Lua_get_table(L,".set"); /* find the .set table */ if (lua_istable(L,-1)) { /* look for the key in the .set table */ lua_pushvalue(L,2); /* key */ lua_rawget(L,-2); if (lua_iscfunction(L,-1)) { /* found it so call the fn & return its value */ lua_pushvalue(L,3); /* value */ lua_call(L,1,0); return 0; } lua_pop(L,1); /* remove the value */ } lua_pop(L,1); /* remove the value .set table */ lua_pop(L,1); /* remote metatable */ lua_rawset(L,-3); return 0; } #if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_LUA) /* In elua this is useless */ SWIGINTERN void SWIG_Lua_InstallConstants(lua_State *L, swig_lua_const_info constants[]); /* forward declaration */ SWIGINTERN void SWIG_Lua_add_variable(lua_State *L,const char *name,lua_CFunction getFn,lua_CFunction setFn); /* forward declaration */ SWIGINTERN void SWIG_Lua_class_register(lua_State *L,swig_lua_class *clss); /* helper function - register namespace methods and attributes into namespace */ SWIGINTERN int SWIG_Lua_add_namespace_details(lua_State *L, swig_lua_namespace *ns) { int i; /* There must be namespace table (not metatable) at the top of the stack */ assert(lua_istable(L,-1)); SWIG_Lua_InstallConstants(L, ns->ns_constants); /* add methods to the namespace/module table */ for(i=0;ns->ns_methods[i].name;i++){ SWIG_Lua_add_function(L,ns->ns_methods[i].name,ns->ns_methods[i].func); } lua_getmetatable(L,-1); /* add fns */ for(i=0;ns->ns_attributes[i].name;i++){ SWIG_Lua_add_variable(L,ns->ns_attributes[i].name,ns->ns_attributes[i].getmethod,ns->ns_attributes[i].setmethod); } /* clear stack - remove metatble */ lua_pop(L,1); return 0; } /* Register all classes in the namespace */ SWIGINTERN void SWIG_Lua_add_namespace_classes(lua_State *L, swig_lua_namespace *ns) { swig_lua_class **classes; /* There must be a module/namespace table at the top of the stack */ assert(lua_istable(L,-1)); classes = ns->ns_classes; if( classes != 0 ) { while(*classes != 0) { SWIG_Lua_class_register(L, *classes); classes++; } } } /* Helper function. Creates namespace table and adds it to module table if 'reg' is true, then will register namespace table to parent one (must be on top of the stack when function is called). Function always returns newly registered table on top of the stack. */ SWIGINTERN void SWIG_Lua_namespace_register(lua_State *L, swig_lua_namespace *ns, int reg) { swig_lua_namespace **sub_namespace; /* 1 argument - table on the top of the stack */ const int SWIGUNUSED begin = lua_gettop(L); assert(lua_istable(L,-1)); /* just in case. This is supposed to be module table or parent namespace table */ lua_checkstack(L,5); lua_newtable(L); /* namespace itself */ lua_newtable(L); /* metatable for namespace */ /* add a table called ".get" */ lua_pushstring(L,".get"); lua_newtable(L); lua_rawset(L,-3); /* add a table called ".set" */ lua_pushstring(L,".set"); lua_newtable(L); lua_rawset(L,-3); /* add a table called ".fn" */ lua_pushstring(L,".fn"); lua_newtable(L); lua_rawset(L,-3); /* add accessor fns for using the .get,.set&.fn */ SWIG_Lua_add_function(L,"__index",SWIG_Lua_namespace_get); SWIG_Lua_add_function(L,"__newindex",SWIG_Lua_namespace_set); lua_setmetatable(L,-2); /* set metatable */ /* Register all functions, variables etc */ SWIG_Lua_add_namespace_details(L,ns); /* Register classes */ SWIG_Lua_add_namespace_classes(L,ns); sub_namespace = ns->ns_namespaces; if( sub_namespace != 0) { while(*sub_namespace != 0) { SWIG_Lua_namespace_register(L, *sub_namespace, 1); lua_pop(L,1); /* removing sub-namespace table */ sub_namespace++; } } if (reg) { lua_pushstring(L,ns->name); lua_pushvalue(L,-2); lua_rawset(L,-4); /* add namespace to module table */ } assert(lua_gettop(L) == begin+1); } #endif /* SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_LUA */ /* ----------------------------------------------------------------------------- * global variable support code: classes * ----------------------------------------------------------------------------- */ SWIGINTERN void SWIG_Lua_get_class_metatable(lua_State *L,const char *cname); typedef int (*swig_lua_base_iterator_func)(lua_State*,swig_type_info*, int, int *ret); SWIGINTERN int SWIG_Lua_iterate_bases(lua_State *L, swig_type_info * SWIGUNUSED swig_type, int first_arg, swig_lua_base_iterator_func func, int *const ret) { /* first_arg - position of the object in stack. Everything that is above are arguments * and is passed to every evocation of the func */ int last_arg = lua_gettop(L);/* position of last argument */ int original_metatable = last_arg + 1; size_t bases_count; int result = SWIG_ERROR; int bases_table; (void)swig_type; lua_getmetatable(L,first_arg); /* initialise base search */ #if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_LUA) SWIG_Lua_get_table(L,".bases"); assert(lua_istable(L,-1)); bases_count = lua_rawlen(L,-1); bases_table = lua_gettop(L); #else /* In elua .bases table doesn't exist. Use table from swig_lua_class */ (void)bases_table; assert(swig_type!=0); swig_module_info *module=SWIG_GetModule(L); swig_lua_class **bases= ((swig_lua_class*)(swig_type->clientdata))->bases; const char **base_names= ((swig_lua_class*)(swig_type->clientdata))->base_names; bases_count = 0; for(;base_names[bases_count]; bases_count++);/* get length of bases */ #endif if(ret) *ret = 0; if(bases_count>0) { int to_remove; size_t i; int j; int subcall_last_arg; int subcall_first_arg = lua_gettop(L) + 1;/* Here a copy of first_arg and arguments begin */ int valid = 1; swig_type_info *base_swig_type = 0; for(j=first_arg;j<=last_arg;j++) lua_pushvalue(L,j); subcall_last_arg = lua_gettop(L); /* Trick: temporarily replacing original metatable with metatable for base class and call getter */ for(i=0;ifqname); base_swig_type = SWIG_TypeQueryModule(module,module,base_names[i]); assert(base_swig_type != 0); } #endif if(!valid) continue; assert(lua_isuserdata(L, subcall_first_arg)); assert(lua_istable(L,-1)); lua_setmetatable(L,subcall_first_arg); /* Set new metatable */ assert(lua_gettop(L) == subcall_last_arg); result = func(L, base_swig_type,subcall_first_arg, ret); /* Forward call */ if(result != SWIG_ERROR) { break; } } /* Restore original metatable */ lua_pushvalue(L,original_metatable); lua_setmetatable(L,first_arg); /* Clear - remove everything between last_arg and subcall_last_arg including */ to_remove = subcall_last_arg - last_arg; for(j=0;jtype; result = SWIG_Lua_class_do_get(L,type,1,&ret); if(result == SWIG_OK) return ret; result = SWIG_Lua_class_do_get_item(L,type,1,&ret); if(result == SWIG_OK) return ret; return 0; } /* helper for the class.set method, performs the lookup of class attributes * It returns error code. Number of function return values is passed inside 'ret' */ SWIGINTERN int SWIG_Lua_class_do_set(lua_State *L, swig_type_info *type, int first_arg, int *ret) { /* there should be 3 params passed in (1) table (not the meta table) (2) string name of the attribute (3) any for the new value */ int bases_search_result; int substack_start = lua_gettop(L) - 3; lua_checkstack(L,5); assert(lua_isuserdata(L,substack_start+1)); /* just in case */ lua_getmetatable(L,substack_start+1); /* get the meta table */ assert(lua_istable(L,-1)); /* just in case */ if(ret) *ret = 0; /* it is setter - number of return values is always 0 */ SWIG_Lua_get_table(L,".set"); /* find the .set table */ if (lua_istable(L,-1)) { /* look for the key in the .set table */ lua_pushvalue(L,substack_start+2); /* key */ lua_rawget(L,-2); lua_remove(L,-2); /* tidy stack, remove .set table */ if (lua_iscfunction(L,-1)) { /* found it so call the fn & return its value */ lua_pushvalue(L,substack_start+1); /* userdata */ lua_pushvalue(L,substack_start+3); /* value */ lua_call(L,2,0); lua_remove(L,substack_start+4); /*remove metatable*/ return SWIG_OK; } lua_pop(L,1); /* remove the value */ } else { lua_pop(L,1); /* remove the answer for .set table request*/ } /* NEW: looks for the __setitem() fn this is a user provided set fn */ SWIG_Lua_get_table(L,"__setitem"); /* find the fn */ if (lua_iscfunction(L,-1)) /* if its there */ { /* found it so call the fn & return its value */ lua_pushvalue(L,substack_start+1); /* the userdata */ lua_pushvalue(L,substack_start+2); /* the parameter */ lua_pushvalue(L,substack_start+3); /* the value */ lua_call(L,3,0); /* 3 values in ,0 out */ lua_remove(L,-2); /* stack tidy, remove metatable */ return SWIG_OK; } lua_pop(L,1); /* remove value */ lua_pop(L,1); /* remove metatable */ /* Search among bases */ bases_search_result = SWIG_Lua_iterate_bases(L,type,first_arg,SWIG_Lua_class_do_set,ret); if(ret) assert(*ret == 0); assert(lua_gettop(L) == substack_start + 3); return bases_search_result; } /* This is the actual method exported to Lua. It calls SWIG_Lua_class_do_set and correctly * handles return values. */ SWIGINTERN int SWIG_Lua_class_set(lua_State *L) { /* There should be 3 params passed in (1) table (not the meta table) (2) string name of the attribute (3) any for the new value */ int ret = 0; int result; swig_lua_userdata *usr; swig_type_info *type; assert(lua_isuserdata(L,1)); usr=(swig_lua_userdata*)lua_touserdata(L,1); /* get data */ type = usr->type; result = SWIG_Lua_class_do_set(L,type,1,&ret); if(result != SWIG_OK) { SWIG_Lua_pushferrstring(L,"Assignment not possible. No setter/member with this name. For custom assignments implement __setitem method."); lua_error(L); } else { assert(ret==0); } return 0; } /* the class.destruct method called by the interpreter */ SWIGINTERN int SWIG_Lua_class_destruct(lua_State *L) { /* there should be 1 params passed in (1) userdata (not the meta table) */ swig_lua_userdata *usr; swig_lua_class *clss; assert(lua_isuserdata(L,-1)); /* just in case */ usr=(swig_lua_userdata*)lua_touserdata(L,-1); /* get it */ /* if must be destroyed & has a destructor */ if (usr->own) /* if must be destroyed */ { clss=(swig_lua_class*)usr->type->clientdata; /* get the class */ if (clss && clss->destructor) /* there is a destroy fn */ { clss->destructor(usr->ptr); /* bye bye */ } } return 0; } /* the class.__tostring method called by the interpreter and print */ SWIGINTERN int SWIG_Lua_class_tostring(lua_State *L) { /* there should be 1 param passed in (1) userdata (not the metatable) */ swig_lua_userdata* userData; assert(lua_isuserdata(L,1)); /* just in case */ userData = (swig_lua_userdata*)lua_touserdata(L,1); /* get the userdata address */ lua_pushfstring(L, "", userData->type->str, userData->ptr); return 1; } /* to manually disown some userdata */ SWIGINTERN int SWIG_Lua_class_disown(lua_State *L) { /* there should be 1 params passed in (1) userdata (not the meta table) */ swig_lua_userdata *usr; assert(lua_isuserdata(L,-1)); /* just in case */ usr=(swig_lua_userdata*)lua_touserdata(L,-1); /* get it */ usr->own = 0; /* clear our ownership */ return 0; } /* lua callable function to compare userdata's value the issue is that two userdata may point to the same thing but to lua, they are different objects */ SWIGRUNTIME int SWIG_Lua_class_equal(lua_State *L) { int result; swig_lua_userdata *usr1,*usr2; if (!lua_isuserdata(L,1) || !lua_isuserdata(L,2)) /* just in case */ return 0; /* nil reply */ usr1=(swig_lua_userdata*)lua_touserdata(L,1); /* get data */ usr2=(swig_lua_userdata*)lua_touserdata(L,2); /* get data */ /*result=(usr1->ptr==usr2->ptr && usr1->type==usr2->type); only works if type is the same*/ result=(usr1->ptr==usr2->ptr); lua_pushboolean(L,result); return 1; } /* populate table at the top of the stack with metamethods that ought to be inherited */ SWIGINTERN void SWIG_Lua_populate_inheritable_metamethods(lua_State *L) { SWIG_Lua_add_boolean(L, "__add", 1); SWIG_Lua_add_boolean(L, "__sub", 1); SWIG_Lua_add_boolean(L, "__mul", 1); SWIG_Lua_add_boolean(L, "__div", 1); SWIG_Lua_add_boolean(L, "__mod", 1); SWIG_Lua_add_boolean(L, "__pow", 1); SWIG_Lua_add_boolean(L, "__unm", 1); SWIG_Lua_add_boolean(L, "__len", 1 ); SWIG_Lua_add_boolean(L, "__concat", 1 ); SWIG_Lua_add_boolean(L, "__eq", 1); SWIG_Lua_add_boolean(L, "__lt", 1); SWIG_Lua_add_boolean(L, "__le", 1); SWIG_Lua_add_boolean(L, "__call", 1); SWIG_Lua_add_boolean(L, "__tostring", 1); SWIG_Lua_add_boolean(L, "__gc", 0); } /* creates the swig registry */ SWIGINTERN void SWIG_Lua_create_class_registry(lua_State *L) { /* create main SWIG registry table */ lua_pushstring(L,"SWIG"); lua_newtable(L); /* populate it with some predefined data */ /* .library table. Placeholder */ lua_pushstring(L,".library"); lua_newtable(L); { /* list of metamethods that class inherits from its bases */ lua_pushstring(L,"inheritable_metamethods"); lua_newtable(L); /* populate with list of metamethods */ SWIG_Lua_populate_inheritable_metamethods(L); lua_rawset(L,-3); } lua_rawset(L,-3); lua_rawset(L,LUA_REGISTRYINDEX); } /* gets the swig registry (or creates it) */ SWIGINTERN void SWIG_Lua_get_class_registry(lua_State *L) { /* add this all into the swig registry: */ lua_pushstring(L,"SWIG"); lua_rawget(L,LUA_REGISTRYINDEX); /* get the registry */ if (!lua_istable(L,-1)) /* not there */ { /* must be first time, so add it */ lua_pop(L,1); /* remove the result */ SWIG_Lua_create_class_registry(L); /* then get it */ lua_pushstring(L,"SWIG"); lua_rawget(L,LUA_REGISTRYINDEX); } } SWIGINTERN void SWIG_Lua_get_inheritable_metamethods(lua_State *L) { SWIG_Lua_get_class_registry(L); lua_pushstring(L, ".library"); lua_rawget(L,-2); assert( !lua_isnil(L,-1) ); lua_pushstring(L, "inheritable_metamethods"); lua_rawget(L,-2); /* Remove class registry and library table */ lua_remove(L,-2); lua_remove(L,-2); } /* Helper function to get the classes metatable from the register */ SWIGINTERN void SWIG_Lua_get_class_metatable(lua_State *L,const char *cname) { SWIG_Lua_get_class_registry(L); /* get the registry */ lua_pushstring(L,cname); /* get the name */ lua_rawget(L,-2); /* get it */ lua_remove(L,-2); /* tidy up (remove registry) */ } /* Set up the base classes pointers. Each class structure has a list of pointers to the base class structures. This function fills them. It cannot be done at compile time, as this will not work with hireachies spread over more than one swig file. Therefore it must be done at runtime, querying the SWIG type system. */ SWIGINTERN void SWIG_Lua_init_base_class(lua_State *L,swig_lua_class *clss) { int i=0; swig_module_info *module=SWIG_GetModule(L); for(i=0;clss->base_names[i];i++) { if (clss->bases[i]==0) /* not found yet */ { /* lookup and cache the base class */ swig_type_info *info = SWIG_TypeQueryModule(module,module,clss->base_names[i]); if (info) clss->bases[i] = (swig_lua_class *) info->clientdata; } } } #if defined(SWIG_LUA_SQUASH_BASES) && (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_LUA) /* Merges two tables */ SWIGINTERN void SWIG_Lua_merge_tables_by_index(lua_State *L, int target, int source) { /* iterating */ lua_pushnil(L); while (lua_next(L,source) != 0) { /* -1 - value, -2 - index */ /* have to copy to assign */ lua_pushvalue(L,-2); /* copy of index */ lua_pushvalue(L,-2); /* copy of value */ lua_rawset(L, target); lua_pop(L,1); /* only key is left */ } } /* Merges two tables with given name. original - index of target metatable, base - index of source metatable */ SWIGINTERN void SWIG_Lua_merge_tables(lua_State *L, const char* name, int original, int base) { /* push original[name], then base[name] */ lua_pushstring(L,name); lua_rawget(L,original); int original_table = lua_gettop(L); lua_pushstring(L,name); lua_rawget(L,base); int base_table = lua_gettop(L); SWIG_Lua_merge_tables_by_index(L, original_table, base_table); /* clearing stack */ lua_pop(L,2); } /* Function takes all symbols from base and adds it to derived class. It's just a helper. */ SWIGINTERN void SWIG_Lua_class_squash_base(lua_State *L, swig_lua_class *base_cls) { /* There is one parameter - original, i.e. 'derived' class metatable */ assert(lua_istable(L,-1)); int original = lua_gettop(L); SWIG_Lua_get_class_metatable(L,base_cls->fqname); int base = lua_gettop(L); SWIG_Lua_merge_tables(L, ".fn", original, base ); SWIG_Lua_merge_tables(L, ".set", original, base ); SWIG_Lua_merge_tables(L, ".get", original, base ); lua_pop(L,1); } /* Function squashes all symbols from 'clss' bases into itself */ SWIGINTERN void SWIG_Lua_class_squash_bases(lua_State *L, swig_lua_class *clss) { int i; SWIG_Lua_get_class_metatable(L,clss->fqname); for(i=0;clss->base_names[i];i++) { if (clss->bases[i]==0) /* Somehow it's not found. Skip it */ continue; /* Thing is: all bases are already registered. Thus they have already executed * this function. So we just need to squash them into us, because their bases * are already squashed into them. No need for recursion here! */ SWIG_Lua_class_squash_base(L, clss->bases[i]); } lua_pop(L,1); /*tidy stack*/ } #endif #if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_LUA) /* In elua this is useless */ /* helper add a variable to a registered class */ SWIGINTERN void SWIG_Lua_add_variable(lua_State *L,const char *name,lua_CFunction getFn,lua_CFunction setFn) { assert(lua_istable(L,-1)); /* just in case */ SWIG_Lua_get_table(L,".get"); /* find the .get table */ assert(lua_istable(L,-1)); /* just in case */ SWIG_Lua_add_function(L,name,getFn); lua_pop(L,1); /* tidy stack (remove table) */ if (setFn) { SWIG_Lua_get_table(L,".set"); /* find the .set table */ assert(lua_istable(L,-1)); /* just in case */ SWIG_Lua_add_function(L,name,setFn); lua_pop(L,1); /* tidy stack (remove table) */ } } /* helper to recursively add class static details (static attributes, operations and constants) */ SWIGINTERN void SWIG_Lua_add_class_static_details(lua_State *L, swig_lua_class *clss) { int i = 0; /* The class namespace table must be on the top of the stack */ assert(lua_istable(L,-1)); /* call all the base classes first: we can then override these later: */ for(i=0;clss->bases[i];i++) { SWIG_Lua_add_class_static_details(L,clss->bases[i]); } SWIG_Lua_add_namespace_details(L, clss->cls_static); } SWIGINTERN void SWIG_Lua_add_class_user_metamethods(lua_State *L, swig_lua_class *clss); /* forward declaration */ /* helper to recursively add class details (attributes & operations) */ SWIGINTERN void SWIG_Lua_add_class_instance_details(lua_State *L, swig_lua_class *clss) { int i; size_t bases_count = 0; /* Add bases to .bases table */ SWIG_Lua_get_table(L,".bases"); assert(lua_istable(L,-1)); /* just in case */ for(i=0;clss->bases[i];i++) { SWIG_Lua_get_class_metatable(L,clss->bases[i]->fqname); /* Base class must be already registered */ assert(lua_istable(L,-1)); lua_rawseti(L,-2,i+1); /* In lua indexing starts from 1 */ bases_count++; } assert(lua_rawlen(L,-1) == bases_count); lua_pop(L,1); /* remove .bases table */ /* add attributes */ for(i=0;clss->attributes[i].name;i++){ SWIG_Lua_add_variable(L,clss->attributes[i].name,clss->attributes[i].getmethod,clss->attributes[i].setmethod); } /* add methods to the metatable */ SWIG_Lua_get_table(L,".fn"); /* find the .fn table */ assert(lua_istable(L,-1)); /* just in case */ for(i=0;clss->methods[i].name;i++){ SWIG_Lua_add_function(L,clss->methods[i].name,clss->methods[i].func); } lua_pop(L,1); /* tidy stack (remove table) */ /* add operator overloads This adds methods from metatable array to metatable. Can mess up garbage collectind if someone defines __gc method */ if(clss->metatable) { for(i=0;clss->metatable[i].name;i++) { SWIG_Lua_add_function(L,clss->metatable[i].name,clss->metatable[i].func); } } #if !defined(SWIG_LUA_SQUASH_BASES) /* Adding metamethods that are defined in base classes. If bases were squashed * then it is obviously unnecessary */ SWIG_Lua_add_class_user_metamethods(L, clss); #endif } /* Helpers to add user defined class metamedhods - __add, __sub etc. The helpers are needed for the following issue: Lua runtime checks for metamethod existence with rawget function ignoring our SWIG-provided __index and __newindex functions. Thus our inheritance-aware method search algorithm doesn't work in such case. (Not to say that Lua runtime queries metamethod directly in metatable and not in object). Current solution is this: if somewhere in hierarchy metamethod __x is defined, then all descendants are automatically given a special proxy __x that calls the real __x method. Obvious idea - to copy __x instead of creating __x-proxy is wrong because if someone changes __x in runtime, those changes must be reflected in all descendants. */ SWIGRUNTIME int SWIG_Lua_resolve_metamethod(lua_State *L); /*forward declaration*/ /* The real function that resolves a metamethod. * Function searches given class and all it's bases(recursively) for first instance of something that is * not equal to SWIG_Lua_resolve_metatmethod. (Almost always this 'something' is actual metamethod implementation * and it is a SWIG-generated C function.). It returns value on the top of the L and there is no garbage below the * answer. * Returns 1 if found, 0 otherwise. * clss is class which metatable we will search for method * metamethod_name_idx is index in L where metamethod name (as string) lies * skip_check allows to skip searching metamethod in givel clss and immideatelly go to searching in bases. skip_check * is not caried to subsequent recursive calls - false is always passed. It is set to true only at first call from * SWIG_Lua_resolve_metamethod * */ SWIGINTERN int SWIG_Lua_do_resolve_metamethod(lua_State *L, const swig_lua_class *clss, int metamethod_name_idx, int skip_check) { /* This function is called recursively */ int result = 0; int i = 0; if (!skip_check) { SWIG_Lua_get_class_metatable(L, clss->fqname); lua_pushvalue(L, metamethod_name_idx); lua_rawget(L,-2); /* If this is cfunction and it is equal to SWIG_Lua_resolve_metamethod then * this isn't the function we are looking for :) * lua_tocfunction will return NULL if not cfunction */ if (!lua_isnil(L,-1) && lua_tocfunction(L,-1) != SWIG_Lua_resolve_metamethod ) { lua_remove(L,-2); /* removing class metatable */ return 1; } lua_pop(L,2); /* remove class metatable and query result */ } /* Forwarding calls to bases */ for(i=0;clss->bases[i];i++) { result = SWIG_Lua_do_resolve_metamethod(L, clss->bases[i], metamethod_name_idx, 0); if (result) break; } return result; } /* The proxy function for metamethod. All parameters are passed as cclosure. Searches for actual method * and calls it */ SWIGRUNTIME int SWIG_Lua_resolve_metamethod(lua_State *L) { int numargs; int metamethod_name_idx; const swig_lua_class* clss; int result; lua_checkstack(L,5); numargs = lua_gettop(L); /* number of arguments to pass to actual metamethod */ /* Get upvalues from closure */ lua_pushvalue(L, lua_upvalueindex(1)); /*Get function name*/ metamethod_name_idx = lua_gettop(L); lua_pushvalue(L, lua_upvalueindex(2)); clss = (const swig_lua_class*)(lua_touserdata(L,-1)); lua_pop(L,1); /* remove lightuserdata with clss from stack */ /* Actual work */ result = SWIG_Lua_do_resolve_metamethod(L, clss, metamethod_name_idx, 1); if (!result) { SWIG_Lua_pushferrstring(L,"The metamethod proxy is set, but it failed to find actual metamethod. Memory corruption is most likely explanation."); lua_error(L); return 0; } lua_remove(L,-2); /* remove metamethod key */ lua_insert(L,1); /* move function to correct position */ lua_call(L, numargs, LUA_MULTRET); return lua_gettop(L); /* return all results */ } /* If given metamethod must be present in given class, then creates appropriate proxy * Returns 1 if successfully added, 0 if not added because no base class has it, -1 * if method is defined in the class metatable itself */ SWIGINTERN int SWIG_Lua_add_class_user_metamethod(lua_State *L, swig_lua_class *clss, const int metatable_index) { int key_index; int success = 0; int i = 0; /* metamethod name - on the top of the stack */ assert(lua_isstring(L,-1)); key_index = lua_gettop(L); /* Check whether method is already defined in metatable */ lua_pushvalue(L,key_index); /* copy of the key */ lua_gettable(L,metatable_index); if( !lua_isnil(L,-1) ) { lua_pop(L,1); return -1; } lua_pop(L,1); /* Iterating over immediate bases */ for(i=0;clss->bases[i];i++) { const swig_lua_class *base = clss->bases[i]; SWIG_Lua_get_class_metatable(L, base->fqname); lua_pushvalue(L, key_index); lua_rawget(L, -2); if( !lua_isnil(L,-1) ) { lua_pushvalue(L, key_index); /* Add proxy function */ lua_pushvalue(L, key_index); /* first closure value is function name */ lua_pushlightuserdata(L, clss); /* second closure value is swig_lua_class structure */ lua_pushcclosure(L, SWIG_Lua_resolve_metamethod, 2); lua_rawset(L, metatable_index); success = 1; } lua_pop(L,1); /* remove function or nil */ lua_pop(L,1); /* remove base class metatable */ if( success ) break; } return success; } SWIGINTERN void SWIG_Lua_add_class_user_metamethods(lua_State *L, swig_lua_class *clss) { int metatable_index; int metamethods_info_index; int tostring_undefined; int eq_undefined = 0; SWIG_Lua_get_class_metatable(L, clss->fqname); metatable_index = lua_gettop(L); SWIG_Lua_get_inheritable_metamethods(L); assert(lua_istable(L,-1)); metamethods_info_index = lua_gettop(L); lua_pushnil(L); /* first key */ while(lua_next(L, metamethods_info_index) != 0 ) { /* key at index -2, value at index -1 */ const int is_inheritable = lua_toboolean(L,-2); lua_pop(L,1); /* remove value - we don't need it anymore */ if(is_inheritable) { /* if metamethod is inheritable */ SWIG_Lua_add_class_user_metamethod(L,clss,metatable_index); } } lua_pop(L,1); /* remove inheritable metatmethods table */ /* Special handling for __tostring method */ lua_pushstring(L, "__tostring"); lua_pushvalue(L,-1); lua_rawget(L,metatable_index); tostring_undefined = lua_isnil(L,-1); lua_pop(L,1); if( tostring_undefined ) { lua_pushcfunction(L, SWIG_Lua_class_tostring); lua_rawset(L, metatable_index); } else { lua_pop(L,1); /* remove copy of the key */ } /* Special handling for __eq method */ lua_pushstring(L, "__eq"); lua_pushvalue(L,-1); lua_rawget(L,metatable_index); eq_undefined = lua_isnil(L,-1); lua_pop(L,1); if( eq_undefined ) { lua_pushcfunction(L, SWIG_Lua_class_equal); lua_rawset(L, metatable_index); } else { lua_pop(L,1); /* remove copy of the key */ } /* Warning: __index and __newindex are SWIG-defined. For user-defined operator[] * a __getitem/__setitem method should be defined */ lua_pop(L,1); /* pop class metatable */ } /* Register class static methods,attributes etc as well as constructor proxy */ SWIGINTERN void SWIG_Lua_class_register_static(lua_State *L, swig_lua_class *clss) { const int SWIGUNUSED begin = lua_gettop(L); lua_checkstack(L,5); /* just in case */ assert(lua_istable(L,-1)); /* just in case */ assert(strcmp(clss->name, clss->cls_static->name) == 0); /* in class those 2 must be equal */ SWIG_Lua_namespace_register(L,clss->cls_static, 1); assert(lua_istable(L,-1)); /* just in case */ /* add its constructor to module with the name of the class so you can do MyClass(...) as well as new_MyClass(...) BUT only if a constructor is defined (this overcomes the problem of pure virtual classes without constructors)*/ if (clss->constructor) { lua_getmetatable(L,-1); assert(lua_istable(L,-1)); /* just in case */ SWIG_Lua_add_function(L,"__call", clss->constructor); lua_pop(L,1); } assert(lua_istable(L,-1)); /* just in case */ SWIG_Lua_add_class_static_details(L, clss); /* clear stack */ lua_pop(L,1); assert( lua_gettop(L) == begin ); } /* Performs the instance (non-static) class registration process. Metatable for class is created * and added to the class registry. */ SWIGINTERN void SWIG_Lua_class_register_instance(lua_State *L,swig_lua_class *clss) { const int SWIGUNUSED begin = lua_gettop(L); int i; /* if name already there (class is already registered) then do nothing */ SWIG_Lua_get_class_registry(L); /* get the registry */ lua_pushstring(L,clss->fqname); /* get the name */ lua_rawget(L,-2); if(!lua_isnil(L,-1)) { lua_pop(L,2); assert(lua_gettop(L)==begin); return; } lua_pop(L,2); /* tidy stack */ /* Recursively initialize all bases */ for(i=0;clss->bases[i];i++) { SWIG_Lua_class_register_instance(L,clss->bases[i]); } /* Again, get registry and push name */ SWIG_Lua_get_class_registry(L); /* get the registry */ lua_pushstring(L,clss->fqname); /* get the name */ lua_newtable(L); /* create the metatable */ #if defined(SWIG_LUA_SQUASH_BASES) && (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_LUA) /* If squashing is requested, then merges all bases metatable into this one. * It would get us all special methods: __getitem, __add etc. * This would set .fn, .type, and other .xxx incorrectly, but we will overwrite it right away */ { int new_metatable_index = lua_absindex(L,-1); for(i=0;clss->bases[i];i++) { int base_metatable; SWIG_Lua_get_class_metatable(L,clss->bases[i]->fqname); base_metatable = lua_absindex(L,-1); SWIG_Lua_merge_tables_by_index(L,new_metatable_index, base_metatable); lua_pop(L,1); } } /* And now we will overwrite all incorrectly set data */ #endif /* add string of class name called ".type" */ lua_pushstring(L,".type"); lua_pushstring(L,clss->fqname); lua_rawset(L,-3); /* add a table called bases */ lua_pushstring(L,".bases"); lua_newtable(L); lua_rawset(L,-3); /* add a table called ".get" */ lua_pushstring(L,".get"); lua_newtable(L); lua_rawset(L,-3); /* add a table called ".set" */ lua_pushstring(L,".set"); lua_newtable(L); lua_rawset(L,-3); /* add a table called ".fn" */ lua_pushstring(L,".fn"); lua_newtable(L); /* add manual disown method */ SWIG_Lua_add_function(L,"__disown",SWIG_Lua_class_disown); lua_rawset(L,-3); /* add accessor fns for using the .get,.set&.fn */ SWIG_Lua_add_function(L,"__index",SWIG_Lua_class_get); SWIG_Lua_add_function(L,"__newindex",SWIG_Lua_class_set); SWIG_Lua_add_function(L,"__gc",SWIG_Lua_class_destruct); /* add it */ lua_rawset(L,-3); /* metatable into registry */ lua_pop(L,1); /* tidy stack (remove registry) */ assert(lua_gettop(L) == begin); #if defined(SWIG_LUA_SQUASH_BASES) && (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_LUA) /* Now merge all symbols from .fn, .set, .get etc from bases to our tables */ SWIG_Lua_class_squash_bases(L,clss); #endif SWIG_Lua_get_class_metatable(L,clss->fqname); SWIG_Lua_add_class_instance_details(L,clss); /* recursive adding of details (atts & ops) */ lua_pop(L,1); /* tidy stack (remove class metatable) */ assert( lua_gettop(L) == begin ); } SWIGINTERN void SWIG_Lua_class_register(lua_State *L,swig_lua_class *clss) { int SWIGUNUSED begin; assert(lua_istable(L,-1)); /* This is a table (module or namespace) where classes will be added */ SWIG_Lua_class_register_instance(L,clss); SWIG_Lua_class_register_static(L,clss); /* Add links from static part to instance part and vice versa */ /* [SWIG registry] [Module] * "MyClass" ----> [MyClass metatable] <===== "MyClass" -+> [static part] * ".get" ----> ... | | getmetatable()----| * ".set" ----> ... | | | * ".static" --------------)----------------/ [static part metatable] * | ".get" --> ... * | ".set" --> .... * |=============================== ".instance" */ begin = lua_gettop(L); lua_pushstring(L,clss->cls_static->name); lua_rawget(L,-2); /* get class static table */ assert(lua_istable(L,-1)); lua_getmetatable(L,-1); assert(lua_istable(L,-1)); /* get class static metatable */ lua_pushstring(L,".instance"); /* prepare key */ SWIG_Lua_get_class_metatable(L,clss->fqname); /* get class metatable */ assert(lua_istable(L,-1)); lua_pushstring(L,".static"); /* prepare key */ lua_pushvalue(L, -4); /* push static class TABLE */ assert(lua_istable(L,-1)); lua_rawset(L,-3); /* assign static class table(!NOT metatable) as ".static" member of class metatable */ lua_rawset(L,-3); /* assign class metatable as ".instance" member of class static METATABLE */ lua_pop(L,2); assert(lua_gettop(L) == begin); } #endif /* SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_LUA */ #if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC) SWIGINTERN void SWIG_Lua_elua_class_register_instance(lua_State *L, swig_lua_class *clss) { const int SWIGUNUSED begin = lua_gettop(L); int i; /* if name already there (class is already registered) then do nothing */ SWIG_Lua_get_class_registry(L); /* get the registry */ lua_pushstring(L,clss->fqname); /* get the name */ lua_rawget(L,-2); if(!lua_isnil(L,-1)) { lua_pop(L,2); assert(lua_gettop(L)==begin); return; } lua_pop(L,2); /* tidy stack */ /* Recursively initialize all bases */ for(i=0;clss->bases[i];i++) { SWIG_Lua_elua_class_register_instance(L,clss->bases[i]); } /* Again, get registry and push name */ SWIG_Lua_get_class_registry(L); /* get the registry */ lua_pushstring(L,clss->fqname); /* get the name */ assert(clss->metatable); lua_pushrotable(L, (void*)(clss->metatable)); /* create the metatable */ lua_rawset(L,-3); lua_pop(L,1); assert(lua_gettop(L) == begin); } #endif /* elua && eluac */ /* ----------------------------------------------------------------------------- * Class/structure conversion fns * ----------------------------------------------------------------------------- */ /* helper to add metatable to new lua object */ SWIGINTERN void SWIG_Lua_AddMetatable(lua_State *L,swig_type_info *type) { if (type->clientdata) /* there is clientdata: so add the metatable */ { SWIG_Lua_get_class_metatable(L,((swig_lua_class*)(type->clientdata))->fqname); if (lua_istable(L,-1)) { lua_setmetatable(L,-2); } else { lua_pop(L,1); } } } /* pushes a new object into the lua stack */ SWIGRUNTIME void SWIG_Lua_NewPointerObj(lua_State *L,void *ptr,swig_type_info *type, int own) { swig_lua_userdata *usr; if (!ptr){ lua_pushnil(L); return; } usr=(swig_lua_userdata*)lua_newuserdata(L,sizeof(swig_lua_userdata)); /* get data */ usr->ptr=ptr; /* set the ptr */ usr->type=type; usr->own=own; #if (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC) SWIG_Lua_AddMetatable(L,type); /* add metatable */ #endif } /* takes a object from the lua stack & converts it into an object of the correct type (if possible) */ SWIGRUNTIME int SWIG_Lua_ConvertPtr(lua_State *L,int index,void **ptr,swig_type_info *type,int flags) { swig_lua_userdata *usr; swig_cast_info *cast; /* special case: lua nil => NULL pointer */ if (lua_isnil(L,index)) { *ptr=0; return (flags & SWIG_POINTER_NO_NULL) ? SWIG_NullReferenceError : SWIG_OK; } usr=(swig_lua_userdata*)lua_touserdata(L,index); /* get data */ if (usr) { if (flags & SWIG_POINTER_DISOWN) /* must disown the object */ { usr->own=0; } if (!type) /* special cast void*, no casting fn */ { *ptr=usr->ptr; return SWIG_OK; /* ok */ } cast=SWIG_TypeCheckStruct(usr->type,type); /* performs normal type checking */ if (cast) { int newmemory = 0; *ptr=SWIG_TypeCast(cast,usr->ptr,&newmemory); assert(!newmemory); /* newmemory handling not yet implemented */ return SWIG_OK; /* ok */ } } return SWIG_ERROR; /* error */ } SWIGRUNTIME void* SWIG_Lua_MustGetPtr(lua_State *L,int index,swig_type_info *type,int flags, int argnum,const char *func_name){ void *result; if (!SWIG_IsOK(SWIG_ConvertPtr(L,index,&result,type,flags))){ luaL_error (L,"Error in %s, expected a %s at argument number %d\n", func_name,(type && type->str)?type->str:"void*",argnum); } return result; } /* pushes a packed userdata. user for member fn pointers only */ SWIGRUNTIME void SWIG_Lua_NewPackedObj(lua_State *L,void *ptr,size_t size,swig_type_info *type) { swig_lua_rawdata *raw; assert(ptr); /* not acceptable to pass in a NULL value */ raw=(swig_lua_rawdata*)lua_newuserdata(L,sizeof(swig_lua_rawdata)-1+size); /* alloc data */ raw->type=type; raw->own=0; memcpy(raw->data,ptr,size); /* copy the data */ SWIG_Lua_AddMetatable(L,type); /* add metatable */ } /* converts a packed userdata. user for member fn pointers only */ SWIGRUNTIME int SWIG_Lua_ConvertPacked(lua_State *L,int index,void *ptr,size_t size,swig_type_info *type) { swig_lua_rawdata *raw; raw=(swig_lua_rawdata*)lua_touserdata(L,index); /* get data */ if (!raw) return SWIG_ERROR; /* error */ if (type==0 || type==raw->type) /* void* or identical type */ { memcpy(ptr,raw->data,size); /* copy it */ return SWIG_OK; /* ok */ } return SWIG_ERROR; /* error */ } /* a function to get the typestring of a piece of data */ SWIGRUNTIME const char *SWIG_Lua_typename(lua_State *L, int tp) { swig_lua_userdata *usr; if (lua_isuserdata(L,tp)) { usr=(swig_lua_userdata*)lua_touserdata(L,tp); /* get data */ if (usr && usr->type && usr->type->str) return usr->type->str; return "userdata (unknown type)"; } return lua_typename(L,lua_type(L,tp)); } /* lua callable function to get the userdata's type */ SWIGRUNTIME int SWIG_Lua_type(lua_State *L) { lua_pushstring(L,SWIG_Lua_typename(L,1)); return 1; } /* ----------------------------------------------------------------------------- * global variable support code: class/struct typemap functions * ----------------------------------------------------------------------------- */ #if ((SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUA) && (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC)) /* Install Constants */ SWIGINTERN void SWIG_Lua_InstallConstants(lua_State *L, swig_lua_const_info constants[]) { int i; for (i = 0; constants[i].type; i++) { switch(constants[i].type) { case SWIG_LUA_INT: lua_pushstring(L,constants[i].name); lua_pushinteger(L,(lua_Integer)constants[i].lvalue); lua_rawset(L,-3); break; case SWIG_LUA_FLOAT: lua_pushstring(L,constants[i].name); lua_pushnumber(L,(lua_Number)constants[i].dvalue); lua_rawset(L,-3); break; case SWIG_LUA_CHAR: lua_pushstring(L,constants[i].name); { char c = (char)constants[i].lvalue; lua_pushlstring(L,&c,1); } lua_rawset(L,-3); break; case SWIG_LUA_STRING: lua_pushstring(L,constants[i].name); lua_pushstring(L,(char *) constants[i].pvalue); lua_rawset(L,-3); break; case SWIG_LUA_POINTER: lua_pushstring(L,constants[i].name); SWIG_NewPointerObj(L,constants[i].pvalue, *(constants[i]).ptype,0); lua_rawset(L,-3); break; case SWIG_LUA_BINARY: lua_pushstring(L,constants[i].name); SWIG_NewMemberObj(L,constants[i].pvalue,constants[i].lvalue,*(constants[i]).ptype); lua_rawset(L,-3); break; default: break; } } } #endif /* ----------------------------------------------------------------------------- * executing lua code from within the wrapper * ----------------------------------------------------------------------------- */ #ifndef SWIG_DOSTRING_FAIL /* Allows redefining of error function */ #define SWIG_DOSTRING_FAIL(S) fprintf(stderr,"%s\n",S) #endif /* Executes a C string in Lua which is a really simple way of calling lua from C Unfortunately lua keeps changing its APIs, so we need a conditional compile In lua 5.0.X it's lua_dostring() In lua 5.1.X it's luaL_dostring() */ SWIGINTERN int SWIG_Lua_dostring(lua_State *L, const char *str) { int ok,top; if (str==0 || str[0]==0) return 0; /* nothing to do */ top=lua_gettop(L); /* save stack */ #if (defined(LUA_VERSION_NUM) && (LUA_VERSION_NUM>=501)) ok=luaL_dostring(L,str); /* looks like this is lua 5.1.X or later, good */ #else ok=lua_dostring(L,str); /* might be lua 5.0.x, using lua_dostring */ #endif if (ok!=0) { SWIG_DOSTRING_FAIL(lua_tostring(L,-1)); } lua_settop(L,top); /* restore the stack */ return ok; } #ifdef __cplusplus } #endif /* ------------------------------ end luarun.swg ------------------------------ */ /* Errors in SWIG */ #define SWIG_UnknownError -1 #define SWIG_IOError -2 #define SWIG_RuntimeError -3 #define SWIG_IndexError -4 #define SWIG_TypeError -5 #define SWIG_DivisionByZero -6 #define SWIG_OverflowError -7 #define SWIG_SyntaxError -8 #define SWIG_ValueError -9 #define SWIG_SystemError -10 #define SWIG_AttributeError -11 #define SWIG_MemoryError -12 #define SWIG_NullReferenceError -13 /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_Prelude__Client swig_types[0] #define SWIGTYPE_p_Prelude__ClientEasy swig_types[1] #define SWIGTYPE_p_Prelude__ClientProfile swig_types[2] #define SWIGTYPE_p_Prelude__Connection swig_types[3] #define SWIGTYPE_p_Prelude__ConnectionPool swig_types[4] #define SWIGTYPE_p_Prelude__IDMEF swig_types[5] #define SWIGTYPE_p_Prelude__IDMEFClass swig_types[6] #define SWIGTYPE_p_Prelude__IDMEFCriteria swig_types[7] #define SWIGTYPE_p_Prelude__IDMEFCriterion swig_types[8] #define SWIGTYPE_p_Prelude__IDMEFPath swig_types[9] #define SWIGTYPE_p_Prelude__IDMEFTime swig_types[10] #define SWIGTYPE_p_Prelude__IDMEFValue swig_types[11] #define SWIGTYPE_p_Prelude__PreludeError swig_types[12] #define SWIGTYPE_p_Prelude__PreludeLog swig_types[13] #define SWIGTYPE_p_char swig_types[14] #define SWIGTYPE_p_difference_type swig_types[15] #define SWIGTYPE_p_f_int_p_q_const__char__void swig_types[16] #define SWIGTYPE_p_idmef_criteria_t swig_types[17] #define SWIGTYPE_p_idmef_criterion_operator_t swig_types[18] #define SWIGTYPE_p_idmef_object_t swig_types[19] #define SWIGTYPE_p_idmef_path_t swig_types[20] #define SWIGTYPE_p_idmef_time_t swig_types[21] #define SWIGTYPE_p_idmef_value_t swig_types[22] #define SWIGTYPE_p_int swig_types[23] #define SWIGTYPE_p_key_type swig_types[24] #define SWIGTYPE_p_long_long swig_types[25] #define SWIGTYPE_p_mapped_type swig_types[26] #define SWIGTYPE_p_prelude_client_profile_t swig_types[27] #define SWIGTYPE_p_prelude_client_t swig_types[28] #define SWIGTYPE_p_prelude_connection_pool_t swig_types[29] #define SWIGTYPE_p_prelude_connection_t swig_types[30] #define SWIGTYPE_p_short swig_types[31] #define SWIGTYPE_p_size_type swig_types[32] #define SWIGTYPE_p_std__exception swig_types[33] #define SWIGTYPE_p_std__mapT_std__string_std__string_std__lessT_std__string_t_t swig_types[34] #define SWIGTYPE_p_std__string swig_types[35] #define SWIGTYPE_p_std__vectorT_Prelude__Connection_t swig_types[36] #define SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t swig_types[37] #define SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t swig_types[38] #define SWIGTYPE_p_std__vectorT_std__string_t swig_types[39] #define SWIGTYPE_p_timeval swig_types[40] #define SWIGTYPE_p_unsigned_char swig_types[41] #define SWIGTYPE_p_unsigned_int swig_types[42] #define SWIGTYPE_p_unsigned_long_long swig_types[43] #define SWIGTYPE_p_unsigned_short swig_types[44] #define SWIGTYPE_p_value_type swig_types[45] #define SWIGTYPE_p_void swig_types[46] static swig_type_info *swig_types[48]; static swig_module_info swig_module = {swig_types, 47, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) /* -------- TYPES TABLE (END) -------- */ #define SWIG_name "prelude" #define SWIG_init luaopen_prelude #define SWIG_init_user luaopen_prelude_user #define SWIG_LUACODE luaopen_prelude_luacode namespace swig { typedef struct{} LANGUAGE_OBJ; } #include SWIGINTERN int SWIG_lua_isnilstring(lua_State *L, int idx) { int ret = lua_isstring(L, idx); if (!ret) ret = lua_isnil(L, idx); return ret; } #include #include #include #define SWIG_exception(a,b)\ { lua_pushfstring(L,"%s:%s",#a,b);SWIG_fail; } #include #include #include #include #include #pragma GCC diagnostic ignored "-Wunused-variable" #include #include #include "prelude.hxx" #include "prelude-log.hxx" #include "prelude-error.hxx" #include "prelude-connection.hxx" #include "prelude-connection-pool.hxx" #include "prelude-client-profile.hxx" #include "prelude-client.hxx" #include "prelude-client-easy.hxx" #include "idmef-criteria.hxx" #include "idmef-value.hxx" #include "idmef-path.hxx" #include "idmef-time.hxx" #include "idmef.hxx" using namespace Prelude; char *my_strdup(const char *in) { char *out = new char[strlen(in) + 1]; strcpy(out, in); return out; } int integer2lua(lua_State *L, lua_Number result) { lua_pushnumber(L, (lua_Number) result); return 0; } int str2lua(lua_State *L, const char *str) { lua_pushstring(L, str); return 0; } int strsize2lua(lua_State *L, const char *str, size_t len) { lua_pushlstring(L, str, len); return 0; } int _SWIG_Prelude_NewPointerObj(lua_State *L, void *obj, swig_type_info *objtype, int val) { SWIG_NewPointerObj(L, obj, objtype, val); return 0; } static int __prelude_log_func; static lua_State *__lua_state = NULL; static gl_thread_t __initial_thread; static void _cb_lua_log(int level, const char *str) { if ( (gl_thread_t) gl_thread_self() != __initial_thread ) return; lua_rawgeti(__lua_state, LUA_REGISTRYINDEX, __prelude_log_func); lua_pushnumber(__lua_state, level); lua_pushstring(__lua_state, str); lua_call(__lua_state, 2, 0); } static int _cb_lua_write(prelude_msgbuf_t *fd, prelude_msg_t *msg) { size_t ret; FILE *f = (FILE *) prelude_msgbuf_get_data(fd); ret = fwrite((const char *)prelude_msg_get_message_data(msg), 1, prelude_msg_get_len(msg), f); if ( ret != prelude_msg_get_len(msg) ) return prelude_error_from_errno(errno); prelude_msg_recycle(msg); return 0; } static ssize_t _cb_lua_read(prelude_io_t *fd, void *buf, size_t size) { ssize_t ret; FILE *f = (FILE *) prelude_io_get_fdptr(fd); ret = fread(buf, 1, size, f); if ( ret < 0 ) ret = prelude_error_from_errno(errno); else if ( ret == 0 ) ret = prelude_error(PRELUDE_ERROR_EOF); return ret; } SWIGINTERN char *Prelude_IDMEFCriteria___str__(Prelude::IDMEFCriteria *self){ return my_strdup(self->toString().c_str()); } int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret); int IDMEFValueList_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &value, void *extra) { bool is_list; int index = 0, ret, unused; std::vector result = value; std::vector::const_iterator i; lua_newtable((lua_State *) extra); for ( i = result.begin(); i != result.end(); i++ ) { ret = lua_checkstack((lua_State *) extra, 2); if ( ret < 0 ) return ret; if ( (*i).isNull() ) { lua_pushnil((lua_State *) extra); lua_rawseti((lua_State *) extra, -2, ++index); } else { is_list = (i->getType() == IDMEFValue::TYPE_LIST); if ( is_list ) lua_pushnumber((lua_State *) extra, ++index); ret = IDMEFValue_to_SWIG(&unused, *i, extra, &unused); if ( ret < 0 ) return -1; if ( is_list ) lua_settable((lua_State *) extra, -3); else lua_rawseti((lua_State *) extra, -2, ++index); } } return 1; } int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret) { idmef_value_t *value = result; Prelude::IDMEFValue::IDMEFValueTypeEnum type = result.getType(); if ( type == Prelude::IDMEFValue::TYPE_STRING ) { prelude_string_t *str = idmef_value_get_string(value); *ret = strsize2lua((lua_State *) extra, prelude_string_get_string(str), prelude_string_get_len(str)); } else if ( type == Prelude::IDMEFValue::TYPE_INT8 ) *ret = integer2lua((lua_State *) extra, idmef_value_get_int8(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT8 ) *ret = integer2lua((lua_State *) extra, idmef_value_get_uint8(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT16 ) *ret = integer2lua((lua_State *) extra, idmef_value_get_int16(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT16 ) *ret = integer2lua((lua_State *) extra, idmef_value_get_uint16(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT32 ) *ret = integer2lua((lua_State *) extra, idmef_value_get_int32(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT32 ) *ret = integer2lua((lua_State *) extra, idmef_value_get_uint32(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT64 ) *ret = integer2lua((lua_State *) extra, idmef_value_get_int64(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT64 ) *ret = integer2lua((lua_State *) extra, idmef_value_get_uint64(value)); else if ( type == Prelude::IDMEFValue::TYPE_FLOAT ) *ret = integer2lua((lua_State *) extra, idmef_value_get_float(value)); else if ( type == Prelude::IDMEFValue::TYPE_DOUBLE ) *ret = integer2lua((lua_State *) extra, idmef_value_get_double(value)); else if ( type == Prelude::IDMEFValue::TYPE_ENUM ) { const char *s = idmef_class_enum_to_string(idmef_value_get_class(value), idmef_value_get_enum(value)); *ret = str2lua((lua_State *) extra, s); } else if ( type == Prelude::IDMEFValue::TYPE_TIME ) { Prelude::IDMEFTime t = result; *ret = _SWIG_Prelude_NewPointerObj((lua_State *) extra, new Prelude::IDMEFTime(t), SWIGTYPE_p_Prelude__IDMEFTime, 1);; } else if ( type == Prelude::IDMEFValue::TYPE_LIST ) *ret = IDMEFValueList_to_SWIG(self, result, extra); else if ( type == Prelude::IDMEFValue::TYPE_DATA ) { idmef_data_t *d = idmef_value_get_data(value); idmef_data_type_t t = idmef_data_get_type(d); if ( t == IDMEF_DATA_TYPE_BYTE || t == IDMEF_DATA_TYPE_BYTE_STRING ) *ret = strsize2lua((lua_State *) extra, (const char *)idmef_data_get_data(d), idmef_data_get_len(d)); else if ( t == IDMEF_DATA_TYPE_CHAR ) *ret = strsize2lua((lua_State *) extra, (const char *)idmef_data_get_data(d), idmef_data_get_len(d)); else if ( t == IDMEF_DATA_TYPE_CHAR_STRING ) *ret = strsize2lua((lua_State *) extra, (const char *)idmef_data_get_data(d), idmef_data_get_len(d) - 1); else if ( t == IDMEF_DATA_TYPE_FLOAT ) *ret = integer2lua((lua_State *) extra, idmef_data_get_float(d)); else if ( t == IDMEF_DATA_TYPE_UINT32 || IDMEF_DATA_TYPE_INT ) *ret = integer2lua((lua_State *) extra, idmef_data_get_int(d)); } else if ( type == Prelude::IDMEFValue::TYPE_CLASS ) { idmef_object_t *obj = (idmef_object_t *) idmef_value_get_object(value); *ret = _SWIG_Prelude_NewPointerObj((lua_State *) extra, new Prelude::IDMEF(idmef_object_ref(obj)), SWIGTYPE_p_Prelude__IDMEF, 1);; } else return -1; return 1; } SWIGINTERN Prelude::IDMEFValue Prelude_IDMEFPath_get(Prelude::IDMEFPath *self,Prelude::IDMEF &message){ Prelude::IDMEFValue value; value = self->get(message); if ( value.isNull() && self->isAmbiguous() ) { std::vector v; return Prelude::IDMEFValue(v); } return value; } SWIGINTERN char *Prelude_IDMEFTime___str__(Prelude::IDMEFTime *self){ return my_strdup(self->toString().c_str()); } SWIGINTERN char *Prelude_IDMEF___str__(Prelude::IDMEF *self){ return my_strdup(self->toString().c_str()); } SWIGINTERN void Prelude_IDMEF_write(Prelude::IDMEF *self,void *nocast_p){ self->_genericWrite(_cb_lua_write, nocast_p); } SWIGINTERN int Prelude_IDMEF_read(Prelude::IDMEF *self,void *nocast_p){ self->_genericRead(_cb_lua_read, nocast_p); return 1; } SWIGINTERN Prelude::IDMEFValue Prelude_IDMEF_get(Prelude::IDMEF *self,char const *path){ Prelude::IDMEFValue value; Prelude::IDMEFPath ipath = Prelude::IDMEFPath(*self, path); value = ipath.get(*self); if ( value.isNull() && ipath.isAmbiguous() ) { std::vector v; return Prelude::IDMEFValue(v); } return value; } #ifdef __cplusplus extern "C" { #endif static int _wrap_new_string__SWIG_0(lua_State* L) { int SWIG_arg = 0; std::string *result = 0 ; SWIG_check_num_args("std::string::string",0,0) result = (std::string *)new std::string(); SWIG_NewPointerObj(L,result,SWIGTYPE_p_std__string,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_string__SWIG_1(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; std::string *result = 0 ; SWIG_check_num_args("std::string::string",1,1) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("std::string::string",1,"char const *"); arg1 = (char *)lua_tostring(L, 1); result = (std::string *)new std::string((char const *)arg1); SWIG_NewPointerObj(L,result,SWIGTYPE_p_std__string,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_string(lua_State* L) { int argc; int argv[2]={ 1,2 }; argc = lua_gettop(L); if (argc == 0) { return _wrap_new_string__SWIG_0(L); } if (argc == 1) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { return _wrap_new_string__SWIG_1(L); } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_string'\n" " Possible C/C++ prototypes are:\n" " std::string::string()\n" " std::string::string(char const *)\n"); lua_error(L);return 0; } static int _wrap_string_size(lua_State* L) { int SWIG_arg = 0; std::string *arg1 = (std::string *) 0 ; unsigned int result; SWIG_check_num_args("std::string::size",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("std::string::size",1,"std::string const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_std__string,0))){ SWIG_fail_ptr("string_size",1,SWIGTYPE_p_std__string); } result = (unsigned int)((std::string const *)arg1)->size(); lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_string_length(lua_State* L) { int SWIG_arg = 0; std::string *arg1 = (std::string *) 0 ; unsigned int result; SWIG_check_num_args("std::string::length",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("std::string::length",1,"std::string const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_std__string,0))){ SWIG_fail_ptr("string_length",1,SWIGTYPE_p_std__string); } result = (unsigned int)((std::string const *)arg1)->length(); lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_string_empty(lua_State* L) { int SWIG_arg = 0; std::string *arg1 = (std::string *) 0 ; bool result; SWIG_check_num_args("std::string::empty",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("std::string::empty",1,"std::string const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_std__string,0))){ SWIG_fail_ptr("string_empty",1,SWIGTYPE_p_std__string); } result = (bool)((std::string const *)arg1)->empty(); lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_string_c_str(lua_State* L) { int SWIG_arg = 0; std::string *arg1 = (std::string *) 0 ; char *result = 0 ; SWIG_check_num_args("std::string::c_str",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("std::string::c_str",1,"std::string const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_std__string,0))){ SWIG_fail_ptr("string_c_str",1,SWIGTYPE_p_std__string); } result = (char *)((std::string const *)arg1)->c_str(); lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_string_data(lua_State* L) { int SWIG_arg = 0; std::string *arg1 = (std::string *) 0 ; char *result = 0 ; SWIG_check_num_args("std::string::data",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("std::string::data",1,"std::string const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_std__string,0))){ SWIG_fail_ptr("string_data",1,SWIGTYPE_p_std__string); } result = (char *)((std::string const *)arg1)->data(); lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_string_assign(lua_State* L) { int SWIG_arg = 0; std::string *arg1 = (std::string *) 0 ; char *arg2 = (char *) 0 ; SWIG_check_num_args("std::string::assign",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("std::string::assign",1,"std::string *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("std::string::assign",2,"char const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_std__string,0))){ SWIG_fail_ptr("string_assign",1,SWIGTYPE_p_std__string); } arg2 = (char *)lua_tostring(L, 2); (arg1)->assign((char const *)arg2); return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_string(void *obj) { std::string *arg1 = (std::string *) obj; delete arg1; } static int _proxy__wrap_new_string(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_string); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_string_attributes[] = { {0,0,0} }; static swig_lua_method swig_string_methods[]= { { "size", _wrap_string_size}, { "length", _wrap_string_length}, { "empty", _wrap_string_empty}, { "c_str", _wrap_string_c_str}, { "data", _wrap_string_data}, { "assign", _wrap_string_assign}, {0,0} }; static swig_lua_method swig_string_meta[] = { {0,0} }; static swig_lua_attribute swig_string_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_string_Sf_SwigStatic_constants[]= { {0,0,0,0,0,0} }; static swig_lua_method swig_string_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_string_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_string_Sf_SwigStatic = { "string", swig_string_Sf_SwigStatic_methods, swig_string_Sf_SwigStatic_attributes, swig_string_Sf_SwigStatic_constants, swig_string_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_string_bases[] = {0}; static const char *swig_string_base_names[] = {0}; static swig_lua_class _wrap_class_string = { "string", "string", &SWIGTYPE_p_std__string,_proxy__wrap_new_string, swig_delete_string, swig_string_methods, swig_string_attributes, &swig_string_Sf_SwigStatic, swig_string_meta, swig_string_bases, swig_string_base_names }; static int _wrap_checkVersion__SWIG_0(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; char *result = 0 ; SWIG_check_num_args("Prelude::checkVersion",1,1) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::checkVersion",1,"char const *"); arg1 = (char *)lua_tostring(L, 1); { try { result = (char *)Prelude::checkVersion((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_checkVersion__SWIG_1(lua_State* L) { int SWIG_arg = 0; char *result = 0 ; SWIG_check_num_args("Prelude::checkVersion",0,0) { try { result = (char *)Prelude::checkVersion(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_checkVersion(lua_State* L) { int argc; int argv[2]={ 1,2 }; argc = lua_gettop(L); if (argc == 0) { return _wrap_checkVersion__SWIG_1(L); } if (argc == 1) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { return _wrap_checkVersion__SWIG_0(L); } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'checkVersion'\n" " Possible C/C++ prototypes are:\n" " Prelude::checkVersion(char const *)\n" " Prelude::checkVersion()\n"); lua_error(L);return 0; } static int _wrap_new_ClientProfile__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *result = 0 ; SWIG_check_num_args("Prelude::ClientProfile::ClientProfile",0,0) { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ClientProfile,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ClientProfile__SWIG_1(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; Prelude::ClientProfile *result = 0 ; SWIG_check_num_args("Prelude::ClientProfile::ClientProfile",1,1) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::ClientProfile::ClientProfile",1,"char const *"); arg1 = (char *)lua_tostring(L, 1); { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ClientProfile,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ClientProfile__SWIG_2(lua_State* L) { int SWIG_arg = 0; prelude_client_profile_t *arg1 = (prelude_client_profile_t *) 0 ; Prelude::ClientProfile *result = 0 ; SWIG_check_num_args("Prelude::ClientProfile::ClientProfile",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::ClientProfile",1,"prelude_client_profile_t *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_prelude_client_profile_t,0))){ SWIG_fail_ptr("new_ClientProfile",1,SWIGTYPE_p_prelude_client_profile_t); } { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ClientProfile,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ClientProfile__SWIG_3(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = 0 ; Prelude::ClientProfile *result = 0 ; SWIG_check_num_args("Prelude::ClientProfile::ClientProfile",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::ClientProfile::ClientProfile",1,"Prelude::ClientProfile const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("new_ClientProfile",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile((Prelude::ClientProfile const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ClientProfile,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ClientProfile(lua_State* L) { int argc; int argv[2]={ 1,2 }; argc = lua_gettop(L); if (argc == 0) { return _wrap_new_ClientProfile__SWIG_0(L); } if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_prelude_client_profile_t, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_ClientProfile__SWIG_2(L); } } if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__ClientProfile, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_ClientProfile__SWIG_3(L); } } if (argc == 1) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { return _wrap_new_ClientProfile__SWIG_1(L); } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_ClientProfile'\n" " Possible C/C++ prototypes are:\n" " Prelude::ClientProfile::ClientProfile()\n" " Prelude::ClientProfile::ClientProfile(char const *)\n" " Prelude::ClientProfile::ClientProfile(prelude_client_profile_t *)\n" " Prelude::ClientProfile::ClientProfile(Prelude::ClientProfile const &)\n"); lua_error(L);return 0; } static int _wrap_ClientProfile_getUid(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; int result; SWIG_check_num_args("Prelude::ClientProfile::getUid",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getUid",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getUid",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (int)(arg1)->getUid(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getGid(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; int result; SWIG_check_num_args("Prelude::ClientProfile::getGid",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getGid",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getGid",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (int)(arg1)->getGid(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getName(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; char *result = 0 ; SWIG_check_num_args("Prelude::ClientProfile::getName",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getName",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getName",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (char *)(arg1)->getName(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_setName(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; char *arg2 = (char *) 0 ; int result; SWIG_check_num_args("Prelude::ClientProfile::setName",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::setName",1,"Prelude::ClientProfile *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::ClientProfile::setName",2,"char const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_setName",1,SWIGTYPE_p_Prelude__ClientProfile); } arg2 = (char *)lua_tostring(L, 2); { try { result = (int)(arg1)->setName((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getAnalyzerId(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; uint64_t result; SWIG_check_num_args("Prelude::ClientProfile::getAnalyzerId",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getAnalyzerId",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getAnalyzerId",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (uint64_t)(arg1)->getAnalyzerId(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_setAnalyzerId(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; uint64_t arg2 ; SWIG_check_num_args("Prelude::ClientProfile::setAnalyzerId",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::setAnalyzerId",1,"Prelude::ClientProfile *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::ClientProfile::setAnalyzerId",2,"uint64_t"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_setAnalyzerId",1,SWIGTYPE_p_Prelude__ClientProfile); } arg2 = (uint64_t)lua_tonumber(L, 2); { try { (arg1)->setAnalyzerId(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getConfigFilename(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; std::string result; SWIG_check_num_args("Prelude::ClientProfile::getConfigFilename",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getConfigFilename",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getConfigFilename",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (arg1)->getConfigFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getAnalyzeridFilename(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; std::string result; SWIG_check_num_args("Prelude::ClientProfile::getAnalyzeridFilename",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getAnalyzeridFilename",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getAnalyzeridFilename",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (arg1)->getAnalyzeridFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getTlsKeyFilename(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; std::string result; SWIG_check_num_args("Prelude::ClientProfile::getTlsKeyFilename",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getTlsKeyFilename",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getTlsKeyFilename",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (arg1)->getTlsKeyFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getTlsServerCaCertFilename(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; std::string result; SWIG_check_num_args("Prelude::ClientProfile::getTlsServerCaCertFilename",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getTlsServerCaCertFilename",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getTlsServerCaCertFilename",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (arg1)->getTlsServerCaCertFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getTlsServerKeyCertFilename(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; std::string result; SWIG_check_num_args("Prelude::ClientProfile::getTlsServerKeyCertFilename",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getTlsServerKeyCertFilename",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getTlsServerKeyCertFilename",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (arg1)->getTlsServerKeyCertFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getTlsServerCrlFilename(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; std::string result; SWIG_check_num_args("Prelude::ClientProfile::getTlsServerCrlFilename",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getTlsServerCrlFilename",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getTlsServerCrlFilename",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (arg1)->getTlsServerCrlFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getTlsClientKeyCertFilename(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; std::string result; SWIG_check_num_args("Prelude::ClientProfile::getTlsClientKeyCertFilename",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getTlsClientKeyCertFilename",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getTlsClientKeyCertFilename",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (arg1)->getTlsClientKeyCertFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getTlsClientTrustedCertFilename(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; std::string result; SWIG_check_num_args("Prelude::ClientProfile::getTlsClientTrustedCertFilename",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getTlsClientTrustedCertFilename",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getTlsClientTrustedCertFilename",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (arg1)->getTlsClientTrustedCertFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getBackupDirname(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; std::string result; SWIG_check_num_args("Prelude::ClientProfile::getBackupDirname",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getBackupDirname",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getBackupDirname",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (arg1)->getBackupDirname(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getProfileDirname(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; std::string result; SWIG_check_num_args("Prelude::ClientProfile::getProfileDirname",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getProfileDirname",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getProfileDirname",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (arg1)->getProfileDirname(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_setPrefix(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; char *arg2 = (char *) 0 ; SWIG_check_num_args("Prelude::ClientProfile::setPrefix",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::setPrefix",1,"Prelude::ClientProfile *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::ClientProfile::setPrefix",2,"char const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_setPrefix",1,SWIGTYPE_p_Prelude__ClientProfile); } arg2 = (char *)lua_tostring(L, 2); { try { (arg1)->setPrefix((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ClientProfile_getPrefix(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; std::string result; SWIG_check_num_args("Prelude::ClientProfile::getPrefix",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ClientProfile::getPrefix",1,"Prelude::ClientProfile *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("ClientProfile_getPrefix",1,SWIGTYPE_p_Prelude__ClientProfile); } { try { result = (arg1)->getPrefix(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_ClientProfile(void *obj) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) obj; delete arg1; } static int _proxy__wrap_new_ClientProfile(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_ClientProfile); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_ClientProfile_attributes[] = { {0,0,0} }; static swig_lua_method swig_ClientProfile_methods[]= { { "getUid", _wrap_ClientProfile_getUid}, { "getGid", _wrap_ClientProfile_getGid}, { "getName", _wrap_ClientProfile_getName}, { "setName", _wrap_ClientProfile_setName}, { "getAnalyzerId", _wrap_ClientProfile_getAnalyzerId}, { "setAnalyzerId", _wrap_ClientProfile_setAnalyzerId}, { "getConfigFilename", _wrap_ClientProfile_getConfigFilename}, { "getAnalyzeridFilename", _wrap_ClientProfile_getAnalyzeridFilename}, { "getTlsKeyFilename", _wrap_ClientProfile_getTlsKeyFilename}, { "getTlsServerCaCertFilename", _wrap_ClientProfile_getTlsServerCaCertFilename}, { "getTlsServerKeyCertFilename", _wrap_ClientProfile_getTlsServerKeyCertFilename}, { "getTlsServerCrlFilename", _wrap_ClientProfile_getTlsServerCrlFilename}, { "getTlsClientKeyCertFilename", _wrap_ClientProfile_getTlsClientKeyCertFilename}, { "getTlsClientTrustedCertFilename", _wrap_ClientProfile_getTlsClientTrustedCertFilename}, { "getBackupDirname", _wrap_ClientProfile_getBackupDirname}, { "getProfileDirname", _wrap_ClientProfile_getProfileDirname}, { "setPrefix", _wrap_ClientProfile_setPrefix}, { "getPrefix", _wrap_ClientProfile_getPrefix}, {0,0} }; static swig_lua_method swig_ClientProfile_meta[] = { {0,0} }; static swig_lua_attribute swig_ClientProfile_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_ClientProfile_Sf_SwigStatic_constants[]= { {0,0,0,0,0,0} }; static swig_lua_method swig_ClientProfile_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_ClientProfile_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_ClientProfile_Sf_SwigStatic = { "ClientProfile", swig_ClientProfile_Sf_SwigStatic_methods, swig_ClientProfile_Sf_SwigStatic_attributes, swig_ClientProfile_Sf_SwigStatic_constants, swig_ClientProfile_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_ClientProfile_bases[] = {0}; static const char *swig_ClientProfile_base_names[] = {0}; static swig_lua_class _wrap_class_ClientProfile = { "ClientProfile", "ClientProfile", &SWIGTYPE_p_Prelude__ClientProfile,_proxy__wrap_new_ClientProfile, swig_delete_ClientProfile, swig_ClientProfile_methods, swig_ClientProfile_attributes, &swig_ClientProfile_Sf_SwigStatic, swig_ClientProfile_meta, swig_ClientProfile_bases, swig_ClientProfile_base_names }; static int _wrap_new_Connection__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *result = 0 ; SWIG_check_num_args("Prelude::Connection::Connection",0,0) { try { result = (Prelude::Connection *)new Prelude::Connection(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__Connection,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_Connection__SWIG_1(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; Prelude::Connection *result = 0 ; SWIG_check_num_args("Prelude::Connection::Connection",1,1) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::Connection::Connection",1,"char const *"); arg1 = (char *)lua_tostring(L, 1); { try { result = (Prelude::Connection *)new Prelude::Connection((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__Connection,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_Connection__SWIG_2(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = 0 ; Prelude::Connection *result = 0 ; SWIG_check_num_args("Prelude::Connection::Connection",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::Connection::Connection",1,"Prelude::Connection const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("new_Connection",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (Prelude::Connection *)new Prelude::Connection((Prelude::Connection const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__Connection,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_Connection__SWIG_3(lua_State* L) { int SWIG_arg = 0; prelude_connection_t *arg1 = (prelude_connection_t *) 0 ; bool arg2 ; Prelude::Connection *result = 0 ; SWIG_check_num_args("Prelude::Connection::Connection",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::Connection",1,"prelude_connection_t *"); if(!lua_isboolean(L,2)) SWIG_fail_arg("Prelude::Connection::Connection",2,"bool"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_prelude_connection_t,0))){ SWIG_fail_ptr("new_Connection",1,SWIGTYPE_p_prelude_connection_t); } arg2 = (lua_toboolean(L, 2)!=0); { try { result = (Prelude::Connection *)new Prelude::Connection(arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__Connection,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_Connection__SWIG_4(lua_State* L) { int SWIG_arg = 0; prelude_connection_t *arg1 = (prelude_connection_t *) 0 ; Prelude::Connection *result = 0 ; SWIG_check_num_args("Prelude::Connection::Connection",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::Connection",1,"prelude_connection_t *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_prelude_connection_t,0))){ SWIG_fail_ptr("new_Connection",1,SWIGTYPE_p_prelude_connection_t); } { try { result = (Prelude::Connection *)new Prelude::Connection(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__Connection,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_Connection(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 0) { return _wrap_new_Connection__SWIG_0(L); } if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__Connection, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_Connection__SWIG_2(L); } } if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_prelude_connection_t, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_Connection__SWIG_4(L); } } if (argc == 1) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { return _wrap_new_Connection__SWIG_1(L); } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_prelude_connection_t, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isboolean(L,argv[1]); } if (_v) { return _wrap_new_Connection__SWIG_3(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_Connection'\n" " Possible C/C++ prototypes are:\n" " Prelude::Connection::Connection()\n" " Prelude::Connection::Connection(char const *)\n" " Prelude::Connection::Connection(Prelude::Connection const &)\n" " Prelude::Connection::Connection(prelude_connection_t *,bool)\n" " Prelude::Connection::Connection(prelude_connection_t *)\n"); lua_error(L);return 0; } static int _wrap_Connection_getConnection(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; prelude_connection_t *result = 0 ; SWIG_check_num_args("Prelude::Connection::getConnection",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::getConnection",1,"Prelude::Connection const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_getConnection",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (prelude_connection_t *)((Prelude::Connection const *)arg1)->getConnection(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_prelude_connection_t,0); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_close(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; SWIG_check_num_args("Prelude::Connection::close",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::close",1,"Prelude::Connection *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_close",1,SWIGTYPE_p_Prelude__Connection); } { try { (arg1)->close(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_connect(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; Prelude::ClientProfile *arg2 = 0 ; int arg3 ; SWIG_check_num_args("Prelude::Connection::connect",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::connect",1,"Prelude::Connection *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::Connection::connect",2,"Prelude::ClientProfile &"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::Connection::connect",3,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_connect",1,SWIGTYPE_p_Prelude__Connection); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("Connection_connect",2,SWIGTYPE_p_Prelude__ClientProfile); } arg3 = (int)lua_tonumber(L, 3); { try { (arg1)->connect(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_setState(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; int arg2 ; SWIG_check_num_args("Prelude::Connection::setState",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::setState",1,"Prelude::Connection *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::Connection::setState",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_setState",1,SWIGTYPE_p_Prelude__Connection); } arg2 = (int)lua_tonumber(L, 2); { try { (arg1)->setState(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_getState(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; int result; SWIG_check_num_args("Prelude::Connection::getState",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::getState",1,"Prelude::Connection const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_getState",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (int)((Prelude::Connection const *)arg1)->getState(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_setData(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *arg2 = (void *) 0 ; SWIG_check_num_args("Prelude::Connection::setData",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::setData",1,"Prelude::Connection *"); if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("Prelude::Connection::setData",2,"void *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_setData",1,SWIGTYPE_p_Prelude__Connection); } arg2=(void *)SWIG_MustGetPtr(L,2,0,0,2,"Connection_setData"); { try { (arg1)->setData(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_getData(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *result = 0 ; SWIG_check_num_args("Prelude::Connection::getData",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::getData",1,"Prelude::Connection const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_getData",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (void *)((Prelude::Connection const *)arg1)->getData(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_void,0); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_getPermission(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; int result; SWIG_check_num_args("Prelude::Connection::getPermission",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::getPermission",1,"Prelude::Connection const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_getPermission",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (int)((Prelude::Connection const *)arg1)->getPermission(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_setPeerAnalyzerid(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; uint64_t arg2 ; SWIG_check_num_args("Prelude::Connection::setPeerAnalyzerid",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::setPeerAnalyzerid",1,"Prelude::Connection *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::Connection::setPeerAnalyzerid",2,"uint64_t"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_setPeerAnalyzerid",1,SWIGTYPE_p_Prelude__Connection); } arg2 = (uint64_t)lua_tonumber(L, 2); { try { (arg1)->setPeerAnalyzerid(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_getPeerAnalyzerid(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; uint64_t result; SWIG_check_num_args("Prelude::Connection::getPeerAnalyzerid",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::getPeerAnalyzerid",1,"Prelude::Connection const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_getPeerAnalyzerid",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (uint64_t)((Prelude::Connection const *)arg1)->getPeerAnalyzerid(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_getLocalAddr(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; char *result = 0 ; SWIG_check_num_args("Prelude::Connection::getLocalAddr",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::getLocalAddr",1,"Prelude::Connection const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_getLocalAddr",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (char *)((Prelude::Connection const *)arg1)->getLocalAddr(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_getLocalPort(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; unsigned int result; SWIG_check_num_args("Prelude::Connection::getLocalPort",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::getLocalPort",1,"Prelude::Connection const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_getLocalPort",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (unsigned int)((Prelude::Connection const *)arg1)->getLocalPort(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_getPeerAddr(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; char *result = 0 ; SWIG_check_num_args("Prelude::Connection::getPeerAddr",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::getPeerAddr",1,"Prelude::Connection const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_getPeerAddr",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (char *)((Prelude::Connection const *)arg1)->getPeerAddr(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_getPeerPort(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; unsigned int result; SWIG_check_num_args("Prelude::Connection::getPeerPort",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::getPeerPort",1,"Prelude::Connection const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_getPeerPort",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (unsigned int)((Prelude::Connection const *)arg1)->getPeerPort(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_isAlive(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; bool result; SWIG_check_num_args("Prelude::Connection::isAlive",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::isAlive",1,"Prelude::Connection const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_isAlive",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (bool)((Prelude::Connection const *)arg1)->isAlive(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_getFd(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; int result; SWIG_check_num_args("Prelude::Connection::getFd",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::getFd",1,"Prelude::Connection const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_getFd",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (int)((Prelude::Connection const *)arg1)->getFd(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Connection_recvIDMEF(lua_State* L) { int SWIG_arg = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; Prelude::IDMEF result; SWIG_check_num_args("Prelude::Connection::recvIDMEF",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Connection::recvIDMEF",1,"Prelude::Connection *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("Connection_recvIDMEF",1,SWIGTYPE_p_Prelude__Connection); } { try { result = (arg1)->recvIDMEF(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { Prelude::IDMEF * resultptr = new Prelude::IDMEF((const Prelude::IDMEF &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_Prelude__IDMEF,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_Connection(void *obj) { Prelude::Connection *arg1 = (Prelude::Connection *) obj; delete arg1; } static int _proxy__wrap_new_Connection(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_Connection); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_Connection_attributes[] = { {0,0,0} }; static swig_lua_method swig_Connection_methods[]= { { "getConnection", _wrap_Connection_getConnection}, { "close", _wrap_Connection_close}, { "connect", _wrap_Connection_connect}, { "setState", _wrap_Connection_setState}, { "getState", _wrap_Connection_getState}, { "setData", _wrap_Connection_setData}, { "getData", _wrap_Connection_getData}, { "getPermission", _wrap_Connection_getPermission}, { "setPeerAnalyzerid", _wrap_Connection_setPeerAnalyzerid}, { "getPeerAnalyzerid", _wrap_Connection_getPeerAnalyzerid}, { "getLocalAddr", _wrap_Connection_getLocalAddr}, { "getLocalPort", _wrap_Connection_getLocalPort}, { "getPeerAddr", _wrap_Connection_getPeerAddr}, { "getPeerPort", _wrap_Connection_getPeerPort}, { "isAlive", _wrap_Connection_isAlive}, { "getFd", _wrap_Connection_getFd}, { "recvIDMEF", _wrap_Connection_recvIDMEF}, {0,0} }; static swig_lua_method swig_Connection_meta[] = { {0,0} }; static swig_lua_attribute swig_Connection_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_Connection_Sf_SwigStatic_constants[]= { {0,0,0,0,0,0} }; static swig_lua_method swig_Connection_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_Connection_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_Connection_Sf_SwigStatic = { "Connection", swig_Connection_Sf_SwigStatic_methods, swig_Connection_Sf_SwigStatic_attributes, swig_Connection_Sf_SwigStatic_constants, swig_Connection_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_Connection_bases[] = {0}; static const char *swig_Connection_base_names[] = {0}; static swig_lua_class _wrap_class_Connection = { "Connection", "Connection", &SWIGTYPE_p_Prelude__Connection,_proxy__wrap_new_Connection, swig_delete_Connection, swig_Connection_methods, swig_Connection_attributes, &swig_Connection_Sf_SwigStatic, swig_Connection_meta, swig_Connection_bases, swig_Connection_base_names }; static int _wrap_new_ConnectionPool__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *result = 0 ; SWIG_check_num_args("Prelude::ConnectionPool::ConnectionPool",0,0) { try { result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ConnectionPool,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ConnectionPool__SWIG_1(lua_State* L) { int SWIG_arg = 0; prelude_connection_pool_t *arg1 = (prelude_connection_pool_t *) 0 ; Prelude::ConnectionPool *result = 0 ; SWIG_check_num_args("Prelude::ConnectionPool::ConnectionPool",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::ConnectionPool",1,"prelude_connection_pool_t *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_prelude_connection_pool_t,0))){ SWIG_fail_ptr("new_ConnectionPool",1,SWIGTYPE_p_prelude_connection_pool_t); } { try { result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ConnectionPool,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ConnectionPool__SWIG_2(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = 0 ; Prelude::ConnectionPool *result = 0 ; SWIG_check_num_args("Prelude::ConnectionPool::ConnectionPool",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::ConnectionPool",1,"Prelude::ConnectionPool const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("new_ConnectionPool",1,SWIGTYPE_p_Prelude__ConnectionPool); } { try { result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool((Prelude::ConnectionPool const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ConnectionPool,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ConnectionPool__SWIG_3(lua_State* L) { int SWIG_arg = 0; Prelude::ClientProfile *arg1 = 0 ; int arg2 ; Prelude::ConnectionPool *result = 0 ; SWIG_check_num_args("Prelude::ConnectionPool::ConnectionPool",2,2) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::ConnectionPool",1,"Prelude::ClientProfile &"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::ConnectionPool::ConnectionPool",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ClientProfile,0))){ SWIG_fail_ptr("new_ConnectionPool",1,SWIGTYPE_p_Prelude__ClientProfile); } arg2 = (int)lua_tonumber(L, 2); { try { result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool(*arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ConnectionPool,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ConnectionPool(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 0) { return _wrap_new_ConnectionPool__SWIG_0(L); } if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_prelude_connection_pool_t, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_ConnectionPool__SWIG_1(L); } } if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__ConnectionPool, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_ConnectionPool__SWIG_2(L); } } if (argc == 2) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__ClientProfile, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { return _wrap_new_ConnectionPool__SWIG_3(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_ConnectionPool'\n" " Possible C/C++ prototypes are:\n" " Prelude::ConnectionPool::ConnectionPool()\n" " Prelude::ConnectionPool::ConnectionPool(prelude_connection_pool_t *)\n" " Prelude::ConnectionPool::ConnectionPool(Prelude::ConnectionPool const &)\n" " Prelude::ConnectionPool::ConnectionPool(Prelude::ClientProfile &,int)\n"); lua_error(L);return 0; } static int _wrap_ConnectionPool_init(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; SWIG_check_num_args("Prelude::ConnectionPool::init",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::init",1,"Prelude::ConnectionPool *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_init",1,SWIGTYPE_p_Prelude__ConnectionPool); } { try { (arg1)->init(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ConnectionPool_setConnectionString(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; char *arg2 = (char *) 0 ; SWIG_check_num_args("Prelude::ConnectionPool::setConnectionString",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::setConnectionString",1,"Prelude::ConnectionPool *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::ConnectionPool::setConnectionString",2,"char const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_setConnectionString",1,SWIGTYPE_p_Prelude__ConnectionPool); } arg2 = (char *)lua_tostring(L, 2); { try { (arg1)->setConnectionString((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ConnectionPool_getConnectionString(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; char *result = 0 ; SWIG_check_num_args("Prelude::ConnectionPool::getConnectionString",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::getConnectionString",1,"Prelude::ConnectionPool const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_getConnectionString",1,SWIGTYPE_p_Prelude__ConnectionPool); } { try { result = (char *)((Prelude::ConnectionPool const *)arg1)->getConnectionString(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ConnectionPool_getConnectionList(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; std::vector< Prelude::Connection > result; SWIG_check_num_args("Prelude::ConnectionPool::getConnectionList",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::getConnectionList",1,"Prelude::ConnectionPool const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_getConnectionList",1,SWIGTYPE_p_Prelude__ConnectionPool); } { try { result = ((Prelude::ConnectionPool const *)arg1)->getConnectionList(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { std::vector< Prelude::Connection > * resultptr = new std::vector< Prelude::Connection >((const std::vector< Prelude::Connection > &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_std__vectorT_Prelude__Connection_t,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ConnectionPool_setFlags(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; int arg2 ; SWIG_check_num_args("Prelude::ConnectionPool::setFlags",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::setFlags",1,"Prelude::ConnectionPool *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::ConnectionPool::setFlags",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_setFlags",1,SWIGTYPE_p_Prelude__ConnectionPool); } arg2 = (int)lua_tonumber(L, 2); { try { (arg1)->setFlags(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ConnectionPool_getFlags(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; int result; SWIG_check_num_args("Prelude::ConnectionPool::getFlags",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::getFlags",1,"Prelude::ConnectionPool const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_getFlags",1,SWIGTYPE_p_Prelude__ConnectionPool); } { try { result = (int)((Prelude::ConnectionPool const *)arg1)->getFlags(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ConnectionPool_setData(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *arg2 = (void *) 0 ; SWIG_check_num_args("Prelude::ConnectionPool::setData",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::setData",1,"Prelude::ConnectionPool *"); if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("Prelude::ConnectionPool::setData",2,"void *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_setData",1,SWIGTYPE_p_Prelude__ConnectionPool); } arg2=(void *)SWIG_MustGetPtr(L,2,0,0,2,"ConnectionPool_setData"); { try { (arg1)->setData(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ConnectionPool_getData(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *result = 0 ; SWIG_check_num_args("Prelude::ConnectionPool::getData",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::getData",1,"Prelude::ConnectionPool const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_getData",1,SWIGTYPE_p_Prelude__ConnectionPool); } { try { result = (void *)((Prelude::ConnectionPool const *)arg1)->getData(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_void,0); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ConnectionPool_addConnection(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection arg2 ; Prelude::Connection *argp2 ; SWIG_check_num_args("Prelude::ConnectionPool::addConnection",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::addConnection",1,"Prelude::ConnectionPool *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::ConnectionPool::addConnection",2,"Prelude::Connection"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_addConnection",1,SWIGTYPE_p_Prelude__ConnectionPool); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&argp2,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("ConnectionPool_addConnection",2,SWIGTYPE_p_Prelude__Connection); } arg2 = *argp2; { try { (arg1)->addConnection(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ConnectionPool_delConnection(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection arg2 ; Prelude::Connection *argp2 ; SWIG_check_num_args("Prelude::ConnectionPool::delConnection",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::delConnection",1,"Prelude::ConnectionPool *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::ConnectionPool::delConnection",2,"Prelude::Connection"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_delConnection",1,SWIGTYPE_p_Prelude__ConnectionPool); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&argp2,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("ConnectionPool_delConnection",2,SWIGTYPE_p_Prelude__Connection); } arg2 = *argp2; { try { (arg1)->delConnection(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ConnectionPool_setConnectionAlive(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection *arg2 = 0 ; SWIG_check_num_args("Prelude::ConnectionPool::setConnectionAlive",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::setConnectionAlive",1,"Prelude::ConnectionPool *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::ConnectionPool::setConnectionAlive",2,"Prelude::Connection &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_setConnectionAlive",1,SWIGTYPE_p_Prelude__ConnectionPool); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("ConnectionPool_setConnectionAlive",2,SWIGTYPE_p_Prelude__Connection); } { try { (arg1)->setConnectionAlive(*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ConnectionPool_setConnectionDead(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection *arg2 = 0 ; SWIG_check_num_args("Prelude::ConnectionPool::setConnectionDead",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::setConnectionDead",1,"Prelude::ConnectionPool *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::ConnectionPool::setConnectionDead",2,"Prelude::Connection &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_setConnectionDead",1,SWIGTYPE_p_Prelude__ConnectionPool); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__Connection,0))){ SWIG_fail_ptr("ConnectionPool_setConnectionDead",2,SWIGTYPE_p_Prelude__Connection); } { try { (arg1)->setConnectionDead(*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_ConnectionPool_setRequiredPermission(lua_State* L) { int SWIG_arg = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; int arg2 ; SWIG_check_num_args("Prelude::ConnectionPool::setRequiredPermission",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::ConnectionPool::setRequiredPermission",1,"Prelude::ConnectionPool *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::ConnectionPool::setRequiredPermission",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("ConnectionPool_setRequiredPermission",1,SWIGTYPE_p_Prelude__ConnectionPool); } arg2 = (int)lua_tonumber(L, 2); { try { (arg1)->setRequiredPermission(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_ConnectionPool(void *obj) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) obj; delete arg1; } static int _proxy__wrap_new_ConnectionPool(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_ConnectionPool); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_ConnectionPool_attributes[] = { {0,0,0} }; static swig_lua_method swig_ConnectionPool_methods[]= { { "init", _wrap_ConnectionPool_init}, { "setConnectionString", _wrap_ConnectionPool_setConnectionString}, { "getConnectionString", _wrap_ConnectionPool_getConnectionString}, { "getConnectionList", _wrap_ConnectionPool_getConnectionList}, { "setFlags", _wrap_ConnectionPool_setFlags}, { "getFlags", _wrap_ConnectionPool_getFlags}, { "setData", _wrap_ConnectionPool_setData}, { "getData", _wrap_ConnectionPool_getData}, { "addConnection", _wrap_ConnectionPool_addConnection}, { "delConnection", _wrap_ConnectionPool_delConnection}, { "setConnectionAlive", _wrap_ConnectionPool_setConnectionAlive}, { "setConnectionDead", _wrap_ConnectionPool_setConnectionDead}, { "setRequiredPermission", _wrap_ConnectionPool_setRequiredPermission}, {0,0} }; static swig_lua_method swig_ConnectionPool_meta[] = { {0,0} }; static swig_lua_attribute swig_ConnectionPool_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_ConnectionPool_Sf_SwigStatic_constants[]= { {0,0,0,0,0,0} }; static swig_lua_method swig_ConnectionPool_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_ConnectionPool_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_ConnectionPool_Sf_SwigStatic = { "ConnectionPool", swig_ConnectionPool_Sf_SwigStatic_methods, swig_ConnectionPool_Sf_SwigStatic_attributes, swig_ConnectionPool_Sf_SwigStatic_constants, swig_ConnectionPool_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_ConnectionPool_bases[] = {0}; static const char *swig_ConnectionPool_base_names[] = {0}; static swig_lua_class _wrap_class_ConnectionPool = { "ConnectionPool", "ConnectionPool", &SWIGTYPE_p_Prelude__ConnectionPool,_proxy__wrap_new_ConnectionPool, swig_delete_ConnectionPool, swig_ConnectionPool_methods, swig_ConnectionPool_attributes, &swig_ConnectionPool_Sf_SwigStatic, swig_ConnectionPool_meta, swig_ConnectionPool_bases, swig_ConnectionPool_base_names }; static int _wrap_new_Client__SWIG_0(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; Prelude::Client *result = 0 ; SWIG_check_num_args("Prelude::Client::Client",1,1) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::Client::Client",1,"char const *"); arg1 = (char *)lua_tostring(L, 1); { try { result = (Prelude::Client *)new Prelude::Client((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__Client,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_Client__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = 0 ; Prelude::Client *result = 0 ; SWIG_check_num_args("Prelude::Client::Client",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::Client::Client",1,"Prelude::Client const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("new_Client",1,SWIGTYPE_p_Prelude__Client); } { try { result = (Prelude::Client *)new Prelude::Client((Prelude::Client const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__Client,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_Client(lua_State* L) { int argc; int argv[2]={ 1,2 }; argc = lua_gettop(L); if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__Client, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_Client__SWIG_1(L); } } if (argc == 1) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { return _wrap_new_Client__SWIG_0(L); } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_Client'\n" " Possible C/C++ prototypes are:\n" " Prelude::Client::Client(char const *)\n" " Prelude::Client::Client(Prelude::Client const &)\n"); lua_error(L);return 0; } static int _wrap_Client_start(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; SWIG_check_num_args("Prelude::Client::start",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::start",1,"Prelude::Client *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_start",1,SWIGTYPE_p_Prelude__Client); } { try { (arg1)->start(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_init(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; SWIG_check_num_args("Prelude::Client::init",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::init",1,"Prelude::Client *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_init",1,SWIGTYPE_p_Prelude__Client); } { try { (arg1)->init(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_getClient(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; prelude_client_t *result = 0 ; SWIG_check_num_args("Prelude::Client::getClient",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::getClient",1,"Prelude::Client const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_getClient",1,SWIGTYPE_p_Prelude__Client); } { try { result = (prelude_client_t *)((Prelude::Client const *)arg1)->getClient(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_prelude_client_t,0); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_sendIDMEF(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; SWIG_check_num_args("Prelude::Client::sendIDMEF",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::sendIDMEF",1,"Prelude::Client *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::Client::sendIDMEF",2,"Prelude::IDMEF const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_sendIDMEF",1,SWIGTYPE_p_Prelude__Client); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("Client_sendIDMEF",2,SWIGTYPE_p_Prelude__IDMEF); } { try { (arg1)->sendIDMEF((Prelude::IDMEF const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_recvIDMEF__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; int arg3 ; int result; SWIG_check_num_args("Prelude::Client::recvIDMEF",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::recvIDMEF",1,"Prelude::Client *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::Client::recvIDMEF",2,"Prelude::IDMEF &"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::Client::recvIDMEF",3,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_recvIDMEF",1,SWIGTYPE_p_Prelude__Client); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("Client_recvIDMEF",2,SWIGTYPE_p_Prelude__IDMEF); } arg3 = (int)lua_tonumber(L, 3); { try { result = (int)(arg1)->recvIDMEF(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_recvIDMEF__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; int result; SWIG_check_num_args("Prelude::Client::recvIDMEF",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::recvIDMEF",1,"Prelude::Client *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::Client::recvIDMEF",2,"Prelude::IDMEF &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_recvIDMEF",1,SWIGTYPE_p_Prelude__Client); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("Client_recvIDMEF",2,SWIGTYPE_p_Prelude__IDMEF); } { try { result = (int)(arg1)->recvIDMEF(*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_recvIDMEF(lua_State* L) { int argc; int argv[4]={ 1,2,3,4 }; argc = lua_gettop(L); if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__Client, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_Client_recvIDMEF__SWIG_1(L); } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__Client, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_Client_recvIDMEF__SWIG_0(L); } } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'Client_recvIDMEF'\n" " Possible C/C++ prototypes are:\n" " Prelude::Client::recvIDMEF(Prelude::IDMEF &,int)\n" " Prelude::Client::recvIDMEF(Prelude::IDMEF &)\n"); lua_error(L);return 0; } static int _wrap_Client_getFlags(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; int result; SWIG_check_num_args("Prelude::Client::getFlags",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::getFlags",1,"Prelude::Client const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_getFlags",1,SWIGTYPE_p_Prelude__Client); } { try { result = (int)((Prelude::Client const *)arg1)->getFlags(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_setFlags(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; int arg2 ; SWIG_check_num_args("Prelude::Client::setFlags",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::setFlags",1,"Prelude::Client *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::Client::setFlags",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_setFlags",1,SWIGTYPE_p_Prelude__Client); } arg2 = (int)lua_tonumber(L, 2); { try { (arg1)->setFlags(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_getRequiredPermission(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; int result; SWIG_check_num_args("Prelude::Client::getRequiredPermission",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::getRequiredPermission",1,"Prelude::Client const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_getRequiredPermission",1,SWIGTYPE_p_Prelude__Client); } { try { result = (int)((Prelude::Client const *)arg1)->getRequiredPermission(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_setRequiredPermission(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; int arg2 ; SWIG_check_num_args("Prelude::Client::setRequiredPermission",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::setRequiredPermission",1,"Prelude::Client *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::Client::setRequiredPermission",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_setRequiredPermission",1,SWIGTYPE_p_Prelude__Client); } arg2 = (int)lua_tonumber(L, 2); { try { (arg1)->setRequiredPermission(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_getConfigFilename(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; char *result = 0 ; SWIG_check_num_args("Prelude::Client::getConfigFilename",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::getConfigFilename",1,"Prelude::Client const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_getConfigFilename",1,SWIGTYPE_p_Prelude__Client); } { try { result = (char *)((Prelude::Client const *)arg1)->getConfigFilename(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_setConfigFilename(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; char *arg2 = (char *) 0 ; SWIG_check_num_args("Prelude::Client::setConfigFilename",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::setConfigFilename",1,"Prelude::Client *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::Client::setConfigFilename",2,"char const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_setConfigFilename",1,SWIGTYPE_p_Prelude__Client); } arg2 = (char *)lua_tostring(L, 2); { try { (arg1)->setConfigFilename((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_getConnectionPool(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::ConnectionPool *result = 0 ; SWIG_check_num_args("Prelude::Client::getConnectionPool",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::getConnectionPool",1,"Prelude::Client *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_getConnectionPool",1,SWIGTYPE_p_Prelude__Client); } { try { result = (Prelude::ConnectionPool *) &(arg1)->getConnectionPool(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ConnectionPool,0); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_setConnectionPool(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::ConnectionPool arg2 ; Prelude::ConnectionPool *argp2 ; SWIG_check_num_args("Prelude::Client::setConnectionPool",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::Client::setConnectionPool",1,"Prelude::Client *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::Client::setConnectionPool",2,"Prelude::ConnectionPool"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_setConnectionPool",1,SWIGTYPE_p_Prelude__Client); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&argp2,SWIGTYPE_p_Prelude__ConnectionPool,0))){ SWIG_fail_ptr("Client_setConnectionPool",2,SWIGTYPE_p_Prelude__ConnectionPool); } arg2 = *argp2; { try { (arg1)->setConnectionPool(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_Client_setRecvTimeout(lua_State* L) { int SWIG_arg = 0; Prelude::Client *arg1 = 0 ; int arg2 ; Prelude::Client *result = 0 ; SWIG_check_num_args("Prelude::Client::setRecvTimeout",2,2) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::Client::setRecvTimeout",1,"Prelude::Client &"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::Client::setRecvTimeout",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__Client,0))){ SWIG_fail_ptr("Client_setRecvTimeout",1,SWIGTYPE_p_Prelude__Client); } arg2 = (int)lua_tonumber(L, 2); { try { result = (Prelude::Client *) &Prelude::Client::setRecvTimeout(*arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__Client,0); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_Client(void *obj) { Prelude::Client *arg1 = (Prelude::Client *) obj; delete arg1; } static int _proxy__wrap_new_Client(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_Client); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_Client_attributes[] = { {0,0,0} }; static swig_lua_method swig_Client_methods[]= { { "start", _wrap_Client_start}, { "init", _wrap_Client_init}, { "getClient", _wrap_Client_getClient}, { "sendIDMEF", _wrap_Client_sendIDMEF}, { "recvIDMEF", _wrap_Client_recvIDMEF}, { "getFlags", _wrap_Client_getFlags}, { "setFlags", _wrap_Client_setFlags}, { "getRequiredPermission", _wrap_Client_getRequiredPermission}, { "setRequiredPermission", _wrap_Client_setRequiredPermission}, { "getConfigFilename", _wrap_Client_getConfigFilename}, { "setConfigFilename", _wrap_Client_setConfigFilename}, { "getConnectionPool", _wrap_Client_getConnectionPool}, { "setConnectionPool", _wrap_Client_setConnectionPool}, {0,0} }; static swig_lua_method swig_Client_meta[] = { {0,0} }; static swig_lua_attribute swig_Client_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_Client_Sf_SwigStatic_constants[]= { {SWIG_LUA_CONSTTAB_INT("ASYNC_SEND", Prelude::Client::ASYNC_SEND)}, {SWIG_LUA_CONSTTAB_INT("FLAGS_ASYNC_SEND", Prelude::Client::FLAGS_ASYNC_SEND)}, {SWIG_LUA_CONSTTAB_INT("ASYNC_TIMER", Prelude::Client::ASYNC_TIMER)}, {SWIG_LUA_CONSTTAB_INT("FLAGS_ASYNC_TIMER", Prelude::Client::FLAGS_ASYNC_TIMER)}, {SWIG_LUA_CONSTTAB_INT("HEARTBEAT", Prelude::Client::HEARTBEAT)}, {SWIG_LUA_CONSTTAB_INT("FLAGS_HEARTBEAT", Prelude::Client::FLAGS_HEARTBEAT)}, {SWIG_LUA_CONSTTAB_INT("CONNECT", Prelude::Client::CONNECT)}, {SWIG_LUA_CONSTTAB_INT("FLAGS_CONNECT", Prelude::Client::FLAGS_CONNECT)}, {SWIG_LUA_CONSTTAB_INT("AUTOCONFIG", Prelude::Client::AUTOCONFIG)}, {SWIG_LUA_CONSTTAB_INT("FLAGS_AUTOCONFIG", Prelude::Client::FLAGS_AUTOCONFIG)}, {SWIG_LUA_CONSTTAB_INT("IDMEF_READ", Prelude::Client::IDMEF_READ)}, {SWIG_LUA_CONSTTAB_INT("PERMISSION_IDMEF_READ", Prelude::Client::PERMISSION_IDMEF_READ)}, {SWIG_LUA_CONSTTAB_INT("ADMIN_READ", Prelude::Client::ADMIN_READ)}, {SWIG_LUA_CONSTTAB_INT("PERMISSION_ADMIN_READ", Prelude::Client::PERMISSION_ADMIN_READ)}, {SWIG_LUA_CONSTTAB_INT("IDMEF_WRITE", Prelude::Client::IDMEF_WRITE)}, {SWIG_LUA_CONSTTAB_INT("PERMISSION_IDMEF_WRITE", Prelude::Client::PERMISSION_IDMEF_WRITE)}, {SWIG_LUA_CONSTTAB_INT("ADMIN_WRITE", Prelude::Client::ADMIN_WRITE)}, {SWIG_LUA_CONSTTAB_INT("PERMISSION_ADMIN_WRITE", Prelude::Client::PERMISSION_ADMIN_WRITE)}, {0,0,0,0,0,0} }; static swig_lua_method swig_Client_Sf_SwigStatic_methods[]= { { "setRecvTimeout", _wrap_Client_setRecvTimeout}, {0,0} }; static swig_lua_class* swig_Client_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_Client_Sf_SwigStatic = { "Client", swig_Client_Sf_SwigStatic_methods, swig_Client_Sf_SwigStatic_attributes, swig_Client_Sf_SwigStatic_constants, swig_Client_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_Client_bases[] = {0,0}; static const char *swig_Client_base_names[] = {"Prelude::ClientProfile *",0}; static swig_lua_class _wrap_class_Client = { "Client", "Client", &SWIGTYPE_p_Prelude__Client,_proxy__wrap_new_Client, swig_delete_Client, swig_Client_methods, swig_Client_attributes, &swig_Client_Sf_SwigStatic, swig_Client_meta, swig_Client_bases, swig_Client_base_names }; static int _wrap_PreludeLog_setLevel(lua_State* L) { int SWIG_arg = 0; int arg1 ; SWIG_check_num_args("Prelude::PreludeLog::setLevel",1,1) if(!lua_isnumber(L,1)) SWIG_fail_arg("Prelude::PreludeLog::setLevel",1,"int"); arg1 = (int)lua_tonumber(L, 1); { try { Prelude::PreludeLog::setLevel(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_PreludeLog_setDebugLevel(lua_State* L) { int SWIG_arg = 0; int arg1 ; SWIG_check_num_args("Prelude::PreludeLog::setDebugLevel",1,1) if(!lua_isnumber(L,1)) SWIG_fail_arg("Prelude::PreludeLog::setDebugLevel",1,"int"); arg1 = (int)lua_tonumber(L, 1); { try { Prelude::PreludeLog::setDebugLevel(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_PreludeLog_setFlags(lua_State* L) { int SWIG_arg = 0; int arg1 ; SWIG_check_num_args("Prelude::PreludeLog::setFlags",1,1) if(!lua_isnumber(L,1)) SWIG_fail_arg("Prelude::PreludeLog::setFlags",1,"int"); arg1 = (int)lua_tonumber(L, 1); { try { Prelude::PreludeLog::setFlags(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_PreludeLog_getFlags(lua_State* L) { int SWIG_arg = 0; int result; SWIG_check_num_args("Prelude::PreludeLog::getFlags",0,0) { try { result = (int)Prelude::PreludeLog::getFlags(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_PreludeLog_setLogfile(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; SWIG_check_num_args("Prelude::PreludeLog::setLogfile",1,1) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::PreludeLog::setLogfile",1,"char const *"); arg1 = (char *)lua_tostring(L, 1); { try { Prelude::PreludeLog::setLogfile((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_PreludeLog_setCallback(lua_State* L) { int SWIG_arg = 0; void (*arg1)(int,char const *) = (void (*)(int,char const *)) 0 ; SWIG_check_num_args("Prelude::PreludeLog::setCallback",1,1) { if ( ! lua_isfunction(L, -1) ) SWIG_exception(SWIG_ValueError, "Argument should be a function"); if ( __lua_state ) luaL_unref(L, LUA_REGISTRYINDEX, __prelude_log_func); __prelude_log_func = luaL_ref(L, LUA_REGISTRYINDEX); arg1 = _cb_lua_log; __lua_state = L; } { try { Prelude::PreludeLog::setCallback(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_PreludeLog(lua_State* L) { int SWIG_arg = 0; Prelude::PreludeLog *result = 0 ; SWIG_check_num_args("Prelude::PreludeLog::PreludeLog",0,0) { try { result = (Prelude::PreludeLog *)new Prelude::PreludeLog(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__PreludeLog,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_PreludeLog(void *obj) { Prelude::PreludeLog *arg1 = (Prelude::PreludeLog *) obj; delete arg1; } static int _proxy__wrap_new_PreludeLog(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_PreludeLog); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_PreludeLog_attributes[] = { {0,0,0} }; static swig_lua_method swig_PreludeLog_methods[]= { {0,0} }; static swig_lua_method swig_PreludeLog_meta[] = { {0,0} }; static swig_lua_attribute swig_PreludeLog_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_PreludeLog_Sf_SwigStatic_constants[]= { {SWIG_LUA_CONSTTAB_INT("DEBUG", Prelude::PreludeLog::DEBUG)}, {SWIG_LUA_CONSTTAB_INT("INFO", Prelude::PreludeLog::INFO)}, {SWIG_LUA_CONSTTAB_INT("WARNING", Prelude::PreludeLog::WARNING)}, {SWIG_LUA_CONSTTAB_INT("ERROR", Prelude::PreludeLog::ERROR)}, {SWIG_LUA_CONSTTAB_INT("CRITICAL", Prelude::PreludeLog::CRITICAL)}, {SWIG_LUA_CONSTTAB_INT("QUIET", Prelude::PreludeLog::QUIET)}, {SWIG_LUA_CONSTTAB_INT("SYSLOG", Prelude::PreludeLog::SYSLOG)}, {0,0,0,0,0,0} }; static swig_lua_method swig_PreludeLog_Sf_SwigStatic_methods[]= { { "setLevel", _wrap_PreludeLog_setLevel}, { "setDebugLevel", _wrap_PreludeLog_setDebugLevel}, { "setFlags", _wrap_PreludeLog_setFlags}, { "getFlags", _wrap_PreludeLog_getFlags}, { "setLogfile", _wrap_PreludeLog_setLogfile}, { "setCallback", _wrap_PreludeLog_setCallback}, {0,0} }; static swig_lua_class* swig_PreludeLog_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_PreludeLog_Sf_SwigStatic = { "PreludeLog", swig_PreludeLog_Sf_SwigStatic_methods, swig_PreludeLog_Sf_SwigStatic_attributes, swig_PreludeLog_Sf_SwigStatic_constants, swig_PreludeLog_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_PreludeLog_bases[] = {0}; static const char *swig_PreludeLog_base_names[] = {0}; static swig_lua_class _wrap_class_PreludeLog = { "PreludeLog", "PreludeLog", &SWIGTYPE_p_Prelude__PreludeLog,_proxy__wrap_new_PreludeLog, swig_delete_PreludeLog, swig_PreludeLog_methods, swig_PreludeLog_attributes, &swig_PreludeLog_Sf_SwigStatic, swig_PreludeLog_meta, swig_PreludeLog_bases, swig_PreludeLog_base_names }; static int _wrap_new_PreludeError__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::PreludeError *result = 0 ; SWIG_check_num_args("Prelude::PreludeError::PreludeError",0,0) { try { result = (Prelude::PreludeError *)new Prelude::PreludeError(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__PreludeError,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_PreludeError__SWIG_1(lua_State* L) { int SWIG_arg = 0; int arg1 ; Prelude::PreludeError *result = 0 ; SWIG_check_num_args("Prelude::PreludeError::PreludeError",1,1) if(!lua_isnumber(L,1)) SWIG_fail_arg("Prelude::PreludeError::PreludeError",1,"int"); arg1 = (int)lua_tonumber(L, 1); { try { result = (Prelude::PreludeError *)new Prelude::PreludeError(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__PreludeError,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_PreludeError__SWIG_2(lua_State* L) { int SWIG_arg = 0; std::string *arg1 = 0 ; std::string temp1 ; Prelude::PreludeError *result = 0 ; SWIG_check_num_args("Prelude::PreludeError::PreludeError",1,1) if(!lua_isstring(L,1)) SWIG_fail_arg("Prelude::PreludeError::PreludeError",1,"std::string const &"); temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1; { try { result = (Prelude::PreludeError *)new Prelude::PreludeError((std::string const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__PreludeError,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_PreludeError(lua_State* L) { int argc; int argv[2]={ 1,2 }; argc = lua_gettop(L); if (argc == 0) { return _wrap_new_PreludeError__SWIG_0(L); } if (argc == 1) { int _v; { _v = lua_isnumber(L,argv[0]); } if (_v) { return _wrap_new_PreludeError__SWIG_1(L); } } if (argc == 1) { int _v; { _v = lua_isstring(L,argv[0]); } if (_v) { return _wrap_new_PreludeError__SWIG_2(L); } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_PreludeError'\n" " Possible C/C++ prototypes are:\n" " Prelude::PreludeError::PreludeError()\n" " Prelude::PreludeError::PreludeError(int)\n" " Prelude::PreludeError::PreludeError(std::string const &)\n"); lua_error(L);return 0; } static int _wrap_PreludeError_getCode(lua_State* L) { int SWIG_arg = 0; Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; int result; SWIG_check_num_args("Prelude::PreludeError::getCode",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::PreludeError::getCode",1,"Prelude::PreludeError const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__PreludeError,0))){ SWIG_fail_ptr("PreludeError_getCode",1,SWIGTYPE_p_Prelude__PreludeError); } { try { result = (int)((Prelude::PreludeError const *)arg1)->getCode(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_PreludeError_what(lua_State* L) { int SWIG_arg = 0; Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; char *result = 0 ; SWIG_check_num_args("Prelude::PreludeError::what",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::PreludeError::what",1,"Prelude::PreludeError const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__PreludeError,0))){ SWIG_fail_ptr("PreludeError_what",1,SWIGTYPE_p_Prelude__PreludeError); } { try { result = (char *)((Prelude::PreludeError const *)arg1)->what(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_PreludeError___str__(lua_State* L) { int SWIG_arg = 0; Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; char *result = 0 ; SWIG_check_num_args("Prelude::PreludeError::operator const char*",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::PreludeError::operator const char*",1,"Prelude::PreludeError const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__PreludeError,0))){ SWIG_fail_ptr("PreludeError___str__",1,SWIGTYPE_p_Prelude__PreludeError); } { try { result = (char *)((Prelude::PreludeError const *)arg1)->operator const char*(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_PreludeError(void *obj) { Prelude::PreludeError *arg1 = (Prelude::PreludeError *) obj; delete arg1; } static int _proxy__wrap_new_PreludeError(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_PreludeError); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_PreludeError_attributes[] = { {0,0,0} }; static swig_lua_method swig_PreludeError_methods[]= { { "getCode", _wrap_PreludeError_getCode}, { "what", _wrap_PreludeError_what}, { "__str__", _wrap_PreludeError___str__}, {0,0} }; static swig_lua_method swig_PreludeError_meta[] = { { "__str__", _wrap_PreludeError___str__}, {0,0} }; static swig_lua_attribute swig_PreludeError_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_PreludeError_Sf_SwigStatic_constants[]= { {0,0,0,0,0,0} }; static swig_lua_method swig_PreludeError_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_PreludeError_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_PreludeError_Sf_SwigStatic = { "PreludeError", swig_PreludeError_Sf_SwigStatic_methods, swig_PreludeError_Sf_SwigStatic_attributes, swig_PreludeError_Sf_SwigStatic_constants, swig_PreludeError_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_PreludeError_bases[] = {0}; static const char *swig_PreludeError_base_names[] = {0}; static swig_lua_class _wrap_class_PreludeError = { "PreludeError", "PreludeError", &SWIGTYPE_p_Prelude__PreludeError,_proxy__wrap_new_PreludeError, swig_delete_PreludeError, swig_PreludeError_methods, swig_PreludeError_attributes, &swig_PreludeError_Sf_SwigStatic, swig_PreludeError_meta, swig_PreludeError_bases, swig_PreludeError_base_names }; static int _wrap_new_ClientEasy__SWIG_0(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; int arg2 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; char *arg5 = (char *) 0 ; char *arg6 = (char *) 0 ; Prelude::ClientEasy *result = 0 ; SWIG_check_num_args("Prelude::ClientEasy::ClientEasy",6,6) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",1,"char const *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",2,"int"); if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",3,"char const *"); if(!SWIG_lua_isnilstring(L,4)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",4,"char const *"); if(!SWIG_lua_isnilstring(L,5)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",5,"char const *"); if(!SWIG_lua_isnilstring(L,6)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",6,"char const *"); arg1 = (char *)lua_tostring(L, 1); arg2 = (int)lua_tonumber(L, 2); arg3 = (char *)lua_tostring(L, 3); arg4 = (char *)lua_tostring(L, 4); arg5 = (char *)lua_tostring(L, 5); arg6 = (char *)lua_tostring(L, 6); { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ClientEasy,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ClientEasy__SWIG_1(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; int arg2 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; char *arg5 = (char *) 0 ; Prelude::ClientEasy *result = 0 ; SWIG_check_num_args("Prelude::ClientEasy::ClientEasy",5,5) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",1,"char const *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",2,"int"); if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",3,"char const *"); if(!SWIG_lua_isnilstring(L,4)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",4,"char const *"); if(!SWIG_lua_isnilstring(L,5)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",5,"char const *"); arg1 = (char *)lua_tostring(L, 1); arg2 = (int)lua_tonumber(L, 2); arg3 = (char *)lua_tostring(L, 3); arg4 = (char *)lua_tostring(L, 4); arg5 = (char *)lua_tostring(L, 5); { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ClientEasy,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ClientEasy__SWIG_2(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; int arg2 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; Prelude::ClientEasy *result = 0 ; SWIG_check_num_args("Prelude::ClientEasy::ClientEasy",4,4) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",1,"char const *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",2,"int"); if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",3,"char const *"); if(!SWIG_lua_isnilstring(L,4)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",4,"char const *"); arg1 = (char *)lua_tostring(L, 1); arg2 = (int)lua_tonumber(L, 2); arg3 = (char *)lua_tostring(L, 3); arg4 = (char *)lua_tostring(L, 4); { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ClientEasy,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ClientEasy__SWIG_3(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; int arg2 ; char *arg3 = (char *) 0 ; Prelude::ClientEasy *result = 0 ; SWIG_check_num_args("Prelude::ClientEasy::ClientEasy",3,3) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",1,"char const *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",2,"int"); if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",3,"char const *"); arg1 = (char *)lua_tostring(L, 1); arg2 = (int)lua_tonumber(L, 2); arg3 = (char *)lua_tostring(L, 3); { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1,arg2,(char const *)arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ClientEasy,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ClientEasy__SWIG_4(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; int arg2 ; Prelude::ClientEasy *result = 0 ; SWIG_check_num_args("Prelude::ClientEasy::ClientEasy",2,2) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",1,"char const *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",2,"int"); arg1 = (char *)lua_tostring(L, 1); arg2 = (int)lua_tonumber(L, 2); { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ClientEasy,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ClientEasy__SWIG_5(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; Prelude::ClientEasy *result = 0 ; SWIG_check_num_args("Prelude::ClientEasy::ClientEasy",1,1) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::ClientEasy::ClientEasy",1,"char const *"); arg1 = (char *)lua_tostring(L, 1); { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__ClientEasy,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_ClientEasy(lua_State* L) { int argc; int argv[7]={ 1,2,3,4,5,6,7 }; argc = lua_gettop(L); if (argc == 1) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { return _wrap_new_ClientEasy__SWIG_5(L); } } if (argc == 2) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { return _wrap_new_ClientEasy__SWIG_4(L); } } } if (argc == 3) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[2]); } if (_v) { return _wrap_new_ClientEasy__SWIG_3(L); } } } } if (argc == 4) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[2]); } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[3]); } if (_v) { return _wrap_new_ClientEasy__SWIG_2(L); } } } } } if (argc == 5) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[2]); } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[3]); } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[4]); } if (_v) { return _wrap_new_ClientEasy__SWIG_1(L); } } } } } } if (argc == 6) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[2]); } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[3]); } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[4]); } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[5]); } if (_v) { return _wrap_new_ClientEasy__SWIG_0(L); } } } } } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_ClientEasy'\n" " Possible C/C++ prototypes are:\n" " Prelude::ClientEasy::ClientEasy(char const *,int,char const *,char const *,char const *,char const *)\n" " Prelude::ClientEasy::ClientEasy(char const *,int,char const *,char const *,char const *)\n" " Prelude::ClientEasy::ClientEasy(char const *,int,char const *,char const *)\n" " Prelude::ClientEasy::ClientEasy(char const *,int,char const *)\n" " Prelude::ClientEasy::ClientEasy(char const *,int)\n" " Prelude::ClientEasy::ClientEasy(char const *)\n"); lua_error(L);return 0; } static void swig_delete_ClientEasy(void *obj) { Prelude::ClientEasy *arg1 = (Prelude::ClientEasy *) obj; delete arg1; } static int _proxy__wrap_new_ClientEasy(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_ClientEasy); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_ClientEasy_attributes[] = { {0,0,0} }; static swig_lua_method swig_ClientEasy_methods[]= { {0,0} }; static swig_lua_method swig_ClientEasy_meta[] = { {0,0} }; static swig_lua_attribute swig_ClientEasy_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_ClientEasy_Sf_SwigStatic_constants[]= { {0,0,0,0,0,0} }; static swig_lua_method swig_ClientEasy_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_ClientEasy_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_ClientEasy_Sf_SwigStatic = { "ClientEasy", swig_ClientEasy_Sf_SwigStatic_methods, swig_ClientEasy_Sf_SwigStatic_attributes, swig_ClientEasy_Sf_SwigStatic_constants, swig_ClientEasy_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_ClientEasy_bases[] = {0,0}; static const char *swig_ClientEasy_base_names[] = {"Prelude::Client *",0}; static swig_lua_class _wrap_class_ClientEasy = { "ClientEasy", "ClientEasy", &SWIGTYPE_p_Prelude__ClientEasy,_proxy__wrap_new_ClientEasy, swig_delete_ClientEasy, swig_ClientEasy_methods, swig_ClientEasy_attributes, &swig_ClientEasy_Sf_SwigStatic, swig_ClientEasy_meta, swig_ClientEasy_bases, swig_ClientEasy_base_names }; static int _wrap_new_IDMEFCriterion(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFCriterion *result = 0 ; SWIG_check_num_args("Prelude::IDMEFCriterion::IDMEFCriterion",0,0) { try { result = (Prelude::IDMEFCriterion *)new Prelude::IDMEFCriterion(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFCriterion,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_IDMEFCriterion(void *obj) { Prelude::IDMEFCriterion *arg1 = (Prelude::IDMEFCriterion *) obj; delete arg1; } static int _proxy__wrap_new_IDMEFCriterion(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_IDMEFCriterion); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_IDMEFCriterion_attributes[] = { {0,0,0} }; static swig_lua_method swig_IDMEFCriterion_methods[]= { {0,0} }; static swig_lua_method swig_IDMEFCriterion_meta[] = { {0,0} }; static swig_lua_attribute swig_IDMEFCriterion_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_IDMEFCriterion_Sf_SwigStatic_constants[]= { {SWIG_LUA_CONSTTAB_INT("OPERATOR_NOT", Prelude::IDMEFCriterion::OPERATOR_NOT)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_NOCASE", Prelude::IDMEFCriterion::OPERATOR_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_EQUAL", Prelude::IDMEFCriterion::OPERATOR_EQUAL)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_EQUAL_NOCASE", Prelude::IDMEFCriterion::OPERATOR_EQUAL_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_NOT_EQUAL", Prelude::IDMEFCriterion::OPERATOR_NOT_EQUAL)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_NOT_EQUAL_NOCASE", Prelude::IDMEFCriterion::OPERATOR_NOT_EQUAL_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_LESSER", Prelude::IDMEFCriterion::OPERATOR_LESSER)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_LESSER_OR_EQUAL", Prelude::IDMEFCriterion::OPERATOR_LESSER_OR_EQUAL)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_GREATER", Prelude::IDMEFCriterion::OPERATOR_GREATER)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_GREATER_OR_EQUAL", Prelude::IDMEFCriterion::OPERATOR_GREATER_OR_EQUAL)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_SUBSTR", Prelude::IDMEFCriterion::OPERATOR_SUBSTR)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_SUBSTR_NOCASE", Prelude::IDMEFCriterion::OPERATOR_SUBSTR_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_NOT_SUBSTR", Prelude::IDMEFCriterion::OPERATOR_NOT_SUBSTR)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_NOT_SUBSTR_NOCASE", Prelude::IDMEFCriterion::OPERATOR_NOT_SUBSTR_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_REGEX", Prelude::IDMEFCriterion::OPERATOR_REGEX)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_REGEX_NOCASE", Prelude::IDMEFCriterion::OPERATOR_REGEX_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_NOT_REGEX", Prelude::IDMEFCriterion::OPERATOR_NOT_REGEX)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_NOT_REGEX_NOCASE", Prelude::IDMEFCriterion::OPERATOR_NOT_REGEX_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_NULL", Prelude::IDMEFCriterion::OPERATOR_NULL)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_NOT_NULL", Prelude::IDMEFCriterion::OPERATOR_NOT_NULL)}, {0,0,0,0,0,0} }; static swig_lua_method swig_IDMEFCriterion_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_IDMEFCriterion_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_IDMEFCriterion_Sf_SwigStatic = { "IDMEFCriterion", swig_IDMEFCriterion_Sf_SwigStatic_methods, swig_IDMEFCriterion_Sf_SwigStatic_attributes, swig_IDMEFCriterion_Sf_SwigStatic_constants, swig_IDMEFCriterion_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_IDMEFCriterion_bases[] = {0}; static const char *swig_IDMEFCriterion_base_names[] = {0}; static swig_lua_class _wrap_class_IDMEFCriterion = { "IDMEFCriterion", "IDMEFCriterion", &SWIGTYPE_p_Prelude__IDMEFCriterion,_proxy__wrap_new_IDMEFCriterion, swig_delete_IDMEFCriterion, swig_IDMEFCriterion_methods, swig_IDMEFCriterion_attributes, &swig_IDMEFCriterion_Sf_SwigStatic, swig_IDMEFCriterion_meta, swig_IDMEFCriterion_bases, swig_IDMEFCriterion_base_names }; static int _wrap_new_IDMEFCriteria__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFCriteria *result = 0 ; SWIG_check_num_args("Prelude::IDMEFCriteria::IDMEFCriteria",0,0) { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFCriteria,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFCriteria__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFCriteria *arg1 = 0 ; Prelude::IDMEFCriteria *result = 0 ; SWIG_check_num_args("Prelude::IDMEFCriteria::IDMEFCriteria",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::IDMEFCriteria::IDMEFCriteria",1,"Prelude::IDMEFCriteria const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFCriteria,0))){ SWIG_fail_ptr("new_IDMEFCriteria",1,SWIGTYPE_p_Prelude__IDMEFCriteria); } { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria((Prelude::IDMEFCriteria const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFCriteria,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFCriteria__SWIG_2(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; Prelude::IDMEFCriteria *result = 0 ; SWIG_check_num_args("Prelude::IDMEFCriteria::IDMEFCriteria",1,1) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::IDMEFCriteria::IDMEFCriteria",1,"char const *"); arg1 = (char *)lua_tostring(L, 1); { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFCriteria,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFCriteria__SWIG_3(lua_State* L) { int SWIG_arg = 0; idmef_criteria_t *arg1 = (idmef_criteria_t *) 0 ; Prelude::IDMEFCriteria *result = 0 ; SWIG_check_num_args("Prelude::IDMEFCriteria::IDMEFCriteria",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFCriteria::IDMEFCriteria",1,"idmef_criteria_t *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_idmef_criteria_t,0))){ SWIG_fail_ptr("new_IDMEFCriteria",1,SWIGTYPE_p_idmef_criteria_t); } { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFCriteria,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFCriteria(lua_State* L) { int argc; int argv[2]={ 1,2 }; argc = lua_gettop(L); if (argc == 0) { return _wrap_new_IDMEFCriteria__SWIG_0(L); } if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFCriteria__SWIG_1(L); } } if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_idmef_criteria_t, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFCriteria__SWIG_3(L); } } if (argc == 1) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { return _wrap_new_IDMEFCriteria__SWIG_2(L); } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_IDMEFCriteria'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFCriteria::IDMEFCriteria()\n" " Prelude::IDMEFCriteria::IDMEFCriteria(Prelude::IDMEFCriteria const &)\n" " Prelude::IDMEFCriteria::IDMEFCriteria(char const *)\n" " Prelude::IDMEFCriteria::IDMEFCriteria(idmef_criteria_t *)\n"); lua_error(L);return 0; } static int _wrap_IDMEFCriteria_match(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEF *arg2 = (Prelude::IDMEF *) 0 ; int result; SWIG_check_num_args("Prelude::IDMEFCriteria::match",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFCriteria::match",1,"Prelude::IDMEFCriteria const *"); if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("Prelude::IDMEFCriteria::match",2,"Prelude::IDMEF *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFCriteria,0))){ SWIG_fail_ptr("IDMEFCriteria_match",1,SWIGTYPE_p_Prelude__IDMEFCriteria); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFCriteria_match",2,SWIGTYPE_p_Prelude__IDMEF); } { try { result = (int)((Prelude::IDMEFCriteria const *)arg1)->match(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFCriteria_clone(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEFCriteria result; SWIG_check_num_args("Prelude::IDMEFCriteria::clone",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFCriteria::clone",1,"Prelude::IDMEFCriteria const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFCriteria,0))){ SWIG_fail_ptr("IDMEFCriteria_clone",1,SWIGTYPE_p_Prelude__IDMEFCriteria); } { try { result = ((Prelude::IDMEFCriteria const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { Prelude::IDMEFCriteria * resultptr = new Prelude::IDMEFCriteria((const Prelude::IDMEFCriteria &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_Prelude__IDMEFCriteria,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFCriteria_andCriteria(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEFCriteria *arg2 = 0 ; SWIG_check_num_args("Prelude::IDMEFCriteria::andCriteria",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFCriteria::andCriteria",1,"Prelude::IDMEFCriteria *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFCriteria::andCriteria",2,"Prelude::IDMEFCriteria const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFCriteria,0))){ SWIG_fail_ptr("IDMEFCriteria_andCriteria",1,SWIGTYPE_p_Prelude__IDMEFCriteria); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFCriteria,0))){ SWIG_fail_ptr("IDMEFCriteria_andCriteria",2,SWIGTYPE_p_Prelude__IDMEFCriteria); } { try { (arg1)->andCriteria((Prelude::IDMEFCriteria const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFCriteria_orCriteria(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEFCriteria *arg2 = 0 ; SWIG_check_num_args("Prelude::IDMEFCriteria::orCriteria",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFCriteria::orCriteria",1,"Prelude::IDMEFCriteria *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFCriteria::orCriteria",2,"Prelude::IDMEFCriteria const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFCriteria,0))){ SWIG_fail_ptr("IDMEFCriteria_orCriteria",1,SWIGTYPE_p_Prelude__IDMEFCriteria); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFCriteria,0))){ SWIG_fail_ptr("IDMEFCriteria_orCriteria",2,SWIGTYPE_p_Prelude__IDMEFCriteria); } { try { (arg1)->orCriteria((Prelude::IDMEFCriteria const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFCriteria_toString(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; std::string result; SWIG_check_num_args("Prelude::IDMEFCriteria::toString",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFCriteria::toString",1,"Prelude::IDMEFCriteria const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFCriteria,0))){ SWIG_fail_ptr("IDMEFCriteria_toString",1,SWIGTYPE_p_Prelude__IDMEFCriteria); } { try { result = ((Prelude::IDMEFCriteria const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFCriteria___tostring(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; char *result = 0 ; SWIG_check_num_args("Prelude::IDMEFCriteria::__str__",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFCriteria::__str__",1,"Prelude::IDMEFCriteria *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFCriteria,0))){ SWIG_fail_ptr("IDMEFCriteria___tostring",1,SWIGTYPE_p_Prelude__IDMEFCriteria); } { try { result = (char *)Prelude_IDMEFCriteria___str__(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; delete [] result; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_IDMEFCriteria(void *obj) { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) obj; delete arg1; } static int _proxy__wrap_new_IDMEFCriteria(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_IDMEFCriteria); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_IDMEFCriteria_attributes[] = { {0,0,0} }; static swig_lua_method swig_IDMEFCriteria_methods[]= { { "match", _wrap_IDMEFCriteria_match}, { "clone", _wrap_IDMEFCriteria_clone}, { "andCriteria", _wrap_IDMEFCriteria_andCriteria}, { "orCriteria", _wrap_IDMEFCriteria_orCriteria}, { "toString", _wrap_IDMEFCriteria_toString}, { "__tostring", _wrap_IDMEFCriteria___tostring}, {0,0} }; static swig_lua_method swig_IDMEFCriteria_meta[] = { { "__tostring", _wrap_IDMEFCriteria___tostring}, {0,0} }; static swig_lua_attribute swig_IDMEFCriteria_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_IDMEFCriteria_Sf_SwigStatic_constants[]= { {SWIG_LUA_CONSTTAB_INT("OPERATOR_NOT", Prelude::IDMEFCriteria::OPERATOR_NOT)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_AND", Prelude::IDMEFCriteria::OPERATOR_AND)}, {SWIG_LUA_CONSTTAB_INT("OPERATOR_OR", Prelude::IDMEFCriteria::OPERATOR_OR)}, {0,0,0,0,0,0} }; static swig_lua_method swig_IDMEFCriteria_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_IDMEFCriteria_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_IDMEFCriteria_Sf_SwigStatic = { "IDMEFCriteria", swig_IDMEFCriteria_Sf_SwigStatic_methods, swig_IDMEFCriteria_Sf_SwigStatic_attributes, swig_IDMEFCriteria_Sf_SwigStatic_constants, swig_IDMEFCriteria_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_IDMEFCriteria_bases[] = {0}; static const char *swig_IDMEFCriteria_base_names[] = {0}; static swig_lua_class _wrap_class_IDMEFCriteria = { "IDMEFCriteria", "IDMEFCriteria", &SWIGTYPE_p_Prelude__IDMEFCriteria,_proxy__wrap_new_IDMEFCriteria, swig_delete_IDMEFCriteria, swig_IDMEFCriteria_methods, swig_IDMEFCriteria_attributes, &swig_IDMEFCriteria_Sf_SwigStatic, swig_IDMEFCriteria_meta, swig_IDMEFCriteria_bases, swig_IDMEFCriteria_base_names }; static int _wrap_IDMEFValue_getType(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue::IDMEFValueTypeEnum result; SWIG_check_num_args("Prelude::IDMEFValue::getType",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::getType",1,"Prelude::IDMEFValue const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue_getType",1,SWIGTYPE_p_Prelude__IDMEFValue); } { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)((Prelude::IDMEFValue const *)arg1)->getType(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number)(int)(result)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFValue_isNull(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; bool result; SWIG_check_num_args("Prelude::IDMEFValue::isNull",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::isNull",1,"Prelude::IDMEFValue const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue_isNull",1,SWIGTYPE_p_Prelude__IDMEFValue); } { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->isNull(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFValue__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFValue *result = 0 ; SWIG_check_num_args("Prelude::IDMEFValue::IDMEFValue",0,0) { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFValue,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFValue__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; Prelude::IDMEFValue *result = 0 ; SWIG_check_num_args("Prelude::IDMEFValue::IDMEFValue",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::IDMEFValue",1,"Prelude::IDMEF *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("new_IDMEFValue",1,SWIGTYPE_p_Prelude__IDMEF); } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFValue,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFValue__SWIG_2(lua_State* L) { int SWIG_arg = 0; std::vector< Prelude::IDMEF > *arg1 = 0 ; Prelude::IDMEFValue *result = 0 ; SWIG_check_num_args("Prelude::IDMEFValue::IDMEFValue",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::IDMEFValue",1,"std::vector< Prelude::IDMEF > const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t,0))){ SWIG_fail_ptr("new_IDMEFValue",1,SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t); } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::vector< Prelude::IDMEF > const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFValue,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFValue__SWIG_3(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFValue *arg1 = 0 ; Prelude::IDMEFValue *result = 0 ; SWIG_check_num_args("Prelude::IDMEFValue::IDMEFValue",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::IDMEFValue",1,"Prelude::IDMEFValue const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("new_IDMEFValue",1,SWIGTYPE_p_Prelude__IDMEFValue); } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((Prelude::IDMEFValue const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFValue,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFValue__SWIG_4(lua_State* L) { int SWIG_arg = 0; std::vector< Prelude::IDMEFValue > *arg1 = 0 ; Prelude::IDMEFValue *result = 0 ; SWIG_check_num_args("Prelude::IDMEFValue::IDMEFValue",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::IDMEFValue",1,"std::vector< Prelude::IDMEFValue > const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t,0))){ SWIG_fail_ptr("new_IDMEFValue",1,SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t); } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::vector< Prelude::IDMEFValue > const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFValue,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFValue__SWIG_5(lua_State* L) { int SWIG_arg = 0; idmef_value_t *arg1 = (idmef_value_t *) 0 ; Prelude::IDMEFValue *result = 0 ; SWIG_check_num_args("Prelude::IDMEFValue::IDMEFValue",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::IDMEFValue",1,"idmef_value_t *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_idmef_value_t,0))){ SWIG_fail_ptr("new_IDMEFValue",1,SWIGTYPE_p_idmef_value_t); } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFValue,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFValue__SWIG_6(lua_State* L) { int SWIG_arg = 0; std::string *arg1 = 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; std::string temp1 ; Prelude::IDMEFValue *result = 0 ; SWIG_check_num_args("Prelude::IDMEFValue::IDMEFValue",2,2) if(!lua_isstring(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::IDMEFValue",1,"std::string const &"); if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("Prelude::IDMEFValue::IDMEFValue",2,"Prelude::IDMEFPath *"); temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1; if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("new_IDMEFValue",2,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::string const &)*arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFValue,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFValue__SWIG_7(lua_State* L) { int SWIG_arg = 0; std::string *arg1 = 0 ; std::string temp1 ; Prelude::IDMEFValue *result = 0 ; SWIG_check_num_args("Prelude::IDMEFValue::IDMEFValue",1,1) if(!lua_isstring(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::IDMEFValue",1,"std::string const &"); temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1; { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::string const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFValue,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFValue__SWIG_8(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEFValue *result = 0 ; SWIG_check_num_args("Prelude::IDMEFValue::IDMEFValue",2,2) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::IDMEFValue",1,"char const *"); if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("Prelude::IDMEFValue::IDMEFValue",2,"Prelude::IDMEFPath *"); arg1 = (char *)lua_tostring(L, 1); if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("new_IDMEFValue",2,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((char const *)arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFValue,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFValue__SWIG_9(lua_State* L) { int SWIG_arg = 0; double arg1 ; Prelude::IDMEFValue *result = 0 ; SWIG_check_num_args("Prelude::IDMEFValue::IDMEFValue",1,1) if(!lua_isnumber(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::IDMEFValue",1,"double"); arg1 = (double)lua_tonumber(L, 1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFValue,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFValue__SWIG_10(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = 0 ; Prelude::IDMEFValue *result = 0 ; SWIG_check_num_args("Prelude::IDMEFValue::IDMEFValue",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::IDMEFValue",1,"Prelude::IDMEFTime &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("new_IDMEFValue",1,SWIGTYPE_p_Prelude__IDMEFTime); } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFValue,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFValue(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 0) { return _wrap_new_IDMEFValue__SWIG_0(L); } if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFValue__SWIG_1(L); } } if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFValue__SWIG_2(L); } } if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFValue, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFValue__SWIG_3(L); } } if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFValue__SWIG_4(L); } } if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_idmef_value_t, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFValue__SWIG_5(L); } } if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFValue__SWIG_10(L); } } if (argc == 1) { int _v; { _v = lua_isnumber(L,argv[0]); } if (_v) { return _wrap_new_IDMEFValue__SWIG_9(L); } } if (argc == 1) { int _v; { _v = lua_isstring(L,argv[0]); } if (_v) { return _wrap_new_IDMEFValue__SWIG_7(L); } } if (argc == 2) { int _v; { _v = lua_isstring(L,argv[0]); } if (_v) { { void *ptr; if (SWIG_isptrtype(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFValue__SWIG_6(L); } } } if (argc == 2) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { { void *ptr; if (SWIG_isptrtype(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFValue__SWIG_8(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_IDMEFValue'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFValue::IDMEFValue()\n" " Prelude::IDMEFValue::IDMEFValue(Prelude::IDMEF *)\n" " Prelude::IDMEFValue::IDMEFValue(std::vector< Prelude::IDMEF > const &)\n" " Prelude::IDMEFValue::IDMEFValue(Prelude::IDMEFValue const &)\n" " Prelude::IDMEFValue::IDMEFValue(std::vector< Prelude::IDMEFValue > const &)\n" " Prelude::IDMEFValue::IDMEFValue(idmef_value_t *)\n" " Prelude::IDMEFValue::IDMEFValue(std::string const &,Prelude::IDMEFPath *)\n" " Prelude::IDMEFValue::IDMEFValue(std::string const &)\n" " Prelude::IDMEFValue::IDMEFValue(char const *,Prelude::IDMEFPath *)\n" " Prelude::IDMEFValue::IDMEFValue(double)\n" " Prelude::IDMEFValue::IDMEFValue(Prelude::IDMEFTime &)\n"); lua_error(L);return 0; } static int _wrap_IDMEFValue_match(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; int arg3 ; int result; SWIG_check_num_args("Prelude::IDMEFValue::match",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::match",1,"Prelude::IDMEFValue const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFValue::match",2,"Prelude::IDMEFValue const &"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEFValue::match",3,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue_match",1,SWIGTYPE_p_Prelude__IDMEFValue); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue_match",2,SWIGTYPE_p_Prelude__IDMEFValue); } arg3 = (int)lua_tonumber(L, 3); { try { result = (int)((Prelude::IDMEFValue const *)arg1)->match((Prelude::IDMEFValue const &)*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFValue_clone(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue result; SWIG_check_num_args("Prelude::IDMEFValue::clone",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::clone",1,"Prelude::IDMEFValue const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue_clone",1,SWIGTYPE_p_Prelude__IDMEFValue); } { try { result = ((Prelude::IDMEFValue const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { int ret, unused; if ( (&result)->isNull() ) { lua_pushnil(L); SWIG_arg = 1; } else { SWIG_arg = IDMEFValue_to_SWIG(&unused, result, L, &unused); if ( SWIG_arg < 0 ) { std::stringstream s; s << "IDMEFValue typemap does not handle value of type '" << idmef_value_type_to_string((idmef_value_type_id_t) (&result)->getType()) << "'"; SWIG_exception(SWIG_ValueError, s.str().c_str()); } } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFValue_toString(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; std::string result; SWIG_check_num_args("Prelude::IDMEFValue::toString",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::toString",1,"Prelude::IDMEFValue const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue_toString",1,SWIGTYPE_p_Prelude__IDMEFValue); } { try { result = ((Prelude::IDMEFValue const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFValue___eq__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; std::vector< Prelude::IDMEFValue > *arg2 = 0 ; bool result; SWIG_check_num_args("Prelude::IDMEFValue::operator ==",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::operator ==",1,"Prelude::IDMEFValue const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFValue::operator ==",2,"std::vector< Prelude::IDMEFValue > const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue___eq",1,SWIGTYPE_p_Prelude__IDMEFValue); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t,0))){ SWIG_fail_ptr("IDMEFValue___eq",2,SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t); } { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator ==((std::vector< Prelude::IDMEFValue > const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFValue___le(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; bool result; SWIG_check_num_args("Prelude::IDMEFValue::operator <=",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::operator <=",1,"Prelude::IDMEFValue const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFValue::operator <=",2,"Prelude::IDMEFValue const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue___le",1,SWIGTYPE_p_Prelude__IDMEFValue); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue___le",2,SWIGTYPE_p_Prelude__IDMEFValue); } { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator <=((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFValue___lt(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; bool result; SWIG_check_num_args("Prelude::IDMEFValue::operator <",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::operator <",1,"Prelude::IDMEFValue const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFValue::operator <",2,"Prelude::IDMEFValue const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue___lt",1,SWIGTYPE_p_Prelude__IDMEFValue); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue___lt",2,SWIGTYPE_p_Prelude__IDMEFValue); } { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator <((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFValue___eq__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; bool result; SWIG_check_num_args("Prelude::IDMEFValue::operator ==",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFValue::operator ==",1,"Prelude::IDMEFValue const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFValue::operator ==",2,"Prelude::IDMEFValue const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue___eq",1,SWIGTYPE_p_Prelude__IDMEFValue); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFValue___eq",2,SWIGTYPE_p_Prelude__IDMEFValue); } { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator ==((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFValue___eq(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFValue, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFValue___eq__SWIG_0(L); } } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFValue, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFValue, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFValue___eq__SWIG_1(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFValue___eq'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFValue::operator ==(std::vector< Prelude::IDMEFValue > const &) const\n" " Prelude::IDMEFValue::operator ==(Prelude::IDMEFValue const &) const\n"); lua_error(L);return 0; } static void swig_delete_IDMEFValue(void *obj) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) obj; delete arg1; } static int _proxy__wrap_new_IDMEFValue(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_IDMEFValue); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_IDMEFValue_attributes[] = { {0,0,0} }; static swig_lua_method swig_IDMEFValue_methods[]= { { "getType", _wrap_IDMEFValue_getType}, { "isNull", _wrap_IDMEFValue_isNull}, { "match", _wrap_IDMEFValue_match}, { "clone", _wrap_IDMEFValue_clone}, { "toString", _wrap_IDMEFValue_toString}, { "__le", _wrap_IDMEFValue___le}, { "__lt", _wrap_IDMEFValue___lt}, { "__eq", _wrap_IDMEFValue___eq}, {0,0} }; static swig_lua_method swig_IDMEFValue_meta[] = { { "__le", _wrap_IDMEFValue___le}, { "__lt", _wrap_IDMEFValue___lt}, { "__eq", _wrap_IDMEFValue___eq}, {0,0} }; static swig_lua_attribute swig_IDMEFValue_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_IDMEFValue_Sf_SwigStatic_constants[]= { {SWIG_LUA_CONSTTAB_INT("TYPE_UNKNOWN", Prelude::IDMEFValue::TYPE_UNKNOWN)}, {SWIG_LUA_CONSTTAB_INT("TYPE_INT8", Prelude::IDMEFValue::TYPE_INT8)}, {SWIG_LUA_CONSTTAB_INT("TYPE_UINT8", Prelude::IDMEFValue::TYPE_UINT8)}, {SWIG_LUA_CONSTTAB_INT("TYPE_INT16", Prelude::IDMEFValue::TYPE_INT16)}, {SWIG_LUA_CONSTTAB_INT("TYPE_UINT16", Prelude::IDMEFValue::TYPE_UINT16)}, {SWIG_LUA_CONSTTAB_INT("TYPE_INT32", Prelude::IDMEFValue::TYPE_INT32)}, {SWIG_LUA_CONSTTAB_INT("TYPE_UINT32", Prelude::IDMEFValue::TYPE_UINT32)}, {SWIG_LUA_CONSTTAB_INT("TYPE_INT64", Prelude::IDMEFValue::TYPE_INT64)}, {SWIG_LUA_CONSTTAB_INT("TYPE_UINT64", Prelude::IDMEFValue::TYPE_UINT64)}, {SWIG_LUA_CONSTTAB_INT("TYPE_FLOAT", Prelude::IDMEFValue::TYPE_FLOAT)}, {SWIG_LUA_CONSTTAB_INT("TYPE_DOUBLE", Prelude::IDMEFValue::TYPE_DOUBLE)}, {SWIG_LUA_CONSTTAB_INT("TYPE_STRING", Prelude::IDMEFValue::TYPE_STRING)}, {SWIG_LUA_CONSTTAB_INT("TYPE_TIME", Prelude::IDMEFValue::TYPE_TIME)}, {SWIG_LUA_CONSTTAB_INT("TYPE_DATA", Prelude::IDMEFValue::TYPE_DATA)}, {SWIG_LUA_CONSTTAB_INT("TYPE_ENUM", Prelude::IDMEFValue::TYPE_ENUM)}, {SWIG_LUA_CONSTTAB_INT("TYPE_LIST", Prelude::IDMEFValue::TYPE_LIST)}, {SWIG_LUA_CONSTTAB_INT("TYPE_CLASS", Prelude::IDMEFValue::TYPE_CLASS)}, {0,0,0,0,0,0} }; static swig_lua_method swig_IDMEFValue_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_IDMEFValue_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_IDMEFValue_Sf_SwigStatic = { "IDMEFValue", swig_IDMEFValue_Sf_SwigStatic_methods, swig_IDMEFValue_Sf_SwigStatic_attributes, swig_IDMEFValue_Sf_SwigStatic_constants, swig_IDMEFValue_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_IDMEFValue_bases[] = {0}; static const char *swig_IDMEFValue_base_names[] = {0}; static swig_lua_class _wrap_class_IDMEFValue = { "IDMEFValue", "IDMEFValue", &SWIGTYPE_p_Prelude__IDMEFValue,_proxy__wrap_new_IDMEFValue, swig_delete_IDMEFValue, swig_IDMEFValue_methods, swig_IDMEFValue_attributes, &swig_IDMEFValue_Sf_SwigStatic, swig_IDMEFValue_meta, swig_IDMEFValue_bases, swig_IDMEFValue_base_names }; static int _wrap_new_IDMEFPath__SWIG_0(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; Prelude::IDMEFPath *result = 0 ; SWIG_check_num_args("Prelude::IDMEFPath::IDMEFPath",1,1) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::IDMEFPath",1,"char const *"); arg1 = (char *)lua_tostring(L, 1); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFPath,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFPath__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEFPath *result = 0 ; SWIG_check_num_args("Prelude::IDMEFPath::IDMEFPath",2,2) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::IDMEFPath",1,"Prelude::IDMEF &"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::IDMEFPath",2,"char const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("new_IDMEFPath",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath(*arg1,(char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFPath,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFPath__SWIG_2(lua_State* L) { int SWIG_arg = 0; idmef_path_t *arg1 = (idmef_path_t *) 0 ; Prelude::IDMEFPath *result = 0 ; SWIG_check_num_args("Prelude::IDMEFPath::IDMEFPath",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::IDMEFPath",1,"idmef_path_t *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_idmef_path_t,0))){ SWIG_fail_ptr("new_IDMEFPath",1,SWIGTYPE_p_idmef_path_t); } { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFPath,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFPath__SWIG_3(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = 0 ; Prelude::IDMEFPath *result = 0 ; SWIG_check_num_args("Prelude::IDMEFPath::IDMEFPath",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::IDMEFPath",1,"Prelude::IDMEFPath const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("new_IDMEFPath",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath((Prelude::IDMEFPath const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFPath,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFPath(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_idmef_path_t, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFPath__SWIG_2(L); } } if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFPath__SWIG_3(L); } } if (argc == 1) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { return _wrap_new_IDMEFPath__SWIG_0(L); } } if (argc == 2) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { return _wrap_new_IDMEFPath__SWIG_1(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_IDMEFPath'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFPath::IDMEFPath(char const *)\n" " Prelude::IDMEFPath::IDMEFPath(Prelude::IDMEF &,char const *)\n" " Prelude::IDMEFPath::IDMEFPath(idmef_path_t *)\n" " Prelude::IDMEFPath::IDMEFPath(Prelude::IDMEFPath const &)\n"); lua_error(L);return 0; } static int _wrap_IDMEFPath_set__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; std::vector< Prelude::IDMEF > *arg3 = 0 ; SWIG_check_num_args("Prelude::IDMEFPath::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::set",1,"Prelude::IDMEFPath const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::set",2,"Prelude::IDMEF &"); if(!lua_isuserdata(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::set",3,"std::vector< Prelude::IDMEF > const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_set",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_set",2,SWIGTYPE_p_Prelude__IDMEF); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,3,(void**)&arg3,SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t,0))){ SWIG_fail_ptr("IDMEFPath_set",3,SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t); } { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,(std::vector< Prelude::IDMEF > const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_set__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEF *arg3 = (Prelude::IDMEF *) 0 ; SWIG_check_num_args("Prelude::IDMEFPath::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::set",1,"Prelude::IDMEFPath const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::set",2,"Prelude::IDMEF &"); if(!SWIG_isptrtype(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::set",3,"Prelude::IDMEF *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_set",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_set",2,SWIGTYPE_p_Prelude__IDMEF); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,3,(void**)&arg3,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_set",3,SWIGTYPE_p_Prelude__IDMEF); } { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_set__SWIG_2(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; std::vector< Prelude::IDMEFValue > *arg3 = 0 ; SWIG_check_num_args("Prelude::IDMEFPath::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::set",1,"Prelude::IDMEFPath const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::set",2,"Prelude::IDMEF &"); if(!lua_isuserdata(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::set",3,"std::vector< Prelude::IDMEFValue > const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_set",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_set",2,SWIGTYPE_p_Prelude__IDMEF); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,3,(void**)&arg3,SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t,0))){ SWIG_fail_ptr("IDMEFPath_set",3,SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t); } { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,(std::vector< Prelude::IDMEFValue > const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_set__SWIG_3(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEFValue *arg3 = (Prelude::IDMEFValue *) 0 ; SWIG_check_num_args("Prelude::IDMEFPath::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::set",1,"Prelude::IDMEFPath const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::set",2,"Prelude::IDMEF &"); if(!SWIG_isptrtype(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::set",3,"Prelude::IDMEFValue *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_set",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_set",2,SWIGTYPE_p_Prelude__IDMEF); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,3,(void**)&arg3,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEFPath_set",3,SWIGTYPE_p_Prelude__IDMEFValue); } { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_set__SWIG_4(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEFTime *arg3 = 0 ; SWIG_check_num_args("Prelude::IDMEFPath::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::set",1,"Prelude::IDMEFPath const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::set",2,"Prelude::IDMEF &"); if(!lua_isuserdata(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::set",3,"Prelude::IDMEFTime &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_set",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_set",2,SWIGTYPE_p_Prelude__IDMEF); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,3,(void**)&arg3,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFPath_set",3,SWIGTYPE_p_Prelude__IDMEFTime); } { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_set__SWIG_5(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; std::string *arg3 = 0 ; std::string temp3 ; SWIG_check_num_args("Prelude::IDMEFPath::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::set",1,"Prelude::IDMEFPath const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::set",2,"Prelude::IDMEF &"); if(!lua_isstring(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::set",3,"std::string const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_set",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_set",2,SWIGTYPE_p_Prelude__IDMEF); } temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3; { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,(std::string const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_set__SWIG_6(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; int32_t arg3 ; SWIG_check_num_args("Prelude::IDMEFPath::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::set",1,"Prelude::IDMEFPath const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::set",2,"Prelude::IDMEF &"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::set",3,"int32_t"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_set",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_set",2,SWIGTYPE_p_Prelude__IDMEF); } arg3 = (int32_t)lua_tonumber(L, 3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_set__SWIG_7(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; int64_t arg3 ; SWIG_check_num_args("Prelude::IDMEFPath::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::set",1,"Prelude::IDMEFPath const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::set",2,"Prelude::IDMEF &"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::set",3,"int64_t"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_set",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_set",2,SWIGTYPE_p_Prelude__IDMEF); } arg3 = (int64_t)lua_tonumber(L, 3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_set__SWIG_8(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; uint64_t arg3 ; SWIG_check_num_args("Prelude::IDMEFPath::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::set",1,"Prelude::IDMEFPath const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::set",2,"Prelude::IDMEF &"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::set",3,"uint64_t"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_set",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_set",2,SWIGTYPE_p_Prelude__IDMEF); } arg3 = (uint64_t)lua_tonumber(L, 3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_set__SWIG_9(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; float arg3 ; SWIG_check_num_args("Prelude::IDMEFPath::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::set",1,"Prelude::IDMEFPath const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::set",2,"Prelude::IDMEF &"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::set",3,"float"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_set",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_set",2,SWIGTYPE_p_Prelude__IDMEF); } arg3 = (float)lua_tonumber(L, 3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_set__SWIG_10(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; double arg3 ; SWIG_check_num_args("Prelude::IDMEFPath::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::set",1,"Prelude::IDMEFPath const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::set",2,"Prelude::IDMEF &"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::set",3,"double"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_set",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_set",2,SWIGTYPE_p_Prelude__IDMEF); } arg3 = (double)lua_tonumber(L, 3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_set(lua_State* L) { int argc; int argv[4]={ 1,2,3,4 }; argc = lua_gettop(L); if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[2])==0 || SWIG_ConvertPtr(L,argv[2], (void **) &ptr, SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFPath_set__SWIG_0(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (SWIG_isptrtype(L,argv[2])==0 || SWIG_ConvertPtr(L,argv[2], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFPath_set__SWIG_1(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[2])==0 || SWIG_ConvertPtr(L,argv[2], (void **) &ptr, SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFPath_set__SWIG_2(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (SWIG_isptrtype(L,argv[2])==0 || SWIG_ConvertPtr(L,argv[2], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFValue, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFPath_set__SWIG_3(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[2])==0 || SWIG_ConvertPtr(L,argv[2], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFPath_set__SWIG_4(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEFPath_set__SWIG_6(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEFPath_set__SWIG_7(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEFPath_set__SWIG_8(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEFPath_set__SWIG_9(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEFPath_set__SWIG_10(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isstring(L,argv[2]); } if (_v) { return _wrap_IDMEFPath_set__SWIG_5(L); } } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFPath_set'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,std::vector< Prelude::IDMEF > const &) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,Prelude::IDMEF *) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,std::vector< Prelude::IDMEFValue > const &) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,Prelude::IDMEFValue *) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,Prelude::IDMEFTime &) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,std::string const &) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,int32_t) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,int64_t) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,uint64_t) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,float) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,double) const\n"); lua_error(L);return 0; } static int _wrap_IDMEFPath_getClass__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 ; Prelude::IDMEFClass result; SWIG_check_num_args("Prelude::IDMEFPath::getClass",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::getClass",1,"Prelude::IDMEFPath const *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::getClass",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_getClass",1,SWIGTYPE_p_Prelude__IDMEFPath); } arg2 = (int)lua_tonumber(L, 2); { try { result = ((Prelude::IDMEFPath const *)arg1)->getClass(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { Prelude::IDMEFClass * resultptr = new Prelude::IDMEFClass((const Prelude::IDMEFClass &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_Prelude__IDMEFClass,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_getClass__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEFClass result; SWIG_check_num_args("Prelude::IDMEFPath::getClass",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::getClass",1,"Prelude::IDMEFPath const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_getClass",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = ((Prelude::IDMEFPath const *)arg1)->getClass(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { Prelude::IDMEFClass * resultptr = new Prelude::IDMEFClass((const Prelude::IDMEFClass &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_Prelude__IDMEFClass,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_getClass(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFPath_getClass__SWIG_1(L); } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { return _wrap_IDMEFPath_getClass__SWIG_0(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFPath_getClass'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFPath::getClass(int) const\n" " Prelude::IDMEFPath::getClass() const\n"); lua_error(L);return 0; } static int _wrap_IDMEFPath_getValueType__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 ; Prelude::IDMEFValue::IDMEFValueTypeEnum result; SWIG_check_num_args("Prelude::IDMEFPath::getValueType",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::getValueType",1,"Prelude::IDMEFPath const *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::getValueType",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_getValueType",1,SWIGTYPE_p_Prelude__IDMEFPath); } arg2 = (int)lua_tonumber(L, 2); { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)((Prelude::IDMEFPath const *)arg1)->getValueType(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number)(int)(result)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_getValueType__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEFValue::IDMEFValueTypeEnum result; SWIG_check_num_args("Prelude::IDMEFPath::getValueType",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::getValueType",1,"Prelude::IDMEFPath const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_getValueType",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)((Prelude::IDMEFPath const *)arg1)->getValueType(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number)(int)(result)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_getValueType(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFPath_getValueType__SWIG_1(L); } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { return _wrap_IDMEFPath_getValueType__SWIG_0(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFPath_getValueType'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFPath::getValueType(int) const\n" " Prelude::IDMEFPath::getValueType() const\n"); lua_error(L);return 0; } static int _wrap_IDMEFPath_setIndex__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; unsigned int arg2 ; int arg3 ; int result; SWIG_check_num_args("Prelude::IDMEFPath::setIndex",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::setIndex",1,"Prelude::IDMEFPath *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::setIndex",2,"unsigned int"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::setIndex",3,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_setIndex",1,SWIGTYPE_p_Prelude__IDMEFPath); } SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative") arg2 = (unsigned int)lua_tonumber(L, 2); arg3 = (int)lua_tonumber(L, 3); { try { result = (int)(arg1)->setIndex(arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_setIndex__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; unsigned int arg2 ; int result; SWIG_check_num_args("Prelude::IDMEFPath::setIndex",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::setIndex",1,"Prelude::IDMEFPath *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::setIndex",2,"unsigned int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_setIndex",1,SWIGTYPE_p_Prelude__IDMEFPath); } SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative") arg2 = (unsigned int)lua_tonumber(L, 2); { try { result = (int)(arg1)->setIndex(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_setIndex(lua_State* L) { int argc; int argv[4]={ 1,2,3,4 }; argc = lua_gettop(L); if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { return _wrap_IDMEFPath_setIndex__SWIG_1(L); } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEFPath_setIndex__SWIG_0(L); } } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFPath_setIndex'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFPath::setIndex(unsigned int,int)\n" " Prelude::IDMEFPath::setIndex(unsigned int)\n"); lua_error(L);return 0; } static int _wrap_IDMEFPath_undefineIndex__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 ; int result; SWIG_check_num_args("Prelude::IDMEFPath::undefineIndex",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::undefineIndex",1,"Prelude::IDMEFPath *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::undefineIndex",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_undefineIndex",1,SWIGTYPE_p_Prelude__IDMEFPath); } arg2 = (int)lua_tonumber(L, 2); { try { result = (int)(arg1)->undefineIndex(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_undefineIndex__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int result; SWIG_check_num_args("Prelude::IDMEFPath::undefineIndex",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::undefineIndex",1,"Prelude::IDMEFPath *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_undefineIndex",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (int)(arg1)->undefineIndex(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_undefineIndex(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFPath_undefineIndex__SWIG_1(L); } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { return _wrap_IDMEFPath_undefineIndex__SWIG_0(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFPath_undefineIndex'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFPath::undefineIndex(int)\n" " Prelude::IDMEFPath::undefineIndex()\n"); lua_error(L);return 0; } static int _wrap_IDMEFPath_getIndex__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 ; int result; SWIG_check_num_args("Prelude::IDMEFPath::getIndex",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::getIndex",1,"Prelude::IDMEFPath const *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::getIndex",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_getIndex",1,SWIGTYPE_p_Prelude__IDMEFPath); } arg2 = (int)lua_tonumber(L, 2); { try { result = (int)((Prelude::IDMEFPath const *)arg1)->getIndex(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_getIndex__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int result; SWIG_check_num_args("Prelude::IDMEFPath::getIndex",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::getIndex",1,"Prelude::IDMEFPath const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_getIndex",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (int)((Prelude::IDMEFPath const *)arg1)->getIndex(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_getIndex(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFPath_getIndex__SWIG_1(L); } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { return _wrap_IDMEFPath_getIndex__SWIG_0(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFPath_getIndex'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFPath::getIndex(int) const\n" " Prelude::IDMEFPath::getIndex() const\n"); lua_error(L);return 0; } static int _wrap_IDMEFPath_makeChild(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; char *arg2 = (char *) 0 ; unsigned int arg3 ; int result; SWIG_check_num_args("Prelude::IDMEFPath::makeChild",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::makeChild",1,"Prelude::IDMEFPath *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::makeChild",2,"char const *"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::makeChild",3,"unsigned int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_makeChild",1,SWIGTYPE_p_Prelude__IDMEFPath); } arg2 = (char *)lua_tostring(L, 2); SWIG_contract_assert((lua_tonumber(L,3)>=0),"number must not be negative") arg3 = (unsigned int)lua_tonumber(L, 3); { try { result = (int)(arg1)->makeChild((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_makeParent(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int result; SWIG_check_num_args("Prelude::IDMEFPath::makeParent",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::makeParent",1,"Prelude::IDMEFPath *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_makeParent",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (int)(arg1)->makeParent(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_compare__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; int arg3 ; int result; SWIG_check_num_args("Prelude::IDMEFPath::compare",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::compare",1,"Prelude::IDMEFPath const *"); if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::compare",2,"Prelude::IDMEFPath *"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEFPath::compare",3,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_compare",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_compare",2,SWIGTYPE_p_Prelude__IDMEFPath); } arg3 = (int)lua_tonumber(L, 3); { try { result = (int)((Prelude::IDMEFPath const *)arg1)->compare(arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_compare__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; int result; SWIG_check_num_args("Prelude::IDMEFPath::compare",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::compare",1,"Prelude::IDMEFPath const *"); if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::compare",2,"Prelude::IDMEFPath *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_compare",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_compare",2,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (int)((Prelude::IDMEFPath const *)arg1)->compare(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_compare(lua_State* L) { int argc; int argv[4]={ 1,2,3,4 }; argc = lua_gettop(L); if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (SWIG_isptrtype(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFPath_compare__SWIG_1(L); } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (SWIG_isptrtype(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEFPath_compare__SWIG_0(L); } } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFPath_compare'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFPath::compare(Prelude::IDMEFPath *,int) const\n" " Prelude::IDMEFPath::compare(Prelude::IDMEFPath *) const\n"); lua_error(L);return 0; } static int _wrap_IDMEFPath_clone(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; SwigValueWrapper< Prelude::IDMEFPath > result; SWIG_check_num_args("Prelude::IDMEFPath::clone",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::clone",1,"Prelude::IDMEFPath const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_clone",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = ((Prelude::IDMEFPath const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { Prelude::IDMEFPath * resultptr = new Prelude::IDMEFPath((const Prelude::IDMEFPath &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_Prelude__IDMEFPath,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_checkOperator(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; idmef_criterion_operator_t arg2 ; idmef_criterion_operator_t *argp2 ; int result; SWIG_check_num_args("Prelude::IDMEFPath::checkOperator",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::checkOperator",1,"Prelude::IDMEFPath const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::checkOperator",2,"idmef_criterion_operator_t"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_checkOperator",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&argp2,SWIGTYPE_p_idmef_criterion_operator_t,0))){ SWIG_fail_ptr("IDMEFPath_checkOperator",2,SWIGTYPE_p_idmef_criterion_operator_t); } arg2 = *argp2; { try { result = (int)((Prelude::IDMEFPath const *)arg1)->checkOperator(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_getApplicableOperators(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; idmef_criterion_operator_t result; SWIG_check_num_args("Prelude::IDMEFPath::getApplicableOperators",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::getApplicableOperators",1,"Prelude::IDMEFPath const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_getApplicableOperators",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = ((Prelude::IDMEFPath const *)arg1)->getApplicableOperators(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { idmef_criterion_operator_t * resultptr = new idmef_criterion_operator_t((const idmef_criterion_operator_t &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_idmef_criterion_operator_t,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_getName__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 ; char *result = 0 ; SWIG_check_num_args("Prelude::IDMEFPath::getName",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::getName",1,"Prelude::IDMEFPath const *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::getName",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_getName",1,SWIGTYPE_p_Prelude__IDMEFPath); } arg2 = (int)lua_tonumber(L, 2); { try { result = (char *)((Prelude::IDMEFPath const *)arg1)->getName(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_getName__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; char *result = 0 ; SWIG_check_num_args("Prelude::IDMEFPath::getName",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::getName",1,"Prelude::IDMEFPath const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_getName",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (char *)((Prelude::IDMEFPath const *)arg1)->getName(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_getName(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFPath_getName__SWIG_1(L); } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { return _wrap_IDMEFPath_getName__SWIG_0(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFPath_getName'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFPath::getName(int) const\n" " Prelude::IDMEFPath::getName() const\n"); lua_error(L);return 0; } static int _wrap_IDMEFPath_isAmbiguous(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; bool result; SWIG_check_num_args("Prelude::IDMEFPath::isAmbiguous",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::isAmbiguous",1,"Prelude::IDMEFPath const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_isAmbiguous",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (bool)((Prelude::IDMEFPath const *)arg1)->isAmbiguous(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_hasLists(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int result; SWIG_check_num_args("Prelude::IDMEFPath::hasLists",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::hasLists",1,"Prelude::IDMEFPath const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_hasLists",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (int)((Prelude::IDMEFPath const *)arg1)->hasLists(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_isList__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 ; bool result; SWIG_check_num_args("Prelude::IDMEFPath::isList",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::isList",1,"Prelude::IDMEFPath const *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::isList",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_isList",1,SWIGTYPE_p_Prelude__IDMEFPath); } arg2 = (int)lua_tonumber(L, 2); { try { result = (bool)((Prelude::IDMEFPath const *)arg1)->isList(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_isList__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; bool result; SWIG_check_num_args("Prelude::IDMEFPath::isList",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::isList",1,"Prelude::IDMEFPath const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_isList",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (bool)((Prelude::IDMEFPath const *)arg1)->isList(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_isList(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFPath_isList__SWIG_1(L); } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { return _wrap_IDMEFPath_isList__SWIG_0(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFPath_isList'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFPath::isList(int) const\n" " Prelude::IDMEFPath::isList() const\n"); lua_error(L);return 0; } static int _wrap_IDMEFPath_getDepth(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; unsigned int result; SWIG_check_num_args("Prelude::IDMEFPath::getDepth",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::getDepth",1,"Prelude::IDMEFPath const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_getDepth",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (unsigned int)((Prelude::IDMEFPath const *)arg1)->getDepth(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFPath_get(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEFValue result; SWIG_check_num_args("Prelude::IDMEFPath::get",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFPath::get",1,"Prelude::IDMEFPath *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFPath::get",2,"Prelude::IDMEF &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("IDMEFPath_get",1,SWIGTYPE_p_Prelude__IDMEFPath); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEFPath_get",2,SWIGTYPE_p_Prelude__IDMEF); } { try { result = Prelude_IDMEFPath_get(arg1,*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { int ret, unused; if ( (&result)->isNull() ) { lua_pushnil(L); SWIG_arg = 1; } else { SWIG_arg = IDMEFValue_to_SWIG(&unused, result, L, &unused); if ( SWIG_arg < 0 ) { std::stringstream s; s << "IDMEFValue typemap does not handle value of type '" << idmef_value_type_to_string((idmef_value_type_id_t) (&result)->getType()) << "'"; SWIG_exception(SWIG_ValueError, s.str().c_str()); } } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_IDMEFPath(void *obj) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) obj; delete arg1; } static int _proxy__wrap_new_IDMEFPath(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_IDMEFPath); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_IDMEFPath_attributes[] = { {0,0,0} }; static swig_lua_method swig_IDMEFPath_methods[]= { { "set", _wrap_IDMEFPath_set}, { "getClass", _wrap_IDMEFPath_getClass}, { "getValueType", _wrap_IDMEFPath_getValueType}, { "setIndex", _wrap_IDMEFPath_setIndex}, { "undefineIndex", _wrap_IDMEFPath_undefineIndex}, { "getIndex", _wrap_IDMEFPath_getIndex}, { "makeChild", _wrap_IDMEFPath_makeChild}, { "makeParent", _wrap_IDMEFPath_makeParent}, { "compare", _wrap_IDMEFPath_compare}, { "clone", _wrap_IDMEFPath_clone}, { "checkOperator", _wrap_IDMEFPath_checkOperator}, { "getApplicableOperators", _wrap_IDMEFPath_getApplicableOperators}, { "getName", _wrap_IDMEFPath_getName}, { "isAmbiguous", _wrap_IDMEFPath_isAmbiguous}, { "hasLists", _wrap_IDMEFPath_hasLists}, { "isList", _wrap_IDMEFPath_isList}, { "getDepth", _wrap_IDMEFPath_getDepth}, { "get", _wrap_IDMEFPath_get}, {0,0} }; static swig_lua_method swig_IDMEFPath_meta[] = { {0,0} }; static swig_lua_attribute swig_IDMEFPath_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_IDMEFPath_Sf_SwigStatic_constants[]= { {0,0,0,0,0,0} }; static swig_lua_method swig_IDMEFPath_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_IDMEFPath_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_IDMEFPath_Sf_SwigStatic = { "IDMEFPath", swig_IDMEFPath_Sf_SwigStatic_methods, swig_IDMEFPath_Sf_SwigStatic_attributes, swig_IDMEFPath_Sf_SwigStatic_constants, swig_IDMEFPath_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_IDMEFPath_bases[] = {0}; static const char *swig_IDMEFPath_base_names[] = {0}; static swig_lua_class _wrap_class_IDMEFPath = { "IDMEFPath", "IDMEFPath", &SWIGTYPE_p_Prelude__IDMEFPath,_proxy__wrap_new_IDMEFPath, swig_delete_IDMEFPath, swig_IDMEFPath_methods, swig_IDMEFPath_attributes, &swig_IDMEFPath_Sf_SwigStatic, swig_IDMEFPath_meta, swig_IDMEFPath_bases, swig_IDMEFPath_base_names }; static int _wrap_new_IDMEFTime__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *result = 0 ; SWIG_check_num_args("Prelude::IDMEFTime::IDMEFTime",0,0) { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFTime,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFTime__SWIG_1(lua_State* L) { int SWIG_arg = 0; idmef_time_t *arg1 = (idmef_time_t *) 0 ; Prelude::IDMEFTime *result = 0 ; SWIG_check_num_args("Prelude::IDMEFTime::IDMEFTime",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::IDMEFTime",1,"idmef_time_t *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_idmef_time_t,0))){ SWIG_fail_ptr("new_IDMEFTime",1,SWIGTYPE_p_idmef_time_t); } { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFTime,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFTime__SWIG_2(lua_State* L) { int SWIG_arg = 0; time_t arg1 ; Prelude::IDMEFTime *result = 0 ; SWIG_check_num_args("Prelude::IDMEFTime::IDMEFTime",1,1) if(!lua_isnumber(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::IDMEFTime",1,"time_t const"); arg1 = (time_t const)lua_tonumber(L, 1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFTime,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFTime__SWIG_3(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; Prelude::IDMEFTime *result = 0 ; SWIG_check_num_args("Prelude::IDMEFTime::IDMEFTime",1,1) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::IDMEFTime",1,"char const *"); arg1 = (char *)lua_tostring(L, 1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFTime,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFTime__SWIG_4(lua_State* L) { int SWIG_arg = 0; timeval *arg1 = (timeval *) 0 ; Prelude::IDMEFTime *result = 0 ; SWIG_check_num_args("Prelude::IDMEFTime::IDMEFTime",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::IDMEFTime",1,"timeval const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_timeval,0))){ SWIG_fail_ptr("new_IDMEFTime",1,SWIGTYPE_p_timeval); } { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime((timeval const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFTime,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFTime__SWIG_5(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = 0 ; Prelude::IDMEFTime *result = 0 ; SWIG_check_num_args("Prelude::IDMEFTime::IDMEFTime",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::IDMEFTime",1,"Prelude::IDMEFTime const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("new_IDMEFTime",1,SWIGTYPE_p_Prelude__IDMEFTime); } { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime((Prelude::IDMEFTime const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFTime,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFTime(lua_State* L) { int argc; int argv[2]={ 1,2 }; argc = lua_gettop(L); if (argc == 0) { return _wrap_new_IDMEFTime__SWIG_0(L); } if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_idmef_time_t, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFTime__SWIG_1(L); } } if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_timeval, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFTime__SWIG_4(L); } } if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFTime__SWIG_5(L); } } if (argc == 1) { int _v; { _v = lua_isnumber(L,argv[0]); } if (_v) { return _wrap_new_IDMEFTime__SWIG_2(L); } } if (argc == 1) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { return _wrap_new_IDMEFTime__SWIG_3(L); } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_IDMEFTime'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFTime::IDMEFTime()\n" " Prelude::IDMEFTime::IDMEFTime(idmef_time_t *)\n" " Prelude::IDMEFTime::IDMEFTime(time_t const)\n" " Prelude::IDMEFTime::IDMEFTime(char const *)\n" " Prelude::IDMEFTime::IDMEFTime(timeval const *)\n" " Prelude::IDMEFTime::IDMEFTime(Prelude::IDMEFTime const &)\n"); lua_error(L);return 0; } static int _wrap_IDMEFTime_set__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; SWIG_check_num_args("Prelude::IDMEFTime::set",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::set",1,"Prelude::IDMEFTime *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_set",1,SWIGTYPE_p_Prelude__IDMEFTime); } { try { (arg1)->set(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime_set__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; time_t *arg2 = (time_t *) 0 ; SWIG_check_num_args("Prelude::IDMEFTime::set",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::set",1,"Prelude::IDMEFTime *"); if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("Prelude::IDMEFTime::set",2,"time_t const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_set",1,SWIGTYPE_p_Prelude__IDMEFTime); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_long_long,0))){ SWIG_fail_ptr("IDMEFTime_set",2,SWIGTYPE_p_long_long); } { try { (arg1)->set((time_t const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime_set__SWIG_2(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; char *arg2 = (char *) 0 ; SWIG_check_num_args("Prelude::IDMEFTime::set",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::set",1,"Prelude::IDMEFTime *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEFTime::set",2,"char const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_set",1,SWIGTYPE_p_Prelude__IDMEFTime); } arg2 = (char *)lua_tostring(L, 2); { try { (arg1)->set((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime_set__SWIG_3(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; timeval *arg2 = (timeval *) 0 ; SWIG_check_num_args("Prelude::IDMEFTime::set",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::set",1,"Prelude::IDMEFTime *"); if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("Prelude::IDMEFTime::set",2,"timeval const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_set",1,SWIGTYPE_p_Prelude__IDMEFTime); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_timeval,0))){ SWIG_fail_ptr("IDMEFTime_set",2,SWIGTYPE_p_timeval); } { try { (arg1)->set((timeval const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime_set(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFTime, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFTime_set__SWIG_0(L); } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFTime, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (SWIG_isptrtype(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_long_long, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFTime_set__SWIG_1(L); } } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFTime, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { void *ptr; if (SWIG_isptrtype(L,argv[1])==0 || SWIG_ConvertPtr(L,argv[1], (void **) &ptr, SWIGTYPE_p_timeval, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFTime_set__SWIG_3(L); } } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFTime, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { return _wrap_IDMEFTime_set__SWIG_2(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFTime_set'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFTime::set()\n" " Prelude::IDMEFTime::set(time_t const *)\n" " Prelude::IDMEFTime::set(char const *)\n" " Prelude::IDMEFTime::set(timeval const *)\n"); lua_error(L);return 0; } static int _wrap_IDMEFTime_setSec(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; uint32_t arg2 ; SWIG_check_num_args("Prelude::IDMEFTime::setSec",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::setSec",1,"Prelude::IDMEFTime *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFTime::setSec",2,"uint32_t"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_setSec",1,SWIGTYPE_p_Prelude__IDMEFTime); } SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative") arg2 = (uint32_t)lua_tonumber(L, 2); { try { (arg1)->setSec(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime_setUSec(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; uint32_t arg2 ; SWIG_check_num_args("Prelude::IDMEFTime::setUSec",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::setUSec",1,"Prelude::IDMEFTime *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFTime::setUSec",2,"uint32_t"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_setUSec",1,SWIGTYPE_p_Prelude__IDMEFTime); } SWIG_contract_assert((lua_tonumber(L,2)>=0),"number must not be negative") arg2 = (uint32_t)lua_tonumber(L, 2); { try { (arg1)->setUSec(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime_setGmtOffset(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; int32_t arg2 ; SWIG_check_num_args("Prelude::IDMEFTime::setGmtOffset",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::setGmtOffset",1,"Prelude::IDMEFTime *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFTime::setGmtOffset",2,"int32_t"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_setGmtOffset",1,SWIGTYPE_p_Prelude__IDMEFTime); } arg2 = (int32_t)lua_tonumber(L, 2); { try { (arg1)->setGmtOffset(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime_getSec(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; uint32_t result; SWIG_check_num_args("Prelude::IDMEFTime::getSec",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::getSec",1,"Prelude::IDMEFTime const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_getSec",1,SWIGTYPE_p_Prelude__IDMEFTime); } { try { result = (uint32_t)((Prelude::IDMEFTime const *)arg1)->getSec(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime_getUSec(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; uint32_t result; SWIG_check_num_args("Prelude::IDMEFTime::getUSec",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::getUSec",1,"Prelude::IDMEFTime const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_getUSec",1,SWIGTYPE_p_Prelude__IDMEFTime); } { try { result = (uint32_t)((Prelude::IDMEFTime const *)arg1)->getUSec(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime_getGmtOffset(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; int32_t result; SWIG_check_num_args("Prelude::IDMEFTime::getGmtOffset",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::getGmtOffset",1,"Prelude::IDMEFTime const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_getGmtOffset",1,SWIGTYPE_p_Prelude__IDMEFTime); } { try { result = (int32_t)((Prelude::IDMEFTime const *)arg1)->getGmtOffset(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime_getTime(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; double result; SWIG_check_num_args("Prelude::IDMEFTime::getTime",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::getTime",1,"Prelude::IDMEFTime const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_getTime",1,SWIGTYPE_p_Prelude__IDMEFTime); } { try { result = (double)((Prelude::IDMEFTime const *)arg1)->getTime(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime_clone(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime result; SWIG_check_num_args("Prelude::IDMEFTime::clone",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::clone",1,"Prelude::IDMEFTime const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_clone",1,SWIGTYPE_p_Prelude__IDMEFTime); } { try { result = ((Prelude::IDMEFTime const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { Prelude::IDMEFTime * resultptr = new Prelude::IDMEFTime((const Prelude::IDMEFTime &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_Prelude__IDMEFTime,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime_toString(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; std::string result; SWIG_check_num_args("Prelude::IDMEFTime::toString",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::toString",1,"Prelude::IDMEFTime const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime_toString",1,SWIGTYPE_p_Prelude__IDMEFTime); } { try { result = ((Prelude::IDMEFTime const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime___le(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; bool result; SWIG_check_num_args("Prelude::IDMEFTime::operator <=",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::operator <=",1,"Prelude::IDMEFTime const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFTime::operator <=",2,"Prelude::IDMEFTime const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime___le",1,SWIGTYPE_p_Prelude__IDMEFTime); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime___le",2,SWIGTYPE_p_Prelude__IDMEFTime); } { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator <=((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime___eq(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; bool result; SWIG_check_num_args("Prelude::IDMEFTime::operator ==",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::operator ==",1,"Prelude::IDMEFTime const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFTime::operator ==",2,"Prelude::IDMEFTime const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime___eq",1,SWIGTYPE_p_Prelude__IDMEFTime); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime___eq",2,SWIGTYPE_p_Prelude__IDMEFTime); } { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator ==((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime___lt(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; bool result; SWIG_check_num_args("Prelude::IDMEFTime::operator <",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::operator <",1,"Prelude::IDMEFTime const *"); if(!lua_isuserdata(L,2)) SWIG_fail_arg("Prelude::IDMEFTime::operator <",2,"Prelude::IDMEFTime const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime___lt",1,SWIGTYPE_p_Prelude__IDMEFTime); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime___lt",2,SWIGTYPE_p_Prelude__IDMEFTime); } { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator <((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFTime___tostring(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; char *result = 0 ; SWIG_check_num_args("Prelude::IDMEFTime::__str__",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFTime::__str__",1,"Prelude::IDMEFTime *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEFTime___tostring",1,SWIGTYPE_p_Prelude__IDMEFTime); } { try { result = (char *)Prelude_IDMEFTime___str__(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; delete [] result; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_IDMEFTime(void *obj) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) obj; delete arg1; } static int _proxy__wrap_new_IDMEFTime(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_IDMEFTime); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_IDMEFTime_attributes[] = { {0,0,0} }; static swig_lua_method swig_IDMEFTime_methods[]= { { "set", _wrap_IDMEFTime_set}, { "setSec", _wrap_IDMEFTime_setSec}, { "setUSec", _wrap_IDMEFTime_setUSec}, { "setGmtOffset", _wrap_IDMEFTime_setGmtOffset}, { "getSec", _wrap_IDMEFTime_getSec}, { "getUSec", _wrap_IDMEFTime_getUSec}, { "getGmtOffset", _wrap_IDMEFTime_getGmtOffset}, { "getTime", _wrap_IDMEFTime_getTime}, { "clone", _wrap_IDMEFTime_clone}, { "toString", _wrap_IDMEFTime_toString}, { "__le", _wrap_IDMEFTime___le}, { "__eq", _wrap_IDMEFTime___eq}, { "__lt", _wrap_IDMEFTime___lt}, { "__tostring", _wrap_IDMEFTime___tostring}, {0,0} }; static swig_lua_method swig_IDMEFTime_meta[] = { { "__le", _wrap_IDMEFTime___le}, { "__eq", _wrap_IDMEFTime___eq}, { "__lt", _wrap_IDMEFTime___lt}, { "__tostring", _wrap_IDMEFTime___tostring}, {0,0} }; static swig_lua_attribute swig_IDMEFTime_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_IDMEFTime_Sf_SwigStatic_constants[]= { {0,0,0,0,0,0} }; static swig_lua_method swig_IDMEFTime_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_IDMEFTime_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_IDMEFTime_Sf_SwigStatic = { "IDMEFTime", swig_IDMEFTime_Sf_SwigStatic_methods, swig_IDMEFTime_Sf_SwigStatic_attributes, swig_IDMEFTime_Sf_SwigStatic_constants, swig_IDMEFTime_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_IDMEFTime_bases[] = {0}; static const char *swig_IDMEFTime_base_names[] = {0}; static swig_lua_class _wrap_class_IDMEFTime = { "IDMEFTime", "IDMEFTime", &SWIGTYPE_p_Prelude__IDMEFTime,_proxy__wrap_new_IDMEFTime, swig_delete_IDMEFTime, swig_IDMEFTime_methods, swig_IDMEFTime_attributes, &swig_IDMEFTime_Sf_SwigStatic, swig_IDMEFTime_meta, swig_IDMEFTime_bases, swig_IDMEFTime_base_names }; static int _wrap_new_IDMEFClass__SWIG_0(lua_State* L) { int SWIG_arg = 0; idmef_class_id_t arg1 ; Prelude::IDMEFClass *result = 0 ; SWIG_check_num_args("Prelude::IDMEFClass::IDMEFClass",1,1) if(!lua_isnumber(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::IDMEFClass",1,"idmef_class_id_t"); arg1 = (idmef_class_id_t)lua_tonumber(L, 1); { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFClass,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFClass__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *result = 0 ; SWIG_check_num_args("Prelude::IDMEFClass::IDMEFClass",0,0) { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFClass,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFClass__SWIG_2(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFPath *arg1 = 0 ; Prelude::IDMEFClass *result = 0 ; SWIG_check_num_args("Prelude::IDMEFClass::IDMEFClass",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::IDMEFClass",1,"Prelude::IDMEFPath const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFPath,0))){ SWIG_fail_ptr("new_IDMEFClass",1,SWIGTYPE_p_Prelude__IDMEFPath); } { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass((Prelude::IDMEFPath const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFClass,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFClass__SWIG_3(lua_State* L) { int SWIG_arg = 0; std::string *arg1 = 0 ; std::string temp1 ; Prelude::IDMEFClass *result = 0 ; SWIG_check_num_args("Prelude::IDMEFClass::IDMEFClass",1,1) if(!lua_isstring(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::IDMEFClass",1,"std::string const &"); temp1.assign(lua_tostring(L,1),lua_rawlen(L,1)); arg1=&temp1; { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass((std::string const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEFClass,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEFClass(lua_State* L) { int argc; int argv[2]={ 1,2 }; argc = lua_gettop(L); if (argc == 0) { return _wrap_new_IDMEFClass__SWIG_1(L); } if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEFClass__SWIG_2(L); } } if (argc == 1) { int _v; { _v = lua_isnumber(L,argv[0]); } if (_v) { return _wrap_new_IDMEFClass__SWIG_0(L); } } if (argc == 1) { int _v; { _v = lua_isstring(L,argv[0]); } if (_v) { return _wrap_new_IDMEFClass__SWIG_3(L); } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_IDMEFClass'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFClass::IDMEFClass(idmef_class_id_t)\n" " Prelude::IDMEFClass::IDMEFClass()\n" " Prelude::IDMEFClass::IDMEFClass(Prelude::IDMEFPath const &)\n" " Prelude::IDMEFClass::IDMEFClass(std::string const &)\n"); lua_error(L);return 0; } static int _wrap_IDMEFClass_getDepth(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; size_t result; SWIG_check_num_args("Prelude::IDMEFClass::getDepth",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::getDepth",1,"Prelude::IDMEFClass *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_getDepth",1,SWIGTYPE_p_Prelude__IDMEFClass); } { try { result = (arg1)->getDepth(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_get__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; Prelude::IDMEFClass result; SWIG_check_num_args("Prelude::IDMEFClass::get",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::get",1,"Prelude::IDMEFClass *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFClass::get",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_get",1,SWIGTYPE_p_Prelude__IDMEFClass); } arg2 = (int)lua_tonumber(L, 2); { try { result = (arg1)->get(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { Prelude::IDMEFClass * resultptr = new Prelude::IDMEFClass((const Prelude::IDMEFClass &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_Prelude__IDMEFClass,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_get__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; std::string *arg2 = 0 ; std::string temp2 ; Prelude::IDMEFClass result; SWIG_check_num_args("Prelude::IDMEFClass::get",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::get",1,"Prelude::IDMEFClass *"); if(!lua_isstring(L,2)) SWIG_fail_arg("Prelude::IDMEFClass::get",2,"std::string const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_get",1,SWIGTYPE_p_Prelude__IDMEFClass); } temp2.assign(lua_tostring(L,2),lua_rawlen(L,2)); arg2=&temp2; { try { result = (arg1)->get((std::string const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { Prelude::IDMEFClass * resultptr = new Prelude::IDMEFClass((const Prelude::IDMEFClass &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_Prelude__IDMEFClass,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_get(lua_State* L) { int argc; int argv[3]={ 1,2,3 }; argc = lua_gettop(L); if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFClass, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { return _wrap_IDMEFClass_get__SWIG_0(L); } } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFClass, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isstring(L,argv[1]); } if (_v) { return _wrap_IDMEFClass_get__SWIG_1(L); } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFClass_get'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFClass::get(int)\n" " Prelude::IDMEFClass::get(std::string const &)\n"); lua_error(L);return 0; } static int _wrap_IDMEFClass_getChildCount(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; size_t result; SWIG_check_num_args("Prelude::IDMEFClass::getChildCount",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::getChildCount",1,"Prelude::IDMEFClass *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_getChildCount",1,SWIGTYPE_p_Prelude__IDMEFClass); } { try { result = (arg1)->getChildCount(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_isList(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; bool result; SWIG_check_num_args("Prelude::IDMEFClass::isList",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::isList",1,"Prelude::IDMEFClass *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_isList",1,SWIGTYPE_p_Prelude__IDMEFClass); } { try { result = (bool)(arg1)->isList(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_isKeyedList(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; bool result; SWIG_check_num_args("Prelude::IDMEFClass::isKeyedList",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::isKeyedList",1,"Prelude::IDMEFClass *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_isKeyedList",1,SWIGTYPE_p_Prelude__IDMEFClass); } { try { result = (bool)(arg1)->isKeyedList(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushboolean(L,(int)(result!=0)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_getName(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; std::string result; SWIG_check_num_args("Prelude::IDMEFClass::getName",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::getName",1,"Prelude::IDMEFClass *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_getName",1,SWIGTYPE_p_Prelude__IDMEFClass); } { try { result = (arg1)->getName(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_toString(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; std::string result; SWIG_check_num_args("Prelude::IDMEFClass::toString",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::toString",1,"Prelude::IDMEFClass *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_toString",1,SWIGTYPE_p_Prelude__IDMEFClass); } { try { result = (arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_getValueType(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; Prelude::IDMEFValue::IDMEFValueTypeEnum result; SWIG_check_num_args("Prelude::IDMEFClass::getValueType",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::getValueType",1,"Prelude::IDMEFClass *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_getValueType",1,SWIGTYPE_p_Prelude__IDMEFClass); } { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)(arg1)->getValueType(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number)(int)(result)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_getAttributes(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; std::map< std::string,std::string,std::less< std::string > > result; SWIG_check_num_args("Prelude::IDMEFClass::getAttributes",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::getAttributes",1,"Prelude::IDMEFClass *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_getAttributes",1,SWIGTYPE_p_Prelude__IDMEFClass); } { try { result = (arg1)->getAttributes(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { std::map< std::string,std::string,std::less< std::string > > * resultptr = new std::map< std::string,std::string,std::less< std::string > >((const std::map< std::string,std::string,std::less< std::string > > &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_std__mapT_std__string_std__string_std__lessT_std__string_t_t,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_getPath__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; int arg3 ; std::string *arg4 = 0 ; std::string *arg5 = 0 ; std::string temp4 ; std::string temp5 ; std::string result; SWIG_check_num_args("Prelude::IDMEFClass::getPath",5,5) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",1,"Prelude::IDMEFClass *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",2,"int"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",3,"int"); if(!lua_isstring(L,4)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",4,"std::string const &"); if(!lua_isstring(L,5)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",5,"std::string const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_getPath",1,SWIGTYPE_p_Prelude__IDMEFClass); } arg2 = (int)lua_tonumber(L, 2); arg3 = (int)lua_tonumber(L, 3); temp4.assign(lua_tostring(L,4),lua_rawlen(L,4)); arg4=&temp4; temp5.assign(lua_tostring(L,5),lua_rawlen(L,5)); arg5=&temp5; { try { result = (arg1)->getPath(arg2,arg3,(std::string const &)*arg4,(std::string const &)*arg5); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_getPath__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; int arg3 ; std::string *arg4 = 0 ; std::string temp4 ; std::string result; SWIG_check_num_args("Prelude::IDMEFClass::getPath",4,4) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",1,"Prelude::IDMEFClass *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",2,"int"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",3,"int"); if(!lua_isstring(L,4)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",4,"std::string const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_getPath",1,SWIGTYPE_p_Prelude__IDMEFClass); } arg2 = (int)lua_tonumber(L, 2); arg3 = (int)lua_tonumber(L, 3); temp4.assign(lua_tostring(L,4),lua_rawlen(L,4)); arg4=&temp4; { try { result = (arg1)->getPath(arg2,arg3,(std::string const &)*arg4); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_getPath__SWIG_2(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; int arg3 ; std::string result; SWIG_check_num_args("Prelude::IDMEFClass::getPath",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",1,"Prelude::IDMEFClass *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",2,"int"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",3,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_getPath",1,SWIGTYPE_p_Prelude__IDMEFClass); } arg2 = (int)lua_tonumber(L, 2); arg3 = (int)lua_tonumber(L, 3); { try { result = (arg1)->getPath(arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_getPath__SWIG_3(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; std::string result; SWIG_check_num_args("Prelude::IDMEFClass::getPath",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",1,"Prelude::IDMEFClass *"); if(!lua_isnumber(L,2)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",2,"int"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_getPath",1,SWIGTYPE_p_Prelude__IDMEFClass); } arg2 = (int)lua_tonumber(L, 2); { try { result = (arg1)->getPath(arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_getPath__SWIG_4(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; std::string result; SWIG_check_num_args("Prelude::IDMEFClass::getPath",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::getPath",1,"Prelude::IDMEFClass *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_getPath",1,SWIGTYPE_p_Prelude__IDMEFClass); } { try { result = (arg1)->getPath(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_getPath(lua_State* L) { int argc; int argv[6]={ 1,2,3,4,5,6 }; argc = lua_gettop(L); if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFClass, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEFClass_getPath__SWIG_4(L); } } if (argc == 2) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFClass, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { return _wrap_IDMEFClass_getPath__SWIG_3(L); } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFClass, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEFClass_getPath__SWIG_2(L); } } } } if (argc == 4) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFClass, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { { _v = lua_isstring(L,argv[3]); } if (_v) { return _wrap_IDMEFClass_getPath__SWIG_1(L); } } } } } if (argc == 5) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFClass, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = lua_isnumber(L,argv[1]); } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { { _v = lua_isstring(L,argv[3]); } if (_v) { { _v = lua_isstring(L,argv[4]); } if (_v) { return _wrap_IDMEFClass_getPath__SWIG_0(L); } } } } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEFClass_getPath'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFClass::getPath(int,int,std::string const &,std::string const &)\n" " Prelude::IDMEFClass::getPath(int,int,std::string const &)\n" " Prelude::IDMEFClass::getPath(int,int)\n" " Prelude::IDMEFClass::getPath(int)\n" " Prelude::IDMEFClass::getPath()\n"); lua_error(L);return 0; } static int _wrap_IDMEFClass_getEnumValues(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; std::vector< std::string > result; SWIG_check_num_args("Prelude::IDMEFClass::getEnumValues",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::getEnumValues",1,"Prelude::IDMEFClass *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_getEnumValues",1,SWIGTYPE_p_Prelude__IDMEFClass); } { try { result = (arg1)->getEnumValues(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { std::vector< std::string > * resultptr = new std::vector< std::string >((const std::vector< std::string > &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_std__vectorT_std__string_t,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEFClass_getApplicableOperator(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; Prelude::IDMEFCriterion::IDMEFCriterionOperatorEnum result; SWIG_check_num_args("Prelude::IDMEFClass::getApplicableOperator",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEFClass::getApplicableOperator",1,"Prelude::IDMEFClass *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEFClass,0))){ SWIG_fail_ptr("IDMEFClass_getApplicableOperator",1,SWIGTYPE_p_Prelude__IDMEFClass); } { try { result = (Prelude::IDMEFCriterion::IDMEFCriterionOperatorEnum)(arg1)->getApplicableOperator(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number)(int)(result)); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_IDMEFClass(void *obj) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) obj; delete arg1; } static int _proxy__wrap_new_IDMEFClass(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_IDMEFClass); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_IDMEFClass_attributes[] = { {0,0,0} }; static swig_lua_method swig_IDMEFClass_methods[]= { { "getDepth", _wrap_IDMEFClass_getDepth}, { "get", _wrap_IDMEFClass_get}, { "getChildCount", _wrap_IDMEFClass_getChildCount}, { "isList", _wrap_IDMEFClass_isList}, { "isKeyedList", _wrap_IDMEFClass_isKeyedList}, { "getName", _wrap_IDMEFClass_getName}, { "toString", _wrap_IDMEFClass_toString}, { "getValueType", _wrap_IDMEFClass_getValueType}, { "getAttributes", _wrap_IDMEFClass_getAttributes}, { "getPath", _wrap_IDMEFClass_getPath}, { "getEnumValues", _wrap_IDMEFClass_getEnumValues}, { "getApplicableOperator", _wrap_IDMEFClass_getApplicableOperator}, {0,0} }; static swig_lua_method swig_IDMEFClass_meta[] = { {0,0} }; static swig_lua_attribute swig_IDMEFClass_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_IDMEFClass_Sf_SwigStatic_constants[]= { {0,0,0,0,0,0} }; static swig_lua_method swig_IDMEFClass_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_IDMEFClass_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_IDMEFClass_Sf_SwigStatic = { "IDMEFClass", swig_IDMEFClass_Sf_SwigStatic_methods, swig_IDMEFClass_Sf_SwigStatic_attributes, swig_IDMEFClass_Sf_SwigStatic_constants, swig_IDMEFClass_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_IDMEFClass_bases[] = {0}; static const char *swig_IDMEFClass_base_names[] = {0}; static swig_lua_class _wrap_class_IDMEFClass = { "IDMEFClass", "IDMEFClass", &SWIGTYPE_p_Prelude__IDMEFClass,_proxy__wrap_new_IDMEFClass, swig_delete_IDMEFClass, swig_IDMEFClass_methods, swig_IDMEFClass_attributes, &swig_IDMEFClass_Sf_SwigStatic, swig_IDMEFClass_meta, swig_IDMEFClass_bases, swig_IDMEFClass_base_names }; static int _wrap_new_IDMEF__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *result = 0 ; SWIG_check_num_args("Prelude::IDMEF::IDMEF",0,0) { try { result = (Prelude::IDMEF *)new Prelude::IDMEF(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEF,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEF__SWIG_1(lua_State* L) { int SWIG_arg = 0; char *arg1 = (char *) 0 ; Prelude::IDMEF *result = 0 ; SWIG_check_num_args("Prelude::IDMEF::IDMEF",1,1) if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("Prelude::IDMEF::IDMEF",1,"char const *"); arg1 = (char *)lua_tostring(L, 1); { try { result = (Prelude::IDMEF *)new Prelude::IDMEF((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEF,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEF__SWIG_2(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = 0 ; Prelude::IDMEF *result = 0 ; SWIG_check_num_args("Prelude::IDMEF::IDMEF",1,1) if(!lua_isuserdata(L,1)) SWIG_fail_arg("Prelude::IDMEF::IDMEF",1,"Prelude::IDMEF const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("new_IDMEF",1,SWIGTYPE_p_Prelude__IDMEF); } { try { result = (Prelude::IDMEF *)new Prelude::IDMEF((Prelude::IDMEF const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEF,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEF__SWIG_3(lua_State* L) { int SWIG_arg = 0; idmef_object_t *arg1 = (idmef_object_t *) 0 ; Prelude::IDMEF *result = 0 ; SWIG_check_num_args("Prelude::IDMEF::IDMEF",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::IDMEF",1,"idmef_object_t *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_idmef_object_t,0))){ SWIG_fail_ptr("new_IDMEF",1,SWIGTYPE_p_idmef_object_t); } { try { result = (Prelude::IDMEF *)new Prelude::IDMEF(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } SWIG_NewPointerObj(L,result,SWIGTYPE_p_Prelude__IDMEF,1); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_new_IDMEF(lua_State* L) { int argc; int argv[2]={ 1,2 }; argc = lua_gettop(L); if (argc == 0) { return _wrap_new_IDMEF__SWIG_0(L); } if (argc == 1) { int _v; { void *ptr; if (lua_isuserdata(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEF__SWIG_2(L); } } if (argc == 1) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_idmef_object_t, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_new_IDMEF__SWIG_3(L); } } if (argc == 1) { int _v; { _v = SWIG_lua_isnilstring(L,argv[0]); } if (_v) { return _wrap_new_IDMEF__SWIG_1(L); } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'new_IDMEF'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEF::IDMEF()\n" " Prelude::IDMEF::IDMEF(char const *)\n" " Prelude::IDMEF::IDMEF(Prelude::IDMEF const &)\n" " Prelude::IDMEF::IDMEF(idmef_object_t *)\n"); lua_error(L);return 0; } static int _wrap_IDMEF_set__SWIG_0(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; std::vector< Prelude::IDMEF > *arg3 = 0 ; SWIG_check_num_args("Prelude::IDMEF::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::set",1,"Prelude::IDMEF *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEF::set",2,"char const *"); if(!lua_isuserdata(L,3)) SWIG_fail_arg("Prelude::IDMEF::set",3,"std::vector< Prelude::IDMEF > const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_set",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); if (!SWIG_IsOK(SWIG_ConvertPtr(L,3,(void**)&arg3,SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t,0))){ SWIG_fail_ptr("IDMEF_set",3,SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t); } { try { (arg1)->set((char const *)arg2,(std::vector< Prelude::IDMEF > const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_set__SWIG_1(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEF *arg3 = (Prelude::IDMEF *) 0 ; SWIG_check_num_args("Prelude::IDMEF::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::set",1,"Prelude::IDMEF *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEF::set",2,"char const *"); if(!SWIG_isptrtype(L,3)) SWIG_fail_arg("Prelude::IDMEF::set",3,"Prelude::IDMEF *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_set",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); if (!SWIG_IsOK(SWIG_ConvertPtr(L,3,(void**)&arg3,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_set",3,SWIGTYPE_p_Prelude__IDMEF); } { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_set__SWIG_2(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; std::vector< Prelude::IDMEFValue > *arg3 = 0 ; SWIG_check_num_args("Prelude::IDMEF::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::set",1,"Prelude::IDMEF *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEF::set",2,"char const *"); if(!lua_isuserdata(L,3)) SWIG_fail_arg("Prelude::IDMEF::set",3,"std::vector< Prelude::IDMEFValue > const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_set",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); if (!SWIG_IsOK(SWIG_ConvertPtr(L,3,(void**)&arg3,SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t,0))){ SWIG_fail_ptr("IDMEF_set",3,SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t); } { try { (arg1)->set((char const *)arg2,(std::vector< Prelude::IDMEFValue > const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_set__SWIG_3(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; std::string *arg3 = 0 ; std::string temp3 ; SWIG_check_num_args("Prelude::IDMEF::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::set",1,"Prelude::IDMEF *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEF::set",2,"char const *"); if(!lua_isstring(L,3)) SWIG_fail_arg("Prelude::IDMEF::set",3,"std::string const &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_set",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); temp3.assign(lua_tostring(L,3),lua_rawlen(L,3)); arg3=&temp3; { try { (arg1)->set((char const *)arg2,(std::string const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_set__SWIG_4(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEFValue *arg3 = (Prelude::IDMEFValue *) 0 ; SWIG_check_num_args("Prelude::IDMEF::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::set",1,"Prelude::IDMEF *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEF::set",2,"char const *"); if(!SWIG_isptrtype(L,3)) SWIG_fail_arg("Prelude::IDMEF::set",3,"Prelude::IDMEFValue *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_set",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); if (!SWIG_IsOK(SWIG_ConvertPtr(L,3,(void**)&arg3,SWIGTYPE_p_Prelude__IDMEFValue,0))){ SWIG_fail_ptr("IDMEF_set",3,SWIGTYPE_p_Prelude__IDMEFValue); } { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_set__SWIG_5(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEFTime *arg3 = 0 ; SWIG_check_num_args("Prelude::IDMEF::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::set",1,"Prelude::IDMEF *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEF::set",2,"char const *"); if(!lua_isuserdata(L,3)) SWIG_fail_arg("Prelude::IDMEF::set",3,"Prelude::IDMEFTime &"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_set",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); if (!SWIG_IsOK(SWIG_ConvertPtr(L,3,(void**)&arg3,SWIGTYPE_p_Prelude__IDMEFTime,0))){ SWIG_fail_ptr("IDMEF_set",3,SWIGTYPE_p_Prelude__IDMEFTime); } { try { (arg1)->set((char const *)arg2,*arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_set__SWIG_6(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; int32_t arg3 ; SWIG_check_num_args("Prelude::IDMEF::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::set",1,"Prelude::IDMEF *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEF::set",2,"char const *"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEF::set",3,"int32_t"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_set",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); arg3 = (int32_t)lua_tonumber(L, 3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_set__SWIG_7(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; int64_t arg3 ; SWIG_check_num_args("Prelude::IDMEF::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::set",1,"Prelude::IDMEF *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEF::set",2,"char const *"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEF::set",3,"int64_t"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_set",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); arg3 = (int64_t)lua_tonumber(L, 3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_set__SWIG_8(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; uint64_t arg3 ; SWIG_check_num_args("Prelude::IDMEF::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::set",1,"Prelude::IDMEF *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEF::set",2,"char const *"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEF::set",3,"uint64_t"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_set",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); arg3 = (uint64_t)lua_tonumber(L, 3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_set__SWIG_9(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; float arg3 ; SWIG_check_num_args("Prelude::IDMEF::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::set",1,"Prelude::IDMEF *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEF::set",2,"char const *"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEF::set",3,"float"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_set",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); arg3 = (float)lua_tonumber(L, 3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_set__SWIG_10(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; double arg3 ; SWIG_check_num_args("Prelude::IDMEF::set",3,3) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::set",1,"Prelude::IDMEF *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEF::set",2,"char const *"); if(!lua_isnumber(L,3)) SWIG_fail_arg("Prelude::IDMEF::set",3,"double"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_set",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); arg3 = (double)lua_tonumber(L, 3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_set(lua_State* L) { int argc; int argv[4]={ 1,2,3,4 }; argc = lua_gettop(L); if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[2])==0 || SWIG_ConvertPtr(L,argv[2], (void **) &ptr, SWIGTYPE_p_std__vectorT_Prelude__IDMEF_t, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEF_set__SWIG_0(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { { void *ptr; if (SWIG_isptrtype(L,argv[2])==0 || SWIG_ConvertPtr(L,argv[2], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEF_set__SWIG_1(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[2])==0 || SWIG_ConvertPtr(L,argv[2], (void **) &ptr, SWIGTYPE_p_std__vectorT_Prelude__IDMEFValue_t, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEF_set__SWIG_2(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { { void *ptr; if (SWIG_isptrtype(L,argv[2])==0 || SWIG_ConvertPtr(L,argv[2], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFValue, 0)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEF_set__SWIG_4(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { { void *ptr; if (lua_isuserdata(L,argv[2])==0 || SWIG_ConvertPtr(L,argv[2], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL)) { _v = 0; } else { _v = 1; } } if (_v) { return _wrap_IDMEF_set__SWIG_5(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEF_set__SWIG_6(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEF_set__SWIG_7(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEF_set__SWIG_8(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEF_set__SWIG_9(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { { _v = lua_isnumber(L,argv[2]); } if (_v) { return _wrap_IDMEF_set__SWIG_10(L); } } } } if (argc == 3) { int _v; { void *ptr; if (SWIG_isptrtype(L,argv[0])==0 || SWIG_ConvertPtr(L,argv[0], (void **) &ptr, SWIGTYPE_p_Prelude__IDMEF, 0)) { _v = 0; } else { _v = 1; } } if (_v) { { _v = SWIG_lua_isnilstring(L,argv[1]); } if (_v) { { _v = lua_isstring(L,argv[2]); } if (_v) { return _wrap_IDMEF_set__SWIG_3(L); } } } } SWIG_Lua_pusherrstring(L,"Wrong arguments for overloaded function 'IDMEF_set'\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEF::set(char const *,std::vector< Prelude::IDMEF > const &)\n" " Prelude::IDMEF::set(char const *,Prelude::IDMEF *)\n" " Prelude::IDMEF::set(char const *,std::vector< Prelude::IDMEFValue > const &)\n" " Prelude::IDMEF::set(char const *,std::string const &)\n" " Prelude::IDMEF::set(char const *,Prelude::IDMEFValue *)\n" " Prelude::IDMEF::set(char const *,Prelude::IDMEFTime &)\n" " Prelude::IDMEF::set(char const *,int32_t)\n" " Prelude::IDMEF::set(char const *,int64_t)\n" " Prelude::IDMEF::set(char const *,uint64_t)\n" " Prelude::IDMEF::set(char const *,float)\n" " Prelude::IDMEF::set(char const *,double)\n"); lua_error(L);return 0; } static int _wrap_IDMEF_clone(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; Prelude::IDMEF result; SWIG_check_num_args("Prelude::IDMEF::clone",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::clone",1,"Prelude::IDMEF *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_clone",1,SWIGTYPE_p_Prelude__IDMEF); } { try { result = (arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { Prelude::IDMEF * resultptr = new Prelude::IDMEF((const Prelude::IDMEF &) result); SWIG_NewPointerObj(L,(void *) resultptr,SWIGTYPE_p_Prelude__IDMEF,1); SWIG_arg++; } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_getId(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; idmef_class_id_t result; SWIG_check_num_args("Prelude::IDMEF::getId",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::getId",1,"Prelude::IDMEF const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_getId",1,SWIGTYPE_p_Prelude__IDMEF); } { try { result = (idmef_class_id_t)((Prelude::IDMEF const *)arg1)->getId(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_toString(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; std::string result; SWIG_check_num_args("Prelude::IDMEF::toString",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::toString",1,"Prelude::IDMEF const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_toString",1,SWIGTYPE_p_Prelude__IDMEF); } { try { result = ((Prelude::IDMEF const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_toJSON(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; std::string result; SWIG_check_num_args("Prelude::IDMEF::toJSON",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::toJSON",1,"Prelude::IDMEF const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_toJSON",1,SWIGTYPE_p_Prelude__IDMEF); } { try { result = ((Prelude::IDMEF const *)arg1)->toJSON(); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushlstring(L,(&result)->data(),(&result)->size()); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF___eq(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; Prelude::IDMEF *arg2 = (Prelude::IDMEF *) 0 ; int result; SWIG_check_num_args("Prelude::IDMEF::operator ==",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::operator ==",1,"Prelude::IDMEF *"); if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("Prelude::IDMEF::operator ==",2,"Prelude::IDMEF const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF___eq",1,SWIGTYPE_p_Prelude__IDMEF); } if (!SWIG_IsOK(SWIG_ConvertPtr(L,2,(void**)&arg2,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF___eq",2,SWIGTYPE_p_Prelude__IDMEF); } { try { result = (int)(arg1)->operator ==((Prelude::IDMEF const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF___tostring(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *result = 0 ; SWIG_check_num_args("Prelude::IDMEF::__str__",1,1) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::__str__",1,"Prelude::IDMEF *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF___tostring",1,SWIGTYPE_p_Prelude__IDMEF); } { try { result = (char *)Prelude_IDMEF___str__(arg1); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } lua_pushstring(L,(const char *)result); SWIG_arg++; delete [] result; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_write(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *arg2 = (void *) 0 ; SWIG_check_num_args("Prelude::IDMEF::write",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::write",1,"Prelude::IDMEF *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_write",1,SWIGTYPE_p_Prelude__IDMEF); } { FILE **pf; pf = (FILE **)lua_touserdata(L, 2); if (pf == NULL) { lua_pushstring(L,"Argument is not a file"); SWIG_fail; } arg2 = *pf; } { try { Prelude_IDMEF_write(arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_read(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *arg2 = (void *) 0 ; int result; SWIG_check_num_args("Prelude::IDMEF::read",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::read",1,"Prelude::IDMEF *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_read",1,SWIGTYPE_p_Prelude__IDMEF); } { FILE **pf; pf = (FILE **)lua_touserdata(L, 2); if (pf == NULL) { lua_pushstring(L,"Argument is not a file"); SWIG_fail; } arg2 = *pf; } { try { result = (int)Prelude_IDMEF_read(arg1,arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) return 0; else { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } } lua_pushnumber(L, (lua_Number) result); SWIG_arg++; return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static int _wrap_IDMEF_get(lua_State* L) { int SWIG_arg = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEFValue result; SWIG_check_num_args("Prelude::IDMEF::get",2,2) if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("Prelude::IDMEF::get",1,"Prelude::IDMEF *"); if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("Prelude::IDMEF::get",2,"char const *"); if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Prelude__IDMEF,0))){ SWIG_fail_ptr("IDMEF_get",1,SWIGTYPE_p_Prelude__IDMEF); } arg2 = (char *)lua_tostring(L, 2); { try { result = Prelude_IDMEF_get(arg1,(char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { int ret, unused; if ( (&result)->isNull() ) { lua_pushnil(L); SWIG_arg = 1; } else { SWIG_arg = IDMEFValue_to_SWIG(&unused, result, L, &unused); if ( SWIG_arg < 0 ) { std::stringstream s; s << "IDMEFValue typemap does not handle value of type '" << idmef_value_type_to_string((idmef_value_type_id_t) (&result)->getType()) << "'"; SWIG_exception(SWIG_ValueError, s.str().c_str()); } } } return SWIG_arg; if(0) SWIG_fail; fail: lua_error(L); return SWIG_arg; } static void swig_delete_IDMEF(void *obj) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) obj; delete arg1; } static int _proxy__wrap_new_IDMEF(lua_State *L) { assert(lua_istable(L,1)); lua_pushcfunction(L,_wrap_new_IDMEF); assert(!lua_isnil(L,-1)); lua_replace(L,1); /* replace our table with real constructor */ lua_call(L,lua_gettop(L)-1,1); return 1; } static swig_lua_attribute swig_IDMEF_attributes[] = { {0,0,0} }; static swig_lua_method swig_IDMEF_methods[]= { { "set", _wrap_IDMEF_set}, { "clone", _wrap_IDMEF_clone}, { "getId", _wrap_IDMEF_getId}, { "toString", _wrap_IDMEF_toString}, { "toJSON", _wrap_IDMEF_toJSON}, { "__eq", _wrap_IDMEF___eq}, { "__tostring", _wrap_IDMEF___tostring}, { "write", _wrap_IDMEF_write}, { "read", _wrap_IDMEF_read}, { "get", _wrap_IDMEF_get}, {0,0} }; static swig_lua_method swig_IDMEF_meta[] = { { "__eq", _wrap_IDMEF___eq}, { "__tostring", _wrap_IDMEF___tostring}, {0,0} }; static swig_lua_attribute swig_IDMEF_Sf_SwigStatic_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_IDMEF_Sf_SwigStatic_constants[]= { {0,0,0,0,0,0} }; static swig_lua_method swig_IDMEF_Sf_SwigStatic_methods[]= { {0,0} }; static swig_lua_class* swig_IDMEF_Sf_SwigStatic_classes[]= { 0 }; static swig_lua_namespace swig_IDMEF_Sf_SwigStatic = { "IDMEF", swig_IDMEF_Sf_SwigStatic_methods, swig_IDMEF_Sf_SwigStatic_attributes, swig_IDMEF_Sf_SwigStatic_constants, swig_IDMEF_Sf_SwigStatic_classes, 0 }; static swig_lua_class *swig_IDMEF_bases[] = {0}; static const char *swig_IDMEF_base_names[] = {0}; static swig_lua_class _wrap_class_IDMEF = { "IDMEF", "IDMEF", &SWIGTYPE_p_Prelude__IDMEF,_proxy__wrap_new_IDMEF, swig_delete_IDMEF, swig_IDMEF_methods, swig_IDMEF_attributes, &swig_IDMEF_Sf_SwigStatic, swig_IDMEF_meta, swig_IDMEF_bases, swig_IDMEF_base_names }; static swig_lua_attribute swig_SwigModule_attributes[] = { {0,0,0} }; static swig_lua_const_info swig_SwigModule_constants[]= { {SWIG_LUA_CONSTTAB_INT("Client_ASYNC_SEND", Prelude::Client::ASYNC_SEND)}, {SWIG_LUA_CONSTTAB_INT("Client_FLAGS_ASYNC_SEND", Prelude::Client::FLAGS_ASYNC_SEND)}, {SWIG_LUA_CONSTTAB_INT("Client_ASYNC_TIMER", Prelude::Client::ASYNC_TIMER)}, {SWIG_LUA_CONSTTAB_INT("Client_FLAGS_ASYNC_TIMER", Prelude::Client::FLAGS_ASYNC_TIMER)}, {SWIG_LUA_CONSTTAB_INT("Client_HEARTBEAT", Prelude::Client::HEARTBEAT)}, {SWIG_LUA_CONSTTAB_INT("Client_FLAGS_HEARTBEAT", Prelude::Client::FLAGS_HEARTBEAT)}, {SWIG_LUA_CONSTTAB_INT("Client_CONNECT", Prelude::Client::CONNECT)}, {SWIG_LUA_CONSTTAB_INT("Client_FLAGS_CONNECT", Prelude::Client::FLAGS_CONNECT)}, {SWIG_LUA_CONSTTAB_INT("Client_AUTOCONFIG", Prelude::Client::AUTOCONFIG)}, {SWIG_LUA_CONSTTAB_INT("Client_FLAGS_AUTOCONFIG", Prelude::Client::FLAGS_AUTOCONFIG)}, {SWIG_LUA_CONSTTAB_INT("Client_IDMEF_READ", Prelude::Client::IDMEF_READ)}, {SWIG_LUA_CONSTTAB_INT("Client_PERMISSION_IDMEF_READ", Prelude::Client::PERMISSION_IDMEF_READ)}, {SWIG_LUA_CONSTTAB_INT("Client_ADMIN_READ", Prelude::Client::ADMIN_READ)}, {SWIG_LUA_CONSTTAB_INT("Client_PERMISSION_ADMIN_READ", Prelude::Client::PERMISSION_ADMIN_READ)}, {SWIG_LUA_CONSTTAB_INT("Client_IDMEF_WRITE", Prelude::Client::IDMEF_WRITE)}, {SWIG_LUA_CONSTTAB_INT("Client_PERMISSION_IDMEF_WRITE", Prelude::Client::PERMISSION_IDMEF_WRITE)}, {SWIG_LUA_CONSTTAB_INT("Client_ADMIN_WRITE", Prelude::Client::ADMIN_WRITE)}, {SWIG_LUA_CONSTTAB_INT("Client_PERMISSION_ADMIN_WRITE", Prelude::Client::PERMISSION_ADMIN_WRITE)}, {SWIG_LUA_CONSTTAB_INT("PreludeLog_DEBUG", Prelude::PreludeLog::DEBUG)}, {SWIG_LUA_CONSTTAB_INT("PreludeLog_INFO", Prelude::PreludeLog::INFO)}, {SWIG_LUA_CONSTTAB_INT("PreludeLog_WARNING", Prelude::PreludeLog::WARNING)}, {SWIG_LUA_CONSTTAB_INT("PreludeLog_ERROR", Prelude::PreludeLog::ERROR)}, {SWIG_LUA_CONSTTAB_INT("PreludeLog_CRITICAL", Prelude::PreludeLog::CRITICAL)}, {SWIG_LUA_CONSTTAB_INT("PreludeLog_QUIET", Prelude::PreludeLog::QUIET)}, {SWIG_LUA_CONSTTAB_INT("PreludeLog_SYSLOG", Prelude::PreludeLog::SYSLOG)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_NOT", Prelude::IDMEFCriterion::OPERATOR_NOT)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_NOCASE", Prelude::IDMEFCriterion::OPERATOR_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_EQUAL", Prelude::IDMEFCriterion::OPERATOR_EQUAL)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_EQUAL_NOCASE", Prelude::IDMEFCriterion::OPERATOR_EQUAL_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_NOT_EQUAL", Prelude::IDMEFCriterion::OPERATOR_NOT_EQUAL)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_NOT_EQUAL_NOCASE", Prelude::IDMEFCriterion::OPERATOR_NOT_EQUAL_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_LESSER", Prelude::IDMEFCriterion::OPERATOR_LESSER)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_LESSER_OR_EQUAL", Prelude::IDMEFCriterion::OPERATOR_LESSER_OR_EQUAL)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_GREATER", Prelude::IDMEFCriterion::OPERATOR_GREATER)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_GREATER_OR_EQUAL", Prelude::IDMEFCriterion::OPERATOR_GREATER_OR_EQUAL)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_SUBSTR", Prelude::IDMEFCriterion::OPERATOR_SUBSTR)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_SUBSTR_NOCASE", Prelude::IDMEFCriterion::OPERATOR_SUBSTR_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_NOT_SUBSTR", Prelude::IDMEFCriterion::OPERATOR_NOT_SUBSTR)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_NOT_SUBSTR_NOCASE", Prelude::IDMEFCriterion::OPERATOR_NOT_SUBSTR_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_REGEX", Prelude::IDMEFCriterion::OPERATOR_REGEX)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_REGEX_NOCASE", Prelude::IDMEFCriterion::OPERATOR_REGEX_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_NOT_REGEX", Prelude::IDMEFCriterion::OPERATOR_NOT_REGEX)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_NOT_REGEX_NOCASE", Prelude::IDMEFCriterion::OPERATOR_NOT_REGEX_NOCASE)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_NULL", Prelude::IDMEFCriterion::OPERATOR_NULL)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriterion_OPERATOR_NOT_NULL", Prelude::IDMEFCriterion::OPERATOR_NOT_NULL)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriteria_OPERATOR_NOT", Prelude::IDMEFCriteria::OPERATOR_NOT)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriteria_OPERATOR_AND", Prelude::IDMEFCriteria::OPERATOR_AND)}, {SWIG_LUA_CONSTTAB_INT("IDMEFCriteria_OPERATOR_OR", Prelude::IDMEFCriteria::OPERATOR_OR)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_UNKNOWN", Prelude::IDMEFValue::TYPE_UNKNOWN)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_INT8", Prelude::IDMEFValue::TYPE_INT8)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_UINT8", Prelude::IDMEFValue::TYPE_UINT8)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_INT16", Prelude::IDMEFValue::TYPE_INT16)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_UINT16", Prelude::IDMEFValue::TYPE_UINT16)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_INT32", Prelude::IDMEFValue::TYPE_INT32)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_UINT32", Prelude::IDMEFValue::TYPE_UINT32)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_INT64", Prelude::IDMEFValue::TYPE_INT64)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_UINT64", Prelude::IDMEFValue::TYPE_UINT64)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_FLOAT", Prelude::IDMEFValue::TYPE_FLOAT)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_DOUBLE", Prelude::IDMEFValue::TYPE_DOUBLE)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_STRING", Prelude::IDMEFValue::TYPE_STRING)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_TIME", Prelude::IDMEFValue::TYPE_TIME)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_DATA", Prelude::IDMEFValue::TYPE_DATA)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_ENUM", Prelude::IDMEFValue::TYPE_ENUM)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_LIST", Prelude::IDMEFValue::TYPE_LIST)}, {SWIG_LUA_CONSTTAB_INT("IDMEFValue_TYPE_CLASS", Prelude::IDMEFValue::TYPE_CLASS)}, {0,0,0,0,0,0} }; static swig_lua_method swig_SwigModule_methods[]= { { "checkVersion", _wrap_checkVersion}, { "Client_setRecvTimeout", _wrap_Client_setRecvTimeout}, { "PreludeLog_setLevel", _wrap_PreludeLog_setLevel}, { "PreludeLog_setDebugLevel", _wrap_PreludeLog_setDebugLevel}, { "PreludeLog_setFlags", _wrap_PreludeLog_setFlags}, { "PreludeLog_getFlags", _wrap_PreludeLog_getFlags}, { "PreludeLog_setLogfile", _wrap_PreludeLog_setLogfile}, { "PreludeLog_setCallback", _wrap_PreludeLog_setCallback}, {0,0} }; static swig_lua_class* swig_SwigModule_classes[]= { &_wrap_class_string, &_wrap_class_ClientProfile, &_wrap_class_Connection, &_wrap_class_ConnectionPool, &_wrap_class_Client, &_wrap_class_PreludeLog, &_wrap_class_PreludeError, &_wrap_class_ClientEasy, &_wrap_class_IDMEFCriterion, &_wrap_class_IDMEFCriteria, &_wrap_class_IDMEFValue, &_wrap_class_IDMEFPath, &_wrap_class_IDMEFTime, &_wrap_class_IDMEFClass, &_wrap_class_IDMEF, 0 }; static swig_lua_namespace* swig_SwigModule_namespaces[] = { 0 }; static swig_lua_namespace swig_SwigModule = { "prelude", swig_SwigModule_methods, swig_SwigModule_attributes, swig_SwigModule_constants, swig_SwigModule_classes, swig_SwigModule_namespaces }; #ifdef __cplusplus } #endif /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static void *_p_Prelude__ClientTo_p_Prelude__ClientProfile(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Prelude::ClientProfile *) ((Prelude::Client *) x)); } static void *_p_Prelude__ClientEasyTo_p_Prelude__ClientProfile(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Prelude::ClientProfile *) (Prelude::Client *) ((Prelude::ClientEasy *) x)); } static void *_p_Prelude__PreludeErrorTo_p_std__exception(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((std::exception *) ((Prelude::PreludeError *) x)); } static void *_p_Prelude__ClientEasyTo_p_Prelude__Client(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Prelude::Client *) ((Prelude::ClientEasy *) x)); } static swig_type_info _swigt__p_Prelude__Client = {"_p_Prelude__Client", "Prelude::Client *", 0, 0, (void*)&_wrap_class_Client, 0}; static swig_type_info _swigt__p_Prelude__ClientEasy = {"_p_Prelude__ClientEasy", "Prelude::ClientEasy *", 0, 0, (void*)&_wrap_class_ClientEasy, 0}; static swig_type_info _swigt__p_Prelude__ClientProfile = {"_p_Prelude__ClientProfile", "Prelude::ClientProfile *", 0, 0, (void*)&_wrap_class_ClientProfile, 0}; static swig_type_info _swigt__p_Prelude__Connection = {"_p_Prelude__Connection", "Prelude::Connection *", 0, 0, (void*)&_wrap_class_Connection, 0}; static swig_type_info _swigt__p_Prelude__ConnectionPool = {"_p_Prelude__ConnectionPool", "Prelude::ConnectionPool *", 0, 0, (void*)&_wrap_class_ConnectionPool, 0}; static swig_type_info _swigt__p_Prelude__IDMEF = {"_p_Prelude__IDMEF", "Prelude::IDMEF *", 0, 0, (void*)&_wrap_class_IDMEF, 0}; static swig_type_info _swigt__p_Prelude__IDMEFClass = {"_p_Prelude__IDMEFClass", "Prelude::IDMEFClass *", 0, 0, (void*)&_wrap_class_IDMEFClass, 0}; static swig_type_info _swigt__p_Prelude__IDMEFCriteria = {"_p_Prelude__IDMEFCriteria", "Prelude::IDMEFCriteria *", 0, 0, (void*)&_wrap_class_IDMEFCriteria, 0}; static swig_type_info _swigt__p_Prelude__IDMEFCriterion = {"_p_Prelude__IDMEFCriterion", "Prelude::IDMEFCriterion *", 0, 0, (void*)&_wrap_class_IDMEFCriterion, 0}; static swig_type_info _swigt__p_Prelude__IDMEFPath = {"_p_Prelude__IDMEFPath", "Prelude::IDMEFPath *", 0, 0, (void*)&_wrap_class_IDMEFPath, 0}; static swig_type_info _swigt__p_Prelude__IDMEFTime = {"_p_Prelude__IDMEFTime", "Prelude::IDMEFTime *", 0, 0, (void*)&_wrap_class_IDMEFTime, 0}; static swig_type_info _swigt__p_Prelude__IDMEFValue = {"_p_Prelude__IDMEFValue", "Prelude::IDMEFValue *", 0, 0, (void*)&_wrap_class_IDMEFValue, 0}; static swig_type_info _swigt__p_Prelude__PreludeError = {"_p_Prelude__PreludeError", "Prelude::PreludeError *", 0, 0, (void*)&_wrap_class_PreludeError, 0}; static swig_type_info _swigt__p_Prelude__PreludeLog = {"_p_Prelude__PreludeLog", "Prelude::PreludeLog *", 0, 0, (void*)&_wrap_class_PreludeLog, 0}; static swig_type_info _swigt__p_char = {"_p_char", "char *|int8_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_difference_type = {"_p_difference_type", "difference_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_int_p_q_const__char__void = {"_p_f_int_p_q_const__char__void", "void (*)(int,char const *)", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_criteria_t = {"_p_idmef_criteria_t", "idmef_criteria_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_criterion_operator_t = {"_p_idmef_criterion_operator_t", "idmef_criterion_operator_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_object_t = {"_p_idmef_object_t", "idmef_object_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_path_t = {"_p_idmef_path_t", "idmef_path_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_time_t = {"_p_idmef_time_t", "idmef_time_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_value_t = {"_p_idmef_value_t", "idmef_value_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_int = {"_p_int", "int *|int32_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_key_type = {"_p_key_type", "key_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_long_long = {"_p_long_long", "int64_t *|long long *|time_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_mapped_type = {"_p_mapped_type", "mapped_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_client_profile_t = {"_p_prelude_client_profile_t", "prelude_client_profile_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_client_t = {"_p_prelude_client_t", "prelude_client_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_connection_pool_t = {"_p_prelude_connection_pool_t", "prelude_connection_pool_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_connection_t = {"_p_prelude_connection_t", "prelude_connection_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_short = {"_p_short", "short *|int16_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_size_type = {"_p_size_type", "size_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__exception = {"_p_std__exception", "std::exception *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__mapT_std__string_std__string_std__lessT_std__string_t_t = {"_p_std__mapT_std__string_std__string_std__lessT_std__string_t_t", "std::map< std::string,std::string,std::less< std::string > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__string = {"_p_std__string", "std::string *", 0, 0, (void*)&_wrap_class_string, 0}; static swig_type_info _swigt__p_std__vectorT_Prelude__Connection_t = {"_p_std__vectorT_Prelude__Connection_t", "std::vector< Prelude::Connection > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_Prelude__IDMEFValue_t = {"_p_std__vectorT_Prelude__IDMEFValue_t", "std::vector< Prelude::IDMEFValue > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_Prelude__IDMEF_t = {"_p_std__vectorT_Prelude__IDMEF_t", "std::vector< Prelude::IDMEF > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_std__string_t = {"_p_std__vectorT_std__string_t", "std::vector< std::string > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_timeval = {"_p_timeval", "timeval *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "unsigned char *|uint8_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "uint32_t *|unsigned int *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_long_long = {"_p_unsigned_long_long", "uint64_t *|unsigned long long *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "unsigned short *|uint16_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_value_type = {"_p_value_type", "value_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_void = {"_p_void", "void *", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_Prelude__Client, &_swigt__p_Prelude__ClientEasy, &_swigt__p_Prelude__ClientProfile, &_swigt__p_Prelude__Connection, &_swigt__p_Prelude__ConnectionPool, &_swigt__p_Prelude__IDMEF, &_swigt__p_Prelude__IDMEFClass, &_swigt__p_Prelude__IDMEFCriteria, &_swigt__p_Prelude__IDMEFCriterion, &_swigt__p_Prelude__IDMEFPath, &_swigt__p_Prelude__IDMEFTime, &_swigt__p_Prelude__IDMEFValue, &_swigt__p_Prelude__PreludeError, &_swigt__p_Prelude__PreludeLog, &_swigt__p_char, &_swigt__p_difference_type, &_swigt__p_f_int_p_q_const__char__void, &_swigt__p_idmef_criteria_t, &_swigt__p_idmef_criterion_operator_t, &_swigt__p_idmef_object_t, &_swigt__p_idmef_path_t, &_swigt__p_idmef_time_t, &_swigt__p_idmef_value_t, &_swigt__p_int, &_swigt__p_key_type, &_swigt__p_long_long, &_swigt__p_mapped_type, &_swigt__p_prelude_client_profile_t, &_swigt__p_prelude_client_t, &_swigt__p_prelude_connection_pool_t, &_swigt__p_prelude_connection_t, &_swigt__p_short, &_swigt__p_size_type, &_swigt__p_std__exception, &_swigt__p_std__mapT_std__string_std__string_std__lessT_std__string_t_t, &_swigt__p_std__string, &_swigt__p_std__vectorT_Prelude__Connection_t, &_swigt__p_std__vectorT_Prelude__IDMEFValue_t, &_swigt__p_std__vectorT_Prelude__IDMEF_t, &_swigt__p_std__vectorT_std__string_t, &_swigt__p_timeval, &_swigt__p_unsigned_char, &_swigt__p_unsigned_int, &_swigt__p_unsigned_long_long, &_swigt__p_unsigned_short, &_swigt__p_value_type, &_swigt__p_void, }; static swig_cast_info _swigc__p_Prelude__Client[] = { {&_swigt__p_Prelude__Client, 0, 0, 0}, {&_swigt__p_Prelude__ClientEasy, _p_Prelude__ClientEasyTo_p_Prelude__Client, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__ClientEasy[] = { {&_swigt__p_Prelude__ClientEasy, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__ClientProfile[] = { {&_swigt__p_Prelude__Client, _p_Prelude__ClientTo_p_Prelude__ClientProfile, 0, 0}, {&_swigt__p_Prelude__ClientProfile, 0, 0, 0}, {&_swigt__p_Prelude__ClientEasy, _p_Prelude__ClientEasyTo_p_Prelude__ClientProfile, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__Connection[] = { {&_swigt__p_Prelude__Connection, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__ConnectionPool[] = { {&_swigt__p_Prelude__ConnectionPool, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEF[] = { {&_swigt__p_Prelude__IDMEF, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFClass[] = { {&_swigt__p_Prelude__IDMEFClass, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFCriteria[] = { {&_swigt__p_Prelude__IDMEFCriteria, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFCriterion[] = { {&_swigt__p_Prelude__IDMEFCriterion, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFPath[] = { {&_swigt__p_Prelude__IDMEFPath, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFTime[] = { {&_swigt__p_Prelude__IDMEFTime, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFValue[] = { {&_swigt__p_Prelude__IDMEFValue, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__PreludeError[] = { {&_swigt__p_Prelude__PreludeError, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__PreludeLog[] = { {&_swigt__p_Prelude__PreludeLog, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_difference_type[] = { {&_swigt__p_difference_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_int_p_q_const__char__void[] = { {&_swigt__p_f_int_p_q_const__char__void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_criteria_t[] = { {&_swigt__p_idmef_criteria_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_criterion_operator_t[] = { {&_swigt__p_idmef_criterion_operator_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_object_t[] = { {&_swigt__p_idmef_object_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_path_t[] = { {&_swigt__p_idmef_path_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_time_t[] = { {&_swigt__p_idmef_time_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_value_t[] = { {&_swigt__p_idmef_value_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_key_type[] = { {&_swigt__p_key_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_long_long[] = { {&_swigt__p_long_long, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_mapped_type[] = { {&_swigt__p_mapped_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_client_profile_t[] = { {&_swigt__p_prelude_client_profile_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_client_t[] = { {&_swigt__p_prelude_client_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_connection_pool_t[] = { {&_swigt__p_prelude_connection_pool_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_connection_t[] = { {&_swigt__p_prelude_connection_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_short[] = { {&_swigt__p_short, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_size_type[] = { {&_swigt__p_size_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__exception[] = { {&_swigt__p_std__exception, 0, 0, 0}, {&_swigt__p_Prelude__PreludeError, _p_Prelude__PreludeErrorTo_p_std__exception, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__mapT_std__string_std__string_std__lessT_std__string_t_t[] = { {&_swigt__p_std__mapT_std__string_std__string_std__lessT_std__string_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__string[] = { {&_swigt__p_std__string, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_Prelude__Connection_t[] = { {&_swigt__p_std__vectorT_Prelude__Connection_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_Prelude__IDMEFValue_t[] = { {&_swigt__p_std__vectorT_Prelude__IDMEFValue_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_Prelude__IDMEF_t[] = { {&_swigt__p_std__vectorT_Prelude__IDMEF_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_std__string_t[] = { {&_swigt__p_std__vectorT_std__string_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_timeval[] = { {&_swigt__p_timeval, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_char[] = { {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_long_long[] = { {&_swigt__p_unsigned_long_long, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_short[] = { {&_swigt__p_unsigned_short, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_value_type[] = { {&_swigt__p_value_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_void[] = { {&_swigt__p_void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { _swigc__p_Prelude__Client, _swigc__p_Prelude__ClientEasy, _swigc__p_Prelude__ClientProfile, _swigc__p_Prelude__Connection, _swigc__p_Prelude__ConnectionPool, _swigc__p_Prelude__IDMEF, _swigc__p_Prelude__IDMEFClass, _swigc__p_Prelude__IDMEFCriteria, _swigc__p_Prelude__IDMEFCriterion, _swigc__p_Prelude__IDMEFPath, _swigc__p_Prelude__IDMEFTime, _swigc__p_Prelude__IDMEFValue, _swigc__p_Prelude__PreludeError, _swigc__p_Prelude__PreludeLog, _swigc__p_char, _swigc__p_difference_type, _swigc__p_f_int_p_q_const__char__void, _swigc__p_idmef_criteria_t, _swigc__p_idmef_criterion_operator_t, _swigc__p_idmef_object_t, _swigc__p_idmef_path_t, _swigc__p_idmef_time_t, _swigc__p_idmef_value_t, _swigc__p_int, _swigc__p_key_type, _swigc__p_long_long, _swigc__p_mapped_type, _swigc__p_prelude_client_profile_t, _swigc__p_prelude_client_t, _swigc__p_prelude_connection_pool_t, _swigc__p_prelude_connection_t, _swigc__p_short, _swigc__p_size_type, _swigc__p_std__exception, _swigc__p_std__mapT_std__string_std__string_std__lessT_std__string_t_t, _swigc__p_std__string, _swigc__p_std__vectorT_Prelude__Connection_t, _swigc__p_std__vectorT_Prelude__IDMEFValue_t, _swigc__p_std__vectorT_Prelude__IDMEF_t, _swigc__p_std__vectorT_std__string_t, _swigc__p_timeval, _swigc__p_unsigned_char, _swigc__p_unsigned_int, _swigc__p_unsigned_long_long, _swigc__p_unsigned_short, _swigc__p_value_type, _swigc__p_void, }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ /* ----------------------------------------------------------------------------- * Type initialization: * This problem is tough by the requirement that no dynamic * memory is used. Also, since swig_type_info structures store pointers to * swig_cast_info structures and swig_cast_info structures store pointers back * to swig_type_info structures, we need some lookup code at initialization. * The idea is that swig generates all the structures that are needed. * The runtime then collects these partially filled structures. * The SWIG_InitializeModule function takes these initial arrays out of * swig_module, and does all the lookup, filling in the swig_module.types * array with the correct data and linking the correct swig_cast_info * structures together. * * The generated swig_type_info structures are assigned statically to an initial * array. We just loop through that array, and handle each type individually. * First we lookup if this type has been already loaded, and if so, use the * loaded structure instead of the generated one. Then we have to fill in the * cast linked list. The cast data is initially stored in something like a * two-dimensional array. Each row corresponds to a type (there are the same * number of rows as there are in the swig_type_initial array). Each entry in * a column is one of the swig_cast_info structures for that type. * The cast_initial array is actually an array of arrays, because each row has * a variable number of columns. So to actually build the cast linked list, * we find the array of casts associated with the type, and loop through it * adding the casts to the list. The one last trick we need to do is making * sure the type pointer in the swig_cast_info struct is correct. * * First off, we lookup the cast->type name to see if it is already loaded. * There are three cases to handle: * 1) If the cast->type has already been loaded AND the type we are adding * casting info to has not been loaded (it is in this module), THEN we * replace the cast->type pointer with the type pointer that has already * been loaded. * 2) If BOTH types (the one we are adding casting info to, and the * cast->type) are loaded, THEN the cast info has already been loaded by * the previous module so we just ignore it. * 3) Finally, if cast->type has not already been loaded, then we add that * swig_cast_info to the linked list (because the cast->type) pointer will * be correct. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* c-mode */ #endif #endif #if 0 #define SWIGRUNTIME_DEBUG #endif SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { size_t i; swig_module_info *module_head, *iter; int init; /* check to see if the circular list has been setup, if not, set it up */ if (swig_module.next==0) { /* Initialize the swig_module */ swig_module.type_initial = swig_type_initial; swig_module.cast_initial = swig_cast_initial; swig_module.next = &swig_module; init = 1; } else { init = 0; } /* Try and load any already created modules */ module_head = SWIG_GetModule(clientdata); if (!module_head) { /* This is the first module loaded for this interpreter */ /* so set the swig module into the interpreter */ SWIG_SetModule(clientdata, &swig_module); } else { /* the interpreter has loaded a SWIG module, but has it loaded this one? */ iter=module_head; do { if (iter==&swig_module) { /* Our module is already in the list, so there's nothing more to do. */ return; } iter=iter->next; } while (iter!= module_head); /* otherwise we must add our module into the list */ swig_module.next = module_head->next; module_head->next = &swig_module; } /* When multiple interpreters are used, a module could have already been initialized in a different interpreter, but not yet have a pointer in this interpreter. In this case, we do not want to continue adding types... everything should be set up already */ if (init == 0) return; /* Now work on filling in swig_module.types */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: size %lu\n", (unsigned long)swig_module.size); #endif for (i = 0; i < swig_module.size; ++i) { swig_type_info *type = 0; swig_type_info *ret; swig_cast_info *cast; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name); #endif /* if there is another module already loaded */ if (swig_module.next != &swig_module) { type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); } if (type) { /* Overwrite clientdata field */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found type %s\n", type->name); #endif if (swig_module.type_initial[i]->clientdata) { type->clientdata = swig_module.type_initial[i]->clientdata; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); #endif } } else { type = swig_module.type_initial[i]; } /* Insert casting types */ cast = swig_module.cast_initial[i]; while (cast->type) { /* Don't need to add information already in the list */ ret = 0; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); #endif if (swig_module.next != &swig_module) { ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); #ifdef SWIGRUNTIME_DEBUG if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); #endif } if (ret) { if (type == swig_module.type_initial[i]) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: skip old type %s\n", ret->name); #endif cast->type = ret; ret = 0; } else { /* Check for casting already in the list */ swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); #ifdef SWIGRUNTIME_DEBUG if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); #endif if (!ocast) ret = 0; } } if (!ret) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); #endif if (type->cast) { type->cast->prev = cast; cast->next = type->cast; } type->cast = cast; } cast++; } /* Set entry in modules->types array equal to the type */ swig_module.types[i] = type; } swig_module.types[i] = 0; #ifdef SWIGRUNTIME_DEBUG printf("**** SWIG_InitializeModule: Cast List ******\n"); for (i = 0; i < swig_module.size; ++i) { int j = 0; swig_cast_info *cast = swig_module.cast_initial[i]; printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name); while (cast->type) { printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); cast++; ++j; } printf("---- Total casts: %d\n",j); } printf("**** SWIG_InitializeModule: Cast List ******\n"); #endif } /* This function will propagate the clientdata field of type to * any new swig_type_info structures that have been added into the list * of equivalent types. It is like calling * SWIG_TypeClientData(type, clientdata) a second time. */ SWIGRUNTIME void SWIG_PropagateClientData(void) { size_t i; swig_cast_info *equiv; static int init_run = 0; if (init_run) return; init_run = 1; for (i = 0; i < swig_module.size; i++) { if (swig_module.types[i]->clientdata) { equiv = swig_module.types[i]->cast; while (equiv) { if (!equiv->converter) { if (equiv->type && !equiv->type->clientdata) SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); } equiv = equiv->next; } } } } #ifdef __cplusplus #if 0 { /* c-mode */ #endif } #endif /* Forward declaration of where the user's %init{} gets inserted */ void SWIG_init_user(lua_State* L ); #ifdef __cplusplus extern "C" { #endif /* this is the initialization function added at the very end of the code the function is always called SWIG_init, but an earlier #define will rename it */ #if ((SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC)) LUALIB_API int SWIG_init(lua_State* L) #else SWIGEXPORT int SWIG_init(lua_State* L) /* default Lua action */ #endif { #if (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC) /* valid for both Lua and eLua */ int i; int globalRegister = 0; /* start with global table */ lua_pushglobaltable (L); /* SWIG's internal initialisation */ SWIG_InitializeModule((void*)L); SWIG_PropagateClientData(); #endif #if ((SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUA) && (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC)) || defined(SWIG_LUA_ELUA_EMULATE) /* add a global fn */ SWIG_Lua_add_function(L,"swig_type",SWIG_Lua_type); SWIG_Lua_add_function(L,"swig_equals",SWIG_Lua_class_equal); #endif #if (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC) /* set up base class pointers (the hierarchy) */ for (i = 0; swig_types[i]; i++){ if (swig_types[i]->clientdata){ SWIG_Lua_init_base_class(L,(swig_lua_class*)(swig_types[i]->clientdata)); } } #ifdef SWIG_LUA_MODULE_GLOBAL globalRegister = 1; #endif #if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_LUA) SWIG_Lua_namespace_register(L,&swig_SwigModule, globalRegister); #endif #if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC) for (i = 0; swig_types[i]; i++){ if (swig_types[i]->clientdata){ SWIG_Lua_elua_class_register_instance(L,(swig_lua_class*)(swig_types[i]->clientdata)); } } #endif #if defined(SWIG_LUA_ELUA_EMULATE) lua_newtable(L); SWIG_Lua_elua_emulate_register(L,swig_SwigModule.ns_methods); SWIG_Lua_elua_emulate_register_clear(L); if(globalRegister) { lua_pushstring(L,swig_SwigModule.name); lua_pushvalue(L,-2); lua_rawset(L,-4); } #endif #endif #if (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC) /* invoke user-specific initialization */ SWIG_init_user(L); /* end module */ /* Note: We do not clean up the stack here (Lua will do this for us). At this point, we have the globals table and out module table on the stack. Returning one value makes the module table the result of the require command. */ return 1; #else return 0; #endif } #ifdef __cplusplus } #endif const char* SWIG_LUACODE= ""; void SWIG_init_user(lua_State* L) { int argc = 0, ret; static char *argv[1024]; __initial_thread = (gl_thread_t) gl_thread_self(); lua_getglobal(L, "arg"); if ( ! lua_istable(L, -1) ) return; lua_pushnil(L); while ( lua_next(L, -2) != 0 ) { int idx; const char *val; idx = lua_tonumber(L, -2); val = lua_tostring(L, -1); lua_pop(L, 1); if ( idx < 0 ) continue; if ( idx >= ((sizeof(argv) / sizeof(char *)) - 1) ) throw PreludeError("Argument index too large"); argv[idx] = strdup(val); argc = ((idx) > (argc) ? (idx) : (argc)); } argc++; argv[argc] = NULL; ret = prelude_init(&argc, argv); if ( ret < 0 ) throw PreludeError(ret); /* exec Lua code if applicable */ SWIG_Lua_dostring(L,SWIG_LUACODE); } libprelude-5.2.0/bindings/PaxHeaders.14770/python0000644000000000000000000000011013726163660017713 xustar000000000000000024 mtime=1599662000.465 24 atime=1599662006.646 24 ctime=1599662000.465 libprelude-5.2.0/bindings/python/0000755000000000000000000000000013726163660016773 5ustar00rootroot00000000000000libprelude-5.2.0/bindings/python/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163513022032 xustar000000000000000024 mtime=1599661899.807 24 atime=1599661945.961 24 ctime=1599662000.455 libprelude-5.2.0/bindings/python/Makefile.in0000644000000000000000000016635013726163513021050 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = bindings/python DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/setup.py.in $(am__dist_swigdata_DATA_DIST) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = setup.py CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__dist_swigdata_DATA_DIST = libpreludecpp-python.i am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(swigdatadir)" DATA = $(dist_swigdata_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON_TRUE@swigdatadir = @SWIG_DATA_DIR@/python @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON_TRUE@dist_swigdata_DATA = libpreludecpp-python.i @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON_TRUE@EXTRA_DIST = libpreludecpp-python.i prelude.py _prelude.cxx pystrings.swg all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/python/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu bindings/python/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): setup.py: $(top_builddir)/config.status $(srcdir)/setup.py.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_swigdataDATA: $(dist_swigdata_DATA) @$(NORMAL_INSTALL) @list='$(dist_swigdata_DATA)'; test -n "$(swigdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(swigdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(swigdatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(swigdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(swigdatadir)" || exit $$?; \ done uninstall-dist_swigdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_swigdata_DATA)'; test -n "$(swigdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(swigdatadir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(swigdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." @HAVE_EASY_BINDINGS_FALSE@clean-local: @HAVE_PYTHON_FALSE@clean-local: @HAVE_EASY_BINDINGS_FALSE@install-exec-hook: @HAVE_PYTHON_FALSE@install-exec-hook: @HAVE_EASY_BINDINGS_FALSE@uninstall-hook: @HAVE_PYTHON_FALSE@uninstall-hook: clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_swigdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_swigdataDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-exec-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-local cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_swigdataDATA install-dvi install-dvi-am \ install-exec install-exec-am install-exec-hook install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am uninstall-dist_swigdataDATA \ uninstall-hook @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON_TRUE@all-am: python-build @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON_TRUE@python-build: _prelude.cxx @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON2_TRUE@@HAVE_PYTHON_TRUE@ CC="$(CXX)" $(PYTHON2) setup.py build @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON3_TRUE@@HAVE_PYTHON_TRUE@ CC="$(CXX)" $(PYTHON3) setup.py build @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON_TRUE@install-exec-hook: @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON2_TRUE@@HAVE_PYTHON_TRUE@ $(PYTHON2) setup.py install `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` --prefix @prefix@ @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON3_TRUE@@HAVE_PYTHON_TRUE@ $(PYTHON3) setup.py install `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` --prefix @prefix@ @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON_TRUE@uninstall-hook: @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON2_TRUE@@HAVE_PYTHON_TRUE@ $(PYTHON2) setup.py uninstall `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` --prefix @prefix@ @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON3_TRUE@@HAVE_PYTHON_TRUE@ $(PYTHON3) setup.py uninstall `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` --prefix @prefix@ @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON_TRUE@clean-local: @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON2_TRUE@@HAVE_PYTHON_TRUE@ $(PYTHON2) setup.py clean -a @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON3_TRUE@@HAVE_PYTHON_TRUE@ $(PYTHON3) setup.py clean -a @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON_TRUE@_prelude.cxx prelude.py: $(top_srcdir)/bindings/c++/include/*.hxx $(top_srcdir)/bindings/libpreludecpp.i libpreludecpp-python.i @HAVE_EASY_BINDINGS_TRUE@@HAVE_PYTHON_TRUE@@HAVE_SWIG_TRUE@ $(SWIG) -c++ -DSWIG_COMPILE_LIBPRELUDE -I$(top_srcdir)/bindings -I$(top_srcdir)/bindings/c++/include -I$(top_srcdir)/src/include -I$(top_srcdir)/src/libprelude-error -python -threads -builtin -O -o $@ $(top_srcdir)/bindings/libpreludecpp.i -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/bindings/python/PaxHeaders.14770/Makefile.am0000644000000000000000000000011013726163410022015 xustar000000000000000024 mtime=1599661832.502 24 atime=1599661832.728 24 ctime=1599662000.456 libprelude-5.2.0/bindings/python/Makefile.am0000644000000000000000000000262613726163410021026 0ustar00rootroot00000000000000if HAVE_EASY_BINDINGS if HAVE_PYTHON swigdatadir = @SWIG_DATA_DIR@/python dist_swigdata_DATA = libpreludecpp-python.i EXTRA_DIST = libpreludecpp-python.i prelude.py _prelude.cxx pystrings.swg all-am: python-build python-build: _prelude.cxx if HAVE_PYTHON2 CC="$(CXX)" $(PYTHON2) setup.py build endif if HAVE_PYTHON3 CC="$(CXX)" $(PYTHON3) setup.py build endif install-exec-hook: if HAVE_PYTHON2 $(PYTHON2) setup.py install `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` --prefix @prefix@ endif if HAVE_PYTHON3 $(PYTHON3) setup.py install `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` --prefix @prefix@ endif uninstall-hook: if HAVE_PYTHON2 $(PYTHON2) setup.py uninstall `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` --prefix @prefix@ endif if HAVE_PYTHON3 $(PYTHON3) setup.py uninstall `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` --prefix @prefix@ endif clean-local: if HAVE_PYTHON2 $(PYTHON2) setup.py clean -a endif if HAVE_PYTHON3 $(PYTHON3) setup.py clean -a endif _prelude.cxx prelude.py: $(top_srcdir)/bindings/c++/include/*.hxx $(top_srcdir)/bindings/libpreludecpp.i libpreludecpp-python.i if HAVE_SWIG $(SWIG) -c++ -DSWIG_COMPILE_LIBPRELUDE -I$(top_srcdir)/bindings -I$(top_srcdir)/bindings/c++/include -I$(top_srcdir)/src/include -I$(top_srcdir)/src/libprelude-error -python -threads -builtin -O -o $@ $(top_srcdir)/bindings/libpreludecpp.i endif endif endif -include $(top_srcdir)/git.mk libprelude-5.2.0/bindings/python/PaxHeaders.14770/setup.py.in0000644000000000000000000000011013726163410022100 xustar000000000000000024 mtime=1599661832.511 24 atime=1599661832.733 24 ctime=1599662000.458 libprelude-5.2.0/bindings/python/setup.py.in0000644000000000000000000000703513726163410021110 0ustar00rootroot00000000000000# # Copyright (C) 2005-2020 CS GROUP - France. All Rights Reserved. # Author: Yoann Vandoorselaere # # This file is part of the Prelude library. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser 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. import sys, os from os.path import abspath, exists import shutil from distutils.sysconfig import get_python_lib from distutils.core import setup, Extension FILES_TO_BE_COPIED = ("_prelude.cxx", "prelude.py") def split_args(s): import re return re.split("\s+", s.strip()) def get_prefix(): try: return sys.argv[sys.argv.index("--prefix") + 1] except ValueError: return None def get_root(): try: return sys.argv[sys.argv.index("--root") + 1] except ValueError: return "" def is_system_wide_install(): return os.access(get_python_lib(), os.W_OK) def builddir_is_srcdir(): return abspath("@top_srcdir@") == abspath("@top_builddir@") def pre_install(): if not is_system_wide_install(): sys.argv.extend(["--prefix", "@prefix@"]) def pre_build(): if not builddir_is_srcdir(): for file in FILES_TO_BE_COPIED: src = "@top_srcdir@/bindings/python/" + file dst = "@top_builddir@/bindings/python/" + file if not exists(dst): shutil.copy(src, dst) def pre_clean(): if not builddir_is_srcdir(): for file in FILES_TO_BE_COPIED: exists(file) and os.remove(file) def uninstall(): if is_system_wide_install(): prefix = get_prefix() else: prefix = "@prefix@" for f in "prelude.py", "prelude.pyc", "_prelude.so": file = get_root() + "/" + get_python_lib(prefix=prefix) + "/" + f exists(file) and os.remove(file) file = get_root() + "/" + get_python_lib(plat_specific=True, prefix=prefix) + "/" + f exists(file) and os.remove(file) sys.exit(0) commands = { "install": pre_install, "build": pre_build, "clean": pre_clean, "uninstall": uninstall, } if len(sys.argv) > 1 and sys.argv[1] in commands: commands[sys.argv[1]]() setup(name="prelude", version="@VERSION@", description="Python bindings for the Prelude Library", author="CS GROUP - France", url="https://www.prelude-siem.org", license="LGPL V2.1", package_dir={'prelude': '@top_srcdir@/bindings/python'}, py_modules=["prelude"], ext_modules=[Extension("_prelude", ["_prelude.cxx"], extra_compile_args=split_args("-I@top_builddir@ -I@top_srcdir@/src/include -I@top_builddir@/src/include -I@top_builddir@/src/libprelude-error -I@top_srcdir@/bindings/c++/include"), library_dirs=[ "@top_builddir@/src/.libs/", "@top_builddir@/bindings/c++/.libs/" ], extra_link_args=split_args("-lpreludecpp -lprelude @LIBPRELUDE_LIBS@ @LIBADD_DL@ @LTLIBTHREAD@"))]) libprelude-5.2.0/bindings/python/PaxHeaders.14770/libpreludecpp-python.i0000644000000000000000000000010613726163410024311 xustar000000000000000023 mtime=1599661832.51 24 atime=1599661832.732 23 ctime=1599662000.46 libprelude-5.2.0/bindings/python/libpreludecpp-python.i0000644000000000000000000004555413726163410023324 0ustar00rootroot00000000000000/***** * * Copyright (C) 2005-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ %begin %{ #define SWIG_PYTHON_2_UNICODE #define TARGET_LANGUAGE_SELF PyObject * #define TARGET_LANGUAGE_OUTPUT_TYPE PyObject ** %} %include std_list.i %ignore *::operator int; %ignore *::operator long; %ignore *::operator double; %ignore *::operator const char *; %ignore *::operator const std::string; %ignore *::operator (); %feature("python:slot", "tp_str", functype="reprfunc") *::what; %feature("python:slot", "tp_repr", functype="reprfunc") *::toString; %feature("python:slot", "mp_subscript", functype="binaryfunc") *::get; %feature("python:slot", "mp_ass_subscript", functype="objobjargproc") *::set; %feature("python:slot", "tp_hash", functype="hashfunc") Prelude::IDMEFValue::getType; /* * IDMEFClass */ %feature("python:slot", "tp_str", functype="reprfunc") Prelude::IDMEFClass::getName; %feature("python:slot", "sq_item", functype="ssizeargfunc") Prelude::IDMEFClass::_get2; %feature("python:slot", "mp_subscript", functype="binaryfunc") Prelude::IDMEFClass::get; %feature("python:slot", "mp_length", functype="lenfunc") Prelude::IDMEFClass::getChildCount; /* * IDMEFTime */ %feature("python:slot", "nb_int", functype="unaryfunc") Prelude::IDMEFTime::getSec; %feature("python:slot", "nb_long", functype="unaryfunc") Prelude::IDMEFTime::_getSec2; %feature("python:slot", "nb_float", functype="unaryfunc") Prelude::IDMEFTime::getTime; /* * */ %feature("python:slot", "nb_lshift") Prelude::IDMEF::readExcept; %feature("python:slot", "nb_rshift") Prelude::IDMEF::write; %feature("python:sq_contains") Prelude::IDMEF "_wrap_IDMEF___contains___closure"; %ignore *::operator =; %fragment("SWIG_FromBytePtrAndSize", "header", fragment="SWIG_FromCharPtrAndSize") %{ #if PY_VERSION_HEX < 0x03000000 # define SWIG_FromBytePtrAndSize(arg, len) PyString_FromStringAndSize(arg, len) #else # define SWIG_FromBytePtrAndSize(arg, len) PyBytes_FromStringAndSize(arg, len) #endif %} %{ PyObject *__prelude_log_func = NULL; static void _cb_python_log(int level, const char *str) { PyObject *arglist, *result; SWIG_PYTHON_THREAD_BEGIN_BLOCK; arglist = Py_BuildValue("(i,s)", level, str); result = PyEval_CallObject(__prelude_log_func, arglist); Py_DECREF(arglist); Py_XDECREF(result); SWIG_PYTHON_THREAD_END_BLOCK; } static int _cb_python_write(prelude_msgbuf_t *fd, prelude_msg_t *msg) { #if PY_VERSION_HEX < 0x03000000 size_t ret; PyObject *io = (PyObject *) prelude_msgbuf_get_data(fd); FILE *f = PyFile_AsFile(io); ret = fwrite((const char *)prelude_msg_get_message_data(msg), 1, prelude_msg_get_len(msg), f); #else ssize_t ret; int ffd = PyObject_AsFileDescriptor((PyObject *) prelude_msgbuf_get_data(fd)); do { ret = write(ffd, (const char *)prelude_msg_get_message_data(msg), prelude_msg_get_len(msg)); } while ( ret < 0 && errno == EINTR ); #endif if ( ret != prelude_msg_get_len(msg) ) return prelude_error_from_errno(errno); prelude_msg_recycle(msg); return 0; } static ssize_t _cb_python_read(prelude_io_t *fd, void *buf, size_t size) { #if PY_VERSION_HEX < 0x03000000 ssize_t ret; PyObject *io = (PyObject *) prelude_io_get_fdptr(fd); FILE *f = PyFile_AsFile(io); ret = fread(buf, 1, size, f); if ( ret < 0 ) ret = prelude_error_from_errno(errno); else if ( ret == 0 ) ret = prelude_error(PRELUDE_ERROR_EOF); #else ssize_t ret; int ffd = PyObject_AsFileDescriptor((PyObject *) prelude_io_get_fdptr(fd)); ret = read(ffd, buf, size); if ( ret < 0 ) ret = prelude_error_from_errno(errno); else if ( ret == 0 ) ret = prelude_error(PRELUDE_ERROR_EOF); #endif return ret; } %} %typemap(in) void (*log_cb)(int level, const char *log) { if ( ! PyCallable_Check($input) ) SWIG_exception_fail(SWIG_ValueError, "Argument is not a callable object"); if ( __prelude_log_func ) Py_DECREF(__prelude_log_func); __prelude_log_func = $input; Py_INCREF($input); $1 = _cb_python_log; }; /* tell swig not to cast void * value */ %typemap(in) void *nocast_file_p %{ #if PY_VERSION_HEX < 0x03000000 if ( !PyFile_Check((PyObject *) $input) ) { SWIG_exception_fail(SWIG_RuntimeError, "Argument is not a file object"); } #else extern PyTypeObject PyIOBase_Type; if ( ! PyObject_IsInstance((PyObject *) $input, (PyObject *) &PyIOBase_Type) ) { SWIG_exception_fail(SWIG_RuntimeError, "Argument is not a file object"); } #endif $1 = $input; %} %typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER) void *nocast_file_p %{ #if PY_VERSION_HEX < 0x03000000 $1 = PyFile_Check((PyObject *) $input); #else extern PyTypeObject PyIOBase_Type; $1 = PyObject_IsInstance((PyObject *) $input, (PyObject *) &PyIOBase_Type); #endif %} %exception readExcept(void *nocast_file_p) { try { $action } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) { PyErr_SetString(PyExc_EOFError, e.what()); } else { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); } SWIG_fail; } } %exception read(void *nocast_file_p) { try { $action } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) { result = 0; } else { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } } %exception { try { $action } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } #ifdef SWIG_COMPILE_LIBPRELUDE %inline %{ void python2_return_unicode(int enabled) { _PYTHON2_RETURN_UNICODE = enabled; } %} %{ typedef PyObject SwigPyObjectState; %} /* * This is called on Prelude::IDMEF::__getstate__() * Store our internal IDMEF data in the PyObjet __dict__ */ %typemap(out) SwigPyObjectState * { int ret; PyObject *state; SwigPyObject *pyobj = (SwigPyObject *) self; state = PyDict_New(); if ( ! state ) { Py_XDECREF(result); SWIG_fail; } ret = PyDict_SetItemString(state, "__idmef_data__", result); Py_DECREF(result); if ( pyobj->dict ) { ret = PyDict_Update(state, pyobj->dict); if ( ret < 0 ) { Py_XDECREF(state); SWIG_fail; } } if ( ret < 0 ) throw PreludeError("error setting internal __idmef_data__ key"); $result = state; } /* * This typemap specifically intercept the call to Prelude::IDMEF::__setstate__, * since at that time (when unpickling), the object __init__ method has not been * called, and the underlying Prelude::IDMEF object is thus NULL. * * We manually call tp_init() to handle the underlying object creation here. */ %typemap(arginit) (PyObject *state) { int ret; PyObject *obj; static PyTypeObject *pytype = NULL; if ( ! pytype ) { swig_type_info *sti = SWIG_TypeQuery("Prelude::IDMEF *"); if ( ! sti ) throw PreludeError("could not find type SWIG type info for 'Prelude::IDMEF'"); pytype = ((SwigPyClientData *) sti->clientdata)->pytype; } obj = PyTuple_New(0); ret = pytype->tp_init(self, obj, NULL); Py_DECREF(obj); if ( ret < 0 ) throw PreludeError("error calling Prelude::IDMEF tp_init()"); } /* * */ %exception Prelude::IDMEF::__setstate__ { try { SwigPyObject *pyobj = (SwigPyObject *) self; $function /* * This is called at unpickling time, and set our PyObject internal dict. */ pyobj->dict = arg2; Py_INCREF(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } %{ static int _getstate_msgbuf_cb(prelude_msgbuf_t *mbuf, prelude_msg_t *msg) { prelude_io_t *io = (prelude_io_t *) prelude_msgbuf_get_data(mbuf); return prelude_io_write(io, prelude_msg_get_message_data(msg), prelude_msg_get_len(msg)); } static ssize_t _setstate_read_cb(prelude_io_t *io, void *buf, size_t size) { FILE *fd = (FILE *) prelude_io_get_fdptr(io); return fread(buf, 1, size, fd); } %} %extend Prelude::IDMEFCriteria { PyObject *__reduce__() { PyObject *s, *args = PyTuple_New(1); %#if PY_VERSION_HEX >= 0x03000000 s = PyUnicode_FromString(self->toString().c_str()); %#else s = PyString_FromString(self->toString().c_str()); %#endif PyTuple_SetItem(args, 0, s); SwigPyClientData *data = (SwigPyClientData *) SWIGTYPE_p_Prelude__IDMEFCriteria->clientdata; PyObject *callable = (PyObject *)data->pytype; Py_INCREF(callable); PyObject *ret = PyTuple_New(2); PyTuple_SetItem(ret, 0, callable); PyTuple_SetItem(ret, 1, args); return ret; } }; %extend Prelude::IDMEFPath { PyObject *__reduce__() { PyObject *s, *args = PyTuple_New(1); %#if PY_VERSION_HEX >= 0x03000000 s = PyUnicode_FromString(self->getName()); %#else s = PyString_FromString(self->getName()); %#endif PyTuple_SetItem(args, 0, s); SwigPyClientData *data = (SwigPyClientData *) SWIGTYPE_p_Prelude__IDMEFPath->clientdata; PyObject *callable = (PyObject *)data->pytype; Py_INCREF(callable); PyObject *ret = PyTuple_New(2); PyTuple_SetItem(ret, 0, callable); PyTuple_SetItem(ret, 1, args); return ret; } }; %extend Prelude::IDMEF { SwigPyObjectState *__getstate__(void) { int ret; prelude_io_t *io; PyObject *data; ret = prelude_io_new(&io); if ( ret < 0 ) throw PreludeError(ret); prelude_io_set_buffer_io(io); self->_genericWrite(_getstate_msgbuf_cb, io); data = PyBytes_FromStringAndSize((const char *) prelude_io_get_fdptr(io), prelude_io_pending(io)); prelude_io_close(io); prelude_io_destroy(io); return data; } void __setstate__(PyObject *state) { FILE *fd; char *buf; ssize_t len; PyObject *data; data = PyDict_GetItemString(state, "__idmef_data__"); if ( ! data ) throw PreludeError("no __idmef_data__ key within state dictionary"); buf = PyBytes_AsString(data); len = PyBytes_Size(data); fd = fmemopen(buf, len, "r"); if ( ! fd ) throw PreludeError(prelude_error_from_errno(errno)); self->_genericRead(_setstate_read_cb, fd); fclose(fd); PyDict_DelItemString(state, "__idmef_data__"); } int __contains__(const char *key) { return self->get(key).isNull() ? FALSE : TRUE; } IDMEF(void *nocast_file_p) { IDMEF *x = new IDMEF; try { x->_genericRead(_cb_python_read, nocast_file_p); } catch(...) { delete(x); throw; } return x; } void write(void *nocast_file_p) { self->_genericWrite(_cb_python_write, nocast_file_p); } int read(void *nocast_file_p) { self->_genericRead(_cb_python_read, nocast_file_p); return 1; } int readExcept(void *nocast_file_p) { self->_genericRead(_cb_python_read, nocast_file_p); return 1; } } /* * When a comparison operator is called, this prevent an exception * if the compared operand does not have the correct datatype. * * By returning Py_NotImplemented, the python code might provide its * own comparison method within the compared operand class */ %typemap(in) (const Prelude::IDMEFTime &time) { int ret; void *obj; ret = SWIG_ConvertPtr($input, &obj, $descriptor(Prelude::IDMEFTime *), 0 | 0); if ( ! SWIG_IsOK(ret) || ! obj ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } $1 = reinterpret_cast< Prelude::IDMEFTime * >(obj); } /* * Workaround SWIG %features bug, which prevent us from applying multiple * features to the same method. */ %extend Prelude::IDMEFTime { long _getSec2(void) { return self->getSec(); } } %exception Prelude::IDMEFClass::_get2 { try { $action; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD || e.getCode() == PRELUDE_ERROR_IDMEF_PATH_DEPTH ) SWIG_exception_fail(SWIG_IndexError, e.what()); } } %extend Prelude::IDMEFClass { Prelude::IDMEFClass _get2(int i) { return self->get(i); } } #endif %fragment("IDMEFValueList_to_SWIG", "header", fragment="IDMEFValue_to_SWIG") { int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret); PyObject *IDMEFValueList_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &value, void *extra) { int j = 0, ret; PyObject *pytuple; std::vector result = value; std::vector::const_iterator i; pytuple = PyTuple_New(result.size()); for ( i = result.begin(); i != result.end(); i++ ) { PyObject *val; if ( (*i).isNull() ) { Py_INCREF(Py_None); val = Py_None; } else { ret = IDMEFValue_to_SWIG(self, *i, NULL, &val); if ( ret < 0 ) return NULL; } PyTuple_SetItem(pytuple, j++, val); } return pytuple; } } %typemap(out, fragment="IDMEFValue_to_SWIG") Prelude::IDMEFValue { int ret; if ( $1.isNull() ) { Py_INCREF(Py_None); $result = Py_None; } else { #ifdef SWIGPYTHON_BUILTIN ret = IDMEFValue_to_SWIG(self, $1, NULL, &$result); #else ret = IDMEFValue_to_SWIG(NULL, $1, NULL, &$result); #endif if ( ret < 0 ) { std::string s = "IDMEFValue typemap does not handle value of type '"; s += idmef_value_type_to_string((idmef_value_type_id_t) $1.getType()); s += "'"; SWIG_exception_fail(SWIG_ValueError, s.c_str()); } } }; %init { int argc, ret, idx; char **argv = NULL; PyObject *sys = PyImport_ImportModule("sys"); PyObject *pyargv = PyObject_GetAttrString(sys, "argv"); argc = PyObject_Length(pyargv); assert(argc >= 1); assert(PyList_Check(pyargv)); if ( argc + 1 < 0 ) throw PreludeError("Invalid argc length"); argv = (char **) malloc((argc + 1) * sizeof(char *)); if ( ! argv ) throw PreludeError("Allocation failure"); for ( idx = 0; idx < argc; idx++ ) { PyObject *o = PyList_GetItem(pyargv, idx); #if PY_VERSION_HEX < 0x03000000 PyArg_Parse(o, "et", Py_FileSystemDefaultEncoding, &argv[idx]); #else argv[idx] = PyString_AsString(o); #endif if ( ! argv[idx] ) break; } argv[idx] = NULL; ret = prelude_init(&argc, argv); if ( ret < 0 ) { free(argv); throw PreludeError(ret); } free(argv); Py_DECREF(pyargv); Py_DECREF(sys); } %{ extern "C" { SWIGINTERN PyObject *_wrap_IDMEF___contains__(PyObject *self, PyObject *args); } #define MYPY_OBJOBJPROC_CLOSURE(wrapper) \ SWIGINTERN int \ wrapper##_closure(PyObject *a, PyObject *b) { \ PyObject *pyresult; \ int result; \ pyresult = wrapper(a, b); \ result = pyresult && PyObject_IsTrue(pyresult) ? 1 : 0; \ Py_XDECREF(pyresult); \ return result; \ } MYPY_OBJOBJPROC_CLOSURE(_wrap_IDMEF___contains__) %} libprelude-5.2.0/bindings/python/PaxHeaders.14770/prelude.py0000644000000000000000000000010713726163410022001 xustar000000000000000023 mtime=1599661832.51 24 atime=1599661832.732 24 ctime=1599662000.461 libprelude-5.2.0/bindings/python/prelude.py0000644000000000000000000000411413726163410020776 0ustar00rootroot00000000000000# This file was automatically generated by SWIG (http://www.swig.org). # Version 4.0.1 # # Do not make changes to this file unless you know what you are doing--modify # the SWIG interface file instead. from sys import version_info as _swig_python_version_info if _swig_python_version_info < (2, 7, 0): raise RuntimeError("Python 2.7 or later required") # Pull in all the attributes from the low-level C/C++ module if __package__ or "." in __name__: from ._prelude import * else: from _prelude import * try: import builtins as __builtin__ except ImportError: import __builtin__ def _swig_repr(self): try: strthis = "proxy of " + self.this.__repr__() except __builtin__.Exception: strthis = "" return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) def _swig_setattr_nondynamic_instance_variable(set): def set_instance_attr(self, name, value): if name == "thisown": self.this.own(value) elif name == "this": set(self, name, value) elif hasattr(self, name) and isinstance(getattr(type(self), name), property): set(self, name, value) else: raise AttributeError("You cannot add instance attributes to %s" % self) return set_instance_attr def _swig_setattr_nondynamic_class_variable(set): def set_class_attr(cls, name, value): if hasattr(cls, name) and not isinstance(getattr(cls, name), property): set(cls, name, value) else: raise AttributeError("You cannot add class attributes to %s" % cls) return set_class_attr def _swig_add_metaclass(metaclass): """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass""" def wrapper(cls): return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy()) return wrapper class _SwigNonDynamicMeta(type): """Meta class to enforce nondynamic attributes (no new attributes) for a class""" __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__) libprelude-5.2.0/bindings/python/PaxHeaders.14770/_prelude.cxx0000644000000000000000000000010713726163410022312 xustar000000000000000023 mtime=1599661832.51 24 atime=1599661832.728 24 ctime=1599662000.464 libprelude-5.2.0/bindings/python/_prelude.cxx0000644000000000000000000310027713726163410021321 0ustar00rootroot00000000000000/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 4.0.1 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ static int _PYTHON2_RETURN_UNICODE = 0; #define SWIG_PYTHON_2_UNICODE #define TARGET_LANGUAGE_SELF PyObject * #define TARGET_LANGUAGE_OUTPUT_TYPE PyObject ** #ifndef SWIGPYTHON #define SWIGPYTHON #endif #define SWIG_PYTHON_THREADS #define SWIG_PYTHON_DIRECTOR_NO_VTABLE #define SWIGPYTHON_BUILTIN #ifdef __cplusplus /* SwigValueWrapper is described in swig.swg */ template class SwigValueWrapper { struct SwigMovePointer { T *ptr; SwigMovePointer(T *p) : ptr(p) { } ~SwigMovePointer() { delete ptr; } SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } } pointer; SwigValueWrapper& operator=(const SwigValueWrapper& rhs); SwigValueWrapper(const SwigValueWrapper& rhs); public: SwigValueWrapper() : pointer(0) { } SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; } operator T&() const { return *pointer.ptr; } T *operator&() { return pointer.ptr; } }; template T SwigValueInit() { return T(); } #endif /* ----------------------------------------------------------------------------- * This section contains generic SWIG labels for method/variable * declarations/attributes, and other compiler dependent labels. * ----------------------------------------------------------------------------- */ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) # define SWIGTEMPLATEDISAMBIGUATOR template # elif defined(__HP_aCC) /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ # define SWIGTEMPLATEDISAMBIGUATOR template # else # define SWIGTEMPLATEDISAMBIGUATOR # endif #endif /* inline attribute */ #ifndef SWIGINLINE # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) # define SWIGINLINE inline # else # define SWIGINLINE # endif #endif /* attribute recognised by some compilers to avoid 'unused' warnings */ #ifndef SWIGUNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif # elif defined(__ICC) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif #endif #ifndef SWIG_MSC_UNSUPPRESS_4505 # if defined(_MSC_VER) # pragma warning(disable : 4505) /* unreferenced local function has been removed */ # endif #endif #ifndef SWIGUNUSEDPARM # ifdef __cplusplus # define SWIGUNUSEDPARM(p) # else # define SWIGUNUSEDPARM(p) p SWIGUNUSED # endif #endif /* internal SWIG method */ #ifndef SWIGINTERN # define SWIGINTERN static SWIGUNUSED #endif /* internal inline SWIG method */ #ifndef SWIGINTERNINLINE # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif /* exporting methods */ #if defined(__GNUC__) # if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) # ifndef GCC_HASCLASSVISIBILITY # define GCC_HASCLASSVISIBILITY # endif # endif #endif #ifndef SWIGEXPORT # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(STATIC_LINKED) # define SWIGEXPORT # else # define SWIGEXPORT __declspec(dllexport) # endif # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) # define SWIGEXPORT __attribute__ ((visibility("default"))) # else # define SWIGEXPORT # endif # endif #endif /* calling conventions for Windows */ #ifndef SWIGSTDCALL # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # define SWIGSTDCALL __stdcall # else # define SWIGSTDCALL # endif #endif /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) # define _CRT_SECURE_NO_DEPRECATE #endif /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) # define _SCL_SECURE_NO_DEPRECATE #endif /* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ #if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) # define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 #endif /* Intel's compiler complains if a variable which was never initialised is * cast to void, which is a common idiom which we use to indicate that we * are aware a variable isn't used. So we just silence that warning. * See: https://github.com/swig/swig/issues/192 for more discussion. */ #ifdef __INTEL_COMPILER # pragma warning disable 592 #endif #if defined(__GNUC__) && defined(_WIN32) && !defined(SWIG_PYTHON_NO_HYPOT_WORKAROUND) /* Workaround for '::hypot' has not been declared', see https://bugs.python.org/issue11566 */ # include #endif #if defined(_DEBUG) && defined(SWIG_PYTHON_INTERPRETER_NO_DEBUG) /* Use debug wrappers with the Python release dll */ # undef _DEBUG # include # define _DEBUG 1 #else # include #endif /* ----------------------------------------------------------------------------- * swigrun.swg * * This file contains generic C API SWIG runtime support for pointer * type checking. * ----------------------------------------------------------------------------- */ /* This should only be incremented when either the layout of swig_type_info changes, or for whatever reason, the runtime changes incompatibly */ #define SWIG_RUNTIME_VERSION "4" /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ #ifdef SWIG_TYPE_TABLE # define SWIG_QUOTE_STRING(x) #x # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) #else # define SWIG_TYPE_TABLE_NAME #endif /* You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for creating a static or dynamic library from the SWIG runtime code. In 99.9% of the cases, SWIG just needs to declare them as 'static'. But only do this if strictly necessary, ie, if you have problems with your compiler or suchlike. */ #ifndef SWIGRUNTIME # define SWIGRUNTIME SWIGINTERN #endif #ifndef SWIGRUNTIMEINLINE # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE #endif /* Generic buffer size */ #ifndef SWIG_BUFFER_SIZE # define SWIG_BUFFER_SIZE 1024 #endif /* Flags for pointer conversions */ #define SWIG_POINTER_DISOWN 0x1 #define SWIG_CAST_NEW_MEMORY 0x2 #define SWIG_POINTER_NO_NULL 0x4 /* Flags for new pointer objects */ #define SWIG_POINTER_OWN 0x1 /* Flags/methods for returning states. The SWIG conversion methods, as ConvertPtr, return an integer that tells if the conversion was successful or not. And if not, an error code can be returned (see swigerrors.swg for the codes). Use the following macros/flags to set or process the returning states. In old versions of SWIG, code such as the following was usually written: if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { // success code } else { //fail code } Now you can be more explicit: int res = SWIG_ConvertPtr(obj,vptr,ty.flags); if (SWIG_IsOK(res)) { // success code } else { // fail code } which is the same really, but now you can also do Type *ptr; int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); if (SWIG_IsOK(res)) { // success code if (SWIG_IsNewObj(res) { ... delete *ptr; } else { ... } } else { // fail code } I.e., now SWIG_ConvertPtr can return new objects and you can identify the case and take care of the deallocation. Of course that also requires SWIG_ConvertPtr to return new result values, such as int SWIG_ConvertPtr(obj, ptr,...) { if () { if () { *ptr = ; return SWIG_NEWOBJ; } else { *ptr = ; return SWIG_OLDOBJ; } } else { return SWIG_BADOBJ; } } Of course, returning the plain '0(success)/-1(fail)' still works, but you can be more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the SWIG errors code. Finally, if the SWIG_CASTRANK_MODE is enabled, the result code allows to return the 'cast rank', for example, if you have this int food(double) int fooi(int); and you call food(1) // cast rank '1' (1 -> 1.0) fooi(1) // cast rank '0' just use the SWIG_AddCast()/SWIG_CheckState() */ #define SWIG_OK (0) #define SWIG_ERROR (-1) #define SWIG_IsOK(r) (r >= 0) #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) /* The CastRankLimit says how many bits are used for the cast rank */ #define SWIG_CASTRANKLIMIT (1 << 8) /* The NewMask denotes the object was created (using new/malloc) */ #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) /* The TmpMask is for in/out typemaps that use temporal objects */ #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) /* Simple returning values */ #define SWIG_BADOBJ (SWIG_ERROR) #define SWIG_OLDOBJ (SWIG_OK) #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) /* Check, add and del mask methods */ #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) /* Cast-Rank Mode */ #if defined(SWIG_CASTRANK_MODE) # ifndef SWIG_TypeRank # define SWIG_TypeRank unsigned long # endif # ifndef SWIG_MAXCASTRANK /* Default cast allowed */ # define SWIG_MAXCASTRANK (2) # endif # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) SWIGINTERNINLINE int SWIG_AddCast(int r) { return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; } SWIGINTERNINLINE int SWIG_CheckState(int r) { return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; } #else /* no cast-rank mode */ # define SWIG_AddCast(r) (r) # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) #endif #include #ifdef __cplusplus extern "C" { #endif typedef void *(*swig_converter_func)(void *, int *); typedef struct swig_type_info *(*swig_dycast_func)(void **); /* Structure to store information on one type */ typedef struct swig_type_info { const char *name; /* mangled name of this type */ const char *str; /* human readable name of this type */ swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ struct swig_cast_info *cast; /* linked list of types that can cast into this type */ void *clientdata; /* language specific type data */ int owndata; /* flag if the structure owns the clientdata */ } swig_type_info; /* Structure to store a type and conversion function used for casting */ typedef struct swig_cast_info { swig_type_info *type; /* pointer to type that is equivalent to this type */ swig_converter_func converter; /* function to cast the void pointers */ struct swig_cast_info *next; /* pointer to next cast in linked list */ struct swig_cast_info *prev; /* pointer to the previous cast */ } swig_cast_info; /* Structure used to store module information * Each module generates one structure like this, and the runtime collects * all of these structures and stores them in a circularly linked list.*/ typedef struct swig_module_info { swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ size_t size; /* Number of types in this module */ struct swig_module_info *next; /* Pointer to next element in circularly linked list */ swig_type_info **type_initial; /* Array of initially generated type structures */ swig_cast_info **cast_initial; /* Array of initially generated casting structures */ void *clientdata; /* Language specific module data */ } swig_module_info; /* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class" == "Class", etc. Return 0 when the two name types are equivalent, as in strncmp, but skipping ' '. */ SWIGRUNTIME int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { while ((*f1 == ' ') && (f1 != l1)) ++f1; while ((*f2 == ' ') && (f2 != l2)) ++f2; if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; } return (int)((l1 - f1) - (l2 - f2)); } /* Check type equivalence in a name list like ||... Return 0 if equal, -1 if nb < tb, 1 if nb > tb */ SWIGRUNTIME int SWIG_TypeCmp(const char *nb, const char *tb) { int equiv = 1; const char* te = tb + strlen(tb); const char* ne = nb; while (equiv != 0 && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = SWIG_TypeNameComp(nb, ne, tb, te); if (*ne) ++ne; } return equiv; } /* Check type equivalence in a name list like ||... Return 0 if not equal, 1 if equal */ SWIGRUNTIME int SWIG_TypeEquiv(const char *nb, const char *tb) { return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0; } /* Check the typename */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheck(const char *c, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (strcmp(iter->type->name, c) == 0) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (iter->type == from) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Cast a pointer up an inheritance hierarchy */ SWIGRUNTIMEINLINE void * SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); } /* Dynamic pointer casting. Down an inheritance hierarchy */ SWIGRUNTIME swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { swig_type_info *lastty = ty; if (!ty || !ty->dcast) return ty; while (ty && (ty->dcast)) { ty = (*ty->dcast)(ptr); if (ty) lastty = ty; } return lastty; } /* Return the name associated with this type */ SWIGRUNTIMEINLINE const char * SWIG_TypeName(const swig_type_info *ty) { return ty->name; } /* Return the pretty name associated with this type, that is an unmangled type name in a form presentable to the user. */ SWIGRUNTIME const char * SWIG_TypePrettyName(const swig_type_info *type) { /* The "str" field contains the equivalent pretty names of the type, separated by vertical-bar characters. We choose to print the last name, as it is often (?) the most specific. */ if (!type) return NULL; if (type->str != NULL) { const char *last_name = type->str; const char *s; for (s = type->str; *s; s++) if (*s == '|') last_name = s+1; return last_name; } else return type->name; } /* Set the clientdata field for a type */ SWIGRUNTIME void SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_cast_info *cast = ti->cast; /* if (ti->clientdata == clientdata) return; */ ti->clientdata = clientdata; while (cast) { if (!cast->converter) { swig_type_info *tc = cast->type; if (!tc->clientdata) { SWIG_TypeClientData(tc, clientdata); } } cast = cast->next; } } SWIGRUNTIME void SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { SWIG_TypeClientData(ti, clientdata); ti->owndata = 1; } /* Search for a swig_type_info structure only by mangled name Search is a O(log #types) We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_MangledTypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { swig_module_info *iter = start; do { if (iter->size) { size_t l = 0; size_t r = iter->size - 1; do { /* since l+r >= 0, we can (>> 1) instead (/ 2) */ size_t i = (l + r) >> 1; const char *iname = iter->types[i]->name; if (iname) { int compare = strcmp(name, iname); if (compare == 0) { return iter->types[i]; } else if (compare < 0) { if (i) { r = i - 1; } else { break; } } else if (compare > 0) { l = i + 1; } } else { break; /* should never happen */ } } while (l <= r); } iter = iter->next; } while (iter != end); return 0; } /* Search for a swig_type_info structure for either a mangled name or a human readable name. It first searches the mangled names of the types, which is a O(log #types) If a type is not found it then searches the human readable names, which is O(#types). We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_TypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { /* STEP 1: Search the name field using binary search */ swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); if (ret) { return ret; } else { /* STEP 2: If the type hasn't been found, do a complete search of the str field (the human readable name) */ swig_module_info *iter = start; do { size_t i = 0; for (; i < iter->size; ++i) { if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) return iter->types[i]; } iter = iter->next; } while (iter != end); } /* neither found a match */ return 0; } /* Pack binary data into a string */ SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz) { static const char hex[17] = "0123456789abcdef"; const unsigned char *u = (unsigned char *) ptr; const unsigned char *eu = u + sz; for (; u != eu; ++u) { unsigned char uu = *u; *(c++) = hex[(uu & 0xf0) >> 4]; *(c++) = hex[uu & 0xf]; } return c; } /* Unpack binary data from a string */ SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { unsigned char *u = (unsigned char *) ptr; const unsigned char *eu = u + sz; for (; u != eu; ++u) { char d = *(c++); unsigned char uu; if ((d >= '0') && (d <= '9')) uu = (unsigned char)((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) uu = (unsigned char)((d - ('a'-10)) << 4); else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) uu |= (unsigned char)(d - '0'); else if ((d >= 'a') && (d <= 'f')) uu |= (unsigned char)(d - ('a'-10)); else return (char *) 0; *u = uu; } return c; } /* Pack 'void *' into a string buffer. */ SWIGRUNTIME char * SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { char *r = buff; if ((2*sizeof(void *) + 2) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,&ptr,sizeof(void *)); if (strlen(name) + 1 > (bsz - (r - buff))) return 0; strcpy(r,name); return buff; } SWIGRUNTIME const char * SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { *ptr = (void *) 0; return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sizeof(void *)); } SWIGRUNTIME char * SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { char *r = buff; size_t lname = (name ? strlen(name) : 0); if ((2*sz + 2 + lname) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); if (lname) { strncpy(r,name,lname+1); } else { *r = 0; } return buff; } SWIGRUNTIME const char * SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { memset(ptr,0,sz); return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sz); } #ifdef __cplusplus } #endif /* Errors in SWIG */ #define SWIG_UnknownError -1 #define SWIG_IOError -2 #define SWIG_RuntimeError -3 #define SWIG_IndexError -4 #define SWIG_TypeError -5 #define SWIG_DivisionByZero -6 #define SWIG_OverflowError -7 #define SWIG_SyntaxError -8 #define SWIG_ValueError -9 #define SWIG_SystemError -10 #define SWIG_AttributeError -11 #define SWIG_MemoryError -12 #define SWIG_NullReferenceError -13 /* Compatibility macros for Python 3 */ #if PY_VERSION_HEX >= 0x03000000 #define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type) #define PyInt_Check(x) PyLong_Check(x) #define PyInt_AsLong(x) PyLong_AsLong(x) #define PyInt_FromLong(x) PyLong_FromLong(x) #define PyInt_FromSize_t(x) PyLong_FromSize_t(x) #define PyString_Check(name) PyBytes_Check(name) #define PyString_FromString(x) PyUnicode_FromString(x) #define PyString_Format(fmt, args) PyUnicode_Format(fmt, args) #define PyString_AsString(str) PyBytes_AsString(str) #define PyString_Size(str) PyBytes_Size(str) #define PyString_InternFromString(key) PyUnicode_InternFromString(key) #define Py_TPFLAGS_HAVE_CLASS Py_TPFLAGS_BASETYPE #define PyString_AS_STRING(x) PyUnicode_AS_STRING(x) #define _PyLong_FromSsize_t(x) PyLong_FromSsize_t(x) #endif #ifndef Py_TYPE # define Py_TYPE(op) ((op)->ob_type) #endif /* SWIG APIs for compatibility of both Python 2 & 3 */ #if PY_VERSION_HEX >= 0x03000000 # define SWIG_Python_str_FromFormat PyUnicode_FromFormat #else # define SWIG_Python_str_FromFormat PyString_FromFormat #endif /* Warning: This function will allocate a new string in Python 3, * so please call SWIG_Python_str_DelForPy3(x) to free the space. */ SWIGINTERN char* SWIG_Python_str_AsChar(PyObject *str) { #if PY_VERSION_HEX >= 0x03000000 char *newstr = 0; str = PyUnicode_AsUTF8String(str); if (str) { char *cstr; Py_ssize_t len; PyBytes_AsStringAndSize(str, &cstr, &len); newstr = (char *) malloc(len+1); memcpy(newstr, cstr, len+1); Py_XDECREF(str); } return newstr; #else return PyString_AsString(str); #endif } #if PY_VERSION_HEX >= 0x03000000 # define SWIG_Python_str_DelForPy3(x) free( (void*) (x) ) #else # define SWIG_Python_str_DelForPy3(x) #endif SWIGINTERN PyObject* SWIG_Python_str_FromChar(const char *c) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_FromString(c); #else return PyString_FromString(c); #endif } #ifndef PyObject_DEL # define PyObject_DEL PyObject_Del #endif // SWIGPY_USE_CAPSULE is no longer used within SWIG itself, but some user // interface files check for it. # define SWIGPY_USE_CAPSULE # define SWIGPY_CAPSULE_NAME ("swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME) #if PY_VERSION_HEX < 0x03020000 #define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type) #define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name) #define Py_hash_t long #endif /* ----------------------------------------------------------------------------- * error manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIME PyObject* SWIG_Python_ErrorType(int code) { PyObject* type = 0; switch(code) { case SWIG_MemoryError: type = PyExc_MemoryError; break; case SWIG_IOError: type = PyExc_IOError; break; case SWIG_RuntimeError: type = PyExc_RuntimeError; break; case SWIG_IndexError: type = PyExc_IndexError; break; case SWIG_TypeError: type = PyExc_TypeError; break; case SWIG_DivisionByZero: type = PyExc_ZeroDivisionError; break; case SWIG_OverflowError: type = PyExc_OverflowError; break; case SWIG_SyntaxError: type = PyExc_SyntaxError; break; case SWIG_ValueError: type = PyExc_ValueError; break; case SWIG_SystemError: type = PyExc_SystemError; break; case SWIG_AttributeError: type = PyExc_AttributeError; break; default: type = PyExc_RuntimeError; } return type; } SWIGRUNTIME void SWIG_Python_AddErrorMsg(const char* mesg) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback); if (value) { PyObject *old_str = PyObject_Str(value); const char *tmp = SWIG_Python_str_AsChar(old_str); PyErr_Clear(); Py_XINCREF(type); if (tmp) PyErr_Format(type, "%s %s", tmp, mesg); else PyErr_Format(type, "%s", mesg); SWIG_Python_str_DelForPy3(tmp); Py_DECREF(old_str); Py_DECREF(value); } else { PyErr_SetString(PyExc_RuntimeError, mesg); } } SWIGRUNTIME int SWIG_Python_TypeErrorOccurred(PyObject *obj) { PyObject *error; if (obj) return 0; error = PyErr_Occurred(); return error && PyErr_GivenExceptionMatches(error, PyExc_TypeError); } SWIGRUNTIME void SWIG_Python_RaiseOrModifyTypeError(const char *message) { if (SWIG_Python_TypeErrorOccurred(NULL)) { /* Use existing TypeError to preserve stacktrace and enhance with given message */ PyObject *newvalue; PyObject *type = NULL, *value = NULL, *traceback = NULL; PyErr_Fetch(&type, &value, &traceback); #if PY_VERSION_HEX >= 0x03000000 newvalue = PyUnicode_FromFormat("%S\nAdditional information:\n%s", value, message); #else newvalue = PyString_FromFormat("%s\nAdditional information:\n%s", PyString_AsString(value), message); #endif Py_XDECREF(value); PyErr_Restore(type, newvalue, traceback); } else { /* Raise TypeError using given message */ PyErr_SetString(PyExc_TypeError, message); } } #if defined(SWIG_PYTHON_NO_THREADS) # if defined(SWIG_PYTHON_THREADS) # undef SWIG_PYTHON_THREADS # endif #endif #if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */ # if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL) # define SWIG_PYTHON_USE_GIL # endif # if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */ # ifndef SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads() # endif # ifdef __cplusplus /* C++ code */ class SWIG_Python_Thread_Block { bool status; PyGILState_STATE state; public: void end() { if (status) { PyGILState_Release(state); status = false;} } SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {} ~SWIG_Python_Thread_Block() { end(); } }; class SWIG_Python_Thread_Allow { bool status; PyThreadState *save; public: void end() { if (status) { PyEval_RestoreThread(save); status = false; }} SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {} ~SWIG_Python_Thread_Allow() { end(); } }; # define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block # define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end() # define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow # define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end() # else /* C code */ # define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure() # define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread() # define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow) # endif # else /* Old thread way, not implemented, user must provide it */ # if !defined(SWIG_PYTHON_INITIALIZE_THREADS) # define SWIG_PYTHON_INITIALIZE_THREADS # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK) # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_END_BLOCK) # define SWIG_PYTHON_THREAD_END_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # endif # if !defined(SWIG_PYTHON_THREAD_END_ALLOW) # define SWIG_PYTHON_THREAD_END_ALLOW # endif # endif #else /* No thread support */ # define SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # define SWIG_PYTHON_THREAD_END_BLOCK # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # define SWIG_PYTHON_THREAD_END_ALLOW #endif /* ----------------------------------------------------------------------------- * Python API portion that goes into the runtime * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #endif /* ----------------------------------------------------------------------------- * Constant declarations * ----------------------------------------------------------------------------- */ /* Constant Types */ #define SWIG_PY_POINTER 4 #define SWIG_PY_BINARY 5 /* Constant information structure */ typedef struct swig_const_info { int type; const char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype; } swig_const_info; #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * pyrun.swg * * This file contains the runtime support for Python modules * and includes code for managing global variables and pointer * type checking. * * ----------------------------------------------------------------------------- */ #if PY_VERSION_HEX < 0x02070000 /* 2.7.0 */ # error "This version of SWIG only supports Python >= 2.7" #endif #if PY_VERSION_HEX >= 0x03000000 && PY_VERSION_HEX < 0x03020000 # error "This version of SWIG only supports Python 3 >= 3.2" #endif /* Common SWIG API */ /* for raw pointers */ #define SWIG_Python_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0) #define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtr(obj, pptr, type, flags) #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own) #ifdef SWIGPYTHON_BUILTIN #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(self, ptr, type, flags) #else #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags) #endif #define SWIG_InternalNewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags) #define SWIG_CheckImplicit(ty) SWIG_Python_CheckImplicit(ty) #define SWIG_AcquirePtr(ptr, src) SWIG_Python_AcquirePtr(ptr, src) #define swig_owntype int /* for raw packed data */ #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* for class or struct pointers */ #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags) #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags) /* for C or C++ function pointers */ #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_Python_ConvertFunctionPtr(obj, pptr, type) #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_Python_NewPointerObj(NULL, ptr, type, 0) /* for C++ member pointers, ie, member methods */ #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewMemberObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* Runtime API */ #define SWIG_GetModule(clientdata) SWIG_Python_GetModule(clientdata) #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer) #define SWIG_NewClientData(obj) SwigPyClientData_New(obj) #define SWIG_SetErrorObj SWIG_Python_SetErrorObj #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code) #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) #define SWIG_fail goto fail /* Runtime API implementation */ /* Error manipulation */ SWIGINTERN void SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetObject(errtype, obj); Py_DECREF(obj); SWIG_PYTHON_THREAD_END_BLOCK; } SWIGINTERN void SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetString(errtype, msg); SWIG_PYTHON_THREAD_END_BLOCK; } #define SWIG_Python_Raise(obj, type, desc) SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj) /* Set a constant value */ #if defined(SWIGPYTHON_BUILTIN) SWIGINTERN void SwigPyBuiltin_AddPublicSymbol(PyObject *seq, const char *key) { PyObject *s = PyString_InternFromString(key); PyList_Append(seq, s); Py_DECREF(s); } SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *name, PyObject *obj) { PyDict_SetItemString(d, name, obj); Py_DECREF(obj); if (public_interface) SwigPyBuiltin_AddPublicSymbol(public_interface, name); } #else SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) { PyDict_SetItemString(d, name, obj); Py_DECREF(obj); } #endif /* Append a value to the result obj */ SWIGINTERN PyObject* SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) { if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyList_Check(result)) { PyObject *o2 = result; result = PyList_New(1); PyList_SetItem(result, 0, o2); } PyList_Append(result,obj); Py_DECREF(obj); } return result; } /* Unpack the argument tuple */ SWIGINTERN Py_ssize_t SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs) { if (!args) { if (!min && !max) { return 1; } else { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", name, (min == max ? "" : "at least "), (int)min); return 0; } } if (!PyTuple_Check(args)) { if (min <= 1 && max >= 1) { Py_ssize_t i; objs[0] = args; for (i = 1; i < max; ++i) { objs[i] = 0; } return 2; } PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple"); return 0; } else { Py_ssize_t l = PyTuple_GET_SIZE(args); if (l < min) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at least "), (int)min, (int)l); return 0; } else if (l > max) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at most "), (int)max, (int)l); return 0; } else { Py_ssize_t i; for (i = 0; i < l; ++i) { objs[i] = PyTuple_GET_ITEM(args, i); } for (; l < max; ++l) { objs[l] = 0; } return i + 1; } } } /* A functor is a function object with one single object argument */ #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunctionObjArgs(functor, obj, NULL); /* Helper for static pointer initialization for both C and C++ code, for example static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...); */ #ifdef __cplusplus #define SWIG_STATIC_POINTER(var) var #else #define SWIG_STATIC_POINTER(var) var = 0; if (!var) var #endif /* ----------------------------------------------------------------------------- * Pointer declarations * ----------------------------------------------------------------------------- */ /* Flags for new pointer objects */ #define SWIG_POINTER_NOSHADOW (SWIG_POINTER_OWN << 1) #define SWIG_POINTER_NEW (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN) #define SWIG_POINTER_IMPLICIT_CONV (SWIG_POINTER_DISOWN << 1) #define SWIG_BUILTIN_TP_INIT (SWIG_POINTER_OWN << 2) #define SWIG_BUILTIN_INIT (SWIG_BUILTIN_TP_INIT | SWIG_POINTER_OWN) #ifdef __cplusplus extern "C" { #endif /* The python void return value */ SWIGRUNTIMEINLINE PyObject * SWIG_Py_Void(void) { PyObject *none = Py_None; Py_INCREF(none); return none; } /* SwigPyClientData */ typedef struct { PyObject *klass; PyObject *newraw; PyObject *newargs; PyObject *destroy; int delargs; int implicitconv; PyTypeObject *pytype; } SwigPyClientData; SWIGRUNTIMEINLINE int SWIG_Python_CheckImplicit(swig_type_info *ty) { SwigPyClientData *data = (SwigPyClientData *)ty->clientdata; int fail = data ? data->implicitconv : 0; if (fail) PyErr_SetString(PyExc_TypeError, "Implicit conversion is prohibited for explicit constructors."); return fail; } SWIGRUNTIMEINLINE PyObject * SWIG_Python_ExceptionType(swig_type_info *desc) { SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0; PyObject *klass = data ? data->klass : 0; return (klass ? klass : PyExc_RuntimeError); } SWIGRUNTIME SwigPyClientData * SwigPyClientData_New(PyObject* obj) { if (!obj) { return 0; } else { SwigPyClientData *data = (SwigPyClientData *)malloc(sizeof(SwigPyClientData)); /* the klass element */ data->klass = obj; Py_INCREF(data->klass); /* the newraw method and newargs arguments used to create a new raw instance */ if (PyClass_Check(obj)) { data->newraw = 0; data->newargs = obj; Py_INCREF(obj); } else { data->newraw = PyObject_GetAttrString(data->klass, "__new__"); if (data->newraw) { Py_INCREF(data->newraw); data->newargs = PyTuple_New(1); PyTuple_SetItem(data->newargs, 0, obj); } else { data->newargs = obj; } Py_INCREF(data->newargs); } /* the destroy method, aka as the C++ delete method */ data->destroy = PyObject_GetAttrString(data->klass, "__swig_destroy__"); if (PyErr_Occurred()) { PyErr_Clear(); data->destroy = 0; } if (data->destroy) { int flags; Py_INCREF(data->destroy); flags = PyCFunction_GET_FLAGS(data->destroy); data->delargs = !(flags & (METH_O)); } else { data->delargs = 0; } data->implicitconv = 0; data->pytype = 0; return data; } } SWIGRUNTIME void SwigPyClientData_Del(SwigPyClientData *data) { Py_XDECREF(data->newraw); Py_XDECREF(data->newargs); Py_XDECREF(data->destroy); } /* =============== SwigPyObject =====================*/ typedef struct { PyObject_HEAD void *ptr; swig_type_info *ty; int own; PyObject *next; #ifdef SWIGPYTHON_BUILTIN PyObject *dict; #endif } SwigPyObject; #ifdef SWIGPYTHON_BUILTIN SWIGRUNTIME PyObject * SwigPyObject_get___dict__(PyObject *v, PyObject *SWIGUNUSEDPARM(args)) { SwigPyObject *sobj = (SwigPyObject *)v; if (!sobj->dict) sobj->dict = PyDict_New(); Py_INCREF(sobj->dict); return sobj->dict; } #endif SWIGRUNTIME PyObject * SwigPyObject_long(SwigPyObject *v) { return PyLong_FromVoidPtr(v->ptr); } SWIGRUNTIME PyObject * SwigPyObject_format(const char* fmt, SwigPyObject *v) { PyObject *res = NULL; PyObject *args = PyTuple_New(1); if (args) { if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) { PyObject *ofmt = SWIG_Python_str_FromChar(fmt); if (ofmt) { #if PY_VERSION_HEX >= 0x03000000 res = PyUnicode_Format(ofmt,args); #else res = PyString_Format(ofmt,args); #endif Py_DECREF(ofmt); } Py_DECREF(args); } } return res; } SWIGRUNTIME PyObject * SwigPyObject_oct(SwigPyObject *v) { return SwigPyObject_format("%o",v); } SWIGRUNTIME PyObject * SwigPyObject_hex(SwigPyObject *v) { return SwigPyObject_format("%x",v); } SWIGRUNTIME PyObject * SwigPyObject_repr(SwigPyObject *v) { const char *name = SWIG_TypePrettyName(v->ty); PyObject *repr = SWIG_Python_str_FromFormat("", (name ? name : "unknown"), (void *)v); if (v->next) { PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next); # if PY_VERSION_HEX >= 0x03000000 PyObject *joined = PyUnicode_Concat(repr, nrep); Py_DecRef(repr); Py_DecRef(nrep); repr = joined; # else PyString_ConcatAndDel(&repr,nrep); # endif } return repr; } /* We need a version taking two PyObject* parameters so it's a valid * PyCFunction to use in swigobject_methods[]. */ SWIGRUNTIME PyObject * SwigPyObject_repr2(PyObject *v, PyObject *SWIGUNUSEDPARM(args)) { return SwigPyObject_repr((SwigPyObject*)v); } SWIGRUNTIME int SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w) { void *i = v->ptr; void *j = w->ptr; return (i < j) ? -1 : ((i > j) ? 1 : 0); } /* Added for Python 3.x, would it also be useful for Python 2.x? */ SWIGRUNTIME PyObject* SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op) { PyObject* res; if( op != Py_EQ && op != Py_NE ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0); return res; } SWIGRUNTIME PyTypeObject* SwigPyObject_TypeOnce(void); #ifdef SWIGPYTHON_BUILTIN static swig_type_info *SwigPyObject_stype = 0; SWIGRUNTIME PyTypeObject* SwigPyObject_type(void) { SwigPyClientData *cd; assert(SwigPyObject_stype); cd = (SwigPyClientData*) SwigPyObject_stype->clientdata; assert(cd); assert(cd->pytype); return cd->pytype; } #else SWIGRUNTIME PyTypeObject* SwigPyObject_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyObject_TypeOnce(); return type; } #endif SWIGRUNTIMEINLINE int SwigPyObject_Check(PyObject *op) { #ifdef SWIGPYTHON_BUILTIN PyTypeObject *target_tp = SwigPyObject_type(); if (PyType_IsSubtype(op->ob_type, target_tp)) return 1; return (strcmp(op->ob_type->tp_name, "SwigPyObject") == 0); #else return (Py_TYPE(op) == SwigPyObject_type()) || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0); #endif } SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own); SWIGRUNTIME void SwigPyObject_dealloc(PyObject *v) { SwigPyObject *sobj = (SwigPyObject *) v; PyObject *next = sobj->next; if (sobj->own == SWIG_POINTER_OWN) { swig_type_info *ty = sobj->ty; SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; PyObject *destroy = data ? data->destroy : 0; if (destroy) { /* destroy is always a VARARGS method */ PyObject *res; /* PyObject_CallFunction() has the potential to silently drop the active exception. In cases of unnamed temporary variable or where we just finished iterating over a generator StopIteration will be active right now, and this needs to remain true upon return from SwigPyObject_dealloc. So save and restore. */ PyObject *type = NULL, *value = NULL, *traceback = NULL; PyErr_Fetch(&type, &value, &traceback); if (data->delargs) { /* we need to create a temporary object to carry the destroy operation */ PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0); res = SWIG_Python_CallFunctor(destroy, tmp); Py_DECREF(tmp); } else { PyCFunction meth = PyCFunction_GET_FUNCTION(destroy); PyObject *mself = PyCFunction_GET_SELF(destroy); res = ((*meth)(mself, v)); } if (!res) PyErr_WriteUnraisable(destroy); PyErr_Restore(type, value, traceback); Py_XDECREF(res); } #if !defined(SWIG_PYTHON_SILENT_MEMLEAK) else { const char *name = SWIG_TypePrettyName(ty); printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown")); } #endif } Py_XDECREF(next); PyObject_DEL(v); } SWIGRUNTIME PyObject* SwigPyObject_append(PyObject* v, PyObject* next) { SwigPyObject *sobj = (SwigPyObject *) v; if (!SwigPyObject_Check(next)) { PyErr_SetString(PyExc_TypeError, "Attempt to append a non SwigPyObject"); return NULL; } sobj->next = next; Py_INCREF(next); return SWIG_Py_Void(); } SWIGRUNTIME PyObject* SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) { SwigPyObject *sobj = (SwigPyObject *) v; if (sobj->next) { Py_INCREF(sobj->next); return sobj->next; } else { return SWIG_Py_Void(); } } SWIGINTERN PyObject* SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) { SwigPyObject *sobj = (SwigPyObject *)v; sobj->own = 0; return SWIG_Py_Void(); } SWIGINTERN PyObject* SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) { SwigPyObject *sobj = (SwigPyObject *)v; sobj->own = SWIG_POINTER_OWN; return SWIG_Py_Void(); } SWIGINTERN PyObject* SwigPyObject_own(PyObject *v, PyObject *args) { PyObject *val = 0; if (!PyArg_UnpackTuple(args, "own", 0, 1, &val)) { return NULL; } else { SwigPyObject *sobj = (SwigPyObject *)v; PyObject *obj = PyBool_FromLong(sobj->own); if (val) { if (PyObject_IsTrue(val)) { SwigPyObject_acquire(v,args); } else { SwigPyObject_disown(v,args); } } return obj; } } static PyMethodDef swigobject_methods[] = { {"disown", SwigPyObject_disown, METH_NOARGS, "releases ownership of the pointer"}, {"acquire", SwigPyObject_acquire, METH_NOARGS, "acquires ownership of the pointer"}, {"own", SwigPyObject_own, METH_VARARGS, "returns/sets ownership of the pointer"}, {"append", SwigPyObject_append, METH_O, "appends another 'this' object"}, {"next", SwigPyObject_next, METH_NOARGS, "returns the next 'this' object"}, {"__repr__",SwigPyObject_repr2, METH_NOARGS, "returns object representation"}, {0, 0, 0, 0} }; SWIGRUNTIME PyTypeObject* SwigPyObject_TypeOnce(void) { static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer"; static PyNumberMethods SwigPyObject_as_number = { (binaryfunc)0, /*nb_add*/ (binaryfunc)0, /*nb_subtract*/ (binaryfunc)0, /*nb_multiply*/ /* nb_divide removed in Python 3 */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc)0, /*nb_divide*/ #endif (binaryfunc)0, /*nb_remainder*/ (binaryfunc)0, /*nb_divmod*/ (ternaryfunc)0,/*nb_power*/ (unaryfunc)0, /*nb_negative*/ (unaryfunc)0, /*nb_positive*/ (unaryfunc)0, /*nb_absolute*/ (inquiry)0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ #if PY_VERSION_HEX < 0x03000000 0, /*nb_coerce*/ #endif (unaryfunc)SwigPyObject_long, /*nb_int*/ #if PY_VERSION_HEX < 0x03000000 (unaryfunc)SwigPyObject_long, /*nb_long*/ #else 0, /*nb_reserved*/ #endif (unaryfunc)0, /*nb_float*/ #if PY_VERSION_HEX < 0x03000000 (unaryfunc)SwigPyObject_oct, /*nb_oct*/ (unaryfunc)SwigPyObject_hex, /*nb_hex*/ #endif #if PY_VERSION_HEX >= 0x03050000 /* 3.5 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_matrix_multiply */ #elif PY_VERSION_HEX >= 0x03000000 /* 3.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */ #else 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */ #endif }; static PyTypeObject swigpyobject_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "SwigPyObject", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyObject_dealloc, /* tp_dealloc */ 0, /* tp_print */ (getattrfunc)0, /* tp_getattr */ (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */ #else (cmpfunc)SwigPyObject_compare, /* tp_compare */ #endif (reprfunc)SwigPyObject_repr, /* tp_repr */ &SwigPyObject_as_number, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ 0, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigobject_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ (richcmpfunc)SwigPyObject_richcompare,/* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ swigobject_methods, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ 0, /* tp_del */ 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS 0, /* tp_allocs */ 0, /* tp_frees */ 0, /* tp_maxalloc */ 0, /* tp_prev */ 0 /* tp_next */ #endif }; swigpyobject_type = tmp; type_init = 1; if (PyType_Ready(&swigpyobject_type) < 0) return NULL; } return &swigpyobject_type; } SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own) { SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type()); if (sobj) { sobj->ptr = ptr; sobj->ty = ty; sobj->own = own; sobj->next = 0; } return (PyObject *)sobj; } /* ----------------------------------------------------------------------------- * Implements a simple Swig Packed type, and use it instead of string * ----------------------------------------------------------------------------- */ typedef struct { PyObject_HEAD void *pack; swig_type_info *ty; size_t size; } SwigPyPacked; SWIGRUNTIME PyObject * SwigPyPacked_repr(SwigPyPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) { return SWIG_Python_str_FromFormat("", result, v->ty->name); } else { return SWIG_Python_str_FromFormat("", v->ty->name); } } SWIGRUNTIME PyObject * SwigPyPacked_str(SwigPyPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){ return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name); } else { return SWIG_Python_str_FromChar(v->ty->name); } } SWIGRUNTIME int SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w) { size_t i = v->size; size_t j = w->size; int s = (i < j) ? -1 : ((i > j) ? 1 : 0); return s ? s : strncmp((const char *)v->pack, (const char *)w->pack, 2*v->size); } SWIGRUNTIME PyTypeObject* SwigPyPacked_TypeOnce(void); SWIGRUNTIME PyTypeObject* SwigPyPacked_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyPacked_TypeOnce(); return type; } SWIGRUNTIMEINLINE int SwigPyPacked_Check(PyObject *op) { return ((op)->ob_type == SwigPyPacked_TypeOnce()) || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0); } SWIGRUNTIME void SwigPyPacked_dealloc(PyObject *v) { if (SwigPyPacked_Check(v)) { SwigPyPacked *sobj = (SwigPyPacked *) v; free(sobj->pack); } PyObject_DEL(v); } SWIGRUNTIME PyTypeObject* SwigPyPacked_TypeOnce(void) { static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer"; static PyTypeObject swigpypacked_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { #if PY_VERSION_HEX>=0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "SwigPyPacked", /* tp_name */ sizeof(SwigPyPacked), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ 0, /* tp_print */ (getattrfunc)0, /* tp_getattr */ (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX>=0x03000000 0, /* tp_reserved in 3.0.1 */ #else (cmpfunc)SwigPyPacked_compare, /* tp_compare */ #endif (reprfunc)SwigPyPacked_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)SwigPyPacked_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigpacked_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ 0, /* tp_del */ 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS 0, /* tp_allocs */ 0, /* tp_frees */ 0, /* tp_maxalloc */ 0, /* tp_prev */ 0 /* tp_next */ #endif }; swigpypacked_type = tmp; type_init = 1; if (PyType_Ready(&swigpypacked_type) < 0) return NULL; } return &swigpypacked_type; } SWIGRUNTIME PyObject * SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty) { SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type()); if (sobj) { void *pack = malloc(size); if (pack) { memcpy(pack, ptr, size); sobj->pack = pack; sobj->ty = ty; sobj->size = size; } else { PyObject_DEL((PyObject *) sobj); sobj = 0; } } return (PyObject *) sobj; } SWIGRUNTIME swig_type_info * SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size) { if (SwigPyPacked_Check(obj)) { SwigPyPacked *sobj = (SwigPyPacked *)obj; if (sobj->size != size) return 0; memcpy(ptr, sobj->pack, size); return sobj->ty; } else { return 0; } } /* ----------------------------------------------------------------------------- * pointers/data manipulation * ----------------------------------------------------------------------------- */ static PyObject *Swig_This_global = NULL; SWIGRUNTIME PyObject * SWIG_This(void) { if (Swig_This_global == NULL) Swig_This_global = SWIG_Python_str_FromChar("this"); return Swig_This_global; } /* #define SWIG_PYTHON_SLOW_GETSET_THIS */ /* TODO: I don't know how to implement the fast getset in Python 3 right now */ #if PY_VERSION_HEX>=0x03000000 #define SWIG_PYTHON_SLOW_GETSET_THIS #endif SWIGRUNTIME SwigPyObject * SWIG_Python_GetSwigThis(PyObject *pyobj) { PyObject *obj; if (SwigPyObject_Check(pyobj)) return (SwigPyObject *) pyobj; #ifdef SWIGPYTHON_BUILTIN (void)obj; # ifdef PyWeakref_CheckProxy if (PyWeakref_CheckProxy(pyobj)) { pyobj = PyWeakref_GET_OBJECT(pyobj); if (pyobj && SwigPyObject_Check(pyobj)) return (SwigPyObject*) pyobj; } # endif return NULL; #else obj = 0; #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS) if (PyInstance_Check(pyobj)) { obj = _PyInstance_Lookup(pyobj, SWIG_This()); } else { PyObject **dictptr = _PyObject_GetDictPtr(pyobj); if (dictptr != NULL) { PyObject *dict = *dictptr; obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0; } else { #ifdef PyWeakref_CheckProxy if (PyWeakref_CheckProxy(pyobj)) { PyObject *wobj = PyWeakref_GET_OBJECT(pyobj); return wobj ? SWIG_Python_GetSwigThis(wobj) : 0; } #endif obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } } } #else obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } #endif if (obj && !SwigPyObject_Check(obj)) { /* a PyObject is called 'this', try to get the 'real this' SwigPyObject from it */ return SWIG_Python_GetSwigThis(obj); } return (SwigPyObject *)obj; #endif } /* Acquire a pointer value */ SWIGRUNTIME int SWIG_Python_AcquirePtr(PyObject *obj, int own) { if (own == SWIG_POINTER_OWN) { SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj); if (sobj) { int oldown = sobj->own; sobj->own = own; return oldown; } } return 0; } /* Convert a pointer value */ SWIGRUNTIME int SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) { int res; SwigPyObject *sobj; int implicit_conv = (flags & SWIG_POINTER_IMPLICIT_CONV) != 0; if (!obj) return SWIG_ERROR; if (obj == Py_None && !implicit_conv) { if (ptr) *ptr = 0; return (flags & SWIG_POINTER_NO_NULL) ? SWIG_NullReferenceError : SWIG_OK; } res = SWIG_ERROR; sobj = SWIG_Python_GetSwigThis(obj); if (own) *own = 0; while (sobj) { void *vptr = sobj->ptr; if (ty) { swig_type_info *to = sobj->ty; if (to == ty) { /* no type cast needed */ if (ptr) *ptr = vptr; break; } else { swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) { sobj = (SwigPyObject *)sobj->next; } else { if (ptr) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); if (newmemory == SWIG_CAST_NEW_MEMORY) { assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */ if (own) *own = *own | SWIG_CAST_NEW_MEMORY; } } break; } } } else { if (ptr) *ptr = vptr; break; } } if (sobj) { if (own) *own = *own | sobj->own; if (flags & SWIG_POINTER_DISOWN) { sobj->own = 0; } res = SWIG_OK; } else { if (implicit_conv) { SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0; if (data && !data->implicitconv) { PyObject *klass = data->klass; if (klass) { PyObject *impconv; data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/ impconv = SWIG_Python_CallFunctor(klass, obj); data->implicitconv = 0; if (PyErr_Occurred()) { PyErr_Clear(); impconv = 0; } if (impconv) { SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv); if (iobj) { void *vptr; res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0); if (SWIG_IsOK(res)) { if (ptr) { *ptr = vptr; /* transfer the ownership to 'ptr' */ iobj->own = 0; res = SWIG_AddCast(res); res = SWIG_AddNewMask(res); } else { res = SWIG_AddCast(res); } } } Py_DECREF(impconv); } } } if (!SWIG_IsOK(res) && obj == Py_None) { if (ptr) *ptr = 0; if (PyErr_Occurred()) PyErr_Clear(); res = SWIG_OK; } } } return res; } /* Convert a function ptr value */ SWIGRUNTIME int SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) { if (!PyCFunction_Check(obj)) { return SWIG_ConvertPtr(obj, ptr, ty, 0); } else { void *vptr = 0; swig_cast_info *tc; /* here we get the method pointer for callbacks */ const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc); const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0; if (desc) desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0; if (!desc) return SWIG_ERROR; tc = SWIG_TypeCheck(desc,ty); if (tc) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); assert(!newmemory); /* newmemory handling not yet implemented */ } else { return SWIG_ERROR; } return SWIG_OK; } } /* Convert a packed pointer value */ SWIGRUNTIME int SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) { swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz); if (!to) return SWIG_ERROR; if (ty) { if (to != ty) { /* check type cast? */ swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) return SWIG_ERROR; } } return SWIG_OK; } /* ----------------------------------------------------------------------------- * Create a new pointer object * ----------------------------------------------------------------------------- */ /* Create a new instance object, without calling __init__, and set the 'this' attribute. */ SWIGRUNTIME PyObject* SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this) { PyObject *inst = 0; PyObject *newraw = data->newraw; if (newraw) { inst = PyObject_Call(newraw, data->newargs, NULL); if (inst) { #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { PyObject *dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; PyDict_SetItem(dict, SWIG_This(), swig_this); } } #else PyObject *key = SWIG_This(); PyObject_SetAttr(inst, key, swig_this); #endif } } else { #if PY_VERSION_HEX >= 0x03000000 PyObject *empty_args = PyTuple_New(0); if (empty_args) { PyObject *empty_kwargs = PyDict_New(); if (empty_kwargs) { inst = ((PyTypeObject *)data->newargs)->tp_new((PyTypeObject *)data->newargs, empty_args, empty_kwargs); Py_DECREF(empty_kwargs); if (inst) { PyObject_SetAttr(inst, SWIG_This(), swig_this); Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG; } } Py_DECREF(empty_args); } #else PyObject *dict = PyDict_New(); if (dict) { PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); } #endif } return inst; } SWIGRUNTIME void SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this) { PyObject *dict; #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; } PyDict_SetItem(dict, SWIG_This(), swig_this); return; } #endif dict = PyObject_GetAttrString(inst, "__dict__"); PyDict_SetItem(dict, SWIG_This(), swig_this); Py_DECREF(dict); } SWIGINTERN PyObject * SWIG_Python_InitShadowInstance(PyObject *args) { PyObject *obj[2]; if (!SWIG_Python_UnpackTuple(args, "swiginit", 2, 2, obj)) { return NULL; } else { SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]); if (sthis) { SwigPyObject_append((PyObject*) sthis, obj[1]); } else { SWIG_Python_SetSwigThis(obj[0], obj[1]); } return SWIG_Py_Void(); } } /* Create a new pointer object */ SWIGRUNTIME PyObject * SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int flags) { SwigPyClientData *clientdata; PyObject * robj; int own; if (!ptr) return SWIG_Py_Void(); clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0; own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0; if (clientdata && clientdata->pytype) { SwigPyObject *newobj; if (flags & SWIG_BUILTIN_TP_INIT) { newobj = (SwigPyObject*) self; if (newobj->ptr) { PyObject *next_self = clientdata->pytype->tp_alloc(clientdata->pytype, 0); while (newobj->next) newobj = (SwigPyObject *) newobj->next; newobj->next = next_self; newobj = (SwigPyObject *)next_self; #ifdef SWIGPYTHON_BUILTIN newobj->dict = 0; #endif } } else { newobj = PyObject_New(SwigPyObject, clientdata->pytype); #ifdef SWIGPYTHON_BUILTIN newobj->dict = 0; #endif } if (newobj) { newobj->ptr = ptr; newobj->ty = type; newobj->own = own; newobj->next = 0; return (PyObject*) newobj; } return SWIG_Py_Void(); } assert(!(flags & SWIG_BUILTIN_TP_INIT)); robj = SwigPyObject_New(ptr, type, own); if (robj && clientdata && !(flags & SWIG_POINTER_NOSHADOW)) { PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj); Py_DECREF(robj); robj = inst; } return robj; } /* Create a new packed object */ SWIGRUNTIMEINLINE PyObject * SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) { return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void(); } /* -----------------------------------------------------------------------------* * Get type list * -----------------------------------------------------------------------------*/ #ifdef SWIG_LINK_RUNTIME void *SWIG_ReturnGlobalTypeList(void *); #endif SWIGRUNTIME swig_module_info * SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata)) { static void *type_pointer = (void *)0; /* first check if module already created */ if (!type_pointer) { #ifdef SWIG_LINK_RUNTIME type_pointer = SWIG_ReturnGlobalTypeList((void *)0); #else type_pointer = PyCapsule_Import(SWIGPY_CAPSULE_NAME, 0); if (PyErr_Occurred()) { PyErr_Clear(); type_pointer = (void *)0; } #endif } return (swig_module_info *) type_pointer; } SWIGRUNTIME void SWIG_Python_DestroyModule(PyObject *obj) { swig_module_info *swig_module = (swig_module_info *) PyCapsule_GetPointer(obj, SWIGPY_CAPSULE_NAME); swig_type_info **types = swig_module->types; size_t i; for (i =0; i < swig_module->size; ++i) { swig_type_info *ty = types[i]; if (ty->owndata) { SwigPyClientData *data = (SwigPyClientData *) ty->clientdata; if (data) SwigPyClientData_Del(data); } } Py_DECREF(SWIG_This()); Swig_This_global = NULL; } SWIGRUNTIME void SWIG_Python_SetModule(swig_module_info *swig_module) { #if PY_VERSION_HEX >= 0x03000000 /* Add a dummy module object into sys.modules */ PyObject *module = PyImport_AddModule("swig_runtime_data" SWIG_RUNTIME_VERSION); #else static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} }; /* Sentinel */ PyObject *module = Py_InitModule("swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table); #endif PyObject *pointer = PyCapsule_New((void *) swig_module, SWIGPY_CAPSULE_NAME, SWIG_Python_DestroyModule); if (pointer && module) { PyModule_AddObject(module, "type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer); } else { Py_XDECREF(pointer); } } /* The python cached type query */ SWIGRUNTIME PyObject * SWIG_Python_TypeCache(void) { static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New(); return cache; } SWIGRUNTIME swig_type_info * SWIG_Python_TypeQuery(const char *type) { PyObject *cache = SWIG_Python_TypeCache(); PyObject *key = SWIG_Python_str_FromChar(type); PyObject *obj = PyDict_GetItem(cache, key); swig_type_info *descriptor; if (obj) { descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, NULL); } else { swig_module_info *swig_module = SWIG_GetModule(0); descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type); if (descriptor) { obj = PyCapsule_New((void*) descriptor, NULL, NULL); PyDict_SetItem(cache, key, obj); Py_DECREF(obj); } } Py_DECREF(key); return descriptor; } /* For backward compatibility only */ #define SWIG_POINTER_EXCEPTION 0 #define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg) #define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags) SWIGRUNTIME int SWIG_Python_AddErrMesg(const char* mesg, int infront) { if (PyErr_Occurred()) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; PyErr_Fetch(&type, &value, &traceback); if (value) { PyObject *old_str = PyObject_Str(value); const char *tmp = SWIG_Python_str_AsChar(old_str); const char *errmesg = tmp ? tmp : "Invalid error message"; Py_XINCREF(type); PyErr_Clear(); if (infront) { PyErr_Format(type, "%s %s", mesg, errmesg); } else { PyErr_Format(type, "%s %s", errmesg, mesg); } SWIG_Python_str_DelForPy3(tmp); Py_DECREF(old_str); } return 1; } else { return 0; } } SWIGRUNTIME int SWIG_Python_ArgFail(int argnum) { if (PyErr_Occurred()) { /* add information about failing argument */ char mesg[256]; PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum); return SWIG_Python_AddErrMesg(mesg, 1); } else { return 0; } } SWIGRUNTIMEINLINE const char * SwigPyObject_GetDesc(PyObject *self) { SwigPyObject *v = (SwigPyObject *)self; swig_type_info *ty = v ? v->ty : 0; return ty ? ty->str : ""; } SWIGRUNTIME void SWIG_Python_TypeError(const char *type, PyObject *obj) { if (type) { #if defined(SWIG_COBJECT_TYPES) if (obj && SwigPyObject_Check(obj)) { const char *otype = (const char *) SwigPyObject_GetDesc(obj); if (otype) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received", type, otype); return; } } else #endif { const char *otype = (obj ? obj->ob_type->tp_name : 0); if (otype) { PyObject *str = PyObject_Str(obj); const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0; if (cstr) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received", type, otype, cstr); SWIG_Python_str_DelForPy3(cstr); } else { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received", type, otype); } Py_XDECREF(str); return; } } PyErr_Format(PyExc_TypeError, "a '%s' is expected", type); } else { PyErr_Format(PyExc_TypeError, "unexpected type is received"); } } /* Convert a pointer value, signal an exception on a type mismatch */ SWIGRUNTIME void * SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(argnum), int flags) { void *result; if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) { PyErr_Clear(); #if SWIG_POINTER_EXCEPTION if (flags) { SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); SWIG_Python_ArgFail(argnum); } #endif } return result; } #ifdef SWIGPYTHON_BUILTIN SWIGRUNTIME int SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) { PyTypeObject *tp = obj->ob_type; PyObject *descr; PyObject *encoded_name; descrsetfunc f; int res = -1; # ifdef Py_USING_UNICODE if (PyString_Check(name)) { name = PyUnicode_Decode(PyString_AsString(name), PyString_Size(name), NULL, NULL); if (!name) return -1; } else if (!PyUnicode_Check(name)) # else if (!PyString_Check(name)) # endif { PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", name->ob_type->tp_name); return -1; } else { Py_INCREF(name); } if (!tp->tp_dict) { if (PyType_Ready(tp) < 0) goto done; } descr = _PyType_Lookup(tp, name); f = NULL; if (descr != NULL) f = descr->ob_type->tp_descr_set; if (!f) { if (PyString_Check(name)) { encoded_name = name; Py_INCREF(name); } else { encoded_name = PyUnicode_AsUTF8String(name); if (!encoded_name) return -1; } PyErr_Format(PyExc_AttributeError, "'%.100s' object has no attribute '%.200s'", tp->tp_name, PyString_AsString(encoded_name)); Py_DECREF(encoded_name); } else { res = f(descr, obj, value); } done: Py_DECREF(name); return res; } #endif #ifdef __cplusplus } #endif #ifdef __cplusplus extern "C" { #endif SWIGINTERN Py_hash_t SwigPyObject_hash(PyObject *obj) { SwigPyObject *sobj = (SwigPyObject *)obj; void *ptr = sobj->ptr; return (Py_hash_t)ptr; } SWIGINTERN Py_hash_t SWIG_PyNumber_AsPyHash(PyObject *obj) { Py_hash_t result = -1; #if PY_VERSION_HEX < 0x03020000 if (PyInt_Check(obj)) result = PyInt_AsLong(obj); else if (PyLong_Check(obj)) result = PyLong_AsLong(obj); #else if (PyNumber_Check(obj)) result = PyNumber_AsSsize_t(obj, NULL); #endif else PyErr_Format(PyExc_TypeError, "Wrong type for hash function"); return PyErr_Occurred() ? -1 : result; } SWIGINTERN int SwigPyBuiltin_BadInit(PyObject *self, PyObject *SWIGUNUSEDPARM(args), PyObject *SWIGUNUSEDPARM(kwds)) { PyErr_Format(PyExc_TypeError, "Cannot create new instances of type '%.300s'", self->ob_type->tp_name); return -1; } SWIGINTERN void SwigPyBuiltin_BadDealloc(PyObject *obj) { SwigPyObject *sobj = (SwigPyObject *)obj; if (sobj->own) { PyErr_Format(PyExc_TypeError, "Swig detected a memory leak in type '%.300s': no callable destructor found.", obj->ob_type->tp_name); } } typedef struct { PyCFunction get; PyCFunction set; } SwigPyGetSet; SWIGINTERN PyObject * SwigPyBuiltin_GetterClosure (PyObject *obj, void *closure) { SwigPyGetSet *getset; PyObject *tuple, *result; if (!closure) return SWIG_Py_Void(); getset = (SwigPyGetSet *)closure; if (!getset->get) return SWIG_Py_Void(); tuple = PyTuple_New(0); assert(tuple); result = (*getset->get)(obj, tuple); Py_DECREF(tuple); return result; } SWIGINTERN PyObject * SwigPyBuiltin_FunpackGetterClosure (PyObject *obj, void *closure) { SwigPyGetSet *getset; PyObject *result; if (!closure) return SWIG_Py_Void(); getset = (SwigPyGetSet *)closure; if (!getset->get) return SWIG_Py_Void(); result = (*getset->get)(obj, NULL); return result; } SWIGINTERN int SwigPyBuiltin_SetterClosure (PyObject *obj, PyObject *val, void *closure) { SwigPyGetSet *getset; PyObject *tuple, *result; if (!closure) { PyErr_Format(PyExc_TypeError, "Missing getset closure"); return -1; } getset = (SwigPyGetSet *)closure; if (!getset->set) { PyErr_Format(PyExc_TypeError, "Illegal member variable assignment in type '%.300s'", obj->ob_type->tp_name); return -1; } tuple = PyTuple_New(1); assert(tuple); Py_INCREF(val); PyTuple_SET_ITEM(tuple, 0, val); result = (*getset->set)(obj, tuple); Py_DECREF(tuple); Py_XDECREF(result); return result ? 0 : -1; } SWIGINTERN int SwigPyBuiltin_FunpackSetterClosure (PyObject *obj, PyObject *val, void *closure) { SwigPyGetSet *getset; PyObject *result; if (!closure) { PyErr_Format(PyExc_TypeError, "Missing getset closure"); return -1; } getset = (SwigPyGetSet *)closure; if (!getset->set) { PyErr_Format(PyExc_TypeError, "Illegal member variable assignment in type '%.300s'", obj->ob_type->tp_name); return -1; } result = (*getset->set)(obj, val); Py_XDECREF(result); return result ? 0 : -1; } SWIGINTERN void SwigPyStaticVar_dealloc(PyDescrObject *descr) { PyObject_GC_UnTrack(descr); Py_XDECREF(PyDescr_TYPE(descr)); Py_XDECREF(PyDescr_NAME(descr)); PyObject_GC_Del(descr); } SWIGINTERN PyObject * SwigPyStaticVar_repr(PyGetSetDescrObject *descr) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_FromFormat("", PyDescr_NAME(descr), PyDescr_TYPE(descr)->tp_name); #else return PyString_FromFormat("", PyString_AsString(PyDescr_NAME(descr)), PyDescr_TYPE(descr)->tp_name); #endif } SWIGINTERN int SwigPyStaticVar_traverse(PyObject *self, visitproc visit, void *arg) { PyDescrObject *descr; descr = (PyDescrObject *)self; Py_VISIT((PyObject*) PyDescr_TYPE(descr)); return 0; } SWIGINTERN PyObject * SwigPyStaticVar_get(PyGetSetDescrObject *descr, PyObject *obj, PyObject *SWIGUNUSEDPARM(type)) { if (descr->d_getset->get != NULL) return descr->d_getset->get(obj, descr->d_getset->closure); #if PY_VERSION_HEX >= 0x03000000 PyErr_Format(PyExc_AttributeError, "attribute '%.300S' of '%.100s' objects is not readable", PyDescr_NAME(descr), PyDescr_TYPE(descr)->tp_name); #else PyErr_Format(PyExc_AttributeError, "attribute '%.300s' of '%.100s' objects is not readable", PyString_AsString(PyDescr_NAME(descr)), PyDescr_TYPE(descr)->tp_name); #endif return NULL; } SWIGINTERN int SwigPyStaticVar_set(PyGetSetDescrObject *descr, PyObject *obj, PyObject *value) { if (descr->d_getset->set != NULL) return descr->d_getset->set(obj, value, descr->d_getset->closure); #if PY_VERSION_HEX >= 0x03000000 PyErr_Format(PyExc_AttributeError, "attribute '%.300S' of '%.100s' objects is not writable", PyDescr_NAME(descr), PyDescr_TYPE(descr)->tp_name); #else PyErr_Format(PyExc_AttributeError, "attribute '%.300s' of '%.100s' objects is not writable", PyString_AsString(PyDescr_NAME(descr)), PyDescr_TYPE(descr)->tp_name); #endif return -1; } SWIGINTERN int SwigPyObjectType_setattro(PyObject *typeobject, PyObject *name, PyObject *value) { PyObject *attribute; PyTypeObject *type; descrsetfunc local_set; assert(PyType_Check(typeobject)); type = (PyTypeObject *)typeobject; attribute = _PyType_Lookup(type, name); if (attribute != NULL) { /* Implement descriptor functionality, if any */ local_set = attribute->ob_type->tp_descr_set; if (local_set != NULL) return local_set(attribute, (PyObject *)type, value); #if PY_VERSION_HEX >= 0x03000000 PyErr_Format(PyExc_AttributeError, "cannot modify read-only attribute '%.50s.%.400S'", type->tp_name, name); #else PyErr_Format(PyExc_AttributeError, "cannot modify read-only attribute '%.50s.%.400s'", type->tp_name, PyString_AS_STRING(name)); #endif } else { #if PY_VERSION_HEX >= 0x03000000 PyErr_Format(PyExc_AttributeError, "type '%.50s' has no attribute '%.400S'", type->tp_name, name); #else PyErr_Format(PyExc_AttributeError, "type '%.50s' has no attribute '%.400s'", type->tp_name, PyString_AS_STRING(name)); #endif } return -1; } SWIGINTERN PyTypeObject* SwigPyStaticVar_Type(void) { static PyTypeObject staticvar_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(&PyType_Type) 0, /* ob_size */ #endif "swig_static_var_getset_descriptor", /* tp_name */ sizeof(PyGetSetDescrObject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyStaticVar_dealloc, /* tp_dealloc */ 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ 0, /* tp_compare */ (reprfunc)SwigPyStaticVar_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */ 0, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_CLASS, /* tp_flags */ 0, /* tp_doc */ SwigPyStaticVar_traverse, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc)SwigPyStaticVar_get, /* tp_descr_get */ (descrsetfunc)SwigPyStaticVar_set, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ 0, /* tp_del */ 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS 0, /* tp_allocs */ 0, /* tp_frees */ 0, /* tp_maxalloc */ 0, /* tp_prev */ 0 /* tp_next */ #endif }; staticvar_type = tmp; type_init = 1; if (PyType_Ready(&staticvar_type) < 0) return NULL; } return &staticvar_type; } SWIGINTERN PyTypeObject* SwigPyObjectType(void) { static char swigpyobjecttype_doc[] = "Metaclass for SWIG wrapped types"; static PyTypeObject swigpyobjecttype_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(&PyType_Type, 0) #else PyObject_HEAD_INIT(&PyType_Type) 0, /* ob_size */ #endif "SwigPyObjectType", /* tp_name */ PyType_Type.tp_basicsize, /* tp_basicsize */ 0, /* tp_itemsize */ 0, /* tp_dealloc */ 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ 0, /* tp_compare */ 0, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ SwigPyObjectType_setattro, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_CLASS, /* tp_flags */ swigpyobjecttype_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ 0, /* tp_del */ 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS 0, /* tp_allocs */ 0, /* tp_frees */ 0, /* tp_maxalloc */ 0, /* tp_prev */ 0 /* tp_next */ #endif }; swigpyobjecttype_type = tmp; type_init = 1; swigpyobjecttype_type.tp_base = &PyType_Type; if (PyType_Ready(&swigpyobjecttype_type) < 0) return NULL; } return &swigpyobjecttype_type; } SWIGINTERN PyGetSetDescrObject * SwigPyStaticVar_new_getset(PyTypeObject *type, PyGetSetDef *getset) { PyGetSetDescrObject *descr; descr = (PyGetSetDescrObject *)PyType_GenericAlloc(SwigPyStaticVar_Type(), 0); assert(descr); Py_XINCREF(type); PyDescr_TYPE(descr) = type; PyDescr_NAME(descr) = PyString_InternFromString(getset->name); descr->d_getset = getset; if (PyDescr_NAME(descr) == NULL) { Py_DECREF(descr); descr = NULL; } return descr; } SWIGINTERN void SwigPyBuiltin_InitBases (PyTypeObject *type, PyTypeObject **bases) { Py_ssize_t base_count = 0; PyTypeObject **b; PyObject *tuple; Py_ssize_t i; if (!bases[0]) { bases[0] = SwigPyObject_type(); bases[1] = NULL; } type->tp_base = bases[0]; Py_INCREF((PyObject *)bases[0]); for (b = bases; *b != NULL; ++b) ++base_count; tuple = PyTuple_New(base_count); for (i = 0; i < base_count; ++i) { Py_INCREF((PyObject *)bases[i]); PyTuple_SET_ITEM(tuple, i, (PyObject *)bases[i]); } type->tp_bases = tuple; } SWIGINTERN PyObject * SwigPyBuiltin_ThisClosure (PyObject *self, void *SWIGUNUSEDPARM(closure)) { PyObject *result; result = (PyObject *)SWIG_Python_GetSwigThis(self); Py_XINCREF(result); return result; } SWIGINTERN void SwigPyBuiltin_SetMetaType (PyTypeObject *type, PyTypeObject *metatype) { #if PY_VERSION_HEX >= 0x03000000 type->ob_base.ob_base.ob_type = metatype; #else type->ob_type = metatype; #endif } /* Start of callback function macros for use in PyTypeObject */ typedef PyObject *(*SwigPyWrapperFunction)(PyObject *, PyObject *); #define SWIGPY_UNARYFUNC_CLOSURE(wrapper) \ SWIGINTERN PyObject * \ wrapper##_unaryfunc_closure(PyObject *a) { \ return SwigPyBuiltin_unaryfunc_closure(wrapper, a); \ } SWIGINTERN PyObject * SwigPyBuiltin_unaryfunc_closure(SwigPyWrapperFunction wrapper, PyObject *a) { return wrapper(a, NULL); } #define SWIGPY_DESTRUCTOR_CLOSURE(wrapper) \ SWIGINTERN void \ wrapper##_destructor_closure(PyObject *a) { \ SwigPyBuiltin_destructor_closure(wrapper, #wrapper, a); \ } SWIGINTERN void SwigPyBuiltin_destructor_closure(SwigPyWrapperFunction wrapper, const char *wrappername, PyObject *a) { SwigPyObject *sobj; sobj = (SwigPyObject *)a; Py_XDECREF(sobj->dict); if (sobj->own) { PyObject *o; PyObject *type = 0, *value = 0, *traceback = 0; PyErr_Fetch(&type, &value, &traceback); o = wrapper(a, NULL); if (!o) { PyObject *deallocname = PyString_FromString(wrappername); PyErr_WriteUnraisable(deallocname); Py_DECREF(deallocname); } PyErr_Restore(type, value, traceback); Py_XDECREF(o); } if (PyType_IS_GC(a->ob_type)) { PyObject_GC_Del(a); } else { PyObject_Del(a); } } #define SWIGPY_INQUIRY_CLOSURE(wrapper) \ SWIGINTERN int \ wrapper##_inquiry_closure(PyObject *a) { \ return SwigPyBuiltin_inquiry_closure(wrapper, a); \ } SWIGINTERN int SwigPyBuiltin_inquiry_closure(SwigPyWrapperFunction wrapper, PyObject *a) { PyObject *pyresult; int result; pyresult = wrapper(a, NULL); result = pyresult && PyObject_IsTrue(pyresult) ? 1 : 0; Py_XDECREF(pyresult); return result; } #define SWIGPY_GETITERFUNC_CLOSURE(wrapper) \ SWIGINTERN PyObject * \ wrapper##_getiterfunc_closure(PyObject *a) { \ return SwigPyBuiltin_getiterfunc_closure(wrapper, a); \ } SWIGINTERN PyObject * SwigPyBuiltin_getiterfunc_closure(SwigPyWrapperFunction wrapper, PyObject *a) { return wrapper(a, NULL); } #define SWIGPY_BINARYFUNC_CLOSURE(wrapper) \ SWIGINTERN PyObject * \ wrapper##_binaryfunc_closure(PyObject *a, PyObject *b) { \ return SwigPyBuiltin_binaryfunc_closure(wrapper, a, b); \ } SWIGINTERN PyObject * SwigPyBuiltin_binaryfunc_closure(SwigPyWrapperFunction wrapper, PyObject *a, PyObject *b) { PyObject *tuple, *result; tuple = PyTuple_New(1); assert(tuple); Py_INCREF(b); PyTuple_SET_ITEM(tuple, 0, b); result = wrapper(a, tuple); Py_DECREF(tuple); return result; } typedef ternaryfunc ternarycallfunc; #define SWIGPY_TERNARYFUNC_CLOSURE(wrapper) \ SWIGINTERN PyObject * \ wrapper##_ternaryfunc_closure(PyObject *a, PyObject *b, PyObject *c) { \ return SwigPyBuiltin_ternaryfunc_closure(wrapper, a, b, c); \ } SWIGINTERN PyObject * SwigPyBuiltin_ternaryfunc_closure(SwigPyWrapperFunction wrapper, PyObject *a, PyObject *b, PyObject *c) { PyObject *tuple, *result; tuple = PyTuple_New(2); assert(tuple); Py_INCREF(b); PyTuple_SET_ITEM(tuple, 0, b); Py_INCREF(c); PyTuple_SET_ITEM(tuple, 1, c); result = wrapper(a, tuple); Py_DECREF(tuple); return result; } #define SWIGPY_TERNARYCALLFUNC_CLOSURE(wrapper) \ SWIGINTERN PyObject * \ wrapper##_ternarycallfunc_closure(PyObject *a, PyObject *b, PyObject *c) { \ return SwigPyBuiltin_ternarycallfunc_closure(wrapper, a, b, c); \ } SWIGINTERN PyObject * SwigPyBuiltin_ternarycallfunc_closure(SwigPyWrapperFunction wrapper, PyObject *a, PyObject *b, PyObject *c) { (void) c; return wrapper(a, b); } #define SWIGPY_LENFUNC_CLOSURE(wrapper) \ SWIGINTERN Py_ssize_t \ wrapper##_lenfunc_closure(PyObject *a) { \ return SwigPyBuiltin_lenfunc_closure(wrapper, a); \ } SWIGINTERN Py_ssize_t SwigPyBuiltin_lenfunc_closure(SwigPyWrapperFunction wrapper, PyObject *a) { PyObject *resultobj; Py_ssize_t result; resultobj = wrapper(a, NULL); result = PyNumber_AsSsize_t(resultobj, NULL); Py_DECREF(resultobj); return result; } #define SWIGPY_SSIZESSIZEARGFUNC_CLOSURE(wrapper) \ SWIGINTERN PyObject * \ wrapper##_ssizessizeargfunc_closure(PyObject *a, Py_ssize_t b, Py_ssize_t c) { \ return SwigPyBuiltin_ssizessizeargfunc_closure(wrapper, a, b, c); \ } SWIGINTERN PyObject * SwigPyBuiltin_ssizessizeargfunc_closure(SwigPyWrapperFunction wrapper, PyObject *a, Py_ssize_t b, Py_ssize_t c) { PyObject *tuple, *result; tuple = PyTuple_New(2); assert(tuple); PyTuple_SET_ITEM(tuple, 0, _PyLong_FromSsize_t(b)); PyTuple_SET_ITEM(tuple, 1, _PyLong_FromSsize_t(c)); result = wrapper(a, tuple); Py_DECREF(tuple); return result; } #define SWIGPY_SSIZESSIZEOBJARGPROC_CLOSURE(wrapper) \ SWIGINTERN int \ wrapper##_ssizessizeobjargproc_closure(PyObject *a, Py_ssize_t b, Py_ssize_t c, PyObject *d) { \ return SwigPyBuiltin_ssizessizeobjargproc_closure(wrapper, a, b, c, d); \ } SWIGINTERN int SwigPyBuiltin_ssizessizeobjargproc_closure(SwigPyWrapperFunction wrapper, PyObject *a, Py_ssize_t b, Py_ssize_t c, PyObject *d) { PyObject *tuple, *resultobj; int result; tuple = PyTuple_New(d ? 3 : 2); assert(tuple); PyTuple_SET_ITEM(tuple, 0, _PyLong_FromSsize_t(b)); PyTuple_SET_ITEM(tuple, 1, _PyLong_FromSsize_t(c)); if (d) { Py_INCREF(d); PyTuple_SET_ITEM(tuple, 2, d); } resultobj = wrapper(a, tuple); result = resultobj ? 0 : -1; Py_DECREF(tuple); Py_XDECREF(resultobj); return result; } #define SWIGPY_SSIZEARGFUNC_CLOSURE(wrapper) \ SWIGINTERN PyObject * \ wrapper##_ssizeargfunc_closure(PyObject *a, Py_ssize_t b) { \ return SwigPyBuiltin_funpack_ssizeargfunc_closure(wrapper, a, b); \ } SWIGINTERN PyObject * SwigPyBuiltin_funpack_ssizeargfunc_closure(SwigPyWrapperFunction wrapper, PyObject *a, Py_ssize_t b) { PyObject *tuple, *result; tuple = PyTuple_New(1); assert(tuple); PyTuple_SET_ITEM(tuple, 0, _PyLong_FromSsize_t(b)); result = wrapper(a, tuple); Py_DECREF(tuple); return result; } #define SWIGPY_FUNPACK_SSIZEARGFUNC_CLOSURE(wrapper) \ SWIGINTERN PyObject * \ wrapper##_ssizeargfunc_closure(PyObject *a, Py_ssize_t b) { \ return SwigPyBuiltin_ssizeargfunc_closure(wrapper, a, b); \ } SWIGINTERN PyObject * SwigPyBuiltin_ssizeargfunc_closure(SwigPyWrapperFunction wrapper, PyObject *a, Py_ssize_t b) { PyObject *arg, *result; arg = _PyLong_FromSsize_t(b); result = wrapper(a, arg); Py_DECREF(arg); return result; } #define SWIGPY_SSIZEOBJARGPROC_CLOSURE(wrapper) \ SWIGINTERN int \ wrapper##_ssizeobjargproc_closure(PyObject *a, Py_ssize_t b, PyObject *c) { \ return SwigPyBuiltin_ssizeobjargproc_closure(wrapper, a, b, c); \ } SWIGINTERN int SwigPyBuiltin_ssizeobjargproc_closure(SwigPyWrapperFunction wrapper, PyObject *a, Py_ssize_t b, PyObject *c) { PyObject *tuple, *resultobj; int result; tuple = PyTuple_New(2); assert(tuple); PyTuple_SET_ITEM(tuple, 0, _PyLong_FromSsize_t(b)); Py_INCREF(c); PyTuple_SET_ITEM(tuple, 1, c); resultobj = wrapper(a, tuple); result = resultobj ? 0 : -1; Py_XDECREF(resultobj); Py_DECREF(tuple); return result; } #define SWIGPY_OBJOBJPROC_CLOSURE(wrapper) \ SWIGINTERN int \ wrapper##_objobjproc_closure(PyObject *a, PyObject *b) { \ return SwigPyBuiltin_objobjproc_closure(wrapper, a, b); \ } SWIGINTERN int SwigPyBuiltin_objobjproc_closure(SwigPyWrapperFunction wrapper, PyObject *a, PyObject *b) { int result; PyObject *pyresult; PyObject *tuple; tuple = PyTuple_New(1); assert(tuple); Py_INCREF(b); PyTuple_SET_ITEM(tuple, 0, b); pyresult = wrapper(a, tuple); result = pyresult ? (PyObject_IsTrue(pyresult) ? 1 : 0) : -1; Py_XDECREF(pyresult); Py_DECREF(tuple); return result; } #define SWIGPY_FUNPACK_OBJOBJPROC_CLOSURE(wrapper) \ SWIGINTERN int \ wrapper##_objobjproc_closure(PyObject *a, PyObject *b) { \ return SwigPyBuiltin_funpack_objobjproc_closure(wrapper, a, b); \ } SWIGINTERN int SwigPyBuiltin_funpack_objobjproc_closure(SwigPyWrapperFunction wrapper, PyObject *a, PyObject *b) { int result; PyObject *pyresult; pyresult = wrapper(a, b); result = pyresult ? (PyObject_IsTrue(pyresult) ? 1 : 0) : -1; Py_XDECREF(pyresult); return result; } #define SWIGPY_OBJOBJARGPROC_CLOSURE(wrapper) \ SWIGINTERN int \ wrapper##_objobjargproc_closure(PyObject *a, PyObject *b, PyObject *c) { \ return SwigPyBuiltin_objobjargproc_closure(wrapper, a, b, c); \ } SWIGINTERN int SwigPyBuiltin_objobjargproc_closure(SwigPyWrapperFunction wrapper, PyObject *a, PyObject *b, PyObject *c) { PyObject *tuple, *resultobj; int result; tuple = PyTuple_New(c ? 2 : 1); assert(tuple); Py_INCREF(b); PyTuple_SET_ITEM(tuple, 0, b); if (c) { Py_INCREF(c); PyTuple_SET_ITEM(tuple, 1, c); } resultobj = wrapper(a, tuple); result = resultobj ? 0 : -1; Py_XDECREF(resultobj); Py_DECREF(tuple); return result; } #define SWIGPY_REPRFUNC_CLOSURE(wrapper) \ SWIGINTERN PyObject * \ wrapper##_reprfunc_closure(PyObject *a) { \ return SwigPyBuiltin_reprfunc_closure(wrapper, a); \ } SWIGINTERN PyObject * SwigPyBuiltin_reprfunc_closure(SwigPyWrapperFunction wrapper, PyObject *a) { return wrapper(a, NULL); } #define SWIGPY_HASHFUNC_CLOSURE(wrapper) \ SWIGINTERN Py_hash_t \ wrapper##_hashfunc_closure(PyObject *a) { \ return SwigPyBuiltin_hashfunc_closure(wrapper, a); \ } SWIGINTERN Py_hash_t SwigPyBuiltin_hashfunc_closure(SwigPyWrapperFunction wrapper, PyObject *a) { PyObject *pyresult; Py_hash_t result; pyresult = wrapper(a, NULL); if (!pyresult) return -1; result = SWIG_PyNumber_AsPyHash(pyresult); Py_DECREF(pyresult); return result; } #define SWIGPY_ITERNEXTFUNC_CLOSURE(wrapper) \ SWIGINTERN PyObject * \ wrapper##_iternextfunc_closure(PyObject *a) { \ return SwigPyBuiltin_iternextfunc_closure(wrapper, a);\ } SWIGINTERN PyObject * SwigPyBuiltin_iternextfunc_closure(SwigPyWrapperFunction wrapper, PyObject *a) { return wrapper(a, NULL); } /* End of callback function macros for use in PyTypeObject */ #ifdef __cplusplus } #endif #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else #ifdef __cplusplus extern "C" { #endif /* Method creation and docstring support functions */ SWIGINTERN PyMethodDef *SWIG_PythonGetProxyDoc(const char *name); SWIGINTERN PyObject *SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func); SWIGINTERN PyObject *SWIG_PyStaticMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func); #ifdef __cplusplus } #endif #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0) /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_Prelude__Client swig_types[0] #define SWIGTYPE_p_Prelude__ClientEasy swig_types[1] #define SWIGTYPE_p_Prelude__ClientProfile swig_types[2] #define SWIGTYPE_p_Prelude__Connection swig_types[3] #define SWIGTYPE_p_Prelude__ConnectionPool swig_types[4] #define SWIGTYPE_p_Prelude__IDMEF swig_types[5] #define SWIGTYPE_p_Prelude__IDMEFClass swig_types[6] #define SWIGTYPE_p_Prelude__IDMEFCriteria swig_types[7] #define SWIGTYPE_p_Prelude__IDMEFCriterion swig_types[8] #define SWIGTYPE_p_Prelude__IDMEFPath swig_types[9] #define SWIGTYPE_p_Prelude__IDMEFTime swig_types[10] #define SWIGTYPE_p_Prelude__IDMEFValue swig_types[11] #define SWIGTYPE_p_Prelude__PreludeError swig_types[12] #define SWIGTYPE_p_Prelude__PreludeLog swig_types[13] #define SWIGTYPE_p_SwigPyObject swig_types[14] #define SWIGTYPE_p_allocator_type swig_types[15] #define SWIGTYPE_p_char swig_types[16] #define SWIGTYPE_p_difference_type swig_types[17] #define SWIGTYPE_p_f_int_p_q_const__char__void swig_types[18] #define SWIGTYPE_p_idmef_criteria_t swig_types[19] #define SWIGTYPE_p_idmef_criterion_operator_t swig_types[20] #define SWIGTYPE_p_idmef_object_t swig_types[21] #define SWIGTYPE_p_idmef_path_t swig_types[22] #define SWIGTYPE_p_idmef_time_t swig_types[23] #define SWIGTYPE_p_idmef_value_t swig_types[24] #define SWIGTYPE_p_int swig_types[25] #define SWIGTYPE_p_key_type swig_types[26] #define SWIGTYPE_p_long_long swig_types[27] #define SWIGTYPE_p_mapped_type swig_types[28] #define SWIGTYPE_p_prelude_client_profile_t swig_types[29] #define SWIGTYPE_p_prelude_client_t swig_types[30] #define SWIGTYPE_p_prelude_connection_pool_t swig_types[31] #define SWIGTYPE_p_prelude_connection_t swig_types[32] #define SWIGTYPE_p_short swig_types[33] #define SWIGTYPE_p_size_type swig_types[34] #define SWIGTYPE_p_std__exception swig_types[35] #define SWIGTYPE_p_std__invalid_argument swig_types[36] #define SWIGTYPE_p_swig__SwigPyIterator swig_types[37] #define SWIGTYPE_p_timeval swig_types[38] #define SWIGTYPE_p_unsigned_char swig_types[39] #define SWIGTYPE_p_unsigned_int swig_types[40] #define SWIGTYPE_p_unsigned_long_long swig_types[41] #define SWIGTYPE_p_unsigned_short swig_types[42] #define SWIGTYPE_p_value_type swig_types[43] #define SWIGTYPE_p_void swig_types[44] static swig_type_info *swig_types[46]; static swig_module_info swig_module = {swig_types, 45, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) /* -------- TYPES TABLE (END) -------- */ #ifdef SWIG_TypeQuery # undef SWIG_TypeQuery #endif #define SWIG_TypeQuery SWIG_Python_TypeQuery /*----------------------------------------------- @(target):= _prelude.so ------------------------------------------------*/ #if PY_VERSION_HEX >= 0x03000000 # define SWIG_init PyInit__prelude #else # define SWIG_init init_prelude #endif #define SWIG_name "_prelude" #define SWIGVERSION 0x040001 #define SWIG_VERSION SWIGVERSION #define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a)) #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a)) #include namespace swig { class SwigPtr_PyObject { protected: PyObject *_obj; public: SwigPtr_PyObject() :_obj(0) { } SwigPtr_PyObject(const SwigPtr_PyObject& item) : _obj(item._obj) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; Py_XINCREF(_obj); SWIG_PYTHON_THREAD_END_BLOCK; } SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj) { if (initial_ref) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; Py_XINCREF(_obj); SWIG_PYTHON_THREAD_END_BLOCK; } } SwigPtr_PyObject & operator=(const SwigPtr_PyObject& item) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; Py_XINCREF(item._obj); Py_XDECREF(_obj); _obj = item._obj; SWIG_PYTHON_THREAD_END_BLOCK; return *this; } ~SwigPtr_PyObject() { SWIG_PYTHON_THREAD_BEGIN_BLOCK; Py_XDECREF(_obj); SWIG_PYTHON_THREAD_END_BLOCK; } operator PyObject *() const { return _obj; } PyObject *operator->() const { return _obj; } }; } namespace swig { struct SwigVar_PyObject : SwigPtr_PyObject { SwigVar_PyObject(PyObject* obj = 0) : SwigPtr_PyObject(obj, false) { } SwigVar_PyObject & operator = (PyObject* obj) { Py_XDECREF(_obj); _obj = obj; return *this; } }; } #include #include #include #if PY_VERSION_HEX >= 0x03020000 # define SWIGPY_SLICE_ARG(obj) ((PyObject*) (obj)) #else # define SWIGPY_SLICE_ARG(obj) ((PySliceObject*) (obj)) #endif #include #include #if defined(__GNUC__) # if __GNUC__ == 2 && __GNUC_MINOR <= 96 # define SWIG_STD_NOMODERN_STL # endif #endif namespace swig { struct stop_iteration { }; struct SwigPyIterator { private: SwigPtr_PyObject _seq; protected: SwigPyIterator(PyObject *seq) : _seq(seq) { } public: virtual ~SwigPyIterator() {} // Access iterator method, required by Python virtual PyObject *value() const = 0; // Forward iterator method, required by Python virtual SwigPyIterator *incr(size_t n = 1) = 0; // Backward iterator method, very common in C++, but not required in Python virtual SwigPyIterator *decr(size_t /*n*/ = 1) { throw stop_iteration(); } // Random access iterator methods, but not required in Python virtual ptrdiff_t distance(const SwigPyIterator &/*x*/) const { throw std::invalid_argument("operation not supported"); } virtual bool equal (const SwigPyIterator &/*x*/) const { throw std::invalid_argument("operation not supported"); } // C++ common/needed methods virtual SwigPyIterator *copy() const = 0; PyObject *next() { SWIG_PYTHON_THREAD_BEGIN_BLOCK; // disable threads PyObject *obj = value(); incr(); SWIG_PYTHON_THREAD_END_BLOCK; // re-enable threads return obj; } /* Make an alias for Python 3.x */ PyObject *__next__() { return next(); } PyObject *previous() { SWIG_PYTHON_THREAD_BEGIN_BLOCK; // disable threads decr(); PyObject *obj = value(); SWIG_PYTHON_THREAD_END_BLOCK; // re-enable threads return obj; } SwigPyIterator *advance(ptrdiff_t n) { return (n > 0) ? incr(n) : decr(-n); } bool operator == (const SwigPyIterator& x) const { return equal(x); } bool operator != (const SwigPyIterator& x) const { return ! operator==(x); } SwigPyIterator& operator += (ptrdiff_t n) { return *advance(n); } SwigPyIterator& operator -= (ptrdiff_t n) { return *advance(-n); } SwigPyIterator* operator + (ptrdiff_t n) const { return copy()->advance(n); } SwigPyIterator* operator - (ptrdiff_t n) const { return copy()->advance(-n); } ptrdiff_t operator - (const SwigPyIterator& x) const { return x.distance(*this); } static swig_type_info* descriptor() { static int init = 0; static swig_type_info* desc = 0; if (!init) { desc = SWIG_TypeQuery("swig::SwigPyIterator *"); init = 1; } return desc; } }; #if defined(SWIGPYTHON_BUILTIN) inline PyObject* make_output_iterator_builtin (PyObject *pyself) { Py_INCREF(pyself); return pyself; } #endif } SWIGINTERN int SWIG_AsVal_double (PyObject *obj, double *val) { int res = SWIG_TypeError; if (PyFloat_Check(obj)) { if (val) *val = PyFloat_AsDouble(obj); return SWIG_OK; #if PY_VERSION_HEX < 0x03000000 } else if (PyInt_Check(obj)) { if (val) *val = (double) PyInt_AsLong(obj); return SWIG_OK; #endif } else if (PyLong_Check(obj)) { double v = PyLong_AsDouble(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; double d = PyFloat_AsDouble(obj); if (!PyErr_Occurred()) { if (val) *val = d; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_AddCast(SWIG_OK)); } else { PyErr_Clear(); } } } #endif return res; } #include #include SWIGINTERNINLINE int SWIG_CanCastAsInteger(double *d, double min, double max) { double x = *d; if ((min <= x && x <= max)) { double fx = floor(x); double cx = ceil(x); double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */ if ((errno == EDOM) || (errno == ERANGE)) { errno = 0; } else { double summ, reps, diff; if (rd < x) { diff = x - rd; } else if (rd > x) { diff = rd - x; } else { return 1; } summ = rd + x; reps = diff/summ; if (reps < 8*DBL_EPSILON) { *d = rd; return 1; } } } return 0; } SWIGINTERN int SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) { #if PY_VERSION_HEX < 0x03000000 if (PyInt_Check(obj)) { long v = PyInt_AsLong(obj); if (v >= 0) { if (val) *val = v; return SWIG_OK; } else { return SWIG_OverflowError; } } else #endif if (PyLong_Check(obj)) { unsigned long v = PyLong_AsUnsignedLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); return SWIG_OverflowError; } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; unsigned long v = PyLong_AsUnsignedLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { double d; int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) { if (val) *val = (unsigned long)(d); return res; } } } #endif return SWIG_TypeError; } #include #if !defined(SWIG_NO_LLONG_MAX) # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) # define LLONG_MAX __LONG_LONG_MAX__ # define LLONG_MIN (-LLONG_MAX - 1LL) # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) # endif #endif #if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE) # define SWIG_LONG_LONG_AVAILABLE #endif #ifdef SWIG_LONG_LONG_AVAILABLE SWIGINTERN int SWIG_AsVal_unsigned_SS_long_SS_long (PyObject *obj, unsigned long long *val) { int res = SWIG_TypeError; if (PyLong_Check(obj)) { unsigned long long v = PyLong_AsUnsignedLongLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); res = SWIG_OverflowError; } } else { unsigned long v; res = SWIG_AsVal_unsigned_SS_long (obj,&v); if (SWIG_IsOK(res)) { if (val) *val = v; return res; } } #ifdef SWIG_PYTHON_CAST_MODE { const double mant_max = 1LL << DBL_MANT_DIG; double d; res = SWIG_AsVal_double (obj,&d); if (SWIG_IsOK(res) && !SWIG_CanCastAsInteger(&d, 0, mant_max)) return SWIG_OverflowError; if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) { if (val) *val = (unsigned long long)(d); return SWIG_AddCast(res); } res = SWIG_TypeError; } #endif return res; } #endif SWIGINTERNINLINE int SWIG_AsVal_size_t (PyObject * obj, size_t *val) { int res = SWIG_TypeError; #ifdef SWIG_LONG_LONG_AVAILABLE if (sizeof(size_t) <= sizeof(unsigned long)) { #endif unsigned long v; res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v); #ifdef SWIG_LONG_LONG_AVAILABLE } else if (sizeof(size_t) <= sizeof(unsigned long long)) { unsigned long long v; res = SWIG_AsVal_unsigned_SS_long_SS_long (obj, val ? &v : 0); if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v); } #endif return res; } #define SWIG_From_long PyInt_FromLong #ifdef SWIG_LONG_LONG_AVAILABLE SWIGINTERNINLINE PyObject* SWIG_From_long_SS_long (long long value) { return ((value < LONG_MIN) || (value > LONG_MAX)) ? PyLong_FromLongLong(value) : PyInt_FromLong(static_cast< long >(value)); } #endif SWIGINTERNINLINE PyObject * SWIG_From_ptrdiff_t (ptrdiff_t value) { #ifdef SWIG_LONG_LONG_AVAILABLE if (sizeof(ptrdiff_t) <= sizeof(long)) { #endif return SWIG_From_long (static_cast< long >(value)); #ifdef SWIG_LONG_LONG_AVAILABLE } else { /* assume sizeof(ptrdiff_t) <= sizeof(long long) */ return SWIG_From_long_SS_long (static_cast< long long >(value)); } #endif } SWIGINTERNINLINE PyObject* SWIG_From_bool (bool value) { return PyBool_FromLong(value ? 1 : 0); } SWIGINTERN int SWIG_AsVal_long (PyObject *obj, long* val) { #if PY_VERSION_HEX < 0x03000000 if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; } else #endif if (PyLong_Check(obj)) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); return SWIG_OverflowError; } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; long v = PyInt_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { double d; int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) { if (val) *val = (long)(d); return res; } } } #endif return SWIG_TypeError; } #ifdef SWIG_LONG_LONG_AVAILABLE SWIGINTERN int SWIG_AsVal_long_SS_long (PyObject *obj, long long *val) { int res = SWIG_TypeError; if (PyLong_Check(obj)) { long long v = PyLong_AsLongLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); res = SWIG_OverflowError; } } else { long v; res = SWIG_AsVal_long (obj,&v); if (SWIG_IsOK(res)) { if (val) *val = v; return res; } } #ifdef SWIG_PYTHON_CAST_MODE { const double mant_max = 1LL << DBL_MANT_DIG; const double mant_min = -mant_max; double d; res = SWIG_AsVal_double (obj,&d); if (SWIG_IsOK(res) && !SWIG_CanCastAsInteger(&d, mant_min, mant_max)) return SWIG_OverflowError; if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, mant_min, mant_max)) { if (val) *val = (long long)(d); return SWIG_AddCast(res); } res = SWIG_TypeError; } #endif return res; } #endif SWIGINTERNINLINE int SWIG_AsVal_ptrdiff_t (PyObject * obj, ptrdiff_t *val) { int res = SWIG_TypeError; #ifdef SWIG_LONG_LONG_AVAILABLE if (sizeof(ptrdiff_t) <= sizeof(long)) { #endif long v; res = SWIG_AsVal_long (obj, val ? &v : 0); if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v); #ifdef SWIG_LONG_LONG_AVAILABLE } else if (sizeof(ptrdiff_t) <= sizeof(long long)) { long long v; res = SWIG_AsVal_long_SS_long (obj, val ? &v : 0); if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v); } #endif return res; } #include #include #include #include #include #pragma GCC diagnostic ignored "-Wunused-variable" #include #include #include "prelude.hxx" #include "prelude-log.hxx" #include "prelude-error.hxx" #include "prelude-connection.hxx" #include "prelude-connection-pool.hxx" #include "prelude-client-profile.hxx" #include "prelude-client.hxx" #include "prelude-client-easy.hxx" #include "idmef-criteria.hxx" #include "idmef-value.hxx" #include "idmef-path.hxx" #include "idmef-time.hxx" #include "idmef.hxx" using namespace Prelude; #include PyObject *__prelude_log_func = NULL; static void _cb_python_log(int level, const char *str) { PyObject *arglist, *result; SWIG_PYTHON_THREAD_BEGIN_BLOCK; arglist = Py_BuildValue("(i,s)", level, str); result = PyEval_CallObject(__prelude_log_func, arglist); Py_DECREF(arglist); Py_XDECREF(result); SWIG_PYTHON_THREAD_END_BLOCK; } static int _cb_python_write(prelude_msgbuf_t *fd, prelude_msg_t *msg) { #if PY_VERSION_HEX < 0x03000000 size_t ret; PyObject *io = (PyObject *) prelude_msgbuf_get_data(fd); FILE *f = PyFile_AsFile(io); ret = fwrite((const char *)prelude_msg_get_message_data(msg), 1, prelude_msg_get_len(msg), f); #else ssize_t ret; int ffd = PyObject_AsFileDescriptor((PyObject *) prelude_msgbuf_get_data(fd)); do { ret = write(ffd, (const char *)prelude_msg_get_message_data(msg), prelude_msg_get_len(msg)); } while ( ret < 0 && errno == EINTR ); #endif if ( ret != prelude_msg_get_len(msg) ) return prelude_error_from_errno(errno); prelude_msg_recycle(msg); return 0; } static ssize_t _cb_python_read(prelude_io_t *fd, void *buf, size_t size) { #if PY_VERSION_HEX < 0x03000000 ssize_t ret; PyObject *io = (PyObject *) prelude_io_get_fdptr(fd); FILE *f = PyFile_AsFile(io); ret = fread(buf, 1, size, f); if ( ret < 0 ) ret = prelude_error_from_errno(errno); else if ( ret == 0 ) ret = prelude_error(PRELUDE_ERROR_EOF); #else ssize_t ret; int ffd = PyObject_AsFileDescriptor((PyObject *) prelude_io_get_fdptr(fd)); ret = read(ffd, buf, size); if ( ret < 0 ) ret = prelude_error_from_errno(errno); else if ( ret == 0 ) ret = prelude_error(PRELUDE_ERROR_EOF); #endif return ret; } void python2_return_unicode(int enabled) { _PYTHON2_RETURN_UNICODE = enabled; } SWIGINTERN int SWIG_AsVal_int (PyObject * obj, int *val) { long v; int res = SWIG_AsVal_long (obj, &v); if (SWIG_IsOK(res)) { if ((v < INT_MIN || v > INT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< int >(v); } } return res; } typedef PyObject SwigPyObjectState; static int _getstate_msgbuf_cb(prelude_msgbuf_t *mbuf, prelude_msg_t *msg) { prelude_io_t *io = (prelude_io_t *) prelude_msgbuf_get_data(mbuf); return prelude_io_write(io, prelude_msg_get_message_data(msg), prelude_msg_get_len(msg)); } static ssize_t _setstate_read_cb(prelude_io_t *io, void *buf, size_t size) { FILE *fd = (FILE *) prelude_io_get_fdptr(io); return fread(buf, 1, size, fd); } extern "C" { SWIGINTERN PyObject *_wrap_IDMEF___contains__(PyObject *self, PyObject *args); } #define MYPY_OBJOBJPROC_CLOSURE(wrapper) \ SWIGINTERN int \ wrapper##_closure(PyObject *a, PyObject *b) { \ PyObject *pyresult; \ int result; \ pyresult = wrapper(a, b); \ result = pyresult && PyObject_IsTrue(pyresult) ? 1 : 0; \ Py_XDECREF(pyresult); \ return result; \ } MYPY_OBJOBJPROC_CLOSURE(_wrap_IDMEF___contains__) namespace swig { template struct noconst_traits { typedef Type noconst_type; }; template struct noconst_traits { typedef Type noconst_type; }; /* type categories */ struct pointer_category { }; struct value_category { }; /* General traits that provides type_name and type_info */ template struct traits { }; template inline const char* type_name() { return traits::noconst_type >::type_name(); } template struct traits_info { static swig_type_info *type_query(std::string name) { name += " *"; return SWIG_TypeQuery(name.c_str()); } static swig_type_info *type_info() { static swig_type_info *info = type_query(type_name()); return info; } }; /* Partial specialization for pointers (traits_info) */ template struct traits_info { static swig_type_info *type_query(std::string name) { name += " *"; return SWIG_TypeQuery(name.c_str()); } static swig_type_info *type_info() { static swig_type_info *info = type_query(type_name()); return info; } }; template inline swig_type_info *type_info() { return traits_info::type_info(); } /* Partial specialization for pointers (traits) */ template struct traits { typedef pointer_category category; static std::string make_ptr_name(const char* name) { std::string ptrname = name; ptrname += " *"; return ptrname; } static const char* type_name() { static std::string name = make_ptr_name(swig::type_name()); return name.c_str(); } }; template struct traits_as { }; template struct traits_check { }; } namespace swig { /* Traits that provides the from method */ template struct traits_from_ptr { static PyObject *from(Type *val, int owner = 0) { return SWIG_InternalNewPointerObj(val, type_info(), owner); } }; template struct traits_from { static PyObject *from(const Type& val) { return traits_from_ptr::from(new Type(val), 1); } }; template struct traits_from { static PyObject *from(Type* val) { return traits_from_ptr::from(val, 0); } }; template struct traits_from { static PyObject *from(const Type* val) { return traits_from_ptr::from(const_cast(val), 0); } }; template inline PyObject *from(const Type& val) { return traits_from::from(val); } template inline PyObject *from_ptr(Type* val, int owner) { return traits_from_ptr::from(val, owner); } /* Traits that provides the asval/as/check method */ template struct traits_asptr { static int asptr(PyObject *obj, Type **val) { Type *p = 0; swig_type_info *descriptor = type_info(); int res = descriptor ? SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0) : SWIG_ERROR; if (SWIG_IsOK(res)) { if (val) *val = p; } return res; } }; template inline int asptr(PyObject *obj, Type **vptr) { return traits_asptr::asptr(obj, vptr); } template struct traits_asval { static int asval(PyObject *obj, Type *val) { if (val) { Type *p = 0; int res = traits_asptr::asptr(obj, &p); if (!SWIG_IsOK(res)) return res; if (p) { typedef typename noconst_traits::noconst_type noconst_type; *(const_cast(val)) = *p; if (SWIG_IsNewObj(res)){ delete p; res = SWIG_DelNewMask(res); } return res; } else { return SWIG_ERROR; } } else { return traits_asptr::asptr(obj, (Type **)(0)); } } }; template struct traits_asval { static int asval(PyObject *obj, Type **val) { if (val) { typedef typename noconst_traits::noconst_type noconst_type; noconst_type *p = 0; int res = traits_asptr::asptr(obj, &p); if (SWIG_IsOK(res)) { *(const_cast(val)) = p; } return res; } else { return traits_asptr::asptr(obj, (Type **)(0)); } } }; template inline int asval(PyObject *obj, Type *val) { return traits_asval::asval(obj, val); } template struct traits_as { static Type as(PyObject *obj) { Type v; int res = asval(obj, &v); if (!obj || !SWIG_IsOK(res)) { if (!PyErr_Occurred()) { ::SWIG_Error(SWIG_TypeError, swig::type_name()); } throw std::invalid_argument("bad type"); } return v; } }; template struct traits_as { static Type as(PyObject *obj) { Type *v = 0; int res = (obj ? traits_asptr::asptr(obj, &v) : SWIG_ERROR); if (SWIG_IsOK(res) && v) { if (SWIG_IsNewObj(res)) { Type r(*v); delete v; return r; } else { return *v; } } else { if (!PyErr_Occurred()) { SWIG_Error(SWIG_TypeError, swig::type_name()); } throw std::invalid_argument("bad type"); } } }; template struct traits_as { static Type* as(PyObject *obj) { Type *v = 0; int res = (obj ? traits_asptr::asptr(obj, &v) : SWIG_ERROR); if (SWIG_IsOK(res)) { return v; } else { if (!PyErr_Occurred()) { SWIG_Error(SWIG_TypeError, swig::type_name()); } throw std::invalid_argument("bad type"); } } }; template inline Type as(PyObject *obj) { return traits_as::category>::as(obj); } template struct traits_check { static bool check(PyObject *obj) { int res = obj ? asval(obj, (Type *)(0)) : SWIG_ERROR; return SWIG_IsOK(res) ? true : false; } }; template struct traits_check { static bool check(PyObject *obj) { int res = obj ? asptr(obj, (Type **)(0)) : SWIG_ERROR; return SWIG_IsOK(res) ? true : false; } }; template inline bool check(PyObject *obj) { return traits_check::category>::check(obj); } } #include namespace std { template <> struct less { bool operator()(PyObject * v, PyObject *w) const { bool res; SWIG_PYTHON_THREAD_BEGIN_BLOCK; res = PyObject_RichCompareBool(v, w, Py_LT) ? true : false; /* This may fall into a case of inconsistent eg. ObjA > ObjX > ObjB but ObjA < ObjB */ if( PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_TypeError) ) { /* Objects can't be compared, this mostly occurred in Python 3.0 */ /* Compare their ptr directly for a workaround */ res = (v < w); PyErr_Clear(); } SWIG_PYTHON_THREAD_END_BLOCK; return res; } }; template <> struct less { bool operator()(const swig::SwigPtr_PyObject& v, const swig::SwigPtr_PyObject& w) const { return std::less()(v, w); } }; template <> struct less { bool operator()(const swig::SwigVar_PyObject& v, const swig::SwigVar_PyObject& w) const { return std::less()(v, w); } }; } namespace swig { template <> struct traits { typedef value_category category; static const char* type_name() { return "PyObject *"; } }; template <> struct traits_asval { typedef PyObject * value_type; static int asval(PyObject *obj, value_type *val) { if (val) *val = obj; return SWIG_OK; } }; template <> struct traits_check { static bool check(PyObject *) { return true; } }; template <> struct traits_from { typedef PyObject * value_type; static PyObject *from(const value_type& val) { Py_XINCREF(val); return val; } }; } namespace swig { template inline size_t check_index(Difference i, size_t size, bool insert = false) { if ( i < 0 ) { if ((size_t) (-i) <= size) return (size_t) (i + size); } else if ( (size_t) i < size ) { return (size_t) i; } else if (insert && ((size_t) i == size)) { return size; } throw std::out_of_range("index out of range"); } template void slice_adjust(Difference i, Difference j, Py_ssize_t step, size_t size, Difference &ii, Difference &jj, bool insert = false) { if (step == 0) { throw std::invalid_argument("slice step cannot be zero"); } else if (step > 0) { // Required range: 0 <= i < size, 0 <= j < size, i <= j if (i < 0) { ii = 0; } else if (i < (Difference)size) { ii = i; } else if (insert && (i >= (Difference)size)) { ii = (Difference)size; } if (j < 0) { jj = 0; } else { jj = (j < (Difference)size) ? j : (Difference)size; } if (jj < ii) jj = ii; } else { // Required range: -1 <= i < size-1, -1 <= j < size-1, i >= j if (i < -1) { ii = -1; } else if (i < (Difference) size) { ii = i; } else if (i >= (Difference)(size-1)) { ii = (Difference)(size-1); } if (j < -1) { jj = -1; } else { jj = (j < (Difference)size ) ? j : (Difference)(size-1); } if (ii < jj) ii = jj; } } template inline typename Sequence::iterator getpos(Sequence* self, Difference i) { typename Sequence::iterator pos = self->begin(); std::advance(pos, check_index(i,self->size())); return pos; } template inline typename Sequence::const_iterator cgetpos(const Sequence* self, Difference i) { typename Sequence::const_iterator pos = self->begin(); std::advance(pos, check_index(i,self->size())); return pos; } template inline void erase(Sequence* seq, const typename Sequence::iterator& position) { seq->erase(position); } template struct traits_reserve { static void reserve(Sequence & /*seq*/, typename Sequence::size_type /*n*/) { // This should be specialized for types that support reserve } }; template inline Sequence* getslice(const Sequence* self, Difference i, Difference j, Py_ssize_t step) { typename Sequence::size_type size = self->size(); Difference ii = 0; Difference jj = 0; swig::slice_adjust(i, j, step, size, ii, jj); if (step > 0) { typename Sequence::const_iterator sb = self->begin(); typename Sequence::const_iterator se = self->begin(); std::advance(sb,ii); std::advance(se,jj); if (step == 1) { return new Sequence(sb, se); } else { Sequence *sequence = new Sequence(); swig::traits_reserve::reserve(*sequence, (jj - ii + step - 1) / step); typename Sequence::const_iterator it = sb; while (it!=se) { sequence->push_back(*it); for (Py_ssize_t c=0; c::reserve(*sequence, (ii - jj - step - 1) / -step); typename Sequence::const_reverse_iterator sb = self->rbegin(); typename Sequence::const_reverse_iterator se = self->rbegin(); std::advance(sb,size-ii-1); std::advance(se,size-jj-1); typename Sequence::const_reverse_iterator it = sb; while (it!=se) { sequence->push_back(*it); for (Py_ssize_t c=0; c<-step && it!=se; ++c) it++; } return sequence; } } template inline void setslice(Sequence* self, Difference i, Difference j, Py_ssize_t step, const InputSeq& is = InputSeq()) { typename Sequence::size_type size = self->size(); Difference ii = 0; Difference jj = 0; swig::slice_adjust(i, j, step, size, ii, jj, true); if (step > 0) { if (step == 1) { size_t ssize = jj - ii; if (ssize <= is.size()) { // expanding/staying the same size swig::traits_reserve::reserve(*self, self->size() - ssize + is.size()); typename Sequence::iterator sb = self->begin(); typename InputSeq::const_iterator isit = is.begin(); std::advance(sb,ii); std::advance(isit, jj - ii); self->insert(std::copy(is.begin(), isit, sb), isit, is.end()); } else { // shrinking typename Sequence::iterator sb = self->begin(); typename Sequence::iterator se = self->begin(); std::advance(sb,ii); std::advance(se,jj); self->erase(sb,se); sb = self->begin(); std::advance(sb,ii); self->insert(sb, is.begin(), is.end()); } } else { size_t replacecount = (jj - ii + step - 1) / step; if (is.size() != replacecount) { char msg[1024]; sprintf(msg, "attempt to assign sequence of size %lu to extended slice of size %lu", (unsigned long)is.size(), (unsigned long)replacecount); throw std::invalid_argument(msg); } typename Sequence::const_iterator isit = is.begin(); typename Sequence::iterator it = self->begin(); std::advance(it,ii); for (size_t rc=0; rcend(); ++rc) { *it++ = *isit++; for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c) it++; } } } else { size_t replacecount = (ii - jj - step - 1) / -step; if (is.size() != replacecount) { char msg[1024]; sprintf(msg, "attempt to assign sequence of size %lu to extended slice of size %lu", (unsigned long)is.size(), (unsigned long)replacecount); throw std::invalid_argument(msg); } typename Sequence::const_iterator isit = is.begin(); typename Sequence::reverse_iterator it = self->rbegin(); std::advance(it,size-ii-1); for (size_t rc=0; rcrend(); ++rc) { *it++ = *isit++; for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c) it++; } } } template inline void delslice(Sequence* self, Difference i, Difference j, Py_ssize_t step) { typename Sequence::size_type size = self->size(); Difference ii = 0; Difference jj = 0; swig::slice_adjust(i, j, step, size, ii, jj, true); if (step > 0) { typename Sequence::iterator sb = self->begin(); std::advance(sb,ii); if (step == 1) { typename Sequence::iterator se = self->begin(); std::advance(se,jj); self->erase(sb,se); } else { typename Sequence::iterator it = sb; size_t delcount = (jj - ii + step - 1) / step; while (delcount) { it = self->erase(it); for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c) it++; delcount--; } } } else { typename Sequence::reverse_iterator sb = self->rbegin(); std::advance(sb,size-ii-1); typename Sequence::reverse_iterator it = sb; size_t delcount = (ii - jj - step - 1) / -step; while (delcount) { it = typename Sequence::reverse_iterator(self->erase((++it).base())); for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c) it++; delcount--; } } } } #if defined(__SUNPRO_CC) && defined(_RWSTD_VER) # if !defined(SWIG_NO_STD_NOITERATOR_TRAITS_STL) # define SWIG_STD_NOITERATOR_TRAITS_STL # endif #endif #if !defined(SWIG_STD_NOITERATOR_TRAITS_STL) #include #else namespace std { template struct iterator_traits { typedef ptrdiff_t difference_type; typedef typename Iterator::value_type value_type; }; template struct iterator_traits<__reverse_bi_iterator > { typedef Distance difference_type; typedef T value_type; }; template struct iterator_traits { typedef T value_type; typedef ptrdiff_t difference_type; }; template inline typename iterator_traits<_InputIterator>::difference_type distance(_InputIterator __first, _InputIterator __last) { typename iterator_traits<_InputIterator>::difference_type __n = 0; while (__first != __last) { ++__first; ++__n; } return __n; } } #endif namespace swig { template class SwigPyIterator_T : public SwigPyIterator { public: typedef OutIterator out_iterator; typedef typename std::iterator_traits::value_type value_type; typedef SwigPyIterator_T self_type; SwigPyIterator_T(out_iterator curr, PyObject *seq) : SwigPyIterator(seq), current(curr) { } const out_iterator& get_current() const { return current; } bool equal (const SwigPyIterator &iter) const { const self_type *iters = dynamic_cast(&iter); if (iters) { return (current == iters->get_current()); } else { throw std::invalid_argument("bad iterator type"); } } ptrdiff_t distance(const SwigPyIterator &iter) const { const self_type *iters = dynamic_cast(&iter); if (iters) { return std::distance(current, iters->get_current()); } else { throw std::invalid_argument("bad iterator type"); } } protected: out_iterator current; }; template struct from_oper { typedef const ValueType& argument_type; typedef PyObject *result_type; result_type operator()(argument_type v) const { return swig::from(v); } }; template::value_type, typename FromOper = from_oper > class SwigPyForwardIteratorOpen_T : public SwigPyIterator_T { public: FromOper from; typedef OutIterator out_iterator; typedef ValueType value_type; typedef SwigPyIterator_T base; typedef SwigPyForwardIteratorOpen_T self_type; SwigPyForwardIteratorOpen_T(out_iterator curr, PyObject *seq) : SwigPyIterator_T(curr, seq) { } PyObject *value() const { return from(static_cast(*(base::current))); } SwigPyIterator *copy() const { return new self_type(*this); } SwigPyIterator *incr(size_t n = 1) { while (n--) { ++base::current; } return this; } }; template::value_type, typename FromOper = from_oper > class SwigPyIteratorOpen_T : public SwigPyForwardIteratorOpen_T { public: FromOper from; typedef OutIterator out_iterator; typedef ValueType value_type; typedef SwigPyIterator_T base; typedef SwigPyIteratorOpen_T self_type; SwigPyIteratorOpen_T(out_iterator curr, PyObject *seq) : SwigPyForwardIteratorOpen_T(curr, seq) { } SwigPyIterator *decr(size_t n = 1) { while (n--) { --base::current; } return this; } }; template::value_type, typename FromOper = from_oper > class SwigPyForwardIteratorClosed_T : public SwigPyIterator_T { public: FromOper from; typedef OutIterator out_iterator; typedef ValueType value_type; typedef SwigPyIterator_T base; typedef SwigPyForwardIteratorClosed_T self_type; SwigPyForwardIteratorClosed_T(out_iterator curr, out_iterator first, out_iterator last, PyObject *seq) : SwigPyIterator_T(curr, seq), begin(first), end(last) { } PyObject *value() const { if (base::current == end) { throw stop_iteration(); } else { return from(static_cast(*(base::current))); } } SwigPyIterator *copy() const { return new self_type(*this); } SwigPyIterator *incr(size_t n = 1) { while (n--) { if (base::current == end) { throw stop_iteration(); } else { ++base::current; } } return this; } protected: out_iterator begin; out_iterator end; }; template::value_type, typename FromOper = from_oper > class SwigPyIteratorClosed_T : public SwigPyForwardIteratorClosed_T { public: FromOper from; typedef OutIterator out_iterator; typedef ValueType value_type; typedef SwigPyIterator_T base; typedef SwigPyForwardIteratorClosed_T base0; typedef SwigPyIteratorClosed_T self_type; SwigPyIteratorClosed_T(out_iterator curr, out_iterator first, out_iterator last, PyObject *seq) : SwigPyForwardIteratorClosed_T(curr, first, last, seq) { } SwigPyIterator *decr(size_t n = 1) { while (n--) { if (base::current == base0::begin) { throw stop_iteration(); } else { --base::current; } } return this; } }; template inline SwigPyIterator* make_output_forward_iterator(const OutIter& current, const OutIter& begin,const OutIter& end, PyObject *seq = 0) { return new SwigPyForwardIteratorClosed_T(current, begin, end, seq); } template inline SwigPyIterator* make_output_iterator(const OutIter& current, const OutIter& begin,const OutIter& end, PyObject *seq = 0) { return new SwigPyIteratorClosed_T(current, begin, end, seq); } template inline SwigPyIterator* make_output_forward_iterator(const OutIter& current, PyObject *seq = 0) { return new SwigPyForwardIteratorOpen_T(current, seq); } template inline SwigPyIterator* make_output_iterator(const OutIter& current, PyObject *seq = 0) { return new SwigPyIteratorOpen_T(current, seq); } } namespace swig { template struct SwigPySequence_Ref { SwigPySequence_Ref(PyObject* seq, Py_ssize_t index) : _seq(seq), _index(index) { } operator T () const { swig::SwigVar_PyObject item = PySequence_GetItem(_seq, _index); try { return swig::as(item); } catch (const std::invalid_argument& e) { char msg[1024]; sprintf(msg, "in sequence element %d ", (int)_index); if (!PyErr_Occurred()) { ::SWIG_Error(SWIG_TypeError, swig::type_name()); } SWIG_Python_AddErrorMsg(msg); SWIG_Python_AddErrorMsg(e.what()); throw; } } SwigPySequence_Ref& operator=(const T& v) { PySequence_SetItem(_seq, _index, swig::from(v)); return *this; } private: PyObject* _seq; Py_ssize_t _index; }; template struct SwigPySequence_ArrowProxy { SwigPySequence_ArrowProxy(const T& x): m_value(x) {} const T* operator->() const { return &m_value; } operator const T*() const { return &m_value; } T m_value; }; template struct SwigPySequence_InputIterator { typedef SwigPySequence_InputIterator self; typedef std::random_access_iterator_tag iterator_category; typedef Reference reference; typedef T value_type; typedef T* pointer; typedef Py_ssize_t difference_type; SwigPySequence_InputIterator() { } SwigPySequence_InputIterator(PyObject* seq, Py_ssize_t index) : _seq(seq), _index(index) { } reference operator*() const { return reference(_seq, _index); } SwigPySequence_ArrowProxy operator->() const { return SwigPySequence_ArrowProxy(operator*()); } bool operator==(const self& ri) const { return (_index == ri._index) && (_seq == ri._seq); } bool operator!=(const self& ri) const { return !(operator==(ri)); } self& operator ++ () { ++_index; return *this; } self& operator -- () { --_index; return *this; } self& operator += (difference_type n) { _index += n; return *this; } self operator +(difference_type n) const { return self(_seq, _index + n); } self& operator -= (difference_type n) { _index -= n; return *this; } self operator -(difference_type n) const { return self(_seq, _index - n); } difference_type operator - (const self& ri) const { return _index - ri._index; } bool operator < (const self& ri) const { return _index < ri._index; } reference operator[](difference_type n) const { return reference(_seq, _index + n); } private: PyObject* _seq; difference_type _index; }; // STL container wrapper around a Python sequence template struct SwigPySequence_Cont { typedef SwigPySequence_Ref reference; typedef const SwigPySequence_Ref const_reference; typedef T value_type; typedef T* pointer; typedef Py_ssize_t difference_type; typedef size_t size_type; typedef const pointer const_pointer; typedef SwigPySequence_InputIterator iterator; typedef SwigPySequence_InputIterator const_iterator; SwigPySequence_Cont(PyObject* seq) : _seq(0) { if (!PySequence_Check(seq)) { throw std::invalid_argument("a sequence is expected"); } _seq = seq; Py_INCREF(_seq); } ~SwigPySequence_Cont() { Py_XDECREF(_seq); } size_type size() const { return static_cast(PySequence_Size(_seq)); } bool empty() const { return size() == 0; } iterator begin() { return iterator(_seq, 0); } const_iterator begin() const { return const_iterator(_seq, 0); } iterator end() { return iterator(_seq, size()); } const_iterator end() const { return const_iterator(_seq, size()); } reference operator[](difference_type n) { return reference(_seq, n); } const_reference operator[](difference_type n) const { return const_reference(_seq, n); } bool check() const { Py_ssize_t s = size(); for (Py_ssize_t i = 0; i < s; ++i) { swig::SwigVar_PyObject item = PySequence_GetItem(_seq, i); if (!swig::check(item)) return false; } return true; } private: PyObject* _seq; }; } SWIGINTERN swig_type_info* SWIG_pchar_descriptor(void) { static int init = 0; static swig_type_info* info = 0; if (!init) { info = SWIG_TypeQuery("_p_char"); init = 1; } return info; } SWIGINTERN int SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) { #if PY_VERSION_HEX>=0x03000000 #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) if (PyBytes_Check(obj)) #else if (PyUnicode_Check(obj)) #endif #else if (PyString_Check(obj)) #endif { char *cstr; Py_ssize_t len; int ret = SWIG_OK; #if PY_VERSION_HEX>=0x03000000 #if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR) if (!alloc && cptr) { /* We can't allow converting without allocation, since the internal representation of string in Python 3 is UCS-2/UCS-4 but we require a UTF-8 representation. TODO(bhy) More detailed explanation */ return SWIG_RuntimeError; } obj = PyUnicode_AsUTF8String(obj); if (!obj) return SWIG_TypeError; if (alloc) *alloc = SWIG_NEWOBJ; #endif PyBytes_AsStringAndSize(obj, &cstr, &len); #else PyString_AsStringAndSize(obj, &cstr, &len); #endif if (cptr) { if (alloc) { if (*alloc == SWIG_NEWOBJ) { *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1))); *alloc = SWIG_NEWOBJ; } else { *cptr = cstr; *alloc = SWIG_OLDOBJ; } } else { #if PY_VERSION_HEX>=0x03000000 #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) *cptr = PyBytes_AsString(obj); #else assert(0); /* Should never reach here with Unicode strings in Python 3 */ #endif #else *cptr = SWIG_Python_str_AsChar(obj); if (!*cptr) ret = SWIG_TypeError; #endif } } if (psize) *psize = len + 1; #if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR) Py_XDECREF(obj); #endif return ret; } else { #if defined(SWIG_PYTHON_2_UNICODE) #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) #error "Cannot use both SWIG_PYTHON_2_UNICODE and SWIG_PYTHON_STRICT_BYTE_CHAR at once" #endif #if PY_VERSION_HEX<0x03000000 if (PyUnicode_Check(obj)) { char *cstr; Py_ssize_t len; if (!alloc && cptr) { return SWIG_RuntimeError; } obj = PyUnicode_AsUTF8String(obj); if (!obj) return SWIG_TypeError; if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) { if (cptr) { if (alloc) *alloc = SWIG_NEWOBJ; *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1))); } if (psize) *psize = len + 1; Py_XDECREF(obj); return SWIG_OK; } else { Py_XDECREF(obj); } } #endif #endif swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); if (pchar_descriptor) { void* vptr = 0; if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) { if (cptr) *cptr = (char *) vptr; if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0; if (alloc) *alloc = SWIG_OLDOBJ; return SWIG_OK; } } } return SWIG_TypeError; } SWIGINTERNINLINE PyObject * SWIG_FromCharPtrAndSize(const char* carray, size_t size) { if (carray) { if (size > INT_MAX) { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); return pchar_descriptor ? SWIG_InternalNewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void(); } else { #if PY_VERSION_HEX >= 0x03000000 #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) return PyBytes_FromStringAndSize(carray, static_cast< Py_ssize_t >(size)); #else return PyUnicode_DecodeUTF8(carray, static_cast< Py_ssize_t >(size), "surrogateescape"); #endif #else if ( _PYTHON2_RETURN_UNICODE ) return PyUnicode_DecodeUTF8(carray, static_cast< Py_ssize_t >(size), "replace"); else return PyString_FromStringAndSize(carray, static_cast< Py_ssize_t >(size)); #endif } } else { return SWIG_Py_Void(); } } SWIGINTERNINLINE PyObject * SWIG_FromCharPtr(const char *cptr) { return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0)); } SWIGINTERNINLINE PyObject* SWIG_From_int (int value) { return PyInt_FromLong((long) value); } #ifdef SWIG_LONG_LONG_AVAILABLE SWIGINTERNINLINE PyObject* SWIG_From_unsigned_SS_long_SS_long (unsigned long long value) { return (value > LONG_MAX) ? PyLong_FromUnsignedLongLong(value) : PyInt_FromLong(static_cast< long >(value)); } #endif SWIGINTERNINLINE PyObject * SWIG_From_std_string (const std::string& s) { return SWIG_FromCharPtrAndSize(s.data(), s.size()); } SWIGINTERN int SWIG_AsVal_bool (PyObject *obj, bool *val) { int r; if (!PyBool_Check(obj)) return SWIG_ERROR; r = PyObject_IsTrue(obj); if (r == -1) return SWIG_ERROR; if (val) *val = r ? true : false; return SWIG_OK; } SWIGINTERNINLINE PyObject* SWIG_From_unsigned_SS_int (unsigned int value) { return PyInt_FromSize_t((size_t) value); } namespace swig { template <> struct traits< Prelude::Connection > { typedef pointer_category category; static const char* type_name() { return"Prelude::Connection"; } }; } namespace swig { template inline void assign(const SwigPySeq& swigpyseq, Seq* seq) { // seq->assign(swigpyseq.begin(), swigpyseq.end()); // not used as not always implemented typedef typename SwigPySeq::value_type value_type; typename SwigPySeq::const_iterator it = swigpyseq.begin(); for (;it != swigpyseq.end(); ++it) { seq->insert(seq->end(),(value_type)(*it)); } } template struct traits_asptr_stdseq { typedef Seq sequence; typedef T value_type; static int asptr(PyObject *obj, sequence **seq) { if (obj == Py_None || SWIG_Python_GetSwigThis(obj)) { sequence *p; swig_type_info *descriptor = swig::type_info(); if (descriptor && SWIG_IsOK(::SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0))) { if (seq) *seq = p; return SWIG_OLDOBJ; } } else if (PySequence_Check(obj)) { try { SwigPySequence_Cont swigpyseq(obj); if (seq) { sequence *pseq = new sequence(); assign(swigpyseq, pseq); *seq = pseq; return SWIG_NEWOBJ; } else { return swigpyseq.check() ? SWIG_OK : SWIG_ERROR; } } catch (std::exception& e) { if (seq) { if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, e.what()); } } return SWIG_ERROR; } } return SWIG_ERROR; } }; template struct traits_from_stdseq { typedef Seq sequence; typedef T value_type; typedef typename Seq::size_type size_type; typedef typename sequence::const_iterator const_iterator; static PyObject *from(const sequence& seq) { #ifdef SWIG_PYTHON_EXTRA_NATIVE_CONTAINERS swig_type_info *desc = swig::type_info(); if (desc && desc->clientdata) { return SWIG_InternalNewPointerObj(new sequence(seq), desc, SWIG_POINTER_OWN); } #endif size_type size = seq.size(); if (size <= (size_type)INT_MAX) { PyObject *obj = PyTuple_New((Py_ssize_t)size); Py_ssize_t i = 0; for (const_iterator it = seq.begin(); it != seq.end(); ++it, ++i) { PyTuple_SetItem(obj,i,swig::from(*it)); } return obj; } else { PyErr_SetString(PyExc_OverflowError,"sequence size not valid in python"); return NULL; } } }; } namespace swig { template struct traits_reserve > { static void reserve(std::vector &seq, typename std::vector::size_type n) { seq.reserve(n); } }; template struct traits_asptr > { static int asptr(PyObject *obj, std::vector **vec) { return traits_asptr_stdseq >::asptr(obj, vec); } }; template struct traits_from > { static PyObject *from(const std::vector& vec) { return traits_from_stdseq >::from(vec); } }; } namespace swig { template <> struct traits > > { typedef pointer_category category; static const char* type_name() { return "std::vector<" "Prelude::Connection" "," "std::allocator< Prelude::Connection >" " >"; } }; } SWIGINTERN int SWIG_AsPtr_std_string (PyObject * obj, std::string **val) { char* buf = 0 ; size_t size = 0; int alloc = SWIG_OLDOBJ; if (SWIG_IsOK((SWIG_AsCharPtrAndSize(obj, &buf, &size, &alloc)))) { if (buf) { if (val) *val = new std::string(buf, size - 1); if (alloc == SWIG_NEWOBJ) delete[] buf; return SWIG_NEWOBJ; } else { if (val) *val = 0; return SWIG_OLDOBJ; } } else { static int init = 0; static swig_type_info* descriptor = 0; if (!init) { descriptor = SWIG_TypeQuery("std::string" " *"); init = 1; } if (descriptor) { std::string *vptr; int res = SWIG_ConvertPtr(obj, (void**)&vptr, descriptor, 0); if (SWIG_IsOK(res) && val) *val = vptr; return res; } } return SWIG_ERROR; } SWIGINTERN PyObject *Prelude_IDMEFCriteria___reduce__(Prelude::IDMEFCriteria *self){ PyObject *s, *args = PyTuple_New(1); #if PY_VERSION_HEX >= 0x03000000 s = PyUnicode_FromString(self->toString().c_str()); #else s = PyString_FromString(self->toString().c_str()); #endif PyTuple_SetItem(args, 0, s); SwigPyClientData *data = (SwigPyClientData *) SWIGTYPE_p_Prelude__IDMEFCriteria->clientdata; PyObject *callable = (PyObject *)data->pytype; Py_INCREF(callable); PyObject *ret = PyTuple_New(2); PyTuple_SetItem(ret, 0, callable); PyTuple_SetItem(ret, 1, args); return ret; } namespace swig { template <> struct traits< Prelude::IDMEF > { typedef pointer_category category; static const char* type_name() { return"Prelude::IDMEF"; } }; } namespace swig { template <> struct traits > > { typedef pointer_category category; static const char* type_name() { return "std::vector<" "Prelude::IDMEF" "," "std::allocator< Prelude::IDMEF >" " >"; } }; } namespace swig { template <> struct traits< Prelude::IDMEFValue > { typedef pointer_category category; static const char* type_name() { return"Prelude::IDMEFValue"; } }; } namespace swig { template <> struct traits > > { typedef pointer_category category; static const char* type_name() { return "std::vector<" "Prelude::IDMEFValue" "," "std::allocator< Prelude::IDMEFValue >" " >"; } }; } /* Getting isfinite working pre C99 across multiple platforms is non-trivial. Users can provide SWIG_isfinite on older platforms. */ #ifndef SWIG_isfinite /* isfinite() is a macro for C99 */ # if defined(isfinite) # define SWIG_isfinite(X) (isfinite(X)) # elif defined(__cplusplus) && __cplusplus >= 201103L /* Use a template so that this works whether isfinite() is std::isfinite() or * in the global namespace. The reality seems to vary between compiler * versions. * * Make sure namespace std exists to avoid compiler warnings. * * extern "C++" is required as this fragment can end up inside an extern "C" { } block */ namespace std { } extern "C++" template inline int SWIG_isfinite_func(T x) { using namespace std; return isfinite(x); } # define SWIG_isfinite(X) (SWIG_isfinite_func(X)) # elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) # define SWIG_isfinite(X) (__builtin_isfinite(X)) # elif defined(__clang__) && defined(__has_builtin) # if __has_builtin(__builtin_isfinite) # define SWIG_isfinite(X) (__builtin_isfinite(X)) # endif # elif defined(_MSC_VER) # define SWIG_isfinite(X) (_finite(X)) # elif defined(__sun) && defined(__SVR4) # include # define SWIG_isfinite(X) (finite(X)) # endif #endif /* Accept infinite as a valid float value unless we are unable to check if a value is finite */ #ifdef SWIG_isfinite # define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX) && SWIG_isfinite(X)) #else # define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX)) #endif SWIGINTERN int SWIG_AsVal_float (PyObject * obj, float *val) { double v; int res = SWIG_AsVal_double (obj, &v); if (SWIG_IsOK(res)) { if (SWIG_Float_Overflow_Check(v)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< float >(v); } } return res; } #define SWIG_From_double PyFloat_FromDouble SWIGINTERNINLINE PyObject * SWIG_From_float (float value) { return SWIG_From_double (value); } #if PY_VERSION_HEX < 0x03000000 # define SWIG_FromBytePtrAndSize(arg, len) PyString_FromStringAndSize(arg, len) #else # define SWIG_FromBytePtrAndSize(arg, len) PyBytes_FromStringAndSize(arg, len) #endif int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret); PyObject *IDMEFValueList_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &value, void *extra) { int j = 0, ret; PyObject *pytuple; std::vector result = value; std::vector::const_iterator i; pytuple = PyTuple_New(result.size()); for ( i = result.begin(); i != result.end(); i++ ) { PyObject *val; if ( (*i).isNull() ) { Py_INCREF(Py_None); val = Py_None; } else { ret = IDMEFValue_to_SWIG(self, *i, NULL, &val); if ( ret < 0 ) return NULL; } PyTuple_SetItem(pytuple, j++, val); } return pytuple; } int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret) { idmef_value_t *value = result; Prelude::IDMEFValue::IDMEFValueTypeEnum type = result.getType(); if ( type == Prelude::IDMEFValue::TYPE_STRING ) { prelude_string_t *str = idmef_value_get_string(value); *ret = SWIG_FromCharPtrAndSize(prelude_string_get_string(str), prelude_string_get_len(str)); } else if ( type == Prelude::IDMEFValue::TYPE_INT8 ) *ret = SWIG_From_int(idmef_value_get_int8(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT8 ) *ret = SWIG_From_unsigned_SS_int(idmef_value_get_uint8(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT16 ) *ret = SWIG_From_int(idmef_value_get_int16(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT16 ) *ret = SWIG_From_unsigned_SS_int(idmef_value_get_uint16(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT32 ) *ret = SWIG_From_int(idmef_value_get_int32(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT32 ) *ret = SWIG_From_unsigned_SS_int(idmef_value_get_uint32(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT64 ) *ret = SWIG_From_long_SS_long(idmef_value_get_int64(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT64 ) *ret = SWIG_From_unsigned_SS_long_SS_long(idmef_value_get_uint64(value)); else if ( type == Prelude::IDMEFValue::TYPE_FLOAT ) *ret = SWIG_From_float(idmef_value_get_float(value)); else if ( type == Prelude::IDMEFValue::TYPE_DOUBLE ) *ret = SWIG_From_double(idmef_value_get_double(value)); else if ( type == Prelude::IDMEFValue::TYPE_ENUM ) { const char *s = idmef_class_enum_to_string(idmef_value_get_class(value), idmef_value_get_enum(value)); *ret = SWIG_FromCharPtr(s); } else if ( type == Prelude::IDMEFValue::TYPE_TIME ) { Prelude::IDMEFTime t = result; *ret = SWIG_NewPointerObj(new Prelude::IDMEFTime(t), SWIGTYPE_p_Prelude__IDMEFTime, 1); } else if ( type == Prelude::IDMEFValue::TYPE_LIST ) *ret = IDMEFValueList_to_SWIG(self, result, extra); else if ( type == Prelude::IDMEFValue::TYPE_DATA ) { idmef_data_t *d = idmef_value_get_data(value); idmef_data_type_t t = idmef_data_get_type(d); if ( t == IDMEF_DATA_TYPE_BYTE || t == IDMEF_DATA_TYPE_BYTE_STRING ) *ret = SWIG_FromBytePtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d)); else if ( t == IDMEF_DATA_TYPE_CHAR ) *ret = SWIG_FromCharPtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d)); else if ( t == IDMEF_DATA_TYPE_CHAR_STRING ) *ret = SWIG_FromCharPtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d) - 1); else if ( t == IDMEF_DATA_TYPE_FLOAT ) *ret = SWIG_From_float(idmef_data_get_float(d)); else if ( t == IDMEF_DATA_TYPE_UINT32 || IDMEF_DATA_TYPE_INT ) *ret = SWIG_From_unsigned_SS_long_SS_long(idmef_data_get_int(d)); } else if ( type == Prelude::IDMEFValue::TYPE_CLASS ) { idmef_object_t *obj = (idmef_object_t *) idmef_value_get_object(value); *ret = SWIG_NewPointerObj(new Prelude::IDMEF(idmef_object_ref(obj)), SWIGTYPE_p_Prelude__IDMEF, 1); } else return -1; return 1; } SWIGINTERN int SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val) { unsigned long v; int res = SWIG_AsVal_unsigned_SS_long (obj, &v); if (SWIG_IsOK(res)) { if ((v > UINT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< unsigned int >(v); } } return res; } SWIGINTERN PyObject *Prelude_IDMEFPath___reduce__(Prelude::IDMEFPath *self){ PyObject *s, *args = PyTuple_New(1); #if PY_VERSION_HEX >= 0x03000000 s = PyUnicode_FromString(self->getName()); #else s = PyString_FromString(self->getName()); #endif PyTuple_SetItem(args, 0, s); SwigPyClientData *data = (SwigPyClientData *) SWIGTYPE_p_Prelude__IDMEFPath->clientdata; PyObject *callable = (PyObject *)data->pytype; Py_INCREF(callable); PyObject *ret = PyTuple_New(2); PyTuple_SetItem(ret, 0, callable); PyTuple_SetItem(ret, 1, args); return ret; } SWIGINTERN Prelude::IDMEFValue Prelude_IDMEFPath_get(Prelude::IDMEFPath *self,Prelude::IDMEF &message){ Prelude::IDMEFValue value; value = self->get(message); if ( value.isNull() && self->isAmbiguous() ) { std::vector v; return Prelude::IDMEFValue(v); } return value; } SWIGINTERN long Prelude_IDMEFTime__getSec2(Prelude::IDMEFTime *self){ return self->getSec(); } SWIGINTERNINLINE PyObject* SWIG_From_unsigned_SS_long (unsigned long value) { return (value > LONG_MAX) ? PyLong_FromUnsignedLong(value) : PyInt_FromLong(static_cast< long >(value)); } SWIGINTERNINLINE PyObject * SWIG_From_size_t (size_t value) { #ifdef SWIG_LONG_LONG_AVAILABLE if (sizeof(size_t) <= sizeof(unsigned long)) { #endif return SWIG_From_unsigned_SS_long (static_cast< unsigned long >(value)); #ifdef SWIG_LONG_LONG_AVAILABLE } else { /* assume sizeof(size_t) <= sizeof(unsigned long long) */ return SWIG_From_unsigned_SS_long_SS_long (static_cast< unsigned long long >(value)); } #endif } SWIGINTERN int SWIG_AsVal_std_string (PyObject * obj, std::string *val) { std::string* v = (std::string *) 0; int res = SWIG_AsPtr_std_string (obj, &v); if (!SWIG_IsOK(res)) return res; if (v) { if (val) *val = *v; if (SWIG_IsNewObj(res)) { delete v; res = SWIG_DelNewMask(res); } return res; } return SWIG_ERROR; } namespace swig { template <> struct traits< std::string > { typedef value_category category; static const char* type_name() { return"std::string"; } }; template <> struct traits_asval< std::string > { typedef std::string value_type; static int asval(PyObject *obj, value_type *val) { return SWIG_AsVal_std_string (obj, val); } }; template <> struct traits_from< std::string > { typedef std::string value_type; static PyObject *from(const value_type& val) { return SWIG_From_std_string (val); } }; } namespace swig { template struct traits_asptr > { typedef std::pair value_type; static int get_pair(PyObject* first, PyObject* second, std::pair **val) { if (val) { value_type *vp = (new std::pair()); T *pfirst = &(vp->first); int res1 = swig::asval((PyObject*)first, pfirst); if (!SWIG_IsOK(res1)) { delete vp; return res1; } U *psecond = &(vp->second); int res2 = swig::asval((PyObject*)second, psecond); if (!SWIG_IsOK(res2)) { delete vp; return res2; } *val = vp; return SWIG_AddNewMask(res1 > res2 ? res1 : res2); } else { T *pfirst = 0; int res1 = swig::asval((PyObject*)first, pfirst); if (!SWIG_IsOK(res1)) return res1; U *psecond = 0; int res2 = swig::asval((PyObject*)second, psecond); if (!SWIG_IsOK(res2)) return res2; return res1 > res2 ? res1 : res2; } } static int asptr(PyObject *obj, std::pair **val) { int res = SWIG_ERROR; if (PyTuple_Check(obj)) { if (PyTuple_GET_SIZE(obj) == 2) { res = get_pair(PyTuple_GET_ITEM(obj,0),PyTuple_GET_ITEM(obj,1), val); } } else if (PySequence_Check(obj)) { if (PySequence_Size(obj) == 2) { swig::SwigVar_PyObject first = PySequence_GetItem(obj,0); swig::SwigVar_PyObject second = PySequence_GetItem(obj,1); res = get_pair(first, second, val); } } else { value_type *p; swig_type_info *descriptor = swig::type_info(); res = descriptor ? SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0) : SWIG_ERROR; if (SWIG_IsOK(res) && val) *val = p; } return res; } }; template struct traits_from > { static PyObject *from(const std::pair& val) { PyObject* obj = PyTuple_New(2); PyTuple_SetItem(obj,0,swig::from(val.first)); PyTuple_SetItem(obj,1,swig::from(val.second)); return obj; } }; } SWIGINTERN Py_ssize_t SwigPython_std_pair_len (PyObject *a) { return 2; } SWIGINTERN PyObject* SwigPython_std_pair_repr (PyObject *o) { PyObject *tuple = PyTuple_New(2); assert(tuple); PyTuple_SET_ITEM(tuple, 0, PyObject_GetAttrString(o, (char*) "first")); PyTuple_SET_ITEM(tuple, 1, PyObject_GetAttrString(o, (char*) "second")); PyObject *result = PyObject_Repr(tuple); Py_DECREF(tuple); return result; } SWIGINTERN PyObject* SwigPython_std_pair_getitem (PyObject *a, Py_ssize_t b) { PyObject *result = PyObject_GetAttrString(a, b % 2 ? (char*) "second" : (char*) "first"); return result; } SWIGINTERN int SwigPython_std_pair_setitem (PyObject *a, Py_ssize_t b, PyObject *c) { int result = PyObject_SetAttrString(a, b % 2 ? (char*) "second" : (char*) "first", c); return result; } namespace swig { template <> struct traits > { typedef pointer_category category; static const char* type_name() { return "std::pair<" "std::string" "," "std::string" " >"; } }; } namespace swig { template struct from_key_oper { typedef const ValueType& argument_type; typedef PyObject *result_type; result_type operator()(argument_type v) const { return swig::from(v.first); } }; template struct from_value_oper { typedef const ValueType& argument_type; typedef PyObject *result_type; result_type operator()(argument_type v) const { return swig::from(v.second); } }; template struct SwigPyMapIterator_T : SwigPyIteratorClosed_T { SwigPyMapIterator_T(OutIterator curr, OutIterator first, OutIterator last, PyObject *seq) : SwigPyIteratorClosed_T(curr, first, last, seq) { } }; template > struct SwigPyMapKeyIterator_T : SwigPyMapIterator_T { SwigPyMapKeyIterator_T(OutIterator curr, OutIterator first, OutIterator last, PyObject *seq) : SwigPyMapIterator_T(curr, first, last, seq) { } }; template inline SwigPyIterator* make_output_key_iterator(const OutIter& current, const OutIter& begin, const OutIter& end, PyObject *seq = 0) { return new SwigPyMapKeyIterator_T(current, begin, end, seq); } template > struct SwigPyMapValueIterator_T : SwigPyMapIterator_T { SwigPyMapValueIterator_T(OutIterator curr, OutIterator first, OutIterator last, PyObject *seq) : SwigPyMapIterator_T(curr, first, last, seq) { } }; template inline SwigPyIterator* make_output_value_iterator(const OutIter& current, const OutIter& begin, const OutIter& end, PyObject *seq = 0) { return new SwigPyMapValueIterator_T(current, begin, end, seq); } } namespace swig { template inline void assign(const SwigPySeq& swigpyseq, std::map *map) { typedef typename std::map::value_type value_type; typename SwigPySeq::const_iterator it = swigpyseq.begin(); for (;it != swigpyseq.end(); ++it) { map->insert(value_type(it->first, it->second)); } } template struct traits_asptr > { typedef std::map map_type; static int asptr(PyObject *obj, map_type **val) { int res = SWIG_ERROR; SWIG_PYTHON_THREAD_BEGIN_BLOCK; if (PyDict_Check(obj)) { SwigVar_PyObject items = PyObject_CallMethod(obj,(char *)"items",NULL); #if PY_VERSION_HEX >= 0x03000000 /* In Python 3.x the ".items()" method returns a dict_items object */ items = PySequence_Fast(items, ".items() didn't return a sequence!"); #endif res = traits_asptr_stdseq >::asptr(items, val); } else { map_type *p; swig_type_info *descriptor = swig::type_info(); res = descriptor ? SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0) : SWIG_ERROR; if (SWIG_IsOK(res) && val) *val = p; } SWIG_PYTHON_THREAD_END_BLOCK; return res; } }; template struct traits_from > { typedef std::map map_type; typedef typename map_type::const_iterator const_iterator; typedef typename map_type::size_type size_type; static PyObject *asdict(const map_type& map) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; size_type size = map.size(); Py_ssize_t pysize = (size <= (size_type) INT_MAX) ? (Py_ssize_t) size : -1; if (pysize < 0) { PyErr_SetString(PyExc_OverflowError, "map size not valid in python"); SWIG_PYTHON_THREAD_END_BLOCK; return NULL; } PyObject *obj = PyDict_New(); for (const_iterator i= map.begin(); i!= map.end(); ++i) { swig::SwigVar_PyObject key = swig::from(i->first); swig::SwigVar_PyObject val = swig::from(i->second); PyDict_SetItem(obj, key, val); } SWIG_PYTHON_THREAD_END_BLOCK; return obj; } static PyObject *from(const map_type& map) { swig_type_info *desc = swig::type_info(); if (desc && desc->clientdata) { return SWIG_InternalNewPointerObj(new map_type(map), desc, SWIG_POINTER_OWN); } else { return asdict(map); } } }; } namespace swig { template <> struct traits, std::allocator< std::pair< std::string const,std::string > > > > { typedef pointer_category category; static const char* type_name() { return "std::map<" "std::string" "," "std::string" "," "std::less< std::string >" "," "std::allocator< std::pair< std::string const,std::string > >" " >"; } }; } namespace swig { template <> struct traits > > { typedef pointer_category category; static const char* type_name() { return "std::vector<" "std::string" "," "std::allocator< std::string >" " >"; } }; } SWIGINTERN Prelude::IDMEFClass Prelude_IDMEFClass__get2(Prelude::IDMEFClass *self,int i){ return self->get(i); } SWIGINTERN SwigPyObjectState *Prelude_IDMEF___getstate__(Prelude::IDMEF *self){ int ret; prelude_io_t *io; PyObject *data; ret = prelude_io_new(&io); if ( ret < 0 ) throw PreludeError(ret); prelude_io_set_buffer_io(io); self->_genericWrite(_getstate_msgbuf_cb, io); data = PyBytes_FromStringAndSize((const char *) prelude_io_get_fdptr(io), prelude_io_pending(io)); prelude_io_close(io); prelude_io_destroy(io); return data; } SWIGINTERN void Prelude_IDMEF___setstate__(Prelude::IDMEF *self,PyObject *state){ FILE *fd; char *buf; ssize_t len; PyObject *data; data = PyDict_GetItemString(state, "__idmef_data__"); if ( ! data ) throw PreludeError("no __idmef_data__ key within state dictionary"); buf = PyBytes_AsString(data); len = PyBytes_Size(data); fd = fmemopen(buf, len, "r"); if ( ! fd ) throw PreludeError(prelude_error_from_errno(errno)); self->_genericRead(_setstate_read_cb, fd); fclose(fd); PyDict_DelItemString(state, "__idmef_data__"); } SWIGINTERN int Prelude_IDMEF___contains__(Prelude::IDMEF *self,char const *key){ return self->get(key).isNull() ? FALSE : TRUE; } SWIGINTERN Prelude::IDMEF *new_Prelude_IDMEF__SWIG_4(void *nocast_file_p){ IDMEF *x = new IDMEF; try { x->_genericRead(_cb_python_read, nocast_file_p); } catch(...) { delete(x); throw; } return x; } SWIGINTERN void Prelude_IDMEF_write(Prelude::IDMEF *self,void *nocast_file_p){ self->_genericWrite(_cb_python_write, nocast_file_p); } SWIGINTERN int Prelude_IDMEF_read(Prelude::IDMEF *self,void *nocast_file_p){ self->_genericRead(_cb_python_read, nocast_file_p); return 1; } SWIGINTERN int Prelude_IDMEF_readExcept(Prelude::IDMEF *self,void *nocast_file_p){ self->_genericRead(_cb_python_read, nocast_file_p); return 1; } SWIGINTERN Prelude::IDMEFValue Prelude_IDMEF_get(Prelude::IDMEF *self,char const *path){ Prelude::IDMEFValue value; Prelude::IDMEFPath ipath = Prelude::IDMEFPath(*self, path); value = ipath.get(*self); if ( value.isNull() && ipath.isAmbiguous() ) { std::vector v; return Prelude::IDMEFValue(v); } return value; } #ifdef __cplusplus extern "C" { #endif SWIGINTERN PyObject *_wrap_delete_SwigPyIterator(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_SwigPyIterator", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SwigPyIterator" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator_value(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; PyObject *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator_value", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_value" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); try { result = (PyObject *)((swig::SwigPyIterator const *)arg1)->value(); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = result; return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator_incr__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; size_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; swig::SwigPyIterator *result = 0 ; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_incr" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator_incr" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); try { result = (swig::SwigPyIterator *)(arg1)->incr(arg2); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator_incr__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; swig::SwigPyIterator *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_incr" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); try { result = (swig::SwigPyIterator *)(arg1)->incr(); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator_incr(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[3] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "SwigPyIterator_incr", 0, 2, argv+1))) SWIG_fail; argv[0] = self; if (argc == 1) { PyObject *retobj = _wrap_SwigPyIterator_incr__SWIG_1(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } if (argc == 2) { PyObject *retobj = _wrap_SwigPyIterator_incr__SWIG_0(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'SwigPyIterator_incr'.\n" " Possible C/C++ prototypes are:\n" " swig::SwigPyIterator::incr(size_t)\n" " swig::SwigPyIterator::incr()\n"); return 0; } SWIGINTERN PyObject *_wrap_SwigPyIterator_decr__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; size_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; swig::SwigPyIterator *result = 0 ; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_decr" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); ecode2 = SWIG_AsVal_size_t(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator_decr" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); try { result = (swig::SwigPyIterator *)(arg1)->decr(arg2); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator_decr__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; swig::SwigPyIterator *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_decr" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); try { result = (swig::SwigPyIterator *)(arg1)->decr(); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator_decr(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[3] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "SwigPyIterator_decr", 0, 2, argv+1))) SWIG_fail; argv[0] = self; if (argc == 1) { PyObject *retobj = _wrap_SwigPyIterator_decr__SWIG_1(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } if (argc == 2) { PyObject *retobj = _wrap_SwigPyIterator_decr__SWIG_0(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'SwigPyIterator_decr'.\n" " Possible C/C++ prototypes are:\n" " swig::SwigPyIterator::decr(size_t)\n" " swig::SwigPyIterator::decr()\n"); return 0; } SWIGINTERN PyObject *_wrap_SwigPyIterator_distance(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; swig::SwigPyIterator *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; ptrdiff_t result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_distance" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_swig__SwigPyIterator, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SwigPyIterator_distance" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SwigPyIterator_distance" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); } arg2 = reinterpret_cast< swig::SwigPyIterator * >(argp2); try { result = ((swig::SwigPyIterator const *)arg1)->distance((swig::SwigPyIterator const &)*arg2); } catch(std::invalid_argument &_e) { SWIG_Python_Raise(SWIG_NewPointerObj((new std::invalid_argument(static_cast< const std::invalid_argument& >(_e))),SWIGTYPE_p_std__invalid_argument,SWIG_POINTER_OWN), "std::invalid_argument", SWIGTYPE_p_std__invalid_argument); SWIG_fail; } resultobj = SWIG_From_ptrdiff_t(static_cast< ptrdiff_t >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator_equal(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; swig::SwigPyIterator *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_equal" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_swig__SwigPyIterator, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SwigPyIterator_equal" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SwigPyIterator_equal" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); } arg2 = reinterpret_cast< swig::SwigPyIterator * >(argp2); try { result = (bool)((swig::SwigPyIterator const *)arg1)->equal((swig::SwigPyIterator const &)*arg2); } catch(std::invalid_argument &_e) { SWIG_Python_Raise(SWIG_NewPointerObj((new std::invalid_argument(static_cast< const std::invalid_argument& >(_e))),SWIGTYPE_p_std__invalid_argument,SWIG_POINTER_OWN), "std::invalid_argument", SWIGTYPE_p_std__invalid_argument); SWIG_fail; } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator_copy(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; swig::SwigPyIterator *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator_copy", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_copy" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); result = (swig::SwigPyIterator *)((swig::SwigPyIterator const *)arg1)->copy(); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator_next(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; PyObject *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator_next", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_next" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); try { result = (PyObject *)(arg1)->next(); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = result; return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator___next__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; PyObject *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator___next__", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___next__" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); try { result = (PyObject *)(arg1)->__next__(); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = result; return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator_previous(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; PyObject *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "SwigPyIterator_previous", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_previous" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); try { result = (PyObject *)(arg1)->previous(); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = result; return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator_advance(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; ptrdiff_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; ptrdiff_t val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; swig::SwigPyIterator *result = 0 ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_advance" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); ecode2 = SWIG_AsVal_ptrdiff_t(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator_advance" "', argument " "2"" of type '" "ptrdiff_t""'"); } arg2 = static_cast< ptrdiff_t >(val2); try { result = (swig::SwigPyIterator *)(arg1)->advance(arg2); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator___eq__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; swig::SwigPyIterator *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___eq__" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_swig__SwigPyIterator, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SwigPyIterator___eq__" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SwigPyIterator___eq__" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); } arg2 = reinterpret_cast< swig::SwigPyIterator * >(argp2); result = (bool)((swig::SwigPyIterator const *)arg1)->operator ==((swig::SwigPyIterator const &)*arg2); resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_SwigPyIterator___ne__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; swig::SwigPyIterator *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___ne__" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_swig__SwigPyIterator, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SwigPyIterator___ne__" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SwigPyIterator___ne__" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); } arg2 = reinterpret_cast< swig::SwigPyIterator * >(argp2); result = (bool)((swig::SwigPyIterator const *)arg1)->operator !=((swig::SwigPyIterator const &)*arg2); resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_SwigPyIterator___iadd__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; ptrdiff_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; ptrdiff_t val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; swig::SwigPyIterator *result = 0 ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___iadd__" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); ecode2 = SWIG_AsVal_ptrdiff_t(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator___iadd__" "', argument " "2"" of type '" "ptrdiff_t""'"); } arg2 = static_cast< ptrdiff_t >(val2); try { result = (swig::SwigPyIterator *) &(arg1)->operator +=(arg2); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator___isub__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; ptrdiff_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; ptrdiff_t val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; swig::SwigPyIterator *result = 0 ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___isub__" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); ecode2 = SWIG_AsVal_ptrdiff_t(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator___isub__" "', argument " "2"" of type '" "ptrdiff_t""'"); } arg2 = static_cast< ptrdiff_t >(val2); try { result = (swig::SwigPyIterator *) &(arg1)->operator -=(arg2); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_SwigPyIterator___add__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; ptrdiff_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; ptrdiff_t val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; swig::SwigPyIterator *result = 0 ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___add__" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); ecode2 = SWIG_AsVal_ptrdiff_t(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator___add__" "', argument " "2"" of type '" "ptrdiff_t""'"); } arg2 = static_cast< ptrdiff_t >(val2); try { result = (swig::SwigPyIterator *)((swig::SwigPyIterator const *)arg1)->operator +(arg2); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN | 0 ); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_SwigPyIterator___sub____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; ptrdiff_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; ptrdiff_t val2 ; int ecode2 = 0 ; swig::SwigPyIterator *result = 0 ; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___sub__" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); ecode2 = SWIG_AsVal_ptrdiff_t(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator___sub__" "', argument " "2"" of type '" "ptrdiff_t""'"); } arg2 = static_cast< ptrdiff_t >(val2); try { result = (swig::SwigPyIterator *)((swig::SwigPyIterator const *)arg1)->operator -(arg2); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void()); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN | 0 ); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_SwigPyIterator___sub____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ; swig::SwigPyIterator *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; ptrdiff_t result; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___sub__" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); } arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_swig__SwigPyIterator, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SwigPyIterator___sub__" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SwigPyIterator___sub__" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); } arg2 = reinterpret_cast< swig::SwigPyIterator * >(argp2); result = ((swig::SwigPyIterator const *)arg1)->operator -((swig::SwigPyIterator const &)*arg2); resultobj = SWIG_From_ptrdiff_t(static_cast< ptrdiff_t >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_SwigPyIterator___sub__(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[3] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "SwigPyIterator___sub__", 0, 2, argv+1))) SWIG_fail; argv[0] = self; if (argc == 2) { int _v = 0; { int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; return _wrap_SwigPyIterator___sub____SWIG_1(self, argc, argv); } check_1: if (argc == 2) { PyObject *retobj = _wrap_SwigPyIterator___sub____SWIG_0(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } fail: Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_SwigPyIterator) /* defines _wrap_delete_SwigPyIterator_destructor_closure */ SWIGPY_ITERNEXTFUNC_CLOSURE(_wrap_SwigPyIterator___next__) /* defines _wrap_SwigPyIterator___next___iternextfunc_closure */ SWIGPY_BINARYFUNC_CLOSURE(_wrap_SwigPyIterator___sub__) /* defines _wrap_SwigPyIterator___sub___binaryfunc_closure */ SWIGINTERN PyObject *_wrap_python2_return_unicode(PyObject *self, PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject *swig_obj[1] ; if (!args) SWIG_fail; swig_obj[0] = args; ecode1 = SWIG_AsVal_int(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "python2_return_unicode" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); { try { python2_return_unicode(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_checkVersion__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; char *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "checkVersion" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (char *)Prelude::checkVersion((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_FromCharPtr((const char *)result); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return NULL; } SWIGINTERN PyObject *_wrap_checkVersion__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; char *result = 0 ; if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; { try { result = (char *)Prelude::checkVersion(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_checkVersion(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[2] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "checkVersion", 0, 1, argv))) SWIG_fail; --argc; if (argc == 0) { PyObject *retobj = _wrap_checkVersion__SWIG_1(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } if (argc == 1) { PyObject *retobj = _wrap_checkVersion__SWIG_0(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'checkVersion'.\n" " Possible C/C++ prototypes are:\n" " Prelude::checkVersion(char const *)\n" " Prelude::checkVersion()\n"); return 0; } SWIGINTERN int _wrap_new_ClientProfile__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; Prelude::ClientProfile *result = 0 ; if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientProfile, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_ClientProfile__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::ClientProfile *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientProfile" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientProfile, SWIG_BUILTIN_INIT | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj == Py_None ? -1 : 0; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return -1; } SWIGINTERN int _wrap_new_ClientProfile__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; prelude_client_profile_t *arg1 = (prelude_client_profile_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::ClientProfile *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_prelude_client_profile_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientProfile" "', argument " "1"" of type '" "prelude_client_profile_t *""'"); } arg1 = reinterpret_cast< prelude_client_profile_t * >(argp1); { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientProfile, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_ClientProfile__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::ClientProfile *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__ClientProfile, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientProfile" "', argument " "1"" of type '" "Prelude::ClientProfile const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ClientProfile" "', argument " "1"" of type '" "Prelude::ClientProfile const &""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile((Prelude::ClientProfile const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientProfile, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_ClientProfile(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { Py_ssize_t argc; PyObject *argv[2] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "new_ClientProfile", 0, 1, argv))) SWIG_fail; --argc; if (argc == 0) { int retval = _wrap_new_ClientProfile__SWIG_0(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 1) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_prelude_client_profile_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; return _wrap_new_ClientProfile__SWIG_2(self, argc, argv); } check_2: if (argc == 1) { int _v = 0; { int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Prelude__ClientProfile, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; return _wrap_new_ClientProfile__SWIG_3(self, argc, argv); } check_3: if (argc == 1) { int retval = _wrap_new_ClientProfile__SWIG_1(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_ClientProfile'.\n" " Possible C/C++ prototypes are:\n" " Prelude::ClientProfile::ClientProfile()\n" " Prelude::ClientProfile::ClientProfile(char const *)\n" " Prelude::ClientProfile::ClientProfile(prelude_client_profile_t *)\n" " Prelude::ClientProfile::ClientProfile(Prelude::ClientProfile const &)\n"); return -1; } SWIGINTERN PyObject *_wrap_delete_ClientProfile(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_ClientProfile", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ClientProfile" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getUid(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getUid", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getUid" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (int)(arg1)->getUid(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getGid(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getGid", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getGid" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (int)(arg1)->getGid(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getName(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; char *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getName", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getName" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (char *)(arg1)->getName(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_setName(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject *swig_obj[2] ; int result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_setName" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ClientProfile_setName" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { result = (int)(arg1)->setName((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getAnalyzerId(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; uint64_t result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getAnalyzerId", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getAnalyzerId" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (uint64_t)(arg1)->getAnalyzerId(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_unsigned_SS_long_SS_long(static_cast< unsigned long long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_setAnalyzerId(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; uint64_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long long val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_setAnalyzerId" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long_SS_long(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ClientProfile_setAnalyzerId" "', argument " "2"" of type '" "uint64_t""'"); } arg2 = static_cast< uint64_t >(val2); { try { (arg1)->setAnalyzerId(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getConfigFilename(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getConfigFilename", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getConfigFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getConfigFilename(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getAnalyzeridFilename(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getAnalyzeridFilename", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getAnalyzeridFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getAnalyzeridFilename(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getTlsKeyFilename(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getTlsKeyFilename", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getTlsKeyFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsKeyFilename(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getTlsServerCaCertFilename(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getTlsServerCaCertFilename", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getTlsServerCaCertFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsServerCaCertFilename(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getTlsServerKeyCertFilename(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getTlsServerKeyCertFilename", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getTlsServerKeyCertFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsServerKeyCertFilename(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getTlsServerCrlFilename(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getTlsServerCrlFilename", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getTlsServerCrlFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsServerCrlFilename(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getTlsClientKeyCertFilename(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getTlsClientKeyCertFilename", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getTlsClientKeyCertFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsClientKeyCertFilename(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getTlsClientTrustedCertFilename(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getTlsClientTrustedCertFilename", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getTlsClientTrustedCertFilename" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsClientTrustedCertFilename(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getBackupDirname(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getBackupDirname", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getBackupDirname" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getBackupDirname(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getProfileDirname(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getProfileDirname", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getProfileDirname" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getProfileDirname(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_setPrefix(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_setPrefix" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ClientProfile_setPrefix" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { (arg1)->setPrefix((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_ClientProfile_getPrefix(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "ClientProfile_getPrefix", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ClientProfile_getPrefix" "', argument " "1"" of type '" "Prelude::ClientProfile *""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getPrefix(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_ClientProfile) /* defines _wrap_delete_ClientProfile_destructor_closure */ SWIGINTERN PyObject *_wrap_delete_Connection(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_Connection", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Connection" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; delete arg1; SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN int _wrap_new_Connection__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; Prelude::Connection *result = 0 ; if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::Connection *)new Prelude::Connection(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Connection, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_Connection__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::Connection *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Connection" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::Connection *)new Prelude::Connection((char const *)arg1); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Connection, SWIG_BUILTIN_INIT | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj == Py_None ? -1 : 0; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return -1; } SWIGINTERN int _wrap_new_Connection__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::Connection *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::Connection *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__Connection, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Connection" "', argument " "1"" of type '" "Prelude::Connection const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Connection" "', argument " "1"" of type '" "Prelude::Connection const &""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::Connection *)new Prelude::Connection((Prelude::Connection const &)*arg1); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Connection, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_Connection__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; prelude_connection_t *arg1 = (prelude_connection_t *) 0 ; bool arg2 ; void *argp1 = 0 ; int res1 = 0 ; bool val2 ; int ecode2 = 0 ; Prelude::Connection *result = 0 ; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_prelude_connection_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Connection" "', argument " "1"" of type '" "prelude_connection_t *""'"); } arg1 = reinterpret_cast< prelude_connection_t * >(argp1); ecode2 = SWIG_AsVal_bool(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_Connection" "', argument " "2"" of type '" "bool""'"); } arg2 = static_cast< bool >(val2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::Connection *)new Prelude::Connection(arg1,arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Connection, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_Connection__SWIG_4(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; prelude_connection_t *arg1 = (prelude_connection_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::Connection *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_prelude_connection_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Connection" "', argument " "1"" of type '" "prelude_connection_t *""'"); } arg1 = reinterpret_cast< prelude_connection_t * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::Connection *)new Prelude::Connection(arg1); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Connection, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_Connection(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { Py_ssize_t argc; PyObject *argv[3] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "new_Connection", 0, 2, argv))) SWIG_fail; --argc; if (argc == 0) { int retval = _wrap_new_Connection__SWIG_0(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 1) { int _v = 0; { int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Prelude__Connection, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; return _wrap_new_Connection__SWIG_2(self, argc, argv); } check_2: if (argc == 1) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_prelude_connection_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; return _wrap_new_Connection__SWIG_4(self, argc, argv); } check_3: if (argc == 1) { int retval = _wrap_new_Connection__SWIG_1(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 2) { int retval = _wrap_new_Connection__SWIG_3(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_Connection'.\n" " Possible C/C++ prototypes are:\n" " Prelude::Connection::Connection()\n" " Prelude::Connection::Connection(char const *)\n" " Prelude::Connection::Connection(Prelude::Connection const &)\n" " Prelude::Connection::Connection(prelude_connection_t *,bool)\n" " Prelude::Connection::Connection(prelude_connection_t *)\n"); return -1; } SWIGINTERN PyObject *_wrap_Connection_getConnection(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; prelude_connection_t *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "Connection_getConnection", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getConnection" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (prelude_connection_t *)((Prelude::Connection const *)arg1)->getConnection(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_prelude_connection_t, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_close(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "Connection_close", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_close" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->close(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_connect(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; Prelude::ClientProfile *arg2 = 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject *swig_obj[3] ; if (!SWIG_Python_UnpackTuple(args, "Connection_connect", 2, 2, swig_obj)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_connect" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__ClientProfile, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Connection_connect" "', argument " "2"" of type '" "Prelude::ClientProfile &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Connection_connect" "', argument " "2"" of type '" "Prelude::ClientProfile &""'"); } arg2 = reinterpret_cast< Prelude::ClientProfile * >(argp2); ecode3 = SWIG_AsVal_int(swig_obj[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Connection_connect" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->connect(*arg2,arg3); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_setState(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_setState" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Connection_setState" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setState(arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_getState(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int result; if (!SWIG_Python_UnpackTuple(args, "Connection_getState", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getState" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (int)((Prelude::Connection const *)arg1)->getState(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_setData(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_setData" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0],SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Connection_setData" "', argument " "2"" of type '" "void *""'"); } { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setData(arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_getData(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; void *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "Connection_getData", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getData" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (void *)((Prelude::Connection const *)arg1)->getData(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_getPermission(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int result; if (!SWIG_Python_UnpackTuple(args, "Connection_getPermission", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getPermission" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (int)((Prelude::Connection const *)arg1)->getPermission(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_setPeerAnalyzerid(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; uint64_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long long val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_setPeerAnalyzerid" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long_SS_long(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Connection_setPeerAnalyzerid" "', argument " "2"" of type '" "uint64_t""'"); } arg2 = static_cast< uint64_t >(val2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setPeerAnalyzerid(arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_getPeerAnalyzerid(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; uint64_t result; if (!SWIG_Python_UnpackTuple(args, "Connection_getPeerAnalyzerid", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getPeerAnalyzerid" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (uint64_t)((Prelude::Connection const *)arg1)->getPeerAnalyzerid(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_unsigned_SS_long_SS_long(static_cast< unsigned long long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_getLocalAddr(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; char *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "Connection_getLocalAddr", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getLocalAddr" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (char *)((Prelude::Connection const *)arg1)->getLocalAddr(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_getLocalPort(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; unsigned int result; if (!SWIG_Python_UnpackTuple(args, "Connection_getLocalPort", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getLocalPort" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (unsigned int)((Prelude::Connection const *)arg1)->getLocalPort(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_getPeerAddr(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; char *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "Connection_getPeerAddr", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getPeerAddr" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (char *)((Prelude::Connection const *)arg1)->getPeerAddr(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_getPeerPort(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; unsigned int result; if (!SWIG_Python_UnpackTuple(args, "Connection_getPeerPort", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getPeerPort" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (unsigned int)((Prelude::Connection const *)arg1)->getPeerPort(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_isAlive(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; bool result; if (!SWIG_Python_UnpackTuple(args, "Connection_isAlive", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_isAlive" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (bool)((Prelude::Connection const *)arg1)->isAlive(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_getFd(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int result; if (!SWIG_Python_UnpackTuple(args, "Connection_getFd", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_getFd" "', argument " "1"" of type '" "Prelude::Connection const *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (int)((Prelude::Connection const *)arg1)->getFd(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Connection_recvIDMEF(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; Prelude::IDMEF result; if (!SWIG_Python_UnpackTuple(args, "Connection_recvIDMEF", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Connection_recvIDMEF" "', argument " "1"" of type '" "Prelude::Connection *""'"); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (arg1)->recvIDMEF(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj((new Prelude::IDMEF(static_cast< const Prelude::IDMEF& >(result))), SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_Connection) /* defines _wrap_delete_Connection_destructor_closure */ SWIGINTERN PyObject *_wrap_delete_ConnectionPool(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_ConnectionPool", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ConnectionPool" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; delete arg1; SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN int _wrap_new_ConnectionPool__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; Prelude::ConnectionPool *result = 0 ; if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ConnectionPool, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_ConnectionPool__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; prelude_connection_pool_t *arg1 = (prelude_connection_pool_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::ConnectionPool *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_prelude_connection_pool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ConnectionPool" "', argument " "1"" of type '" "prelude_connection_pool_t *""'"); } arg1 = reinterpret_cast< prelude_connection_pool_t * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool(arg1); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ConnectionPool, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_ConnectionPool__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::ConnectionPool *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ConnectionPool" "', argument " "1"" of type '" "Prelude::ConnectionPool const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ConnectionPool" "', argument " "1"" of type '" "Prelude::ConnectionPool const &""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool((Prelude::ConnectionPool const &)*arg1); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ConnectionPool, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_ConnectionPool__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::ClientProfile *arg1 = 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; Prelude::ConnectionPool *result = 0 ; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__ClientProfile, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ConnectionPool" "', argument " "1"" of type '" "Prelude::ClientProfile &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ConnectionPool" "', argument " "1"" of type '" "Prelude::ClientProfile &""'"); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ConnectionPool" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool(*arg1,arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ConnectionPool, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_ConnectionPool(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { Py_ssize_t argc; PyObject *argv[3] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "new_ConnectionPool", 0, 2, argv))) SWIG_fail; --argc; if (argc == 0) { int retval = _wrap_new_ConnectionPool__SWIG_0(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 1) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_prelude_connection_pool_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; return _wrap_new_ConnectionPool__SWIG_1(self, argc, argv); } check_2: if (argc == 1) { int retval = _wrap_new_ConnectionPool__SWIG_2(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 2) { int retval = _wrap_new_ConnectionPool__SWIG_3(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_ConnectionPool'.\n" " Possible C/C++ prototypes are:\n" " Prelude::ConnectionPool::ConnectionPool()\n" " Prelude::ConnectionPool::ConnectionPool(prelude_connection_pool_t *)\n" " Prelude::ConnectionPool::ConnectionPool(Prelude::ConnectionPool const &)\n" " Prelude::ConnectionPool::ConnectionPool(Prelude::ClientProfile &,int)\n"); return -1; } SWIGINTERN PyObject *_wrap_ConnectionPool_init(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "ConnectionPool_init", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_init" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->init(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ConnectionPool_setConnectionString(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_setConnectionString" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConnectionPool_setConnectionString" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setConnectionString((char const *)arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_ConnectionPool_getConnectionString(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; char *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "ConnectionPool_getConnectionString", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_getConnectionString" "', argument " "1"" of type '" "Prelude::ConnectionPool const *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (char *)((Prelude::ConnectionPool const *)arg1)->getConnectionString(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ConnectionPool_getConnectionList(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::vector< Prelude::Connection,std::allocator< Prelude::Connection > > result; if (!SWIG_Python_UnpackTuple(args, "ConnectionPool_getConnectionList", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_getConnectionList" "', argument " "1"" of type '" "Prelude::ConnectionPool const *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = ((Prelude::ConnectionPool const *)arg1)->getConnectionList(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = swig::from(static_cast< std::vector< Prelude::Connection,std::allocator< Prelude::Connection > > >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ConnectionPool_setFlags(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_setFlags" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ConnectionPool_setFlags" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setFlags(arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ConnectionPool_getFlags(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int result; if (!SWIG_Python_UnpackTuple(args, "ConnectionPool_getFlags", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_getFlags" "', argument " "1"" of type '" "Prelude::ConnectionPool const *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (int)((Prelude::ConnectionPool const *)arg1)->getFlags(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ConnectionPool_setData(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_setData" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0],SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConnectionPool_setData" "', argument " "2"" of type '" "void *""'"); } { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setData(arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ConnectionPool_getData(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; void *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "ConnectionPool_getData", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_getData" "', argument " "1"" of type '" "Prelude::ConnectionPool const *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (void *)((Prelude::ConnectionPool const *)arg1)->getData(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ConnectionPool_addConnection(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_addConnection" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__Connection, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConnectionPool_addConnection" "', argument " "2"" of type '" "Prelude::Connection""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConnectionPool_addConnection" "', argument " "2"" of type '" "Prelude::Connection""'"); } else { Prelude::Connection * temp = reinterpret_cast< Prelude::Connection * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->addConnection(arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ConnectionPool_delConnection(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_delConnection" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__Connection, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConnectionPool_delConnection" "', argument " "2"" of type '" "Prelude::Connection""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConnectionPool_delConnection" "', argument " "2"" of type '" "Prelude::Connection""'"); } else { Prelude::Connection * temp = reinterpret_cast< Prelude::Connection * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->delConnection(arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ConnectionPool_setConnectionAlive(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_setConnectionAlive" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__Connection, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConnectionPool_setConnectionAlive" "', argument " "2"" of type '" "Prelude::Connection &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConnectionPool_setConnectionAlive" "', argument " "2"" of type '" "Prelude::Connection &""'"); } arg2 = reinterpret_cast< Prelude::Connection * >(argp2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setConnectionAlive(*arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ConnectionPool_setConnectionDead(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_setConnectionDead" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__Connection, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConnectionPool_setConnectionDead" "', argument " "2"" of type '" "Prelude::Connection &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConnectionPool_setConnectionDead" "', argument " "2"" of type '" "Prelude::Connection &""'"); } arg2 = reinterpret_cast< Prelude::Connection * >(argp2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setConnectionDead(*arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ConnectionPool_setRequiredPermission(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConnectionPool_setRequiredPermission" "', argument " "1"" of type '" "Prelude::ConnectionPool *""'"); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ConnectionPool_setRequiredPermission" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setRequiredPermission(arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_ConnectionPool) /* defines _wrap_delete_ConnectionPool_destructor_closure */ SWIGINTERN PyObject *_wrap_delete_Client(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_Client", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Client" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; delete arg1; SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN int _wrap_new_Client__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::Client *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Client" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::Client *)new Prelude::Client((char const *)arg1); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, SWIG_BUILTIN_INIT | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj == Py_None ? -1 : 0; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return -1; } SWIGINTERN int _wrap_new_Client__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::Client *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::Client *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__Client, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Client" "', argument " "1"" of type '" "Prelude::Client const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_Client" "', argument " "1"" of type '" "Prelude::Client const &""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::Client *)new Prelude::Client((Prelude::Client const &)*arg1); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_Client(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { Py_ssize_t argc; PyObject *argv[2] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "new_Client", 0, 1, argv))) SWIG_fail; --argc; if (argc == 1) { int _v = 0; { int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Prelude__Client, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; return _wrap_new_Client__SWIG_1(self, argc, argv); } check_1: if (argc == 1) { int retval = _wrap_new_Client__SWIG_0(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_Client'.\n" " Possible C/C++ prototypes are:\n" " Prelude::Client::Client(char const *)\n" " Prelude::Client::Client(Prelude::Client const &)\n"); return -1; } SWIGINTERN PyObject *_wrap_Client_start(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "Client_start", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_start" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->start(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Client_init(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "Client_init", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_init" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->init(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Client_getClient(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; prelude_client_t *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "Client_getClient", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_getClient" "', argument " "1"" of type '" "Prelude::Client const *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (prelude_client_t *)((Prelude::Client const *)arg1)->getClient(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_prelude_client_t, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Client_sendIDMEF(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_sendIDMEF" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client_sendIDMEF" "', argument " "2"" of type '" "Prelude::IDMEF const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client_sendIDMEF" "', argument " "2"" of type '" "Prelude::IDMEF const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->sendIDMEF((Prelude::IDMEF const &)*arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Client_recvIDMEF(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; int arg3 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; char * kwnames[] = { (char *)"idmef", (char *)"timeout", NULL }; int result; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:Client_recvIDMEF", kwnames, &obj1, &obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_recvIDMEF" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client_recvIDMEF" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client_recvIDMEF" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); if (obj2) { ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Client_recvIDMEF" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); } { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (int)(arg1)->recvIDMEF(*arg2,arg3); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Client_getFlags(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int result; if (!SWIG_Python_UnpackTuple(args, "Client_getFlags", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_getFlags" "', argument " "1"" of type '" "Prelude::Client const *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (int)((Prelude::Client const *)arg1)->getFlags(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Client_setFlags(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_setFlags" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Client_setFlags" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setFlags(arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Client_getRequiredPermission(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int result; if (!SWIG_Python_UnpackTuple(args, "Client_getRequiredPermission", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_getRequiredPermission" "', argument " "1"" of type '" "Prelude::Client const *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (int)((Prelude::Client const *)arg1)->getRequiredPermission(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Client_setRequiredPermission(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_setRequiredPermission" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Client_setRequiredPermission" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setRequiredPermission(arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Client_getConfigFilename(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; char *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "Client_getConfigFilename", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_getConfigFilename" "', argument " "1"" of type '" "Prelude::Client const *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (char *)((Prelude::Client const *)arg1)->getConfigFilename(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Client_setConfigFilename(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_setConfigFilename" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client_setConfigFilename" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setConfigFilename((char const *)arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_Client_getConnectionPool(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; Prelude::ConnectionPool *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "Client_getConnectionPool", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_getConnectionPool" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::ConnectionPool *) &(arg1)->getConnectionPool(); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Client_setConnectionPool(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::ConnectionPool arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_setConnectionPool" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client_setConnectionPool" "', argument " "2"" of type '" "Prelude::ConnectionPool""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client_setConnectionPool" "', argument " "2"" of type '" "Prelude::ConnectionPool""'"); } else { Prelude::ConnectionPool * temp = reinterpret_cast< Prelude::ConnectionPool * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; (arg1)->setConnectionPool(arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Client___lshift__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; Prelude::Client *result = 0 ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client___lshift__" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client___lshift__" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client___lshift__" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::Client *) &(arg1)->operator <<(*arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, 0 | 0 ); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_Client___rshift__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; Prelude::Client *result = 0 ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client___rshift__" "', argument " "1"" of type '" "Prelude::Client *""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Client___rshift__" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client___rshift__" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::Client *) &(arg1)->operator >>(*arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, 0 | 0 ); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_Client_setRecvTimeout(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::Client *arg1 = 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; Prelude::Client *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "Client_setRecvTimeout", 2, 2, swig_obj)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__Client, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Client_setRecvTimeout" "', argument " "1"" of type '" "Prelude::Client &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Client_setRecvTimeout" "', argument " "1"" of type '" "Prelude::Client &""'"); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Client_setRecvTimeout" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { { SWIG_PYTHON_THREAD_BEGIN_ALLOW; result = (Prelude::Client *) &Prelude::Client::setRecvTimeout(*arg1,arg2); SWIG_PYTHON_THREAD_END_ALLOW; } } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, 0 | 0 ); return resultobj; fail: return NULL; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_Client) /* defines _wrap_delete_Client_destructor_closure */ SWIGINTERN PyObject *_wrap_PreludeLog_setLevel(PyObject *self, PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject *swig_obj[1] ; if (!args) SWIG_fail; swig_obj[0] = args; ecode1 = SWIG_AsVal_int(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "PreludeLog_setLevel" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); { try { Prelude::PreludeLog::setLevel(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_PreludeLog_setDebugLevel(PyObject *self, PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject *swig_obj[1] ; if (!args) SWIG_fail; swig_obj[0] = args; ecode1 = SWIG_AsVal_int(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "PreludeLog_setDebugLevel" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); { try { Prelude::PreludeLog::setDebugLevel(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_PreludeLog_setFlags(PyObject *self, PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject *swig_obj[1] ; if (!args) SWIG_fail; swig_obj[0] = args; ecode1 = SWIG_AsVal_int(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "PreludeLog_setFlags" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); { try { Prelude::PreludeLog::setFlags(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_PreludeLog_getFlags(PyObject *self, PyObject *args) { PyObject *resultobj = 0; int result; if (!SWIG_Python_UnpackTuple(args, "PreludeLog_getFlags", 0, 0, 0)) SWIG_fail; { try { result = (int)Prelude::PreludeLog::getFlags(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_PreludeLog_setLogfile(PyObject *self, PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; PyObject *swig_obj[1] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PreludeLog_setLogfile" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { Prelude::PreludeLog::setLogfile((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return NULL; } SWIGINTERN PyObject *_wrap_PreludeLog_setCallback(PyObject *self, PyObject *args) { PyObject *resultobj = 0; void (*arg1)(int,char const *) = (void (*)(int,char const *)) 0 ; PyObject *swig_obj[1] ; if (!args) SWIG_fail; swig_obj[0] = args; { if ( ! PyCallable_Check(swig_obj[0]) ) SWIG_exception_fail(SWIG_ValueError, "Argument is not a callable object"); if ( __prelude_log_func ) Py_DECREF(__prelude_log_func); __prelude_log_func = swig_obj[0]; Py_INCREF(swig_obj[0]); arg1 = _cb_python_log; } { try { Prelude::PreludeLog::setCallback(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN int _wrap_new_PreludeLog(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { PyObject *resultobj = 0; Prelude::PreludeLog *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "new_PreludeLog", 0, 0, 0)) SWIG_fail; { try { result = (Prelude::PreludeLog *)new Prelude::PreludeLog(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__PreludeLog, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN PyObject *_wrap_delete_PreludeLog(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::PreludeLog *arg1 = (Prelude::PreludeLog *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_PreludeLog", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__PreludeLog, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PreludeLog" "', argument " "1"" of type '" "Prelude::PreludeLog *""'"); } arg1 = reinterpret_cast< Prelude::PreludeLog * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_PreludeLog) /* defines _wrap_delete_PreludeLog_destructor_closure */ SWIGINTERN PyObject *_wrap_delete_PreludeError(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_PreludeError", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PreludeError" "', argument " "1"" of type '" "Prelude::PreludeError *""'"); } arg1 = reinterpret_cast< Prelude::PreludeError * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN int _wrap_new_PreludeError__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; Prelude::PreludeError *result = 0 ; if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; { try { result = (Prelude::PreludeError *)new Prelude::PreludeError(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__PreludeError, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_PreludeError__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; Prelude::PreludeError *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; ecode1 = SWIG_AsVal_int(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_PreludeError" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); { try { result = (Prelude::PreludeError *)new Prelude::PreludeError(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__PreludeError, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_PreludeError__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; Prelude::PreludeError *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(swig_obj[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_PreludeError" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_PreludeError" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } { try { result = (Prelude::PreludeError *)new Prelude::PreludeError((std::string const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__PreludeError, SWIG_BUILTIN_INIT | 0 ); if (SWIG_IsNewObj(res1)) delete arg1; return resultobj == Py_None ? -1 : 0; fail: if (SWIG_IsNewObj(res1)) delete arg1; return -1; } SWIGINTERN int _wrap_new_PreludeError(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { Py_ssize_t argc; PyObject *argv[2] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "new_PreludeError", 0, 1, argv))) SWIG_fail; --argc; if (argc == 0) { int retval = _wrap_new_PreludeError__SWIG_0(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 1) { int _v = 0; { { int res = SWIG_AsVal_int(argv[0], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_2; return _wrap_new_PreludeError__SWIG_1(self, argc, argv); } check_2: if (argc == 1) { int retval = _wrap_new_PreludeError__SWIG_2(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_PreludeError'.\n" " Possible C/C++ prototypes are:\n" " Prelude::PreludeError::PreludeError()\n" " Prelude::PreludeError::PreludeError(int)\n" " Prelude::PreludeError::PreludeError(std::string const &)\n"); return -1; } SWIGINTERN PyObject *_wrap_PreludeError_getCode(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int result; if (!SWIG_Python_UnpackTuple(args, "PreludeError_getCode", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__PreludeError, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PreludeError_getCode" "', argument " "1"" of type '" "Prelude::PreludeError const *""'"); } arg1 = reinterpret_cast< Prelude::PreludeError * >(argp1); { try { result = (int)((Prelude::PreludeError const *)arg1)->getCode(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_PreludeError_what(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; char *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "PreludeError_what", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__PreludeError, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PreludeError_what" "', argument " "1"" of type '" "Prelude::PreludeError const *""'"); } arg1 = reinterpret_cast< Prelude::PreludeError * >(argp1); { try { result = (char *)((Prelude::PreludeError const *)arg1)->what(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_PreludeError) /* defines _wrap_delete_PreludeError_destructor_closure */ SWIGPY_REPRFUNC_CLOSURE(_wrap_PreludeError_what) /* defines _wrap_PreludeError_what_reprfunc_closure */ SWIGINTERN int _wrap_new_ClientEasy(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int arg2 = (int) Prelude::Client::IDMEF_WRITE ; char *arg3 = (char *) "Unknown model" ; char *arg4 = (char *) "Unknown class" ; char *arg5 = (char *) "Unknown manufacturer" ; char *arg6 = (char *) "Unknown version" ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int val2 ; int ecode2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; int res6 ; char *buf6 = 0 ; int alloc6 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; char * kwnames[] = { (char *)"profile", (char *)"permission", (char *)"model", (char *)"classname", (char *)"manufacturer", (char *)"version", NULL }; Prelude::ClientEasy *result = 0 ; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|OOOOO:new_ClientEasy", kwnames, &obj1, &obj2, &obj3, &obj4, &obj5, &obj6)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj1, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ClientEasy" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); if (obj2) { ecode2 = SWIG_AsVal_int(obj2, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_ClientEasy" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); } if (obj3) { res3 = SWIG_AsCharPtrAndSize(obj3, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_ClientEasy" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); } if (obj4) { res4 = SWIG_AsCharPtrAndSize(obj4, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_ClientEasy" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); } if (obj5) { res5 = SWIG_AsCharPtrAndSize(obj5, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "new_ClientEasy" "', argument " "5"" of type '" "char const *""'"); } arg5 = reinterpret_cast< char * >(buf5); } if (obj6) { res6 = SWIG_AsCharPtrAndSize(obj6, &buf6, NULL, &alloc6); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "new_ClientEasy" "', argument " "6"" of type '" "char const *""'"); } arg6 = reinterpret_cast< char * >(buf6); } { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ClientEasy, SWIG_BUILTIN_INIT | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return resultobj == Py_None ? -1 : 0; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return -1; } SWIGINTERN PyObject *_wrap_delete_ClientEasy(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::ClientEasy *arg1 = (Prelude::ClientEasy *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_ClientEasy", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientEasy, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ClientEasy" "', argument " "1"" of type '" "Prelude::ClientEasy *""'"); } arg1 = reinterpret_cast< Prelude::ClientEasy * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_ClientEasy) /* defines _wrap_delete_ClientEasy_destructor_closure */ SWIGINTERN int _wrap_new_IDMEFCriterion(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { PyObject *resultobj = 0; Prelude::IDMEFCriterion *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "new_IDMEFCriterion", 0, 0, 0)) SWIG_fail; { try { result = (Prelude::IDMEFCriterion *)new Prelude::IDMEFCriterion(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFCriterion, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN PyObject *_wrap_delete_IDMEFCriterion(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFCriterion *arg1 = (Prelude::IDMEFCriterion *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_IDMEFCriterion", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriterion, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEFCriterion" "', argument " "1"" of type '" "Prelude::IDMEFCriterion *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriterion * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_IDMEFCriterion) /* defines _wrap_delete_IDMEFCriterion_destructor_closure */ SWIGINTERN PyObject *_wrap_delete_IDMEFCriteria(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_IDMEFCriteria", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEFCriteria" "', argument " "1"" of type '" "Prelude::IDMEFCriteria *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN int _wrap_new_IDMEFCriteria__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; Prelude::IDMEFCriteria *result = 0 ; if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFCriteria__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFCriteria *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFCriteria *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFCriteria" "', argument " "1"" of type '" "Prelude::IDMEFCriteria const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFCriteria" "', argument " "1"" of type '" "Prelude::IDMEFCriteria const &""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria((Prelude::IDMEFCriteria const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFCriteria__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::IDMEFCriteria *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFCriteria" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_BUILTIN_INIT | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj == Py_None ? -1 : 0; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return -1; } SWIGINTERN int _wrap_new_IDMEFCriteria__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; Prelude::IDMEFCriteria *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(swig_obj[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFCriteria" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFCriteria" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria((std::string const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_BUILTIN_INIT | 0 ); if (SWIG_IsNewObj(res1)) delete arg1; return resultobj == Py_None ? -1 : 0; fail: if (SWIG_IsNewObj(res1)) delete arg1; return -1; } SWIGINTERN int _wrap_new_IDMEFCriteria__SWIG_4(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; idmef_criteria_t *arg1 = (idmef_criteria_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFCriteria *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_idmef_criteria_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFCriteria" "', argument " "1"" of type '" "idmef_criteria_t *""'"); } arg1 = reinterpret_cast< idmef_criteria_t * >(argp1); { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFCriteria(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { Py_ssize_t argc; PyObject *argv[2] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "new_IDMEFCriteria", 0, 1, argv))) SWIG_fail; --argc; if (argc == 0) { int retval = _wrap_new_IDMEFCriteria__SWIG_0(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 1) { int _v = 0; { int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; return _wrap_new_IDMEFCriteria__SWIG_1(self, argc, argv); } check_2: if (argc == 1) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_idmef_criteria_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; return _wrap_new_IDMEFCriteria__SWIG_4(self, argc, argv); } check_3: if (argc == 1) { int _v = 0; { int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_4; return _wrap_new_IDMEFCriteria__SWIG_3(self, argc, argv); } check_4: if (argc == 1) { int retval = _wrap_new_IDMEFCriteria__SWIG_2(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_IDMEFCriteria'.\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFCriteria::IDMEFCriteria()\n" " Prelude::IDMEFCriteria::IDMEFCriteria(Prelude::IDMEFCriteria const &)\n" " Prelude::IDMEFCriteria::IDMEFCriteria(char const *)\n" " Prelude::IDMEFCriteria::IDMEFCriteria(std::string const &)\n" " Prelude::IDMEFCriteria::IDMEFCriteria(idmef_criteria_t *)\n"); return -1; } SWIGINTERN PyObject *_wrap_IDMEFCriteria_match(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEF *arg2 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; int result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFCriteria_match" "', argument " "1"" of type '" "Prelude::IDMEFCriteria const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFCriteria_match" "', argument " "2"" of type '" "Prelude::IDMEF *""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = (int)((Prelude::IDMEFCriteria const *)arg1)->match(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFCriteria_clone(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; Prelude::IDMEFCriteria result; if (!SWIG_Python_UnpackTuple(args, "IDMEFCriteria_clone", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFCriteria_clone" "', argument " "1"" of type '" "Prelude::IDMEFCriteria const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { result = ((Prelude::IDMEFCriteria const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj((new Prelude::IDMEFCriteria(static_cast< const Prelude::IDMEFCriteria& >(result))), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFCriteria_andCriteria(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEFCriteria *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFCriteria_andCriteria" "', argument " "1"" of type '" "Prelude::IDMEFCriteria *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFCriteria_andCriteria" "', argument " "2"" of type '" "Prelude::IDMEFCriteria const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFCriteria_andCriteria" "', argument " "2"" of type '" "Prelude::IDMEFCriteria const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp2); { try { (arg1)->andCriteria((Prelude::IDMEFCriteria const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFCriteria_orCriteria(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEFCriteria *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFCriteria_orCriteria" "', argument " "1"" of type '" "Prelude::IDMEFCriteria *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFCriteria_orCriteria" "', argument " "2"" of type '" "Prelude::IDMEFCriteria const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFCriteria_orCriteria" "', argument " "2"" of type '" "Prelude::IDMEFCriteria const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp2); { try { (arg1)->orCriteria((Prelude::IDMEFCriteria const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFCriteria_toString(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "IDMEFCriteria_toString", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFCriteria_toString" "', argument " "1"" of type '" "Prelude::IDMEFCriteria const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { result = ((Prelude::IDMEFCriteria const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFCriteria___reduce__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; PyObject *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "IDMEFCriteria___reduce__", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFCriteria___reduce__" "', argument " "1"" of type '" "Prelude::IDMEFCriteria *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { result = (PyObject *)Prelude_IDMEFCriteria___reduce__(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = result; return resultobj; fail: return NULL; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_IDMEFCriteria) /* defines _wrap_delete_IDMEFCriteria_destructor_closure */ SWIGPY_REPRFUNC_CLOSURE(_wrap_IDMEFCriteria_toString) /* defines _wrap_IDMEFCriteria_toString_reprfunc_closure */ SWIGINTERN PyObject *_wrap_IDMEFValue_getType(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; Prelude::IDMEFValue::IDMEFValueTypeEnum result; if (!SWIG_Python_UnpackTuple(args, "IDMEFValue_getType", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue_getType" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)((Prelude::IDMEFValue const *)arg1)->getType(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFValue_isNull(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; bool result; if (!SWIG_Python_UnpackTuple(args, "IDMEFValue_isNull", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue_isNull" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->isNull(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN PyObject *_wrap_delete_IDMEFValue(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_IDMEFValue", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEFValue" "', argument " "1"" of type '" "Prelude::IDMEFValue *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; { std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *ptr = (std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *)0; res1 = swig::asptr(swig_obj[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &""'"); } arg1 = ptr; } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); if (SWIG_IsNewObj(res1)) delete arg1; return resultobj == Py_None ? -1 : 0; fail: if (SWIG_IsNewObj(res1)) delete arg1; return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "Prelude::IDMEFValue const &""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((Prelude::IDMEFValue const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_4(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; { std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0; res1 = swig::asptr(swig_obj[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &""'"); } arg1 = ptr; } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); if (SWIG_IsNewObj(res1)) delete arg1; return resultobj == Py_None ? -1 : 0; fail: if (SWIG_IsNewObj(res1)) delete arg1; return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_5(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; idmef_value_t *arg1 = (idmef_value_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_idmef_value_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "idmef_value_t *""'"); } arg1 = reinterpret_cast< idmef_value_t * >(argp1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_6(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; std::string *arg1 = 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; int res1 = SWIG_OLDOBJ ; void *argp2 = 0 ; int res2 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(swig_obj[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_IDMEFValue" "', argument " "2"" of type '" "Prelude::IDMEFPath *""'"); } arg2 = reinterpret_cast< Prelude::IDMEFPath * >(argp2); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::string const &)*arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); if (SWIG_IsNewObj(res1)) delete arg1; return resultobj == Py_None ? -1 : 0; fail: if (SWIG_IsNewObj(res1)) delete arg1; return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_7(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(swig_obj[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::string const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); if (SWIG_IsNewObj(res1)) delete arg1; return resultobj == Py_None ? -1 : 0; fail: if (SWIG_IsNewObj(res1)) delete arg1; return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_8(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_IDMEFValue" "', argument " "2"" of type '" "Prelude::IDMEFPath *""'"); } arg2 = reinterpret_cast< Prelude::IDMEFPath * >(argp2); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((char const *)arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj == Py_None ? -1 : 0; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_9(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; int32_t arg1 ; int val1 ; int ecode1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; ecode1 = SWIG_AsVal_int(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "int32_t""'"); } arg1 = static_cast< int32_t >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_10(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; int64_t arg1 ; long long val1 ; int ecode1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; ecode1 = SWIG_AsVal_long_SS_long(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "int64_t""'"); } arg1 = static_cast< int64_t >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_11(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; uint64_t arg1 ; unsigned long long val1 ; int ecode1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; ecode1 = SWIG_AsVal_unsigned_SS_long_SS_long(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "uint64_t""'"); } arg1 = static_cast< uint64_t >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_12(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; float arg1 ; float val1 ; int ecode1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; ecode1 = SWIG_AsVal_float(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "float""'"); } arg1 = static_cast< float >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_13(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; double arg1 ; double val1 ; int ecode1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; ecode1 = SWIG_AsVal_double(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFValue__SWIG_14(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "Prelude::IDMEFTime &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFValue" "', argument " "1"" of type '" "Prelude::IDMEFTime &""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFValue, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFValue(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { Py_ssize_t argc; PyObject *argv[3] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "new_IDMEFValue", 0, 2, argv))) SWIG_fail; --argc; if (argc == 0) { int retval = _wrap_new_IDMEFValue__SWIG_0(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 1) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; return _wrap_new_IDMEFValue__SWIG_1(self, argc, argv); } check_2: if (argc == 1) { int _v = 0; { int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Prelude__IDMEFValue, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; return _wrap_new_IDMEFValue__SWIG_3(self, argc, argv); } check_3: if (argc == 1) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_idmef_value_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; return _wrap_new_IDMEFValue__SWIG_5(self, argc, argv); } check_4: if (argc == 1) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_5; return _wrap_new_IDMEFValue__SWIG_14(self, argc, argv); } check_5: if (argc == 1) { int _v = 0; { { int res = SWIG_AsVal_int(argv[0], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_6; return _wrap_new_IDMEFValue__SWIG_9(self, argc, argv); } check_6: if (argc == 1) { int _v = 0; { { int res = SWIG_AsVal_unsigned_SS_long_SS_long(argv[0], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_7; return _wrap_new_IDMEFValue__SWIG_11(self, argc, argv); } check_7: if (argc == 1) { int _v = 0; { { int res = SWIG_AsVal_long_SS_long(argv[0], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_8; return _wrap_new_IDMEFValue__SWIG_10(self, argc, argv); } check_8: if (argc == 1) { int _v = 0; { { int res = SWIG_AsVal_float(argv[0], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_9; return _wrap_new_IDMEFValue__SWIG_12(self, argc, argv); } check_9: if (argc == 1) { int _v = 0; { { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_10; return _wrap_new_IDMEFValue__SWIG_13(self, argc, argv); } check_10: if (argc == 1) { int _v = 0; { int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_11; return _wrap_new_IDMEFValue__SWIG_7(self, argc, argv); } check_11: if (argc == 1) { int _v = 0; { int res = swig::asptr(argv[0], (std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > >**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_12; return _wrap_new_IDMEFValue__SWIG_2(self, argc, argv); } check_12: if (argc == 1) { int retval = _wrap_new_IDMEFValue__SWIG_4(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 2) { int _v = 0; { int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_14; int retval = _wrap_new_IDMEFValue__SWIG_6(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } check_14: if (argc == 2) { int retval = _wrap_new_IDMEFValue__SWIG_8(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_IDMEFValue'.\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFValue::IDMEFValue()\n" " Prelude::IDMEFValue::IDMEFValue(Prelude::IDMEF *)\n" " Prelude::IDMEFValue::IDMEFValue(std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &)\n" " Prelude::IDMEFValue::IDMEFValue(Prelude::IDMEFValue const &)\n" " Prelude::IDMEFValue::IDMEFValue(std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &)\n" " Prelude::IDMEFValue::IDMEFValue(idmef_value_t *)\n" " Prelude::IDMEFValue::IDMEFValue(std::string const &,Prelude::IDMEFPath *)\n" " Prelude::IDMEFValue::IDMEFValue(std::string const &)\n" " Prelude::IDMEFValue::IDMEFValue(char const *,Prelude::IDMEFPath *)\n" " Prelude::IDMEFValue::IDMEFValue(int32_t)\n" " Prelude::IDMEFValue::IDMEFValue(int64_t)\n" " Prelude::IDMEFValue::IDMEFValue(uint64_t)\n" " Prelude::IDMEFValue::IDMEFValue(float)\n" " Prelude::IDMEFValue::IDMEFValue(double)\n" " Prelude::IDMEFValue::IDMEFValue(Prelude::IDMEFTime &)\n"); return -1; } SWIGINTERN PyObject *_wrap_IDMEFValue_match(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject *swig_obj[3] ; int result; if (!SWIG_Python_UnpackTuple(args, "IDMEFValue_match", 2, 2, swig_obj)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue_match" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue_match" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue_match" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); ecode3 = SWIG_AsVal_int(swig_obj[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFValue_match" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); { try { result = (int)((Prelude::IDMEFValue const *)arg1)->match((Prelude::IDMEFValue const &)*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFValue_clone(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; Prelude::IDMEFValue result; if (!SWIG_Python_UnpackTuple(args, "IDMEFValue_clone", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue_clone" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = ((Prelude::IDMEFValue const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } { int ret; if ( (&result)->isNull() ) { Py_INCREF(Py_None); resultobj = Py_None; } else { ret = IDMEFValue_to_SWIG(self, result, NULL, &resultobj); if ( ret < 0 ) { std::string s = "IDMEFValue typemap does not handle value of type '"; s += idmef_value_type_to_string((idmef_value_type_id_t) (&result)->getType()); s += "'"; SWIG_exception_fail(SWIG_ValueError, s.c_str()); } } } return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFValue_toString(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "IDMEFValue_toString", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue_toString" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = ((Prelude::IDMEFValue const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFValue___eq____SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 = SWIG_OLDOBJ ; bool result; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___eq__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0; res2 = swig::asptr(swig_obj[1], &ptr); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___eq__" "', argument " "2"" of type '" "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___eq__" "', argument " "2"" of type '" "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &""'"); } arg2 = ptr; } { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator ==((std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); if (SWIG_IsNewObj(res2)) delete arg2; return resultobj; fail: if (SWIG_IsNewObj(res2)) delete arg2; PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFValue___le__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___le__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___le__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___le__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator <=((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFValue___ge__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___ge__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___ge__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___ge__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator >=((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFValue___lt__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___lt__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___lt__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___lt__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator <((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFValue___gt__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___gt__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___gt__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___gt__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator >((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFValue___eq____SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; bool result; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___eq__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___eq__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___eq__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator ==((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFValue___eq__(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[3] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "IDMEFValue___eq__", 0, 2, argv+1))) SWIG_fail; argv[0] = self; if (argc == 2) { int _v = 0; { int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_Prelude__IDMEFValue, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; return _wrap_IDMEFValue___eq____SWIG_1(self, argc, argv); } check_1: if (argc == 2) { PyObject *retobj = _wrap_IDMEFValue___eq____SWIG_0(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } fail: Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFValue___ne__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFValue___ne__" "', argument " "1"" of type '" "Prelude::IDMEFValue const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFValue___ne__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFValue___ne__" "', argument " "2"" of type '" "Prelude::IDMEFValue const &""'"); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator !=((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGPY_HASHFUNC_CLOSURE(_wrap_IDMEFValue_getType) /* defines _wrap_IDMEFValue_getType_hashfunc_closure */ SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_IDMEFValue) /* defines _wrap_delete_IDMEFValue_destructor_closure */ SWIGPY_REPRFUNC_CLOSURE(_wrap_IDMEFValue_toString) /* defines _wrap_IDMEFValue_toString_reprfunc_closure */ SWIGINTERN int _wrap_new_IDMEFPath__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::IDMEFPath *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFPath" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFPath, SWIG_BUILTIN_INIT | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj == Py_None ? -1 : 0; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return -1; } SWIGINTERN int _wrap_new_IDMEFPath__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; Prelude::IDMEFPath *result = 0 ; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFPath" "', argument " "1"" of type '" "Prelude::IDMEF &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFPath" "', argument " "1"" of type '" "Prelude::IDMEF &""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_IDMEFPath" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath(*arg1,(char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFPath, SWIG_BUILTIN_INIT | 0 ); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj == Py_None ? -1 : 0; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return -1; } SWIGINTERN int _wrap_new_IDMEFPath__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; idmef_path_t *arg1 = (idmef_path_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFPath *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_idmef_path_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFPath" "', argument " "1"" of type '" "idmef_path_t *""'"); } arg1 = reinterpret_cast< idmef_path_t * >(argp1); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFPath, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFPath__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFPath *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFPath" "', argument " "1"" of type '" "Prelude::IDMEFPath const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFPath" "', argument " "1"" of type '" "Prelude::IDMEFPath const &""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath((Prelude::IDMEFPath const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFPath, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFPath(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { Py_ssize_t argc; PyObject *argv[3] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "new_IDMEFPath", 0, 2, argv))) SWIG_fail; --argc; if (argc == 1) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_idmef_path_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; return _wrap_new_IDMEFPath__SWIG_2(self, argc, argv); } check_1: if (argc == 1) { int _v = 0; { int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; return _wrap_new_IDMEFPath__SWIG_3(self, argc, argv); } check_2: if (argc == 1) { int retval = _wrap_new_IDMEFPath__SWIG_0(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 2) { int retval = _wrap_new_IDMEFPath__SWIG_1(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_IDMEFPath'.\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFPath::IDMEFPath(char const *)\n" " Prelude::IDMEFPath::IDMEFPath(Prelude::IDMEF &,char const *)\n" " Prelude::IDMEFPath::IDMEFPath(idmef_path_t *)\n" " Prelude::IDMEFPath::IDMEFPath(Prelude::IDMEFPath const &)\n"); return -1; } SWIGINTERN PyObject *_wrap_delete_IDMEFPath(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_IDMEFPath", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEFPath" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_set__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int res3 = SWIG_OLDOBJ ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *ptr = (std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *)0; res3 = swig::asptr(swig_obj[2], &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &""'"); } arg3 = ptr; } { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,(std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (SWIG_IsNewObj(res3)) delete arg3; return resultobj; fail: if (SWIG_IsNewObj(res3)) delete arg3; return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_set__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEF *arg3 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); res3 = SWIG_ConvertPtr(swig_obj[2], &argp3,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "Prelude::IDMEF *""'"); } arg3 = reinterpret_cast< Prelude::IDMEF * >(argp3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_set__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int res3 = SWIG_OLDOBJ ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0; res3 = swig::asptr(swig_obj[2], &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &""'"); } arg3 = ptr; } { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,(std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (SWIG_IsNewObj(res3)) delete arg3; return resultobj; fail: if (SWIG_IsNewObj(res3)) delete arg3; return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_set__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEFValue *arg3 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); res3 = SWIG_ConvertPtr(swig_obj[2], &argp3,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "Prelude::IDMEFValue *""'"); } arg3 = reinterpret_cast< Prelude::IDMEFValue * >(argp3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_set__SWIG_4(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEFTime *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); res3 = SWIG_ConvertPtr(swig_obj[2], &argp3, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "Prelude::IDMEFTime &""'"); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "Prelude::IDMEFTime &""'"); } arg3 = reinterpret_cast< Prelude::IDMEFTime * >(argp3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,*arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_set__SWIG_5(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; std::string *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int res3 = SWIG_OLDOBJ ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { std::string *ptr = (std::string *)0; res3 = SWIG_AsPtr_std_string(swig_obj[2], &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "std::string const &""'"); } arg3 = ptr; } { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,(std::string const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (SWIG_IsNewObj(res3)) delete arg3; return resultobj; fail: if (SWIG_IsNewObj(res3)) delete arg3; return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_set__SWIG_6(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; int32_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_int(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "int32_t""'"); } arg3 = static_cast< int32_t >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_set__SWIG_7(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; int64_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; long long val3 ; int ecode3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_long_SS_long(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "int64_t""'"); } arg3 = static_cast< int64_t >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_set__SWIG_8(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; uint64_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; unsigned long long val3 ; int ecode3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_unsigned_SS_long_SS_long(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "uint64_t""'"); } arg3 = static_cast< uint64_t >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_set__SWIG_9(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; float arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; float val3 ; int ecode3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_float(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_set__SWIG_10(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; double val3 ; int ecode3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_set" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_set" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_set" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_set(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[4] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "IDMEFPath_set", 0, 3, argv+1))) SWIG_fail; argv[0] = self; if (argc == 3) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; return _wrap_IDMEFPath_set__SWIG_1(self, argc, argv); } check_1: if (argc == 3) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Prelude__IDMEFValue, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; return _wrap_IDMEFPath_set__SWIG_3(self, argc, argv); } check_2: if (argc == 3) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_3; return _wrap_IDMEFPath_set__SWIG_4(self, argc, argv); } check_3: if (argc == 3) { int _v = 0; { { int res = SWIG_AsVal_int(argv[2], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_4; return _wrap_IDMEFPath_set__SWIG_6(self, argc, argv); } check_4: if (argc == 3) { int _v = 0; { { int res = SWIG_AsVal_unsigned_SS_long_SS_long(argv[2], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_5; return _wrap_IDMEFPath_set__SWIG_8(self, argc, argv); } check_5: if (argc == 3) { int _v = 0; { { int res = SWIG_AsVal_long_SS_long(argv[2], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_6; return _wrap_IDMEFPath_set__SWIG_7(self, argc, argv); } check_6: if (argc == 3) { int _v = 0; { { int res = SWIG_AsVal_float(argv[2], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_7; return _wrap_IDMEFPath_set__SWIG_9(self, argc, argv); } check_7: if (argc == 3) { int _v = 0; { { int res = SWIG_AsVal_double(argv[2], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_8; return _wrap_IDMEFPath_set__SWIG_10(self, argc, argv); } check_8: if (argc == 3) { int _v = 0; { int res = SWIG_AsPtr_std_string(argv[2], (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_9; return _wrap_IDMEFPath_set__SWIG_5(self, argc, argv); } check_9: if (argc == 3) { int _v = 0; { int res = swig::asptr(argv[2], (std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > >**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_10; return _wrap_IDMEFPath_set__SWIG_0(self, argc, argv); } check_10: if (argc == 3) { PyObject *retobj = _wrap_IDMEFPath_set__SWIG_2(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'IDMEFPath_set'.\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,Prelude::IDMEF *) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,Prelude::IDMEFValue *) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,Prelude::IDMEFTime &) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,std::string const &) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,int32_t) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,int64_t) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,uint64_t) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,float) const\n" " Prelude::IDMEFPath::set(Prelude::IDMEF &,double) const\n"); return 0; } SWIGINTERN PyObject *_wrap_IDMEFPath_getClass(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj1 = 0 ; char * kwnames[] = { (char *)"depth", NULL }; Prelude::IDMEFClass result; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:IDMEFPath_getClass", kwnames, &obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getClass" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); if (obj1) { ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_getClass" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); } { try { result = ((Prelude::IDMEFPath const *)arg1)->getClass(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj((new Prelude::IDMEFClass(static_cast< const Prelude::IDMEFClass& >(result))), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_getValueType(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj1 = 0 ; char * kwnames[] = { (char *)"depth", NULL }; Prelude::IDMEFValue::IDMEFValueTypeEnum result; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:IDMEFPath_getValueType", kwnames, &obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getValueType" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); if (obj1) { ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_getValueType" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); } { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)((Prelude::IDMEFPath const *)arg1)->getValueType(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_setIndex(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; unsigned int arg2 ; int arg3 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; char * kwnames[] = { (char *)"index", (char *)"depth", NULL }; int result; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:IDMEFPath_setIndex", kwnames, &obj1, &obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_setIndex" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_setIndex" "', argument " "2"" of type '" "unsigned int""'"); } arg2 = static_cast< unsigned int >(val2); if (obj2) { ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_setIndex" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); } { try { result = (int)(arg1)->setIndex(arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_undefineIndex(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj1 = 0 ; char * kwnames[] = { (char *)"depth", NULL }; int result; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:IDMEFPath_undefineIndex", kwnames, &obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_undefineIndex" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); if (obj1) { ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_undefineIndex" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); } { try { result = (int)(arg1)->undefineIndex(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_getIndex(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj1 = 0 ; char * kwnames[] = { (char *)"depth", NULL }; int result; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:IDMEFPath_getIndex", kwnames, &obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getIndex" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); if (obj1) { ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_getIndex" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); } { try { result = (int)((Prelude::IDMEFPath const *)arg1)->getIndex(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_makeChild(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; char *arg2 = (char *) 0 ; unsigned int arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; unsigned int val3 ; int ecode3 = 0 ; PyObject *swig_obj[3] ; int result; if (!SWIG_Python_UnpackTuple(args, "IDMEFPath_makeChild", 2, 2, swig_obj)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_makeChild" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_makeChild" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_unsigned_SS_int(swig_obj[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_makeChild" "', argument " "3"" of type '" "unsigned int""'"); } arg3 = static_cast< unsigned int >(val3); { try { result = (int)(arg1)->makeChild((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_makeParent(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int result; if (!SWIG_Python_UnpackTuple(args, "IDMEFPath_makeParent", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_makeParent" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (int)(arg1)->makeParent(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_compare(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; int arg3 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; char * kwnames[] = { (char *)"path", (char *)"depth", NULL }; int result; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:IDMEFPath_compare", kwnames, &obj1, &obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_compare" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_compare" "', argument " "2"" of type '" "Prelude::IDMEFPath *""'"); } arg2 = reinterpret_cast< Prelude::IDMEFPath * >(argp2); if (obj2) { ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFPath_compare" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); } { try { result = (int)((Prelude::IDMEFPath const *)arg1)->compare(arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_clone(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; SwigValueWrapper< Prelude::IDMEFPath > result; if (!SWIG_Python_UnpackTuple(args, "IDMEFPath_clone", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_clone" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = ((Prelude::IDMEFPath const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj((new Prelude::IDMEFPath(static_cast< const Prelude::IDMEFPath& >(result))), SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_checkOperator(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; idmef_criterion_operator_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject *swig_obj[2] ; int result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_checkOperator" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_idmef_criterion_operator_t, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_checkOperator" "', argument " "2"" of type '" "idmef_criterion_operator_t""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_checkOperator" "', argument " "2"" of type '" "idmef_criterion_operator_t""'"); } else { idmef_criterion_operator_t * temp = reinterpret_cast< idmef_criterion_operator_t * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } { try { result = (int)((Prelude::IDMEFPath const *)arg1)->checkOperator(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_getApplicableOperators(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; idmef_criterion_operator_t result; if (!SWIG_Python_UnpackTuple(args, "IDMEFPath_getApplicableOperators", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getApplicableOperators" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = ((Prelude::IDMEFPath const *)arg1)->getApplicableOperators(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj((new idmef_criterion_operator_t(static_cast< const idmef_criterion_operator_t& >(result))), SWIGTYPE_p_idmef_criterion_operator_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_getName(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj1 = 0 ; char * kwnames[] = { (char *)"depth", NULL }; char *result = 0 ; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:IDMEFPath_getName", kwnames, &obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getName" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); if (obj1) { ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_getName" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); } { try { result = (char *)((Prelude::IDMEFPath const *)arg1)->getName(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_isAmbiguous(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; bool result; if (!SWIG_Python_UnpackTuple(args, "IDMEFPath_isAmbiguous", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_isAmbiguous" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (bool)((Prelude::IDMEFPath const *)arg1)->isAmbiguous(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_hasLists(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int result; if (!SWIG_Python_UnpackTuple(args, "IDMEFPath_hasLists", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_hasLists" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (int)((Prelude::IDMEFPath const *)arg1)->hasLists(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_isList(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj1 = 0 ; char * kwnames[] = { (char *)"depth", NULL }; bool result; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O:IDMEFPath_isList", kwnames, &obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_isList" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); if (obj1) { ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFPath_isList" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); } { try { result = (bool)((Prelude::IDMEFPath const *)arg1)->isList(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_getDepth(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; unsigned int result; if (!SWIG_Python_UnpackTuple(args, "IDMEFPath_getDepth", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_getDepth" "', argument " "1"" of type '" "Prelude::IDMEFPath const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (unsigned int)((Prelude::IDMEFPath const *)arg1)->getDepth(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath___reduce__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; PyObject *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "IDMEFPath___reduce__", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath___reduce__" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (PyObject *)Prelude_IDMEFPath___reduce__(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = result; return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFPath_get(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; Prelude::IDMEFValue result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFPath_get" "', argument " "1"" of type '" "Prelude::IDMEFPath *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFPath_get" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFPath_get" "', argument " "2"" of type '" "Prelude::IDMEF &""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = Prelude_IDMEFPath_get(arg1,*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } { int ret; if ( (&result)->isNull() ) { Py_INCREF(Py_None); resultobj = Py_None; } else { ret = IDMEFValue_to_SWIG(self, result, NULL, &resultobj); if ( ret < 0 ) { std::string s = "IDMEFValue typemap does not handle value of type '"; s += idmef_value_type_to_string((idmef_value_type_id_t) (&result)->getType()); s += "'"; SWIG_exception_fail(SWIG_ValueError, s.c_str()); } } } return resultobj; fail: return NULL; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_IDMEFPath) /* defines _wrap_delete_IDMEFPath_destructor_closure */ SWIGPY_OBJOBJARGPROC_CLOSURE(_wrap_IDMEFPath_set) /* defines _wrap_IDMEFPath_set_objobjargproc_closure */ SWIGINTERN int _wrap_new_IDMEFTime__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; Prelude::IDMEFTime *result = 0 ; if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFTime__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; idmef_time_t *arg1 = (idmef_time_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFTime *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_idmef_time_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFTime" "', argument " "1"" of type '" "idmef_time_t *""'"); } arg1 = reinterpret_cast< idmef_time_t * >(argp1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFTime__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; time_t arg1 ; long long val1 ; int ecode1 = 0 ; Prelude::IDMEFTime *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; ecode1 = SWIG_AsVal_long_SS_long(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFTime" "', argument " "1"" of type '" "time_t""'"); } arg1 = static_cast< time_t >(val1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFTime__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::IDMEFTime *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFTime" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_BUILTIN_INIT | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj == Py_None ? -1 : 0; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return -1; } SWIGINTERN int _wrap_new_IDMEFTime__SWIG_4(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; timeval *arg1 = (timeval *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFTime *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_timeval, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFTime" "', argument " "1"" of type '" "timeval const *""'"); } arg1 = reinterpret_cast< timeval * >(argp1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime((timeval const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFTime__SWIG_5(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFTime *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFTime" "', argument " "1"" of type '" "Prelude::IDMEFTime const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFTime" "', argument " "1"" of type '" "Prelude::IDMEFTime const &""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime((Prelude::IDMEFTime const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFTime(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { Py_ssize_t argc; PyObject *argv[2] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "new_IDMEFTime", 0, 1, argv))) SWIG_fail; --argc; if (argc == 0) { int retval = _wrap_new_IDMEFTime__SWIG_0(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 1) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_idmef_time_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; return _wrap_new_IDMEFTime__SWIG_1(self, argc, argv); } check_2: if (argc == 1) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_timeval, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; return _wrap_new_IDMEFTime__SWIG_4(self, argc, argv); } check_3: if (argc == 1) { int _v = 0; { int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); } if (!_v) goto check_4; return _wrap_new_IDMEFTime__SWIG_5(self, argc, argv); } check_4: if (argc == 1) { int _v = 0; { { int res = SWIG_AsVal_long_SS_long(argv[0], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_5; return _wrap_new_IDMEFTime__SWIG_2(self, argc, argv); } check_5: if (argc == 1) { int retval = _wrap_new_IDMEFTime__SWIG_3(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_IDMEFTime'.\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFTime::IDMEFTime()\n" " Prelude::IDMEFTime::IDMEFTime(idmef_time_t *)\n" " Prelude::IDMEFTime::IDMEFTime(time_t const)\n" " Prelude::IDMEFTime::IDMEFTime(char const *)\n" " Prelude::IDMEFTime::IDMEFTime(timeval const *)\n" " Prelude::IDMEFTime::IDMEFTime(Prelude::IDMEFTime const &)\n"); return -1; } SWIGINTERN PyObject *_wrap_delete_IDMEFTime(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_IDMEFTime", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEFTime" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_set__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_set" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { (arg1)->set(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_set__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; time_t *arg2 = (time_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_set" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_long_long, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFTime_set" "', argument " "2"" of type '" "time_t const *""'"); } arg2 = reinterpret_cast< time_t * >(argp2); { try { (arg1)->set((time_t const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_set__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_set" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFTime_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { (arg1)->set((char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_set__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; timeval *arg2 = (timeval *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_set" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_timeval, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFTime_set" "', argument " "2"" of type '" "timeval const *""'"); } arg2 = reinterpret_cast< timeval * >(argp2); { try { (arg1)->set((timeval const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_set(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[3] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "IDMEFTime_set", 0, 2, argv+1))) SWIG_fail; argv[0] = self; if (argc == 1) { PyObject *retobj = _wrap_IDMEFTime_set__SWIG_0(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } if (argc == 2) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_long_long, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; return _wrap_IDMEFTime_set__SWIG_1(self, argc, argv); } check_2: if (argc == 2) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_timeval, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; return _wrap_IDMEFTime_set__SWIG_3(self, argc, argv); } check_3: if (argc == 2) { PyObject *retobj = _wrap_IDMEFTime_set__SWIG_2(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'IDMEFTime_set'.\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFTime::set()\n" " Prelude::IDMEFTime::set(time_t const *)\n" " Prelude::IDMEFTime::set(char const *)\n" " Prelude::IDMEFTime::set(timeval const *)\n"); return 0; } SWIGINTERN PyObject *_wrap_IDMEFTime_setSec(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; uint32_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_setSec" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFTime_setSec" "', argument " "2"" of type '" "uint32_t""'"); } arg2 = static_cast< uint32_t >(val2); { try { (arg1)->setSec(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_setUSec(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; uint32_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_setUSec" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFTime_setUSec" "', argument " "2"" of type '" "uint32_t""'"); } arg2 = static_cast< uint32_t >(val2); { try { (arg1)->setUSec(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_setGmtOffset(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; int32_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_setGmtOffset" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFTime_setGmtOffset" "', argument " "2"" of type '" "int32_t""'"); } arg2 = static_cast< int32_t >(val2); { try { (arg1)->setGmtOffset(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_getSec(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; uint32_t result; if (!SWIG_Python_UnpackTuple(args, "IDMEFTime_getSec", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_getSec" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (uint32_t)((Prelude::IDMEFTime const *)arg1)->getSec(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_getUSec(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; uint32_t result; if (!SWIG_Python_UnpackTuple(args, "IDMEFTime_getUSec", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_getUSec" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (uint32_t)((Prelude::IDMEFTime const *)arg1)->getUSec(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_getGmtOffset(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; int32_t result; if (!SWIG_Python_UnpackTuple(args, "IDMEFTime_getGmtOffset", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_getGmtOffset" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (int32_t)((Prelude::IDMEFTime const *)arg1)->getGmtOffset(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_getTime(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; double result; if (!SWIG_Python_UnpackTuple(args, "IDMEFTime_getTime", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_getTime" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (double)((Prelude::IDMEFTime const *)arg1)->getTime(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_clone(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; Prelude::IDMEFTime result; if (!SWIG_Python_UnpackTuple(args, "IDMEFTime_clone", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_clone" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = ((Prelude::IDMEFTime const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj((new Prelude::IDMEFTime(static_cast< const Prelude::IDMEFTime& >(result))), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime_toString(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "IDMEFTime_toString", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime_toString" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = ((Prelude::IDMEFTime const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFTime___ne__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime___ne__" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { int ret; void *obj; ret = SWIG_ConvertPtr(swig_obj[0], &obj, SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0); if ( ! SWIG_IsOK(ret) || ! obj ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(obj); } { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator !=((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFTime___ge__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime___ge__" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { int ret; void *obj; ret = SWIG_ConvertPtr(swig_obj[0], &obj, SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0); if ( ! SWIG_IsOK(ret) || ! obj ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(obj); } { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator >=((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFTime___le__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime___le__" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { int ret; void *obj; ret = SWIG_ConvertPtr(swig_obj[0], &obj, SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0); if ( ! SWIG_IsOK(ret) || ! obj ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(obj); } { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator <=((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFTime___eq__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime___eq__" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { int ret; void *obj; ret = SWIG_ConvertPtr(swig_obj[0], &obj, SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0); if ( ! SWIG_IsOK(ret) || ! obj ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(obj); } { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator ==((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFTime___gt__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime___gt__" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { int ret; void *obj; ret = SWIG_ConvertPtr(swig_obj[0], &obj, SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0); if ( ! SWIG_IsOK(ret) || ! obj ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(obj); } { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator >((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFTime___lt__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[2] ; bool result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime___lt__" "', argument " "1"" of type '" "Prelude::IDMEFTime const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { int ret; void *obj; ret = SWIG_ConvertPtr(swig_obj[0], &obj, SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0); if ( ! SWIG_IsOK(ret) || ! obj ) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(obj); } { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator <((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEFTime__getSec2(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; long result; if (!SWIG_Python_UnpackTuple(args, "IDMEFTime__getSec2", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFTime__getSec2" "', argument " "1"" of type '" "Prelude::IDMEFTime *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (long)Prelude_IDMEFTime__getSec2(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_long(static_cast< long >(result)); return resultobj; fail: return NULL; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_IDMEFTime) /* defines _wrap_delete_IDMEFTime_destructor_closure */ SWIGPY_OBJOBJARGPROC_CLOSURE(_wrap_IDMEFTime_set) /* defines _wrap_IDMEFTime_set_objobjargproc_closure */ SWIGPY_UNARYFUNC_CLOSURE(_wrap_IDMEFTime_getSec) /* defines _wrap_IDMEFTime_getSec_unaryfunc_closure */ SWIGPY_UNARYFUNC_CLOSURE(_wrap_IDMEFTime_getTime) /* defines _wrap_IDMEFTime_getTime_unaryfunc_closure */ SWIGPY_REPRFUNC_CLOSURE(_wrap_IDMEFTime_toString) /* defines _wrap_IDMEFTime_toString_reprfunc_closure */ SWIGPY_UNARYFUNC_CLOSURE(_wrap_IDMEFTime__getSec2) /* defines _wrap_IDMEFTime__getSec2_unaryfunc_closure */ SWIGINTERN int _wrap_new_IDMEFClass__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; idmef_class_id_t arg1 ; int val1 ; int ecode1 = 0 ; Prelude::IDMEFClass *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; ecode1 = SWIG_AsVal_int(swig_obj[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IDMEFClass" "', argument " "1"" of type '" "idmef_class_id_t""'"); } arg1 = static_cast< idmef_class_id_t >(val1); { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFClass__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; Prelude::IDMEFClass *result = 0 ; if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFClass__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFPath *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFClass *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFClass" "', argument " "1"" of type '" "Prelude::IDMEFPath const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFClass" "', argument " "1"" of type '" "Prelude::IDMEFPath const &""'"); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass((Prelude::IDMEFPath const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEFClass__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; Prelude::IDMEFClass *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(swig_obj[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEFClass" "', argument " "1"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEFClass" "', argument " "1"" of type '" "std::string const &""'"); } arg1 = ptr; } { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass((std::string const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_BUILTIN_INIT | 0 ); if (SWIG_IsNewObj(res1)) delete arg1; return resultobj == Py_None ? -1 : 0; fail: if (SWIG_IsNewObj(res1)) delete arg1; return -1; } SWIGINTERN int _wrap_new_IDMEFClass(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { Py_ssize_t argc; PyObject *argv[2] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "new_IDMEFClass", 0, 1, argv))) SWIG_fail; --argc; if (argc == 0) { int retval = _wrap_new_IDMEFClass__SWIG_1(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 1) { int _v = 0; { int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; return _wrap_new_IDMEFClass__SWIG_2(self, argc, argv); } check_2: if (argc == 1) { int _v = 0; { { int res = SWIG_AsVal_int(argv[0], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_3; return _wrap_new_IDMEFClass__SWIG_0(self, argc, argv); } check_3: if (argc == 1) { int retval = _wrap_new_IDMEFClass__SWIG_3(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_IDMEFClass'.\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFClass::IDMEFClass(idmef_class_id_t)\n" " Prelude::IDMEFClass::IDMEFClass()\n" " Prelude::IDMEFClass::IDMEFClass(Prelude::IDMEFPath const &)\n" " Prelude::IDMEFClass::IDMEFClass(std::string const &)\n"); return -1; } SWIGINTERN PyObject *_wrap_IDMEFClass_getDepth(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; size_t result; if (!SWIG_Python_UnpackTuple(args, "IDMEFClass_getDepth", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getDepth" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getDepth(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_size_t(static_cast< size_t >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass_get__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; Prelude::IDMEFClass result; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_get" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFClass_get" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = (arg1)->get(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj((new Prelude::IDMEFClass(static_cast< const Prelude::IDMEFClass& >(result))), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass_get__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; std::string *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 = SWIG_OLDOBJ ; Prelude::IDMEFClass result; if ((nobjs < 2) || (nobjs > 2)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_get" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { std::string *ptr = (std::string *)0; res2 = SWIG_AsPtr_std_string(swig_obj[1], &ptr); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEFClass_get" "', argument " "2"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFClass_get" "', argument " "2"" of type '" "std::string const &""'"); } arg2 = ptr; } { try { result = (arg1)->get((std::string const &)*arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj((new Prelude::IDMEFClass(static_cast< const Prelude::IDMEFClass& >(result))), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_OWN | 0 ); if (SWIG_IsNewObj(res2)) delete arg2; return resultobj; fail: if (SWIG_IsNewObj(res2)) delete arg2; return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass_get(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[3] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "IDMEFClass_get", 0, 2, argv+1))) SWIG_fail; argv[0] = self; if (argc == 2) { int _v = 0; { { int res = SWIG_AsVal_int(argv[1], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_1; return _wrap_IDMEFClass_get__SWIG_0(self, argc, argv); } check_1: if (argc == 2) { PyObject *retobj = _wrap_IDMEFClass_get__SWIG_1(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'IDMEFClass_get'.\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEFClass::get(int)\n" " Prelude::IDMEFClass::get(std::string const &)\n"); return 0; } SWIGINTERN PyObject *_wrap_IDMEFClass_getChildCount(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; size_t result; if (!SWIG_Python_UnpackTuple(args, "IDMEFClass_getChildCount", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getChildCount" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getChildCount(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_size_t(static_cast< size_t >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass_isList(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; bool result; if (!SWIG_Python_UnpackTuple(args, "IDMEFClass_isList", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_isList" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (bool)(arg1)->isList(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass_isKeyedList(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; bool result; if (!SWIG_Python_UnpackTuple(args, "IDMEFClass_isKeyedList", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_isKeyedList" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (bool)(arg1)->isKeyedList(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass_getName(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "IDMEFClass_getName", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getName" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getName(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass_toString(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "IDMEFClass_toString", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_toString" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass_getValueType(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; Prelude::IDMEFValue::IDMEFValueTypeEnum result; if (!SWIG_Python_UnpackTuple(args, "IDMEFClass_getValueType", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getValueType" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)(arg1)->getValueType(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass_getAttributes(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::map< std::string,std::string,std::less< std::string >,std::allocator< std::pair< std::string const,std::string > > > result; if (!SWIG_Python_UnpackTuple(args, "IDMEFClass_getAttributes", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getAttributes" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getAttributes(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = swig::from(static_cast< std::map< std::string,std::string,std::less< std::string >,std::allocator< std::pair< std::string const,std::string > > > >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass_getPath(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 = (int) 0 ; int arg3 = (int) -1 ; std::string const &arg4_defvalue = "." ; std::string *arg4 = (std::string *) &arg4_defvalue ; std::string const &arg5_defvalue = "" ; std::string *arg5 = (std::string *) &arg5_defvalue ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; int res4 = SWIG_OLDOBJ ; int res5 = SWIG_OLDOBJ ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; char * kwnames[] = { (char *)"rootidx", (char *)"depth", (char *)"sep", (char *)"listidx", NULL }; std::string result; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OOOO:IDMEFClass_getPath", kwnames, &obj1, &obj2, &obj3, &obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getPath" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); if (obj1) { ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFClass_getPath" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); } if (obj2) { ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEFClass_getPath" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); } if (obj3) { { std::string *ptr = (std::string *)0; res4 = SWIG_AsPtr_std_string(obj3, &ptr); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "IDMEFClass_getPath" "', argument " "4"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFClass_getPath" "', argument " "4"" of type '" "std::string const &""'"); } arg4 = ptr; } } if (obj4) { { std::string *ptr = (std::string *)0; res5 = SWIG_AsPtr_std_string(obj4, &ptr); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "IDMEFClass_getPath" "', argument " "5"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEFClass_getPath" "', argument " "5"" of type '" "std::string const &""'"); } arg5 = ptr; } } { try { result = (arg1)->getPath(arg2,arg3,(std::string const &)*arg4,(std::string const &)*arg5); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); if (SWIG_IsNewObj(res4)) delete arg4; if (SWIG_IsNewObj(res5)) delete arg5; return resultobj; fail: if (SWIG_IsNewObj(res4)) delete arg4; if (SWIG_IsNewObj(res5)) delete arg5; return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass_getEnumValues(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::vector< std::string,std::allocator< std::string > > result; if (!SWIG_Python_UnpackTuple(args, "IDMEFClass_getEnumValues", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getEnumValues" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getEnumValues(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = swig::from(static_cast< std::vector< std::string,std::allocator< std::string > > >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass_getApplicableOperator(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; Prelude::IDMEFCriterion::IDMEFCriterionOperatorEnum result; if (!SWIG_Python_UnpackTuple(args, "IDMEFClass_getApplicableOperator", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass_getApplicableOperator" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (Prelude::IDMEFCriterion::IDMEFCriterionOperatorEnum)(arg1)->getApplicableOperator(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEFClass__get2(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; Prelude::IDMEFClass result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEFClass__get2" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IDMEFClass__get2" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); { try { result = Prelude_IDMEFClass__get2(arg1,arg2);; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD || e.getCode() == PRELUDE_ERROR_IDMEF_PATH_DEPTH ) SWIG_exception_fail(SWIG_IndexError, e.what()); } } resultobj = SWIG_NewPointerObj((new Prelude::IDMEFClass(static_cast< const Prelude::IDMEFClass& >(result))), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_IDMEFClass(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_IDMEFClass", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEFClass" "', argument " "1"" of type '" "Prelude::IDMEFClass *""'"); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGPY_BINARYFUNC_CLOSURE(_wrap_IDMEFClass_get) /* defines _wrap_IDMEFClass_get_binaryfunc_closure */ SWIGPY_LENFUNC_CLOSURE(_wrap_IDMEFClass_getChildCount) /* defines _wrap_IDMEFClass_getChildCount_lenfunc_closure */ SWIGPY_REPRFUNC_CLOSURE(_wrap_IDMEFClass_getName) /* defines _wrap_IDMEFClass_getName_reprfunc_closure */ SWIGPY_REPRFUNC_CLOSURE(_wrap_IDMEFClass_toString) /* defines _wrap_IDMEFClass_toString_reprfunc_closure */ SWIGPY_FUNPACK_SSIZEARGFUNC_CLOSURE(_wrap_IDMEFClass__get2) /* defines _wrap_IDMEFClass__get2_ssizeargfunc_closure */ SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_IDMEFClass) /* defines _wrap_delete_IDMEFClass_destructor_closure */ SWIGINTERN PyObject *_wrap_delete_IDMEF(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!SWIG_Python_UnpackTuple(args, "delete_IDMEF", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IDMEF" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { delete arg1; } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN int _wrap_new_IDMEF__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **SWIGUNUSEDPARM(swig_obj)) { PyObject *resultobj = 0; Prelude::IDMEF *result = 0 ; if ((nobjs < 0) || (nobjs > 0)) SWIG_fail; { try { result = (Prelude::IDMEF *)new Prelude::IDMEF(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEF, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEF__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::IDMEF *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEF" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::IDMEF *)new Prelude::IDMEF((char const *)arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEF, SWIG_BUILTIN_INIT | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj == Py_None ? -1 : 0; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return -1; } SWIGINTERN int _wrap_new_IDMEF__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEF *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_Prelude__IDMEF, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEF" "', argument " "1"" of type '" "Prelude::IDMEF const &""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IDMEF" "', argument " "1"" of type '" "Prelude::IDMEF const &""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (Prelude::IDMEF *)new Prelude::IDMEF((Prelude::IDMEF const &)*arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEF, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEF__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; idmef_object_t *arg1 = (idmef_object_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEF *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_idmef_object_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IDMEF" "', argument " "1"" of type '" "idmef_object_t *""'"); } arg1 = reinterpret_cast< idmef_object_t * >(argp1); { try { result = (Prelude::IDMEF *)new Prelude::IDMEF(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEF, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN PyObject *_wrap_IDMEF_set__SWIG_0(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 = SWIG_OLDOBJ ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *ptr = (std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *)0; res3 = swig::asptr(swig_obj[2], &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEF_set" "', argument " "3"" of type '" "std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &""'"); } arg3 = ptr; } { try { (arg1)->set((char const *)arg2,(std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_set__SWIG_1(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEF *arg3 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_ConvertPtr(swig_obj[2], &argp3,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "Prelude::IDMEF *""'"); } arg3 = reinterpret_cast< Prelude::IDMEF * >(argp3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_set__SWIG_2(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 = SWIG_OLDOBJ ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0; res3 = swig::asptr(swig_obj[2], &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEF_set" "', argument " "3"" of type '" "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &""'"); } arg3 = ptr; } { try { (arg1)->set((char const *)arg2,(std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_set__SWIG_3(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; std::string *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 = SWIG_OLDOBJ ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { std::string *ptr = (std::string *)0; res3 = SWIG_AsPtr_std_string(swig_obj[2], &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "std::string const &""'"); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEF_set" "', argument " "3"" of type '" "std::string const &""'"); } arg3 = ptr; } { try { (arg1)->set((char const *)arg2,(std::string const &)*arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_set__SWIG_4(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEFValue *arg3 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_ConvertPtr(swig_obj[2], &argp3,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "Prelude::IDMEFValue *""'"); } arg3 = reinterpret_cast< Prelude::IDMEFValue * >(argp3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_set__SWIG_5(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEFTime *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_ConvertPtr(swig_obj[2], &argp3, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "Prelude::IDMEFTime &""'"); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDMEF_set" "', argument " "3"" of type '" "Prelude::IDMEFTime &""'"); } arg3 = reinterpret_cast< Prelude::IDMEFTime * >(argp3); { try { (arg1)->set((char const *)arg2,*arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_set__SWIG_6(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; int32_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int val3 ; int ecode3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_int(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "int32_t""'"); } arg3 = static_cast< int32_t >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_set__SWIG_7(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; int64_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; long long val3 ; int ecode3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_long_SS_long(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "int64_t""'"); } arg3 = static_cast< int64_t >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_set__SWIG_8(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; uint64_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; unsigned long long val3 ; int ecode3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_unsigned_SS_long_SS_long(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "uint64_t""'"); } arg3 = static_cast< uint64_t >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_set__SWIG_9(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; float arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; float val3 ; int ecode3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_float(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "float""'"); } arg3 = static_cast< float >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_set__SWIG_10(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; double val3 ; int ecode3 = 0 ; if ((nobjs < 3) || (nobjs > 3)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_set" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_set" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_double(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IDMEF_set" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_set(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[4] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "IDMEF_set", 0, 3, argv+1))) SWIG_fail; argv[0] = self; if (argc == 3) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_1; return _wrap_IDMEF_set__SWIG_1(self, argc, argv); } check_1: if (argc == 3) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Prelude__IDMEFValue, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; return _wrap_IDMEF_set__SWIG_4(self, argc, argv); } check_2: if (argc == 3) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); } if (!_v) goto check_3; return _wrap_IDMEF_set__SWIG_5(self, argc, argv); } check_3: if (argc == 3) { int _v = 0; { { int res = SWIG_AsVal_int(argv[2], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_4; return _wrap_IDMEF_set__SWIG_6(self, argc, argv); } check_4: if (argc == 3) { int _v = 0; { { int res = SWIG_AsVal_unsigned_SS_long_SS_long(argv[2], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_5; return _wrap_IDMEF_set__SWIG_8(self, argc, argv); } check_5: if (argc == 3) { int _v = 0; { { int res = SWIG_AsVal_long_SS_long(argv[2], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_6; return _wrap_IDMEF_set__SWIG_7(self, argc, argv); } check_6: if (argc == 3) { int _v = 0; { { int res = SWIG_AsVal_float(argv[2], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_7; return _wrap_IDMEF_set__SWIG_9(self, argc, argv); } check_7: if (argc == 3) { int _v = 0; { { int res = SWIG_AsVal_double(argv[2], NULL); _v = SWIG_CheckState(res); } } if (!_v) goto check_8; return _wrap_IDMEF_set__SWIG_10(self, argc, argv); } check_8: if (argc == 3) { int _v = 0; { int res = SWIG_AsPtr_std_string(argv[2], (std::string**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_9; return _wrap_IDMEF_set__SWIG_3(self, argc, argv); } check_9: if (argc == 3) { int _v = 0; { int res = swig::asptr(argv[2], (std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > >**)(0)); _v = SWIG_CheckState(res); } if (!_v) goto check_10; return _wrap_IDMEF_set__SWIG_0(self, argc, argv); } check_10: if (argc == 3) { PyObject *retobj = _wrap_IDMEF_set__SWIG_2(self, argc, argv); if (!SWIG_Python_TypeErrorOccurred(retobj)) return retobj; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'IDMEF_set'.\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEF::set(char const *,std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &)\n" " Prelude::IDMEF::set(char const *,Prelude::IDMEF *)\n" " Prelude::IDMEF::set(char const *,std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &)\n" " Prelude::IDMEF::set(char const *,std::string const &)\n" " Prelude::IDMEF::set(char const *,Prelude::IDMEFValue *)\n" " Prelude::IDMEF::set(char const *,Prelude::IDMEFTime &)\n" " Prelude::IDMEF::set(char const *,int32_t)\n" " Prelude::IDMEF::set(char const *,int64_t)\n" " Prelude::IDMEF::set(char const *,uint64_t)\n" " Prelude::IDMEF::set(char const *,float)\n" " Prelude::IDMEF::set(char const *,double)\n"); return 0; } SWIGINTERN PyObject *_wrap_IDMEF_clone(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; Prelude::IDMEF result; if (!SWIG_Python_UnpackTuple(args, "IDMEF_clone", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_clone" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (arg1)->clone(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj((new Prelude::IDMEF(static_cast< const Prelude::IDMEF& >(result))), SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_getId(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; idmef_class_id_t result; if (!SWIG_Python_UnpackTuple(args, "IDMEF_getId", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_getId" "', argument " "1"" of type '" "Prelude::IDMEF const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (idmef_class_id_t)((Prelude::IDMEF const *)arg1)->getId(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_toString(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "IDMEF_toString", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_toString" "', argument " "1"" of type '" "Prelude::IDMEF const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = ((Prelude::IDMEF const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_toJSON(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; std::string result; if (!SWIG_Python_UnpackTuple(args, "IDMEF_toJSON", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_toJSON" "', argument " "1"" of type '" "Prelude::IDMEF const *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = ((Prelude::IDMEF const *)arg1)->toJSON(); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEF___eq__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; Prelude::IDMEF *arg2 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject *swig_obj[2] ; int result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF___eq__" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_ConvertPtr(swig_obj[0], &argp2,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF___eq__" "', argument " "2"" of type '" "Prelude::IDMEF const *""'"); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = (int)(arg1)->operator ==((Prelude::IDMEF const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: PyErr_Clear(); Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } SWIGINTERN PyObject *_wrap_IDMEF___getstate__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; SwigPyObjectState *result = 0 ; if (!SWIG_Python_UnpackTuple(args, "IDMEF___getstate__", 0, 0, 0)) SWIG_fail; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF___getstate__" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (SwigPyObjectState *)Prelude_IDMEF___getstate__(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } { int ret; PyObject *state; SwigPyObject *pyobj = (SwigPyObject *) self; state = PyDict_New(); if ( ! state ) { Py_XDECREF(result); SWIG_fail; } ret = PyDict_SetItemString(state, "__idmef_data__", result); Py_DECREF(result); if ( pyobj->dict ) { ret = PyDict_Update(state, pyobj->dict); if ( ret < 0 ) { Py_XDECREF(state); SWIG_fail; } } if ( ret < 0 ) throw PreludeError("error setting internal __idmef_data__ key"); resultobj = state; } return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEF___setstate__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; PyObject *arg2 = (PyObject *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[2] ; { int ret; PyObject *obj; static PyTypeObject *pytype = NULL; if ( ! pytype ) { swig_type_info *sti = SWIG_TypeQuery("Prelude::IDMEF *"); if ( ! sti ) throw PreludeError("could not find type SWIG type info for 'Prelude::IDMEF'"); pytype = ((SwigPyClientData *) sti->clientdata)->pytype; } obj = PyTuple_New(0); ret = pytype->tp_init(self, obj, NULL); Py_DECREF(obj); if ( ret < 0 ) throw PreludeError("error calling Prelude::IDMEF tp_init()"); } if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF___setstate__" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); arg2 = swig_obj[0]; { try { SwigPyObject *pyobj = (SwigPyObject *) self; Prelude_IDMEF___setstate__(arg1,arg2); /* * This is called at unpickling time, and set our PyObject internal dict. */ pyobj->dict = arg2; Py_INCREF(arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEF___contains__(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject *swig_obj[2] ; int result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF___contains__" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF___contains__" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { result = (int)Prelude_IDMEF___contains__(arg1,(char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN int _wrap_new_IDMEF__SWIG_4(PyObject *self, Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; void *arg1 = (void *) 0 ; Prelude::IDMEF *result = 0 ; if ((nobjs < 1) || (nobjs > 1)) SWIG_fail; #if PY_VERSION_HEX < 0x03000000 if ( !PyFile_Check((PyObject *) swig_obj[0]) ) { SWIG_exception_fail(SWIG_RuntimeError, "Argument is not a file object"); } #else extern PyTypeObject PyIOBase_Type; if ( ! PyObject_IsInstance((PyObject *) swig_obj[0], (PyObject *) &PyIOBase_Type) ) { SWIG_exception_fail(SWIG_RuntimeError, "Argument is not a file object"); } #endif arg1 = swig_obj[0]; { try { result = (Prelude::IDMEF *)new_Prelude_IDMEF__SWIG_4(arg1); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEF, SWIG_BUILTIN_INIT | 0 ); return resultobj == Py_None ? -1 : 0; fail: return -1; } SWIGINTERN int _wrap_new_IDMEF(PyObject *self, PyObject *args, PyObject *SWIGUNUSEDPARM(kwargs)) { Py_ssize_t argc; PyObject *argv[2] = { 0 }; if (!(argc = SWIG_Python_UnpackTuple(args, "new_IDMEF", 0, 1, argv))) SWIG_fail; --argc; if (argc == 0) { int retval = _wrap_new_IDMEF__SWIG_0(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } if (argc == 1) { int _v = 0; { int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL | 0); _v = SWIG_CheckState(res); } if (!_v) goto check_2; return _wrap_new_IDMEF__SWIG_2(self, argc, argv); } check_2: if (argc == 1) { int _v = 0; { void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_idmef_object_t, 0); _v = SWIG_CheckState(res); } if (!_v) goto check_3; return _wrap_new_IDMEF__SWIG_3(self, argc, argv); } check_3: if (argc == 1) { int _v = 0; { #if PY_VERSION_HEX < 0x03000000 _v = PyFile_Check((PyObject *) argv[0]); #else extern PyTypeObject PyIOBase_Type; _v = PyObject_IsInstance((PyObject *) argv[0], (PyObject *) &PyIOBase_Type); #endif } if (!_v) goto check_4; return _wrap_new_IDMEF__SWIG_4(self, argc, argv); } check_4: if (argc == 1) { int retval = _wrap_new_IDMEF__SWIG_1(self, argc, argv); if (retval == 0 || !SWIG_Python_TypeErrorOccurred(NULL)) return retval; SWIG_fail; } fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_IDMEF'.\n" " Possible C/C++ prototypes are:\n" " Prelude::IDMEF::IDMEF()\n" " Prelude::IDMEF::IDMEF(char const *)\n" " Prelude::IDMEF::IDMEF(Prelude::IDMEF const &)\n" " Prelude::IDMEF::IDMEF(idmef_object_t *)\n" " Prelude::IDMEF::IDMEF(void *)\n"); return -1; } SWIGINTERN PyObject *_wrap_IDMEF_write(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[2] ; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_write" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); #if PY_VERSION_HEX < 0x03000000 if ( !PyFile_Check((PyObject *) swig_obj[0]) ) { SWIG_exception_fail(SWIG_RuntimeError, "Argument is not a file object"); } #else extern PyTypeObject PyIOBase_Type; if ( ! PyObject_IsInstance((PyObject *) swig_obj[0], (PyObject *) &PyIOBase_Type) ) { SWIG_exception_fail(SWIG_RuntimeError, "Argument is not a file object"); } #endif arg2 = swig_obj[0]; { try { Prelude_IDMEF_write(arg1,arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_read(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[2] ; int result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_read" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); #if PY_VERSION_HEX < 0x03000000 if ( !PyFile_Check((PyObject *) swig_obj[0]) ) { SWIG_exception_fail(SWIG_RuntimeError, "Argument is not a file object"); } #else extern PyTypeObject PyIOBase_Type; if ( ! PyObject_IsInstance((PyObject *) swig_obj[0], (PyObject *) &PyIOBase_Type) ) { SWIG_exception_fail(SWIG_RuntimeError, "Argument is not a file object"); } #endif arg2 = swig_obj[0]; { try { result = (int)Prelude_IDMEF_read(arg1,arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) { result = 0; } else { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_readExcept(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[2] ; int result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_readExcept" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); #if PY_VERSION_HEX < 0x03000000 if ( !PyFile_Check((PyObject *) swig_obj[0]) ) { SWIG_exception_fail(SWIG_RuntimeError, "Argument is not a file object"); } #else extern PyTypeObject PyIOBase_Type; if ( ! PyObject_IsInstance((PyObject *) swig_obj[0], (PyObject *) &PyIOBase_Type) ) { SWIG_exception_fail(SWIG_RuntimeError, "Argument is not a file object"); } #endif arg2 = swig_obj[0]; { try { result = (int)Prelude_IDMEF_readExcept(arg1,arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) { PyErr_SetString(PyExc_EOFError, e.what()); } else { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); } SWIG_fail; } } resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IDMEF_get(PyObject *self, PyObject *args) { PyObject *resultobj = 0; Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject *swig_obj[2] ; Prelude::IDMEFValue result; if (!args) SWIG_fail; swig_obj[0] = args; res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDMEF_get" "', argument " "1"" of type '" "Prelude::IDMEF *""'"); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(swig_obj[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDMEF_get" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); { try { result = Prelude_IDMEF_get(arg1,(char const *)arg2); } catch(Prelude::PreludeError &e) { SWIG_Python_Raise(SWIG_NewPointerObj(new PreludeError(e), SWIGTYPE_p_Prelude__PreludeError, SWIG_POINTER_OWN), "PreludeError", SWIGTYPE_p_Prelude__PreludeError); SWIG_fail; } } { int ret; if ( (&result)->isNull() ) { Py_INCREF(Py_None); resultobj = Py_None; } else { ret = IDMEFValue_to_SWIG(self, result, NULL, &resultobj); if ( ret < 0 ) { std::string s = "IDMEFValue typemap does not handle value of type '"; s += idmef_value_type_to_string((idmef_value_type_id_t) (&result)->getType()); s += "'"; SWIG_exception_fail(SWIG_ValueError, s.c_str()); } } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGPY_DESTRUCTOR_CLOSURE(_wrap_delete_IDMEF) /* defines _wrap_delete_IDMEF_destructor_closure */ SWIGPY_OBJOBJARGPROC_CLOSURE(_wrap_IDMEF_set) /* defines _wrap_IDMEF_set_objobjargproc_closure */ SWIGPY_REPRFUNC_CLOSURE(_wrap_IDMEF_toString) /* defines _wrap_IDMEF_toString_reprfunc_closure */ static PyMethodDef SwigMethods[] = { { "SWIG_PyInstanceMethod_New", SWIG_PyInstanceMethod_New, METH_O, NULL}, { "SWIG_PyStaticMethod_New", SWIG_PyStaticMethod_New, METH_O, NULL}, { "python2_return_unicode", _wrap_python2_return_unicode, METH_O, NULL}, { "checkVersion", _wrap_checkVersion, METH_VARARGS, NULL}, { "Client_setRecvTimeout", _wrap_Client_setRecvTimeout, METH_VARARGS, NULL}, { "PreludeLog_setLevel", _wrap_PreludeLog_setLevel, METH_O, NULL}, { "PreludeLog_setDebugLevel", _wrap_PreludeLog_setDebugLevel, METH_O, NULL}, { "PreludeLog_setFlags", _wrap_PreludeLog_setFlags, METH_O, NULL}, { "PreludeLog_getFlags", _wrap_PreludeLog_getFlags, METH_NOARGS, NULL}, { "PreludeLog_setLogfile", _wrap_PreludeLog_setLogfile, METH_O, NULL}, { "PreludeLog_setCallback", _wrap_PreludeLog_setCallback, METH_O, NULL}, { NULL, NULL, 0, NULL } }; static PyMethodDef SwigMethods_proxydocs[] = { { "SWIG_PyInstanceMethod_New", SWIG_PyInstanceMethod_New, METH_O, NULL}, { "SWIG_PyStaticMethod_New", SWIG_PyStaticMethod_New, METH_O, NULL}, { "python2_return_unicode", _wrap_python2_return_unicode, METH_O, NULL}, { "checkVersion", _wrap_checkVersion, METH_VARARGS, NULL}, { "Client_setRecvTimeout", _wrap_Client_setRecvTimeout, METH_VARARGS, NULL}, { "PreludeLog_setLevel", _wrap_PreludeLog_setLevel, METH_O, NULL}, { "PreludeLog_setDebugLevel", _wrap_PreludeLog_setDebugLevel, METH_O, NULL}, { "PreludeLog_setFlags", _wrap_PreludeLog_setFlags, METH_O, NULL}, { "PreludeLog_getFlags", _wrap_PreludeLog_getFlags, METH_NOARGS, NULL}, { "PreludeLog_setLogfile", _wrap_PreludeLog_setLogfile, METH_O, NULL}, { "PreludeLog_setCallback", _wrap_PreludeLog_setCallback, METH_O, NULL}, { NULL, NULL, 0, NULL } }; static SwigPyGetSet SwigPyIterator___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__swig__SwigPyIterator_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &SwigPyIterator___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__swig__SwigPyIterator_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; switch (op) { case Py_EQ : result = _wrap_SwigPyIterator___eq__(self, other); break; case Py_NE : result = _wrap_SwigPyIterator___ne__(self, other); break; default : break; } if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__swig__SwigPyIterator_methods[] = { { "value", _wrap_SwigPyIterator_value, METH_NOARGS, "" }, { "incr", _wrap_SwigPyIterator_incr, METH_VARARGS, "" }, { "decr", _wrap_SwigPyIterator_decr, METH_VARARGS, "" }, { "distance", _wrap_SwigPyIterator_distance, METH_O, "" }, { "equal", _wrap_SwigPyIterator_equal, METH_O, "" }, { "copy", _wrap_SwigPyIterator_copy, METH_NOARGS, "" }, { "next", _wrap_SwigPyIterator_next, METH_NOARGS, "" }, { "__next__", _wrap_SwigPyIterator___next__, METH_NOARGS, "" }, { "previous", _wrap_SwigPyIterator_previous, METH_NOARGS, "" }, { "advance", _wrap_SwigPyIterator_advance, METH_O, "" }, { "__eq__", _wrap_SwigPyIterator___eq__, METH_O, "" }, { "__ne__", _wrap_SwigPyIterator___ne__, METH_O, "" }, { "__iadd__", _wrap_SwigPyIterator___iadd__, METH_O, "" }, { "__isub__", _wrap_SwigPyIterator___isub__, METH_O, "" }, { "__add__", _wrap_SwigPyIterator___add__, METH_O, "" }, { "__sub__", _wrap_SwigPyIterator___sub__, METH_VARARGS, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__swig__SwigPyIterator_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.SwigPyIterator", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_SwigPyIterator_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif (reprfunc) 0, /* tp_repr */ &SwigPyBuiltin__swig__SwigPyIterator_type.as_number, /* tp_as_number */ &SwigPyBuiltin__swig__SwigPyIterator_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__swig__SwigPyIterator_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__swig__SwigPyIterator_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "swig::SwigPyIterator", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__swig__SwigPyIterator_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ &swig::make_output_iterator_builtin, /* tp_iter */ _wrap_SwigPyIterator___next___iternextfunc_closure, /* tp_iternext */ SwigPyBuiltin__swig__SwigPyIterator_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__swig__SwigPyIterator_getset, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ SwigPyBuiltin_BadInit, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { _wrap_SwigPyIterator___add__, /* nb_add */ _wrap_SwigPyIterator___sub___binaryfunc_closure, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif _wrap_SwigPyIterator___iadd__, /* nb_inplace_add */ _wrap_SwigPyIterator___isub__, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ (binaryfunc) 0, /* mp_subscript */ (objobjargproc) 0, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__swig__SwigPyIterator_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__swig__SwigPyIterator_type}; static SwigPyGetSet ClientProfile___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__ClientProfile_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &ClientProfile___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__ClientProfile_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__ClientProfile_methods[] = { { "getUid", _wrap_ClientProfile_getUid, METH_NOARGS, "" }, { "getGid", _wrap_ClientProfile_getGid, METH_NOARGS, "" }, { "getName", _wrap_ClientProfile_getName, METH_NOARGS, "" }, { "setName", _wrap_ClientProfile_setName, METH_O, "" }, { "getAnalyzerId", _wrap_ClientProfile_getAnalyzerId, METH_NOARGS, "" }, { "setAnalyzerId", _wrap_ClientProfile_setAnalyzerId, METH_O, "" }, { "getConfigFilename", _wrap_ClientProfile_getConfigFilename, METH_NOARGS, "" }, { "getAnalyzeridFilename", _wrap_ClientProfile_getAnalyzeridFilename, METH_NOARGS, "" }, { "getTlsKeyFilename", _wrap_ClientProfile_getTlsKeyFilename, METH_NOARGS, "" }, { "getTlsServerCaCertFilename", _wrap_ClientProfile_getTlsServerCaCertFilename, METH_NOARGS, "" }, { "getTlsServerKeyCertFilename", _wrap_ClientProfile_getTlsServerKeyCertFilename, METH_NOARGS, "" }, { "getTlsServerCrlFilename", _wrap_ClientProfile_getTlsServerCrlFilename, METH_NOARGS, "" }, { "getTlsClientKeyCertFilename", _wrap_ClientProfile_getTlsClientKeyCertFilename, METH_NOARGS, "" }, { "getTlsClientTrustedCertFilename", _wrap_ClientProfile_getTlsClientTrustedCertFilename, METH_NOARGS, "" }, { "getBackupDirname", _wrap_ClientProfile_getBackupDirname, METH_NOARGS, "" }, { "getProfileDirname", _wrap_ClientProfile_getProfileDirname, METH_NOARGS, "" }, { "setPrefix", _wrap_ClientProfile_setPrefix, METH_O, "" }, { "getPrefix", _wrap_ClientProfile_getPrefix, METH_NOARGS, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__ClientProfile_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.ClientProfile", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_ClientProfile_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif (reprfunc) 0, /* tp_repr */ &SwigPyBuiltin__Prelude__ClientProfile_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__ClientProfile_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__ClientProfile_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__ClientProfile_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::ClientProfile", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__ClientProfile_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__ClientProfile_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__ClientProfile_getset, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_ClientProfile, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ (binaryfunc) 0, /* mp_subscript */ (objobjargproc) 0, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__ClientProfile_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__ClientProfile_type}; static SwigPyGetSet Connection___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__Connection_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &Connection___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__Connection_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__Connection_methods[] = { { "getConnection", _wrap_Connection_getConnection, METH_NOARGS, "" }, { "close", _wrap_Connection_close, METH_NOARGS, "" }, { "connect", _wrap_Connection_connect, METH_VARARGS, "" }, { "setState", _wrap_Connection_setState, METH_O, "" }, { "getState", _wrap_Connection_getState, METH_NOARGS, "" }, { "setData", _wrap_Connection_setData, METH_O, "" }, { "getData", _wrap_Connection_getData, METH_NOARGS, "" }, { "getPermission", _wrap_Connection_getPermission, METH_NOARGS, "" }, { "setPeerAnalyzerid", _wrap_Connection_setPeerAnalyzerid, METH_O, "" }, { "getPeerAnalyzerid", _wrap_Connection_getPeerAnalyzerid, METH_NOARGS, "" }, { "getLocalAddr", _wrap_Connection_getLocalAddr, METH_NOARGS, "" }, { "getLocalPort", _wrap_Connection_getLocalPort, METH_NOARGS, "" }, { "getPeerAddr", _wrap_Connection_getPeerAddr, METH_NOARGS, "" }, { "getPeerPort", _wrap_Connection_getPeerPort, METH_NOARGS, "" }, { "isAlive", _wrap_Connection_isAlive, METH_NOARGS, "" }, { "getFd", _wrap_Connection_getFd, METH_NOARGS, "" }, { "recvIDMEF", _wrap_Connection_recvIDMEF, METH_NOARGS, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__Connection_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.Connection", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_Connection_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif (reprfunc) 0, /* tp_repr */ &SwigPyBuiltin__Prelude__Connection_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__Connection_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__Connection_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__Connection_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::Connection", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__Connection_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__Connection_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__Connection_getset,/* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_Connection, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ (binaryfunc) 0, /* mp_subscript */ (objobjargproc) 0, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__Connection_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__Connection_type}; static SwigPyGetSet ConnectionPool___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__ConnectionPool_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &ConnectionPool___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__ConnectionPool_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__ConnectionPool_methods[] = { { "init", _wrap_ConnectionPool_init, METH_NOARGS, "" }, { "setConnectionString", _wrap_ConnectionPool_setConnectionString, METH_O, "" }, { "getConnectionString", _wrap_ConnectionPool_getConnectionString, METH_NOARGS, "" }, { "getConnectionList", _wrap_ConnectionPool_getConnectionList, METH_NOARGS, "" }, { "setFlags", _wrap_ConnectionPool_setFlags, METH_O, "" }, { "getFlags", _wrap_ConnectionPool_getFlags, METH_NOARGS, "" }, { "setData", _wrap_ConnectionPool_setData, METH_O, "" }, { "getData", _wrap_ConnectionPool_getData, METH_NOARGS, "" }, { "addConnection", _wrap_ConnectionPool_addConnection, METH_O, "" }, { "delConnection", _wrap_ConnectionPool_delConnection, METH_O, "" }, { "setConnectionAlive", _wrap_ConnectionPool_setConnectionAlive, METH_O, "" }, { "setConnectionDead", _wrap_ConnectionPool_setConnectionDead, METH_O, "" }, { "setRequiredPermission", _wrap_ConnectionPool_setRequiredPermission, METH_O, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__ConnectionPool_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.ConnectionPool", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_ConnectionPool_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif (reprfunc) 0, /* tp_repr */ &SwigPyBuiltin__Prelude__ConnectionPool_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__ConnectionPool_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__ConnectionPool_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__ConnectionPool_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::ConnectionPool", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__ConnectionPool_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__ConnectionPool_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__ConnectionPool_getset, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_ConnectionPool, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ (binaryfunc) 0, /* mp_subscript */ (objobjargproc) 0, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__ConnectionPool_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__ConnectionPool_type}; static SwigPyGetSet Client___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__Client_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &Client___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__Client_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__Client_methods[] = { { "start", _wrap_Client_start, METH_NOARGS, "" }, { "init", _wrap_Client_init, METH_NOARGS, "" }, { "getClient", _wrap_Client_getClient, METH_NOARGS, "" }, { "sendIDMEF", _wrap_Client_sendIDMEF, METH_O, "" }, { "recvIDMEF", (PyCFunction)(void(*)(void))_wrap_Client_recvIDMEF, METH_VARARGS|METH_KEYWORDS, "" }, { "getFlags", _wrap_Client_getFlags, METH_NOARGS, "" }, { "setFlags", _wrap_Client_setFlags, METH_O, "" }, { "getRequiredPermission", _wrap_Client_getRequiredPermission, METH_NOARGS, "" }, { "setRequiredPermission", _wrap_Client_setRequiredPermission, METH_O, "" }, { "getConfigFilename", _wrap_Client_getConfigFilename, METH_NOARGS, "" }, { "setConfigFilename", _wrap_Client_setConfigFilename, METH_O, "" }, { "getConnectionPool", _wrap_Client_getConnectionPool, METH_NOARGS, "" }, { "setConnectionPool", _wrap_Client_setConnectionPool, METH_O, "" }, { "__lshift__", _wrap_Client___lshift__, METH_O, "" }, { "__rshift__", _wrap_Client___rshift__, METH_O, "" }, { "setRecvTimeout", (PyCFunction)(void(*)(void))_wrap_Client_setRecvTimeout, METH_STATIC|METH_VARARGS, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__Client_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.Client", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_Client_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif (reprfunc) 0, /* tp_repr */ &SwigPyBuiltin__Prelude__Client_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__Client_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__Client_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__Client_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::Client", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__Client_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__Client_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__Client_getset, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_Client, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ _wrap_Client___lshift__, /* nb_lshift */ _wrap_Client___rshift__, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ (binaryfunc) 0, /* mp_subscript */ (objobjargproc) 0, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__Client_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__Client_type}; static SwigPyGetSet PreludeLog___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__PreludeLog_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &PreludeLog___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__PreludeLog_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__PreludeLog_methods[] = { { "setLevel", (PyCFunction)(void(*)(void))_wrap_PreludeLog_setLevel, METH_STATIC|METH_O, "" }, { "setDebugLevel", (PyCFunction)(void(*)(void))_wrap_PreludeLog_setDebugLevel, METH_STATIC|METH_O, "" }, { "setFlags", (PyCFunction)(void(*)(void))_wrap_PreludeLog_setFlags, METH_STATIC|METH_O, "" }, { "getFlags", (PyCFunction)(void(*)(void))_wrap_PreludeLog_getFlags, METH_STATIC|METH_NOARGS, "" }, { "setLogfile", (PyCFunction)(void(*)(void))_wrap_PreludeLog_setLogfile, METH_STATIC|METH_O, "" }, { "setCallback", (PyCFunction)(void(*)(void))_wrap_PreludeLog_setCallback, METH_STATIC|METH_O, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__PreludeLog_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.PreludeLog", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_PreludeLog_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif (reprfunc) 0, /* tp_repr */ &SwigPyBuiltin__Prelude__PreludeLog_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__PreludeLog_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__PreludeLog_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__PreludeLog_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::PreludeLog", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__PreludeLog_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__PreludeLog_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__PreludeLog_getset,/* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_PreludeLog, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ (binaryfunc) 0, /* mp_subscript */ (objobjargproc) 0, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__PreludeLog_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__PreludeLog_type}; static SwigPyGetSet PreludeError___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__PreludeError_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &PreludeError___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__PreludeError_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__PreludeError_methods[] = { { "getCode", _wrap_PreludeError_getCode, METH_NOARGS, "" }, { "what", _wrap_PreludeError_what, METH_NOARGS, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__PreludeError_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.PreludeError", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_PreludeError_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif (reprfunc) 0, /* tp_repr */ &SwigPyBuiltin__Prelude__PreludeError_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__PreludeError_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__PreludeError_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ _wrap_PreludeError_what_reprfunc_closure, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__PreludeError_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::PreludeError", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__PreludeError_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__PreludeError_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__PreludeError_getset, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_PreludeError, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ (binaryfunc) 0, /* mp_subscript */ (objobjargproc) 0, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__PreludeError_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__PreludeError_type}; static SwigPyGetSet ClientEasy___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__ClientEasy_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &ClientEasy___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__ClientEasy_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__ClientEasy_methods[] = { { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__ClientEasy_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.ClientEasy", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_ClientEasy_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif (reprfunc) 0, /* tp_repr */ &SwigPyBuiltin__Prelude__ClientEasy_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__ClientEasy_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__ClientEasy_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__ClientEasy_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::ClientEasy", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__ClientEasy_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__ClientEasy_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__ClientEasy_getset,/* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_ClientEasy, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ (binaryfunc) 0, /* mp_subscript */ (objobjargproc) 0, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__ClientEasy_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__ClientEasy_type}; static SwigPyGetSet IDMEFCriterion___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__IDMEFCriterion_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &IDMEFCriterion___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__IDMEFCriterion_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__IDMEFCriterion_methods[] = { { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__IDMEFCriterion_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.IDMEFCriterion", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_IDMEFCriterion_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif (reprfunc) 0, /* tp_repr */ &SwigPyBuiltin__Prelude__IDMEFCriterion_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__IDMEFCriterion_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__IDMEFCriterion_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__IDMEFCriterion_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::IDMEFCriterion", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__IDMEFCriterion_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__IDMEFCriterion_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__IDMEFCriterion_getset, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_IDMEFCriterion, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ (binaryfunc) 0, /* mp_subscript */ (objobjargproc) 0, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__IDMEFCriterion_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEFCriterion_type}; static SwigPyGetSet IDMEFCriteria___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__IDMEFCriteria_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &IDMEFCriteria___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__IDMEFCriteria_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__IDMEFCriteria_methods[] = { { "match", _wrap_IDMEFCriteria_match, METH_O, "" }, { "clone", _wrap_IDMEFCriteria_clone, METH_NOARGS, "" }, { "andCriteria", _wrap_IDMEFCriteria_andCriteria, METH_O, "" }, { "orCriteria", _wrap_IDMEFCriteria_orCriteria, METH_O, "" }, { "toString", _wrap_IDMEFCriteria_toString, METH_NOARGS, "" }, { "__reduce__", _wrap_IDMEFCriteria___reduce__, METH_NOARGS, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__IDMEFCriteria_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.IDMEFCriteria", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_IDMEFCriteria_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif _wrap_IDMEFCriteria_toString_reprfunc_closure, /* tp_repr */ &SwigPyBuiltin__Prelude__IDMEFCriteria_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__IDMEFCriteria_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__IDMEFCriteria_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__IDMEFCriteria_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::IDMEFCriteria", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__IDMEFCriteria_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__IDMEFCriteria_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__IDMEFCriteria_getset, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_IDMEFCriteria, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ (binaryfunc) 0, /* mp_subscript */ (objobjargproc) 0, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__IDMEFCriteria_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEFCriteria_type}; static SwigPyGetSet IDMEFValue___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__IDMEFValue_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &IDMEFValue___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__IDMEFValue_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; switch (op) { case Py_EQ : result = _wrap_IDMEFValue___eq__(self, other); break; case Py_LE : result = _wrap_IDMEFValue___le__(self, other); break; case Py_GE : result = _wrap_IDMEFValue___ge__(self, other); break; case Py_LT : result = _wrap_IDMEFValue___lt__(self, other); break; case Py_NE : result = _wrap_IDMEFValue___ne__(self, other); break; case Py_GT : result = _wrap_IDMEFValue___gt__(self, other); break; default : break; } if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__IDMEFValue_methods[] = { { "getType", _wrap_IDMEFValue_getType, METH_NOARGS, "" }, { "isNull", _wrap_IDMEFValue_isNull, METH_NOARGS, "" }, { "match", _wrap_IDMEFValue_match, METH_VARARGS, "" }, { "clone", _wrap_IDMEFValue_clone, METH_NOARGS, "" }, { "toString", _wrap_IDMEFValue_toString, METH_NOARGS, "" }, { "__eq__", _wrap_IDMEFValue___eq__, METH_VARARGS, "" }, { "__le__", _wrap_IDMEFValue___le__, METH_O, "" }, { "__ge__", _wrap_IDMEFValue___ge__, METH_O, "" }, { "__lt__", _wrap_IDMEFValue___lt__, METH_O, "" }, { "__gt__", _wrap_IDMEFValue___gt__, METH_O, "" }, { "__ne__", _wrap_IDMEFValue___ne__, METH_O, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__IDMEFValue_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.IDMEFValue", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_IDMEFValue_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif _wrap_IDMEFValue_toString_reprfunc_closure, /* tp_repr */ &SwigPyBuiltin__Prelude__IDMEFValue_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__IDMEFValue_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__IDMEFValue_type.as_mapping, /* tp_as_mapping */ _wrap_IDMEFValue_getType_hashfunc_closure,/* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__IDMEFValue_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::IDMEFValue", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__IDMEFValue_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__IDMEFValue_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__IDMEFValue_getset,/* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_IDMEFValue, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ (binaryfunc) 0, /* mp_subscript */ (objobjargproc) 0, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__IDMEFValue_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEFValue_type}; static SwigPyGetSet IDMEFPath___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__IDMEFPath_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &IDMEFPath___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__IDMEFPath_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__IDMEFPath_methods[] = { { "set", _wrap_IDMEFPath_set, METH_VARARGS, "" }, { "getClass", (PyCFunction)(void(*)(void))_wrap_IDMEFPath_getClass, METH_VARARGS|METH_KEYWORDS, "" }, { "getValueType", (PyCFunction)(void(*)(void))_wrap_IDMEFPath_getValueType, METH_VARARGS|METH_KEYWORDS, "" }, { "setIndex", (PyCFunction)(void(*)(void))_wrap_IDMEFPath_setIndex, METH_VARARGS|METH_KEYWORDS, "" }, { "undefineIndex", (PyCFunction)(void(*)(void))_wrap_IDMEFPath_undefineIndex, METH_VARARGS|METH_KEYWORDS, "" }, { "getIndex", (PyCFunction)(void(*)(void))_wrap_IDMEFPath_getIndex, METH_VARARGS|METH_KEYWORDS, "" }, { "makeChild", _wrap_IDMEFPath_makeChild, METH_VARARGS, "" }, { "makeParent", _wrap_IDMEFPath_makeParent, METH_NOARGS, "" }, { "compare", (PyCFunction)(void(*)(void))_wrap_IDMEFPath_compare, METH_VARARGS|METH_KEYWORDS, "" }, { "clone", _wrap_IDMEFPath_clone, METH_NOARGS, "" }, { "checkOperator", _wrap_IDMEFPath_checkOperator, METH_O, "" }, { "getApplicableOperators", _wrap_IDMEFPath_getApplicableOperators, METH_NOARGS, "" }, { "getName", (PyCFunction)(void(*)(void))_wrap_IDMEFPath_getName, METH_VARARGS|METH_KEYWORDS, "" }, { "isAmbiguous", _wrap_IDMEFPath_isAmbiguous, METH_NOARGS, "" }, { "hasLists", _wrap_IDMEFPath_hasLists, METH_NOARGS, "" }, { "isList", (PyCFunction)(void(*)(void))_wrap_IDMEFPath_isList, METH_VARARGS|METH_KEYWORDS, "" }, { "getDepth", _wrap_IDMEFPath_getDepth, METH_NOARGS, "" }, { "__reduce__", _wrap_IDMEFPath___reduce__, METH_NOARGS, "" }, { "get", _wrap_IDMEFPath_get, METH_O, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__IDMEFPath_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.IDMEFPath", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_IDMEFPath_destructor_closure,/* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif (reprfunc) 0, /* tp_repr */ &SwigPyBuiltin__Prelude__IDMEFPath_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__IDMEFPath_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__IDMEFPath_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__IDMEFPath_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::IDMEFPath", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__IDMEFPath_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__IDMEFPath_methods,/* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__IDMEFPath_getset, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_IDMEFPath, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ _wrap_IDMEFPath_get, /* mp_subscript */ _wrap_IDMEFPath_set_objobjargproc_closure,/* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__IDMEFPath_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEFPath_type}; static SwigPyGetSet IDMEFTime___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__IDMEFTime_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &IDMEFTime___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__IDMEFTime_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; switch (op) { case Py_EQ : result = _wrap_IDMEFTime___eq__(self, other); break; case Py_LE : result = _wrap_IDMEFTime___le__(self, other); break; case Py_NE : result = _wrap_IDMEFTime___ne__(self, other); break; case Py_GE : result = _wrap_IDMEFTime___ge__(self, other); break; case Py_LT : result = _wrap_IDMEFTime___lt__(self, other); break; case Py_GT : result = _wrap_IDMEFTime___gt__(self, other); break; default : break; } if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__IDMEFTime_methods[] = { { "set", _wrap_IDMEFTime_set, METH_VARARGS, "" }, { "setSec", _wrap_IDMEFTime_setSec, METH_O, "" }, { "setUSec", _wrap_IDMEFTime_setUSec, METH_O, "" }, { "setGmtOffset", _wrap_IDMEFTime_setGmtOffset, METH_O, "" }, { "getSec", _wrap_IDMEFTime_getSec, METH_NOARGS, "" }, { "getUSec", _wrap_IDMEFTime_getUSec, METH_NOARGS, "" }, { "getGmtOffset", _wrap_IDMEFTime_getGmtOffset, METH_NOARGS, "" }, { "getTime", _wrap_IDMEFTime_getTime, METH_NOARGS, "" }, { "clone", _wrap_IDMEFTime_clone, METH_NOARGS, "" }, { "toString", _wrap_IDMEFTime_toString, METH_NOARGS, "" }, { "__ne__", _wrap_IDMEFTime___ne__, METH_O, "" }, { "__ge__", _wrap_IDMEFTime___ge__, METH_O, "" }, { "__le__", _wrap_IDMEFTime___le__, METH_O, "" }, { "__eq__", _wrap_IDMEFTime___eq__, METH_O, "" }, { "__gt__", _wrap_IDMEFTime___gt__, METH_O, "" }, { "__lt__", _wrap_IDMEFTime___lt__, METH_O, "" }, { "_getSec2", _wrap_IDMEFTime__getSec2, METH_NOARGS, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__IDMEFTime_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.IDMEFTime", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_IDMEFTime_destructor_closure,/* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif _wrap_IDMEFTime_toString_reprfunc_closure,/* tp_repr */ &SwigPyBuiltin__Prelude__IDMEFTime_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__IDMEFTime_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__IDMEFTime_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__IDMEFTime_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::IDMEFTime", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__IDMEFTime_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__IDMEFTime_methods,/* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__IDMEFTime_getset, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_IDMEFTime, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif _wrap_IDMEFTime_getSec_unaryfunc_closure, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else _wrap_IDMEFTime__getSec2_unaryfunc_closure, /* nb_long */ #endif _wrap_IDMEFTime_getTime_unaryfunc_closure,/* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ (binaryfunc) 0, /* mp_subscript */ _wrap_IDMEFTime_set_objobjargproc_closure,/* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__IDMEFTime_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEFTime_type}; static SwigPyGetSet IDMEFClass___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__IDMEFClass_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &IDMEFClass___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__IDMEFClass_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__IDMEFClass_methods[] = { { "getDepth", _wrap_IDMEFClass_getDepth, METH_NOARGS, "" }, { "get", _wrap_IDMEFClass_get, METH_VARARGS, "" }, { "getChildCount", _wrap_IDMEFClass_getChildCount, METH_NOARGS, "" }, { "isList", _wrap_IDMEFClass_isList, METH_NOARGS, "" }, { "isKeyedList", _wrap_IDMEFClass_isKeyedList, METH_NOARGS, "" }, { "getName", _wrap_IDMEFClass_getName, METH_NOARGS, "" }, { "toString", _wrap_IDMEFClass_toString, METH_NOARGS, "" }, { "getValueType", _wrap_IDMEFClass_getValueType, METH_NOARGS, "" }, { "getAttributes", _wrap_IDMEFClass_getAttributes, METH_NOARGS, "" }, { "getPath", (PyCFunction)(void(*)(void))_wrap_IDMEFClass_getPath, METH_VARARGS|METH_KEYWORDS, "" }, { "getEnumValues", _wrap_IDMEFClass_getEnumValues, METH_NOARGS, "" }, { "getApplicableOperator", _wrap_IDMEFClass_getApplicableOperator, METH_NOARGS, "" }, { "_get2", _wrap_IDMEFClass__get2, METH_O, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__IDMEFClass_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.IDMEFClass", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_IDMEFClass_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif _wrap_IDMEFClass_toString_reprfunc_closure, /* tp_repr */ &SwigPyBuiltin__Prelude__IDMEFClass_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__IDMEFClass_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__IDMEFClass_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ _wrap_IDMEFClass_getName_reprfunc_closure,/* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__IDMEFClass_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::IDMEFClass", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__IDMEFClass_richcompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__IDMEFClass_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__IDMEFClass_getset,/* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_IDMEFClass, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ (binaryfunc) 0, /* nb_lshift */ (binaryfunc) 0, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { _wrap_IDMEFClass_getChildCount_lenfunc_closure, /* mp_length */ _wrap_IDMEFClass_get_binaryfunc_closure, /* mp_subscript */ (objobjargproc) 0, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ _wrap_IDMEFClass__get2_ssizeargfunc_closure, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif (objobjproc) 0, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__IDMEFClass_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEFClass_type}; static SwigPyGetSet IDMEF___dict___getset = { SwigPyObject_get___dict__, 0 }; SWIGINTERN PyGetSetDef SwigPyBuiltin__Prelude__IDMEF_getset[] = { { (char *)"__dict__", SwigPyBuiltin_FunpackGetterClosure, 0, (char *)"", &IDMEF___dict___getset }, { NULL, NULL, NULL, NULL, NULL } /* Sentinel */ }; SWIGINTERN PyObject * SwigPyBuiltin__Prelude__IDMEF_richcompare(PyObject *self, PyObject *other, int op) { PyObject *result = NULL; switch (op) { case Py_EQ : result = _wrap_IDMEF___eq__(self, other); break; default : break; } if (!result) { if (SwigPyObject_Check(self) && SwigPyObject_Check(other)) { result = SwigPyObject_richcompare((SwigPyObject *)self, (SwigPyObject *)other, op); } else { result = Py_NotImplemented; Py_INCREF(result); } } return result; } SWIGINTERN PyMethodDef SwigPyBuiltin__Prelude__IDMEF_methods[] = { { "set", _wrap_IDMEF_set, METH_VARARGS, "" }, { "clone", _wrap_IDMEF_clone, METH_NOARGS, "" }, { "getId", _wrap_IDMEF_getId, METH_NOARGS, "" }, { "toString", _wrap_IDMEF_toString, METH_NOARGS, "" }, { "toJSON", _wrap_IDMEF_toJSON, METH_NOARGS, "" }, { "__eq__", _wrap_IDMEF___eq__, METH_O, "" }, { "__getstate__", _wrap_IDMEF___getstate__, METH_NOARGS, "" }, { "__setstate__", _wrap_IDMEF___setstate__, METH_O, "" }, { "__contains__", _wrap_IDMEF___contains__, METH_O, "" }, { "write", _wrap_IDMEF_write, METH_O, "" }, { "read", _wrap_IDMEF_read, METH_O, "" }, { "readExcept", _wrap_IDMEF_readExcept, METH_O, "" }, { "get", _wrap_IDMEF_get, METH_O, "" }, { NULL, NULL, 0, NULL } /* Sentinel */ }; static PyHeapTypeObject SwigPyBuiltin__Prelude__IDMEF_type = { { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "prelude.IDMEF", /* tp_name */ sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ _wrap_delete_IDMEF_destructor_closure, /* tp_dealloc */ (printfunc) 0, /* tp_print */ (getattrfunc) 0, /* tp_getattr */ (setattrfunc) 0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 0, /* tp_compare */ #else (cmpfunc) 0, /* tp_compare */ #endif _wrap_IDMEF_toString_reprfunc_closure, /* tp_repr */ &SwigPyBuiltin__Prelude__IDMEF_type.as_number, /* tp_as_number */ &SwigPyBuiltin__Prelude__IDMEF_type.as_sequence, /* tp_as_sequence */ &SwigPyBuiltin__Prelude__IDMEF_type.as_mapping, /* tp_as_mapping */ SwigPyObject_hash, /* tp_hash */ (ternaryfunc) 0, /* tp_call */ (reprfunc) 0, /* tp_str */ (getattrofunc) 0, /* tp_getattro */ (setattrofunc) 0, /* tp_setattro */ &SwigPyBuiltin__Prelude__IDMEF_type.as_buffer, /* tp_as_buffer */ #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */ #else Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES, /* tp_flags */ #endif "Prelude::IDMEF", /* tp_doc */ (traverseproc) 0, /* tp_traverse */ (inquiry) 0, /* tp_clear */ SwigPyBuiltin__Prelude__IDMEF_richcompare,/* tp_richcompare */ 0, /* tp_weaklistoffset */ (getiterfunc) 0, /* tp_iter */ (iternextfunc) 0, /* tp_iternext */ SwigPyBuiltin__Prelude__IDMEF_methods, /* tp_methods */ 0, /* tp_members */ SwigPyBuiltin__Prelude__IDMEF_getset, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ (descrgetfunc) 0, /* tp_descr_get */ (descrsetfunc) 0, /* tp_descr_set */ offsetof(SwigPyObject, dict), /* tp_dictoffset */ _wrap_new_IDMEF, /* tp_init */ (allocfunc) 0, /* tp_alloc */ (newfunc) 0, /* tp_new */ (freefunc) 0, /* tp_free */ (inquiry) 0, /* tp_is_gc */ (PyObject *) 0, /* tp_bases */ (PyObject *) 0, /* tp_mro */ (PyObject *) 0, /* tp_cache */ (PyObject *) 0, /* tp_subclasses */ (PyObject *) 0, /* tp_weaklist */ (destructor) 0, /* tp_del */ (int) 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 (destructor) 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS (Py_ssize_t) 0, /* tp_allocs */ (Py_ssize_t) 0, /* tp_frees */ (Py_ssize_t) 0, /* tp_maxalloc */ 0, /* tp_prev */ 0, /* tp_next */ #endif }, #if PY_VERSION_HEX >= 0x03050000 { (unaryfunc) 0, /* am_await */ (unaryfunc) 0, /* am_aiter */ (unaryfunc) 0, /* am_anext */ }, #endif { (binaryfunc) 0, /* nb_add */ (binaryfunc) 0, /* nb_subtract */ (binaryfunc) 0, /* nb_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_divide */ #endif (binaryfunc) 0, /* nb_remainder */ (binaryfunc) 0, /* nb_divmod */ (ternaryfunc) 0, /* nb_power */ (unaryfunc) 0, /* nb_negative */ (unaryfunc) 0, /* nb_positive */ (unaryfunc) 0, /* nb_absolute */ (inquiry) 0, /* nb_nonzero */ (unaryfunc) 0, /* nb_invert */ _wrap_IDMEF_readExcept, /* nb_lshift */ _wrap_IDMEF_write, /* nb_rshift */ (binaryfunc) 0, /* nb_and */ (binaryfunc) 0, /* nb_xor */ (binaryfunc) 0, /* nb_or */ #if PY_VERSION_HEX < 0x03000000 (coercion) 0, /* nb_coerce */ #endif (unaryfunc) 0, /* nb_int */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* nb_reserved */ #else (unaryfunc) 0, /* nb_long */ #endif (unaryfunc) 0, /* nb_float */ #if PY_VERSION_HEX < 0x03000000 (unaryfunc) 0, /* nb_oct */ (unaryfunc) 0, /* nb_hex */ #endif (binaryfunc) 0, /* nb_inplace_add */ (binaryfunc) 0, /* nb_inplace_subtract */ (binaryfunc) 0, /* nb_inplace_multiply */ #if PY_VERSION_HEX < 0x03000000 (binaryfunc) 0, /* nb_inplace_divide */ #endif (binaryfunc) 0, /* nb_inplace_remainder */ (ternaryfunc) 0, /* nb_inplace_power */ (binaryfunc) 0, /* nb_inplace_lshift */ (binaryfunc) 0, /* nb_inplace_rshift */ (binaryfunc) 0, /* nb_inplace_and */ (binaryfunc) 0, /* nb_inplace_xor */ (binaryfunc) 0, /* nb_inplace_or */ (binaryfunc) 0, /* nb_floor_divide */ (binaryfunc) 0, /* nb_true_divide */ (binaryfunc) 0, /* nb_inplace_floor_divide */ (binaryfunc) 0, /* nb_inplace_true_divide */ (unaryfunc) 0, /* nb_index */ #if PY_VERSION_HEX >= 0x03050000 (binaryfunc) 0, /* nb_matrix_multiply */ (binaryfunc) 0, /* nb_inplace_matrix_multiply */ #endif }, { (lenfunc) 0, /* mp_length */ _wrap_IDMEF_get, /* mp_subscript */ _wrap_IDMEF_set_objobjargproc_closure, /* mp_ass_subscript */ }, { (lenfunc) 0, /* sq_length */ (binaryfunc) 0, /* sq_concat */ (ssizeargfunc) 0, /* sq_repeat */ (ssizeargfunc) 0, /* sq_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_slice */ #else (ssizessizeargfunc) 0, /* sq_slice */ #endif (ssizeobjargproc) 0, /* sq_ass_item */ #if PY_VERSION_HEX >= 0x03000000 (void *) 0, /* was_sq_ass_slice */ #else (ssizessizeobjargproc) 0, /* sq_ass_slice */ #endif _wrap_IDMEF___contains___closure, /* sq_contains */ (binaryfunc) 0, /* sq_inplace_concat */ (ssizeargfunc) 0, /* sq_inplace_repeat */ }, { #if PY_VERSION_HEX < 0x03000000 (readbufferproc) 0, /* bf_getreadbuffer */ (writebufferproc) 0, /* bf_getwritebuffer */ (segcountproc) 0, /* bf_getsegcount */ (charbufferproc) 0, /* bf_getcharbuffer */ #endif (getbufferproc) 0, /* bf_getbuffer */ (releasebufferproc) 0, /* bf_releasebuffer */ }, (PyObject *) 0, /* ht_name */ (PyObject *) 0, /* ht_slots */ #if PY_VERSION_HEX >= 0x03030000 (PyObject *) 0, /* ht_qualname */ 0, /* ht_cached_keys */ #endif }; SWIGINTERN SwigPyClientData SwigPyBuiltin__Prelude__IDMEF_clientdata = {0, 0, 0, 0, 0, 0, (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEF_type}; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static void *_p_Prelude__ClientTo_p_Prelude__ClientProfile(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Prelude::ClientProfile *) ((Prelude::Client *) x)); } static void *_p_Prelude__ClientEasyTo_p_Prelude__ClientProfile(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Prelude::ClientProfile *) (Prelude::Client *) ((Prelude::ClientEasy *) x)); } static void *_p_Prelude__PreludeErrorTo_p_std__exception(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((std::exception *) ((Prelude::PreludeError *) x)); } static void *_p_Prelude__ClientEasyTo_p_Prelude__Client(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Prelude::Client *) ((Prelude::ClientEasy *) x)); } static swig_type_info _swigt__p_Prelude__Client = {"_p_Prelude__Client", "Prelude::Client *", 0, 0, (void*)&SwigPyBuiltin__Prelude__Client_clientdata, 0}; static swig_type_info _swigt__p_Prelude__ClientEasy = {"_p_Prelude__ClientEasy", "Prelude::ClientEasy *", 0, 0, (void*)&SwigPyBuiltin__Prelude__ClientEasy_clientdata, 0}; static swig_type_info _swigt__p_Prelude__ClientProfile = {"_p_Prelude__ClientProfile", "Prelude::ClientProfile *", 0, 0, (void*)&SwigPyBuiltin__Prelude__ClientProfile_clientdata, 0}; static swig_type_info _swigt__p_Prelude__Connection = {"_p_Prelude__Connection", "Prelude::Connection *", 0, 0, (void*)&SwigPyBuiltin__Prelude__Connection_clientdata, 0}; static swig_type_info _swigt__p_Prelude__ConnectionPool = {"_p_Prelude__ConnectionPool", "Prelude::ConnectionPool *", 0, 0, (void*)&SwigPyBuiltin__Prelude__ConnectionPool_clientdata, 0}; static swig_type_info _swigt__p_Prelude__IDMEF = {"_p_Prelude__IDMEF", "Prelude::IDMEF *", 0, 0, (void*)&SwigPyBuiltin__Prelude__IDMEF_clientdata, 0}; static swig_type_info _swigt__p_Prelude__IDMEFClass = {"_p_Prelude__IDMEFClass", "Prelude::IDMEFClass *", 0, 0, (void*)&SwigPyBuiltin__Prelude__IDMEFClass_clientdata, 0}; static swig_type_info _swigt__p_Prelude__IDMEFCriteria = {"_p_Prelude__IDMEFCriteria", "Prelude::IDMEFCriteria *", 0, 0, (void*)&SwigPyBuiltin__Prelude__IDMEFCriteria_clientdata, 0}; static swig_type_info _swigt__p_Prelude__IDMEFCriterion = {"_p_Prelude__IDMEFCriterion", "Prelude::IDMEFCriterion *", 0, 0, (void*)&SwigPyBuiltin__Prelude__IDMEFCriterion_clientdata, 0}; static swig_type_info _swigt__p_Prelude__IDMEFPath = {"_p_Prelude__IDMEFPath", "Prelude::IDMEFPath *", 0, 0, (void*)&SwigPyBuiltin__Prelude__IDMEFPath_clientdata, 0}; static swig_type_info _swigt__p_Prelude__IDMEFTime = {"_p_Prelude__IDMEFTime", "Prelude::IDMEFTime *", 0, 0, (void*)&SwigPyBuiltin__Prelude__IDMEFTime_clientdata, 0}; static swig_type_info _swigt__p_Prelude__IDMEFValue = {"_p_Prelude__IDMEFValue", "Prelude::IDMEFValue *", 0, 0, (void*)&SwigPyBuiltin__Prelude__IDMEFValue_clientdata, 0}; static swig_type_info _swigt__p_Prelude__PreludeError = {"_p_Prelude__PreludeError", "Prelude::PreludeError *", 0, 0, (void*)&SwigPyBuiltin__Prelude__PreludeError_clientdata, 0}; static swig_type_info _swigt__p_Prelude__PreludeLog = {"_p_Prelude__PreludeLog", "Prelude::PreludeLog *", 0, 0, (void*)&SwigPyBuiltin__Prelude__PreludeLog_clientdata, 0}; static swig_type_info _swigt__p_SwigPyObject = {"_p_SwigPyObject", "SwigPyObject *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_allocator_type = {"_p_allocator_type", "allocator_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_char = {"_p_char", "char *|int8_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_difference_type = {"_p_difference_type", "difference_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_int_p_q_const__char__void = {"_p_f_int_p_q_const__char__void", "void (*)(int,char const *)", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_criteria_t = {"_p_idmef_criteria_t", "idmef_criteria_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_criterion_operator_t = {"_p_idmef_criterion_operator_t", "idmef_criterion_operator_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_object_t = {"_p_idmef_object_t", "idmef_object_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_path_t = {"_p_idmef_path_t", "idmef_path_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_time_t = {"_p_idmef_time_t", "idmef_time_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_value_t = {"_p_idmef_value_t", "idmef_value_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_int = {"_p_int", "int *|int32_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_key_type = {"_p_key_type", "key_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_long_long = {"_p_long_long", "int64_t *|long long *|time_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_mapped_type = {"_p_mapped_type", "mapped_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_client_profile_t = {"_p_prelude_client_profile_t", "prelude_client_profile_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_client_t = {"_p_prelude_client_t", "prelude_client_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_connection_pool_t = {"_p_prelude_connection_pool_t", "prelude_connection_pool_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_connection_t = {"_p_prelude_connection_t", "prelude_connection_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_short = {"_p_short", "short *|int16_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_size_type = {"_p_size_type", "size_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__exception = {"_p_std__exception", "std::exception *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__invalid_argument = {"_p_std__invalid_argument", "std::invalid_argument *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_swig__SwigPyIterator = {"_p_swig__SwigPyIterator", "swig::SwigPyIterator *", 0, 0, (void*)&SwigPyBuiltin__swig__SwigPyIterator_clientdata, 0}; static swig_type_info _swigt__p_timeval = {"_p_timeval", "timeval *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "unsigned char *|uint8_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "uint32_t *|unsigned int *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_long_long = {"_p_unsigned_long_long", "uint64_t *|unsigned long long *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "unsigned short *|uint16_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_value_type = {"_p_value_type", "value_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_void = {"_p_void", "void *", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_Prelude__Client, &_swigt__p_Prelude__ClientEasy, &_swigt__p_Prelude__ClientProfile, &_swigt__p_Prelude__Connection, &_swigt__p_Prelude__ConnectionPool, &_swigt__p_Prelude__IDMEF, &_swigt__p_Prelude__IDMEFClass, &_swigt__p_Prelude__IDMEFCriteria, &_swigt__p_Prelude__IDMEFCriterion, &_swigt__p_Prelude__IDMEFPath, &_swigt__p_Prelude__IDMEFTime, &_swigt__p_Prelude__IDMEFValue, &_swigt__p_Prelude__PreludeError, &_swigt__p_Prelude__PreludeLog, &_swigt__p_SwigPyObject, &_swigt__p_allocator_type, &_swigt__p_char, &_swigt__p_difference_type, &_swigt__p_f_int_p_q_const__char__void, &_swigt__p_idmef_criteria_t, &_swigt__p_idmef_criterion_operator_t, &_swigt__p_idmef_object_t, &_swigt__p_idmef_path_t, &_swigt__p_idmef_time_t, &_swigt__p_idmef_value_t, &_swigt__p_int, &_swigt__p_key_type, &_swigt__p_long_long, &_swigt__p_mapped_type, &_swigt__p_prelude_client_profile_t, &_swigt__p_prelude_client_t, &_swigt__p_prelude_connection_pool_t, &_swigt__p_prelude_connection_t, &_swigt__p_short, &_swigt__p_size_type, &_swigt__p_std__exception, &_swigt__p_std__invalid_argument, &_swigt__p_swig__SwigPyIterator, &_swigt__p_timeval, &_swigt__p_unsigned_char, &_swigt__p_unsigned_int, &_swigt__p_unsigned_long_long, &_swigt__p_unsigned_short, &_swigt__p_value_type, &_swigt__p_void, }; static swig_cast_info _swigc__p_Prelude__Client[] = { {&_swigt__p_Prelude__Client, 0, 0, 0}, {&_swigt__p_Prelude__ClientEasy, _p_Prelude__ClientEasyTo_p_Prelude__Client, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__ClientEasy[] = { {&_swigt__p_Prelude__ClientEasy, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__ClientProfile[] = { {&_swigt__p_Prelude__Client, _p_Prelude__ClientTo_p_Prelude__ClientProfile, 0, 0}, {&_swigt__p_Prelude__ClientProfile, 0, 0, 0}, {&_swigt__p_Prelude__ClientEasy, _p_Prelude__ClientEasyTo_p_Prelude__ClientProfile, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__Connection[] = { {&_swigt__p_Prelude__Connection, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__ConnectionPool[] = { {&_swigt__p_Prelude__ConnectionPool, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEF[] = { {&_swigt__p_Prelude__IDMEF, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFClass[] = { {&_swigt__p_Prelude__IDMEFClass, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFCriteria[] = { {&_swigt__p_Prelude__IDMEFCriteria, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFCriterion[] = { {&_swigt__p_Prelude__IDMEFCriterion, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFPath[] = { {&_swigt__p_Prelude__IDMEFPath, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFTime[] = { {&_swigt__p_Prelude__IDMEFTime, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFValue[] = { {&_swigt__p_Prelude__IDMEFValue, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__PreludeError[] = { {&_swigt__p_Prelude__PreludeError, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__PreludeLog[] = { {&_swigt__p_Prelude__PreludeLog, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SwigPyObject[] = { {&_swigt__p_SwigPyObject, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_allocator_type[] = { {&_swigt__p_allocator_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_difference_type[] = { {&_swigt__p_difference_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_int_p_q_const__char__void[] = { {&_swigt__p_f_int_p_q_const__char__void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_criteria_t[] = { {&_swigt__p_idmef_criteria_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_criterion_operator_t[] = { {&_swigt__p_idmef_criterion_operator_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_object_t[] = { {&_swigt__p_idmef_object_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_path_t[] = { {&_swigt__p_idmef_path_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_time_t[] = { {&_swigt__p_idmef_time_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_value_t[] = { {&_swigt__p_idmef_value_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_key_type[] = { {&_swigt__p_key_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_long_long[] = { {&_swigt__p_long_long, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_mapped_type[] = { {&_swigt__p_mapped_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_client_profile_t[] = { {&_swigt__p_prelude_client_profile_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_client_t[] = { {&_swigt__p_prelude_client_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_connection_pool_t[] = { {&_swigt__p_prelude_connection_pool_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_connection_t[] = { {&_swigt__p_prelude_connection_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_short[] = { {&_swigt__p_short, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_size_type[] = { {&_swigt__p_size_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__exception[] = { {&_swigt__p_std__exception, 0, 0, 0}, {&_swigt__p_Prelude__PreludeError, _p_Prelude__PreludeErrorTo_p_std__exception, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__invalid_argument[] = { {&_swigt__p_std__invalid_argument, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_swig__SwigPyIterator[] = { {&_swigt__p_swig__SwigPyIterator, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_timeval[] = { {&_swigt__p_timeval, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_char[] = { {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_long_long[] = { {&_swigt__p_unsigned_long_long, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_short[] = { {&_swigt__p_unsigned_short, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_value_type[] = { {&_swigt__p_value_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_void[] = { {&_swigt__p_void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { _swigc__p_Prelude__Client, _swigc__p_Prelude__ClientEasy, _swigc__p_Prelude__ClientProfile, _swigc__p_Prelude__Connection, _swigc__p_Prelude__ConnectionPool, _swigc__p_Prelude__IDMEF, _swigc__p_Prelude__IDMEFClass, _swigc__p_Prelude__IDMEFCriteria, _swigc__p_Prelude__IDMEFCriterion, _swigc__p_Prelude__IDMEFPath, _swigc__p_Prelude__IDMEFTime, _swigc__p_Prelude__IDMEFValue, _swigc__p_Prelude__PreludeError, _swigc__p_Prelude__PreludeLog, _swigc__p_SwigPyObject, _swigc__p_allocator_type, _swigc__p_char, _swigc__p_difference_type, _swigc__p_f_int_p_q_const__char__void, _swigc__p_idmef_criteria_t, _swigc__p_idmef_criterion_operator_t, _swigc__p_idmef_object_t, _swigc__p_idmef_path_t, _swigc__p_idmef_time_t, _swigc__p_idmef_value_t, _swigc__p_int, _swigc__p_key_type, _swigc__p_long_long, _swigc__p_mapped_type, _swigc__p_prelude_client_profile_t, _swigc__p_prelude_client_t, _swigc__p_prelude_connection_pool_t, _swigc__p_prelude_connection_t, _swigc__p_short, _swigc__p_size_type, _swigc__p_std__exception, _swigc__p_std__invalid_argument, _swigc__p_swig__SwigPyIterator, _swigc__p_timeval, _swigc__p_unsigned_char, _swigc__p_unsigned_int, _swigc__p_unsigned_long_long, _swigc__p_unsigned_short, _swigc__p_value_type, _swigc__p_void, }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ static swig_const_info swig_const_table[] = { {0, 0, 0, 0.0, 0, 0}}; #ifdef __cplusplus } #endif static PyTypeObject *builtin_bases[3]; /* ----------------------------------------------------------------------------- * Type initialization: * This problem is tough by the requirement that no dynamic * memory is used. Also, since swig_type_info structures store pointers to * swig_cast_info structures and swig_cast_info structures store pointers back * to swig_type_info structures, we need some lookup code at initialization. * The idea is that swig generates all the structures that are needed. * The runtime then collects these partially filled structures. * The SWIG_InitializeModule function takes these initial arrays out of * swig_module, and does all the lookup, filling in the swig_module.types * array with the correct data and linking the correct swig_cast_info * structures together. * * The generated swig_type_info structures are assigned statically to an initial * array. We just loop through that array, and handle each type individually. * First we lookup if this type has been already loaded, and if so, use the * loaded structure instead of the generated one. Then we have to fill in the * cast linked list. The cast data is initially stored in something like a * two-dimensional array. Each row corresponds to a type (there are the same * number of rows as there are in the swig_type_initial array). Each entry in * a column is one of the swig_cast_info structures for that type. * The cast_initial array is actually an array of arrays, because each row has * a variable number of columns. So to actually build the cast linked list, * we find the array of casts associated with the type, and loop through it * adding the casts to the list. The one last trick we need to do is making * sure the type pointer in the swig_cast_info struct is correct. * * First off, we lookup the cast->type name to see if it is already loaded. * There are three cases to handle: * 1) If the cast->type has already been loaded AND the type we are adding * casting info to has not been loaded (it is in this module), THEN we * replace the cast->type pointer with the type pointer that has already * been loaded. * 2) If BOTH types (the one we are adding casting info to, and the * cast->type) are loaded, THEN the cast info has already been loaded by * the previous module so we just ignore it. * 3) Finally, if cast->type has not already been loaded, then we add that * swig_cast_info to the linked list (because the cast->type) pointer will * be correct. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* c-mode */ #endif #endif #if 0 #define SWIGRUNTIME_DEBUG #endif SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { size_t i; swig_module_info *module_head, *iter; int init; /* check to see if the circular list has been setup, if not, set it up */ if (swig_module.next==0) { /* Initialize the swig_module */ swig_module.type_initial = swig_type_initial; swig_module.cast_initial = swig_cast_initial; swig_module.next = &swig_module; init = 1; } else { init = 0; } /* Try and load any already created modules */ module_head = SWIG_GetModule(clientdata); if (!module_head) { /* This is the first module loaded for this interpreter */ /* so set the swig module into the interpreter */ SWIG_SetModule(clientdata, &swig_module); } else { /* the interpreter has loaded a SWIG module, but has it loaded this one? */ iter=module_head; do { if (iter==&swig_module) { /* Our module is already in the list, so there's nothing more to do. */ return; } iter=iter->next; } while (iter!= module_head); /* otherwise we must add our module into the list */ swig_module.next = module_head->next; module_head->next = &swig_module; } /* When multiple interpreters are used, a module could have already been initialized in a different interpreter, but not yet have a pointer in this interpreter. In this case, we do not want to continue adding types... everything should be set up already */ if (init == 0) return; /* Now work on filling in swig_module.types */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: size %lu\n", (unsigned long)swig_module.size); #endif for (i = 0; i < swig_module.size; ++i) { swig_type_info *type = 0; swig_type_info *ret; swig_cast_info *cast; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name); #endif /* if there is another module already loaded */ if (swig_module.next != &swig_module) { type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); } if (type) { /* Overwrite clientdata field */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found type %s\n", type->name); #endif if (swig_module.type_initial[i]->clientdata) { type->clientdata = swig_module.type_initial[i]->clientdata; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); #endif } } else { type = swig_module.type_initial[i]; } /* Insert casting types */ cast = swig_module.cast_initial[i]; while (cast->type) { /* Don't need to add information already in the list */ ret = 0; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); #endif if (swig_module.next != &swig_module) { ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); #ifdef SWIGRUNTIME_DEBUG if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); #endif } if (ret) { if (type == swig_module.type_initial[i]) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: skip old type %s\n", ret->name); #endif cast->type = ret; ret = 0; } else { /* Check for casting already in the list */ swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); #ifdef SWIGRUNTIME_DEBUG if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); #endif if (!ocast) ret = 0; } } if (!ret) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); #endif if (type->cast) { type->cast->prev = cast; cast->next = type->cast; } type->cast = cast; } cast++; } /* Set entry in modules->types array equal to the type */ swig_module.types[i] = type; } swig_module.types[i] = 0; #ifdef SWIGRUNTIME_DEBUG printf("**** SWIG_InitializeModule: Cast List ******\n"); for (i = 0; i < swig_module.size; ++i) { int j = 0; swig_cast_info *cast = swig_module.cast_initial[i]; printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name); while (cast->type) { printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); cast++; ++j; } printf("---- Total casts: %d\n",j); } printf("**** SWIG_InitializeModule: Cast List ******\n"); #endif } /* This function will propagate the clientdata field of type to * any new swig_type_info structures that have been added into the list * of equivalent types. It is like calling * SWIG_TypeClientData(type, clientdata) a second time. */ SWIGRUNTIME void SWIG_PropagateClientData(void) { size_t i; swig_cast_info *equiv; static int init_run = 0; if (init_run) return; init_run = 1; for (i = 0; i < swig_module.size; i++) { if (swig_module.types[i]->clientdata) { equiv = swig_module.types[i]->cast; while (equiv) { if (!equiv->converter) { if (equiv->type && !equiv->type->clientdata) SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); } equiv = equiv->next; } } } } #ifdef __cplusplus #if 0 { /* c-mode */ #endif } #endif #ifdef __cplusplus extern "C" { #endif /* Python-specific SWIG API */ #define SWIG_newvarlink() SWIG_Python_newvarlink() #define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr) #define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants) /* ----------------------------------------------------------------------------- * global variable support code. * ----------------------------------------------------------------------------- */ typedef struct swig_globalvar { char *name; /* Name of global variable */ PyObject *(*get_attr)(void); /* Return the current value */ int (*set_attr)(PyObject *); /* Set the value */ struct swig_globalvar *next; } swig_globalvar; typedef struct swig_varlinkobject { PyObject_HEAD swig_globalvar *vars; } swig_varlinkobject; SWIGINTERN PyObject * swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) { #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_InternFromString(""); #else return PyString_FromString(""); #endif } SWIGINTERN PyObject * swig_varlink_str(swig_varlinkobject *v) { #if PY_VERSION_HEX >= 0x03000000 PyObject *str = PyUnicode_InternFromString("("); PyObject *tail; PyObject *joined; swig_globalvar *var; for (var = v->vars; var; var=var->next) { tail = PyUnicode_FromString(var->name); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; if (var->next) { tail = PyUnicode_InternFromString(", "); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; } } tail = PyUnicode_InternFromString(")"); joined = PyUnicode_Concat(str, tail); Py_DecRef(str); Py_DecRef(tail); str = joined; #else PyObject *str = PyString_FromString("("); swig_globalvar *var; for (var = v->vars; var; var=var->next) { PyString_ConcatAndDel(&str,PyString_FromString(var->name)); if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", ")); } PyString_ConcatAndDel(&str,PyString_FromString(")")); #endif return str; } SWIGINTERN void swig_varlink_dealloc(swig_varlinkobject *v) { swig_globalvar *var = v->vars; while (var) { swig_globalvar *n = var->next; free(var->name); free(var); var = n; } } SWIGINTERN PyObject * swig_varlink_getattr(swig_varlinkobject *v, char *n) { PyObject *res = NULL; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->get_attr)(); break; } var = var->next; } if (res == NULL && !PyErr_Occurred()) { PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n); } return res; } SWIGINTERN int swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { int res = 1; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->set_attr)(p); break; } var = var->next; } if (res == 1 && !PyErr_Occurred()) { PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n); } return res; } SWIGINTERN PyTypeObject* swig_varlink_type(void) { static char varlink__doc__[] = "Swig var link object"; static PyTypeObject varlink_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size */ #endif "swigvarlink", /* tp_name */ sizeof(swig_varlinkobject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor) swig_varlink_dealloc, /* tp_dealloc */ 0, /* tp_print */ (getattrfunc) swig_varlink_getattr, /* tp_getattr */ (setattrfunc) swig_varlink_setattr, /* tp_setattr */ 0, /* tp_compare */ (reprfunc) swig_varlink_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */ (reprfunc) swig_varlink_str, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ 0, /* tp_flags */ varlink__doc__, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */ 0, /* tp_del */ 0, /* tp_version_tag */ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif #ifdef COUNT_ALLOCS 0, /* tp_allocs */ 0, /* tp_frees */ 0, /* tp_maxalloc */ 0, /* tp_prev */ 0 /* tp_next */ #endif }; varlink_type = tmp; type_init = 1; if (PyType_Ready(&varlink_type) < 0) return NULL; } return &varlink_type; } /* Create a variable linking object for use later */ SWIGINTERN PyObject * SWIG_Python_newvarlink(void) { swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type()); if (result) { result->vars = 0; } return ((PyObject*) result); } SWIGINTERN void SWIG_Python_addvarlink(PyObject *p, const char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { swig_varlinkobject *v = (swig_varlinkobject *) p; swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); if (gv) { size_t size = strlen(name)+1; gv->name = (char *)malloc(size); if (gv->name) { memcpy(gv->name, name, size); gv->get_attr = get_attr; gv->set_attr = set_attr; gv->next = v->vars; } } v->vars = gv; } SWIGINTERN PyObject * SWIG_globals(void) { static PyObject *globals = 0; if (!globals) { globals = SWIG_newvarlink(); } return globals; } /* ----------------------------------------------------------------------------- * constants/methods manipulation * ----------------------------------------------------------------------------- */ /* Install Constants */ SWIGINTERN void SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) { PyObject *obj = 0; size_t i; for (i = 0; constants[i].type; ++i) { switch(constants[i].type) { case SWIG_PY_POINTER: obj = SWIG_InternalNewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); break; case SWIG_PY_BINARY: obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); break; default: obj = 0; break; } if (obj) { PyDict_SetItemString(d, constants[i].name, obj); Py_DECREF(obj); } } } /* -----------------------------------------------------------------------------*/ /* Fix SwigMethods to carry the callback ptrs when needed */ /* -----------------------------------------------------------------------------*/ SWIGINTERN void SWIG_Python_FixMethods(PyMethodDef *methods, swig_const_info *const_table, swig_type_info **types, swig_type_info **types_initial) { size_t i; for (i = 0; methods[i].ml_name; ++i) { const char *c = methods[i].ml_doc; if (!c) continue; c = strstr(c, "swig_ptr: "); if (c) { int j; swig_const_info *ci = 0; const char *name = c + 10; for (j = 0; const_table[j].type; ++j) { if (strncmp(const_table[j].name, name, strlen(const_table[j].name)) == 0) { ci = &(const_table[j]); break; } } if (ci) { void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0; if (ptr) { size_t shift = (ci->ptype) - types; swig_type_info *ty = types_initial[shift]; size_t ldoc = (c - methods[i].ml_doc); size_t lptr = strlen(ty->name)+2*sizeof(void*)+2; char *ndoc = (char*)malloc(ldoc + lptr + 10); if (ndoc) { char *buff = ndoc; memcpy(buff, methods[i].ml_doc, ldoc); buff += ldoc; memcpy(buff, "swig_ptr: ", 10); buff += 10; SWIG_PackVoidPtr(buff, ptr, ty->name, lptr); methods[i].ml_doc = ndoc; } } } } } } /* ----------------------------------------------------------------------------- * Method creation and docstring support functions * ----------------------------------------------------------------------------- */ /* ----------------------------------------------------------------------------- * Function to find the method definition with the correct docstring for the * proxy module as opposed to the low-level API * ----------------------------------------------------------------------------- */ SWIGINTERN PyMethodDef *SWIG_PythonGetProxyDoc(const char *name) { /* Find the function in the modified method table */ size_t offset = 0; int found = 0; while (SwigMethods_proxydocs[offset].ml_meth != NULL) { if (strcmp(SwigMethods_proxydocs[offset].ml_name, name) == 0) { found = 1; break; } offset++; } /* Use the copy with the modified docstring if available */ return found ? &SwigMethods_proxydocs[offset] : NULL; } /* ----------------------------------------------------------------------------- * Wrapper of PyInstanceMethod_New() used in Python 3 * It is exported to the generated module, used for -fastproxy * ----------------------------------------------------------------------------- */ SWIGINTERN PyObject *SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func) { if (PyCFunction_Check(func)) { PyCFunctionObject *funcobj = (PyCFunctionObject *)func; PyMethodDef *ml = SWIG_PythonGetProxyDoc(funcobj->m_ml->ml_name); if (ml) func = PyCFunction_NewEx(ml, funcobj->m_self, funcobj->m_module); } #if PY_VERSION_HEX >= 0x03000000 return PyInstanceMethod_New(func); #else return PyMethod_New(func, NULL, NULL); #endif } /* ----------------------------------------------------------------------------- * Wrapper of PyStaticMethod_New() * It is exported to the generated module, used for -fastproxy * ----------------------------------------------------------------------------- */ SWIGINTERN PyObject *SWIG_PyStaticMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func) { if (PyCFunction_Check(func)) { PyCFunctionObject *funcobj = (PyCFunctionObject *)func; PyMethodDef *ml = SWIG_PythonGetProxyDoc(funcobj->m_ml->ml_name); if (ml) func = PyCFunction_NewEx(ml, funcobj->m_self, funcobj->m_module); } return PyStaticMethod_New(func); } #ifdef __cplusplus } #endif /* -----------------------------------------------------------------------------* * Partial Init method * -----------------------------------------------------------------------------*/ #ifdef __cplusplus extern "C" #endif SWIGEXPORT #if PY_VERSION_HEX >= 0x03000000 PyObject* #else void #endif SWIG_init(void) { PyObject *m, *d, *md, *globals; #if PY_VERSION_HEX >= 0x03000000 static struct PyModuleDef SWIG_module = { PyModuleDef_HEAD_INIT, SWIG_name, NULL, -1, SwigMethods, NULL, NULL, NULL, NULL }; #endif #if defined(SWIGPYTHON_BUILTIN) static SwigPyClientData SwigPyObject_clientdata = { 0, 0, 0, 0, 0, 0, 0 }; static PyGetSetDef this_getset_def = { (char *)"this", &SwigPyBuiltin_ThisClosure, NULL, NULL, NULL }; static SwigPyGetSet thisown_getset_closure = { SwigPyObject_own, SwigPyObject_own }; static PyGetSetDef thisown_getset_def = { (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure }; PyTypeObject *builtin_pytype; int builtin_base_count; swig_type_info *builtin_basetype; PyObject *tuple; PyGetSetDescrObject *static_getset; PyTypeObject *metatype; PyTypeObject *swigpyobject; SwigPyClientData *cd; PyObject *public_interface, *public_symbol; PyObject *this_descr; PyObject *thisown_descr; PyObject *self = 0; int i; (void)builtin_pytype; (void)builtin_base_count; (void)builtin_basetype; (void)tuple; (void)static_getset; (void)self; /* Metaclass is used to implement static member variables */ metatype = SwigPyObjectType(); assert(metatype); #endif (void)globals; /* Create singletons now to avoid potential deadlocks with multi-threaded usage after module initialization */ SWIG_This(); SWIG_Python_TypeCache(); SwigPyPacked_type(); #ifndef SWIGPYTHON_BUILTIN SwigPyObject_type(); #endif /* Fix SwigMethods to carry the callback ptrs when needed */ SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial); #if PY_VERSION_HEX >= 0x03000000 m = PyModule_Create(&SWIG_module); #else m = Py_InitModule(SWIG_name, SwigMethods); #endif md = d = PyModule_GetDict(m); (void)md; SWIG_InitializeModule(0); #ifdef SWIGPYTHON_BUILTIN swigpyobject = SwigPyObject_TypeOnce(); SwigPyObject_stype = SWIG_MangledTypeQuery("_p_SwigPyObject"); assert(SwigPyObject_stype); cd = (SwigPyClientData*) SwigPyObject_stype->clientdata; if (!cd) { SwigPyObject_stype->clientdata = &SwigPyObject_clientdata; SwigPyObject_clientdata.pytype = swigpyobject; } else if (swigpyobject->tp_basicsize != cd->pytype->tp_basicsize) { PyErr_SetString(PyExc_RuntimeError, "Import error: attempted to load two incompatible swig-generated modules."); # if PY_VERSION_HEX >= 0x03000000 return NULL; # else return; # endif } /* All objects have a 'this' attribute */ this_descr = PyDescr_NewGetSet(SwigPyObject_type(), &this_getset_def); (void)this_descr; /* All objects have a 'thisown' attribute */ thisown_descr = PyDescr_NewGetSet(SwigPyObject_type(), &thisown_getset_def); (void)thisown_descr; public_interface = PyList_New(0); public_symbol = 0; (void)public_symbol; PyDict_SetItemString(md, "__all__", public_interface); Py_DECREF(public_interface); for (i = 0; SwigMethods[i].ml_name != NULL; ++i) SwigPyBuiltin_AddPublicSymbol(public_interface, SwigMethods[i].ml_name); for (i = 0; swig_const_table[i].name != 0; ++i) SwigPyBuiltin_AddPublicSymbol(public_interface, swig_const_table[i].name); #endif SWIG_InstallConstants(d,swig_const_table); /* type 'swig::SwigPyIterator' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__swig__SwigPyIterator_type; builtin_pytype->tp_dict = d = PyDict_New(); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'SwigPyIterator'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "SwigPyIterator", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "SwigPyIterator"); d = md; int argc, ret, idx; char **argv = NULL; PyObject *sys = PyImport_ImportModule("sys"); PyObject *pyargv = PyObject_GetAttrString(sys, "argv"); argc = PyObject_Length(pyargv); assert(argc >= 1); assert(PyList_Check(pyargv)); if ( argc + 1 < 0 ) throw PreludeError("Invalid argc length"); argv = (char **) malloc((argc + 1) * sizeof(char *)); if ( ! argv ) throw PreludeError("Allocation failure"); for ( idx = 0; idx < argc; idx++ ) { PyObject *o = PyList_GetItem(pyargv, idx); PyArg_Parse(o, "et", Py_FileSystemDefaultEncoding, &argv[idx]); if ( ! argv[idx] ) break; } argv[idx] = NULL; ret = prelude_init(&argc, argv); if ( ret < 0 ) { free(argv); throw PreludeError(ret); } free(argv); Py_DECREF(pyargv); Py_DECREF(sys); /* type 'Prelude::ClientProfile' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__ClientProfile_type; builtin_pytype->tp_dict = d = PyDict_New(); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'ClientProfile'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "ClientProfile", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "ClientProfile"); d = md; /* type 'Prelude::Connection' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__Connection_type; builtin_pytype->tp_dict = d = PyDict_New(); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'Connection'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "Connection", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "Connection"); d = md; /* type 'Prelude::ConnectionPool' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__ConnectionPool_type; builtin_pytype->tp_dict = d = PyDict_New(); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'ConnectionPool'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "ConnectionPool", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "ConnectionPool"); d = md; /* type 'Prelude::Client' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__Client_type; builtin_pytype->tp_dict = d = PyDict_New(); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "ASYNC_SEND",SWIG_From_int(static_cast< int >(Prelude::Client::ASYNC_SEND))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "FLAGS_ASYNC_SEND",SWIG_From_int(static_cast< int >(Prelude::Client::FLAGS_ASYNC_SEND))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "ASYNC_TIMER",SWIG_From_int(static_cast< int >(Prelude::Client::ASYNC_TIMER))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "FLAGS_ASYNC_TIMER",SWIG_From_int(static_cast< int >(Prelude::Client::FLAGS_ASYNC_TIMER))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "HEARTBEAT",SWIG_From_int(static_cast< int >(Prelude::Client::HEARTBEAT))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "FLAGS_HEARTBEAT",SWIG_From_int(static_cast< int >(Prelude::Client::FLAGS_HEARTBEAT))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "CONNECT",SWIG_From_int(static_cast< int >(Prelude::Client::CONNECT))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "FLAGS_CONNECT",SWIG_From_int(static_cast< int >(Prelude::Client::FLAGS_CONNECT))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "AUTOCONFIG",SWIG_From_int(static_cast< int >(Prelude::Client::AUTOCONFIG))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "FLAGS_AUTOCONFIG",SWIG_From_int(static_cast< int >(Prelude::Client::FLAGS_AUTOCONFIG))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "IDMEF_READ",SWIG_From_int(static_cast< int >(Prelude::Client::IDMEF_READ))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "PERMISSION_IDMEF_READ",SWIG_From_int(static_cast< int >(Prelude::Client::PERMISSION_IDMEF_READ))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "ADMIN_READ",SWIG_From_int(static_cast< int >(Prelude::Client::ADMIN_READ))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "PERMISSION_ADMIN_READ",SWIG_From_int(static_cast< int >(Prelude::Client::PERMISSION_ADMIN_READ))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "IDMEF_WRITE",SWIG_From_int(static_cast< int >(Prelude::Client::IDMEF_WRITE))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "PERMISSION_IDMEF_WRITE",SWIG_From_int(static_cast< int >(Prelude::Client::PERMISSION_IDMEF_WRITE))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "ADMIN_WRITE",SWIG_From_int(static_cast< int >(Prelude::Client::ADMIN_WRITE))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "PERMISSION_ADMIN_WRITE",SWIG_From_int(static_cast< int >(Prelude::Client::PERMISSION_ADMIN_WRITE))); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_basetype = SWIG_MangledTypeQuery("_p_Prelude__ClientProfile"); if (builtin_basetype && builtin_basetype->clientdata && ((SwigPyClientData *) builtin_basetype->clientdata)->pytype) { builtin_bases[builtin_base_count++] = ((SwigPyClientData *) builtin_basetype->clientdata)->pytype; } else { PyErr_SetString(PyExc_TypeError, "Could not create type 'Client' as base 'Prelude::ClientProfile' has not been initialized.\n"); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'Client'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "Client", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "Client"); d = md; /* type 'Prelude::PreludeLog' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__PreludeLog_type; builtin_pytype->tp_dict = d = PyDict_New(); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "DEBUG",SWIG_From_int(static_cast< int >(Prelude::PreludeLog::DEBUG))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "INFO",SWIG_From_int(static_cast< int >(Prelude::PreludeLog::INFO))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "WARNING",SWIG_From_int(static_cast< int >(Prelude::PreludeLog::WARNING))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "ERROR",SWIG_From_int(static_cast< int >(Prelude::PreludeLog::ERROR))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "CRITICAL",SWIG_From_int(static_cast< int >(Prelude::PreludeLog::CRITICAL))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "QUIET",SWIG_From_int(static_cast< int >(Prelude::PreludeLog::QUIET))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "SYSLOG",SWIG_From_int(static_cast< int >(Prelude::PreludeLog::SYSLOG))); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'PreludeLog'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "PreludeLog", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "PreludeLog"); d = md; /* type 'Prelude::PreludeError' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__PreludeError_type; builtin_pytype->tp_dict = d = PyDict_New(); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'PreludeError'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "PreludeError", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "PreludeError"); d = md; /* type 'Prelude::ClientEasy' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__ClientEasy_type; builtin_pytype->tp_dict = d = PyDict_New(); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_basetype = SWIG_MangledTypeQuery("_p_Prelude__Client"); if (builtin_basetype && builtin_basetype->clientdata && ((SwigPyClientData *) builtin_basetype->clientdata)->pytype) { builtin_bases[builtin_base_count++] = ((SwigPyClientData *) builtin_basetype->clientdata)->pytype; } else { PyErr_SetString(PyExc_TypeError, "Could not create type 'ClientEasy' as base 'Prelude::Client' has not been initialized.\n"); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'ClientEasy'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "ClientEasy", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "ClientEasy"); d = md; /* type 'Prelude::IDMEFCriterion' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEFCriterion_type; builtin_pytype->tp_dict = d = PyDict_New(); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_NOT",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_NOCASE",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOCASE))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_EQUAL",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_EQUAL))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_EQUAL_NOCASE",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_EQUAL_NOCASE))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_NOT_EQUAL",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_EQUAL))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_NOT_EQUAL_NOCASE",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_EQUAL_NOCASE))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_LESSER",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_LESSER))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_LESSER_OR_EQUAL",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_LESSER_OR_EQUAL))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_GREATER",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_GREATER))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_GREATER_OR_EQUAL",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_GREATER_OR_EQUAL))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_SUBSTR",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_SUBSTR))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_SUBSTR_NOCASE",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_SUBSTR_NOCASE))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_NOT_SUBSTR",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_SUBSTR))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_NOT_SUBSTR_NOCASE",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_SUBSTR_NOCASE))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_REGEX",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_REGEX))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_REGEX_NOCASE",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_REGEX_NOCASE))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_NOT_REGEX",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_REGEX))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_NOT_REGEX_NOCASE",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_REGEX_NOCASE))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_NULL",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NULL))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_NOT_NULL",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_NULL))); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'IDMEFCriterion'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "IDMEFCriterion", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "IDMEFCriterion"); d = md; /* type 'Prelude::IDMEFCriteria' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEFCriteria_type; builtin_pytype->tp_dict = d = PyDict_New(); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_NOT",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriteria::OPERATOR_NOT))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_AND",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriteria::OPERATOR_AND))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "OPERATOR_OR",SWIG_From_int(static_cast< int >(Prelude::IDMEFCriteria::OPERATOR_OR))); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'IDMEFCriteria'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "IDMEFCriteria", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "IDMEFCriteria"); d = md; /* type 'Prelude::IDMEFValue' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEFValue_type; builtin_pytype->tp_dict = d = PyDict_New(); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_UNKNOWN",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_UNKNOWN))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_INT8",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_INT8))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_UINT8",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_UINT8))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_INT16",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_INT16))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_UINT16",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_UINT16))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_INT32",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_INT32))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_UINT32",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_UINT32))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_INT64",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_INT64))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_UINT64",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_UINT64))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_FLOAT",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_FLOAT))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_DOUBLE",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_DOUBLE))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_STRING",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_STRING))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_TIME",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_TIME))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_DATA",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_DATA))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_ENUM",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_ENUM))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_LIST",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_LIST))); SWIG_Python_SetConstant(d, d == md ? public_interface : NULL, "TYPE_CLASS",SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_CLASS))); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'IDMEFValue'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "IDMEFValue", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "IDMEFValue"); d = md; /* type 'Prelude::IDMEFPath' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEFPath_type; builtin_pytype->tp_dict = d = PyDict_New(); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'IDMEFPath'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "IDMEFPath", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "IDMEFPath"); d = md; /* type 'Prelude::IDMEFTime' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEFTime_type; builtin_pytype->tp_dict = d = PyDict_New(); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'IDMEFTime'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "IDMEFTime", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "IDMEFTime"); d = md; /* type 'Prelude::IDMEFClass' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEFClass_type; builtin_pytype->tp_dict = d = PyDict_New(); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'IDMEFClass'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "IDMEFClass", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "IDMEFClass"); d = md; /* type 'Prelude::IDMEF' */ builtin_pytype = (PyTypeObject *)&SwigPyBuiltin__Prelude__IDMEF_type; builtin_pytype->tp_dict = d = PyDict_New(); SwigPyBuiltin_SetMetaType(builtin_pytype, metatype); builtin_pytype->tp_new = PyType_GenericNew; builtin_base_count = 0; builtin_bases[builtin_base_count] = NULL; SwigPyBuiltin_InitBases(builtin_pytype, builtin_bases); PyDict_SetItemString(d, "this", this_descr); PyDict_SetItemString(d, "thisown", thisown_descr); if (PyType_Ready(builtin_pytype) < 0) { PyErr_SetString(PyExc_TypeError, "Could not create type 'IDMEF'."); #if PY_VERSION_HEX >= 0x03000000 return NULL; #else return; #endif } Py_INCREF(builtin_pytype); PyModule_AddObject(m, "IDMEF", (PyObject *)builtin_pytype); SwigPyBuiltin_AddPublicSymbol(public_interface, "IDMEF"); d = md; /* Initialize threading */ SWIG_PYTHON_INITIALIZE_THREADS; #if PY_VERSION_HEX >= 0x03000000 return m; #else return; #endif } libprelude-5.2.0/bindings/python/PaxHeaders.14770/pystrings.swg0000644000000000000000000000010713726163410022553 xustar000000000000000023 mtime=1599661832.51 24 atime=1599661832.732 24 ctime=1599662000.465 libprelude-5.2.0/bindings/python/pystrings.swg0000644000000000000000000000777013726163410021563 0ustar00rootroot00000000000000%begin %{ static int _PYTHON2_RETURN_UNICODE = 0; %} /* ------------------------------------------------------------ * utility methods for char strings * ------------------------------------------------------------ */ %fragment("SWIG_AsCharPtrAndSize","header",fragment="SWIG_pchar_descriptor") { SWIGINTERN int SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) { %#if PY_VERSION_HEX>=0x03000000 %#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) if (PyBytes_Check(obj)) %#else if (PyUnicode_Check(obj)) %#endif %#else if (PyString_Check(obj)) %#endif { char *cstr; Py_ssize_t len; int ret = SWIG_OK; %#if PY_VERSION_HEX>=0x03000000 %#if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR) if (!alloc && cptr) { /* We can't allow converting without allocation, since the internal representation of string in Python 3 is UCS-2/UCS-4 but we require a UTF-8 representation. TODO(bhy) More detailed explanation */ return SWIG_RuntimeError; } obj = PyUnicode_AsUTF8String(obj); if (!obj) return SWIG_TypeError; if (alloc) *alloc = SWIG_NEWOBJ; %#endif PyBytes_AsStringAndSize(obj, &cstr, &len); %#else PyString_AsStringAndSize(obj, &cstr, &len); %#endif if (cptr) { if (alloc) { if (*alloc == SWIG_NEWOBJ) { *cptr = %new_copy_array(cstr, len + 1, char); *alloc = SWIG_NEWOBJ; } else { *cptr = cstr; *alloc = SWIG_OLDOBJ; } } else { %#if PY_VERSION_HEX>=0x03000000 %#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) *cptr = PyBytes_AsString(obj); %#else assert(0); /* Should never reach here with Unicode strings in Python 3 */ %#endif %#else *cptr = SWIG_Python_str_AsChar(obj); if (!*cptr) ret = SWIG_TypeError; %#endif } } if (psize) *psize = len + 1; %#if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR) Py_XDECREF(obj); %#endif return ret; } else { %#if defined(SWIG_PYTHON_2_UNICODE) %#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) %#error "Cannot use both SWIG_PYTHON_2_UNICODE and SWIG_PYTHON_STRICT_BYTE_CHAR at once" %#endif %#if PY_VERSION_HEX<0x03000000 if (PyUnicode_Check(obj)) { char *cstr; Py_ssize_t len; if (!alloc && cptr) { return SWIG_RuntimeError; } obj = PyUnicode_AsUTF8String(obj); if (!obj) return SWIG_TypeError; if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) { if (cptr) { if (alloc) *alloc = SWIG_NEWOBJ; *cptr = %new_copy_array(cstr, len + 1, char); } if (psize) *psize = len + 1; Py_XDECREF(obj); return SWIG_OK; } else { Py_XDECREF(obj); } } %#endif %#endif swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); if (pchar_descriptor) { void* vptr = 0; if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) { if (cptr) *cptr = (char *) vptr; if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0; if (alloc) *alloc = SWIG_OLDOBJ; return SWIG_OK; } } } return SWIG_TypeError; } } %fragment("SWIG_FromCharPtrAndSize","header",fragment="SWIG_pchar_descriptor") { SWIGINTERNINLINE PyObject * SWIG_FromCharPtrAndSize(const char* carray, size_t size) { if (carray) { if (size > INT_MAX) { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); return pchar_descriptor ? SWIG_InternalNewPointerObj(%const_cast(carray,char *), pchar_descriptor, 0) : SWIG_Py_Void(); } else { %#if PY_VERSION_HEX >= 0x03000000 %#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) return PyBytes_FromStringAndSize(carray, %numeric_cast(size, Py_ssize_t)); %#else return PyUnicode_DecodeUTF8(carray, %numeric_cast(size, Py_ssize_t), "surrogateescape"); %#endif %#else if ( _PYTHON2_RETURN_UNICODE ) return PyUnicode_DecodeUTF8(carray, %numeric_cast(size, Py_ssize_t), "replace"); else return PyString_FromStringAndSize(carray, %numeric_cast(size, Py_ssize_t)); %#endif } } else { return SWIG_Py_Void(); } } } libprelude-5.2.0/bindings/PaxHeaders.14770/ruby0000644000000000000000000000011013726163660017353 xustar000000000000000024 mtime=1599662000.514 24 atime=1599662006.646 24 ctime=1599662000.514 libprelude-5.2.0/bindings/ruby/0000755000000000000000000000000013726163660016433 5ustar00rootroot00000000000000libprelude-5.2.0/bindings/ruby/PaxHeaders.14770/Makefile.in0000644000000000000000000000005713726163514021505 xustar000000000000000023 atime=1599661946.02 24 ctime=1599662000.509 libprelude-5.2.0/bindings/ruby/Makefile.in0000644000000000000000000020400113726163514020473 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = bindings/ruby DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp $(am__dist_swigdata_DATA_DIST) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(rbexecdir)" "$(DESTDIR)$(swigdatadir)" LTLIBRARIES = $(rbexec_LTLIBRARIES) am__DEPENDENCIES_1 = @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@Prelude_la_DEPENDENCIES = $(top_builddir)/bindings/c++/.libs/libpreludecpp.la \ @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@ $(am__DEPENDENCIES_1) @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@nodist_Prelude_la_OBJECTS = Prelude_la-Prelude.lo Prelude_la_OBJECTS = $(nodist_Prelude_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = Prelude_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(Prelude_la_LDFLAGS) $(LDFLAGS) -o $@ @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@am_Prelude_la_rpath = -rpath \ @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@ $(rbexecdir) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(nodist_Prelude_la_SOURCES) DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__dist_swigdata_DATA_DIST = libpreludecpp-ruby.i DATA = $(dist_swigdata_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@swigdatadir = @SWIG_DATA_DIR@/ruby @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@dist_swigdata_DATA = libpreludecpp-ruby.i @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@EXTRA_DIST = libpreludecpp-ruby.i Prelude.cxx @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@rbexec_LTLIBRARIES = Prelude.la @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@Prelude_la_CPPFLAGS = $(RUBY_INCLUDES) $(RUBY_CCFLAGS) -I@top_builddir@ -I$(top_srcdir)/src/include -I$(top_builddir)/src/include -I@top_builddir@/src/libprelude-error -I$(top_srcdir)/bindings/c++/include @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@Prelude_la_LDFLAGS = -module -avoid-version @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@Prelude_la_LIBADD = $(top_builddir)/bindings/c++/.libs/libpreludecpp.la $(RUBY_LIBS) @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@nodist_Prelude_la_SOURCES = Prelude.cxx all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/ruby/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu bindings/ruby/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-rbexecLTLIBRARIES: $(rbexec_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(rbexec_LTLIBRARIES)'; test -n "$(rbexecdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(rbexecdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(rbexecdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(rbexecdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(rbexecdir)"; \ } uninstall-rbexecLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(rbexec_LTLIBRARIES)'; test -n "$(rbexecdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(rbexecdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(rbexecdir)/$$f"; \ done clean-rbexecLTLIBRARIES: -test -z "$(rbexec_LTLIBRARIES)" || rm -f $(rbexec_LTLIBRARIES) @list='$(rbexec_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } Prelude.la: $(Prelude_la_OBJECTS) $(Prelude_la_DEPENDENCIES) $(EXTRA_Prelude_la_DEPENDENCIES) $(AM_V_CXXLD)$(Prelude_la_LINK) $(am_Prelude_la_rpath) $(Prelude_la_OBJECTS) $(Prelude_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Prelude_la-Prelude.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< Prelude_la-Prelude.lo: Prelude.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Prelude_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Prelude_la-Prelude.lo -MD -MP -MF $(DEPDIR)/Prelude_la-Prelude.Tpo -c -o Prelude_la-Prelude.lo `test -f 'Prelude.cxx' || echo '$(srcdir)/'`Prelude.cxx @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Prelude_la-Prelude.Tpo $(DEPDIR)/Prelude_la-Prelude.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Prelude.cxx' object='Prelude_la-Prelude.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Prelude_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Prelude_la-Prelude.lo `test -f 'Prelude.cxx' || echo '$(srcdir)/'`Prelude.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_swigdataDATA: $(dist_swigdata_DATA) @$(NORMAL_INSTALL) @list='$(dist_swigdata_DATA)'; test -n "$(swigdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(swigdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(swigdatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(swigdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(swigdatadir)" || exit $$?; \ done uninstall-dist_swigdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_swigdata_DATA)'; test -n "$(swigdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(swigdatadir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: for dir in "$(DESTDIR)$(rbexecdir)" "$(DESTDIR)$(swigdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-rbexecLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_swigdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-rbexecLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_swigdataDATA uninstall-rbexecLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-rbexecLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dist_swigdataDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-rbexecLTLIBRARIES install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am \ uninstall-dist_swigdataDATA uninstall-rbexecLTLIBRARIES @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@Prelude.cxx: $(top_srcdir)/bindings/c++/include/*.hxx $(top_srcdir)/bindings/libpreludecpp.i libpreludecpp-ruby.i @HAVE_EASY_BINDINGS_TRUE@@HAVE_RUBY_TRUE@@HAVE_SWIG_TRUE@ $(SWIG) -c++ -DSWIG_COMPILE_LIBPRELUDE -I$(top_srcdir)/bindings -I$(top_srcdir)/bindings/c++/include -I$(top_srcdir)/src/include -I$(top_srcdir)/src/libprelude-error -ruby -o $@ $(top_srcdir)/bindings/libpreludecpp.i -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/bindings/ruby/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163410021463 xustar000000000000000024 mtime=1599661832.511 24 atime=1599661832.733 23 ctime=1599662000.51 libprelude-5.2.0/bindings/ruby/Makefile.am0000644000000000000000000000170413726163410020462 0ustar00rootroot00000000000000if HAVE_EASY_BINDINGS if HAVE_RUBY swigdatadir = @SWIG_DATA_DIR@/ruby dist_swigdata_DATA = libpreludecpp-ruby.i EXTRA_DIST = libpreludecpp-ruby.i Prelude.cxx rbexec_LTLIBRARIES = Prelude.la Prelude_la_CPPFLAGS = $(RUBY_INCLUDES) $(RUBY_CCFLAGS) -I@top_builddir@ -I$(top_srcdir)/src/include -I$(top_builddir)/src/include -I@top_builddir@/src/libprelude-error -I$(top_srcdir)/bindings/c++/include Prelude_la_LDFLAGS = -module -avoid-version Prelude_la_LIBADD = $(top_builddir)/bindings/c++/.libs/libpreludecpp.la $(RUBY_LIBS) nodist_Prelude_la_SOURCES = Prelude.cxx Prelude.cxx: $(top_srcdir)/bindings/c++/include/*.hxx $(top_srcdir)/bindings/libpreludecpp.i libpreludecpp-ruby.i if HAVE_SWIG $(SWIG) -c++ -DSWIG_COMPILE_LIBPRELUDE -I$(top_srcdir)/bindings -I$(top_srcdir)/bindings/c++/include -I$(top_srcdir)/src/include -I$(top_srcdir)/src/libprelude-error -ruby -o $@ $(top_srcdir)/bindings/libpreludecpp.i endif endif endif -include $(top_srcdir)/git.mk libprelude-5.2.0/bindings/ruby/PaxHeaders.14770/libpreludecpp-ruby.i0000644000000000000000000000011013726163410023404 xustar000000000000000024 mtime=1599661832.516 24 atime=1599661832.736 24 ctime=1599662000.512 libprelude-5.2.0/bindings/ruby/libpreludecpp-ruby.i0000644000000000000000000001642713726163410022421 0ustar00rootroot00000000000000/***** * * Copyright (C) 2005-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ %rename (__str__) *::operator const std::string() const; %rename (__str__) *::operator const char *() const; %rename (__int__) *::operator int() const; %rename (__long__) *::operator long() const; %rename (__float__) *::operator double() const; %ignore *::operator =; %ignore *::operator !=; %header %{ #define TARGET_LANGUAGE_SELF VALUE #define TARGET_LANGUAGE_OUTPUT_TYPE VALUE * %} /* tell squid not to cast void * value */ %typemap(in) void *nocast_p { Check_Type($input, T_FILE); $1 = &$input; } %{ extern "C" { #include /* * cannot put libmissing into the include path, as it will trigger * a compilation failure here. */ #include "config.h" #include "../../libmissing/glthread/thread.h" #ifdef HAVE_RUBY_IO_H /* Ruby 1.9 */ # include "ruby/io.h" # define GetReadFile(x) rb_io_stdio_file(x) # define GetWriteFile(x) rb_io_stdio_file(x) #else # include "rubyio.h" /* Ruby 1.8 */ #endif #ifndef HAVE_RB_IO_T # define rb_io_t OpenFile #endif #ifndef StringValuePtr # define StringValuePtr(s) STR2CSTR(s) #endif #ifndef RARRAY_LEN # define RARRAY_LEN(s) RARRAY(s)->len #endif #ifndef RARRAY_PTR # define RARRAY_PTR(s) RARRAY(s)->ptr #endif } %}; %fragment("TransitionFunc", "header") { static gl_thread_t __initial_thread; static VALUE __prelude_log_func = Qnil; static void _cb_ruby_log(int level, const char *str) { static int cid = rb_intern("call"); if ( (gl_thread_t) gl_thread_self() != __initial_thread ) return; rb_funcall(__prelude_log_func, cid, 2, SWIG_From_int(level), SWIG_FromCharPtr(str)); } static int _cb_ruby_write(prelude_msgbuf_t *fd, prelude_msg_t *msg) { ssize_t ret; rb_io_t *fptr; VALUE *io = (VALUE *) prelude_msgbuf_get_data(fd); GetOpenFile(*io, fptr); ret = fwrite((const char *) prelude_msg_get_message_data(msg), 1, prelude_msg_get_len(msg), GetWriteFile(fptr)); if ( ret != prelude_msg_get_len(msg) ) return prelude_error_from_errno(errno); prelude_msg_recycle(msg); return 0; } static ssize_t _cb_ruby_read(prelude_io_t *fd, void *buf, size_t size) { ssize_t ret; rb_io_t *fptr; VALUE *io = (VALUE *) prelude_io_get_fdptr(fd); GetOpenFile(*io, fptr); ret = fread(buf, 1, size, GetReadFile(fptr)); if ( ret < 0 ) ret = prelude_error_from_errno(errno); else if ( ret == 0 ) ret = prelude_error(PRELUDE_ERROR_EOF); return ret; } }; %typemap(in, fragment="TransitionFunc") void (*log_cb)(int level, const char *log) { if ( ! SWIG_Ruby_isCallable($input) ) SWIG_exception_fail(SWIG_ValueError, "Argument is not a callable object"); __prelude_log_func = $input; rb_global_variable(&$input); $1 = _cb_ruby_log; }; %exception { try { $action } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } %exception read(void *nocast_p) { try { $action } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) { result = 0; } else SWIG_exception_fail(SWIG_RuntimeError, e.what()); } } %extend Prelude::IDMEF { void write(void *nocast_p) { self->_genericWrite(_cb_ruby_write, nocast_p); } int read(void *nocast_p) { self->_genericRead(_cb_ruby_read, nocast_p); return 1; } Prelude::IDMEF &operator >> (void *nocast_p) { self->_genericWrite(_cb_ruby_write, nocast_p); return *self; } Prelude::IDMEF &operator << (void *nocast_p) { self->_genericRead(_cb_ruby_read, nocast_p); return *self; } } %fragment("IDMEFValueList_to_SWIG", "header") { int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret); VALUE IDMEFValueList_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &value, void *extra) { int ret; VALUE ary; std::vector result = value; std::vector::const_iterator i; ary = rb_ary_new2(result.size()); for ( i = result.begin(); i != result.end(); i++ ) { VALUE val; if ( (*i).isNull() ) val = Qnil; else { ret = IDMEFValue_to_SWIG(self, *i, extra, &val); if ( ret < 0 ) return Qnil; } if ( ! rb_ary_push(ary, val) ) return Qnil; } return ary; } } %typemap(out, fragment="IDMEFValue_to_SWIG") Prelude::IDMEFValue { int ret; if ( $1.isNull() ) $result = Qnil; else { ret = IDMEFValue_to_SWIG(self, $1, NULL, &$result); if ( ret < 0 ) { std::stringstream s; s << "IDMEFValue typemap does not handle value of type '" << idmef_value_type_to_string((idmef_value_type_id_t) $1.getType()) << "'"; SWIG_exception_fail(SWIG_ValueError, s.str().c_str()); } } }; %init { int ret; char **argv; int _i, argc; VALUE rbargv, *ptr, tmp; __initial_thread = (gl_thread_t) gl_thread_self(); rbargv = rb_const_get(rb_cObject, rb_intern("ARGV")); argc = RARRAY_LEN(rbargv) + 1; if ( argc + 1 < 0 ) throw PreludeError("Invalid argc length"); argv = (char **) malloc((argc + 1) * sizeof(char *)); if ( ! argv ) throw PreludeError("Allocation failure"); tmp = rb_gv_get("$0"); argv[0] = StringValuePtr(tmp); for ( ptr = RARRAY_PTR(rbargv), _i = 1; _i < argc; _i++, ptr++ ) argv[_i] = StringValuePtr(*ptr); argv[_i] = NULL; ret = prelude_init(&argc, argv); if ( ret < 0 ) { free(argv); throw PreludeError(ret); } free(argv); } libprelude-5.2.0/bindings/ruby/PaxHeaders.14770/Prelude.cxx0000644000000000000000000000011013726163410021545 xustar000000000000000024 mtime=1599661832.516 24 atime=1599661832.733 24 ctime=1599662000.514 libprelude-5.2.0/bindings/ruby/Prelude.cxx0000644000000000000000000214122213726163410020554 0ustar00rootroot00000000000000/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 4.0.1 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ #ifndef SWIGRUBY #define SWIGRUBY #endif #ifdef __cplusplus /* SwigValueWrapper is described in swig.swg */ template class SwigValueWrapper { struct SwigMovePointer { T *ptr; SwigMovePointer(T *p) : ptr(p) { } ~SwigMovePointer() { delete ptr; } SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } } pointer; SwigValueWrapper& operator=(const SwigValueWrapper& rhs); SwigValueWrapper(const SwigValueWrapper& rhs); public: SwigValueWrapper() : pointer(0) { } SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; } operator T&() const { return *pointer.ptr; } T *operator&() { return pointer.ptr; } }; template T SwigValueInit() { return T(); } #endif /* ----------------------------------------------------------------------------- * This section contains generic SWIG labels for method/variable * declarations/attributes, and other compiler dependent labels. * ----------------------------------------------------------------------------- */ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) # define SWIGTEMPLATEDISAMBIGUATOR template # elif defined(__HP_aCC) /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ # define SWIGTEMPLATEDISAMBIGUATOR template # else # define SWIGTEMPLATEDISAMBIGUATOR # endif #endif /* inline attribute */ #ifndef SWIGINLINE # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) # define SWIGINLINE inline # else # define SWIGINLINE # endif #endif /* attribute recognised by some compilers to avoid 'unused' warnings */ #ifndef SWIGUNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif # elif defined(__ICC) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif #endif #ifndef SWIG_MSC_UNSUPPRESS_4505 # if defined(_MSC_VER) # pragma warning(disable : 4505) /* unreferenced local function has been removed */ # endif #endif #ifndef SWIGUNUSEDPARM # ifdef __cplusplus # define SWIGUNUSEDPARM(p) # else # define SWIGUNUSEDPARM(p) p SWIGUNUSED # endif #endif /* internal SWIG method */ #ifndef SWIGINTERN # define SWIGINTERN static SWIGUNUSED #endif /* internal inline SWIG method */ #ifndef SWIGINTERNINLINE # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif /* exporting methods */ #if defined(__GNUC__) # if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) # ifndef GCC_HASCLASSVISIBILITY # define GCC_HASCLASSVISIBILITY # endif # endif #endif #ifndef SWIGEXPORT # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(STATIC_LINKED) # define SWIGEXPORT # else # define SWIGEXPORT __declspec(dllexport) # endif # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) # define SWIGEXPORT __attribute__ ((visibility("default"))) # else # define SWIGEXPORT # endif # endif #endif /* calling conventions for Windows */ #ifndef SWIGSTDCALL # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # define SWIGSTDCALL __stdcall # else # define SWIGSTDCALL # endif #endif /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) # define _CRT_SECURE_NO_DEPRECATE #endif /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) # define _SCL_SECURE_NO_DEPRECATE #endif /* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ #if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) # define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 #endif /* Intel's compiler complains if a variable which was never initialised is * cast to void, which is a common idiom which we use to indicate that we * are aware a variable isn't used. So we just silence that warning. * See: https://github.com/swig/swig/issues/192 for more discussion. */ #ifdef __INTEL_COMPILER # pragma warning disable 592 #endif /* ----------------------------------------------------------------------------- * This section contains generic SWIG labels for method/variable * declarations/attributes, and other compiler dependent labels. * ----------------------------------------------------------------------------- */ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) # define SWIGTEMPLATEDISAMBIGUATOR template # elif defined(__HP_aCC) /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ # define SWIGTEMPLATEDISAMBIGUATOR template # else # define SWIGTEMPLATEDISAMBIGUATOR # endif #endif /* inline attribute */ #ifndef SWIGINLINE # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) # define SWIGINLINE inline # else # define SWIGINLINE # endif #endif /* attribute recognised by some compilers to avoid 'unused' warnings */ #ifndef SWIGUNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif # elif defined(__ICC) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif #endif #ifndef SWIG_MSC_UNSUPPRESS_4505 # if defined(_MSC_VER) # pragma warning(disable : 4505) /* unreferenced local function has been removed */ # endif #endif #ifndef SWIGUNUSEDPARM # ifdef __cplusplus # define SWIGUNUSEDPARM(p) # else # define SWIGUNUSEDPARM(p) p SWIGUNUSED # endif #endif /* internal SWIG method */ #ifndef SWIGINTERN # define SWIGINTERN static SWIGUNUSED #endif /* internal inline SWIG method */ #ifndef SWIGINTERNINLINE # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif /* exporting methods */ #if defined(__GNUC__) # if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) # ifndef GCC_HASCLASSVISIBILITY # define GCC_HASCLASSVISIBILITY # endif # endif #endif #ifndef SWIGEXPORT # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(STATIC_LINKED) # define SWIGEXPORT # else # define SWIGEXPORT __declspec(dllexport) # endif # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) # define SWIGEXPORT __attribute__ ((visibility("default"))) # else # define SWIGEXPORT # endif # endif #endif /* calling conventions for Windows */ #ifndef SWIGSTDCALL # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # define SWIGSTDCALL __stdcall # else # define SWIGSTDCALL # endif #endif /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) # define _CRT_SECURE_NO_DEPRECATE #endif /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) # define _SCL_SECURE_NO_DEPRECATE #endif /* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */ #if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES) # define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0 #endif /* Intel's compiler complains if a variable which was never initialised is * cast to void, which is a common idiom which we use to indicate that we * are aware a variable isn't used. So we just silence that warning. * See: https://github.com/swig/swig/issues/192 for more discussion. */ #ifdef __INTEL_COMPILER # pragma warning disable 592 #endif /* ----------------------------------------------------------------------------- * swigrun.swg * * This file contains generic C API SWIG runtime support for pointer * type checking. * ----------------------------------------------------------------------------- */ /* This should only be incremented when either the layout of swig_type_info changes, or for whatever reason, the runtime changes incompatibly */ #define SWIG_RUNTIME_VERSION "4" /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ #ifdef SWIG_TYPE_TABLE # define SWIG_QUOTE_STRING(x) #x # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) #else # define SWIG_TYPE_TABLE_NAME #endif /* You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for creating a static or dynamic library from the SWIG runtime code. In 99.9% of the cases, SWIG just needs to declare them as 'static'. But only do this if strictly necessary, ie, if you have problems with your compiler or suchlike. */ #ifndef SWIGRUNTIME # define SWIGRUNTIME SWIGINTERN #endif #ifndef SWIGRUNTIMEINLINE # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE #endif /* Generic buffer size */ #ifndef SWIG_BUFFER_SIZE # define SWIG_BUFFER_SIZE 1024 #endif /* Flags for pointer conversions */ #define SWIG_POINTER_DISOWN 0x1 #define SWIG_CAST_NEW_MEMORY 0x2 #define SWIG_POINTER_NO_NULL 0x4 /* Flags for new pointer objects */ #define SWIG_POINTER_OWN 0x1 /* Flags/methods for returning states. The SWIG conversion methods, as ConvertPtr, return an integer that tells if the conversion was successful or not. And if not, an error code can be returned (see swigerrors.swg for the codes). Use the following macros/flags to set or process the returning states. In old versions of SWIG, code such as the following was usually written: if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { // success code } else { //fail code } Now you can be more explicit: int res = SWIG_ConvertPtr(obj,vptr,ty.flags); if (SWIG_IsOK(res)) { // success code } else { // fail code } which is the same really, but now you can also do Type *ptr; int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); if (SWIG_IsOK(res)) { // success code if (SWIG_IsNewObj(res) { ... delete *ptr; } else { ... } } else { // fail code } I.e., now SWIG_ConvertPtr can return new objects and you can identify the case and take care of the deallocation. Of course that also requires SWIG_ConvertPtr to return new result values, such as int SWIG_ConvertPtr(obj, ptr,...) { if () { if () { *ptr = ; return SWIG_NEWOBJ; } else { *ptr = ; return SWIG_OLDOBJ; } } else { return SWIG_BADOBJ; } } Of course, returning the plain '0(success)/-1(fail)' still works, but you can be more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the SWIG errors code. Finally, if the SWIG_CASTRANK_MODE is enabled, the result code allows to return the 'cast rank', for example, if you have this int food(double) int fooi(int); and you call food(1) // cast rank '1' (1 -> 1.0) fooi(1) // cast rank '0' just use the SWIG_AddCast()/SWIG_CheckState() */ #define SWIG_OK (0) #define SWIG_ERROR (-1) #define SWIG_IsOK(r) (r >= 0) #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) /* The CastRankLimit says how many bits are used for the cast rank */ #define SWIG_CASTRANKLIMIT (1 << 8) /* The NewMask denotes the object was created (using new/malloc) */ #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) /* The TmpMask is for in/out typemaps that use temporal objects */ #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) /* Simple returning values */ #define SWIG_BADOBJ (SWIG_ERROR) #define SWIG_OLDOBJ (SWIG_OK) #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) /* Check, add and del mask methods */ #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) /* Cast-Rank Mode */ #if defined(SWIG_CASTRANK_MODE) # ifndef SWIG_TypeRank # define SWIG_TypeRank unsigned long # endif # ifndef SWIG_MAXCASTRANK /* Default cast allowed */ # define SWIG_MAXCASTRANK (2) # endif # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) SWIGINTERNINLINE int SWIG_AddCast(int r) { return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; } SWIGINTERNINLINE int SWIG_CheckState(int r) { return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; } #else /* no cast-rank mode */ # define SWIG_AddCast(r) (r) # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) #endif #include #ifdef __cplusplus extern "C" { #endif typedef void *(*swig_converter_func)(void *, int *); typedef struct swig_type_info *(*swig_dycast_func)(void **); /* Structure to store information on one type */ typedef struct swig_type_info { const char *name; /* mangled name of this type */ const char *str; /* human readable name of this type */ swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ struct swig_cast_info *cast; /* linked list of types that can cast into this type */ void *clientdata; /* language specific type data */ int owndata; /* flag if the structure owns the clientdata */ } swig_type_info; /* Structure to store a type and conversion function used for casting */ typedef struct swig_cast_info { swig_type_info *type; /* pointer to type that is equivalent to this type */ swig_converter_func converter; /* function to cast the void pointers */ struct swig_cast_info *next; /* pointer to next cast in linked list */ struct swig_cast_info *prev; /* pointer to the previous cast */ } swig_cast_info; /* Structure used to store module information * Each module generates one structure like this, and the runtime collects * all of these structures and stores them in a circularly linked list.*/ typedef struct swig_module_info { swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ size_t size; /* Number of types in this module */ struct swig_module_info *next; /* Pointer to next element in circularly linked list */ swig_type_info **type_initial; /* Array of initially generated type structures */ swig_cast_info **cast_initial; /* Array of initially generated casting structures */ void *clientdata; /* Language specific module data */ } swig_module_info; /* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class" == "Class", etc. Return 0 when the two name types are equivalent, as in strncmp, but skipping ' '. */ SWIGRUNTIME int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { while ((*f1 == ' ') && (f1 != l1)) ++f1; while ((*f2 == ' ') && (f2 != l2)) ++f2; if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; } return (int)((l1 - f1) - (l2 - f2)); } /* Check type equivalence in a name list like ||... Return 0 if equal, -1 if nb < tb, 1 if nb > tb */ SWIGRUNTIME int SWIG_TypeCmp(const char *nb, const char *tb) { int equiv = 1; const char* te = tb + strlen(tb); const char* ne = nb; while (equiv != 0 && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = SWIG_TypeNameComp(nb, ne, tb, te); if (*ne) ++ne; } return equiv; } /* Check type equivalence in a name list like ||... Return 0 if not equal, 1 if equal */ SWIGRUNTIME int SWIG_TypeEquiv(const char *nb, const char *tb) { return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0; } /* Check the typename */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheck(const char *c, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (strcmp(iter->type->name, c) == 0) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) { if (ty) { swig_cast_info *iter = ty->cast; while (iter) { if (iter->type == from) { if (iter == ty->cast) return iter; /* Move iter to the top of the linked list */ iter->prev->next = iter->next; if (iter->next) iter->next->prev = iter->prev; iter->next = ty->cast; iter->prev = 0; if (ty->cast) ty->cast->prev = iter; ty->cast = iter; return iter; } iter = iter->next; } } return 0; } /* Cast a pointer up an inheritance hierarchy */ SWIGRUNTIMEINLINE void * SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); } /* Dynamic pointer casting. Down an inheritance hierarchy */ SWIGRUNTIME swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { swig_type_info *lastty = ty; if (!ty || !ty->dcast) return ty; while (ty && (ty->dcast)) { ty = (*ty->dcast)(ptr); if (ty) lastty = ty; } return lastty; } /* Return the name associated with this type */ SWIGRUNTIMEINLINE const char * SWIG_TypeName(const swig_type_info *ty) { return ty->name; } /* Return the pretty name associated with this type, that is an unmangled type name in a form presentable to the user. */ SWIGRUNTIME const char * SWIG_TypePrettyName(const swig_type_info *type) { /* The "str" field contains the equivalent pretty names of the type, separated by vertical-bar characters. We choose to print the last name, as it is often (?) the most specific. */ if (!type) return NULL; if (type->str != NULL) { const char *last_name = type->str; const char *s; for (s = type->str; *s; s++) if (*s == '|') last_name = s+1; return last_name; } else return type->name; } /* Set the clientdata field for a type */ SWIGRUNTIME void SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_cast_info *cast = ti->cast; /* if (ti->clientdata == clientdata) return; */ ti->clientdata = clientdata; while (cast) { if (!cast->converter) { swig_type_info *tc = cast->type; if (!tc->clientdata) { SWIG_TypeClientData(tc, clientdata); } } cast = cast->next; } } SWIGRUNTIME void SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { SWIG_TypeClientData(ti, clientdata); ti->owndata = 1; } /* Search for a swig_type_info structure only by mangled name Search is a O(log #types) We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_MangledTypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { swig_module_info *iter = start; do { if (iter->size) { size_t l = 0; size_t r = iter->size - 1; do { /* since l+r >= 0, we can (>> 1) instead (/ 2) */ size_t i = (l + r) >> 1; const char *iname = iter->types[i]->name; if (iname) { int compare = strcmp(name, iname); if (compare == 0) { return iter->types[i]; } else if (compare < 0) { if (i) { r = i - 1; } else { break; } } else if (compare > 0) { l = i + 1; } } else { break; /* should never happen */ } } while (l <= r); } iter = iter->next; } while (iter != end); return 0; } /* Search for a swig_type_info structure for either a mangled name or a human readable name. It first searches the mangled names of the types, which is a O(log #types) If a type is not found it then searches the human readable names, which is O(#types). We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_TypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { /* STEP 1: Search the name field using binary search */ swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); if (ret) { return ret; } else { /* STEP 2: If the type hasn't been found, do a complete search of the str field (the human readable name) */ swig_module_info *iter = start; do { size_t i = 0; for (; i < iter->size; ++i) { if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) return iter->types[i]; } iter = iter->next; } while (iter != end); } /* neither found a match */ return 0; } /* Pack binary data into a string */ SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz) { static const char hex[17] = "0123456789abcdef"; const unsigned char *u = (unsigned char *) ptr; const unsigned char *eu = u + sz; for (; u != eu; ++u) { unsigned char uu = *u; *(c++) = hex[(uu & 0xf0) >> 4]; *(c++) = hex[uu & 0xf]; } return c; } /* Unpack binary data from a string */ SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { unsigned char *u = (unsigned char *) ptr; const unsigned char *eu = u + sz; for (; u != eu; ++u) { char d = *(c++); unsigned char uu; if ((d >= '0') && (d <= '9')) uu = (unsigned char)((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) uu = (unsigned char)((d - ('a'-10)) << 4); else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) uu |= (unsigned char)(d - '0'); else if ((d >= 'a') && (d <= 'f')) uu |= (unsigned char)(d - ('a'-10)); else return (char *) 0; *u = uu; } return c; } /* Pack 'void *' into a string buffer. */ SWIGRUNTIME char * SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { char *r = buff; if ((2*sizeof(void *) + 2) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,&ptr,sizeof(void *)); if (strlen(name) + 1 > (bsz - (r - buff))) return 0; strcpy(r,name); return buff; } SWIGRUNTIME const char * SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { *ptr = (void *) 0; return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sizeof(void *)); } SWIGRUNTIME char * SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { char *r = buff; size_t lname = (name ? strlen(name) : 0); if ((2*sz + 2 + lname) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); if (lname) { strncpy(r,name,lname+1); } else { *r = 0; } return buff; } SWIGRUNTIME const char * SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { memset(ptr,0,sz); return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sz); } #ifdef __cplusplus } #endif /* Errors in SWIG */ #define SWIG_UnknownError -1 #define SWIG_IOError -2 #define SWIG_RuntimeError -3 #define SWIG_IndexError -4 #define SWIG_TypeError -5 #define SWIG_DivisionByZero -6 #define SWIG_OverflowError -7 #define SWIG_SyntaxError -8 #define SWIG_ValueError -9 #define SWIG_SystemError -10 #define SWIG_AttributeError -11 #define SWIG_MemoryError -12 #define SWIG_NullReferenceError -13 #include /* Ruby 1.9.1 has a "memoisation optimisation" when compiling with GCC which * breaks using rb_intern as an lvalue, as SWIG does. We work around this * issue for now by disabling this. * https://sourceforge.net/tracker/?func=detail&aid=2859614&group_id=1645&atid=101645 */ #ifdef rb_intern # undef rb_intern #endif /* Remove global macros defined in Ruby's win32.h */ #ifdef write # undef write #endif #ifdef read # undef read #endif #ifdef bind # undef bind #endif #ifdef close # undef close #endif #ifdef connect # undef connect #endif /* Ruby 1.7 defines NUM2LL(), LL2NUM() and ULL2NUM() macros */ #ifndef NUM2LL #define NUM2LL(x) NUM2LONG((x)) #endif #ifndef LL2NUM #define LL2NUM(x) INT2NUM((long) (x)) #endif #ifndef ULL2NUM #define ULL2NUM(x) UINT2NUM((unsigned long) (x)) #endif /* Ruby 1.7 doesn't (yet) define NUM2ULL() */ #ifndef NUM2ULL #ifdef HAVE_LONG_LONG #define NUM2ULL(x) rb_num2ull((x)) #else #define NUM2ULL(x) NUM2ULONG(x) #endif #endif /* RSTRING_LEN, etc are new in Ruby 1.9, but ->ptr and ->len no longer work */ /* Define these for older versions so we can just write code the new way */ #ifndef RSTRING_LEN # define RSTRING_LEN(x) RSTRING(x)->len #endif #ifndef RSTRING_PTR # define RSTRING_PTR(x) RSTRING(x)->ptr #endif #ifndef RSTRING_END # define RSTRING_END(x) (RSTRING_PTR(x) + RSTRING_LEN(x)) #endif #ifndef RARRAY_LEN # define RARRAY_LEN(x) RARRAY(x)->len #endif #ifndef RARRAY_PTR # define RARRAY_PTR(x) RARRAY(x)->ptr #endif #ifndef RFLOAT_VALUE # define RFLOAT_VALUE(x) RFLOAT(x)->value #endif #ifndef DOUBLE2NUM # define DOUBLE2NUM(x) rb_float_new(x) #endif #ifndef RHASH_TBL # define RHASH_TBL(x) (RHASH(x)->tbl) #endif #ifndef RHASH_ITER_LEV # define RHASH_ITER_LEV(x) (RHASH(x)->iter_lev) #endif #ifndef RHASH_IFNONE # define RHASH_IFNONE(x) (RHASH(x)->ifnone) #endif #ifndef RHASH_SIZE # define RHASH_SIZE(x) (RHASH(x)->tbl->num_entries) #endif #ifndef RHASH_EMPTY_P # define RHASH_EMPTY_P(x) (RHASH_SIZE(x) == 0) #endif #ifndef RSTRUCT_LEN # define RSTRUCT_LEN(x) RSTRUCT(x)->len #endif #ifndef RSTRUCT_PTR # define RSTRUCT_PTR(x) RSTRUCT(x)->ptr #endif #ifndef RTYPEDDATA_P # define RTYPEDDATA_P(x) (TYPE(x) != T_DATA) #endif /* * Need to be very careful about how these macros are defined, especially * when compiling C++ code or C code with an ANSI C compiler. * * VALUEFUNC(f) is a macro used to typecast a C function that implements * a Ruby method so that it can be passed as an argument to API functions * like rb_define_method() and rb_define_singleton_method(). * * VOIDFUNC(f) is a macro used to typecast a C function that implements * either the "mark" or "free" stuff for a Ruby Data object, so that it * can be passed as an argument to API functions like Data_Wrap_Struct() * and Data_Make_Struct(). */ #ifdef __cplusplus # ifndef RUBY_METHOD_FUNC /* These definitions should work for Ruby 1.4.6 */ # define PROTECTFUNC(f) ((VALUE (*)()) f) # define VALUEFUNC(f) ((VALUE (*)()) f) # define VOIDFUNC(f) ((void (*)()) f) # else # ifndef ANYARGS /* These definitions should work for Ruby 1.6 */ # define PROTECTFUNC(f) ((VALUE (*)()) f) # define VALUEFUNC(f) ((VALUE (*)()) f) # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f) # else /* These definitions should work for Ruby 1.7+ */ # define PROTECTFUNC(f) ((VALUE (*)(VALUE)) f) # define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f) # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f) # endif # endif #else # define VALUEFUNC(f) (f) # define VOIDFUNC(f) (f) #endif /* Don't use for expressions have side effect */ #ifndef RB_STRING_VALUE #define RB_STRING_VALUE(s) (TYPE(s) == T_STRING ? (s) : (*(volatile VALUE *)&(s) = rb_str_to_str(s))) #endif #ifndef StringValue #define StringValue(s) RB_STRING_VALUE(s) #endif #ifndef StringValuePtr #define StringValuePtr(s) RSTRING_PTR(RB_STRING_VALUE(s)) #endif #ifndef StringValueLen #define StringValueLen(s) RSTRING_LEN(RB_STRING_VALUE(s)) #endif #ifndef SafeStringValue #define SafeStringValue(v) do {\ StringValue(v);\ rb_check_safe_str(v);\ } while (0) #endif #ifndef HAVE_RB_DEFINE_ALLOC_FUNC #define rb_define_alloc_func(klass, func) rb_define_singleton_method((klass), "new", VALUEFUNC((func)), -1) #define rb_undef_alloc_func(klass) rb_undef_method(CLASS_OF((klass)), "new") #endif static VALUE _mSWIG = Qnil; /* ----------------------------------------------------------------------------- * error manipulation * ----------------------------------------------------------------------------- */ /* Define some additional error types */ #define SWIG_ObjectPreviouslyDeletedError -100 /* Define custom exceptions for errors that do not map to existing Ruby exceptions. Note this only works for C++ since a global cannot be initialized by a function in C. For C, fallback to rb_eRuntimeError.*/ SWIGINTERN VALUE getNullReferenceError(void) { static int init = 0; static VALUE rb_eNullReferenceError ; if (!init) { init = 1; rb_eNullReferenceError = rb_define_class("NullReferenceError", rb_eRuntimeError); } return rb_eNullReferenceError; } SWIGINTERN VALUE getObjectPreviouslyDeletedError(void) { static int init = 0; static VALUE rb_eObjectPreviouslyDeleted ; if (!init) { init = 1; rb_eObjectPreviouslyDeleted = rb_define_class("ObjectPreviouslyDeleted", rb_eRuntimeError); } return rb_eObjectPreviouslyDeleted; } SWIGINTERN VALUE SWIG_Ruby_ErrorType(int SWIG_code) { VALUE type; switch (SWIG_code) { case SWIG_MemoryError: type = rb_eNoMemError; break; case SWIG_IOError: type = rb_eIOError; break; case SWIG_RuntimeError: type = rb_eRuntimeError; break; case SWIG_IndexError: type = rb_eIndexError; break; case SWIG_TypeError: type = rb_eTypeError; break; case SWIG_DivisionByZero: type = rb_eZeroDivError; break; case SWIG_OverflowError: type = rb_eRangeError; break; case SWIG_SyntaxError: type = rb_eSyntaxError; break; case SWIG_ValueError: type = rb_eArgError; break; case SWIG_SystemError: type = rb_eFatal; break; case SWIG_AttributeError: type = rb_eRuntimeError; break; case SWIG_NullReferenceError: type = getNullReferenceError(); break; case SWIG_ObjectPreviouslyDeletedError: type = getObjectPreviouslyDeletedError(); break; case SWIG_UnknownError: type = rb_eRuntimeError; break; default: type = rb_eRuntimeError; } return type; } /* This function is called when a user inputs a wrong argument to a method. */ SWIGINTERN const char* Ruby_Format_TypeError( const char* msg, const char* type, const char* name, const int argn, VALUE input ) { char buf[128]; VALUE str; VALUE asStr; if ( msg && *msg ) { str = rb_str_new2(msg); } else { str = rb_str_new(NULL, 0); } str = rb_str_cat2( str, "Expected argument " ); sprintf( buf, "%d of type ", argn-1 ); str = rb_str_cat2( str, buf ); str = rb_str_cat2( str, type ); str = rb_str_cat2( str, ", but got " ); str = rb_str_cat2( str, rb_obj_classname(input) ); str = rb_str_cat2( str, " " ); asStr = rb_inspect(input); if ( RSTRING_LEN(asStr) > 30 ) { str = rb_str_cat( str, StringValuePtr(asStr), 30 ); str = rb_str_cat2( str, "..." ); } else { str = rb_str_append( str, asStr ); } if ( name ) { str = rb_str_cat2( str, "\n\tin SWIG method '" ); str = rb_str_cat2( str, name ); str = rb_str_cat2( str, "'" ); } return StringValuePtr( str ); } /* This function is called when an overloaded method fails */ SWIGINTERN void Ruby_Format_OverloadedError( const int argc, const int maxargs, const char* method, const char* prototypes ) { const char* msg = "Wrong # of arguments"; if ( argc <= maxargs ) msg = "Wrong arguments"; rb_raise(rb_eArgError,"%s for overloaded method '%s'.\n" "Possible C/C++ prototypes are:\n%s", msg, method, prototypes); } /* ----------------------------------------------------------------------------- * rubytracking.swg * * This file contains support for tracking mappings from * Ruby objects to C++ objects. This functionality is needed * to implement mark functions for Ruby's mark and sweep * garbage collector. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #endif #if !defined(ST_DATA_T_DEFINED) /* Needs to be explicitly included for Ruby 1.8 and earlier */ #include #endif /* Ruby 1.8 actually assumes the first case. */ #if SIZEOF_VOIDP == SIZEOF_LONG # define SWIG2NUM(v) LONG2NUM((unsigned long)v) # define NUM2SWIG(x) (unsigned long)NUM2LONG(x) #elif SIZEOF_VOIDP == SIZEOF_LONG_LONG # define SWIG2NUM(v) LL2NUM((unsigned long long)v) # define NUM2SWIG(x) (unsigned long long)NUM2LL(x) #else # error sizeof(void*) is not the same as long or long long #endif /* Global hash table to store Trackings from C/C++ structs to Ruby Objects. */ static st_table* swig_ruby_trackings = NULL; static VALUE swig_ruby_trackings_count(ANYARGS) { return SWIG2NUM(swig_ruby_trackings->num_entries); } /* Setup a hash table to store Trackings */ SWIGRUNTIME void SWIG_RubyInitializeTrackings(void) { /* Create a hash table to store Trackings from C++ objects to Ruby objects. */ /* Try to see if some other .so has already created a tracking hash table, which we keep hidden in an instance var in the SWIG module. This is done to allow multiple DSOs to share the same tracking table. */ VALUE trackings_value = Qnil; /* change the variable name so that we can mix modules compiled with older SWIG's - this used to be called "@__trackings__" */ ID trackings_id = rb_intern( "@__safetrackings__" ); VALUE verbose = rb_gv_get("VERBOSE"); rb_gv_set("VERBOSE", Qfalse); trackings_value = rb_ivar_get( _mSWIG, trackings_id ); rb_gv_set("VERBOSE", verbose); /* The trick here is that we have to store the hash table pointer in a Ruby variable. We do not want Ruby's GC to treat this pointer as a Ruby object, so we convert it to a Ruby numeric value. */ if (trackings_value == Qnil) { /* No, it hasn't. Create one ourselves */ swig_ruby_trackings = st_init_numtable(); rb_ivar_set( _mSWIG, trackings_id, SWIG2NUM(swig_ruby_trackings) ); } else { swig_ruby_trackings = (st_table*)NUM2SWIG(trackings_value); } rb_define_virtual_variable("SWIG_TRACKINGS_COUNT", swig_ruby_trackings_count, NULL); } /* Add a Tracking from a C/C++ struct to a Ruby object */ SWIGRUNTIME void SWIG_RubyAddTracking(void* ptr, VALUE object) { /* Store the mapping to the global hash table. */ st_insert(swig_ruby_trackings, (st_data_t)ptr, object); } /* Get the Ruby object that owns the specified C/C++ struct */ SWIGRUNTIME VALUE SWIG_RubyInstanceFor(void* ptr) { /* Now lookup the value stored in the global hash table */ VALUE value; if (st_lookup(swig_ruby_trackings, (st_data_t)ptr, &value)) { return value; } else { return Qnil; } } /* Remove a Tracking from a C/C++ struct to a Ruby object. It is very important to remove objects once they are destroyed since the same memory address may be reused later to create a new object. */ SWIGRUNTIME void SWIG_RubyRemoveTracking(void* ptr) { /* Delete the object from the hash table */ st_delete(swig_ruby_trackings, (st_data_t *)&ptr, NULL); } /* This is a helper method that unlinks a Ruby object from its underlying C++ object. This is needed if the lifetime of the Ruby object is longer than the C++ object. */ SWIGRUNTIME void SWIG_RubyUnlinkObjects(void* ptr) { VALUE object = SWIG_RubyInstanceFor(ptr); if (object != Qnil) { // object might have the T_ZOMBIE type, but that's just // because the GC has flagged it as such for a deferred // destruction. Until then, it's still a T_DATA object. DATA_PTR(object) = 0; } } /* This is a helper method that iterates over all the trackings passing the C++ object pointer and its related Ruby object to the passed callback function. */ /* Proxy method to abstract the internal trackings datatype */ static int swig_ruby_internal_iterate_callback(void* ptr, VALUE obj, void(*meth)(void* ptr, VALUE obj)) { (*meth)(ptr, obj); return ST_CONTINUE; } SWIGRUNTIME void SWIG_RubyIterateTrackings( void(*meth)(void* ptr, VALUE obj) ) { st_foreach(swig_ruby_trackings, (int (*)(ANYARGS))&swig_ruby_internal_iterate_callback, (st_data_t)meth); } #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * Ruby API portion that goes into the runtime * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #endif SWIGINTERN VALUE SWIG_Ruby_AppendOutput(VALUE target, VALUE o) { if (NIL_P(target)) { target = o; } else { if (TYPE(target) != T_ARRAY) { VALUE o2 = target; target = rb_ary_new(); rb_ary_push(target, o2); } rb_ary_push(target, o); } return target; } /* For ruby1.8.4 and earlier. */ #ifndef RUBY_INIT_STACK RUBY_EXTERN void Init_stack(VALUE* addr); # define RUBY_INIT_STACK \ VALUE variable_in_this_stack_frame; \ Init_stack(&variable_in_this_stack_frame); #endif #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * rubyrun.swg * * This file contains the runtime support for Ruby modules * and includes code for managing global variables and pointer * type checking. * ----------------------------------------------------------------------------- */ /* For backward compatibility only */ #define SWIG_POINTER_EXCEPTION 0 /* for raw pointers */ #define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Ruby_ConvertPtrAndOwn(obj, pptr, type, flags, 0) #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Ruby_ConvertPtrAndOwn(obj, pptr, type, flags, own) #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Ruby_NewPointerObj(ptr, type, flags) #define SWIG_AcquirePtr(ptr, own) SWIG_Ruby_AcquirePtr(ptr, own) #define swig_owntype swig_ruby_owntype /* for raw packed data */ #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Ruby_ConvertPacked(obj, ptr, sz, ty, flags) #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Ruby_NewPackedObj(ptr, sz, type) /* for class or struct pointers */ #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags) #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags) /* for C or C++ function pointers */ #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_ConvertPtr(obj, pptr, type, 0) #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_NewPointerObj(ptr, type, 0) /* for C++ member pointers, ie, member methods */ #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Ruby_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewMemberObj(ptr, sz, type) SWIG_Ruby_NewPackedObj(ptr, sz, type) /* Runtime API */ #define SWIG_GetModule(clientdata) SWIG_Ruby_GetModule(clientdata) #define SWIG_SetModule(clientdata, pointer) SWIG_Ruby_SetModule(pointer) /* Error manipulation */ #define SWIG_ErrorType(code) SWIG_Ruby_ErrorType(code) #define SWIG_Error(code, msg) rb_raise(SWIG_Ruby_ErrorType(code), "%s", msg) #define SWIG_fail goto fail /* Ruby-specific SWIG API */ #define SWIG_InitRuntime() SWIG_Ruby_InitRuntime() #define SWIG_define_class(ty) SWIG_Ruby_define_class(ty) #define SWIG_NewClassInstance(value, ty) SWIG_Ruby_NewClassInstance(value, ty) #define SWIG_MangleStr(value) SWIG_Ruby_MangleStr(value) #define SWIG_CheckConvert(value, ty) SWIG_Ruby_CheckConvert(value, ty) #include "assert.h" /* ----------------------------------------------------------------------------- * pointers/data manipulation * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #endif typedef struct { VALUE klass; VALUE mImpl; void (*mark)(void *); void (*destroy)(void *); int trackObjects; } swig_class; /* Global pointer used to keep some internal SWIG stuff */ static VALUE _cSWIG_Pointer = Qnil; static VALUE swig_runtime_data_type_pointer = Qnil; /* Global IDs used to keep some internal SWIG stuff */ static ID swig_arity_id = 0; static ID swig_call_id = 0; /* If your swig extension is to be run within an embedded ruby and has director callbacks, you should set -DRUBY_EMBEDDED during compilation. This will reset ruby's stack frame on each entry point from the main program the first time a virtual director function is invoked (in a non-recursive way). If this is not done, you run the risk of Ruby trashing the stack. */ #ifdef RUBY_EMBEDDED # define SWIG_INIT_STACK \ if ( !swig_virtual_calls ) { RUBY_INIT_STACK } \ ++swig_virtual_calls; # define SWIG_RELEASE_STACK --swig_virtual_calls; # define Ruby_DirectorTypeMismatchException(x) \ rb_raise( rb_eTypeError, "%s", x ); return c_result; static unsigned int swig_virtual_calls = 0; #else /* normal non-embedded extension */ # define SWIG_INIT_STACK # define SWIG_RELEASE_STACK # define Ruby_DirectorTypeMismatchException(x) \ throw Swig::DirectorTypeMismatchException( x ); #endif /* RUBY_EMBEDDED */ SWIGRUNTIME VALUE getExceptionClass(void) { static int init = 0; static VALUE rubyExceptionClass ; if (!init) { init = 1; rubyExceptionClass = rb_const_get(_mSWIG, rb_intern("Exception")); } return rubyExceptionClass; } /* This code checks to see if the Ruby object being raised as part of an exception inherits from the Ruby class Exception. If so, the object is simply returned. If not, then a new Ruby exception object is created and that will be returned to Ruby.*/ SWIGRUNTIME VALUE SWIG_Ruby_ExceptionType(swig_type_info *desc, VALUE obj) { VALUE exceptionClass = getExceptionClass(); if (rb_obj_is_kind_of(obj, exceptionClass)) { return obj; } else { return rb_exc_new3(rb_eRuntimeError, rb_obj_as_string(obj)); } } /* Initialize Ruby runtime support */ SWIGRUNTIME void SWIG_Ruby_InitRuntime(void) { if (_mSWIG == Qnil) { _mSWIG = rb_define_module("SWIG"); swig_call_id = rb_intern("call"); swig_arity_id = rb_intern("arity"); } } /* Define Ruby class for C type */ SWIGRUNTIME void SWIG_Ruby_define_class(swig_type_info *type) { char *klass_name = (char *) malloc(4 + strlen(type->name) + 1); sprintf(klass_name, "TYPE%s", type->name); if (NIL_P(_cSWIG_Pointer)) { _cSWIG_Pointer = rb_define_class_under(_mSWIG, "Pointer", rb_cObject); rb_undef_method(CLASS_OF(_cSWIG_Pointer), "new"); } rb_define_class_under(_mSWIG, klass_name, _cSWIG_Pointer); free((void *) klass_name); } /* Create a new pointer object */ SWIGRUNTIME VALUE SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags) { int own = flags & SWIG_POINTER_OWN; int track; char *klass_name; swig_class *sklass; VALUE klass; VALUE obj; if (!ptr) return Qnil; assert(type); if (type->clientdata) { sklass = (swig_class *) type->clientdata; /* Are we tracking this class and have we already returned this Ruby object? */ track = sklass->trackObjects; if (track) { obj = SWIG_RubyInstanceFor(ptr); /* Check the object's type and make sure it has the correct type. It might not in cases where methods do things like downcast methods. */ if (obj != Qnil) { VALUE value = rb_iv_get(obj, "@__swigtype__"); const char* type_name = RSTRING_PTR(value); if (strcmp(type->name, type_name) == 0) { return obj; } } } /* Create a new Ruby object */ obj = Data_Wrap_Struct(sklass->klass, VOIDFUNC(sklass->mark), ( own ? VOIDFUNC(sklass->destroy) : (track ? VOIDFUNC(SWIG_RubyRemoveTracking) : 0 ) ), ptr); /* If tracking is on for this class then track this object. */ if (track) { SWIG_RubyAddTracking(ptr, obj); } } else { klass_name = (char *) malloc(4 + strlen(type->name) + 1); sprintf(klass_name, "TYPE%s", type->name); klass = rb_const_get(_mSWIG, rb_intern(klass_name)); free((void *) klass_name); obj = Data_Wrap_Struct(klass, 0, 0, ptr); } rb_iv_set(obj, "@__swigtype__", rb_str_new2(type->name)); return obj; } /* Create a new class instance (always owned) */ SWIGRUNTIME VALUE SWIG_Ruby_NewClassInstance(VALUE klass, swig_type_info *type) { VALUE obj; swig_class *sklass = (swig_class *) type->clientdata; obj = Data_Wrap_Struct(klass, VOIDFUNC(sklass->mark), VOIDFUNC(sklass->destroy), 0); rb_iv_set(obj, "@__swigtype__", rb_str_new2(type->name)); return obj; } /* Get type mangle from class name */ SWIGRUNTIMEINLINE char * SWIG_Ruby_MangleStr(VALUE obj) { VALUE stype = rb_iv_get(obj, "@__swigtype__"); return StringValuePtr(stype); } /* Acquire a pointer value */ typedef struct { void (*datafree)(void *); int own; } swig_ruby_owntype; SWIGRUNTIME swig_ruby_owntype SWIG_Ruby_AcquirePtr(VALUE obj, swig_ruby_owntype own) { swig_ruby_owntype oldown = {0, 0}; if (TYPE(obj) == T_DATA && !RTYPEDDATA_P(obj)) { oldown.datafree = RDATA(obj)->dfree; RDATA(obj)->dfree = own.datafree; } return oldown; } /* Convert a pointer value */ SWIGRUNTIME int SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags, swig_ruby_owntype *own) { char *c; swig_cast_info *tc; void *vptr = 0; /* Grab the pointer */ if (NIL_P(obj)) { if (ptr) *ptr = 0; return (flags & SWIG_POINTER_NO_NULL) ? SWIG_NullReferenceError : SWIG_OK; } else { if (TYPE(obj) != T_DATA || (TYPE(obj) == T_DATA && RTYPEDDATA_P(obj))) { return SWIG_ERROR; } Data_Get_Struct(obj, void, vptr); } if (own) { own->datafree = RDATA(obj)->dfree; own->own = 0; } /* Check to see if the input object is giving up ownership of the underlying C struct or C++ object. If so then we need to reset the destructor since the Ruby object no longer owns the underlying C++ object.*/ if (flags & SWIG_POINTER_DISOWN) { /* Is tracking on for this class? */ int track = 0; if (ty && ty->clientdata) { swig_class *sklass = (swig_class *) ty->clientdata; track = sklass->trackObjects; } if (track) { /* We are tracking objects for this class. Thus we change the destructor * to SWIG_RubyRemoveTracking. This allows us to * remove the mapping from the C++ to Ruby object * when the Ruby object is garbage collected. If we don't * do this, then it is possible we will return a reference * to a Ruby object that no longer exists thereby crashing Ruby. */ RDATA(obj)->dfree = SWIG_RubyRemoveTracking; } else { RDATA(obj)->dfree = 0; } } /* Do type-checking if type info was provided */ if (ty) { if (ty->clientdata) { if (rb_obj_is_kind_of(obj, ((swig_class *) (ty->clientdata))->klass)) { if (vptr == 0) { /* The object has already been deleted */ return SWIG_ObjectPreviouslyDeletedError; } } } if ((c = SWIG_MangleStr(obj)) == NULL) { return SWIG_ERROR; } tc = SWIG_TypeCheck(c, ty); if (!tc) { return SWIG_ERROR; } else { if (ptr) { if (tc->type == ty) { *ptr = vptr; } else { int newmemory = 0; *ptr = SWIG_TypeCast(tc, vptr, &newmemory); if (newmemory == SWIG_CAST_NEW_MEMORY) { assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */ if (own) own->own = own->own | SWIG_CAST_NEW_MEMORY; } } } } } else { if (ptr) *ptr = vptr; } return SWIG_OK; } /* Check convert */ SWIGRUNTIMEINLINE int SWIG_Ruby_CheckConvert(VALUE obj, swig_type_info *ty) { char *c = SWIG_MangleStr(obj); if (!c) return 0; return SWIG_TypeCheck(c,ty) != 0; } SWIGRUNTIME VALUE SWIG_Ruby_NewPackedObj(void *ptr, int sz, swig_type_info *type) { char result[1024]; char *r = result; if ((2*sz + 1 + strlen(type->name)) > 1000) return 0; *(r++) = '_'; r = SWIG_PackData(r, ptr, sz); strcpy(r, type->name); return rb_str_new2(result); } /* Convert a packed pointer value */ SWIGRUNTIME int SWIG_Ruby_ConvertPacked(VALUE obj, void *ptr, int sz, swig_type_info *ty) { swig_cast_info *tc; const char *c; if (TYPE(obj) != T_STRING) goto type_error; c = StringValuePtr(obj); /* Pointer values must start with leading underscore */ if (*c != '_') goto type_error; c++; c = SWIG_UnpackData(c, ptr, sz); if (ty) { tc = SWIG_TypeCheck(c, ty); if (!tc) goto type_error; } return SWIG_OK; type_error: return SWIG_ERROR; } SWIGRUNTIME swig_module_info * SWIG_Ruby_GetModule(void *SWIGUNUSEDPARM(clientdata)) { VALUE pointer; swig_module_info *ret = 0; VALUE verbose = rb_gv_get("VERBOSE"); /* temporarily disable warnings, since the pointer check causes warnings with 'ruby -w' */ rb_gv_set("VERBOSE", Qfalse); /* first check if pointer already created */ pointer = rb_gv_get("$swig_runtime_data_type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME); if (pointer != Qnil) { Data_Get_Struct(pointer, swig_module_info, ret); } /* reinstate warnings */ rb_gv_set("VERBOSE", verbose); return ret; } SWIGRUNTIME void SWIG_Ruby_SetModule(swig_module_info *pointer) { /* register a new class */ VALUE cl = rb_define_class("swig_runtime_data", rb_cObject); /* create and store the structure pointer to a global variable */ swig_runtime_data_type_pointer = Data_Wrap_Struct(cl, 0, 0, pointer); rb_define_readonly_variable("$swig_runtime_data_type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, &swig_runtime_data_type_pointer); } /* This function can be used to check whether a proc or method or similarly callable function has been passed. Usually used in a %typecheck, like: %typecheck(c_callback_t, precedence=SWIG_TYPECHECK_POINTER) { $result = SWIG_Ruby_isCallable( $input ); } */ SWIGINTERN int SWIG_Ruby_isCallable( VALUE proc ) { if ( rb_respond_to( proc, swig_call_id ) ) return 1; return 0; } /* This function can be used to check the arity (number of arguments) a proc or method can take. Usually used in a %typecheck. Valid arities will be that equal to minimal or those < 0 which indicate a variable number of parameters at the end. */ SWIGINTERN int SWIG_Ruby_arity( VALUE proc, int minimal ) { if ( rb_respond_to( proc, swig_arity_id ) ) { VALUE num = rb_funcall( proc, swig_arity_id, 0 ); int arity = NUM2INT(num); if ( arity < 0 && (arity+1) < -minimal ) return 1; if ( arity == minimal ) return 1; return 1; } return 0; } #ifdef __cplusplus } #endif #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else #define SWIG_exception(code, msg) do { SWIG_Error(code, msg);; } while(0) /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_Prelude__Client swig_types[0] #define SWIGTYPE_p_Prelude__ClientEasy swig_types[1] #define SWIGTYPE_p_Prelude__ClientProfile swig_types[2] #define SWIGTYPE_p_Prelude__Connection swig_types[3] #define SWIGTYPE_p_Prelude__ConnectionPool swig_types[4] #define SWIGTYPE_p_Prelude__IDMEF swig_types[5] #define SWIGTYPE_p_Prelude__IDMEFClass swig_types[6] #define SWIGTYPE_p_Prelude__IDMEFCriteria swig_types[7] #define SWIGTYPE_p_Prelude__IDMEFCriterion swig_types[8] #define SWIGTYPE_p_Prelude__IDMEFPath swig_types[9] #define SWIGTYPE_p_Prelude__IDMEFTime swig_types[10] #define SWIGTYPE_p_Prelude__IDMEFValue swig_types[11] #define SWIGTYPE_p_Prelude__PreludeError swig_types[12] #define SWIGTYPE_p_Prelude__PreludeLog swig_types[13] #define SWIGTYPE_p_allocator_type swig_types[14] #define SWIGTYPE_p_char swig_types[15] #define SWIGTYPE_p_difference_type swig_types[16] #define SWIGTYPE_p_f_int_p_q_const__char__void swig_types[17] #define SWIGTYPE_p_idmef_criteria_t swig_types[18] #define SWIGTYPE_p_idmef_criterion_operator_t swig_types[19] #define SWIGTYPE_p_idmef_object_t swig_types[20] #define SWIGTYPE_p_idmef_path_t swig_types[21] #define SWIGTYPE_p_idmef_time_t swig_types[22] #define SWIGTYPE_p_idmef_value_t swig_types[23] #define SWIGTYPE_p_int swig_types[24] #define SWIGTYPE_p_key_type swig_types[25] #define SWIGTYPE_p_long_long swig_types[26] #define SWIGTYPE_p_mapped_type swig_types[27] #define SWIGTYPE_p_prelude_client_profile_t swig_types[28] #define SWIGTYPE_p_prelude_client_t swig_types[29] #define SWIGTYPE_p_prelude_connection_pool_t swig_types[30] #define SWIGTYPE_p_prelude_connection_t swig_types[31] #define SWIGTYPE_p_short swig_types[32] #define SWIGTYPE_p_size_type swig_types[33] #define SWIGTYPE_p_std__exception swig_types[34] #define SWIGTYPE_p_swig__ConstIterator swig_types[35] #define SWIGTYPE_p_swig__GC_VALUE swig_types[36] #define SWIGTYPE_p_swig__Iterator swig_types[37] #define SWIGTYPE_p_timeval swig_types[38] #define SWIGTYPE_p_unsigned_char swig_types[39] #define SWIGTYPE_p_unsigned_int swig_types[40] #define SWIGTYPE_p_unsigned_long_long swig_types[41] #define SWIGTYPE_p_unsigned_short swig_types[42] #define SWIGTYPE_p_value_type swig_types[43] #define SWIGTYPE_p_void swig_types[44] static swig_type_info *swig_types[46]; static swig_module_info swig_module = {swig_types, 45, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) /* -------- TYPES TABLE (END) -------- */ #define SWIG_init Init_Prelude #define SWIG_name "Prelude" static VALUE mPrelude; #define SWIG_RUBY_THREAD_BEGIN_BLOCK #define SWIG_RUBY_THREAD_END_BLOCK #define SWIGVERSION 0x040001 #define SWIG_VERSION SWIGVERSION #define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a)) #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a)) #include #include #include #include #include namespace swig { class SwigGCReferences { VALUE _hash; SwigGCReferences() : _hash(Qnil) { } ~SwigGCReferences() { if (_hash != Qnil) rb_gc_unregister_address(&_hash); } static void EndProcHandler(VALUE) { // Ruby interpreter ending - _hash can no longer be accessed. SwigGCReferences &s_references = instance(); s_references._hash = Qnil; } public: static SwigGCReferences& instance() { // Hash of all GC_VALUE's currently in use static SwigGCReferences s_references; return s_references; } static void initialize() { SwigGCReferences &s_references = instance(); if (s_references._hash == Qnil) { rb_set_end_proc(&EndProcHandler, Qnil); s_references._hash = rb_hash_new(); rb_gc_register_address(&s_references._hash); } } void GC_register(VALUE& obj) { if (FIXNUM_P(obj) || SPECIAL_CONST_P(obj) || SYMBOL_P(obj)) return; if (_hash != Qnil) { VALUE val = rb_hash_aref(_hash, obj); unsigned n = FIXNUM_P(val) ? NUM2UINT(val) : 0; ++n; rb_hash_aset(_hash, obj, INT2NUM(n)); } } void GC_unregister(const VALUE& obj) { if (FIXNUM_P(obj) || SPECIAL_CONST_P(obj) || SYMBOL_P(obj)) return; // this test should not be needed but I've noticed some very erratic // behavior of none being unregistered in some very rare situations. if (BUILTIN_TYPE(obj) == T_NONE) return; if (_hash != Qnil) { VALUE val = rb_hash_aref(_hash, obj); unsigned n = FIXNUM_P(val) ? NUM2UINT(val) : 1; --n; if (n) rb_hash_aset(_hash, obj, INT2NUM(n)); else rb_hash_delete(_hash, obj); } } }; class GC_VALUE { protected: VALUE _obj; static ID hash_id; static ID lt_id; static ID gt_id; static ID eq_id; static ID le_id; static ID ge_id; static ID pos_id; static ID neg_id; static ID inv_id; static ID add_id; static ID sub_id; static ID mul_id; static ID div_id; static ID mod_id; static ID and_id; static ID or_id; static ID xor_id; static ID lshift_id; static ID rshift_id; struct OpArgs { VALUE src; ID id; int nargs; VALUE target; }; public: GC_VALUE() : _obj(Qnil) { } GC_VALUE(const GC_VALUE& item) : _obj(item._obj) { SwigGCReferences::instance().GC_register(_obj); } GC_VALUE(VALUE obj) :_obj(obj) { SwigGCReferences::instance().GC_register(_obj); } ~GC_VALUE() { SwigGCReferences::instance().GC_unregister(_obj); } GC_VALUE & operator=(const GC_VALUE& item) { SwigGCReferences::instance().GC_unregister(_obj); _obj = item._obj; SwigGCReferences::instance().GC_register(_obj); return *this; } operator VALUE() const { return _obj; } VALUE inspect() const { return rb_inspect(_obj); } VALUE to_s() const { return rb_inspect(_obj); } static VALUE swig_rescue_swallow(VALUE) { /* VALUE errstr = rb_obj_as_string(rb_errinfo()); printf("Swallowing error: '%s'\n", RSTRING_PTR(StringValue(errstr))); */ return Qnil; /* Swallow Ruby exception */ } static VALUE swig_rescue_funcall(VALUE p) { OpArgs* args = (OpArgs*) p; return rb_funcall(args->src, args->id, args->nargs, args->target); } bool relational_equal_op(const GC_VALUE& other, const ID& op_id, bool (*op_func)(const VALUE& a, const VALUE& b)) const { if (FIXNUM_P(_obj) && FIXNUM_P(other._obj)) { return op_func(_obj, other._obj); } bool res = false; VALUE ret = Qnil; SWIG_RUBY_THREAD_BEGIN_BLOCK; if (rb_respond_to(_obj, op_id)) { OpArgs args; args.src = _obj; args.id = op_id; args.nargs = 1; args.target = VALUE(other); ret = rb_rescue(RUBY_METHOD_FUNC(swig_rescue_funcall), VALUE(&args), (RUBY_METHOD_FUNC(swig_rescue_swallow)), Qnil); } if (ret == Qnil) { VALUE a = rb_funcall( _obj, hash_id, 0 ); VALUE b = rb_funcall( VALUE(other), hash_id, 0 ); res = op_func(a, b); } else { res = RTEST(ret); } SWIG_RUBY_THREAD_END_BLOCK; return res; } static bool operator_eq(const VALUE& a, const VALUE& b) { return a == b; } static bool operator_lt(const VALUE& a, const VALUE& b) { return a < b; } static bool operator_le(const VALUE& a, const VALUE& b) { return a <= b; } static bool operator_gt(const VALUE& a, const VALUE& b) { return a > b; } static bool operator_ge(const VALUE& a, const VALUE& b) { return a >= b; } bool operator==(const GC_VALUE& other) const { return relational_equal_op(other, eq_id, operator_eq); } bool operator<(const GC_VALUE& other) const { return relational_equal_op(other, lt_id, operator_lt); } bool operator<=(const GC_VALUE& other) const { return relational_equal_op(other, le_id, operator_le); } bool operator>(const GC_VALUE& other) const { return relational_equal_op(other, gt_id, operator_gt); } bool operator>=(const GC_VALUE& other) const { return relational_equal_op(other, ge_id, operator_ge); } bool operator!=(const GC_VALUE& other) const { return !(this->operator==(other)); } GC_VALUE unary_op(const ID& op_id) const { VALUE ret = Qnil; SWIG_RUBY_THREAD_BEGIN_BLOCK; OpArgs args; args.src = _obj; args.id = op_id; args.nargs = 0; args.target = Qnil; ret = rb_rescue(RUBY_METHOD_FUNC(swig_rescue_funcall), VALUE(&args), (RUBY_METHOD_FUNC(swig_rescue_swallow)), Qnil); SWIG_RUBY_THREAD_END_BLOCK; return ret; } GC_VALUE operator+() const { return unary_op(pos_id); } GC_VALUE operator-() const { return unary_op(neg_id); } GC_VALUE operator~() const { return unary_op(inv_id); } GC_VALUE binary_op(const GC_VALUE& other, const ID& op_id) const { VALUE ret = Qnil; SWIG_RUBY_THREAD_BEGIN_BLOCK; OpArgs args; args.src = _obj; args.id = op_id; args.nargs = 1; args.target = VALUE(other); ret = rb_rescue(RUBY_METHOD_FUNC(swig_rescue_funcall), VALUE(&args), (RUBY_METHOD_FUNC(swig_rescue_swallow)), Qnil); SWIG_RUBY_THREAD_END_BLOCK; return GC_VALUE(ret); } GC_VALUE operator+(const GC_VALUE& other) const { return binary_op(other, add_id); } GC_VALUE operator-(const GC_VALUE& other) const { return binary_op(other, sub_id); } GC_VALUE operator*(const GC_VALUE& other) const { return binary_op(other, mul_id); } GC_VALUE operator/(const GC_VALUE& other) const { return binary_op(other, div_id); } GC_VALUE operator%(const GC_VALUE& other) const { return binary_op(other, mod_id); } GC_VALUE operator&(const GC_VALUE& other) const { return binary_op(other, and_id); } GC_VALUE operator^(const GC_VALUE& other) const { return binary_op(other, xor_id); } GC_VALUE operator|(const GC_VALUE& other) const { return binary_op(other, or_id); } GC_VALUE operator<<(const GC_VALUE& other) const { return binary_op(other, lshift_id); } GC_VALUE operator>>(const GC_VALUE& other) const { return binary_op(other, rshift_id); } }; ID GC_VALUE::hash_id = rb_intern("hash"); ID GC_VALUE::lt_id = rb_intern("<"); ID GC_VALUE::gt_id = rb_intern(">"); ID GC_VALUE::eq_id = rb_intern("=="); ID GC_VALUE::le_id = rb_intern("<="); ID GC_VALUE::ge_id = rb_intern(">="); ID GC_VALUE::pos_id = rb_intern("+@"); ID GC_VALUE::neg_id = rb_intern("-@"); ID GC_VALUE::inv_id = rb_intern("~"); ID GC_VALUE::add_id = rb_intern("+"); ID GC_VALUE::sub_id = rb_intern("-"); ID GC_VALUE::mul_id = rb_intern("*"); ID GC_VALUE::div_id = rb_intern("/"); ID GC_VALUE::mod_id = rb_intern("%"); ID GC_VALUE::and_id = rb_intern("&"); ID GC_VALUE::or_id = rb_intern("|"); ID GC_VALUE::xor_id = rb_intern("^"); ID GC_VALUE::lshift_id = rb_intern("<<"); ID GC_VALUE::rshift_id = rb_intern(">>"); typedef GC_VALUE LANGUAGE_OBJ; } // namespace swig #if defined(__GNUC__) # if __GNUC__ == 2 && __GNUC_MINOR <= 96 # define SWIG_STD_NOMODERN_STL # endif #endif #include namespace swig { struct stop_iteration { }; /** * Abstract base class used to represent all iterators of STL containers. */ struct ConstIterator { public: typedef ConstIterator self_type; protected: GC_VALUE _seq; protected: ConstIterator(VALUE seq) : _seq(seq) { } // Random access iterator methods, but not required in Ruby virtual ptrdiff_t distance(const ConstIterator &x) const { throw std::invalid_argument("distance not supported"); } virtual bool equal (const ConstIterator &x) const { throw std::invalid_argument("equal not supported"); } virtual self_type* advance(ptrdiff_t n) { throw std::invalid_argument("advance not supported"); } public: virtual ~ConstIterator() {} // Access iterator method, required by Ruby virtual VALUE value() const { throw std::invalid_argument("value not supported"); return Qnil; }; virtual VALUE setValue( const VALUE& v ) { throw std::invalid_argument("value= not supported"); return Qnil; } virtual self_type* next( size_t n = 1 ) { return this->advance( n ); } virtual self_type* previous( size_t n = 1 ) { ptrdiff_t nn = n; return this->advance( -nn ); } virtual VALUE to_s() const { throw std::invalid_argument("to_s not supported"); return Qnil; } virtual VALUE inspect() const { throw std::invalid_argument("inspect not supported"); return Qnil; } virtual ConstIterator *dup() const { throw std::invalid_argument("dup not supported"); return NULL; } // // C++ common/needed methods. We emulate a bidirectional // operator, to be compatible with all the STL. // The iterator traits will then tell the STL what type of // iterator we really are. // ConstIterator() : _seq( Qnil ) { } ConstIterator( const self_type& b ) : _seq( b._seq ) { } self_type& operator=( const self_type& b ) { _seq = b._seq; return *this; } bool operator == (const ConstIterator& x) const { return equal(x); } bool operator != (const ConstIterator& x) const { return ! operator==(x); } // Pre-decrement operator self_type& operator--() { return *previous(); } // Pre-increment operator self_type& operator++() { return *next(); } // Post-decrement operator self_type operator--(int) { self_type r = *this; previous(); return r; } // Post-increment operator self_type operator++(int) { self_type r = *this; next(); return r; } ConstIterator& operator += (ptrdiff_t n) { return *advance(n); } ConstIterator& operator -= (ptrdiff_t n) { return *advance(-n); } ConstIterator* operator + (ptrdiff_t n) const { return dup()->advance(n); } ConstIterator* operator - (ptrdiff_t n) const { return dup()->advance(-n); } ptrdiff_t operator - (const ConstIterator& x) const { return x.distance(*this); } static swig_type_info* descriptor() { static int init = 0; static swig_type_info* desc = 0; if (!init) { desc = SWIG_TypeQuery("swig::ConstIterator *"); init = 1; } return desc; } }; /** * Abstract base class used to represent all non-const iterators of STL containers. * */ struct Iterator : public ConstIterator { public: typedef Iterator self_type; protected: Iterator(VALUE seq) : ConstIterator(seq) { } virtual self_type* advance(ptrdiff_t n) { throw std::invalid_argument("operation not supported"); } public: static swig_type_info* descriptor() { static int init = 0; static swig_type_info* desc = 0; if (!init) { desc = SWIG_TypeQuery("swig::Iterator *"); init = 1; } return desc; } virtual Iterator *dup() const { throw std::invalid_argument("dup not supported"); return NULL; } virtual self_type* next( size_t n = 1 ) { return this->advance( n ); } virtual self_type* previous( size_t n = 1 ) { ptrdiff_t nn = n; return this->advance( -nn ); } bool operator == (const ConstIterator& x) const { return equal(x); } bool operator != (const Iterator& x) const { return ! operator==(x); } Iterator& operator += (ptrdiff_t n) { return *advance(n); } Iterator& operator -= (ptrdiff_t n) { return *advance(-n); } Iterator* operator + (ptrdiff_t n) const { return dup()->advance(n); } Iterator* operator - (ptrdiff_t n) const { return dup()->advance(-n); } ptrdiff_t operator - (const Iterator& x) const { return x.distance(*this); } }; } SWIGINTERN VALUE SWIG_ruby_failed(void) { return Qnil; } /*@SWIG:/usr/share/swig/4.0.1/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/ SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args) { VALUE obj = args[0]; VALUE type = TYPE(obj); unsigned long *res = (unsigned long *)(args[1]); *res = type == T_FIXNUM ? NUM2ULONG(obj) : rb_big2ulong(obj); return obj; } /*@SWIG@*/ SWIGINTERN int SWIG_AsVal_unsigned_SS_long (VALUE obj, unsigned long *val) { VALUE type = TYPE(obj); if ((type == T_FIXNUM) || (type == T_BIGNUM)) { unsigned long v; VALUE a[2]; a[0] = obj; a[1] = (VALUE)(&v); if (rb_rescue(RUBY_METHOD_FUNC(SWIG_AUX_NUM2ULONG), (VALUE)a, RUBY_METHOD_FUNC(SWIG_ruby_failed), 0) != Qnil) { if (val) *val = v; return SWIG_OK; } } return SWIG_TypeError; } #include #if !defined(SWIG_NO_LLONG_MAX) # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) # define LLONG_MAX __LONG_LONG_MAX__ # define LLONG_MIN (-LLONG_MAX - 1LL) # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) # endif #endif #if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE) # define SWIG_LONG_LONG_AVAILABLE #endif #ifdef SWIG_LONG_LONG_AVAILABLE /*@SWIG:/usr/share/swig/4.0.1/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/ SWIGINTERN VALUE SWIG_AUX_NUM2ULL(VALUE *args) { VALUE obj = args[0]; VALUE type = TYPE(obj); long long *res = (long long *)(args[1]); *res = type == T_FIXNUM ? NUM2ULL(obj) : rb_big2ull(obj); return obj; } /*@SWIG@*/ SWIGINTERN int SWIG_AsVal_unsigned_SS_long_SS_long (VALUE obj, unsigned long long *val) { VALUE type = TYPE(obj); if ((type == T_FIXNUM) || (type == T_BIGNUM)) { unsigned long long v; VALUE a[2]; a[0] = obj; a[1] = (VALUE)(&v); if (rb_rescue(RUBY_METHOD_FUNC(SWIG_AUX_NUM2ULL), (VALUE)a, RUBY_METHOD_FUNC(SWIG_ruby_failed), 0) != Qnil) { if (val) *val = v; return SWIG_OK; } } return SWIG_TypeError; } #endif SWIGINTERNINLINE int SWIG_AsVal_size_t (VALUE obj, size_t *val) { int res = SWIG_TypeError; #ifdef SWIG_LONG_LONG_AVAILABLE if (sizeof(size_t) <= sizeof(unsigned long)) { #endif unsigned long v; res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v); #ifdef SWIG_LONG_LONG_AVAILABLE } else if (sizeof(size_t) <= sizeof(unsigned long long)) { unsigned long long v; res = SWIG_AsVal_unsigned_SS_long_SS_long (obj, val ? &v : 0); if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v); } #endif return res; } SWIGINTERNINLINE VALUE SWIG_From_bool (bool value) { return value ? Qtrue : Qfalse; } /*@SWIG:/usr/share/swig/4.0.1/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/ SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args) { VALUE obj = args[0]; VALUE type = TYPE(obj); long *res = (long *)(args[1]); *res = type == T_FIXNUM ? NUM2LONG(obj) : rb_big2long(obj); return obj; } /*@SWIG@*/ SWIGINTERN int SWIG_AsVal_long (VALUE obj, long* val) { VALUE type = TYPE(obj); if ((type == T_FIXNUM) || (type == T_BIGNUM)) { long v; VALUE a[2]; a[0] = obj; a[1] = (VALUE)(&v); if (rb_rescue(RUBY_METHOD_FUNC(SWIG_AUX_NUM2LONG), (VALUE)a, RUBY_METHOD_FUNC(SWIG_ruby_failed), 0) != Qnil) { if (val) *val = v; return SWIG_OK; } } return SWIG_TypeError; } #ifdef SWIG_LONG_LONG_AVAILABLE /*@SWIG:/usr/share/swig/4.0.1/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/ SWIGINTERN VALUE SWIG_AUX_NUM2LL(VALUE *args) { VALUE obj = args[0]; VALUE type = TYPE(obj); long long *res = (long long *)(args[1]); *res = type == T_FIXNUM ? NUM2LL(obj) : rb_big2ll(obj); return obj; } /*@SWIG@*/ SWIGINTERN int SWIG_AsVal_long_SS_long (VALUE obj, long long *val) { VALUE type = TYPE(obj); if ((type == T_FIXNUM) || (type == T_BIGNUM)) { long long v; VALUE a[2]; a[0] = obj; a[1] = (VALUE)(&v); if (rb_rescue(RUBY_METHOD_FUNC(SWIG_AUX_NUM2LL), (VALUE)a, RUBY_METHOD_FUNC(SWIG_ruby_failed), 0) != Qnil) { if (val) *val = v; return SWIG_OK; } } return SWIG_TypeError; } #endif SWIGINTERNINLINE int SWIG_AsVal_ptrdiff_t (VALUE obj, ptrdiff_t *val) { int res = SWIG_TypeError; #ifdef SWIG_LONG_LONG_AVAILABLE if (sizeof(ptrdiff_t) <= sizeof(long)) { #endif long v; res = SWIG_AsVal_long (obj, val ? &v : 0); if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v); #ifdef SWIG_LONG_LONG_AVAILABLE } else if (sizeof(ptrdiff_t) <= sizeof(long long)) { long long v; res = SWIG_AsVal_long_SS_long (obj, val ? &v : 0); if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v); } #endif return res; } #define SWIG_From_long LONG2NUM #ifdef SWIG_LONG_LONG_AVAILABLE SWIGINTERNINLINE VALUE SWIG_From_long_SS_long (long long value) { return LL2NUM(value); } #endif SWIGINTERNINLINE VALUE SWIG_From_ptrdiff_t (ptrdiff_t value) { #ifdef SWIG_LONG_LONG_AVAILABLE if (sizeof(ptrdiff_t) <= sizeof(long)) { #endif return SWIG_From_long (static_cast< long >(value)); #ifdef SWIG_LONG_LONG_AVAILABLE } else { /* assume sizeof(ptrdiff_t) <= sizeof(long long) */ return SWIG_From_long_SS_long (static_cast< long long >(value)); } #endif } #include #include #include #include #include #pragma GCC diagnostic ignored "-Wunused-variable" #include #include #include "prelude.hxx" #include "prelude-log.hxx" #include "prelude-error.hxx" #include "prelude-connection.hxx" #include "prelude-connection-pool.hxx" #include "prelude-client-profile.hxx" #include "prelude-client.hxx" #include "prelude-client-easy.hxx" #include "idmef-criteria.hxx" #include "idmef-value.hxx" #include "idmef-path.hxx" #include "idmef-time.hxx" #include "idmef.hxx" using namespace Prelude; #define TARGET_LANGUAGE_SELF VALUE #define TARGET_LANGUAGE_OUTPUT_TYPE VALUE * extern "C" { #include /* * cannot put libmissing into the include path, as it will trigger * a compilation failure here. */ #include "config.h" #include "../../libmissing/glthread/thread.h" #ifdef HAVE_RUBY_IO_H /* Ruby 1.9 */ # include "ruby/io.h" # define GetReadFile(x) rb_io_stdio_file(x) # define GetWriteFile(x) rb_io_stdio_file(x) #else # include "rubyio.h" /* Ruby 1.8 */ #endif #ifndef HAVE_RB_IO_T # define rb_io_t OpenFile #endif #ifndef StringValuePtr # define StringValuePtr(s) STR2CSTR(s) #endif #ifndef RARRAY_LEN # define RARRAY_LEN(s) RARRAY(s)->len #endif #ifndef RARRAY_PTR # define RARRAY_PTR(s) RARRAY(s)->ptr #endif } namespace swig { template struct noconst_traits { typedef Type noconst_type; }; template struct noconst_traits { typedef Type noconst_type; }; /* type categories */ struct pointer_category { }; struct value_category { }; /* General traits that provides type_name and type_info */ template struct traits { }; template inline const char* type_name() { return traits::noconst_type >::type_name(); } template struct traits_info { static swig_type_info *type_query(std::string name) { name += " *"; return SWIG_TypeQuery(name.c_str()); } static swig_type_info *type_info() { static swig_type_info *info = type_query(type_name()); return info; } }; /* Partial specialization for pointers (traits_info) */ template struct traits_info { static swig_type_info *type_query(std::string name) { name += " *"; return SWIG_TypeQuery(name.c_str()); } static swig_type_info *type_info() { static swig_type_info *info = type_query(type_name()); return info; } }; template inline swig_type_info *type_info() { return traits_info::type_info(); } /* Partial specialization for pointers (traits) */ template struct traits { typedef pointer_category category; static std::string make_ptr_name(const char* name) { std::string ptrname = name; ptrname += " *"; return ptrname; } static const char* type_name() { static std::string name = make_ptr_name(swig::type_name()); return name.c_str(); } }; template struct traits_as { }; template struct traits_check { }; } namespace swig { template struct traits_asptr; template struct traits_asval; struct pointer_category; template struct traits_as; template struct traits_from; template struct traits_from_ptr; template struct noconst_traits; template swig_type_info* type_info(); template const char* type_name(); template VALUE from(const Type& val); } namespace swig { /* Traits that provides the from method */ template struct traits_from_ptr { static VALUE from(Type *val, int owner = 0) { return SWIG_NewPointerObj(val, type_info(), owner); } }; template struct traits_from { static VALUE from(const Type& val) { return traits_from_ptr::from(new Type(val), 1); } }; template struct traits_from { static VALUE from(Type* val) { return traits_from_ptr::from(val, 0); } }; template struct traits_from { static VALUE from(const Type* val) { return traits_from_ptr::from(const_cast(val), 0); } }; template inline VALUE from(const Type& val) { return traits_from::from(val); } template inline VALUE from_ptr(Type* val, int owner) { return traits_from_ptr::from(val, owner); } /* Traits that provides the asval/as/check method */ template struct traits_asptr { static int asptr(VALUE obj, Type **val) { Type *p = 0; swig_type_info *descriptor = type_info(); int res = descriptor ? SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0) : SWIG_ERROR; if (SWIG_IsOK(res)) { if (val) *val = p; } return res; } }; template inline int asptr(VALUE obj, Type **vptr) { return traits_asptr::asptr(obj, vptr); } template struct traits_asval { static int asval(VALUE obj, Type *val) { if (val) { Type *p = 0; int res = traits_asptr::asptr(obj, &p); if (!SWIG_IsOK(res)) return res; if (p) { typedef typename noconst_traits::noconst_type noconst_type; *(const_cast(val)) = *p; if (SWIG_IsNewObj(res)){ delete p; res = SWIG_DelNewMask(res); } return res; } else { return SWIG_ERROR; } } else { return traits_asptr::asptr(obj, (Type **)(0)); } } }; template struct traits_asval { static int asval(VALUE obj, Type **val) { if (val) { typedef typename noconst_traits::noconst_type noconst_type; noconst_type *p = 0; int res = traits_asptr::asptr(obj, &p); if (SWIG_IsOK(res)) { *(const_cast(val)) = p; } return res; } else { return traits_asptr::asptr(obj, (Type **)(0)); } } }; template inline int asval(VALUE obj, Type *val) { return traits_asval::asval(obj, val); } template struct traits_as { static Type as(VALUE obj) { Type v; int res = asval(obj, &v); if (!SWIG_IsOK(res)) { VALUE lastErr = rb_gv_get("$!"); if (lastErr == Qnil) { SWIG_Error(SWIG_TypeError, swig::type_name()); } throw std::invalid_argument("bad type"); } return v; } }; template struct traits_as { static Type as(VALUE obj) { Type *v = 0; int res = traits_asptr::asptr(obj, &v); if (SWIG_IsOK(res) && v) { if (SWIG_IsNewObj(res)) { Type r(*v); delete v; return r; } else { return *v; } } else { VALUE lastErr = rb_gv_get("$!"); if (lastErr == Qnil) { SWIG_Error(SWIG_TypeError, swig::type_name()); } throw std::invalid_argument("bad type"); } } }; template struct traits_as { static Type* as(VALUE obj) { Type *v = 0; int res = traits_asptr::asptr(obj, &v); if (SWIG_IsOK(res)) { return v; } else { VALUE lastErr = rb_gv_get("$!"); if (lastErr == Qnil) { SWIG_Error(SWIG_TypeError, swig::type_name()); } throw std::invalid_argument("bad type"); } } }; template inline Type as(VALUE obj) { return traits_as< Type, typename traits< Type >::category >::as(obj); } template struct traits_check { static bool check(VALUE obj) { int res = asval(obj, (Type *)(0)); return SWIG_IsOK(res) ? true : false; } }; template struct traits_check { static bool check(VALUE obj) { int res = asptr(obj, (Type **)(0)); return SWIG_IsOK(res) ? true : false; } }; template inline bool check(VALUE obj) { return traits_check::category>::check(obj); } } #include namespace swig { template < class T > struct yield { bool operator()( const T& v ) const { return RTEST( rb_yield( swig::from< T >(v) ) ); } }; inline size_t check_index(ptrdiff_t i, size_t size, bool insert = false) { if ( i < 0 ) { if ((size_t) (-i) <= size) return (size_t) (i + size); } else if ( (size_t) i < size ) { return (size_t) i; } else if (insert && ((size_t) i == size)) { return size; } throw std::out_of_range("index out of range"); } inline size_t slice_index(ptrdiff_t i, size_t size) { if ( i < 0 ) { if ((size_t) (-i) <= size) { return (size_t) (i + size); } else { throw std::out_of_range("index out of range"); } } else { return ( (size_t) i < size ) ? ((size_t) i) : size; } } template inline typename Sequence::iterator getpos(Sequence* self, Difference i) { typename Sequence::iterator pos = self->begin(); std::advance(pos, check_index(i,self->size())); return pos; } template inline typename Sequence::const_iterator cgetpos(const Sequence* self, Difference i) { typename Sequence::const_iterator pos = self->begin(); std::advance(pos, check_index(i,self->size())); return pos; } template inline void resize(Sequence *seq, typename Sequence::size_type n, typename Sequence::value_type x) { seq->resize(n, x); } template inline Sequence* getslice(const Sequence* self, Difference i, Difference j) { typename Sequence::size_type size = self->size(); typename Sequence::size_type ii = swig::check_index(i, size, (i == size && j == size)); typename Sequence::size_type jj = swig::slice_index(j, size); if (jj > ii) { typename Sequence::const_iterator vb = self->begin(); typename Sequence::const_iterator ve = self->begin(); std::advance(vb,ii); std::advance(ve,jj); return new Sequence(vb, ve); } else { return new Sequence(); } } template inline void setslice(Sequence* self, Difference i, Difference j, const InputSeq& v) { typename Sequence::size_type size = self->size(); typename Sequence::size_type ii = swig::check_index(i, size, true); typename Sequence::size_type jj = swig::slice_index(j, size); if (jj < ii) jj = ii; size_t ssize = jj - ii; if (ssize <= v.size()) { typename Sequence::iterator sb = self->begin(); typename InputSeq::const_iterator vmid = v.begin(); std::advance(sb,ii); std::advance(vmid, jj - ii); self->insert(std::copy(v.begin(), vmid, sb), vmid, v.end()); } else { typename Sequence::iterator sb = self->begin(); typename Sequence::iterator se = self->begin(); std::advance(sb,ii); std::advance(se,jj); self->erase(sb,se); self->insert(sb, v.begin(), v.end()); } } template inline void delslice(Sequence* self, Difference i, Difference j) { typename Sequence::size_type size = self->size(); typename Sequence::size_type ii = swig::check_index(i, size, true); typename Sequence::size_type jj = swig::slice_index(j, size); if (jj > ii) { typename Sequence::iterator sb = self->begin(); typename Sequence::iterator se = self->begin(); std::advance(sb,ii); std::advance(se,jj); self->erase(sb,se); } } } #if defined(__SUNPRO_CC) && defined(_RWSTD_VER) # if !defined(SWIG_NO_STD_NOITERATOR_TRAITS_STL) # define SWIG_STD_NOITERATOR_TRAITS_STL # endif #endif #if !defined(SWIG_STD_NOITERATOR_TRAITS_STL) #include #else namespace std { template struct iterator_traits { typedef ptrdiff_t difference_type; typedef typename Iterator::value_type value_type; }; template struct iterator_traits<__reverse_bi_iterator > { typedef Distance difference_type; typedef T value_type; }; template struct iterator_traits { typedef T value_type; typedef ptrdiff_t difference_type; }; template inline typename iterator_traits<_InputIterator>::difference_type distance(_InputIterator __first, _InputIterator __last) { typename iterator_traits<_InputIterator>::difference_type __n = 0; while (__first != __last) { ++__first; ++__n; } return __n; } } #endif namespace swig { /** * Templated base classes for all custom const_iterators. * */ template class ConstIterator_T : public ConstIterator { public: typedef OutConstIterator const_iter; typedef typename std::iterator_traits::value_type value_type; typedef ConstIterator_T self_type; protected: virtual bool equal (const ConstIterator &iter) const { const self_type *iters = dynamic_cast(&iter); if (iters) { return (current == iters->get_current()); } else { throw std::invalid_argument("bad iterator type"); } } virtual ptrdiff_t distance(const ConstIterator &iter) const { const self_type *iters = dynamic_cast(&iter); if (iters) { return std::distance(current, iters->get_current()); } else { throw std::invalid_argument("bad iterator type"); } } virtual ConstIterator* advance(ptrdiff_t n) { std::advance( current, n ); return this; } public: ConstIterator_T() : ConstIterator(Qnil) { } ConstIterator_T(const_iter curr, VALUE seq = Qnil) : ConstIterator(seq), current(curr) { } const const_iter& get_current() const { return current; } const value_type& operator*() const { return *current; } virtual VALUE inspect() const { VALUE ret = rb_str_new2("#<"); ret = rb_str_cat2( ret, rb_obj_classname(_seq) ); ret = rb_str_cat2( ret, "::const_iterator " ); VALUE cur = value(); ret = rb_str_concat( ret, rb_inspect(cur) ); ret = rb_str_cat2( ret, ">" ); return ret; } virtual VALUE to_s() const { VALUE ret = rb_str_new2( rb_obj_classname(_seq) ); ret = rb_str_cat2( ret, "::const_iterator " ); VALUE cur = value(); ret = rb_str_concat( ret, rb_obj_as_string(cur) ); return ret; } protected: const_iter current; }; /** * Templated base classes for all custom non-const iterators. * */ template class Iterator_T : public Iterator { public: typedef InOutIterator nonconst_iter; // Make this class iterator STL compatible, by using iterator_traits typedef typename std::iterator_traits::iterator_category iterator_category; typedef typename std::iterator_traits::value_type value_type; typedef typename std::iterator_traits::difference_type difference_type; typedef typename std::iterator_traits::pointer pointer; typedef typename std::iterator_traits::reference reference; typedef Iterator base; typedef Iterator_T< nonconst_iter > self_type; protected: virtual bool equal (const ConstIterator &iter) const { const self_type *iters = dynamic_cast(&iter); if (iters) { return (current == iters->get_current()); } else { throw std::invalid_argument("bad iterator type"); } } virtual ptrdiff_t distance(const ConstIterator &iter) const { const self_type *iters = dynamic_cast(&iter); if (iters) { return std::distance(current, iters->get_current()); } else { throw std::invalid_argument("bad iterator type"); } } virtual Iterator* advance(ptrdiff_t n) { std::advance( current, n ); return this; } public: Iterator_T(nonconst_iter curr, VALUE seq = Qnil) : Iterator(seq), current(curr) { } const nonconst_iter& get_current() const { return current; } self_type& operator=( const self_type& b ) { base::operator=( b ); return *this; } self_type& operator=( const value_type& b ) { *current = b; return *this; } const value_type& operator*() const { return *current; } value_type& operator*() { return *current; } virtual VALUE inspect() const { VALUE ret = rb_str_new2("#<"); ret = rb_str_cat2( ret, rb_obj_classname(_seq) ); ret = rb_str_cat2( ret, "::iterator " ); VALUE cur = value(); ret = rb_str_concat( ret, rb_inspect(cur) ); ret = rb_str_cat2( ret, ">" ); return ret; } virtual VALUE to_s() const { VALUE ret = rb_str_new2( rb_obj_classname(_seq) ); ret = rb_str_cat2( ret, "::iterator " ); VALUE cur = value(); ret = rb_str_concat( ret, rb_obj_as_string(cur) ); return ret; } protected: nonconst_iter current; }; /** * Auxiliary functor to store the value of a ruby object inside * a reference of a compatible C++ type. ie: Ruby -> C++ * */ template struct asval_oper { typedef ValueType value_type; typedef bool result_type; bool operator()(VALUE obj, value_type& v) const { return ( swig::asval< value_type >(obj, &v) == SWIG_OK ); } }; /** * Auxiliary functor to return a ruby object from a C++ type. * ie: C++ -> Ruby * */ template struct from_oper { typedef const ValueType& argument_type; typedef VALUE result_type; result_type operator()(argument_type v) const { return swig::from(v); } }; /** * ConstIterator class for a const_iterator with no end() boundaries. * */ template::value_type, typename FromOper = from_oper > class ConstIteratorOpen_T : public ConstIterator_T { public: FromOper from; typedef OutConstIterator const_iter; typedef ValueType value_type; typedef ConstIterator_T base; typedef ConstIteratorOpen_T self_type; ConstIteratorOpen_T(const_iter curr, VALUE seq = Qnil) : ConstIterator_T(curr, seq) { } virtual VALUE value() const { return from(static_cast(*(base::current))); } ConstIterator *dup() const { return new self_type(*this); } }; /** * Iterator class for an iterator with no end() boundaries. * */ template::value_type, typename FromOper = from_oper, typename AsvalOper = asval_oper > class IteratorOpen_T : public Iterator_T { public: FromOper from; AsvalOper asval; typedef InOutIterator nonconst_iter; typedef ValueType value_type; typedef Iterator_T base; typedef IteratorOpen_T self_type; public: IteratorOpen_T(nonconst_iter curr, VALUE seq = Qnil) : Iterator_T(curr, seq) { } virtual VALUE value() const { return from(static_cast(*(base::current))); } virtual VALUE setValue( const VALUE& v ) { value_type& dst = *base::current; if ( asval(v, dst) ) return v; return Qnil; } Iterator *dup() const { return new self_type(*this); } }; /** * ConstIterator class for a const_iterator where begin() and end() boundaries are known. * */ template::value_type, typename FromOper = from_oper > class ConstIteratorClosed_T : public ConstIterator_T { public: FromOper from; typedef OutConstIterator const_iter; typedef ValueType value_type; typedef ConstIterator_T base; typedef ConstIteratorClosed_T self_type; protected: virtual ConstIterator* advance(ptrdiff_t n) { std::advance( base::current, n ); if ( base::current == end ) throw stop_iteration(); return this; } public: ConstIteratorClosed_T(const_iter curr, const_iter first, const_iter last, VALUE seq = Qnil) : ConstIterator_T(curr, seq), begin(first), end(last) { } virtual VALUE value() const { if (base::current == end) { throw stop_iteration(); } else { return from(static_cast(*(base::current))); } } ConstIterator *dup() const { return new self_type(*this); } private: const_iter begin; const_iter end; }; /** * Iterator class for a iterator where begin() and end() boundaries are known. * */ template::value_type, typename FromOper = from_oper, typename AsvalOper = asval_oper > class IteratorClosed_T : public Iterator_T { public: FromOper from; AsvalOper asval; typedef InOutIterator nonconst_iter; typedef ValueType value_type; typedef Iterator_T base; typedef IteratorClosed_T self_type; protected: virtual Iterator* advance(ptrdiff_t n) { std::advance( base::current, n ); if ( base::current == end ) throw stop_iteration(); return this; } public: IteratorClosed_T(nonconst_iter curr, nonconst_iter first, nonconst_iter last, VALUE seq = Qnil) : Iterator_T(curr, seq), begin(first), end(last) { } virtual VALUE value() const { if (base::current == end) { throw stop_iteration(); } else { return from(static_cast(*(base::current))); } } // Iterator setter method, required by Ruby virtual VALUE setValue( const VALUE& v ) { if (base::current == end) throw stop_iteration(); value_type& dst = *base::current; if ( asval( v, dst ) ) return v; return Qnil; } Iterator *dup() const { return new self_type(*this); } private: nonconst_iter begin; nonconst_iter end; }; /* Partial specialization for bools which don't allow de-referencing */ template< typename InOutIterator, typename FromOper, typename AsvalOper > class IteratorOpen_T< InOutIterator, bool, FromOper, AsvalOper > : public Iterator_T { public: FromOper from; AsvalOper asval; typedef InOutIterator nonconst_iter; typedef bool value_type; typedef Iterator_T base; typedef IteratorOpen_T self_type; IteratorOpen_T(nonconst_iter curr, VALUE seq = Qnil) : Iterator_T(curr, seq) { } virtual VALUE value() const { return from(static_cast(*(base::current))); } virtual VALUE setValue( const VALUE& v ) { bool tmp = *base::current; if ( asval( v, tmp ) ) { *base::current = tmp; return v; } return Qnil; } Iterator *dup() const { return new self_type(*this); } }; /* Partial specialization for bools which don't allow de-referencing */ template< typename InOutIterator, typename FromOper, typename AsvalOper > class IteratorClosed_T< InOutIterator, bool, FromOper, AsvalOper > : public Iterator_T { public: FromOper from; AsvalOper asval; typedef InOutIterator nonconst_iter; typedef bool value_type; typedef Iterator_T base; typedef IteratorClosed_T self_type; protected: virtual Iterator* advance(ptrdiff_t n) { std::advance( base::current, n ); if ( base::current == end ) throw stop_iteration(); return this; } public: IteratorClosed_T(nonconst_iter curr, nonconst_iter first, nonconst_iter last, VALUE seq = Qnil) : Iterator_T(curr, seq), begin(first), end(last) { } virtual VALUE value() const { if (base::current == end) { throw stop_iteration(); } else { return from(static_cast(*(base::current))); } } virtual VALUE setValue( const VALUE& v ) { if (base::current == end) throw stop_iteration(); bool tmp = *base::current; if ( asval( v, tmp ) ) { *base::current = tmp; return v; } return Qnil; } Iterator *dup() const { return new self_type(*this); } private: nonconst_iter begin; nonconst_iter end; }; /** * Helper function used to wrap a bounded const_iterator. This is to be used in * a %typemap(out), for example. * */ template inline Iterator* make_nonconst_iterator(const InOutIter& current, const InOutIter& begin, const InOutIter& end, VALUE seq = Qnil) { return new IteratorClosed_T(current, begin, end, seq); } /** * Helper function used to wrap an unbounded const_iterator. This is to be used in * a %typemap(out), for example. * */ template inline Iterator* make_nonconst_iterator(const InOutIter& current, VALUE seq = Qnil) { return new IteratorOpen_T(current, seq); } /** * Helper function used to wrap a bounded const_iterator. This is to be used in * a %typemap(out), for example. * */ template inline ConstIterator* make_const_iterator(const OutIter& current, const OutIter& begin, const OutIter& end, VALUE seq = Qnil) { return new ConstIteratorClosed_T(current, begin, end, seq); } /** * Helper function used to wrap an unbounded const_iterator. This is to be used in * a %typemap(out), for example. * */ template inline ConstIterator* make_const_iterator(const OutIter& current, VALUE seq = Qnil) { return new ConstIteratorOpen_T(current, seq); } } namespace swig { /** * This class is a proxy class for references, used to return and set values * of an element of a Ruby Array of stuff. * It can be used by RubySequence_InputIterator to make it work with STL * algorithms. */ template struct RubySequence_Ref { RubySequence_Ref(VALUE seq, int index) : _seq(seq), _index(index) { } operator T () const { VALUE item = rb_ary_entry(_seq, _index ); try { return swig::as(item); } catch (const std::invalid_argument& e) { char msg[1024]; sprintf(msg, "in sequence element %d ", _index); VALUE lastErr = rb_gv_get("$!"); if ( lastErr == Qnil ) { SWIG_Error(SWIG_TypeError, swig::type_name()); } VALUE str = rb_str_new2(msg); str = rb_str_cat2( str, e.what() ); SWIG_Ruby_ExceptionType( NULL, str ); throw; } } RubySequence_Ref& operator=(const T& v) { rb_ary_set(_seq, _index, swig::from< T >(v)); return *this; } private: VALUE _seq; int _index; }; /** * This class is a proxy to return a pointer to a class, usually * RubySequence_Ref. * It can be used by RubySequence_InputIterator to make it work with STL * algorithms. */ template struct RubySequence_ArrowProxy { RubySequence_ArrowProxy(const T& x): m_value(x) {} const T* operator->() const { return &m_value; } operator const T*() const { return &m_value; } T m_value; }; /** * Input Iterator. This adapator class is a random access iterator that * allows you to use STL algorithms with a Ruby class (a Ruby Array by default). */ template > struct RubySequence_InputIterator { typedef RubySequence_InputIterator self; typedef std::random_access_iterator_tag iterator_category; typedef Reference reference; typedef T value_type; typedef T* pointer; typedef ptrdiff_t difference_type; RubySequence_InputIterator() { } RubySequence_InputIterator(VALUE seq, int index) : _seq(seq), _index(index) { } reference operator*() const { return reference(_seq, _index); } RubySequence_ArrowProxy operator->() const { return RubySequence_ArrowProxy(operator*()); } bool operator==(const self& ri) const { return (_index == ri._index) && (_seq == ri._seq); } bool operator!=(const self& ri) const { return !(operator==(ri)); } self& operator ++ () { ++_index; return *this; } self& operator -- () { --_index; return *this; } self& operator += (difference_type n) { _index += n; return *this; } self operator +(difference_type n) const { return self(_seq, _index + n); } self& operator -= (difference_type n) { _index -= n; return *this; } self operator -(difference_type n) const { return self(_seq, _index - n); } difference_type operator - (const self& ri) const { return _index - ri._index; } bool operator < (const self& ri) const { return _index < ri._index; } reference operator[](difference_type n) const { return reference(_seq, _index + n); } private: VALUE _seq; difference_type _index; }; /** * This adaptor class allows you to use a Ruby Array as if it was an STL * container, giving it begin(), end(), and iterators. */ template struct RubySequence_Cont { typedef RubySequence_Ref reference; typedef const RubySequence_Ref const_reference; typedef T value_type; typedef T* pointer; typedef int difference_type; typedef int size_type; typedef const pointer const_pointer; typedef RubySequence_InputIterator iterator; typedef RubySequence_InputIterator const_iterator; RubySequence_Cont(VALUE seq) : _seq(0) { if (!rb_obj_is_kind_of(seq, rb_cArray)) { throw std::invalid_argument("an Array is expected"); } _seq = seq; } ~RubySequence_Cont() { } size_type size() const { return RARRAY_LEN(_seq); } bool empty() const { return size() == 0; } iterator begin() { return iterator(_seq, 0); } const_iterator begin() const { return const_iterator(_seq, 0); } iterator end() { return iterator(_seq, size()); } const_iterator end() const { return const_iterator(_seq, size()); } reference operator[](difference_type n) { return reference(_seq, n); } const_reference operator[](difference_type n) const { return const_reference(_seq, n); } bool check() const { int s = (int) size(); for (int i = 0; i < s; ++i) { VALUE item = rb_ary_entry(_seq, i ); if (!swig::check(item)) return false; } return true; } private: VALUE _seq; }; } SWIGINTERN swig_type_info* SWIG_pchar_descriptor(void) { static int init = 0; static swig_type_info* info = 0; if (!init) { info = SWIG_TypeQuery("_p_char"); init = 1; } return info; } SWIGINTERN int SWIG_AsCharPtrAndSize(VALUE obj, char** cptr, size_t* psize, int *alloc) { if (TYPE(obj) == T_STRING) { char *cstr = StringValuePtr(obj); size_t size = RSTRING_LEN(obj) + 1; if (cptr) { if (alloc) { if (*alloc == SWIG_NEWOBJ) { *cptr = reinterpret_cast< char* >(memcpy(new char[size], cstr, sizeof(char)*(size))); } else { *cptr = cstr; *alloc = SWIG_OLDOBJ; } } } if (psize) *psize = size; return SWIG_OK; } else { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); if (pchar_descriptor) { void* vptr = 0; if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) { if (cptr) *cptr = (char *)vptr; if (psize) *psize = vptr ? (strlen((char*)vptr) + 1) : 0; if (alloc) *alloc = SWIG_OLDOBJ; return SWIG_OK; } } } return SWIG_TypeError; } SWIGINTERNINLINE VALUE SWIG_FromCharPtrAndSize(const char* carray, size_t size) { if (carray) { if (size > LONG_MAX) { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); return pchar_descriptor ? SWIG_NewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : Qnil; } else { return rb_str_new(carray, static_cast< long >(size)); } } else { return Qnil; } } SWIGINTERNINLINE VALUE SWIG_FromCharPtr(const char *cptr) { return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0)); } SWIGINTERNINLINE VALUE SWIG_From_int (int value) { return SWIG_From_long (value); } #ifdef SWIG_LONG_LONG_AVAILABLE SWIGINTERNINLINE VALUE SWIG_From_unsigned_SS_long_SS_long (unsigned long long value) { return ULL2NUM(value); } #endif SWIGINTERNINLINE VALUE SWIG_From_std_string (const std::string& s) { return SWIG_FromCharPtrAndSize(s.data(), s.size()); } SWIGINTERN int SWIG_AsVal_int (VALUE obj, int *val) { long v; int res = SWIG_AsVal_long (obj, &v); if (SWIG_IsOK(res)) { if ((v < INT_MIN || v > INT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< int >(v); } } return res; } SWIGINTERN int SWIG_AsVal_bool (VALUE obj, bool *val) { if (obj == Qtrue) { if (val) *val = true; return SWIG_OK; } else if (obj == Qfalse) { if (val) *val = false; return SWIG_OK; } else { int res = 0; if (SWIG_AsVal_int (obj, &res) == SWIG_OK) { if (val) *val = res ? true : false; return SWIG_OK; } } return SWIG_TypeError; } SWIGINTERNINLINE VALUE SWIG_From_unsigned_SS_long (unsigned long value) { return ULONG2NUM(value); } SWIGINTERNINLINE VALUE SWIG_From_unsigned_SS_int (unsigned int value) { return SWIG_From_unsigned_SS_long (value); } namespace swig { template <> struct traits< Prelude::Connection > { typedef pointer_category category; static const char* type_name() { return"Prelude::Connection"; } }; } namespace swig { template inline void assign(const RubySeq& rubyseq, Seq* seq) { // seq->assign(rubyseq.begin(), rubyseq.end()); // not used as not always implemented typedef typename RubySeq::value_type value_type; typename RubySeq::const_iterator it = rubyseq.begin(); for (;it != rubyseq.end(); ++it) { seq->insert(seq->end(),(value_type)(*it)); } } template struct traits_asptr_stdseq { typedef Seq sequence; typedef T value_type; static int asptr(VALUE obj, sequence **seq) { if (rb_obj_is_kind_of(obj, rb_cArray) == Qtrue) { try { RubySequence_Cont rubyseq(obj); if (seq) { sequence *pseq = new sequence(); assign(rubyseq, pseq); *seq = pseq; return SWIG_NEWOBJ; } else { return rubyseq.check() ? SWIG_OK : SWIG_ERROR; } } catch (std::exception& e) { if (seq) { VALUE lastErr = rb_gv_get("$!"); if (lastErr == Qnil) { rb_raise(rb_eTypeError, "%s", e.what()); } } return SWIG_ERROR; } } else { sequence *p; swig_type_info *descriptor = swig::type_info(); if (descriptor && SWIG_IsOK(SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0))) { if (seq) *seq = p; return SWIG_OLDOBJ; } } return SWIG_ERROR; } }; // Partial specialization for GC_VALUE's. No need to typecheck each // element. template< class Seq > struct traits_asptr_stdseq< Seq, swig::GC_VALUE > { typedef Seq sequence; typedef swig::GC_VALUE value_type; static int asptr(VALUE obj, sequence **seq) { if (rb_obj_is_kind_of(obj, rb_cArray) == Qtrue) { try { if (seq) { RubySequence_Cont rubyseq(obj); sequence *pseq = new sequence(); assign(rubyseq, pseq); *seq = pseq; return SWIG_NEWOBJ; } else { return true; } } catch (std::exception& e) { if (seq) { VALUE lastErr = rb_gv_get("$!"); if (lastErr == Qnil) { rb_raise(rb_eTypeError, "%s", e.what()); } } return SWIG_ERROR; } } else { sequence *p; swig_type_info *descriptor = swig::type_info(); if (descriptor && SWIG_IsOK(SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0))) { if (seq) *seq = p; return SWIG_OLDOBJ; } } return SWIG_ERROR; } }; template struct traits_from_stdseq { typedef Seq sequence; typedef T value_type; typedef typename Seq::size_type size_type; typedef typename sequence::const_iterator const_iterator; static VALUE from(const sequence& seq) { size_type size = seq.size(); if (size <= (size_type)INT_MAX) { VALUE obj = rb_ary_new2((int)size); int i = 0; for (const_iterator it = seq.begin(); it != seq.end(); ++it, ++i) { rb_ary_push(obj, swig::from< value_type >(*it)); } rb_obj_freeze(obj); // treat as immutable result return obj; } else { rb_raise(rb_eRangeError,"sequence size not valid in ruby"); return Qnil; } } }; } namespace swig { template struct traits_asptr > { static int asptr(VALUE obj, std::vector **vec) { return traits_asptr_stdseq >::asptr(obj, vec); } }; template struct traits_from > { static VALUE from(const std::vector& vec) { return traits_from_stdseq >::from(vec); } }; } namespace swig { template <> struct traits > > { typedef pointer_category category; static const char* type_name() { return "std::vector<" "Prelude::Connection" "," "std::allocator< Prelude::Connection >" " >"; } }; } static gl_thread_t __initial_thread; static VALUE __prelude_log_func = Qnil; static void _cb_ruby_log(int level, const char *str) { static int cid = rb_intern("call"); if ( (gl_thread_t) gl_thread_self() != __initial_thread ) return; rb_funcall(__prelude_log_func, cid, 2, SWIG_From_int(level), SWIG_FromCharPtr(str)); } static int _cb_ruby_write(prelude_msgbuf_t *fd, prelude_msg_t *msg) { ssize_t ret; rb_io_t *fptr; VALUE *io = (VALUE *) prelude_msgbuf_get_data(fd); GetOpenFile(*io, fptr); ret = fwrite((const char *) prelude_msg_get_message_data(msg), 1, prelude_msg_get_len(msg), GetWriteFile(fptr)); if ( ret != prelude_msg_get_len(msg) ) return prelude_error_from_errno(errno); prelude_msg_recycle(msg); return 0; } static ssize_t _cb_ruby_read(prelude_io_t *fd, void *buf, size_t size) { ssize_t ret; rb_io_t *fptr; VALUE *io = (VALUE *) prelude_io_get_fdptr(fd); GetOpenFile(*io, fptr); ret = fread(buf, 1, size, GetReadFile(fptr)); if ( ret < 0 ) ret = prelude_error_from_errno(errno); else if ( ret == 0 ) ret = prelude_error(PRELUDE_ERROR_EOF); return ret; } SWIGINTERN int SWIG_AsPtr_std_string (VALUE obj, std::string **val) { char* buf = 0 ; size_t size = 0; int alloc = SWIG_OLDOBJ; if (SWIG_IsOK((SWIG_AsCharPtrAndSize(obj, &buf, &size, &alloc)))) { if (buf) { if (val) *val = new std::string(buf, size - 1); if (alloc == SWIG_NEWOBJ) delete[] buf; return SWIG_NEWOBJ; } else { if (val) *val = 0; return SWIG_OLDOBJ; } } else { static int init = 0; static swig_type_info* descriptor = 0; if (!init) { descriptor = SWIG_TypeQuery("std::string" " *"); init = 1; } if (descriptor) { std::string *vptr; int res = SWIG_ConvertPtr(obj, (void**)&vptr, descriptor, 0); if (SWIG_IsOK(res) && val) *val = vptr; return res; } } return SWIG_ERROR; } namespace swig { template <> struct traits< Prelude::IDMEF > { typedef pointer_category category; static const char* type_name() { return"Prelude::IDMEF"; } }; } namespace swig { template <> struct traits > > { typedef pointer_category category; static const char* type_name() { return "std::vector<" "Prelude::IDMEF" "," "std::allocator< Prelude::IDMEF >" " >"; } }; } namespace swig { template <> struct traits< Prelude::IDMEFValue > { typedef pointer_category category; static const char* type_name() { return"Prelude::IDMEFValue"; } }; } namespace swig { template <> struct traits > > { typedef pointer_category category; static const char* type_name() { return "std::vector<" "Prelude::IDMEFValue" "," "std::allocator< Prelude::IDMEFValue >" " >"; } }; } #include #include /* Getting isfinite working pre C99 across multiple platforms is non-trivial. Users can provide SWIG_isfinite on older platforms. */ #ifndef SWIG_isfinite /* isfinite() is a macro for C99 */ # if defined(isfinite) # define SWIG_isfinite(X) (isfinite(X)) # elif defined(__cplusplus) && __cplusplus >= 201103L /* Use a template so that this works whether isfinite() is std::isfinite() or * in the global namespace. The reality seems to vary between compiler * versions. * * Make sure namespace std exists to avoid compiler warnings. * * extern "C++" is required as this fragment can end up inside an extern "C" { } block */ namespace std { } extern "C++" template inline int SWIG_isfinite_func(T x) { using namespace std; return isfinite(x); } # define SWIG_isfinite(X) (SWIG_isfinite_func(X)) # elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) # define SWIG_isfinite(X) (__builtin_isfinite(X)) # elif defined(__clang__) && defined(__has_builtin) # if __has_builtin(__builtin_isfinite) # define SWIG_isfinite(X) (__builtin_isfinite(X)) # endif # elif defined(_MSC_VER) # define SWIG_isfinite(X) (_finite(X)) # elif defined(__sun) && defined(__SVR4) # include # define SWIG_isfinite(X) (finite(X)) # endif #endif /* Accept infinite as a valid float value unless we are unable to check if a value is finite */ #ifdef SWIG_isfinite # define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX) && SWIG_isfinite(X)) #else # define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX)) #endif /*@SWIG:/usr/share/swig/4.0.1/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/ SWIGINTERN VALUE SWIG_AUX_NUM2DBL(VALUE *args) { VALUE obj = args[0]; VALUE type = TYPE(obj); double *res = (double *)(args[1]); *res = NUM2DBL(obj); (void)type; return obj; } /*@SWIG@*/ SWIGINTERN int SWIG_AsVal_double (VALUE obj, double *val) { VALUE type = TYPE(obj); if ((type == T_FLOAT) || (type == T_FIXNUM) || (type == T_BIGNUM)) { double v; VALUE a[2]; a[0] = obj; a[1] = (VALUE)(&v); if (rb_rescue(RUBY_METHOD_FUNC(SWIG_AUX_NUM2DBL), (VALUE)a, RUBY_METHOD_FUNC(SWIG_ruby_failed), 0) != Qnil) { if (val) *val = v; return SWIG_OK; } } return SWIG_TypeError; } SWIGINTERN int SWIG_AsVal_float (VALUE obj, float *val) { double v; int res = SWIG_AsVal_double (obj, &v); if (SWIG_IsOK(res)) { if (SWIG_Float_Overflow_Check(v)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< float >(v); } } return res; } #define SWIG_From_double rb_float_new SWIGINTERNINLINE VALUE SWIG_From_float (float value) { return SWIG_From_double (value); } #ifndef SWIG_FromBytePtrAndSize # define SWIG_FromBytePtrAndSize(arg, len) SWIG_FromCharPtrAndSize(arg, len) #endif int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret); VALUE IDMEFValueList_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &value, void *extra) { int ret; VALUE ary; std::vector result = value; std::vector::const_iterator i; ary = rb_ary_new2(result.size()); for ( i = result.begin(); i != result.end(); i++ ) { VALUE val; if ( (*i).isNull() ) val = Qnil; else { ret = IDMEFValue_to_SWIG(self, *i, extra, &val); if ( ret < 0 ) return Qnil; } if ( ! rb_ary_push(ary, val) ) return Qnil; } return ary; } int IDMEFValue_to_SWIG(TARGET_LANGUAGE_SELF self, const Prelude::IDMEFValue &result, void *extra, TARGET_LANGUAGE_OUTPUT_TYPE ret) { idmef_value_t *value = result; Prelude::IDMEFValue::IDMEFValueTypeEnum type = result.getType(); if ( type == Prelude::IDMEFValue::TYPE_STRING ) { prelude_string_t *str = idmef_value_get_string(value); *ret = SWIG_FromCharPtrAndSize(prelude_string_get_string(str), prelude_string_get_len(str)); } else if ( type == Prelude::IDMEFValue::TYPE_INT8 ) *ret = SWIG_From_int(idmef_value_get_int8(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT8 ) *ret = SWIG_From_unsigned_SS_int(idmef_value_get_uint8(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT16 ) *ret = SWIG_From_int(idmef_value_get_int16(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT16 ) *ret = SWIG_From_unsigned_SS_int(idmef_value_get_uint16(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT32 ) *ret = SWIG_From_int(idmef_value_get_int32(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT32 ) *ret = SWIG_From_unsigned_SS_int(idmef_value_get_uint32(value)); else if ( type == Prelude::IDMEFValue::TYPE_INT64 ) *ret = SWIG_From_long_SS_long(idmef_value_get_int64(value)); else if ( type == Prelude::IDMEFValue::TYPE_UINT64 ) *ret = SWIG_From_unsigned_SS_long_SS_long(idmef_value_get_uint64(value)); else if ( type == Prelude::IDMEFValue::TYPE_FLOAT ) *ret = SWIG_From_float(idmef_value_get_float(value)); else if ( type == Prelude::IDMEFValue::TYPE_DOUBLE ) *ret = SWIG_From_double(idmef_value_get_double(value)); else if ( type == Prelude::IDMEFValue::TYPE_ENUM ) { const char *s = idmef_class_enum_to_string(idmef_value_get_class(value), idmef_value_get_enum(value)); *ret = SWIG_FromCharPtr(s); } else if ( type == Prelude::IDMEFValue::TYPE_TIME ) { Prelude::IDMEFTime t = result; *ret = SWIG_NewPointerObj(new Prelude::IDMEFTime(t), SWIGTYPE_p_Prelude__IDMEFTime, 1); } else if ( type == Prelude::IDMEFValue::TYPE_LIST ) *ret = IDMEFValueList_to_SWIG(self, result, extra); else if ( type == Prelude::IDMEFValue::TYPE_DATA ) { idmef_data_t *d = idmef_value_get_data(value); idmef_data_type_t t = idmef_data_get_type(d); if ( t == IDMEF_DATA_TYPE_BYTE || t == IDMEF_DATA_TYPE_BYTE_STRING ) *ret = SWIG_FromBytePtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d)); else if ( t == IDMEF_DATA_TYPE_CHAR ) *ret = SWIG_FromCharPtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d)); else if ( t == IDMEF_DATA_TYPE_CHAR_STRING ) *ret = SWIG_FromCharPtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d) - 1); else if ( t == IDMEF_DATA_TYPE_FLOAT ) *ret = SWIG_From_float(idmef_data_get_float(d)); else if ( t == IDMEF_DATA_TYPE_UINT32 || IDMEF_DATA_TYPE_INT ) *ret = SWIG_From_unsigned_SS_long_SS_long(idmef_data_get_int(d)); } else if ( type == Prelude::IDMEFValue::TYPE_CLASS ) { idmef_object_t *obj = (idmef_object_t *) idmef_value_get_object(value); *ret = SWIG_NewPointerObj(new Prelude::IDMEF(idmef_object_ref(obj)), SWIGTYPE_p_Prelude__IDMEF, 1); } else return -1; return 1; } SWIGINTERN int SWIG_AsVal_unsigned_SS_int (VALUE obj, unsigned int *val) { unsigned long v; int res = SWIG_AsVal_unsigned_SS_long (obj, &v); if (SWIG_IsOK(res)) { if ((v > UINT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< unsigned int >(v); } } return res; } SWIGINTERN Prelude::IDMEFValue Prelude_IDMEFPath_get(Prelude::IDMEFPath *self,Prelude::IDMEF &message){ Prelude::IDMEFValue value; value = self->get(message); if ( value.isNull() && self->isAmbiguous() ) { std::vector v; return Prelude::IDMEFValue(v); } return value; } SWIGINTERNINLINE VALUE SWIG_From_size_t (size_t value) { #ifdef SWIG_LONG_LONG_AVAILABLE if (sizeof(size_t) <= sizeof(unsigned long)) { #endif return SWIG_From_unsigned_SS_long (static_cast< unsigned long >(value)); #ifdef SWIG_LONG_LONG_AVAILABLE } else { /* assume sizeof(size_t) <= sizeof(unsigned long long) */ return SWIG_From_unsigned_SS_long_SS_long (static_cast< unsigned long long >(value)); } #endif } SWIGINTERN int SWIG_AsVal_std_string (VALUE obj, std::string *val) { std::string* v = (std::string *) 0; int res = SWIG_AsPtr_std_string (obj, &v); if (!SWIG_IsOK(res)) return res; if (v) { if (val) *val = *v; if (SWIG_IsNewObj(res)) { delete v; res = SWIG_DelNewMask(res); } return res; } return SWIG_ERROR; } namespace swig { template <> struct traits< std::string > { typedef value_category category; static const char* type_name() { return"std::string"; } }; template <> struct traits_asval< std::string > { typedef std::string value_type; static int asval(VALUE obj, value_type *val) { return SWIG_AsVal_std_string (obj, val); } }; template <> struct traits_from< std::string > { typedef std::string value_type; static VALUE from(const value_type& val) { return SWIG_From_std_string (val); } }; } namespace swig { template struct traits_asval > { typedef std::pair value_type; static int get_pair(VALUE first, VALUE second, std::pair *val) { if (val) { T *pfirst = &(val->first); int res1 = swig::asval((VALUE)first, pfirst); if (!SWIG_IsOK(res1)) return res1; U *psecond = &(val->second); int res2 = swig::asval((VALUE)second, psecond); if (!SWIG_IsOK(res2)) return res2; return res1 > res2 ? res1 : res2; } else { T *pfirst = 0; int res1 = swig::asval((VALUE)first, pfirst); if (!SWIG_IsOK(res1)) return res1; U *psecond = 0; int res2 = swig::asval((VALUE)second, psecond); if (!SWIG_IsOK(res2)) return res2; return res1 > res2 ? res1 : res2; } } static int asval(VALUE obj, std::pair *val) { int res = SWIG_ERROR; if ( TYPE(obj) == T_ARRAY ) { if (RARRAY_LEN(obj) == 2) { VALUE first = rb_ary_entry(obj,0); VALUE second = rb_ary_entry(obj,1); res = get_pair(first, second, val); } } else { value_type *p; swig_type_info *descriptor = swig::type_info(); res = descriptor ? SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0) : SWIG_ERROR; if (SWIG_IsOK(res) && val) *val = *p; } return res; } }; template struct traits_asptr > { typedef std::pair value_type; static int get_pair(VALUE first, VALUE second, std::pair **val) { if (val) { value_type *vp = (new std::pair()); T *pfirst = &(vp->first); int res1 = swig::asval((VALUE)first, pfirst); if (!SWIG_IsOK(res1)) { delete vp; return res1; } U *psecond = &(vp->second); int res2 = swig::asval((VALUE)second, psecond); if (!SWIG_IsOK(res2)) { delete vp; return res2; } *val = vp; return SWIG_AddNewMask(res1 > res2 ? res1 : res2); } else { T *pfirst = 0; int res1 = swig::asval((VALUE)first, pfirst); if (!SWIG_IsOK(res1)) return res1; U *psecond = 0; int res2 = swig::asval((VALUE)second, psecond); if (!SWIG_IsOK(res2)) return res2; return res1 > res2 ? res1 : res2; } } static int asptr(VALUE obj, std::pair **val) { int res = SWIG_ERROR; if ( TYPE(obj) == T_ARRAY ) { if ( RARRAY_LEN(obj) == 2) { VALUE first = rb_ary_entry(obj,0); VALUE second = rb_ary_entry(obj,1); res = get_pair(first, second, val); } } else { value_type *p; swig_type_info *descriptor = swig::type_info(); res = descriptor ? SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0) : SWIG_ERROR; if (SWIG_IsOK(res) && val) *val = p; } return res; } }; template struct traits_from > { static VALUE _wrap_pair_second( VALUE self ) { std::pair< typename swig::noconst_traits::noconst_type,U>* p = NULL; swig::asptr( self, &p ); return swig::from( p->second ); } static VALUE _wrap_pair_second_eq( VALUE self, VALUE arg ) { std::pair< typename swig::noconst_traits::noconst_type,U>* p = NULL; swig::asptr( self, &p ); return swig::from( p->second ); } static VALUE from(const std::pair& val) { VALUE obj = rb_ary_new2(2); rb_ary_push(obj, swig::from::noconst_type>(val.first)); rb_ary_push(obj, swig::from(val.second)); rb_define_singleton_method(obj, "second", VALUEFUNC(_wrap_pair_second), 0 ); rb_define_singleton_method(obj, "second=", VALUEFUNC(_wrap_pair_second_eq), 1 ); rb_obj_freeze(obj); // treat as immutable tuple return obj; } }; } namespace swig { template <> struct traits > { typedef pointer_category category; static const char* type_name() { return "std::pair<" "std::string" "," "std::string" " >"; } }; } namespace swig { template struct from_key_oper { typedef const ValueType& argument_type; typedef VALUE result_type; result_type operator()(argument_type v) const { return swig::from(v.first); } }; template struct from_value_oper { typedef const ValueType& argument_type; typedef VALUE result_type; result_type operator()(argument_type v) const { return swig::from(v.second); } }; template struct MapIterator_T : ConstIteratorClosed_T { MapIterator_T(OutIterator curr, OutIterator first, OutIterator last, VALUE seq) : ConstIteratorClosed_T(curr, first, last, seq) { } }; template > struct MapKeyIterator_T : MapIterator_T { MapKeyIterator_T(OutIterator curr, OutIterator first, OutIterator last, VALUE seq) : MapIterator_T(curr, first, last, seq) { } }; template inline ConstIterator* make_output_key_iterator(const OutIter& current, const OutIter& begin, const OutIter& end, VALUE seq = 0) { return new MapKeyIterator_T(current, begin, end, seq); } template > struct MapValueIterator_T : MapIterator_T { MapValueIterator_T(OutIterator curr, OutIterator first, OutIterator last, VALUE seq) : MapIterator_T(curr, first, last, seq) { } }; template inline ConstIterator* make_output_value_iterator(const OutIter& current, const OutIter& begin, const OutIter& end, VALUE seq = 0) { return new MapValueIterator_T(current, begin, end, seq); } } namespace swig { template inline void assign(const RubySeq& rubyseq, std::map *map) { typedef typename std::map::value_type value_type; typename RubySeq::const_iterator it = rubyseq.begin(); for (;it != rubyseq.end(); ++it) { map->insert(value_type(it->first, it->second)); } } template struct traits_asptr > { typedef std::map map_type; static int asptr(VALUE obj, map_type **val) { int res = SWIG_ERROR; if ( TYPE(obj) == T_HASH ) { static ID id_to_a = rb_intern("to_a"); VALUE items = rb_funcall(obj, id_to_a, 0); res = traits_asptr_stdseq, std::pair >::asptr(items, val); } else { map_type *p; swig_type_info *descriptor = swig::type_info(); res = descriptor ? SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0) : SWIG_ERROR; if (SWIG_IsOK(res) && val) *val = p; } return res; } }; template struct traits_from > { typedef std::map map_type; typedef typename map_type::const_iterator const_iterator; typedef typename map_type::size_type size_type; static VALUE from(const map_type& map) { swig_type_info *desc = swig::type_info(); if (desc && desc->clientdata) { return SWIG_NewPointerObj(new map_type(map), desc, SWIG_POINTER_OWN); } else { size_type size = map.size(); int rubysize = (size <= (size_type) INT_MAX) ? (int) size : -1; if (rubysize < 0) { SWIG_RUBY_THREAD_BEGIN_BLOCK; rb_raise( rb_eRuntimeError, "map size not valid in Ruby"); SWIG_RUBY_THREAD_END_BLOCK; return Qnil; } VALUE obj = rb_hash_new(); for (const_iterator i= map.begin(); i!= map.end(); ++i) { VALUE key = swig::from(i->first); VALUE val = swig::from(i->second); rb_hash_aset(obj, key, val); } return obj; } } }; } namespace swig { template <> struct traits, std::allocator< std::pair< std::string const,std::string > > > > { typedef pointer_category category; static const char* type_name() { return "std::map<" "std::string" "," "std::string" "," "std::less< std::string >" "," "std::allocator< std::pair< std::string const,std::string > >" " >"; } }; } namespace swig { template <> struct traits > > { typedef pointer_category category; static const char* type_name() { return "std::vector<" "std::string" "," "std::allocator< std::string >" " >"; } }; } SWIGINTERN void Prelude_IDMEF_write(Prelude::IDMEF *self,void *nocast_p){ self->_genericWrite(_cb_ruby_write, nocast_p); } SWIGINTERN int Prelude_IDMEF_read(Prelude::IDMEF *self,void *nocast_p){ self->_genericRead(_cb_ruby_read, nocast_p); return 1; } SWIGINTERN Prelude::IDMEF &Prelude_IDMEF_operator_Sg__Sg_(Prelude::IDMEF *self,void *nocast_p){ self->_genericWrite(_cb_ruby_write, nocast_p); return *self; } SWIGINTERN Prelude::IDMEF &Prelude_IDMEF_operator_Sl__Sl_(Prelude::IDMEF *self,void *nocast_p){ self->_genericRead(_cb_ruby_read, nocast_p); return *self; } SWIGINTERN Prelude::IDMEFValue Prelude_IDMEF_get(Prelude::IDMEF *self,char const *path){ Prelude::IDMEFValue value; Prelude::IDMEFPath ipath = Prelude::IDMEFPath(*self, path); value = ipath.get(*self); if ( value.isNull() && ipath.isAmbiguous() ) { std::vector v; return Prelude::IDMEFValue(v); } return value; } static swig_class SwigClassGC_VALUE; /* Document-method: Prelude::GC_VALUE.inspect call-seq: inspect -> VALUE Inspect class and its contents. */ SWIGINTERN VALUE _wrap_GC_VALUE_inspect(int argc, VALUE *argv, VALUE self) { swig::GC_VALUE *arg1 = (swig::GC_VALUE *) 0 ; swig::GC_VALUE r1 ; VALUE result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } r1 = self; arg1 = &r1; result = (VALUE)((swig::GC_VALUE const *)arg1)->inspect(); vresult = result; return vresult; fail: return Qnil; } /* Document-method: Prelude::GC_VALUE.to_s call-seq: to_s -> VALUE Convert class to a String representation. */ SWIGINTERN VALUE _wrap_GC_VALUE_to_s(int argc, VALUE *argv, VALUE self) { swig::GC_VALUE *arg1 = (swig::GC_VALUE *) 0 ; swig::GC_VALUE r1 ; VALUE result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } r1 = self; arg1 = &r1; result = (VALUE)((swig::GC_VALUE const *)arg1)->to_s(); vresult = result; return vresult; fail: return Qnil; } static swig_class SwigClassConstIterator; SWIGINTERN void free_swig_ConstIterator(void *self) { swig::ConstIterator *arg1 = (swig::ConstIterator *)self; delete arg1; } SWIGINTERN VALUE _wrap_ConstIterator_value(int argc, VALUE *argv, VALUE self) { swig::ConstIterator *arg1 = (swig::ConstIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; VALUE result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::ConstIterator const *","value", 1, self )); } arg1 = reinterpret_cast< swig::ConstIterator * >(argp1); try { result = (VALUE)((swig::ConstIterator const *)arg1)->value(); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_Ruby_ExceptionType(NULL, Qnil); SWIG_fail; } } vresult = result; return vresult; fail: return Qnil; } /* Document-method: Prelude::ConstIterator.dup call-seq: dup -> ConstIterator Create a duplicate of the class and unfreeze it if needed. */ SWIGINTERN VALUE _wrap_ConstIterator_dup(int argc, VALUE *argv, VALUE self) { swig::ConstIterator *arg1 = (swig::ConstIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; swig::ConstIterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::ConstIterator const *","dup", 1, self )); } arg1 = reinterpret_cast< swig::ConstIterator * >(argp1); result = (swig::ConstIterator *)((swig::ConstIterator const *)arg1)->dup(); vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__ConstIterator, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } /* Document-method: Prelude::ConstIterator.inspect call-seq: inspect -> VALUE Inspect class and its contents. */ SWIGINTERN VALUE _wrap_ConstIterator_inspect(int argc, VALUE *argv, VALUE self) { swig::ConstIterator *arg1 = (swig::ConstIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; VALUE result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::ConstIterator const *","inspect", 1, self )); } arg1 = reinterpret_cast< swig::ConstIterator * >(argp1); result = (VALUE)((swig::ConstIterator const *)arg1)->inspect(); vresult = result; return vresult; fail: return Qnil; } /* Document-method: Prelude::ConstIterator.to_s call-seq: to_s -> VALUE Convert class to a String representation. */ SWIGINTERN VALUE _wrap_ConstIterator_to_s(int argc, VALUE *argv, VALUE self) { swig::ConstIterator *arg1 = (swig::ConstIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; VALUE result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::ConstIterator const *","to_s", 1, self )); } arg1 = reinterpret_cast< swig::ConstIterator * >(argp1); result = (VALUE)((swig::ConstIterator const *)arg1)->to_s(); vresult = result; return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConstIterator_next__SWIG_0(int argc, VALUE *argv, VALUE self) { swig::ConstIterator *arg1 = (swig::ConstIterator *) 0 ; size_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; swig::ConstIterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::ConstIterator *","next", 1, self )); } arg1 = reinterpret_cast< swig::ConstIterator * >(argp1); ecode2 = SWIG_AsVal_size_t(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "size_t","next", 2, argv[0] )); } arg2 = static_cast< size_t >(val2); result = (swig::ConstIterator *)(arg1)->next(arg2); vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConstIterator_next__SWIG_1(int argc, VALUE *argv, VALUE self) { swig::ConstIterator *arg1 = (swig::ConstIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; swig::ConstIterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::ConstIterator *","next", 1, self )); } arg1 = reinterpret_cast< swig::ConstIterator * >(argp1); try { result = (swig::ConstIterator *)(arg1)->next(); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_Ruby_ExceptionType(NULL, Qnil); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConstIterator_next(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs + 1; argv[0] = self; if (argc > 3) SWIG_fail; for (ii = 1; (ii < argc); ++ii) { argv[ii] = args[ii-1]; } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__ConstIterator, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_ConstIterator_next__SWIG_1(nargs, args, self); } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__ConstIterator, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_size_t(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_ConstIterator_next__SWIG_0(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 3, "ConstIterator.next", " swig::ConstIterator ConstIterator.next(size_t n)\n" " swig::ConstIterator * ConstIterator.next()\n"); return Qnil; } SWIGINTERN VALUE _wrap_ConstIterator_previous__SWIG_0(int argc, VALUE *argv, VALUE self) { swig::ConstIterator *arg1 = (swig::ConstIterator *) 0 ; size_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; swig::ConstIterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::ConstIterator *","previous", 1, self )); } arg1 = reinterpret_cast< swig::ConstIterator * >(argp1); ecode2 = SWIG_AsVal_size_t(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "size_t","previous", 2, argv[0] )); } arg2 = static_cast< size_t >(val2); result = (swig::ConstIterator *)(arg1)->previous(arg2); vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConstIterator_previous__SWIG_1(int argc, VALUE *argv, VALUE self) { swig::ConstIterator *arg1 = (swig::ConstIterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; swig::ConstIterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::ConstIterator *","previous", 1, self )); } arg1 = reinterpret_cast< swig::ConstIterator * >(argp1); try { result = (swig::ConstIterator *)(arg1)->previous(); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_Ruby_ExceptionType(NULL, Qnil); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConstIterator_previous(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs + 1; argv[0] = self; if (argc > 3) SWIG_fail; for (ii = 1; (ii < argc); ++ii) { argv[ii] = args[ii-1]; } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__ConstIterator, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_ConstIterator_previous__SWIG_1(nargs, args, self); } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__ConstIterator, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_size_t(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_ConstIterator_previous__SWIG_0(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 3, "ConstIterator.previous", " swig::ConstIterator ConstIterator.previous(size_t n)\n" " swig::ConstIterator * ConstIterator.previous()\n"); return Qnil; } /* Document-method: Prelude::ConstIterator.== call-seq: ==(x) -> bool Equality comparison operator. */ SWIGINTERN VALUE _wrap_ConstIterator___eq__(int argc, VALUE *argv, VALUE self) { swig::ConstIterator *arg1 = (swig::ConstIterator *) 0 ; swig::ConstIterator *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::ConstIterator const *","operator ==", 1, self )); } arg1 = reinterpret_cast< swig::ConstIterator * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_swig__ConstIterator, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "swig::ConstIterator const &","operator ==", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "swig::ConstIterator const &","operator ==", 2, argv[0])); } arg2 = reinterpret_cast< swig::ConstIterator * >(argp2); result = (bool)((swig::ConstIterator const *)arg1)->operator ==((swig::ConstIterator const &)*arg2); vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::ConstIterator.+ call-seq: +(n) -> ConstIterator Add operator. */ SWIGINTERN VALUE _wrap_ConstIterator___add__(int argc, VALUE *argv, VALUE self) { swig::ConstIterator *arg1 = (swig::ConstIterator *) 0 ; ptrdiff_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; ptrdiff_t val2 ; int ecode2 = 0 ; swig::ConstIterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::ConstIterator const *","operator +", 1, self )); } arg1 = reinterpret_cast< swig::ConstIterator * >(argp1); ecode2 = SWIG_AsVal_ptrdiff_t(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "ptrdiff_t","operator +", 2, argv[0] )); } arg2 = static_cast< ptrdiff_t >(val2); try { result = (swig::ConstIterator *)((swig::ConstIterator const *)arg1)->operator +(arg2); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_Ruby_ExceptionType(NULL, Qnil); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__ConstIterator, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } /* Document-method: Prelude::ConstIterator.- call-seq: -(n) -> ConstIterator -(x) -> ptrdiff_t Substraction operator. */ SWIGINTERN VALUE _wrap_ConstIterator___sub____SWIG_0(int argc, VALUE *argv, VALUE self) { swig::ConstIterator *arg1 = (swig::ConstIterator *) 0 ; ptrdiff_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; ptrdiff_t val2 ; int ecode2 = 0 ; swig::ConstIterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::ConstIterator const *","operator -", 1, self )); } arg1 = reinterpret_cast< swig::ConstIterator * >(argp1); ecode2 = SWIG_AsVal_ptrdiff_t(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "ptrdiff_t","operator -", 2, argv[0] )); } arg2 = static_cast< ptrdiff_t >(val2); try { result = (swig::ConstIterator *)((swig::ConstIterator const *)arg1)->operator -(arg2); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_Ruby_ExceptionType(NULL, Qnil); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__ConstIterator, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConstIterator___sub____SWIG_1(int argc, VALUE *argv, VALUE self) { swig::ConstIterator *arg1 = (swig::ConstIterator *) 0 ; swig::ConstIterator *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; ptrdiff_t result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__ConstIterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::ConstIterator const *","operator -", 1, self )); } arg1 = reinterpret_cast< swig::ConstIterator * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_swig__ConstIterator, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "swig::ConstIterator const &","operator -", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "swig::ConstIterator const &","operator -", 2, argv[0])); } arg2 = reinterpret_cast< swig::ConstIterator * >(argp2); result = ((swig::ConstIterator const *)arg1)->operator -((swig::ConstIterator const &)*arg2); vresult = SWIG_From_ptrdiff_t(static_cast< ptrdiff_t >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConstIterator___sub__(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs + 1; argv[0] = self; if (argc > 3) SWIG_fail; for (ii = 1; (ii < argc); ++ii) { argv[ii] = args[ii-1]; } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__ConstIterator, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_swig__ConstIterator, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_ConstIterator___sub____SWIG_1(nargs, args, self); } } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__ConstIterator, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_ConstIterator___sub____SWIG_0(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 3, "ConstIterator.__sub__", " swig::ConstIterator ConstIterator.__sub__(ptrdiff_t n)\n" " ptrdiff_t ConstIterator.__sub__(swig::ConstIterator const &x)\n"); return Qnil; } static swig_class SwigClassIterator; SWIGINTERN VALUE _wrap_Iterator_valuee___(int argc, VALUE *argv, VALUE self) { swig::Iterator *arg1 = (swig::Iterator *) 0 ; VALUE *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; VALUE temp2 ; VALUE result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__Iterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::Iterator *","setValue", 1, self )); } arg1 = reinterpret_cast< swig::Iterator * >(argp1); temp2 = static_cast< VALUE >(argv[0]); arg2 = &temp2; result = (VALUE)(arg1)->setValue((VALUE const &)*arg2); vresult = result; return vresult; fail: return Qnil; } /* Document-method: Prelude::Iterator.dup call-seq: dup -> Iterator Create a duplicate of the class and unfreeze it if needed. */ SWIGINTERN VALUE _wrap_Iterator_dup(int argc, VALUE *argv, VALUE self) { swig::Iterator *arg1 = (swig::Iterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; swig::Iterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__Iterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::Iterator const *","dup", 1, self )); } arg1 = reinterpret_cast< swig::Iterator * >(argp1); result = (swig::Iterator *)((swig::Iterator const *)arg1)->dup(); vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__Iterator, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Iterator_next__SWIG_0(int argc, VALUE *argv, VALUE self) { swig::Iterator *arg1 = (swig::Iterator *) 0 ; size_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; swig::Iterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__Iterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::Iterator *","next", 1, self )); } arg1 = reinterpret_cast< swig::Iterator * >(argp1); ecode2 = SWIG_AsVal_size_t(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "size_t","next", 2, argv[0] )); } arg2 = static_cast< size_t >(val2); result = (swig::Iterator *)(arg1)->next(arg2); vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__Iterator, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Iterator_next__SWIG_1(int argc, VALUE *argv, VALUE self) { swig::Iterator *arg1 = (swig::Iterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; swig::Iterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__Iterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::Iterator *","next", 1, self )); } arg1 = reinterpret_cast< swig::Iterator * >(argp1); try { result = (swig::Iterator *)(arg1)->next(); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_Ruby_ExceptionType(NULL, Qnil); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__Iterator, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Iterator_next(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs + 1; argv[0] = self; if (argc > 3) SWIG_fail; for (ii = 1; (ii < argc); ++ii) { argv[ii] = args[ii-1]; } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__Iterator, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_Iterator_next__SWIG_1(nargs, args, self); } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__Iterator, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_size_t(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_Iterator_next__SWIG_0(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 3, "Iterator.next", " swig::Iterator Iterator.next(size_t n)\n" " swig::Iterator * Iterator.next()\n"); return Qnil; } SWIGINTERN VALUE _wrap_Iterator_previous__SWIG_0(int argc, VALUE *argv, VALUE self) { swig::Iterator *arg1 = (swig::Iterator *) 0 ; size_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; swig::Iterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__Iterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::Iterator *","previous", 1, self )); } arg1 = reinterpret_cast< swig::Iterator * >(argp1); ecode2 = SWIG_AsVal_size_t(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "size_t","previous", 2, argv[0] )); } arg2 = static_cast< size_t >(val2); result = (swig::Iterator *)(arg1)->previous(arg2); vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__Iterator, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Iterator_previous__SWIG_1(int argc, VALUE *argv, VALUE self) { swig::Iterator *arg1 = (swig::Iterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; swig::Iterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__Iterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::Iterator *","previous", 1, self )); } arg1 = reinterpret_cast< swig::Iterator * >(argp1); try { result = (swig::Iterator *)(arg1)->previous(); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_Ruby_ExceptionType(NULL, Qnil); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__Iterator, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Iterator_previous(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs + 1; argv[0] = self; if (argc > 3) SWIG_fail; for (ii = 1; (ii < argc); ++ii) { argv[ii] = args[ii-1]; } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__Iterator, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_Iterator_previous__SWIG_1(nargs, args, self); } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__Iterator, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_size_t(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_Iterator_previous__SWIG_0(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 3, "Iterator.previous", " swig::Iterator Iterator.previous(size_t n)\n" " swig::Iterator * Iterator.previous()\n"); return Qnil; } /* Document-method: Prelude::Iterator.inspect call-seq: inspect -> VALUE Inspect class and its contents. */ SWIGINTERN VALUE _wrap_Iterator_inspect(int argc, VALUE *argv, VALUE self) { swig::Iterator *arg1 = (swig::Iterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; VALUE result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__Iterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::Iterator const *","inspect", 1, self )); } arg1 = reinterpret_cast< swig::Iterator * >(argp1); result = (VALUE)((swig::Iterator const *)arg1)->inspect(); vresult = result; return vresult; fail: return Qnil; } /* Document-method: Prelude::Iterator.to_s call-seq: to_s -> VALUE Convert class to a String representation. */ SWIGINTERN VALUE _wrap_Iterator_to_s(int argc, VALUE *argv, VALUE self) { swig::Iterator *arg1 = (swig::Iterator *) 0 ; void *argp1 = 0 ; int res1 = 0 ; VALUE result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__Iterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::Iterator const *","to_s", 1, self )); } arg1 = reinterpret_cast< swig::Iterator * >(argp1); result = (VALUE)((swig::Iterator const *)arg1)->to_s(); vresult = result; return vresult; fail: return Qnil; } /* Document-method: Prelude::Iterator.== call-seq: ==(x) -> bool Equality comparison operator. */ SWIGINTERN VALUE _wrap_Iterator___eq__(int argc, VALUE *argv, VALUE self) { swig::Iterator *arg1 = (swig::Iterator *) 0 ; swig::Iterator *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__Iterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::Iterator const *","operator ==", 1, self )); } arg1 = reinterpret_cast< swig::Iterator * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_swig__Iterator, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "swig::Iterator const &","operator ==", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "swig::Iterator const &","operator ==", 2, argv[0])); } arg2 = reinterpret_cast< swig::Iterator * >(argp2); result = (bool)((swig::Iterator const *)arg1)->operator ==((swig::Iterator const &)*arg2); vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::Iterator.+ call-seq: +(n) -> Iterator Add operator. */ SWIGINTERN VALUE _wrap_Iterator___add__(int argc, VALUE *argv, VALUE self) { swig::Iterator *arg1 = (swig::Iterator *) 0 ; ptrdiff_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; ptrdiff_t val2 ; int ecode2 = 0 ; swig::Iterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__Iterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::Iterator const *","operator +", 1, self )); } arg1 = reinterpret_cast< swig::Iterator * >(argp1); ecode2 = SWIG_AsVal_ptrdiff_t(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "ptrdiff_t","operator +", 2, argv[0] )); } arg2 = static_cast< ptrdiff_t >(val2); try { result = (swig::Iterator *)((swig::Iterator const *)arg1)->operator +(arg2); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_Ruby_ExceptionType(NULL, Qnil); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__Iterator, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } /* Document-method: Prelude::Iterator.- call-seq: -(n) -> Iterator -(x) -> ptrdiff_t Substraction operator. */ SWIGINTERN VALUE _wrap_Iterator___sub____SWIG_0(int argc, VALUE *argv, VALUE self) { swig::Iterator *arg1 = (swig::Iterator *) 0 ; ptrdiff_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; ptrdiff_t val2 ; int ecode2 = 0 ; swig::Iterator *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__Iterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::Iterator const *","operator -", 1, self )); } arg1 = reinterpret_cast< swig::Iterator * >(argp1); ecode2 = SWIG_AsVal_ptrdiff_t(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "ptrdiff_t","operator -", 2, argv[0] )); } arg2 = static_cast< ptrdiff_t >(val2); try { result = (swig::Iterator *)((swig::Iterator const *)arg1)->operator -(arg2); } catch(swig::stop_iteration &_e) { { (void)_e; SWIG_Ruby_ExceptionType(NULL, Qnil); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__Iterator, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Iterator___sub____SWIG_1(int argc, VALUE *argv, VALUE self) { swig::Iterator *arg1 = (swig::Iterator *) 0 ; swig::Iterator *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; ptrdiff_t result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_swig__Iterator, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "swig::Iterator const *","operator -", 1, self )); } arg1 = reinterpret_cast< swig::Iterator * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_swig__Iterator, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "swig::Iterator const &","operator -", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "swig::Iterator const &","operator -", 2, argv[0])); } arg2 = reinterpret_cast< swig::Iterator * >(argp2); result = ((swig::Iterator const *)arg1)->operator -((swig::Iterator const &)*arg2); vresult = SWIG_From_ptrdiff_t(static_cast< ptrdiff_t >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Iterator___sub__(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs + 1; argv[0] = self; if (argc > 3) SWIG_fail; for (ii = 1; (ii < argc); ++ii) { argv[ii] = args[ii-1]; } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__Iterator, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_swig__Iterator, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_Iterator___sub____SWIG_1(nargs, args, self); } } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__Iterator, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_Iterator___sub____SWIG_0(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 3, "Iterator.__sub__", " swig::Iterator Iterator.__sub__(ptrdiff_t n)\n" " ptrdiff_t Iterator.__sub__(swig::Iterator const &x)\n"); return Qnil; } SWIGINTERN void free_swig_Iterator(void *self) { swig::Iterator *arg1 = (swig::Iterator *)self; delete arg1; } SWIGINTERN VALUE _wrap_checkVersion__SWIG_0(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; char *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","Prelude::checkVersion", 1, argv[0] )); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (char *)Prelude::checkVersion((char const *)arg1); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_FromCharPtr((const char *)result); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return vresult; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return Qnil; } SWIGINTERN VALUE _wrap_checkVersion__SWIG_1(int argc, VALUE *argv, VALUE self) { char *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (char *)Prelude::checkVersion(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_FromCharPtr((const char *)result); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_checkVersion(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[1]; int ii; argc = nargs; if (argc > 1) SWIG_fail; for (ii = 0; (ii < argc); ++ii) { argv[ii] = args[ii]; } if (argc == 0) { return _wrap_checkVersion__SWIG_1(nargs, args, self); } if (argc == 1) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_checkVersion__SWIG_0(nargs, args, self); } } fail: Ruby_Format_OverloadedError( argc, 1, "checkVersion", " char const checkVersion(char const *version)\n" " char const * checkVersion()\n"); return Qnil; } static swig_class SwigClassClientProfile; SWIGINTERN VALUE _wrap_new_ClientProfile__SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *result = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile(); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_ClientProfile__SWIG_1(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::ClientProfile *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","ClientProfile", 1, argv[0] )); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile((char const *)arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return self; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return Qnil; } SWIGINTERN VALUE _wrap_new_ClientProfile__SWIG_2(int argc, VALUE *argv, VALUE self) { prelude_client_profile_t *arg1 = (prelude_client_profile_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::ClientProfile *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_prelude_client_profile_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "prelude_client_profile_t *","ClientProfile", 1, argv[0] )); } arg1 = reinterpret_cast< prelude_client_profile_t * >(argp1); { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_ClientProfile_allocate(VALUE self) #else _wrap_ClientProfile_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__ClientProfile); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_ClientProfile__SWIG_3(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = 0 ; void *argp1 ; int res1 = 0 ; Prelude::ClientProfile *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__ClientProfile, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile const &","ClientProfile", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::ClientProfile const &","ClientProfile", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (Prelude::ClientProfile *)new Prelude::ClientProfile((Prelude::ClientProfile const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_ClientProfile(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[1]; int ii; argc = nargs; if (argc > 1) SWIG_fail; for (ii = 0; (ii < argc); ++ii) { argv[ii] = args[ii]; } if (argc == 0) { return _wrap_new_ClientProfile__SWIG_0(nargs, args, self); } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_prelude_client_profile_t, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_ClientProfile__SWIG_2(nargs, args, self); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__ClientProfile, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_ClientProfile__SWIG_3(nargs, args, self); } } if (argc == 1) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_ClientProfile__SWIG_1(nargs, args, self); } } fail: Ruby_Format_OverloadedError( argc, 1, "ClientProfile.new", " ClientProfile.new()\n" " ClientProfile.new(char const *profile)\n" " ClientProfile.new(prelude_client_profile_t *profile)\n" " ClientProfile.new(Prelude::ClientProfile const &p)\n"); return Qnil; } SWIGINTERN void free_Prelude_ClientProfile(void *self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *)self; delete arg1; } SWIGINTERN VALUE _wrap_ClientProfile_getUid(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getUid", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (int)(arg1)->getUid(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getGid(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getGid", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (int)(arg1)->getGid(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getName(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; char *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getName", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (char *)(arg1)->getName(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_FromCharPtr((const char *)result); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_setName(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","setName", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","setName", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); { try { result = (int)(arg1)->setName((char const *)arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return vresult; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getAnalyzerId(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; uint64_t result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getAnalyzerId", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (uint64_t)(arg1)->getAnalyzerId(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_unsigned_SS_long_SS_long(static_cast< unsigned long long >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_setAnalyzerId(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; uint64_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long long val2 ; int ecode2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","setAnalyzerId", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long_SS_long(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "uint64_t","setAnalyzerId", 2, argv[0] )); } arg2 = static_cast< uint64_t >(val2); { try { (arg1)->setAnalyzerId(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getConfigFilename(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getConfigFilename", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getConfigFilename(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getAnalyzeridFilename(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getAnalyzeridFilename", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getAnalyzeridFilename(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getTlsKeyFilename(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getTlsKeyFilename", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsKeyFilename(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getTlsServerCaCertFilename(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getTlsServerCaCertFilename", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsServerCaCertFilename(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getTlsServerKeyCertFilename(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getTlsServerKeyCertFilename", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsServerKeyCertFilename(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getTlsServerCrlFilename(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getTlsServerCrlFilename", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsServerCrlFilename(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getTlsClientKeyCertFilename(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getTlsClientKeyCertFilename", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsClientKeyCertFilename(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getTlsClientTrustedCertFilename(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getTlsClientTrustedCertFilename", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getTlsClientTrustedCertFilename(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getBackupDirname(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getBackupDirname", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getBackupDirname(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getProfileDirname(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getProfileDirname", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getProfileDirname(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_setPrefix(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","setPrefix", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","setPrefix", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); { try { (arg1)->setPrefix((char const *)arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_ClientProfile_getPrefix(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = (Prelude::ClientProfile *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ClientProfile, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile *","getPrefix", 1, self )); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); { try { result = (arg1)->getPrefix(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } static swig_class SwigClassConnection; SWIGINTERN void free_Prelude_Connection(void *self) { Prelude::Connection *arg1 = (Prelude::Connection *)self; delete arg1; } SWIGINTERN VALUE _wrap_new_Connection__SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::Connection *result = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (Prelude::Connection *)new Prelude::Connection(); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_Connection__SWIG_1(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::Connection *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","Connection", 1, argv[0] )); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::Connection *)new Prelude::Connection((char const *)arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return self; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return Qnil; } SWIGINTERN VALUE _wrap_new_Connection__SWIG_2(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = 0 ; void *argp1 ; int res1 = 0 ; Prelude::Connection *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__Connection, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection const &","Connection", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::Connection const &","Connection", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (Prelude::Connection *)new Prelude::Connection((Prelude::Connection const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_Connection__SWIG_3(int argc, VALUE *argv, VALUE self) { prelude_connection_t *arg1 = (prelude_connection_t *) 0 ; bool arg2 ; void *argp1 = 0 ; int res1 = 0 ; bool val2 ; int ecode2 = 0 ; Prelude::Connection *result = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_prelude_connection_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "prelude_connection_t *","Connection", 1, argv[0] )); } arg1 = reinterpret_cast< prelude_connection_t * >(argp1); ecode2 = SWIG_AsVal_bool(argv[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","Connection", 2, argv[1] )); } arg2 = static_cast< bool >(val2); { try { result = (Prelude::Connection *)new Prelude::Connection(arg1,arg2); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_Connection_allocate(VALUE self) #else _wrap_Connection_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__Connection); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_Connection__SWIG_4(int argc, VALUE *argv, VALUE self) { prelude_connection_t *arg1 = (prelude_connection_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::Connection *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_prelude_connection_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "prelude_connection_t *","Connection", 1, argv[0] )); } arg1 = reinterpret_cast< prelude_connection_t * >(argp1); { try { result = (Prelude::Connection *)new Prelude::Connection(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_Connection(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[2]; int ii; argc = nargs; if (argc > 2) SWIG_fail; for (ii = 0; (ii < argc); ++ii) { argv[ii] = args[ii]; } if (argc == 0) { return _wrap_new_Connection__SWIG_0(nargs, args, self); } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__Connection, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_Connection__SWIG_2(nargs, args, self); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_prelude_connection_t, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_Connection__SWIG_4(nargs, args, self); } } if (argc == 1) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_Connection__SWIG_1(nargs, args, self); } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_prelude_connection_t, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_bool(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_Connection__SWIG_3(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 2, "Connection.new", " Connection.new()\n" " Connection.new(char const *addr)\n" " Connection.new(Prelude::Connection const &con)\n" " Connection.new(prelude_connection_t *con, bool own_data)\n" " Connection.new(prelude_connection_t *con)\n"); return Qnil; } SWIGINTERN VALUE _wrap_Connection_getConnection(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; prelude_connection_t *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection const *","getConnection", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (prelude_connection_t *)((Prelude::Connection const *)arg1)->getConnection(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_prelude_connection_t, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_close(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection *","close", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { (arg1)->close(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_connect(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; Prelude::ClientProfile *arg2 = 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection *","connect", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__ClientProfile, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::ClientProfile &","connect", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::ClientProfile &","connect", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::ClientProfile * >(argp2); ecode3 = SWIG_AsVal_int(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","connect", 3, argv[1] )); } arg3 = static_cast< int >(val3); { try { (arg1)->connect(*arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_setState(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection *","setState", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","setState", 2, argv[0] )); } arg2 = static_cast< int >(val2); { try { (arg1)->setState(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_getState(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection const *","getState", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (int)((Prelude::Connection const *)arg1)->getState(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_setData(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection *","setData", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); res2 = SWIG_ConvertPtr(argv[0],SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "void *","setData", 2, argv[0] )); } { try { (arg1)->setData(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_getData(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection const *","getData", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (void *)((Prelude::Connection const *)arg1)->getData(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_getPermission(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection const *","getPermission", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (int)((Prelude::Connection const *)arg1)->getPermission(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_setPeerAnalyzerid(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; uint64_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long long val2 ; int ecode2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection *","setPeerAnalyzerid", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long_SS_long(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "uint64_t","setPeerAnalyzerid", 2, argv[0] )); } arg2 = static_cast< uint64_t >(val2); { try { (arg1)->setPeerAnalyzerid(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_getPeerAnalyzerid(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; uint64_t result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection const *","getPeerAnalyzerid", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (uint64_t)((Prelude::Connection const *)arg1)->getPeerAnalyzerid(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_unsigned_SS_long_SS_long(static_cast< unsigned long long >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_getLocalAddr(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; char *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection const *","getLocalAddr", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (char *)((Prelude::Connection const *)arg1)->getLocalAddr(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_FromCharPtr((const char *)result); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_getLocalPort(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection const *","getLocalPort", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (unsigned int)((Prelude::Connection const *)arg1)->getLocalPort(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_getPeerAddr(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; char *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection const *","getPeerAddr", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (char *)((Prelude::Connection const *)arg1)->getPeerAddr(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_FromCharPtr((const char *)result); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_getPeerPort(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection const *","getPeerPort", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (unsigned int)((Prelude::Connection const *)arg1)->getPeerPort(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_isAlive(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection const *","isAlive", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (bool)((Prelude::Connection const *)arg1)->isAlive(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_getFd(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection const *","getFd", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (int)((Prelude::Connection const *)arg1)->getFd(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Connection_recvIDMEF(int argc, VALUE *argv, VALUE self) { Prelude::Connection *arg1 = (Prelude::Connection *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEF result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Connection, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Connection *","recvIDMEF", 1, self )); } arg1 = reinterpret_cast< Prelude::Connection * >(argp1); { try { result = (arg1)->recvIDMEF(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj((new Prelude::IDMEF(static_cast< const Prelude::IDMEF& >(result))), SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } static swig_class SwigClassConnectionPool; SWIGINTERN void free_Prelude_ConnectionPool(void *self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *)self; delete arg1; } SWIGINTERN VALUE _wrap_new_ConnectionPool__SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *result = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool(); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_ConnectionPool__SWIG_1(int argc, VALUE *argv, VALUE self) { prelude_connection_pool_t *arg1 = (prelude_connection_pool_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::ConnectionPool *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_prelude_connection_pool_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "prelude_connection_pool_t *","ConnectionPool", 1, argv[0] )); } arg1 = reinterpret_cast< prelude_connection_pool_t * >(argp1); { try { result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_ConnectionPool__SWIG_2(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = 0 ; void *argp1 ; int res1 = 0 ; Prelude::ConnectionPool *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__ConnectionPool, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool const &","ConnectionPool", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::ConnectionPool const &","ConnectionPool", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool((Prelude::ConnectionPool const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_ConnectionPool_allocate(VALUE self) #else _wrap_ConnectionPool_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__ConnectionPool); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_ConnectionPool__SWIG_3(int argc, VALUE *argv, VALUE self) { Prelude::ClientProfile *arg1 = 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; Prelude::ConnectionPool *result = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__ClientProfile, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ClientProfile &","ConnectionPool", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::ClientProfile &","ConnectionPool", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::ClientProfile * >(argp1); ecode2 = SWIG_AsVal_int(argv[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","ConnectionPool", 2, argv[1] )); } arg2 = static_cast< int >(val2); { try { result = (Prelude::ConnectionPool *)new Prelude::ConnectionPool(*arg1,arg2); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_ConnectionPool(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[2]; int ii; argc = nargs; if (argc > 2) SWIG_fail; for (ii = 0; (ii < argc); ++ii) { argv[ii] = args[ii]; } if (argc == 0) { return _wrap_new_ConnectionPool__SWIG_0(nargs, args, self); } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_prelude_connection_pool_t, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_ConnectionPool__SWIG_1(nargs, args, self); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__ConnectionPool, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_ConnectionPool__SWIG_2(nargs, args, self); } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__ClientProfile, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_int(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_ConnectionPool__SWIG_3(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 2, "ConnectionPool.new", " ConnectionPool.new()\n" " ConnectionPool.new(prelude_connection_pool_t *pool)\n" " ConnectionPool.new(Prelude::ConnectionPool const &pool)\n" " ConnectionPool.new(Prelude::ClientProfile &cp, int permission)\n"); return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_init(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool *","init", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { (arg1)->init(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_setConnectionString(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool *","setConnectionString", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","setConnectionString", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); { try { (arg1)->setConnectionString((char const *)arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_getConnectionString(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; char *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool const *","getConnectionString", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { result = (char *)((Prelude::ConnectionPool const *)arg1)->getConnectionString(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_FromCharPtr((const char *)result); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_getConnectionList(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::vector< Prelude::Connection,std::allocator< Prelude::Connection > > result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool const *","getConnectionList", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { result = ((Prelude::ConnectionPool const *)arg1)->getConnectionList(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = swig::from(static_cast< std::vector< Prelude::Connection,std::allocator< Prelude::Connection > > >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_setFlags(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool *","setFlags", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","setFlags", 2, argv[0] )); } arg2 = static_cast< int >(val2); { try { (arg1)->setFlags(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_getFlags(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool const *","getFlags", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { result = (int)((Prelude::ConnectionPool const *)arg1)->getFlags(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_setData(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool *","setData", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); res2 = SWIG_ConvertPtr(argv[0],SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "void *","setData", 2, argv[0] )); } { try { (arg1)->setData(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_getData(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool const *","getData", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { try { result = (void *)((Prelude::ConnectionPool const *)arg1)->getData(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_addConnection(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool *","addConnection", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__Connection, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::Connection","addConnection", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::Connection","addConnection", 2, argv[0])); } else { arg2 = *(reinterpret_cast< Prelude::Connection * >(argp2)); } } { try { (arg1)->addConnection(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_delConnection(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool *","delConnection", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); { res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__Connection, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::Connection","delConnection", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::Connection","delConnection", 2, argv[0])); } else { arg2 = *(reinterpret_cast< Prelude::Connection * >(argp2)); } } { try { (arg1)->delConnection(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_setConnectionAlive(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool *","setConnectionAlive", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__Connection, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::Connection &","setConnectionAlive", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::Connection &","setConnectionAlive", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::Connection * >(argp2); { try { (arg1)->setConnectionAlive(*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_setConnectionDead(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; Prelude::Connection *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool *","setConnectionDead", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__Connection, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::Connection &","setConnectionDead", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::Connection &","setConnectionDead", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::Connection * >(argp2); { try { (arg1)->setConnectionDead(*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_ConnectionPool_setRequiredPermission(int argc, VALUE *argv, VALUE self) { Prelude::ConnectionPool *arg1 = (Prelude::ConnectionPool *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::ConnectionPool *","setRequiredPermission", 1, self )); } arg1 = reinterpret_cast< Prelude::ConnectionPool * >(argp1); ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","setRequiredPermission", 2, argv[0] )); } arg2 = static_cast< int >(val2); { try { (arg1)->setRequiredPermission(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } static swig_class SwigClassClient; SWIGINTERN void free_Prelude_Client(void *self) { Prelude::Client *arg1 = (Prelude::Client *)self; delete arg1; } SWIGINTERN VALUE _wrap_new_Client__SWIG_0(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::Client *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","Client", 1, argv[0] )); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::Client *)new Prelude::Client((char const *)arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return self; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return Qnil; } SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_Client_allocate(VALUE self) #else _wrap_Client_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__Client); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_Client__SWIG_1(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = 0 ; void *argp1 ; int res1 = 0 ; Prelude::Client *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__Client, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client const &","Client", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::Client const &","Client", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { result = (Prelude::Client *)new Prelude::Client((Prelude::Client const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_Client(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[1]; int ii; argc = nargs; if (argc > 1) SWIG_fail; for (ii = 0; (ii < argc); ++ii) { argv[ii] = args[ii]; } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__Client, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_Client__SWIG_1(nargs, args, self); } } if (argc == 1) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_Client__SWIG_0(nargs, args, self); } } fail: Ruby_Format_OverloadedError( argc, 1, "Client.new", " Client.new(char const *profile)\n" " Client.new(Prelude::Client const &client)\n"); return Qnil; } SWIGINTERN VALUE _wrap_Client_start(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client *","start", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { (arg1)->start(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_Client_init(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client *","init", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { (arg1)->init(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_Client_getClient(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; prelude_client_t *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client const *","getClient", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { result = (prelude_client_t *)((Prelude::Client const *)arg1)->getClient(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_prelude_client_t, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Client_sendIDMEF(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client *","sendIDMEF", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF const &","sendIDMEF", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF const &","sendIDMEF", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { (arg1)->sendIDMEF((Prelude::IDMEF const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_Client_recvIDMEF(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; int arg3 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client *","recvIDMEF", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","recvIDMEF", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","recvIDMEF", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); if (argc > 1) { ecode3 = SWIG_AsVal_int(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","recvIDMEF", 3, argv[1] )); } arg3 = static_cast< int >(val3); } { try { result = (int)(arg1)->recvIDMEF(*arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Client_getFlags(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client const *","getFlags", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { result = (int)((Prelude::Client const *)arg1)->getFlags(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Client_setFlags(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client *","setFlags", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","setFlags", 2, argv[0] )); } arg2 = static_cast< int >(val2); { try { (arg1)->setFlags(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_Client_getRequiredPermission(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client const *","getRequiredPermission", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { result = (int)((Prelude::Client const *)arg1)->getRequiredPermission(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Client_setRequiredPermission(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client *","setRequiredPermission", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","setRequiredPermission", 2, argv[0] )); } arg2 = static_cast< int >(val2); { try { (arg1)->setRequiredPermission(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_Client_getConfigFilename(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; char *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client const *","getConfigFilename", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { result = (char *)((Prelude::Client const *)arg1)->getConfigFilename(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_FromCharPtr((const char *)result); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Client_setConfigFilename(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client *","setConfigFilename", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","setConfigFilename", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); { try { (arg1)->setConfigFilename((char const *)arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_Client_getConnectionPool(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::ConnectionPool *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client *","getConnectionPool", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { try { result = (Prelude::ConnectionPool *) &(arg1)->getConnectionPool(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__ConnectionPool, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Client_setConnectionPool(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::ConnectionPool arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client *","setConnectionPool", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); { res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__ConnectionPool, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::ConnectionPool","setConnectionPool", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::ConnectionPool","setConnectionPool", 2, argv[0])); } else { arg2 = *(reinterpret_cast< Prelude::ConnectionPool * >(argp2)); } } { try { (arg1)->setConnectionPool(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } /* Document-method: Prelude::Client.<< call-seq: <<(idmef) -> Client Left shifting or appending operator. */ SWIGINTERN VALUE _wrap_Client___lshift__(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; Prelude::Client *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client *","operator <<", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","operator <<", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","operator <<", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = (Prelude::Client *) &(arg1)->operator <<(*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, 0 | 0 ); return vresult; fail: return Qnil; } /* Document-method: Prelude::Client.>> call-seq: >>(idmef) -> Client Right shifting operator or extracting operator. */ SWIGINTERN VALUE _wrap_Client___rshift__(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = (Prelude::Client *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; Prelude::Client *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__Client, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client *","operator >>", 1, self )); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","operator >>", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","operator >>", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = (Prelude::Client *) &(arg1)->operator >>(*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_Client_setRecvTimeout(int argc, VALUE *argv, VALUE self) { Prelude::Client *arg1 = 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; Prelude::Client *result = 0 ; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__Client, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::Client &","Prelude::Client::setRecvTimeout", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::Client &","Prelude::Client::setRecvTimeout", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::Client * >(argp1); ecode2 = SWIG_AsVal_int(argv[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","Prelude::Client::setRecvTimeout", 2, argv[1] )); } arg2 = static_cast< int >(val2); { try { result = (Prelude::Client *) &Prelude::Client::setRecvTimeout(*arg1,arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__Client, 0 | 0 ); return vresult; fail: return Qnil; } static swig_class SwigClassPreludeLog; SWIGINTERN VALUE _wrap_PreludeLog_setLevel(int argc, VALUE *argv, VALUE self) { int arg1 ; int val1 ; int ecode1 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } ecode1 = SWIG_AsVal_int(argv[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int","Prelude::PreludeLog::setLevel", 1, argv[0] )); } arg1 = static_cast< int >(val1); { try { Prelude::PreludeLog::setLevel(arg1); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_PreludeLog_setDebugLevel(int argc, VALUE *argv, VALUE self) { int arg1 ; int val1 ; int ecode1 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } ecode1 = SWIG_AsVal_int(argv[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int","Prelude::PreludeLog::setDebugLevel", 1, argv[0] )); } arg1 = static_cast< int >(val1); { try { Prelude::PreludeLog::setDebugLevel(arg1); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_PreludeLog_setFlags(int argc, VALUE *argv, VALUE self) { int arg1 ; int val1 ; int ecode1 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } ecode1 = SWIG_AsVal_int(argv[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int","Prelude::PreludeLog::setFlags", 1, argv[0] )); } arg1 = static_cast< int >(val1); { try { Prelude::PreludeLog::setFlags(arg1); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_PreludeLog_getFlags(int argc, VALUE *argv, VALUE self) { int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (int)Prelude::PreludeLog::getFlags(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_PreludeLog_setLogfile(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","Prelude::PreludeLog::setLogfile", 1, argv[0] )); } arg1 = reinterpret_cast< char * >(buf1); { try { Prelude::PreludeLog::setLogfile((char const *)arg1); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return Qnil; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return Qnil; } SWIGINTERN VALUE _wrap_PreludeLog_setCallback(int argc, VALUE *argv, VALUE self) { void (*arg1)(int,char const *) = (void (*)(int,char const *)) 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } { if ( ! SWIG_Ruby_isCallable(argv[0]) ) SWIG_exception_fail(SWIG_ValueError, "Argument is not a callable object"); __prelude_log_func = argv[0]; rb_global_variable(&argv[0]); arg1 = _cb_ruby_log; } { try { Prelude::PreludeLog::setCallback(arg1); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_PreludeLog_allocate(VALUE self) #else _wrap_PreludeLog_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__PreludeLog); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_PreludeLog(int argc, VALUE *argv, VALUE self) { Prelude::PreludeLog *result = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (Prelude::PreludeLog *)new Prelude::PreludeLog(); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN void free_Prelude_PreludeLog(void *self) { Prelude::PreludeLog *arg1 = (Prelude::PreludeLog *)self; delete arg1; } static swig_class SwigClassPreludeError; SWIGINTERN void free_Prelude_PreludeError(void *self) { Prelude::PreludeError *arg1 = (Prelude::PreludeError *)self; delete arg1; } SWIGINTERN VALUE _wrap_new_PreludeError__SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::PreludeError *result = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (Prelude::PreludeError *)new Prelude::PreludeError(); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_PreludeError__SWIG_1(int argc, VALUE *argv, VALUE self) { int arg1 ; int val1 ; int ecode1 = 0 ; Prelude::PreludeError *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } ecode1 = SWIG_AsVal_int(argv[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int","PreludeError", 1, argv[0] )); } arg1 = static_cast< int >(val1); { try { result = (Prelude::PreludeError *)new Prelude::PreludeError(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_PreludeError_allocate(VALUE self) #else _wrap_PreludeError_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__PreludeError); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_PreludeError__SWIG_2(int argc, VALUE *argv, VALUE self) { std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; Prelude::PreludeError *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(argv[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "std::string const &","PreludeError", 1, argv[0] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","PreludeError", 1, argv[0])); } arg1 = ptr; } { try { result = (Prelude::PreludeError *)new Prelude::PreludeError((std::string const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (SWIG_IsNewObj(res1)) delete arg1; return self; fail: if (SWIG_IsNewObj(res1)) delete arg1; return Qnil; } SWIGINTERN VALUE _wrap_new_PreludeError(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[1]; int ii; argc = nargs; if (argc > 1) SWIG_fail; for (ii = 0; (ii < argc); ++ii) { argv[ii] = args[ii]; } if (argc == 0) { return _wrap_new_PreludeError__SWIG_0(nargs, args, self); } if (argc == 1) { int _v; { int res = SWIG_AsVal_int(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_PreludeError__SWIG_1(nargs, args, self); } } if (argc == 1) { int _v; int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_PreludeError__SWIG_2(nargs, args, self); } } fail: Ruby_Format_OverloadedError( argc, 1, "PreludeError.new", " PreludeError.new()\n" " PreludeError.new(int error)\n" " PreludeError.new(std::string const &message)\n"); return Qnil; } SWIGINTERN VALUE _wrap_PreludeError_getCode(int argc, VALUE *argv, VALUE self) { Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__PreludeError, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::PreludeError const *","getCode", 1, self )); } arg1 = reinterpret_cast< Prelude::PreludeError * >(argp1); { try { result = (int)((Prelude::PreludeError const *)arg1)->getCode(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_PreludeError_what(int argc, VALUE *argv, VALUE self) { Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; void *argp1 = 0 ; int res1 = 0 ; char *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__PreludeError, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::PreludeError const *","what", 1, self )); } arg1 = reinterpret_cast< Prelude::PreludeError * >(argp1); { try { result = (char *)((Prelude::PreludeError const *)arg1)->what(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_FromCharPtr((const char *)result); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_PreludeError___str__(int argc, VALUE *argv, VALUE self) { Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; void *argp1 = 0 ; int res1 = 0 ; char *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__PreludeError, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::PreludeError const *","operator const char*", 1, self )); } arg1 = reinterpret_cast< Prelude::PreludeError * >(argp1); { try { result = (char *)((Prelude::PreludeError const *)arg1)->operator const char*(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_FromCharPtr((const char *)result); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_PreludeError___int__(int argc, VALUE *argv, VALUE self) { Prelude::PreludeError *arg1 = (Prelude::PreludeError *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__PreludeError, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::PreludeError const *","operator int", 1, self )); } arg1 = reinterpret_cast< Prelude::PreludeError * >(argp1); { try { result = (int)((Prelude::PreludeError const *)arg1)->operator int(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } static swig_class SwigClassClientEasy; SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_ClientEasy_allocate(VALUE self) #else _wrap_ClientEasy_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__ClientEasy); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_ClientEasy(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; int arg2 = (int) Prelude::Client::IDMEF_WRITE ; char *arg3 = (char *) "Unknown model" ; char *arg4 = (char *) "Unknown class" ; char *arg5 = (char *) "Unknown manufacturer" ; char *arg6 = (char *) "Unknown version" ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int val2 ; int ecode2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; int res6 ; char *buf6 = 0 ; int alloc6 = 0 ; Prelude::ClientEasy *result = 0 ; if ((argc < 1) || (argc > 6)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","ClientEasy", 1, argv[0] )); } arg1 = reinterpret_cast< char * >(buf1); if (argc > 1) { ecode2 = SWIG_AsVal_int(argv[1], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","ClientEasy", 2, argv[1] )); } arg2 = static_cast< int >(val2); } if (argc > 2) { res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","ClientEasy", 3, argv[2] )); } arg3 = reinterpret_cast< char * >(buf3); } if (argc > 3) { res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char const *","ClientEasy", 4, argv[3] )); } arg4 = reinterpret_cast< char * >(buf4); } if (argc > 4) { res5 = SWIG_AsCharPtrAndSize(argv[4], &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "char const *","ClientEasy", 5, argv[4] )); } arg5 = reinterpret_cast< char * >(buf5); } if (argc > 5) { res6 = SWIG_AsCharPtrAndSize(argv[5], &buf6, NULL, &alloc6); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), Ruby_Format_TypeError( "", "char const *","ClientEasy", 6, argv[5] )); } arg6 = reinterpret_cast< char * >(buf6); } { try { result = (Prelude::ClientEasy *)new Prelude::ClientEasy((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return self; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; if (alloc6 == SWIG_NEWOBJ) delete[] buf6; return Qnil; } SWIGINTERN void free_Prelude_ClientEasy(void *self) { Prelude::ClientEasy *arg1 = (Prelude::ClientEasy *)self; delete arg1; } static swig_class SwigClassIDMEFCriterion; SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_IDMEFCriterion_allocate(VALUE self) #else _wrap_IDMEFCriterion_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__IDMEFCriterion); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_IDMEFCriterion(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFCriterion *result = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (Prelude::IDMEFCriterion *)new Prelude::IDMEFCriterion(); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN void free_Prelude_IDMEFCriterion(void *self) { Prelude::IDMEFCriterion *arg1 = (Prelude::IDMEFCriterion *)self; delete arg1; } static swig_class SwigClassIDMEFCriteria; SWIGINTERN void free_Prelude_IDMEFCriteria(void *self) { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *)self; delete arg1; } SWIGINTERN VALUE _wrap_new_IDMEFCriteria__SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFCriteria *result = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria(); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFCriteria__SWIG_1(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFCriteria *arg1 = 0 ; void *argp1 ; int res1 = 0 ; Prelude::IDMEFCriteria *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__IDMEFCriteria, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFCriteria const &","IDMEFCriteria", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFCriteria const &","IDMEFCriteria", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria((Prelude::IDMEFCriteria const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFCriteria__SWIG_2(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::IDMEFCriteria *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","IDMEFCriteria", 1, argv[0] )); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria((char const *)arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return self; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFCriteria__SWIG_3(int argc, VALUE *argv, VALUE self) { std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; Prelude::IDMEFCriteria *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(argv[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "std::string const &","IDMEFCriteria", 1, argv[0] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","IDMEFCriteria", 1, argv[0])); } arg1 = ptr; } { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria((std::string const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (SWIG_IsNewObj(res1)) delete arg1; return self; fail: if (SWIG_IsNewObj(res1)) delete arg1; return Qnil; } SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_IDMEFCriteria_allocate(VALUE self) #else _wrap_IDMEFCriteria_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__IDMEFCriteria); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_IDMEFCriteria__SWIG_4(int argc, VALUE *argv, VALUE self) { idmef_criteria_t *arg1 = (idmef_criteria_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFCriteria *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_idmef_criteria_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "idmef_criteria_t *","IDMEFCriteria", 1, argv[0] )); } arg1 = reinterpret_cast< idmef_criteria_t * >(argp1); { try { result = (Prelude::IDMEFCriteria *)new Prelude::IDMEFCriteria(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFCriteria(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[1]; int ii; argc = nargs; if (argc > 1) SWIG_fail; for (ii = 0; (ii < argc); ++ii) { argv[ii] = args[ii]; } if (argc == 0) { return _wrap_new_IDMEFCriteria__SWIG_0(nargs, args, self); } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFCriteria__SWIG_1(nargs, args, self); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_idmef_criteria_t, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFCriteria__SWIG_4(nargs, args, self); } } if (argc == 1) { int _v; int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFCriteria__SWIG_3(nargs, args, self); } } if (argc == 1) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFCriteria__SWIG_2(nargs, args, self); } } fail: Ruby_Format_OverloadedError( argc, 1, "IDMEFCriteria.new", " IDMEFCriteria.new()\n" " IDMEFCriteria.new(Prelude::IDMEFCriteria const &criteria)\n" " IDMEFCriteria.new(char const *criteria)\n" " IDMEFCriteria.new(std::string const &criteria)\n" " IDMEFCriteria.new(idmef_criteria_t *criteria)\n"); return Qnil; } SWIGINTERN VALUE _wrap_IDMEFCriteria_match(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEF *arg2 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFCriteria const *","match", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF *","match", 2, argv[0] )); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = (int)((Prelude::IDMEFCriteria const *)arg1)->match(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFCriteria.clone call-seq: clone -> IDMEFCriteria Create a duplicate of the class. */ SWIGINTERN VALUE _wrap_IDMEFCriteria_clone(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFCriteria result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFCriteria const *","clone", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { result = ((Prelude::IDMEFCriteria const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj((new Prelude::IDMEFCriteria(static_cast< const Prelude::IDMEFCriteria& >(result))), SWIGTYPE_p_Prelude__IDMEFCriteria, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFCriteria_andCriteria(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEFCriteria *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFCriteria *","andCriteria", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFCriteria, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFCriteria const &","andCriteria", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFCriteria const &","andCriteria", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp2); { try { (arg1)->andCriteria((Prelude::IDMEFCriteria const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFCriteria_orCriteria(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; Prelude::IDMEFCriteria *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFCriteria *","orCriteria", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFCriteria, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFCriteria const &","orCriteria", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFCriteria const &","orCriteria", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp2); { try { (arg1)->orCriteria((Prelude::IDMEFCriteria const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFCriteria_toString(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFCriteria const *","toString", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { result = ((Prelude::IDMEFCriteria const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFCriteria___str__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFCriteria *arg1 = (Prelude::IDMEFCriteria *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFCriteria, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFCriteria const *","operator const std::string", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFCriteria * >(argp1); { try { result = ((Prelude::IDMEFCriteria const *)arg1)->operator const std::string(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } static swig_class SwigClassIDMEFValue; SWIGINTERN VALUE _wrap_IDMEFValue_getType(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFValue::IDMEFValueTypeEnum result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const *","getType", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)((Prelude::IDMEFValue const *)arg1)->getType(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFValue_isNull(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const *","isNull", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->isNull(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *result = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN void free_Prelude_IDMEFValue(void *self) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *)self; delete arg1; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_1(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","IDMEFValue", 1, argv[0] )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_2(int argc, VALUE *argv, VALUE self) { std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; Prelude::IDMEFValue *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } { std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *ptr = (std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *)0; res1 = swig::asptr(argv[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &","IDMEFValue", 1, argv[0] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &","IDMEFValue", 1, argv[0])); } arg1 = ptr; } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (SWIG_IsNewObj(res1)) delete arg1; return self; fail: if (SWIG_IsNewObj(res1)) delete arg1; return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_3(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *arg1 = 0 ; void *argp1 ; int res1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const &","IDMEFValue", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFValue const &","IDMEFValue", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((Prelude::IDMEFValue const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_4(int argc, VALUE *argv, VALUE self) { std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; Prelude::IDMEFValue *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } { std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0; res1 = swig::asptr(argv[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &","IDMEFValue", 1, argv[0] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &","IDMEFValue", 1, argv[0])); } arg1 = ptr; } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (SWIG_IsNewObj(res1)) delete arg1; return self; fail: if (SWIG_IsNewObj(res1)) delete arg1; return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_5(int argc, VALUE *argv, VALUE self) { idmef_value_t *arg1 = (idmef_value_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_idmef_value_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "idmef_value_t *","IDMEFValue", 1, argv[0] )); } arg1 = reinterpret_cast< idmef_value_t * >(argp1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_6(int argc, VALUE *argv, VALUE self) { std::string *arg1 = 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; int res1 = SWIG_OLDOBJ ; void *argp2 = 0 ; int res2 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(argv[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "std::string const &","IDMEFValue", 1, argv[0] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","IDMEFValue", 1, argv[0])); } arg1 = ptr; } res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFPath *","IDMEFValue", 2, argv[1] )); } arg2 = reinterpret_cast< Prelude::IDMEFPath * >(argp2); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::string const &)*arg1,arg2); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (SWIG_IsNewObj(res1)) delete arg1; return self; fail: if (SWIG_IsNewObj(res1)) delete arg1; return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_7(int argc, VALUE *argv, VALUE self) { std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; Prelude::IDMEFValue *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(argv[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "std::string const &","IDMEFValue", 1, argv[0] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","IDMEFValue", 1, argv[0])); } arg1 = ptr; } { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((std::string const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (SWIG_IsNewObj(res1)) delete arg1; return self; fail: if (SWIG_IsNewObj(res1)) delete arg1; return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_8(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","IDMEFValue", 1, argv[0] )); } arg1 = reinterpret_cast< char * >(buf1); res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFPath *","IDMEFValue", 2, argv[1] )); } arg2 = reinterpret_cast< Prelude::IDMEFPath * >(argp2); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue((char const *)arg1,arg2); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return self; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_9(int argc, VALUE *argv, VALUE self) { int32_t arg1 ; int val1 ; int ecode1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } ecode1 = SWIG_AsVal_int(argv[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int32_t","IDMEFValue", 1, argv[0] )); } arg1 = static_cast< int32_t >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_10(int argc, VALUE *argv, VALUE self) { int64_t arg1 ; long long val1 ; int ecode1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } ecode1 = SWIG_AsVal_long_SS_long(argv[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int64_t","IDMEFValue", 1, argv[0] )); } arg1 = static_cast< int64_t >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_11(int argc, VALUE *argv, VALUE self) { uint64_t arg1 ; unsigned long long val1 ; int ecode1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } ecode1 = SWIG_AsVal_unsigned_SS_long_SS_long(argv[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "uint64_t","IDMEFValue", 1, argv[0] )); } arg1 = static_cast< uint64_t >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_12(int argc, VALUE *argv, VALUE self) { float arg1 ; float val1 ; int ecode1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } ecode1 = SWIG_AsVal_float(argv[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "float","IDMEFValue", 1, argv[0] )); } arg1 = static_cast< float >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_13(int argc, VALUE *argv, VALUE self) { double arg1 ; double val1 ; int ecode1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } ecode1 = SWIG_AsVal_double(argv[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "double","IDMEFValue", 1, argv[0] )); } arg1 = static_cast< double >(val1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_IDMEFValue_allocate(VALUE self) #else _wrap_IDMEFValue_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__IDMEFValue); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_IDMEFValue__SWIG_14(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFValue *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime &","IDMEFValue", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFTime &","IDMEFValue", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (Prelude::IDMEFValue *)new Prelude::IDMEFValue(*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFValue(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[2]; int ii; argc = nargs; if (argc > 2) SWIG_fail; for (ii = 0; (ii < argc); ++ii) { argv[ii] = args[ii]; } if (argc == 0) { return _wrap_new_IDMEFValue__SWIG_0(nargs, args, self); } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFValue__SWIG_1(nargs, args, self); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFValue, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFValue__SWIG_3(nargs, args, self); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_idmef_value_t, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFValue__SWIG_5(nargs, args, self); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFValue__SWIG_14(nargs, args, self); } } if (argc == 1) { int _v; { int res = SWIG_AsVal_int(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_IDMEFValue__SWIG_9(nargs, args, self); } } if (argc == 1) { int _v; { int res = SWIG_AsVal_unsigned_SS_long_SS_long(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_IDMEFValue__SWIG_11(nargs, args, self); } } if (argc == 1) { int _v; { int res = SWIG_AsVal_long_SS_long(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_IDMEFValue__SWIG_10(nargs, args, self); } } if (argc == 1) { int _v; { int res = SWIG_AsVal_float(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_IDMEFValue__SWIG_12(nargs, args, self); } } if (argc == 1) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_IDMEFValue__SWIG_13(nargs, args, self); } } if (argc == 1) { int _v; int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFValue__SWIG_7(nargs, args, self); } } if (argc == 1) { int _v; int res = swig::asptr(argv[0], (std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > >**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFValue__SWIG_2(nargs, args, self); } } if (argc == 1) { int _v; int res = swig::asptr(argv[0], (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > >**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFValue__SWIG_4(nargs, args, self); } } if (argc == 2) { int _v; int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFValue__SWIG_6(nargs, args, self); } } } if (argc == 2) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFValue__SWIG_8(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 2, "IDMEFValue.new", " IDMEFValue.new()\n" " IDMEFValue.new(Prelude::IDMEF *idmef)\n" " IDMEFValue.new(std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &value)\n" " IDMEFValue.new(Prelude::IDMEFValue const &value)\n" " IDMEFValue.new(std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &value)\n" " IDMEFValue.new(idmef_value_t *value)\n" " IDMEFValue.new(std::string const &value, Prelude::IDMEFPath *path)\n" " IDMEFValue.new(std::string const &value)\n" " IDMEFValue.new(char const *value, Prelude::IDMEFPath *path)\n" " IDMEFValue.new(int32_t value)\n" " IDMEFValue.new(int64_t value)\n" " IDMEFValue.new(uint64_t value)\n" " IDMEFValue.new(float value)\n" " IDMEFValue.new(double value)\n" " IDMEFValue.new(Prelude::IDMEFTime &time)\n"); return Qnil; } SWIGINTERN VALUE _wrap_IDMEFValue_match(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const *","match", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const &","match", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFValue const &","match", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); ecode3 = SWIG_AsVal_int(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","match", 3, argv[1] )); } arg3 = static_cast< int >(val3); { try { result = (int)((Prelude::IDMEFValue const *)arg1)->match((Prelude::IDMEFValue const &)*arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFValue.clone call-seq: clone -> IDMEFValue Create a duplicate of the class. */ SWIGINTERN VALUE _wrap_IDMEFValue_clone(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFValue result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const *","clone", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = ((Prelude::IDMEFValue const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { int ret; if ( (&result)->isNull() ) vresult = Qnil; else { ret = IDMEFValue_to_SWIG(self, result, NULL, &vresult); if ( ret < 0 ) { std::stringstream s; s << "IDMEFValue typemap does not handle value of type '" << idmef_value_type_to_string((idmef_value_type_id_t) (&result)->getType()) << "'"; SWIG_exception_fail(SWIG_ValueError, s.str().c_str()); } } } return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFValue_toString(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const *","toString", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { try { result = ((Prelude::IDMEFValue const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFValue.== call-seq: ==(vlist) -> bool ==(value) -> bool Equality comparison operator. */ SWIGINTERN VALUE _wrap_IDMEFValue___eq____SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 = SWIG_OLDOBJ ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const *","operator ==", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); { std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0; res2 = swig::asptr(argv[0], &ptr); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &","operator ==", 2, argv[0] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &","operator ==", 2, argv[0])); } arg2 = ptr; } { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator ==((std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); if (SWIG_IsNewObj(res2)) delete arg2; return vresult; fail: if (SWIG_IsNewObj(res2)) delete arg2; return Qnil; } /* Document-method: Prelude::IDMEFValue.<= call-seq: <=(value) -> bool Lower or equal comparison operator. */ SWIGINTERN VALUE _wrap_IDMEFValue___le__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const *","operator <=", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const &","operator <=", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFValue const &","operator <=", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator <=((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFValue.>= call-seq: >=(value) -> bool Higher or equal comparison operator. */ SWIGINTERN VALUE _wrap_IDMEFValue___ge__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const *","operator >=", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const &","operator >=", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFValue const &","operator >=", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator >=((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFValue.< call-seq: <(value) -> bool Lower than comparison operator. */ SWIGINTERN VALUE _wrap_IDMEFValue___lt__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const *","operator <", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const &","operator <", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFValue const &","operator <", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator <((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFValue.> call-seq: >(value) -> bool Higher than comparison operator. */ SWIGINTERN VALUE _wrap_IDMEFValue___gt__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const *","operator >", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const &","operator >", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFValue const &","operator >", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator >((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFValue.== call-seq: ==(vlist) -> bool ==(value) -> bool Equality comparison operator. */ SWIGINTERN VALUE _wrap_IDMEFValue___eq____SWIG_1(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFValue *arg1 = (Prelude::IDMEFValue *) 0 ; Prelude::IDMEFValue *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const *","operator ==", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFValue * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFValue, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFValue const &","operator ==", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFValue const &","operator ==", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFValue * >(argp2); { try { result = (bool)((Prelude::IDMEFValue const *)arg1)->operator ==((Prelude::IDMEFValue const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFValue___eq__(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs + 1; argv[0] = self; if (argc > 3) SWIG_fail; for (ii = 1; (ii < argc); ++ii) { argv[ii] = args[ii-1]; } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFValue, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEFValue, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFValue___eq____SWIG_1(nargs, args, self); } } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFValue, 0); _v = SWIG_CheckState(res); if (_v) { int res = swig::asptr(argv[1], (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > >**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFValue___eq____SWIG_0(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 3, "IDMEFValue.__eq__", " bool IDMEFValue.__eq__(std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &vlist)\n" " bool IDMEFValue.__eq__(Prelude::IDMEFValue const &value)\n"); return Qnil; } static swig_class SwigClassIDMEFPath; SWIGINTERN VALUE _wrap_new_IDMEFPath__SWIG_0(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::IDMEFPath *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","IDMEFPath", 1, argv[0] )); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath((char const *)arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return self; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFPath__SWIG_1(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; Prelude::IDMEFPath *result = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF &","IDMEFPath", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","IDMEFPath", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","IDMEFPath", 2, argv[1] )); } arg2 = reinterpret_cast< char * >(buf2); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath(*arg1,(char const *)arg2); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return self; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFPath__SWIG_2(int argc, VALUE *argv, VALUE self) { idmef_path_t *arg1 = (idmef_path_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFPath *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_idmef_path_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "idmef_path_t *","IDMEFPath", 1, argv[0] )); } arg1 = reinterpret_cast< idmef_path_t * >(argp1); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_IDMEFPath_allocate(VALUE self) #else _wrap_IDMEFPath_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__IDMEFPath); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_IDMEFPath__SWIG_3(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = 0 ; void *argp1 ; int res1 = 0 ; Prelude::IDMEFPath *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__IDMEFPath, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const &","IDMEFPath", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFPath const &","IDMEFPath", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (Prelude::IDMEFPath *)new Prelude::IDMEFPath((Prelude::IDMEFPath const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFPath(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[2]; int ii; argc = nargs; if (argc > 2) SWIG_fail; for (ii = 0; (ii < argc); ++ii) { argv[ii] = args[ii]; } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_idmef_path_t, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFPath__SWIG_2(nargs, args, self); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFPath__SWIG_3(nargs, args, self); } } if (argc == 1) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFPath__SWIG_0(nargs, args, self); } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFPath__SWIG_1(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 2, "IDMEFPath.new", " IDMEFPath.new(char const *buffer)\n" " IDMEFPath.new(Prelude::IDMEF &idmef, char const *buffer)\n" " IDMEFPath.new(idmef_path_t *path)\n" " IDMEFPath.new(Prelude::IDMEFPath const &path)\n"); return Qnil; } SWIGINTERN void free_Prelude_IDMEFPath(void *self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *)self; delete arg1; } SWIGINTERN VALUE _wrap_IDMEFPath_set__SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int res3 = SWIG_OLDOBJ ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","set", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","set", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *ptr = (std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *)0; res3 = swig::asptr(argv[1], &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &","set", 3, argv[1] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &","set", 3, argv[1])); } arg3 = ptr; } { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,(std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &)*arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (SWIG_IsNewObj(res3)) delete arg3; return Qnil; fail: if (SWIG_IsNewObj(res3)) delete arg3; return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_set__SWIG_1(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEF *arg3 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","set", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","set", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); res3 = SWIG_ConvertPtr(argv[1], &argp3,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 3, argv[1] )); } arg3 = reinterpret_cast< Prelude::IDMEF * >(argp3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_set__SWIG_2(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int res3 = SWIG_OLDOBJ ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","set", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","set", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0; res3 = swig::asptr(argv[1], &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &","set", 3, argv[1] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &","set", 3, argv[1])); } arg3 = ptr; } { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,(std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &)*arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (SWIG_IsNewObj(res3)) delete arg3; return Qnil; fail: if (SWIG_IsNewObj(res3)) delete arg3; return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_set__SWIG_3(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEFValue *arg3 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","set", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","set", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); res3 = SWIG_ConvertPtr(argv[1], &argp3,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "Prelude::IDMEFValue *","set", 3, argv[1] )); } arg3 = reinterpret_cast< Prelude::IDMEFValue * >(argp3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_set__SWIG_4(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; Prelude::IDMEFTime *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","set", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","set", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); res3 = SWIG_ConvertPtr(argv[1], &argp3, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "Prelude::IDMEFTime &","set", 3, argv[1] )); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFTime &","set", 3, argv[1])); } arg3 = reinterpret_cast< Prelude::IDMEFTime * >(argp3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,*arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_set__SWIG_5(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; std::string *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int res3 = SWIG_OLDOBJ ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","set", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","set", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { std::string *ptr = (std::string *)0; res3 = SWIG_AsPtr_std_string(argv[1], &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "std::string const &","set", 3, argv[1] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","set", 3, argv[1])); } arg3 = ptr; } { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,(std::string const &)*arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (SWIG_IsNewObj(res3)) delete arg3; return Qnil; fail: if (SWIG_IsNewObj(res3)) delete arg3; return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_set__SWIG_6(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; int32_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","set", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","set", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_int(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int32_t","set", 3, argv[1] )); } arg3 = static_cast< int32_t >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_set__SWIG_7(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; int64_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; long long val3 ; int ecode3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","set", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","set", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_long_SS_long(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int64_t","set", 3, argv[1] )); } arg3 = static_cast< int64_t >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_set__SWIG_8(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; uint64_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; unsigned long long val3 ; int ecode3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","set", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","set", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_unsigned_SS_long_SS_long(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "uint64_t","set", 3, argv[1] )); } arg3 = static_cast< uint64_t >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_set__SWIG_9(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; float arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; float val3 ; int ecode3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","set", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","set", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_float(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "float","set", 3, argv[1] )); } arg3 = static_cast< float >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_set__SWIG_10(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; double val3 ; int ecode3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","set", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","set", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); ecode3 = SWIG_AsVal_double(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","set", 3, argv[1] )); } arg3 = static_cast< double >(val3); { try { ((Prelude::IDMEFPath const *)arg1)->set(*arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_set(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[4]; int ii; argc = nargs + 1; argv[0] = self; if (argc > 4) SWIG_fail; for (ii = 1; (ii < argc); ++ii) { argv[ii] = args[ii-1]; } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFPath_set__SWIG_1(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Prelude__IDMEFValue, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFPath_set__SWIG_3(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFPath_set__SWIG_4(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_int(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IDMEFPath_set__SWIG_6(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_unsigned_SS_long_SS_long(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IDMEFPath_set__SWIG_8(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_long_SS_long(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IDMEFPath_set__SWIG_7(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_float(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IDMEFPath_set__SWIG_9(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_double(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IDMEFPath_set__SWIG_10(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsPtr_std_string(argv[2], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFPath_set__SWIG_5(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { int res = swig::asptr(argv[2], (std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > >**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFPath_set__SWIG_0(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { int res = swig::asptr(argv[2], (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > >**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFPath_set__SWIG_2(nargs, args, self); } } } } fail: Ruby_Format_OverloadedError( argc, 4, "IDMEFPath.set", " void IDMEFPath.set(Prelude::IDMEF &message, std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &value)\n" " void IDMEFPath.set(Prelude::IDMEF &message, Prelude::IDMEF *value)\n" " void IDMEFPath.set(Prelude::IDMEF &message, std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &value)\n" " void IDMEFPath.set(Prelude::IDMEF &message, Prelude::IDMEFValue *value)\n" " void IDMEFPath.set(Prelude::IDMEF &message, Prelude::IDMEFTime &time)\n" " void IDMEFPath.set(Prelude::IDMEF &message, std::string const &value)\n" " void IDMEFPath.set(Prelude::IDMEF &message, int32_t value)\n" " void IDMEFPath.set(Prelude::IDMEF &message, int64_t value)\n" " void IDMEFPath.set(Prelude::IDMEF &message, uint64_t value)\n" " void IDMEFPath.set(Prelude::IDMEF &message, float value)\n" " void IDMEFPath.set(Prelude::IDMEF &message, double value)\n"); return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_getClass(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; Prelude::IDMEFClass result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","getClass", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); if (argc > 0) { ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","getClass", 2, argv[0] )); } arg2 = static_cast< int >(val2); } { try { result = ((Prelude::IDMEFPath const *)arg1)->getClass(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj((new Prelude::IDMEFClass(static_cast< const Prelude::IDMEFClass& >(result))), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_getValueType(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; Prelude::IDMEFValue::IDMEFValueTypeEnum result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","getValueType", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); if (argc > 0) { ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","getValueType", 2, argv[0] )); } arg2 = static_cast< int >(val2); } { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)((Prelude::IDMEFPath const *)arg1)->getValueType(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_setIndex(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; unsigned int arg2 ; int arg3 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath *","setIndex", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned int","setIndex", 2, argv[0] )); } arg2 = static_cast< unsigned int >(val2); if (argc > 1) { ecode3 = SWIG_AsVal_int(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","setIndex", 3, argv[1] )); } arg3 = static_cast< int >(val3); } { try { result = (int)(arg1)->setIndex(arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_undefineIndex(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath *","undefineIndex", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); if (argc > 0) { ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","undefineIndex", 2, argv[0] )); } arg2 = static_cast< int >(val2); } { try { result = (int)(arg1)->undefineIndex(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_getIndex(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","getIndex", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); if (argc > 0) { ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","getIndex", 2, argv[0] )); } arg2 = static_cast< int >(val2); } { try { result = (int)((Prelude::IDMEFPath const *)arg1)->getIndex(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_makeChild(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; char *arg2 = (char *) 0 ; unsigned int arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; unsigned int val3 ; int ecode3 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath *","makeChild", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","makeChild", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_unsigned_SS_int(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "unsigned int","makeChild", 3, argv[1] )); } arg3 = static_cast< unsigned int >(val3); { try { result = (int)(arg1)->makeChild((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return vresult; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_makeParent(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath *","makeParent", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (int)(arg1)->makeParent(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_compare(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEFPath *arg2 = (Prelude::IDMEFPath *) 0 ; int arg3 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","compare", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFPath *","compare", 2, argv[0] )); } arg2 = reinterpret_cast< Prelude::IDMEFPath * >(argp2); if (argc > 1) { ecode3 = SWIG_AsVal_int(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","compare", 3, argv[1] )); } arg3 = static_cast< int >(val3); } { try { result = (int)((Prelude::IDMEFPath const *)arg1)->compare(arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFPath.clone call-seq: clone -> IDMEFPath Create a duplicate of the class. */ SWIGINTERN VALUE _wrap_IDMEFPath_clone(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; SwigValueWrapper< Prelude::IDMEFPath > result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","clone", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = ((Prelude::IDMEFPath const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj((new Prelude::IDMEFPath(static_cast< const Prelude::IDMEFPath& >(result))), SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_checkOperator(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; idmef_criterion_operator_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","checkOperator", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_idmef_criterion_operator_t, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "idmef_criterion_operator_t","checkOperator", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "idmef_criterion_operator_t","checkOperator", 2, argv[0])); } else { arg2 = *(reinterpret_cast< idmef_criterion_operator_t * >(argp2)); } } { try { result = (int)((Prelude::IDMEFPath const *)arg1)->checkOperator(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_getApplicableOperators(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; idmef_criterion_operator_t result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","getApplicableOperators", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = ((Prelude::IDMEFPath const *)arg1)->getApplicableOperators(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj((new idmef_criterion_operator_t(static_cast< const idmef_criterion_operator_t& >(result))), SWIGTYPE_p_idmef_criterion_operator_t, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_getName(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; char *result = 0 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","getName", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); if (argc > 0) { ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","getName", 2, argv[0] )); } arg2 = static_cast< int >(val2); } { try { result = (char *)((Prelude::IDMEFPath const *)arg1)->getName(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_FromCharPtr((const char *)result); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_isAmbiguous(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","isAmbiguous", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (bool)((Prelude::IDMEFPath const *)arg1)->isAmbiguous(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_hasLists(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","hasLists", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (int)((Prelude::IDMEFPath const *)arg1)->hasLists(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_isList(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; int arg2 = (int) -1 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","isList", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); if (argc > 0) { ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","isList", 2, argv[0] )); } arg2 = static_cast< int >(val2); } { try { result = (bool)((Prelude::IDMEFPath const *)arg1)->isList(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_getDepth(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const *","getDepth", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (unsigned int)((Prelude::IDMEFPath const *)arg1)->getDepth(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFPath_get(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = (Prelude::IDMEFPath *) 0 ; Prelude::IDMEF *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; Prelude::IDMEFValue result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFPath, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath *","get", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF &","get", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF &","get", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = Prelude_IDMEFPath_get(arg1,*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { int ret; if ( (&result)->isNull() ) vresult = Qnil; else { ret = IDMEFValue_to_SWIG(self, result, NULL, &vresult); if ( ret < 0 ) { std::stringstream s; s << "IDMEFValue typemap does not handle value of type '" << idmef_value_type_to_string((idmef_value_type_id_t) (&result)->getType()) << "'"; SWIG_exception_fail(SWIG_ValueError, s.str().c_str()); } } } return vresult; fail: return Qnil; } static swig_class SwigClassIDMEFTime; SWIGINTERN VALUE _wrap_new_IDMEFTime__SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *result = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime(); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFTime__SWIG_1(int argc, VALUE *argv, VALUE self) { idmef_time_t *arg1 = (idmef_time_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFTime *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_idmef_time_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "idmef_time_t *","IDMEFTime", 1, argv[0] )); } arg1 = reinterpret_cast< idmef_time_t * >(argp1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFTime__SWIG_2(int argc, VALUE *argv, VALUE self) { time_t arg1 ; long long val1 ; int ecode1 = 0 ; Prelude::IDMEFTime *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } ecode1 = SWIG_AsVal_long_SS_long(argv[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "time_t","IDMEFTime", 1, argv[0] )); } arg1 = static_cast< time_t >(val1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFTime__SWIG_3(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::IDMEFTime *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","IDMEFTime", 1, argv[0] )); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime((char const *)arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return self; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFTime__SWIG_4(int argc, VALUE *argv, VALUE self) { timeval *arg1 = (timeval *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFTime *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_timeval, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "timeval const *","IDMEFTime", 1, argv[0] )); } arg1 = reinterpret_cast< timeval * >(argp1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime((timeval const *)arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_IDMEFTime_allocate(VALUE self) #else _wrap_IDMEFTime_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__IDMEFTime); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_IDMEFTime__SWIG_5(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = 0 ; void *argp1 ; int res1 = 0 ; Prelude::IDMEFTime *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const &","IDMEFTime", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFTime const &","IDMEFTime", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (Prelude::IDMEFTime *)new Prelude::IDMEFTime((Prelude::IDMEFTime const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFTime(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[1]; int ii; argc = nargs; if (argc > 1) SWIG_fail; for (ii = 0; (ii < argc); ++ii) { argv[ii] = args[ii]; } if (argc == 0) { return _wrap_new_IDMEFTime__SWIG_0(nargs, args, self); } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_idmef_time_t, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFTime__SWIG_1(nargs, args, self); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_timeval, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFTime__SWIG_4(nargs, args, self); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFTime__SWIG_5(nargs, args, self); } } if (argc == 1) { int _v; { int res = SWIG_AsVal_long_SS_long(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_IDMEFTime__SWIG_2(nargs, args, self); } } if (argc == 1) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFTime__SWIG_3(nargs, args, self); } } fail: Ruby_Format_OverloadedError( argc, 1, "IDMEFTime.new", " IDMEFTime.new()\n" " IDMEFTime.new(idmef_time_t *time)\n" " IDMEFTime.new(time_t const time)\n" " IDMEFTime.new(char const *string)\n" " IDMEFTime.new(timeval const *tv)\n" " IDMEFTime.new(Prelude::IDMEFTime const &value)\n"); return Qnil; } SWIGINTERN void free_Prelude_IDMEFTime(void *self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *)self; delete arg1; } SWIGINTERN VALUE _wrap_IDMEFTime_set__SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { (arg1)->set(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime_set__SWIG_1(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; time_t *arg2 = (time_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_long_long, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "time_t const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< time_t * >(argp2); { try { (arg1)->set((time_t const *)arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime_set__SWIG_2(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); { try { (arg1)->set((char const *)arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime_set__SWIG_3(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; timeval *arg2 = (timeval *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_timeval, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "timeval const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< timeval * >(argp2); { try { (arg1)->set((timeval const *)arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime_set(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs + 1; argv[0] = self; if (argc > 3) SWIG_fail; for (ii = 1; (ii < argc); ++ii) { argv[ii] = args[ii-1]; } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFTime, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFTime_set__SWIG_0(nargs, args, self); } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFTime, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_long_long, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFTime_set__SWIG_1(nargs, args, self); } } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFTime, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_timeval, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFTime_set__SWIG_3(nargs, args, self); } } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFTime, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFTime_set__SWIG_2(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 3, "IDMEFTime.set", " void IDMEFTime.set()\n" " void IDMEFTime.set(time_t const *time)\n" " void IDMEFTime.set(char const *string)\n" " void IDMEFTime.set(timeval const *tv)\n"); return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime_setSec(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; uint32_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime *","setSec", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "uint32_t","setSec", 2, argv[0] )); } arg2 = static_cast< uint32_t >(val2); { try { (arg1)->setSec(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime_setUSec(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; uint32_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime *","setUSec", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "uint32_t","setUSec", 2, argv[0] )); } arg2 = static_cast< uint32_t >(val2); { try { (arg1)->setUSec(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime_setGmtOffset(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; int32_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime *","setGmtOffset", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int32_t","setGmtOffset", 2, argv[0] )); } arg2 = static_cast< int32_t >(val2); { try { (arg1)->setGmtOffset(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime_getSec(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; uint32_t result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","getSec", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (uint32_t)((Prelude::IDMEFTime const *)arg1)->getSec(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime_getUSec(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; uint32_t result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","getUSec", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (uint32_t)((Prelude::IDMEFTime const *)arg1)->getUSec(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime_getGmtOffset(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int32_t result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","getGmtOffset", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (int32_t)((Prelude::IDMEFTime const *)arg1)->getGmtOffset(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime_getTime(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; double result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","getTime", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (double)((Prelude::IDMEFTime const *)arg1)->getTime(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_double(static_cast< double >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFTime.clone call-seq: clone -> IDMEFTime Create a duplicate of the class. */ SWIGINTERN VALUE _wrap_IDMEFTime_clone(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFTime result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","clone", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = ((Prelude::IDMEFTime const *)arg1)->clone(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj((new Prelude::IDMEFTime(static_cast< const Prelude::IDMEFTime& >(result))), SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime_toString(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","toString", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = ((Prelude::IDMEFTime const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime___int__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","operator int", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (int)((Prelude::IDMEFTime const *)arg1)->operator int(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime___long__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; long result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","operator long", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (long)((Prelude::IDMEFTime const *)arg1)->operator long(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_long(static_cast< long >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime___float__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; double result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","operator double", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = (double)((Prelude::IDMEFTime const *)arg1)->operator double(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_double(static_cast< double >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFTime___str__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","operator const std::string", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); { try { result = ((Prelude::IDMEFTime const *)arg1)->operator const std::string(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFTime.>= call-seq: >=(time) -> bool Higher or equal comparison operator. */ SWIGINTERN VALUE _wrap_IDMEFTime___ge__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","operator >=", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const &","operator >=", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFTime const &","operator >=", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(argp2); { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator >=((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFTime.<= call-seq: <=(time) -> bool Lower or equal comparison operator. */ SWIGINTERN VALUE _wrap_IDMEFTime___le__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","operator <=", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const &","operator <=", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFTime const &","operator <=", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(argp2); { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator <=((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFTime.== call-seq: ==(time) -> bool Equality comparison operator. */ SWIGINTERN VALUE _wrap_IDMEFTime___eq__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","operator ==", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const &","operator ==", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFTime const &","operator ==", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(argp2); { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator ==((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFTime.> call-seq: >(time) -> bool Higher than comparison operator. */ SWIGINTERN VALUE _wrap_IDMEFTime___gt__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","operator >", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const &","operator >", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFTime const &","operator >", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(argp2); { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator >((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEFTime.< call-seq: <(time) -> bool Lower than comparison operator. */ SWIGINTERN VALUE _wrap_IDMEFTime___lt__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFTime *arg1 = (Prelude::IDMEFTime *) 0 ; Prelude::IDMEFTime *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFTime, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const *","operator <", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFTime * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEFTime const &","operator <", 2, argv[0] )); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFTime const &","operator <", 2, argv[0])); } arg2 = reinterpret_cast< Prelude::IDMEFTime * >(argp2); { try { result = (bool)((Prelude::IDMEFTime const *)arg1)->operator <((Prelude::IDMEFTime const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } static swig_class SwigClassIDMEFClass; SWIGINTERN VALUE _wrap_new_IDMEFClass__SWIG_0(int argc, VALUE *argv, VALUE self) { idmef_class_id_t arg1 ; int val1 ; int ecode1 = 0 ; Prelude::IDMEFClass *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } ecode1 = SWIG_AsVal_int(argv[0], &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "idmef_class_id_t","IDMEFClass", 1, argv[0] )); } arg1 = static_cast< idmef_class_id_t >(val1); { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFClass__SWIG_1(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *result = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass(); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFClass__SWIG_2(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFPath *arg1 = 0 ; void *argp1 ; int res1 = 0 ; Prelude::IDMEFClass *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__IDMEFPath, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFPath const &","IDMEFClass", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFPath const &","IDMEFClass", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::IDMEFPath * >(argp1); { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass((Prelude::IDMEFPath const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_IDMEFClass_allocate(VALUE self) #else _wrap_IDMEFClass_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__IDMEFClass); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_IDMEFClass__SWIG_3(int argc, VALUE *argv, VALUE self) { std::string *arg1 = 0 ; int res1 = SWIG_OLDOBJ ; Prelude::IDMEFClass *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } { std::string *ptr = (std::string *)0; res1 = SWIG_AsPtr_std_string(argv[0], &ptr); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "std::string const &","IDMEFClass", 1, argv[0] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","IDMEFClass", 1, argv[0])); } arg1 = ptr; } { try { result = (Prelude::IDMEFClass *)new Prelude::IDMEFClass((std::string const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (SWIG_IsNewObj(res1)) delete arg1; return self; fail: if (SWIG_IsNewObj(res1)) delete arg1; return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEFClass(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[1]; int ii; argc = nargs; if (argc > 1) SWIG_fail; for (ii = 0; (ii < argc); ++ii) { argv[ii] = args[ii]; } if (argc == 0) { return _wrap_new_IDMEFClass__SWIG_1(nargs, args, self); } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFPath, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFClass__SWIG_2(nargs, args, self); } } if (argc == 1) { int _v; { int res = SWIG_AsVal_int(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_IDMEFClass__SWIG_0(nargs, args, self); } } if (argc == 1) { int _v; int res = SWIG_AsPtr_std_string(argv[0], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEFClass__SWIG_3(nargs, args, self); } } fail: Ruby_Format_OverloadedError( argc, 1, "IDMEFClass.new", " IDMEFClass.new(idmef_class_id_t id)\n" " IDMEFClass.new()\n" " IDMEFClass.new(Prelude::IDMEFPath const &path)\n" " IDMEFClass.new(std::string const &path)\n"); return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_getDepth(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; size_t result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","getDepth", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getDepth(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_size_t(static_cast< size_t >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_get__SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; Prelude::IDMEFClass result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","get", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","get", 2, argv[0] )); } arg2 = static_cast< int >(val2); { try { result = (arg1)->get(arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj((new Prelude::IDMEFClass(static_cast< const Prelude::IDMEFClass& >(result))), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_get__SWIG_1(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; std::string *arg2 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 = SWIG_OLDOBJ ; Prelude::IDMEFClass result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","get", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { std::string *ptr = (std::string *)0; res2 = SWIG_AsPtr_std_string(argv[0], &ptr); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "std::string const &","get", 2, argv[0] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","get", 2, argv[0])); } arg2 = ptr; } { try { result = (arg1)->get((std::string const &)*arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj((new Prelude::IDMEFClass(static_cast< const Prelude::IDMEFClass& >(result))), SWIGTYPE_p_Prelude__IDMEFClass, SWIG_POINTER_OWN | 0 ); if (SWIG_IsNewObj(res2)) delete arg2; return vresult; fail: if (SWIG_IsNewObj(res2)) delete arg2; return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_get(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs + 1; argv[0] = self; if (argc > 3) SWIG_fail; for (ii = 1; (ii < argc); ++ii) { argv[ii] = args[ii-1]; } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFClass, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_int(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IDMEFClass_get__SWIG_0(nargs, args, self); } } } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEFClass, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEFClass_get__SWIG_1(nargs, args, self); } } } fail: Ruby_Format_OverloadedError( argc, 3, "IDMEFClass.get", " Prelude::IDMEFClass IDMEFClass.get(int child)\n" " Prelude::IDMEFClass IDMEFClass.get(std::string const &name)\n"); return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_getChildCount(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; size_t result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","getChildCount", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getChildCount(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_size_t(static_cast< size_t >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_isList(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","isList", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (bool)(arg1)->isList(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_isKeyedList(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; bool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","isKeyedList", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (bool)(arg1)->isKeyedList(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_bool(static_cast< bool >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_getName(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","getName", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getName(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_toString(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","toString", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->toString(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_getValueType(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFValue::IDMEFValueTypeEnum result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","getValueType", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (Prelude::IDMEFValue::IDMEFValueTypeEnum)(arg1)->getValueType(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_getAttributes(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::map< std::string,std::string,std::less< std::string >,std::allocator< std::pair< std::string const,std::string > > > result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","getAttributes", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getAttributes(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = swig::from(static_cast< std::map< std::string,std::string,std::less< std::string >,std::allocator< std::pair< std::string const,std::string > > > >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_getPath(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; int arg2 = (int) 0 ; int arg3 = (int) -1 ; std::string const &arg4_defvalue = "." ; std::string *arg4 = (std::string *) &arg4_defvalue ; std::string const &arg5_defvalue = "" ; std::string *arg5 = (std::string *) &arg5_defvalue ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; int res4 = SWIG_OLDOBJ ; int res5 = SWIG_OLDOBJ ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 4)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","getPath", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); if (argc > 0) { ecode2 = SWIG_AsVal_int(argv[0], &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","getPath", 2, argv[0] )); } arg2 = static_cast< int >(val2); } if (argc > 1) { ecode3 = SWIG_AsVal_int(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","getPath", 3, argv[1] )); } arg3 = static_cast< int >(val3); } if (argc > 2) { { std::string *ptr = (std::string *)0; res4 = SWIG_AsPtr_std_string(argv[2], &ptr); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "std::string const &","getPath", 4, argv[2] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","getPath", 4, argv[2])); } arg4 = ptr; } } if (argc > 3) { { std::string *ptr = (std::string *)0; res5 = SWIG_AsPtr_std_string(argv[3], &ptr); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "std::string const &","getPath", 5, argv[3] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","getPath", 5, argv[3])); } arg5 = ptr; } } { try { result = (arg1)->getPath(arg2,arg3,(std::string const &)*arg4,(std::string const &)*arg5); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); if (SWIG_IsNewObj(res4)) delete arg4; if (SWIG_IsNewObj(res5)) delete arg5; return vresult; fail: if (SWIG_IsNewObj(res4)) delete arg4; if (SWIG_IsNewObj(res5)) delete arg5; return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_getEnumValues(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::vector< std::string,std::allocator< std::string > > result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","getEnumValues", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (arg1)->getEnumValues(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = swig::from(static_cast< std::vector< std::string,std::allocator< std::string > > >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEFClass_getApplicableOperator(int argc, VALUE *argv, VALUE self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEFCriterion::IDMEFCriterionOperatorEnum result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEFClass, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEFClass *","getApplicableOperator", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEFClass * >(argp1); { try { result = (Prelude::IDMEFCriterion::IDMEFCriterionOperatorEnum)(arg1)->getApplicableOperator(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN void free_Prelude_IDMEFClass(void *self) { Prelude::IDMEFClass *arg1 = (Prelude::IDMEFClass *)self; delete arg1; } static swig_class SwigClassIDMEF; SWIGINTERN void free_Prelude_IDMEF(void *self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *)self; delete arg1; } SWIGINTERN VALUE _wrap_new_IDMEF__SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *result = 0 ; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } { try { result = (Prelude::IDMEF *)new Prelude::IDMEF(); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEF__SWIG_1(int argc, VALUE *argv, VALUE self) { char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; Prelude::IDMEF *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","IDMEF", 1, argv[0] )); } arg1 = reinterpret_cast< char * >(buf1); { try { result = (Prelude::IDMEF *)new Prelude::IDMEF((char const *)arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return self; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEF__SWIG_2(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = 0 ; void *argp1 ; int res1 = 0 ; Prelude::IDMEF *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_Prelude__IDMEF, 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF const &","IDMEF", 1, argv[0] )); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEF const &","IDMEF", 1, argv[0])); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (Prelude::IDMEF *)new Prelude::IDMEF((Prelude::IDMEF const &)*arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE #ifdef HAVE_RB_DEFINE_ALLOC_FUNC _wrap_IDMEF_allocate(VALUE self) #else _wrap_IDMEF_allocate(int argc, VALUE *argv, VALUE self) #endif { VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Prelude__IDMEF); #ifndef HAVE_RB_DEFINE_ALLOC_FUNC rb_obj_call_init(vresult, argc, argv); #endif return vresult; } SWIGINTERN VALUE _wrap_new_IDMEF__SWIG_3(int argc, VALUE *argv, VALUE self) { idmef_object_t *arg1 = (idmef_object_t *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEF *result = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_idmef_object_t, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "idmef_object_t *","IDMEF", 1, argv[0] )); } arg1 = reinterpret_cast< idmef_object_t * >(argp1); { try { result = (Prelude::IDMEF *)new Prelude::IDMEF(arg1); DATA_PTR(self) = result; } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return self; fail: return Qnil; } SWIGINTERN VALUE _wrap_new_IDMEF(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[1]; int ii; argc = nargs; if (argc > 1) SWIG_fail; for (ii = 0; (ii < argc); ++ii) { argv[ii] = args[ii]; } if (argc == 0) { return _wrap_new_IDMEF__SWIG_0(nargs, args, self); } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEF__SWIG_2(nargs, args, self); } } if (argc == 1) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_idmef_object_t, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEF__SWIG_3(nargs, args, self); } } if (argc == 1) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IDMEF__SWIG_1(nargs, args, self); } } fail: Ruby_Format_OverloadedError( argc, 1, "IDMEF.new", " IDMEF.new()\n" " IDMEF.new(char const *json)\n" " IDMEF.new(Prelude::IDMEF const &idmef)\n" " IDMEF.new(idmef_object_t *message)\n"); return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_set__SWIG_0(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 = SWIG_OLDOBJ ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); { std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *ptr = (std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > *)0; res3 = swig::asptr(argv[1], &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &","set", 3, argv[1] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &","set", 3, argv[1])); } arg3 = ptr; } { try { (arg1)->set((char const *)arg2,(std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &)*arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_set__SWIG_1(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEF *arg3 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_ConvertPtr(argv[1], &argp3,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 3, argv[1] )); } arg3 = reinterpret_cast< Prelude::IDMEF * >(argp3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_set__SWIG_2(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 = SWIG_OLDOBJ ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); { std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *ptr = (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > *)0; res3 = swig::asptr(argv[1], &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &","set", 3, argv[1] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &","set", 3, argv[1])); } arg3 = ptr; } { try { (arg1)->set((char const *)arg2,(std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &)*arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_set__SWIG_3(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; std::string *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 = SWIG_OLDOBJ ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); { std::string *ptr = (std::string *)0; res3 = SWIG_AsPtr_std_string(argv[1], &ptr); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "std::string const &","set", 3, argv[1] )); } if (!ptr) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","set", 3, argv[1])); } arg3 = ptr; } { try { (arg1)->set((char const *)arg2,(std::string const &)*arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (SWIG_IsNewObj(res3)) delete arg3; return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_set__SWIG_4(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEFValue *arg3 = (Prelude::IDMEFValue *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_ConvertPtr(argv[1], &argp3,SWIGTYPE_p_Prelude__IDMEFValue, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "Prelude::IDMEFValue *","set", 3, argv[1] )); } arg3 = reinterpret_cast< Prelude::IDMEFValue * >(argp3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_set__SWIG_5(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; Prelude::IDMEFTime *arg3 = 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_ConvertPtr(argv[1], &argp3, SWIGTYPE_p_Prelude__IDMEFTime, 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "Prelude::IDMEFTime &","set", 3, argv[1] )); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Prelude::IDMEFTime &","set", 3, argv[1])); } arg3 = reinterpret_cast< Prelude::IDMEFTime * >(argp3); { try { (arg1)->set((char const *)arg2,*arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_set__SWIG_6(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; int32_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int val3 ; int ecode3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_int(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int32_t","set", 3, argv[1] )); } arg3 = static_cast< int32_t >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_set__SWIG_7(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; int64_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; long long val3 ; int ecode3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_long_SS_long(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int64_t","set", 3, argv[1] )); } arg3 = static_cast< int64_t >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_set__SWIG_8(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; uint64_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; unsigned long long val3 ; int ecode3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_unsigned_SS_long_SS_long(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "uint64_t","set", 3, argv[1] )); } arg3 = static_cast< uint64_t >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_set__SWIG_9(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; float arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; float val3 ; int ecode3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_float(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "float","set", 3, argv[1] )); } arg3 = static_cast< float >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_set__SWIG_10(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; double val3 ; int ecode3 = 0 ; if ((argc < 2) || (argc > 2)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","set", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","set", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_double(argv[1], &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","set", 3, argv[1] )); } arg3 = static_cast< double >(val3); { try { (arg1)->set((char const *)arg2,arg3); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_set(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[4]; int ii; argc = nargs + 1; argv[0] = self; if (argc > 4) SWIG_fail; for (ii = 1; (ii < argc); ++ii) { argv[ii] = args[ii-1]; } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEF_set__SWIG_1(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Prelude__IDMEFValue, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEF_set__SWIG_4(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { void *vptr = 0; int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Prelude__IDMEFTime, SWIG_POINTER_NO_NULL); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEF_set__SWIG_5(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_int(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IDMEF_set__SWIG_6(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_unsigned_SS_long_SS_long(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IDMEF_set__SWIG_8(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_long_SS_long(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IDMEF_set__SWIG_7(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_float(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IDMEF_set__SWIG_9(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_double(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IDMEF_set__SWIG_10(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsPtr_std_string(argv[2], (std::string**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEF_set__SWIG_3(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = swig::asptr(argv[2], (std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > >**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEF_set__SWIG_0(nargs, args, self); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Prelude__IDMEF, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = swig::asptr(argv[2], (std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > >**)(0)); _v = SWIG_CheckState(res); if (_v) { return _wrap_IDMEF_set__SWIG_2(nargs, args, self); } } } } fail: Ruby_Format_OverloadedError( argc, 4, "IDMEF.set", " void IDMEF.set(char const *path, std::vector< Prelude::IDMEF,std::allocator< Prelude::IDMEF > > const &value)\n" " void IDMEF.set(char const *path, Prelude::IDMEF *value)\n" " void IDMEF.set(char const *path, std::vector< Prelude::IDMEFValue,std::allocator< Prelude::IDMEFValue > > const &value)\n" " void IDMEF.set(char const *path, std::string const &value)\n" " void IDMEF.set(char const *path, Prelude::IDMEFValue *value)\n" " void IDMEF.set(char const *path, Prelude::IDMEFTime &value)\n" " void IDMEF.set(char const *path, int32_t value)\n" " void IDMEF.set(char const *path, int64_t value)\n" " void IDMEF.set(char const *path, uint64_t value)\n" " void IDMEF.set(char const *path, float value)\n" " void IDMEF.set(char const *path, double value)\n"); return Qnil; } /* Document-method: Prelude::IDMEF.clone call-seq: clone -> IDMEF Create a duplicate of the class. */ SWIGINTERN VALUE _wrap_IDMEF_clone(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEF result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","clone", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (arg1)->clone(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj((new Prelude::IDMEF(static_cast< const Prelude::IDMEF& >(result))), SWIGTYPE_p_Prelude__IDMEF, SWIG_POINTER_OWN | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_getId(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; idmef_class_id_t result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF const *","getId", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = (idmef_class_id_t)((Prelude::IDMEF const *)arg1)->getId(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_toString(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF const *","toString", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = ((Prelude::IDMEF const *)arg1)->toString(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_toJSON(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF const *","toJSON", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = ((Prelude::IDMEF const *)arg1)->toJSON(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEF___str__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; std::string result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF const *","operator const std::string", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { try { result = ((Prelude::IDMEF const *)arg1)->operator const std::string(); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_std_string(static_cast< std::string >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEF.== call-seq: ==(idmef) -> int Equality comparison operator. */ SWIGINTERN VALUE _wrap_IDMEF___eq__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; Prelude::IDMEF *arg2 = (Prelude::IDMEF *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","operator ==", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "Prelude::IDMEF const *","operator ==", 2, argv[0] )); } arg2 = reinterpret_cast< Prelude::IDMEF * >(argp2); { try { result = (int)(arg1)->operator ==((Prelude::IDMEF const *)arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_write(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","write", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { Check_Type(argv[0], T_FILE); arg2 = &argv[0]; } { try { Prelude_IDMEF_write(arg1,arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } return Qnil; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_read(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","read", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { Check_Type(argv[0], T_FILE); arg2 = &argv[0]; } { try { result = (int)Prelude_IDMEF_read(arg1,arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) { result = 0; } else SWIG_exception_fail(SWIG_RuntimeError, e.what()); } } vresult = SWIG_From_int(static_cast< int >(result)); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEF.>> call-seq: >>(nocast_p) -> IDMEF Right shifting operator or extracting operator. */ SWIGINTERN VALUE _wrap_IDMEF___rshift__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEF *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","operator >>", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { Check_Type(argv[0], T_FILE); arg2 = &argv[0]; } { try { result = (Prelude::IDMEF *) &Prelude_IDMEF_operator_Sg__Sg_(arg1,arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); return vresult; fail: return Qnil; } /* Document-method: Prelude::IDMEF.<< call-seq: <<(nocast_p) -> IDMEF Left shifting or appending operator. */ SWIGINTERN VALUE _wrap_IDMEF___lshift__(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; Prelude::IDMEF *result = 0 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","operator <<", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); { Check_Type(argv[0], T_FILE); arg2 = &argv[0]; } { try { result = (Prelude::IDMEF *) &Prelude_IDMEF_operator_Sl__Sl_(arg1,arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); return vresult; fail: return Qnil; } SWIGINTERN VALUE _wrap_IDMEF_get(int argc, VALUE *argv, VALUE self) { Prelude::IDMEF *arg1 = (Prelude::IDMEF *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; Prelude::IDMEFValue result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1)) { rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail; } res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Prelude__IDMEF, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Prelude::IDMEF *","get", 1, self )); } arg1 = reinterpret_cast< Prelude::IDMEF * >(argp1); res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","get", 2, argv[0] )); } arg2 = reinterpret_cast< char * >(buf2); { try { result = Prelude_IDMEF_get(arg1,(char const *)arg2); } catch(Prelude::PreludeError &e) { if ( e.getCode() == PRELUDE_ERROR_EOF ) rb_raise(rb_eEOFError, "%s", e.what()); else SWIG_exception(SWIG_RuntimeError, e.what()); SWIG_fail; } } { int ret; if ( (&result)->isNull() ) vresult = Qnil; else { ret = IDMEFValue_to_SWIG(self, result, NULL, &vresult); if ( ret < 0 ) { std::stringstream s; s << "IDMEFValue typemap does not handle value of type '" << idmef_value_type_to_string((idmef_value_type_id_t) (&result)->getType()) << "'"; SWIG_exception_fail(SWIG_ValueError, s.str().c_str()); } } } if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return vresult; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return Qnil; } /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static void *_p_swig__IteratorTo_p_swig__ConstIterator(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((swig::ConstIterator *) ((swig::Iterator *) x)); } static void *_p_Prelude__ClientTo_p_Prelude__ClientProfile(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Prelude::ClientProfile *) ((Prelude::Client *) x)); } static void *_p_Prelude__ClientEasyTo_p_Prelude__ClientProfile(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Prelude::ClientProfile *) (Prelude::Client *) ((Prelude::ClientEasy *) x)); } static void *_p_Prelude__PreludeErrorTo_p_std__exception(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((std::exception *) ((Prelude::PreludeError *) x)); } static void *_p_Prelude__ClientEasyTo_p_Prelude__Client(void *x, int *SWIGUNUSEDPARM(newmemory)) { return (void *)((Prelude::Client *) ((Prelude::ClientEasy *) x)); } static swig_type_info _swigt__p_Prelude__Client = {"_p_Prelude__Client", "Prelude::Client *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__ClientEasy = {"_p_Prelude__ClientEasy", "Prelude::ClientEasy *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__ClientProfile = {"_p_Prelude__ClientProfile", "Prelude::ClientProfile *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__Connection = {"_p_Prelude__Connection", "Prelude::Connection *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__ConnectionPool = {"_p_Prelude__ConnectionPool", "Prelude::ConnectionPool *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__IDMEF = {"_p_Prelude__IDMEF", "Prelude::IDMEF *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__IDMEFClass = {"_p_Prelude__IDMEFClass", "Prelude::IDMEFClass *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__IDMEFCriteria = {"_p_Prelude__IDMEFCriteria", "Prelude::IDMEFCriteria *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__IDMEFCriterion = {"_p_Prelude__IDMEFCriterion", "Prelude::IDMEFCriterion *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__IDMEFPath = {"_p_Prelude__IDMEFPath", "Prelude::IDMEFPath *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__IDMEFTime = {"_p_Prelude__IDMEFTime", "Prelude::IDMEFTime *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__IDMEFValue = {"_p_Prelude__IDMEFValue", "Prelude::IDMEFValue *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__PreludeError = {"_p_Prelude__PreludeError", "Prelude::PreludeError *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Prelude__PreludeLog = {"_p_Prelude__PreludeLog", "Prelude::PreludeLog *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_allocator_type = {"_p_allocator_type", "allocator_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_char = {"_p_char", "char *|int8_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_difference_type = {"_p_difference_type", "difference_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_int_p_q_const__char__void = {"_p_f_int_p_q_const__char__void", "void (*)(int,char const *)", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_criteria_t = {"_p_idmef_criteria_t", "idmef_criteria_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_criterion_operator_t = {"_p_idmef_criterion_operator_t", "idmef_criterion_operator_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_object_t = {"_p_idmef_object_t", "idmef_object_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_path_t = {"_p_idmef_path_t", "idmef_path_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_time_t = {"_p_idmef_time_t", "idmef_time_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_idmef_value_t = {"_p_idmef_value_t", "idmef_value_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_int = {"_p_int", "int *|int32_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_key_type = {"_p_key_type", "key_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_long_long = {"_p_long_long", "int64_t *|long long *|time_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_mapped_type = {"_p_mapped_type", "mapped_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_client_profile_t = {"_p_prelude_client_profile_t", "prelude_client_profile_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_client_t = {"_p_prelude_client_t", "prelude_client_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_connection_pool_t = {"_p_prelude_connection_pool_t", "prelude_connection_pool_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_prelude_connection_t = {"_p_prelude_connection_t", "prelude_connection_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_short = {"_p_short", "short *|int16_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_size_type = {"_p_size_type", "size_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__exception = {"_p_std__exception", "std::exception *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_swig__ConstIterator = {"_p_swig__ConstIterator", "swig::ConstIterator *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_swig__GC_VALUE = {"_p_swig__GC_VALUE", "swig::GC_VALUE *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_swig__Iterator = {"_p_swig__Iterator", "swig::Iterator *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_timeval = {"_p_timeval", "timeval *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "unsigned char *|uint8_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "uint32_t *|unsigned int *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_long_long = {"_p_unsigned_long_long", "uint64_t *|unsigned long long *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "unsigned short *|uint16_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_value_type = {"_p_value_type", "value_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_void = {"_p_void", "VALUE|void *", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_Prelude__Client, &_swigt__p_Prelude__ClientEasy, &_swigt__p_Prelude__ClientProfile, &_swigt__p_Prelude__Connection, &_swigt__p_Prelude__ConnectionPool, &_swigt__p_Prelude__IDMEF, &_swigt__p_Prelude__IDMEFClass, &_swigt__p_Prelude__IDMEFCriteria, &_swigt__p_Prelude__IDMEFCriterion, &_swigt__p_Prelude__IDMEFPath, &_swigt__p_Prelude__IDMEFTime, &_swigt__p_Prelude__IDMEFValue, &_swigt__p_Prelude__PreludeError, &_swigt__p_Prelude__PreludeLog, &_swigt__p_allocator_type, &_swigt__p_char, &_swigt__p_difference_type, &_swigt__p_f_int_p_q_const__char__void, &_swigt__p_idmef_criteria_t, &_swigt__p_idmef_criterion_operator_t, &_swigt__p_idmef_object_t, &_swigt__p_idmef_path_t, &_swigt__p_idmef_time_t, &_swigt__p_idmef_value_t, &_swigt__p_int, &_swigt__p_key_type, &_swigt__p_long_long, &_swigt__p_mapped_type, &_swigt__p_prelude_client_profile_t, &_swigt__p_prelude_client_t, &_swigt__p_prelude_connection_pool_t, &_swigt__p_prelude_connection_t, &_swigt__p_short, &_swigt__p_size_type, &_swigt__p_std__exception, &_swigt__p_swig__ConstIterator, &_swigt__p_swig__GC_VALUE, &_swigt__p_swig__Iterator, &_swigt__p_timeval, &_swigt__p_unsigned_char, &_swigt__p_unsigned_int, &_swigt__p_unsigned_long_long, &_swigt__p_unsigned_short, &_swigt__p_value_type, &_swigt__p_void, }; static swig_cast_info _swigc__p_Prelude__Client[] = { {&_swigt__p_Prelude__Client, 0, 0, 0}, {&_swigt__p_Prelude__ClientEasy, _p_Prelude__ClientEasyTo_p_Prelude__Client, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__ClientEasy[] = { {&_swigt__p_Prelude__ClientEasy, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__ClientProfile[] = { {&_swigt__p_Prelude__Client, _p_Prelude__ClientTo_p_Prelude__ClientProfile, 0, 0}, {&_swigt__p_Prelude__ClientProfile, 0, 0, 0}, {&_swigt__p_Prelude__ClientEasy, _p_Prelude__ClientEasyTo_p_Prelude__ClientProfile, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__Connection[] = { {&_swigt__p_Prelude__Connection, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__ConnectionPool[] = { {&_swigt__p_Prelude__ConnectionPool, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEF[] = { {&_swigt__p_Prelude__IDMEF, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFClass[] = { {&_swigt__p_Prelude__IDMEFClass, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFCriteria[] = { {&_swigt__p_Prelude__IDMEFCriteria, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFCriterion[] = { {&_swigt__p_Prelude__IDMEFCriterion, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFPath[] = { {&_swigt__p_Prelude__IDMEFPath, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFTime[] = { {&_swigt__p_Prelude__IDMEFTime, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__IDMEFValue[] = { {&_swigt__p_Prelude__IDMEFValue, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__PreludeError[] = { {&_swigt__p_Prelude__PreludeError, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Prelude__PreludeLog[] = { {&_swigt__p_Prelude__PreludeLog, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_allocator_type[] = { {&_swigt__p_allocator_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_difference_type[] = { {&_swigt__p_difference_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_int_p_q_const__char__void[] = { {&_swigt__p_f_int_p_q_const__char__void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_criteria_t[] = { {&_swigt__p_idmef_criteria_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_criterion_operator_t[] = { {&_swigt__p_idmef_criterion_operator_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_object_t[] = { {&_swigt__p_idmef_object_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_path_t[] = { {&_swigt__p_idmef_path_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_time_t[] = { {&_swigt__p_idmef_time_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_idmef_value_t[] = { {&_swigt__p_idmef_value_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_key_type[] = { {&_swigt__p_key_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_long_long[] = { {&_swigt__p_long_long, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_mapped_type[] = { {&_swigt__p_mapped_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_client_profile_t[] = { {&_swigt__p_prelude_client_profile_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_client_t[] = { {&_swigt__p_prelude_client_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_connection_pool_t[] = { {&_swigt__p_prelude_connection_pool_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_prelude_connection_t[] = { {&_swigt__p_prelude_connection_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_short[] = { {&_swigt__p_short, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_size_type[] = { {&_swigt__p_size_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__exception[] = { {&_swigt__p_std__exception, 0, 0, 0}, {&_swigt__p_Prelude__PreludeError, _p_Prelude__PreludeErrorTo_p_std__exception, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_swig__ConstIterator[] = { {&_swigt__p_swig__ConstIterator, 0, 0, 0}, {&_swigt__p_swig__Iterator, _p_swig__IteratorTo_p_swig__ConstIterator, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_swig__GC_VALUE[] = { {&_swigt__p_swig__GC_VALUE, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_swig__Iterator[] = { {&_swigt__p_swig__Iterator, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_timeval[] = { {&_swigt__p_timeval, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_char[] = { {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_long_long[] = { {&_swigt__p_unsigned_long_long, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_short[] = { {&_swigt__p_unsigned_short, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_value_type[] = { {&_swigt__p_value_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_void[] = { {&_swigt__p_void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { _swigc__p_Prelude__Client, _swigc__p_Prelude__ClientEasy, _swigc__p_Prelude__ClientProfile, _swigc__p_Prelude__Connection, _swigc__p_Prelude__ConnectionPool, _swigc__p_Prelude__IDMEF, _swigc__p_Prelude__IDMEFClass, _swigc__p_Prelude__IDMEFCriteria, _swigc__p_Prelude__IDMEFCriterion, _swigc__p_Prelude__IDMEFPath, _swigc__p_Prelude__IDMEFTime, _swigc__p_Prelude__IDMEFValue, _swigc__p_Prelude__PreludeError, _swigc__p_Prelude__PreludeLog, _swigc__p_allocator_type, _swigc__p_char, _swigc__p_difference_type, _swigc__p_f_int_p_q_const__char__void, _swigc__p_idmef_criteria_t, _swigc__p_idmef_criterion_operator_t, _swigc__p_idmef_object_t, _swigc__p_idmef_path_t, _swigc__p_idmef_time_t, _swigc__p_idmef_value_t, _swigc__p_int, _swigc__p_key_type, _swigc__p_long_long, _swigc__p_mapped_type, _swigc__p_prelude_client_profile_t, _swigc__p_prelude_client_t, _swigc__p_prelude_connection_pool_t, _swigc__p_prelude_connection_t, _swigc__p_short, _swigc__p_size_type, _swigc__p_std__exception, _swigc__p_swig__ConstIterator, _swigc__p_swig__GC_VALUE, _swigc__p_swig__Iterator, _swigc__p_timeval, _swigc__p_unsigned_char, _swigc__p_unsigned_int, _swigc__p_unsigned_long_long, _swigc__p_unsigned_short, _swigc__p_value_type, _swigc__p_void, }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ /* ----------------------------------------------------------------------------- * Type initialization: * This problem is tough by the requirement that no dynamic * memory is used. Also, since swig_type_info structures store pointers to * swig_cast_info structures and swig_cast_info structures store pointers back * to swig_type_info structures, we need some lookup code at initialization. * The idea is that swig generates all the structures that are needed. * The runtime then collects these partially filled structures. * The SWIG_InitializeModule function takes these initial arrays out of * swig_module, and does all the lookup, filling in the swig_module.types * array with the correct data and linking the correct swig_cast_info * structures together. * * The generated swig_type_info structures are assigned statically to an initial * array. We just loop through that array, and handle each type individually. * First we lookup if this type has been already loaded, and if so, use the * loaded structure instead of the generated one. Then we have to fill in the * cast linked list. The cast data is initially stored in something like a * two-dimensional array. Each row corresponds to a type (there are the same * number of rows as there are in the swig_type_initial array). Each entry in * a column is one of the swig_cast_info structures for that type. * The cast_initial array is actually an array of arrays, because each row has * a variable number of columns. So to actually build the cast linked list, * we find the array of casts associated with the type, and loop through it * adding the casts to the list. The one last trick we need to do is making * sure the type pointer in the swig_cast_info struct is correct. * * First off, we lookup the cast->type name to see if it is already loaded. * There are three cases to handle: * 1) If the cast->type has already been loaded AND the type we are adding * casting info to has not been loaded (it is in this module), THEN we * replace the cast->type pointer with the type pointer that has already * been loaded. * 2) If BOTH types (the one we are adding casting info to, and the * cast->type) are loaded, THEN the cast info has already been loaded by * the previous module so we just ignore it. * 3) Finally, if cast->type has not already been loaded, then we add that * swig_cast_info to the linked list (because the cast->type) pointer will * be correct. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* c-mode */ #endif #endif #if 0 #define SWIGRUNTIME_DEBUG #endif SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { size_t i; swig_module_info *module_head, *iter; int init; /* check to see if the circular list has been setup, if not, set it up */ if (swig_module.next==0) { /* Initialize the swig_module */ swig_module.type_initial = swig_type_initial; swig_module.cast_initial = swig_cast_initial; swig_module.next = &swig_module; init = 1; } else { init = 0; } /* Try and load any already created modules */ module_head = SWIG_GetModule(clientdata); if (!module_head) { /* This is the first module loaded for this interpreter */ /* so set the swig module into the interpreter */ SWIG_SetModule(clientdata, &swig_module); } else { /* the interpreter has loaded a SWIG module, but has it loaded this one? */ iter=module_head; do { if (iter==&swig_module) { /* Our module is already in the list, so there's nothing more to do. */ return; } iter=iter->next; } while (iter!= module_head); /* otherwise we must add our module into the list */ swig_module.next = module_head->next; module_head->next = &swig_module; } /* When multiple interpreters are used, a module could have already been initialized in a different interpreter, but not yet have a pointer in this interpreter. In this case, we do not want to continue adding types... everything should be set up already */ if (init == 0) return; /* Now work on filling in swig_module.types */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: size %lu\n", (unsigned long)swig_module.size); #endif for (i = 0; i < swig_module.size; ++i) { swig_type_info *type = 0; swig_type_info *ret; swig_cast_info *cast; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name); #endif /* if there is another module already loaded */ if (swig_module.next != &swig_module) { type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); } if (type) { /* Overwrite clientdata field */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found type %s\n", type->name); #endif if (swig_module.type_initial[i]->clientdata) { type->clientdata = swig_module.type_initial[i]->clientdata; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); #endif } } else { type = swig_module.type_initial[i]; } /* Insert casting types */ cast = swig_module.cast_initial[i]; while (cast->type) { /* Don't need to add information already in the list */ ret = 0; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); #endif if (swig_module.next != &swig_module) { ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); #ifdef SWIGRUNTIME_DEBUG if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); #endif } if (ret) { if (type == swig_module.type_initial[i]) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: skip old type %s\n", ret->name); #endif cast->type = ret; ret = 0; } else { /* Check for casting already in the list */ swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); #ifdef SWIGRUNTIME_DEBUG if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); #endif if (!ocast) ret = 0; } } if (!ret) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); #endif if (type->cast) { type->cast->prev = cast; cast->next = type->cast; } type->cast = cast; } cast++; } /* Set entry in modules->types array equal to the type */ swig_module.types[i] = type; } swig_module.types[i] = 0; #ifdef SWIGRUNTIME_DEBUG printf("**** SWIG_InitializeModule: Cast List ******\n"); for (i = 0; i < swig_module.size; ++i) { int j = 0; swig_cast_info *cast = swig_module.cast_initial[i]; printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name); while (cast->type) { printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); cast++; ++j; } printf("---- Total casts: %d\n",j); } printf("**** SWIG_InitializeModule: Cast List ******\n"); #endif } /* This function will propagate the clientdata field of type to * any new swig_type_info structures that have been added into the list * of equivalent types. It is like calling * SWIG_TypeClientData(type, clientdata) a second time. */ SWIGRUNTIME void SWIG_PropagateClientData(void) { size_t i; swig_cast_info *equiv; static int init_run = 0; if (init_run) return; init_run = 1; for (i = 0; i < swig_module.size; i++) { if (swig_module.types[i]->clientdata) { equiv = swig_module.types[i]->cast; while (equiv) { if (!equiv->converter) { if (equiv->type && !equiv->type->clientdata) SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); } equiv = equiv->next; } } } } #ifdef __cplusplus #if 0 { /* c-mode */ #endif } #endif /* */ #ifdef __cplusplus extern "C" #endif SWIGEXPORT void Init_Prelude(void) { size_t i; SWIG_InitRuntime(); mPrelude = rb_define_module("Prelude"); SWIG_InitializeModule(0); for (i = 0; i < swig_module.size; i++) { SWIG_define_class(swig_module.types[i]); } SWIG_RubyInitializeTrackings(); SwigClassGC_VALUE.klass = rb_define_class_under(mPrelude, "GC_VALUE", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_swig__GC_VALUE, (void *) &SwigClassGC_VALUE); rb_undef_alloc_func(SwigClassGC_VALUE.klass); rb_define_method(SwigClassGC_VALUE.klass, "inspect", VALUEFUNC(_wrap_GC_VALUE_inspect), -1); rb_define_method(SwigClassGC_VALUE.klass, "to_s", VALUEFUNC(_wrap_GC_VALUE_to_s), -1); SwigClassGC_VALUE.mark = 0; SwigClassGC_VALUE.trackObjects = 0; swig::SwigGCReferences::initialize(); SwigClassConstIterator.klass = rb_define_class_under(mPrelude, "ConstIterator", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_swig__ConstIterator, (void *) &SwigClassConstIterator); rb_undef_alloc_func(SwigClassConstIterator.klass); rb_define_method(SwigClassConstIterator.klass, "value", VALUEFUNC(_wrap_ConstIterator_value), -1); rb_define_method(SwigClassConstIterator.klass, "dup", VALUEFUNC(_wrap_ConstIterator_dup), -1); rb_define_method(SwigClassConstIterator.klass, "inspect", VALUEFUNC(_wrap_ConstIterator_inspect), -1); rb_define_method(SwigClassConstIterator.klass, "to_s", VALUEFUNC(_wrap_ConstIterator_to_s), -1); rb_define_method(SwigClassConstIterator.klass, "next", VALUEFUNC(_wrap_ConstIterator_next), -1); rb_define_method(SwigClassConstIterator.klass, "previous", VALUEFUNC(_wrap_ConstIterator_previous), -1); rb_define_method(SwigClassConstIterator.klass, "==", VALUEFUNC(_wrap_ConstIterator___eq__), -1); rb_define_method(SwigClassConstIterator.klass, "+", VALUEFUNC(_wrap_ConstIterator___add__), -1); rb_define_method(SwigClassConstIterator.klass, "-", VALUEFUNC(_wrap_ConstIterator___sub__), -1); SwigClassConstIterator.mark = 0; SwigClassConstIterator.destroy = (void (*)(void *)) free_swig_ConstIterator; SwigClassConstIterator.trackObjects = 0; SwigClassIterator.klass = rb_define_class_under(mPrelude, "Iterator", ((swig_class *) SWIGTYPE_p_swig__ConstIterator->clientdata)->klass); SWIG_TypeClientData(SWIGTYPE_p_swig__Iterator, (void *) &SwigClassIterator); rb_undef_alloc_func(SwigClassIterator.klass); rb_define_method(SwigClassIterator.klass, "value=", VALUEFUNC(_wrap_Iterator_valuee___), -1); rb_define_method(SwigClassIterator.klass, "dup", VALUEFUNC(_wrap_Iterator_dup), -1); rb_define_method(SwigClassIterator.klass, "next", VALUEFUNC(_wrap_Iterator_next), -1); rb_define_method(SwigClassIterator.klass, "previous", VALUEFUNC(_wrap_Iterator_previous), -1); rb_define_method(SwigClassIterator.klass, "inspect", VALUEFUNC(_wrap_Iterator_inspect), -1); rb_define_method(SwigClassIterator.klass, "to_s", VALUEFUNC(_wrap_Iterator_to_s), -1); rb_define_method(SwigClassIterator.klass, "==", VALUEFUNC(_wrap_Iterator___eq__), -1); rb_define_method(SwigClassIterator.klass, "+", VALUEFUNC(_wrap_Iterator___add__), -1); rb_define_method(SwigClassIterator.klass, "-", VALUEFUNC(_wrap_Iterator___sub__), -1); SwigClassIterator.mark = 0; SwigClassIterator.destroy = (void (*)(void *)) free_swig_Iterator; SwigClassIterator.trackObjects = 0; int ret; char **argv; int _i, argc; VALUE rbargv, *ptr, tmp; __initial_thread = (gl_thread_t) gl_thread_self(); rbargv = rb_const_get(rb_cObject, rb_intern("ARGV")); argc = RARRAY_LEN(rbargv) + 1; if ( argc + 1 < 0 ) throw PreludeError("Invalid argc length"); argv = (char **) malloc((argc + 1) * sizeof(char *)); if ( ! argv ) throw PreludeError("Allocation failure"); tmp = rb_gv_get("$0"); argv[0] = StringValuePtr(tmp); for ( ptr = RARRAY_PTR(rbargv), _i = 1; _i < argc; _i++, ptr++ ) argv[_i] = StringValuePtr(*ptr); argv[_i] = NULL; ret = prelude_init(&argc, argv); if ( ret < 0 ) { free(argv); throw PreludeError(ret); } free(argv); rb_define_module_function(mPrelude, "checkVersion", VALUEFUNC(_wrap_checkVersion), -1); SwigClassClientProfile.klass = rb_define_class_under(mPrelude, "ClientProfile", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_Prelude__ClientProfile, (void *) &SwigClassClientProfile); rb_define_alloc_func(SwigClassClientProfile.klass, _wrap_ClientProfile_allocate); rb_define_method(SwigClassClientProfile.klass, "initialize", VALUEFUNC(_wrap_new_ClientProfile), -1); rb_define_method(SwigClassClientProfile.klass, "getUid", VALUEFUNC(_wrap_ClientProfile_getUid), -1); rb_define_method(SwigClassClientProfile.klass, "getGid", VALUEFUNC(_wrap_ClientProfile_getGid), -1); rb_define_method(SwigClassClientProfile.klass, "getName", VALUEFUNC(_wrap_ClientProfile_getName), -1); rb_define_method(SwigClassClientProfile.klass, "setName", VALUEFUNC(_wrap_ClientProfile_setName), -1); rb_define_method(SwigClassClientProfile.klass, "getAnalyzerId", VALUEFUNC(_wrap_ClientProfile_getAnalyzerId), -1); rb_define_method(SwigClassClientProfile.klass, "setAnalyzerId", VALUEFUNC(_wrap_ClientProfile_setAnalyzerId), -1); rb_define_method(SwigClassClientProfile.klass, "getConfigFilename", VALUEFUNC(_wrap_ClientProfile_getConfigFilename), -1); rb_define_method(SwigClassClientProfile.klass, "getAnalyzeridFilename", VALUEFUNC(_wrap_ClientProfile_getAnalyzeridFilename), -1); rb_define_method(SwigClassClientProfile.klass, "getTlsKeyFilename", VALUEFUNC(_wrap_ClientProfile_getTlsKeyFilename), -1); rb_define_method(SwigClassClientProfile.klass, "getTlsServerCaCertFilename", VALUEFUNC(_wrap_ClientProfile_getTlsServerCaCertFilename), -1); rb_define_method(SwigClassClientProfile.klass, "getTlsServerKeyCertFilename", VALUEFUNC(_wrap_ClientProfile_getTlsServerKeyCertFilename), -1); rb_define_method(SwigClassClientProfile.klass, "getTlsServerCrlFilename", VALUEFUNC(_wrap_ClientProfile_getTlsServerCrlFilename), -1); rb_define_method(SwigClassClientProfile.klass, "getTlsClientKeyCertFilename", VALUEFUNC(_wrap_ClientProfile_getTlsClientKeyCertFilename), -1); rb_define_method(SwigClassClientProfile.klass, "getTlsClientTrustedCertFilename", VALUEFUNC(_wrap_ClientProfile_getTlsClientTrustedCertFilename), -1); rb_define_method(SwigClassClientProfile.klass, "getBackupDirname", VALUEFUNC(_wrap_ClientProfile_getBackupDirname), -1); rb_define_method(SwigClassClientProfile.klass, "getProfileDirname", VALUEFUNC(_wrap_ClientProfile_getProfileDirname), -1); rb_define_method(SwigClassClientProfile.klass, "setPrefix", VALUEFUNC(_wrap_ClientProfile_setPrefix), -1); rb_define_method(SwigClassClientProfile.klass, "getPrefix", VALUEFUNC(_wrap_ClientProfile_getPrefix), -1); SwigClassClientProfile.mark = 0; SwigClassClientProfile.destroy = (void (*)(void *)) free_Prelude_ClientProfile; SwigClassClientProfile.trackObjects = 0; SwigClassConnection.klass = rb_define_class_under(mPrelude, "Connection", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_Prelude__Connection, (void *) &SwigClassConnection); rb_define_alloc_func(SwigClassConnection.klass, _wrap_Connection_allocate); rb_define_method(SwigClassConnection.klass, "initialize", VALUEFUNC(_wrap_new_Connection), -1); rb_define_method(SwigClassConnection.klass, "getConnection", VALUEFUNC(_wrap_Connection_getConnection), -1); rb_define_method(SwigClassConnection.klass, "close", VALUEFUNC(_wrap_Connection_close), -1); rb_define_method(SwigClassConnection.klass, "connect", VALUEFUNC(_wrap_Connection_connect), -1); rb_define_method(SwigClassConnection.klass, "setState", VALUEFUNC(_wrap_Connection_setState), -1); rb_define_method(SwigClassConnection.klass, "getState", VALUEFUNC(_wrap_Connection_getState), -1); rb_define_method(SwigClassConnection.klass, "setData", VALUEFUNC(_wrap_Connection_setData), -1); rb_define_method(SwigClassConnection.klass, "getData", VALUEFUNC(_wrap_Connection_getData), -1); rb_define_method(SwigClassConnection.klass, "getPermission", VALUEFUNC(_wrap_Connection_getPermission), -1); rb_define_method(SwigClassConnection.klass, "setPeerAnalyzerid", VALUEFUNC(_wrap_Connection_setPeerAnalyzerid), -1); rb_define_method(SwigClassConnection.klass, "getPeerAnalyzerid", VALUEFUNC(_wrap_Connection_getPeerAnalyzerid), -1); rb_define_method(SwigClassConnection.klass, "getLocalAddr", VALUEFUNC(_wrap_Connection_getLocalAddr), -1); rb_define_method(SwigClassConnection.klass, "getLocalPort", VALUEFUNC(_wrap_Connection_getLocalPort), -1); rb_define_method(SwigClassConnection.klass, "getPeerAddr", VALUEFUNC(_wrap_Connection_getPeerAddr), -1); rb_define_method(SwigClassConnection.klass, "getPeerPort", VALUEFUNC(_wrap_Connection_getPeerPort), -1); rb_define_method(SwigClassConnection.klass, "isAlive", VALUEFUNC(_wrap_Connection_isAlive), -1); rb_define_method(SwigClassConnection.klass, "getFd", VALUEFUNC(_wrap_Connection_getFd), -1); rb_define_method(SwigClassConnection.klass, "recvIDMEF", VALUEFUNC(_wrap_Connection_recvIDMEF), -1); SwigClassConnection.mark = 0; SwigClassConnection.destroy = (void (*)(void *)) free_Prelude_Connection; SwigClassConnection.trackObjects = 0; SwigClassConnectionPool.klass = rb_define_class_under(mPrelude, "ConnectionPool", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_Prelude__ConnectionPool, (void *) &SwigClassConnectionPool); rb_define_alloc_func(SwigClassConnectionPool.klass, _wrap_ConnectionPool_allocate); rb_define_method(SwigClassConnectionPool.klass, "initialize", VALUEFUNC(_wrap_new_ConnectionPool), -1); rb_define_method(SwigClassConnectionPool.klass, "init", VALUEFUNC(_wrap_ConnectionPool_init), -1); rb_define_method(SwigClassConnectionPool.klass, "setConnectionString", VALUEFUNC(_wrap_ConnectionPool_setConnectionString), -1); rb_define_method(SwigClassConnectionPool.klass, "getConnectionString", VALUEFUNC(_wrap_ConnectionPool_getConnectionString), -1); rb_define_method(SwigClassConnectionPool.klass, "getConnectionList", VALUEFUNC(_wrap_ConnectionPool_getConnectionList), -1); rb_define_method(SwigClassConnectionPool.klass, "setFlags", VALUEFUNC(_wrap_ConnectionPool_setFlags), -1); rb_define_method(SwigClassConnectionPool.klass, "getFlags", VALUEFUNC(_wrap_ConnectionPool_getFlags), -1); rb_define_method(SwigClassConnectionPool.klass, "setData", VALUEFUNC(_wrap_ConnectionPool_setData), -1); rb_define_method(SwigClassConnectionPool.klass, "getData", VALUEFUNC(_wrap_ConnectionPool_getData), -1); rb_define_method(SwigClassConnectionPool.klass, "addConnection", VALUEFUNC(_wrap_ConnectionPool_addConnection), -1); rb_define_method(SwigClassConnectionPool.klass, "delConnection", VALUEFUNC(_wrap_ConnectionPool_delConnection), -1); rb_define_method(SwigClassConnectionPool.klass, "setConnectionAlive", VALUEFUNC(_wrap_ConnectionPool_setConnectionAlive), -1); rb_define_method(SwigClassConnectionPool.klass, "setConnectionDead", VALUEFUNC(_wrap_ConnectionPool_setConnectionDead), -1); rb_define_method(SwigClassConnectionPool.klass, "setRequiredPermission", VALUEFUNC(_wrap_ConnectionPool_setRequiredPermission), -1); SwigClassConnectionPool.mark = 0; SwigClassConnectionPool.destroy = (void (*)(void *)) free_Prelude_ConnectionPool; SwigClassConnectionPool.trackObjects = 0; SwigClassClient.klass = rb_define_class_under(mPrelude, "Client", ((swig_class *) SWIGTYPE_p_Prelude__ClientProfile->clientdata)->klass); SWIG_TypeClientData(SWIGTYPE_p_Prelude__Client, (void *) &SwigClassClient); rb_define_alloc_func(SwigClassClient.klass, _wrap_Client_allocate); rb_define_method(SwigClassClient.klass, "initialize", VALUEFUNC(_wrap_new_Client), -1); rb_define_const(SwigClassClient.klass, "ASYNC_SEND", SWIG_From_int(static_cast< int >(Prelude::Client::ASYNC_SEND))); rb_define_const(SwigClassClient.klass, "FLAGS_ASYNC_SEND", SWIG_From_int(static_cast< int >(Prelude::Client::FLAGS_ASYNC_SEND))); rb_define_const(SwigClassClient.klass, "ASYNC_TIMER", SWIG_From_int(static_cast< int >(Prelude::Client::ASYNC_TIMER))); rb_define_const(SwigClassClient.klass, "FLAGS_ASYNC_TIMER", SWIG_From_int(static_cast< int >(Prelude::Client::FLAGS_ASYNC_TIMER))); rb_define_const(SwigClassClient.klass, "HEARTBEAT", SWIG_From_int(static_cast< int >(Prelude::Client::HEARTBEAT))); rb_define_const(SwigClassClient.klass, "FLAGS_HEARTBEAT", SWIG_From_int(static_cast< int >(Prelude::Client::FLAGS_HEARTBEAT))); rb_define_const(SwigClassClient.klass, "CONNECT", SWIG_From_int(static_cast< int >(Prelude::Client::CONNECT))); rb_define_const(SwigClassClient.klass, "FLAGS_CONNECT", SWIG_From_int(static_cast< int >(Prelude::Client::FLAGS_CONNECT))); rb_define_const(SwigClassClient.klass, "AUTOCONFIG", SWIG_From_int(static_cast< int >(Prelude::Client::AUTOCONFIG))); rb_define_const(SwigClassClient.klass, "FLAGS_AUTOCONFIG", SWIG_From_int(static_cast< int >(Prelude::Client::FLAGS_AUTOCONFIG))); rb_define_const(SwigClassClient.klass, "IDMEF_READ", SWIG_From_int(static_cast< int >(Prelude::Client::IDMEF_READ))); rb_define_const(SwigClassClient.klass, "PERMISSION_IDMEF_READ", SWIG_From_int(static_cast< int >(Prelude::Client::PERMISSION_IDMEF_READ))); rb_define_const(SwigClassClient.klass, "ADMIN_READ", SWIG_From_int(static_cast< int >(Prelude::Client::ADMIN_READ))); rb_define_const(SwigClassClient.klass, "PERMISSION_ADMIN_READ", SWIG_From_int(static_cast< int >(Prelude::Client::PERMISSION_ADMIN_READ))); rb_define_const(SwigClassClient.klass, "IDMEF_WRITE", SWIG_From_int(static_cast< int >(Prelude::Client::IDMEF_WRITE))); rb_define_const(SwigClassClient.klass, "PERMISSION_IDMEF_WRITE", SWIG_From_int(static_cast< int >(Prelude::Client::PERMISSION_IDMEF_WRITE))); rb_define_const(SwigClassClient.klass, "ADMIN_WRITE", SWIG_From_int(static_cast< int >(Prelude::Client::ADMIN_WRITE))); rb_define_const(SwigClassClient.klass, "PERMISSION_ADMIN_WRITE", SWIG_From_int(static_cast< int >(Prelude::Client::PERMISSION_ADMIN_WRITE))); rb_define_method(SwigClassClient.klass, "start", VALUEFUNC(_wrap_Client_start), -1); rb_define_method(SwigClassClient.klass, "init", VALUEFUNC(_wrap_Client_init), -1); rb_define_method(SwigClassClient.klass, "getClient", VALUEFUNC(_wrap_Client_getClient), -1); rb_define_method(SwigClassClient.klass, "sendIDMEF", VALUEFUNC(_wrap_Client_sendIDMEF), -1); rb_define_method(SwigClassClient.klass, "recvIDMEF", VALUEFUNC(_wrap_Client_recvIDMEF), -1); rb_define_method(SwigClassClient.klass, "getFlags", VALUEFUNC(_wrap_Client_getFlags), -1); rb_define_method(SwigClassClient.klass, "setFlags", VALUEFUNC(_wrap_Client_setFlags), -1); rb_define_method(SwigClassClient.klass, "getRequiredPermission", VALUEFUNC(_wrap_Client_getRequiredPermission), -1); rb_define_method(SwigClassClient.klass, "setRequiredPermission", VALUEFUNC(_wrap_Client_setRequiredPermission), -1); rb_define_method(SwigClassClient.klass, "getConfigFilename", VALUEFUNC(_wrap_Client_getConfigFilename), -1); rb_define_method(SwigClassClient.klass, "setConfigFilename", VALUEFUNC(_wrap_Client_setConfigFilename), -1); rb_define_method(SwigClassClient.klass, "getConnectionPool", VALUEFUNC(_wrap_Client_getConnectionPool), -1); rb_define_method(SwigClassClient.klass, "setConnectionPool", VALUEFUNC(_wrap_Client_setConnectionPool), -1); rb_define_method(SwigClassClient.klass, "<<", VALUEFUNC(_wrap_Client___lshift__), -1); rb_define_method(SwigClassClient.klass, ">>", VALUEFUNC(_wrap_Client___rshift__), -1); rb_define_singleton_method(SwigClassClient.klass, "setRecvTimeout", VALUEFUNC(_wrap_Client_setRecvTimeout), -1); SwigClassClient.mark = 0; SwigClassClient.destroy = (void (*)(void *)) free_Prelude_Client; SwigClassClient.trackObjects = 0; SwigClassPreludeLog.klass = rb_define_class_under(mPrelude, "PreludeLog", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_Prelude__PreludeLog, (void *) &SwigClassPreludeLog); rb_define_alloc_func(SwigClassPreludeLog.klass, _wrap_PreludeLog_allocate); rb_define_method(SwigClassPreludeLog.klass, "initialize", VALUEFUNC(_wrap_new_PreludeLog), -1); rb_define_const(SwigClassPreludeLog.klass, "DEBUG", SWIG_From_int(static_cast< int >(Prelude::PreludeLog::DEBUG))); rb_define_const(SwigClassPreludeLog.klass, "INFO", SWIG_From_int(static_cast< int >(Prelude::PreludeLog::INFO))); rb_define_const(SwigClassPreludeLog.klass, "WARNING", SWIG_From_int(static_cast< int >(Prelude::PreludeLog::WARNING))); rb_define_const(SwigClassPreludeLog.klass, "ERROR", SWIG_From_int(static_cast< int >(Prelude::PreludeLog::ERROR))); rb_define_const(SwigClassPreludeLog.klass, "CRITICAL", SWIG_From_int(static_cast< int >(Prelude::PreludeLog::CRITICAL))); rb_define_const(SwigClassPreludeLog.klass, "QUIET", SWIG_From_int(static_cast< int >(Prelude::PreludeLog::QUIET))); rb_define_const(SwigClassPreludeLog.klass, "SYSLOG", SWIG_From_int(static_cast< int >(Prelude::PreludeLog::SYSLOG))); rb_define_singleton_method(SwigClassPreludeLog.klass, "setLevel", VALUEFUNC(_wrap_PreludeLog_setLevel), -1); rb_define_singleton_method(SwigClassPreludeLog.klass, "setDebugLevel", VALUEFUNC(_wrap_PreludeLog_setDebugLevel), -1); rb_define_singleton_method(SwigClassPreludeLog.klass, "setFlags", VALUEFUNC(_wrap_PreludeLog_setFlags), -1); rb_define_singleton_method(SwigClassPreludeLog.klass, "getFlags", VALUEFUNC(_wrap_PreludeLog_getFlags), -1); rb_define_singleton_method(SwigClassPreludeLog.klass, "setLogfile", VALUEFUNC(_wrap_PreludeLog_setLogfile), -1); rb_define_singleton_method(SwigClassPreludeLog.klass, "setCallback", VALUEFUNC(_wrap_PreludeLog_setCallback), -1); SwigClassPreludeLog.mark = 0; SwigClassPreludeLog.destroy = (void (*)(void *)) free_Prelude_PreludeLog; SwigClassPreludeLog.trackObjects = 0; SwigClassPreludeError.klass = rb_define_class_under(mPrelude, "PreludeError", rb_eRuntimeError); SWIG_TypeClientData(SWIGTYPE_p_Prelude__PreludeError, (void *) &SwigClassPreludeError); rb_define_alloc_func(SwigClassPreludeError.klass, _wrap_PreludeError_allocate); rb_define_method(SwigClassPreludeError.klass, "initialize", VALUEFUNC(_wrap_new_PreludeError), -1); rb_define_method(SwigClassPreludeError.klass, "getCode", VALUEFUNC(_wrap_PreludeError_getCode), -1); rb_define_method(SwigClassPreludeError.klass, "what", VALUEFUNC(_wrap_PreludeError_what), -1); rb_define_method(SwigClassPreludeError.klass, "to_s", VALUEFUNC(_wrap_PreludeError___str__), -1); rb_define_method(SwigClassPreludeError.klass, "to_i", VALUEFUNC(_wrap_PreludeError___int__), -1); SwigClassPreludeError.mark = 0; SwigClassPreludeError.destroy = (void (*)(void *)) free_Prelude_PreludeError; SwigClassPreludeError.trackObjects = 0; SwigClassClientEasy.klass = rb_define_class_under(mPrelude, "ClientEasy", ((swig_class *) SWIGTYPE_p_Prelude__Client->clientdata)->klass); SWIG_TypeClientData(SWIGTYPE_p_Prelude__ClientEasy, (void *) &SwigClassClientEasy); rb_define_alloc_func(SwigClassClientEasy.klass, _wrap_ClientEasy_allocate); rb_define_method(SwigClassClientEasy.klass, "initialize", VALUEFUNC(_wrap_new_ClientEasy), -1); SwigClassClientEasy.mark = 0; SwigClassClientEasy.destroy = (void (*)(void *)) free_Prelude_ClientEasy; SwigClassClientEasy.trackObjects = 0; SwigClassIDMEFCriterion.klass = rb_define_class_under(mPrelude, "IDMEFCriterion", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEFCriterion, (void *) &SwigClassIDMEFCriterion); rb_define_alloc_func(SwigClassIDMEFCriterion.klass, _wrap_IDMEFCriterion_allocate); rb_define_method(SwigClassIDMEFCriterion.klass, "initialize", VALUEFUNC(_wrap_new_IDMEFCriterion), -1); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_NOT", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_NOCASE", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOCASE))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_EQUAL", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_EQUAL))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_EQUAL_NOCASE", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_EQUAL_NOCASE))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_NOT_EQUAL", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_EQUAL))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_NOT_EQUAL_NOCASE", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_EQUAL_NOCASE))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_LESSER", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_LESSER))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_LESSER_OR_EQUAL", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_LESSER_OR_EQUAL))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_GREATER", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_GREATER))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_GREATER_OR_EQUAL", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_GREATER_OR_EQUAL))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_SUBSTR", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_SUBSTR))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_SUBSTR_NOCASE", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_SUBSTR_NOCASE))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_NOT_SUBSTR", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_SUBSTR))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_NOT_SUBSTR_NOCASE", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_SUBSTR_NOCASE))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_REGEX", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_REGEX))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_REGEX_NOCASE", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_REGEX_NOCASE))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_NOT_REGEX", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_REGEX))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_NOT_REGEX_NOCASE", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_REGEX_NOCASE))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_NULL", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NULL))); rb_define_const(SwigClassIDMEFCriterion.klass, "OPERATOR_NOT_NULL", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriterion::OPERATOR_NOT_NULL))); SwigClassIDMEFCriterion.mark = 0; SwigClassIDMEFCriterion.destroy = (void (*)(void *)) free_Prelude_IDMEFCriterion; SwigClassIDMEFCriterion.trackObjects = 0; SwigClassIDMEFCriteria.klass = rb_define_class_under(mPrelude, "IDMEFCriteria", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEFCriteria, (void *) &SwigClassIDMEFCriteria); rb_define_alloc_func(SwigClassIDMEFCriteria.klass, _wrap_IDMEFCriteria_allocate); rb_define_method(SwigClassIDMEFCriteria.klass, "initialize", VALUEFUNC(_wrap_new_IDMEFCriteria), -1); rb_define_const(SwigClassIDMEFCriteria.klass, "OPERATOR_NOT", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriteria::OPERATOR_NOT))); rb_define_const(SwigClassIDMEFCriteria.klass, "OPERATOR_AND", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriteria::OPERATOR_AND))); rb_define_const(SwigClassIDMEFCriteria.klass, "OPERATOR_OR", SWIG_From_int(static_cast< int >(Prelude::IDMEFCriteria::OPERATOR_OR))); rb_define_method(SwigClassIDMEFCriteria.klass, "match", VALUEFUNC(_wrap_IDMEFCriteria_match), -1); rb_define_method(SwigClassIDMEFCriteria.klass, "clone", VALUEFUNC(_wrap_IDMEFCriteria_clone), -1); rb_define_method(SwigClassIDMEFCriteria.klass, "andCriteria", VALUEFUNC(_wrap_IDMEFCriteria_andCriteria), -1); rb_define_method(SwigClassIDMEFCriteria.klass, "orCriteria", VALUEFUNC(_wrap_IDMEFCriteria_orCriteria), -1); rb_define_method(SwigClassIDMEFCriteria.klass, "toString", VALUEFUNC(_wrap_IDMEFCriteria_toString), -1); rb_define_method(SwigClassIDMEFCriteria.klass, "to_s", VALUEFUNC(_wrap_IDMEFCriteria___str__), -1); SwigClassIDMEFCriteria.mark = 0; SwigClassIDMEFCriteria.destroy = (void (*)(void *)) free_Prelude_IDMEFCriteria; SwigClassIDMEFCriteria.trackObjects = 0; SwigClassIDMEFValue.klass = rb_define_class_under(mPrelude, "IDMEFValue", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEFValue, (void *) &SwigClassIDMEFValue); rb_define_alloc_func(SwigClassIDMEFValue.klass, _wrap_IDMEFValue_allocate); rb_define_method(SwigClassIDMEFValue.klass, "initialize", VALUEFUNC(_wrap_new_IDMEFValue), -1); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_UNKNOWN", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_UNKNOWN))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_INT8", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_INT8))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_UINT8", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_UINT8))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_INT16", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_INT16))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_UINT16", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_UINT16))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_INT32", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_INT32))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_UINT32", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_UINT32))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_INT64", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_INT64))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_UINT64", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_UINT64))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_FLOAT", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_FLOAT))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_DOUBLE", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_DOUBLE))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_STRING", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_STRING))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_TIME", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_TIME))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_DATA", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_DATA))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_ENUM", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_ENUM))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_LIST", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_LIST))); rb_define_const(SwigClassIDMEFValue.klass, "TYPE_CLASS", SWIG_From_int(static_cast< int >(Prelude::IDMEFValue::TYPE_CLASS))); rb_define_method(SwigClassIDMEFValue.klass, "getType", VALUEFUNC(_wrap_IDMEFValue_getType), -1); rb_define_method(SwigClassIDMEFValue.klass, "isNull", VALUEFUNC(_wrap_IDMEFValue_isNull), -1); rb_define_method(SwigClassIDMEFValue.klass, "match", VALUEFUNC(_wrap_IDMEFValue_match), -1); rb_define_method(SwigClassIDMEFValue.klass, "clone", VALUEFUNC(_wrap_IDMEFValue_clone), -1); rb_define_method(SwigClassIDMEFValue.klass, "toString", VALUEFUNC(_wrap_IDMEFValue_toString), -1); rb_define_method(SwigClassIDMEFValue.klass, "<=", VALUEFUNC(_wrap_IDMEFValue___le__), -1); rb_define_method(SwigClassIDMEFValue.klass, ">=", VALUEFUNC(_wrap_IDMEFValue___ge__), -1); rb_define_method(SwigClassIDMEFValue.klass, "<", VALUEFUNC(_wrap_IDMEFValue___lt__), -1); rb_define_method(SwigClassIDMEFValue.klass, ">", VALUEFUNC(_wrap_IDMEFValue___gt__), -1); rb_define_method(SwigClassIDMEFValue.klass, "==", VALUEFUNC(_wrap_IDMEFValue___eq__), -1); SwigClassIDMEFValue.mark = 0; SwigClassIDMEFValue.destroy = (void (*)(void *)) free_Prelude_IDMEFValue; SwigClassIDMEFValue.trackObjects = 0; SwigClassIDMEFPath.klass = rb_define_class_under(mPrelude, "IDMEFPath", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEFPath, (void *) &SwigClassIDMEFPath); rb_define_alloc_func(SwigClassIDMEFPath.klass, _wrap_IDMEFPath_allocate); rb_define_method(SwigClassIDMEFPath.klass, "initialize", VALUEFUNC(_wrap_new_IDMEFPath), -1); rb_define_method(SwigClassIDMEFPath.klass, "set", VALUEFUNC(_wrap_IDMEFPath_set), -1); rb_define_method(SwigClassIDMEFPath.klass, "getClass", VALUEFUNC(_wrap_IDMEFPath_getClass), -1); rb_define_method(SwigClassIDMEFPath.klass, "getValueType", VALUEFUNC(_wrap_IDMEFPath_getValueType), -1); rb_define_method(SwigClassIDMEFPath.klass, "setIndex", VALUEFUNC(_wrap_IDMEFPath_setIndex), -1); rb_define_method(SwigClassIDMEFPath.klass, "undefineIndex", VALUEFUNC(_wrap_IDMEFPath_undefineIndex), -1); rb_define_method(SwigClassIDMEFPath.klass, "getIndex", VALUEFUNC(_wrap_IDMEFPath_getIndex), -1); rb_define_method(SwigClassIDMEFPath.klass, "makeChild", VALUEFUNC(_wrap_IDMEFPath_makeChild), -1); rb_define_method(SwigClassIDMEFPath.klass, "makeParent", VALUEFUNC(_wrap_IDMEFPath_makeParent), -1); rb_define_method(SwigClassIDMEFPath.klass, "compare", VALUEFUNC(_wrap_IDMEFPath_compare), -1); rb_define_method(SwigClassIDMEFPath.klass, "clone", VALUEFUNC(_wrap_IDMEFPath_clone), -1); rb_define_method(SwigClassIDMEFPath.klass, "checkOperator", VALUEFUNC(_wrap_IDMEFPath_checkOperator), -1); rb_define_method(SwigClassIDMEFPath.klass, "getApplicableOperators", VALUEFUNC(_wrap_IDMEFPath_getApplicableOperators), -1); rb_define_method(SwigClassIDMEFPath.klass, "getName", VALUEFUNC(_wrap_IDMEFPath_getName), -1); rb_define_method(SwigClassIDMEFPath.klass, "isAmbiguous", VALUEFUNC(_wrap_IDMEFPath_isAmbiguous), -1); rb_define_method(SwigClassIDMEFPath.klass, "hasLists", VALUEFUNC(_wrap_IDMEFPath_hasLists), -1); rb_define_method(SwigClassIDMEFPath.klass, "isList", VALUEFUNC(_wrap_IDMEFPath_isList), -1); rb_define_method(SwigClassIDMEFPath.klass, "getDepth", VALUEFUNC(_wrap_IDMEFPath_getDepth), -1); rb_define_method(SwigClassIDMEFPath.klass, "get", VALUEFUNC(_wrap_IDMEFPath_get), -1); SwigClassIDMEFPath.mark = 0; SwigClassIDMEFPath.destroy = (void (*)(void *)) free_Prelude_IDMEFPath; SwigClassIDMEFPath.trackObjects = 0; SwigClassIDMEFTime.klass = rb_define_class_under(mPrelude, "IDMEFTime", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEFTime, (void *) &SwigClassIDMEFTime); rb_define_alloc_func(SwigClassIDMEFTime.klass, _wrap_IDMEFTime_allocate); rb_define_method(SwigClassIDMEFTime.klass, "initialize", VALUEFUNC(_wrap_new_IDMEFTime), -1); rb_define_method(SwigClassIDMEFTime.klass, "set", VALUEFUNC(_wrap_IDMEFTime_set), -1); rb_define_method(SwigClassIDMEFTime.klass, "setSec", VALUEFUNC(_wrap_IDMEFTime_setSec), -1); rb_define_method(SwigClassIDMEFTime.klass, "setUSec", VALUEFUNC(_wrap_IDMEFTime_setUSec), -1); rb_define_method(SwigClassIDMEFTime.klass, "setGmtOffset", VALUEFUNC(_wrap_IDMEFTime_setGmtOffset), -1); rb_define_method(SwigClassIDMEFTime.klass, "getSec", VALUEFUNC(_wrap_IDMEFTime_getSec), -1); rb_define_method(SwigClassIDMEFTime.klass, "getUSec", VALUEFUNC(_wrap_IDMEFTime_getUSec), -1); rb_define_method(SwigClassIDMEFTime.klass, "getGmtOffset", VALUEFUNC(_wrap_IDMEFTime_getGmtOffset), -1); rb_define_method(SwigClassIDMEFTime.klass, "getTime", VALUEFUNC(_wrap_IDMEFTime_getTime), -1); rb_define_method(SwigClassIDMEFTime.klass, "clone", VALUEFUNC(_wrap_IDMEFTime_clone), -1); rb_define_method(SwigClassIDMEFTime.klass, "toString", VALUEFUNC(_wrap_IDMEFTime_toString), -1); rb_define_method(SwigClassIDMEFTime.klass, "to_i", VALUEFUNC(_wrap_IDMEFTime___int__), -1); rb_define_method(SwigClassIDMEFTime.klass, "__long__", VALUEFUNC(_wrap_IDMEFTime___long__), -1); rb_define_method(SwigClassIDMEFTime.klass, "to_f", VALUEFUNC(_wrap_IDMEFTime___float__), -1); rb_define_method(SwigClassIDMEFTime.klass, "to_s", VALUEFUNC(_wrap_IDMEFTime___str__), -1); rb_define_method(SwigClassIDMEFTime.klass, ">=", VALUEFUNC(_wrap_IDMEFTime___ge__), -1); rb_define_method(SwigClassIDMEFTime.klass, "<=", VALUEFUNC(_wrap_IDMEFTime___le__), -1); rb_define_method(SwigClassIDMEFTime.klass, "==", VALUEFUNC(_wrap_IDMEFTime___eq__), -1); rb_define_method(SwigClassIDMEFTime.klass, ">", VALUEFUNC(_wrap_IDMEFTime___gt__), -1); rb_define_method(SwigClassIDMEFTime.klass, "<", VALUEFUNC(_wrap_IDMEFTime___lt__), -1); SwigClassIDMEFTime.mark = 0; SwigClassIDMEFTime.destroy = (void (*)(void *)) free_Prelude_IDMEFTime; SwigClassIDMEFTime.trackObjects = 0; SwigClassIDMEFClass.klass = rb_define_class_under(mPrelude, "IDMEFClass", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEFClass, (void *) &SwigClassIDMEFClass); rb_define_alloc_func(SwigClassIDMEFClass.klass, _wrap_IDMEFClass_allocate); rb_define_method(SwigClassIDMEFClass.klass, "initialize", VALUEFUNC(_wrap_new_IDMEFClass), -1); rb_define_method(SwigClassIDMEFClass.klass, "getDepth", VALUEFUNC(_wrap_IDMEFClass_getDepth), -1); rb_define_method(SwigClassIDMEFClass.klass, "get", VALUEFUNC(_wrap_IDMEFClass_get), -1); rb_define_method(SwigClassIDMEFClass.klass, "getChildCount", VALUEFUNC(_wrap_IDMEFClass_getChildCount), -1); rb_define_method(SwigClassIDMEFClass.klass, "isList", VALUEFUNC(_wrap_IDMEFClass_isList), -1); rb_define_method(SwigClassIDMEFClass.klass, "isKeyedList", VALUEFUNC(_wrap_IDMEFClass_isKeyedList), -1); rb_define_method(SwigClassIDMEFClass.klass, "getName", VALUEFUNC(_wrap_IDMEFClass_getName), -1); rb_define_method(SwigClassIDMEFClass.klass, "toString", VALUEFUNC(_wrap_IDMEFClass_toString), -1); rb_define_method(SwigClassIDMEFClass.klass, "getValueType", VALUEFUNC(_wrap_IDMEFClass_getValueType), -1); rb_define_method(SwigClassIDMEFClass.klass, "getAttributes", VALUEFUNC(_wrap_IDMEFClass_getAttributes), -1); rb_define_method(SwigClassIDMEFClass.klass, "getPath", VALUEFUNC(_wrap_IDMEFClass_getPath), -1); rb_define_method(SwigClassIDMEFClass.klass, "getEnumValues", VALUEFUNC(_wrap_IDMEFClass_getEnumValues), -1); rb_define_method(SwigClassIDMEFClass.klass, "getApplicableOperator", VALUEFUNC(_wrap_IDMEFClass_getApplicableOperator), -1); SwigClassIDMEFClass.mark = 0; SwigClassIDMEFClass.destroy = (void (*)(void *)) free_Prelude_IDMEFClass; SwigClassIDMEFClass.trackObjects = 0; SwigClassIDMEF.klass = rb_define_class_under(mPrelude, "IDMEF", rb_cObject); SWIG_TypeClientData(SWIGTYPE_p_Prelude__IDMEF, (void *) &SwigClassIDMEF); rb_define_alloc_func(SwigClassIDMEF.klass, _wrap_IDMEF_allocate); rb_define_method(SwigClassIDMEF.klass, "initialize", VALUEFUNC(_wrap_new_IDMEF), -1); rb_define_method(SwigClassIDMEF.klass, "set", VALUEFUNC(_wrap_IDMEF_set), -1); rb_define_method(SwigClassIDMEF.klass, "clone", VALUEFUNC(_wrap_IDMEF_clone), -1); rb_define_method(SwigClassIDMEF.klass, "getId", VALUEFUNC(_wrap_IDMEF_getId), -1); rb_define_method(SwigClassIDMEF.klass, "toString", VALUEFUNC(_wrap_IDMEF_toString), -1); rb_define_method(SwigClassIDMEF.klass, "toJSON", VALUEFUNC(_wrap_IDMEF_toJSON), -1); rb_define_method(SwigClassIDMEF.klass, "to_s", VALUEFUNC(_wrap_IDMEF___str__), -1); rb_define_method(SwigClassIDMEF.klass, "==", VALUEFUNC(_wrap_IDMEF___eq__), -1); rb_define_method(SwigClassIDMEF.klass, "write", VALUEFUNC(_wrap_IDMEF_write), -1); rb_define_method(SwigClassIDMEF.klass, "read", VALUEFUNC(_wrap_IDMEF_read), -1); rb_define_method(SwigClassIDMEF.klass, ">>", VALUEFUNC(_wrap_IDMEF___rshift__), -1); rb_define_method(SwigClassIDMEF.klass, "<<", VALUEFUNC(_wrap_IDMEF___lshift__), -1); rb_define_method(SwigClassIDMEF.klass, "get", VALUEFUNC(_wrap_IDMEF_get), -1); SwigClassIDMEF.mark = 0; SwigClassIDMEF.destroy = (void (*)(void *)) free_Prelude_IDMEF; SwigClassIDMEF.trackObjects = 0; } libprelude-5.2.0/PaxHeaders.14770/libmissing0000644000000000000000000000011013726163657016743 xustar000000000000000024 mtime=1599661999.166 24 atime=1599662006.646 24 ctime=1599661999.166 libprelude-5.2.0/libmissing/0000755000000000000000000000000013726163657016023 5ustar00rootroot00000000000000libprelude-5.2.0/libmissing/PaxHeaders.14770/m40000644000000000000000000000011013726163657017263 xustar000000000000000024 mtime=1599661999.022 24 atime=1599662006.646 24 ctime=1599661999.022 libprelude-5.2.0/libmissing/m4/0000755000000000000000000000000013726163657016343 5ustar00rootroot00000000000000libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/00gnulib.m40000644000000000000000000000011013726163410021205 xustar000000000000000024 mtime=1599661832.548 24 atime=1599661832.744 24 ctime=1599661998.152 libprelude-5.2.0/libmissing/m4/00gnulib.m40000644000000000000000000000415213726163410020212 0ustar00rootroot00000000000000# 00gnulib.m4 serial 3 dnl Copyright (C) 2009-2018 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. dnl This file must be named something that sorts before all other dnl gnulib-provided .m4 files. It is needed until such time as we can dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE and dnl m4_divert semantics. # Until autoconf 2.63, handling of the diversion stack required m4_init # to be called first; but this does not happen with aclocal. Wrapping # the entire execution in another layer of the diversion stack fixes this. # Worse, prior to autoconf 2.62, m4_wrap depended on the underlying m4 # for whether it was FIFO or LIFO; in order to properly balance with # m4_init, we need to undo our push just before anything wrapped within # the m4_init body. The way to ensure this is to wrap both sides of # m4_init with a one-shot macro that does the pop at the right time. m4_ifndef([_m4_divert_diversion], [m4_divert_push([KILL]) m4_define([gl_divert_fixup], [m4_divert_pop()m4_define([$0])]) m4_define([m4_init], [gl_divert_fixup()]m4_defn([m4_init])[gl_divert_fixup()])]) # AC_DEFUN_ONCE([NAME], VALUE) # ---------------------------- # Define NAME to expand to VALUE on the first use (whether by direct # expansion, or by AC_REQUIRE), and to nothing on all subsequent uses. # Avoid bugs in AC_REQUIRE in Autoconf 2.63 and earlier. This # definition is slower than the version in Autoconf 2.64, because it # can only use interfaces that existed since 2.59; but it achieves the # same effect. Quoting is necessary to avoid confusing Automake. m4_version_prereq([2.63.263], [], [m4_define([AC][_DEFUN_ONCE], [AC][_DEFUN([$1], [AC_REQUIRE([_gl_DEFUN_ONCE([$1])], [m4_indir([_gl_DEFUN_ONCE([$1])])])])]dnl [AC][_DEFUN([_gl_DEFUN_ONCE([$1])], [$2])])]) # gl_00GNULIB # ----------- # Witness macro that this file has been included. Needed to force # Automake to include this file prior to all other gnulib .m4 files. AC_DEFUN([gl_00GNULIB]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/absolute-header.m40000644000000000000000000000011013726163410022631 xustar000000000000000024 mtime=1599661832.548 24 atime=1599661832.744 24 ctime=1599661998.154 libprelude-5.2.0/libmissing/m4/absolute-header.m40000644000000000000000000001034713726163410021641 0ustar00rootroot00000000000000# absolute-header.m4 serial 16 dnl Copyright (C) 2006-2018 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. dnl From Derek Price. # gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...) # --------------------------------------- # Find the absolute name of a header file, testing first if the header exists. # If the header were sys/inttypes.h, this macro would define # ABSOLUTE_SYS_INTTYPES_H to the '""' quoted absolute name of sys/inttypes.h # in config.h # (e.g. '#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"'). # The three "///" are to pacify Sun C 5.8, which otherwise would say # "warning: #include of /usr/include/... may be non-portable". # Use '""', not '<>', so that the /// cannot be confused with a C99 comment. # Note: This macro assumes that the header file is not empty after # preprocessing, i.e. it does not only define preprocessor macros but also # provides some type/enum definitions or function/variable declarations. AC_DEFUN([gl_ABSOLUTE_HEADER], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_PREPROC_REQUIRE()dnl dnl FIXME: gl_absolute_header and ac_header_exists must be used unquoted dnl until we can assume autoconf 2.64 or newer. m4_foreach_w([gl_HEADER_NAME], [$1], [AS_VAR_PUSHDEF([gl_absolute_header], [gl_cv_absolute_]m4_defn([gl_HEADER_NAME]))dnl AC_CACHE_CHECK([absolute name of <]m4_defn([gl_HEADER_NAME])[>], m4_defn([gl_absolute_header]), [AS_VAR_PUSHDEF([ac_header_exists], [ac_cv_header_]m4_defn([gl_HEADER_NAME]))dnl AC_CHECK_HEADERS_ONCE(m4_defn([gl_HEADER_NAME]))dnl if test AS_VAR_GET(ac_header_exists) = yes; then gl_ABSOLUTE_HEADER_ONE(m4_defn([gl_HEADER_NAME])) fi AS_VAR_POPDEF([ac_header_exists])dnl ])dnl AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_defn([gl_HEADER_NAME])), ["AS_VAR_GET(gl_absolute_header)"], [Define this to an absolute name of <]m4_defn([gl_HEADER_NAME])[>.]) AS_VAR_POPDEF([gl_absolute_header])dnl ])dnl ])# gl_ABSOLUTE_HEADER # gl_ABSOLUTE_HEADER_ONE(HEADER) # ------------------------------ # Like gl_ABSOLUTE_HEADER, except that: # - it assumes that the header exists, # - it uses the current CPPFLAGS, # - it does not cache the result, # - it is silent. AC_DEFUN([gl_ABSOLUTE_HEADER_ONE], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote([$1])[[>]])]) dnl AIX "xlc -E" and "cc -E" omit #line directives for header files dnl that contain only a #include of other header files and no dnl non-comment tokens of their own. This leads to a failure to dnl detect the absolute name of , , dnl and others. The workaround is to force preservation of comments dnl through option -C. This ensures all necessary #line directives dnl are present. GCC supports option -C as well. case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac changequote(,) case "$host_os" in mingw*) dnl For the sake of native Windows compilers (excluding gcc), dnl treat backslash as a directory separator, like /. dnl Actually, these compilers use a double-backslash as dnl directory separator, inside the dnl # line "filename" dnl directives. gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac dnl A sed expression that turns a string into a basic regular dnl expression, for use within "/.../". gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo '$1' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' changequote([,]) dnl eval is necessary to expand gl_absname_cpp. dnl Ultrix and Pyramid sh refuse to redirect output of eval, dnl so use subshell. AS_VAR_SET([gl_cv_absolute_]AS_TR_SH([[$1]]), [`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | sed -n "$gl_absolute_header_sed"`]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/alloca.m40000644000000000000000000000011013726163410021020 xustar000000000000000024 mtime=1599661832.548 24 atime=1599661832.744 24 ctime=1599661998.156 libprelude-5.2.0/libmissing/m4/alloca.m40000644000000000000000000001037213726163410020026 0ustar00rootroot00000000000000# alloca.m4 serial 14 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2018 Free Software Foundation, dnl 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_FUNC_ALLOCA], [ AC_REQUIRE([AC_FUNC_ALLOCA]) if test $ac_cv_func_alloca_works = no; then gl_PREREQ_ALLOCA fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then AC_CACHE_CHECK([for alloca as a compiler built-in], [gl_cv_rpl_alloca], [ AC_EGREP_CPP([Need own alloca], [ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif ], [gl_cv_rpl_alloca=yes], [gl_cv_rpl_alloca=no]) ]) if test $gl_cv_rpl_alloca = yes; then dnl OK, alloca can be implemented through a compiler built-in. AC_DEFINE([HAVE_ALLOCA], [1], [Define to 1 if you have 'alloca' after including , a header that may be supplied by this distribution.]) ALLOCA_H=alloca.h else dnl alloca exists as a library function, i.e. it is slow and probably dnl a memory leak. Don't define HAVE_ALLOCA in this case. ALLOCA_H= fi else ALLOCA_H=alloca.h fi AC_SUBST([ALLOCA_H]) AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"]) ]) # Prerequisites of lib/alloca.c. # STACK_DIRECTION is already handled by AC_FUNC_ALLOCA. AC_DEFUN([gl_PREREQ_ALLOCA], [:]) # This works around a bug in autoconf <= 2.68. # See . m4_version_prereq([2.69], [] ,[ # This is taken from the following Autoconf patch: # https://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=6cd9f12520b0d6f76d3230d7565feba1ecf29497 # _AC_LIBOBJ_ALLOCA # ----------------- # Set up the LIBOBJ replacement of 'alloca'. Well, not exactly # AC_LIBOBJ since we actually set the output variable 'ALLOCA'. # Nevertheless, for Automake, AC_LIBSOURCES it. m4_define([_AC_LIBOBJ_ALLOCA], [# The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. AC_LIBSOURCES(alloca.c) AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using 'alloca.c'.]) AC_CACHE_CHECK(whether 'alloca.c' needs Cray hooks, ac_cv_os_cray, [AC_EGREP_CPP(webecray, [#if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif ], ac_cv_os_cray=yes, ac_cv_os_cray=no)]) if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do AC_CHECK_FUNC($ac_func, [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func, [Define to one of '_getb67', 'GETB67', 'getb67' for Cray-2 and Cray-YMP systems. This function is required for 'alloca.c' support on those systems.]) break]) done fi AC_CACHE_CHECK([stack direction for C alloca], [ac_cv_c_stack_direction], [AC_RUN_IFELSE([AC_LANG_SOURCE( [AC_INCLUDES_DEFAULT int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; }])], [ac_cv_c_stack_direction=1], [ac_cv_c_stack_direction=-1], [ac_cv_c_stack_direction=0])]) AH_VERBATIM([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ @%:@undef STACK_DIRECTION])dnl AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) ])# _AC_LIBOBJ_ALLOCA ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/arpa_inet_h.m40000644000000000000000000000011013726163410022036 xustar000000000000000024 mtime=1599661832.549 24 atime=1599661832.744 24 ctime=1599661998.157 libprelude-5.2.0/libmissing/m4/arpa_inet_h.m40000644000000000000000000000357113726163410021047 0ustar00rootroot00000000000000# arpa_inet_h.m4 serial 13 dnl Copyright (C) 2006, 2008-2018 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. dnl Written by Simon Josefsson and Bruno Haible AC_DEFUN([gl_HEADER_ARPA_INET], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS]) AC_CHECK_HEADERS_ONCE([arpa/inet.h]) if test $ac_cv_header_arpa_inet_h = yes; then HAVE_ARPA_INET_H=1 else HAVE_ARPA_INET_H=0 fi AC_SUBST([HAVE_ARPA_INET_H]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([arpa/inet.h]) AC_REQUIRE([gl_FEATURES_H]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* On some systems, this header is not self-consistent. */ #if !(defined __GLIBC__ || defined __UCLIBC__) # include #endif #ifdef __TANDEM # include #endif #include ]], [inet_ntop inet_pton]) ]) AC_DEFUN([gl_ARPA_INET_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_ARPA_INET_H_DEFAULTS], [ GNULIB_INET_NTOP=0; AC_SUBST([GNULIB_INET_NTOP]) GNULIB_INET_PTON=0; AC_SUBST([GNULIB_INET_PTON]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_INET_NTOP=1; AC_SUBST([HAVE_DECL_INET_NTOP]) HAVE_DECL_INET_PTON=1; AC_SUBST([HAVE_DECL_INET_PTON]) REPLACE_INET_NTOP=0; AC_SUBST([REPLACE_INET_NTOP]) REPLACE_INET_PTON=0; AC_SUBST([REPLACE_INET_PTON]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/asm-underscore.m40000644000000000000000000000011013726163410022514 xustar000000000000000024 mtime=1599661832.549 24 atime=1599661832.744 24 ctime=1599661998.168 libprelude-5.2.0/libmissing/m4/asm-underscore.m40000644000000000000000000000443713726163410021527 0ustar00rootroot00000000000000# asm-underscore.m4 serial 4 dnl Copyright (C) 2010-2018 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. dnl From Bruno Haible. Based on as-underscore.m4 in GNU clisp. # gl_ASM_SYMBOL_PREFIX # Tests for the prefix of C symbols at the assembly language level and the # linker level. This prefix is either an underscore or empty. Defines the # C macro USER_LABEL_PREFIX to this prefix, and sets ASM_SYMBOL_PREFIX to # a stringified variant of this prefix. AC_DEFUN([gl_ASM_SYMBOL_PREFIX], [ AC_REQUIRE([AC_PROG_EGREP]) dnl We don't use GCC's __USER_LABEL_PREFIX__ here, because dnl 1. It works only for GCC. dnl 2. It is incorrectly defined on some platforms, in some GCC versions. AC_REQUIRE([gl_C_ASM]) AC_CACHE_CHECK( [whether C symbols are prefixed with underscore at the linker level], [gl_cv_prog_as_underscore], [cat > conftest.c </dev/null 2>&1 if LC_ALL=C $EGREP '(^|[[^a-zA-Z0-9_]])_foo([[^a-zA-Z0-9_]]|$)' conftest.$gl_asmext >/dev/null; then gl_cv_prog_as_underscore=yes else gl_cv_prog_as_underscore=no fi rm -f conftest* ]) if test $gl_cv_prog_as_underscore = yes; then USER_LABEL_PREFIX=_ else USER_LABEL_PREFIX= fi AC_DEFINE_UNQUOTED([USER_LABEL_PREFIX], [$USER_LABEL_PREFIX], [Define to the prefix of C symbols at the assembler and linker level, either an underscore or empty.]) ASM_SYMBOL_PREFIX='"'${USER_LABEL_PREFIX}'"' AC_SUBST([ASM_SYMBOL_PREFIX]) ]) # gl_C_ASM # Determines how to produce an assembly language file from C source code. # Sets the variables: # gl_asmext - the extension of assembly language output, # gl_c_asm_opt - the C compiler option that produces assembly language output. AC_DEFUN([gl_C_ASM], [ AC_EGREP_CPP([MicrosoftCompiler], [ #ifdef _MSC_VER MicrosoftCompiler #endif ], [gl_asmext='asm' gl_c_asm_opt='-c -Fa' ], [gl_asmext='s' gl_c_asm_opt='-S' ]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/btowc.m40000644000000000000000000000011013726163410020703 xustar000000000000000024 mtime=1599661832.549 24 atime=1599661832.744 24 ctime=1599661998.169 libprelude-5.2.0/libmissing/m4/btowc.m40000644000000000000000000000647413726163410017721 0ustar00rootroot00000000000000# btowc.m4 serial 11 dnl Copyright (C) 2008-2018 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_FUNC_BTOWC], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) dnl Check whether is usable at all, first. Otherwise the test dnl program below may lead to an endless loop. See dnl . AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) AC_CHECK_FUNCS_ONCE([btowc]) if test $ac_cv_func_btowc = no; then HAVE_BTOWC=0 else AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Cygwin 1.7.2 btowc('\0') is WEOF, not 0. AC_CACHE_CHECK([whether btowc(0) is correct], [gl_cv_func_btowc_nul], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (btowc ('\0') != 0) return 1; return 0; }]])], [gl_cv_func_btowc_nul=yes], [gl_cv_func_btowc_nul=no], [ changequote(,)dnl case "$host_os" in # Guess no on Cygwin. cygwin*) gl_cv_func_btowc_nul="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_btowc_nul="guessing yes" ;; # Guess yes otherwise. *) gl_cv_func_btowc_nul="guessing yes" ;; esac changequote([,])dnl ]) ]) dnl IRIX 6.5 btowc(EOF) is 0xFF, not WEOF. AC_CACHE_CHECK([whether btowc(EOF) is correct], [gl_cv_func_btowc_eof], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on IRIX. irix*) gl_cv_func_btowc_eof="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_btowc_eof="guessing yes" ;; # Guess yes otherwise. *) gl_cv_func_btowc_eof="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { if (btowc (EOF) != WEOF) return 1; } return 0; }]])], [gl_cv_func_btowc_eof=yes], [gl_cv_func_btowc_eof=no], [:]) fi ]) case "$gl_cv_func_btowc_nul" in *yes) ;; *) REPLACE_BTOWC=1 ;; esac case "$gl_cv_func_btowc_eof" in *yes) ;; *) REPLACE_BTOWC=1 ;; esac fi ]) # Prerequisites of lib/btowc.c. AC_DEFUN([gl_PREREQ_BTOWC], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/builtin-expect.m40000644000000000000000000000010713726163410022527 xustar000000000000000024 mtime=1599661832.549 24 atime=1599661832.744 23 ctime=1599661998.17 libprelude-5.2.0/libmissing/m4/builtin-expect.m40000644000000000000000000000302313726163410021522 0ustar00rootroot00000000000000dnl Check for __builtin_expect. dnl Copyright 2016-2018 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. dnl Written by Paul Eggert. AC_DEFUN([gl___BUILTIN_EXPECT], [ AC_CACHE_CHECK([for __builtin_expect], [gl_cv___builtin_expect], [AC_LINK_IFELSE( [AC_LANG_SOURCE([[ int main (int argc, char **argv) { argc = __builtin_expect (argc, 100); return argv[argc != 100][0]; }]])], [gl_cv___builtin_expect=yes], [AC_LINK_IFELSE( [AC_LANG_SOURCE([[ #include int main (int argc, char **argv) { argc = __builtin_expect (argc, 100); return argv[argc != 100][0]; }]])], [gl_cv___builtin_expect="in "], [gl_cv___builtin_expect=no])])]) if test "$gl_cv___builtin_expect" = yes; then AC_DEFINE([HAVE___BUILTIN_EXPECT], [1]) elif test "$gl_cv___builtin_expect" = "in "; then AC_DEFINE([HAVE___BUILTIN_EXPECT], [2]) fi AH_VERBATIM([HAVE___BUILTIN_EXPECT], [/* Define to 1 if the compiler supports __builtin_expect, and to 2 if does. */ #undef HAVE___BUILTIN_EXPECT #ifndef HAVE___BUILTIN_EXPECT # define __builtin_expect(e, c) (e) #elif HAVE___BUILTIN_EXPECT == 2 # include #endif ]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/close.m40000644000000000000000000000011013726163410020672 xustar000000000000000024 mtime=1599661832.549 24 atime=1599661832.744 24 ctime=1599661998.172 libprelude-5.2.0/libmissing/m4/close.m40000644000000000000000000000222113726163410017672 0ustar00rootroot00000000000000# close.m4 serial 9 dnl Copyright (C) 2008-2018 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_FUNC_CLOSE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) m4_ifdef([gl_MSVC_INVAL], [ AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_CLOSE=1 fi ]) m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [ gl_PREREQ_SYS_H_WINSOCK2 if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then dnl Even if the 'socket' module is not used here, another part of the dnl application may use it and pass file descriptors that refer to dnl sockets to the close() function. So enable the support for sockets. REPLACE_CLOSE=1 fi ]) dnl Replace close() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ if test $REPLACE_CLOSE = 0; then gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_CLOSE=1 fi fi ]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/codeset.m40000644000000000000000000000010713726163410021221 xustar000000000000000023 mtime=1599661832.55 24 atime=1599661832.744 24 ctime=1599661998.174 libprelude-5.2.0/libmissing/m4/codeset.m40000644000000000000000000000151213726163410020215 0ustar00rootroot00000000000000# codeset.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016 Free Software Foundation, dnl 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. dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[char* cs = nl_langinfo(CODESET); return !cs;]])], [am_cv_langinfo_codeset=yes], [am_cv_langinfo_codeset=no]) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE([HAVE_LANGINFO_CODESET], [1], [Define if you have and nl_langinfo(CODESET).]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/cond.m40000644000000000000000000000010713726163410020516 xustar000000000000000023 mtime=1599661832.55 24 atime=1599661832.744 24 ctime=1599661998.175 libprelude-5.2.0/libmissing/m4/cond.m40000644000000000000000000000050713726163410017515 0ustar00rootroot00000000000000# cond.m4 serial 2 dnl Copyright (C) 2008-2018 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_COND], [ AC_REQUIRE([gl_THREADLIB]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/ctype.m40000644000000000000000000000010713726163410020717 xustar000000000000000023 mtime=1599661832.55 24 atime=1599661832.744 24 ctime=1599661998.177 libprelude-5.2.0/libmissing/m4/ctype.m40000644000000000000000000000177513726163410017726 0ustar00rootroot00000000000000# ctype_h.m4 serial 6 dnl Copyright (C) 2009-2018 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_CTYPE_H], [ AC_REQUIRE([gl_CTYPE_H_DEFAULTS]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_NEXT_HEADERS([ctype.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [isblank]) ]) AC_DEFUN([gl_CTYPE_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_CTYPE_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_CTYPE_H_DEFAULTS], [ GNULIB_ISBLANK=0; AC_SUBST([GNULIB_ISBLANK]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_ISBLANK=1; AC_SUBST([HAVE_ISBLANK]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/dup2.m40000644000000000000000000000010713726163410020445 xustar000000000000000023 mtime=1599661832.55 24 atime=1599661832.745 24 ctime=1599661998.179 libprelude-5.2.0/libmissing/m4/dup2.m40000644000000000000000000001013413726163410017441 0ustar00rootroot00000000000000#serial 25 dnl Copyright (C) 2002, 2005, 2007, 2009-2018 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_FUNC_DUP2], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) m4_ifdef([gl_FUNC_DUP2_OBSOLETE], [ AC_CHECK_FUNCS_ONCE([dup2]) if test $ac_cv_func_dup2 = no; then HAVE_DUP2=0 fi ], [ AC_DEFINE([HAVE_DUP2], [1], [Define to 1 if you have the 'dup2' function.]) ]) if test $HAVE_DUP2 = 1; then AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], [AC_RUN_IFELSE([ AC_LANG_PROGRAM( [[#include #include #include #include #include #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif ]], [[int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) != 1) result |= 2; #ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif close (0); if (dup2 (0, 0) != -1) result |= 8; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, bad_fd) == -1 && errno != EBADF) result |= 16; /* Flush out some cygwin core dumps. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; dup2 (2, 255); dup2 (2, 256); /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ { int fd = open (".", O_RDONLY); if (fd == -1) result |= 64; else if (dup2 (fd, fd + 1) == -1) result |= 128; close (fd); } return result;]]) ], [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no], [case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 gl_cv_func_dup2_works="guessing no" ;; aix* | freebsd*) # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, # not EBADF. gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. gl_cv_func_dup2_works="guessing no" ;; *-android*) # implemented using dup3(), which fails if oldfd == newfd gl_cv_func_dup2_works="guessing no" ;; os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac]) ]) case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 AC_CHECK_FUNCS([setdtablesize]) ;; esac fi dnl Replace dup2() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then if test $HAVE_DUP2 = 1; then REPLACE_DUP2=1 fi fi ]) ]) # Prerequisites of lib/dup2.c. AC_DEFUN([gl_PREREQ_DUP2], []) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/eealloc.m40000644000000000000000000000010613726163410021176 xustar000000000000000023 mtime=1599661832.55 24 atime=1599661832.745 23 ctime=1599661998.18 libprelude-5.2.0/libmissing/m4/eealloc.m40000644000000000000000000000166713726163410020206 0ustar00rootroot00000000000000# eealloc.m4 serial 3 dnl Copyright (C) 2003, 2009-2018 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_EEALLOC], [ AC_REQUIRE([gl_EEMALLOC]) AC_REQUIRE([gl_EEREALLOC]) ]) AC_DEFUN([gl_EEMALLOC], [ _AC_FUNC_MALLOC_IF( [gl_cv_func_malloc_0_nonnull=1], [gl_cv_func_malloc_0_nonnull=0]) AC_DEFINE_UNQUOTED([MALLOC_0_IS_NONNULL], [$gl_cv_func_malloc_0_nonnull], [If malloc(0) is != NULL, define this to 1. Otherwise define this to 0.]) ]) AC_DEFUN([gl_EEREALLOC], [ _AC_FUNC_REALLOC_IF( [gl_cv_func_realloc_0_nonnull=1], [gl_cv_func_realloc_0_nonnull=0]) AC_DEFINE_UNQUOTED([REALLOC_0_IS_NONNULL], [$gl_cv_func_realloc_0_nonnull], [If realloc(NULL,0) is != NULL, define this to 1. Otherwise define this to 0.]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/environ.m40000644000000000000000000000010713726163410021253 xustar000000000000000023 mtime=1599661832.55 24 atime=1599661832.745 24 ctime=1599661998.182 libprelude-5.2.0/libmissing/m4/environ.m40000644000000000000000000000261613726163410020255 0ustar00rootroot00000000000000# environ.m4 serial 6 dnl Copyright (C) 2001-2004, 2006-2018 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_ONCE([gl_ENVIRON], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl Persuade glibc to declare environ. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([unistd.h]) gt_CHECK_VAR_DECL( [#if HAVE_UNISTD_H #include #endif /* mingw, BeOS, Haiku declare environ in , not in . */ #include ], [environ]) if test $gt_cv_var_environ_declaration != yes; then HAVE_DECL_ENVIRON=0 fi ]) # Check if a variable is properly declared. # gt_CHECK_VAR_DECL(includes,variable) AC_DEFUN([gt_CHECK_VAR_DECL], [ define([gt_cv_var], [gt_cv_var_]$2[_declaration]) AC_MSG_CHECKING([if $2 is properly declared]) AC_CACHE_VAL([gt_cv_var], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[$1 extern struct { int foo; } $2;]], [[$2.foo = 1;]])], [gt_cv_var=no], [gt_cv_var=yes])]) AC_MSG_RESULT([$gt_cv_var]) if test $gt_cv_var = yes; then AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1, [Define if you have the declaration of $2.]) fi undefine([gt_cv_var]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/errno_h.m40000644000000000000000000000011013726163410021221 xustar000000000000000024 mtime=1599661832.551 24 atime=1599661832.745 24 ctime=1599661998.184 libprelude-5.2.0/libmissing/m4/errno_h.m40000644000000000000000000000623413726163410020231 0ustar00rootroot00000000000000# errno_h.m4 serial 12 dnl Copyright (C) 2004, 2006, 2008-2018 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_ONCE([gl_HEADER_ERRNO_H], [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [ AC_EGREP_CPP([booboo],[ #include #if !defined ETXTBSY booboo #endif #if !defined ENOMSG booboo #endif #if !defined EIDRM booboo #endif #if !defined ENOLINK booboo #endif #if !defined EPROTO booboo #endif #if !defined EMULTIHOP booboo #endif #if !defined EBADMSG booboo #endif #if !defined EOVERFLOW booboo #endif #if !defined ENOTSUP booboo #endif #if !defined ENETRESET booboo #endif #if !defined ECONNABORTED booboo #endif #if !defined ESTALE booboo #endif #if !defined EDQUOT booboo #endif #if !defined ECANCELED booboo #endif #if !defined EOWNERDEAD booboo #endif #if !defined ENOTRECOVERABLE booboo #endif #if !defined EILSEQ booboo #endif ], [gl_cv_header_errno_h_complete=no], [gl_cv_header_errno_h_complete=yes]) ]) if test $gl_cv_header_errno_h_complete = yes; then ERRNO_H='' else gl_NEXT_HEADERS([errno.h]) ERRNO_H='errno.h' fi AC_SUBST([ERRNO_H]) AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"]) gl_REPLACE_ERRNO_VALUE([EMULTIHOP]) gl_REPLACE_ERRNO_VALUE([ENOLINK]) gl_REPLACE_ERRNO_VALUE([EOVERFLOW]) ]) # Assuming $1 = EOVERFLOW. # The EOVERFLOW errno value ought to be defined in , according to # POSIX. But some systems (like OpenBSD 4.0 or AIX 3) don't define it, and # some systems (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined. # Check for the value of EOVERFLOW. # Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE. AC_DEFUN([gl_REPLACE_ERRNO_VALUE], [ if test -n "$ERRNO_H"; then AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [ AC_EGREP_CPP([yes],[ #include #ifdef ]$1[ yes #endif ], [gl_cv_header_errno_h_]$1[=yes], [gl_cv_header_errno_h_]$1[=no]) if test $gl_cv_header_errno_h_]$1[ = no; then AC_EGREP_CPP([yes],[ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef ]$1[ yes #endif ], [gl_cv_header_errno_h_]$1[=hidden]) if test $gl_cv_header_errno_h_]$1[ = hidden; then dnl The macro exists but is hidden. dnl Define it to the same value. AC_COMPUTE_INT([gl_cv_header_errno_h_]$1, $1, [ #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include ]) fi fi ]) case $gl_cv_header_errno_h_]$1[ in yes | no) ]$1[_HIDDEN=0; ]$1[_VALUE= ;; *) ]$1[_HIDDEN=1; ]$1[_VALUE="$gl_cv_header_errno_h_]$1[" ;; esac AC_SUBST($1[_HIDDEN]) AC_SUBST($1[_VALUE]) fi ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. dnl Remove this when we can assume autoconf >= 2.61. m4_ifdef([AC_COMPUTE_INT], [], [ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/exponentd.m40000644000000000000000000000011013726163410021571 xustar000000000000000024 mtime=1599661832.551 24 atime=1599661832.745 24 ctime=1599661998.185 libprelude-5.2.0/libmissing/m4/exponentd.m40000644000000000000000000000755213726163410020605 0ustar00rootroot00000000000000# exponentd.m4 serial 3 dnl Copyright (C) 2007-2008, 2010-2018 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_DOUBLE_EXPONENT_LOCATION], [ AC_CACHE_CHECK([where to find the exponent in a 'double'], [gl_cv_cc_double_expbit0], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #include #define NWORDS \ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { double value; unsigned int word[NWORDS]; } memory_double; static unsigned int ored_words[NWORDS]; static unsigned int anded_words[NWORDS]; static void add_to_ored_words (double x) { memory_double m; size_t i; /* Clear it first, in case sizeof (double) < sizeof (memory_double). */ memset (&m, 0, sizeof (memory_double)); m.value = x; for (i = 0; i < NWORDS; i++) { ored_words[i] |= m.word[i]; anded_words[i] &= m.word[i]; } } int main () { size_t j; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; for (j = 0; j < NWORDS; j++) anded_words[j] = ~ (unsigned int) 0; add_to_ored_words (0.25); add_to_ored_words (0.5); add_to_ored_words (1.0); add_to_ored_words (2.0); add_to_ored_words (4.0); /* Remove bits that are common (e.g. if representation of the first mantissa bit is explicit). */ for (j = 0; j < NWORDS; j++) ored_words[j] &= ~anded_words[j]; /* Now find the nonzero word. */ for (j = 0; j < NWORDS; j++) if (ored_words[j] != 0) break; if (j < NWORDS) { size_t i; for (i = j + 1; i < NWORDS; i++) if (ored_words[i] != 0) { fprintf (fp, "unknown"); return (fclose (fp) != 0); } for (i = 0; ; i++) if ((ored_words[j] >> i) & 1) { fprintf (fp, "word %d bit %d", (int) j, (int) i); return (fclose (fp) != 0); } } fprintf (fp, "unknown"); return (fclose (fp) != 0); } ]])], [gl_cv_cc_double_expbit0=`cat conftest.out`], [gl_cv_cc_double_expbit0="unknown"], [ dnl On ARM, there are two 'double' floating-point formats, used by dnl different sets of instructions: The older FPA instructions assume dnl that they are stored in big-endian word order, while the words dnl (like integer types) are stored in little-endian byte order. dnl The newer VFP instructions assume little-endian order dnl consistently. AC_EGREP_CPP([mixed_endianness], [ #if defined arm || defined __arm || defined __arm__ mixed_endianness #endif ], [gl_cv_cc_double_expbit0="unknown"], [ pushdef([AC_MSG_CHECKING],[:])dnl pushdef([AC_MSG_RESULT],[:])dnl pushdef([AC_MSG_RESULT_UNQUOTED],[:])dnl AC_C_BIGENDIAN( [gl_cv_cc_double_expbit0="word 0 bit 20"], [gl_cv_cc_double_expbit0="word 1 bit 20"], [gl_cv_cc_double_expbit0="unknown"]) popdef([AC_MSG_RESULT_UNQUOTED])dnl popdef([AC_MSG_RESULT])dnl popdef([AC_MSG_CHECKING])dnl ]) ]) rm -f conftest.out ]) case "$gl_cv_cc_double_expbit0" in word*bit*) word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'` AC_DEFINE_UNQUOTED([DBL_EXPBIT0_WORD], [$word], [Define as the word index where to find the exponent of 'double'.]) AC_DEFINE_UNQUOTED([DBL_EXPBIT0_BIT], [$bit], [Define as the bit index in the word where to find bit 0 of the exponent of 'double'.]) ;; esac ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/extensions.m40000644000000000000000000000011013726163410021764 xustar000000000000000024 mtime=1599661832.551 24 atime=1599661832.745 24 ctime=1599661998.187 libprelude-5.2.0/libmissing/m4/extensions.m40000644000000000000000000001572713726163410021003 0ustar00rootroot00000000000000# serial 18 -*- Autoconf -*- # Enable extensions on systems that normally disable them. # Copyright (C) 2003, 2006-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from git # Autoconf. Perhaps we can remove this once we can assume Autoconf # 2.70 or later everywhere, but since Autoconf mutates rapidly # enough in this area it's likely we'll need to redefine # AC_USE_SYSTEM_EXTENSIONS for quite some time. # If autoconf reports a warning # warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS # or warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS # the fix is # 1) to ensure that AC_USE_SYSTEM_EXTENSIONS is never directly invoked # but always AC_REQUIREd, # 2) to ensure that for each occurrence of # AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) # or # AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # the corresponding gnulib module description has 'extensions' among # its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS # invocation occurs in gl_EARLY, not in gl_INIT. # AC_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. # # Remember that #undef in AH_VERBATIM gets replaced with #define by # AC_DEFINE. The goal here is to define all known feature-enabling # macros, then, if reports of conflicts are made, disable macros that # cause problems on some platforms (such as __EXTENSIONS__). AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS], [AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl AC_BEFORE([$0], [AC_RUN_IFELSE])dnl AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=]) if test "$MINIX" = yes; then AC_DEFINE([_POSIX_SOURCE], [1], [Define to 1 if you need to in order for 'stat' and other things to work.]) AC_DEFINE([_POSIX_1_SOURCE], [2], [Define to 2 if the system does not provide POSIX.1 features except with this defined.]) AC_DEFINE([_MINIX], [1], [Define to 1 if on MINIX.]) AC_DEFINE([_NETBSD_SOURCE], [1], [Define to 1 to make NetBSD features available. MINIX 3 needs this.]) fi dnl Use a different key than __EXTENSIONS__, as that name broke existing dnl configure.ac when using autoheader 2.62. AH_VERBATIM([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on macOS. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable NetBSD extensions on NetBSD. */ #ifndef _NETBSD_SOURCE # undef _NETBSD_SOURCE #endif /* Enable OpenBSD extensions on NetBSD. */ #ifndef _OPENBSD_SOURCE # undef _OPENBSD_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ #ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ # undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ # undef __STDC_WANT_IEC_60559_BFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__ # undef __STDC_WANT_IEC_60559_DFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # undef __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ # undef __STDC_WANT_IEC_60559_TYPES_EXT__ #endif /* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ #ifndef __STDC_WANT_LIB_EXT2__ # undef __STDC_WANT_LIB_EXT2__ #endif /* Enable extensions specified by ISO/IEC 24747:2009. */ #ifndef __STDC_WANT_MATH_SPEC_FUNCS__ # undef __STDC_WANT_MATH_SPEC_FUNCS__ #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions if necessary. HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif /* Enable X/Open compliant socket functions that do not require linking with -lxnet on HP-UX 11.11. */ #ifndef _HPUX_ALT_XOPEN_SOCKET_API # undef _HPUX_ALT_XOPEN_SOCKET_API #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif ]) AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], [ac_cv_safe_to_define___extensions__], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ # define __EXTENSIONS__ 1 ]AC_INCLUDES_DEFAULT])], [ac_cv_safe_to_define___extensions__=yes], [ac_cv_safe_to_define___extensions__=no])]) test $ac_cv_safe_to_define___extensions__ = yes && AC_DEFINE([__EXTENSIONS__]) AC_DEFINE([_ALL_SOURCE]) AC_DEFINE([_DARWIN_C_SOURCE]) AC_DEFINE([_GNU_SOURCE]) AC_DEFINE([_NETBSD_SOURCE]) AC_DEFINE([_OPENBSD_SOURCE]) AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) AC_DEFINE([__STDC_WANT_IEC_60559_ATTRIBS_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_BFP_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_DFP_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_FUNCS_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_TYPES_EXT__]) AC_DEFINE([__STDC_WANT_LIB_EXT2__]) AC_DEFINE([__STDC_WANT_MATH_SPEC_FUNCS__]) AC_DEFINE([_TANDEM_SOURCE]) AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined], [ac_cv_should_define__xopen_source], [ac_cv_should_define__xopen_source=no AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #include mbstate_t x;]])], [], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #define _XOPEN_SOURCE 500 #include mbstate_t x;]])], [ac_cv_should_define__xopen_source=yes])])]) test $ac_cv_should_define__xopen_source = yes && AC_DEFINE([_XOPEN_SOURCE], [500]) AC_DEFINE([_HPUX_ALT_XOPEN_SOCKET_API]) ])# AC_USE_SYSTEM_EXTENSIONS # gl_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS], [ dnl Require this macro before AC_USE_SYSTEM_EXTENSIONS. dnl gnulib does not need it. But if it gets required by third-party macros dnl after AC_USE_SYSTEM_EXTENSIONS is required, autoconf 2.62..2.63 emit a dnl warning: "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS". dnl Note: We can do this only for one of the macros AC_AIX, AC_GNU_SOURCE, dnl AC_MINIX. If people still use AC_AIX or AC_MINIX, they are out of luck. AC_REQUIRE([AC_GNU_SOURCE]) AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/extern-inline.m40000644000000000000000000000011013726163410022346 xustar000000000000000024 mtime=1599661832.551 24 atime=1599661832.745 24 ctime=1599661998.189 libprelude-5.2.0/libmissing/m4/extern-inline.m40000644000000000000000000001156713726163410021363 0ustar00rootroot00000000000000dnl 'extern inline' a la ISO C99. dnl Copyright 2012-2018 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_EXTERN_INLINE], [ AH_VERBATIM([extern_inline], [/* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see . Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f (void) { } inline void g (void) { f (); }', c99 incorrectly complains 'reference to static identifier "f" in extern inline function'. This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) on configurations that mistakenly use 'static inline' to implement functions or macros in standard C headers like . For example, if isdigit is mistakenly implemented via a static inline function, a program containing an extern inline function that calls isdigit may not work since the C standard prohibits extern inline functions from calling static functions (ISO C 99 section 6.7.4.(3). This bug is known to occur on: OS X 10.8 and earlier; see: https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html DragonFly; see http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log FreeBSD; see: https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and for clang but remains for g++; see . Assume DragonFly and FreeBSD will be similar. GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline semantics, unless -fgnu89-inline is used. It defines a macro __GNUC_STDC_INLINE__ to indicate this situation or a macro __GNUC_GNU_INLINE__ to indicate the opposite situation. GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline semantics but warns, unless -fgnu89-inline is used: warning: C99 inline functions are not supported; using GNU89 warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */ #if (((defined __APPLE__ && defined __MACH__) \ || defined __DragonFly__ || defined __FreeBSD__) \ && (defined __header_inline \ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ && ! defined __clang__) \ : ((! defined _DONT_USE_CTYPE_INLINE_ \ && (defined __GNUC__ || defined __cplusplus)) \ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ && defined __GNUC__ && ! defined __cplusplus)))) # define _GL_EXTERN_INLINE_STDHEADER_BUG #endif #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ && !defined __PGI \ && !(defined __SUNPRO_C && __STDC__))) \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline # define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern # define _GL_EXTERN_INLINE_IN_USE #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED #endif /* In GCC 4.6 (inclusive) to 5.1 (exclusive), suppress bogus "no previous prototype for 'FOO'" and "no previous declaration for 'FOO'" diagnostics, when FOO is an inline function in the header; see and . */ #if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ _GL_INLINE_HEADER_CONST_PRAGMA # define _GL_INLINE_HEADER_END \ _Pragma ("GCC diagnostic pop") #else # define _GL_INLINE_HEADER_BEGIN # define _GL_INLINE_HEADER_END #endif]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/fclose.m40000644000000000000000000000010713726163410021046 xustar000000000000000024 mtime=1599661832.551 24 atime=1599661832.745 23 ctime=1599661998.19 libprelude-5.2.0/libmissing/m4/fclose.m40000644000000000000000000000120313726163410020037 0ustar00rootroot00000000000000# fclose.m4 serial 8 dnl Copyright (C) 2008-2018 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_FUNC_FCLOSE], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) gl_FUNC_FFLUSH_STDIN case "$gl_cv_func_fflush_stdin" in *yes) ;; *) REPLACE_FCLOSE=1 ;; esac AC_REQUIRE([gl_FUNC_CLOSE]) if test $REPLACE_CLOSE = 1; then REPLACE_FCLOSE=1 fi case "$host_os" in openedition) REPLACE_FCLOSE=1 ;; esac ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/fcntl-o.m40000644000000000000000000000011013726163410021127 xustar000000000000000024 mtime=1599661832.551 24 atime=1599661832.745 24 ctime=1599661998.192 libprelude-5.2.0/libmissing/m4/fcntl-o.m40000644000000000000000000001144013726163410020132 0ustar00rootroot00000000000000# fcntl-o.m4 serial 5 dnl Copyright (C) 2006, 2009-2018 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. dnl Written by Paul Eggert. # Test whether the flags O_NOATIME and O_NOFOLLOW actually work. # Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise. # Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise. AC_DEFUN([gl_FCNTL_O_FLAGS], [ dnl Persuade glibc to define O_NOATIME and O_NOFOLLOW. dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes dnl AC_GNU_SOURCE. m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], [AC_REQUIRE([AC_GNU_SOURCE])]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_FUNCS_ONCE([symlink]) AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include # include # defined sleep(n) _sleep ((n) * 1000) #endif #include #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; ]], [[ int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result;]])], [gl_cv_header_working_fcntl_h=yes], [case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac], [case "$host_os" in # Guess 'no' on native Windows. mingw*) gl_cv_header_working_fcntl_h='no' ;; *) gl_cv_header_working_fcntl_h=cross-compiling ;; esac ]) ]) case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val], [Define to 1 if O_NOATIME works.]) case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val], [Define to 1 if O_NOFOLLOW works.]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/fcntl.m40000644000000000000000000000011013726163410020673 xustar000000000000000024 mtime=1599661832.552 24 atime=1599661832.745 24 ctime=1599661998.193 libprelude-5.2.0/libmissing/m4/fcntl.m40000644000000000000000000001035113726163410017676 0ustar00rootroot00000000000000# fcntl.m4 serial 9 dnl Copyright (C) 2009-2018 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. # For now, this module ensures that fcntl() # - supports F_DUPFD correctly # - supports or emulates F_DUPFD_CLOEXEC # - supports F_GETFD # Still to be ported to mingw: # - F_SETFD # - F_GETFL, F_SETFL # - F_GETOWN, F_SETOWN # - F_GETLK, F_SETLK, F_SETLKW AC_DEFUN([gl_FUNC_FCNTL], [ dnl Persuade glibc to expose F_DUPFD_CLOEXEC. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([fcntl]) if test $ac_cv_func_fcntl = no; then gl_REPLACE_FCNTL else dnl cygwin 1.5.x F_DUPFD has wrong errno, and allows negative target dnl haiku alpha 2 F_DUPFD has wrong errno AC_CACHE_CHECK([whether fcntl handles F_DUPFD correctly], [gl_cv_func_fcntl_f_dupfd_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include #include #include #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif ]], [[int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; if (errno != EINVAL) result |= 2; if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; if (errno != EINVAL) result |= 8; /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ { int fd; fd = open (".", O_RDONLY); if (fd == -1) result |= 16; else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) result |= 32; close (fd); } return result;]])], [gl_cv_func_fcntl_f_dupfd_works=yes], [gl_cv_func_fcntl_f_dupfd_works=no], [case $host_os in aix* | cygwin* | haiku*) gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; esac])]) case $gl_cv_func_fcntl_f_dupfd_works in *yes) ;; *) gl_REPLACE_FCNTL AC_DEFINE([FCNTL_DUPFD_BUGGY], [1], [Define this to 1 if F_DUPFD behavior does not match POSIX]) ;; esac dnl Many systems lack F_DUPFD_CLOEXEC AC_CACHE_CHECK([whether fcntl understands F_DUPFD_CLOEXEC], [gl_cv_func_fcntl_f_dupfd_cloexec], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #ifndef F_DUPFD_CLOEXEC choke me #endif ]])], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #ifdef __linux__ /* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace it to support the semantics on older kernels that failed with EINVAL. */ choke me #endif ]])], [gl_cv_func_fcntl_f_dupfd_cloexec=yes], [gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"])], [gl_cv_func_fcntl_f_dupfd_cloexec=no])]) if test "$gl_cv_func_fcntl_f_dupfd_cloexec" != yes; then gl_REPLACE_FCNTL dnl No witness macro needed for this bug. fi fi dnl Replace fcntl() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then gl_REPLACE_FCNTL fi ]) ]) AC_DEFUN([gl_REPLACE_FCNTL], [ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([fcntl]) if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/fcntl_h.m40000644000000000000000000000011013726163410021202 xustar000000000000000024 mtime=1599661832.552 24 atime=1599661832.745 24 ctime=1599661998.195 libprelude-5.2.0/libmissing/m4/fcntl_h.m40000644000000000000000000000327113726163410020210 0ustar00rootroot00000000000000# serial 15 # Configure fcntl.h. dnl Copyright (C) 2006-2007, 2009-2018 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. dnl Written by Paul Eggert. AC_DEFUN([gl_FCNTL_H], [ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_REQUIRE([gl_FCNTL_O_FLAGS]) gl_NEXT_HEADERS([fcntl.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, if it is not common dnl enough to be declared everywhere. gl_WARN_ON_USE_PREPARE([[#include ]], [fcntl openat]) ]) AC_DEFUN([gl_FCNTL_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_FCNTL_H_DEFAULTS], [ GNULIB_FCNTL=0; AC_SUBST([GNULIB_FCNTL]) GNULIB_NONBLOCKING=0; AC_SUBST([GNULIB_NONBLOCKING]) GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN]) GNULIB_OPENAT=0; AC_SUBST([GNULIB_OPENAT]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL]) REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/fdopen.m40000644000000000000000000000011013726163410021040 xustar000000000000000024 mtime=1599661832.552 24 atime=1599661832.745 24 ctime=1599661998.197 libprelude-5.2.0/libmissing/m4/fdopen.m40000644000000000000000000000257613726163410020055 0ustar00rootroot00000000000000# fdopen.m4 serial 4 dnl Copyright (C) 2011-2018 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_FUNC_FDOPEN], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles m4_ifdef([gl_MSVC_INVAL], [ AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_FDOPEN=1 fi ]) if test $REPLACE_FDOPEN = 0; then dnl Test whether fdopen() sets errno when it fails due to a bad fd argument. AC_CACHE_CHECK([whether fdopen sets errno], [gl_cv_func_fdopen_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include int main (void) { FILE *fp; errno = 0; fp = fdopen (-1, "r"); if (fp == NULL && errno == 0) return 1; return 0; }]])], [gl_cv_func_fdopen_works=yes], [gl_cv_func_fdopen_works=no], [case "$host_os" in mingw*) gl_cv_func_fdopen_works="guessing no" ;; *) gl_cv_func_fdopen_works="guessing yes" ;; esac ]) ]) case "$gl_cv_func_fdopen_works" in *no) REPLACE_FDOPEN=1 ;; esac fi ]) dnl Prerequisites of lib/fdopen.c. AC_DEFUN([gl_PREREQ_FDOPEN], []) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/fflush.m40000644000000000000000000000011013726163410021054 xustar000000000000000024 mtime=1599661832.552 24 atime=1599661832.745 24 ctime=1599661998.198 libprelude-5.2.0/libmissing/m4/fflush.m40000644000000000000000000000630113726163410020057 0ustar00rootroot00000000000000# fflush.m4 serial 17 # Copyright (C) 2007-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Eric Blake dnl Find out how to obey POSIX semantics of fflush(stdin) discarding dnl unread input on seekable streams, rather than C99 undefined semantics. AC_DEFUN([gl_FUNC_FFLUSH], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_FUNC_FFLUSH_STDIN case "$gl_cv_func_fflush_stdin" in *yes) ;; *) REPLACE_FFLUSH=1 ;; esac ]) dnl Determine whether fflush works on input streams. dnl Sets gl_cv_func_fflush_stdin. AC_DEFUN([gl_FUNC_FFLUSH_STDIN], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CACHE_CHECK([whether fflush works on input streams], [gl_cv_func_fflush_stdin], [echo hello world > conftest.txt AC_RUN_IFELSE([AC_LANG_PROGRAM( [[ #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif ]], [[FILE *f = fopen ("conftest.txt", "r"); char buffer[10]; int fd; int c; if (f == NULL) return 1; fd = fileno (f); if (fd < 0 || fread (buffer, 1, 5, f) != 5) { fclose (f); return 2; } /* For deterministic results, ensure f read a bigger buffer. */ if (lseek (fd, 0, SEEK_CUR) == 5) { fclose (f); return 3; } /* POSIX requires fflush-fseek to set file offset of fd. This fails on BSD systems and on mingw. */ if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) { fclose (f); return 4; } if (lseek (fd, 0, SEEK_CUR) != 5) { fclose (f); return 5; } /* Verify behaviour of fflush after ungetc. See */ /* Verify behaviour of fflush after a backup ungetc. This fails on mingw. */ c = fgetc (f); ungetc (c, f); fflush (f); if (fgetc (f) != c) { fclose (f); return 6; } /* Verify behaviour of fflush after a non-backup ungetc. This fails on glibc 2.8 and on BSD systems. */ c = fgetc (f); ungetc ('@', f); fflush (f); if (fgetc (f) != c) { fclose (f); return 7; } fclose (f); return 0; ]])], [gl_cv_func_fflush_stdin=yes], [gl_cv_func_fflush_stdin=no], [case "$host_os" in # Guess no on native Windows. mingw*) gl_cv_func_fflush_stdin="guessing no" ;; *) gl_cv_func_fflush_stdin=cross ;; esac ]) rm conftest.txt ]) case "$gl_cv_func_fflush_stdin" in *yes) gl_func_fflush_stdin=1 ;; *no) gl_func_fflush_stdin=0 ;; *) gl_func_fflush_stdin='(-1)' ;; esac AC_DEFINE_UNQUOTED([FUNC_FFLUSH_STDIN], [$gl_func_fflush_stdin], [Define to 1 if fflush is known to work on stdin as per POSIX.1-2008, 0 if fflush is known to not work, -1 if unknown.]) ]) # Prerequisites of lib/fflush.c. AC_DEFUN([gl_PREREQ_FFLUSH], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/flexmember.m40000644000000000000000000000010613726163410021720 xustar000000000000000024 mtime=1599661832.552 24 atime=1599661832.745 22 ctime=1599661998.2 libprelude-5.2.0/libmissing/m4/flexmember.m40000644000000000000000000000345313726163410020723 0ustar00rootroot00000000000000# serial 5 # Check for flexible array member support. # Copyright (C) 2006, 2009-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert. AC_DEFUN([AC_C_FLEXIBLE_ARRAY_MEMBER], [ AC_CACHE_CHECK([for flexible array member], ac_cv_c_flexmember, [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include struct m { struct m *next, **list; char name[]; }; struct s { struct s *p; struct m *m; int n; double d[]; };]], [[int m = getchar (); size_t nbytes = offsetof (struct s, d) + m * sizeof (double); nbytes += sizeof (struct s) - 1; nbytes -= nbytes % sizeof (struct s); struct s *p = malloc (nbytes); p->p = p; p->m = NULL; p->d[0] = 0.0; return p->d != (double *) NULL;]])], [ac_cv_c_flexmember=yes], [ac_cv_c_flexmember=no])]) if test $ac_cv_c_flexmember = yes; then AC_DEFINE([FLEXIBLE_ARRAY_MEMBER], [], [Define to nothing if C supports flexible array members, and to 1 if it does not. That way, with a declaration like 'struct s { int n; double d@<:@FLEXIBLE_ARRAY_MEMBER@:>@; };', the struct hack can be used with pre-C99 compilers. When computing the size of such an object, don't use 'sizeof (struct s)' as it overestimates the size. Use 'offsetof (struct s, d)' instead. Don't use 'offsetof (struct s, d@<:@0@:>@)', as this doesn't work with MSVC and with C++ compilers.]) else AC_DEFINE([FLEXIBLE_ARRAY_MEMBER], [1]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/float_h.m40000644000000000000000000000011013726163410021201 xustar000000000000000024 mtime=1599661832.552 24 atime=1599661832.745 24 ctime=1599661998.202 libprelude-5.2.0/libmissing/m4/float_h.m40000644000000000000000000000545713726163410020217 0ustar00rootroot00000000000000# float_h.m4 serial 12 dnl Copyright (C) 2007, 2009-2018 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_FLOAT_H], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) FLOAT_H= REPLACE_FLOAT_LDBL=0 case "$host_os" in aix* | beos* | openbsd* | mirbsd* | irix*) FLOAT_H=float.h ;; freebsd* | dragonfly*) case "$host_cpu" in changequote(,)dnl i[34567]86 ) changequote([,])dnl FLOAT_H=float.h ;; x86_64 ) # On x86_64 systems, the C compiler may still be generating # 32-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __LP64__ || defined __x86_64__ || defined __amd64__ int ok; #else error fail #endif ]])], [], [FLOAT_H=float.h]) ;; esac ;; linux*) case "$host_cpu" in powerpc*) FLOAT_H=float.h ;; esac ;; esac case "$host_os" in aix* | freebsd* | dragonfly* | linux*) if test -n "$FLOAT_H"; then REPLACE_FLOAT_LDBL=1 fi ;; esac dnl Test against glibc-2.7 Linux/SPARC64 bug. REPLACE_ITOLD=0 AC_CACHE_CHECK([whether conversion from 'int' to 'long double' works], [gl_cv_func_itold_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ int i = -1; volatile long double ld; int main () { ld += i * 1.0L; if (ld > 0) return 1; return 0; }]])], [gl_cv_func_itold_works=yes], [gl_cv_func_itold_works=no], [case "$host" in sparc*-*-linux*) AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __LP64__ || defined __arch64__ int ok; #else error fail #endif ]])], [gl_cv_func_itold_works="guessing no"], [gl_cv_func_itold_works="guessing yes"]) ;; # Guess yes on native Windows. mingw*) gl_cv_func_itold_works="guessing yes" ;; *) gl_cv_func_itold_works="guessing yes" ;; esac ]) ]) case "$gl_cv_func_itold_works" in *no) REPLACE_ITOLD=1 dnl We add the workaround to but also to , dnl to increase the chances that the fix function gets pulled in. FLOAT_H=float.h ;; esac if test -n "$FLOAT_H"; then gl_NEXT_HEADERS([float.h]) fi AC_SUBST([FLOAT_H]) AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"]) AC_SUBST([REPLACE_ITOLD]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/fopen.m40000644000000000000000000000011013726163410020674 xustar000000000000000024 mtime=1599661832.553 24 atime=1599661832.745 24 ctime=1599661998.203 libprelude-5.2.0/libmissing/m4/fopen.m40000644000000000000000000000337013726163410017702 0ustar00rootroot00000000000000# fopen.m4 serial 10 dnl Copyright (C) 2007-2018 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_FUNC_FOPEN], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw* | pw*) dnl Replace fopen, for handling of "/dev/null". REPLACE_FOPEN=1 dnl fopen on mingw also has the trailing slash bug. gl_cv_func_fopen_slash="guessing no" ;; *) dnl fopen("foo/", "w") should not create a file when the file name has a dnl trailing slash. AC_CACHE_CHECK([whether fopen recognizes a trailing slash], [gl_cv_func_fopen_slash], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include int main () { FILE *fp = fopen ("conftest.sl/", "w"); int result = (fp != NULL); if (fp != NULL) fclose (fp); return result; }]])], [gl_cv_func_fopen_slash=yes], [gl_cv_func_fopen_slash=no], [ changequote(,)dnl case "$host_os" in aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_fopen_slash="guessing no" ;; *) gl_cv_func_fopen_slash="guessing yes" ;; esac changequote([,])dnl ]) rm -f conftest.sl ]) ;; esac case "$gl_cv_func_fopen_slash" in *no) AC_DEFINE([FOPEN_TRAILING_SLASH_BUG], [1], [Define to 1 if fopen() fails to recognize a trailing slash.]) REPLACE_FOPEN=1 ;; esac ]) # Prerequisites of lib/fopen.c. AC_DEFUN([gl_PREREQ_FOPEN], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/fpieee.m40000644000000000000000000000011013726163410021022 xustar000000000000000024 mtime=1599661832.553 24 atime=1599661832.745 24 ctime=1599661998.205 libprelude-5.2.0/libmissing/m4/fpieee.m40000644000000000000000000000434013726163410020026 0ustar00rootroot00000000000000# fpieee.m4 serial 2 -*- coding: utf-8 -*- dnl Copyright (C) 2007, 2009-2018 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. dnl IEEE 754 standardized three items: dnl - The formats of single-float and double-float - nowadays commonly dnl available as 'float' and 'double' in C and C++. dnl No autoconf test needed. dnl - The overflow and division by zero behaviour: The result are values dnl '±Inf' and 'NaN', rather than exceptions as it was before. dnl This file provides an autoconf macro for ensuring this behaviour of dnl floating-point operations. dnl - A set of conditions (overflow, underflow, inexact, etc.) which can dnl be configured to trigger an exception. dnl This cannot be done in a portable way: it depends on the compiler, dnl libc, kernel, and CPU. No autoconf macro is provided for this. dnl Ensure non-trapping behaviour of floating-point overflow and dnl floating-point division by zero. dnl (For integer overflow, see gcc's -ftrapv option; for integer division by dnl zero, see the autoconf macro in intdiv0.m4.) AC_DEFUN([gl_FP_IEEE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) # IEEE behaviour is the default on all CPUs except Alpha and SH # (according to the test results of Bruno Haible's ieeefp/fenv_default.m4 # and the GCC 4.1.2 manual). case "$host_cpu" in alpha*) # On Alpha systems, a compiler option provides the behaviour. # See the ieee(3) manual page, also available at # if test -n "$GCC"; then # GCC has the option -mieee. # For full IEEE compliance (rarely needed), use option -mieee-with-inexact. CPPFLAGS="$CPPFLAGS -mieee" else # Compaq (ex-DEC) C has the option -ieee, equivalent to -ieee_with_no_inexact. # For full IEEE compliance (rarely needed), use option -ieee_with_inexact. CPPFLAGS="$CPPFLAGS -ieee" fi ;; sh*) if test -n "$GCC"; then # GCC has the option -mieee. CPPFLAGS="$CPPFLAGS -mieee" fi ;; esac ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/fpurge.m40000644000000000000000000000011013726163410021055 xustar000000000000000024 mtime=1599661832.553 24 atime=1599661832.745 24 ctime=1599661998.207 libprelude-5.2.0/libmissing/m4/fpurge.m40000644000000000000000000000410513726163410020060 0ustar00rootroot00000000000000# fpurge.m4 serial 8 dnl Copyright (C) 2007, 2009-2018 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_FUNC_FPURGE], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([fpurge]) AC_CHECK_FUNCS_ONCE([__fpurge]) AC_CHECK_DECLS([fpurge], , , [[#include ]]) if test "x$ac_cv_func_fpurge" = xyes; then HAVE_FPURGE=1 # Detect BSD bug. Only cygwin 1.7 is known to be immune. AC_CACHE_CHECK([whether fpurge works], [gl_cv_func_fpurge_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [FILE *f = fopen ("conftest.txt", "w+"); if (!f) return 1; if (fputc ('a', f) != 'a') { fclose (f); return 2; } rewind (f); if (fgetc (f) != 'a') { fclose (f); return 3; } if (fgetc (f) != EOF) { fclose (f); return 4; } if (fpurge (f) != 0) { fclose (f); return 5; } if (putc ('b', f) != 'b') { fclose (f); return 6; } if (fclose (f) != 0) return 7; if ((f = fopen ("conftest.txt", "r")) == NULL) return 8; if (fgetc (f) != 'a') { fclose (f); return 9; } if (fgetc (f) != 'b') { fclose (f); return 10; } if (fgetc (f) != EOF) { fclose (f); return 11; } if (fclose (f) != 0) return 12; if (remove ("conftest.txt") != 0) return 13; return 0; ])], [gl_cv_func_fpurge_works=yes], [gl_cv_func_fpurge_works=no], [gl_cv_func_fpurge_works='guessing no'])]) if test "x$gl_cv_func_fpurge_works" != xyes; then REPLACE_FPURGE=1 fi else HAVE_FPURGE=0 fi if test "x$ac_cv_have_decl_fpurge" = xno; then HAVE_DECL_FPURGE=0 fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/freading.m40000644000000000000000000000011013726163410021344 xustar000000000000000024 mtime=1599661832.553 24 atime=1599661832.745 24 ctime=1599661998.208 libprelude-5.2.0/libmissing/m4/freading.m40000644000000000000000000000054113726163410020347 0ustar00rootroot00000000000000# freading.m4 serial 1 dnl Copyright (C) 2007, 2009-2018 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_FUNC_FREADING], [ AC_CHECK_FUNCS_ONCE([__freading]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/fseek.m40000644000000000000000000000010713726163410020670 xustar000000000000000024 mtime=1599661832.553 24 atime=1599661832.745 23 ctime=1599661998.21 libprelude-5.2.0/libmissing/m4/fseek.m40000644000000000000000000000100513726163410017661 0ustar00rootroot00000000000000# fseek.m4 serial 4 dnl Copyright (C) 2007, 2009-2018 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_FUNC_FSEEK], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_FSEEKO]) dnl When fseeko needs fixes, fseek needs them too. if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then REPLACE_FSEEK=1 fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/fseeko.m40000644000000000000000000000011013726163410021041 xustar000000000000000024 mtime=1599661832.554 24 atime=1599661832.745 24 ctime=1599661998.212 libprelude-5.2.0/libmissing/m4/fseeko.m40000644000000000000000000000454413726163410020053 0ustar00rootroot00000000000000# fseeko.m4 serial 19 dnl Copyright (C) 2007-2018 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_FUNC_FSEEKO], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([gl_STDIN_LARGE_OFFSET]) AC_REQUIRE([gl_SYS_TYPES_H]) AC_REQUIRE([AC_PROG_CC]) dnl Persuade glibc to declare fseeko(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CACHE_CHECK([for fseeko], [gl_cv_func_fseeko], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [fseeko (stdin, 0, 0);])], [gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no]) ]) AC_CHECK_DECLS_ONCE([fseeko]) if test $ac_cv_have_decl_fseeko = no; then HAVE_DECL_FSEEKO=0 fi if test $gl_cv_func_fseeko = no; then HAVE_FSEEKO=0 else if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_FSEEKO=1 fi if test $gl_cv_var_stdin_large_offset = no; then REPLACE_FSEEKO=1 fi m4_ifdef([gl_FUNC_FFLUSH_STDIN], [ gl_FUNC_FFLUSH_STDIN case "$gl_cv_func_fflush_stdin" in *yes) ;; *) REPLACE_FSEEKO=1 ;; esac ]) fi ]) dnl Code shared by fseeko and ftello. Determine if large files are supported, dnl but stdin does not start as a large file by default. AC_DEFUN([gl_STDIN_LARGE_OFFSET], [ AC_CACHE_CHECK([whether stdin defaults to large file offsets], [gl_cv_var_stdin_large_offset], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[#if defined __SL64 && defined __SCLE /* cygwin */ /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and it is easier to do a version check than building a runtime test. */ # include # if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25) choke me # endif #endif]])], [gl_cv_var_stdin_large_offset=yes], [gl_cv_var_stdin_large_offset=no])]) ]) # Prerequisites of lib/fseeko.c. AC_DEFUN([gl_PREREQ_FSEEKO], [ dnl Native Windows has the function _fseeki64. mingw hides it in some dnl circumstances, but mingw64 makes it usable again. AC_CHECK_FUNCS([_fseeki64]) if test $ac_cv_func__fseeki64 = yes; then AC_CHECK_DECLS([_fseeki64]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/fstat.m40000644000000000000000000000011013726163410020706 xustar000000000000000024 mtime=1599661832.554 24 atime=1599661832.745 24 ctime=1599661998.213 libprelude-5.2.0/libmissing/m4/fstat.m40000644000000000000000000000206313726163410017712 0ustar00rootroot00000000000000# fstat.m4 serial 6 dnl Copyright (C) 2011-2018 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_FUNC_FSTAT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) case "$host_os" in mingw* | solaris*) dnl On MinGW, the original stat() returns st_atime, st_mtime, dnl st_ctime values that are affected by the time zone. dnl Solaris stat can return a negative tv_nsec. REPLACE_FSTAT=1 ;; esac dnl Replace fstat() for supporting the gnulib-defined open() on directories. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then case "$gl_cv_func_open_directory_works" in *yes) ;; *) REPLACE_FSTAT=1 ;; esac fi ]) ]) # Prerequisites of lib/fstat.c and lib/stat-w32.c. AC_DEFUN([gl_PREREQ_FSTAT], [ AC_REQUIRE([gl_HEADER_SYS_STAT_H]) : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/ftell.m40000644000000000000000000000011013726163410020673 xustar000000000000000024 mtime=1599661832.554 24 atime=1599661832.745 24 ctime=1599661998.215 libprelude-5.2.0/libmissing/m4/ftell.m40000644000000000000000000000100513726163410017672 0ustar00rootroot00000000000000# ftell.m4 serial 3 dnl Copyright (C) 2007, 2009-2018 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_FUNC_FTELL], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_FTELLO]) dnl When ftello needs fixes, ftell needs them too. if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then REPLACE_FTELL=1 fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/ftello.m40000644000000000000000000000011013726163410021052 xustar000000000000000024 mtime=1599661832.554 24 atime=1599661832.745 24 ctime=1599661998.217 libprelude-5.2.0/libmissing/m4/ftello.m40000644000000000000000000000776613726163410020075 0ustar00rootroot00000000000000# ftello.m4 serial 13 dnl Copyright (C) 2007-2018 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_FUNC_FTELLO], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_STDIN_LARGE_OFFSET]) AC_REQUIRE([gl_SYS_TYPES_H]) dnl Persuade glibc to declare ftello(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_DECLS_ONCE([ftello]) if test $ac_cv_have_decl_ftello = no; then HAVE_DECL_FTELLO=0 fi AC_CACHE_CHECK([for ftello], [gl_cv_func_ftello], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[ftello (stdin);]])], [gl_cv_func_ftello=yes], [gl_cv_func_ftello=no]) ]) if test $gl_cv_func_ftello = no; then HAVE_FTELLO=0 else if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_FTELLO=1 fi if test $gl_cv_var_stdin_large_offset = no; then REPLACE_FTELLO=1 fi if test $REPLACE_FTELLO = 0; then dnl Detect bug on Solaris. dnl ftell and ftello produce incorrect results after putc that followed a dnl getc call that reached EOF on Solaris. This is because the _IOREAD dnl flag does not get cleared in this case, even though _IOWRT gets set, dnl and ftell and ftello look whether the _IOREAD flag is set. AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether ftello works], [gl_cv_func_ftello_works], [ dnl Initial guess, used when cross-compiling or when /dev/tty cannot dnl be opened. changequote(,)dnl case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_ftello_works="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_ftello_works="guessing yes" ;; # Guess yes otherwise. *) gl_cv_func_ftello_works="guessing yes" ;; esac changequote([,])dnl AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #define TESTFILE "conftest.tmp" int main (void) { FILE *fp; /* Create a file with some contents. */ fp = fopen (TESTFILE, "w"); if (fp == NULL) return 70; if (fwrite ("foogarsh", 1, 8, fp) < 8) { fclose (fp); return 71; } if (fclose (fp)) return 72; /* The file's contents is now "foogarsh". */ /* Try writing after reading to EOF. */ fp = fopen (TESTFILE, "r+"); if (fp == NULL) return 73; if (fseek (fp, -1, SEEK_END)) { fclose (fp); return 74; } if (!(getc (fp) == 'h')) { fclose (fp); return 1; } if (!(getc (fp) == EOF)) { fclose (fp); return 2; } if (!(ftell (fp) == 8)) { fclose (fp); return 3; } if (!(ftell (fp) == 8)) { fclose (fp); return 4; } if (!(putc ('!', fp) == '!')) { fclose (fp); return 5; } if (!(ftell (fp) == 9)) { fclose (fp); return 6; } if (!(fclose (fp) == 0)) return 7; fp = fopen (TESTFILE, "r"); if (fp == NULL) return 75; { char buf[10]; if (!(fread (buf, 1, 10, fp) == 9)) { fclose (fp); return 10; } if (!(memcmp (buf, "foogarsh!", 9) == 0)) { fclose (fp); return 11; } } if (!(fclose (fp) == 0)) return 12; /* The file's contents is now "foogarsh!". */ return 0; }]])], [gl_cv_func_ftello_works=yes], [gl_cv_func_ftello_works=no], [:]) ]) case "$gl_cv_func_ftello_works" in *yes) ;; *) REPLACE_FTELLO=1 AC_DEFINE([FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE], [1], [Define to 1 if the system's ftello function has the Solaris bug.]) ;; esac fi fi ]) # Prerequisites of lib/ftello.c. AC_DEFUN([gl_PREREQ_FTELLO], [ dnl Native Windows has the function _ftelli64. mingw hides it, but mingw64 dnl makes it usable again. AC_CHECK_FUNCS([_ftelli64]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/ftruncate.m40000644000000000000000000000011013726163410021560 xustar000000000000000024 mtime=1599661832.554 24 atime=1599661832.745 24 ctime=1599661998.218 libprelude-5.2.0/libmissing/m4/ftruncate.m40000644000000000000000000000233313726163410020564 0ustar00rootroot00000000000000# serial 20 # See if we need to emulate a missing ftruncate function using chsize. # Copyright (C) 2000-2001, 2003-2007, 2009-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FTRUNCATE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([ftruncate]) if test $ac_cv_func_ftruncate = yes; then m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw*) dnl Native Windows, and Large File Support is requested. dnl The MSVCRT _chsize() function only accepts a 32-bit file size, dnl and the mingw64 ftruncate64() function is unreliable (it may dnl delete the file, see dnl ). dnl Use gnulib's ftruncate() implementation instead. REPLACE_FTRUNCATE=1 ;; esac ], [ : ]) else HAVE_FTRUNCATE=0 fi ]) # Prerequisites of lib/ftruncate.c. AC_DEFUN([gl_PREREQ_FTRUNCATE], [ AC_CHECK_FUNCS([chsize]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/ftw.m40000644000000000000000000000010713726163410020373 xustar000000000000000024 mtime=1599661832.554 24 atime=1599661832.745 23 ctime=1599661998.22 libprelude-5.2.0/libmissing/m4/ftw.m40000644000000000000000000000063513726163410017374 0ustar00rootroot00000000000000# strsep.m4 serial 3 dnl Copyright (C) 2002, 2003, 2004 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_FUNC_FTW], [ AC_REPLACE_FUNCS(ftw) gl_PREREQ_FTW ]) # Prerequisites of lib/ftw.c. AC_DEFUN([gl_PREREQ_FTW], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/getaddrinfo.m40000644000000000000000000000011013726163410022053 xustar000000000000000024 mtime=1599661832.555 24 atime=1599661832.745 24 ctime=1599661998.222 libprelude-5.2.0/libmissing/m4/getaddrinfo.m40000644000000000000000000001344413726163410021064 0ustar00rootroot00000000000000# getaddrinfo.m4 serial 31 dnl Copyright (C) 2004-2018 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_GETADDRINFO], [ AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H AC_REQUIRE([gl_HEADER_NETDB])dnl for HAVE_NETDB_H AC_MSG_CHECKING([how to do getaddrinfo, freeaddrinfo and getnameinfo]) GETADDRINFO_LIB= gai_saved_LIBS="$LIBS" dnl Where is getaddrinfo()? dnl - On Solaris, it is in libsocket. dnl - On Haiku, it is in libnetwork. dnl - On BeOS, it is in libnet. dnl - On native Windows, it is in ws2_32.dll. dnl - Otherwise it is in libc. AC_SEARCH_LIBS([getaddrinfo], [socket network net], [if test "$ac_cv_search_getaddrinfo" != "none required"; then GETADDRINFO_LIB="$ac_cv_search_getaddrinfo" fi]) LIBS="$gai_saved_LIBS $GETADDRINFO_LIB" HAVE_GETADDRINFO=1 AC_CACHE_CHECK([for getaddrinfo], [gl_cv_func_getaddrinfo], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #include ]], [[getaddrinfo("", "", NULL, NULL);]])], [gl_cv_func_getaddrinfo=yes], [gl_cv_func_getaddrinfo=no])]) if test $gl_cv_func_getaddrinfo = no; then AC_CACHE_CHECK([for getaddrinfo in ws2tcpip.h and -lws2_32], gl_cv_w32_getaddrinfo, [ gl_cv_w32_getaddrinfo=no am_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifdef HAVE_WS2TCPIP_H #include #endif #include ]], [[getaddrinfo(NULL, NULL, NULL, NULL);]])], [gl_cv_w32_getaddrinfo=yes]) LIBS="$am_save_LIBS" ]) if test "$gl_cv_w32_getaddrinfo" = "yes"; then GETADDRINFO_LIB="-lws2_32" LIBS="$gai_saved_LIBS $GETADDRINFO_LIB" else HAVE_GETADDRINFO=0 fi fi # We can't use AC_REPLACE_FUNCS here because gai_strerror may be an # inline function declared in ws2tcpip.h, so we need to get that # header included somehow. AC_CHECK_DECLS([gai_strerror], [], [], [[ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif #include ]]) if test $ac_cv_have_decl_gai_strerror = yes; then AC_CHECK_DECLS([gai_strerrorA], [], [], [[ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif #include ]]) dnl check for correct signature AC_CACHE_CHECK([for gai_strerror with POSIX signature], [gl_cv_func_gai_strerror_posix_signature], [ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif #include extern #ifdef __cplusplus "C" #endif const char *gai_strerror(int);]])], [gl_cv_func_gai_strerror_posix_signature=yes], [gl_cv_func_gai_strerror_posix_signature=no])]) if test $gl_cv_func_gai_strerror_posix_signature = no; then REPLACE_GAI_STRERROR=1 fi fi LIBS="$gai_saved_LIBS" gl_PREREQ_GETADDRINFO AC_SUBST([GETADDRINFO_LIB]) ]) # Prerequisites of lib/netdb.in.h and lib/getaddrinfo.c. AC_DEFUN([gl_PREREQ_GETADDRINFO], [ AC_REQUIRE([gl_NETDB_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H AC_REQUIRE([gl_HOSTENT]) dnl for HOSTENT_LIB AC_REQUIRE([gl_SERVENT]) dnl for SERVENT_LIB AC_REQUIRE([gl_FUNC_INET_NTOP]) dnl for INET_NTOP_LIB AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_SOCKET_FAMILIES]) AC_REQUIRE([gl_HEADER_SYS_SOCKET]) AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl Including sys/socket.h is wrong for Windows, but Windows does not dnl have sa_len so the result is correct anyway. AC_CHECK_MEMBERS([struct sockaddr.sa_len], , , [ #include #include ]) AC_CHECK_HEADERS_ONCE([netinet/in.h]) AC_CHECK_DECLS([getaddrinfo, freeaddrinfo, getnameinfo],,,[[ /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif ]]) if test $ac_cv_have_decl_getaddrinfo = no; then HAVE_DECL_GETADDRINFO=0 fi if test $ac_cv_have_decl_freeaddrinfo = no; then HAVE_DECL_FREEADDRINFO=0 fi if test $ac_cv_have_decl_gai_strerror = no; then HAVE_DECL_GAI_STRERROR=0 fi if test $ac_cv_have_decl_getnameinfo = no; then HAVE_DECL_GETNAMEINFO=0 fi AC_CHECK_TYPES([struct addrinfo],,,[ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif ]) if test $ac_cv_type_struct_addrinfo = no; then HAVE_STRUCT_ADDRINFO=0 fi dnl Append $HOSTENT_LIB to GETADDRINFO_LIB, avoiding gratuitous duplicates. case " $GETADDRINFO_LIB " in *" $HOSTENT_LIB "*) ;; *) GETADDRINFO_LIB="$GETADDRINFO_LIB $HOSTENT_LIB" ;; esac dnl Append $SERVENT_LIB to GETADDRINFO_LIB, avoiding gratuitous duplicates. case " $GETADDRINFO_LIB " in *" $SERVENT_LIB "*) ;; *) GETADDRINFO_LIB="$GETADDRINFO_LIB $SERVENT_LIB" ;; esac dnl Append $INET_NTOP_LIB to GETADDRINFO_LIB, avoiding gratuitous duplicates. case " $GETADDRINFO_LIB " in *" $INET_NTOP_LIB "*) ;; *) GETADDRINFO_LIB="$GETADDRINFO_LIB $INET_NTOP_LIB" ;; esac ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/getcwd.m40000644000000000000000000000011013726163410021042 xustar000000000000000024 mtime=1599661832.555 24 atime=1599661832.745 24 ctime=1599661998.223 libprelude-5.2.0/libmissing/m4/getcwd.m40000644000000000000000000001173513726163410020054 0ustar00rootroot00000000000000# getcwd.m4 - check for working getcwd that is compatible with glibc # Copyright (C) 2001, 2003-2007, 2009-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert. # serial 16 AC_DEFUN([gl_FUNC_GETCWD_NULL], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result], [gl_cv_func_getcwd_null], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ # include # if HAVE_UNISTD_H # include # else /* on Windows with MSVC */ # include # endif # ifndef getcwd char *getcwd (); # endif ]], [[ #if defined _WIN32 && ! defined __CYGWIN__ /* mingw cwd does not start with '/', but getcwd does allocate. However, mingw fails to honor non-zero size. */ #else if (chdir ("/") != 0) return 1; else { char *f = getcwd (NULL, 0); if (! f) return 2; if (f[0] != '/') { free (f); return 3; } if (f[1] != '\0') { free (f); return 4; } free (f); return 0; } #endif ]])], [gl_cv_func_getcwd_null=yes], [gl_cv_func_getcwd_null=no], [[case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_getcwd_null="guessing yes";; # Guess yes on Cygwin. cygwin*) gl_cv_func_getcwd_null="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_getcwd_null="guessing no";; esac ]])]) ]) AC_DEFUN([gl_FUNC_GETCWD_SIGNATURE], [ AC_CACHE_CHECK([for getcwd with POSIX signature], [gl_cv_func_getcwd_posix_signature], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[extern #ifdef __cplusplus "C" #endif char *getcwd (char *, size_t); ]]) ], [gl_cv_func_getcwd_posix_signature=yes], [gl_cv_func_getcwd_posix_signature=no]) ]) ]) dnl Guarantee that getcwd will malloc with a NULL first argument. Assumes dnl that either the system getcwd is robust, or that calling code is okay dnl with spurious failures when run from a directory with an absolute name dnl larger than 4k bytes. dnl dnl Assumes that getcwd exists; if you are worried about obsolete dnl platforms that lacked getcwd(), then you need to use the GPL module. AC_DEFUN([gl_FUNC_GETCWD_LGPL], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_GETCWD_NULL]) AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE]) case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in *yes,yes) ;; *) dnl Minimal replacement lib/getcwd-lgpl.c. REPLACE_GETCWD=1 ;; esac ]) dnl Check for all known getcwd bugs; useful for a program likely to be dnl executed from an arbitrary location. AC_DEFUN([gl_FUNC_GETCWD], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_GETCWD_NULL]) AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles gl_abort_bug=no case "$host_os" in mingw*) gl_cv_func_getcwd_path_max=yes ;; *) gl_FUNC_GETCWD_PATH_MAX case "$gl_cv_func_getcwd_null" in *yes) gl_FUNC_GETCWD_ABORT_BUG([gl_abort_bug=yes]) ;; esac ;; esac dnl Define HAVE_MINIMALLY_WORKING_GETCWD and HAVE_PARTLY_WORKING_GETCWD dnl if appropriate. case "$gl_cv_func_getcwd_path_max" in "no"|"no, it has the AIX bug") ;; *) AC_DEFINE([HAVE_MINIMALLY_WORKING_GETCWD], [1], [Define to 1 if getcwd minimally works, that is, its result can be trusted when it succeeds.]) ;; esac case "$gl_cv_func_getcwd_path_max" in "no, but it is partly working") AC_DEFINE([HAVE_PARTLY_WORKING_GETCWD], [1], [Define to 1 if getcwd works, except it sometimes fails when it shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT.]) ;; "yes, but with shorter paths") AC_DEFINE([HAVE_GETCWD_SHORTER], [1], [Define to 1 if getcwd works, but with shorter paths than is generally tested with the replacement.]) ;; esac if { case "$gl_cv_func_getcwd_null" in *yes) false;; *) true;; esac; } \ || test $gl_cv_func_getcwd_posix_signature != yes \ || { case "$gl_cv_func_getcwd_path_max" in *yes*) false;; *) true;; esac; } \ || test $gl_abort_bug = yes; then REPLACE_GETCWD=1 fi ]) # Prerequisites of lib/getcwd.c, when full replacement is in effect. AC_DEFUN([gl_PREREQ_GETCWD], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO]) : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/getdelim.m40000644000000000000000000000011013726163410021357 xustar000000000000000024 mtime=1599661832.555 24 atime=1599661832.746 24 ctime=1599661998.225 libprelude-5.2.0/libmissing/m4/getdelim.m40000644000000000000000000000504313726163410020364 0ustar00rootroot00000000000000# getdelim.m4 serial 12 dnl Copyright (C) 2005-2007, 2009-2018 Free Software Foundation, Inc. dnl 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_PREREQ([2.59]) AC_DEFUN([gl_FUNC_GETDELIM], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) dnl Persuade glibc to declare getdelim(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_DECLS_ONCE([getdelim]) AC_CHECK_FUNCS_ONCE([getdelim]) if test $ac_cv_func_getdelim = yes; then HAVE_GETDELIM=1 dnl Found it in some library. Verify that it works. AC_CACHE_CHECK([for working getdelim function], [gl_cv_func_working_getdelim], [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data AC_RUN_IFELSE([AC_LANG_SOURCE([[ # include # include # include int main () { FILE *in = fopen ("./conftest.data", "r"); if (!in) return 1; { /* Test result for a NULL buffer and a zero size. Based on a test program from Karl Heuer. */ char *line = NULL; size_t siz = 0; int len = getdelim (&line, &siz, '\n', in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) { free (line); fclose (in); return 2; } } { /* Test result for a NULL buffer and a non-zero size. This crashes on FreeBSD 8.0. */ char *line = NULL; size_t siz = (size_t)(~0) / 4; if (getdelim (&line, &siz, '\n', in) == -1) { fclose (in); return 3; } free (line); } fclose (in); return 0; } ]])], [gl_cv_func_working_getdelim=yes] dnl The library version works. , [gl_cv_func_working_getdelim=no] dnl The library version does NOT work. , dnl We're cross compiling. Assume it works on glibc2 systems. [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif ], [gl_cv_func_working_getdelim="guessing yes"], [gl_cv_func_working_getdelim="guessing no"])] )]) case "$gl_cv_func_working_getdelim" in *no) REPLACE_GETDELIM=1 ;; esac else HAVE_GETDELIM=0 fi if test $ac_cv_have_decl_getdelim = no; then HAVE_DECL_GETDELIM=0 fi ]) # Prerequisites of lib/getdelim.c. AC_DEFUN([gl_PREREQ_GETDELIM], [ AC_CHECK_FUNCS([flockfile funlockfile]) AC_CHECK_DECLS([getc_unlocked]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/getdtablesize.m40000644000000000000000000000011013726163410022413 xustar000000000000000024 mtime=1599661832.555 24 atime=1599661832.746 24 ctime=1599661998.227 libprelude-5.2.0/libmissing/m4/getdtablesize.m40000644000000000000000000000474013726163410021423 0ustar00rootroot00000000000000# getdtablesize.m4 serial 7 dnl Copyright (C) 2008-2018 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_FUNC_GETDTABLESIZE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([getdtablesize]) AC_CHECK_DECLS_ONCE([getdtablesize]) if test $ac_cv_func_getdtablesize = yes && test $ac_cv_have_decl_getdtablesize = yes; then AC_CACHE_CHECK([whether getdtablesize works], [gl_cv_func_getdtablesize_works], [dnl There are two concepts: the "maximum possible file descriptor value + 1" dnl and the "maximum number of open file descriptors in a process". dnl Per SUSv2 and POSIX, getdtablesize() should return the first one. dnl On most platforms, the first and the second concept are the same. dnl On OpenVMS, however, they are different and getdtablesize() returns dnl the second one; thus the test below fails. But we don't care dnl because there's no good way to write a replacement getdtablesize(). case "$host_os" in vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;; *) dnl Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft dnl limit up to an unchangeable hard limit; all other platforms dnl correctly require setrlimit before getdtablesize() can report dnl a larger value. AC_RUN_IFELSE([ AC_LANG_PROGRAM([[#include ]], [int size = getdtablesize(); if (dup2 (0, getdtablesize()) != -1) return 1; if (size != getdtablesize()) return 2; ])], [gl_cv_func_getdtablesize_works=yes], [gl_cv_func_getdtablesize_works=no], [case "$host_os" in cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows gl_cv_func_getdtablesize_works="guessing no" ;; *) gl_cv_func_getdtablesize_works="guessing yes" ;; esac ]) ;; esac ]) case "$gl_cv_func_getdtablesize_works" in *yes | "no (limitation)") ;; *) REPLACE_GETDTABLESIZE=1 ;; esac else HAVE_GETDTABLESIZE=0 fi ]) # Prerequisites of lib/getdtablesize.c. AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/gethostname.m40000644000000000000000000000011013726163410022103 xustar000000000000000024 mtime=1599661832.555 24 atime=1599661832.746 24 ctime=1599661998.228 libprelude-5.2.0/libmissing/m4/gethostname.m40000644000000000000000000000660713726163410021117 0ustar00rootroot00000000000000# gethostname.m4 serial 13 dnl Copyright (C) 2002, 2008-2018 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. # Ensure # - the gethostname() function, # - the HOST_NAME_MAX macro in . AC_DEFUN([gl_FUNC_GETHOSTNAME], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_PREREQ_SYS_H_WINSOCK2 dnl Where is gethostname() defined? dnl - On native Windows, it is in ws2_32.dll. dnl - Otherwise it is in libc. GETHOSTNAME_LIB= AC_CHECK_FUNCS([gethostname], , [ AC_CACHE_CHECK([for gethostname in winsock2.h and -lws2_32], [gl_cv_w32_gethostname], [gl_cv_w32_gethostname=no gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifdef HAVE_WINSOCK2_H #include #endif #include ]], [[gethostname(NULL, 0);]])], [gl_cv_w32_gethostname=yes]) LIBS="$gl_save_LIBS" ]) if test "$gl_cv_w32_gethostname" = "yes"; then GETHOSTNAME_LIB="-lws2_32" fi ]) AC_SUBST([GETHOSTNAME_LIB]) if test "$ac_cv_func_gethostname" = no; then HAVE_GETHOSTNAME=0 fi gl_PREREQ_HOST_NAME_MAX ]) # Provide HOST_NAME_MAX when lacks it. AC_DEFUN([gl_PREREQ_HOST_NAME_MAX], [ dnl - On most Unix systems, use MAXHOSTNAMELEN from instead. dnl - On Solaris, Cygwin, BeOS, use MAXHOSTNAMELEN from instead. dnl - On mingw, use 256, because dnl says: dnl "if a buffer of 256 bytes is passed in the name parameter and dnl the namelen parameter is set to 256, the buffer size will always dnl be adequate." dnl With this, there is no need to use sysconf (_SC_HOST_NAME_MAX), which dnl is not a compile-time constant. dnl We cannot override using the usual technique, because dnl gl_CHECK_NEXT_HEADERS does not work for . Therefore retrieve dnl the value of HOST_NAME_MAX at configure time. AC_CHECK_HEADERS_ONCE([sys/param.h]) AC_CHECK_HEADERS_ONCE([sys/socket.h]) AC_CHECK_HEADERS_ONCE([netdb.h]) AC_CACHE_CHECK([for HOST_NAME_MAX], [gl_cv_decl_HOST_NAME_MAX], [ gl_cv_decl_HOST_NAME_MAX= AC_EGREP_CPP([lucky], [ #include #ifdef HOST_NAME_MAX lucky #endif ], [gl_cv_decl_HOST_NAME_MAX=yes]) if test -z "$gl_cv_decl_HOST_NAME_MAX"; then dnl It's not defined in . Substitute it. if test "$gl_cv_w32_gethostname" = yes; then dnl mingw. gl_cv_decl_HOST_NAME_MAX=256 else _AC_COMPUTE_INT([MAXHOSTNAMELEN], [gl_cv_decl_HOST_NAME_MAX], [ #include #if HAVE_SYS_PARAM_H # include #endif #if HAVE_SYS_SOCKET_H # include #endif #if HAVE_NETDB_H # include #endif ], [dnl The system does not define MAXHOSTNAMELEN in any of the common dnl headers. Use a safe fallback. gl_cv_decl_HOST_NAME_MAX=256 ]) fi fi ]) if test "$gl_cv_decl_HOST_NAME_MAX" != yes; then AC_DEFINE_UNQUOTED([HOST_NAME_MAX], [$gl_cv_decl_HOST_NAME_MAX], [Define HOST_NAME_MAX when does not define it.]) fi ]) # Prerequisites of lib/gethostname.c. AC_DEFUN([gl_PREREQ_GETHOSTNAME], [ if test "$gl_cv_w32_gethostname" != "yes"; then AC_CHECK_FUNCS([uname]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/getline.m40000644000000000000000000000010713726163410021222 xustar000000000000000024 mtime=1599661832.555 24 atime=1599661832.746 23 ctime=1599661998.23 libprelude-5.2.0/libmissing/m4/getline.m40000644000000000000000000000601313726163410020217 0ustar00rootroot00000000000000# getline.m4 serial 28 dnl Copyright (C) 1998-2003, 2005-2007, 2009-2018 Free Software Foundation, dnl Inc. dnl 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_PREREQ([2.59]) dnl See if there's a working, system-supplied version of the getline function. dnl We can't just do AC_REPLACE_FUNCS([getline]) because some systems dnl have a function by that name in -linet that doesn't have anything dnl to do with the function we need. AC_DEFUN([gl_FUNC_GETLINE], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) dnl Persuade glibc to declare getline(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_DECLS_ONCE([getline]) gl_getline_needs_run_time_check=no AC_CHECK_FUNC([getline], [dnl Found it in some library. Verify that it works. gl_getline_needs_run_time_check=yes], [am_cv_func_working_getline=no]) if test $gl_getline_needs_run_time_check = yes; then AC_CACHE_CHECK([for working getline function], [am_cv_func_working_getline], [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data AC_RUN_IFELSE([AC_LANG_SOURCE([[ # include # include # include int main () { FILE *in = fopen ("./conftest.data", "r"); if (!in) return 1; { /* Test result for a NULL buffer and a zero size. Based on a test program from Karl Heuer. */ char *line = NULL; size_t siz = 0; int len = getline (&line, &siz, in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) { free (line); fclose (in); return 2; } free (line); } { /* Test result for a NULL buffer and a non-zero size. This crashes on FreeBSD 8.0. */ char *line = NULL; size_t siz = (size_t)(~0) / 4; if (getline (&line, &siz, in) == -1) { fclose (in); return 3; } free (line); } fclose (in); return 0; } ]])], [am_cv_func_working_getline=yes] dnl The library version works. , [am_cv_func_working_getline=no] dnl The library version does NOT work. , dnl We're cross compiling. Assume it works on glibc2 systems. [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif ], [am_cv_func_working_getline="guessing yes"], [am_cv_func_working_getline="guessing no"])] )]) fi if test $ac_cv_have_decl_getline = no; then HAVE_DECL_GETLINE=0 fi case "$am_cv_func_working_getline" in *no) dnl Set REPLACE_GETLINE always: Even if we have not found the broken dnl getline function among $LIBS, it may exist in libinet and the dnl executable may be linked with -linet. REPLACE_GETLINE=1 ;; esac ]) # Prerequisites of lib/getline.c. AC_DEFUN([gl_PREREQ_GETLINE], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/getpagesize.m40000644000000000000000000000011013726163410022074 xustar000000000000000024 mtime=1599661832.556 24 atime=1599661832.746 24 ctime=1599661998.232 libprelude-5.2.0/libmissing/m4/getpagesize.m40000644000000000000000000000276213726163410021106 0ustar00rootroot00000000000000# getpagesize.m4 serial 10 dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2018 Free Software Foundation, dnl 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_FUNC_GETPAGESIZE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) gl_CHECK_FUNC_GETPAGESIZE if test $gl_cv_func_getpagesize = no; then HAVE_GETPAGESIZE=0 AC_CHECK_HEADERS([OS.h]) if test $ac_cv_header_OS_h = yes; then HAVE_OS_H=1 fi AC_CHECK_HEADERS([sys/param.h]) if test $ac_cv_header_sys_param_h = yes; then HAVE_SYS_PARAM_H=1 fi fi case "$host_os" in mingw*) REPLACE_GETPAGESIZE=1 ;; esac dnl Also check whether it's declared. dnl mingw has getpagesize() in libgcc.a but doesn't declare it. AC_CHECK_DECL([getpagesize], , [HAVE_DECL_GETPAGESIZE=0]) ]) dnl Tests whether the function getpagesize() exists. dnl Sets gl_cv_func_getpagesize. AC_DEFUN([gl_CHECK_FUNC_GETPAGESIZE], [ dnl We can't use AC_CHECK_FUNC here, because getpagesize() is defined as a dnl static inline function when compiling for Android 4.4 or older. AC_CACHE_CHECK([for getpagesize], [gl_cv_func_getpagesize], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[return getpagesize();]]) ], [gl_cv_func_getpagesize=yes], [gl_cv_func_getpagesize=no]) ]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/getpass.m40000644000000000000000000000011013726163410021233 xustar000000000000000024 mtime=1599661832.556 24 atime=1599661832.746 24 ctime=1599661998.233 libprelude-5.2.0/libmissing/m4/getpass.m40000644000000000000000000000620113726163410020235 0ustar00rootroot00000000000000# getpass.m4 serial 16 dnl Copyright (C) 2002-2003, 2005-2006, 2009-2018 Free Software Foundation, dnl 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. # Provide a getpass() function if the system doesn't have it. AC_DEFUN_ONCE([gl_FUNC_GETPASS], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl Persuade Solaris and to declare getpass(). AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_FUNCS_ONCE([getpass]) if test $ac_cv_func_getpass = no; then HAVE_GETPASS=0 fi ]) # Provide the GNU getpass() implementation. It supports passwords of # arbitrary length (not just 8 bytes as on HP-UX). AC_DEFUN([gl_FUNC_GETPASS_GNU], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_GETPASS]) if test $ac_cv_func_getpass = yes; then AC_CACHE_CHECK([for getpass without length limitations], [gl_cv_func_getpass_good], [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif ], [gl_cv_func_getpass_good=yes], [gl_cv_func_getpass_good=no]) ]) if test $gl_cv_func_getpass_good != yes; then REPLACE_GETPASS=1 fi fi ]) # Prerequisites of lib/getpass.c. AC_DEFUN([gl_PREREQ_GETPASS], [ AC_CHECK_HEADERS_ONCE([stdio_ext.h termios.h]) AC_CHECK_FUNCS_ONCE([__fsetlocking]) AC_CHECK_DECLS([__fsetlocking],,, [[#include #if HAVE_STDIO_EXT_H #include #endif]]) AC_CHECK_DECLS_ONCE([fflush_unlocked]) AC_CHECK_DECLS_ONCE([flockfile]) AC_CHECK_DECLS_ONCE([fputs_unlocked]) AC_CHECK_DECLS_ONCE([funlockfile]) AC_CHECK_DECLS_ONCE([putc_unlocked]) dnl We can't use AC_CHECK_FUNC here, because tcgetattr() is defined as a dnl static inline function when compiling for Android 4.4 or older. AC_CACHE_CHECK([for tcgetattr], [gl_cv_func_tcgetattr], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include struct termios x; ]], [[return tcgetattr(0,&x);]]) ], [gl_cv_func_tcgetattr=yes], [gl_cv_func_tcgetattr=no]) ]) if test $gl_cv_func_tcgetattr = yes; then HAVE_TCGETATTR=1 else HAVE_TCGETATTR=0 fi AC_DEFINE_UNQUOTED([HAVE_TCGETATTR], [$HAVE_TCGETATTR], [Define to 1 if the system has the 'tcgetattr' function.]) dnl We can't use AC_CHECK_FUNC here, because tcsetattr() is defined as a dnl static inline function when compiling for Android 4.4 or older. AC_CACHE_CHECK([for tcsetattr], [gl_cv_func_tcsetattr], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include struct termios x; ]], [[return tcsetattr(0,0,&x);]]) ], [gl_cv_func_tcsetattr=yes], [gl_cv_func_tcsetattr=no]) ]) if test $gl_cv_func_tcsetattr = yes; then HAVE_TCSETATTR=1 else HAVE_TCSETATTR=0 fi AC_DEFINE_UNQUOTED([HAVE_TCSETATTR], [$HAVE_TCSETATTR], [Define to 1 if the system has the 'tcsetattr' function.]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/gettimeofday.m40000644000000000000000000000011013726163410022246 xustar000000000000000024 mtime=1599661832.556 24 atime=1599661832.746 24 ctime=1599661998.235 libprelude-5.2.0/libmissing/m4/gettimeofday.m40000644000000000000000000001110513726163410021247 0ustar00rootroot00000000000000# serial 25 # Copyright (C) 2001-2003, 2005, 2007, 2009-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Jim Meyering. AC_DEFUN([gl_FUNC_GETTIMEOFDAY], [ AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS]) AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_HEADER_SYS_TIME_H]) AC_CHECK_FUNCS_ONCE([gettimeofday]) gl_gettimeofday_timezone=void if test $ac_cv_func_gettimeofday != yes; then HAVE_GETTIMEOFDAY=0 else gl_FUNC_GETTIMEOFDAY_CLOBBER AC_CACHE_CHECK([for gettimeofday with POSIX signature], [gl_cv_func_gettimeofday_posix_signature], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include struct timeval c; int gettimeofday (struct timeval *restrict, void *restrict); ]], [[/* glibc uses struct timezone * rather than the POSIX void * if _GNU_SOURCE is defined. However, since the only portable use of gettimeofday uses NULL as the second parameter, and since the glibc definition is actually more typesafe, it is not worth wrapping this to get a compliant signature. */ int (*f) (struct timeval *restrict, void *restrict) = gettimeofday; int x = f (&c, 0); return !(x | c.tv_sec | c.tv_usec); ]])], [gl_cv_func_gettimeofday_posix_signature=yes], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include int gettimeofday (struct timeval *restrict, struct timezone *restrict); ]])], [gl_cv_func_gettimeofday_posix_signature=almost], [gl_cv_func_gettimeofday_posix_signature=no])])]) if test $gl_cv_func_gettimeofday_posix_signature = almost; then gl_gettimeofday_timezone='struct timezone' elif test $gl_cv_func_gettimeofday_posix_signature != yes; then REPLACE_GETTIMEOFDAY=1 fi dnl If we override 'struct timeval', we also have to override gettimeofday. if test $REPLACE_STRUCT_TIMEVAL = 1; then REPLACE_GETTIMEOFDAY=1 fi dnl On mingw, the original gettimeofday has only a precision of 15.6 dnl milliseconds. So override it. case "$host_os" in mingw*) REPLACE_GETTIMEOFDAY=1 ;; esac fi AC_DEFINE_UNQUOTED([GETTIMEOFDAY_TIMEZONE], [$gl_gettimeofday_timezone], [Define this to 'void' or 'struct timezone' to match the system's declaration of the second argument to gettimeofday.]) ]) dnl See if gettimeofday clobbers the static buffer that localtime uses dnl for its return value. The gettimeofday function from Mac OS X 10.0.4 dnl (i.e., Darwin 1.3.7) has this problem. dnl dnl If it does, then arrange to use gettimeofday and localtime only via dnl the wrapper functions that work around the problem. AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER], [ AC_REQUIRE([gl_HEADER_SYS_TIME_H]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_LOCALTIME_BUFFER_DEFAULTS]) AC_CACHE_CHECK([whether gettimeofday clobbers localtime buffer], [gl_cv_func_gettimeofday_clobber], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include #include ]], [[ time_t t = 0; struct tm *lt; struct tm saved_lt; struct timeval tv; lt = localtime (&t); saved_lt = *lt; gettimeofday (&tv, NULL); return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0; ]])], [gl_cv_func_gettimeofday_clobber=no], [gl_cv_func_gettimeofday_clobber=yes], [# When cross-compiling: case "$host_os" in # Guess all is fine on glibc systems. *-gnu* | gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;; # Guess no on native Windows. mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;; # If we don't know, assume the worst. *) gl_cv_func_gettimeofday_clobber="guessing yes" ;; esac ])]) case "$gl_cv_func_gettimeofday_clobber" in *yes) REPLACE_GETTIMEOFDAY=1 AC_DEFINE([GETTIMEOFDAY_CLOBBERS_LOCALTIME], [1], [Define if gettimeofday clobbers the localtime buffer.]) gl_LOCALTIME_BUFFER_NEEDED ;; esac ]) # Prerequisites of lib/gettimeofday.c. AC_DEFUN([gl_PREREQ_GETTIMEOFDAY], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/glibc21.m40000644000000000000000000000011013726163410021010 xustar000000000000000024 mtime=1599661832.556 24 atime=1599661832.746 24 ctime=1599661998.237 libprelude-5.2.0/libmissing/m4/glibc21.m40000644000000000000000000000161313726163410020014 0ustar00rootroot00000000000000# glibc21.m4 serial 5 dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2018 Free Software Foundation, dnl 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. # Test for the GNU C Library, version 2.1 or newer, or uClibc. # From Bruno Haible. AC_DEFUN([gl_GLIBC21], [ AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc], [ac_cv_gnu_library_2_1], [AC_EGREP_CPP([Lucky], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif #ifdef __UCLIBC__ Lucky user #endif ], [ac_cv_gnu_library_2_1=yes], [ac_cv_gnu_library_2_1=no]) ] ) AC_SUBST([GLIBC21]) GLIBC21="$ac_cv_gnu_library_2_1" ] ) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/gnulib-common.m40000644000000000000000000000011013726163410022333 xustar000000000000000024 mtime=1599661832.557 24 atime=1599661832.746 24 ctime=1599661998.238 libprelude-5.2.0/libmissing/m4/gnulib-common.m40000644000000000000000000004333513726163410021346 0ustar00rootroot00000000000000# gnulib-common.m4 serial 39 dnl Copyright (C) 2007-2018 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. # gl_COMMON # is expanded unconditionally through gnulib-tool magic. AC_DEFUN([gl_COMMON], [ dnl Use AC_REQUIRE here, so that the code is expanded once only. AC_REQUIRE([gl_00GNULIB]) AC_REQUIRE([gl_COMMON_BODY]) ]) AC_DEFUN([gl_COMMON_BODY], [ AH_VERBATIM([_Noreturn], [/* The _Noreturn keyword of C11. */ #if ! (defined _Noreturn \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif ]) AH_VERBATIM([isoc99_inline], [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. __APPLE__ && __MACH__ test for Mac OS X. __APPLE_CC__ tests for the Apple compiler and its version. __STDC_VERSION__ tests for the C99 mode. */ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif]) AH_VERBATIM([unused_parameter], [/* Define as a marker that can be attached to declarations that might not be used. This helps to reduce warnings, such as from GCC -Wunused-parameter. */ #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_UNUSED __attribute__ ((__unused__)) #else # define _GL_UNUSED #endif /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name is a misnomer outside of parameter lists. */ #define _UNUSED_PARAMETER_ _GL_UNUSED /* gcc supports the "unused" attribute on possibly unused labels, and g++ has since version 4.5. Note to support C++ as well as C, _GL_UNUSED_LABEL should be used with a trailing ; */ #if !defined __cplusplus || __GNUC__ > 4 \ || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) # define _GL_UNUSED_LABEL _GL_UNUSED #else # define _GL_UNUSED_LABEL #endif /* The __pure__ attribute was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The __const__ attribute was added in gcc 2.95. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) #else # define _GL_ATTRIBUTE_CONST /* empty */ #endif /* The __malloc__ attribute was added in gcc 3. */ #if 3 <= __GNUC__ # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) #else # define _GL_ATTRIBUTE_MALLOC /* empty */ #endif ]) dnl Preparation for running test programs: dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not dnl to /dev/tty, so they can be redirected to log files. Such diagnostics dnl arise e.g., in the macros gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N. LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ ]) # gl_MODULE_INDICATOR_CONDITION # expands to a C preprocessor expression that evaluates to 1 or 0, depending # whether a gnulib module that has been requested shall be considered present # or not. m4_define([gl_MODULE_INDICATOR_CONDITION], [1]) # gl_MODULE_INDICATOR_SET_VARIABLE([modulename]) # sets the shell variable that indicates the presence of the given module to # a C preprocessor expression that will evaluate to 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], [ gl_MODULE_INDICATOR_SET_VARIABLE_AUX( [GNULIB_[]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION]) ]) # gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable]) # modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION. # The shell variable's value is a C preprocessor expression that evaluates # to 0 or 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX], [ m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1], [ dnl Simplify the expression VALUE || 1 to 1. $1=1 ], [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1], [gl_MODULE_INDICATOR_CONDITION])]) ]) # gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition]) # modifies the shell variable to include the given condition. The shell # variable's value is a C preprocessor expression that evaluates to 0 or 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR], [ dnl Simplify the expression 1 || CONDITION to 1. if test "$[]$1" != 1; then dnl Simplify the expression 0 || CONDITION to CONDITION. if test "$[]$1" = 0; then $1=$2 else $1="($[]$1 || $2)" fi fi ]) # gl_MODULE_INDICATOR([modulename]) # defines a C macro indicating the presence of the given module # in a location where it can be used. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 0 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR], [ AC_DEFINE_UNQUOTED([GNULIB_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [gl_MODULE_INDICATOR_CONDITION], [Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module $1 shall be considered present.]) ]) # gl_MODULE_INDICATOR_FOR_TESTS([modulename]) # defines a C macro indicating the presence of the given module # in lib or tests. This is useful to determine whether the module # should be tested. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [ AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1], [Define to 1 when the gnulib module $1 should be tested.]) ]) # gl_ASSERT_NO_GNULIB_POSIXCHECK # asserts that there will never be a need to #define GNULIB_POSIXCHECK. # and thereby enables an optimization of configure and config.h. # Used by Emacs. AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK], [ dnl Override gl_WARN_ON_USE_PREPARE. dnl But hide this definition from 'aclocal'. AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], []) ]) # gl_ASSERT_NO_GNULIB_TESTS # asserts that there will be no gnulib tests in the scope of the configure.ac # and thereby enables an optimization of config.h. # Used by Emacs. AC_DEFUN([gl_ASSERT_NO_GNULIB_TESTS], [ dnl Override gl_MODULE_INDICATOR_FOR_TESTS. AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], []) ]) # Test whether exists. # Set HAVE_FEATURES_H. AC_DEFUN([gl_FEATURES_H], [ AC_CHECK_HEADERS_ONCE([features.h]) if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else HAVE_FEATURES_H=0 fi AC_SUBST([HAVE_FEATURES_H]) ]) # m4_foreach_w # is a backport of autoconf-2.59c's m4_foreach_w. # Remove this macro when we can assume autoconf >= 2.60. m4_ifndef([m4_foreach_w], [m4_define([m4_foreach_w], [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])]) # AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH]) # ---------------------------------------------------- # Backport of autoconf-2.63b's macro. # Remove this macro when we can assume autoconf >= 2.64. m4_ifndef([AS_VAR_IF], [m4_define([AS_VAR_IF], [AS_IF([test x"AS_VAR_GET([$1])" = x""$2], [$3], [$4])])]) # gl_PROG_CC_C99 # Modifies the value of the shell variable CC in an attempt to make $CC # understand ISO C99 source code. # This is like AC_PROG_CC_C99, except that # - AC_PROG_CC_C99 did not exist in Autoconf versions < 2.60, # - AC_PROG_CC_C99 does not mix well with AC_PROG_CC_STDC # , # but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99 # . # Remaining problems: # - When AC_PROG_CC_STDC is invoked twice, it adds the C99 enabling options # to CC twice # . # - AC_PROG_CC_STDC is likely to change now that C11 is an ISO standard. AC_DEFUN([gl_PROG_CC_C99], [ dnl Change that version number to the minimum Autoconf version that supports dnl mixing AC_PROG_CC_C99 calls with AC_PROG_CC_STDC calls. m4_version_prereq([9.0], [AC_REQUIRE([AC_PROG_CC_C99])], [AC_REQUIRE([AC_PROG_CC_STDC])]) ]) # gl_PROG_AR_RANLIB # Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler. # The user can set the variables AR, ARFLAGS, RANLIB if he wants to override # the values. AC_DEFUN([gl_PROG_AR_RANLIB], [ dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler dnl as "cc", and GCC as "gcc". They have different object file formats and dnl library formats. In particular, the GNU binutils programs ar and ranlib dnl produce libraries that work only with gcc, not with cc. AC_REQUIRE([AC_PROG_CC]) dnl The '][' hides this use from 'aclocal'. AC_BEFORE([$0], [A][M_PROG_AR]) AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler], [ AC_EGREP_CPP([Amsterdam], [ #ifdef __ACK__ Amsterdam #endif ], [gl_cv_c_amsterdam_compiler=yes], [gl_cv_c_amsterdam_compiler=no]) ]) dnl Don't compete with AM_PROG_AR's decision about AR/ARFLAGS if we are not dnl building with __ACK__. if test $gl_cv_c_amsterdam_compiler = yes; then if test -z "$AR"; then AR='cc -c.a' fi if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else dnl AM_PROG_AR was added in automake v1.11.2. AM_PROG_AR does not AC_SUBST dnl ARFLAGS variable (it is filed into Makefile.in directly by automake dnl script on-demand, if not specified by ./configure of course). dnl Don't AC_REQUIRE the AM_PROG_AR otherwise the code for __ACK__ above dnl will be ignored. Also, pay attention to call AM_PROG_AR in else block dnl because AM_PROG_AR is written so it could re-set AR variable even for dnl __ACK__. It may seem like its easier to avoid calling the macro here, dnl but we need to AC_SUBST both AR/ARFLAGS (thus those must have some good dnl default value and automake should usually know them). dnl dnl The '][' hides this use from 'aclocal'. m4_ifdef([A][M_PROG_AR], [A][M_PROG_AR], [:]) fi dnl In case the code above has not helped with setting AR/ARFLAGS, use dnl Automake-documented default values for AR and ARFLAGS, but prefer dnl ${host}-ar over ar (useful for cross-compiling). AC_CHECK_TOOL([AR], [ar], [ar]) if test -z "$ARFLAGS"; then ARFLAGS='cr' fi AC_SUBST([AR]) AC_SUBST([ARFLAGS]) if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' else dnl Use the ranlib program if it is available. AC_PROG_RANLIB fi fi AC_SUBST([RANLIB]) ]) # AC_PROG_MKDIR_P # is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix # for interoperability with automake-1.9.6 from autoconf-2.62. # Remove this macro when we can assume autoconf >= 2.62 or # autoconf >= 2.60 && automake >= 1.10. # AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness. m4_ifndef([AC_AUTOCONF_VERSION],[ m4_ifdef([AC_PROG_MKDIR_P], [ dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed. m4_define([AC_PROG_MKDIR_P], m4_defn([AC_PROG_MKDIR_P])[ AC_SUBST([MKDIR_P])])], [ dnl For autoconf < 2.60: Backport of AC_PROG_MKDIR_P. AC_DEFUN_ONCE([AC_PROG_MKDIR_P], [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake MKDIR_P='$(mkdir_p)' AC_SUBST([MKDIR_P])])]) ]) # AC_C_RESTRICT # This definition is copied from post-2.69 Autoconf and overrides the # AC_C_RESTRICT macro from autoconf 2.60..2.69. It can be removed # once autoconf >= 2.70 can be assumed. It's painful to check version # numbers, and in practice this macro is more up-to-date than Autoconf # is, so override Autoconf unconditionally. AC_DEFUN([AC_C_RESTRICT], [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict], [ac_cv_c_restrict=no # The order here caters to the fact that C++ does not require restrict. for ac_kw in __restrict __restrict__ _Restrict restrict; do AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[typedef int *int_ptr; int foo (int_ptr $ac_kw ip) { return ip[0]; } int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ int bar (int ip[$ac_kw]) { return ip[0]; } ]], [[int s[1]; int *$ac_kw t = s; t[0] = 0; return foo (t) + bar (t); ]])], [ac_cv_c_restrict=$ac_kw]) test "$ac_cv_c_restrict" != no && break done ]) AH_VERBATIM([restrict], [/* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported directly. */ #undef restrict /* Work around a bug in Sun C++: it does not support _Restrict or __restrict__, even though the corresponding Sun C compiler ends up with "#define restrict _Restrict" or "#define restrict __restrict__" in the previous line. Perhaps some future version of Sun C++ will work with restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ #if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict # define __restrict__ #endif]) case $ac_cv_c_restrict in restrict) ;; no) AC_DEFINE([restrict], []) ;; *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; esac ])# AC_C_RESTRICT # gl_BIGENDIAN # is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd. # Note that AC_REQUIRE([AC_C_BIGENDIAN]) does not work reliably because some # macros invoke AC_C_BIGENDIAN with arguments. AC_DEFUN([gl_BIGENDIAN], [ AC_C_BIGENDIAN ]) # gl_CACHE_VAL_SILENT(cache-id, command-to-set-it) # is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not # output a spurious "(cached)" mark in the midst of other configure output. # This macro should be used instead of AC_CACHE_VAL when it is not surrounded # by an AC_MSG_CHECKING/AC_MSG_RESULT pair. AC_DEFUN([gl_CACHE_VAL_SILENT], [ saved_as_echo_n="$as_echo_n" as_echo_n=':' AC_CACHE_VAL([$1], [$2]) as_echo_n="$saved_as_echo_n" ]) # AS_VAR_COPY was added in autoconf 2.63b m4_define_default([AS_VAR_COPY], [AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])]) # AC_PROG_SED was added in autoconf 2.59b m4_ifndef([AC_PROG_SED], [AC_DEFUN([AC_PROG_SED], [AC_CACHE_CHECK([for a sed that does not truncate output], ac_cv_path_SED, [dnl ac_script should not contain more than 99 commands (for HP-UX sed), dnl but more than about 7000 bytes, to catch a limit in Solaris 8 /usr/ucb/sed. ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed AS_UNSET([ac_script]) if test -z "$SED"; then ac_path_SED_found=false _AS_PATH_WALK([], [ for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" AS_EXECUTABLE_P(["$ac_path_SED"]) || continue case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED=$ac_path_SED ac_path_SED_found=:;; *) ac_count=0 _AS_ECHO_N([0123456789]) >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >> conftest.nl "$ac_path_SED" -f conftest.sed conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_SED_max-0}; then # Best so far, but keep looking for better ac_cv_path_SED=$ac_path_SED ac_path_SED_max=$ac_count fi test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done]) if test -z "$ac_cv_path_SED"; then AC_ERROR([no acceptable sed could be found in \$PATH]) fi else ac_cv_path_SED=$SED fi ]) SED="$ac_cv_path_SED" AC_SUBST([SED])dnl rm -f conftest.sed ]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/gnulib-comp.m40000644000000000000000000000010713726163410022007 xustar000000000000000024 mtime=1599661832.557 24 atime=1599661832.746 23 ctime=1599661998.24 libprelude-5.2.0/libmissing/m4/gnulib-comp.m40000644000000000000000000013573513726163410021022 0ustar00rootroot00000000000000# DO NOT EDIT! GENERATED AUTOMATICALLY! # Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the compiled summary of the specification in # gnulib-cache.m4. It lists the computed macro invocations that need # to be invoked from configure.ac. # In projects that use version control, this file can be treated like # other built files. # This macro should be invoked from ./configure.ac, in the section # "Checks for programs", right after AC_PROG_CC, and certainly before # any checks for libraries, header files, types and library functions. AC_DEFUN([gl_EARLY], [ m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace m4_pattern_allow([^gl_ES$])dnl a valid locale name m4_pattern_allow([^gl_LIBOBJS$])dnl a variable m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable # Pre-early section. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_PROG_AR_RANLIB]) AC_REQUIRE([AM_PROG_CC_C_O]) # Code from module absolute-header: # Code from module accept: # Code from module accept-tests: # Code from module alloca: # Code from module alloca-opt: # Code from module alloca-opt-tests: # Code from module arpa_inet: # Code from module arpa_inet-tests: # Code from module assure: # Code from module binary-io: # Code from module binary-io-tests: # Code from module bind: # Code from module bind-tests: # Code from module btowc: # Code from module btowc-tests: # Code from module builtin-expect: # Code from module c-ctype: # Code from module c-ctype-tests: # Code from module c-strcase: # Code from module c-strcase-tests: # Code from module cloexec: # Code from module cloexec-tests: # Code from module close: # Code from module close-tests: # Code from module cond: # Code from module cond-tests: # Code from module connect: # Code from module connect-tests: # Code from module ctype: # Code from module ctype-tests: # Code from module dosname: # Code from module dup2: # Code from module dup2-tests: # Code from module environ: # Code from module environ-tests: # Code from module errno: # Code from module errno-tests: # Code from module extensions: # Code from module extern-inline: # Code from module fclose: # Code from module fclose-tests: # Code from module fcntl: # Code from module fcntl-h: # Code from module fcntl-h-tests: # Code from module fcntl-tests: # Code from module fd-hook: # Code from module fdopen: # Code from module fdopen-tests: # Code from module fflush: AC_REQUIRE([AC_FUNC_FSEEKO]) # Code from module fflush-tests: # Code from module fgetc-tests: # Code from module filename: # Code from module flexmember: # Code from module float: # Code from module float-tests: # Code from module fopen: # Code from module fopen-tests: # Code from module fpieee: AC_REQUIRE([gl_FP_IEEE]) # Code from module fpucw: # Code from module fpurge: # Code from module fpurge-tests: # Code from module fputc-tests: # Code from module fread-tests: # Code from module freading: # Code from module freading-tests: # Code from module fseek: # Code from module fseek-tests: # Code from module fseeko: AC_REQUIRE([AC_FUNC_FSEEKO]) # Code from module fseeko-tests: # Code from module fstat: # Code from module fstat-tests: # Code from module ftell: # Code from module ftell-tests: # Code from module ftello: AC_REQUIRE([AC_FUNC_FSEEKO]) # Code from module ftello-tests: # Code from module ftruncate: # Code from module ftruncate-tests: # Code from module ftw: # Code from module fwrite-tests: # Code from module getaddrinfo: # Code from module getaddrinfo-tests: # Code from module getcwd-lgpl: # Code from module getcwd-lgpl-tests: # Code from module getdelim: # Code from module getdelim-tests: # Code from module getdtablesize: # Code from module getdtablesize-tests: # Code from module gethostname: # Code from module gethostname-tests: # Code from module getline: # Code from module getline-tests: # Code from module getpagesize: # Code from module getpass: # Code from module getsockname: # Code from module getsockname-tests: # Code from module gettext-h: # Code from module gettimeofday: # Code from module gettimeofday-tests: # Code from module hard-locale: # Code from module havelib: # Code from module host-cpu-c-abi: # Code from module hostent: # Code from module ignore-value: # Code from module ignore-value-tests: # Code from module include_next: # Code from module inet_ntop: # Code from module inet_ntop-tests: # Code from module inet_pton: # Code from module inet_pton-tests: # Code from module intprops: # Code from module intprops-tests: # Code from module inttypes: # Code from module inttypes-incomplete: # Code from module inttypes-tests: # Code from module ioctl: # Code from module ioctl-tests: # Code from module isblank: # Code from module isblank-tests: # Code from module langinfo: # Code from module langinfo-tests: # Code from module largefile: AC_REQUIRE([AC_SYS_LARGEFILE]) # Code from module limits-h: # Code from module limits-h-tests: # Code from module listen: # Code from module listen-tests: # Code from module localcharset: # Code from module localcharset-tests: # Code from module locale: # Code from module locale-tests: # Code from module localeconv: # Code from module localeconv-tests: # Code from module localename: # Code from module localename-tests: # Code from module localtime-buffer: # Code from module lock: # Code from module lock-tests: # Code from module lseek: # Code from module lseek-tests: # Code from module lstat: # Code from module lstat-tests: # Code from module malloc-posix: # Code from module malloca: # Code from module malloca-tests: # Code from module mbrtowc: # Code from module mbrtowc-tests: # Code from module mbsinit: # Code from module mbsinit-tests: # Code from module mbtowc: # Code from module memchr: # Code from module memchr-tests: # Code from module memmem: # Code from module memmem-simple: # Code from module memmem-tests: # Code from module minmax: # Code from module mktime: # Code from module mktime-internal: # Code from module msvc-inval: # Code from module msvc-nothrow: # Code from module multiarch: # Code from module nanosleep: # Code from module nanosleep-tests: # Code from module netdb: # Code from module netdb-tests: # Code from module netinet_in: # Code from module netinet_in-tests: # Code from module nl_langinfo: # Code from module nl_langinfo-tests: # Code from module open: # Code from module open-tests: # Code from module pathmax: # Code from module pathmax-tests: # Code from module perror: # Code from module perror-tests: # Code from module pipe-posix: # Code from module pipe-posix-tests: # Code from module poll: # Code from module poll-h: # Code from module poll-h-tests: # Code from module poll-tests: # Code from module pthread_sigmask: # Code from module pthread_sigmask-tests: # Code from module putenv: # Code from module raise: # Code from module raise-tests: # Code from module regex: # Code from module regex-tests: # Code from module relocatable-lib-lgpl: # Code from module same-inode: # Code from module select: # Code from module select-tests: # Code from module servent: # Code from module setenv: # Code from module setenv-tests: # Code from module setlocale: # Code from module setlocale-tests: # Code from module setsockopt: # Code from module setsockopt-tests: # Code from module sigaction: # Code from module sigaction-tests: # Code from module signal-h: # Code from module signal-h-tests: # Code from module sigprocmask: # Code from module sigprocmask-tests: # Code from module size_max: # Code from module sleep: # Code from module sleep-tests: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/unused-parameter: # Code from module snippet/warn-on-use: # Code from module snprintf: # Code from module snprintf-tests: # Code from module socket: # Code from module socketlib: # Code from module sockets: # Code from module sockets-tests: # Code from module socklen: # Code from module ssize_t: # Code from module stat: # Code from module stat-tests: # Code from module stat-time: # Code from module stat-time-tests: # Code from module stdalign: # Code from module stdalign-tests: # Code from module stdbool: # Code from module stdbool-tests: # Code from module stddef: # Code from module stddef-tests: # Code from module stdint: # Code from module stdint-tests: # Code from module stdio: # Code from module stdio-tests: # Code from module stdlib: # Code from module stdlib-tests: # Code from module strcase: # Code from module strcasestr: # Code from module strcasestr-simple: # Code from module strcasestr-tests: # Code from module strdup-posix: # Code from module streq: # Code from module strerror: # Code from module strerror-override: # Code from module strerror-tests: # Code from module strerror_r-posix: # Code from module strerror_r-posix-tests: # Code from module string: # Code from module string-tests: # Code from module strings: # Code from module strings-tests: # Code from module strndup: # Code from module strnlen: # Code from module strnlen-tests: # Code from module strptime: # Code from module strsep: # Code from module symlink: # Code from module symlink-tests: # Code from module sys_ioctl: # Code from module sys_ioctl-tests: # Code from module sys_select: # Code from module sys_select-tests: # Code from module sys_socket: # Code from module sys_socket-tests: # Code from module sys_stat: # Code from module sys_stat-tests: # Code from module sys_time: # Code from module sys_time-tests: # Code from module sys_types: # Code from module sys_types-tests: # Code from module sys_uio: # Code from module sys_uio-tests: # Code from module sys_utsname: # Code from module sys_utsname-tests: # Code from module test-framework-sh: # Code from module test-framework-sh-tests: # Code from module thread: # Code from module thread-tests: # Code from module threadlib: gl_THREADLIB_EARLY # Code from module time: # Code from module time-tests: # Code from module time_r: # Code from module timegm: # Code from module tls: # Code from module tls-tests: # Code from module uname: # Code from module uname-tests: # Code from module unistd: # Code from module unistd-tests: # Code from module unsetenv: # Code from module unsetenv-tests: # Code from module usleep: # Code from module usleep-tests: # Code from module vasnprintf: # Code from module vasnprintf-tests: # Code from module verify: # Code from module verify-tests: # Code from module vsnprintf: # Code from module vsnprintf-tests: # Code from module wchar: # Code from module wchar-tests: # Code from module wcrtomb: # Code from module wcrtomb-tests: # Code from module wctob: # Code from module wctomb: # Code from module wctype-h: # Code from module wctype-h-tests: # Code from module write: # Code from module write-tests: # Code from module xalloc-oversized: # Code from module xsize: # Code from module yield: ]) # This macro should be invoked from ./configure.ac, in the section # "Check for header files, types and library functions". AC_DEFUN([gl_INIT], [ AM_CONDITIONAL([GL_COND_LIBTOOL], [true]) gl_cond_libtool=true gl_m4_base='libmissing/m4' m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES])) m4_pushdef([gl_LIBSOURCES_LIST], []) m4_pushdef([gl_LIBSOURCES_DIR], []) gl_COMMON gl_source_base='libmissing' AC_REQUIRE([gl_HEADER_SYS_SOCKET]) if test "$ac_cv_header_winsock2_h" = yes; then AC_LIBOBJ([accept]) fi gl_SYS_SOCKET_MODULE_INDICATOR([accept]) changequote(,)dnl LTALLOCA=`echo "$ALLOCA" | sed -e 's/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'` changequote([, ])dnl AC_SUBST([LTALLOCA]) gl_FUNC_ALLOCA gl_HEADER_ARPA_INET AC_PROG_MKDIR_P AC_REQUIRE([gl_HEADER_SYS_SOCKET]) if test "$ac_cv_header_winsock2_h" = yes; then AC_LIBOBJ([bind]) fi gl_SYS_SOCKET_MODULE_INDICATOR([bind]) gl_FUNC_BTOWC if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then AC_LIBOBJ([btowc]) gl_PREREQ_BTOWC fi gl_WCHAR_MODULE_INDICATOR([btowc]) gl___BUILTIN_EXPECT gl_FUNC_CLOSE if test $REPLACE_CLOSE = 1; then AC_LIBOBJ([close]) fi gl_UNISTD_MODULE_INDICATOR([close]) gl_COND AC_REQUIRE([gl_HEADER_SYS_SOCKET]) if test "$ac_cv_header_winsock2_h" = yes; then AC_LIBOBJ([connect]) fi gl_SYS_SOCKET_MODULE_INDICATOR([connect]) gl_FUNC_DUP2 if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then AC_LIBOBJ([dup2]) gl_PREREQ_DUP2 fi gl_UNISTD_MODULE_INDICATOR([dup2]) gl_HEADER_ERRNO_H AC_REQUIRE([gl_EXTERN_INLINE]) gl_FUNC_FCLOSE if test $REPLACE_FCLOSE = 1; then AC_LIBOBJ([fclose]) fi gl_STDIO_MODULE_INDICATOR([fclose]) gl_FUNC_FFLUSH if test $REPLACE_FFLUSH = 1; then AC_LIBOBJ([fflush]) gl_PREREQ_FFLUSH fi gl_MODULE_INDICATOR([fflush]) gl_STDIO_MODULE_INDICATOR([fflush]) gl_FLOAT_H if test $REPLACE_FLOAT_LDBL = 1; then AC_LIBOBJ([float]) fi if test $REPLACE_ITOLD = 1; then AC_LIBOBJ([itold]) fi gl_FUNC_FOPEN if test $REPLACE_FOPEN = 1; then AC_LIBOBJ([fopen]) gl_PREREQ_FOPEN fi gl_STDIO_MODULE_INDICATOR([fopen]) gl_FUNC_FPURGE if test $HAVE_FPURGE = 0 || test $REPLACE_FPURGE = 1; then AC_LIBOBJ([fpurge]) fi gl_STDIO_MODULE_INDICATOR([fpurge]) gl_FUNC_FREADING gl_FUNC_FSEEK if test $REPLACE_FSEEK = 1; then AC_LIBOBJ([fseek]) fi gl_STDIO_MODULE_INDICATOR([fseek]) gl_FUNC_FSEEKO if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then AC_LIBOBJ([fseeko]) gl_PREREQ_FSEEKO fi gl_STDIO_MODULE_INDICATOR([fseeko]) gl_FUNC_FSTAT if test $REPLACE_FSTAT = 1; then AC_LIBOBJ([fstat]) case "$host_os" in mingw*) AC_LIBOBJ([stat-w32]) ;; esac gl_PREREQ_FSTAT fi gl_SYS_STAT_MODULE_INDICATOR([fstat]) gl_FUNC_FTELL if test $REPLACE_FTELL = 1; then AC_LIBOBJ([ftell]) fi gl_STDIO_MODULE_INDICATOR([ftell]) gl_FUNC_FTELLO if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then AC_LIBOBJ([ftello]) gl_PREREQ_FTELLO fi gl_STDIO_MODULE_INDICATOR([ftello]) gl_FUNC_FTW gl_GETADDRINFO if test $HAVE_GETADDRINFO = 0; then AC_LIBOBJ([getaddrinfo]) fi if test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1; then AC_LIBOBJ([gai_strerror]) fi gl_NETDB_MODULE_INDICATOR([getaddrinfo]) gl_FUNC_GETDELIM if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then AC_LIBOBJ([getdelim]) gl_PREREQ_GETDELIM fi gl_STDIO_MODULE_INDICATOR([getdelim]) gl_FUNC_GETHOSTNAME if test $HAVE_GETHOSTNAME = 0; then AC_LIBOBJ([gethostname]) gl_PREREQ_GETHOSTNAME fi gl_UNISTD_MODULE_INDICATOR([gethostname]) gl_FUNC_GETLINE if test $REPLACE_GETLINE = 1; then AC_LIBOBJ([getline]) gl_PREREQ_GETLINE fi gl_STDIO_MODULE_INDICATOR([getline]) gl_FUNC_GETPASS if test $HAVE_GETPASS = 0 || test $REPLACE_GETPASS = 1; then AC_LIBOBJ([getpass]) gl_PREREQ_GETPASS fi gl_UNISTD_MODULE_INDICATOR([getpass]) AC_REQUIRE([gl_HEADER_SYS_SOCKET]) if test "$ac_cv_header_winsock2_h" = yes; then AC_LIBOBJ([getsockname]) fi gl_SYS_SOCKET_MODULE_INDICATOR([getsockname]) AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) gl_FUNC_GETTIMEOFDAY if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then AC_LIBOBJ([gettimeofday]) gl_PREREQ_GETTIMEOFDAY fi gl_SYS_TIME_MODULE_INDICATOR([gettimeofday]) AC_REQUIRE([gl_HOST_CPU_C_ABI]) gl_HOSTENT gl_FUNC_INET_NTOP if test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1; then AC_LIBOBJ([inet_ntop]) gl_PREREQ_INET_NTOP fi gl_ARPA_INET_MODULE_INDICATOR([inet_ntop]) gl_FUNC_INET_PTON if test $HAVE_INET_PTON = 0 || test $REPLACE_INET_NTOP = 1; then AC_LIBOBJ([inet_pton]) gl_PREREQ_INET_PTON fi gl_ARPA_INET_MODULE_INDICATOR([inet_pton]) gl_FUNC_IOCTL if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then AC_LIBOBJ([ioctl]) fi gl_SYS_IOCTL_MODULE_INDICATOR([ioctl]) gl_LANGINFO_H AC_REQUIRE([gl_LARGEFILE]) gl_LIMITS_H AC_REQUIRE([gl_HEADER_SYS_SOCKET]) if test "$ac_cv_header_winsock2_h" = yes; then AC_LIBOBJ([listen]) fi gl_SYS_SOCKET_MODULE_INDICATOR([listen]) gl_LOCALCHARSET dnl For backward compatibility. Some packages still use this. LOCALCHARSET_TESTS_ENVIRONMENT= AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT]) gl_LOCALE_H gl_FUNC_LOCALECONV if test $REPLACE_LOCALECONV = 1; then AC_LIBOBJ([localeconv]) gl_PREREQ_LOCALECONV fi gl_LOCALE_MODULE_INDICATOR([localeconv]) AC_REQUIRE([gl_LOCALTIME_BUFFER_DEFAULTS]) AC_LIBOBJ([localtime-buffer]) gl_LOCK gl_MODULE_INDICATOR([lock]) gl_FUNC_LSEEK if test $REPLACE_LSEEK = 1; then AC_LIBOBJ([lseek]) fi gl_UNISTD_MODULE_INDICATOR([lseek]) gl_FUNC_MALLOC_POSIX if test $REPLACE_MALLOC = 1; then AC_LIBOBJ([malloc]) fi gl_STDLIB_MODULE_INDICATOR([malloc-posix]) gl_MALLOCA gl_FUNC_MBRTOWC if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then AC_LIBOBJ([mbrtowc]) gl_PREREQ_MBRTOWC fi gl_WCHAR_MODULE_INDICATOR([mbrtowc]) gl_FUNC_MBSINIT if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then AC_LIBOBJ([mbsinit]) gl_PREREQ_MBSINIT fi gl_WCHAR_MODULE_INDICATOR([mbsinit]) gl_FUNC_MBTOWC if test $REPLACE_MBTOWC = 1; then AC_LIBOBJ([mbtowc]) gl_PREREQ_MBTOWC fi gl_STDLIB_MODULE_INDICATOR([mbtowc]) gl_FUNC_MEMCHR if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then AC_LIBOBJ([memchr]) gl_PREREQ_MEMCHR fi gl_STRING_MODULE_INDICATOR([memchr]) gl_FUNC_MEMMEM if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then AC_LIBOBJ([memmem]) fi gl_FUNC_MEMMEM_SIMPLE if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then AC_LIBOBJ([memmem]) fi gl_STRING_MODULE_INDICATOR([memmem]) gl_MINMAX gl_FUNC_MKTIME if test $REPLACE_MKTIME = 1; then AC_LIBOBJ([mktime]) gl_PREREQ_MKTIME fi gl_TIME_MODULE_INDICATOR([mktime]) gl_FUNC_MKTIME_INTERNAL if test $WANT_MKTIME_INTERNAL = 1; then AC_LIBOBJ([mktime]) gl_PREREQ_MKTIME fi AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then AC_LIBOBJ([msvc-inval]) fi AC_REQUIRE([gl_MSVC_NOTHROW]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then AC_LIBOBJ([msvc-nothrow]) fi gl_MODULE_INDICATOR([msvc-nothrow]) gl_MULTIARCH gl_HEADER_NETDB gl_HEADER_NETINET_IN AC_PROG_MKDIR_P gl_FUNC_NL_LANGINFO if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then AC_LIBOBJ([nl_langinfo]) fi gl_LANGINFO_MODULE_INDICATOR([nl_langinfo]) gl_PATHMAX gl_FUNC_PERROR if test $REPLACE_PERROR = 1; then AC_LIBOBJ([perror]) fi gl_STRING_MODULE_INDICATOR([perror]) gl_FUNC_POLL if test $HAVE_POLL = 0 || test $REPLACE_POLL = 1; then AC_LIBOBJ([poll]) gl_PREREQ_POLL fi gl_POLL_MODULE_INDICATOR([poll]) gl_POLL_H gl_FUNC_PTHREAD_SIGMASK if test $HAVE_PTHREAD_SIGMASK = 0 || test $REPLACE_PTHREAD_SIGMASK = 1; then AC_LIBOBJ([pthread_sigmask]) gl_PREREQ_PTHREAD_SIGMASK fi gl_SIGNAL_MODULE_INDICATOR([pthread_sigmask]) gl_FUNC_RAISE if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then AC_LIBOBJ([raise]) gl_PREREQ_RAISE fi gl_SIGNAL_MODULE_INDICATOR([raise]) gl_REGEX if test $ac_use_included_regex = yes; then AC_LIBOBJ([regex]) gl_PREREQ_REGEX fi gl_RELOCATABLE_LIBRARY if test $RELOCATABLE = yes; then AC_LIBOBJ([relocatable]) fi gl_FUNC_SELECT if test $REPLACE_SELECT = 1; then AC_LIBOBJ([select]) fi gl_SYS_SELECT_MODULE_INDICATOR([select]) gl_SERVENT AC_REQUIRE([gl_HEADER_SYS_SOCKET]) if test "$ac_cv_header_winsock2_h" = yes; then AC_LIBOBJ([setsockopt]) fi gl_SYS_SOCKET_MODULE_INDICATOR([setsockopt]) gl_SIGNAL_H gl_SIGNALBLOCKING if test $HAVE_POSIX_SIGNALBLOCKING = 0; then AC_LIBOBJ([sigprocmask]) gl_PREREQ_SIGPROCMASK fi gl_SIGNAL_MODULE_INDICATOR([sigprocmask]) gl_SIZE_MAX gl_FUNC_SLEEP if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then AC_LIBOBJ([sleep]) fi gl_UNISTD_MODULE_INDICATOR([sleep]) gl_FUNC_SNPRINTF gl_STDIO_MODULE_INDICATOR([snprintf]) gl_MODULE_INDICATOR([snprintf]) AC_REQUIRE([gl_HEADER_SYS_SOCKET]) if test "$ac_cv_header_winsock2_h" = yes; then AC_LIBOBJ([socket]) fi # When this module is used, sockets may actually occur as file descriptors, # hence it is worth warning if the modules 'close' and 'ioctl' are not used. m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])]) m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])]) AC_REQUIRE([gl_PREREQ_SYS_H_WINSOCK2]) if test "$ac_cv_header_winsock2_h" = yes; then UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1 SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1 fi gl_SYS_SOCKET_MODULE_INDICATOR([socket]) AC_REQUIRE([gl_SOCKETLIB]) AC_REQUIRE([gl_SOCKETS]) gl_TYPE_SOCKLEN_T gt_TYPE_SSIZE_T gl_FUNC_STAT if test $REPLACE_STAT = 1; then AC_LIBOBJ([stat]) case "$host_os" in mingw*) AC_LIBOBJ([stat-w32]) ;; esac gl_PREREQ_STAT fi gl_SYS_STAT_MODULE_INDICATOR([stat]) gl_STAT_TIME gl_STAT_BIRTHTIME gl_STDALIGN_H AM_STDBOOL_H gl_STDDEF_H gl_STDINT_H gl_STDIO_H gl_STDLIB_H gl_STRCASE if test $HAVE_STRCASECMP = 0; then AC_LIBOBJ([strcasecmp]) gl_PREREQ_STRCASECMP fi if test $HAVE_STRNCASECMP = 0; then AC_LIBOBJ([strncasecmp]) gl_PREREQ_STRNCASECMP fi gl_FUNC_STRCASESTR if test $HAVE_STRCASESTR = 0 || test $REPLACE_STRCASESTR = 1; then AC_LIBOBJ([strcasestr]) gl_PREREQ_STRCASESTR fi gl_FUNC_STRCASESTR_SIMPLE if test $HAVE_STRCASESTR = 0 || test $REPLACE_STRCASESTR = 1; then AC_LIBOBJ([strcasestr]) gl_PREREQ_STRCASESTR fi gl_STRING_MODULE_INDICATOR([strcasestr]) gl_FUNC_STRDUP_POSIX if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then AC_LIBOBJ([strdup]) gl_PREREQ_STRDUP fi gl_STRING_MODULE_INDICATOR([strdup]) gl_FUNC_STRERROR if test $REPLACE_STRERROR = 1; then AC_LIBOBJ([strerror]) fi gl_MODULE_INDICATOR([strerror]) gl_STRING_MODULE_INDICATOR([strerror]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then AC_LIBOBJ([strerror-override]) gl_PREREQ_SYS_H_WINSOCK2 fi gl_FUNC_STRERROR_R if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then AC_LIBOBJ([strerror_r]) gl_PREREQ_STRERROR_R fi gl_STRING_MODULE_INDICATOR([strerror_r]) dnl For the modules argp, error. gl_MODULE_INDICATOR([strerror_r-posix]) gl_HEADER_STRING_H gl_HEADER_STRINGS_H gl_FUNC_STRNDUP if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then AC_LIBOBJ([strndup]) fi gl_STRING_MODULE_INDICATOR([strndup]) gl_FUNC_STRNLEN if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then AC_LIBOBJ([strnlen]) gl_PREREQ_STRNLEN fi gl_STRING_MODULE_INDICATOR([strnlen]) gl_FUNC_STRPTIME if test $HAVE_STRPTIME = 0; then AC_LIBOBJ([strptime]) gl_PREREQ_STRPTIME fi gl_TIME_MODULE_INDICATOR([strptime]) gl_FUNC_STRSEP if test $HAVE_STRSEP = 0; then AC_LIBOBJ([strsep]) gl_PREREQ_STRSEP fi gl_STRING_MODULE_INDICATOR([strsep]) gl_SYS_IOCTL_H AC_PROG_MKDIR_P AC_REQUIRE([gl_HEADER_SYS_SELECT]) AC_PROG_MKDIR_P AC_REQUIRE([gl_HEADER_SYS_SOCKET]) AC_PROG_MKDIR_P gl_HEADER_SYS_STAT_H AC_PROG_MKDIR_P gl_HEADER_SYS_TIME_H AC_PROG_MKDIR_P gl_SYS_TYPES_H AC_PROG_MKDIR_P gl_HEADER_SYS_UIO AC_PROG_MKDIR_P gl_SYS_UTSNAME_H AC_PROG_MKDIR_P gl_THREAD gl_THREADLIB gl_HEADER_TIME_H gl_TIME_R if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then AC_LIBOBJ([time_r]) gl_PREREQ_TIME_R fi gl_TIME_MODULE_INDICATOR([time_r]) gl_FUNC_TIMEGM if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then AC_LIBOBJ([timegm]) gl_PREREQ_TIMEGM fi gl_TIME_MODULE_INDICATOR([timegm]) gl_TLS gl_FUNC_UNAME if test $HAVE_UNAME = 0; then AC_LIBOBJ([uname]) gl_PREREQ_UNAME fi gl_SYS_UTSNAME_MODULE_INDICATOR([uname]) gl_UNISTD_H gl_FUNC_VASNPRINTF gl_FUNC_VSNPRINTF gl_STDIO_MODULE_INDICATOR([vsnprintf]) gl_WCHAR_H gl_FUNC_WCRTOMB if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then AC_LIBOBJ([wcrtomb]) gl_PREREQ_WCRTOMB fi gl_WCHAR_MODULE_INDICATOR([wcrtomb]) gl_WCTYPE_H gl_FUNC_WRITE if test $REPLACE_WRITE = 1; then AC_LIBOBJ([write]) gl_PREREQ_WRITE fi gl_UNISTD_MODULE_INDICATOR([write]) gl_XSIZE # End of code from modules m4_ifval(gl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || for gl_file in ]gl_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([gl_LIBSOURCES_DIR]) m4_popdef([gl_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ gl_libobjs= gl_ltlibobjs= if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" done fi AC_SUBST([gl_LIBOBJS], [$gl_libobjs]) AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs]) ]) gltests_libdeps= gltests_ltlibdeps= m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES])) m4_pushdef([gltests_LIBSOURCES_LIST], []) m4_pushdef([gltests_LIBSOURCES_DIR], []) gl_COMMON gl_source_base='libmissing/tests' changequote(,)dnl gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS changequote([, ])dnl AC_SUBST([gltests_WITNESS]) gl_module_indicator_condition=$gltests_WITNESS m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition]) gt_LOCALE_FR gt_LOCALE_FR_UTF8 gt_LOCALE_FR gt_LOCALE_TR_UTF8 gl_MODULE_INDICATOR_FOR_TESTS([cloexec]) gl_CTYPE_H gl_ENVIRON gl_UNISTD_MODULE_INDICATOR([environ]) gl_FUNC_FCNTL if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then AC_LIBOBJ([fcntl]) fi gl_FCNTL_MODULE_INDICATOR([fcntl]) gl_FCNTL_H gl_FUNC_FDOPEN if test $REPLACE_FDOPEN = 1; then AC_LIBOBJ([fdopen]) gl_PREREQ_FDOPEN fi gl_STDIO_MODULE_INDICATOR([fdopen]) AC_C_FLEXIBLE_ARRAY_MEMBER gl_FUNC_UNGETC_WORKS gl_FUNC_UNGETC_WORKS gl_FUNC_UNGETC_WORKS gl_FUNC_UNGETC_WORKS gl_FUNC_FTRUNCATE if test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1; then AC_LIBOBJ([ftruncate]) gl_PREREQ_FTRUNCATE fi gl_UNISTD_MODULE_INDICATOR([ftruncate]) gl_FUNC_GETCWD_LGPL if test $REPLACE_GETCWD = 1; then AC_LIBOBJ([getcwd-lgpl]) fi gl_UNISTD_MODULE_INDICATOR([getcwd]) gl_FUNC_GETDTABLESIZE if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then AC_LIBOBJ([getdtablesize]) gl_PREREQ_GETDTABLESIZE fi gl_UNISTD_MODULE_INDICATOR([getdtablesize]) gl_FUNC_GETPAGESIZE if test $REPLACE_GETPAGESIZE = 1; then AC_LIBOBJ([getpagesize]) fi gl_UNISTD_MODULE_INDICATOR([getpagesize]) AC_C_BIGENDIAN AC_C_BIGENDIAN gl_INTTYPES_H gl_INTTYPES_INCOMPLETE gl_FUNC_ISBLANK if test $HAVE_ISBLANK = 0; then AC_LIBOBJ([isblank]) fi gl_CTYPE_MODULE_INDICATOR([isblank]) AC_CHECK_FUNCS_ONCE([newlocale]) gl_LOCALENAME AC_CHECK_FUNCS_ONCE([newlocale]) AC_CHECK_HEADERS_ONCE([semaphore.h]) gl_FUNC_LSTAT if test $REPLACE_LSTAT = 1; then AC_LIBOBJ([lstat]) gl_PREREQ_LSTAT fi gl_SYS_STAT_MODULE_INDICATOR([lstat]) gt_LOCALE_FR gt_LOCALE_FR_UTF8 gt_LOCALE_JA gt_LOCALE_ZH_CN gt_LOCALE_FR_UTF8 dnl Check for prerequisites for memory fence checks. gl_FUNC_MMAP_ANON AC_CHECK_HEADERS_ONCE([sys/mman.h]) AC_CHECK_FUNCS_ONCE([mprotect]) gl_FUNC_MMAP_ANON AC_CHECK_HEADERS_ONCE([sys/mman.h]) AC_CHECK_FUNCS_ONCE([mprotect]) AC_CHECK_DECLS_ONCE([alarm]) gl_FUNC_NANOSLEEP if test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1; then AC_LIBOBJ([nanosleep]) gl_PREREQ_NANOSLEEP fi gl_TIME_MODULE_INDICATOR([nanosleep]) AC_CHECK_DECLS_ONCE([alarm]) gt_LOCALE_FR gt_LOCALE_FR_UTF8 gl_FUNC_OPEN if test $REPLACE_OPEN = 1; then AC_LIBOBJ([open]) gl_PREREQ_OPEN fi gl_FCNTL_MODULE_INDICATOR([open]) gl_FUNC_PIPE if test $HAVE_PIPE = 0; then AC_LIBOBJ([pipe]) fi gl_UNISTD_MODULE_INDICATOR([pipe]) AC_CHECK_HEADERS_ONCE([unistd.h sys/wait.h]) gl_FUNC_PUTENV if test $REPLACE_PUTENV = 1; then AC_LIBOBJ([putenv]) gl_PREREQ_PUTENV fi gl_STDLIB_MODULE_INDICATOR([putenv]) AC_CHECK_HEADERS_ONCE([sys/wait.h]) gl_FUNC_SETENV if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then AC_LIBOBJ([setenv]) fi gl_STDLIB_MODULE_INDICATOR([setenv]) gl_FUNC_SETLOCALE if test $REPLACE_SETLOCALE = 1; then AC_LIBOBJ([setlocale]) gl_PREREQ_SETLOCALE fi gl_LOCALE_MODULE_INDICATOR([setlocale]) gt_LOCALE_FR gt_LOCALE_FR_UTF8 gt_LOCALE_JA gt_LOCALE_ZH_CN gl_SIGACTION if test $HAVE_SIGACTION = 0; then AC_LIBOBJ([sigaction]) gl_PREREQ_SIGACTION fi gl_SIGNAL_MODULE_INDICATOR([sigaction]) AC_CHECK_DECLS_ONCE([alarm]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) AC_CHECK_DECLS_ONCE([alarm]) dnl Check for prerequisites for memory fence checks. gl_FUNC_MMAP_ANON AC_CHECK_HEADERS_ONCE([sys/mman.h]) AC_CHECK_FUNCS_ONCE([mprotect]) gl_FUNC_SYMLINK if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then AC_LIBOBJ([symlink]) fi gl_UNISTD_MODULE_INDICATOR([symlink]) AC_CHECK_FUNCS_ONCE([shutdown]) gl_FUNC_UNSETENV if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then AC_LIBOBJ([unsetenv]) gl_PREREQ_UNSETENV fi gl_STDLIB_MODULE_INDICATOR([unsetenv]) gl_FUNC_USLEEP if test $HAVE_USLEEP = 0 || test $REPLACE_USLEEP = 1; then AC_LIBOBJ([usleep]) fi gl_UNISTD_MODULE_INDICATOR([usleep]) gt_LOCALE_FR gt_LOCALE_FR_UTF8 gt_LOCALE_JA gt_LOCALE_ZH_CN gl_FUNC_WCTOB if test $HAVE_WCTOB = 0 || test $REPLACE_WCTOB = 1; then AC_LIBOBJ([wctob]) gl_PREREQ_WCTOB fi gl_WCHAR_MODULE_INDICATOR([wctob]) gl_FUNC_WCTOMB if test $REPLACE_WCTOMB = 1; then AC_LIBOBJ([wctomb]) gl_PREREQ_WCTOMB fi gl_STDLIB_MODULE_INDICATOR([wctomb]) gl_YIELD m4_popdef([gl_MODULE_INDICATOR_CONDITION]) m4_ifval(gltests_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ || for gl_file in ]gltests_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([gltests_LIBSOURCES_DIR]) m4_popdef([gltests_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ gltests_libobjs= gltests_ltlibobjs= if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" done fi AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs]) AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs]) ]) LIBTESTS_LIBDEPS="$gltests_libdeps" AC_SUBST([LIBTESTS_LIBDEPS]) ]) # Like AC_LIBOBJ, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gl_LIBOBJ], [ AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gl_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([gl_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([gl_LIBSOURCES_DIR], [libmissing]) m4_append([gl_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # Like AC_LIBOBJ, except that the module name goes # into gltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gltests_LIBOBJ], [ AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gltests_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([gltests_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([gltests_LIBSOURCES_DIR], [libmissing/tests]) m4_append([gltests_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # This macro records the list of files which have been installed by # gnulib-tool and may be removed by future gnulib-tool invocations. AC_DEFUN([gl_FILE_LIST], [ build-aux/config.rpath doc/relocatable.texi lib/_Noreturn.h lib/accept.c lib/alloca.c lib/alloca.in.h lib/arg-nonnull.h lib/arpa_inet.in.h lib/asnprintf.c lib/assure.h lib/bind.c lib/btowc.c lib/c++defs.h lib/c-ctype.c lib/c-ctype.h lib/close.c lib/connect.c lib/dup2.c lib/errno.in.h lib/fclose.c lib/fd-hook.c lib/fd-hook.h lib/fflush.c lib/filename.h lib/float+.h lib/float.c lib/float.in.h lib/fopen.c lib/fpurge.c lib/freading.c lib/freading.h lib/fseek.c lib/fseeko.c lib/fstat.c lib/ftell.c lib/ftello.c lib/ftw.c lib/ftw_.h lib/gai_strerror.c lib/getaddrinfo.c lib/getdelim.c lib/gethostname.c lib/getline.c lib/getpass.c lib/getpass.h lib/getsockname.c lib/gettext.h lib/gettimeofday.c lib/glthread/cond.c lib/glthread/cond.h lib/glthread/lock.c lib/glthread/lock.h lib/glthread/thread.c lib/glthread/thread.h lib/glthread/threadlib.c lib/glthread/tls.c lib/glthread/tls.h lib/hard-locale.c lib/hard-locale.h lib/inet_ntop.c lib/inet_pton.c lib/intprops.h lib/ioctl.c lib/itold.c lib/langinfo.in.h lib/limits.in.h lib/listen.c lib/localcharset.c lib/localcharset.h lib/locale.in.h lib/localeconv.c lib/localtime-buffer.c lib/localtime-buffer.h lib/lseek.c lib/malloc.c lib/malloca.c lib/malloca.h lib/mbrtowc.c lib/mbsinit.c lib/mbtowc-impl.h lib/mbtowc.c lib/memchr.c lib/memchr.valgrind lib/memmem.c lib/minmax.h lib/mktime-internal.h lib/mktime.c lib/msvc-inval.c lib/msvc-inval.h lib/msvc-nothrow.c lib/msvc-nothrow.h lib/netdb.in.h lib/netinet_in.in.h lib/nl_langinfo.c lib/pathmax.h lib/perror.c lib/poll.c lib/poll.in.h lib/printf-args.c lib/printf-args.h lib/printf-parse.c lib/printf-parse.h lib/pthread_sigmask.c lib/raise.c lib/regcomp.c lib/regex.c lib/regex.h lib/regex_internal.c lib/regex_internal.h lib/regexec.c lib/relocatable.c lib/relocatable.h lib/relocatable.valgrind lib/select.c lib/setsockopt.c lib/signal.in.h lib/sigprocmask.c lib/size_max.h lib/sleep.c lib/snprintf.c lib/socket.c lib/sockets.c lib/sockets.h lib/stat-time.c lib/stat-time.h lib/stat-w32.c lib/stat-w32.h lib/stat.c lib/stdalign.in.h lib/stdbool.in.h lib/stddef.in.h lib/stdint.in.h lib/stdio-impl.h lib/stdio.in.h lib/stdlib.in.h lib/str-two-way.h lib/strcasecmp.c lib/strcasestr.c lib/strdup.c lib/streq.h lib/strerror-override.c lib/strerror-override.h lib/strerror.c lib/strerror_r.c lib/string.in.h lib/strings.in.h lib/strncasecmp.c lib/strndup.c lib/strnlen.c lib/strptime.c lib/strsep.c lib/sys_ioctl.in.h lib/sys_select.in.h lib/sys_socket.c lib/sys_socket.in.h lib/sys_stat.in.h lib/sys_time.in.h lib/sys_types.in.h lib/sys_uio.in.h lib/sys_utsname.in.h lib/time.in.h lib/time_r.c lib/timegm.c lib/uname.c lib/unistd.c lib/unistd.in.h lib/unused-parameter.h lib/vasnprintf.c lib/vasnprintf.h lib/verify.h lib/vsnprintf.c lib/w32sock.h lib/warn-on-use.h lib/wchar.in.h lib/wcrtomb.c lib/wctype-h.c lib/wctype.in.h lib/write.c lib/xalloc-oversized.h lib/xsize.c lib/xsize.h m4/00gnulib.m4 m4/absolute-header.m4 m4/alloca.m4 m4/arpa_inet_h.m4 m4/asm-underscore.m4 m4/btowc.m4 m4/builtin-expect.m4 m4/close.m4 m4/codeset.m4 m4/cond.m4 m4/ctype.m4 m4/dup2.m4 m4/eealloc.m4 m4/environ.m4 m4/errno_h.m4 m4/exponentd.m4 m4/extensions.m4 m4/extern-inline.m4 m4/fclose.m4 m4/fcntl-o.m4 m4/fcntl.m4 m4/fcntl_h.m4 m4/fdopen.m4 m4/fflush.m4 m4/flexmember.m4 m4/float_h.m4 m4/fopen.m4 m4/fpieee.m4 m4/fpurge.m4 m4/freading.m4 m4/fseek.m4 m4/fseeko.m4 m4/fstat.m4 m4/ftell.m4 m4/ftello.m4 m4/ftruncate.m4 m4/ftw.m4 m4/getaddrinfo.m4 m4/getcwd.m4 m4/getdelim.m4 m4/getdtablesize.m4 m4/gethostname.m4 m4/getline.m4 m4/getpagesize.m4 m4/getpass.m4 m4/gettimeofday.m4 m4/glibc21.m4 m4/gnulib-common.m4 m4/host-cpu-c-abi.m4 m4/hostent.m4 m4/include_next.m4 m4/inet_ntop.m4 m4/inet_pton.m4 m4/intlmacosx.m4 m4/intmax_t.m4 m4/inttypes-pri.m4 m4/inttypes.m4 m4/inttypes_h.m4 m4/ioctl.m4 m4/isblank.m4 m4/langinfo_h.m4 m4/largefile.m4 m4/lcmessage.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/limits-h.m4 m4/localcharset.m4 m4/locale-fr.m4 m4/locale-ja.m4 m4/locale-tr.m4 m4/locale-zh.m4 m4/locale_h.m4 m4/localeconv.m4 m4/localename.m4 m4/localtime-buffer.m4 m4/lock.m4 m4/longlong.m4 m4/lseek.m4 m4/lstat.m4 m4/malloc.m4 m4/malloca.m4 m4/math_h.m4 m4/mbrtowc.m4 m4/mbsinit.m4 m4/mbstate_t.m4 m4/mbtowc.m4 m4/memchr.m4 m4/memmem.m4 m4/minmax.m4 m4/mktime.m4 m4/mmap-anon.m4 m4/mode_t.m4 m4/msvc-inval.m4 m4/msvc-nothrow.m4 m4/multiarch.m4 m4/nanosleep.m4 m4/netdb_h.m4 m4/netinet_in_h.m4 m4/nl_langinfo.m4 m4/off_t.m4 m4/onceonly.m4 m4/open-cloexec.m4 m4/open.m4 m4/pathmax.m4 m4/perror.m4 m4/pipe.m4 m4/poll.m4 m4/poll_h.m4 m4/printf.m4 m4/pthread_rwlock_rdlock.m4 m4/pthread_sigmask.m4 m4/putenv.m4 m4/raise.m4 m4/regex.m4 m4/relocatable-lib.m4 m4/select.m4 m4/servent.m4 m4/setenv.m4 m4/setlocale.m4 m4/sigaction.m4 m4/signal_h.m4 m4/signalblocking.m4 m4/size_max.m4 m4/sleep.m4 m4/snprintf.m4 m4/socketlib.m4 m4/sockets.m4 m4/socklen.m4 m4/sockpfaf.m4 m4/ssize_t.m4 m4/stat-time.m4 m4/stat.m4 m4/stdalign.m4 m4/stdbool.m4 m4/stddef_h.m4 m4/stdint.m4 m4/stdint_h.m4 m4/stdio_h.m4 m4/stdlib_h.m4 m4/strcase.m4 m4/strcasestr.m4 m4/strdup.m4 m4/strerror.m4 m4/strerror_r.m4 m4/string_h.m4 m4/strings_h.m4 m4/strndup.m4 m4/strnlen.m4 m4/strptime.m4 m4/strsep.m4 m4/symlink.m4 m4/sys_ioctl_h.m4 m4/sys_select_h.m4 m4/sys_socket_h.m4 m4/sys_stat_h.m4 m4/sys_time_h.m4 m4/sys_types_h.m4 m4/sys_uio_h.m4 m4/sys_utsname_h.m4 m4/thread.m4 m4/threadlib.m4 m4/time_h.m4 m4/time_r.m4 m4/timegm.m4 m4/tls.m4 m4/tm_gmtoff.m4 m4/uname.m4 m4/ungetc.m4 m4/unistd_h.m4 m4/usleep.m4 m4/vasnprintf.m4 m4/vsnprintf.m4 m4/warn-on-use.m4 m4/wchar_h.m4 m4/wchar_t.m4 m4/wcrtomb.m4 m4/wctob.m4 m4/wctomb.m4 m4/wctype_h.m4 m4/wint_t.m4 m4/write.m4 m4/xsize.m4 m4/yield.m4 tests/init.sh tests/macros.h tests/nap.h tests/null-ptr.h tests/signature.h tests/test-accept.c tests/test-alloca-opt.c tests/test-arpa_inet.c tests/test-binary-io.c tests/test-binary-io.sh tests/test-bind.c tests/test-btowc.c tests/test-btowc1.sh tests/test-btowc2.sh tests/test-c-ctype.c tests/test-c-strcase.sh tests/test-c-strcasecmp.c tests/test-c-strncasecmp.c tests/test-cloexec.c tests/test-close.c tests/test-cond.c tests/test-connect.c tests/test-ctype.c tests/test-dup2.c tests/test-environ.c tests/test-errno.c tests/test-fclose.c tests/test-fcntl-h.c tests/test-fcntl.c tests/test-fdopen.c tests/test-fflush.c tests/test-fflush2.c tests/test-fflush2.sh tests/test-fgetc.c tests/test-float.c tests/test-fopen.c tests/test-fopen.h tests/test-fpurge.c tests/test-fputc.c tests/test-fread.c tests/test-freading.c tests/test-fseek.c tests/test-fseek.sh tests/test-fseek2.sh tests/test-fseeko.c tests/test-fseeko.sh tests/test-fseeko2.sh tests/test-fseeko3.c tests/test-fseeko3.sh tests/test-fseeko4.c tests/test-fseeko4.sh tests/test-fstat.c tests/test-ftell.c tests/test-ftell.sh tests/test-ftell2.sh tests/test-ftell3.c tests/test-ftello.c tests/test-ftello.sh tests/test-ftello2.sh tests/test-ftello3.c tests/test-ftello4.c tests/test-ftello4.sh tests/test-ftruncate.c tests/test-ftruncate.sh tests/test-fwrite.c tests/test-getaddrinfo.c tests/test-getcwd-lgpl.c tests/test-getdelim.c tests/test-getdtablesize.c tests/test-gethostname.c tests/test-getline.c tests/test-getsockname.c tests/test-gettimeofday.c tests/test-ignore-value.c tests/test-inet_ntop.c tests/test-inet_pton.c tests/test-init.sh tests/test-intprops.c tests/test-inttypes.c tests/test-ioctl.c tests/test-isblank.c tests/test-langinfo.c tests/test-limits-h.c tests/test-listen.c tests/test-localcharset.c tests/test-locale.c tests/test-localeconv.c tests/test-localename.c tests/test-lock.c tests/test-lseek.c tests/test-lseek.sh tests/test-lstat.c tests/test-lstat.h tests/test-malloca.c tests/test-mbrtowc-w32-1.sh tests/test-mbrtowc-w32-2.sh tests/test-mbrtowc-w32-3.sh tests/test-mbrtowc-w32-4.sh tests/test-mbrtowc-w32-5.sh tests/test-mbrtowc-w32.c tests/test-mbrtowc.c tests/test-mbrtowc1.sh tests/test-mbrtowc2.sh tests/test-mbrtowc3.sh tests/test-mbrtowc4.sh tests/test-mbrtowc5.sh tests/test-mbsinit.c tests/test-mbsinit.sh tests/test-memchr.c tests/test-memmem.c tests/test-nanosleep.c tests/test-netdb.c tests/test-netinet_in.c tests/test-nl_langinfo.c tests/test-nl_langinfo.sh tests/test-once.c tests/test-open.c tests/test-open.h tests/test-pathmax.c tests/test-perror.c tests/test-perror.sh tests/test-perror2.c tests/test-pipe.c tests/test-poll-h.c tests/test-poll.c tests/test-pthread_sigmask1.c tests/test-pthread_sigmask2.c tests/test-raise.c tests/test-regex.c tests/test-rwlock1.c tests/test-select-fd.c tests/test-select-in.sh tests/test-select-out.sh tests/test-select-stdin.c tests/test-select.c tests/test-select.h tests/test-setenv.c tests/test-setlocale1.c tests/test-setlocale1.sh tests/test-setlocale2.c tests/test-setlocale2.sh tests/test-setsockopt.c tests/test-sigaction.c tests/test-signal-h.c tests/test-sigprocmask.c tests/test-sleep.c tests/test-snprintf.c tests/test-sockets.c tests/test-stat-time.c tests/test-stat.c tests/test-stat.h tests/test-stdalign.c tests/test-stdbool.c tests/test-stddef.c tests/test-stdint.c tests/test-stdio.c tests/test-stdlib.c tests/test-strcasestr.c tests/test-strerror.c tests/test-strerror_r.c tests/test-string.c tests/test-strings.c tests/test-strnlen.c tests/test-symlink.c tests/test-symlink.h tests/test-sys_ioctl.c tests/test-sys_select.c tests/test-sys_socket.c tests/test-sys_stat.c tests/test-sys_time.c tests/test-sys_types.c tests/test-sys_uio.c tests/test-sys_utsname.c tests/test-sys_wait.h tests/test-thread_create.c tests/test-thread_self.c tests/test-time.c tests/test-tls.c tests/test-uname.c tests/test-unistd.c tests/test-unsetenv.c tests/test-usleep.c tests/test-vasnprintf.c tests/test-verify-try.c tests/test-verify.c tests/test-verify.sh tests/test-vsnprintf.c tests/test-wchar.c tests/test-wcrtomb-w32-1.sh tests/test-wcrtomb-w32-2.sh tests/test-wcrtomb-w32-3.sh tests/test-wcrtomb-w32-4.sh tests/test-wcrtomb-w32-5.sh tests/test-wcrtomb-w32.c tests/test-wcrtomb.c tests/test-wcrtomb.sh tests/test-wctype-h.c tests/test-write.c tests/zerosize-ptr.h tests=lib/_Noreturn.h tests=lib/arg-nonnull.h tests=lib/binary-io.c tests=lib/binary-io.h tests=lib/c++defs.h tests=lib/c-strcase.h tests=lib/c-strcasecmp.c tests=lib/c-strncasecmp.c tests=lib/cloexec.c tests=lib/cloexec.h tests=lib/ctype.in.h tests=lib/dosname.h tests=lib/fcntl.c tests=lib/fcntl.in.h tests=lib/fdopen.c tests=lib/flexmember.h tests=lib/fpucw.h tests=lib/ftruncate.c tests=lib/getcwd-lgpl.c tests=lib/getdtablesize.c tests=lib/getpagesize.c tests=lib/glthread/yield.h tests=lib/ignore-value.h tests=lib/inttypes.in.h tests=lib/isblank.c tests=lib/localename.c tests=lib/localename.h tests=lib/lstat.c tests=lib/nanosleep.c tests=lib/open.c tests=lib/pipe.c tests=lib/putenv.c tests=lib/same-inode.h tests=lib/setenv.c tests=lib/setlocale.c tests=lib/sig-handler.c tests=lib/sig-handler.h tests=lib/sigaction.c tests=lib/symlink.c tests=lib/unsetenv.c tests=lib/unused-parameter.h tests=lib/usleep.c tests=lib/warn-on-use.h tests=lib/wctob.c tests=lib/wctomb-impl.h tests=lib/wctomb.c ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/gnulib-tool.m40000644000000000000000000000011013726163410022020 xustar000000000000000024 mtime=1599661832.558 24 atime=1599661832.746 24 ctime=1599661998.242 libprelude-5.2.0/libmissing/m4/gnulib-tool.m40000644000000000000000000000264713726163410021034 0ustar00rootroot00000000000000# gnulib-tool.m4 serial 2 dnl Copyright (C) 2004-2005, 2009-2018 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. dnl The following macros need not be invoked explicitly. dnl Invoking them does nothing except to declare default arguments dnl for "gnulib-tool --import". dnl Usage: gl_LOCAL_DIR([DIR]) AC_DEFUN([gl_LOCAL_DIR], []) dnl Usage: gl_MODULES([module1 module2 ...]) AC_DEFUN([gl_MODULES], []) dnl Usage: gl_AVOID([module1 module2 ...]) AC_DEFUN([gl_AVOID], []) dnl Usage: gl_SOURCE_BASE([DIR]) AC_DEFUN([gl_SOURCE_BASE], []) dnl Usage: gl_M4_BASE([DIR]) AC_DEFUN([gl_M4_BASE], []) dnl Usage: gl_PO_BASE([DIR]) AC_DEFUN([gl_PO_BASE], []) dnl Usage: gl_DOC_BASE([DIR]) AC_DEFUN([gl_DOC_BASE], []) dnl Usage: gl_TESTS_BASE([DIR]) AC_DEFUN([gl_TESTS_BASE], []) dnl Usage: gl_WITH_TESTS AC_DEFUN([gl_WITH_TESTS], []) dnl Usage: gl_LIB([LIBNAME]) AC_DEFUN([gl_LIB], []) dnl Usage: gl_LGPL or gl_LGPL([VERSION]) AC_DEFUN([gl_LGPL], []) dnl Usage: gl_MAKEFILE_NAME([FILENAME]) AC_DEFUN([gl_MAKEFILE_NAME], []) dnl Usage: gl_LIBTOOL AC_DEFUN([gl_LIBTOOL], []) dnl Usage: gl_MACRO_PREFIX([PREFIX]) AC_DEFUN([gl_MACRO_PREFIX], []) dnl Usage: gl_PO_DOMAIN([DOMAIN]) AC_DEFUN([gl_PO_DOMAIN], []) dnl Usage: gl_VC_FILES([BOOLEAN]) AC_DEFUN([gl_VC_FILES], []) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/host-cpu-c-abi.m40000644000000000000000000000011013726163410022300 xustar000000000000000024 mtime=1599661832.558 24 atime=1599661832.746 24 ctime=1599661998.243 libprelude-5.2.0/libmissing/m4/host-cpu-c-abi.m40000644000000000000000000003511113726163410021304 0ustar00rootroot00000000000000# host-cpu-c-abi.m4 serial 10 dnl Copyright (C) 2002-2018 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. dnl From Bruno Haible and Sam Steingold. dnl Sets the HOST_CPU variable to the canonical name of the CPU. dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its dnl C language ABI (application binary interface). dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in dnl config.h. dnl dnl This canonical name can be used to select a particular assembly language dnl source file that will interoperate with C code on the given host. dnl dnl For example: dnl * 'i386' and 'sparc' are different canonical names, because code for i386 dnl will not run on SPARC CPUs and vice versa. They have different dnl instruction sets. dnl * 'sparc' and 'sparc64' are different canonical names, because code for dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit dnl mode, but not both. dnl * 'mips' and 'mipsn32' are different canonical names, because they use dnl different argument passing and return conventions for C functions, and dnl although the instruction set of 'mips' is a large subset of the dnl instruction set of 'mipsn32'. dnl * 'mipsn32' and 'mips64' are different canonical names, because they use dnl different sizes for the C types like 'int' and 'void *', and although dnl the instruction sets of 'mipsn32' and 'mips64' are the same. dnl * The same canonical name is used for different endiannesses. You can dnl determine the endianness through preprocessor symbols: dnl - 'arm': test __ARMEL__. dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL. dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN. dnl * The same name 'i386' is used for CPUs of type i386, i486, i586 dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because dnl - Instructions that do not exist on all of these CPUs (cmpxchg, dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your dnl assembly language source files use such instructions, you will dnl need to make the distinction. dnl - Speed of execution of the common instruction set is reasonable across dnl the entire family of CPUs. If you have assembly language source files dnl that are optimized for particular CPU types (like GNU gmp has), you dnl will need to make the distinction. dnl See . AC_DEFUN([gl_HOST_CPU_C_ABI], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_C_ASM]) AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi], [case "$host_cpu" in changequote(,)dnl i[4567]86 ) changequote([,])dnl gl_cv_host_cpu_c_abi=i386 ;; x86_64 ) # On x86_64 systems, the C compiler may be generating code in one of # these ABIs: # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 # with native Windows (mingw, MSVC). # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if (defined __x86_64__ || defined __amd64__ \ || defined _M_X64 || defined _M_AMD64) int ok; #else error fail #endif ]])], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __ILP32__ || defined _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=x86_64-x32], [gl_cv_host_cpu_c_abi=x86_64])], [gl_cv_host_cpu_c_abi=i386]) ;; changequote(,)dnl alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) changequote([,])dnl gl_cv_host_cpu_c_abi=alpha ;; arm* | aarch64 ) # Assume arm with EABI. # On arm64 systems, the C compiler may be generating code in one of # these ABIs: # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef __aarch64__ int ok; #else error fail #endif ]])], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __ILP32__ || defined _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=arm64-ilp32], [gl_cv_host_cpu_c_abi=arm64])], [# Don't distinguish little-endian and big-endian arm, since they # don't require different machine code for simple operations and # since the user can distinguish them through the preprocessor # defines __ARMEL__ vs. __ARMEB__. # But distinguish arm which passes floating-point arguments and # return values in integer registers (r0, r1, ...) - this is # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which # passes them in float registers (s0, s1, ...) and double registers # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer # sets the preprocessor defines __ARM_PCS (for the first case) and # __ARM_PCS_VFP (for the second case), but older GCC does not. echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c # Look for a reference to the register d0 in the .s file. AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then gl_cv_host_cpu_c_abi=armhf else gl_cv_host_cpu_c_abi=arm fi rm -f conftest* ]) ;; hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) # On hppa, the C compiler may be generating 32-bit code or 64-bit # code. In the latter case, it defines _LP64 and __LP64__. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef __LP64__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=hppa64], [gl_cv_host_cpu_c_abi=hppa]) ;; ia64* ) # On ia64 on HP-UX, the C compiler may be generating 64-bit code or # 32-bit code. In the latter case, it defines _ILP32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef _ILP32 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=ia64-ilp32], [gl_cv_host_cpu_c_abi=ia64]) ;; mips* ) # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this # at 32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=mips64], [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but # may later get defined by ), and _MIPS_SIM == _ABIN32. # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but # may later get defined by ), and _MIPS_SIM == _ABIO32. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if (_MIPS_SIM == _ABIN32) int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=mipsn32], [gl_cv_host_cpu_c_abi=mips])]) ;; powerpc* ) # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. # No need to distinguish them here; the caller may distinguish # them based on the OS. # On powerpc64 systems, the C compiler may still be generating # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may # be generating 64-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __powerpc64__ || defined _ARCH_PPC64 int ok; #else error fail #endif ]])], [# On powerpc64, there are two ABIs on Linux: The AIX compatible # one and the ELFv2 one. The latter defines _CALL_ELF=2. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined _CALL_ELF && _CALL_ELF == 2 int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=powerpc64-elfv2], [gl_cv_host_cpu_c_abi=powerpc64]) ], [gl_cv_host_cpu_c_abi=powerpc]) ;; rs6000 ) gl_cv_host_cpu_c_abi=powerpc ;; riscv32 | riscv64 ) # There are 2 architectures (with variants): rv32* and rv64*. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if __riscv_xlen == 64 int ok; #else error fail #endif ]])], [cpu=riscv64], [cpu=riscv32]) # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. # Size of 'long' and 'void *': AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __LP64__ int ok; #else error fail #endif ]])], [main_abi=lp64], [main_abi=ilp32]) # Float ABIs: # __riscv_float_abi_double: # 'float' and 'double' are passed in floating-point registers. # __riscv_float_abi_single: # 'float' are passed in floating-point registers. # __riscv_float_abi_soft: # No values are passed in floating-point registers. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __riscv_float_abi_double int ok; #else error fail #endif ]])], [float_abi=d], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __riscv_float_abi_single int ok; #else error fail #endif ]])], [float_abi=f], [float_abi='']) ]) gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" ;; s390* ) # On s390x, the C compiler may be generating 64-bit (= s390x) code # or 31-bit (= s390) code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __LP64__ || defined __s390x__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=s390x], [gl_cv_host_cpu_c_abi=s390]) ;; sparc | sparc64 ) # UltraSPARCs running Linux have `uname -m` = "sparc64", but the # C compiler still generates 32-bit code. AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#if defined __sparcv9 || defined __arch64__ int ok; #else error fail #endif ]])], [gl_cv_host_cpu_c_abi=sparc64], [gl_cv_host_cpu_c_abi=sparc]) ;; *) gl_cv_host_cpu_c_abi="$host_cpu" ;; esac ]) dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same. HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" AC_SUBST([HOST_CPU]) AC_SUBST([HOST_CPU_C_ABI]) # This was # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) # earlier, but KAI C++ 3.2d doesn't like this. sed -e 's/-/_/g' >> confdefs.h < #endif #include ]], [[gethostbyname(NULL);]])], [gl_cv_w32_gethostbyname=yes]) LIBS="$gl_save_LIBS" ]) if test "$gl_cv_w32_gethostbyname" = "yes"; then HOSTENT_LIB="-lws2_32" fi ]) fi AC_SUBST([HOSTENT_LIB]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/include_next.m40000644000000000000000000000011013726163410022246 xustar000000000000000024 mtime=1599661832.558 24 atime=1599661832.746 24 ctime=1599661998.247 libprelude-5.2.0/libmissing/m4/include_next.m40000644000000000000000000002106113726163410021251 0ustar00rootroot00000000000000# include_next.m4 serial 24 dnl Copyright (C) 2006-2018 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. dnl From Paul Eggert and Derek Price. dnl Sets INCLUDE_NEXT, INCLUDE_NEXT_AS_FIRST_DIRECTIVE, PRAGMA_SYSTEM_HEADER, dnl and PRAGMA_COLUMNS. dnl dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or to dnl 'include' otherwise. dnl dnl INCLUDE_NEXT_AS_FIRST_DIRECTIVE expands to 'include_next' if the compiler dnl supports it in the special case that it is the first include directive in dnl the given file, or to 'include' otherwise. dnl dnl PRAGMA_SYSTEM_HEADER can be used in files that contain #include_next, dnl so as to avoid GCC warnings when the gcc option -pedantic is used. dnl '#pragma GCC system_header' has the same effect as if the file was found dnl through the include search path specified with '-isystem' options (as dnl opposed to the search path specified with '-I' options). Namely, gcc dnl does not warn about some things, and on some systems (Solaris and Interix) dnl __STDC__ evaluates to 0 instead of to 1. The latter is an undesired side dnl effect; we are therefore careful to use 'defined __STDC__' or '1' instead dnl of plain '__STDC__'. dnl dnl PRAGMA_COLUMNS can be used in files that override system header files, so dnl as to avoid compilation errors on HP NonStop systems when the gnulib file dnl is included by a system header file that does a "#pragma COLUMNS 80" (which dnl has the effect of truncating the lines of that file and all files that it dnl includes to 80 columns) and the gnulib file has lines longer than 80 dnl columns. AC_DEFUN([gl_INCLUDE_NEXT], [ AC_LANG_PREPROC_REQUIRE() AC_CACHE_CHECK([whether the preprocessor supports include_next], [gl_cv_have_include_next], [rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 dnl IBM C 9.0, 10.1 (original versions, prior to the 2009-01 updates) on dnl AIX 6.1 support include_next when used as first preprocessor directive dnl in a file, but not when preceded by another include directive. Check dnl for this bug by including . dnl Additionally, with this same compiler, include_next is a no-op when dnl used in a header file that was included by specifying its absolute dnl file name. Despite these two bugs, include_next is used in the dnl compiler's . By virtue of the second bug, we need to use dnl include_next as well in this case. cat < conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd1b/conftest.h #define DEFINED_IN_CONFTESTD1 #include #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd2/conftest.h #ifndef DEFINED_IN_CONFTESTD1 #error "include_next test doesn't work" #endif #define DEFINED_IN_CONFTESTD2 EOF gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" dnl We intentionally avoid using AC_LANG_SOURCE here. AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include ]], [gl_cv_have_include_next=yes], [CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include ]], [gl_cv_have_include_next=buggy], [gl_cv_have_include_next=no]) ]) CPPFLAGS="$gl_save_CPPFLAGS" rm -rf conftestd1a conftestd1b conftestd2 ]) PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next if test -n "$GCC"; then PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' fi else if test $gl_cv_have_include_next = buggy; then INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next else INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include fi fi AC_SUBST([INCLUDE_NEXT]) AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE]) AC_SUBST([PRAGMA_SYSTEM_HEADER]) AC_CACHE_CHECK([whether system header files limit the line length], [gl_cv_pragma_columns], [dnl HP NonStop systems, which define __TANDEM, have this misfeature. AC_EGREP_CPP([choke me], [ #ifdef __TANDEM choke me #endif ], [gl_cv_pragma_columns=yes], [gl_cv_pragma_columns=no]) ]) if test $gl_cv_pragma_columns = yes; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= fi AC_SUBST([PRAGMA_COLUMNS]) ]) # gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...) # ------------------------------------------ # For each arg foo.h, if #include_next works, define NEXT_FOO_H to be # ''; otherwise define it to be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # Also, if #include_next works as first preprocessing directive in a file, # define NEXT_AS_FIRST_DIRECTIVE_FOO_H to be ''; otherwise define it to # be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # That way, a header file with the following line: # #@INCLUDE_NEXT@ @NEXT_FOO_H@ # or # #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_FOO_H@ # behaves (after sed substitution) as if it contained # #include_next # even if the compiler does not support include_next. # The three "///" are to pacify Sun C 5.8, which otherwise would say # "warning: #include of /usr/include/... may be non-portable". # Use '""', not '<>', so that the /// cannot be confused with a C99 comment. # Note: This macro assumes that the header file is not empty after # preprocessing, i.e. it does not only define preprocessor macros but also # provides some type/enum definitions or function/variable declarations. # # This macro also checks whether each header exists, by invoking # AC_CHECK_HEADERS_ONCE or AC_CHECK_HEADERS on each argument. AC_DEFUN([gl_CHECK_NEXT_HEADERS], [ gl_NEXT_HEADERS_INTERNAL([$1], [check]) ]) # gl_NEXT_HEADERS(HEADER1 HEADER2 ...) # ------------------------------------ # Like gl_CHECK_NEXT_HEADERS, except do not check whether the headers exist. # This is suitable for headers like that are standardized by C89 # and therefore can be assumed to exist. AC_DEFUN([gl_NEXT_HEADERS], [ gl_NEXT_HEADERS_INTERNAL([$1], [assume]) ]) # The guts of gl_CHECK_NEXT_HEADERS and gl_NEXT_HEADERS. AC_DEFUN([gl_NEXT_HEADERS_INTERNAL], [ AC_REQUIRE([gl_INCLUDE_NEXT]) AC_REQUIRE([AC_CANONICAL_HOST]) m4_if([$2], [check], [AC_CHECK_HEADERS_ONCE([$1]) ]) dnl FIXME: gl_next_header and gl_header_exists must be used unquoted dnl until we can assume autoconf 2.64 or newer. m4_foreach_w([gl_HEADER_NAME], [$1], [AS_VAR_PUSHDEF([gl_next_header], [gl_cv_next_]m4_defn([gl_HEADER_NAME])) if test $gl_cv_have_include_next = yes; then AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>']) else AC_CACHE_CHECK( [absolute name of <]m4_defn([gl_HEADER_NAME])[>], m4_defn([gl_next_header]), [m4_if([$2], [check], [AS_VAR_PUSHDEF([gl_header_exists], [ac_cv_header_]m4_defn([gl_HEADER_NAME])) if test AS_VAR_GET(gl_header_exists) = yes; then AS_VAR_POPDEF([gl_header_exists]) ]) gl_ABSOLUTE_HEADER_ONE(gl_HEADER_NAME) AS_VAR_COPY([gl_header], [gl_cv_absolute_]AS_TR_SH(gl_HEADER_NAME)) AS_VAR_SET(gl_next_header, ['"'$gl_header'"']) m4_if([$2], [check], [else AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>']) fi ]) ]) fi AC_SUBST( AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])), [AS_VAR_GET(gl_next_header)]) if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'gl_HEADER_NAME'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=AS_VAR_GET(gl_next_header) fi AC_SUBST( AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])), [$gl_next_as_first_directive]) AS_VAR_POPDEF([gl_next_header])]) ]) # Autoconf 2.68 added warnings for our use of AC_COMPILE_IFELSE; # this fallback is safe for all earlier autoconf versions. m4_define_default([AC_LANG_DEFINES_PROVIDED]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/inet_ntop.m40000644000000000000000000000011013726163410021564 xustar000000000000000024 mtime=1599661832.558 24 atime=1599661832.747 24 ctime=1599661998.248 libprelude-5.2.0/libmissing/m4/inet_ntop.m40000644000000000000000000000423013726163410020566 0ustar00rootroot00000000000000# inet_ntop.m4 serial 20 dnl Copyright (C) 2005-2006, 2008-2018 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_FUNC_INET_NTOP], [ AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS]) dnl Persuade Solaris to declare inet_ntop. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_C_RESTRICT]) dnl Most platforms that provide inet_ntop define it in libc. dnl Solaris 8..10 provide inet_ntop in libnsl instead. dnl Solaris 2.6..7 provide inet_ntop in libresolv instead. dnl Haiku provides it in -lnetwork. dnl Native Windows provides it in -lws2_32 instead, with a declaration in dnl , and it uses stdcall calling convention, not cdecl dnl (hence we cannot use AC_CHECK_FUNCS, AC_SEARCH_LIBS to find it). HAVE_INET_NTOP=1 INET_NTOP_LIB= gl_PREREQ_SYS_H_WINSOCK2 if test $HAVE_WINSOCK2_H = 1; then AC_CHECK_DECLS([inet_ntop],,, [[#include ]]) if test $ac_cv_have_decl_inet_ntop = yes; then dnl It needs to be overridden, because the stdcall calling convention dnl is not compliant with POSIX. REPLACE_INET_NTOP=1 INET_NTOP_LIB="-lws2_32" else HAVE_DECL_INET_NTOP=0 HAVE_INET_NTOP=0 fi else gl_save_LIBS=$LIBS AC_SEARCH_LIBS([inet_ntop], [nsl resolv network], [], [AC_CHECK_FUNCS([inet_ntop]) if test $ac_cv_func_inet_ntop = no; then HAVE_INET_NTOP=0 fi ]) LIBS=$gl_save_LIBS if test "$ac_cv_search_inet_ntop" != "no" \ && test "$ac_cv_search_inet_ntop" != "none required"; then INET_NTOP_LIB="$ac_cv_search_inet_ntop" fi AC_CHECK_HEADERS_ONCE([netdb.h]) AC_CHECK_DECLS([inet_ntop],,, [[#include #if HAVE_NETDB_H # include #endif ]]) if test $ac_cv_have_decl_inet_ntop = no; then HAVE_DECL_INET_NTOP=0 fi fi AC_SUBST([INET_NTOP_LIB]) ]) # Prerequisites of lib/inet_ntop.c. AC_DEFUN([gl_PREREQ_INET_NTOP], [ AC_REQUIRE([gl_SOCKET_FAMILIES]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/inet_pton.m40000644000000000000000000000010713726163410021572 xustar000000000000000024 mtime=1599661832.559 24 atime=1599661832.747 23 ctime=1599661998.25 libprelude-5.2.0/libmissing/m4/inet_pton.m40000644000000000000000000000422313726163410020570 0ustar00rootroot00000000000000# inet_pton.m4 serial 18 dnl Copyright (C) 2006, 2008-2018 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_FUNC_INET_PTON], [ AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS]) dnl Persuade Solaris to declare inet_pton. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_C_RESTRICT]) dnl Most platforms that provide inet_pton define it in libc. dnl Solaris 8..10 provide inet_pton in libnsl instead. dnl Solaris 2.6..7 provide inet_pton in libresolv instead. dnl Haiku provides it in -lnetwork. dnl Native Windows provides it in -lws2_32 instead, with a declaration in dnl , and it uses stdcall calling convention, not cdecl dnl (hence we cannot use AC_CHECK_FUNCS, AC_SEARCH_LIBS to find it). HAVE_INET_PTON=1 INET_PTON_LIB= gl_PREREQ_SYS_H_WINSOCK2 if test $HAVE_WINSOCK2_H = 1; then AC_CHECK_DECLS([inet_pton],,, [[#include ]]) if test $ac_cv_have_decl_inet_pton = yes; then dnl It needs to be overridden, because the stdcall calling convention dnl is not compliant with POSIX. REPLACE_INET_PTON=1 INET_PTON_LIB="-lws2_32" else HAVE_DECL_INET_PTON=0 HAVE_INET_PTON=0 fi else gl_save_LIBS=$LIBS AC_SEARCH_LIBS([inet_pton], [nsl resolv network], [], [AC_CHECK_FUNCS([inet_pton]) if test $ac_cv_func_inet_pton = no; then HAVE_INET_PTON=0 fi ]) LIBS=$gl_save_LIBS if test "$ac_cv_search_inet_pton" != "no" \ && test "$ac_cv_search_inet_pton" != "none required"; then INET_PTON_LIB="$ac_cv_search_inet_pton" fi AC_CHECK_HEADERS_ONCE([netdb.h]) AC_CHECK_DECLS([inet_pton],,, [[#include #if HAVE_NETDB_H # include #endif ]]) if test $ac_cv_have_decl_inet_pton = no; then HAVE_DECL_INET_PTON=0 fi fi AC_SUBST([INET_PTON_LIB]) ]) # Prerequisites of lib/inet_pton.c. AC_DEFUN([gl_PREREQ_INET_PTON], [ AC_REQUIRE([gl_SOCKET_FAMILIES]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/intlmacosx.m40000644000000000000000000000011013726163410021746 xustar000000000000000024 mtime=1599661832.559 24 atime=1599661832.747 24 ctime=1599661998.252 libprelude-5.2.0/libmissing/m4/intlmacosx.m40000644000000000000000000000474513726163410020763 0ustar00rootroot00000000000000# intlmacosx.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2004-2014, 2016 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. dnl dnl This file can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Checks for special options needed on Mac OS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in Mac OS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[CFPreferencesCopyAppValue(NULL, NULL)]])], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in Mac OS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[CFLocaleCopyCurrent();]])], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/intmax_t.m40000644000000000000000000000011013726163410021410 xustar000000000000000024 mtime=1599661832.559 24 atime=1599661832.747 24 ctime=1599661998.253 libprelude-5.2.0/libmissing/m4/intmax_t.m40000644000000000000000000000416613726163410020422 0ustar00rootroot00000000000000# intmax_t.m4 serial 8 dnl Copyright (C) 1997-2004, 2006-2007, 2009-2018 Free Software Foundation, dnl 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. dnl From Paul Eggert. AC_PREREQ([2.53]) # Define intmax_t to 'long' or 'long long' # if it is not already defined in or . AC_DEFUN([gl_AC_TYPE_INTMAX_T], [ dnl For simplicity, we assume that a header file defines 'intmax_t' if and dnl only if it defines 'uintmax_t'. AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) test $ac_cv_type_long_long_int = yes \ && ac_type='long long' \ || ac_type='long' AC_DEFINE_UNQUOTED([intmax_t], [$ac_type], [Define to long or long long if and don't define.]) else AC_DEFINE([HAVE_INTMAX_T], [1], [Define if you have the 'intmax_t' type in or .]) fi ]) dnl An alternative would be to explicitly test for 'intmax_t'. AC_DEFUN([gt_AC_TYPE_INTMAX_T], [ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_CACHE_CHECK([for intmax_t], [gt_cv_c_intmax_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include #if HAVE_STDINT_H_WITH_UINTMAX #include #endif #if HAVE_INTTYPES_H_WITH_UINTMAX #include #endif ]], [[intmax_t x = -1; return !x;]])], [gt_cv_c_intmax_t=yes], [gt_cv_c_intmax_t=no])]) if test $gt_cv_c_intmax_t = yes; then AC_DEFINE([HAVE_INTMAX_T], [1], [Define if you have the 'intmax_t' type in or .]) else AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) test $ac_cv_type_long_long_int = yes \ && ac_type='long long' \ || ac_type='long' AC_DEFINE_UNQUOTED([intmax_t], [$ac_type], [Define to long or long long if and don't define.]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/inttypes-pri.m40000644000000000000000000000011013726163410022234 xustar000000000000000024 mtime=1599661832.559 24 atime=1599661832.747 24 ctime=1599661998.255 libprelude-5.2.0/libmissing/m4/inttypes-pri.m40000644000000000000000000000234513726163410021243 0ustar00rootroot00000000000000# inttypes-pri.m4 serial 7 (gettext-0.18.2) dnl Copyright (C) 1997-2002, 2006, 2008-2018 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. dnl From Bruno Haible. AC_PREREQ([2.53]) # Define PRI_MACROS_BROKEN if exists and defines the PRI* # macros to non-string values. This is the case on AIX 4.3.3. AC_DEFUN([gt_INTTYPES_PRI], [ AC_CHECK_HEADERS([inttypes.h]) if test $ac_cv_header_inttypes_h = yes; then AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], [gt_cv_inttypes_pri_broken], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #ifdef PRId32 char *p = PRId32; #endif ]], [[]])], [gt_cv_inttypes_pri_broken=no], [gt_cv_inttypes_pri_broken=yes]) ]) fi if test "$gt_cv_inttypes_pri_broken" = yes; then AC_DEFINE_UNQUOTED([PRI_MACROS_BROKEN], [1], [Define if exists and defines unusable PRI* macros.]) PRI_MACROS_BROKEN=1 else PRI_MACROS_BROKEN=0 fi AC_SUBST([PRI_MACROS_BROKEN]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/inttypes.m40000644000000000000000000000011013726163410021444 xustar000000000000000024 mtime=1599661832.559 24 atime=1599661832.747 24 ctime=1599661998.257 libprelude-5.2.0/libmissing/m4/inttypes.m40000644000000000000000000001240413726163410020450 0ustar00rootroot00000000000000# inttypes.m4 serial 27 dnl Copyright (C) 2006-2018 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. dnl From Derek Price, Bruno Haible. dnl Test whether is supported or must be substituted. AC_DEFUN([gl_INTTYPES_H], [ AC_REQUIRE([gl_INTTYPES_INCOMPLETE]) gl_INTTYPES_PRI_SCN ]) AC_DEFUN_ONCE([gl_INTTYPES_INCOMPLETE], [ AC_REQUIRE([gl_STDINT_H]) AC_CHECK_HEADERS_ONCE([inttypes.h]) dnl Override always, so that the portability warnings work. AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([inttypes.h]) AC_REQUIRE([gl_MULTIARCH]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [imaxabs imaxdiv strtoimax strtoumax]) ]) # Ensure that the PRI* and SCN* macros are defined appropriately. AC_DEFUN([gl_INTTYPES_PRI_SCN], [ AC_REQUIRE([gt_INTTYPES_PRI]) PRIPTR_PREFIX= if test -n "$STDINT_H"; then dnl Using the gnulib . It always defines intptr_t to 'long'. PRIPTR_PREFIX='"l"' else dnl Using the system's . for glpfx in '' l ll I64; do case $glpfx in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; I64) gltype1='__int64';; esac AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include extern intptr_t foo; extern $gltype1 foo;]])], [PRIPTR_PREFIX='"'$glpfx'"']) test -n "$PRIPTR_PREFIX" && break done fi AC_SUBST([PRIPTR_PREFIX]) gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( [INT32_MAX_LT_INTMAX_MAX], [defined INT32_MAX && defined INTMAX_MAX], [INT32_MAX < INTMAX_MAX], [sizeof (int) < sizeof (long long int)]) if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( [INT64_MAX_EQ_LONG_MAX], [defined INT64_MAX], [INT64_MAX == LONG_MAX], [sizeof (long long int) == sizeof (long int)]) else INT64_MAX_EQ_LONG_MAX=-1 fi gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( [UINT32_MAX_LT_UINTMAX_MAX], [defined UINT32_MAX && defined UINTMAX_MAX], [UINT32_MAX < UINTMAX_MAX], [sizeof (unsigned int) < sizeof (unsigned long long int)]) if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( [UINT64_MAX_EQ_ULONG_MAX], [defined UINT64_MAX], [UINT64_MAX == ULONG_MAX], [sizeof (unsigned long long int) == sizeof (unsigned long int)]) else UINT64_MAX_EQ_ULONG_MAX=-1 fi ]) # Define the symbol $1 to be 1 if the condition is true, 0 otherwise. # If $2 is true, the condition is $3; otherwise if long long int is supported # approximate the condition with $4; otherwise, assume the condition is false. # The condition should work on all C99 platforms; the approximations should be # good enough to work on all practical pre-C99 platforms. # $2 is evaluated by the C preprocessor, $3 and $4 as compile-time constants. AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION], [ AC_CACHE_CHECK([whether $3], [gl_cv_test_$1], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[/* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if $2 #define CONDITION ($3) #elif HAVE_LONG_LONG_INT #define CONDITION ($4) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1];]])], [gl_cv_test_$1=yes], [gl_cv_test_$1=no])]) if test $gl_cv_test_$1 = yes; then $1=1; else $1=0; fi AC_SUBST([$1]) ]) AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_INTTYPES_H_DEFAULTS], [ GNULIB_IMAXABS=0; AC_SUBST([GNULIB_IMAXABS]) GNULIB_IMAXDIV=0; AC_SUBST([GNULIB_IMAXDIV]) GNULIB_STRTOIMAX=0; AC_SUBST([GNULIB_STRTOIMAX]) GNULIB_STRTOUMAX=0; AC_SUBST([GNULIB_STRTOUMAX]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_IMAXABS=1; AC_SUBST([HAVE_DECL_IMAXABS]) HAVE_DECL_IMAXDIV=1; AC_SUBST([HAVE_DECL_IMAXDIV]) HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX]) HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX]) HAVE_IMAXDIV_T=1; AC_SUBST([HAVE_IMAXDIV_T]) REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX]) REPLACE_STRTOUMAX=0; AC_SUBST([REPLACE_STRTOUMAX]) INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX]) INT64_MAX_EQ_LONG_MAX='defined _LP64'; AC_SUBST([INT64_MAX_EQ_LONG_MAX]) PRI_MACROS_BROKEN=0; AC_SUBST([PRI_MACROS_BROKEN]) PRIPTR_PREFIX=__PRIPTR_PREFIX; AC_SUBST([PRIPTR_PREFIX]) UINT32_MAX_LT_UINTMAX_MAX=1; AC_SUBST([UINT32_MAX_LT_UINTMAX_MAX]) UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; AC_SUBST([UINT64_MAX_EQ_ULONG_MAX]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/inttypes_h.m40000644000000000000000000000011013726163410021753 xustar000000000000000024 mtime=1599661832.559 24 atime=1599661832.747 24 ctime=1599661998.258 libprelude-5.2.0/libmissing/m4/inttypes_h.m40000644000000000000000000000177413726163410020767 0ustar00rootroot00000000000000# inttypes_h.m4 serial 10 dnl Copyright (C) 1997-2004, 2006, 2008-2018 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. dnl From Paul Eggert. # Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], [gl_cv_header_inttypes_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[uintmax_t i = (uintmax_t) -1; return !i;]])], [gl_cv_header_inttypes_h=yes], [gl_cv_header_inttypes_h=no])]) if test $gl_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED([HAVE_INTTYPES_H_WITH_UINTMAX], [1], [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/ioctl.m40000644000000000000000000000010613726163410020704 xustar000000000000000023 mtime=1599661832.56 24 atime=1599661832.747 23 ctime=1599661998.26 libprelude-5.2.0/libmissing/m4/ioctl.m40000644000000000000000000000305013726163410017700 0ustar00rootroot00000000000000# ioctl.m4 serial 5 dnl Copyright (C) 2008-2018 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_FUNC_IOCTL], [ AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_SYS_SOCKET]) HAVE_IOCTL=1 if test "$ac_cv_header_winsock2_h" = yes; then dnl Even if the 'socket' module is not used here, another part of the dnl application may use it and pass file descriptors that refer to dnl sockets to the ioctl() function. So enable the support for sockets. HAVE_IOCTL=0 else AC_CHECK_FUNCS([ioctl]) dnl On glibc systems, the second parameter is 'unsigned long int request', dnl not 'int request'. We cannot simply cast the function pointer, but dnl instead need a wrapper. AC_CACHE_CHECK([for ioctl with POSIX signature], [gl_cv_func_ioctl_posix_signature], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include /* On some platforms, ioctl() is declared in . */ #include ]], [[extern #ifdef __cplusplus "C" #endif int ioctl (int, int, ...); ]]) ], [gl_cv_func_ioctl_posix_signature=yes], [gl_cv_func_ioctl_posix_signature=no]) ]) if test $gl_cv_func_ioctl_posix_signature != yes; then REPLACE_IOCTL=1 fi fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/isblank.m40000644000000000000000000000010713726163410021216 xustar000000000000000023 mtime=1599661832.56 24 atime=1599661832.747 24 ctime=1599661998.262 libprelude-5.2.0/libmissing/m4/isblank.m40000644000000000000000000000103213726163410020207 0ustar00rootroot00000000000000# isblank.m4 serial 3 dnl Copyright (C) 2009-2018 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_FUNC_ISBLANK], [ dnl Persuade glibc to declare isblank(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_CTYPE_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([isblank]) if test $ac_cv_func_isblank = no; then HAVE_ISBLANK=0 fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/langinfo_h.m40000644000000000000000000000010713726163410021677 xustar000000000000000023 mtime=1599661832.56 24 atime=1599661832.747 24 ctime=1599661998.263 libprelude-5.2.0/libmissing/m4/langinfo_h.m40000644000000000000000000000772013726163410020702 0ustar00rootroot00000000000000# langinfo_h.m4 serial 8 dnl Copyright (C) 2009-2018 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_LANGINFO_H], [ AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) dnl Persuade glibc-2.0.6 to define CODESET. AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([langinfo.h]) dnl Determine whether exists. It is missing on mingw and BeOS. HAVE_LANGINFO_CODESET=0 HAVE_LANGINFO_T_FMT_AMPM=0 HAVE_LANGINFO_ALTMON=0 HAVE_LANGINFO_ERA=0 HAVE_LANGINFO_YESEXPR=0 AC_CHECK_HEADERS_ONCE([langinfo.h]) if test $ac_cv_header_langinfo_h = yes; then HAVE_LANGINFO_H=1 dnl Determine what defines. CODESET and ERA etc. are missing dnl on OpenBSD 3.8. T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3. dnl ALTMON_* are missing on glibc 2.26 and many other systems. AC_CACHE_CHECK([whether langinfo.h defines CODESET], [gl_cv_header_langinfo_codeset], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = CODESET; ]])], [gl_cv_header_langinfo_codeset=yes], [gl_cv_header_langinfo_codeset=no]) ]) if test $gl_cv_header_langinfo_codeset = yes; then HAVE_LANGINFO_CODESET=1 fi AC_CACHE_CHECK([whether langinfo.h defines T_FMT_AMPM], [gl_cv_header_langinfo_t_fmt_ampm], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = T_FMT_AMPM; ]])], [gl_cv_header_langinfo_t_fmt_ampm=yes], [gl_cv_header_langinfo_t_fmt_ampm=no]) ]) if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then HAVE_LANGINFO_T_FMT_AMPM=1 fi AC_CACHE_CHECK([whether langinfo.h defines ALTMON_1], [gl_cv_header_langinfo_altmon], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = ALTMON_1; ]])], [gl_cv_header_langinfo_altmon=yes], [gl_cv_header_langinfo_altmon=no]) ]) if test $gl_cv_header_langinfo_altmon = yes; then HAVE_LANGINFO_ALTMON=1 fi AC_CACHE_CHECK([whether langinfo.h defines ERA], [gl_cv_header_langinfo_era], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = ERA; ]])], [gl_cv_header_langinfo_era=yes], [gl_cv_header_langinfo_era=no]) ]) if test $gl_cv_header_langinfo_era = yes; then HAVE_LANGINFO_ERA=1 fi AC_CACHE_CHECK([whether langinfo.h defines YESEXPR], [gl_cv_header_langinfo_yesexpr], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = YESEXPR; ]])], [gl_cv_header_langinfo_yesexpr=yes], [gl_cv_header_langinfo_yesexpr=no]) ]) if test $gl_cv_header_langinfo_yesexpr = yes; then HAVE_LANGINFO_YESEXPR=1 fi else HAVE_LANGINFO_H=0 fi AC_SUBST([HAVE_LANGINFO_H]) AC_SUBST([HAVE_LANGINFO_CODESET]) AC_SUBST([HAVE_LANGINFO_T_FMT_AMPM]) AC_SUBST([HAVE_LANGINFO_ALTMON]) AC_SUBST([HAVE_LANGINFO_ERA]) AC_SUBST([HAVE_LANGINFO_YESEXPR]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [nl_langinfo]) ]) AC_DEFUN([gl_LANGINFO_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_LANGINFO_H_DEFAULTS], [ GNULIB_NL_LANGINFO=0; AC_SUBST([GNULIB_NL_LANGINFO]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_NL_LANGINFO=1; AC_SUBST([HAVE_NL_LANGINFO]) REPLACE_NL_LANGINFO=0; AC_SUBST([REPLACE_NL_LANGINFO]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/largefile.m40000644000000000000000000000010713726163410021525 xustar000000000000000023 mtime=1599661832.56 24 atime=1599661832.747 24 ctime=1599661998.265 libprelude-5.2.0/libmissing/m4/largefile.m40000644000000000000000000001345313726163410020530 0ustar00rootroot00000000000000# Enable large files on systems where this is not the default. # Copyright 1992-1996, 1998-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # The following implementation works around a problem in autoconf <= 2.69; # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5, # or configures them incorrectly in some cases. m4_version_prereq([2.70], [] ,[ # _AC_SYS_LARGEFILE_TEST_INCLUDES # ------------------------------- m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], [@%:@include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ @%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]];[]dnl ]) # _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, # CACHE-VAR, # DESCRIPTION, # PROLOGUE, [FUNCTION-BODY]) # -------------------------------------------------------- m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE], [AC_CACHE_CHECK([for $1 value needed for large files], [$3], [while :; do m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( [AC_LANG_PROGRAM([$5], [$6])], [$3=no; break]) m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( [AC_LANG_PROGRAM([@%:@define $1 $2 $5], [$6])], [$3=$2; break]) $3=unknown break done]) case $$3 in #( no | unknown) ;; *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);; esac rm -rf conftest*[]dnl ])# _AC_SYS_LARGEFILE_MACRO_VALUE # AC_SYS_LARGEFILE # ---------------- # By default, many hosts won't let programs access large files; # one must use special compiler options to get large-file access to work. # For more details about this brain damage please see: # http://www.unix-systems.org/version2/whatsnew/lfs20mar.html AC_DEFUN([AC_SYS_LARGEFILE], [AC_ARG_ENABLE(largefile, [ --disable-largefile omit support for large files]) if test "$enable_largefile" != no; then AC_CACHE_CHECK([for special C compiler options needed for large files], ac_cv_sys_largefile_CC, [ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])]) AC_COMPILE_IFELSE([], [break]) CC="$CC -n32" AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break]) break done CC=$ac_save_CC rm -f conftest.$ac_ext fi]) if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits, [Number of bits in a file offset, on hosts where this is settable.], [_AC_SYS_LARGEFILE_TEST_INCLUDES]) if test $ac_cv_sys_file_offset_bits = unknown; then _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files, [Define for large files, on AIX-style hosts.], [_AC_SYS_LARGEFILE_TEST_INCLUDES]) fi AC_DEFINE([_DARWIN_USE_64_BIT_INODE], [1], [Enable large inode numbers on Mac OS X 10.5.]) fi ])# AC_SYS_LARGEFILE ])# m4_version_prereq 2.70 # Enable large files on systems where this is implemented by Gnulib, not by the # system headers. # Set the variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE if Gnulib # overrides ensure that off_t or 'struct size.st_size' are 64-bit, respectively. AC_DEFUN([gl_LARGEFILE], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw*) dnl Native Windows. dnl mingw64 defines off_t to a 64-bit type already, if dnl _FILE_OFFSET_BITS=64, which is ensured by AC_SYS_LARGEFILE. AC_CACHE_CHECK([for 64-bit off_t], [gl_cv_type_off_t_64], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; ]], [[]])], [gl_cv_type_off_t_64=yes], [gl_cv_type_off_t_64=no]) ]) if test $gl_cv_type_off_t_64 = no; then WINDOWS_64_BIT_OFF_T=1 else WINDOWS_64_BIT_OFF_T=0 fi dnl Some mingw versions define, if _FILE_OFFSET_BITS=64, 'struct stat' dnl to 'struct _stat32i64' or 'struct _stat64' (depending on dnl _USE_32BIT_TIME_T), which has a 32-bit st_size member. AC_CACHE_CHECK([for 64-bit st_size], [gl_cv_member_st_size_64], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include struct stat buf; int verify_st_size_size[sizeof (buf.st_size) >= 8 ? 1 : -1]; ]], [[]])], [gl_cv_member_st_size_64=yes], [gl_cv_member_st_size_64=no]) ]) if test $gl_cv_member_st_size_64 = no; then WINDOWS_64_BIT_ST_SIZE=1 else WINDOWS_64_BIT_ST_SIZE=0 fi ;; *) dnl Nothing to do on gnulib's side. dnl A 64-bit off_t is dnl - already the default on Mac OS X, FreeBSD, NetBSD, OpenBSD, IRIX, dnl OSF/1, Cygwin, dnl - enabled by _FILE_OFFSET_BITS=64 (ensured by AC_SYS_LARGEFILE) on dnl glibc, HP-UX, Solaris, dnl - enabled by _LARGE_FILES=1 (ensured by AC_SYS_LARGEFILE) on AIX, dnl - impossible to achieve on Minix 3.1.8. WINDOWS_64_BIT_OFF_T=0 WINDOWS_64_BIT_ST_SIZE=0 ;; esac ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/lcmessage.m40000644000000000000000000000010713726163410021536 xustar000000000000000023 mtime=1599661832.56 24 atime=1599661832.747 24 ctime=1599661998.267 libprelude-5.2.0/libmissing/m4/lcmessage.m40000644000000000000000000000252513726163410020537 0ustar00rootroot00000000000000# lcmessage.m4 serial 7 (gettext-0.18.2) dnl Copyright (C) 1995-2002, 2004-2005, 2008-2014, 2016 Free Software dnl 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. dnl dnl This file can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995. # Check whether LC_MESSAGES is available in . AC_DEFUN([gt_LC_MESSAGES], [ AC_CACHE_CHECK([for LC_MESSAGES], [gt_cv_val_LC_MESSAGES], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[return LC_MESSAGES]])], [gt_cv_val_LC_MESSAGES=yes], [gt_cv_val_LC_MESSAGES=no])]) if test $gt_cv_val_LC_MESSAGES = yes; then AC_DEFINE([HAVE_LC_MESSAGES], [1], [Define if your file defines LC_MESSAGES.]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/lib-ld.m40000644000000000000000000000011013726163410020730 xustar000000000000000024 mtime=1599661832.561 24 atime=1599661832.747 24 ctime=1599661998.269 libprelude-5.2.0/libmissing/m4/lib-ld.m40000644000000000000000000001237213726163410017740 0ustar00rootroot00000000000000# lib-ld.m4 serial 9 dnl Copyright (C) 1996-2003, 2009-2018 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. dnl Subroutines of libtool.m4, dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid dnl collision with libtool.m4. dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], [# I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 /dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi if test -n "$LD"; then AC_MSG_CHECKING([for ld]) elif test "$GCC" = yes; then AC_MSG_CHECKING([for ld used by $CC]) elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi if test -n "$LD"; then # Let the user override the test with a path. : else AC_CACHE_VAL([acl_cv_path_LD], [ acl_cv_path_LD= # Final result of this test ac_prog=ld # Program to search in $PATH if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) acl_output=`($CC -print-prog-name=ld) 2>&5` ;; esac case $acl_output in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` done # Got the pathname. No search in PATH is needed. acl_cv_path_LD="$acl_output" ac_prog= ;; "") # If it fails, then pretend we aren't using GCC. ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac fi if test -n "$ac_prog"; then # Search for $ac_prog in $PATH. acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 = 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE([rpath], [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_FROMPACKAGE(name, package) dnl declares that libname comes from the given package. The configure file dnl will then not have a --with-libname-prefix option but a dnl --with-package-prefix option. Several libraries can come from the same dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar dnl macro call that searches for libname. AC_DEFUN([AC_LIB_FROMPACKAGE], [ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_frompackage_]NAME, [$2]) popdef([NAME]) pushdef([PACK],[$2]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_libsinpackage_]PACKUP, m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) popdef([PACKUP]) popdef([PACK]) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) dnl Autoconf >= 2.61 supports dots in --with options. pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH(P_A_C_K[-prefix], [[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && test ! -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been dnl computed. So it has to be reset here. HAVE_LIB[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) popdef([NAME]) ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/lib-prefix.m40000644000000000000000000000011013726163410021626 xustar000000000000000024 mtime=1599661832.561 24 atime=1599661832.747 24 ctime=1599661998.272 libprelude-5.2.0/libmissing/m4/lib-prefix.m40000644000000000000000000002405513726163410020637 0ustar00rootroot00000000000000# lib-prefix.m4 serial 11 dnl Copyright (C) 2001-2005, 2008-2018 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. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates dnl - a variable acl_libdirstem, containing the basename of the libdir, either dnl "lib" or "lib64" or "lib/64", dnl - a variable acl_libdirstem2, as a secondary possible value for dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or dnl "lib/amd64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. dnl On glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine dnl the compiler's default mode by looking at the compiler's library search dnl path. If at least one of its elements ends in /lib64 or points to a dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. dnl Otherwise we use the default, namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_HOST_CPU_C_ABI]) dnl Allow the user to override the result by setting acl_cv_libdirstems. AC_CACHE_CHECK([for the common suffixes of directories in the library search path], [acl_cv_libdirstems], [acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment dnl . dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], [AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifdef _LP64 int ok; #else error fail #endif ]])], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) ]) if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) dnl If $CC generates code for a 32-bit ABI, the libraries are dnl surely under $prefix/lib, not $prefix/lib64. case "$gl_cv_host_cpu_c_abi" in i386 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | s390 | sparc) ;; *) # x86_64 | arm64 | hppa64 | ia64 | mips64 | powerpc64* | s390x | sparc64 | ... dnl The result is a property of the system. However, non-system dnl compilers sometimes have odd library search paths. Therefore dnl prefer asking /usr/bin/gcc, if available, rather than $CC. searchpath=`(if test -f /usr/bin/gcc \ && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ LC_ALL=C /usr/bin/gcc -print-search-dirs; \ else \ LC_ALL=C $CC -print-search-dirs; \ fi) 2>/dev/null \ | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2" ]) # Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2. acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'` ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/limits-h.m40000644000000000000000000000011013726163410021313 xustar000000000000000024 mtime=1599661832.561 24 atime=1599661832.747 24 ctime=1599661998.274 libprelude-5.2.0/libmissing/m4/limits-h.m40000644000000000000000000000235113726163410020317 0ustar00rootroot00000000000000dnl Check whether limits.h has needed features. dnl Copyright 2016-2018 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. dnl From Paul Eggert. AC_DEFUN_ONCE([gl_LIMITS_H], [ gl_CHECK_NEXT_HEADERS([limits.h]) AC_CACHE_CHECK([whether limits.h has ULLONG_WIDTH etc.], [gl_cv_header_limits_width], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include int ullw = ULLONG_WIDTH;]])], [gl_cv_header_limits_width=yes], [gl_cv_header_limits_width=no])]) if test "$gl_cv_header_limits_width" = yes; then LIMITS_H= else LIMITS_H=limits.h fi AC_SUBST([LIMITS_H]) AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) ]) dnl Unconditionally enables the replacement of . AC_DEFUN([gl_REPLACE_LIMITS_H], [ AC_REQUIRE([gl_LIMITS_H]) LIMITS_H='limits.h' AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/localcharset.m40000644000000000000000000000011013726163410022231 xustar000000000000000024 mtime=1599661832.562 24 atime=1599661832.747 24 ctime=1599661998.275 libprelude-5.2.0/libmissing/m4/localcharset.m40000644000000000000000000000063313726163410021236 0ustar00rootroot00000000000000# localcharset.m4 serial 8 dnl Copyright (C) 2002, 2004, 2006, 2009-2018 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_LOCALCHARSET], [ dnl Prerequisites of lib/localcharset.c. AC_REQUIRE([AM_LANGINFO_CODESET]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/locale-fr.m40000644000000000000000000000011013726163410021431 xustar000000000000000024 mtime=1599661832.562 24 atime=1599661832.747 24 ctime=1599661998.277 libprelude-5.2.0/libmissing/m4/locale-fr.m40000644000000000000000000002460413726163410020442 0ustar00rootroot00000000000000# locale-fr.m4 serial 19 dnl Copyright (C) 2003, 2005-2018 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. dnl From Bruno Haible. dnl Determine the name of a french locale with traditional encoding. AC_DEFUN([gt_LOCALE_FR], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; # if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; # endif return 0; #endif } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_FR=$gt_cv_locale_fr AC_SUBST([LOCALE_FR]) ]) dnl Determine the name of a french locale with UTF-8 encoding. AC_DEFUN([gt_LOCALE_FR_UTF8], [ AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 AC_SUBST([LOCALE_FR_UTF8]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/locale-ja.m40000644000000000000000000000011013726163410021414 xustar000000000000000024 mtime=1599661832.562 24 atime=1599661832.747 24 ctime=1599661998.279 libprelude-5.2.0/libmissing/m4/locale-ja.m40000644000000000000000000001323313726163410020421 0ustar00rootroot00000000000000# locale-ja.m4 serial 14 dnl Copyright (C) 2003, 2005-2018 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. dnl From Bruno Haible. dnl Determine the name of a japanese locale with EUC-JP encoding. AC_DEFUN([gt_LOCALE_JA], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } return 0; #endif } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_JA=$gt_cv_locale_ja AC_SUBST([LOCALE_JA]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/locale-tr.m40000644000000000000000000000010713726163410021455 xustar000000000000000024 mtime=1599661832.562 24 atime=1599661832.748 23 ctime=1599661998.28 libprelude-5.2.0/libmissing/m4/locale-tr.m40000644000000000000000000001206213726163410020453 0ustar00rootroot00000000000000# locale-tr.m4 serial 11 dnl Copyright (C) 2003, 2005-2018 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. dnl From Bruno Haible. dnl Determine the name of a turkish locale with UTF-8 encoding. AC_DEFUN([gt_LOCALE_TR_UTF8], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a turkish Unicode locale], [gt_cv_locale_tr_utf8], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. But BeOS does not implement the Turkish upper-/lowercase mappings. Therefore, let this program return 1 on BeOS. */ /* Check whether the given locale name is recognized by the system. */ #if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in the abbreviation of the eighth month, the second character (should be U+011F: LATIN SMALL LETTER G WITH BREVE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1992 - 1900; t.tm_mon = 8 - 1; t.tm_mday = 19; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc4 || buf[2] != (char) 0x9f) return 1; /* Check whether the upper-/lowercase mappings are as expected for Turkish. */ if (towupper ('i') != 0x0130 || towlower (0x0130) != 'i' || towupper(0x0131) != 'I' || towlower ('I') != 0x0131) return 1; return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Turkish_Turkey.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=Turkish_Turkey.65001 else # None found. gt_cv_locale_tr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=tr_TR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=tr_TR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=tr.UTF-8 else # None found. gt_cv_locale_tr_utf8=none fi fi fi ;; esac else gt_cv_locale_tr_utf8=none fi rm -fr conftest* ]) LOCALE_TR_UTF8=$gt_cv_locale_tr_utf8 AC_SUBST([LOCALE_TR_UTF8]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/locale-zh.m40000644000000000000000000000011013726163410021443 xustar000000000000000024 mtime=1599661832.562 24 atime=1599661832.748 24 ctime=1599661998.282 libprelude-5.2.0/libmissing/m4/locale-zh.m40000644000000000000000000001265613726163410020460 0ustar00rootroot00000000000000# locale-zh.m4 serial 14 dnl Copyright (C) 2003, 2005-2018 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. dnl From Bruno Haible. dnl Determine the name of a chinese locale with GB18030 encoding. AC_DEFUN([gt_LOCALE_ZH_CN], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; #endif } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* ]) LOCALE_ZH_CN=$gt_cv_locale_zh_CN AC_SUBST([LOCALE_ZH_CN]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/locale_h.m40000644000000000000000000000011013726163410021333 xustar000000000000000024 mtime=1599661832.563 24 atime=1599661832.748 24 ctime=1599661998.284 libprelude-5.2.0/libmissing/m4/locale_h.m40000644000000000000000000001037313726163410020342 0ustar00rootroot00000000000000# locale_h.m4 serial 20 dnl Copyright (C) 2007, 2009-2018 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_LOCALE_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) dnl Persuade glibc to define locale_t and the int_p_*, int_n_* dnl members of 'struct lconv'. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl If is replaced, then must also be replaced. AC_REQUIRE([gl_STDDEF_H]) dnl Solaris 11.0 defines the int_p_*, int_n_* members of 'struct lconv' dnl only if _LCONV_C99 is defined. AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in solaris*) AC_DEFINE([_LCONV_C99], [1], [Define to 1 on Solaris.]) ;; esac AC_CACHE_CHECK([whether locale.h conforms to POSIX:2001], [gl_cv_header_locale_h_posix2001], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include int x = LC_MESSAGES; int y = sizeof (((struct lconv *) 0)->decimal_point);]], [[]])], [gl_cv_header_locale_h_posix2001=yes], [gl_cv_header_locale_h_posix2001=no])]) dnl Check for . AC_CHECK_HEADERS_ONCE([xlocale.h]) if test $ac_cv_header_xlocale_h = yes; then HAVE_XLOCALE_H=1 dnl Check whether use of locale_t requires inclusion of , dnl e.g. on Mac OS X 10.5. If does not define locale_t by dnl itself, we assume that will do so. AC_CACHE_CHECK([whether locale.h defines locale_t], [gl_cv_header_locale_has_locale_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include locale_t x;]], [[]])], [gl_cv_header_locale_has_locale_t=yes], [gl_cv_header_locale_has_locale_t=no]) ]) if test $gl_cv_header_locale_has_locale_t = yes; then gl_cv_header_locale_h_needs_xlocale_h=no else gl_cv_header_locale_h_needs_xlocale_h=yes fi else HAVE_XLOCALE_H=0 gl_cv_header_locale_h_needs_xlocale_h=no fi AC_SUBST([HAVE_XLOCALE_H]) dnl Check whether 'struct lconv' is complete. dnl Bionic libc's 'struct lconv' is just a dummy. dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, dnl mingw, MSVC 9, it lacks the int_p_* and int_n_* members. AC_CACHE_CHECK([whether struct lconv is properly defined], [gl_cv_sys_struct_lconv_ok], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include struct lconv l; int x = sizeof (l.decimal_point); int y = sizeof (l.int_p_cs_precedes);]], [[]])], [gl_cv_sys_struct_lconv_ok=yes], [gl_cv_sys_struct_lconv_ok=no]) ]) if test $gl_cv_sys_struct_lconv_ok = no; then REPLACE_STRUCT_LCONV=1 fi dnl is always overridden, because of GNULIB_POSIXCHECK. gl_NEXT_HEADERS([locale.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include /* Some systems provide declarations in a non-standard header. */ #if HAVE_XLOCALE_H # include #endif ]], [setlocale duplocale]) ]) AC_DEFUN([gl_LOCALE_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_LOCALE_H_DEFAULTS], [ GNULIB_LOCALECONV=0; AC_SUBST([GNULIB_LOCALECONV]) GNULIB_SETLOCALE=0; AC_SUBST([GNULIB_SETLOCALE]) GNULIB_DUPLOCALE=0; AC_SUBST([GNULIB_DUPLOCALE]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE]) REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV]) REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE]) REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE]) REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/localeconv.m40000644000000000000000000000011013726163410021712 xustar000000000000000024 mtime=1599661832.563 24 atime=1599661832.748 24 ctime=1599661998.285 libprelude-5.2.0/libmissing/m4/localeconv.m40000644000000000000000000000114713726163410020720 0ustar00rootroot00000000000000# localeconv.m4 serial 1 dnl Copyright (C) 2012-2018 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_FUNC_LOCALECONV], [ AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) AC_REQUIRE([gl_LOCALE_H]) if test $REPLACE_STRUCT_LCONV = 1; then REPLACE_LOCALECONV=1 fi ]) # Prerequisites of lib/localeconv.c. AC_DEFUN([gl_PREREQ_LOCALECONV], [ AC_CHECK_MEMBERS([struct lconv.decimal_point], [], [], [[#include ]]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/localename.m40000644000000000000000000000011013726163410021665 xustar000000000000000024 mtime=1599661832.563 24 atime=1599661832.748 24 ctime=1599661998.287 libprelude-5.2.0/libmissing/m4/localename.m40000644000000000000000000000120213726163410020663 0ustar00rootroot00000000000000# localename.m4 serial 3 dnl Copyright (C) 2007, 2009-2018 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_LOCALENAME], [ AC_REQUIRE([gt_LC_MESSAGES]) AC_REQUIRE([gt_INTL_MACOSX]) AC_CHECK_HEADERS_ONCE([langinfo.h]) AC_CHECK_FUNCS([setlocale uselocale]) dnl Solaris 12 provides getlocalename_l, while Illumos doesn't have dnl it nor the equivalent. if test $ac_cv_func_uselocale = yes; then AC_CHECK_FUNCS([getlocalename_l]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/localtime-buffer.m40000644000000000000000000000011013726163410023005 xustar000000000000000024 mtime=1599661832.563 24 atime=1599661832.748 24 ctime=1599661998.289 libprelude-5.2.0/libmissing/m4/localtime-buffer.m40000644000000000000000000000123513726163410022011 0ustar00rootroot00000000000000# localtime-buffer.m4 serial 1 dnl Copyright (C) 2017-2018 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_LOCALTIME_BUFFER_DEFAULTS], [ NEED_LOCALTIME_BUFFER=0 ]) dnl Macro invoked from other modules, to signal that the compilation of dnl module 'localtime-buffer' is needed. AC_DEFUN([gl_LOCALTIME_BUFFER_NEEDED], [ AC_REQUIRE([gl_LOCALTIME_BUFFER_DEFAULTS]) AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) NEED_LOCALTIME_BUFFER=1 REPLACE_GMTIME=1 REPLACE_LOCALTIME=1 ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/lock.m40000644000000000000000000000010713726163410020523 xustar000000000000000024 mtime=1599661832.563 24 atime=1599661832.748 23 ctime=1599661998.29 libprelude-5.2.0/libmissing/m4/lock.m40000644000000000000000000000303713726163410017523 0ustar00rootroot00000000000000# lock.m4 serial 14 dnl Copyright (C) 2005-2018 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. dnl From Bruno Haible. AC_DEFUN([gl_LOCK], [ AC_REQUIRE([gl_THREADLIB]) if test "$gl_threads_api" = posix; then # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. has_rwlock=false AC_CHECK_TYPE([pthread_rwlock_t], [has_rwlock=true AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1], [Define if the POSIX multithreading library has read/write locks.])], [], [#include ]) if $has_rwlock; then gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER fi # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. AC_COMPILE_IFELSE([ AC_LANG_PROGRAM( [[#include ]], [[ #if __FreeBSD__ == 4 error "No, in FreeBSD 4.0 recursive mutexes actually don't work." #elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." #else int x = (int)PTHREAD_MUTEX_RECURSIVE; return !x; #endif ]])], [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], [1], [Define if the defines PTHREAD_MUTEX_RECURSIVE.])]) fi gl_PREREQ_LOCK ]) # Prerequisites of lib/glthread/lock.c. AC_DEFUN([gl_PREREQ_LOCK], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/longlong.m40000644000000000000000000000011013726163410021404 xustar000000000000000024 mtime=1599661832.563 24 atime=1599661832.748 24 ctime=1599661998.292 libprelude-5.2.0/libmissing/m4/longlong.m40000644000000000000000000001120313726163410020404 0ustar00rootroot00000000000000# longlong.m4 serial 17 dnl Copyright (C) 1999-2007, 2009-2018 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. dnl From Paul Eggert. # Define HAVE_LONG_LONG_INT if 'long long int' works. # This fixes a bug in Autoconf 2.61, and can be faster # than what's in Autoconf 2.62 through 2.68. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), HAVE_LONG_LONG_INT will not be # defined. In this case you can treat 'long long int' like 'long int'. AC_DEFUN([AC_TYPE_LONG_LONG_INT], [ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], [ac_cv_type_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_long_long_int = yes; then dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. dnl If cross compiling, assume the bug is not important, since dnl nobody cross compiles for this platform as far as we know. AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[@%:@include @%:@ifndef LLONG_MAX @%:@ define HALF \ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) @%:@ define LLONG_MAX (HALF - 1 + HALF) @%:@endif]], [[long long int n = 1; int i; for (i = 0; ; i++) { long long int m = n << i; if (m >> i != n) return 1; if (LLONG_MAX / 2 < m) break; } return 0;]])], [], [ac_cv_type_long_long_int=no], [:]) fi fi]) if test $ac_cv_type_long_long_int = yes; then AC_DEFINE([HAVE_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'long long int'.]) fi ]) # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. # This fixes a bug in Autoconf 2.61, and can be faster # than what's in Autoconf 2.62 through 2.68. # Note: If the type 'unsigned long long int' exists but is only 32 bits # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT # will not be defined. In this case you can treat 'unsigned long long int' # like 'unsigned long int'. AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], [ AC_CACHE_CHECK([for unsigned long long int], [ac_cv_type_unsigned_long_long_int], [ac_cv_type_unsigned_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then AC_LINK_IFELSE( [_AC_TYPE_LONG_LONG_SNIPPET], [], [ac_cv_type_unsigned_long_long_int=no]) fi]) if test $ac_cv_type_unsigned_long_long_int = yes; then AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'unsigned long long int'.]) fi ]) # Expands to a C program that can be used to test for simultaneous support # of 'long long' and 'unsigned long long'. We don't want to say that # 'long long' is available if 'unsigned long long' is not, or vice versa, # because too many programs rely on the symmetry between signed and unsigned # integer types (excluding 'bool'). AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], [ AC_LANG_PROGRAM( [[/* For now, do not test the preprocessor; as of 2007 there are too many implementations with broken preprocessors. Perhaps this can be revisited in 2012. In the meantime, code should not expect #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63;]], [[/* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull));]]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/lseek.m40000644000000000000000000000011013726163410020670 xustar000000000000000024 mtime=1599661832.564 24 atime=1599661832.748 24 ctime=1599661998.294 libprelude-5.2.0/libmissing/m4/lseek.m40000644000000000000000000000436113726163410017677 0ustar00rootroot00000000000000# lseek.m4 serial 10 dnl Copyright (C) 2007, 2009-2018 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_FUNC_LSEEK], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_CC]) AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CACHE_CHECK([whether lseek detects pipes], [gl_cv_func_lseek_pipe], [case "$host_os" in mingw*) dnl Native Windows. dnl The result of lseek (fd, (off_t)0, SEEK_CUR) or dnl SetFilePointer(handle, 0, NULL, FILE_CURRENT) dnl for a pipe depends on the environment: In a Cygwin 1.5 dnl environment it succeeds (wrong); in a Cygwin 1.7 environment dnl it fails with a wrong errno value. gl_cv_func_lseek_pipe=no ;; *) if test $cross_compiling = no; then AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include /* for off_t */ #include /* for SEEK_CUR */ #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif ]], [[ /* Exit with success only if stdin is seekable. */ return lseek (0, (off_t)0, SEEK_CUR) < 0; ]])], [if test -s conftest$ac_exeext \ && ./conftest$ac_exeext < conftest.$ac_ext \ && test 1 = "`echo hi \ | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then gl_cv_func_lseek_pipe=yes else gl_cv_func_lseek_pipe=no fi ], [gl_cv_func_lseek_pipe=no]) else AC_COMPILE_IFELSE( [AC_LANG_SOURCE([[ #if defined __BEOS__ /* BeOS mistakenly return 0 when trying to seek on pipes. */ Choke me. #endif]])], [gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no]) fi ;; esac ]) if test $gl_cv_func_lseek_pipe = no; then REPLACE_LSEEK=1 AC_DEFINE([LSEEK_PIPE_BROKEN], [1], [Define to 1 if lseek does not detect pipes.]) fi AC_REQUIRE([gl_SYS_TYPES_H]) if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_LSEEK=1 fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/lstat.m40000644000000000000000000000011013726163410020714 xustar000000000000000024 mtime=1599661832.564 24 atime=1599661832.748 24 ctime=1599661998.295 libprelude-5.2.0/libmissing/m4/lstat.m40000644000000000000000000000541313726163410017722 0ustar00rootroot00000000000000# serial 32 # Copyright (C) 1997-2001, 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Jim Meyering. AC_DEFUN([gl_FUNC_LSTAT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl If lstat does not exist, the replacement does dnl "#define lstat stat", and lstat.c is a no-op. AC_CHECK_FUNCS_ONCE([lstat]) if test $ac_cv_func_lstat = yes; then AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in solaris* | *no) REPLACE_LSTAT=1 ;; esac else HAVE_LSTAT=0 fi ]) # Prerequisites of lib/lstat.c. AC_DEFUN([gl_PREREQ_LSTAT], [:]) AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK], [ dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ. AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether lstat correctly handles trailing slash], [gl_cv_func_lstat_dereferences_slashed_symlink], [rm -f conftest.sym conftest.file echo >conftest.file AC_RUN_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT], [[struct stat sbuf; if (symlink ("conftest.file", "conftest.sym") != 0) return 1; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ]])], [gl_cv_func_lstat_dereferences_slashed_symlink=yes], [gl_cv_func_lstat_dereferences_slashed_symlink=no], [case "$host_os" in linux-* | linux) # Guess yes on Linux systems. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; *-gnu* | gnu*) # Guess yes on glibc systems. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; mingw*) # Guess no on native Windows. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; *) # If we don't know, assume the worst. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; esac ]) rm -f conftest.sym conftest.file ]) case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *yes) AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1], [Define to 1 if 'lstat' dereferences a symlink specified with a trailing slash.]) ;; esac ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/malloc.m40000644000000000000000000000011013726163410021034 xustar000000000000000024 mtime=1599661832.564 24 atime=1599661832.748 24 ctime=1599661998.297 libprelude-5.2.0/libmissing/m4/malloc.m40000644000000000000000000000640413726163410020043 0ustar00rootroot00000000000000# malloc.m4 serial 17 dnl Copyright (C) 2007, 2009-2018 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. m4_version_prereq([2.70], [] ,[ # This is adapted with modifications from upstream Autoconf here: # https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=04be2b7a29d65d9a08e64e8e56e594c91749598c AC_DEFUN([_AC_FUNC_MALLOC_IF], [ AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles AC_CHECK_HEADERS([stdlib.h]) AC_CACHE_CHECK([for GNU libc compatible malloc], [ac_cv_func_malloc_0_nonnull], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif ]], [[char *p = malloc (0); int result = !p; free (p); return result;]]) ], [ac_cv_func_malloc_0_nonnull=yes], [ac_cv_func_malloc_0_nonnull=no], [case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_malloc_0_nonnull=no ;; esac ]) ]) AS_IF([test $ac_cv_func_malloc_0_nonnull = yes], [$1], [$2]) ])# _AC_FUNC_MALLOC_IF ]) # gl_FUNC_MALLOC_GNU # ------------------ # Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if # it is not. AC_DEFUN([gl_FUNC_MALLOC_GNU], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) dnl _AC_FUNC_MALLOC_IF is defined in Autoconf. _AC_FUNC_MALLOC_IF( [AC_DEFINE([HAVE_MALLOC_GNU], [1], [Define to 1 if your system has a GNU libc compatible 'malloc' function, and to 0 otherwise.])], [AC_DEFINE([HAVE_MALLOC_GNU], [0]) REPLACE_MALLOC=1 ]) ]) # gl_FUNC_MALLOC_POSIX # -------------------- # Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it # fails), and replace malloc if it is not. AC_DEFUN([gl_FUNC_MALLOC_POSIX], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) if test $gl_cv_func_malloc_posix = yes; then AC_DEFINE([HAVE_MALLOC_POSIX], [1], [Define if the 'malloc' function is POSIX compliant.]) else REPLACE_MALLOC=1 fi ]) # Test whether malloc, realloc, calloc are POSIX compliant, # Set gl_cv_func_malloc_posix to yes or no accordingly. AC_DEFUN([gl_CHECK_MALLOC_POSIX], [ AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant], [gl_cv_func_malloc_posix], [ dnl It is too dangerous to try to allocate a large amount of memory: dnl some systems go to their knees when you do that. So assume that dnl all Unix implementations of the function are POSIX compliant. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[]], [[#if defined _WIN32 && ! defined __CYGWIN__ choke me #endif ]])], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no]) ]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/malloca.m40000644000000000000000000000011013726163410021175 xustar000000000000000024 mtime=1599661832.564 24 atime=1599661832.748 24 ctime=1599661998.299 libprelude-5.2.0/libmissing/m4/malloca.m40000644000000000000000000000110113726163410020171 0ustar00rootroot00000000000000# malloca.m4 serial 1 dnl Copyright (C) 2003-2004, 2006-2007, 2009-2018 Free Software Foundation, dnl 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_MALLOCA], [ dnl Use the autoconf tests for alloca(), but not the AC_SUBSTed variables dnl @ALLOCA@ and @LTALLOCA@. dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies. AC_REQUIRE([gl_EEMALLOC]) AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/mbrtowc.m40000644000000000000000000000010613726163410021247 xustar000000000000000024 mtime=1599661832.565 24 atime=1599661832.748 22 ctime=1599661998.3 libprelude-5.2.0/libmissing/m4/mbrtowc.m40000644000000000000000000005005413726163410020251 0ustar00rootroot00000000000000# mbrtowc.m4 serial 31 -*- coding: utf-8 -*- dnl Copyright (C) 2001-2002, 2004-2005, 2008-2018 Free Software Foundation, dnl 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_FUNC_MBRTOWC], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN AC_CHECK_FUNCS_ONCE([mbrtowc]) if test $ac_cv_func_mbrtowc = no; then HAVE_MBRTOWC=0 AC_CHECK_DECLS([mbrtowc],,, [[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include ]]) if test $ac_cv_have_decl_mbrtowc = yes; then dnl On Minix 3.1.8, the system's declares mbrtowc() although dnl it does not have the function. Avoid a collision with gnulib's dnl replacement. REPLACE_MBRTOWC=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBRTOWC=1 else gl_MBRTOWC_NULL_ARG1 gl_MBRTOWC_NULL_ARG2 gl_MBRTOWC_RETVAL gl_MBRTOWC_NUL_RETVAL gl_MBRTOWC_EMPTY_INPUT gl_MBRTOWC_C_LOCALE case "$gl_cv_func_mbrtowc_null_arg1" in *yes) ;; *) AC_DEFINE([MBRTOWC_NULL_ARG1_BUG], [1], [Define if the mbrtowc function has the NULL pwc argument bug.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_null_arg2" in *yes) ;; *) AC_DEFINE([MBRTOWC_NULL_ARG2_BUG], [1], [Define if the mbrtowc function has the NULL string argument bug.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_retval" in *yes) ;; *) AC_DEFINE([MBRTOWC_RETVAL_BUG], [1], [Define if the mbrtowc function returns a wrong return value.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_nul_retval" in *yes) ;; *) AC_DEFINE([MBRTOWC_NUL_RETVAL_BUG], [1], [Define if the mbrtowc function does not return 0 for a NUL character.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_empty_input" in *yes) ;; *) AC_DEFINE([MBRTOWC_EMPTY_INPUT_BUG], [1], [Define if the mbrtowc function does not return (size_t) -2 for empty input.]) REPLACE_MBRTOWC=1 ;; esac case $gl_cv_C_locale_sans_EILSEQ in *yes) ;; *) AC_DEFINE([C_LOCALE_MAYBE_EILSEQ], [1], [Define to 1 if the C locale may have encoding errors.]) REPLACE_MBRTOWC=1 ;; esac fi fi ]) dnl Test whether mbsinit() and mbrtowc() need to be overridden in a way that dnl redefines the semantics of the given mbstate_t type. dnl Result is REPLACE_MBSTATE_T. dnl When this is set to 1, we replace both mbsinit() and mbrtowc(), in order to dnl avoid inconsistencies. AC_DEFUN([gl_MBSTATE_T_BROKEN], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) AC_CHECK_FUNCS_ONCE([mbsinit]) AC_CHECK_FUNCS_ONCE([mbrtowc]) if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then gl_MBRTOWC_INCOMPLETE_STATE gl_MBRTOWC_SANITYCHECK REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi ]) dnl Test whether mbrtowc puts the state into non-initial state when parsing an dnl incomplete multibyte character. dnl Result is gl_cv_func_mbrtowc_incomplete_state. AC_DEFUN([gl_MBRTOWC_INCOMPLETE_STATE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles incomplete characters], [gl_cv_func_mbrtowc_incomplete_state], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_JA != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_incomplete_state=yes], [gl_cv_func_mbrtowc_incomplete_state=no], [:]) fi ]) ]) dnl Test whether mbrtowc works not worse than mbtowc. dnl Result is gl_cv_func_mbrtowc_sanitycheck. AC_DEFUN([gl_MBRTOWC_SANITYCHECK], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc works as well as mbtowc], [gl_cv_func_mbrtowc_sanitycheck], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_sanitycheck=yes], [gl_cv_func_mbrtowc_sanitycheck=no], [:]) fi ]) ]) dnl Test whether mbrtowc supports a NULL pwc argument correctly. dnl Result is gl_cv_func_mbrtowc_null_arg1. AC_DEFUN([gl_MBRTOWC_NULL_ARG1], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles a NULL pwc argument], [gl_cv_func_mbrtowc_null_arg1], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR_UTF8 != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "\303\237er"; mbstate_t state; wchar_t wc; size_t ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 5, &state); if (ret != 2) result |= 1; if (!mbsinit (&state)) result |= 2; memset (&state, '\0', sizeof (mbstate_t)); ret = mbrtowc (NULL, input, 5, &state); if (ret != 2) /* Solaris 7 fails here: ret is -1. */ result |= 4; if (!mbsinit (&state)) result |= 8; } return result; }]])], [gl_cv_func_mbrtowc_null_arg1=yes], [gl_cv_func_mbrtowc_null_arg1=no], [:]) fi ]) ]) dnl Test whether mbrtowc supports a NULL string argument correctly. dnl Result is gl_cv_func_mbrtowc_null_arg2. AC_DEFUN([gl_MBRTOWC_NULL_ARG2], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles a NULL string argument], [gl_cv_func_mbrtowc_null_arg2], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on OSF/1. osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR_UTF8 != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { mbstate_t state; wchar_t wc; int ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; mbrtowc (&wc, NULL, 5, &state); /* Check that wc was not modified. */ if (wc != (wchar_t) 0xBADFACE) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_null_arg2=yes], [gl_cv_func_mbrtowc_null_arg2=no], [:]) fi ]) ]) dnl Test whether mbrtowc, when parsing the end of a multibyte character, dnl correctly returns the number of bytes that were needed to complete the dnl character (not the total number of bytes of the multibyte character). dnl Result is gl_cv_func_mbrtowc_retval. AC_DEFUN([gl_MBRTOWC_RETVAL], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether mbrtowc has a correct return value], [gl_cv_func_mbrtowc_retval], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on HP-UX, Solaris, native Windows. hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { int result = 0; int found_some_locale = 0; /* This fails on Solaris. */ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "B\303\274\303\237er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 1) result |= 1; } found_some_locale = 1; } /* This fails on HP-UX 11.11. */ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 2) result |= 2; } found_some_locale = 1; } /* This fails on native Windows. */ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) { char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 4; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) { char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 8; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_China.936") != NULL) { char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 16; } found_some_locale = 1; } return (found_some_locale ? result : 77); }]])], [gl_cv_func_mbrtowc_retval=yes], [if test $? != 77; then gl_cv_func_mbrtowc_retval=no fi ], [:]) fi ]) ]) dnl Test whether mbrtowc, when parsing a NUL character, correctly returns 0. dnl Result is gl_cv_func_mbrtowc_nul_retval. AC_DEFUN([gl_MBRTOWC_NUL_RETVAL], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc returns 0 when parsing a NUL character], [gl_cv_func_mbrtowc_nul_retval], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris 8 and 9. solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { /* This fails on Solaris 8 and 9. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "", 1, &state) != 0) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_nul_retval=yes], [gl_cv_func_mbrtowc_nul_retval=no], [:]) fi ]) ]) dnl Test whether mbrtowc returns the correct value on empty input. AC_DEFUN([gl_MBRTOWC_EMPTY_INPUT], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc works on empty input], [gl_cv_func_mbrtowc_empty_input], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on AIX and glibc systems. aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; esac changequote([,])dnl AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include static wchar_t wc; static mbstate_t mbs; int main (void) { return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2; }]])], [gl_cv_func_mbrtowc_empty_input=yes], [gl_cv_func_mbrtowc_empty_input=no], [:]) ]) ]) dnl Test whether mbrtowc reports encoding errors in the C locale. dnl Although POSIX was never intended to allow this, the GNU C Library dnl and other implementations do it. See: dnl https://sourceware.org/bugzilla/show_bug.cgi?id=19932 AC_DEFUN([gl_MBRTOWC_C_LOCALE], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether the C locale is free of encoding errors], [gl_cv_C_locale_sans_EILSEQ], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. gl_cv_C_locale_sans_EILSEQ="guessing no" AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include ]], [[ int i; char *locale = setlocale (LC_ALL, "C"); if (! locale) return 2; for (i = CHAR_MIN; i <= CHAR_MAX; i++) { char c = i; wchar_t wc; mbstate_t mbs = { 0, }; size_t ss = mbrtowc (&wc, &c, 1, &mbs); if (1 < ss) return 3; } return 0; ]])], [gl_cv_C_locale_sans_EILSEQ=yes], [gl_cv_C_locale_sans_EILSEQ=no], [case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_C_locale_sans_EILSEQ="guessing yes" ;; esac ]) ]) ]) # Prerequisites of lib/mbrtowc.c. AC_DEFUN([gl_PREREQ_MBRTOWC], [ AC_REQUIRE([AC_C_INLINE]) : ]) dnl From Paul Eggert dnl This is an override of an autoconf macro. AC_DEFUN([AC_FUNC_MBRTOWC], [ dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60. AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared], [gl_cv_func_mbrtowc], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[/* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include ]], [[wchar_t wc; char const s[] = ""; size_t n = 1; mbstate_t state; return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])], [gl_cv_func_mbrtowc=yes], [gl_cv_func_mbrtowc=no])]) if test $gl_cv_func_mbrtowc = yes; then AC_DEFINE([HAVE_MBRTOWC], [1], [Define to 1 if mbrtowc and mbstate_t are properly declared.]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/mbsinit.m40000644000000000000000000000011013726163410021232 xustar000000000000000024 mtime=1599661832.565 24 atime=1599661832.748 24 ctime=1599661998.302 libprelude-5.2.0/libmissing/m4/mbsinit.m40000644000000000000000000000276313726163410020245 0ustar00rootroot00000000000000# mbsinit.m4 serial 8 dnl Copyright (C) 2008, 2010-2018 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_FUNC_MBSINIT], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN AC_CHECK_FUNCS_ONCE([mbsinit]) if test $ac_cv_func_mbsinit = no; then HAVE_MBSINIT=0 AC_CHECK_DECLS([mbsinit],,, [[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include ]]) if test $ac_cv_have_decl_mbsinit = yes; then dnl On Minix 3.1.8, the system's declares mbsinit() although dnl it does not have the function. Avoid a collision with gnulib's dnl replacement. REPLACE_MBSINIT=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBSINIT=1 else dnl On mingw, mbsinit() always returns 1, which is inappropriate for dnl states produced by mbrtowc() for an incomplete multibyte character dnl in multibyte locales. case "$host_os" in mingw*) REPLACE_MBSINIT=1 ;; esac fi fi ]) # Prerequisites of lib/mbsinit.c. AC_DEFUN([gl_PREREQ_MBSINIT], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/mbstate_t.m40000644000000000000000000000011013726163410021547 xustar000000000000000024 mtime=1599661832.565 24 atime=1599661832.748 24 ctime=1599661998.304 libprelude-5.2.0/libmissing/m4/mbstate_t.m40000644000000000000000000000256713726163410020564 0ustar00rootroot00000000000000# mbstate_t.m4 serial 13 dnl Copyright (C) 2000-2002, 2008-2018 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. # From Paul Eggert. # BeOS 5 has but does not define mbstate_t, # so you can't declare an object of that type. # Check for this incompatibility with Standard C. # AC_TYPE_MBSTATE_T # ----------------- AC_DEFUN([AC_TYPE_MBSTATE_T], [ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl for HP-UX 11.11 AC_CACHE_CHECK([for mbstate_t], [ac_cv_type_mbstate_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include ]], [[mbstate_t x; return sizeof x;]])], [ac_cv_type_mbstate_t=yes], [ac_cv_type_mbstate_t=no])]) if test $ac_cv_type_mbstate_t = yes; then AC_DEFINE([HAVE_MBSTATE_T], [1], [Define to 1 if declares mbstate_t.]) else AC_DEFINE([mbstate_t], [int], [Define to a type if does not define.]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/mbtowc.m40000644000000000000000000000011013726163410021060 xustar000000000000000024 mtime=1599661832.565 24 atime=1599661832.748 24 ctime=1599661998.305 libprelude-5.2.0/libmissing/m4/mbtowc.m40000644000000000000000000000071413726163410020065 0ustar00rootroot00000000000000# mbtowc.m4 serial 2 dnl Copyright (C) 2011-2018 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_FUNC_MBTOWC], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) if false; then REPLACE_MBTOWC=1 fi ]) # Prerequisites of lib/mbtowc.c. AC_DEFUN([gl_PREREQ_MBTOWC], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/memchr.m40000644000000000000000000000011013726163410021040 xustar000000000000000024 mtime=1599661832.565 24 atime=1599661832.748 24 ctime=1599661998.307 libprelude-5.2.0/libmissing/m4/memchr.m40000644000000000000000000000602213726163410020043 0ustar00rootroot00000000000000# memchr.m4 serial 13 dnl Copyright (C) 2002-2004, 2009-2018 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_ONCE([gl_FUNC_MEMCHR], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Check for prerequisites for memory fence checks. gl_FUNC_MMAP_ANON AC_CHECK_HEADERS_ONCE([sys/mman.h]) AC_CHECK_FUNCS_ONCE([mprotect]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) m4_ifdef([gl_FUNC_MEMCHR_OBSOLETE], [ dnl These days, we assume memchr is present. But if support for old dnl platforms is desired: AC_CHECK_FUNCS_ONCE([memchr]) if test $ac_cv_func_memchr = no; then HAVE_MEMCHR=0 fi ]) if test $HAVE_MEMCHR = 1; then # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 # https://bugzilla.redhat.com/show_bug.cgi?id=499689 # memchr should not dereference overestimated length after a match # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 # https://sourceware.org/bugzilla/show_bug.cgi?id=10162 # Assume that memchr works on platforms that lack mprotect. AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include #if HAVE_SYS_MMAN_H # include # include # include # include # ifndef MAP_FILE # define MAP_FILE 0 # endif #endif ]], [[ int result = 0; char *fence = NULL; #if HAVE_SYS_MMAN_H && HAVE_MPROTECT # if HAVE_MAP_ANONYMOUS const int flags = MAP_ANONYMOUS | MAP_PRIVATE; const int fd = -1; # else /* !HAVE_MAP_ANONYMOUS */ const int flags = MAP_FILE | MAP_PRIVATE; int fd = open ("/dev/zero", O_RDONLY, 0666); if (fd >= 0) # endif { int pagesize = getpagesize (); char *two_pages = (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, flags, fd, 0); if (two_pages != (char *)(-1) && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) fence = two_pages + pagesize; } #endif if (fence) { if (memchr (fence, 0, 0)) result |= 1; strcpy (fence - 9, "12345678"); if (memchr (fence - 9, 0, 79) != fence - 1) result |= 2; if (memchr (fence - 1, 0, 3) != fence - 1) result |= 4; } return result; ]])], [gl_cv_func_memchr_works=yes], [gl_cv_func_memchr_works=no], [case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_func_memchr_works="guessing yes" ;; # Be pessimistic for now. *) gl_cv_func_memchr_works="guessing no" ;; esac ]) ]) case "$gl_cv_func_memchr_works" in *yes) ;; *) REPLACE_MEMCHR=1 ;; esac fi ]) # Prerequisites of lib/memchr.c. AC_DEFUN([gl_PREREQ_MEMCHR], [ AC_CHECK_HEADERS([bp-sym.h]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/memmem.m40000644000000000000000000000011013726163410021042 xustar000000000000000024 mtime=1599661832.565 24 atime=1599661832.748 24 ctime=1599661998.309 libprelude-5.2.0/libmissing/m4/memmem.m40000644000000000000000000001136613726163410020054 0ustar00rootroot00000000000000# memmem.m4 serial 25 dnl Copyright (C) 2002-2004, 2007-2018 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. dnl Check that memmem is present and functional. AC_DEFUN([gl_FUNC_MEMMEM_SIMPLE], [ dnl Persuade glibc to declare memmem(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_CHECK_FUNCS([memmem]) if test $ac_cv_func_memmem = yes; then HAVE_MEMMEM=1 else HAVE_MEMMEM=0 fi AC_CHECK_DECLS_ONCE([memmem]) if test $ac_cv_have_decl_memmem = no; then HAVE_DECL_MEMMEM=0 else dnl Detect https://sourceware.org/bugzilla/show_bug.cgi?id=12092. dnl Also check that we handle empty needles correctly. AC_CACHE_CHECK([whether memmem works], [gl_cv_func_memmem_works_always], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include /* for memmem */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P ]], [[ int result = 0; if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE))) result |= 1; /* Check for empty needle behavior. */ { const char *haystack = "AAA"; if (memmem (haystack, 3, NULL, 0) != haystack) result |= 2; } return result; ]])], [gl_cv_func_memmem_works_always=yes], [gl_cv_func_memmem_works_always=no], [dnl glibc 2.9..2.12 and cygwin 1.7.7 have issue #12092 above. dnl Also empty needles work on glibc >= 2.1 and cygwin >= 1.7.0. dnl uClibc is not affected, since it uses different source code. dnl Assume that it works on all other platforms (even if not linear). AC_EGREP_CPP([Lucky user], [ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \ || __GLIBC_MINOR__ > 12)) \ || (__GLIBC__ > 2)) \ || defined __UCLIBC__ Lucky user #endif #elif defined __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #else Lucky user #endif ], [gl_cv_func_memmem_works_always="guessing yes"], [gl_cv_func_memmem_works_always="guessing no"]) ]) ]) case "$gl_cv_func_memmem_works_always" in *yes) ;; *) REPLACE_MEMMEM=1 ;; esac fi gl_PREREQ_MEMMEM ]) # gl_FUNC_MEMMEM_SIMPLE dnl Additionally, check that memmem has linear performance characteristics AC_DEFUN([gl_FUNC_MEMMEM], [ AC_REQUIRE([gl_FUNC_MEMMEM_SIMPLE]) if test $HAVE_DECL_MEMMEM = 1 && test $REPLACE_MEMMEM = 0; then AC_CACHE_CHECK([whether memmem works in linear time], [gl_cv_func_memmem_works_fast], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include /* for signal */ #include /* for memmem */ #include /* for malloc */ #include /* for alarm */ static void quit (int sig) { _exit (sig + 128); } ]], [[ int result = 0; size_t m = 1000000; char *haystack = (char *) malloc (2 * m + 1); char *needle = (char *) malloc (m + 1); /* Failure to compile this test due to missing alarm is okay, since all such platforms (mingw) also lack memmem. */ signal (SIGALRM, quit); alarm (5); /* Check for quadratic performance. */ if (haystack && needle) { memset (haystack, 'A', 2 * m); haystack[2 * m] = 'B'; memset (needle, 'A', m); needle[m] = 'B'; if (!memmem (haystack, 2 * m + 1, needle, m + 1)) result |= 1; } /* Free allocated memory, in case some sanitizer is watching. */ free (haystack); free (needle); return result; ]])], [gl_cv_func_memmem_works_fast=yes], [gl_cv_func_memmem_works_fast=no], [dnl Only glibc >= 2.9 and cygwin > 1.7.0 are known to have a dnl memmem that works in linear time. AC_EGREP_CPP([Lucky user], [ #include #ifdef __GNU_LIBRARY__ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9) || (__GLIBC__ > 2)) \ && !defined __UCLIBC__ Lucky user #endif #endif #ifdef __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 0) Lucky user #endif #endif ], [gl_cv_func_memmem_works_fast="guessing yes"], [gl_cv_func_memmem_works_fast="guessing no"]) ]) ]) case "$gl_cv_func_memmem_works_fast" in *yes) ;; *) REPLACE_MEMMEM=1 ;; esac fi ]) # gl_FUNC_MEMMEM # Prerequisites of lib/memmem.c. AC_DEFUN([gl_PREREQ_MEMMEM], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/minmax.m40000644000000000000000000000010713726163410021064 xustar000000000000000024 mtime=1599661832.566 24 atime=1599661832.749 23 ctime=1599661998.31 libprelude-5.2.0/libmissing/m4/minmax.m40000644000000000000000000000245513726163410020067 0ustar00rootroot00000000000000# minmax.m4 serial 4 dnl Copyright (C) 2005, 2009-2018 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_PREREQ([2.53]) AC_DEFUN([gl_MINMAX], [ AC_REQUIRE([gl_PREREQ_MINMAX]) ]) # Prerequisites of lib/minmax.h. AC_DEFUN([gl_PREREQ_MINMAX], [ gl_MINMAX_IN_HEADER([limits.h]) gl_MINMAX_IN_HEADER([sys/param.h]) ]) dnl gl_MINMAX_IN_HEADER(HEADER) dnl The parameter has to be a literal header name; it cannot be macro, dnl nor a shell variable. (Because autoheader collects only AC_DEFINE dnl invocations with a literal macro name.) AC_DEFUN([gl_MINMAX_IN_HEADER], [ m4_pushdef([header], AS_TR_SH([$1])) m4_pushdef([HEADER], AS_TR_CPP([$1])) AC_CACHE_CHECK([whether <$1> defines MIN and MAX], [gl_cv_minmax_in_]header, [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <$1> int x = MIN (42, 17);]], [[]])], [gl_cv_minmax_in_]header[=yes], [gl_cv_minmax_in_]header[=no])]) if test $gl_cv_minmax_in_[]header = yes; then AC_DEFINE([HAVE_MINMAX_IN_]HEADER, 1, [Define to 1 if <$1> defines the MIN and MAX macros.]) fi m4_popdef([HEADER]) m4_popdef([header]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/mktime.m40000644000000000000000000000011013726163410021053 xustar000000000000000024 mtime=1599661832.566 24 atime=1599661832.749 24 ctime=1599661998.312 libprelude-5.2.0/libmissing/m4/mktime.m40000644000000000000000000002052213726163410020057 0ustar00rootroot00000000000000# serial 30 dnl Copyright (C) 2002-2003, 2005-2007, 2009-2018 Free Software Foundation, dnl 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. dnl From Jim Meyering. AC_DEFUN([gl_TIME_T_IS_SIGNED], [ AC_CACHE_CHECK([whether time_t is signed], [gl_cv_time_t_is_signed], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include char time_t_signed[(time_t) -1 < 0 ? 1 : -1];]])], [gl_cv_time_t_is_signed=yes], [gl_cv_time_t_is_signed=no])]) if test $gl_cv_time_t_is_signed = yes; then AC_DEFINE([TIME_T_IS_SIGNED], [1], [Define to 1 if time_t is signed.]) fi ]) dnl Test whether mktime works. Set gl_cv_func_working_mktime. AC_DEFUN([gl_FUNC_MKTIME_WORKS], [ AC_REQUIRE([gl_TIME_T_IS_SIGNED]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl We don't use AC_FUNC_MKTIME any more, because it is no longer maintained dnl in Autoconf and because it invokes AC_LIBOBJ. AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_DECLS_ONCE([alarm]) AC_CHECK_FUNCS_ONCE([tzset]) AC_REQUIRE([gl_MULTIARCH]) if test $APPLE_UNIVERSAL_BUILD = 1; then # A universal build on Apple Mac OS X platforms. # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode. # But we need a configuration result that is valid in both modes. gl_cv_func_working_mktime=no fi AC_CACHE_CHECK([for working mktime], [gl_cv_func_working_mktime], [AC_RUN_IFELSE( [AC_LANG_SOURCE( [[/* Test program from Paul Eggert and Tony Leneis. */ #include #include #include #ifdef HAVE_UNISTD_H # include #endif #if HAVE_DECL_ALARM # include #endif #ifndef TIME_T_IS_SIGNED # define TIME_T_IS_SIGNED 0 #endif /* Work around redefinition to rpl_putenv by other config tests. */ #undef putenv static time_t time_t_max; static time_t time_t_min; /* Values we'll use to set the TZ environment variable. */ static char *tz_strings[] = { (char *) 0, "TZ=GMT0", "TZ=JST-9", "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) /* Return 0 if mktime fails to convert a date in the spring-forward gap. Based on a problem report from Andreas Jaeger. */ static int spring_forward_gap () { /* glibc (up to about 1998-10-07) failed this test. */ struct tm tm; /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); tm.tm_year = 98; tm.tm_mon = 3; tm.tm_mday = 5; tm.tm_hour = 2; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; return mktime (&tm) != (time_t) -1; } static int mktime_test1 (time_t now) { struct tm *lt; return ! (lt = localtime (&now)) || mktime (lt) == now; } static int mktime_test (time_t now) { return (mktime_test1 (now) && mktime_test1 ((time_t) (time_t_max - now)) && mktime_test1 ((time_t) (time_t_min + now))); } static int irix_6_4_bug () { /* Based on code from Ariel Faigon. */ struct tm tm; tm.tm_year = 96; tm.tm_mon = 3; tm.tm_mday = 0; tm.tm_hour = 0; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; mktime (&tm); return tm.tm_mon == 2 && tm.tm_mday == 31; } static int bigtime_test (int j) { struct tm tm; time_t now; tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; now = mktime (&tm); if (now != (time_t) -1) { struct tm *lt = localtime (&now); if (! (lt && lt->tm_year == tm.tm_year && lt->tm_mon == tm.tm_mon && lt->tm_mday == tm.tm_mday && lt->tm_hour == tm.tm_hour && lt->tm_min == tm.tm_min && lt->tm_sec == tm.tm_sec && lt->tm_yday == tm.tm_yday && lt->tm_wday == tm.tm_wday && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) return 0; } return 1; } static int year_2050_test () { /* The correct answer for 2050-02-01 00:00:00 in Pacific time, ignoring leap seconds. */ unsigned long int answer = 2527315200UL; struct tm tm; time_t t; tm.tm_year = 2050 - 1900; tm.tm_mon = 2 - 1; tm.tm_mday = 1; tm.tm_hour = tm.tm_min = tm.tm_sec = 0; tm.tm_isdst = -1; /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); t = mktime (&tm); /* Check that the result is either a failure, or close enough to the correct answer that we can assume the discrepancy is due to leap seconds. */ return (t == (time_t) -1 || (0 < t && answer - 120 <= t && t <= answer + 120)); } int main () { int result = 0; time_t t, delta; int i, j; int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1; #if HAVE_DECL_ALARM /* This test makes some buggy mktime implementations loop. Give up after 60 seconds; a mktime slower than that isn't worth using anyway. */ signal (SIGALRM, SIG_DFL); alarm (60); #endif time_t_max = (! TIME_T_IS_SIGNED ? (time_t) -1 : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1) * 2 + 1)); time_t_min = (! TIME_T_IS_SIGNED ? (time_t) 0 : time_t_signed_magnitude ? ~ (time_t) 0 : ~ time_t_max); delta = time_t_max / 997; /* a suitable prime number */ for (i = 0; i < N_STRINGS; i++) { if (tz_strings[i]) putenv (tz_strings[i]); for (t = 0; t <= time_t_max - delta && (result & 1) == 0; t += delta) if (! mktime_test (t)) result |= 1; if ((result & 2) == 0 && ! (mktime_test ((time_t) 1) && mktime_test ((time_t) (60 * 60)) && mktime_test ((time_t) (60 * 60 * 24)))) result |= 2; for (j = 1; (result & 4) == 0; j <<= 1) { if (! bigtime_test (j)) result |= 4; if (INT_MAX / 2 < j) break; } if ((result & 8) == 0 && ! bigtime_test (INT_MAX)) result |= 8; } if (! irix_6_4_bug ()) result |= 16; if (! spring_forward_gap ()) result |= 32; if (! year_2050_test ()) result |= 64; return result; }]])], [gl_cv_func_working_mktime=yes], [gl_cv_func_working_mktime=no], [case "$host_os" in # Guess no on native Windows. mingw*) gl_cv_func_working_mktime="guessing no" ;; *) gl_cv_func_working_mktime="guessing no" ;; esac ]) ]) ]) dnl Main macro of module 'mktime'. AC_DEFUN([gl_FUNC_MKTIME], [ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_FUNC_MKTIME_WORKS]) REPLACE_MKTIME=0 if test "$gl_cv_func_working_mktime" != yes; then REPLACE_MKTIME=1 AC_DEFINE([NEED_MKTIME_WORKING], [1], [Define if the compilation of mktime.c should define 'mktime' with the algorithmic workarounds.]) fi case "$host_os" in mingw*) REPLACE_MKTIME=1 AC_DEFINE([NEED_MKTIME_WINDOWS], [1], [Define if the compilation of mktime.c should define 'mktime' with the native Windows TZ workaround.]) ;; esac ]) dnl Main macro of module 'mktime-internal'. AC_DEFUN([gl_FUNC_MKTIME_INTERNAL], [ AC_REQUIRE([gl_FUNC_MKTIME_WORKS]) WANT_MKTIME_INTERNAL=0 dnl BeOS has __mktime_internal in libc, but other platforms don't. AC_CHECK_FUNC([__mktime_internal], [AC_DEFINE([mktime_internal], [__mktime_internal], [Define to the real name of the mktime_internal function.]) ], [dnl mktime works but it doesn't export __mktime_internal, dnl so we need to substitute our own mktime implementation. WANT_MKTIME_INTERNAL=1 AC_DEFINE([NEED_MKTIME_INTERNAL], [1], [Define if the compilation of mktime.c should define 'mktime_internal'.]) ]) ]) # Prerequisites of lib/mktime.c. AC_DEFUN([gl_PREREQ_MKTIME], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/mmap-anon.m40000644000000000000000000000011013726163410021450 xustar000000000000000024 mtime=1599661832.566 24 atime=1599661832.749 24 ctime=1599661998.314 libprelude-5.2.0/libmissing/m4/mmap-anon.m40000644000000000000000000000373313726163410020461 0ustar00rootroot00000000000000# mmap-anon.m4 serial 10 dnl Copyright (C) 2005, 2007, 2009-2018 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. # Detect how mmap can be used to create anonymous (not file-backed) memory # mappings. # - On Linux, AIX, OSF/1, Solaris, Cygwin, Interix, Haiku, both MAP_ANONYMOUS # and MAP_ANON exist and have the same value. # - On HP-UX, only MAP_ANONYMOUS exists. # - On Mac OS X, FreeBSD, NetBSD, OpenBSD, only MAP_ANON exists. # - On IRIX, neither exists, and a file descriptor opened to /dev/zero must be # used. AC_DEFUN([gl_FUNC_MMAP_ANON], [ dnl Persuade glibc to define MAP_ANONYMOUS. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. AC_CHECK_FUNC([mmap], [gl_have_mmap=yes], [gl_have_mmap=no]) # Try to allow MAP_ANONYMOUS. gl_have_mmap_anonymous=no if test $gl_have_mmap = yes; then AC_MSG_CHECKING([for MAP_ANONYMOUS]) AC_EGREP_CPP([I cannot identify this map], [ #include #ifdef MAP_ANONYMOUS I cannot identify this map #endif ], [gl_have_mmap_anonymous=yes]) if test $gl_have_mmap_anonymous != yes; then AC_EGREP_CPP([I cannot identify this map], [ #include #ifdef MAP_ANON I cannot identify this map #endif ], [AC_DEFINE([MAP_ANONYMOUS], [MAP_ANON], [Define to a substitute value for mmap()'s MAP_ANONYMOUS flag.]) gl_have_mmap_anonymous=yes]) fi AC_MSG_RESULT([$gl_have_mmap_anonymous]) if test $gl_have_mmap_anonymous = yes; then AC_DEFINE([HAVE_MAP_ANONYMOUS], [1], [Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including config.h and .]) fi fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/mode_t.m40000644000000000000000000000011013726163410021034 xustar000000000000000024 mtime=1599661832.566 24 atime=1599661832.749 24 ctime=1599661998.315 libprelude-5.2.0/libmissing/m4/mode_t.m40000644000000000000000000000234213726163410020040 0ustar00rootroot00000000000000# mode_t.m4 serial 2 dnl Copyright (C) 2009-2018 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. # For using mode_t, it's sufficient to use AC_TYPE_MODE_T and # include . # Define PROMOTED_MODE_T to the type that is the result of "default argument # promotion" (ISO C 6.5.2.2.(6)) of the type mode_t. AC_DEFUN([gl_PROMOTED_TYPE_MODE_T], [ AC_REQUIRE([AC_TYPE_MODE_T]) AC_CACHE_CHECK([for promoted mode_t type], [gl_cv_promoted_mode_t], [ dnl Assume mode_t promotes to 'int' if and only if it is smaller than 'int', dnl and to itself otherwise. This assumption is not guaranteed by the ISO C dnl standard, but we don't know of any real-world counterexamples. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];]])], [gl_cv_promoted_mode_t='int'], [gl_cv_promoted_mode_t='mode_t']) ]) AC_DEFINE_UNQUOTED([PROMOTED_MODE_T], [$gl_cv_promoted_mode_t], [Define to the type that is the result of default argument promotions of type mode_t.]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/msvc-inval.m40000644000000000000000000000011013726163410021644 xustar000000000000000024 mtime=1599661832.566 24 atime=1599661832.749 24 ctime=1599661998.317 libprelude-5.2.0/libmissing/m4/msvc-inval.m40000644000000000000000000000133413726163410020650 0ustar00rootroot00000000000000# msvc-inval.m4 serial 1 dnl Copyright (C) 2011-2018 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_MSVC_INVAL], [ AC_CHECK_FUNCS_ONCE([_set_invalid_parameter_handler]) if test $ac_cv_func__set_invalid_parameter_handler = yes; then HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 AC_DEFINE([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [1], [Define to 1 on MSVC platforms that have the "invalid parameter handler" concept.]) else HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 fi AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/msvc-nothrow.m40000644000000000000000000000011013726163410022233 xustar000000000000000024 mtime=1599661832.567 24 atime=1599661832.749 24 ctime=1599661998.319 libprelude-5.2.0/libmissing/m4/msvc-nothrow.m40000644000000000000000000000053013726163410021234 0ustar00rootroot00000000000000# msvc-nothrow.m4 serial 1 dnl Copyright (C) 2011-2018 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_MSVC_NOTHROW], [ AC_REQUIRE([gl_MSVC_INVAL]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/multiarch.m40000644000000000000000000000010713726163410021563 xustar000000000000000024 mtime=1599661832.567 24 atime=1599661832.749 23 ctime=1599661998.32 libprelude-5.2.0/libmissing/m4/multiarch.m40000644000000000000000000000367413726163410020572 0ustar00rootroot00000000000000# multiarch.m4 serial 7 dnl Copyright (C) 2008-2018 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. # Determine whether the compiler is or may be producing universal binaries. # # On Mac OS X 10.5 and later systems, the user can create libraries and # executables that work on multiple system types--known as "fat" or # "universal" binaries--by specifying multiple '-arch' options to the # compiler but only a single '-arch' option to the preprocessor. Like # this: # # ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ # CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ # CPP="gcc -E" CXXCPP="g++ -E" # # Detect this situation and set APPLE_UNIVERSAL_BUILD accordingly. AC_DEFUN_ONCE([gl_MULTIARCH], [ dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN. gl_cv_c_multiarch=no AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; ]])], [ dnl Check for potential -arch flags. It is not universal unless dnl there are at least two -arch flags with different values. arch= prev= for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do if test -n "$prev"; then case $word in i?86 | x86_64 | ppc | ppc64) if test -z "$arch" || test "$arch" = "$word"; then arch="$word" else gl_cv_c_multiarch=yes fi ;; esac prev= else if test "x$word" = "x-arch"; then prev=arch fi fi done ]) if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 else APPLE_UNIVERSAL_BUILD=0 fi AC_SUBST([APPLE_UNIVERSAL_BUILD]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/nanosleep.m40000644000000000000000000000011013726163410021551 xustar000000000000000024 mtime=1599661832.567 24 atime=1599661832.749 24 ctime=1599661998.322 libprelude-5.2.0/libmissing/m4/nanosleep.m40000644000000000000000000001200613726163410020553 0ustar00rootroot00000000000000# serial 38 dnl From Jim Meyering. dnl Check for the nanosleep function. dnl If not found, use the supplied replacement. dnl # Copyright (C) 1999-2001, 2003-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_NANOSLEEP], [ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Persuade glibc and Solaris to declare nanosleep. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_REQUIRE([gl_FUNC_SELECT]) AC_CHECK_DECLS_ONCE([alarm]) nanosleep_save_libs=$LIBS # Solaris 2.5.1 needs -lposix4 to get the nanosleep function. # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4. LIB_NANOSLEEP= AC_SUBST([LIB_NANOSLEEP]) AC_SEARCH_LIBS([nanosleep], [rt posix4], [test "$ac_cv_search_nanosleep" = "none required" || LIB_NANOSLEEP=$ac_cv_search_nanosleep]) if test "x$ac_cv_search_nanosleep" != xno; then dnl The system has a nanosleep function. AC_REQUIRE([gl_MULTIARCH]) if test $APPLE_UNIVERSAL_BUILD = 1; then # A universal build on Apple Mac OS X platforms. # The test result would be 'no (mishandles large arguments)' in 64-bit # mode but 'yes' in 32-bit mode. But we need a configuration result that # is valid in both modes. gl_cv_func_nanosleep='no (mishandles large arguments)' fi AC_CACHE_CHECK([for working nanosleep], [gl_cv_func_nanosleep], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #if HAVE_SYS_TIME_H #include #endif #include #include #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) #if HAVE_DECL_ALARM static void check_for_SIGALRM (int sig) { if (sig != SIGALRM) _exit (1); } #endif int main () { static struct timespec ts_sleep; static struct timespec ts_remaining; /* Test for major problems first. */ if (! nanosleep) return 2; ts_sleep.tv_sec = 0; ts_sleep.tv_nsec = 1; #if HAVE_DECL_ALARM { static struct sigaction act; act.sa_handler = check_for_SIGALRM; sigemptyset (&act.sa_mask); sigaction (SIGALRM, &act, NULL); alarm (1); if (nanosleep (&ts_sleep, NULL) != 0) return 3; /* Test for a minor problem: the handling of large arguments. */ ts_sleep.tv_sec = TYPE_MAXIMUM (time_t); ts_sleep.tv_nsec = 999999999; alarm (1); if (nanosleep (&ts_sleep, &ts_remaining) != -1) return 4; if (errno != EINTR) return 5; if (ts_remaining.tv_sec <= TYPE_MAXIMUM (time_t) - 10) return 6; } #else /* A simpler test for native Windows. */ if (nanosleep (&ts_sleep, &ts_remaining) < 0) return 3; #endif return 0; }]])], [gl_cv_func_nanosleep=yes], [case $? in dnl ( 4|5|6) gl_cv_func_nanosleep='no (mishandles large arguments)';; dnl ( *) gl_cv_func_nanosleep=no;; esac], [case "$host_os" in dnl (( linux*) # Guess it halfway works when the kernel is Linux. gl_cv_func_nanosleep='guessing no (mishandles large arguments)' ;; mingw*) # Guess no on native Windows. gl_cv_func_nanosleep='guessing no' ;; *) # If we don't know, assume the worst. gl_cv_func_nanosleep='guessing no' ;; esac ]) ]) case "$gl_cv_func_nanosleep" in *yes) REPLACE_NANOSLEEP=0 ;; *) REPLACE_NANOSLEEP=1 case "$gl_cv_func_nanosleep" in *"mishandles large arguments"*) AC_DEFINE([HAVE_BUG_BIG_NANOSLEEP], [1], [Define to 1 if nanosleep mishandles large arguments.]) ;; *) # The replacement uses select(). Add $LIBSOCKET to $LIB_NANOSLEEP. for ac_lib in $LIBSOCKET; do case " $LIB_NANOSLEEP " in *" $ac_lib "*) ;; *) LIB_NANOSLEEP="$LIB_NANOSLEEP $ac_lib";; esac done ;; esac ;; esac else HAVE_NANOSLEEP=0 fi LIBS=$nanosleep_save_libs ]) # Prerequisites of lib/nanosleep.c. AC_DEFUN([gl_PREREQ_NANOSLEEP], [ AC_CHECK_HEADERS_ONCE([sys/select.h]) gl_PREREQ_SIG_HANDLER_H ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/netdb_h.m40000644000000000000000000000011013726163410021170 xustar000000000000000024 mtime=1599661832.567 24 atime=1599661832.749 24 ctime=1599661998.324 libprelude-5.2.0/libmissing/m4/netdb_h.m40000644000000000000000000000304113726163410020171 0ustar00rootroot00000000000000# netdb_h.m4 serial 11 dnl Copyright (C) 2008-2018 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_HEADER_NETDB], [ AC_REQUIRE([gl_NETDB_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([netdb.h]) if test $ac_cv_header_netdb_h = yes; then HAVE_NETDB_H=1 else HAVE_NETDB_H=0 fi AC_SUBST([HAVE_NETDB_H]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [getaddrinfo freeaddrinfo gai_strerror getnameinfo]) ]) AC_DEFUN([gl_NETDB_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_NETDB_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_NETDB_H_DEFAULTS], [ GNULIB_GETADDRINFO=0; AC_SUBST([GNULIB_GETADDRINFO]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_STRUCT_ADDRINFO=1; AC_SUBST([HAVE_STRUCT_ADDRINFO]) HAVE_DECL_FREEADDRINFO=1; AC_SUBST([HAVE_DECL_FREEADDRINFO]) HAVE_DECL_GAI_STRERROR=1; AC_SUBST([HAVE_DECL_GAI_STRERROR]) HAVE_DECL_GETADDRINFO=1; AC_SUBST([HAVE_DECL_GETADDRINFO]) HAVE_DECL_GETNAMEINFO=1; AC_SUBST([HAVE_DECL_GETNAMEINFO]) REPLACE_GAI_STRERROR=0; AC_SUBST([REPLACE_GAI_STRERROR]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/netinet_in_h.m40000644000000000000000000000011013726163410022230 xustar000000000000000024 mtime=1599661832.567 24 atime=1599661832.749 24 ctime=1599661998.325 libprelude-5.2.0/libmissing/m4/netinet_in_h.m40000644000000000000000000000207513726163410021237 0ustar00rootroot00000000000000# netinet_in_h.m4 serial 5 dnl Copyright (C) 2006-2018 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_HEADER_NETINET_IN], [ AC_CACHE_CHECK([whether is self-contained], [gl_cv_header_netinet_in_h_selfcontained], [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[]])], [gl_cv_header_netinet_in_h_selfcontained=yes], [gl_cv_header_netinet_in_h_selfcontained=no]) ]) if test $gl_cv_header_netinet_in_h_selfcontained = yes; then NETINET_IN_H='' else NETINET_IN_H='netinet/in.h' AC_CHECK_HEADERS([netinet/in.h]) gl_CHECK_NEXT_HEADERS([netinet/in.h]) if test $ac_cv_header_netinet_in_h = yes; then HAVE_NETINET_IN_H=1 else HAVE_NETINET_IN_H=0 fi AC_SUBST([HAVE_NETINET_IN_H]) fi AC_SUBST([NETINET_IN_H]) AM_CONDITIONAL([GL_GENERATE_NETINET_IN_H], [test -n "$NETINET_IN_H"]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/nl_langinfo.m40000644000000000000000000000011013726163410022053 xustar000000000000000024 mtime=1599661832.567 24 atime=1599661832.749 24 ctime=1599661998.327 libprelude-5.2.0/libmissing/m4/nl_langinfo.m40000644000000000000000000000366613726163410021071 0ustar00rootroot00000000000000# nl_langinfo.m4 serial 6 dnl Copyright (C) 2009-2018 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_FUNC_NL_LANGINFO], [ AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) AC_REQUIRE([gl_LANGINFO_H]) AC_CHECK_FUNCS_ONCE([nl_langinfo]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles if test $ac_cv_func_nl_langinfo = yes; then # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken. AC_CACHE_CHECK([whether YESEXPR works], [gl_cv_func_nl_langinfo_yesexpr_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[return !*nl_langinfo(YESEXPR); ]])], [gl_cv_func_nl_langinfo_yesexpr_works=yes], [gl_cv_func_nl_langinfo_yesexpr_works=no], [ case "$host_os" in # Guess no on irix systems. irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";; # Guess yes elsewhere. *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";; esac ]) ]) case $gl_cv_func_nl_langinfo_yesexpr_works in *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;; *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;; esac AC_DEFINE_UNQUOTED([FUNC_NL_LANGINFO_YESEXPR_WORKS], [$FUNC_NL_LANGINFO_YESEXPR_WORKS], [Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string.]) if test $HAVE_LANGINFO_CODESET = 1 \ && test $HAVE_LANGINFO_T_FMT_AMPM = 1 \ && test $HAVE_LANGINFO_ALTMON = 1 \ && test $HAVE_LANGINFO_ERA = 1 \ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then : else REPLACE_NL_LANGINFO=1 AC_DEFINE([REPLACE_NL_LANGINFO], [1], [Define if nl_langinfo exists but is overridden by gnulib.]) fi else HAVE_NL_LANGINFO=0 fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/off_t.m40000644000000000000000000000011013726163410020662 xustar000000000000000024 mtime=1599661832.568 24 atime=1599661832.749 24 ctime=1599661998.329 libprelude-5.2.0/libmissing/m4/off_t.m40000644000000000000000000000100613726163410017662 0ustar00rootroot00000000000000# off_t.m4 serial 1 dnl Copyright (C) 2012-2018 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. dnl Check whether to override the 'off_t' type. dnl Set WINDOWS_64_BIT_OFF_T. AC_DEFUN([gl_TYPE_OFF_T], [ m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([gl_LARGEFILE]) ], [ WINDOWS_64_BIT_OFF_T=0 ]) AC_SUBST([WINDOWS_64_BIT_OFF_T]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/onceonly.m40000644000000000000000000000010713726163410021421 xustar000000000000000024 mtime=1599661832.568 24 atime=1599661832.749 23 ctime=1599661998.33 libprelude-5.2.0/libmissing/m4/onceonly.m40000644000000000000000000001063013726163410020416 0ustar00rootroot00000000000000# onceonly.m4 serial 9 dnl Copyright (C) 2002-2003, 2005-2006, 2008-2018 Free Software Foundation, dnl Inc. dnl dnl This file is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 3 of the License, or dnl (at your option) any later version. dnl dnl This file is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this file. If not, see . dnl dnl As a special exception to the GNU General Public License, dnl this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl This file defines some "once only" variants of standard autoconf macros. dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS dnl AC_REQUIRE([AC_FUNC_STRCOLL]) like AC_FUNC_STRCOLL dnl The advantage is that the check for each of the headers/functions/decls dnl will be put only once into the 'configure' file. It keeps the size of dnl the 'configure' file down, and avoids redundant output when 'configure' dnl is run. dnl The drawback is that the checks cannot be conditionalized. If you write dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to dnl empty, and the check will be inserted before the body of the AC_DEFUNed dnl function. dnl The original code implemented AC_CHECK_HEADERS_ONCE and AC_CHECK_FUNCS_ONCE dnl in terms of AC_DEFUN and AC_REQUIRE. This implementation uses diversions to dnl named sections DEFAULTS and INIT_PREPARE in order to check all requested dnl headers at once, thus reducing the size of 'configure'. It is known to work dnl with autoconf 2.57..2.62 at least . The size reduction is ca. 9%. dnl Autoconf version 2.59 plus gnulib is required; this file is not needed dnl with Autoconf 2.60 or greater. But note that autoconf's implementation of dnl AC_CHECK_DECLS_ONCE expects a comma-separated list of symbols as first dnl argument! AC_PREREQ([2.59]) # AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of # AC_CHECK_HEADERS(HEADER1 HEADER2 ...). AC_DEFUN([AC_CHECK_HEADERS_ONCE], [ : m4_foreach_w([gl_HEADER_NAME], [$1], [ AC_DEFUN([gl_CHECK_HEADER_]m4_quote(m4_translit(gl_HEADER_NAME, [./-], [___])), [ m4_divert_text([INIT_PREPARE], [gl_header_list="$gl_header_list gl_HEADER_NAME"]) gl_HEADERS_EXPANSION AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_HEADER_NAME])), [Define to 1 if you have the <]m4_defn([gl_HEADER_NAME])[> header file.]) ]) AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(m4_translit(gl_HEADER_NAME, [./-], [___]))) ]) ]) m4_define([gl_HEADERS_EXPANSION], [ m4_divert_text([DEFAULTS], [gl_header_list=]) AC_CHECK_HEADERS([$gl_header_list]) m4_define([gl_HEADERS_EXPANSION], []) ]) # AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of # AC_CHECK_FUNCS(FUNC1 FUNC2 ...). AC_DEFUN([AC_CHECK_FUNCS_ONCE], [ : m4_foreach_w([gl_FUNC_NAME], [$1], [ AC_DEFUN([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]), [ m4_divert_text([INIT_PREPARE], [gl_func_list="$gl_func_list gl_FUNC_NAME"]) gl_FUNCS_EXPANSION AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_FUNC_NAME])), [Define to 1 if you have the ']m4_defn([gl_FUNC_NAME])[' function.]) ]) AC_REQUIRE([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME])) ]) ]) m4_define([gl_FUNCS_EXPANSION], [ m4_divert_text([DEFAULTS], [gl_func_list=]) AC_CHECK_FUNCS([$gl_func_list]) m4_define([gl_FUNCS_EXPANSION], []) ]) # AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of # AC_CHECK_DECLS(DECL1, DECL2, ...). AC_DEFUN([AC_CHECK_DECLS_ONCE], [ : m4_foreach_w([gl_DECL_NAME], [$1], [ AC_DEFUN([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]), [ AC_CHECK_DECLS(m4_defn([gl_DECL_NAME])) ]) AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME])) ]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/open-cloexec.m40000644000000000000000000000011013726163410022146 xustar000000000000000024 mtime=1599661832.568 24 atime=1599661832.749 24 ctime=1599661998.332 libprelude-5.2.0/libmissing/m4/open-cloexec.m40000644000000000000000000000132313726163410021150 0ustar00rootroot00000000000000# Test whether O_CLOEXEC is defined. dnl Copyright 2017-2018 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_PREPROC_O_CLOEXEC], [ AC_CACHE_CHECK([for O_CLOEXEC], [gl_cv_macro_O_CLOEXEC], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include #ifndef O_CLOEXEC choke me; #endif ]], [[return O_CLOEXEC;]])], [gl_cv_macro_O_CLOEXEC=yes], [gl_cv_macro_O_CLOEXEC=no])]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/open.m40000644000000000000000000000011013726163410020526 xustar000000000000000024 mtime=1599661832.568 24 atime=1599661832.749 24 ctime=1599661998.334 libprelude-5.2.0/libmissing/m4/open.m40000644000000000000000000000523713726163410017540 0ustar00rootroot00000000000000# open.m4 serial 15 dnl Copyright (C) 2007-2018 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_FUNC_OPEN], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_PREPROC_O_CLOEXEC]) case "$host_os" in mingw* | pw*) REPLACE_OPEN=1 ;; *) dnl open("foo/") should not create a file when the file name has a dnl trailing slash. FreeBSD only has the problem on symlinks. AC_CHECK_FUNCS_ONCE([lstat]) if test "$gl_cv_macro_O_CLOEXEC" != yes; then REPLACE_OPEN=1 fi AC_CACHE_CHECK([whether open recognizes a trailing slash], [gl_cv_func_open_slash], [# Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then touch conftest.tmp ln -s conftest.tmp conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #if HAVE_UNISTD_H # include #endif int main () { int result = 0; #if HAVE_LSTAT if (open ("conftest.lnk/", O_RDONLY) != -1) result |= 1; #endif if (open ("conftest.sl/", O_CREAT, 0600) >= 0) result |= 2; return result; }]])], [gl_cv_func_open_slash=yes], [gl_cv_func_open_slash=no], [ changequote(,)dnl case "$host_os" in freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; esac changequote([,])dnl ]) rm -f conftest.sl conftest.tmp conftest.lnk ]) case "$gl_cv_func_open_slash" in *no) AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1], [Define to 1 if open() fails to recognize a trailing slash.]) REPLACE_OPEN=1 ;; esac ;; esac dnl Replace open() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ if test $REPLACE_OPEN = 0; then gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_OPEN=1 fi fi ]) dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag. m4_ifdef([gl_NONBLOCKING_IO], [ if test $REPLACE_OPEN = 0; then gl_NONBLOCKING_IO if test $gl_cv_have_open_O_NONBLOCK != yes; then REPLACE_OPEN=1 fi fi ]) ]) # Prerequisites of lib/open.c. AC_DEFUN([gl_PREREQ_OPEN], [ AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T]) : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/pathmax.m40000644000000000000000000000011013726163410021227 xustar000000000000000024 mtime=1599661832.568 24 atime=1599661832.749 24 ctime=1599661998.335 libprelude-5.2.0/libmissing/m4/pathmax.m40000644000000000000000000000215513726163410020235 0ustar00rootroot00000000000000# pathmax.m4 serial 11 dnl Copyright (C) 2002-2003, 2005-2006, 2009-2018 Free Software Foundation, dnl 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_PATHMAX], [ dnl Prerequisites of lib/pathmax.h. AC_CHECK_HEADERS_ONCE([sys/param.h]) ]) # Expands to a piece of C program that defines PATH_MAX in the same way as # "pathmax.h" will do. AC_DEFUN([gl_PATHMAX_SNIPPET], [[ /* Arrange to define PATH_MAX, like "pathmax.h" does. */ #if HAVE_UNISTD_H # include #endif #include #if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include #endif #if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN #endif #ifdef __hpux # undef PATH_MAX # define PATH_MAX 1024 #endif #if defined _WIN32 && ! defined __CYGWIN__ # undef PATH_MAX # define PATH_MAX 260 #endif ]]) # Prerequisites of gl_PATHMAX_SNIPPET. AC_DEFUN([gl_PATHMAX_SNIPPET_PREREQ], [ AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/perror.m40000644000000000000000000000011013726163410021076 xustar000000000000000024 mtime=1599661832.568 24 atime=1599661832.749 24 ctime=1599661998.337 libprelude-5.2.0/libmissing/m4/perror.m40000644000000000000000000000476613726163410020116 0ustar00rootroot00000000000000# perror.m4 serial 7 dnl Copyright (C) 2008-2018 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_FUNC_PERROR], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_R]) AC_REQUIRE([gl_FUNC_STRERROR_0]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl We intentionally do not check for the broader REPLACE_STRERROR_R, dnl since on glibc systems, strerror_r is replaced only for signature dnl issues, and perror is just fine. Rather, we only want to dnl replace perror if strerror_r was replaced for a content fix. if test "$ERRNO_H:$REPLACE_STRERROR_0" != :0; then dnl The system's perror() cannot know about the new errno values we add dnl to , or any fix for strerror(0). Replace it. REPLACE_PERROR=1 fi case ${gl_cv_func_strerror_r_works-unset} in unset|*yes) AC_CACHE_CHECK([whether perror matches strerror], [gl_cv_func_perror_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include #include ]], [[char *str = strerror (-1); if (!getenv("CONFTEST_OUTPUT")) return 0; if (!str) str = ""; puts (str); errno = -1; perror (""); return 0; ]])], [if CONFTEST_OUTPUT=1 ./conftest$EXEEXT >conftest.txt1 2>conftest.txt2 \ && cmp conftest.txt1 conftest.txt2 >/dev/null; then gl_cv_func_perror_works=yes else gl_cv_func_perror_works=no fi rm -rf conftest.txt1 conftest.txt2], [gl_cv_func_perror_works=no], [case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_func_perror_works="guessing yes" ;; # Otherwise guess no. *) gl_cv_func_perror_works="guessing no" ;; esac ]) ]) case "$gl_cv_func_perror_works" in *yes) ;; *) REPLACE_PERROR=1 ;; esac ;; *) dnl The system's perror() probably inherits the bugs in the dnl system's strerror_r(). Replace it. REPLACE_PERROR=1 ;; esac ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/pipe.m40000644000000000000000000000011013726163410020522 xustar000000000000000024 mtime=1599661832.569 24 atime=1599661832.749 24 ctime=1599661998.339 libprelude-5.2.0/libmissing/m4/pipe.m40000644000000000000000000000066013726163410017527 0ustar00rootroot00000000000000# pipe.m4 serial 2 dnl Copyright (C) 2010-2018 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_FUNC_PIPE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([pipe]) if test $ac_cv_func_pipe != yes; then HAVE_PIPE=0 fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/poll.m40000644000000000000000000000010713726163410020541 xustar000000000000000024 mtime=1599661832.569 24 atime=1599661832.749 23 ctime=1599661998.34 libprelude-5.2.0/libmissing/m4/poll.m40000644000000000000000000000631413726163410017542 0ustar00rootroot00000000000000# poll.m4 serial 18 dnl Copyright (c) 2003, 2005-2007, 2009-2018 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_FUNC_POLL], [ AC_REQUIRE([gl_POLL_H]) AC_REQUIRE([gl_SOCKETS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles if test $ac_cv_header_poll_h = no; then ac_cv_func_poll=no gl_cv_func_poll=no else AC_CHECK_FUNC([poll], [# Check whether poll() works on special files (like /dev/null) and # and ttys (like /dev/tty). On Mac OS X 10.4.0 and AIX 5.3, it doesn't. AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include #include int main() { int result = 0; struct pollfd ufd; /* Try /dev/null for reading. */ ufd.fd = open ("/dev/null", O_RDONLY); /* If /dev/null does not exist, it's not Mac OS X nor AIX. */ if (ufd.fd >= 0) { ufd.events = POLLIN; ufd.revents = 0; if (!(poll (&ufd, 1, 0) == 1 && ufd.revents == POLLIN)) result |= 1; } /* Try /dev/null for writing. */ ufd.fd = open ("/dev/null", O_WRONLY); /* If /dev/null does not exist, it's not Mac OS X nor AIX. */ if (ufd.fd >= 0) { ufd.events = POLLOUT; ufd.revents = 0; if (!(poll (&ufd, 1, 0) == 1 && ufd.revents == POLLOUT)) result |= 2; } /* Trying /dev/tty may be too environment dependent. */ return result; }]])], [gl_cv_func_poll=yes], [gl_cv_func_poll=no], [# When cross-compiling, assume that poll() works everywhere except on # Mac OS X or AIX, regardless of its version. AC_EGREP_CPP([MacOSX], [ #if (defined(__APPLE__) && defined(__MACH__)) || defined(_AIX) This is MacOSX or AIX #endif ], [gl_cv_func_poll=no], [gl_cv_func_poll=yes])])]) fi if test $gl_cv_func_poll != yes; then AC_CHECK_FUNC([poll], [ac_cv_func_poll=yes], [ac_cv_func_poll=no]) if test $ac_cv_func_poll = no; then HAVE_POLL=0 else REPLACE_POLL=1 fi fi if test $HAVE_POLL = 0 || test $REPLACE_POLL = 1; then : else AC_DEFINE([HAVE_POLL], [1], [Define to 1 if you have the 'poll' function and it works.]) fi dnl Determine the needed libraries. LIB_POLL="$LIBSOCKET" if test $HAVE_POLL = 0 || test $REPLACE_POLL = 1; then case "$host_os" in mingw*) dnl On the MSVC platform, the function MsgWaitForMultipleObjects dnl (used in lib/poll.c) requires linking with -luser32. On mingw, dnl it is implicit. AC_LINK_IFELSE( [AC_LANG_SOURCE([[ #define WIN32_LEAN_AND_MEAN #include int main () { MsgWaitForMultipleObjects (0, NULL, 0, 0, 0); return 0; }]])], [], [LIB_POLL="$LIB_POLL -luser32"]) ;; esac fi AC_SUBST([LIB_POLL]) ]) # Prerequisites of lib/poll.c. AC_DEFUN([gl_PREREQ_POLL], [ AC_CHECK_HEADERS_ONCE([sys/ioctl.h sys/filio.h]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/poll_h.m40000644000000000000000000000011013726163410021042 xustar000000000000000024 mtime=1599661832.569 24 atime=1599661832.749 24 ctime=1599661998.342 libprelude-5.2.0/libmissing/m4/poll_h.m40000644000000000000000000000273013726163410020047 0ustar00rootroot00000000000000# poll_h.m4 serial 2 dnl Copyright (C) 2010-2018 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. dnl Written by Bruno Haible. AC_DEFUN([gl_POLL_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_POLL_H_DEFAULTS]) AC_CHECK_HEADERS_ONCE([poll.h]) if test $ac_cv_header_poll_h = yes; then HAVE_POLL_H=1 else HAVE_POLL_H=0 fi AC_SUBST([HAVE_POLL_H]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([poll.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [poll]) ]) AC_DEFUN([gl_POLL_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_POLL_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_POLL_H_DEFAULTS], [ GNULIB_POLL=0; AC_SUBST([GNULIB_POLL]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_POLL=1; AC_SUBST([HAVE_POLL]) REPLACE_POLL=0; AC_SUBST([REPLACE_POLL]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/printf.m40000644000000000000000000000011013726163410021067 xustar000000000000000024 mtime=1599661832.569 24 atime=1599661832.749 24 ctime=1599661998.344 libprelude-5.2.0/libmissing/m4/printf.m40000644000000000000000000017465413726163410020113 0ustar00rootroot00000000000000# printf.m4 serial 58 dnl Copyright (C) 2003, 2007-2018 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. dnl Test whether the *printf family of functions supports the 'j', 'z', 't', dnl 'L' size specifiers. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_sizes_c99. AC_DEFUN([gl_PRINTF_SIZES_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports size specifiers as in C99], [gl_cv_func_printf_sizes_c99], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #include #if HAVE_STDINT_H_WITH_UINTMAX # include #endif #if HAVE_INTTYPES_H_WITH_UINTMAX # include #endif static char buf[100]; int main () { int result = 0; #if HAVE_STDINT_H_WITH_UINTMAX || HAVE_INTTYPES_H_WITH_UINTMAX buf[0] = '\0'; if (sprintf (buf, "%ju %d", (uintmax_t) 12345671, 33, 44, 55) < 0 || strcmp (buf, "12345671 33") != 0) result |= 1; #else result |= 1; #endif buf[0] = '\0'; if (sprintf (buf, "%zu %d", (size_t) 12345672, 33, 44, 55) < 0 || strcmp (buf, "12345672 33") != 0) result |= 2; buf[0] = '\0'; if (sprintf (buf, "%tu %d", (ptrdiff_t) 12345673, 33, 44, 55) < 0 || strcmp (buf, "12345673 33") != 0) result |= 4; buf[0] = '\0'; if (sprintf (buf, "%Lg %d", (long double) 1.5, 33, 44, 55) < 0 || strcmp (buf, "1.5 33") != 0) result |= 8; return result; }]])], [gl_cv_func_printf_sizes_c99=yes], [gl_cv_func_printf_sizes_c99=no], [ case "$host_os" in changequote(,)dnl # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4].*) gl_cv_func_printf_sizes_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_sizes_c99="guessing no";; darwin*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_printf_sizes_c99="guessing no";; openbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; solaris*) gl_cv_func_printf_sizes_c99="guessing no";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_printf_sizes_c99="guessing no";; netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";; changequote([,])dnl # Guess yes on MSVC, no on mingw. mingw*) AC_EGREP_CPP([Known], [ #ifdef _MSC_VER Known #endif ], [gl_cv_func_printf_sizes_c99="guessing yes"], [gl_cv_func_printf_sizes_c99="guessing no"]) ;; # If we don't know, assume the worst. *) gl_cv_func_printf_sizes_c99="guessing no";; esac ]) ]) ]) dnl Test whether the *printf family of functions supports 'long double' dnl arguments together with the 'L' size specifier. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_long_double. AC_DEFUN([gl_PRINTF_LONG_DOUBLE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports 'long double' arguments], [gl_cv_func_printf_long_double], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[10000]; int main () { int result = 0; buf[0] = '\0'; if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0 || strcmp (buf, "1.750000 33") != 0) result |= 1; buf[0] = '\0'; if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0 || strcmp (buf, "1.750000e+00 33") != 0) result |= 2; buf[0] = '\0'; if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0 || strcmp (buf, "1.75 33") != 0) result |= 4; return result; }]])], [gl_cv_func_printf_long_double=yes], [gl_cv_func_printf_long_double=no], [case "$host_os" in beos*) gl_cv_func_printf_long_double="guessing no";; # Guess yes on MSVC, no on mingw. mingw*) AC_EGREP_CPP([Known], [ #ifdef _MSC_VER Known #endif ], [gl_cv_func_printf_long_double="guessing yes"], [gl_cv_func_printf_long_double="guessing no"]) ;; *) gl_cv_func_printf_long_double="guessing yes";; esac ]) ]) ]) dnl Test whether the *printf family of functions supports infinite and NaN dnl 'double' arguments and negative zero arguments in the %f, %e, %g dnl directives. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_infinite. AC_DEFUN([gl_PRINTF_INFINITE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports infinite 'double' arguments], [gl_cv_func_printf_infinite], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static int strisnan (const char *string, size_t start_index, size_t end_index) { if (start_index < end_index) { if (string[start_index] == '-') start_index++; if (start_index + 3 <= end_index && memcmp (string + start_index, "nan", 3) == 0) { start_index += 3; if (start_index == end_index || (string[start_index] == '(' && string[end_index - 1] == ')')) return 1; } } return 0; } static int have_minus_zero () { static double plus_zero = 0.0; double minus_zero = - plus_zero; return memcmp (&plus_zero, &minus_zero, sizeof (double)) != 0; } static char buf[10000]; static double zero = 0.0; int main () { int result = 0; if (sprintf (buf, "%f", 1.0 / zero) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%f", -1.0 / zero) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%f", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%e", 1.0 / zero) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 4; if (sprintf (buf, "%e", -1.0 / zero) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 4; if (sprintf (buf, "%e", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 8; if (sprintf (buf, "%g", 1.0 / zero) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 16; if (sprintf (buf, "%g", -1.0 / zero) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 16; if (sprintf (buf, "%g", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 32; /* This test fails on HP-UX 10.20. */ if (have_minus_zero ()) if (sprintf (buf, "%g", - zero) < 0 || strcmp (buf, "-0") != 0) result |= 64; return result; }]])], [gl_cv_func_printf_infinite=yes], [gl_cv_func_printf_infinite=no], [ case "$host_os" in changequote(,)dnl # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5].*) gl_cv_func_printf_infinite="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_infinite="guessing no";; darwin*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite="guessing no";; hpux*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_printf_infinite="guessing no";; netbsd*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_infinite="guessing yes";; changequote([,])dnl # Guess yes on MSVC, no on mingw. mingw*) AC_EGREP_CPP([Known], [ #ifdef _MSC_VER Known #endif ], [gl_cv_func_printf_infinite="guessing yes"], [gl_cv_func_printf_infinite="guessing no"]) ;; # If we don't know, assume the worst. *) gl_cv_func_printf_infinite="guessing no";; esac ]) ]) ]) dnl Test whether the *printf family of functions supports infinite and NaN dnl 'long double' arguments in the %f, %e, %g directives. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_infinite_long_double. AC_DEFUN([gl_PRINTF_INFINITE_LONG_DOUBLE], [ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_BIGENDIAN]) AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl The user can set or unset the variable gl_printf_safe to indicate dnl that he wishes a safe handling of non-IEEE-754 'long double' values. if test -n "$gl_printf_safe"; then AC_DEFINE([CHECK_PRINTF_SAFE], [1], [Define if you wish *printf() functions that have a safe handling of non-IEEE-754 'long double' values.]) fi case "$gl_cv_func_printf_long_double" in *yes) AC_CACHE_CHECK([whether printf supports infinite 'long double' arguments], [gl_cv_func_printf_infinite_long_double], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ ]GL_NOCRASH[ #include #include #include static int strisnan (const char *string, size_t start_index, size_t end_index) { if (start_index < end_index) { if (string[start_index] == '-') start_index++; if (start_index + 3 <= end_index && memcmp (string + start_index, "nan", 3) == 0) { start_index += 3; if (start_index == end_index || (string[start_index] == '(' && string[end_index - 1] == ')')) return 1; } } return 0; } static char buf[10000]; static long double zeroL = 0.0L; int main () { int result = 0; nocrash_init(); if (sprintf (buf, "%Lf", 1.0L / zeroL) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%Lf", -1.0L / zeroL) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%Lf", zeroL / zeroL) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 1; if (sprintf (buf, "%Le", 1.0L / zeroL) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%Le", -1.0L / zeroL) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%Le", zeroL / zeroL) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 1; if (sprintf (buf, "%Lg", 1.0L / zeroL) < 0 || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0)) result |= 1; if (sprintf (buf, "%Lg", -1.0L / zeroL) < 0 || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0)) result |= 1; if (sprintf (buf, "%Lg", zeroL / zeroL) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 1; #if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE /* Representation of an 80-bit 'long double' as an initializer for a sequence of 'unsigned int' words. */ # ifdef WORDS_BIGENDIAN # define LDBL80_WORDS(exponent,manthi,mantlo) \ { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \ ((unsigned int) (manthi) << 16) | ((unsigned int) (mantlo) >> 16), \ (unsigned int) (mantlo) << 16 \ } # else # define LDBL80_WORDS(exponent,manthi,mantlo) \ { mantlo, manthi, exponent } # endif { /* Quiet NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; } { /* Signalling NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Le", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; if (sprintf (buf, "%Lg", x.value) < 0 || !strisnan (buf, 0, strlen (buf))) result |= 2; } { /* Pseudo-NaN. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) <= 0) result |= 4; if (sprintf (buf, "%Le", x.value) <= 0) result |= 4; if (sprintf (buf, "%Lg", x.value) <= 0) result |= 4; } { /* Pseudo-Infinity. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) <= 0) result |= 8; if (sprintf (buf, "%Le", x.value) <= 0) result |= 8; if (sprintf (buf, "%Lg", x.value) <= 0) result |= 8; } { /* Pseudo-Zero. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) <= 0) result |= 16; if (sprintf (buf, "%Le", x.value) <= 0) result |= 16; if (sprintf (buf, "%Lg", x.value) <= 0) result |= 16; } { /* Unnormalized number. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) <= 0) result |= 32; if (sprintf (buf, "%Le", x.value) <= 0) result |= 32; if (sprintf (buf, "%Lg", x.value) <= 0) result |= 32; } { /* Pseudo-Denormal. */ static union { unsigned int word[4]; long double value; } x = { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) }; if (sprintf (buf, "%Lf", x.value) <= 0) result |= 64; if (sprintf (buf, "%Le", x.value) <= 0) result |= 64; if (sprintf (buf, "%Lg", x.value) <= 0) result |= 64; } #endif return result; }]])], [gl_cv_func_printf_infinite_long_double=yes], [gl_cv_func_printf_infinite_long_double=no], [case "$host_cpu" in # Guess no on ia64, x86_64, i386. ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";; *) case "$host_os" in changequote(,)dnl # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";; hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";; changequote([,])dnl # Guess yes on MSVC, no on mingw. mingw*) AC_EGREP_CPP([Known], [ #ifdef _MSC_VER Known #endif ], [gl_cv_func_printf_infinite_long_double="guessing yes"], [gl_cv_func_printf_infinite_long_double="guessing no"]) ;; # If we don't know, assume the worst. *) gl_cv_func_printf_infinite_long_double="guessing no";; esac ;; esac ]) ]) ;; *) gl_cv_func_printf_infinite_long_double="irrelevant" ;; esac ]) dnl Test whether the *printf family of functions supports the 'a' and 'A' dnl conversion specifier for hexadecimal output of floating-point numbers. dnl (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_directive_a. AC_DEFUN([gl_PRINTF_DIRECTIVE_A], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'a' and 'A' directives], [gl_cv_func_printf_directive_a], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[100]; static double zero = 0.0; int main () { int result = 0; if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0 || (strcmp (buf, "0x1.922p+1 33") != 0 && strcmp (buf, "0x3.244p+0 33") != 0 && strcmp (buf, "0x6.488p-1 33") != 0 && strcmp (buf, "0xc.91p-2 33") != 0)) result |= 1; if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0 || (strcmp (buf, "-0X1.922P+1 33") != 0 && strcmp (buf, "-0X3.244P+0 33") != 0 && strcmp (buf, "-0X6.488P-1 33") != 0 && strcmp (buf, "-0XC.91P-2 33") != 0)) result |= 2; /* This catches a FreeBSD 6.1 bug: it doesn't round. */ if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0 || (strcmp (buf, "0x1.83p+0 33") != 0 && strcmp (buf, "0x3.05p-1 33") != 0 && strcmp (buf, "0x6.0ap-2 33") != 0 && strcmp (buf, "0xc.14p-3 33") != 0)) result |= 4; /* This catches a Mac OS X 10.12.4 (Darwin 16.5) bug: it doesn't round. */ if (sprintf (buf, "%.0a %d", 1.51, 33, 44, 55) < 0 || (strcmp (buf, "0x2p+0 33") != 0 && strcmp (buf, "0x3p-1 33") != 0 && strcmp (buf, "0x6p-2 33") != 0 && strcmp (buf, "0xcp-3 33") != 0)) result |= 4; /* This catches a FreeBSD 6.1 bug. See */ if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0 || buf[0] == '0') result |= 8; /* This catches a Mac OS X 10.3.9 (Darwin 7.9) bug. */ if (sprintf (buf, "%.1a", 1.999) < 0 || (strcmp (buf, "0x1.0p+1") != 0 && strcmp (buf, "0x2.0p+0") != 0 && strcmp (buf, "0x4.0p-1") != 0 && strcmp (buf, "0x8.0p-2") != 0)) result |= 16; /* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a glibc 2.4 bug . */ if (sprintf (buf, "%.1La", 1.999L) < 0 || (strcmp (buf, "0x1.0p+1") != 0 && strcmp (buf, "0x2.0p+0") != 0 && strcmp (buf, "0x4.0p-1") != 0 && strcmp (buf, "0x8.0p-2") != 0)) result |= 32; return result; }]])], [gl_cv_func_printf_directive_a=yes], [gl_cv_func_printf_directive_a=no], [ case "$host_os" in # Guess yes on glibc >= 2.5 systems. *-gnu* | gnu*) AC_EGREP_CPP([BZ2908], [ #include #ifdef __GNU_LIBRARY__ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)) && !defined __UCLIBC__ BZ2908 #endif #endif ], [gl_cv_func_printf_directive_a="guessing yes"], [gl_cv_func_printf_directive_a="guessing no"]) ;; # Guess no on native Windows. mingw*) gl_cv_func_printf_directive_a="guessing no";; # If we don't know, assume the worst. *) gl_cv_func_printf_directive_a="guessing no";; esac ]) ]) ]) dnl Test whether the *printf family of functions supports the %F format dnl directive. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_directive_f. AC_DEFUN([gl_PRINTF_DIRECTIVE_F], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'F' directive], [gl_cv_func_printf_directive_f], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[100]; static double zero = 0.0; int main () { int result = 0; if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0 || strcmp (buf, "1234567.000000 33") != 0) result |= 1; if (sprintf (buf, "%F", 1.0 / zero) < 0 || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0)) result |= 2; /* This catches a Cygwin 1.5.x bug. */ if (sprintf (buf, "%.F", 1234.0) < 0 || strcmp (buf, "1234") != 0) result |= 4; return result; }]])], [gl_cv_func_printf_directive_f=yes], [gl_cv_func_printf_directive_f=no], [ case "$host_os" in changequote(,)dnl # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_printf_directive_f="guessing no";; darwin*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_directive_f="guessing yes";; solaris*) gl_cv_func_printf_directive_f="guessing no";; changequote([,])dnl # Guess yes on MSVC, no on mingw. mingw*) AC_EGREP_CPP([Known], [ #ifdef _MSC_VER Known #endif ], [gl_cv_func_printf_directive_f="guessing yes"], [gl_cv_func_printf_directive_f="guessing no"]) ;; # If we don't know, assume the worst. *) gl_cv_func_printf_directive_f="guessing no";; esac ]) ]) ]) dnl Test whether the *printf family of functions supports the %n format dnl directive. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_directive_n. AC_DEFUN([gl_PRINTF_DIRECTIVE_N], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'n' directive], [gl_cv_func_printf_directive_n], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #ifdef _MSC_VER /* See page about "Parameter Validation" on msdn.microsoft.com. */ static void cdecl invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { exit (1); } #endif static char fmtstring[10]; static char buf[100]; int main () { int count = -1; #ifdef _MSC_VER _set_invalid_parameter_handler (invalid_parameter_handler); #endif /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2) support %n in format strings in read-only memory but not in writable memory. */ strcpy (fmtstring, "%d %n"); if (sprintf (buf, fmtstring, 123, &count, 33, 44, 55) < 0 || strcmp (buf, "123 ") != 0 || count != 4) return 1; return 0; }]])], [gl_cv_func_printf_directive_n=yes], [gl_cv_func_printf_directive_n=no], [case "$host_os" in # Guess no on native Windows. mingw*) gl_cv_func_printf_directive_n="guessing no";; *) gl_cv_func_printf_directive_n="guessing yes";; esac ]) ]) ]) dnl Test whether the *printf family of functions supports the %ls format dnl directive and in particular, when a precision is specified, whether dnl the functions stop converting the wide string argument when the number dnl of bytes that have been produced by this conversion equals or exceeds dnl the precision. dnl Result is gl_cv_func_printf_directive_ls. AC_DEFUN([gl_PRINTF_DIRECTIVE_LS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the 'ls' directive], [gl_cv_func_printf_directive_ls], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #include int main () { int result = 0; char buf[100]; /* Test whether %ls works at all. This test fails on OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Haiku, but not on Cygwin 1.5. */ { static const wchar_t wstring[] = { 'a', 'b', 'c', 0 }; buf[0] = '\0'; if (sprintf (buf, "%ls", wstring) < 0 || strcmp (buf, "abc") != 0) result |= 1; } /* This test fails on IRIX 6.5, Solaris 2.6, Cygwin 1.5, Haiku (with an assertion failure inside libc), but not on OpenBSD 4.0. */ { static const wchar_t wstring[] = { 'a', 0 }; buf[0] = '\0'; if (sprintf (buf, "%ls", wstring) < 0 || strcmp (buf, "a") != 0) result |= 2; } /* Test whether precisions in %ls are supported as specified in ISO C 99 section 7.19.6.1: "If a precision is specified, no more than that many bytes are written (including shift sequences, if any), and the array shall contain a null wide character if, to equal the multibyte character sequence length given by the precision, the function would need to access a wide character one past the end of the array." This test fails on Solaris 10. */ { static const wchar_t wstring[] = { 'a', 'b', (wchar_t) 0xfdfdfdfd, 0 }; buf[0] = '\0'; if (sprintf (buf, "%.2ls", wstring) < 0 || strcmp (buf, "ab") != 0) result |= 8; } return result; }]])], [gl_cv_func_printf_directive_ls=yes], [gl_cv_func_printf_directive_ls=no], [ changequote(,)dnl case "$host_os" in openbsd*) gl_cv_func_printf_directive_ls="guessing no";; irix*) gl_cv_func_printf_directive_ls="guessing no";; solaris*) gl_cv_func_printf_directive_ls="guessing no";; cygwin*) gl_cv_func_printf_directive_ls="guessing no";; beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";; # Guess yes on native Windows. mingw*) gl_cv_func_printf_directive_ls="guessing yes";; *) gl_cv_func_printf_directive_ls="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports POSIX/XSI format dnl strings with positions. (POSIX:2001) dnl Result is gl_cv_func_printf_positions. AC_DEFUN([gl_PRINTF_POSITIONS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports POSIX/XSI format strings with positions], [gl_cv_func_printf_positions], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* The string "%2$d %1$d", with dollar characters protected from the shell's dollar expansion (possibly an autoconf bug). */ static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; static char buf[100]; int main () { sprintf (buf, format, 33, 55); return (strcmp (buf, "55 33") != 0); }]])], [gl_cv_func_printf_positions=yes], [gl_cv_func_printf_positions=no], [ changequote(,)dnl case "$host_os" in netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*) gl_cv_func_printf_positions="guessing no";; beos*) gl_cv_func_printf_positions="guessing no";; # Guess no on native Windows. mingw* | pw*) gl_cv_func_printf_positions="guessing no";; *) gl_cv_func_printf_positions="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports POSIX/XSI format dnl strings with the ' flag for grouping of decimal digits. (POSIX:2001) dnl Result is gl_cv_func_printf_flag_grouping. AC_DEFUN([gl_PRINTF_FLAG_GROUPING], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the grouping flag], [gl_cv_func_printf_flag_grouping], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[100]; int main () { if (sprintf (buf, "%'d %d", 1234567, 99) < 0 || buf[strlen (buf) - 1] != '9') return 1; return 0; }]])], [gl_cv_func_printf_flag_grouping=yes], [gl_cv_func_printf_flag_grouping=no], [ changequote(,)dnl case "$host_os" in cygwin*) gl_cv_func_printf_flag_grouping="guessing no";; netbsd*) gl_cv_func_printf_flag_grouping="guessing no";; # Guess no on native Windows. mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";; *) gl_cv_func_printf_flag_grouping="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports the - flag correctly. dnl (ISO C99.) See dnl dnl Result is gl_cv_func_printf_flag_leftadjust. AC_DEFUN([gl_PRINTF_FLAG_LEFTADJUST], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the left-adjust flag correctly], [gl_cv_func_printf_flag_leftadjust], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[100]; int main () { /* Check that a '-' flag is not annihilated by a negative width. */ if (sprintf (buf, "a%-*sc", -3, "b") < 0 || strcmp (buf, "ab c") != 0) return 1; return 0; }]])], [gl_cv_func_printf_flag_leftadjust=yes], [gl_cv_func_printf_flag_leftadjust=no], [ changequote(,)dnl case "$host_os" in # Guess yes on HP-UX 11. hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";; # Guess no on HP-UX 10 and older. hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";; # Guess yes on native Windows. mingw*) gl_cv_func_printf_flag_leftadjust="guessing yes";; # Guess yes otherwise. *) gl_cv_func_printf_flag_leftadjust="guessing yes";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports padding of non-finite dnl values with the 0 flag correctly. (ISO C99 + TC1 + TC2.) See dnl dnl Result is gl_cv_func_printf_flag_zero. AC_DEFUN([gl_PRINTF_FLAG_ZERO], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports the zero flag correctly], [gl_cv_func_printf_flag_zero], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[100]; static double zero = 0.0; int main () { if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0 || (strcmp (buf, " inf") != 0 && strcmp (buf, " infinity") != 0)) return 1; return 0; }]])], [gl_cv_func_printf_flag_zero=yes], [gl_cv_func_printf_flag_zero=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_flag_zero="guessing yes";; # Guess no on native Windows. mingw*) gl_cv_func_printf_flag_zero="guessing no";; # If we don't know, assume the worst. *) gl_cv_func_printf_flag_zero="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions supports large precisions. dnl On mingw, precisions larger than 512 are treated like 512, in integer, dnl floating-point or pointer output. On Solaris 10/x86, precisions larger dnl than 510 in floating-point output crash the program. On Solaris 10/SPARC, dnl precisions larger than 510 in floating-point output yield wrong results. dnl On AIX 7.1, precisions larger than 998 in floating-point output yield dnl wrong results. On BeOS, precisions larger than 1044 crash the program. dnl Result is gl_cv_func_printf_precision. AC_DEFUN([gl_PRINTF_PRECISION], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf supports large precisions], [gl_cv_func_printf_precision], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static char buf[5000]; int main () { int result = 0; #ifdef __BEOS__ /* On BeOS, this would crash and show a dialog box. Avoid the crash. */ return 1; #endif if (sprintf (buf, "%.4000d %d", 1, 33, 44) < 4000 + 3) result |= 1; if (sprintf (buf, "%.4000f %d", 1.0, 33, 44) < 4000 + 5) result |= 2; if (sprintf (buf, "%.511f %d", 1.0, 33, 44) < 511 + 5 || buf[0] != '1') result |= 4; if (sprintf (buf, "%.999f %d", 1.0, 33, 44) < 999 + 5 || buf[0] != '1') result |= 4; return result; }]])], [gl_cv_func_printf_precision=yes], [gl_cv_func_printf_precision=no], [ changequote(,)dnl case "$host_os" in # Guess no only on Solaris, native Windows, and BeOS systems. solaris*) gl_cv_func_printf_precision="guessing no" ;; mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;; beos*) gl_cv_func_printf_precision="guessing no" ;; *) gl_cv_func_printf_precision="guessing yes" ;; esac changequote([,])dnl ]) ]) ]) dnl Test whether the *printf family of functions recovers gracefully in case dnl of an out-of-memory condition, or whether it crashes the entire program. dnl Result is gl_cv_func_printf_enomem. AC_DEFUN([gl_PRINTF_ENOMEM], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_MULTIARCH]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether printf survives out-of-memory conditions], [gl_cv_func_printf_enomem], [ gl_cv_func_printf_enomem="guessing no" if test "$cross_compiling" = no; then if test $APPLE_UNIVERSAL_BUILD = 0; then AC_LANG_CONFTEST([AC_LANG_SOURCE([ ]GL_NOCRASH[ changequote(,)dnl #include #include #include #include #include int main() { struct rlimit limit; int ret; nocrash_init (); /* Some printf implementations allocate temporary space with malloc. */ /* On BSD systems, malloc() is limited by RLIMIT_DATA. */ #ifdef RLIMIT_DATA if (getrlimit (RLIMIT_DATA, &limit) < 0) return 77; if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) limit.rlim_max = 5000000; limit.rlim_cur = limit.rlim_max; if (setrlimit (RLIMIT_DATA, &limit) < 0) return 77; #endif /* On Linux systems, malloc() is limited by RLIMIT_AS. */ #ifdef RLIMIT_AS if (getrlimit (RLIMIT_AS, &limit) < 0) return 77; if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) limit.rlim_max = 5000000; limit.rlim_cur = limit.rlim_max; if (setrlimit (RLIMIT_AS, &limit) < 0) return 77; #endif /* Some printf implementations allocate temporary space on the stack. */ #ifdef RLIMIT_STACK if (getrlimit (RLIMIT_STACK, &limit) < 0) return 77; if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000) limit.rlim_max = 5000000; limit.rlim_cur = limit.rlim_max; if (setrlimit (RLIMIT_STACK, &limit) < 0) return 77; #endif ret = printf ("%.5000000f", 1.0); return !(ret == 5000002 || (ret < 0 && errno == ENOMEM)); } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then (./conftest 2>&AS_MESSAGE_LOG_FD result=$? _AS_ECHO_LOG([\$? = $result]) if test $result != 0 && test $result != 77; then result=1; fi exit $result ) >/dev/null 2>/dev/null case $? in 0) gl_cv_func_printf_enomem="yes" ;; 77) gl_cv_func_printf_enomem="guessing no" ;; *) gl_cv_func_printf_enomem="no" ;; esac else gl_cv_func_printf_enomem="guessing no" fi rm -fr conftest* else dnl A universal build on Apple Mac OS X platforms. dnl The result would be 'no' in 32-bit mode and 'yes' in 64-bit mode. dnl But we need a configuration result that is valid in both modes. gl_cv_func_printf_enomem="guessing no" fi fi if test "$gl_cv_func_printf_enomem" = "guessing no"; then changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on Solaris. solaris*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on AIX. aix*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on HP-UX/hppa. hpux*) case "$host_cpu" in hppa*) gl_cv_func_printf_enomem="guessing yes";; *) gl_cv_func_printf_enomem="guessing no";; esac ;; # Guess yes on IRIX. irix*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on OSF/1. osf*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_printf_enomem="guessing yes";; # Guess yes on Haiku. haiku*) gl_cv_func_printf_enomem="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_printf_enomem="guessing no";; esac changequote([,])dnl fi ]) ]) dnl Test whether the snprintf function exists. (ISO C99, POSIX:2001) dnl Result is ac_cv_func_snprintf. AC_DEFUN([gl_SNPRINTF_PRESENCE], [ AC_CHECK_FUNCS_ONCE([snprintf]) ]) dnl Test whether the string produced by the snprintf function is always NUL dnl terminated. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_snprintf_truncation_c99. AC_DEFUN([gl_SNPRINTF_TRUNCATION_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf truncates the result as in C99], [gl_cv_func_snprintf_truncation_c99], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif static char buf[100]; int main () { strcpy (buf, "ABCDEF"); my_snprintf (buf, 3, "%d %d", 4567, 89); if (memcmp (buf, "45\0DEF", 6) != 0) return 1; return 0; }]])], [gl_cv_func_snprintf_truncation_c99=yes], [gl_cv_func_snprintf_truncation_c99=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_truncation_c99="guessing no";; darwin*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_snprintf_truncation_c99="guessing no";; openbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on Solaris >= 2.6. solaris2.[0-5] | solaris2.[0-5].*) gl_cv_func_snprintf_truncation_c99="guessing no";; solaris*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_truncation_c99="guessing no";; aix*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on HP-UX >= 11. hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";; hpux*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on IRIX >= 6.5. irix6.5) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on OSF/1 >= 5. osf[3-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";; osf*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_truncation_c99="guessing no";; netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess no on native Windows. mingw*) gl_cv_func_snprintf_truncation_c99="guessing no";; # If we don't know, assume the worst. *) gl_cv_func_snprintf_truncation_c99="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the return value of the snprintf function is the number dnl of bytes (excluding the terminating NUL) that would have been produced dnl if the buffer had been large enough. (ISO C99, POSIX:2001) dnl For example, this test program fails on IRIX 6.5: dnl --------------------------------------------------------------------- dnl #include dnl int main() dnl { dnl static char buf[8]; dnl int retval = snprintf (buf, 3, "%d", 12345); dnl return retval >= 0 && retval < 3; dnl } dnl --------------------------------------------------------------------- dnl Result is gl_cv_func_snprintf_retval_c99. AC_DEFUN_ONCE([gl_SNPRINTF_RETVAL_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf returns a byte count as in C99], [gl_cv_func_snprintf_retval_c99], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif static char buf[100]; int main () { strcpy (buf, "ABCDEF"); if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7) return 1; if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7) return 2; if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7) return 3; return 0; }]])], [gl_cv_func_snprintf_retval_c99=yes], [gl_cv_func_snprintf_retval_c99=no], [case "$host_os" in changequote(,)dnl # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";; darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_snprintf_retval_c99="guessing no";; openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; solaris*) gl_cv_func_printf_sizes_c99="guessing no";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";; aix*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_retval_c99="guessing no";; netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_retval_c99="guessing yes";; changequote([,])dnl # Guess yes on MSVC, no on mingw. mingw*) AC_EGREP_CPP([Known], [ #ifdef _MSC_VER Known #endif ], [gl_cv_func_snprintf_retval_c99="guessing yes"], [gl_cv_func_snprintf_retval_c99="guessing no"]) ;; # If we don't know, assume the worst. *) gl_cv_func_snprintf_retval_c99="guessing no";; esac ]) ]) ]) dnl Test whether the snprintf function supports the %n format directive dnl also in truncated portions of the format string. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_snprintf_directive_n. AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf fully supports the 'n' directive], [gl_cv_func_snprintf_directive_n], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif static char fmtstring[10]; static char buf[100]; int main () { int count = -1; /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2) support %n in format strings in read-only memory but not in writable memory. */ strcpy (fmtstring, "%d %n"); my_snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55); if (count != 6) return 1; return 0; }]])], [gl_cv_func_snprintf_directive_n=yes], [gl_cv_func_snprintf_directive_n=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4].*) gl_cv_func_snprintf_directive_n="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_directive_n="guessing no";; darwin*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on Solaris >= 2.6. solaris2.[0-5] | solaris2.[0-5].*) gl_cv_func_snprintf_directive_n="guessing no";; solaris*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_directive_n="guessing no";; aix*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on IRIX >= 6.5. irix6.5) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on OSF/1 >= 5. osf[3-4]*) gl_cv_func_snprintf_directive_n="guessing no";; osf*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_directive_n="guessing no";; netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess no on native Windows. mingw*) gl_cv_func_snprintf_directive_n="guessing no";; # If we don't know, assume the worst. *) gl_cv_func_snprintf_directive_n="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl Test whether the snprintf function, when passed a size = 1, writes any dnl output without bounds in this case, behaving like sprintf. This is the dnl case on Linux libc5. dnl Result is gl_cv_func_snprintf_size1. AC_DEFUN([gl_SNPRINTF_SIZE1], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SNPRINTF_PRESENCE]) AC_CACHE_CHECK([whether snprintf respects a size of 1], [gl_cv_func_snprintf_size1], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif int main() { static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; my_snprintf (buf, 1, "%d", 12345); return buf[1] != 'E'; }]])], [gl_cv_func_snprintf_size1=yes], [gl_cv_func_snprintf_size1=no], [case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_func_snprintf_size1="guessing yes" ;; *) gl_cv_func_snprintf_size1="guessing yes" ;; esac ]) ]) ]) dnl Test whether the vsnprintf function, when passed a zero size, produces no dnl output. (ISO C99, POSIX:2001) dnl For example, snprintf nevertheless writes a NUL byte in this case dnl on OSF/1 5.1: dnl --------------------------------------------------------------------- dnl #include dnl int main() dnl { dnl static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; dnl snprintf (buf, 0, "%d", 12345); dnl return buf[0] != 'D'; dnl } dnl --------------------------------------------------------------------- dnl And vsnprintf writes any output without bounds in this case, behaving like dnl vsprintf, on HP-UX 11 and OSF/1 5.1: dnl --------------------------------------------------------------------- dnl #include dnl #include dnl static int my_snprintf (char *buf, int size, const char *format, ...) dnl { dnl va_list args; dnl int ret; dnl va_start (args, format); dnl ret = vsnprintf (buf, size, format, args); dnl va_end (args); dnl return ret; dnl } dnl int main() dnl { dnl static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; dnl my_snprintf (buf, 0, "%d", 12345); dnl return buf[0] != 'D'; dnl } dnl --------------------------------------------------------------------- dnl Result is gl_cv_func_vsnprintf_zerosize_c99. AC_DEFUN([gl_VSNPRINTF_ZEROSIZE_C99], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether vsnprintf respects a zero size as in C99], [gl_cv_func_vsnprintf_zerosize_c99], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } int main() { static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; my_snprintf (buf, 0, "%d", 12345); return buf[0] != 'D'; }]])], [gl_cv_func_vsnprintf_zerosize_c99=yes], [gl_cv_func_vsnprintf_zerosize_c99=no], [ changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; darwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on Cygwin. cygwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on Solaris >= 2.6. solaris2.[0-5] | solaris2.[0-5].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; solaris*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; aix*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on IRIX >= 6.5. irix6.5) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on native Windows. mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; esac changequote([,])dnl ]) ]) ]) dnl The results of these tests on various platforms are: dnl dnl 1 = gl_PRINTF_SIZES_C99 dnl 2 = gl_PRINTF_LONG_DOUBLE dnl 3 = gl_PRINTF_INFINITE dnl 4 = gl_PRINTF_INFINITE_LONG_DOUBLE dnl 5 = gl_PRINTF_DIRECTIVE_A dnl 6 = gl_PRINTF_DIRECTIVE_F dnl 7 = gl_PRINTF_DIRECTIVE_N dnl 8 = gl_PRINTF_DIRECTIVE_LS dnl 9 = gl_PRINTF_POSITIONS dnl 10 = gl_PRINTF_FLAG_GROUPING dnl 11 = gl_PRINTF_FLAG_LEFTADJUST dnl 12 = gl_PRINTF_FLAG_ZERO dnl 13 = gl_PRINTF_PRECISION dnl 14 = gl_PRINTF_ENOMEM dnl 15 = gl_SNPRINTF_PRESENCE dnl 16 = gl_SNPRINTF_TRUNCATION_C99 dnl 17 = gl_SNPRINTF_RETVAL_C99 dnl 18 = gl_SNPRINTF_DIRECTIVE_N dnl 19 = gl_SNPRINTF_SIZE1 dnl 20 = gl_VSNPRINTF_ZEROSIZE_C99 dnl dnl 1 = checking whether printf supports size specifiers as in C99... dnl 2 = checking whether printf supports 'long double' arguments... dnl 3 = checking whether printf supports infinite 'double' arguments... dnl 4 = checking whether printf supports infinite 'long double' arguments... dnl 5 = checking whether printf supports the 'a' and 'A' directives... dnl 6 = checking whether printf supports the 'F' directive... dnl 7 = checking whether printf supports the 'n' directive... dnl 8 = checking whether printf supports the 'ls' directive... dnl 9 = checking whether printf supports POSIX/XSI format strings with positions... dnl 10 = checking whether printf supports the grouping flag... dnl 11 = checking whether printf supports the left-adjust flag correctly... dnl 12 = checking whether printf supports the zero flag correctly... dnl 13 = checking whether printf supports large precisions... dnl 14 = checking whether printf survives out-of-memory conditions... dnl 15 = checking for snprintf... dnl 16 = checking whether snprintf truncates the result as in C99... dnl 17 = checking whether snprintf returns a byte count as in C99... dnl 18 = checking whether snprintf fully supports the 'n' directive... dnl 19 = checking whether snprintf respects a size of 1... dnl 20 = checking whether vsnprintf respects a zero size as in C99... dnl dnl . = yes, # = no. dnl dnl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 dnl glibc 2.5 . . . . . . . . . . . . . . . . . . . . dnl glibc 2.3.6 . . . . # . . . . . . . . . . . . . . . dnl FreeBSD 5.4, 6.1 . . . . # . . . . . . # . # . . . . . . dnl Mac OS X 10.5.8 . . . # # . . . . . . # . . . . . . . . dnl Mac OS X 10.3.9 . . . . # . . . . . . # . # . . . . . . dnl OpenBSD 3.9, 4.0 . . # # # # . # . # . # . # . . . . . . dnl Cygwin 1.7.0 (2009) . . . # . . . ? . . . . . ? . . . . . . dnl Cygwin 1.5.25 (2008) . . . # # . . # . . . . . # . . . . . . dnl Cygwin 1.5.19 (2006) # . . # # # . # . # . # # # . . . . . . dnl Solaris 11.3 . . . . # . . # . . . . . . . . . . . . dnl Solaris 11.0 . . # # # . . # . . . # . . . . . . . . dnl Solaris 10 . . # # # . . # . . . # # . . . . . . . dnl Solaris 2.6 ... 9 # . # # # # . # . . . # # . . . # . . . dnl Solaris 2.5.1 # . # # # # . # . . . # . . # # # # # # dnl AIX 7.1 . . # # # . . . . . . # # . . . . . . . dnl AIX 5.2 . . # # # . . . . . . # . . . . . . . . dnl AIX 4.3.2, 5.1 # . # # # # . . . . . # . . . . # . . . dnl HP-UX 11.31 . . . . # . . . . . . # . . . . # # . . dnl HP-UX 11.{00,11,23} # . . . # # . . . . . # . . . . # # . # dnl HP-UX 10.20 # . # . # # . ? . . # # . . . . # # ? # dnl IRIX 6.5 # . # # # # . # . . . # . . . . # . . . dnl OSF/1 5.1 # . # # # # . . . . . # . . . . # . . # dnl OSF/1 4.0d # . # # # # . . . . . # . . # # # # # # dnl NetBSD 5.0 . . . # # . . . . . . # . # . . . . . . dnl NetBSD 4.0 . ? ? ? ? ? . ? . ? ? ? ? ? . . . ? ? ? dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . . dnl Haiku . . . # # # . # . . . . . ? . . ? . . . dnl BeOS # # . # # # . ? # . ? . # ? . . ? . . . dnl old mingw / msvcrt # # # # # # . . # # . # # ? . # # # . . dnl MSVC 9 # # # # # # # . # # . # # ? # # # # . . dnl mingw 2009-2011 . # . # . . . . # # . . . ? . . . . . . dnl mingw-w64 2011 # # # # # # . . # # . # # ? . # # # . . libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/pthread_rwlock_rdlock.m40000644000000000000000000000010613726163410024140 xustar000000000000000023 mtime=1599661832.57 23 atime=1599661832.75 24 ctime=1599661998.346 libprelude-5.2.0/libmissing/m4/pthread_rwlock_rdlock.m40000644000000000000000000001314013726163410023135 0ustar00rootroot00000000000000# pthread_rwlock_rdlock.m4 serial 2 dnl Copyright (C) 2017-2018 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. dnl From Bruno Haible. dnl Inspired by dnl https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/2-2.c dnl by Intel Corporation. dnl Test whether in a situation where dnl - an rwlock is taken by a reader and has a writer waiting, dnl - an additional reader requests the lock, dnl - the waiting writer and the requesting reader threads have the same dnl priority, dnl the requesting reader thread gets blocked, so that at some point the dnl waiting writer can acquire the lock. dnl Without such a guarantee, when there a N readers and each of the readers dnl spends more than 1/Nth of the time with the lock held, there is a high dnl probability that the waiting writer will not get the lock in a given finite dnl time, a phenomenon called "writer starvation". dnl Without such a guarantee, applications have a hard time avoiding writer dnl starvation. dnl dnl POSIX:2017 makes this requirement only for implementations that support TPS dnl (Thread Priority Scheduling) and only for the scheduling policies SCHED_FIFO dnl and SCHED_RR, see dnl http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_rdlock.html dnl but this test verifies the guarantee regardless of TPS and regardless of dnl scheduling policy. dnl Glibc currently does not provide this guarantee, see dnl https://sourceware.org/bugzilla/show_bug.cgi?id=13701 AC_DEFUN([gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER], [ AC_REQUIRE([gl_THREADLIB_EARLY]) AC_CACHE_CHECK([whether pthread_rwlock_rdlock prefers a writer to a reader], [gl_cv_pthread_rwlock_rdlock_prefer_writer], [save_LIBS="$LIBS" LIBS="$LIBS $LIBMULTITHREAD" AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #include #define SUCCEED() exit (0) #define FAILURE() exit (1) #define UNEXPECTED(n) (exit (10 + (n))) /* The main thread creates the waiting writer and the requesting reader threads in the default way; this guarantees that they have the same priority. We can reuse the main thread as first reader thread. */ static pthread_rwlock_t lock; static pthread_t reader1; static pthread_t writer; static pthread_t reader2; static pthread_t timer; /* Used to pass control from writer to reader2 and from reader2 to timer, as in a relay race. Passing control from one running thread to another running thread is most likely faster than to create the second thread. */ static pthread_mutex_t baton; static void * timer_func (void *ignored) { /* Step 13 (can be before or after step 12): The timer thread takes the baton, then waits a moment to make sure it can tell whether the second reader thread is blocked at step 12. */ if (pthread_mutex_lock (&baton)) UNEXPECTED (13); usleep (100000); /* By the time we get here, it's clear that the second reader thread is blocked at step 12. This is the desired behaviour. */ SUCCEED (); } static void * reader2_func (void *ignored) { int err; /* Step 8 (can be before or after step 7): The second reader thread takes the baton, then waits a moment to make sure the writer thread has reached step 7. */ if (pthread_mutex_lock (&baton)) UNEXPECTED (8); usleep (100000); /* Step 9: The second reader thread requests the lock. */ err = pthread_rwlock_tryrdlock (&lock); if (err == 0) FAILURE (); else if (err != EBUSY) UNEXPECTED (9); /* Step 10: Launch a timer, to test whether the next call blocks. */ if (pthread_create (&timer, NULL, timer_func, NULL)) UNEXPECTED (10); /* Step 11: Release the baton. */ if (pthread_mutex_unlock (&baton)) UNEXPECTED (11); /* Step 12: The second reader thread requests the lock. */ err = pthread_rwlock_rdlock (&lock); if (err == 0) FAILURE (); else UNEXPECTED (12); } static void * writer_func (void *ignored) { /* Step 4: Take the baton, so that the second reader thread does not go ahead too early. */ if (pthread_mutex_lock (&baton)) UNEXPECTED (4); /* Step 5: Create the second reader thread. */ if (pthread_create (&reader2, NULL, reader2_func, NULL)) UNEXPECTED (5); /* Step 6: Release the baton. */ if (pthread_mutex_unlock (&baton)) UNEXPECTED (6); /* Step 7: The writer thread requests the lock. */ if (pthread_rwlock_wrlock (&lock)) UNEXPECTED (7); return NULL; } int main () { reader1 = pthread_self (); /* Step 1: The main thread initializes the lock and the baton. */ if (pthread_rwlock_init (&lock, NULL)) UNEXPECTED (1); if (pthread_mutex_init (&baton, NULL)) UNEXPECTED (1); /* Step 2: The main thread acquires the lock as a reader. */ if (pthread_rwlock_rdlock (&lock)) UNEXPECTED (2); /* Step 3: Create the writer thread. */ if (pthread_create (&writer, NULL, writer_func, NULL)) UNEXPECTED (3); /* Job done. Go to sleep. */ for (;;) { sleep (1); } } ]])], [gl_cv_pthread_rwlock_rdlock_prefer_writer=yes], [gl_cv_pthread_rwlock_rdlock_prefer_writer=no], [gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes"]) LIBS="$save_LIBS" ]) case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in *yes) AC_DEFINE([HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER], [1], [Define if the 'pthread_rwlock_rdlock' function prefers a writer to a reader.]) ;; esac ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/pthread_sigmask.m40000644000000000000000000000010613726163410022737 xustar000000000000000023 mtime=1599661832.57 23 atime=1599661832.75 24 ctime=1599661998.347 libprelude-5.2.0/libmissing/m4/pthread_sigmask.m40000644000000000000000000002372213726163410021743 0ustar00rootroot00000000000000# pthread_sigmask.m4 serial 16 dnl Copyright (C) 2011-2018 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_FUNC_PTHREAD_SIGMASK], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([pthread_sigmask]) LIB_PTHREAD_SIGMASK= dnl Test whether the gnulib module 'threadlib' is in use. dnl Some packages like Emacs use --avoid=threadlib. dnl Write the symbol in such a way that it does not cause 'aclocal' to pick dnl the threadlib.m4 file that is installed in $PREFIX/share/aclocal/. m4_ifdef([gl_][THREADLIB], [ AC_REQUIRE([gl_][THREADLIB]) if test "$gl_threads_api" = posix; then if test $ac_cv_func_pthread_sigmask = yes; then dnl pthread_sigmask is available without -lpthread. : else if test -n "$LIBMULTITHREAD"; then AC_CACHE_CHECK([for pthread_sigmask in $LIBMULTITHREAD], [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD], [gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBMULTITHREAD" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include #include ]], [[return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0);]]) ], [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes], [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no]) LIBS="$gl_save_LIBS" ]) if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then AC_CACHE_CHECK([whether pthread_sigmask is only a macro], [gl_cv_func_pthread_sigmask_is_macro], [gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBMULTITHREAD" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include #include #undef pthread_sigmask ]], [[return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0);]]) ], [gl_cv_func_pthread_sigmask_is_macro=no], [gl_cv_func_pthread_sigmask_is_macro=yes]) LIBS="$gl_save_LIBS" ]) if test $gl_cv_func_pthread_sigmask_is_macro = yes; then dnl On MinGW pthread_sigmask is just a macro which always returns 0. dnl It does not exist as a real function, which is required by POSIX. REPLACE_PTHREAD_SIGMASK=1 gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no fi fi if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then dnl pthread_sigmask is available with -pthread or -lpthread. LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD" else dnl pthread_sigmask is not available at all. HAVE_PTHREAD_SIGMASK=0 fi else dnl pthread_sigmask is not available at all. HAVE_PTHREAD_SIGMASK=0 fi fi else dnl pthread_sigmask may exist but does not interoperate with the chosen dnl multithreading facility. dnl If "$gl_threads_api" = pth, we could use the function pth_sigmask, dnl but it is equivalent to sigprocmask, so we choose to emulate dnl pthread_sigmask with sigprocmask also in this case. This yields fewer dnl link dependencies. if test $ac_cv_func_pthread_sigmask = yes; then REPLACE_PTHREAD_SIGMASK=1 else HAVE_PTHREAD_SIGMASK=0 fi fi ], [ dnl The module 'threadlib' is not in use, due to --avoid=threadlib being dnl specified. dnl The package either has prepared CPPFLAGS and LIBS for use of POSIX:2008 dnl threads, or wants to build single-threaded programs. if test $ac_cv_func_pthread_sigmask = yes; then dnl pthread_sigmask exists and does not require extra libraries. dnl Assume that it is declared. : else dnl pthread_sigmask either does not exist or needs extra libraries. HAVE_PTHREAD_SIGMASK=0 dnl Define the symbol rpl_pthread_sigmask, not pthread_sigmask, dnl so as to not accidentally override the system's pthread_sigmask dnl symbol from libpthread. This is necessary on IRIX 6.5. REPLACE_PTHREAD_SIGMASK=1 fi ]) AC_SUBST([LIB_PTHREAD_SIGMASK]) dnl We don't need a variable LTLIB_PTHREAD_SIGMASK, because when dnl "$gl_threads_api" = posix, $LTLIBMULTITHREAD and $LIBMULTITHREAD are the dnl same. dnl Now test for some bugs in the system function. if test $HAVE_PTHREAD_SIGMASK = 1; then AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl On FreeBSD 6.4, HP-UX 11.31, Solaris 9, in programs that are not linked dnl with -lpthread, the pthread_sigmask() function always returns 0 and has dnl no effect. if test -z "$LIB_PTHREAD_SIGMASK"; then case " $LIBS " in *' -pthread '*) ;; *' -lpthread '*) ;; *) AC_CACHE_CHECK([whether pthread_sigmask works without -lpthread], [gl_cv_func_pthread_sigmask_in_libc_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include int main () { sigset_t set; sigemptyset (&set); return pthread_sigmask (1729, &set, NULL) != 0; }]])], [gl_cv_func_pthread_sigmask_in_libc_works=no], [gl_cv_func_pthread_sigmask_in_libc_works=yes], [ changequote(,)dnl case "$host_os" in freebsd* | hpux* | solaris | solaris2.[2-9]*) gl_cv_func_pthread_sigmask_in_libc_works="guessing no";; *) gl_cv_func_pthread_sigmask_in_libc_works="guessing yes";; esac changequote([,])dnl ]) ]) case "$gl_cv_func_pthread_sigmask_in_libc_works" in *no) REPLACE_PTHREAD_SIGMASK=1 AC_DEFINE([PTHREAD_SIGMASK_INEFFECTIVE], [1], [Define to 1 if pthread_sigmask may return 0 and have no effect.]) ;; esac;; esac fi dnl On Cygwin 1.7.5, the pthread_sigmask() has a wrong return value dnl convention: Upon failure, it returns -1 and sets errno. AC_CACHE_CHECK([whether pthread_sigmask returns error numbers], [gl_cv_func_pthread_sigmask_return_works], [ gl_save_LIBS="$LIBS" LIBS="$LIBS $LIB_PTHREAD_SIGMASK" AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include int main () { sigset_t set; sigemptyset (&set); if (pthread_sigmask (1729, &set, NULL) == -1) return 1; return 0; }]])], [gl_cv_func_pthread_sigmask_return_works=yes], [gl_cv_func_pthread_sigmask_return_works=no], [case "$host_os" in cygwin*) gl_cv_func_pthread_sigmask_return_works="guessing no";; *) gl_cv_func_pthread_sigmask_return_works="guessing yes";; esac ]) LIBS="$gl_save_LIBS" ]) case "$gl_cv_func_pthread_sigmask_return_works" in *no) REPLACE_PTHREAD_SIGMASK=1 AC_DEFINE([PTHREAD_SIGMASK_FAILS_WITH_ERRNO], [1], [Define to 1 if pthread_sigmask(), when it fails, returns -1 and sets errno.]) ;; esac dnl On IRIX 6.5, in a single-threaded program, pending signals are not dnl immediately delivered when they are unblocked through pthread_sigmask, dnl only a little while later. AC_CACHE_CHECK([whether pthread_sigmask unblocks signals correctly], [gl_cv_func_pthread_sigmask_unblock_works], [ case "$host_os" in irix*) gl_cv_func_pthread_sigmask_unblock_works="guessing no";; *) gl_cv_func_pthread_sigmask_unblock_works="guessing yes";; esac m4_ifdef([gl_][THREADLIB], [dnl Link against $LIBMULTITHREAD, not only $LIB_PTHREAD_SIGMASK. dnl Otherwise we get a false positive on those platforms where dnl $gl_cv_func_pthread_sigmask_in_libc_works is "no". gl_save_LIBS=$LIBS LIBS="$LIBS $LIBMULTITHREAD"]) AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #include #include static volatile int sigint_occurred; static void sigint_handler (int sig) { sigint_occurred++; } int main () { sigset_t set; int pid = getpid (); char command[80]; signal (SIGINT, sigint_handler); sigemptyset (&set); sigaddset (&set, SIGINT); if (!(pthread_sigmask (SIG_BLOCK, &set, NULL) == 0)) return 1; sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid); if (!(system (command) == 0)) return 2; sleep (2); if (!(sigint_occurred == 0)) return 3; if (!(pthread_sigmask (SIG_UNBLOCK, &set, NULL) == 0)) return 4; if (!(sigint_occurred == 1)) /* This fails on IRIX. */ return 5; return 0; }]])], [:], [gl_cv_func_pthread_sigmask_unblock_works=no], [:]) m4_ifdef([gl_][THREADLIB], [LIBS=$gl_save_LIBS]) ]) case "$gl_cv_func_pthread_sigmask_unblock_works" in *no) REPLACE_PTHREAD_SIGMASK=1 AC_DEFINE([PTHREAD_SIGMASK_UNBLOCK_BUG], [1], [Define to 1 if pthread_sigmask() unblocks signals incorrectly.]) ;; esac fi ]) # Prerequisite of lib/pthread_sigmask.c. AC_DEFUN([gl_PREREQ_PTHREAD_SIGMASK], [ if test $HAVE_PTHREAD_SIGMASK = 1; then AC_DEFINE([HAVE_PTHREAD_SIGMASK], [1], [Define to 1 if the pthread_sigmask function can be used (despite bugs).]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/putenv.m40000644000000000000000000000010613726163410021113 xustar000000000000000023 mtime=1599661832.57 23 atime=1599661832.75 24 ctime=1599661998.349 libprelude-5.2.0/libmissing/m4/putenv.m40000644000000000000000000000343513726163410020116 0ustar00rootroot00000000000000# putenv.m4 serial 22 dnl Copyright (C) 2002-2018 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. dnl From Jim Meyering. dnl dnl Check whether putenv ("FOO") removes FOO from the environment. dnl The putenv in libc on at least SunOS 4.1.4 does *not* do that. AC_DEFUN([gl_FUNC_PUTENV], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([for putenv compatible with GNU and SVID], [gl_cv_func_svid_putenv], [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],[[ /* Put it in env. */ if (putenv ("CONFTEST_putenv=val")) return 1; /* Try to remove it. */ if (putenv ("CONFTEST_putenv")) return 2; /* Make sure it was deleted. */ if (getenv ("CONFTEST_putenv") != 0) return 3; return 0; ]])], gl_cv_func_svid_putenv=yes, gl_cv_func_svid_putenv=no, dnl When crosscompiling, assume putenv is broken. [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_svid_putenv="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_svid_putenv="guessing no" ;; # If we don't know, assume the worst. *) gl_cv_func_svid_putenv="guessing no" ;; esac ]) ]) case "$gl_cv_func_svid_putenv" in *yes) ;; *) REPLACE_PUTENV=1 ;; esac ]) # Prerequisites of lib/putenv.c. AC_DEFUN([gl_PREREQ_PUTENV], [ AC_CHECK_DECLS([_putenv]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/raise.m40000644000000000000000000000010613726163410020675 xustar000000000000000023 mtime=1599661832.57 23 atime=1599661832.75 24 ctime=1599661998.351 libprelude-5.2.0/libmissing/m4/raise.m40000644000000000000000000000177113726163410017701 0ustar00rootroot00000000000000# raise.m4 serial 4 dnl Copyright (C) 2011-2018 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_FUNC_RAISE], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS([raise]) if test $ac_cv_func_raise = no; then HAVE_RAISE=0 else m4_ifdef([gl_MSVC_INVAL], [ AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_RAISE=1 fi ]) m4_ifdef([gl_SIGNALBLOCKING], [ gl_SIGNALBLOCKING if test $HAVE_POSIX_SIGNALBLOCKING = 0; then m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then REPLACE_RAISE=1 fi ], [:]) fi ]) fi ]) # Prerequisites of lib/raise.c. AC_DEFUN([gl_PREREQ_RAISE], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/regex.m40000644000000000000000000000010713726163410020705 xustar000000000000000024 mtime=1599661832.571 23 atime=1599661832.75 24 ctime=1599661998.352 libprelude-5.2.0/libmissing/m4/regex.m40000644000000000000000000002767413726163410017722 0ustar00rootroot00000000000000# serial 67 # Copyright (C) 1996-2001, 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl Initially derived from code in GNU grep. dnl Mostly written by Jim Meyering. AC_PREREQ([2.50]) AC_DEFUN([gl_REGEX], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_ARG_WITH([included-regex], [AS_HELP_STRING([--without-included-regex], [don't compile regex; this is the default on systems with recent-enough versions of the GNU C Library (use with caution on other systems).])]) case $with_included_regex in #( yes|no) ac_use_included_regex=$with_included_regex ;; '') # If the system regex support is good enough that it passes the # following run test, then default to *not* using the included regex.c. # If cross compiling, assume the test would fail and use the included # regex.c. AC_CHECK_DECLS_ONCE([alarm]) AC_CHECK_HEADERS_ONCE([malloc.h]) AC_CACHE_CHECK([for working re_compile_pattern], [gl_cv_func_re_compile_pattern_working], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include #include #if defined M_CHECK_ACTION || HAVE_DECL_ALARM # include # include #endif #if HAVE_MALLOC_H # include #endif #ifdef M_CHECK_ACTION /* Exit with distinguishable exit code. */ static void sigabrt_no_core (int sig) { raise (SIGTERM); } #endif ]], [[int result = 0; static struct re_pattern_buffer regex; unsigned char folded_chars[UCHAR_MAX + 1]; int i; const char *s; struct re_registers regs; /* Some builds of glibc go into an infinite loop on this test. Use alarm to force death, and mallopt to avoid malloc recursion in diagnosing the corrupted heap. */ #if HAVE_DECL_ALARM signal (SIGALRM, SIG_DFL); alarm (2); #endif #ifdef M_CHECK_ACTION signal (SIGABRT, sigabrt_no_core); mallopt (M_CHECK_ACTION, 2); #endif if (setlocale (LC_ALL, "en_US.UTF-8")) { { /* https://sourceware.org/ml/libc-hacker/2006-09/msg00008.html This test needs valgrind to catch the bug on Debian GNU/Linux 3.1 x86, but it might catch the bug better on other platforms and it shouldn't hurt to try the test here. */ static char const pat[] = "insert into"; static char const data[] = "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else if (re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, ®s) != -1) result |= 1; regfree (®ex); } { /* This test is from glibc bug 15078. The test case is from Andreas Schwab in . */ static char const pat[] = "[^x]x"; static char const data[] = /* */ "\xe1\x80\x80" "\xe1\x80\xbb" "\xe1\x80\xbd" "\xe1\x80\x94" "\xe1\x80\xba" "\xe1\x80\xaf" "\xe1\x80\x95" "\xe1\x80\xba" "x"; re_set_syntax (0); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else { i = re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, 0); if (i != 0 && i != 21) result |= 1; } regfree (®ex); } if (! setlocale (LC_ALL, "C")) return 1; } /* This test is from glibc bug 3957, reported by Andrew Mackey. */ re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[^x]b", 6, ®ex); if (s) result |= 2; /* This should fail, but succeeds for glibc-2.5. */ else if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) result |= 2; /* This regular expression is from Spencer ere test number 75 in grep-2.3. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP); memset (®ex, 0, sizeof regex); for (i = 0; i <= UCHAR_MAX; i++) folded_chars[i] = i; regex.translate = folded_chars; s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, ®ex); /* This should fail with _Invalid character class name_ error. */ if (!s) result |= 4; /* Ensure that [b-a] is diagnosed as invalid, when using RE_NO_EMPTY_RANGES. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[b-a]", 6, ®ex); if (s == 0) result |= 8; /* This should succeed, but does not for glibc-2.1.3. */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("{1", 2, ®ex); if (s) result |= 8; /* The following example is derived from a problem report against gawk from Jorge Stolfi . */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[an\371]*n", 7, ®ex); if (s) result |= 8; /* This should match, but does not for glibc-2.2.1. */ else if (re_match (®ex, "an", 2, 0, ®s) != 2) result |= 8; memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 8; /* glibc-2.2.93 does not work with a negative RANGE argument. */ else if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) result |= 8; /* The version of regex.c in older versions of gnulib ignored RE_ICASE. Detect that problem too. */ re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 16; else if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) result |= 16; /* Catch a bug reported by Vin Shelton in https://lists.gnu.org/r/bug-coreutils/2007-06/msg00089.html */ re_set_syntax (RE_SYNTAX_POSIX_BASIC & ~RE_CONTEXT_INVALID_DUP & ~RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); if (s) result |= 32; /* REG_STARTEND was added to glibc on 2004-01-15. Reject older versions. */ if (! REG_STARTEND) result |= 64; #if 0 /* It would be nice to reject hosts whose regoff_t values are too narrow (including glibc on hosts with 64-bit ptrdiff_t and 32-bit int), but we should wait until glibc implements this feature. Otherwise, support for equivalence classes and multibyte collation symbols would always be broken except when compiling --without-included-regex. */ if (sizeof (regoff_t) < sizeof (ptrdiff_t) || sizeof (regoff_t) < sizeof (ssize_t)) result |= 64; #endif return result; ]])], [gl_cv_func_re_compile_pattern_working=yes], [gl_cv_func_re_compile_pattern_working=no], [case "$host_os" in # Guess no on native Windows. mingw*) gl_cv_func_re_compile_pattern_working="guessing no" ;; # Otherwise, assume it is not working. *) gl_cv_func_re_compile_pattern_working="guessing no" ;; esac ]) ]) case "$gl_cv_func_re_compile_pattern_working" in #( *yes) ac_use_included_regex=no;; #( *no) ac_use_included_regex=yes;; esac ;; *) AC_MSG_ERROR([Invalid value for --with-included-regex: $with_included_regex]) ;; esac if test $ac_use_included_regex = yes; then AC_DEFINE([_REGEX_INCLUDE_LIMITS_H], [1], [Define if you want to include , so that it consistently overrides 's RE_DUP_MAX.]) AC_DEFINE([_REGEX_LARGE_OFFSETS], [1], [Define if you want regoff_t to be at least as wide POSIX requires.]) AC_DEFINE([re_syntax_options], [rpl_re_syntax_options], [Define to rpl_re_syntax_options if the replacement should be used.]) AC_DEFINE([re_set_syntax], [rpl_re_set_syntax], [Define to rpl_re_set_syntax if the replacement should be used.]) AC_DEFINE([re_compile_pattern], [rpl_re_compile_pattern], [Define to rpl_re_compile_pattern if the replacement should be used.]) AC_DEFINE([re_compile_fastmap], [rpl_re_compile_fastmap], [Define to rpl_re_compile_fastmap if the replacement should be used.]) AC_DEFINE([re_search], [rpl_re_search], [Define to rpl_re_search if the replacement should be used.]) AC_DEFINE([re_search_2], [rpl_re_search_2], [Define to rpl_re_search_2 if the replacement should be used.]) AC_DEFINE([re_match], [rpl_re_match], [Define to rpl_re_match if the replacement should be used.]) AC_DEFINE([re_match_2], [rpl_re_match_2], [Define to rpl_re_match_2 if the replacement should be used.]) AC_DEFINE([re_set_registers], [rpl_re_set_registers], [Define to rpl_re_set_registers if the replacement should be used.]) AC_DEFINE([re_comp], [rpl_re_comp], [Define to rpl_re_comp if the replacement should be used.]) AC_DEFINE([re_exec], [rpl_re_exec], [Define to rpl_re_exec if the replacement should be used.]) AC_DEFINE([regcomp], [rpl_regcomp], [Define to rpl_regcomp if the replacement should be used.]) AC_DEFINE([regexec], [rpl_regexec], [Define to rpl_regexec if the replacement should be used.]) AC_DEFINE([regerror], [rpl_regerror], [Define to rpl_regerror if the replacement should be used.]) AC_DEFINE([regfree], [rpl_regfree], [Define to rpl_regfree if the replacement should be used.]) fi ]) # Prerequisites of lib/regex.c and lib/regex_internal.c. AC_DEFUN([gl_PREREQ_REGEX], [ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_C_INLINE]) AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) AC_REQUIRE([gl_EEMALLOC]) AC_REQUIRE([gl_GLIBC21]) AC_CHECK_HEADERS([libintl.h]) AC_CHECK_FUNCS_ONCE([isblank iswctype]) AC_CHECK_DECLS([isblank], [], [], [[#include ]]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/relocatable-lib.m40000644000000000000000000000010713726163410022614 xustar000000000000000024 mtime=1599661832.571 23 atime=1599661832.75 24 ctime=1599661998.354 libprelude-5.2.0/libmissing/m4/relocatable-lib.m40000644000000000000000000000274413726163410021620 0ustar00rootroot00000000000000# relocatable-lib.m4 serial 6 dnl Copyright (C) 2003, 2005-2007, 2009-2018 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. dnl From Bruno Haible. dnl Support for relocatable libraries. AC_DEFUN([gl_RELOCATABLE_LIBRARY], [ AC_REQUIRE([gl_RELOCATABLE_LIBRARY_BODY]) ]) AC_DEFUN([gl_RELOCATABLE_LIBRARY_BODY], [ AC_REQUIRE([gl_RELOCATABLE_NOP]) dnl Easier to put this here once, instead of into the DEFS of each Makefile. if test "X$prefix" = "XNONE"; then reloc_final_prefix="$ac_default_prefix" else reloc_final_prefix="$prefix" fi AC_DEFINE_UNQUOTED([INSTALLPREFIX], ["${reloc_final_prefix}"], [Define to the value of ${prefix}, as a string.]) if test $RELOCATABLE = yes; then AC_DEFINE([ENABLE_RELOCATABLE], [1], [Define to 1 if the package shall run at any location in the file system.]) fi ]) dnl Support for relocatable packages for which it is a nop. AC_DEFUN([gl_RELOCATABLE_NOP], [ AC_MSG_CHECKING([whether to activate relocatable installation]) AC_ARG_ENABLE([relocatable], [AS_HELP_STRING([--enable-relocatable], [install a package that can be moved in the file system])], [if test "$enableval" != no; then RELOCATABLE=yes else RELOCATABLE=no fi ], RELOCATABLE=no) AC_SUBST([RELOCATABLE]) AC_MSG_RESULT([$RELOCATABLE]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/select.m40000644000000000000000000000010713726163410021052 xustar000000000000000024 mtime=1599661832.571 23 atime=1599661832.75 24 ctime=1599661998.356 libprelude-5.2.0/libmissing/m4/select.m40000644000000000000000000000662313726163410020056 0ustar00rootroot00000000000000# select.m4 serial 10 dnl Copyright (C) 2009-2018 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_FUNC_SELECT], [ AC_REQUIRE([gl_HEADER_SYS_SELECT]) AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SOCKETS]) if test "$ac_cv_header_winsock2_h" = yes; then REPLACE_SELECT=1 else dnl On Interix 3.5, select(0, NULL, NULL, NULL, timeout) fails with error dnl EFAULT. AC_CHECK_HEADERS_ONCE([sys/select.h]) AC_CACHE_CHECK([whether select supports a 0 argument], [gl_cv_func_select_supports0], [ AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include #include #if HAVE_SYS_SELECT_H #include #endif int main () { struct timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 5; return select (0, (fd_set *)0, (fd_set *)0, (fd_set *)0, &timeout) < 0; }]])], [gl_cv_func_select_supports0=yes], [gl_cv_func_select_supports0=no], [ changequote(,)dnl case "$host_os" in # Guess no on Interix. interix*) gl_cv_func_select_supports0="guessing no";; # Guess yes otherwise. *) gl_cv_func_select_supports0="guessing yes";; esac changequote([,])dnl ]) ]) case "$gl_cv_func_select_supports0" in *yes) ;; *) REPLACE_SELECT=1 ;; esac dnl On FreeBSD 8.2, select() doesn't always reject bad fds. AC_CACHE_CHECK([whether select detects invalid fds], [gl_cv_func_select_detects_ebadf], [ AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include #include #if HAVE_SYS_SELECT_H # include #endif #include #include ]],[[ fd_set set; dup2(0, 16); FD_ZERO(&set); FD_SET(16, &set); close(16); struct timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 5; return select (17, &set, NULL, NULL, &timeout) != -1 || errno != EBADF; ]])], [gl_cv_func_select_detects_ebadf=yes], [gl_cv_func_select_detects_ebadf=no], [ case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_select_detects_ebadf="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_select_detects_ebadf="guessing no" ;; esac ]) ]) case $gl_cv_func_select_detects_ebadf in *yes) ;; *) REPLACE_SELECT=1 ;; esac fi dnl Determine the needed libraries. LIB_SELECT="$LIBSOCKET" if test $REPLACE_SELECT = 1; then case "$host_os" in mingw*) dnl On the MSVC platform, the function MsgWaitForMultipleObjects dnl (used in lib/select.c) requires linking with -luser32. On mingw, dnl it is implicit. AC_LINK_IFELSE( [AC_LANG_SOURCE([[ #define WIN32_LEAN_AND_MEAN #include int main () { MsgWaitForMultipleObjects (0, NULL, 0, 0, 0); return 0; }]])], [], [LIB_SELECT="$LIB_SELECT -luser32"]) ;; esac fi AC_SUBST([LIB_SELECT]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/servent.m40000644000000000000000000000010713726163410021261 xustar000000000000000024 mtime=1599661832.571 23 atime=1599661832.75 24 ctime=1599661998.357 libprelude-5.2.0/libmissing/m4/servent.m40000644000000000000000000000336213726163410020262 0ustar00rootroot00000000000000# servent.m4 serial 2 dnl Copyright (C) 2008, 2010-2018 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_SERVENT], [ dnl Where are getservent(), setservent(), endservent(), getservbyname(), dnl getservbyport() defined? dnl Where are getprotoent(), setprotoent(), endprotoent(), getprotobyname(), dnl getprotobynumber() defined? dnl - On Solaris, they are in libsocket. Ignore libxnet. dnl - On Haiku, they are in libnetwork. dnl - On BeOS, they are in libnet. dnl - On native Windows, they are in ws2_32.dll. dnl - Otherwise they are in libc. AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H SERVENT_LIB= gl_saved_libs="$LIBS" AC_SEARCH_LIBS([getservbyname], [socket network net], [if test "$ac_cv_search_getservbyname" != "none required"; then SERVENT_LIB="$ac_cv_search_getservbyname" fi]) LIBS="$gl_saved_libs" if test -z "$SERVENT_LIB"; then AC_CHECK_FUNCS([getservbyname], , [ AC_CACHE_CHECK([for getservbyname in winsock2.h and -lws2_32], [gl_cv_w32_getservbyname], [gl_cv_w32_getservbyname=no gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #ifdef HAVE_WINSOCK2_H #include #endif #include ]], [[getservbyname(NULL,NULL);]])], [gl_cv_w32_getservbyname=yes]) LIBS="$gl_save_LIBS" ]) if test "$gl_cv_w32_getservbyname" = "yes"; then SERVENT_LIB="-lws2_32" fi ]) fi AC_SUBST([SERVENT_LIB]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/setenv.m40000644000000000000000000000010713726163410021077 xustar000000000000000024 mtime=1599661832.571 23 atime=1599661832.75 24 ctime=1599661998.359 libprelude-5.2.0/libmissing/m4/setenv.m40000644000000000000000000001104613726163410020076 0ustar00rootroot00000000000000# setenv.m4 serial 27 dnl Copyright (C) 2001-2004, 2006-2018 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_FUNC_SETENV], [ AC_REQUIRE([gl_FUNC_SETENV_SEPARATE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles if test $ac_cv_func_setenv = no; then HAVE_SETENV=0 else AC_CACHE_CHECK([whether setenv validates arguments], [gl_cv_func_setenv_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include #include #include ]], [[ int result = 0; { if (setenv ("", "", 0) != -1) result |= 1; else if (errno != EINVAL) result |= 2; } { if (setenv ("a", "=", 1) != 0) result |= 4; else if (strcmp (getenv ("a"), "=") != 0) result |= 8; } return result; ]])], [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_setenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_setenv_works="guessing no" ;; esac ])]) case "$gl_cv_func_setenv_works" in *yes) ;; *) REPLACE_SETENV=1 ;; esac fi ]) # Like gl_FUNC_SETENV, except prepare for separate compilation # (no REPLACE_SETENV, no AC_LIBOBJ). AC_DEFUN([gl_FUNC_SETENV_SEPARATE], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_CHECK_DECLS_ONCE([setenv]) if test $ac_cv_have_decl_setenv = no; then HAVE_DECL_SETENV=0 fi AC_CHECK_FUNCS_ONCE([setenv]) gl_PREREQ_SETENV ]) AC_DEFUN([gl_FUNC_UNSETENV], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_DECLS_ONCE([unsetenv]) if test $ac_cv_have_decl_unsetenv = no; then HAVE_DECL_UNSETENV=0 fi AC_CHECK_FUNCS([unsetenv]) if test $ac_cv_func_unsetenv = no; then HAVE_UNSETENV=0 else HAVE_UNSETENV=1 dnl Some BSDs return void, failing to do error checking. AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #undef _BSD #define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 */ #include extern #ifdef __cplusplus "C" #endif int unsetenv (const char *name); ]], [[]])], [gt_cv_func_unsetenv_ret='int'], [gt_cv_func_unsetenv_ret='void'])]) if test $gt_cv_func_unsetenv_ret = 'void'; then AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void instead of int.]) REPLACE_UNSETENV=1 fi dnl Solaris 10 unsetenv does not remove all copies of a name. dnl Haiku alpha 2 unsetenv gets confused by assignment to environ. dnl OpenBSD 4.7 unsetenv("") does not fail. AC_CACHE_CHECK([whether unsetenv obeys POSIX], [gl_cv_func_unsetenv_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include #include extern char **environ; ]], [[ char entry1[] = "a=1"; char entry2[] = "b=2"; char *env[] = { entry1, entry2, NULL }; if (putenv ((char *) "a=1")) return 1; if (putenv (entry2)) return 2; entry2[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 3; if (!unsetenv ("") || errno != EINVAL) return 4; entry2[0] = 'b'; environ = env; if (!getenv ("a")) return 5; entry2[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 6; ]])], [gl_cv_func_unsetenv_works=yes], [gl_cv_func_unsetenv_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_unsetenv_works="guessing no" ;; esac ])]) case "$gl_cv_func_unsetenv_works" in *yes) ;; *) REPLACE_UNSETENV=1 ;; esac fi ]) # Prerequisites of lib/setenv.c. AC_DEFUN([gl_PREREQ_SETENV], [ AC_REQUIRE([AC_FUNC_ALLOCA]) AC_REQUIRE([gl_ENVIRON]) AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_HEADERS([search.h]) AC_CHECK_FUNCS([tsearch]) ]) # Prerequisites of lib/unsetenv.c. AC_DEFUN([gl_PREREQ_UNSETENV], [ AC_REQUIRE([gl_ENVIRON]) AC_CHECK_HEADERS_ONCE([unistd.h]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/setlocale.m40000644000000000000000000000010713726163410021546 xustar000000000000000024 mtime=1599661832.571 23 atime=1599661832.75 24 ctime=1599661998.361 libprelude-5.2.0/libmissing/m4/setlocale.m40000644000000000000000000000154313726163410020546 0ustar00rootroot00000000000000# setlocale.m4 serial 4 dnl Copyright (C) 2011-2018 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_FUNC_SETLOCALE], [ AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in dnl On native Windows systems, setlocale(category,NULL) does not look at dnl the environment variables LC_ALL, category, and LANG. mingw*) REPLACE_SETLOCALE=1 ;; dnl On Cygwin 1.5.x, setlocale always succeeds but setlocale(LC_CTYPE,NULL) dnl is then still "C". cygwin*) case `uname -r` in 1.5.*) REPLACE_SETLOCALE=1 ;; esac ;; esac ]) # Prerequisites of lib/setlocale.c. AC_DEFUN([gl_PREREQ_SETLOCALE], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/sigaction.m40000644000000000000000000000010713726163410021553 xustar000000000000000024 mtime=1599661832.571 23 atime=1599661832.75 24 ctime=1599661998.362 libprelude-5.2.0/libmissing/m4/sigaction.m40000644000000000000000000000232513726163410020552 0ustar00rootroot00000000000000# sigaction.m4 serial 7 dnl Copyright (C) 2008-2018 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. # Determine if sigaction interface is present. AC_DEFUN([gl_SIGACTION], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([sigaction]) if test $ac_cv_func_sigaction = yes; then AC_CHECK_MEMBERS([struct sigaction.sa_sigaction], , , [[#include ]]) if test $ac_cv_member_struct_sigaction_sa_sigaction = no; then HAVE_STRUCT_SIGACTION_SA_SIGACTION=0 fi else HAVE_SIGACTION=0 fi ]) # Prerequisites of the part of lib/signal.in.h and of lib/sigaction.c. AC_DEFUN([gl_PREREQ_SIGACTION], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([AC_TYPE_UID_T]) AC_REQUIRE([gl_PREREQ_SIG_HANDLER_H]) AC_CHECK_FUNCS_ONCE([sigaltstack siginterrupt]) AC_CHECK_TYPES([siginfo_t], [], [], [[ #include ]]) if test $ac_cv_type_siginfo_t = no; then HAVE_SIGINFO_T=0 fi ]) # Prerequisites of lib/sig-handler.h. AC_DEFUN([gl_PREREQ_SIG_HANDLER_H], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/signal_h.m40000644000000000000000000000010713726163410021357 xustar000000000000000024 mtime=1599661832.572 23 atime=1599661832.75 24 ctime=1599661998.364 libprelude-5.2.0/libmissing/m4/signal_h.m40000644000000000000000000000604213726163410020356 0ustar00rootroot00000000000000# signal_h.m4 serial 18 dnl Copyright (C) 2007-2018 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_SIGNAL_H], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T]) gl_NEXT_HEADERS([signal.h]) # AIX declares sig_atomic_t to already include volatile, and C89 compilers # then choke on 'volatile sig_atomic_t'. C99 requires that it compile. AC_CHECK_TYPE([volatile sig_atomic_t], [], [HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0], [[ #include ]]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) AC_REQUIRE([AC_TYPE_UID_T]) dnl Persuade glibc to define sighandler_t. AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_TYPE([sighandler_t], [], [HAVE_SIGHANDLER_T=0], [[ #include ]]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [pthread_sigmask sigaction sigaddset sigdelset sigemptyset sigfillset sigismember sigpending sigprocmask]) ]) AC_DEFUN([gl_CHECK_TYPE_SIGSET_T], [ AC_CHECK_TYPES([sigset_t], [gl_cv_type_sigset_t=yes], [gl_cv_type_sigset_t=no], [[ #include /* Mingw defines sigset_t not in , but in . */ #include ]]) if test $gl_cv_type_sigset_t != yes; then HAVE_SIGSET_T=0 fi ]) AC_DEFUN([gl_SIGNAL_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SIGNAL_H_DEFAULTS], [ GNULIB_PTHREAD_SIGMASK=0; AC_SUBST([GNULIB_PTHREAD_SIGMASK]) GNULIB_RAISE=0; AC_SUBST([GNULIB_RAISE]) GNULIB_SIGNAL_H_SIGPIPE=0; AC_SUBST([GNULIB_SIGNAL_H_SIGPIPE]) GNULIB_SIGPROCMASK=0; AC_SUBST([GNULIB_SIGPROCMASK]) GNULIB_SIGACTION=0; AC_SUBST([GNULIB_SIGACTION]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_POSIX_SIGNALBLOCKING=1; AC_SUBST([HAVE_POSIX_SIGNALBLOCKING]) HAVE_PTHREAD_SIGMASK=1; AC_SUBST([HAVE_PTHREAD_SIGMASK]) HAVE_RAISE=1; AC_SUBST([HAVE_RAISE]) HAVE_SIGSET_T=1; AC_SUBST([HAVE_SIGSET_T]) HAVE_SIGINFO_T=1; AC_SUBST([HAVE_SIGINFO_T]) HAVE_SIGACTION=1; AC_SUBST([HAVE_SIGACTION]) HAVE_STRUCT_SIGACTION_SA_SIGACTION=1; AC_SUBST([HAVE_STRUCT_SIGACTION_SA_SIGACTION]) HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1; AC_SUBST([HAVE_TYPE_VOLATILE_SIG_ATOMIC_T]) HAVE_SIGHANDLER_T=1; AC_SUBST([HAVE_SIGHANDLER_T]) REPLACE_PTHREAD_SIGMASK=0; AC_SUBST([REPLACE_PTHREAD_SIGMASK]) REPLACE_RAISE=0; AC_SUBST([REPLACE_RAISE]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/signalblocking.m40000644000000000000000000000010713726163410022561 xustar000000000000000024 mtime=1599661832.572 23 atime=1599661832.75 24 ctime=1599661998.366 libprelude-5.2.0/libmissing/m4/signalblocking.m40000644000000000000000000000164113726163410021560 0ustar00rootroot00000000000000# signalblocking.m4 serial 14 dnl Copyright (C) 2001-2002, 2006-2018 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. # Determine available signal blocking primitives. Three different APIs exist: # 1) POSIX: sigemptyset, sigaddset, sigprocmask # 2) SYSV: sighold, sigrelse # 3) BSD: sigblock, sigsetmask # For simplicity, here we check only for the POSIX signal blocking. AC_DEFUN([gl_SIGNALBLOCKING], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T]) if test $gl_cv_type_sigset_t = yes; then AC_CHECK_FUNC([sigprocmask], [gl_cv_func_sigprocmask=1]) fi if test -z "$gl_cv_func_sigprocmask"; then HAVE_POSIX_SIGNALBLOCKING=0 fi ]) # Prerequisites of lib/sigprocmask.c. AC_DEFUN([gl_PREREQ_SIGPROCMASK], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/size_max.m40000644000000000000000000000010713726163410021412 xustar000000000000000024 mtime=1599661832.572 23 atime=1599661832.75 24 ctime=1599661998.367 libprelude-5.2.0/libmissing/m4/size_max.m40000644000000000000000000000577013726163410020420 0ustar00rootroot00000000000000# size_max.m4 serial 10 dnl Copyright (C) 2003, 2005-2006, 2008-2018 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. dnl From Bruno Haible. AC_DEFUN([gl_SIZE_MAX], [ AC_CHECK_HEADERS([stdint.h]) dnl First test whether the system already has SIZE_MAX. AC_CACHE_CHECK([for SIZE_MAX], [gl_cv_size_max], [ gl_cv_size_max= AC_EGREP_CPP([Found it], [ #include #if HAVE_STDINT_H #include #endif #ifdef SIZE_MAX Found it #endif ], [gl_cv_size_max=yes]) if test -z "$gl_cv_size_max"; then dnl Define it ourselves. Here we assume that the type 'size_t' is not wider dnl than the type 'unsigned long'. Try hard to find a definition that can dnl be used in a preprocessor #if, i.e. doesn't contain a cast. AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1], [#include #include ], [size_t_bits_minus_1=]) AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)], [#include ], [fits_in_uint=]) if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then if test $fits_in_uint = 1; then dnl Even though SIZE_MAX fits in an unsigned int, it must be of type dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include extern size_t foo; extern unsigned long foo; ]], [[]])], [fits_in_uint=0]) fi dnl We cannot use 'expr' to simplify this expression, because 'expr' dnl works only with 'long' integers in the host environment, while we dnl might be cross-compiling from a 32-bit platform to a 64-bit platform. if test $fits_in_uint = 1; then gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" else gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" fi else dnl Shouldn't happen, but who knows... gl_cv_size_max='((size_t)~(size_t)0)' fi fi ]) if test "$gl_cv_size_max" != yes; then AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max], [Define as the maximum value of type 'size_t', if the system doesn't define it.]) fi dnl Don't redefine SIZE_MAX in config.h if config.h is re-included after dnl . Remember that the #undef in AH_VERBATIM gets replaced with dnl #define by AC_DEFINE_UNQUOTED. AH_VERBATIM([SIZE_MAX], [/* Define as the maximum value of type 'size_t', if the system doesn't define it. */ #ifndef SIZE_MAX # undef SIZE_MAX #endif]) ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. dnl Remove this when we can assume autoconf >= 2.61. m4_ifdef([AC_COMPUTE_INT], [], [ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/sleep.m40000644000000000000000000000010713726163410020703 xustar000000000000000024 mtime=1599661832.572 23 atime=1599661832.75 24 ctime=1599661998.369 libprelude-5.2.0/libmissing/m4/sleep.m40000644000000000000000000000425513726163410017706 0ustar00rootroot00000000000000# sleep.m4 serial 9 dnl Copyright (C) 2007-2018 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_FUNC_SLEEP], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl We expect to see the declaration of sleep() in a header file. dnl Older versions of mingw have a sleep() function that is an alias to dnl _sleep() in MSVCRT. It has a different signature than POSIX sleep(): dnl it takes the number of milliseconds as argument and returns void. dnl mingw does not declare this function. AC_CHECK_DECLS([sleep], , , [[#include ]]) AC_CHECK_FUNCS_ONCE([sleep]) if test $ac_cv_have_decl_sleep != yes; then HAVE_SLEEP=0 else dnl Cygwin 1.5.x has a bug where sleep can't exceed 49.7 days. AC_CACHE_CHECK([for working sleep], [gl_cv_func_sleep_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include #include #include static void handle_alarm (int sig) { if (sig != SIGALRM) _exit (2); } ]], [[ /* Failure to compile this test due to missing alarm is okay, since all such platforms (mingw) also lack sleep. */ unsigned int pentecost = 50 * 24 * 60 * 60; /* 50 days. */ unsigned int remaining; signal (SIGALRM, handle_alarm); alarm (1); remaining = sleep (pentecost); if (remaining > pentecost) return 3; if (remaining <= pentecost - 10) return 4; return 0; ]])], [gl_cv_func_sleep_works=yes], [gl_cv_func_sleep_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_sleep_works="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_sleep_works="guessing no" ;; # If we don't know, assume the worst. *) gl_cv_func_sleep_works="guessing no" ;; esac ])]) case "$gl_cv_func_sleep_works" in *yes) ;; *) REPLACE_SLEEP=1 ;; esac fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/snprintf.m40000644000000000000000000000010713726163410021436 xustar000000000000000024 mtime=1599661832.572 23 atime=1599661832.75 24 ctime=1599661998.371 libprelude-5.2.0/libmissing/m4/snprintf.m40000644000000000000000000000356713726163410020446 0ustar00rootroot00000000000000# snprintf.m4 serial 7 dnl Copyright (C) 2002-2004, 2007-2018 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. dnl Libintl 0.17 will replace snprintf only if it does not support %1$s, dnl but defers to any gnulib snprintf replacements. Therefore, gnulib dnl must guarantee that the decision for replacing snprintf is a superset dnl of the reasons checked by libintl. AC_DEFUN([gl_FUNC_SNPRINTF], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_cv_func_snprintf_usable=no AC_CHECK_FUNCS([snprintf]) if test $ac_cv_func_snprintf = yes; then gl_SNPRINTF_SIZE1 case "$gl_cv_func_snprintf_size1" in *yes) gl_SNPRINTF_RETVAL_C99 case "$gl_cv_func_snprintf_retval_c99" in *yes) gl_PRINTF_POSITIONS case "$gl_cv_func_printf_positions" in *yes) gl_cv_func_snprintf_usable=yes ;; esac ;; esac ;; esac fi if test $gl_cv_func_snprintf_usable = no; then gl_REPLACE_SNPRINTF fi AC_CHECK_DECLS_ONCE([snprintf]) if test $ac_cv_have_decl_snprintf = no; then HAVE_DECL_SNPRINTF=0 fi ]) AC_DEFUN([gl_REPLACE_SNPRINTF], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_LIBOBJ([snprintf]) if test $ac_cv_func_snprintf = yes; then REPLACE_SNPRINTF=1 else AC_CHECK_DECLS_ONCE([snprintf]) if test $ac_cv_have_decl_snprintf = yes; then dnl If the function is declared but does not appear to exist, it may be dnl defined as an inline function. In order to avoid a conflict, we have dnl to define rpl_snprintf, not snprintf. REPLACE_SNPRINTF=1 fi fi gl_PREREQ_SNPRINTF ]) # Prerequisites of lib/snprintf.c. AC_DEFUN([gl_PREREQ_SNPRINTF], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/socketlib.m40000644000000000000000000000010713726163410021552 xustar000000000000000024 mtime=1599661832.572 23 atime=1599661832.75 24 ctime=1599661998.372 libprelude-5.2.0/libmissing/m4/socketlib.m40000644000000000000000000000567113726163410020560 0ustar00rootroot00000000000000# socketlib.m4 serial 2 dnl Copyright (C) 2008-2018 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. dnl gl_SOCKETLIB dnl Determines the library to use for socket functions. dnl Sets and AC_SUBSTs LIBSOCKET. AC_DEFUN([gl_SOCKETLIB], [ gl_PREREQ_SYS_H_WINSOCK2 dnl for HAVE_WINSOCK2_H LIBSOCKET= if test $HAVE_WINSOCK2_H = 1; then dnl Native Windows API (not Cygwin). AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32], [gl_cv_func_wsastartup], [ gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifdef HAVE_WINSOCK2_H # include #endif]], [[ WORD wVersionRequested = MAKEWORD(1, 1); WSADATA wsaData; int err = WSAStartup(wVersionRequested, &wsaData); WSACleanup ();]])], gl_cv_func_wsastartup=yes, gl_cv_func_wsastartup=no) LIBS="$gl_save_LIBS" ]) if test "$gl_cv_func_wsastartup" = "yes"; then AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.]) LIBSOCKET='-lws2_32' fi else dnl Unix API. dnl Solaris has most socket functions in libsocket. dnl Haiku has most socket functions in libnetwork. dnl BeOS has most socket functions in libnet. dnl On HP-UX, do NOT link with libxnet, because in 64-bit mode this would dnl break code (e.g. in libraries) that invokes accept(), getpeername(), dnl getsockname(), getsockopt(), or recvfrom() with a 32-bit addrlen. See dnl "man xopen_networking" for details. AC_CACHE_CHECK([for library containing setsockopt], [gl_cv_lib_socket], [ gl_cv_lib_socket= AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern #ifdef __cplusplus "C" #endif char setsockopt();]], [[setsockopt();]])], [], [gl_save_LIBS="$LIBS" LIBS="$gl_save_LIBS -lsocket" AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern #ifdef __cplusplus "C" #endif char setsockopt();]], [[setsockopt();]])], [gl_cv_lib_socket="-lsocket"]) if test -z "$gl_cv_lib_socket"; then LIBS="$gl_save_LIBS -lnetwork" AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern #ifdef __cplusplus "C" #endif char setsockopt();]], [[setsockopt();]])], [gl_cv_lib_socket="-lnetwork"]) if test -z "$gl_cv_lib_socket"; then LIBS="$gl_save_LIBS -lnet" AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern #ifdef __cplusplus "C" #endif char setsockopt();]], [[setsockopt();]])], [gl_cv_lib_socket="-lnet"]) fi fi LIBS="$gl_save_LIBS" ]) if test -z "$gl_cv_lib_socket"; then gl_cv_lib_socket="none needed" fi ]) if test "$gl_cv_lib_socket" != "none needed"; then LIBSOCKET="$gl_cv_lib_socket" fi fi AC_SUBST([LIBSOCKET]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/sockets.m40000644000000000000000000000010713726163410021246 xustar000000000000000024 mtime=1599661832.573 23 atime=1599661832.75 24 ctime=1599661998.374 libprelude-5.2.0/libmissing/m4/sockets.m40000644000000000000000000000070713726163410020247 0ustar00rootroot00000000000000# sockets.m4 serial 7 dnl Copyright (C) 2008-2018 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_SOCKETS], [ AC_REQUIRE([AC_C_INLINE]) AC_REQUIRE([gl_SOCKETLIB]) gl_PREREQ_SOCKETS ]) # Prerequisites of lib/sockets.c. AC_DEFUN([gl_PREREQ_SOCKETS], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/socklen.m40000644000000000000000000000010713726163410021231 xustar000000000000000024 mtime=1599661832.573 23 atime=1599661832.75 24 ctime=1599661998.376 libprelude-5.2.0/libmissing/m4/socklen.m40000644000000000000000000000623613726163410020235 0ustar00rootroot00000000000000# socklen.m4 serial 10 dnl Copyright (C) 2005-2007, 2009-2018 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. dnl From Albert Chin, Windows fixes from Simon Josefsson. dnl Check for socklen_t: historically on BSD it is an int, and in dnl POSIX 1g it is a type of its own, but some platforms use different dnl types for the argument to getsockopt, getpeername, etc.: dnl HP-UX 10.20, IRIX 6.5, OSF/1 4.0, Interix 3.5, BeOS. dnl So we have to test to find something that will work. AC_DEFUN([gl_TYPE_SOCKLEN_T], [AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])dnl AC_CHECK_TYPE([socklen_t], , [AC_MSG_CHECKING([for socklen_t equivalent]) AC_CACHE_VAL([gl_cv_socklen_t_equiv], [# Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername gl_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void; do for t in int size_t "unsigned int" "long int" "unsigned long int"; do AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[#include #include int getpeername (int, $arg2 *, $t *);]], [[$t len; getpeername (0, 0, &len);]])], [gl_cv_socklen_t_equiv="$t"]) test "$gl_cv_socklen_t_equiv" != "" && break done test "$gl_cv_socklen_t_equiv" != "" && break done ]) if test "$gl_cv_socklen_t_equiv" = ""; then AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) fi AC_MSG_RESULT([$gl_cv_socklen_t_equiv]) AC_DEFINE_UNQUOTED([socklen_t], [$gl_cv_socklen_t_equiv], [type to use in place of socklen_t if not defined])], [gl_SOCKET_HEADERS])]) dnl On mingw32, socklen_t is in ws2tcpip.h ('int'), so we try to find dnl it there too. But on Cygwin, wc2tcpip.h must not be included. Users dnl of this module should use the same include pattern as gl_SOCKET_HEADERS. dnl When you change this macro, keep also in sync: dnl - gl_CHECK_SOCKET_HEADERS, dnl - the Include section of modules/socklen. AC_DEFUN([gl_SOCKET_HEADERS], [ /* is not needed according to POSIX, but the in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #if HAVE_SYS_SOCKET_H # include #elif HAVE_WS2TCPIP_H # include #endif ]) dnl Tests for the existence of the header for socket facilities. dnl Defines the C macros HAVE_SYS_SOCKET_H, HAVE_WS2TCPIP_H. dnl This macro must match gl_SOCKET_HEADERS. AC_DEFUN([gl_CHECK_SOCKET_HEADERS], [AC_CHECK_HEADERS_ONCE([sys/socket.h]) if test $ac_cv_header_sys_socket_h = no; then dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make dnl the check for those headers unconditional; yet cygwin reports dnl that the headers are present but cannot be compiled (since on dnl cygwin, all socket information should come from sys/socket.h). AC_CHECK_HEADERS([ws2tcpip.h]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/sockpfaf.m40000644000000000000000000000010713726163410021367 xustar000000000000000024 mtime=1599661832.573 23 atime=1599661832.75 24 ctime=1599661998.377 libprelude-5.2.0/libmissing/m4/sockpfaf.m40000644000000000000000000000522613726163410020371 0ustar00rootroot00000000000000# sockpfaf.m4 serial 8 dnl Copyright (C) 2004, 2006, 2009-2018 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. dnl Test for some common socket protocol families (PF_INET, PF_INET6, ...) dnl and some common address families (AF_INET, AF_INET6, ...). dnl This test assumes that a system supports an address family if and only if dnl it supports the corresponding protocol family. dnl From Bruno Haible. AC_DEFUN([gl_SOCKET_FAMILIES], [ AC_REQUIRE([gl_HEADER_SYS_SOCKET]) AC_CHECK_HEADERS_ONCE([netinet/in.h]) AC_MSG_CHECKING([for IPv4 sockets]) AC_CACHE_VAL([gl_cv_socket_ipv4], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_WINSOCK2_H #include #endif]], [[int x = AF_INET; struct in_addr y; struct sockaddr_in z; if (&x && &y && &z) return 0;]])], gl_cv_socket_ipv4=yes, gl_cv_socket_ipv4=no)]) AC_MSG_RESULT([$gl_cv_socket_ipv4]) if test $gl_cv_socket_ipv4 = yes; then AC_DEFINE([HAVE_IPV4], [1], [Define to 1 if defines AF_INET.]) fi AC_MSG_CHECKING([for IPv6 sockets]) AC_CACHE_VAL([gl_cv_socket_ipv6], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_WINSOCK2_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif]], [[int x = AF_INET6; struct in6_addr y; struct sockaddr_in6 z; if (&x && &y && &z) return 0;]])], gl_cv_socket_ipv6=yes, gl_cv_socket_ipv6=no)]) AC_MSG_RESULT([$gl_cv_socket_ipv6]) if test $gl_cv_socket_ipv6 = yes; then AC_DEFINE([HAVE_IPV6], [1], [Define to 1 if defines AF_INET6.]) fi ]) AC_DEFUN([gl_SOCKET_FAMILY_UNIX], [ AC_REQUIRE([gl_HEADER_SYS_SOCKET]) AC_CHECK_HEADERS_ONCE([sys/un.h]) AC_MSG_CHECKING([for UNIX domain sockets]) AC_CACHE_VAL([gl_cv_socket_unix], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_SYS_UN_H #include #endif #ifdef HAVE_WINSOCK2_H #include #endif]], [[int x = AF_UNIX; struct sockaddr_un y; if (&x && &y) return 0;]])], gl_cv_socket_unix=yes, gl_cv_socket_unix=no)]) AC_MSG_RESULT([$gl_cv_socket_unix]) if test $gl_cv_socket_unix = yes; then AC_DEFINE([HAVE_UNIXSOCKET], [1], [Define to 1 if defines AF_UNIX.]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/ssize_t.m40000644000000000000000000000010713726163410021253 xustar000000000000000024 mtime=1599661832.573 23 atime=1599661832.75 24 ctime=1599661998.379 libprelude-5.2.0/libmissing/m4/ssize_t.m40000644000000000000000000000146313726163410020254 0ustar00rootroot00000000000000# ssize_t.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2001-2003, 2006, 2010-2018 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. dnl From Bruno Haible. dnl Test whether ssize_t is defined. AC_DEFUN([gt_TYPE_SSIZE_T], [ AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x;]])], [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])]) if test $gt_cv_ssize_t = no; then AC_DEFINE([ssize_t], [int], [Define as a signed type of the same size as size_t.]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/stat-time.m40000644000000000000000000000010713726163410021502 xustar000000000000000024 mtime=1599661832.573 23 atime=1599661832.75 24 ctime=1599661998.381 libprelude-5.2.0/libmissing/m4/stat-time.m40000644000000000000000000000605713726163410020507 0ustar00rootroot00000000000000# Checks for stat-related time functions. # Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2018 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # st_atim.tv_nsec - Linux, Solaris, Cygwin # st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE # st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE # st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1) # st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway) # st_birthtim - Cygwin 1.7.0+ AC_DEFUN([gl_STAT_TIME], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CHECK_MEMBERS([struct stat.st_atim.tv_nsec], [AC_CACHE_CHECK([whether struct stat.st_atim is of type struct timespec], [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[ #include #include #if HAVE_SYS_TIME_H # include #endif #include struct timespec ts; struct stat st; ]], [[ st.st_atim = ts; ]])], [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes], [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])]) if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then AC_DEFINE([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [1], [Define to 1 if the type of the st_atim member of a struct stat is struct timespec.]) fi], [AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [], [AC_CHECK_MEMBERS([struct stat.st_atimensec], [], [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [], [#include #include ])], [#include #include ])], [#include #include ])], [#include #include ]) ]) # Check for st_birthtime, a feature from UFS2 (FreeBSD, NetBSD, OpenBSD, etc.) # and NTFS (Cygwin). # There was a time when this field was named st_createtime (21 June # 2002 to 16 July 2002) But that window is very small and applied only # to development code, so systems still using that configuration are # not supported. See revisions 1.10 and 1.11 of FreeBSD's # src/sys/ufs/ufs/dinode.h. # AC_DEFUN([gl_STAT_BIRTHTIME], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CHECK_MEMBERS([struct stat.st_birthtimespec.tv_nsec], [], [AC_CHECK_MEMBERS([struct stat.st_birthtimensec], [], [AC_CHECK_MEMBERS([struct stat.st_birthtim.tv_nsec], [], [], [#include #include ])], [#include #include ])], [#include #include ]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/stat.m40000644000000000000000000000011013726163410020540 xustar000000000000000024 mtime=1599661832.573 24 atime=1599661832.751 24 ctime=1599661998.382 libprelude-5.2.0/libmissing/m4/stat.m40000644000000000000000000000507413726163410017551 0ustar00rootroot00000000000000# serial 15 # Copyright (C) 2009-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STAT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([lstat]) case "$host_os" in mingw*) dnl On this platform, the original stat() returns st_atime, st_mtime, dnl st_ctime values that are affected by the time zone. REPLACE_STAT=1 ;; *) dnl AIX 7.1, Solaris 9, mingw64 mistakenly succeed on stat("file/"). dnl (For mingw, this is due to a broken stat() override in libmingwex.a.) dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/"). AC_CACHE_CHECK([whether stat handles trailing slashes on files], [gl_cv_func_stat_file_slash], [touch conftest.tmp # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.tmp conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[int result = 0; struct stat st; if (!stat ("conftest.tmp/", &st)) result |= 1; #if HAVE_LSTAT if (!stat ("conftest.lnk/", &st)) result |= 2; #endif return result; ]])], [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no], [case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_stat_file_slash="guessing no" ;; esac ]) rm -f conftest.tmp conftest.lnk]) case $gl_cv_func_stat_file_slash in *no) REPLACE_STAT=1 AC_DEFINE([REPLACE_FUNC_STAT_FILE], [1], [Define to 1 if stat needs help when passed a file name with a trailing slash]);; esac case $host_os in dnl Solaris stat can return a negative tv_nsec. solaris*) REPLACE_FSTAT=1 ;; esac ;; esac ]) # Prerequisites of lib/stat.c and lib/stat-w32.c. AC_DEFUN([gl_PREREQ_STAT], [ AC_REQUIRE([gl_HEADER_SYS_STAT_H]) : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/stdalign.m40000644000000000000000000000011013726163410021372 xustar000000000000000024 mtime=1599661832.574 24 atime=1599661832.751 24 ctime=1599661998.384 libprelude-5.2.0/libmissing/m4/stdalign.m40000644000000000000000000000442713726163410020404 0ustar00rootroot00000000000000# Check for stdalign.h that conforms to C11. dnl Copyright 2011-2018 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. # Prepare for substituting if it is not supported. AC_DEFUN([gl_STDALIGN_H], [ AC_CACHE_CHECK([for working stdalign.h], [gl_cv_header_working_stdalign_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include #include /* Test that alignof yields a result consistent with offsetof. This catches GCC bug 52023 . */ #ifdef __cplusplus template struct alignof_helper { char a; t b; }; # define ao(type) offsetof (alignof_helper, b) #else # define ao(type) offsetof (struct { char a; type b; }, b) #endif char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1]; char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; /* Test _Alignas only on platforms where gnulib can help. */ #if \ ((defined __cplusplus && 201103 <= __cplusplus) \ || (defined __APPLE__ && defined __MACH__ \ ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ : __GNUC__) \ || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \ || 1300 <= _MSC_VER) struct alignas_test { char c; char alignas (8) alignas_8; }; char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 ? 1 : -1]; #endif ]])], [gl_cv_header_working_stdalign_h=yes], [gl_cv_header_working_stdalign_h=no])]) if test $gl_cv_header_working_stdalign_h = yes; then STDALIGN_H='' else STDALIGN_H='stdalign.h' fi AC_SUBST([STDALIGN_H]) AM_CONDITIONAL([GL_GENERATE_STDALIGN_H], [test -n "$STDALIGN_H"]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/stdbool.m40000644000000000000000000000011013726163410021233 xustar000000000000000024 mtime=1599661832.574 24 atime=1599661832.751 24 ctime=1599661998.386 libprelude-5.2.0/libmissing/m4/stdbool.m40000644000000000000000000000671613726163410020250 0ustar00rootroot00000000000000# Check for stdbool.h that conforms to C99. dnl Copyright (C) 2002-2006, 2009-2018 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. #serial 7 # Prepare for substituting if it is not supported. AC_DEFUN([AM_STDBOOL_H], [ AC_REQUIRE([AC_CHECK_HEADER_STDBOOL]) # Define two additional variables used in the Makefile substitution. if test "$ac_cv_header_stdbool_h" = yes; then STDBOOL_H='' else STDBOOL_H='stdbool.h' fi AC_SUBST([STDBOOL_H]) AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"]) if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 else HAVE__BOOL=0 fi AC_SUBST([HAVE__BOOL]) ]) # AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future. AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H]) # This version of the macro is needed in autoconf <= 2.68. AC_DEFUN([AC_CHECK_HEADER_STDBOOL], [AC_CACHE_CHECK([for stdbool.h that conforms to C99], [ac_cv_header_stdbool_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #ifdef __cplusplus typedef bool Bool; #else typedef _Bool Bool; #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { Bool s: 1; Bool t; bool u: 1; bool v; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html */ Bool q = true; Bool *pq = &q; bool *qq = &q; ]], [[ bool e = &s; *pq |= q; *pq |= ! q; *qq |= q; *qq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq + !qq); ]])], [ac_cv_header_stdbool_h=yes], [ac_cv_header_stdbool_h=no])]) AC_CHECK_TYPES([_Bool]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/stddef_h.m40000644000000000000000000000011013726163410021345 xustar000000000000000024 mtime=1599661832.574 24 atime=1599661832.751 24 ctime=1599661998.387 libprelude-5.2.0/libmissing/m4/stddef_h.m40000644000000000000000000000321613726163410020352 0ustar00rootroot00000000000000dnl A placeholder for , for platforms that have issues. # stddef_h.m4 serial 5 dnl Copyright (C) 2009-2018 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_STDDEF_H], [ AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) AC_REQUIRE([gt_TYPE_WCHAR_T]) STDDEF_H= AC_CHECK_TYPE([max_align_t], [], [HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h], [[#include ]]) if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions], [gl_cv_decl_null_works], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include int test[2 * (sizeof NULL == sizeof (void *)) -1]; ]])], [gl_cv_decl_null_works=yes], [gl_cv_decl_null_works=no])]) if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi AC_SUBST([STDDEF_H]) AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"]) if test -n "$STDDEF_H"; then gl_NEXT_HEADERS([stddef.h]) fi ]) AC_DEFUN([gl_STDDEF_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_STDDEF_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. REPLACE_NULL=0; AC_SUBST([REPLACE_NULL]) HAVE_MAX_ALIGN_T=1; AC_SUBST([HAVE_MAX_ALIGN_T]) HAVE_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/stdint.m40000644000000000000000000000011013726163410021072 xustar000000000000000024 mtime=1599661832.574 24 atime=1599661832.751 24 ctime=1599661998.389 libprelude-5.2.0/libmissing/m4/stdint.m40000644000000000000000000004363713726163410020112 0ustar00rootroot00000000000000# stdint.m4 serial 52 dnl Copyright (C) 2001-2018 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. dnl From Paul Eggert and Bruno Haible. dnl Test whether is supported or must be substituted. AC_DEFUN_ONCE([gl_STDINT_H], [ AC_PREREQ([2.59])dnl AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_LIMITS_H]) AC_REQUIRE([gt_TYPE_WINT_T]) dnl Check for long long int and unsigned long long int. AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) if test $ac_cv_type_long_long_int = yes; then HAVE_LONG_LONG_INT=1 else HAVE_LONG_LONG_INT=0 fi AC_SUBST([HAVE_LONG_LONG_INT]) AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) if test $ac_cv_type_unsigned_long_long_int = yes; then HAVE_UNSIGNED_LONG_LONG_INT=1 else HAVE_UNSIGNED_LONG_LONG_INT=0 fi AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT]) dnl Check for , in the same way as gl_WCHAR_H does. AC_CHECK_HEADERS_ONCE([wchar.h]) if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi AC_SUBST([HAVE_WCHAR_H]) dnl Check for . dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h. if test $ac_cv_header_inttypes_h = yes; then HAVE_INTTYPES_H=1 else HAVE_INTTYPES_H=0 fi AC_SUBST([HAVE_INTTYPES_H]) dnl Check for . dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h. if test $ac_cv_header_sys_types_h = yes; then HAVE_SYS_TYPES_H=1 else HAVE_SYS_TYPES_H=0 fi AC_SUBST([HAVE_SYS_TYPES_H]) gl_CHECK_NEXT_HEADERS([stdint.h]) if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else HAVE_STDINT_H=0 fi AC_SUBST([HAVE_STDINT_H]) dnl Now see whether we need a substitute . if test $ac_cv_header_stdint_h = yes; then AC_CACHE_CHECK([whether stdint.h conforms to C99], [gl_cv_header_working_stdint_h], [gl_cv_header_working_stdint_h=no AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) #error "WCHAR_MIN, WCHAR_MAX not defined in " #endif ] gl_STDINT_INCLUDES [ #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; #endif #ifdef INT16_MAX int16_t a2 = INT16_MAX; int16_t a2min = INT16_MIN; #endif #ifdef INT32_MAX int32_t a3 = INT32_MAX; int32_t a3min = INT32_MIN; #endif #ifdef INT64_MAX int64_t a4 = INT64_MAX; int64_t a4min = INT64_MIN; #endif #ifdef UINT8_MAX uint8_t b1 = UINT8_MAX; #else typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; #endif #ifdef UINT16_MAX uint16_t b2 = UINT16_MAX; #endif #ifdef UINT32_MAX uint32_t b3 = UINT32_MAX; #endif #ifdef UINT64_MAX uint64_t b4 = UINT64_MAX; #endif int_least8_t c1 = INT8_C (0x7f); int_least8_t c1max = INT_LEAST8_MAX; int_least8_t c1min = INT_LEAST8_MIN; int_least16_t c2 = INT16_C (0x7fff); int_least16_t c2max = INT_LEAST16_MAX; int_least16_t c2min = INT_LEAST16_MIN; int_least32_t c3 = INT32_C (0x7fffffff); int_least32_t c3max = INT_LEAST32_MAX; int_least32_t c3min = INT_LEAST32_MIN; int_least64_t c4 = INT64_C (0x7fffffffffffffff); int_least64_t c4max = INT_LEAST64_MAX; int_least64_t c4min = INT_LEAST64_MIN; uint_least8_t d1 = UINT8_C (0xff); uint_least8_t d1max = UINT_LEAST8_MAX; uint_least16_t d2 = UINT16_C (0xffff); uint_least16_t d2max = UINT_LEAST16_MAX; uint_least32_t d3 = UINT32_C (0xffffffff); uint_least32_t d3max = UINT_LEAST32_MAX; uint_least64_t d4 = UINT64_C (0xffffffffffffffff); uint_least64_t d4max = UINT_LEAST64_MAX; int_fast8_t e1 = INT_FAST8_MAX; int_fast8_t e1min = INT_FAST8_MIN; int_fast16_t e2 = INT_FAST16_MAX; int_fast16_t e2min = INT_FAST16_MIN; int_fast32_t e3 = INT_FAST32_MAX; int_fast32_t e3min = INT_FAST32_MIN; int_fast64_t e4 = INT_FAST64_MAX; int_fast64_t e4min = INT_FAST64_MIN; uint_fast8_t f1 = UINT_FAST8_MAX; uint_fast16_t f2 = UINT_FAST16_MAX; uint_fast32_t f3 = UINT_FAST32_MAX; uint_fast64_t f4 = UINT_FAST64_MAX; #ifdef INTPTR_MAX intptr_t g = INTPTR_MAX; intptr_t gmin = INTPTR_MIN; #endif #ifdef UINTPTR_MAX uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; /* Check that SIZE_MAX has the correct type, if possible. */ #if 201112 <= __STDC_VERSION__ int k = _Generic (SIZE_MAX, size_t: 0); #elif (2 <= __GNUC__ || defined __IBM__TYPEOF__ \ || (0x5110 <= __SUNPRO_C && !__STDC__)) extern size_t k; extern __typeof__ (SIZE_MAX) k; #endif #include /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) ((t) 0 < (t) -1 \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) struct s { int check_PTRDIFF: PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; /* Detect bug in FreeBSD 6.0 / ia64. */ int check_SIG_ATOMIC: SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ? 1 : -1; int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; int check_WCHAR: WCHAR_MIN == TYPE_MINIMUM (wchar_t) && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ? 1 : -1; /* Detect bug in mingw. */ int check_WINT: WINT_MIN == TYPE_MINIMUM (wint_t) && WINT_MAX == TYPE_MAXIMUM (wint_t) ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; int check_UINT16_C: (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; /* Detect bugs in OpenBSD 3.9 stdint.h. */ #ifdef UINT8_MAX int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; #endif #ifdef UINT16_MAX int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; #endif #ifdef UINT32_MAX int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; #endif #ifdef UINT64_MAX int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; #endif int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; ]])], [dnl Determine whether the various *_MIN, *_MAX macros are usable dnl in preprocessor expression. We could do it by compiling a test dnl program for each of these macros. It is faster to run a program dnl that inspects the macro expansion. dnl This detects a bug on HP-UX 11.23/ia64. AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include ] gl_STDINT_INCLUDES [ #include #include #define MVAL(macro) MVAL1(macro) #define MVAL1(expression) #expression static const char *macro_values[] = { #ifdef INT8_MAX MVAL (INT8_MAX), #endif #ifdef INT16_MAX MVAL (INT16_MAX), #endif #ifdef INT32_MAX MVAL (INT32_MAX), #endif #ifdef INT64_MAX MVAL (INT64_MAX), #endif #ifdef UINT8_MAX MVAL (UINT8_MAX), #endif #ifdef UINT16_MAX MVAL (UINT16_MAX), #endif #ifdef UINT32_MAX MVAL (UINT32_MAX), #endif #ifdef UINT64_MAX MVAL (UINT64_MAX), #endif NULL }; ]], [[ const char **mv; for (mv = macro_values; *mv != NULL; mv++) { const char *value = *mv; /* Test whether it looks like a cast expression. */ if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 || strncmp (value, "((int)"/*)*/, 6) == 0 || strncmp (value, "((signed short)"/*)*/, 15) == 0 || strncmp (value, "((signed char)"/*)*/, 14) == 0) return mv - macro_values + 1; } return 0; ]])], [gl_cv_header_working_stdint_h=yes], [], [case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_header_working_stdint_h="guessing yes" ;; # In general, assume it works. *) gl_cv_header_working_stdint_h="guessing yes" ;; esac ]) ]) ]) fi HAVE_C99_STDINT_H=0 HAVE_SYS_BITYPES_H=0 HAVE_SYS_INTTYPES_H=0 STDINT_H=stdint.h case "$gl_cv_header_working_stdint_h" in *yes) HAVE_C99_STDINT_H=1 dnl Now see whether the system works without dnl __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS defined. AC_CACHE_CHECK([whether stdint.h predates C++11], [gl_cv_header_stdint_predates_cxx11_h], [gl_cv_header_stdint_predates_cxx11_h=yes AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include ] gl_STDINT_INCLUDES [ intmax_t im = INTMAX_MAX; int32_t i32 = INT32_C (0x7fffffff); ]])], [gl_cv_header_stdint_predates_cxx11_h=no])]) if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then AC_DEFINE([__STDC_CONSTANT_MACROS], [1], [Define to 1 if the system predates C++11.]) AC_DEFINE([__STDC_LIMIT_MACROS], [1], [Define to 1 if the system predates C++11.]) fi AC_CACHE_CHECK([whether stdint.h has UINTMAX_WIDTH etc.], [gl_cv_header_stdint_width], [gl_cv_header_stdint_width=no AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include ]gl_STDINT_INCLUDES[ int iw = UINTMAX_WIDTH; ]])], [gl_cv_header_stdint_width=yes])]) if test "$gl_cv_header_stdint_width" = yes; then STDINT_H= fi ;; *) dnl Check for , and for dnl (used in Linux libc4 >= 4.6.7 and libc5). AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h]) if test $ac_cv_header_sys_inttypes_h = yes; then HAVE_SYS_INTTYPES_H=1 fi if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 fi gl_STDINT_TYPE_PROPERTIES ;; esac dnl The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH. gl_REPLACE_LIMITS_H AC_SUBST([HAVE_C99_STDINT_H]) AC_SUBST([HAVE_SYS_BITYPES_H]) AC_SUBST([HAVE_SYS_INTTYPES_H]) AC_SUBST([STDINT_H]) AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"]) ]) dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES) dnl Determine the size of each of the given types in bits. AC_DEFUN([gl_STDINT_BITSIZEOF], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), [Define to the number of bits in type ']gltype['.])]) for gltype in $1 ; do AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}], [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT], [$2 #include ], [result=unknown]) eval gl_cv_bitsizeof_${gltype}=\$result ]) eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then dnl Use a nonempty default, because some compilers, such as IRIX 5 cc, dnl do a syntax check even on unused #if conditions and give an error dnl on valid C code like this: dnl #if 0 dnl # if > 32 dnl # endif dnl #endif result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result]) eval BITSIZEOF_${GLTYPE}=\$result done m4_foreach_w([gltype], [$1], [AC_SUBST([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) ]) dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES) dnl Determine the signedness of each of the given types. dnl Define HAVE_SIGNED_TYPE if type is signed. AC_DEFUN([gl_CHECK_TYPES_SIGNED], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), [Define to 1 if ']gltype[' is a signed integer type.])]) for gltype in $1 ; do AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([$2[ int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])], result=yes, result=no) eval gl_cv_type_${gltype}_signed=\$result ]) eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], [1]) eval HAVE_SIGNED_${GLTYPE}=1 else eval HAVE_SIGNED_${GLTYPE}=0 fi done m4_foreach_w([gltype], [$1], [AC_SUBST([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) ]) dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES) dnl Determine the suffix to use for integer constants of the given types. dnl Define t_SUFFIX for each such type. AC_DEFUN([gl_INTEGER_TYPE_SUFFIX], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX], [Define to l, ll, u, ul, ull, etc., as suitable for constants of type ']gltype['.])]) for gltype in $1 ; do AC_CACHE_CHECK([for $gltype integer literal suffix], [gl_cv_type_${gltype}_suffix], [eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([$2[ extern $gltype foo; extern $gltype1 foo;]])], [eval gl_cv_type_${gltype}_suffix=\$glsuf]) eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done]) GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result]) done m4_foreach_w([gltype], [$1], [AC_SUBST(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])]) ]) dnl gl_STDINT_INCLUDES AC_DEFUN([gl_STDINT_INCLUDES], [[ /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif ]]) dnl gl_STDINT_TYPE_PROPERTIES dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t dnl of interest to stdint.in.h. AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], [ AC_REQUIRE([gl_MULTIARCH]) if test $APPLE_UNIVERSAL_BUILD = 0; then gl_STDINT_BITSIZEOF([ptrdiff_t size_t], [gl_STDINT_INCLUDES]) fi gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t], [gl_STDINT_INCLUDES]) fi gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99 dnl requirement that wint_t is "unchanged by default argument promotions". dnl In this case gnulib's and override wint_t. dnl Set the variable BITSIZEOF_WINT_T accordingly. if test $GNULIB_OVERRIDES_WINT_T = 1; then BITSIZEOF_WINT_T=32 fi ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. dnl Remove this when we can assume autoconf >= 2.61. m4_ifdef([AC_COMPUTE_INT], [], [ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/stdint_h.m40000644000000000000000000000011013726163410021401 xustar000000000000000024 mtime=1599661832.574 24 atime=1599661832.751 24 ctime=1599661998.391 libprelude-5.2.0/libmissing/m4/stdint_h.m40000644000000000000000000000174313726163410020411 0ustar00rootroot00000000000000# stdint_h.m4 serial 9 dnl Copyright (C) 1997-2004, 2006, 2008-2018 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. dnl From Paul Eggert. # Define HAVE_STDINT_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_STDINT_H], [ AC_CACHE_CHECK([for stdint.h], [gl_cv_header_stdint_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include #include ]], [[uintmax_t i = (uintmax_t) -1; return !i;]])], [gl_cv_header_stdint_h=yes], [gl_cv_header_stdint_h=no])]) if test $gl_cv_header_stdint_h = yes; then AC_DEFINE_UNQUOTED([HAVE_STDINT_H_WITH_UINTMAX], [1], [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/stdio_h.m40000644000000000000000000000011013726163410021216 xustar000000000000000024 mtime=1599661832.575 24 atime=1599661832.751 24 ctime=1599661998.392 libprelude-5.2.0/libmissing/m4/stdio_h.m40000644000000000000000000002522713726163410020231 0ustar00rootroot00000000000000# stdio_h.m4 serial 49 dnl Copyright (C) 2007-2018 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_STDIO_H], [ AH_VERBATIM([MINGW_ANSI_STDIO], [/* Use GNU style printf and scanf. */ #ifndef __USE_MINGW_ANSI_STDIO # undef __USE_MINGW_ANSI_STDIO #endif ]) AC_DEFINE([__USE_MINGW_ANSI_STDIO]) AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_NEXT_HEADERS([stdio.h]) dnl Determine whether __USE_MINGW_ANSI_STDIO makes printf and dnl inttypes.h behave like gnu instead of system; we must give our dnl printf wrapper the right attribute to match. AC_CACHE_CHECK([which flavor of printf attribute matches inttypes macros], [gl_cv_func_printf_attribute_flavor], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #define __STDC_FORMAT_MACROS 1 #include #include /* For non-mingw systems, compilation will trivially succeed. For mingw, compilation will succeed for older mingw (system printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ #if (defined _WIN32 && ! defined __CYGWIN__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; #endif ]])], [gl_cv_func_printf_attribute_flavor=system], [gl_cv_func_printf_attribute_flavor=gnu])]) if test "$gl_cv_func_printf_attribute_flavor" = gnu; then AC_DEFINE([GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU], [1], [Define to 1 if printf and friends should be labeled with attribute "__gnu_printf__" instead of "__printf__"]) fi dnl No need to create extra modules for these functions. Everyone who uses dnl likely needs them. GNULIB_FSCANF=1 gl_MODULE_INDICATOR([fscanf]) GNULIB_SCANF=1 gl_MODULE_INDICATOR([scanf]) GNULIB_FGETC=1 GNULIB_GETC=1 GNULIB_GETCHAR=1 GNULIB_FGETS=1 GNULIB_FREAD=1 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING dnl or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_READ_FUNCS=1 AC_LIBOBJ([stdio-read]) fi ]) dnl No need to create extra modules for these functions. Everyone who uses dnl likely needs them. GNULIB_FPRINTF=1 GNULIB_PRINTF=1 GNULIB_VFPRINTF=1 GNULIB_VPRINTF=1 GNULIB_FPUTC=1 GNULIB_PUTC=1 GNULIB_PUTCHAR=1 GNULIB_FPUTS=1 GNULIB_PUTS=1 GNULIB_FWRITE=1 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or dnl GNULIB_SIGPIPE redundant. m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then REPLACE_STDIO_WRITE_FUNCS=1 AC_LIBOBJ([stdio-write]) fi ]) dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING dnl or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_WRITE_FUNCS=1 AC_LIBOBJ([stdio-write]) fi ]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by both C89 and C11. gl_WARN_ON_USE_PREPARE([[#include ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf]) ]) AC_DEFUN([gl_STDIO_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_STDIO_H_DEFAULTS], [ GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF]) GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE]) GNULIB_FDOPEN=0; AC_SUBST([GNULIB_FDOPEN]) GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH]) GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC]) GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS]) GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN]) GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF]) GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX]) GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE]) GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC]) GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS]) GNULIB_FREAD=0; AC_SUBST([GNULIB_FREAD]) GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN]) GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF]) GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK]) GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO]) GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL]) GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO]) GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE]) GNULIB_GETC=0; AC_SUBST([GNULIB_GETC]) GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR]) GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM]) GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE]) GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF]) GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX]) GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE]) GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR]) GNULIB_POPEN=0; AC_SUBST([GNULIB_POPEN]) GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF]) GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX]) GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC]) GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR]) GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS]) GNULIB_REMOVE=0; AC_SUBST([GNULIB_REMOVE]) GNULIB_RENAME=0; AC_SUBST([GNULIB_RENAME]) GNULIB_RENAMEAT=0; AC_SUBST([GNULIB_RENAMEAT]) GNULIB_SCANF=0; AC_SUBST([GNULIB_SCANF]) GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF]) GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX]) GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING]) GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE]) GNULIB_TMPFILE=0; AC_SUBST([GNULIB_TMPFILE]) GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF]) GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF]) GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF]) GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF]) GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF]) GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX]) GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF]) GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX]) GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF]) GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE]) HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO]) HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO]) HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM]) HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE]) HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF]) HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF]) HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF]) HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF]) HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO]) HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO]) HAVE_PCLOSE=1; AC_SUBST([HAVE_PCLOSE]) HAVE_POPEN=1; AC_SUBST([HAVE_POPEN]) HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT]) HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF]) HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF]) REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF]) REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE]) REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN]) REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN]) REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE]) REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN]) REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK]) REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO]) REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL]) REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO]) REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM]) REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE]) REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF]) REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR]) REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN]) REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF]) REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE]) REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME]) REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT]) REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF]) REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF]) REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS]) REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS]) REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE]) REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF]) REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF]) REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF]) REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF]) REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/stdlib_h.m40000644000000000000000000000011013726163410021355 xustar000000000000000024 mtime=1599661832.575 24 atime=1599661832.751 24 ctime=1599661998.394 libprelude-5.2.0/libmissing/m4/stdlib_h.m40000644000000000000000000001412613726163410020364 0ustar00rootroot00000000000000# stdlib_h.m4 serial 45 dnl Copyright (C) 2007-2018 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_STDLIB_H], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_NEXT_HEADERS([stdlib.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include #if HAVE_SYS_LOADAVG_H /* OpenIndiana has a bug: must be included before . */ # include # include #endif #if HAVE_RANDOM_H # include #endif ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r qsort_r random random_r reallocarray realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv]) ]) AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_STDLIB_H_DEFAULTS], [ GNULIB__EXIT=0; AC_SUBST([GNULIB__EXIT]) GNULIB_ATOLL=0; AC_SUBST([GNULIB_ATOLL]) GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX]) GNULIB_CANONICALIZE_FILE_NAME=0; AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME]) GNULIB_GETLOADAVG=0; AC_SUBST([GNULIB_GETLOADAVG]) GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT]) GNULIB_GRANTPT=0; AC_SUBST([GNULIB_GRANTPT]) GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX]) GNULIB_MBTOWC=0; AC_SUBST([GNULIB_MBTOWC]) GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP]) GNULIB_MKOSTEMP=0; AC_SUBST([GNULIB_MKOSTEMP]) GNULIB_MKOSTEMPS=0; AC_SUBST([GNULIB_MKOSTEMPS]) GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP]) GNULIB_MKSTEMPS=0; AC_SUBST([GNULIB_MKSTEMPS]) GNULIB_POSIX_OPENPT=0; AC_SUBST([GNULIB_POSIX_OPENPT]) GNULIB_PTSNAME=0; AC_SUBST([GNULIB_PTSNAME]) GNULIB_PTSNAME_R=0; AC_SUBST([GNULIB_PTSNAME_R]) GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV]) GNULIB_QSORT_R=0; AC_SUBST([GNULIB_QSORT_R]) GNULIB_RANDOM=0; AC_SUBST([GNULIB_RANDOM]) GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R]) GNULIB_REALLOCARRAY=0; AC_SUBST([GNULIB_REALLOCARRAY]) GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX]) GNULIB_REALPATH=0; AC_SUBST([GNULIB_REALPATH]) GNULIB_RPMATCH=0; AC_SUBST([GNULIB_RPMATCH]) GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV]) GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV]) GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD]) GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL]) GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL]) GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX]) GNULIB_UNLOCKPT=0; AC_SUBST([GNULIB_UNLOCKPT]) GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV]) GNULIB_WCTOMB=0; AC_SUBST([GNULIB_WCTOMB]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE__EXIT=1; AC_SUBST([HAVE__EXIT]) HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL]) HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME]) HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT]) HAVE_DECL_INITSTATE=1; AC_SUBST([HAVE_DECL_INITSTATE]) HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP]) HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP]) HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS]) HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP]) HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS]) HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT]) HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME]) HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R]) HAVE_QSORT_R=1; AC_SUBST([HAVE_QSORT_R]) HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM]) HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H]) HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R]) HAVE_REALLOCARRAY=1; AC_SUBST([HAVE_REALLOCARRAY]) HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH]) HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH]) HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV]) HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV]) HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE]) HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL]) HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL]) HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA]) HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H]) HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT]) HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC]) REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC]) REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME]) REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R]) REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC]) REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/strcase.m40000644000000000000000000000011013726163410021231 xustar000000000000000024 mtime=1599661832.575 24 atime=1599661832.751 24 ctime=1599661998.396 libprelude-5.2.0/libmissing/m4/strcase.m40000644000000000000000000000201213726163410020227 0ustar00rootroot00000000000000# strcase.m4 serial 11 dnl Copyright (C) 2002, 2005-2018 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_STRCASE], [ gl_FUNC_STRCASECMP gl_FUNC_STRNCASECMP ]) AC_DEFUN([gl_FUNC_STRCASECMP], [ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) AC_CHECK_FUNCS([strcasecmp]) if test $ac_cv_func_strcasecmp = no; then HAVE_STRCASECMP=0 fi ]) AC_DEFUN([gl_FUNC_STRNCASECMP], [ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) AC_CHECK_FUNCS([strncasecmp]) if test $ac_cv_func_strncasecmp = yes; then HAVE_STRNCASECMP=1 else HAVE_STRNCASECMP=0 fi AC_CHECK_DECLS([strncasecmp]) if test $ac_cv_have_decl_strncasecmp = no; then HAVE_DECL_STRNCASECMP=0 fi ]) # Prerequisites of lib/strcasecmp.c. AC_DEFUN([gl_PREREQ_STRCASECMP], [ : ]) # Prerequisites of lib/strncasecmp.c. AC_DEFUN([gl_PREREQ_STRNCASECMP], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/strcasestr.m40000644000000000000000000000011013726163410021762 xustar000000000000000024 mtime=1599661832.575 24 atime=1599661832.751 24 ctime=1599661998.397 libprelude-5.2.0/libmissing/m4/strcasestr.m40000644000000000000000000001076313726163410020774 0ustar00rootroot00000000000000# strcasestr.m4 serial 23 dnl Copyright (C) 2005, 2007-2018 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. dnl Check that strcasestr is present and works. AC_DEFUN([gl_FUNC_STRCASESTR_SIMPLE], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) dnl Persuade glibc to declare strcasestr(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_FUNC_MEMCHR]) AC_CHECK_FUNCS([strcasestr]) if test $ac_cv_func_strcasestr = no; then HAVE_STRCASESTR=0 else if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then REPLACE_STRCASESTR=1 else dnl Detect https://sourceware.org/bugzilla/show_bug.cgi?id=12092. AC_CACHE_CHECK([whether strcasestr works], [gl_cv_func_strcasestr_works_always], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include /* for strcasestr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P ]], [[return !!strcasestr (HAYSTACK, NEEDLE); ]])], [gl_cv_func_strcasestr_works_always=yes], [gl_cv_func_strcasestr_works_always=no], [dnl glibc 2.12 and cygwin 1.7.7 have a known bug. uClibc is not dnl affected, since it uses different source code for strcasestr dnl than glibc. dnl Assume that it works on all other platforms, even if it is not dnl linear. AC_EGREP_CPP([Lucky user], [ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ || defined __UCLIBC__ Lucky user #endif #elif defined __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #else Lucky user #endif ], [gl_cv_func_strcasestr_works_always="guessing yes"], [gl_cv_func_strcasestr_works_always="guessing no"]) ]) ]) case "$gl_cv_func_strcasestr_works_always" in *yes) ;; *) REPLACE_STRCASESTR=1 ;; esac fi fi ]) # gl_FUNC_STRCASESTR_SIMPLE dnl Additionally, check that strcasestr is efficient. AC_DEFUN([gl_FUNC_STRCASESTR], [ AC_REQUIRE([gl_FUNC_STRCASESTR_SIMPLE]) if test $HAVE_STRCASESTR = 1 && test $REPLACE_STRCASESTR = 0; then AC_CACHE_CHECK([whether strcasestr works in linear time], [gl_cv_func_strcasestr_linear], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include /* for signal */ #include /* for strcasestr */ #include /* for malloc */ #include /* for alarm */ static void quit (int sig) { _exit (sig + 128); } ]], [[ int result = 0; size_t m = 1000000; char *haystack = (char *) malloc (2 * m + 2); char *needle = (char *) malloc (m + 2); /* Failure to compile this test due to missing alarm is okay, since all such platforms (mingw) also lack strcasestr. */ signal (SIGALRM, quit); alarm (5); /* Check for quadratic performance. */ if (haystack && needle) { memset (haystack, 'A', 2 * m); haystack[2 * m] = 'B'; haystack[2 * m + 1] = 0; memset (needle, 'A', m); needle[m] = 'B'; needle[m + 1] = 0; if (!strcasestr (haystack, needle)) result |= 1; } /* Free allocated memory, in case some sanitizer is watching. */ free (haystack); free (needle); return result; ]])], [gl_cv_func_strcasestr_linear=yes], [gl_cv_func_strcasestr_linear=no], [dnl Only glibc > 2.12 and cygwin > 1.7.7 are known to have a dnl strcasestr that works in linear time. AC_EGREP_CPP([Lucky user], [ #include #ifdef __GNU_LIBRARY__ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ && !defined __UCLIBC__ Lucky user #endif #endif #ifdef __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #endif ], [gl_cv_func_strcasestr_linear="guessing yes"], [gl_cv_func_strcasestr_linear="guessing no"]) ]) ]) case "$gl_cv_func_strcasestr_linear" in *yes) ;; *) REPLACE_STRCASESTR=1 ;; esac fi ]) # gl_FUNC_STRCASESTR # Prerequisites of lib/strcasestr.c. AC_DEFUN([gl_PREREQ_STRCASESTR], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/strdup.m40000644000000000000000000000011013726163410021106 xustar000000000000000024 mtime=1599661832.575 24 atime=1599661832.751 24 ctime=1599661998.399 libprelude-5.2.0/libmissing/m4/strdup.m40000644000000000000000000000165713726163410020122 0ustar00rootroot00000000000000# strdup.m4 serial 13 dnl Copyright (C) 2002-2018 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_FUNC_STRDUP], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([strdup]) AC_CHECK_DECLS_ONCE([strdup]) if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi ]) AC_DEFUN([gl_FUNC_STRDUP_POSIX], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) AC_CHECK_FUNCS_ONCE([strdup]) if test $ac_cv_func_strdup = yes; then if test $gl_cv_func_malloc_posix != yes; then REPLACE_STRDUP=1 fi fi AC_CHECK_DECLS_ONCE([strdup]) if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi ]) # Prerequisites of lib/strdup.c. AC_DEFUN([gl_PREREQ_STRDUP], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/strerror.m40000644000000000000000000000011013726163410021447 xustar000000000000000024 mtime=1599661832.576 24 atime=1599661832.751 24 ctime=1599661998.401 libprelude-5.2.0/libmissing/m4/strerror.m40000644000000000000000000000652313726163410020460 0ustar00rootroot00000000000000# strerror.m4 serial 19 dnl Copyright (C) 2002, 2007-2018 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_FUNC_STRERROR], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) ]) if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then AC_CACHE_CHECK([for working strerror function], [gl_cv_func_working_strerror], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[if (!*strerror (-2)) return 1;]])], [gl_cv_func_working_strerror=yes], [gl_cv_func_working_strerror=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_working_strerror="guessing no" ;; esac ]) ]) case "$gl_cv_func_working_strerror" in *yes) ;; *) dnl The system's strerror() fails to return a string for out-of-range dnl integers. Replace it. REPLACE_STRERROR=1 ;; esac m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's dnl buffer, we must replace strerror. case "$gl_cv_func_strerror_r_works" in *no) REPLACE_STRERROR=1 ;; esac ]) else dnl The system's strerror() cannot know about the new errno values we add dnl to , or any fix for strerror(0). Replace it. REPLACE_STRERROR=1 fi ]) dnl Detect if strerror(0) passes (that is, does not set errno, and does not dnl return a string that matches strerror(-1)). AC_DEFUN([gl_FUNC_STRERROR_0], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles REPLACE_STRERROR_0=0 AC_CACHE_CHECK([whether strerror(0) succeeds], [gl_cv_func_strerror_0_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include ]], [[int result = 0; char *str; errno = 0; str = strerror (0); if (!*str) result |= 1; if (errno) result |= 2; if (strstr (str, "nknown") || strstr (str, "ndefined")) result |= 4; return result;]])], [gl_cv_func_strerror_0_works=yes], [gl_cv_func_strerror_0_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; # Guess yes on native Windows. mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_strerror_0_works="guessing no" ;; esac ]) ]) case "$gl_cv_func_strerror_0_works" in *yes) ;; *) REPLACE_STRERROR_0=1 AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0) does not return a message implying success.]) ;; esac ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/strerror_r.m40000644000000000000000000000011013726163410021770 xustar000000000000000024 mtime=1599661832.576 24 atime=1599661832.751 24 ctime=1599661998.402 libprelude-5.2.0/libmissing/m4/strerror_r.m40000644000000000000000000001506713726163410021004 0ustar00rootroot00000000000000# strerror_r.m4 serial 19 dnl Copyright (C) 2002, 2007-2018 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_FUNC_STRERROR_R], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) dnl Persuade Solaris to declare strerror_r(). AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl Some systems don't declare strerror_r() if _THREAD_SAFE and _REENTRANT dnl are not defined. AC_CHECK_DECLS_ONCE([strerror_r]) if test $ac_cv_have_decl_strerror_r = no; then HAVE_DECL_STRERROR_R=0 fi if test $ac_cv_func_strerror_r = yes; then if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then if test $gl_cv_func_strerror_r_posix_signature = yes; then case "$gl_cv_func_strerror_r_works" in dnl The system's strerror_r has bugs. Replace it. *no) REPLACE_STRERROR_R=1 ;; esac else dnl The system's strerror_r() has a wrong signature. Replace it. REPLACE_STRERROR_R=1 fi else dnl The system's strerror_r() cannot know about the new errno values we dnl add to , or any fix for strerror(0). Replace it. REPLACE_STRERROR_R=1 fi fi ]) # Prerequisites of lib/strerror_r.c. AC_DEFUN([gl_PREREQ_STRERROR_R], [ dnl glibc >= 2.3.4 and cygwin 1.7.9 have a function __xpg_strerror_r. AC_CHECK_FUNCS_ONCE([__xpg_strerror_r]) AC_CHECK_FUNCS_ONCE([catgets]) AC_CHECK_FUNCS_ONCE([snprintf]) ]) # Detect if strerror_r works, but without affecting whether a replacement # strerror_r will be used. AC_DEFUN([gl_FUNC_STRERROR_R_WORKS], [ AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_FUNC_STRERROR_0]) AC_CHECK_FUNCS_ONCE([strerror_r]) if test $ac_cv_func_strerror_r = yes; then if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then dnl The POSIX prototype is: int strerror_r (int, char *, size_t); dnl glibc, Cygwin: char *strerror_r (int, char *, size_t); dnl AIX 5.1, OSF/1 5.1: int strerror_r (int, char *, int); AC_CACHE_CHECK([for strerror_r with POSIX signature], [gl_cv_func_strerror_r_posix_signature], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include int strerror_r (int, char *, size_t); ]], [])], [gl_cv_func_strerror_r_posix_signature=yes], [gl_cv_func_strerror_r_posix_signature=no]) ]) if test $gl_cv_func_strerror_r_posix_signature = yes; then dnl AIX 6.1 strerror_r fails by returning -1, not an error number. dnl HP-UX 11.31 strerror_r always fails when the buffer length argument dnl is less than 80. dnl FreeBSD 8.s strerror_r claims failure on 0 dnl Mac OS X 10.5 strerror_r treats 0 like -1 dnl Solaris 10 strerror_r corrupts errno on failure AC_CACHE_CHECK([whether strerror_r works], [gl_cv_func_strerror_r_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include ]], [[int result = 0; char buf[79]; if (strerror_r (EACCES, buf, 0) < 0) result |= 1; errno = 0; if (strerror_r (EACCES, buf, sizeof buf) != 0) result |= 2; strcpy (buf, "Unknown"); if (strerror_r (0, buf, sizeof buf) != 0) result |= 4; if (errno) result |= 8; if (strstr (buf, "nknown") || strstr (buf, "ndefined")) result |= 0x10; errno = 0; *buf = 0; if (strerror_r (-3, buf, sizeof buf) < 0) result |= 0x20; if (errno) result |= 0x40; if (!*buf) result |= 0x80; return result; ]])], [gl_cv_func_strerror_r_works=yes], [gl_cv_func_strerror_r_works=no], [ changequote(,)dnl case "$host_os" in # Guess no on AIX. aix*) gl_cv_func_strerror_r_works="guessing no";; # Guess no on HP-UX. hpux*) gl_cv_func_strerror_r_works="guessing no";; # Guess no on BSD variants. *bsd*) gl_cv_func_strerror_r_works="guessing no";; # Guess yes otherwise. *) gl_cv_func_strerror_r_works="guessing yes";; esac changequote([,])dnl ]) ]) else dnl The system's strerror() has a wrong signature. dnl glibc >= 2.3.4 and cygwin 1.7.9 have a function __xpg_strerror_r. AC_CHECK_FUNCS_ONCE([__xpg_strerror_r]) dnl In glibc < 2.14, __xpg_strerror_r does not populate buf on failure. dnl In cygwin < 1.7.10, __xpg_strerror_r clobbers strerror's buffer. if test $ac_cv_func___xpg_strerror_r = yes; then AC_CACHE_CHECK([whether __xpg_strerror_r works], [gl_cv_func_strerror_r_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include extern #ifdef __cplusplus "C" #endif int __xpg_strerror_r(int, char *, size_t); ]], [[int result = 0; char buf[256] = "^"; char copy[256]; char *str = strerror (-1); strcpy (copy, str); if (__xpg_strerror_r (-2, buf, 1) == 0) result |= 1; if (*buf) result |= 2; __xpg_strerror_r (-2, buf, 256); if (strcmp (str, copy)) result |= 4; return result; ]])], [gl_cv_func_strerror_r_works=yes], [gl_cv_func_strerror_r_works=no], [dnl Guess no on all platforms that have __xpg_strerror_r, dnl at least until fixed glibc and cygwin are more common. gl_cv_func_strerror_r_works="guessing no" ]) ]) fi fi fi fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/string_h.m40000644000000000000000000000011013726163410021402 xustar000000000000000024 mtime=1599661832.576 24 atime=1599661832.751 24 ctime=1599661998.404 libprelude-5.2.0/libmissing/m4/string_h.m40000644000000000000000000001311113726163410020402 0ustar00rootroot00000000000000# Configure a GNU-like replacement for . # Copyright (C) 2007-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 22 # Written by Paul Eggert. AC_DEFUN([gl_HEADER_STRING_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_HEADER_STRING_H_BODY]) ]) AC_DEFUN([gl_HEADER_STRING_H_BODY], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_NEXT_HEADERS([string.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include ]], [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp]) ]) AC_DEFUN([gl_STRING_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], [ GNULIB_EXPLICIT_BZERO=0; AC_SUBST([GNULIB_EXPLICIT_BZERO]) GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL]) GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL]) GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR]) GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM]) GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY]) GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR]) GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR]) GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY]) GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY]) GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL]) GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP]) GNULIB_STRNCAT=0; AC_SUBST([GNULIB_STRNCAT]) GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP]) GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN]) GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK]) GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP]) GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR]) GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR]) GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R]) GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN]) GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN]) GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR]) GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR]) GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR]) GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP]) GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP]) GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP]) GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR]) GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN]) GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK]) GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN]) GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP]) GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R]) GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR]) GNULIB_STRERROR_R=0; AC_SUBST([GNULIB_STRERROR_R]) GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL]) GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP]) HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_EXPLICIT_BZERO=1; AC_SUBST([HAVE_EXPLICIT_BZERO]) HAVE_FFSL=1; AC_SUBST([HAVE_FFSL]) HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL]) HAVE_MEMCHR=1; AC_SUBST([HAVE_MEMCHR]) HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM]) HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY]) HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR]) HAVE_RAWMEMCHR=1; AC_SUBST([HAVE_RAWMEMCHR]) HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY]) HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY]) HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL]) HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP]) HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP]) HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN]) HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK]) HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP]) HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR]) HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R]) HAVE_DECL_STRERROR_R=1; AC_SUBST([HAVE_DECL_STRERROR_R]) HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL]) HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP]) REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR]) REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY]) REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL]) REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT]) REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP]) REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN]) REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R]) REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R]) REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/strings_h.m40000644000000000000000000000011013726163410021565 xustar000000000000000024 mtime=1599661832.576 24 atime=1599661832.751 24 ctime=1599661998.406 libprelude-5.2.0/libmissing/m4/strings_h.m40000644000000000000000000000316313726163410020573 0ustar00rootroot00000000000000# Configure a replacement for . # serial 6 # Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_HEADER_STRINGS_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_HEADER_STRINGS_H_BODY]) ]) AC_DEFUN([gl_HEADER_STRINGS_H_BODY], [ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([strings.h]) if test $ac_cv_header_strings_h = yes; then HAVE_STRINGS_H=1 else HAVE_STRINGS_H=0 fi AC_SUBST([HAVE_STRINGS_H]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Minix 3.1.8 has a bug: must be included before . */ #include #include ]], [ffs strcasecmp strncasecmp]) ]) AC_DEFUN([gl_STRINGS_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_HEADER_STRINGS_H_DEFAULTS], [ GNULIB_FFS=0; AC_SUBST([GNULIB_FFS]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FFS=1; AC_SUBST([HAVE_FFS]) HAVE_STRCASECMP=1; AC_SUBST([HAVE_STRCASECMP]) HAVE_DECL_STRNCASECMP=1; AC_SUBST([HAVE_DECL_STRNCASECMP]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/strndup.m40000644000000000000000000000011013726163410021264 xustar000000000000000024 mtime=1599661832.576 24 atime=1599661832.751 24 ctime=1599661998.407 libprelude-5.2.0/libmissing/m4/strndup.m40000644000000000000000000000327413726163410020275 0ustar00rootroot00000000000000# strndup.m4 serial 22 dnl Copyright (C) 2002-2003, 2005-2018 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_FUNC_STRNDUP], [ dnl Persuade glibc to declare strndup(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_CHECK_DECLS_ONCE([strndup]) AC_CHECK_FUNCS_ONCE([strndup]) if test $ac_cv_have_decl_strndup = no; then HAVE_DECL_STRNDUP=0 fi if test $ac_cv_func_strndup = yes; then HAVE_STRNDUP=1 # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. AC_CACHE_CHECK([for working strndup], [gl_cv_func_strndup_works], [AC_RUN_IFELSE([ AC_LANG_PROGRAM([[#include #include ]], [[ #if !HAVE_DECL_STRNDUP extern #ifdef __cplusplus "C" #endif char *strndup (const char *, size_t); #endif int result; char *s; s = strndup ("some longer string", 15); free (s); s = strndup ("shorter string", 13); result = s[13] != '\0'; free (s); return result;]])], [gl_cv_func_strndup_works=yes], [gl_cv_func_strndup_works=no], [ changequote(,)dnl case $host_os in aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";; *) gl_cv_func_strndup_works="guessing yes";; esac changequote([,])dnl ])]) case $gl_cv_func_strndup_works in *no) REPLACE_STRNDUP=1 ;; esac else HAVE_STRNDUP=0 fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/strnlen.m40000644000000000000000000000011013726163410021252 xustar000000000000000024 mtime=1599661832.576 24 atime=1599661832.751 24 ctime=1599661998.409 libprelude-5.2.0/libmissing/m4/strnlen.m40000644000000000000000000000156113726163410020260 0ustar00rootroot00000000000000# strnlen.m4 serial 13 dnl Copyright (C) 2002-2003, 2005-2007, 2009-2018 Free Software Foundation, dnl 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_FUNC_STRNLEN], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) dnl Persuade glibc to declare strnlen(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_DECLS_ONCE([strnlen]) if test $ac_cv_have_decl_strnlen = no; then HAVE_DECL_STRNLEN=0 else m4_pushdef([AC_LIBOBJ], [:]) dnl Note: AC_FUNC_STRNLEN does AC_LIBOBJ([strnlen]). AC_FUNC_STRNLEN m4_popdef([AC_LIBOBJ]) if test $ac_cv_func_strnlen_working = no; then REPLACE_STRNLEN=1 fi fi ]) # Prerequisites of lib/strnlen.c. AC_DEFUN([gl_PREREQ_STRNLEN], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/strptime.m40000644000000000000000000000011013726163410021434 xustar000000000000000024 mtime=1599661832.577 24 atime=1599661832.751 24 ctime=1599661998.411 libprelude-5.2.0/libmissing/m4/strptime.m40000644000000000000000000000112513726163410020436 0ustar00rootroot00000000000000# strptime.m4 serial 7 dnl Copyright (C) 2007, 2009-2018 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_FUNC_STRPTIME], [ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) AC_REQUIRE([AC_C_RESTRICT]) AC_CHECK_FUNCS_ONCE([strptime]) if test $ac_cv_func_strptime != yes; then HAVE_STRPTIME=0 fi ]) # Prerequisites of lib/strptime.c. AC_DEFUN([gl_PREREQ_STRPTIME], [ AC_REQUIRE([gl_TM_GMTOFF]) : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/strsep.m40000644000000000000000000000011013726163410021105 xustar000000000000000024 mtime=1599661832.577 24 atime=1599661832.751 24 ctime=1599661998.413 libprelude-5.2.0/libmissing/m4/strsep.m40000644000000000000000000000132013726163410020104 0ustar00rootroot00000000000000# strsep.m4 serial 10 dnl Copyright (C) 2002-2004, 2007, 2009-2018 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_FUNC_STRSEP], [ dnl Persuade glibc to declare strsep(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl The strsep() declaration in lib/string.in.h uses 'restrict'. AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_CHECK_FUNCS([strsep]) if test $ac_cv_func_strsep = no; then HAVE_STRSEP=0 fi ]) # Prerequisites of lib/strsep.c. AC_DEFUN([gl_PREREQ_STRSEP], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/symlink.m40000644000000000000000000000011013726163410021253 xustar000000000000000024 mtime=1599661832.577 24 atime=1599661832.751 24 ctime=1599661998.414 libprelude-5.2.0/libmissing/m4/symlink.m40000644000000000000000000000374013726163410020262 0ustar00rootroot00000000000000# serial 8 # See if we need to provide symlink replacement. dnl Copyright (C) 2009-2018 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. # Written by Eric Blake. AC_DEFUN([gl_FUNC_SYMLINK], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_FUNCS_ONCE([symlink]) dnl The best we can do on mingw is provide a dummy that always fails, so dnl that compilation can proceed with fewer ifdefs. On FreeBSD 7.2, AIX 7.1, dnl and Solaris 9, we want to fix a bug with trailing slash handling. if test $ac_cv_func_symlink = no; then HAVE_SYMLINK=0 else AC_CACHE_CHECK([whether symlink handles trailing slash correctly], [gl_cv_func_symlink_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[int result = 0; if (!symlink ("a", "conftest.link/")) result |= 1; if (symlink ("conftest.f", "conftest.lnk2")) result |= 2; else if (!symlink ("a", "conftest.lnk2/")) result |= 4; return result; ]])], [gl_cv_func_symlink_works=yes], [gl_cv_func_symlink_works=no], [case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_symlink_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_symlink_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_symlink_works="guessing no" ;; esac ]) rm -f conftest.f conftest.link conftest.lnk2]) case "$gl_cv_func_symlink_works" in *yes) ;; *) REPLACE_SYMLINK=1 ;; esac fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/sys_ioctl_h.m40000644000000000000000000000011013726163410022104 xustar000000000000000024 mtime=1599661832.577 24 atime=1599661832.751 24 ctime=1599661998.416 libprelude-5.2.0/libmissing/m4/sys_ioctl_h.m40000644000000000000000000000460613726163410021115 0ustar00rootroot00000000000000# sys_ioctl_h.m4 serial 10 dnl Copyright (C) 2008-2018 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. dnl Written by Bruno Haible. AC_DEFUN([gl_SYS_IOCTL_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS]) AC_CHECK_HEADERS_ONCE([sys/ioctl.h]) if test $ac_cv_header_sys_ioctl_h = yes; then HAVE_SYS_IOCTL_H=1 dnl Test whether declares ioctl(), or whether some other dnl header file, such as or , is needed for that. AC_CACHE_CHECK([whether declares ioctl], [gl_cv_decl_ioctl_in_sys_ioctl_h], [dnl We cannot use AC_CHECK_DECL because it produces its own messages. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT([#include ])], [(void) ioctl;])], [gl_cv_decl_ioctl_in_sys_ioctl_h=yes], [gl_cv_decl_ioctl_in_sys_ioctl_h=no]) ]) else HAVE_SYS_IOCTL_H=0 fi AC_SUBST([HAVE_SYS_IOCTL_H]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([sys/ioctl.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include /* Some platforms declare ioctl in the wrong header. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include #endif ]], [ioctl]) ]) AC_DEFUN([gl_SYS_IOCTL_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_IOCTL_H_DEFAULTS], [ GNULIB_IOCTL=0; AC_SUBST([GNULIB_IOCTL]) dnl Assume proper GNU behavior unless another module says otherwise. SYS_IOCTL_H_HAVE_WINSOCK2_H=0; AC_SUBST([SYS_IOCTL_H_HAVE_WINSOCK2_H]) SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; AC_SUBST([SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) REPLACE_IOCTL=0; AC_SUBST([REPLACE_IOCTL]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/sys_select_h.m40000644000000000000000000000011013726163410022251 xustar000000000000000024 mtime=1599661832.577 24 atime=1599661832.751 24 ctime=1599661998.418 libprelude-5.2.0/libmissing/m4/sys_select_h.m40000644000000000000000000000671613726163410021266 0ustar00rootroot00000000000000# sys_select_h.m4 serial 20 dnl Copyright (C) 2006-2018 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_HEADER_SYS_SELECT], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_SYS_SELECT_H_DEFAULTS]) AC_CACHE_CHECK([whether is self-contained], [gl_cv_header_sys_select_h_selfcontained], [ dnl Test against two bugs: dnl 1. On many platforms, assumes prior inclusion of dnl . dnl 2. On OSF/1 4.0, provides only a forward declaration dnl of 'struct timeval', and no definition of this type. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct timeval b;]])], [gl_cv_header_sys_select_h_selfcontained=yes], [gl_cv_header_sys_select_h_selfcontained=no]) dnl Test against another bug: dnl 3. On Solaris 10, provides an FD_ZERO implementation dnl that relies on memset(), but without including . if test $gl_cv_header_sys_select_h_selfcontained = yes; then AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[int memset; int bzero;]]) ], [AC_LINK_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[ #undef memset #define memset nonexistent_memset extern #ifdef __cplusplus "C" #endif void *memset (void *, int, unsigned long); #undef bzero #define bzero nonexistent_bzero extern #ifdef __cplusplus "C" #endif void bzero (void *, unsigned long); fd_set fds; FD_ZERO (&fds); ]]) ], [], [gl_cv_header_sys_select_h_selfcontained=no]) ]) fi ]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([sys/select.h]) if test $ac_cv_header_sys_select_h = yes; then HAVE_SYS_SELECT_H=1 else HAVE_SYS_SELECT_H=0 fi AC_SUBST([HAVE_SYS_SELECT_H]) gl_PREREQ_SYS_H_WINSOCK2 dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Some systems require prerequisite headers. */ #include #if !(defined __GLIBC__ && !defined __UCLIBC__) && HAVE_SYS_TIME_H # include #endif #include ]], [pselect select]) ]) AC_DEFUN([gl_SYS_SELECT_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_SELECT_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_SELECT_H_DEFAULTS], [ GNULIB_PSELECT=0; AC_SUBST([GNULIB_PSELECT]) GNULIB_SELECT=0; AC_SUBST([GNULIB_SELECT]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_PSELECT=1; AC_SUBST([HAVE_PSELECT]) REPLACE_PSELECT=0; AC_SUBST([REPLACE_PSELECT]) REPLACE_SELECT=0; AC_SUBST([REPLACE_SELECT]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/sys_socket_h.m40000644000000000000000000000011013726163410022262 xustar000000000000000024 mtime=1599661832.578 24 atime=1599661832.751 24 ctime=1599661998.419 libprelude-5.2.0/libmissing/m4/sys_socket_h.m40000644000000000000000000001416313726163410021272 0ustar00rootroot00000000000000# sys_socket_h.m4 serial 23 dnl Copyright (C) 2005-2018 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. dnl From Simon Josefsson. AC_DEFUN([gl_HEADER_SYS_SOCKET], [ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have dnl old-style declarations (with return type 'int' instead of 'ssize_t') dnl unless _POSIX_PII_SOCKET is defined. case "$host_os" in osf*) AC_DEFINE([_POSIX_PII_SOCKET], [1], [Define to 1 in order to get the POSIX compatible declarations of socket functions.]) ;; esac AC_CACHE_CHECK([whether is self-contained], [gl_cv_header_sys_socket_h_selfcontained], [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[]])], [gl_cv_header_sys_socket_h_selfcontained=yes], [gl_cv_header_sys_socket_h_selfcontained=no]) ]) if test $gl_cv_header_sys_socket_h_selfcontained = yes; then dnl If the shutdown function exists, should define dnl SHUT_RD, SHUT_WR, SHUT_RDWR. AC_CHECK_FUNCS([shutdown]) if test $ac_cv_func_shutdown = yes; then AC_CACHE_CHECK([whether defines the SHUT_* macros], [gl_cv_header_sys_socket_h_shut], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])], [gl_cv_header_sys_socket_h_shut=yes], [gl_cv_header_sys_socket_h_shut=no]) ]) if test $gl_cv_header_sys_socket_h_shut = no; then SYS_SOCKET_H='sys/socket.h' fi fi fi # We need to check for ws2tcpip.h now. gl_PREREQ_SYS_H_SOCKET AC_CHECK_TYPES([struct sockaddr_storage, sa_family_t],,,[ /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif ]) if test $ac_cv_type_struct_sockaddr_storage = no; then HAVE_STRUCT_SOCKADDR_STORAGE=0 fi if test $ac_cv_type_sa_family_t = no; then HAVE_SA_FAMILY_T=0 fi if test $ac_cv_type_struct_sockaddr_storage != no; then AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family], [], [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0], [#include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif ]) fi if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then SYS_SOCKET_H='sys/socket.h' fi gl_PREREQ_SYS_H_WINSOCK2 dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Some systems require prerequisite headers. */ #include #include ]], [socket connect accept bind getpeername getsockname getsockopt listen recv send recvfrom sendto setsockopt shutdown accept4]) ]) AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], [ dnl Check prerequisites of the replacement. AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) gl_CHECK_NEXT_HEADERS([sys/socket.h]) if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 HAVE_WS2TCPIP_H=0 else HAVE_SYS_SOCKET_H=0 if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else HAVE_WS2TCPIP_H=0 fi fi AC_SUBST([HAVE_SYS_SOCKET_H]) AC_SUBST([HAVE_WS2TCPIP_H]) ]) # Common prerequisites of the replacement and of the # replacement. # Sets and substitutes HAVE_WINSOCK2_H. AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2], [ m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])]) m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])]) AC_CHECK_HEADERS_ONCE([sys/socket.h]) if test $ac_cv_header_sys_socket_h != yes; then dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make dnl the check for those headers unconditional; yet cygwin reports dnl that the headers are present but cannot be compiled (since on dnl cygwin, all socket information should come from sys/socket.h). AC_CHECK_HEADERS([winsock2.h]) fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi AC_SUBST([HAVE_WINSOCK2_H]) ]) AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS], [ GNULIB_SOCKET=0; AC_SUBST([GNULIB_SOCKET]) GNULIB_CONNECT=0; AC_SUBST([GNULIB_CONNECT]) GNULIB_ACCEPT=0; AC_SUBST([GNULIB_ACCEPT]) GNULIB_BIND=0; AC_SUBST([GNULIB_BIND]) GNULIB_GETPEERNAME=0; AC_SUBST([GNULIB_GETPEERNAME]) GNULIB_GETSOCKNAME=0; AC_SUBST([GNULIB_GETSOCKNAME]) GNULIB_GETSOCKOPT=0; AC_SUBST([GNULIB_GETSOCKOPT]) GNULIB_LISTEN=0; AC_SUBST([GNULIB_LISTEN]) GNULIB_RECV=0; AC_SUBST([GNULIB_RECV]) GNULIB_SEND=0; AC_SUBST([GNULIB_SEND]) GNULIB_RECVFROM=0; AC_SUBST([GNULIB_RECVFROM]) GNULIB_SENDTO=0; AC_SUBST([GNULIB_SENDTO]) GNULIB_SETSOCKOPT=0; AC_SUBST([GNULIB_SETSOCKOPT]) GNULIB_SHUTDOWN=0; AC_SUBST([GNULIB_SHUTDOWN]) GNULIB_ACCEPT4=0; AC_SUBST([GNULIB_ACCEPT4]) HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE]) HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY]) HAVE_SA_FAMILY_T=1; AC_SUBST([HAVE_SA_FAMILY_T]) HAVE_ACCEPT4=1; AC_SUBST([HAVE_ACCEPT4]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/sys_stat_h.m40000644000000000000000000000011013726163410021745 xustar000000000000000024 mtime=1599661832.578 24 atime=1599661832.752 24 ctime=1599661998.421 libprelude-5.2.0/libmissing/m4/sys_stat_h.m40000644000000000000000000000741013726163410020752 0ustar00rootroot00000000000000# sys_stat_h.m4 serial 31 -*- Autoconf -*- dnl Copyright (C) 2006-2018 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. dnl From Eric Blake. dnl Provide a GNU-like . AC_DEFUN([gl_HEADER_SYS_STAT_H], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl Check for broken stat macros. AC_REQUIRE([AC_HEADER_STAT]) gl_CHECK_NEXT_HEADERS([sys/stat.h]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Whether to enable precise timestamps in 'struct stat'. m4_ifdef([gl_WINDOWS_STAT_TIMESPEC], [ AC_REQUIRE([gl_WINDOWS_STAT_TIMESPEC]) ], [ WINDOWS_STAT_TIMESPEC=0 ]) AC_SUBST([WINDOWS_STAT_TIMESPEC]) dnl Whether to ensure that struct stat.st_size is 64-bit wide. m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([gl_LARGEFILE]) ], [ WINDOWS_64_BIT_ST_SIZE=0 ]) AC_SUBST([WINDOWS_64_BIT_ST_SIZE]) dnl Define types that are supposed to be defined in or dnl . AC_CHECK_TYPE([nlink_t], [], [AC_DEFINE([nlink_t], [int], [Define to the type of st_nlink in struct stat, or a supertype.])], [#include #include ]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat]) ]) # gl_HEADER_SYS_STAT_H AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_STAT_H_DEFAULTS], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR GNULIB_FCHMODAT=0; AC_SUBST([GNULIB_FCHMODAT]) GNULIB_FSTAT=0; AC_SUBST([GNULIB_FSTAT]) GNULIB_FSTATAT=0; AC_SUBST([GNULIB_FSTATAT]) GNULIB_FUTIMENS=0; AC_SUBST([GNULIB_FUTIMENS]) GNULIB_LCHMOD=0; AC_SUBST([GNULIB_LCHMOD]) GNULIB_LSTAT=0; AC_SUBST([GNULIB_LSTAT]) GNULIB_MKDIRAT=0; AC_SUBST([GNULIB_MKDIRAT]) GNULIB_MKFIFO=0; AC_SUBST([GNULIB_MKFIFO]) GNULIB_MKFIFOAT=0; AC_SUBST([GNULIB_MKFIFOAT]) GNULIB_MKNOD=0; AC_SUBST([GNULIB_MKNOD]) GNULIB_MKNODAT=0; AC_SUBST([GNULIB_MKNODAT]) GNULIB_STAT=0; AC_SUBST([GNULIB_STAT]) GNULIB_UTIMENSAT=0; AC_SUBST([GNULIB_UTIMENSAT]) GNULIB_OVERRIDES_STRUCT_STAT=0; AC_SUBST([GNULIB_OVERRIDES_STRUCT_STAT]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FCHMODAT=1; AC_SUBST([HAVE_FCHMODAT]) HAVE_FSTATAT=1; AC_SUBST([HAVE_FSTATAT]) HAVE_FUTIMENS=1; AC_SUBST([HAVE_FUTIMENS]) HAVE_LCHMOD=1; AC_SUBST([HAVE_LCHMOD]) HAVE_LSTAT=1; AC_SUBST([HAVE_LSTAT]) HAVE_MKDIRAT=1; AC_SUBST([HAVE_MKDIRAT]) HAVE_MKFIFO=1; AC_SUBST([HAVE_MKFIFO]) HAVE_MKFIFOAT=1; AC_SUBST([HAVE_MKFIFOAT]) HAVE_MKNOD=1; AC_SUBST([HAVE_MKNOD]) HAVE_MKNODAT=1; AC_SUBST([HAVE_MKNODAT]) HAVE_UTIMENSAT=1; AC_SUBST([HAVE_UTIMENSAT]) REPLACE_FSTAT=0; AC_SUBST([REPLACE_FSTAT]) REPLACE_FSTATAT=0; AC_SUBST([REPLACE_FSTATAT]) REPLACE_FUTIMENS=0; AC_SUBST([REPLACE_FUTIMENS]) REPLACE_LSTAT=0; AC_SUBST([REPLACE_LSTAT]) REPLACE_MKDIR=0; AC_SUBST([REPLACE_MKDIR]) REPLACE_MKFIFO=0; AC_SUBST([REPLACE_MKFIFO]) REPLACE_MKNOD=0; AC_SUBST([REPLACE_MKNOD]) REPLACE_STAT=0; AC_SUBST([REPLACE_STAT]) REPLACE_UTIMENSAT=0; AC_SUBST([REPLACE_UTIMENSAT]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/sys_time_h.m40000644000000000000000000000011013726163410021730 xustar000000000000000024 mtime=1599661832.578 24 atime=1599661832.752 24 ctime=1599661998.423 libprelude-5.2.0/libmissing/m4/sys_time_h.m40000644000000000000000000000734113726163410020740 0ustar00rootroot00000000000000# Configure a replacement for . # serial 9 # Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert and Martin Lambers. AC_DEFUN([gl_HEADER_SYS_TIME_H], [ dnl Use AC_REQUIRE here, so that the REPLACE_GETTIMEOFDAY=0 statement dnl below is expanded once only, before all REPLACE_GETTIMEOFDAY=1 dnl statements that occur in other macros. AC_REQUIRE([gl_HEADER_SYS_TIME_H_BODY]) ]) AC_DEFUN([gl_HEADER_SYS_TIME_H_BODY], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS]) AC_CHECK_HEADERS_ONCE([sys/time.h]) gl_CHECK_NEXT_HEADERS([sys/time.h]) if test $ac_cv_header_sys_time_h != yes; then HAVE_SYS_TIME_H=0 fi dnl On native Windows with MSVC, 'struct timeval' is defined in dnl only. So include that header in the list. gl_PREREQ_SYS_H_WINSOCK2 AC_CACHE_CHECK([for struct timeval], [gl_cv_sys_struct_timeval], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#if HAVE_SYS_TIME_H #include #endif #include #if HAVE_WINSOCK2_H # include #endif ]], [[static struct timeval x; x.tv_sec = x.tv_usec;]])], [gl_cv_sys_struct_timeval=yes], [gl_cv_sys_struct_timeval=no]) ]) if test $gl_cv_sys_struct_timeval != yes; then HAVE_STRUCT_TIMEVAL=0 else dnl On native Windows with a 64-bit 'time_t', 'struct timeval' is defined dnl (in and for mingw64, in only dnl for MSVC) with a tv_sec field of type 'long' (32-bit!), which is dnl smaller than the 'time_t' type mandated by POSIX. dnl On OpenBSD 5.1 amd64, tv_sec is 64 bits and time_t 32 bits, but dnl that is good enough. AC_CACHE_CHECK([for wide-enough struct timeval.tv_sec member], [gl_cv_sys_struct_timeval_tv_sec], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#if HAVE_SYS_TIME_H #include #endif #include #if HAVE_WINSOCK2_H # include #endif ]], [[static struct timeval x; typedef int verify_tv_sec_type[ sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1 ]; ]])], [gl_cv_sys_struct_timeval_tv_sec=yes], [gl_cv_sys_struct_timeval_tv_sec=no]) ]) if test $gl_cv_sys_struct_timeval_tv_sec != yes; then REPLACE_STRUCT_TIMEVAL=1 fi fi dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ #if HAVE_SYS_TIME_H # include #endif #include ]], [gettimeofday]) ]) AC_DEFUN([gl_SYS_TIME_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_SYS_TIME_H_DEFAULTS], [ GNULIB_GETTIMEOFDAY=0; AC_SUBST([GNULIB_GETTIMEOFDAY]) dnl Assume POSIX behavior unless another module says otherwise. HAVE_GETTIMEOFDAY=1; AC_SUBST([HAVE_GETTIMEOFDAY]) HAVE_STRUCT_TIMEVAL=1; AC_SUBST([HAVE_STRUCT_TIMEVAL]) HAVE_SYS_TIME_H=1; AC_SUBST([HAVE_SYS_TIME_H]) REPLACE_GETTIMEOFDAY=0; AC_SUBST([REPLACE_GETTIMEOFDAY]) REPLACE_STRUCT_TIMEVAL=0; AC_SUBST([REPLACE_STRUCT_TIMEVAL]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/sys_types_h.m40000644000000000000000000000011013726163410022136 xustar000000000000000024 mtime=1599661832.578 24 atime=1599661832.752 24 ctime=1599661998.424 libprelude-5.2.0/libmissing/m4/sys_types_h.m40000644000000000000000000000337313726163410021147 0ustar00rootroot00000000000000# sys_types_h.m4 serial 9 dnl Copyright (C) 2011-2018 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_ONCE([gl_SYS_TYPES_H], [ dnl Use sane struct stat types in OpenVMS 8.2 and later. AC_DEFINE([_USE_STD_STAT], 1, [For standard stat data types on VMS.]) AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) gl_NEXT_HEADERS([sys/types.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Whether to override the 'off_t' type. AC_REQUIRE([gl_TYPE_OFF_T]) dnl Whether to override the 'dev_t' and 'ino_t' types. m4_ifdef([gl_WINDOWS_STAT_INODES], [ AC_REQUIRE([gl_WINDOWS_STAT_INODES]) ], [ WINDOWS_STAT_INODES=0 ]) AC_SUBST([WINDOWS_STAT_INODES]) ]) AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS], [ ]) # This works around a buggy version in autoconf <= 2.69. # See m4_version_prereq([2.70], [], [ # This is taken from the following Autoconf patch: # https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=e17a30e987d7ee695fb4294a82d987ec3dc9b974 m4_undefine([AC_HEADER_MAJOR]) AC_DEFUN([AC_HEADER_MAJOR], [AC_CHECK_HEADERS_ONCE([sys/types.h]) AC_CHECK_HEADER([sys/mkdev.h], [AC_DEFINE([MAJOR_IN_MKDEV], [1], [Define to 1 if `major', `minor', and `makedev' are declared in .])]) if test $ac_cv_header_sys_mkdev_h = no; then AC_CHECK_HEADER([sys/sysmacros.h], [AC_DEFINE([MAJOR_IN_SYSMACROS], [1], [Define to 1 if `major', `minor', and `makedev' are declared in .])]) fi ]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/sys_uio_h.m40000644000000000000000000000011013726163410021566 xustar000000000000000024 mtime=1599661832.578 24 atime=1599661832.752 24 ctime=1599661998.426 libprelude-5.2.0/libmissing/m4/sys_uio_h.m40000644000000000000000000000165413726163410020577 0ustar00rootroot00000000000000# sys_uio_h.m4 serial 1 dnl Copyright (C) 2011-2018 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_HEADER_SYS_UIO], [ AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([sys/uio.h]) if test $ac_cv_header_sys_uio_h = yes; then HAVE_SYS_UIO_H=1 else HAVE_SYS_UIO_H=0 fi AC_SUBST([HAVE_SYS_UIO_H]) ]) AC_DEFUN([gl_SYS_UIO_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_UIO_H_DEFAULTS], [ ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/sys_utsname_h.m40000644000000000000000000000011013726163410022446 xustar000000000000000024 mtime=1599661832.578 24 atime=1599661832.752 24 ctime=1599661998.428 libprelude-5.2.0/libmissing/m4/sys_utsname_h.m40000644000000000000000000000343313726163410021454 0ustar00rootroot00000000000000# sys_utsname_h.m4 serial 8 dnl Copyright (C) 2009-2018 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. dnl Written by Bruno Haible. AC_DEFUN([gl_SYS_UTSNAME_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_SYS_UTSNAME_H_DEFAULTS]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([sys/utsname.h]) if test $ac_cv_header_sys_utsname_h != yes; then HAVE_SYS_UTSNAME_H=0 HAVE_STRUCT_UTSNAME=0 else HAVE_SYS_UTSNAME_H=1 AC_CHECK_TYPES([struct utsname], [], [HAVE_STRUCT_UTSNAME=0], [[ /* Minix 3.1.8 has a bug: must be included before . */ #include #include ]]) fi AC_SUBST([HAVE_SYS_UTSNAME_H]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Minix 3.1.8 has a bug: must be included before . */ #include #include ]], [uname]) ]) AC_DEFUN([gl_SYS_UTSNAME_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_UTSNAME_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_SYS_UTSNAME_H_DEFAULTS], [ GNULIB_UNAME=0; AC_SUBST([GNULIB_UNAME]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_UNAME=1; AC_SUBST([HAVE_UNAME]) HAVE_STRUCT_UTSNAME=1; AC_SUBST([HAVE_STRUCT_UTSNAME]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/thread.m40000644000000000000000000000011013726163410021034 xustar000000000000000024 mtime=1599661832.579 24 atime=1599661832.752 24 ctime=1599661998.429 libprelude-5.2.0/libmissing/m4/thread.m40000644000000000000000000000076113726163410020043 0ustar00rootroot00000000000000# thread.m4 serial 3 dnl Copyright (C) 2008-2018 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_THREAD], [ AC_REQUIRE([gl_THREADLIB]) if test $gl_threads_api = posix; then gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBMULTITHREAD" AC_CHECK_FUNCS([pthread_atfork]) LIBS="$gl_save_LIBS" fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/threadlib.m40000644000000000000000000000011013726163410021523 xustar000000000000000024 mtime=1599661832.579 24 atime=1599661832.752 24 ctime=1599661998.431 libprelude-5.2.0/libmissing/m4/threadlib.m40000644000000000000000000004602713726163410020537 0ustar00rootroot00000000000000# threadlib.m4 serial 14 dnl Copyright (C) 2005-2018 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. dnl From Bruno Haible. dnl gl_THREADLIB dnl ------------ dnl Tests for a multithreading library to be used. dnl If the configure.ac contains a definition of the gl_THREADLIB_DEFAULT_NO dnl (it must be placed before the invocation of gl_THREADLIB_EARLY!), then the dnl default is 'no', otherwise it is system dependent. In both cases, the user dnl can change the choice through the options --enable-threads=choice or dnl --disable-threads. dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, dnl USE_PTH_THREADS, USE_WINDOWS_THREADS dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with dnl libtool). dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for dnl programs that really need multithread functionality. The difference dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak dnl symbols, typically LIBTHREAD is empty whereas LIBMULTITHREAD is not. dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for dnl multithread-safe programs. AC_DEFUN([gl_THREADLIB_EARLY], [ AC_REQUIRE([gl_THREADLIB_EARLY_BODY]) ]) dnl The guts of gl_THREADLIB_EARLY. Needs to be expanded only once. AC_DEFUN([gl_THREADLIB_EARLY_BODY], [ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that dnl influences the result of the autoconf tests that test for *_unlocked dnl declarations, on AIX 5 at least. Therefore it must come early. AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl AC_BEFORE([$0], [gl_ARGP])dnl AC_REQUIRE([AC_CANONICAL_HOST]) dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems. dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes dnl AC_GNU_SOURCE. m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], [AC_REQUIRE([AC_GNU_SOURCE])]) dnl Check for multithreading. m4_ifdef([gl_THREADLIB_DEFAULT_NO], [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])], [m4_divert_text([DEFAULTS], [gl_use_threads_default=])]) AC_ARG_ENABLE([threads], AC_HELP_STRING([--enable-threads={posix|solaris|pth|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [ AC_HELP_STRING([--disable-threads], [build without multithread safety])]), [gl_use_threads=$enableval], [if test -n "$gl_use_threads_default"; then gl_use_threads="$gl_use_threads_default" else changequote(,)dnl case "$host_os" in dnl Disable multithreading by default on OSF/1, because it interferes dnl with fork()/exec(): When msgexec is linked with -lpthread, its dnl child process gets an endless segmentation fault inside execvp(). dnl Disable multithreading by default on Cygwin 1.5.x, because it has dnl bugs that lead to endless loops or crashes. See dnl . osf*) gl_use_threads=no ;; cygwin*) case `uname -r` in 1.[0-5].*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ;; *) gl_use_threads=yes ;; esac changequote([,])dnl fi ]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # For using : case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks . cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_LINK_IFELSE test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in . case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac fi ]) dnl The guts of gl_THREADLIB. Needs to be expanded only once. AC_DEFUN([gl_THREADLIB_BODY], [ AC_REQUIRE([gl_THREADLIB_EARLY_BODY]) gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then dnl Check whether the compiler and linker support weak declarations. AC_CACHE_CHECK([whether imported symbols can be declared weak], [gl_cv_have_weak], [gl_cv_have_weak=no dnl First, test whether the compiler accepts it syntactically. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[extern void xyzzy (); #pragma weak xyzzy]], [[xyzzy();]])], [gl_cv_have_weak=maybe]) if test $gl_cv_have_weak = maybe; then dnl Second, test whether it actually works. On Cygwin 1.7.2, with dnl gcc 4.3, symbols declared weak always evaluate to the address 0. AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #pragma weak fputs int main () { return (fputs == NULL); }]])], [gl_cv_have_weak=yes], [gl_cv_have_weak=no], [dnl When cross-compiling, assume that only ELF platforms support dnl weak symbols. AC_EGREP_CPP([Extensible Linking Format], [#ifdef __ELF__ Extensible Linking Format #endif ], [gl_cv_have_weak="guessing yes"], [gl_cv_have_weak="guessing no"]) ]) fi dnl But when linking statically, weak symbols don't work. case " $LDFLAGS " in *" -static "*) gl_cv_have_weak=no ;; esac ]) dnl Check whether the linker supports the --as-needed/--no-as-needed options. dnl Assume GCC, so that we can use the -Wl option. AC_CACHE_CHECK([whether the linker supports --as-needed], [gl_cv_linker_have_as_needed], [if test -n "$GCC"; then gl_saved_ldflags="$LDFLAGS" LDFLAGS="$gl_saved_ldflags -Wl,--as-needed -Wl,--no-as-needed" AC_LINK_IFELSE([AC_LANG_PROGRAM()], [gl_cv_linker_have_as_needed=yes], [gl_cv_linker_have_as_needed=no]) LDFLAGS="$gl_saved_ldflags" else gl_cv_linker_have_as_needed=no fi ]) dnl Check whether the linker supports the --push-state/--pop-state options. dnl Assume GCC, so that we can use the -Wl option. AC_CACHE_CHECK([whether the linker supports --push-state], [gl_cv_linker_have_push_state], [if test -n "$GCC"; then gl_saved_ldflags="$LDFLAGS" LDFLAGS="$gl_saved_ldflags -Wl,--push-state -Wl,--pop-state" AC_LINK_IFELSE([AC_LANG_PROGRAM()], [gl_cv_linker_have_push_state=yes], [gl_cv_linker_have_push_state=no]) LDFLAGS="$gl_saved_ldflags" else gl_cv_linker_have_push_state=no fi ]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks . It's added above, in gl_THREADLIB_EARLY_BODY. AC_CHECK_HEADER([pthread.h], [gl_have_pthread_h=yes], [gl_have_pthread_h=no]) if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. # # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 # needs -pthread for some reason. See: # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html save_LIBS=$LIBS for gl_pthread in '' '-pthread'; do LIBS="$LIBS $gl_pthread" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include pthread_mutex_t m; pthread_mutexattr_t ma; ]], [[pthread_mutex_lock (&m); pthread_mutexattr_init (&ma);]])], [gl_have_pthread=yes LIBTHREAD=$gl_pthread LTLIBTHREAD=$gl_pthread LIBMULTITHREAD=$gl_pthread LTLIBMULTITHREAD=$gl_pthread]) LIBS=$save_LIBS test -n "$gl_have_pthread" && break done # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test -n "$gl_have_pthread" && test -z "$LIBTHREAD"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. AC_CHECK_LIB([pthread], [pthread_kill], [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. # On Solaris 10 or newer, this test is no longer needed, because # libc contains the fully functional pthread functions. case "$host_os" in solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*) AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1], [Define if the pthread_in_use() detection is hard.]) esac ]) elif test -z "$gl_have_pthread"; then # Some library is needed. Try libpthread and libc_r. AC_CHECK_LIB([pthread], [pthread_kill], [gl_have_pthread=yes LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) if test -z "$gl_have_pthread"; then # For FreeBSD 4. AC_CHECK_LIB([c_r], [pthread_kill], [gl_have_pthread=yes LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) fi fi if test -n "$gl_have_pthread"; then gl_threads_api=posix AC_DEFINE([USE_POSIX_THREADS], [1], [Define if the POSIX multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_POSIX_THREADS_WEAK], [1], [Define if references to the POSIX multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= dnl On platforms where GCC enables --as-needed by default, attempt dnl to make sure that LIBMULTITHREAD really links with -lpthread. dnl Otherwise linking with LIBMULTITHREAD has no effect; then dnl the weak symbols are not defined and thus evaluate to NULL. case "$LIBMULTITHREAD" in "") ;; -pthread) if test $gl_cv_linker_have_as_needed = yes; then if test $gl_cv_linker_have_push_state = yes; then LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--push-state -Wl,--no-as-needed -lpthread -Wl,--pop-state" else LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--no-as-needed -lpthread" fi fi ;; *) if test $gl_cv_linker_have_as_needed = yes; then if test $gl_cv_linker_have_push_state = yes; then LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state" else LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD" fi fi ;; esac # TODO: May need to modify LTLIBMULTITHREAD similarly. fi fi fi fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then gl_have_solaristhread= gl_save_LIBS="$LIBS" LIBS="$LIBS -lthread" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[thr_self();]])], [gl_have_solaristhread=yes]) LIBS="$gl_save_LIBS" if test -n "$gl_have_solaristhread"; then gl_threads_api=solaris LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_SOLARIS_THREADS], [1], [Define if the old Solaris multithreading library can be used.]) if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_SOLARIS_THREADS_WEAK], [1], [Define if references to the old Solaris multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= dnl On platforms where GCC enables --as-needed by default, attempt dnl to make sure that LIBMULTITHREAD really links with -lthread. dnl Otherwise linking with LIBMULTITHREAD has no effect; then dnl the weak symbols are not defined and thus evaluate to NULL. if test $gl_cv_linker_have_as_needed = yes; then if test $gl_cv_linker_have_push_state = yes; then LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state" else LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD" fi fi # TODO: May need to modify LTLIBMULTITHREAD similarly. fi fi fi fi if test "$gl_use_threads" = pth; then gl_save_CPPFLAGS="$CPPFLAGS" AC_LIB_LINKFLAGS([pth]) gl_have_pth= gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBPTH" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[pth_self();]])], [gl_have_pth=yes]) LIBS="$gl_save_LIBS" if test -n "$gl_have_pth"; then gl_threads_api=pth LIBTHREAD="$LIBPTH" LTLIBTHREAD="$LTLIBPTH" LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_PTH_THREADS], [1], [Define if the GNU Pth multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_PTH_THREADS_WEAK], [1], [Define if references to the GNU Pth multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= dnl On platforms where GCC enables --as-needed by default, attempt dnl to make sure that LIBMULTITHREAD really links with -lpth. dnl Otherwise linking with LIBMULTITHREAD has no effect; then dnl the weak symbols are not defined and thus evaluate to NULL. if test $gl_cv_linker_have_as_needed = yes; then if test $gl_cv_linker_have_push_state = yes; then LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state" else LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD" fi fi # TODO: May need to modify LTLIBMULTITHREAD similarly. fi fi else CPPFLAGS="$gl_save_CPPFLAGS" fi fi if test -z "$gl_have_pthread"; then case "$gl_use_threads" in yes | windows | win32) # The 'win32' is for backward compatibility. if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=windows AC_DEFINE([USE_WINDOWS_THREADS], [1], [Define if the native Windows multithreading API can be used.]) fi ;; esac fi fi AC_MSG_CHECKING([for multithread API to use]) AC_MSG_RESULT([$gl_threads_api]) AC_SUBST([LIBTHREAD]) AC_SUBST([LTLIBTHREAD]) AC_SUBST([LIBMULTITHREAD]) AC_SUBST([LTLIBMULTITHREAD]) ]) AC_DEFUN([gl_THREADLIB], [ AC_REQUIRE([gl_THREADLIB_EARLY]) AC_REQUIRE([gl_THREADLIB_BODY]) ]) dnl gl_DISABLE_THREADS dnl ------------------ dnl Sets the gl_THREADLIB default so that threads are not used by default. dnl The user can still override it at installation time, by using the dnl configure option '--enable-threads'. AC_DEFUN([gl_DISABLE_THREADS], [ m4_divert_text([INIT_PREPARE], [gl_use_threads_default=no]) ]) dnl Survey of platforms: dnl dnl Platform Available Compiler Supports test-lock dnl flavours option weak result dnl --------------- --------- --------- -------- --------- dnl Linux 2.4/glibc posix -lpthread Y OK dnl dnl GNU Hurd/glibc posix dnl dnl Ubuntu 14.04 posix -pthread Y OK dnl dnl FreeBSD 5.3 posix -lc_r Y dnl posix -lkse ? Y dnl posix -lpthread ? Y dnl posix -lthr Y dnl dnl FreeBSD 5.2 posix -lc_r Y dnl posix -lkse Y dnl posix -lthr Y dnl dnl FreeBSD 4.0,4.10 posix -lc_r Y OK dnl dnl NetBSD 1.6 -- dnl dnl OpenBSD 3.4 posix -lpthread Y OK dnl dnl Mac OS X 10.[123] posix -lpthread Y OK dnl dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK dnl dnl HP-UX 11 posix -lpthread N (cc) OK dnl Y (gcc) dnl dnl IRIX 6.5 posix -lpthread Y 0.5 dnl dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK dnl dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK dnl -lpthread (gcc) Y dnl dnl Cygwin posix -lpthread Y OK dnl dnl Any of the above pth -lpth 0.0 dnl dnl Mingw windows N OK dnl dnl BeOS 5 -- dnl dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is dnl turned off: dnl OK if all three tests terminate OK, dnl 0.5 if the first test terminates OK but the second one loops endlessly, dnl 0.0 if the first test already loops endlessly. libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/time_h.m40000644000000000000000000000011013726163410021032 xustar000000000000000024 mtime=1599661832.579 24 atime=1599661832.752 24 ctime=1599661998.433 libprelude-5.2.0/libmissing/m4/time_h.m40000644000000000000000000001376213726163410020046 0ustar00rootroot00000000000000# Configure a more-standard replacement for . # Copyright (C) 2000-2001, 2003-2007, 2009-2018 Free Software Foundation, Inc. # serial 11 # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert and Jim Meyering. AC_DEFUN([gl_HEADER_TIME_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_HEADER_TIME_H_BODY]) ]) AC_DEFUN([gl_HEADER_TIME_H_BODY], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) gl_NEXT_HEADERS([time.h]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) ]) dnl Check whether 'struct timespec' is declared dnl in time.h, sys/time.h, pthread.h, or unistd.h. AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], [ AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CACHE_CHECK([for struct timespec in ], [gl_cv_sys_struct_timespec_in_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_time_h=yes], [gl_cv_sys_struct_timespec_in_time_h=no])]) TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in ], [gl_cv_sys_struct_timespec_in_sys_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_sys_time_h=yes], [gl_cv_sys_struct_timespec_in_sys_time_h=no])]) if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in ], [gl_cv_sys_struct_timespec_in_pthread_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_pthread_h=yes], [gl_cv_sys_struct_timespec_in_pthread_h=no])]) if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in ], [gl_cv_sys_struct_timespec_in_unistd_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_unistd_h=yes], [gl_cv_sys_struct_timespec_in_unistd_h=no])]) if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 fi fi fi fi AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([UNISTD_H_DEFINES_STRUCT_TIMESPEC]) ]) AC_DEFUN([gl_TIME_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS], [ GNULIB_CTIME=0; AC_SUBST([GNULIB_CTIME]) GNULIB_MKTIME=0; AC_SUBST([GNULIB_MKTIME]) GNULIB_LOCALTIME=0; AC_SUBST([GNULIB_LOCALTIME]) GNULIB_NANOSLEEP=0; AC_SUBST([GNULIB_NANOSLEEP]) GNULIB_STRFTIME=0; AC_SUBST([GNULIB_STRFTIME]) GNULIB_STRPTIME=0; AC_SUBST([GNULIB_STRPTIME]) GNULIB_TIMEGM=0; AC_SUBST([GNULIB_TIMEGM]) GNULIB_TIME_R=0; AC_SUBST([GNULIB_TIME_R]) GNULIB_TIME_RZ=0; AC_SUBST([GNULIB_TIME_RZ]) GNULIB_TZSET=0; AC_SUBST([GNULIB_TZSET]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R]) HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP]) HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME]) HAVE_TIMEGM=1; AC_SUBST([HAVE_TIMEGM]) HAVE_TZSET=1; AC_SUBST([HAVE_TZSET]) dnl Even GNU libc does not have timezone_t yet. HAVE_TIMEZONE_T=0; AC_SUBST([HAVE_TIMEZONE_T]) dnl If another module says to replace or to not replace, do that. dnl Otherwise, replace only if someone compiles with -DGNULIB_PORTCHECK; dnl this lets maintainers check for portability. REPLACE_CTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_CTIME]) REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; AC_SUBST([REPLACE_LOCALTIME_R]) REPLACE_MKTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_MKTIME]) REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP]) REPLACE_STRFTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_STRFTIME]) REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM]) REPLACE_TZSET=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TZSET]) dnl Hack so that the time module doesn't depend on the sys_time module. dnl First, default GNULIB_GETTIMEOFDAY to 0 if sys_time is absent. : ${GNULIB_GETTIMEOFDAY=0}; AC_SUBST([GNULIB_GETTIMEOFDAY]) dnl Second, it's OK to not use GNULIB_PORTCHECK for REPLACE_GMTIME dnl and REPLACE_LOCALTIME, as portability to Solaris 2.6 and earlier dnl is no longer a big deal. REPLACE_GMTIME=0; AC_SUBST([REPLACE_GMTIME]) REPLACE_LOCALTIME=0; AC_SUBST([REPLACE_LOCALTIME]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/time_r.m40000644000000000000000000000011013726163410021044 xustar000000000000000024 mtime=1599661832.579 24 atime=1599661832.752 24 ctime=1599661998.434 libprelude-5.2.0/libmissing/m4/time_r.m40000644000000000000000000000353013726163410020050 0ustar00rootroot00000000000000dnl Reentrant time functions: localtime_r, gmtime_r. dnl Copyright (C) 2003, 2006-2018 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. dnl Written by Paul Eggert. AC_DEFUN([gl_TIME_R], [ dnl Persuade glibc and Solaris to declare localtime_r. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) AC_REQUIRE([AC_C_RESTRICT]) dnl Some systems don't declare localtime_r() and gmtime_r() if _REENTRANT is dnl not defined. AC_CHECK_DECLS([localtime_r], [], [], [[#include ]]) if test $ac_cv_have_decl_localtime_r = no; then HAVE_DECL_LOCALTIME_R=0 fi AC_CHECK_FUNCS_ONCE([localtime_r]) if test $ac_cv_func_localtime_r = yes; then HAVE_LOCALTIME_R=1 AC_CACHE_CHECK([whether localtime_r is compatible with its POSIX signature], [gl_cv_time_r_posix], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[/* We don't need to append 'restrict's to the argument types, even though the POSIX signature has the 'restrict's, since C99 says they can't affect type compatibility. */ struct tm * (*ptr) (time_t const *, struct tm *) = localtime_r; if (ptr) return 0; /* Check the return type is a pointer. On HP-UX 10 it is 'int'. */ *localtime_r (0, 0);]]) ], [gl_cv_time_r_posix=yes], [gl_cv_time_r_posix=no]) ]) if test $gl_cv_time_r_posix = yes; then REPLACE_LOCALTIME_R=0 else REPLACE_LOCALTIME_R=1 fi else HAVE_LOCALTIME_R=0 fi ]) # Prerequisites of lib/time_r.c. AC_DEFUN([gl_PREREQ_TIME_R], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/timegm.m40000644000000000000000000000011013726163410021047 xustar000000000000000024 mtime=1599661832.579 24 atime=1599661832.752 24 ctime=1599661998.436 libprelude-5.2.0/libmissing/m4/timegm.m40000644000000000000000000000132713726163410020055 0ustar00rootroot00000000000000# timegm.m4 serial 12 dnl Copyright (C) 2003, 2007, 2009-2018 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_FUNC_TIMEGM], [ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_MKTIME_WORKS]) REPLACE_TIMEGM=0 AC_CHECK_FUNCS_ONCE([timegm]) if test $ac_cv_func_timegm = yes; then if test "$gl_cv_func_working_mktime" != yes; then # Assume that timegm is buggy if mktime is. REPLACE_TIMEGM=1 fi else HAVE_TIMEGM=0 fi ]) # Prerequisites of lib/timegm.c. AC_DEFUN([gl_PREREQ_TIMEGM], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/tls.m40000644000000000000000000000010713726163410020375 xustar000000000000000023 mtime=1599661832.58 24 atime=1599661832.752 24 ctime=1599661998.438 libprelude-5.2.0/libmissing/m4/tls.m40000644000000000000000000000056213726163410017375 0ustar00rootroot00000000000000# tls.m4 serial 2 (gettext-0.18) dnl Copyright (C) 2005, 2008-2018 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. dnl From Bruno Haible. AC_DEFUN([gl_TLS], [ AC_REQUIRE([gl_THREADLIB]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/tm_gmtoff.m40000644000000000000000000000010713726163410021555 xustar000000000000000023 mtime=1599661832.58 24 atime=1599661832.752 24 ctime=1599661998.439 libprelude-5.2.0/libmissing/m4/tm_gmtoff.m40000644000000000000000000000103513726163410020551 0ustar00rootroot00000000000000# tm_gmtoff.m4 serial 3 dnl Copyright (C) 2002, 2009-2018 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_TM_GMTOFF], [ AC_CHECK_MEMBER([struct tm.tm_gmtoff], [AC_DEFINE([HAVE_TM_GMTOFF], [1], [Define if struct tm has the tm_gmtoff member.])], , [#include ]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/uname.m40000644000000000000000000000010713726163410020700 xustar000000000000000023 mtime=1599661832.58 24 atime=1599661832.752 24 ctime=1599661998.441 libprelude-5.2.0/libmissing/m4/uname.m40000644000000000000000000000077113726163410017702 0ustar00rootroot00000000000000# uname.m4 serial 11 dnl Copyright (C) 2009-2018 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_FUNC_UNAME], [ AC_REQUIRE([gl_SYS_UTSNAME_H_DEFAULTS]) AC_CHECK_FUNCS([uname]) if test $ac_cv_func_uname = no; then HAVE_UNAME=0 fi ]) # Prerequisites of lib/uname.c. AC_DEFUN([gl_PREREQ_UNAME], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/ungetc.m40000644000000000000000000000010713726163410021060 xustar000000000000000023 mtime=1599661832.58 24 atime=1599661832.752 24 ctime=1599661998.443 libprelude-5.2.0/libmissing/m4/ungetc.m40000644000000000000000000000432113726163410020055 0ustar00rootroot00000000000000# ungetc.m4 serial 6 dnl Copyright (C) 2009-2018 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_ONCE([gl_FUNC_UNGETC_WORKS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether ungetc works on arbitrary bytes], [gl_cv_func_ungetc_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include ]], [FILE *f; if (!(f = fopen ("conftest.tmp", "w+"))) return 1; if (fputs ("abc", f) < 0) { fclose (f); return 2; } rewind (f); if (fgetc (f) != 'a') { fclose (f); return 3; } if (fgetc (f) != 'b') { fclose (f); return 4; } if (ungetc ('d', f) != 'd') { fclose (f); return 5; } if (ftell (f) != 1) { fclose (f); return 6; } if (fgetc (f) != 'd') { fclose (f); return 7; } if (ftell (f) != 2) { fclose (f); return 8; } if (fseek (f, 0, SEEK_CUR) != 0) { fclose (f); return 9; } if (ftell (f) != 2) { fclose (f); return 10; } if (fgetc (f) != 'c') { fclose (f); return 11; } fclose (f); remove ("conftest.tmp");])], [gl_cv_func_ungetc_works=yes], [gl_cv_func_ungetc_works=no], [case "$host_os" in # Guess yes on glibc and bionic systems. *-gnu* | gnu* | *-android*) gl_cv_func_ungetc_works="guessing yes" ;; # Guess yes on native Windows. mingw*) gl_cv_func_ungetc_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_ungetc_works="guessing no" ;; esac ]) ]) case "$gl_cv_func_ungetc_works" in *yes) ;; *) AC_DEFINE([FUNC_UNGETC_BROKEN], [1], [Define to 1 if ungetc is broken when used on arbitrary bytes.]) ;; esac ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/unistd_h.m40000644000000000000000000000010713726163410021410 xustar000000000000000023 mtime=1599661832.58 24 atime=1599661832.752 24 ctime=1599661998.444 libprelude-5.2.0/libmissing/m4/unistd_h.m40000644000000000000000000002260713726163410020414 0ustar00rootroot00000000000000# unistd_h.m4 serial 74 dnl Copyright (C) 2006-2018 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. dnl Written by Simon Josefsson, Bruno Haible. AC_DEFUN([gl_UNISTD_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([unistd.h]) if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi AC_SUBST([HAVE_UNISTD_H]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Determine WINDOWS_64_BIT_OFF_T. AC_REQUIRE([gl_TYPE_OFF_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ #if HAVE_UNISTD_H # include #endif /* Some systems declare various items in the wrong headers. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include # if defined _WIN32 && ! defined __CYGWIN__ # include # endif #endif ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getpass getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat truncate ttyname_r unlink unlinkat usleep]) ]) AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_UNISTD_H_DEFAULTS], [ GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR]) GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) GNULIB_DUP=0; AC_SUBST([GNULIB_DUP]) GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) GNULIB_ENVIRON=0; AC_SUBST([GNULIB_ENVIRON]) GNULIB_EUIDACCESS=0; AC_SUBST([GNULIB_EUIDACCESS]) GNULIB_FACCESSAT=0; AC_SUBST([GNULIB_FACCESSAT]) GNULIB_FCHDIR=0; AC_SUBST([GNULIB_FCHDIR]) GNULIB_FCHOWNAT=0; AC_SUBST([GNULIB_FCHOWNAT]) GNULIB_FDATASYNC=0; AC_SUBST([GNULIB_FDATASYNC]) GNULIB_FSYNC=0; AC_SUBST([GNULIB_FSYNC]) GNULIB_FTRUNCATE=0; AC_SUBST([GNULIB_FTRUNCATE]) GNULIB_GETCWD=0; AC_SUBST([GNULIB_GETCWD]) GNULIB_GETDOMAINNAME=0; AC_SUBST([GNULIB_GETDOMAINNAME]) GNULIB_GETDTABLESIZE=0; AC_SUBST([GNULIB_GETDTABLESIZE]) GNULIB_GETGROUPS=0; AC_SUBST([GNULIB_GETGROUPS]) GNULIB_GETHOSTNAME=0; AC_SUBST([GNULIB_GETHOSTNAME]) GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN]) GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) GNULIB_GETPASS=0; AC_SUBST([GNULIB_GETPASS]) GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) GNULIB_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER]) GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY]) GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN]) GNULIB_LINK=0; AC_SUBST([GNULIB_LINK]) GNULIB_LINKAT=0; AC_SUBST([GNULIB_LINKAT]) GNULIB_LSEEK=0; AC_SUBST([GNULIB_LSEEK]) GNULIB_PIPE=0; AC_SUBST([GNULIB_PIPE]) GNULIB_PIPE2=0; AC_SUBST([GNULIB_PIPE2]) GNULIB_PREAD=0; AC_SUBST([GNULIB_PREAD]) GNULIB_PWRITE=0; AC_SUBST([GNULIB_PWRITE]) GNULIB_READ=0; AC_SUBST([GNULIB_READ]) GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK]) GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT]) GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR]) GNULIB_SETHOSTNAME=0; AC_SUBST([GNULIB_SETHOSTNAME]) GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP]) GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK]) GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT]) GNULIB_TRUNCATE=0; AC_SUBST([GNULIB_TRUNCATE]) GNULIB_TTYNAME_R=0; AC_SUBST([GNULIB_TTYNAME_R]) GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING]) GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE]) GNULIB_UNLINK=0; AC_SUBST([GNULIB_UNLINK]) GNULIB_UNLINKAT=0; AC_SUBST([GNULIB_UNLINKAT]) GNULIB_USLEEP=0; AC_SUBST([GNULIB_USLEEP]) GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) HAVE_DUP2=1; AC_SUBST([HAVE_DUP2]) HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) HAVE_FACCESSAT=1; AC_SUBST([HAVE_FACCESSAT]) HAVE_FCHDIR=1; AC_SUBST([HAVE_FCHDIR]) HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT]) HAVE_FDATASYNC=1; AC_SUBST([HAVE_FDATASYNC]) HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC]) HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE]) HAVE_GETDTABLESIZE=1; AC_SUBST([HAVE_GETDTABLESIZE]) HAVE_GETGROUPS=1; AC_SUBST([HAVE_GETGROUPS]) HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) HAVE_GETPASS=1; AC_SUBST([HAVE_GETPASS]) HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) HAVE_LINK=1; AC_SUBST([HAVE_LINK]) HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT]) HAVE_PIPE=1; AC_SUBST([HAVE_PIPE]) HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2]) HAVE_PREAD=1; AC_SUBST([HAVE_PREAD]) HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE]) HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT]) HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME]) HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR]) HAVE_DECL_FDATASYNC=1; AC_SUBST([HAVE_DECL_FDATASYNC]) HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME]) HAVE_DECL_GETLOGIN=1; AC_SUBST([HAVE_DECL_GETLOGIN]) HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) HAVE_DECL_TRUNCATE=1; AC_SUBST([HAVE_DECL_TRUNCATE]) HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE]) REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) REPLACE_FACCESSAT=0; AC_SUBST([REPLACE_FACCESSAT]) REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME]) REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE]) REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) REPLACE_GETPASS=0; AC_SUBST([REPLACE_GETPASS]) REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) REPLACE_READ=0; AC_SUBST([REPLACE_READ]) REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) REPLACE_READLINKAT=0; AC_SUBST([REPLACE_READLINKAT]) REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) REPLACE_SYMLINKAT=0; AC_SUBST([REPLACE_SYMLINKAT]) REPLACE_TRUNCATE=0; AC_SUBST([REPLACE_TRUNCATE]) REPLACE_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R]) REPLACE_UNLINK=0; AC_SUBST([REPLACE_UNLINK]) REPLACE_UNLINKAT=0; AC_SUBST([REPLACE_UNLINKAT]) REPLACE_USLEEP=0; AC_SUBST([REPLACE_USLEEP]) REPLACE_WRITE=0; AC_SUBST([REPLACE_WRITE]) UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H]) UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/usleep.m40000644000000000000000000000011013726163410021062 xustar000000000000000024 mtime=1599661832.581 24 atime=1599661832.752 24 ctime=1599661998.446 libprelude-5.2.0/libmissing/m4/usleep.m40000644000000000000000000000353313726163410020071 0ustar00rootroot00000000000000# usleep.m4 serial 5 dnl Copyright (C) 2009-2018 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. dnl This macro intentionally does not check for select or nanosleep; dnl both of those modules can require external libraries. AC_DEFUN([gl_FUNC_USLEEP], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl usleep was required in POSIX 2001, but dropped as obsolete in dnl POSIX 2008; therefore, it is not always exposed in headers. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_FUNCS_ONCE([usleep]) AC_CHECK_TYPE([useconds_t], [], [AC_DEFINE([useconds_t], [unsigned int], [Define to an unsigned 32-bit type if lacks this type.])]) if test $ac_cv_func_usleep = no; then HAVE_USLEEP=0 else dnl POSIX allows implementations to reject arguments larger than dnl 999999, but GNU guarantees it will work. AC_CACHE_CHECK([whether usleep allows large arguments], [gl_cv_func_usleep_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include ]], [[return !!usleep (1000000);]])], [gl_cv_func_usleep_works=yes], [gl_cv_func_usleep_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_usleep_works="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_usleep_works="guessing no" ;; # If we don't know, assume the worst. *) gl_cv_func_usleep_works="guessing no" ;; esac ])]) case "$gl_cv_func_usleep_works" in *yes) ;; *) REPLACE_USLEEP=1 ;; esac fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/vasnprintf.m40000644000000000000000000000011013726163410021757 xustar000000000000000024 mtime=1599661832.581 24 atime=1599661832.752 24 ctime=1599661998.448 libprelude-5.2.0/libmissing/m4/vasnprintf.m40000644000000000000000000002113313726163410020762 0ustar00rootroot00000000000000# vasnprintf.m4 serial 36 dnl Copyright (C) 2002-2004, 2006-2018 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_FUNC_VASNPRINTF], [ AC_CHECK_FUNCS_ONCE([vasnprintf]) if test $ac_cv_func_vasnprintf = no; then gl_REPLACE_VASNPRINTF fi ]) AC_DEFUN([gl_REPLACE_VASNPRINTF], [ AC_CHECK_FUNCS_ONCE([vasnprintf]) AC_LIBOBJ([vasnprintf]) AC_LIBOBJ([printf-args]) AC_LIBOBJ([printf-parse]) AC_LIBOBJ([asnprintf]) if test $ac_cv_func_vasnprintf = yes; then AC_DEFINE([REPLACE_VASNPRINTF], [1], [Define if vasnprintf exists but is overridden by gnulib.]) fi gl_PREREQ_PRINTF_ARGS gl_PREREQ_PRINTF_PARSE gl_PREREQ_VASNPRINTF gl_PREREQ_ASNPRINTF ]) # Prerequisites of lib/printf-args.h, lib/printf-args.c. AC_DEFUN([gl_PREREQ_PRINTF_ARGS], [ AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) ]) # Prerequisites of lib/printf-parse.h, lib/printf-parse.c. AC_DEFUN([gl_PREREQ_PRINTF_PARSE], [ AC_REQUIRE([gl_FEATURES_H]) AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) AC_REQUIRE([AC_TYPE_SIZE_T]) AC_CHECK_TYPE([ptrdiff_t], , [AC_DEFINE([ptrdiff_t], [long], [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) ]) AC_REQUIRE([gt_AC_TYPE_INTMAX_T]) ]) # Prerequisites of lib/vasnprintf.c. AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF], [ AC_REQUIRE([AC_FUNC_ALLOCA]) AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb]) dnl Use the _snprintf function only if it is declared (because on NetBSD it dnl is defined as a weak alias of snprintf; we prefer to use the latter). AC_CHECK_DECLS([_snprintf], , , [[#include ]]) dnl Knowing DBL_EXPBIT0_WORD and DBL_EXPBIT0_BIT enables an optimization dnl in the code for NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE. AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION]) dnl We can avoid a lot of code by assuming that snprintf's return value dnl conforms to ISO C99. So check that. AC_REQUIRE([gl_SNPRINTF_RETVAL_C99]) case "$gl_cv_func_snprintf_retval_c99" in *yes) AC_DEFINE([HAVE_SNPRINTF_RETVAL_C99], [1], [Define if the return value of the snprintf function is the number of of bytes (excluding the terminating NUL) that would have been produced if the buffer had been large enough.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting 'long double' # arguments. AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE], [ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE]) case "$gl_cv_func_printf_long_double" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'long double' arguments.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting infinite 'double' # arguments. AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE], [ AC_REQUIRE([gl_PRINTF_INFINITE]) case "$gl_cv_func_printf_infinite" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_INFINITE_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for infinite 'double' arguments.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting infinite 'long double' # arguments. AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE], [ AC_REQUIRE([gl_PRINTF_INFINITE_LONG_DOUBLE]) dnl There is no need to set NEED_PRINTF_INFINITE_LONG_DOUBLE if dnl NEED_PRINTF_LONG_DOUBLE is already set. AC_REQUIRE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE]) case "$gl_cv_func_printf_long_double" in *yes) case "$gl_cv_func_printf_infinite_long_double" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_INFINITE_LONG_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for infinite 'long double' arguments.]) ;; esac ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the 'a' directive. AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_A], [ AC_REQUIRE([gl_PRINTF_DIRECTIVE_A]) case "$gl_cv_func_printf_directive_a" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_DIRECTIVE_A], [1], [Define if the vasnprintf implementation needs special code for the 'a' and 'A' directives.]) AC_CHECK_FUNCS([nl_langinfo]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the 'F' directive. AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_F], [ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F]) case "$gl_cv_func_printf_directive_f" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_DIRECTIVE_F], [1], [Define if the vasnprintf implementation needs special code for the 'F' directive.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the 'ls' directive. AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_LS], [ AC_REQUIRE([gl_PRINTF_DIRECTIVE_LS]) case "$gl_cv_func_printf_directive_ls" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_DIRECTIVE_LS], [1], [Define if the vasnprintf implementation needs special code for the 'ls' directive.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the ' flag. AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_GROUPING], [ AC_REQUIRE([gl_PRINTF_FLAG_GROUPING]) case "$gl_cv_func_printf_flag_grouping" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_FLAG_GROUPING], [1], [Define if the vasnprintf implementation needs special code for the ' flag.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the '-' flag. AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST], [ AC_REQUIRE([gl_PRINTF_FLAG_LEFTADJUST]) case "$gl_cv_func_printf_flag_leftadjust" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_FLAG_LEFTADJUST], [1], [Define if the vasnprintf implementation needs special code for the '-' flag.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting the 0 flag. AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_ZERO], [ AC_REQUIRE([gl_PRINTF_FLAG_ZERO]) case "$gl_cv_func_printf_flag_zero" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_FLAG_ZERO], [1], [Define if the vasnprintf implementation needs special code for the 0 flag.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for supporting large precisions. AC_DEFUN([gl_PREREQ_VASNPRINTF_PRECISION], [ AC_REQUIRE([gl_PRINTF_PRECISION]) case "$gl_cv_func_printf_precision" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_UNBOUNDED_PRECISION], [1], [Define if the vasnprintf implementation needs special code for supporting large precisions without arbitrary bounds.]) AC_DEFINE([NEED_PRINTF_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'double' arguments.]) AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'long double' arguments.]) ;; esac ]) # Extra prerequisites of lib/vasnprintf.c for surviving out-of-memory # conditions. AC_DEFUN([gl_PREREQ_VASNPRINTF_ENOMEM], [ AC_REQUIRE([gl_PRINTF_ENOMEM]) case "$gl_cv_func_printf_enomem" in *yes) ;; *) AC_DEFINE([NEED_PRINTF_ENOMEM], [1], [Define if the vasnprintf implementation needs special code for surviving out-of-memory conditions.]) AC_DEFINE([NEED_PRINTF_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'double' arguments.]) AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1], [Define if the vasnprintf implementation needs special code for 'long double' arguments.]) ;; esac ]) # Prerequisites of lib/vasnprintf.c including all extras for POSIX compliance. AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_EXTRAS], [ AC_REQUIRE([gl_PREREQ_VASNPRINTF]) gl_PREREQ_VASNPRINTF_LONG_DOUBLE gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE gl_PREREQ_VASNPRINTF_DIRECTIVE_A gl_PREREQ_VASNPRINTF_DIRECTIVE_F gl_PREREQ_VASNPRINTF_DIRECTIVE_LS gl_PREREQ_VASNPRINTF_FLAG_GROUPING gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST gl_PREREQ_VASNPRINTF_FLAG_ZERO gl_PREREQ_VASNPRINTF_PRECISION gl_PREREQ_VASNPRINTF_ENOMEM ]) # Prerequisites of lib/asnprintf.c. AC_DEFUN([gl_PREREQ_ASNPRINTF], [ ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/vsnprintf.m40000644000000000000000000000011013726163410021616 xustar000000000000000024 mtime=1599661832.581 24 atime=1599661832.752 24 ctime=1599661998.449 libprelude-5.2.0/libmissing/m4/vsnprintf.m40000644000000000000000000000362113726163410020623 0ustar00rootroot00000000000000# vsnprintf.m4 serial 7 dnl Copyright (C) 2002-2004, 2007-2018 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. dnl Libintl 0.17 will replace vsnprintf only if it does not support %1$s, dnl but defers to any gnulib vsnprintf replacements. Therefore, gnulib dnl must guarantee that the decision for replacing vsnprintf is a superset dnl of the reasons checked by libintl. AC_DEFUN([gl_FUNC_VSNPRINTF], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_cv_func_vsnprintf_usable=no AC_CHECK_FUNCS([vsnprintf]) if test $ac_cv_func_vsnprintf = yes; then gl_SNPRINTF_SIZE1 case "$gl_cv_func_snprintf_size1" in *yes) gl_SNPRINTF_RETVAL_C99 case "$gl_cv_func_snprintf_retval_c99" in *yes) gl_PRINTF_POSITIONS case "$gl_cv_func_printf_positions" in *yes) gl_cv_func_vsnprintf_usable=yes ;; esac ;; esac ;; esac fi if test $gl_cv_func_vsnprintf_usable = no; then gl_REPLACE_VSNPRINTF fi AC_CHECK_DECLS_ONCE([vsnprintf]) if test $ac_cv_have_decl_vsnprintf = no; then HAVE_DECL_VSNPRINTF=0 fi ]) AC_DEFUN([gl_REPLACE_VSNPRINTF], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_LIBOBJ([vsnprintf]) if test $ac_cv_func_vsnprintf = yes; then REPLACE_VSNPRINTF=1 else AC_CHECK_DECLS_ONCE([vsnprintf]) if test $ac_cv_have_decl_vsnprintf = yes; then dnl If the function is declared but does not appear to exist, it may be dnl defined as an inline function. In order to avoid a conflict, we have dnl to define rpl_vsnprintf, not vsnprintf. REPLACE_VSNPRINTF=1 fi fi gl_PREREQ_VSNPRINTF ]) # Prerequisites of lib/vsnprintf.c. AC_DEFUN([gl_PREREQ_VSNPRINTF], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/warn-on-use.m40000644000000000000000000000011013726163410021740 xustar000000000000000024 mtime=1599661832.581 24 atime=1599661832.752 24 ctime=1599661998.451 libprelude-5.2.0/libmissing/m4/warn-on-use.m40000644000000000000000000000435413726163410020751 0ustar00rootroot00000000000000# warn-on-use.m4 serial 6 dnl Copyright (C) 2010-2018 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. # gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES) # --------------------------------------- # If the module 'posixcheck' is in use: # # For each whitespace-separated element in the list of NAMES, define # HAVE_RAW_DECL_name if the function has a declaration among INCLUDES # even after being undefined as a macro. # # See warn-on-use.h for some hints on how to poison function names, as # well as ideas on poisoning global variables and macros. NAMES may # include global variables, but remember that only functions work with # _GL_WARN_ON_USE. Typically, INCLUDES only needs to list a single # header, but if the replacement header pulls in other headers because # some systems declare functions in the wrong header, then INCLUDES # should do likewise. # # It is generally safe to assume declarations for functions declared # in the intersection of C89 and C11 (such as printf) without # needing gl_WARN_ON_USE_PREPARE. AC_DEFUN([gl_WARN_ON_USE_PREPARE], [ m4_ifdef([gl_POSIXCHECK], [m4_foreach_w([gl_decl], [$2], [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])), [Define to 1 if ]m4_defn([gl_decl])[ is declared even after undefining macros.])])dnl dnl FIXME: gl_Symbol must be used unquoted until we can assume dnl autoconf 2.64 or newer. for gl_func in m4_flatten([$2]); do AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl AC_CACHE_CHECK([whether $gl_func is declared without a macro], gl_Symbol, [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], [@%:@undef $gl_func (void) $gl_func;])], [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])]) AS_VAR_IF(gl_Symbol, [yes], [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1]) dnl shortcut - if the raw declaration exists, then set a cache dnl variable to allow skipping any later AC_CHECK_DECL efforts eval ac_cv_have_decl_$gl_func=yes]) AS_VAR_POPDEF([gl_Symbol])dnl done ]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/wchar_h.m40000644000000000000000000000011013726163410021200 xustar000000000000000024 mtime=1599661832.581 24 atime=1599661832.752 24 ctime=1599661998.453 libprelude-5.2.0/libmissing/m4/wchar_h.m40000644000000000000000000002371513726163410020213 0ustar00rootroot00000000000000dnl A placeholder for ISO C99 , for platforms that have issues. dnl Copyright (C) 2007-2018 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. dnl Written by Eric Blake. # wchar_h.m4 serial 43 AC_DEFUN([gl_WCHAR_H], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) dnl Prepare for creating substitute . dnl Check for (missing in Linux uClibc when built without wide dnl character support). dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([wchar.h]) if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi AC_SUBST([HAVE_WCHAR_H]) AC_REQUIRE([gl_FEATURES_H]) AC_REQUIRE([gt_TYPE_WINT_T]) if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi AC_SUBST([HAVE_WINT_T]) AC_REQUIRE([gl_TYPE_WINT_T_PREREQ]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include #endif #include ]], [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth wcsftime ]) ]) dnl Check whether is usable at all. AC_DEFUN([gl_WCHAR_H_INLINE_OK], [ dnl Test whether suffers due to the transition from '__inline' to dnl 'gnu_inline'. See dnl and . In summary, dnl glibc version 2.5 or older, together with gcc version 4.3 or newer and dnl the option -std=c99 or -std=gnu99, leads to a broken . AC_CACHE_CHECK([whether uses 'inline' correctly], [gl_cv_header_wchar_h_correct_inline], [gl_cv_header_wchar_h_correct_inline=yes AC_LANG_CONFTEST([ AC_LANG_SOURCE([[#define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include extern int zero (void); int main () { return zero(); } ]])]) dnl Do not rename the object file from conftest.$ac_objext to dnl conftest1.$ac_objext, as this will cause the link to fail on dnl z/OS when using the XPLINK object format (due to duplicate dnl CSECT names). Instead, temporarily redefine $ac_compile so dnl that the object file has the latter name from the start. save_ac_compile="$ac_compile" ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` if echo '#include "conftest.c"' >conftest1.c && AC_TRY_EVAL([ac_compile]); then AC_LANG_CONFTEST([ AC_LANG_SOURCE([[#define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int zero (void) { return 0; } ]])]) dnl See note above about renaming object files. ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` if echo '#include "conftest.c"' >conftest2.c && AC_TRY_EVAL([ac_compile]); then if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD 2>&1; then : else gl_cv_header_wchar_h_correct_inline=no fi fi fi ac_compile="$save_ac_compile" rm -f conftest[12].c conftest[12].$ac_objext conftest$ac_exeext ]) if test $gl_cv_header_wchar_h_correct_inline = no; then AC_MSG_ERROR([ cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of , or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted.]) fi ]) AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_WCHAR_H_DEFAULTS], [ GNULIB_BTOWC=0; AC_SUBST([GNULIB_BTOWC]) GNULIB_WCTOB=0; AC_SUBST([GNULIB_WCTOB]) GNULIB_MBSINIT=0; AC_SUBST([GNULIB_MBSINIT]) GNULIB_MBRTOWC=0; AC_SUBST([GNULIB_MBRTOWC]) GNULIB_MBRLEN=0; AC_SUBST([GNULIB_MBRLEN]) GNULIB_MBSRTOWCS=0; AC_SUBST([GNULIB_MBSRTOWCS]) GNULIB_MBSNRTOWCS=0; AC_SUBST([GNULIB_MBSNRTOWCS]) GNULIB_WCRTOMB=0; AC_SUBST([GNULIB_WCRTOMB]) GNULIB_WCSRTOMBS=0; AC_SUBST([GNULIB_WCSRTOMBS]) GNULIB_WCSNRTOMBS=0; AC_SUBST([GNULIB_WCSNRTOMBS]) GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH]) GNULIB_WMEMCHR=0; AC_SUBST([GNULIB_WMEMCHR]) GNULIB_WMEMCMP=0; AC_SUBST([GNULIB_WMEMCMP]) GNULIB_WMEMCPY=0; AC_SUBST([GNULIB_WMEMCPY]) GNULIB_WMEMMOVE=0; AC_SUBST([GNULIB_WMEMMOVE]) GNULIB_WMEMSET=0; AC_SUBST([GNULIB_WMEMSET]) GNULIB_WCSLEN=0; AC_SUBST([GNULIB_WCSLEN]) GNULIB_WCSNLEN=0; AC_SUBST([GNULIB_WCSNLEN]) GNULIB_WCSCPY=0; AC_SUBST([GNULIB_WCSCPY]) GNULIB_WCPCPY=0; AC_SUBST([GNULIB_WCPCPY]) GNULIB_WCSNCPY=0; AC_SUBST([GNULIB_WCSNCPY]) GNULIB_WCPNCPY=0; AC_SUBST([GNULIB_WCPNCPY]) GNULIB_WCSCAT=0; AC_SUBST([GNULIB_WCSCAT]) GNULIB_WCSNCAT=0; AC_SUBST([GNULIB_WCSNCAT]) GNULIB_WCSCMP=0; AC_SUBST([GNULIB_WCSCMP]) GNULIB_WCSNCMP=0; AC_SUBST([GNULIB_WCSNCMP]) GNULIB_WCSCASECMP=0; AC_SUBST([GNULIB_WCSCASECMP]) GNULIB_WCSNCASECMP=0; AC_SUBST([GNULIB_WCSNCASECMP]) GNULIB_WCSCOLL=0; AC_SUBST([GNULIB_WCSCOLL]) GNULIB_WCSXFRM=0; AC_SUBST([GNULIB_WCSXFRM]) GNULIB_WCSDUP=0; AC_SUBST([GNULIB_WCSDUP]) GNULIB_WCSCHR=0; AC_SUBST([GNULIB_WCSCHR]) GNULIB_WCSRCHR=0; AC_SUBST([GNULIB_WCSRCHR]) GNULIB_WCSCSPN=0; AC_SUBST([GNULIB_WCSCSPN]) GNULIB_WCSSPN=0; AC_SUBST([GNULIB_WCSSPN]) GNULIB_WCSPBRK=0; AC_SUBST([GNULIB_WCSPBRK]) GNULIB_WCSSTR=0; AC_SUBST([GNULIB_WCSSTR]) GNULIB_WCSTOK=0; AC_SUBST([GNULIB_WCSTOK]) GNULIB_WCSWIDTH=0; AC_SUBST([GNULIB_WCSWIDTH]) GNULIB_WCSFTIME=0; AC_SUBST([GNULIB_WCSFTIME]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_BTOWC=1; AC_SUBST([HAVE_BTOWC]) HAVE_MBSINIT=1; AC_SUBST([HAVE_MBSINIT]) HAVE_MBRTOWC=1; AC_SUBST([HAVE_MBRTOWC]) HAVE_MBRLEN=1; AC_SUBST([HAVE_MBRLEN]) HAVE_MBSRTOWCS=1; AC_SUBST([HAVE_MBSRTOWCS]) HAVE_MBSNRTOWCS=1; AC_SUBST([HAVE_MBSNRTOWCS]) HAVE_WCRTOMB=1; AC_SUBST([HAVE_WCRTOMB]) HAVE_WCSRTOMBS=1; AC_SUBST([HAVE_WCSRTOMBS]) HAVE_WCSNRTOMBS=1; AC_SUBST([HAVE_WCSNRTOMBS]) HAVE_WMEMCHR=1; AC_SUBST([HAVE_WMEMCHR]) HAVE_WMEMCMP=1; AC_SUBST([HAVE_WMEMCMP]) HAVE_WMEMCPY=1; AC_SUBST([HAVE_WMEMCPY]) HAVE_WMEMMOVE=1; AC_SUBST([HAVE_WMEMMOVE]) HAVE_WMEMSET=1; AC_SUBST([HAVE_WMEMSET]) HAVE_WCSLEN=1; AC_SUBST([HAVE_WCSLEN]) HAVE_WCSNLEN=1; AC_SUBST([HAVE_WCSNLEN]) HAVE_WCSCPY=1; AC_SUBST([HAVE_WCSCPY]) HAVE_WCPCPY=1; AC_SUBST([HAVE_WCPCPY]) HAVE_WCSNCPY=1; AC_SUBST([HAVE_WCSNCPY]) HAVE_WCPNCPY=1; AC_SUBST([HAVE_WCPNCPY]) HAVE_WCSCAT=1; AC_SUBST([HAVE_WCSCAT]) HAVE_WCSNCAT=1; AC_SUBST([HAVE_WCSNCAT]) HAVE_WCSCMP=1; AC_SUBST([HAVE_WCSCMP]) HAVE_WCSNCMP=1; AC_SUBST([HAVE_WCSNCMP]) HAVE_WCSCASECMP=1; AC_SUBST([HAVE_WCSCASECMP]) HAVE_WCSNCASECMP=1; AC_SUBST([HAVE_WCSNCASECMP]) HAVE_WCSCOLL=1; AC_SUBST([HAVE_WCSCOLL]) HAVE_WCSXFRM=1; AC_SUBST([HAVE_WCSXFRM]) HAVE_WCSDUP=1; AC_SUBST([HAVE_WCSDUP]) HAVE_WCSCHR=1; AC_SUBST([HAVE_WCSCHR]) HAVE_WCSRCHR=1; AC_SUBST([HAVE_WCSRCHR]) HAVE_WCSCSPN=1; AC_SUBST([HAVE_WCSCSPN]) HAVE_WCSSPN=1; AC_SUBST([HAVE_WCSSPN]) HAVE_WCSPBRK=1; AC_SUBST([HAVE_WCSPBRK]) HAVE_WCSSTR=1; AC_SUBST([HAVE_WCSSTR]) HAVE_WCSTOK=1; AC_SUBST([HAVE_WCSTOK]) HAVE_WCSWIDTH=1; AC_SUBST([HAVE_WCSWIDTH]) HAVE_WCSFTIME=1; AC_SUBST([HAVE_WCSFTIME]) HAVE_DECL_WCTOB=1; AC_SUBST([HAVE_DECL_WCTOB]) HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH]) REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T]) REPLACE_BTOWC=0; AC_SUBST([REPLACE_BTOWC]) REPLACE_WCTOB=0; AC_SUBST([REPLACE_WCTOB]) REPLACE_MBSINIT=0; AC_SUBST([REPLACE_MBSINIT]) REPLACE_MBRTOWC=0; AC_SUBST([REPLACE_MBRTOWC]) REPLACE_MBRLEN=0; AC_SUBST([REPLACE_MBRLEN]) REPLACE_MBSRTOWCS=0; AC_SUBST([REPLACE_MBSRTOWCS]) REPLACE_MBSNRTOWCS=0; AC_SUBST([REPLACE_MBSNRTOWCS]) REPLACE_WCRTOMB=0; AC_SUBST([REPLACE_WCRTOMB]) REPLACE_WCSRTOMBS=0; AC_SUBST([REPLACE_WCSRTOMBS]) REPLACE_WCSNRTOMBS=0; AC_SUBST([REPLACE_WCSNRTOMBS]) REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH]) REPLACE_WCSWIDTH=0; AC_SUBST([REPLACE_WCSWIDTH]) REPLACE_WCSFTIME=0; AC_SUBST([REPLACE_WCSFTIME]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/wchar_t.m40000644000000000000000000000011013726163410021214 xustar000000000000000024 mtime=1599661832.581 24 atime=1599661832.752 24 ctime=1599661998.454 libprelude-5.2.0/libmissing/m4/wchar_t.m40000644000000000000000000000146213726163410020222 0ustar00rootroot00000000000000# wchar_t.m4 serial 4 (gettext-0.18.2) dnl Copyright (C) 2002-2003, 2008-2018 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. dnl From Bruno Haible. dnl Test whether has the 'wchar_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WCHAR_T], [ AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include wchar_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wchar_t=yes], [gt_cv_c_wchar_t=no])]) if test $gt_cv_c_wchar_t = yes; then AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.]) fi ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/wcrtomb.m40000644000000000000000000000011013726163410021242 xustar000000000000000024 mtime=1599661832.582 24 atime=1599661832.752 24 ctime=1599661998.456 libprelude-5.2.0/libmissing/m4/wcrtomb.m40000644000000000000000000000703513726163410020252 0ustar00rootroot00000000000000# wcrtomb.m4 serial 12 dnl Copyright (C) 2008-2018 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_FUNC_WCRTOMB], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN AC_CHECK_FUNCS_ONCE([wcrtomb]) if test $ac_cv_func_wcrtomb = no; then HAVE_WCRTOMB=0 AC_CHECK_DECLS([wcrtomb],,, [[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include ]]) if test $ac_cv_have_decl_wcrtomb = yes; then dnl On Minix 3.1.8, the system's declares wcrtomb() although dnl it does not have the function. Avoid a collision with gnulib's dnl replacement. REPLACE_WCRTOMB=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_WCRTOMB=1 else dnl On AIX 4.3, OSF/1 5.1 and Solaris 10, wcrtomb (NULL, 0, NULL) sometimes dnl returns 0 instead of 1. AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether wcrtomb return value is correct], [gl_cv_func_wcrtomb_retval], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on AIX 4, OSF/1 and Solaris. aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_wcrtomb_retval="guessing yes" ;; # Guess yes otherwise. *) gl_cv_func_wcrtomb_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 1; } if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 2; } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 4; } if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 8; } return result; }]])], [gl_cv_func_wcrtomb_retval=yes], [gl_cv_func_wcrtomb_retval=no], [:]) fi ]) case "$gl_cv_func_wcrtomb_retval" in *yes) ;; *) REPLACE_WCRTOMB=1 ;; esac fi fi ]) # Prerequisites of lib/wcrtomb.c. AC_DEFUN([gl_PREREQ_WCRTOMB], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/wctob.m40000644000000000000000000000011013726163410020703 xustar000000000000000024 mtime=1599661832.582 24 atime=1599661832.752 24 ctime=1599661998.458 libprelude-5.2.0/libmissing/m4/wctob.m40000644000000000000000000000705713726163410017717 0ustar00rootroot00000000000000# wctob.m4 serial 11 dnl Copyright (C) 2008-2018 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_FUNC_WCTOB], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([wctob]) if test $ac_cv_func_wctob = no; then HAVE_WCTOB=0 HAVE_DECL_WCTOB=0 else HAVE_WCTOB=1 dnl Solaris 9 has the wctob() function but it does not work. dnl Cygwin 1.7.2 has the wctob() function but it clobbers caller-owned dnl registers, see . AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether wctob works], [gl_cv_func_wctob_works], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris <= 9 and Cygwin. solaris2.[1-9] | solaris2.[1-9].* | cygwin*) gl_cv_func_wctob_works="guessing no" ;; # Guess no on native Windows. mingw*) gl_cv_func_wctob_works="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_wctob_works="guessing yes" ;; esac changequote([,])dnl case "$host_os" in cygwin*) AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include register long global __asm__ ("%ebx"); int main () { setlocale (LC_ALL, "en_US.UTF-8"); global = 0x12345678; if (wctob (0x00FC) != -1) return 1; if (global != 0x12345678) return 2; return 0; }]])], [:], [gl_cv_func_wctob_works=no], [:]) ;; esac if test "$gl_cv_func_wctob_works" != no && test $LOCALE_FR != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { wchar_t wc; if (mbtowc (&wc, "\374", 1) == 1) if (wctob (wc) != (unsigned char) '\374') return 1; } return 0; }]])], [gl_cv_func_wctob_works=yes], [gl_cv_func_wctob_works=no], [:]) fi ]) case "$gl_cv_func_wctob_works" in *yes) ;; *) REPLACE_WCTOB=1 ;; esac if test $REPLACE_WCTOB = 0; then dnl IRIX 6.5 has the wctob() function but does not declare it. AC_CHECK_DECLS([wctob], [], [], [[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include ]]) if test $ac_cv_have_decl_wctob != yes; then HAVE_DECL_WCTOB=0 fi fi fi ]) # Prerequisites of lib/wctob.c. AC_DEFUN([gl_PREREQ_WCTOB], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/wctomb.m40000644000000000000000000000011013726163410021060 xustar000000000000000024 mtime=1599661832.582 24 atime=1599661832.753 24 ctime=1599661998.459 libprelude-5.2.0/libmissing/m4/wctomb.m40000644000000000000000000000071413726163410020065 0ustar00rootroot00000000000000# wctomb.m4 serial 2 dnl Copyright (C) 2011-2018 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_FUNC_WCTOMB], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) if false; then REPLACE_WCTOMB=1 fi ]) # Prerequisites of lib/wctomb.c. AC_DEFUN([gl_PREREQ_WCTOMB], [ : ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/wctype_h.m40000644000000000000000000000011013726163410021407 xustar000000000000000024 mtime=1599661832.582 24 atime=1599661832.753 24 ctime=1599661998.461 libprelude-5.2.0/libmissing/m4/wctype_h.m40000644000000000000000000001557513726163410020427 0ustar00rootroot00000000000000# wctype_h.m4 serial 21 dnl A placeholder for ISO C99 , for platforms that lack it. dnl Copyright (C) 2006-2018 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. dnl Written by Paul Eggert. AC_DEFUN([gl_WCTYPE_H], [ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([iswcntrl]) if test $ac_cv_func_iswcntrl = yes; then HAVE_ISWCNTRL=1 else HAVE_ISWCNTRL=0 fi AC_SUBST([HAVE_ISWCNTRL]) AC_REQUIRE([gt_TYPE_WINT_T]) if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi AC_SUBST([HAVE_WINT_T]) AC_REQUIRE([gl_TYPE_WINT_T_PREREQ]) gl_CHECK_NEXT_HEADERS([wctype.h]) if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then dnl Linux libc5 has an iswprint function that returns 0 for all arguments. dnl The other functions are likely broken in the same way. AC_CACHE_CHECK([whether iswcntrl works], [gl_cv_func_iswcntrl_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #include int main () { return iswprint ('x') == 0; } ]])], [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no], [dnl Guess no on Linux libc5, yes otherwise. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #if __GNU_LIBRARY__ == 1 Linux libc5 i18n is broken. #endif]], [])], [gl_cv_func_iswcntrl_works="guessing yes"], [gl_cv_func_iswcntrl_works="guessing no"]) ]) ]) fi HAVE_WCTYPE_H=1 else HAVE_WCTYPE_H=0 fi AC_SUBST([HAVE_WCTYPE_H]) case "$gl_cv_func_iswcntrl_works" in *yes) REPLACE_ISWCNTRL=0 ;; *) REPLACE_ISWCNTRL=1 ;; esac AC_SUBST([REPLACE_ISWCNTRL]) if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then dnl Redefine all of iswcntrl, ..., iswxdigit in . : fi if test $REPLACE_ISWCNTRL = 1; then REPLACE_TOWLOWER=1 else AC_CHECK_FUNCS([towlower]) if test $ac_cv_func_towlower = yes; then REPLACE_TOWLOWER=0 else AC_CHECK_DECLS([towlower],,, [[/* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #if HAVE_WCTYPE_H # include #endif ]]) if test $ac_cv_have_decl_towlower = yes; then dnl On Minix 3.1.8, the system's declares towlower() and dnl towupper() although it does not have the functions. Avoid a dnl collision with gnulib's replacement. REPLACE_TOWLOWER=1 else REPLACE_TOWLOWER=0 fi fi fi AC_SUBST([REPLACE_TOWLOWER]) if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then dnl Redefine towlower, towupper in . : fi dnl We assume that the wctype() and iswctype() functions exist if and only dnl if the type wctype_t is defined in or in if that dnl exists. dnl HP-UX 11.00 declares all these in and lacks . AC_CACHE_CHECK([for wctype_t], [gl_cv_type_wctype_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[/* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #if HAVE_WCTYPE_H # include #endif wctype_t a; ]], [[]])], [gl_cv_type_wctype_t=yes], [gl_cv_type_wctype_t=no]) ]) if test $gl_cv_type_wctype_t = no; then HAVE_WCTYPE_T=0 fi dnl We assume that the wctrans() and towctrans() functions exist if and only dnl if the type wctrans_t is defined in . AC_CACHE_CHECK([for wctrans_t], [gl_cv_type_wctrans_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[/* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #include wctrans_t a; ]], [[]])], [gl_cv_type_wctrans_t=yes], [gl_cv_type_wctrans_t=no]) ]) if test $gl_cv_type_wctrans_t = no; then HAVE_WCTRANS_T=0 fi dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include # include #endif #include ]], [wctype iswctype wctrans towctrans ]) ]) AC_DEFUN([gl_WCTYPE_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_WCTYPE_H_DEFAULTS], [ GNULIB_ISWBLANK=0; AC_SUBST([GNULIB_ISWBLANK]) GNULIB_WCTYPE=0; AC_SUBST([GNULIB_WCTYPE]) GNULIB_ISWCTYPE=0; AC_SUBST([GNULIB_ISWCTYPE]) GNULIB_WCTRANS=0; AC_SUBST([GNULIB_WCTRANS]) GNULIB_TOWCTRANS=0; AC_SUBST([GNULIB_TOWCTRANS]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_ISWBLANK=1; AC_SUBST([HAVE_ISWBLANK]) HAVE_WCTYPE_T=1; AC_SUBST([HAVE_WCTYPE_T]) HAVE_WCTRANS_T=1; AC_SUBST([HAVE_WCTRANS_T]) REPLACE_ISWBLANK=0; AC_SUBST([REPLACE_ISWBLANK]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/wint_t.m40000644000000000000000000000011013726163410021071 xustar000000000000000024 mtime=1599661832.582 24 atime=1599661832.753 24 ctime=1599661998.463 libprelude-5.2.0/libmissing/m4/wint_t.m40000644000000000000000000000444313726163410020101 0ustar00rootroot00000000000000# wint_t.m4 serial 7 dnl Copyright (C) 2003, 2007-2018 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. dnl From Bruno Haible. dnl Test whether has the 'wint_t' type and whether gnulib's dnl or would, if present, override 'wint_t'. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WINT_T], [ AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include wint_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wint_t=yes], [gt_cv_c_wint_t=no])]) if test $gt_cv_c_wint_t = yes; then AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.]) dnl Determine whether gnulib's or would, if present, dnl override 'wint_t'. AC_CACHE_CHECK([whether wint_t is too small], [gl_cv_type_wint_t_too_small], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include #endif #include int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; ]])], [gl_cv_type_wint_t_too_small=no], [gl_cv_type_wint_t_too_small=yes])]) if test $gl_cv_type_wint_t_too_small = yes; then GNULIB_OVERRIDES_WINT_T=1 else GNULIB_OVERRIDES_WINT_T=0 fi else GNULIB_OVERRIDES_WINT_T=0 fi AC_SUBST([GNULIB_OVERRIDES_WINT_T]) ]) dnl Prerequisites of the 'wint_t' override. AC_DEFUN([gl_TYPE_WINT_T_PREREQ], [ AC_CHECK_HEADERS_ONCE([crtdefs.h]) if test $ac_cv_header_crtdefs_h = yes; then HAVE_CRTDEFS_H=1 else HAVE_CRTDEFS_H=0 fi AC_SUBST([HAVE_CRTDEFS_H]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/write.m40000644000000000000000000000011013726163410020717 xustar000000000000000024 mtime=1599661832.583 24 atime=1599661832.753 24 ctime=1599661998.464 libprelude-5.2.0/libmissing/m4/write.m40000644000000000000000000000203013726163410017715 0ustar00rootroot00000000000000# write.m4 serial 6 dnl Copyright (C) 2008-2018 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_FUNC_WRITE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) m4_ifdef([gl_MSVC_INVAL], [ AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_WRITE=1 fi ]) dnl This ifdef is just an optimization, to avoid performing a configure dnl check whose result is not used. It does not make the test of dnl GNULIB_UNISTD_H_SIGPIPE or GNULIB_SIGPIPE redundant. m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then REPLACE_WRITE=1 fi ]) m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_WRITE=1 fi ]) ]) # Prerequisites of lib/write.c. AC_DEFUN([gl_PREREQ_WRITE], [:]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/xsize.m40000644000000000000000000000011013726163410020727 xustar000000000000000024 mtime=1599661832.583 24 atime=1599661832.753 24 ctime=1599661998.466 libprelude-5.2.0/libmissing/m4/xsize.m40000644000000000000000000000062613726163410017736 0ustar00rootroot00000000000000# xsize.m4 serial 5 dnl Copyright (C) 2003-2004, 2008-2018 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_XSIZE], [ dnl Prerequisites of lib/xsize.h. AC_REQUIRE([gl_SIZE_MAX]) AC_CHECK_HEADERS([stdint.h]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/yield.m40000644000000000000000000000011013726163410020673 xustar000000000000000024 mtime=1599661832.583 24 atime=1599661832.753 24 ctime=1599661998.468 libprelude-5.2.0/libmissing/m4/yield.m40000644000000000000000000000135713726163410017704 0ustar00rootroot00000000000000# yield.m4 serial 2 dnl Copyright (C) 2005-2018 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_YIELD], [ AC_REQUIRE([gl_THREADLIB]) dnl On some systems, sched_yield is in librt, rather than in libpthread. YIELD_LIB= if test $gl_threads_api = posix; then dnl Solaris has sched_yield in librt, not in libpthread or libc. AC_CHECK_LIB([rt], [sched_yield], [YIELD_LIB=-lrt], [dnl Solaris 2.5.1, 2.6 has sched_yield in libposix4, not librt. AC_CHECK_LIB([posix4], [sched_yield], [YIELD_LIB=-lposix4])]) fi AC_SUBST([YIELD_LIB]) ]) libprelude-5.2.0/libmissing/m4/PaxHeaders.14770/gnulib-cache.m40000644000000000000000000000011013726163410022106 xustar000000000000000024 mtime=1599661832.556 24 atime=1599661832.746 24 ctime=1599661999.022 libprelude-5.2.0/libmissing/m4/gnulib-cache.m40000644000000000000000000000606713726163410021122 0ustar00rootroot00000000000000# Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the specification of how gnulib-tool is used. # It acts as a cache: It is written and read by gnulib-tool. # In projects that use version control, this file is meant to be put under # version control, like the configure.ac and various Makefile.am files. # Specification in the form of a command-line invocation: # gnulib-tool --import \ # --lib=libmissing \ # --source-base=libmissing \ # --m4-base=libmissing/m4 \ # --doc-base=libmissing/doc \ # --tests-base=libmissing/tests \ # --aux-dir=. \ # --with-tests \ # --lgpl=2 \ # --no-conditional-dependencies \ # --libtool \ # --macro-prefix=gl \ # --no-vc-files \ # accept \ # bind \ # close \ # cond \ # connect \ # dup2 \ # fclose \ # fopen \ # ftw \ # getaddrinfo \ # getpass \ # getsockname \ # gettimeofday \ # inet_ntop \ # inet_pton \ # ioctl \ # listen \ # lock \ # lseek \ # memmem \ # minmax \ # pathmax \ # perror \ # poll \ # regex \ # relocatable-lib-lgpl \ # select \ # setsockopt \ # sigprocmask \ # sleep \ # snprintf \ # socket \ # socklen \ # strcase \ # strcasestr \ # strdup-posix \ # strerror \ # strndup \ # strptime \ # strsep \ # sys_stat \ # thread \ # time_r \ # timegm \ # tls \ # uname \ # vsnprintf \ # write # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([]) gl_MODULES([ accept bind close cond connect dup2 fclose fopen ftw getaddrinfo getpass getsockname gettimeofday inet_ntop inet_pton ioctl listen lock lseek memmem minmax pathmax perror poll regex relocatable-lib-lgpl select setsockopt sigprocmask sleep snprintf socket socklen strcase strcasestr strdup-posix strerror strndup strptime strsep sys_stat thread time_r timegm tls uname vsnprintf write ]) gl_AVOID([]) gl_SOURCE_BASE([libmissing]) gl_M4_BASE([libmissing/m4]) gl_PO_BASE([]) gl_DOC_BASE([libmissing/doc]) gl_TESTS_BASE([libmissing/tests]) gl_WITH_TESTS gl_LIB([libmissing]) gl_LGPL([2]) gl_MAKEFILE_NAME([]) gl_LIBTOOL gl_MACRO_PREFIX([gl]) gl_PO_DOMAIN([]) gl_WITNESS_C_MACRO([]) gl_VC_FILES([false]) libprelude-5.2.0/libmissing/PaxHeaders.14770/glthread0000644000000000000000000000011013726163656020534 xustar000000000000000024 mtime=1599661998.813 24 atime=1599662006.647 24 ctime=1599661998.813 libprelude-5.2.0/libmissing/glthread/0000755000000000000000000000000013726163656017614 5ustar00rootroot00000000000000libprelude-5.2.0/libmissing/glthread/PaxHeaders.14770/cond.h0000644000000000000000000000011013726163410021671 xustar000000000000000024 mtime=1599661832.542 24 atime=1599661832.742 24 ctime=1599661998.762 libprelude-5.2.0/libmissing/glthread/cond.h0000644000000000000000000003227213726163410020702 0ustar00rootroot00000000000000/* Condition variables for multithreading. Copyright (C) 2005-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Yoann Vandoorselaere , 2008. Based on Bruno Haible lock.h */ /* Condition variables can be used for waiting until a condition becomes true. In this respect, they are similar to wait queues. But contrary to wait queues, condition variables have different semantics that allows events to be lost when there is no thread waiting for them. Condition variable: Type: gl_cond_t Declaration: gl_cond_define(extern, name) Initializer: gl_cond_define_initialized(, name) Initialization: gl_cond_init (name); Waiting: gl_cond_wait (name, lock); Timed wait: bool timedout = gl_cond_timedwait (name, lock, abstime); where lock is a gl_lock_t variable (cf. ) Signaling: gl_cond_signal (name); Broadcasting: gl_cond_broadcast (name); De-initialization: gl_cond_destroy (name); Equivalent functions with control of error handling: Initialization: err = glthread_cond_init (&name); Waiting: err = glthread_cond_wait (&name); Timed wait: err = glthread_cond_timedwait (&name, &lock, abstime); Signaling: err = glthread_cond_signal (&name); Broadcasting: err = glthread_cond_broadcast (&name); De-initialization: err = glthread_cond_destroy (&name); */ #ifndef _GLTHREAD_COND_H #define _GLTHREAD_COND_H #include #include #include #include #include "glthread/lock.h" #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GLTHREAD_COND_INLINE # define _GLTHREAD_COND_INLINE _GL_INLINE #endif /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if PTHREAD_IN_USE_DETECTION_HARD /* The pthread_in_use() detection needs to be done at runtime. */ # define pthread_in_use() \ glthread_in_use () extern int glthread_in_use (void); # endif # if USE_POSIX_THREADS_WEAK /* Use weak references to the POSIX threads library. */ /* Weak references avoid dragging in external libraries if the other parts of the program don't use them. Here we use them, because we don't want every program that uses libintl to depend on libpthread. This assumes that libpthread would not be loaded after libintl; i.e. if libintl is loaded first, by an executable that does not depend on libpthread, and then a module is dynamically loaded that depends on libpthread, libintl will not be multithread-safe. */ /* The way to test at runtime whether libpthread is present is to test whether a function pointer's value, such as &pthread_mutex_init, is non-NULL. However, some versions of GCC have a bug through which, in PIC mode, &foo != NULL always evaluates to true if there is a direct call to foo(...) in the same function. To avoid this, we test the address of a function in libpthread that we don't use. */ # pragma weak pthread_cond_init # pragma weak pthread_cond_wait # pragma weak pthread_cond_timedwait # pragma weak pthread_cond_signal # pragma weak pthread_cond_broadcast # pragma weak pthread_cond_destroy # ifndef pthread_self # pragma weak pthread_self # endif # if !PTHREAD_IN_USE_DETECTION_HARD # pragma weak pthread_mutexattr_gettype # define pthread_in_use() (pthread_mutexattr_gettype != NULL) # endif # else # if !PTHREAD_IN_USE_DETECTION_HARD # define pthread_in_use() 1 # endif # endif /* -------------------------- gl_cond_t datatype -------------------------- */ typedef pthread_cond_t gl_cond_t; # define gl_cond_define(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME; # define gl_cond_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME = gl_cond_initializer; # define gl_cond_initializer \ PTHREAD_COND_INITIALIZER # define glthread_cond_init(COND) \ (pthread_in_use () ? pthread_cond_init (COND, NULL) : 0) # define glthread_cond_wait(COND, LOCK) \ (pthread_in_use () ? pthread_cond_wait (COND, LOCK) : 0) # define glthread_cond_timedwait(COND, LOCK, ABSTIME) \ (pthread_in_use () ? pthread_cond_timedwait (COND, LOCK, ABSTIME) : 0) # define glthread_cond_signal(COND) \ (pthread_in_use () ? pthread_cond_signal (COND) : 0) # define glthread_cond_broadcast(COND) \ (pthread_in_use () ? pthread_cond_broadcast (COND) : 0) # define glthread_cond_destroy(COND) \ (pthread_in_use () ? pthread_cond_destroy (COND) : 0) # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if USE_PTH_THREADS_WEAK /* Use weak references to the GNU Pth threads library. */ # pragma weak pth_cond_init # pragma weak pth_cond_await # pragma weak pth_cond_notify # pragma weak pth_event # pragma weak pth_timeout # pragma weak pth_cancel # define pth_in_use() (pth_cancel != NULL) # else # define pth_in_use() 1 # endif /* -------------------------- gl_cond_t datatype -------------------------- */ typedef pth_cond_t gl_cond_t; # define gl_cond_define(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME; # define gl_cond_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME = gl_cond_initializer; # define gl_cond_initializer \ PTH_COND_INIT # define glthread_cond_init(COND) \ (pth_in_use () && !pth_cond_init (COND) ? errno : 0) # define glthread_cond_wait(COND, LOCK) \ (pth_in_use () && !pth_cond_await (COND, LOCK, NULL) ? errno : 0) # define glthread_cond_timedwait(COND, LOCK, ABSTIME) \ (pth_in_use () ? glthread_cond_timedwait_multithreaded (COND, LOCK, ABSTIME) : 0) # define glthread_cond_signal(COND) \ (pth_in_use () && !pth_cond_notify (COND, FALSE) ? errno : 0) # define glthread_cond_broadcast(COND) \ (pth_in_use () && !pth_cond_notify (COND, TRUE) ? errno : 0) # define glthread_cond_destroy(COND) 0 extern int glthread_cond_timedwait_multithreaded (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ # include # include # ifdef __cplusplus extern "C" { # endif # if USE_SOLARIS_THREADS_WEAK /* Use weak references to the old Solaris threads library. */ # pragma weak cond_init # pragma weak cond_wait # pragma weak cond_timedwait # pragma weak cond_signal # pragma weak cond_broadcast # pragma weak cond_destroy # pragma weak thr_suspend # define thread_in_use() (thr_suspend != NULL) # else # define thread_in_use() 1 # endif /* -------------------------- gl_cond_t datatype -------------------------- */ typedef cond_t gl_cond_t; # define gl_cond_define(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME; # define gl_cond_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME = gl_cond_initializer; # define gl_cond_initializer \ DEFAULTCV # define glthread_cond_init(COND) \ (pthread_in_use () ? cond_init (COND, USYNC_THREAD, NULL) : 0) # define glthread_cond_wait(COND, LOCK) \ (pthread_in_use () ? cond_wait (COND, LOCK) : 0) # define glthread_cond_timedwait(COND, LOCK, ABSTIME) \ (pthread_in_use () ? glthread_cond_timedwait_multithreaded (COND, LOCK, ABSTIME) : 0) # define glthread_cond_signal(COND) \ (pthread_in_use () ? cond_signal (COND) : 0) # define glthread_cond_broadcast(COND) \ (pthread_in_use () ? cond_broadcast (COND) : 0) # define glthread_cond_destroy(COND) \ (pthread_in_use () ? cond_destroy (COND) : 0) extern int glthread_cond_timedwait_multithreaded (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # ifdef __cplusplus extern "C" { # endif /* -------------------------- gl_cond_t datatype -------------------------- */ struct gl_waitqueue_link { struct gl_waitqueue_link *wql_next; struct gl_waitqueue_link *wql_prev; }; typedef struct { struct gl_waitqueue_link wq_list; /* circular list of waiting threads */ } gl_linked_waitqueue_t; typedef struct { gl_spinlock_t guard; /* protects the initialization */ CRITICAL_SECTION lock; /* protects the remaining fields */ gl_linked_waitqueue_t waiters; /* waiting threads */ } gl_cond_t; # define gl_cond_define(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME; # define gl_cond_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME = gl_cond_initializer; # define gl_cond_initializer \ { { 0, -1 } } # define glthread_cond_init(COND) \ glthread_cond_init_func (COND) # define glthread_cond_wait(COND, LOCK) \ glthread_cond_wait_func (COND, LOCK) # define glthread_cond_timedwait(COND, LOCK, ABSTIME) \ glthread_cond_timedwait_func (COND, LOCK, ABSTIME) # define glthread_cond_signal(COND) \ glthread_cond_signal_func (COND) # define glthread_cond_broadcast(COND) \ glthread_cond_broadcast_func (COND) # define glthread_cond_destroy(COND) \ glthread_cond_destroy_func (COND) extern int glthread_cond_init_func (gl_cond_t *cond); extern int glthread_cond_wait_func (gl_cond_t *cond, gl_lock_t *lock); extern int glthread_cond_timedwait_func (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime); extern int glthread_cond_signal_func (gl_cond_t *cond); extern int glthread_cond_broadcast_func (gl_cond_t *cond); extern int glthread_cond_destroy_func (gl_cond_t *cond); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS) /* Provide dummy implementation if threads are not supported. */ typedef int gl_cond_t; # define gl_cond_define(STORAGECLASS, NAME) # define gl_cond_define_initialized(STORAGECLASS, NAME) # define glthread_cond_init(COND) 0 # define glthread_cond_wait(COND, LOCK) 0 # define glthread_cond_timedwait(COND, LOCK, ABSTIME) 0 # define glthread_cond_signal(COND) 0 # define glthread_cond_broadcast(COND) 0 # define glthread_cond_destroy(COND) 0 #endif /* ========================================================================= */ /* Macros with built-in error handling. */ #ifdef __cplusplus extern "C" { #endif #define gl_cond_init(COND) \ do \ { \ if (glthread_cond_init (&COND)) \ abort (); \ } \ while (0) #define gl_cond_wait(COND, LOCK) \ do \ { \ if (glthread_cond_wait (&COND, &LOCK)) \ abort (); \ } \ while (0) #define gl_cond_timedwait(COND, LOCK, ABSTIME) \ gl_cond_timedwait_func (&COND, &LOCK, ABSTIME) _GLTHREAD_COND_INLINE bool gl_cond_timedwait_func (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime) { int err = glthread_cond_timedwait (cond, lock, abstime); if (err == ETIMEDOUT) return true; if (err != 0) abort (); return false; } #define gl_cond_signal(COND) \ do \ { \ if (glthread_cond_signal (&COND)) \ abort (); \ } \ while (0) #define gl_cond_broadcast(COND) \ do \ { \ if (glthread_cond_broadcast (&COND)) \ abort (); \ } \ while (0) #define gl_cond_destroy(COND) \ do \ { \ if (glthread_cond_destroy (&COND)) \ abort (); \ } \ while (0) #ifdef __cplusplus } #endif _GL_INLINE_HEADER_END #endif /* _GLTHREAD_COND_H */ libprelude-5.2.0/libmissing/glthread/PaxHeaders.14770/cond.c0000644000000000000000000000011013726163410021664 xustar000000000000000024 mtime=1599661832.542 24 atime=1599661832.742 24 ctime=1599661998.765 libprelude-5.2.0/libmissing/glthread/cond.c0000644000000000000000000003461113726163410020674 0ustar00rootroot00000000000000/* Condition variables for multithreading. Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Yoann Vandoorselaere , 2008, and Bruno Haible , 2008. */ #include #define _GLTHREAD_COND_INLINE _GL_EXTERN_INLINE #include "glthread/cond.h" /* ========================================================================= */ #if USE_PTH_THREADS /* -------------------------- gl_cond_t datatype -------------------------- */ int glthread_cond_timedwait_multithreaded (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime) { int ret, status; pth_event_t ev; ev = pth_event (PTH_EVENT_TIME, pth_time (abstime->tv_sec, abstime->tv_nsec / 1000)); ret = pth_cond_await (cond, lock, ev); status = pth_event_status (ev); pth_event_free (ev, PTH_FREE_THIS); if (status == PTH_STATUS_OCCURRED) return ETIMEDOUT; return ret; } #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* -------------------------- gl_cond_t datatype -------------------------- */ int glthread_cond_timedwait_multithreaded (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime) { int ret; ret = cond_timedwait (cond, lock, abstime); if (ret == ETIME) return ETIMEDOUT; return ret; } #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS #include /* -------------------------- gl_cond_t datatype -------------------------- */ /* In this file, the waitqueues are implemented as linked lists. */ #define gl_waitqueue_t gl_linked_waitqueue_t /* All links of a circular list, except the anchor, are of this type, carrying a payload. */ struct gl_waitqueue_element { struct gl_waitqueue_link link; /* must be the first field! */ HANDLE event; /* Waiting thread, represented by an event. This field is immutable once initialized. */ }; static void gl_waitqueue_init (gl_waitqueue_t *wq) { wq->wq_list.wql_next = &wq->wq_list; wq->wq_list.wql_prev = &wq->wq_list; } /* Enqueues the current thread, represented by an event, in a wait queue. Returns NULL if an allocation failure occurs. */ static struct gl_waitqueue_element * gl_waitqueue_add (gl_waitqueue_t *wq) { struct gl_waitqueue_element *elt; HANDLE event; /* Allocate the memory for the waitqueue element on the heap, not on the thread's stack. If the thread exits unexpectedly, we prefer to leak some memory rather than to access unavailable memory and crash. */ elt = (struct gl_waitqueue_element *) malloc (sizeof (struct gl_waitqueue_element)); if (elt == NULL) /* No more memory. */ return NULL; /* Whether the created event is a manual-reset one or an auto-reset one, does not matter, since we will wait on it only once. */ event = CreateEvent (NULL, TRUE, FALSE, NULL); if (event == INVALID_HANDLE_VALUE) { /* No way to allocate an event. */ free (elt); return NULL; } elt->event = event; /* Insert elt at the end of the circular list. */ (elt->link.wql_prev = wq->wq_list.wql_prev)->wql_next = &elt->link; (elt->link.wql_next = &wq->wq_list)->wql_prev = &elt->link; return elt; } /* Removes the current thread, represented by a 'struct gl_waitqueue_element *', from a wait queue. Returns true if is was found and removed, false if it was not present. */ static bool gl_waitqueue_remove (gl_waitqueue_t *wq, struct gl_waitqueue_element *elt) { if (elt->link.wql_next != NULL && elt->link.wql_prev != NULL) { /* Remove elt from the circular list. */ struct gl_waitqueue_link *prev = elt->link.wql_prev; struct gl_waitqueue_link *next = elt->link.wql_next; prev->wql_next = next; next->wql_prev = prev; elt->link.wql_next = NULL; elt->link.wql_prev = NULL; return true; } else return false; } /* Notifies the first thread from a wait queue and dequeues it. */ static void gl_waitqueue_notify_first (gl_waitqueue_t *wq) { if (wq->wq_list.wql_next != &wq->wq_list) { struct gl_waitqueue_element *elt = (struct gl_waitqueue_element *) wq->wq_list.wql_next; struct gl_waitqueue_link *prev; struct gl_waitqueue_link *next; /* Remove elt from the circular list. */ prev = &wq->wq_list; /* = elt->link.wql_prev; */ next = elt->link.wql_next; prev->wql_next = next; next->wql_prev = prev; elt->link.wql_next = NULL; elt->link.wql_prev = NULL; SetEvent (elt->event); /* After the SetEvent, this thread cannot access *elt any more, because the woken-up thread will quickly call free (elt). */ } } /* Notifies all threads from a wait queue and dequeues them all. */ static void gl_waitqueue_notify_all (gl_waitqueue_t *wq) { struct gl_waitqueue_link *l; for (l = wq->wq_list.wql_next; l != &wq->wq_list; ) { struct gl_waitqueue_element *elt = (struct gl_waitqueue_element *) l; struct gl_waitqueue_link *prev; struct gl_waitqueue_link *next; /* Remove elt from the circular list. */ prev = &wq->wq_list; /* = elt->link.wql_prev; */ next = elt->link.wql_next; prev->wql_next = next; next->wql_prev = prev; elt->link.wql_next = NULL; elt->link.wql_prev = NULL; SetEvent (elt->event); /* After the SetEvent, this thread cannot access *elt any more, because the woken-up thread will quickly call free (elt). */ l = next; } if (!(wq->wq_list.wql_next == &wq->wq_list && wq->wq_list.wql_prev == &wq->wq_list)) abort (); } int glthread_cond_init_func (gl_cond_t *cond) { InitializeCriticalSection (&cond->lock); gl_waitqueue_init (&cond->waiters); cond->guard.done = 1; return 0; } int glthread_cond_wait_func (gl_cond_t *cond, gl_lock_t *lock) { if (!cond->guard.done) { if (InterlockedIncrement (&cond->guard.started) == 0) /* This thread is the first one to need this condition variable. Initialize it. */ glthread_cond_init (cond); else /* Yield the CPU while waiting for another thread to finish initializing this condition variable. */ while (!cond->guard.done) Sleep (0); } EnterCriticalSection (&cond->lock); { struct gl_waitqueue_element *elt = gl_waitqueue_add (&cond->waiters); LeaveCriticalSection (&cond->lock); if (elt == NULL) { /* Allocation failure. Weird. */ return EAGAIN; } else { HANDLE event = elt->event; int err; DWORD result; /* Now release the lock and let any other thread take it. */ err = glthread_lock_unlock (lock); if (err != 0) { EnterCriticalSection (&cond->lock); gl_waitqueue_remove (&cond->waiters, elt); LeaveCriticalSection (&cond->lock); CloseHandle (event); free (elt); return err; } /* POSIX says: "If another thread is able to acquire the mutex after the about-to-block thread has released it, then a subsequent call to pthread_cond_broadcast() or pthread_cond_signal() in that thread shall behave as if it were issued after the about-to-block thread has blocked." This is fulfilled here, because the thread signalling is done through SetEvent, not PulseEvent. */ /* Wait until another thread signals this event. */ result = WaitForSingleObject (event, INFINITE); if (result == WAIT_FAILED || result == WAIT_TIMEOUT) abort (); CloseHandle (event); free (elt); /* The thread which signalled the event already did the bookkeeping: removed us from the waiters. */ return glthread_lock_lock (lock); } } } int glthread_cond_timedwait_func (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime) { struct timeval currtime; gettimeofday (&currtime, NULL); if (currtime.tv_sec > abstime->tv_sec || (currtime.tv_sec == abstime->tv_sec && currtime.tv_usec * 1000 >= abstime->tv_nsec)) return ETIMEDOUT; if (!cond->guard.done) { if (InterlockedIncrement (&cond->guard.started) == 0) /* This thread is the first one to need this condition variable. Initialize it. */ glthread_cond_init (cond); else /* Yield the CPU while waiting for another thread to finish initializing this condition variable. */ while (!cond->guard.done) Sleep (0); } EnterCriticalSection (&cond->lock); { struct gl_waitqueue_element *elt = gl_waitqueue_add (&cond->waiters); LeaveCriticalSection (&cond->lock); if (elt == NULL) { /* Allocation failure. Weird. */ return EAGAIN; } else { HANDLE event = elt->event; int err; DWORD timeout; DWORD result; /* Now release the lock and let any other thread take it. */ err = glthread_lock_unlock (lock); if (err != 0) { EnterCriticalSection (&cond->lock); gl_waitqueue_remove (&cond->waiters, elt); LeaveCriticalSection (&cond->lock); CloseHandle (event); free (elt); return err; } /* POSIX says: "If another thread is able to acquire the mutex after the about-to-block thread has released it, then a subsequent call to pthread_cond_broadcast() or pthread_cond_signal() in that thread shall behave as if it were issued after the about-to-block thread has blocked." This is fulfilled here, because the thread signalling is done through SetEvent, not PulseEvent. */ /* Wait until another thread signals this event or until the abstime passes. */ gettimeofday (&currtime, NULL); if (currtime.tv_sec > abstime->tv_sec) timeout = 0; else { unsigned long seconds = abstime->tv_sec - currtime.tv_sec; timeout = seconds * 1000; if (timeout / 1000 != seconds) /* overflow? */ timeout = INFINITE; else { long milliseconds = abstime->tv_nsec / 1000000 - currtime.tv_usec / 1000; if (milliseconds >= 0) { timeout += milliseconds; if (timeout < milliseconds) /* overflow? */ timeout = INFINITE; } else { if (timeout >= - milliseconds) timeout -= (- milliseconds); else timeout = 0; } } } result = WaitForSingleObject (event, timeout); if (result == WAIT_FAILED) abort (); if (result == WAIT_TIMEOUT) { EnterCriticalSection (&cond->lock); if (gl_waitqueue_remove (&cond->waiters, elt)) { /* The event was not signaled between the WaitForSingleObject call and the EnterCriticalSection call. */ if (!(WaitForSingleObject (event, 0) == WAIT_TIMEOUT)) abort (); } else { /* The event was signaled between the WaitForSingleObject call and the EnterCriticalSection call. */ if (!(WaitForSingleObject (event, 0) == WAIT_OBJECT_0)) abort (); /* Produce the right return value. */ result = WAIT_OBJECT_0; } LeaveCriticalSection (&cond->lock); } else { /* The thread which signalled the event already did the bookkeeping: removed us from the waiters. */ } CloseHandle (event); free (elt); /* Take the lock again. It does not matter whether this is done before or after the bookkeeping for WAIT_TIMEOUT. */ err = glthread_lock_lock (lock); return (err ? err : result == WAIT_OBJECT_0 ? 0 : result == WAIT_TIMEOUT ? ETIMEDOUT : /* WAIT_FAILED shouldn't happen */ EAGAIN); } } } int glthread_cond_signal_func (gl_cond_t *cond) { if (!cond->guard.done) return EINVAL; EnterCriticalSection (&cond->lock); /* POSIX says: "The pthread_cond_broadcast() and pthread_cond_signal() functions shall have no effect if there are no threads currently blocked on cond." */ if (cond->waiters.wq_list.wql_next != &cond->waiters.wq_list) gl_waitqueue_notify_first (&cond->waiters); LeaveCriticalSection (&cond->lock); return 0; } int glthread_cond_broadcast_func (gl_cond_t *cond) { if (!cond->guard.done) return EINVAL; EnterCriticalSection (&cond->lock); /* POSIX says: "The pthread_cond_broadcast() and pthread_cond_signal() functions shall have no effect if there are no threads currently blocked on cond." gl_waitqueue_notify_all is a nop in this case. */ gl_waitqueue_notify_all (&cond->waiters); LeaveCriticalSection (&cond->lock); return 0; } int glthread_cond_destroy_func (gl_cond_t *cond) { if (!cond->guard.done) return EINVAL; if (cond->waiters.wq_list.wql_next != &cond->waiters.wq_list) return EBUSY; DeleteCriticalSection (&cond->lock); cond->guard.done = 0; return 0; } #endif /* ========================================================================= */ libprelude-5.2.0/libmissing/glthread/PaxHeaders.14770/lock.h0000644000000000000000000000011013726163410021676 xustar000000000000000024 mtime=1599661832.543 24 atime=1599661832.743 24 ctime=1599661998.782 libprelude-5.2.0/libmissing/glthread/lock.h0000644000000000000000000011414613726163410020710 0ustar00rootroot00000000000000/* Locking in multithreaded situations. Copyright (C) 2005-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-win32.h. */ /* This file contains locking primitives for use with a given thread library. It does not contain primitives for creating threads or for other synchronization primitives. Normal (non-recursive) locks: Type: gl_lock_t Declaration: gl_lock_define(extern, name) Initializer: gl_lock_define_initialized(, name) Initialization: gl_lock_init (name); Taking the lock: gl_lock_lock (name); Releasing the lock: gl_lock_unlock (name); De-initialization: gl_lock_destroy (name); Equivalent functions with control of error handling: Initialization: err = glthread_lock_init (&name); Taking the lock: err = glthread_lock_lock (&name); Releasing the lock: err = glthread_lock_unlock (&name); De-initialization: err = glthread_lock_destroy (&name); Read-Write (non-recursive) locks: Type: gl_rwlock_t Declaration: gl_rwlock_define(extern, name) Initializer: gl_rwlock_define_initialized(, name) Initialization: gl_rwlock_init (name); Taking the lock: gl_rwlock_rdlock (name); gl_rwlock_wrlock (name); Releasing the lock: gl_rwlock_unlock (name); De-initialization: gl_rwlock_destroy (name); Equivalent functions with control of error handling: Initialization: err = glthread_rwlock_init (&name); Taking the lock: err = glthread_rwlock_rdlock (&name); err = glthread_rwlock_wrlock (&name); Releasing the lock: err = glthread_rwlock_unlock (&name); De-initialization: err = glthread_rwlock_destroy (&name); Recursive locks: Type: gl_recursive_lock_t Declaration: gl_recursive_lock_define(extern, name) Initializer: gl_recursive_lock_define_initialized(, name) Initialization: gl_recursive_lock_init (name); Taking the lock: gl_recursive_lock_lock (name); Releasing the lock: gl_recursive_lock_unlock (name); De-initialization: gl_recursive_lock_destroy (name); Equivalent functions with control of error handling: Initialization: err = glthread_recursive_lock_init (&name); Taking the lock: err = glthread_recursive_lock_lock (&name); Releasing the lock: err = glthread_recursive_lock_unlock (&name); De-initialization: err = glthread_recursive_lock_destroy (&name); Once-only execution: Type: gl_once_t Initializer: gl_once_define(extern, name) Execution: gl_once (name, initfunction); Equivalent functions with control of error handling: Execution: err = glthread_once (&name, initfunction); */ #ifndef _LOCK_H #define _LOCK_H #include #include /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if PTHREAD_IN_USE_DETECTION_HARD /* The pthread_in_use() detection needs to be done at runtime. */ # define pthread_in_use() \ glthread_in_use () extern int glthread_in_use (void); # endif # if USE_POSIX_THREADS_WEAK /* Use weak references to the POSIX threads library. */ /* Weak references avoid dragging in external libraries if the other parts of the program don't use them. Here we use them, because we don't want every program that uses libintl to depend on libpthread. This assumes that libpthread would not be loaded after libintl; i.e. if libintl is loaded first, by an executable that does not depend on libpthread, and then a module is dynamically loaded that depends on libpthread, libintl will not be multithread-safe. */ /* The way to test at runtime whether libpthread is present is to test whether a function pointer's value, such as &pthread_mutex_init, is non-NULL. However, some versions of GCC have a bug through which, in PIC mode, &foo != NULL always evaluates to true if there is a direct call to foo(...) in the same function. To avoid this, we test the address of a function in libpthread that we don't use. */ # pragma weak pthread_mutex_init # pragma weak pthread_mutex_lock # pragma weak pthread_mutex_unlock # pragma weak pthread_mutex_destroy # pragma weak pthread_rwlock_init # pragma weak pthread_rwlock_rdlock # pragma weak pthread_rwlock_wrlock # pragma weak pthread_rwlock_unlock # pragma weak pthread_rwlock_destroy # pragma weak pthread_once # pragma weak pthread_cond_init # pragma weak pthread_cond_wait # pragma weak pthread_cond_signal # pragma weak pthread_cond_broadcast # pragma weak pthread_cond_destroy # pragma weak pthread_mutexattr_init # pragma weak pthread_mutexattr_settype # pragma weak pthread_mutexattr_destroy # pragma weak pthread_rwlockattr_init # if __GNU_LIBRARY__ > 1 # pragma weak pthread_rwlockattr_setkind_np # endif # pragma weak pthread_rwlockattr_destroy # ifndef pthread_self # pragma weak pthread_self # endif # if !PTHREAD_IN_USE_DETECTION_HARD /* Considering all platforms with USE_POSIX_THREADS_WEAK, only few symbols can be used to determine whether libpthread is in use. These are: pthread_mutexattr_gettype pthread_rwlockattr_destroy pthread_rwlockattr_init */ # pragma weak pthread_mutexattr_gettype # define pthread_in_use() (pthread_mutexattr_gettype != NULL) # endif # else # if !PTHREAD_IN_USE_DETECTION_HARD # define pthread_in_use() 1 # endif # endif /* -------------------------- gl_lock_t datatype -------------------------- */ typedef pthread_mutex_t gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME = gl_lock_initializer; # define gl_lock_initializer \ PTHREAD_MUTEX_INITIALIZER # define glthread_lock_init(LOCK) \ (pthread_in_use () ? pthread_mutex_init (LOCK, NULL) : 0) # define glthread_lock_lock(LOCK) \ (pthread_in_use () ? pthread_mutex_lock (LOCK) : 0) # define glthread_lock_unlock(LOCK) \ (pthread_in_use () ? pthread_mutex_unlock (LOCK) : 0) # define glthread_lock_destroy(LOCK) \ (pthread_in_use () ? pthread_mutex_destroy (LOCK) : 0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ # if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (defined PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP && (__GNU_LIBRARY__ > 1))) # ifdef PTHREAD_RWLOCK_INITIALIZER typedef pthread_rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_rwlock_t NAME = gl_rwlock_initializer; # if HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER # define gl_rwlock_initializer \ PTHREAD_RWLOCK_INITIALIZER # define glthread_rwlock_init(LOCK) \ (pthread_in_use () ? pthread_rwlock_init (LOCK, NULL) : 0) # else /* glibc with bug https://sourceware.org/bugzilla/show_bug.cgi?id=13701 */ # define gl_rwlock_initializer \ PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP # define glthread_rwlock_init(LOCK) \ (pthread_in_use () ? glthread_rwlock_init_for_glibc (LOCK) : 0) extern int glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock); # endif # define glthread_rwlock_rdlock(LOCK) \ (pthread_in_use () ? pthread_rwlock_rdlock (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (pthread_in_use () ? pthread_rwlock_wrlock (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (pthread_in_use () ? pthread_rwlock_unlock (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (pthread_in_use () ? pthread_rwlock_destroy (LOCK) : 0) # else typedef struct { int initialized; pthread_mutex_t guard; /* protects the initialization */ pthread_rwlock_t rwlock; /* read-write lock */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { 0, PTHREAD_MUTEX_INITIALIZER } # define glthread_rwlock_init(LOCK) \ (pthread_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0) # define glthread_rwlock_rdlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (pthread_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0) extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock); # endif # else typedef struct { pthread_mutex_t lock; /* protects the remaining fields */ pthread_cond_t waiting_readers; /* waiting readers */ pthread_cond_t waiting_writers; /* waiting writers */ unsigned int waiting_writers_count; /* number of waiting writers */ int runcount; /* number of readers running, or -1 when a writer runs */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0 } # define glthread_rwlock_init(LOCK) \ (pthread_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0) # define glthread_rwlock_rdlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (pthread_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0) extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock); # endif /* --------------------- gl_recursive_lock_t datatype --------------------- */ # if HAVE_PTHREAD_MUTEX_RECURSIVE # if defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP typedef pthread_mutex_t gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME = gl_recursive_lock_initializer; # ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER # define gl_recursive_lock_initializer \ PTHREAD_RECURSIVE_MUTEX_INITIALIZER # else # define gl_recursive_lock_initializer \ PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP # endif # define glthread_recursive_lock_init(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) # define glthread_recursive_lock_lock(LOCK) \ (pthread_in_use () ? pthread_mutex_lock (LOCK) : 0) # define glthread_recursive_lock_unlock(LOCK) \ (pthread_in_use () ? pthread_mutex_unlock (LOCK) : 0) # define glthread_recursive_lock_destroy(LOCK) \ (pthread_in_use () ? pthread_mutex_destroy (LOCK) : 0) extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); # else typedef struct { pthread_mutex_t recmutex; /* recursive mutex */ pthread_mutex_t guard; /* protects the initialization */ int initialized; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { PTHREAD_MUTEX_INITIALIZER, PTHREAD_MUTEX_INITIALIZER, 0 } # define glthread_recursive_lock_init(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) # define glthread_recursive_lock_lock(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_unlock(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_destroy(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); # endif # else /* Old versions of POSIX threads on Solaris did not have recursive locks. We have to implement them ourselves. */ typedef struct { pthread_mutex_t mutex; pthread_t owner; unsigned long depth; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { PTHREAD_MUTEX_INITIALIZER, (pthread_t) 0, 0 } # define glthread_recursive_lock_init(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) # define glthread_recursive_lock_lock(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_unlock(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_destroy(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); # endif /* -------------------------- gl_once_t datatype -------------------------- */ typedef pthread_once_t gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_once_t NAME = PTHREAD_ONCE_INIT; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (pthread_in_use () \ ? pthread_once (ONCE_CONTROL, INITFUNCTION) \ : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) extern int glthread_once_singlethreaded (pthread_once_t *once_control); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if USE_PTH_THREADS_WEAK /* Use weak references to the GNU Pth threads library. */ # pragma weak pth_mutex_init # pragma weak pth_mutex_acquire # pragma weak pth_mutex_release # pragma weak pth_rwlock_init # pragma weak pth_rwlock_acquire # pragma weak pth_rwlock_release # pragma weak pth_once # pragma weak pth_cancel # define pth_in_use() (pth_cancel != NULL) # else # define pth_in_use() 1 # endif /* -------------------------- gl_lock_t datatype -------------------------- */ typedef pth_mutex_t gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME = gl_lock_initializer; # define gl_lock_initializer \ PTH_MUTEX_INIT # define glthread_lock_init(LOCK) \ (pth_in_use () && !pth_mutex_init (LOCK) ? errno : 0) # define glthread_lock_lock(LOCK) \ (pth_in_use () && !pth_mutex_acquire (LOCK, 0, NULL) ? errno : 0) # define glthread_lock_unlock(LOCK) \ (pth_in_use () && !pth_mutex_release (LOCK) ? errno : 0) # define glthread_lock_destroy(LOCK) \ ((void)(LOCK), 0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* Pth pth_rwlock_acquire always prefers readers. No autoconf test so far. */ # if HAVE_PTH_RWLOCK_ACQUIRE_PREFER_WRITER typedef pth_rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS pth_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pth_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ PTH_RWLOCK_INIT # define glthread_rwlock_init(LOCK) \ (pth_in_use () && !pth_rwlock_init (LOCK) ? errno : 0) # define glthread_rwlock_rdlock(LOCK) \ (pth_in_use () && !pth_rwlock_acquire (LOCK, PTH_RWLOCK_RD, 0, NULL) ? errno : 0) # define glthread_rwlock_wrlock(LOCK) \ (pth_in_use () && !pth_rwlock_acquire (LOCK, PTH_RWLOCK_RW, 0, NULL) ? errno : 0) # define glthread_rwlock_unlock(LOCK) \ (pth_in_use () && !pth_rwlock_release (LOCK) ? errno : 0) # define glthread_rwlock_destroy(LOCK) \ ((void)(LOCK), 0) # else typedef struct { int initialized; pth_mutex_t lock; /* protects the remaining fields */ pth_cond_t waiting_readers; /* waiting readers */ pth_cond_t waiting_writers; /* waiting writers */ unsigned int waiting_writers_count; /* number of waiting writers */ int runcount; /* number of readers running, or -1 when a writer runs */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { 0 } # define glthread_rwlock_init(LOCK) \ (pth_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0) # define glthread_rwlock_rdlock(LOCK) \ (pth_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (pth_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (pth_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (pth_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0) extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock); # endif /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* In Pth, mutexes are recursive by default. */ typedef pth_mutex_t gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ PTH_MUTEX_INIT # define glthread_recursive_lock_init(LOCK) \ (pth_in_use () && !pth_mutex_init (LOCK) ? errno : 0) # define glthread_recursive_lock_lock(LOCK) \ (pth_in_use () && !pth_mutex_acquire (LOCK, 0, NULL) ? errno : 0) # define glthread_recursive_lock_unlock(LOCK) \ (pth_in_use () && !pth_mutex_release (LOCK) ? errno : 0) # define glthread_recursive_lock_destroy(LOCK) \ ((void)(LOCK), 0) /* -------------------------- gl_once_t datatype -------------------------- */ typedef pth_once_t gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS pth_once_t NAME = PTH_ONCE_INIT; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (pth_in_use () \ ? glthread_once_multithreaded (ONCE_CONTROL, INITFUNCTION) \ : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) extern int glthread_once_multithreaded (pth_once_t *once_control, void (*initfunction) (void)); extern int glthread_once_singlethreaded (pth_once_t *once_control); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ # include # include # ifdef __cplusplus extern "C" { # endif # if USE_SOLARIS_THREADS_WEAK /* Use weak references to the old Solaris threads library. */ # pragma weak mutex_init # pragma weak mutex_lock # pragma weak mutex_unlock # pragma weak mutex_destroy # pragma weak rwlock_init # pragma weak rw_rdlock # pragma weak rw_wrlock # pragma weak rw_unlock # pragma weak rwlock_destroy # pragma weak thr_self # pragma weak thr_suspend # define thread_in_use() (thr_suspend != NULL) # else # define thread_in_use() 1 # endif /* -------------------------- gl_lock_t datatype -------------------------- */ typedef mutex_t gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS mutex_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS mutex_t NAME = gl_lock_initializer; # define gl_lock_initializer \ DEFAULTMUTEX # define glthread_lock_init(LOCK) \ (thread_in_use () ? mutex_init (LOCK, USYNC_THREAD, NULL) : 0) # define glthread_lock_lock(LOCK) \ (thread_in_use () ? mutex_lock (LOCK) : 0) # define glthread_lock_unlock(LOCK) \ (thread_in_use () ? mutex_unlock (LOCK) : 0) # define glthread_lock_destroy(LOCK) \ (thread_in_use () ? mutex_destroy (LOCK) : 0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ typedef rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ DEFAULTRWLOCK # define glthread_rwlock_init(LOCK) \ (thread_in_use () ? rwlock_init (LOCK, USYNC_THREAD, NULL) : 0) # define glthread_rwlock_rdlock(LOCK) \ (thread_in_use () ? rw_rdlock (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (thread_in_use () ? rw_wrlock (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (thread_in_use () ? rw_unlock (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (thread_in_use () ? rwlock_destroy (LOCK) : 0) /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* Old Solaris threads did not have recursive locks. We have to implement them ourselves. */ typedef struct { mutex_t mutex; thread_t owner; unsigned long depth; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { DEFAULTMUTEX, (thread_t) 0, 0 } # define glthread_recursive_lock_init(LOCK) \ (thread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) # define glthread_recursive_lock_lock(LOCK) \ (thread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_unlock(LOCK) \ (thread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_destroy(LOCK) \ (thread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); /* -------------------------- gl_once_t datatype -------------------------- */ typedef struct { volatile int inited; mutex_t mutex; } gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS gl_once_t NAME = { 0, DEFAULTMUTEX }; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (thread_in_use () \ ? glthread_once_multithreaded (ONCE_CONTROL, INITFUNCTION) \ : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) extern int glthread_once_multithreaded (gl_once_t *once_control, void (*initfunction) (void)); extern int glthread_once_singlethreaded (gl_once_t *once_control); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # ifdef __cplusplus extern "C" { # endif /* We can use CRITICAL_SECTION directly, rather than the native Windows Event, Mutex, Semaphore types, because - we need only to synchronize inside a single process (address space), not inter-process locking, - we don't need to support trylock operations. (TryEnterCriticalSection does not work on Windows 95/98/ME. Packages that need trylock usually define their own mutex type.) */ /* There is no way to statically initialize a CRITICAL_SECTION. It needs to be done lazily, once only. For this we need spinlocks. */ typedef struct { volatile int done; volatile long started; } gl_spinlock_t; /* -------------------------- gl_lock_t datatype -------------------------- */ typedef struct { gl_spinlock_t guard; /* protects the initialization */ CRITICAL_SECTION lock; } gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_lock_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_lock_t NAME = gl_lock_initializer; # define gl_lock_initializer \ { { 0, -1 } } # define glthread_lock_init(LOCK) \ (glthread_lock_init_func (LOCK), 0) # define glthread_lock_lock(LOCK) \ glthread_lock_lock_func (LOCK) # define glthread_lock_unlock(LOCK) \ glthread_lock_unlock_func (LOCK) # define glthread_lock_destroy(LOCK) \ glthread_lock_destroy_func (LOCK) extern void glthread_lock_init_func (gl_lock_t *lock); extern int glthread_lock_lock_func (gl_lock_t *lock); extern int glthread_lock_unlock_func (gl_lock_t *lock); extern int glthread_lock_destroy_func (gl_lock_t *lock); /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* It is impossible to implement read-write locks using plain locks, without introducing an extra thread dedicated to managing read-write locks. Therefore here we need to use the low-level Event type. */ typedef struct { HANDLE *array; /* array of waiting threads, each represented by an event */ unsigned int count; /* number of waiting threads */ unsigned int alloc; /* length of allocated array */ unsigned int offset; /* index of first waiting thread in array */ } gl_carray_waitqueue_t; typedef struct { gl_spinlock_t guard; /* protects the initialization */ CRITICAL_SECTION lock; /* protects the remaining fields */ gl_carray_waitqueue_t waiting_readers; /* waiting readers */ gl_carray_waitqueue_t waiting_writers; /* waiting writers */ int runcount; /* number of readers running, or -1 when a writer runs */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { { 0, -1 } } # define glthread_rwlock_init(LOCK) \ (glthread_rwlock_init_func (LOCK), 0) # define glthread_rwlock_rdlock(LOCK) \ glthread_rwlock_rdlock_func (LOCK) # define glthread_rwlock_wrlock(LOCK) \ glthread_rwlock_wrlock_func (LOCK) # define glthread_rwlock_unlock(LOCK) \ glthread_rwlock_unlock_func (LOCK) # define glthread_rwlock_destroy(LOCK) \ glthread_rwlock_destroy_func (LOCK) extern void glthread_rwlock_init_func (gl_rwlock_t *lock); extern int glthread_rwlock_rdlock_func (gl_rwlock_t *lock); extern int glthread_rwlock_wrlock_func (gl_rwlock_t *lock); extern int glthread_rwlock_unlock_func (gl_rwlock_t *lock); extern int glthread_rwlock_destroy_func (gl_rwlock_t *lock); /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* The native Windows documentation says that CRITICAL_SECTION already implements a recursive lock. But we need not rely on it: It's easy to implement a recursive lock without this assumption. */ typedef struct { gl_spinlock_t guard; /* protects the initialization */ DWORD owner; unsigned long depth; CRITICAL_SECTION lock; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { { 0, -1 }, 0, 0 } # define glthread_recursive_lock_init(LOCK) \ (glthread_recursive_lock_init_func (LOCK), 0) # define glthread_recursive_lock_lock(LOCK) \ glthread_recursive_lock_lock_func (LOCK) # define glthread_recursive_lock_unlock(LOCK) \ glthread_recursive_lock_unlock_func (LOCK) # define glthread_recursive_lock_destroy(LOCK) \ glthread_recursive_lock_destroy_func (LOCK) extern void glthread_recursive_lock_init_func (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_lock_func (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_unlock_func (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_destroy_func (gl_recursive_lock_t *lock); /* -------------------------- gl_once_t datatype -------------------------- */ typedef struct { volatile int inited; volatile long started; CRITICAL_SECTION lock; } gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS gl_once_t NAME = { -1, -1 }; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (glthread_once_func (ONCE_CONTROL, INITFUNCTION), 0) extern void glthread_once_func (gl_once_t *once_control, void (*initfunction) (void)); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS) /* Provide dummy implementation if threads are not supported. */ /* -------------------------- gl_lock_t datatype -------------------------- */ typedef int gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) # define gl_lock_define_initialized(STORAGECLASS, NAME) # define glthread_lock_init(NAME) 0 # define glthread_lock_lock(NAME) 0 # define glthread_lock_unlock(NAME) 0 # define glthread_lock_destroy(NAME) 0 /* ------------------------- gl_rwlock_t datatype ------------------------- */ typedef int gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) # define gl_rwlock_define_initialized(STORAGECLASS, NAME) # define glthread_rwlock_init(NAME) 0 # define glthread_rwlock_rdlock(NAME) 0 # define glthread_rwlock_wrlock(NAME) 0 # define glthread_rwlock_unlock(NAME) 0 # define glthread_rwlock_destroy(NAME) 0 /* --------------------- gl_recursive_lock_t datatype --------------------- */ typedef int gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) # define glthread_recursive_lock_init(NAME) 0 # define glthread_recursive_lock_lock(NAME) 0 # define glthread_recursive_lock_unlock(NAME) 0 # define glthread_recursive_lock_destroy(NAME) 0 /* -------------------------- gl_once_t datatype -------------------------- */ typedef int gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS gl_once_t NAME = 0; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (*(ONCE_CONTROL) == 0 ? (*(ONCE_CONTROL) = ~ 0, INITFUNCTION (), 0) : 0) #endif /* ========================================================================= */ /* Macros with built-in error handling. */ /* -------------------------- gl_lock_t datatype -------------------------- */ #define gl_lock_init(NAME) \ do \ { \ if (glthread_lock_init (&NAME)) \ abort (); \ } \ while (0) #define gl_lock_lock(NAME) \ do \ { \ if (glthread_lock_lock (&NAME)) \ abort (); \ } \ while (0) #define gl_lock_unlock(NAME) \ do \ { \ if (glthread_lock_unlock (&NAME)) \ abort (); \ } \ while (0) #define gl_lock_destroy(NAME) \ do \ { \ if (glthread_lock_destroy (&NAME)) \ abort (); \ } \ while (0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ #define gl_rwlock_init(NAME) \ do \ { \ if (glthread_rwlock_init (&NAME)) \ abort (); \ } \ while (0) #define gl_rwlock_rdlock(NAME) \ do \ { \ if (glthread_rwlock_rdlock (&NAME)) \ abort (); \ } \ while (0) #define gl_rwlock_wrlock(NAME) \ do \ { \ if (glthread_rwlock_wrlock (&NAME)) \ abort (); \ } \ while (0) #define gl_rwlock_unlock(NAME) \ do \ { \ if (glthread_rwlock_unlock (&NAME)) \ abort (); \ } \ while (0) #define gl_rwlock_destroy(NAME) \ do \ { \ if (glthread_rwlock_destroy (&NAME)) \ abort (); \ } \ while (0) /* --------------------- gl_recursive_lock_t datatype --------------------- */ #define gl_recursive_lock_init(NAME) \ do \ { \ if (glthread_recursive_lock_init (&NAME)) \ abort (); \ } \ while (0) #define gl_recursive_lock_lock(NAME) \ do \ { \ if (glthread_recursive_lock_lock (&NAME)) \ abort (); \ } \ while (0) #define gl_recursive_lock_unlock(NAME) \ do \ { \ if (glthread_recursive_lock_unlock (&NAME)) \ abort (); \ } \ while (0) #define gl_recursive_lock_destroy(NAME) \ do \ { \ if (glthread_recursive_lock_destroy (&NAME)) \ abort (); \ } \ while (0) /* -------------------------- gl_once_t datatype -------------------------- */ #define gl_once(NAME, INITFUNCTION) \ do \ { \ if (glthread_once (&NAME, INITFUNCTION)) \ abort (); \ } \ while (0) /* ========================================================================= */ #endif /* _LOCK_H */ libprelude-5.2.0/libmissing/glthread/PaxHeaders.14770/lock.c0000644000000000000000000000011013726163410021671 xustar000000000000000024 mtime=1599661832.543 24 atime=1599661832.742 24 ctime=1599661998.784 libprelude-5.2.0/libmissing/glthread/lock.c0000644000000000000000000007570713726163410020714 0ustar00rootroot00000000000000/* Locking in multithreaded situations. Copyright (C) 2005-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-win32.h. */ #include #include "glthread/lock.h" /* ========================================================================= */ #if USE_POSIX_THREADS /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ # if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (defined PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP && (__GNU_LIBRARY__ > 1))) # ifdef PTHREAD_RWLOCK_INITIALIZER # if !HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER /* glibc with bug https://sourceware.org/bugzilla/show_bug.cgi?id=13701 */ int glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock) { pthread_rwlockattr_t attributes; int err; err = pthread_rwlockattr_init (&attributes); if (err != 0) return err; /* Note: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP is the only value that causes the writer to be preferred. PTHREAD_RWLOCK_PREFER_WRITER_NP does not do this; see http://man7.org/linux/man-pages/man3/pthread_rwlockattr_setkind_np.3.html */ err = pthread_rwlockattr_setkind_np (&attributes, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP); if (err == 0) err = pthread_rwlock_init(lock, &attributes); /* pthread_rwlockattr_destroy always returns 0. It cannot influence the return value. */ pthread_rwlockattr_destroy (&attributes); return err; } # endif # else int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_rwlock_init (&lock->rwlock, NULL); if (err != 0) return err; lock->initialized = 1; return 0; } int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) { int err; err = pthread_mutex_lock (&lock->guard); if (err != 0) return err; if (!lock->initialized) { err = glthread_rwlock_init_multithreaded (lock); if (err != 0) { pthread_mutex_unlock (&lock->guard); return err; } } err = pthread_mutex_unlock (&lock->guard); if (err != 0) return err; } return pthread_rwlock_rdlock (&lock->rwlock); } int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) { int err; err = pthread_mutex_lock (&lock->guard); if (err != 0) return err; if (!lock->initialized) { err = glthread_rwlock_init_multithreaded (lock); if (err != 0) { pthread_mutex_unlock (&lock->guard); return err; } } err = pthread_mutex_unlock (&lock->guard); if (err != 0) return err; } return pthread_rwlock_wrlock (&lock->rwlock); } int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) return EINVAL; return pthread_rwlock_unlock (&lock->rwlock); } int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock) { int err; if (!lock->initialized) return EINVAL; err = pthread_rwlock_destroy (&lock->rwlock); if (err != 0) return err; lock->initialized = 0; return 0; } # endif # else int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_init (&lock->lock, NULL); if (err != 0) return err; err = pthread_cond_init (&lock->waiting_readers, NULL); if (err != 0) return err; err = pthread_cond_init (&lock->waiting_writers, NULL); if (err != 0) return err; lock->waiting_writers_count = 0; lock->runcount = 0; return 0; } int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_lock (&lock->lock); if (err != 0) return err; /* Test whether only readers are currently running, and whether the runcount field will not overflow, and whether no writer is waiting. The latter condition is because POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_readers. */ err = pthread_cond_wait (&lock->waiting_readers, &lock->lock); if (err != 0) { pthread_mutex_unlock (&lock->lock); return err; } } lock->runcount++; return pthread_mutex_unlock (&lock->lock); } int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_lock (&lock->lock); if (err != 0) return err; /* Test whether no readers or writers are currently running. */ while (!(lock->runcount == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_writers. */ lock->waiting_writers_count++; err = pthread_cond_wait (&lock->waiting_writers, &lock->lock); if (err != 0) { lock->waiting_writers_count--; pthread_mutex_unlock (&lock->lock); return err; } lock->waiting_writers_count--; } lock->runcount--; /* runcount becomes -1 */ return pthread_mutex_unlock (&lock->lock); } int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_lock (&lock->lock); if (err != 0) return err; if (lock->runcount < 0) { /* Drop a writer lock. */ if (!(lock->runcount == -1)) { pthread_mutex_unlock (&lock->lock); return EINVAL; } lock->runcount = 0; } else { /* Drop a reader lock. */ if (!(lock->runcount > 0)) { pthread_mutex_unlock (&lock->lock); return EINVAL; } lock->runcount--; } if (lock->runcount == 0) { /* POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ if (lock->waiting_writers_count > 0) { /* Wake up one of the waiting writers. */ err = pthread_cond_signal (&lock->waiting_writers); if (err != 0) { pthread_mutex_unlock (&lock->lock); return err; } } else { /* Wake up all waiting readers. */ err = pthread_cond_broadcast (&lock->waiting_readers); if (err != 0) { pthread_mutex_unlock (&lock->lock); return err; } } } return pthread_mutex_unlock (&lock->lock); } int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_destroy (&lock->lock); if (err != 0) return err; err = pthread_cond_destroy (&lock->waiting_readers); if (err != 0) return err; err = pthread_cond_destroy (&lock->waiting_writers); if (err != 0) return err; return 0; } # endif /* --------------------- gl_recursive_lock_t datatype --------------------- */ # if HAVE_PTHREAD_MUTEX_RECURSIVE # if defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) { pthread_mutexattr_t attributes; int err; err = pthread_mutexattr_init (&attributes); if (err != 0) return err; err = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE); if (err != 0) { pthread_mutexattr_destroy (&attributes); return err; } err = pthread_mutex_init (lock, &attributes); if (err != 0) { pthread_mutexattr_destroy (&attributes); return err; } err = pthread_mutexattr_destroy (&attributes); if (err != 0) return err; return 0; } # else int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) { pthread_mutexattr_t attributes; int err; err = pthread_mutexattr_init (&attributes); if (err != 0) return err; err = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE); if (err != 0) { pthread_mutexattr_destroy (&attributes); return err; } err = pthread_mutex_init (&lock->recmutex, &attributes); if (err != 0) { pthread_mutexattr_destroy (&attributes); return err; } err = pthread_mutexattr_destroy (&attributes); if (err != 0) return err; lock->initialized = 1; return 0; } int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock) { if (!lock->initialized) { int err; err = pthread_mutex_lock (&lock->guard); if (err != 0) return err; if (!lock->initialized) { err = glthread_recursive_lock_init_multithreaded (lock); if (err != 0) { pthread_mutex_unlock (&lock->guard); return err; } } err = pthread_mutex_unlock (&lock->guard); if (err != 0) return err; } return pthread_mutex_lock (&lock->recmutex); } int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock) { if (!lock->initialized) return EINVAL; return pthread_mutex_unlock (&lock->recmutex); } int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock) { int err; if (!lock->initialized) return EINVAL; err = pthread_mutex_destroy (&lock->recmutex); if (err != 0) return err; lock->initialized = 0; return 0; } # endif # else int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) { int err; err = pthread_mutex_init (&lock->mutex, NULL); if (err != 0) return err; lock->owner = (pthread_t) 0; lock->depth = 0; return 0; } int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock) { pthread_t self = pthread_self (); if (lock->owner != self) { int err; err = pthread_mutex_lock (&lock->mutex); if (err != 0) return err; lock->owner = self; } if (++(lock->depth) == 0) /* wraparound? */ { lock->depth--; return EAGAIN; } return 0; } int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock) { if (lock->owner != pthread_self ()) return EPERM; if (lock->depth == 0) return EINVAL; if (--(lock->depth) == 0) { lock->owner = (pthread_t) 0; return pthread_mutex_unlock (&lock->mutex); } else return 0; } int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock) { if (lock->owner != (pthread_t) 0) return EBUSY; return pthread_mutex_destroy (&lock->mutex); } # endif /* -------------------------- gl_once_t datatype -------------------------- */ static const pthread_once_t fresh_once = PTHREAD_ONCE_INIT; int glthread_once_singlethreaded (pthread_once_t *once_control) { /* We don't know whether pthread_once_t is an integer type, a floating-point type, a pointer type, or a structure type. */ char *firstbyte = (char *)once_control; if (*firstbyte == *(const char *)&fresh_once) { /* First time use of once_control. Invert the first byte. */ *firstbyte = ~ *(const char *)&fresh_once; return 1; } else return 0; } #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ # if !HAVE_PTH_RWLOCK_ACQUIRE_PREFER_WRITER int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock) { if (!pth_mutex_init (&lock->lock)) return errno; if (!pth_cond_init (&lock->waiting_readers)) return errno; if (!pth_cond_init (&lock->waiting_writers)) return errno; lock->waiting_writers_count = 0; lock->runcount = 0; lock->initialized = 1; return 0; } int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) glthread_rwlock_init_multithreaded (lock); if (!pth_mutex_acquire (&lock->lock, 0, NULL)) return errno; /* Test whether only readers are currently running, and whether the runcount field will not overflow, and whether no writer is waiting. The latter condition is because POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_readers. */ if (!pth_cond_await (&lock->waiting_readers, &lock->lock, NULL)) { int err = errno; pth_mutex_release (&lock->lock); return err; } } lock->runcount++; return (!pth_mutex_release (&lock->lock) ? errno : 0); } int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) glthread_rwlock_init_multithreaded (lock); if (!pth_mutex_acquire (&lock->lock, 0, NULL)) return errno; /* Test whether no readers or writers are currently running. */ while (!(lock->runcount == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_writers. */ lock->waiting_writers_count++; if (!pth_cond_await (&lock->waiting_writers, &lock->lock, NULL)) { int err = errno; lock->waiting_writers_count--; pth_mutex_release (&lock->lock); return err; } lock->waiting_writers_count--; } lock->runcount--; /* runcount becomes -1 */ return (!pth_mutex_release (&lock->lock) ? errno : 0); } int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock) { int err; if (!lock->initialized) return EINVAL; if (!pth_mutex_acquire (&lock->lock, 0, NULL)) return errno; if (lock->runcount < 0) { /* Drop a writer lock. */ if (!(lock->runcount == -1)) { pth_mutex_release (&lock->lock); return EINVAL; } lock->runcount = 0; } else { /* Drop a reader lock. */ if (!(lock->runcount > 0)) { pth_mutex_release (&lock->lock); return EINVAL; } lock->runcount--; } if (lock->runcount == 0) { /* POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ if (lock->waiting_writers_count > 0) { /* Wake up one of the waiting writers. */ if (!pth_cond_notify (&lock->waiting_writers, FALSE)) { int err = errno; pth_mutex_release (&lock->lock); return err; } } else { /* Wake up all waiting readers. */ if (!pth_cond_notify (&lock->waiting_readers, TRUE)) { int err = errno; pth_mutex_release (&lock->lock); return err; } } } return (!pth_mutex_release (&lock->lock) ? errno : 0); } int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock) { lock->initialized = 0; return 0; } # endif /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* -------------------------- gl_once_t datatype -------------------------- */ static void glthread_once_call (void *arg) { void (**gl_once_temp_addr) (void) = (void (**) (void)) arg; void (*initfunction) (void) = *gl_once_temp_addr; initfunction (); } int glthread_once_multithreaded (pth_once_t *once_control, void (*initfunction) (void)) { void (*temp) (void) = initfunction; return (!pth_once (once_control, glthread_once_call, &temp) ? errno : 0); } int glthread_once_singlethreaded (pth_once_t *once_control) { /* We know that pth_once_t is an integer type. */ if (*once_control == PTH_ONCE_INIT) { /* First time use of once_control. Invert the marker. */ *once_control = ~ PTH_ONCE_INIT; return 1; } else return 0; } #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* --------------------- gl_recursive_lock_t datatype --------------------- */ int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) { int err; err = mutex_init (&lock->mutex, USYNC_THREAD, NULL); if (err != 0) return err; lock->owner = (thread_t) 0; lock->depth = 0; return 0; } int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock) { thread_t self = thr_self (); if (lock->owner != self) { int err; err = mutex_lock (&lock->mutex); if (err != 0) return err; lock->owner = self; } if (++(lock->depth) == 0) /* wraparound? */ { lock->depth--; return EAGAIN; } return 0; } int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock) { if (lock->owner != thr_self ()) return EPERM; if (lock->depth == 0) return EINVAL; if (--(lock->depth) == 0) { lock->owner = (thread_t) 0; return mutex_unlock (&lock->mutex); } else return 0; } int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock) { if (lock->owner != (thread_t) 0) return EBUSY; return mutex_destroy (&lock->mutex); } /* -------------------------- gl_once_t datatype -------------------------- */ int glthread_once_multithreaded (gl_once_t *once_control, void (*initfunction) (void)) { if (!once_control->inited) { int err; /* Use the mutex to guarantee that if another thread is already calling the initfunction, this thread waits until it's finished. */ err = mutex_lock (&once_control->mutex); if (err != 0) return err; if (!once_control->inited) { once_control->inited = 1; initfunction (); } return mutex_unlock (&once_control->mutex); } else return 0; } int glthread_once_singlethreaded (gl_once_t *once_control) { /* We know that gl_once_t contains an integer type. */ if (!once_control->inited) { /* First time use of once_control. Invert the marker. */ once_control->inited = ~ 0; return 1; } else return 0; } #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS /* -------------------------- gl_lock_t datatype -------------------------- */ void glthread_lock_init_func (gl_lock_t *lock) { InitializeCriticalSection (&lock->lock); lock->guard.done = 1; } int glthread_lock_lock_func (gl_lock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_lock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } EnterCriticalSection (&lock->lock); return 0; } int glthread_lock_unlock_func (gl_lock_t *lock) { if (!lock->guard.done) return EINVAL; LeaveCriticalSection (&lock->lock); return 0; } int glthread_lock_destroy_func (gl_lock_t *lock) { if (!lock->guard.done) return EINVAL; DeleteCriticalSection (&lock->lock); lock->guard.done = 0; return 0; } /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* In this file, the waitqueues are implemented as circular arrays. */ #define gl_waitqueue_t gl_carray_waitqueue_t static void gl_waitqueue_init (gl_waitqueue_t *wq) { wq->array = NULL; wq->count = 0; wq->alloc = 0; wq->offset = 0; } /* Enqueues the current thread, represented by an event, in a wait queue. Returns INVALID_HANDLE_VALUE if an allocation failure occurs. */ static HANDLE gl_waitqueue_add (gl_waitqueue_t *wq) { HANDLE event; unsigned int index; if (wq->count == wq->alloc) { unsigned int new_alloc = 2 * wq->alloc + 1; HANDLE *new_array = (HANDLE *) realloc (wq->array, new_alloc * sizeof (HANDLE)); if (new_array == NULL) /* No more memory. */ return INVALID_HANDLE_VALUE; /* Now is a good opportunity to rotate the array so that its contents starts at offset 0. */ if (wq->offset > 0) { unsigned int old_count = wq->count; unsigned int old_alloc = wq->alloc; unsigned int old_offset = wq->offset; unsigned int i; if (old_offset + old_count > old_alloc) { unsigned int limit = old_offset + old_count - old_alloc; for (i = 0; i < limit; i++) new_array[old_alloc + i] = new_array[i]; } for (i = 0; i < old_count; i++) new_array[i] = new_array[old_offset + i]; wq->offset = 0; } wq->array = new_array; wq->alloc = new_alloc; } /* Whether the created event is a manual-reset one or an auto-reset one, does not matter, since we will wait on it only once. */ event = CreateEvent (NULL, TRUE, FALSE, NULL); if (event == INVALID_HANDLE_VALUE) /* No way to allocate an event. */ return INVALID_HANDLE_VALUE; index = wq->offset + wq->count; if (index >= wq->alloc) index -= wq->alloc; wq->array[index] = event; wq->count++; return event; } /* Notifies the first thread from a wait queue and dequeues it. */ static void gl_waitqueue_notify_first (gl_waitqueue_t *wq) { SetEvent (wq->array[wq->offset + 0]); wq->offset++; wq->count--; if (wq->count == 0 || wq->offset == wq->alloc) wq->offset = 0; } /* Notifies all threads from a wait queue and dequeues them all. */ static void gl_waitqueue_notify_all (gl_waitqueue_t *wq) { unsigned int i; for (i = 0; i < wq->count; i++) { unsigned int index = wq->offset + i; if (index >= wq->alloc) index -= wq->alloc; SetEvent (wq->array[index]); } wq->count = 0; wq->offset = 0; } void glthread_rwlock_init_func (gl_rwlock_t *lock) { InitializeCriticalSection (&lock->lock); gl_waitqueue_init (&lock->waiting_readers); gl_waitqueue_init (&lock->waiting_writers); lock->runcount = 0; lock->guard.done = 1; } int glthread_rwlock_rdlock_func (gl_rwlock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_rwlock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } EnterCriticalSection (&lock->lock); /* Test whether only readers are currently running, and whether the runcount field will not overflow, and whether no writer is waiting. The latter condition is because POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ if (!(lock->runcount + 1 > 0 && lock->waiting_writers.count == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_readers. */ HANDLE event = gl_waitqueue_add (&lock->waiting_readers); if (event != INVALID_HANDLE_VALUE) { DWORD result; LeaveCriticalSection (&lock->lock); /* Wait until another thread signals this event. */ result = WaitForSingleObject (event, INFINITE); if (result == WAIT_FAILED || result == WAIT_TIMEOUT) abort (); CloseHandle (event); /* The thread which signalled the event already did the bookkeeping: removed us from the waiting_readers, incremented lock->runcount. */ if (!(lock->runcount > 0)) abort (); return 0; } else { /* Allocation failure. Weird. */ do { LeaveCriticalSection (&lock->lock); Sleep (1); EnterCriticalSection (&lock->lock); } while (!(lock->runcount + 1 > 0)); } } lock->runcount++; LeaveCriticalSection (&lock->lock); return 0; } int glthread_rwlock_wrlock_func (gl_rwlock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_rwlock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } EnterCriticalSection (&lock->lock); /* Test whether no readers or writers are currently running. */ if (!(lock->runcount == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_writers. */ HANDLE event = gl_waitqueue_add (&lock->waiting_writers); if (event != INVALID_HANDLE_VALUE) { DWORD result; LeaveCriticalSection (&lock->lock); /* Wait until another thread signals this event. */ result = WaitForSingleObject (event, INFINITE); if (result == WAIT_FAILED || result == WAIT_TIMEOUT) abort (); CloseHandle (event); /* The thread which signalled the event already did the bookkeeping: removed us from the waiting_writers, set lock->runcount = -1. */ if (!(lock->runcount == -1)) abort (); return 0; } else { /* Allocation failure. Weird. */ do { LeaveCriticalSection (&lock->lock); Sleep (1); EnterCriticalSection (&lock->lock); } while (!(lock->runcount == 0)); } } lock->runcount--; /* runcount becomes -1 */ LeaveCriticalSection (&lock->lock); return 0; } int glthread_rwlock_unlock_func (gl_rwlock_t *lock) { if (!lock->guard.done) return EINVAL; EnterCriticalSection (&lock->lock); if (lock->runcount < 0) { /* Drop a writer lock. */ if (!(lock->runcount == -1)) abort (); lock->runcount = 0; } else { /* Drop a reader lock. */ if (!(lock->runcount > 0)) { LeaveCriticalSection (&lock->lock); return EPERM; } lock->runcount--; } if (lock->runcount == 0) { /* POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ if (lock->waiting_writers.count > 0) { /* Wake up one of the waiting writers. */ lock->runcount--; gl_waitqueue_notify_first (&lock->waiting_writers); } else { /* Wake up all waiting readers. */ lock->runcount += lock->waiting_readers.count; gl_waitqueue_notify_all (&lock->waiting_readers); } } LeaveCriticalSection (&lock->lock); return 0; } int glthread_rwlock_destroy_func (gl_rwlock_t *lock) { if (!lock->guard.done) return EINVAL; if (lock->runcount != 0) return EBUSY; DeleteCriticalSection (&lock->lock); if (lock->waiting_readers.array != NULL) free (lock->waiting_readers.array); if (lock->waiting_writers.array != NULL) free (lock->waiting_writers.array); lock->guard.done = 0; return 0; } /* --------------------- gl_recursive_lock_t datatype --------------------- */ void glthread_recursive_lock_init_func (gl_recursive_lock_t *lock) { lock->owner = 0; lock->depth = 0; InitializeCriticalSection (&lock->lock); lock->guard.done = 1; } int glthread_recursive_lock_lock_func (gl_recursive_lock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_recursive_lock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } { DWORD self = GetCurrentThreadId (); if (lock->owner != self) { EnterCriticalSection (&lock->lock); lock->owner = self; } if (++(lock->depth) == 0) /* wraparound? */ { lock->depth--; return EAGAIN; } } return 0; } int glthread_recursive_lock_unlock_func (gl_recursive_lock_t *lock) { if (lock->owner != GetCurrentThreadId ()) return EPERM; if (lock->depth == 0) return EINVAL; if (--(lock->depth) == 0) { lock->owner = 0; LeaveCriticalSection (&lock->lock); } return 0; } int glthread_recursive_lock_destroy_func (gl_recursive_lock_t *lock) { if (lock->owner != 0) return EBUSY; DeleteCriticalSection (&lock->lock); lock->guard.done = 0; return 0; } /* -------------------------- gl_once_t datatype -------------------------- */ void glthread_once_func (gl_once_t *once_control, void (*initfunction) (void)) { if (once_control->inited <= 0) { if (InterlockedIncrement (&once_control->started) == 0) { /* This thread is the first one to come to this once_control. */ InitializeCriticalSection (&once_control->lock); EnterCriticalSection (&once_control->lock); once_control->inited = 0; initfunction (); once_control->inited = 1; LeaveCriticalSection (&once_control->lock); } else { /* Undo last operation. */ InterlockedDecrement (&once_control->started); /* Some other thread has already started the initialization. Yield the CPU while waiting for the other thread to finish initializing and taking the lock. */ while (once_control->inited < 0) Sleep (0); if (once_control->inited <= 0) { /* Take the lock. This blocks until the other thread has finished calling the initfunction. */ EnterCriticalSection (&once_control->lock); LeaveCriticalSection (&once_control->lock); if (!(once_control->inited > 0)) abort (); } } } } #endif /* ========================================================================= */ libprelude-5.2.0/libmissing/glthread/PaxHeaders.14770/thread.h0000644000000000000000000000011013726163410022215 xustar000000000000000024 mtime=1599661832.544 24 atime=1599661832.743 24 ctime=1599661998.803 libprelude-5.2.0/libmissing/glthread/thread.h0000644000000000000000000003320713726163410021225 0ustar00rootroot00000000000000/* Creating and controlling threads. Copyright (C) 2005-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-win32.h. */ /* This file contains primitives for creating and controlling threads. Thread data type: gl_thread_t. Creating a thread: thread = gl_thread_create (func, arg); Or with control of error handling: err = glthread_create (&thread, func, arg); extern int glthread_create (gl_thread_t *result, void *(*func) (void *), void *arg); Querying and changing the signal mask of a thread (not supported on all platforms): gl_thread_sigmask (how, newmask, oldmask); Or with control of error handling: err = glthread_sigmask (how, newmask, oldmask); extern int glthread_sigmask (int how, const sigset_t *newmask, sigset_t *oldmask); Waiting for termination of another thread: gl_thread_join (thread, &return_value); Or with control of error handling: err = glthread_join (thread, &return_value); extern int glthread_join (gl_thread_t thread, void **return_value_ptr); Getting a reference to the current thread: current = gl_thread_self (); extern gl_thread_t gl_thread_self (void); Getting a reference to the current thread as a pointer, for debugging: ptr = gl_thread_self_pointer (); extern void * gl_thread_self_pointer (void); Terminating the current thread: gl_thread_exit (return_value); extern _Noreturn void gl_thread_exit (void *return_value); Requesting custom code to be executed at fork() time (not supported on all platforms): gl_thread_atfork (prepare_func, parent_func, child_func); Or with control of error handling: err = glthread_atfork (prepare_func, parent_func, child_func); extern int glthread_atfork (void (*prepare_func) (void), void (*parent_func) (void), void (*child_func) (void)); Note that even on platforms where this is supported, use of fork() and threads together is problematic, see */ #ifndef _GLTHREAD_THREAD_H #define _GLTHREAD_THREAD_H #include #include #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GLTHREAD_THREAD_INLINE # define _GLTHREAD_THREAD_INLINE _GL_INLINE #endif /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include /* On IRIX, pthread_atfork is declared in , not in . */ # if defined __sgi # include # endif # if USE_POSIX_THREADS_WEAK /* Compilers other than GCC need to see the declaration of pthread_sigmask before the "#pragma weak pthread_sigmask" below. */ # include # endif # ifdef __cplusplus extern "C" { # endif # if PTHREAD_IN_USE_DETECTION_HARD /* The pthread_in_use() detection needs to be done at runtime. */ # define pthread_in_use() \ glthread_in_use () extern int glthread_in_use (void); # endif # if USE_POSIX_THREADS_WEAK /* Use weak references to the POSIX threads library. */ /* Weak references avoid dragging in external libraries if the other parts of the program don't use them. Here we use them, because we don't want every program that uses libintl to depend on libpthread. This assumes that libpthread would not be loaded after libintl; i.e. if libintl is loaded first, by an executable that does not depend on libpthread, and then a module is dynamically loaded that depends on libpthread, libintl will not be multithread-safe. */ /* The way to test at runtime whether libpthread is present is to test whether a function pointer's value, such as &pthread_mutex_init, is non-NULL. However, some versions of GCC have a bug through which, in PIC mode, &foo != NULL always evaluates to true if there is a direct call to foo(...) in the same function. To avoid this, we test the address of a function in libpthread that we don't use. */ # pragma weak pthread_create # ifndef pthread_sigmask /* Do not declare rpl_pthread_sigmask weak. */ # pragma weak pthread_sigmask # endif # pragma weak pthread_join # ifndef pthread_self # pragma weak pthread_self # endif # pragma weak pthread_exit # if HAVE_PTHREAD_ATFORK # pragma weak pthread_atfork # endif # if !PTHREAD_IN_USE_DETECTION_HARD # pragma weak pthread_mutexattr_gettype # define pthread_in_use() (pthread_mutexattr_gettype != NULL) # endif # else # if !PTHREAD_IN_USE_DETECTION_HARD # define pthread_in_use() 1 # endif # endif /* -------------------------- gl_thread_t datatype -------------------------- */ /* This choice of gl_thread_t assumes that pthread_equal (a, b) is equivalent to ((a) == (b)). This is the case on all platforms in use in 2008. */ typedef pthread_t gl_thread_t; # define glthread_create(THREADP, FUNC, ARG) \ (pthread_in_use () ? pthread_create (THREADP, NULL, FUNC, ARG) : ENOSYS) # define glthread_sigmask(HOW, SET, OSET) \ (pthread_in_use () ? pthread_sigmask (HOW, SET, OSET) : 0) # define glthread_join(THREAD, RETVALP) \ (pthread_in_use () ? pthread_join (THREAD, RETVALP) : 0) # ifdef PTW32_VERSION /* In pthreads-win32, pthread_t is a struct with a pointer field 'p' and other fields. */ # define gl_thread_self() \ (pthread_in_use () ? pthread_self () : gl_null_thread) # define gl_thread_self_pointer() \ (pthread_in_use () ? pthread_self ().p : NULL) extern const gl_thread_t gl_null_thread; # elif defined __MVS__ /* On IBM z/OS, pthread_t is a struct with an 8-byte '__' field. The first three bytes of this field appear to uniquely identify a pthread_t, though not necessarily representing a pointer. */ # define gl_thread_self() \ (pthread_in_use () ? pthread_self () : gl_null_thread) # define gl_thread_self_pointer() \ (pthread_in_use () ? *((void **) pthread_self ().__) : NULL) extern const gl_thread_t gl_null_thread; # else # define gl_thread_self() \ (pthread_in_use () ? pthread_self () : (pthread_t) NULL) # define gl_thread_self_pointer() \ (pthread_in_use () ? (void *) pthread_self () : NULL) # endif # define gl_thread_exit(RETVAL) \ (pthread_in_use () ? pthread_exit (RETVAL) : 0) # if HAVE_PTHREAD_ATFORK # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) \ (pthread_in_use () ? pthread_atfork (PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) : 0) # else # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 # endif # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if USE_PTH_THREADS_WEAK /* Use weak references to the GNU Pth threads library. */ # pragma weak pth_init # pragma weak pth_spawn # pragma weak pth_sigmask # pragma weak pth_join # pragma weak pth_self # pragma weak pth_exit # pragma weak pth_cancel # define pth_in_use() (pth_cancel != NULL) # else # define pth_in_use() 1 # endif /* -------------------------- gl_thread_t datatype -------------------------- */ typedef pth_t gl_thread_t; # define glthread_create(THREADP, FUNC, ARG) \ (pth_in_use () ? (pth_init (), ((*(THREADP) = pth_spawn (NULL, FUNC, ARG)) ? 0 : errno)) : 0) # define glthread_sigmask(HOW, SET, OSET) \ (pth_in_use () ? (pth_init (), (pth_sigmask (HOW, SET, OSET) ? 0 : errno)) : 0) # define glthread_join(THREAD, RETVALP) \ (pth_in_use () ? (pth_init (), (pth_join (THREAD, RETVALP) ? 0 : errno)) : 0) # define gl_thread_self() \ (pth_in_use () ? (pth_init (), (void *) pth_self ()) : NULL) # define gl_thread_self_pointer() \ gl_thread_self () # define gl_thread_exit(RETVAL) \ (pth_in_use () ? (pth_init (), pth_exit (RETVAL)) : 0) # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ # include # include # ifdef __cplusplus extern "C" { # endif # if USE_SOLARIS_THREADS_WEAK /* Use weak references to the old Solaris threads library. */ # pragma weak thr_create # pragma weak thr_join # pragma weak thr_self # pragma weak thr_exit # pragma weak thr_suspend # define thread_in_use() (thr_suspend != NULL) # else # define thread_in_use() 1 # endif /* -------------------------- gl_thread_t datatype -------------------------- */ typedef thread_t gl_thread_t; # define glthread_create(THREADP, FUNC, ARG) \ (thread_in_use () ? thr_create (NULL, 0, FUNC, ARG, 0, THREADP) : 0) # define glthread_sigmask(HOW, SET, OSET) \ (thread_in_use () ? sigprocmask (HOW, SET, OSET) : 0) # define glthread_join(THREAD, RETVALP) \ (thread_in_use () ? thr_join (THREAD, NULL, RETVALP) : 0) # define gl_thread_self() \ (thread_in_use () ? (void *) thr_self () : NULL) # define gl_thread_self_pointer() \ gl_thread_self () # define gl_thread_exit(RETVAL) \ (thread_in_use () ? thr_exit (RETVAL) : 0) # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # ifdef __cplusplus extern "C" { # endif /* -------------------------- gl_thread_t datatype -------------------------- */ /* The gl_thread_t is a pointer to a structure in memory. Why not the thread handle? If it were the thread handle, it would be hard to implement gl_thread_self() (since GetCurrentThread () returns a pseudo- handle, DuplicateHandle (GetCurrentThread ()) returns a handle that must be closed afterwards, and there is no function for quickly retrieving a thread handle from its id). Why not the thread id? I tried it. It did not work: Sometimes ids appeared that did not belong to running threads, and glthread_join failed with ESRCH. */ typedef struct gl_thread_struct *gl_thread_t; # define glthread_create(THREADP, FUNC, ARG) \ glthread_create_func (THREADP, FUNC, ARG) # define glthread_sigmask(HOW, SET, OSET) \ /* unsupported */ 0 # define glthread_join(THREAD, RETVALP) \ glthread_join_func (THREAD, RETVALP) # define gl_thread_self() \ gl_thread_self_func () # define gl_thread_self_pointer() \ gl_thread_self () # define gl_thread_exit(RETVAL) \ gl_thread_exit_func (RETVAL) # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 extern int glthread_create_func (gl_thread_t *threadp, void * (*func) (void *), void *arg); extern int glthread_join_func (gl_thread_t thread, void **retvalp); extern gl_thread_t gl_thread_self_func (void); extern int gl_thread_exit_func (void *retval); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS) /* Provide dummy implementation if threads are not supported. */ typedef int gl_thread_t; # define glthread_create(THREADP, FUNC, ARG) ENOSYS # define glthread_sigmask(HOW, SET, OSET) 0 # define glthread_join(THREAD, RETVALP) 0 # define gl_thread_self() 0 # define gl_thread_self_pointer() \ ((void *) gl_thread_self ()) # define gl_thread_exit(RETVAL) 0 # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 #endif /* ========================================================================= */ /* Macros with built-in error handling. */ #ifdef __cplusplus extern "C" { #endif _GLTHREAD_THREAD_INLINE gl_thread_t gl_thread_create (void *(*func) (void *arg), void *arg) { gl_thread_t thread; int ret; ret = glthread_create (&thread, func, arg); if (ret != 0) abort (); return thread; } #define gl_thread_sigmask(HOW, SET, OSET) \ do \ { \ if (glthread_sigmask (HOW, SET, OSET)) \ abort (); \ } \ while (0) #define gl_thread_join(THREAD, RETVAL) \ do \ { \ if (glthread_join (THREAD, RETVAL)) \ abort (); \ } \ while (0) #define gl_thread_atfork(PREPARE, PARENT, CHILD) \ do \ { \ if (glthread_atfork (PREPARE, PARENT, CHILD)) \ abort (); \ } \ while (0) #ifdef __cplusplus } #endif _GL_INLINE_HEADER_END #endif /* _GLTHREAD_THREAD_H */ libprelude-5.2.0/libmissing/glthread/PaxHeaders.14770/thread.c0000644000000000000000000000011013726163410022210 xustar000000000000000024 mtime=1599661832.543 24 atime=1599661832.743 24 ctime=1599661998.806 libprelude-5.2.0/libmissing/glthread/thread.c0000644000000000000000000001432313726163410021216 0ustar00rootroot00000000000000/* Creating and controlling threads. Copyright (C) 2005-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-win32.h. */ #include /* Specification. */ # define _GLTHREAD_THREAD_INLINE _GL_EXTERN_INLINE #include "glthread/thread.h" #include #include "glthread/lock.h" /* ========================================================================= */ #if USE_POSIX_THREADS #include #if defined PTW32_VERSION || defined __MVS__ const gl_thread_t gl_null_thread /* = { .p = NULL } */; #endif #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS #include /* -------------------------- gl_thread_t datatype -------------------------- */ /* The Thread-Local Storage (TLS) key that allows to access each thread's 'struct gl_thread_struct *' pointer. */ static DWORD self_key = (DWORD)-1; /* Initializes self_key. This function must only be called once. */ static void do_init_self_key (void) { self_key = TlsAlloc (); /* If this fails, we're hosed. */ if (self_key == (DWORD)-1) abort (); } /* Initializes self_key. */ static void init_self_key (void) { gl_once_define(static, once) gl_once (once, do_init_self_key); } /* This structure contains information about a thread. It is stored in TLS under key self_key. */ struct gl_thread_struct { /* Fields for managing the handle. */ HANDLE volatile handle; CRITICAL_SECTION handle_lock; /* Fields for managing the exit value. */ void * volatile result; /* Fields for managing the thread start. */ void * (*func) (void *); void *arg; }; /* Return a real HANDLE object for the current thread. */ static HANDLE get_current_thread_handle (void) { HANDLE this_handle; /* GetCurrentThread() returns a pseudo-handle, i.e. only a symbolic identifier, not a real handle. */ if (!DuplicateHandle (GetCurrentProcess (), GetCurrentThread (), GetCurrentProcess (), &this_handle, 0, FALSE, DUPLICATE_SAME_ACCESS)) abort (); return this_handle; } gl_thread_t gl_thread_self_func (void) { gl_thread_t thread; if (self_key == (DWORD)-1) init_self_key (); thread = TlsGetValue (self_key); if (thread == NULL) { /* This happens only in threads that have not been created through glthread_create(), such as the main thread. */ for (;;) { thread = (struct gl_thread_struct *) malloc (sizeof (struct gl_thread_struct)); if (thread != NULL) break; /* Memory allocation failed. There is not much we can do. Have to busy-loop, waiting for the availability of memory. */ Sleep (1); } thread->handle = get_current_thread_handle (); InitializeCriticalSection (&thread->handle_lock); thread->result = NULL; /* just to be deterministic */ TlsSetValue (self_key, thread); } return thread; } /* The main function of a freshly creating thread. It's a wrapper around the FUNC and ARG arguments passed to glthread_create_func. */ static unsigned int WINAPI wrapper_func (void *varg) { struct gl_thread_struct *thread = (struct gl_thread_struct *)varg; EnterCriticalSection (&thread->handle_lock); /* Create a new handle for the thread only if the parent thread did not yet fill in the handle. */ if (thread->handle == NULL) thread->handle = get_current_thread_handle (); LeaveCriticalSection (&thread->handle_lock); if (self_key == (DWORD)-1) init_self_key (); TlsSetValue (self_key, thread); /* Run the thread. Store the exit value if the thread was not terminated otherwise. */ thread->result = thread->func (thread->arg); return 0; } int glthread_create_func (gl_thread_t *threadp, void * (*func) (void *), void *arg) { struct gl_thread_struct *thread = (struct gl_thread_struct *) malloc (sizeof (struct gl_thread_struct)); if (thread == NULL) return ENOMEM; thread->handle = NULL; InitializeCriticalSection (&thread->handle_lock); thread->result = NULL; /* just to be deterministic */ thread->func = func; thread->arg = arg; { unsigned int thread_id; HANDLE thread_handle; thread_handle = (HANDLE) _beginthreadex (NULL, 100000, wrapper_func, thread, 0, &thread_id); /* calls CreateThread with the same arguments */ if (thread_handle == NULL) { DeleteCriticalSection (&thread->handle_lock); free (thread); return EAGAIN; } EnterCriticalSection (&thread->handle_lock); if (thread->handle == NULL) thread->handle = thread_handle; else /* thread->handle was already set by the thread itself. */ CloseHandle (thread_handle); LeaveCriticalSection (&thread->handle_lock); *threadp = thread; return 0; } } int glthread_join_func (gl_thread_t thread, void **retvalp) { if (thread == NULL) return EINVAL; if (thread == gl_thread_self ()) return EDEADLK; if (WaitForSingleObject (thread->handle, INFINITE) == WAIT_FAILED) return EINVAL; if (retvalp != NULL) *retvalp = thread->result; DeleteCriticalSection (&thread->handle_lock); CloseHandle (thread->handle); free (thread); return 0; } int gl_thread_exit_func (void *retval) { gl_thread_t thread = gl_thread_self (); thread->result = retval; _endthreadex (0); /* calls ExitThread (0) */ abort (); } #endif /* ========================================================================= */ libprelude-5.2.0/libmissing/glthread/PaxHeaders.14770/threadlib.c0000644000000000000000000000011013726163410022677 xustar000000000000000024 mtime=1599661832.544 24 atime=1599661832.743 24 ctime=1599661998.808 libprelude-5.2.0/libmissing/glthread/threadlib.c0000644000000000000000000000356613726163410021714 0ustar00rootroot00000000000000/* Multithreading primitives. Copyright (C) 2005-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. */ #include /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # include # if PTHREAD_IN_USE_DETECTION_HARD /* The function to be executed by a dummy thread. */ static void * dummy_thread_func (void *arg) { return arg; } int glthread_in_use (void) { static int tested; static int result; /* 1: linked with -lpthread, 0: only with libc */ if (!tested) { pthread_t thread; if (pthread_create (&thread, NULL, dummy_thread_func, NULL) != 0) /* Thread creation failed. */ result = 0; else { /* Thread creation works. */ void *retval; if (pthread_join (thread, &retval) != 0) abort (); result = 1; } tested = 1; } return result; } # endif #endif /* ========================================================================= */ /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; libprelude-5.2.0/libmissing/glthread/PaxHeaders.14770/tls.h0000644000000000000000000000011013726163410021550 xustar000000000000000024 mtime=1599661832.544 24 atime=1599661832.743 24 ctime=1599661998.811 libprelude-5.2.0/libmissing/glthread/tls.h0000644000000000000000000002211513726163410020554 0ustar00rootroot00000000000000/* Thread-local storage in multithreaded situations. Copyright (C) 2005, 2007-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2005. */ /* This file contains thread-local storage primitives for use with a given thread library. It does not contain primitives for creating threads or for other multithreading primitives. Type: gl_tls_key_t Initialization: gl_tls_key_init (name, destructor); Getting per-thread value: gl_tls_get (name) Setting per-thread value: gl_tls_set (name, pointer); De-initialization: gl_tls_key_destroy (name); Equivalent functions with control of error handling: Initialization: err = glthread_tls_key_init (&name, destructor); Setting per-thread value: err = glthread_tls_set (&name, pointer); De-initialization: err = glthread_tls_key_destroy (&name); A per-thread value is of type 'void *'. A destructor is a function pointer of type 'void (*) (void *)', called when a thread exits, and taking the last per-thread value as argument. It is unspecified whether the destructor function is called when the last per-thread value is NULL. On some platforms, the destructor function is not called at all. */ #ifndef _TLS_H #define _TLS_H #include #include /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # if PTHREAD_IN_USE_DETECTION_HARD /* The pthread_in_use() detection needs to be done at runtime. */ # define pthread_in_use() \ glthread_in_use () extern int glthread_in_use (void); # endif # if USE_POSIX_THREADS_WEAK /* Use weak references to the POSIX threads library. */ # pragma weak pthread_key_create # pragma weak pthread_getspecific # pragma weak pthread_setspecific # pragma weak pthread_key_delete # ifndef pthread_self # pragma weak pthread_self # endif # if !PTHREAD_IN_USE_DETECTION_HARD # pragma weak pthread_mutexattr_gettype # define pthread_in_use() (pthread_mutexattr_gettype != NULL) # endif # else # if !PTHREAD_IN_USE_DETECTION_HARD # define pthread_in_use() 1 # endif # endif /* ------------------------- gl_tls_key_t datatype ------------------------- */ typedef union { void *singlethread_value; pthread_key_t key; } gl_tls_key_t; # define glthread_tls_key_init(KEY, DESTRUCTOR) \ (pthread_in_use () \ ? pthread_key_create (&(KEY)->key, DESTRUCTOR) \ : ((KEY)->singlethread_value = NULL, 0)) # define gl_tls_get(NAME) \ (pthread_in_use () \ ? pthread_getspecific ((NAME).key) \ : (NAME).singlethread_value) # define glthread_tls_set(KEY, POINTER) \ (pthread_in_use () \ ? pthread_setspecific ((KEY)->key, (POINTER)) \ : ((KEY)->singlethread_value = (POINTER), 0)) # define glthread_tls_key_destroy(KEY) \ (pthread_in_use () ? pthread_key_delete ((KEY)->key) : 0) #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ # include # if USE_PTH_THREADS_WEAK /* Use weak references to the GNU Pth threads library. */ # pragma weak pth_key_create # pragma weak pth_key_getdata # pragma weak pth_key_setdata # pragma weak pth_key_delete # pragma weak pth_cancel # define pth_in_use() (pth_cancel != NULL) # else # define pth_in_use() 1 # endif /* ------------------------- gl_tls_key_t datatype ------------------------- */ typedef union { void *singlethread_value; pth_key_t key; } gl_tls_key_t; # define glthread_tls_key_init(KEY, DESTRUCTOR) \ (pth_in_use () \ ? (!pth_key_create (&(KEY)->key, DESTRUCTOR) ? errno : 0) \ : ((KEY)->singlethread_value = NULL, 0)) # define gl_tls_get(NAME) \ (pth_in_use () \ ? pth_key_getdata ((NAME).key) \ : (NAME).singlethread_value) # define glthread_tls_set(KEY, POINTER) \ (pth_in_use () \ ? (!pth_key_setdata ((KEY)->key, (POINTER)) ? errno : 0) \ : ((KEY)->singlethread_value = (POINTER), 0)) # define glthread_tls_key_destroy(KEY) \ (pth_in_use () \ ? (!pth_key_delete ((KEY)->key) ? errno : 0) \ : 0) #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ # include # if USE_SOLARIS_THREADS_WEAK /* Use weak references to the old Solaris threads library. */ # pragma weak thr_keycreate # pragma weak thr_getspecific # pragma weak thr_setspecific # pragma weak thr_suspend # define thread_in_use() (thr_suspend != NULL) # else # define thread_in_use() 1 # endif /* ------------------------- gl_tls_key_t datatype ------------------------- */ typedef union { void *singlethread_value; thread_key_t key; } gl_tls_key_t; # define glthread_tls_key_init(KEY, DESTRUCTOR) \ (thread_in_use () \ ? thr_keycreate (&(KEY)->key, DESTRUCTOR) \ : ((KEY)->singlethread_value = NULL, 0)) # define gl_tls_get(NAME) \ (thread_in_use () \ ? glthread_tls_get_multithreaded ((NAME).key) \ : (NAME).singlethread_value) extern void *glthread_tls_get_multithreaded (thread_key_t key); # define glthread_tls_set(KEY, POINTER) \ (thread_in_use () \ ? thr_setspecific ((KEY)->key, (POINTER)) \ : ((KEY)->singlethread_value = (POINTER), 0)) # define glthread_tls_key_destroy(KEY) \ /* Unsupported. */ \ 0 #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include /* ------------------------- gl_tls_key_t datatype ------------------------- */ typedef DWORD gl_tls_key_t; # define glthread_tls_key_init(KEY, DESTRUCTOR) \ /* The destructor is unsupported. */ \ ((*(KEY) = TlsAlloc ()) == (DWORD)-1 ? EAGAIN : ((void) (DESTRUCTOR), 0)) # define gl_tls_get(NAME) \ TlsGetValue (NAME) # define glthread_tls_set(KEY, POINTER) \ (!TlsSetValue (*(KEY), POINTER) ? EINVAL : 0) # define glthread_tls_key_destroy(KEY) \ (!TlsFree (*(KEY)) ? EINVAL : 0) #endif /* ========================================================================= */ #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS) /* Provide dummy implementation if threads are not supported. */ /* ------------------------- gl_tls_key_t datatype ------------------------- */ typedef struct { void *singlethread_value; } gl_tls_key_t; # define glthread_tls_key_init(KEY, DESTRUCTOR) \ ((KEY)->singlethread_value = NULL, \ (void) (DESTRUCTOR), \ 0) # define gl_tls_get(NAME) \ (NAME).singlethread_value # define glthread_tls_set(KEY, POINTER) \ ((KEY)->singlethread_value = (POINTER), 0) # define glthread_tls_key_destroy(KEY) \ 0 #endif /* ========================================================================= */ /* Macros with built-in error handling. */ /* ------------------------- gl_tls_key_t datatype ------------------------- */ #define gl_tls_key_init(NAME, DESTRUCTOR) \ do \ { \ if (glthread_tls_key_init (&NAME, DESTRUCTOR)) \ abort (); \ } \ while (0) #define gl_tls_set(NAME, POINTER) \ do \ { \ if (glthread_tls_set (&NAME, POINTER)) \ abort (); \ } \ while (0) #define gl_tls_key_destroy(NAME) \ do \ { \ if (glthread_tls_key_destroy (&NAME)) \ abort (); \ } \ while (0) /* ========================================================================= */ #endif /* _TLS_H */ libprelude-5.2.0/libmissing/glthread/PaxHeaders.14770/tls.c0000644000000000000000000000011013726163410021543 xustar000000000000000024 mtime=1599661832.544 24 atime=1599661832.743 24 ctime=1599661998.813 libprelude-5.2.0/libmissing/glthread/tls.c0000644000000000000000000000323613726163410020552 0ustar00rootroot00000000000000/* Thread-local storage in multithreaded situations. Copyright (C) 2005-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2005. */ #include #include "glthread/tls.h" /* ========================================================================= */ #if USE_POSIX_THREADS #endif /* ========================================================================= */ #if USE_PTH_THREADS #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ /* ------------------------- gl_tls_key_t datatype ------------------------- */ void * glthread_tls_get_multithreaded (thread_key_t key) { void *value; if (thr_getspecific (key, &value) != 0) abort (); return value; } #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS #endif /* ========================================================================= */ libprelude-5.2.0/libmissing/PaxHeaders.14770/Makefile.in0000644000000000000000000000010713726163515021064 xustar000000000000000024 mtime=1599661901.059 24 atime=1599661945.294 23 ctime=1599661998.75 libprelude-5.2.0/libmissing/Makefile.in0000644000000000000000000045245113726163515020074 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: # gnulib-tool --import \ # --lib=libmissing \ # --source-base=libmissing \ # --m4-base=libmissing/m4 \ # --doc-base=libmissing/doc \ # --tests-base=libmissing/tests \ # --aux-dir=. \ # --with-tests \ # --lgpl=2 \ # --no-conditional-dependencies \ # --libtool \ # --macro-prefix=gl \ # --no-vc-files \ # accept \ # bind \ # close \ # cond \ # connect \ # dup2 \ # fclose \ # fopen \ # ftw \ # getaddrinfo \ # getpass \ # getsockname \ # gettimeofday \ # inet_ntop \ # inet_pton \ # ioctl \ # listen \ # lock \ # lseek \ # memmem \ # minmax \ # pathmax \ # perror \ # poll \ # regex \ # relocatable-lib-lgpl \ # select \ # setsockopt \ # sigprocmask \ # sleep \ # snprintf \ # socket \ # socklen \ # strcase \ # strcasestr \ # strdup-posix \ # strerror \ # strndup \ # strptime \ # strsep \ # sys_stat \ # thread \ # time_r \ # timegm \ # tls \ # uname \ # vsnprintf \ # write VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = libmissing DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am alloca.c \ $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = am__dirstamp = $(am__leading_dot)dirstamp am_libmissing_la_OBJECTS = c-ctype.lo glthread/cond.lo fd-hook.lo \ freading.lo hard-locale.lo localcharset.lo glthread/lock.lo \ malloca.lo sockets.lo stat-time.lo sys_socket.lo \ glthread/thread.lo glthread/threadlib.lo glthread/tls.lo \ unistd.lo wctype-h.lo xsize.lo libmissing_la_OBJECTS = $(am_libmissing_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libmissing_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libmissing_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libmissing_la_SOURCES) $(EXTRA_libmissing_la_SOURCES) DIST_SOURCES = $(libmissing_la_SOURCES) $(EXTRA_libmissing_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ -DNO_XMALLOC DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects # No GNU Make output. SUBDIRS = . tests noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = libmissing.la EXTRA_DIST = m4/gnulib-cache.m4 accept.c w32sock.h alloca.c \ alloca.in.h arpa_inet.in.h assure.h bind.c w32sock.h btowc.c \ close.c connect.c w32sock.h dup2.c errno.in.h fclose.c \ fd-hook.h fflush.c stdio-impl.h filename.h float.c float.in.h \ itold.c fopen.c fpurge.c stdio-impl.h freading.h stdio-impl.h \ fseek.c fseeko.c stdio-impl.h fstat.c stat-w32.c stat-w32.h \ ftell.c ftello.c stdio-impl.h ftw.c gai_strerror.c \ getaddrinfo.c getdelim.c gethostname.c w32sock.h getline.c \ getpass.c getpass.h getsockname.c w32sock.h gettimeofday.c \ hard-locale.h $(top_srcdir)/./config.rpath inet_ntop.c \ inet_pton.c intprops.h ioctl.c w32sock.h langinfo.in.h \ limits.in.h listen.c w32sock.h localcharset.h locale.in.h \ localeconv.c localtime-buffer.c localtime-buffer.h lseek.c \ malloc.c malloca.h mbrtowc.c mbsinit.c mbtowc-impl.h mbtowc.c \ memchr.c memchr.valgrind memmem.c str-two-way.h \ mktime-internal.h mktime.c mktime-internal.h mktime.c \ msvc-inval.c msvc-inval.h msvc-nothrow.c msvc-nothrow.h \ netdb.in.h netinet_in.in.h nl_langinfo.c pathmax.h perror.c \ poll.c poll.in.h pthread_sigmask.c raise.c regcomp.c regex.c \ regex.h regex_internal.c regex_internal.h regexec.c \ relocatable.c relocatable.h relocatable.valgrind select.c \ setsockopt.c w32sock.h signal.in.h sigprocmask.c sleep.c \ _Noreturn.h arg-nonnull.h c++defs.h unused-parameter.h \ warn-on-use.h snprintf.c socket.c w32sock.h w32sock.h \ stat-w32.c stat-w32.h stat.c stat-time.h stdalign.in.h \ stdbool.in.h stddef.in.h stdint.in.h stdio.in.h stdlib.in.h \ strcasecmp.c strncasecmp.c str-two-way.h strcasestr.c strdup.c \ streq.h strerror.c strerror-override.c strerror-override.h \ strerror_r.c string.in.h strings.in.h strndup.c strnlen.c \ strptime.c strsep.c sys_ioctl.in.h sys_select.in.h \ sys_socket.in.h sys_stat.in.h sys_time.in.h sys_types.in.h \ sys_uio.in.h sys_utsname.in.h $(top_srcdir)/./config.rpath \ time.in.h time_r.c mktime-internal.h timegm.c uname.c \ unistd.in.h asnprintf.c float+.h printf-args.c printf-args.h \ printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h \ verify.h vsnprintf.c wchar.in.h wcrtomb.c wctype.in.h write.c \ xalloc-oversized.h BUILT_SOURCES = $(ALLOCA_H) arpa/inet.h $(ERRNO_H) $(FLOAT_H) \ langinfo.h $(LIMITS_H) locale.h netdb.h $(NETINET_IN_H) poll.h \ signal.h $(STDALIGN_H) $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) \ stdio.h stdlib.h string.h strings.h sys/ioctl.h sys/select.h \ sys/socket.h sys/stat.h sys/time.h sys/types.h sys/uio.h \ sys/utsname.h time.h unistd.h wchar.h wctype.h SUFFIXES = MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arpa/inet.h \ arpa/inet.h-t errno.h errno.h-t float.h float.h-t langinfo.h \ langinfo.h-t limits.h limits.h-t locale.h locale.h-t netdb.h \ netdb.h-t netinet/in.h netinet/in.h-t poll.h poll.h-t signal.h \ signal.h-t stdalign.h stdalign.h-t stdbool.h stdbool.h-t \ stddef.h stddef.h-t stdint.h stdint.h-t stdio.h stdio.h-t \ stdlib.h stdlib.h-t string.h string.h-t strings.h strings.h-t \ sys/ioctl.h sys/ioctl.h-t sys/select.h sys/select.h-t \ sys/socket.h sys/socket.h-t sys/stat.h sys/stat.h-t sys/time.h \ sys/time.h-t sys/types.h sys/types.h-t sys/uio.h sys/uio.h-t \ sys/utsname.h sys/utsname.h-t time.h time.h-t unistd.h \ unistd.h-t wchar.h wchar.h-t wctype.h wctype.h-t MOSTLYCLEANDIRS = arpa netinet sys sys sys sys sys sys CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = AM_CFLAGS = libmissing_la_SOURCES = c-ctype.h c-ctype.c glthread/cond.h \ glthread/cond.c fd-hook.c freading.c ftw_.h gettext.h \ hard-locale.c localcharset.c glthread/lock.h glthread/lock.c \ malloca.c minmax.h size_max.h sockets.h sockets.c stat-time.c \ sys_socket.c glthread/thread.h glthread/thread.c \ glthread/threadlib.c glthread/tls.h glthread/tls.c unistd.c \ wctype-h.c xsize.h xsize.c libmissing_la_LIBADD = $(gl_LTLIBOBJS) @LTALLOCA@ libmissing_la_DEPENDENCIES = $(gl_LTLIBOBJS) @LTALLOCA@ EXTRA_libmissing_la_SOURCES = accept.c alloca.c bind.c btowc.c close.c \ connect.c dup2.c fclose.c fflush.c float.c itold.c fopen.c \ fpurge.c fseek.c fseeko.c fstat.c stat-w32.c ftell.c ftello.c \ ftw.c gai_strerror.c getaddrinfo.c getdelim.c gethostname.c \ getline.c getpass.c getsockname.c gettimeofday.c inet_ntop.c \ inet_pton.c ioctl.c listen.c localeconv.c localtime-buffer.c \ lseek.c malloc.c mbrtowc.c mbsinit.c mbtowc.c memchr.c \ memmem.c mktime.c mktime.c msvc-inval.c msvc-nothrow.c \ nl_langinfo.c perror.c poll.c pthread_sigmask.c raise.c \ regcomp.c regex.c regex_internal.c regexec.c relocatable.c \ select.c setsockopt.c sigprocmask.c sleep.c snprintf.c \ socket.c stat-w32.c stat.c strcasecmp.c strncasecmp.c \ strcasestr.c strdup.c strerror.c strerror-override.c \ strerror_r.c strndup.c strnlen.c strptime.c strsep.c time_r.c \ timegm.c uname.c asnprintf.c printf-args.c printf-parse.c \ vasnprintf.c vsnprintf.c wcrtomb.c write.c libmissing_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(GETADDRINFO_LIB) \ $(GETHOSTNAME_LIB) $(HOSTENT_LIB) $(INET_NTOP_LIB) \ $(INET_PTON_LIB) $(LIBSOCKET) $(LIB_POLL) \ $(LIB_PTHREAD_SIGMASK) $(LIB_SELECT) $(LTLIBINTL) \ $(LTLIBMULTITHREAD) $(LTLIBTHREAD) $(SERVENT_LIB) # Use this preprocessor expression to decide whether #include_next works. # Do not rely on a 'configure'-time test for this, since the expression # might appear in an installed header, which is used by some other compiler. HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER) # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H = $(srcdir)/_Noreturn.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. ARG_NONNULL_H = $(srcdir)/arg-nonnull.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. CXXDEFS_H = $(srcdir)/c++defs.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. UNUSED_PARAMETER_H = $(srcdir)/unused-parameter.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. WARN_ON_USE_H = $(srcdir)/warn-on-use.h all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits libmissing/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits libmissing/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } glthread/$(am__dirstamp): @$(MKDIR_P) glthread @: > glthread/$(am__dirstamp) glthread/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) glthread/$(DEPDIR) @: > glthread/$(DEPDIR)/$(am__dirstamp) glthread/cond.lo: glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) glthread/lock.lo: glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) glthread/thread.lo: glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) glthread/threadlib.lo: glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) glthread/tls.lo: glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) libmissing.la: $(libmissing_la_OBJECTS) $(libmissing_la_DEPENDENCIES) $(EXTRA_libmissing_la_DEPENDENCIES) $(AM_V_CCLD)$(libmissing_la_LINK) $(libmissing_la_OBJECTS) $(libmissing_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f glthread/*.$(OBJEXT) -rm -f glthread/*.lo distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accept.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asnprintf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bind.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btowc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connect.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fclose.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-hook.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fopen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpurge.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freading.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseek.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseeko.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftell.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftello.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftw.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gai_strerror.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getaddrinfo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdelim.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gethostname.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getline.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpass.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsockname.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hard-locale.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_ntop.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inet_pton.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/itold.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/listen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localeconv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localtime-buffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lseek.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbrtowc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsinit.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbtowc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memmem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-inval.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-nothrow.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nl_langinfo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perror.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poll.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-args.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-parse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pthread_sigmask.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/raise.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regcomp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex_internal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regexec.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/relocatable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/select.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setsockopt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigprocmask.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snprintf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socket.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockets.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat-time.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat-w32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasestr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-override.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror_r.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strncasecmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strndup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strptime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strsep.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sys_socket.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time_r.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timegm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uname.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasnprintf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vsnprintf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctype-h.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsize.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/cond.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/lock.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/thread.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/threadlib.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/tls.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -rm -rf glthread/.libs glthread/_libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f glthread/$(DEPDIR)/$(am__dirstamp) -rm -f glthread/$(am__dirstamp) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf $(DEPDIR) ./$(DEPDIR) glthread/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf $(DEPDIR) ./$(DEPDIR) glthread/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool mostlyclean-local pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all check install install-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool \ clean-noinstLIBRARIES clean-noinstLTLIBRARIES cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ALLOCA_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_ALLOCA_H_TRUE@ cat $(srcdir)/alloca.in.h; \ @GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \ @GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@ @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one. arpa/inet.h: arpa_inet.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) arpa $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_ARPA_INET_H''@|$(NEXT_ARPA_INET_H)|g' \ -e 's|@''HAVE_ARPA_INET_H''@|$(HAVE_ARPA_INET_H)|g' \ -e 's/@''GNULIB_INET_NTOP''@/$(GNULIB_INET_NTOP)/g' \ -e 's/@''GNULIB_INET_PTON''@/$(GNULIB_INET_PTON)/g' \ -e 's|@''HAVE_DECL_INET_NTOP''@|$(HAVE_DECL_INET_NTOP)|g' \ -e 's|@''HAVE_DECL_INET_PTON''@|$(HAVE_DECL_INET_PTON)|g' \ -e 's|@''REPLACE_INET_NTOP''@|$(REPLACE_INET_NTOP)|g' \ -e 's|@''REPLACE_INET_PTON''@|$(REPLACE_INET_PTON)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/arpa_inet.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that is POSIX compliant. @GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ERRNO_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_ERRNO_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ < $(srcdir)/errno.in.h; \ @GL_GENERATE_ERRNO_H_TRUE@ } > $@-t && \ @GL_GENERATE_ERRNO_H_TRUE@ mv $@-t $@ @GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_FLOAT_H_TRUE@float.h: float.in.h $(top_builddir)/config.status @GL_GENERATE_FLOAT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_FLOAT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_FLOAT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \ @GL_GENERATE_FLOAT_H_TRUE@ < $(srcdir)/float.in.h; \ @GL_GENERATE_FLOAT_H_TRUE@ } > $@-t && \ @GL_GENERATE_FLOAT_H_TRUE@ mv $@-t $@ @GL_GENERATE_FLOAT_H_FALSE@float.h: $(top_builddir)/config.status @GL_GENERATE_FLOAT_H_FALSE@ rm -f $@ # We need the following in order to create an empty placeholder for # when the system doesn't have one. langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \ -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \ -e 's|@''HAVE_LANGINFO_ALTMON''@|$(HAVE_LANGINFO_ALTMON)|g' \ -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \ -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \ -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \ -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/langinfo.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that is compatible with GNU. @GL_GENERATE_LIMITS_H_TRUE@limits.h: limits.in.h $(top_builddir)/config.status @GL_GENERATE_LIMITS_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_LIMITS_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_LIMITS_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ @GL_GENERATE_LIMITS_H_TRUE@ < $(srcdir)/limits.in.h; \ @GL_GENERATE_LIMITS_H_TRUE@ } > $@-t && \ @GL_GENERATE_LIMITS_H_TRUE@ mv $@-t $@ @GL_GENERATE_LIMITS_H_FALSE@limits.h: $(top_builddir)/config.status @GL_GENERATE_LIMITS_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/locale.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. netdb.h: netdb.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_NETDB_H''@|$(NEXT_NETDB_H)|g' \ -e 's|@''HAVE_NETDB_H''@|$(HAVE_NETDB_H)|g' \ -e 's/@''GNULIB_GETADDRINFO''@/$(GNULIB_GETADDRINFO)/g' \ -e 's|@''HAVE_STRUCT_ADDRINFO''@|$(HAVE_STRUCT_ADDRINFO)|g' \ -e 's|@''HAVE_DECL_FREEADDRINFO''@|$(HAVE_DECL_FREEADDRINFO)|g' \ -e 's|@''HAVE_DECL_GAI_STRERROR''@|$(HAVE_DECL_GAI_STRERROR)|g' \ -e 's|@''HAVE_DECL_GETADDRINFO''@|$(HAVE_DECL_GETADDRINFO)|g' \ -e 's|@''HAVE_DECL_GETNAMEINFO''@|$(HAVE_DECL_GETNAMEINFO)|g' \ -e 's|@''REPLACE_GAI_STRERROR''@|$(REPLACE_GAI_STRERROR)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/netdb.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one. @GL_GENERATE_NETINET_IN_H_TRUE@netinet/in.h: netinet_in.in.h $(top_builddir)/config.status @GL_GENERATE_NETINET_IN_H_TRUE@ $(AM_V_at)$(MKDIR_P) netinet @GL_GENERATE_NETINET_IN_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_NETINET_IN_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_NETINET_IN_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_NETINET_IN_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_NETINET_IN_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_NETINET_IN_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_NETINET_IN_H_TRUE@ -e 's|@''NEXT_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \ @GL_GENERATE_NETINET_IN_H_TRUE@ -e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \ @GL_GENERATE_NETINET_IN_H_TRUE@ < $(srcdir)/netinet_in.in.h; \ @GL_GENERATE_NETINET_IN_H_TRUE@ } > $@-t && \ @GL_GENERATE_NETINET_IN_H_TRUE@ mv $@-t $@ @GL_GENERATE_NETINET_IN_H_FALSE@netinet/in.h: $(top_builddir)/config.status @GL_GENERATE_NETINET_IN_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one. poll.h: poll.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_POLL_H''@|$(HAVE_POLL_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_POLL_H''@|$(NEXT_POLL_H)|g' \ -e 's/@''GNULIB_POLL''@/$(GNULIB_POLL)/g' \ -e 's|@''HAVE_POLL''@|$(HAVE_POLL)|g' \ -e 's|@''REPLACE_POLL''@|$(REPLACE_POLL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/poll.in.h; \ } > $@-t && \ mv -f $@-t $@ # We need the following in order to create when the system # doesn't have a complete one. signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \ -e 's/@''GNULIB_PTHREAD_SIGMASK''@/$(GNULIB_PTHREAD_SIGMASK)/g' \ -e 's/@''GNULIB_RAISE''@/$(GNULIB_RAISE)/g' \ -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \ -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \ -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \ -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \ -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \ -e 's|@''HAVE_RAISE''@|$(HAVE_RAISE)|g' \ -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \ -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \ -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \ -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \ -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \ -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \ -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' \ -e 's|@''REPLACE_RAISE''@|$(REPLACE_RAISE)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/signal.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works. @GL_GENERATE_STDALIGN_H_TRUE@stdalign.h: stdalign.in.h $(top_builddir)/config.status @GL_GENERATE_STDALIGN_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDALIGN_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDALIGN_H_TRUE@ cat $(srcdir)/stdalign.in.h; \ @GL_GENERATE_STDALIGN_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDALIGN_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDALIGN_H_FALSE@stdalign.h: $(top_builddir)/config.status @GL_GENERATE_STDALIGN_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works. @GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDBOOL_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDBOOL_H_TRUE@ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ @GL_GENERATE_STDBOOL_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDBOOL_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDDEF_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_STDDEF_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ < $(srcdir)/stddef.in.h; \ @GL_GENERATE_STDDEF_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDDEF_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status @GL_GENERATE_STDINT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDINT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDINT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ < $(srcdir)/stdint.in.h; \ @GL_GENERATE_STDINT_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDINT_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status @GL_GENERATE_STDINT_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \ -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_QSORT_R''@/$(GNULIB_QSORT_R)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALLOCARRAY''@/$(GNULIB_REALLOCARRAY)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GNULIB_EXPLICIT_BZERO)/g' \ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \ -e 's/@''GNULIB_FFS''@/$(GNULIB_FFS)/g' \ -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \ -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \ -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/strings.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # does not have a complete one. sys/ioctl.h: sys_ioctl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_SYS_IOCTL_H''@|$(HAVE_SYS_IOCTL_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_IOCTL_H''@|$(NEXT_SYS_IOCTL_H)|g' \ -e 's/@''GNULIB_IOCTL''@/$(GNULIB_IOCTL)/g' \ -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e 's|@''REPLACE_IOCTL''@|$(REPLACE_IOCTL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_ioctl.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/select.h: sys_select.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SELECT_H''@|$(NEXT_SYS_SELECT_H)|g' \ -e 's|@''HAVE_SYS_SELECT_H''@|$(HAVE_SYS_SELECT_H)|g' \ -e 's/@''GNULIB_PSELECT''@/$(GNULIB_PSELECT)/g' \ -e 's/@''GNULIB_SELECT''@/$(GNULIB_SELECT)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_PSELECT''@|$(HAVE_PSELECT)|g' \ -e 's|@''REPLACE_PSELECT''@|$(REPLACE_PSELECT)|g' \ -e 's|@''REPLACE_SELECT''@|$(REPLACE_SELECT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_select.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_SOCKET''@/$(GNULIB_SOCKET)/g' \ -e 's/@''GNULIB_CONNECT''@/$(GNULIB_CONNECT)/g' \ -e 's/@''GNULIB_ACCEPT''@/$(GNULIB_ACCEPT)/g' \ -e 's/@''GNULIB_BIND''@/$(GNULIB_BIND)/g' \ -e 's/@''GNULIB_GETPEERNAME''@/$(GNULIB_GETPEERNAME)/g' \ -e 's/@''GNULIB_GETSOCKNAME''@/$(GNULIB_GETSOCKNAME)/g' \ -e 's/@''GNULIB_GETSOCKOPT''@/$(GNULIB_GETSOCKOPT)/g' \ -e 's/@''GNULIB_LISTEN''@/$(GNULIB_LISTEN)/g' \ -e 's/@''GNULIB_RECV''@/$(GNULIB_RECV)/g' \ -e 's/@''GNULIB_SEND''@/$(GNULIB_SEND)/g' \ -e 's/@''GNULIB_RECVFROM''@/$(GNULIB_RECVFROM)/g' \ -e 's/@''GNULIB_SENDTO''@/$(GNULIB_SENDTO)/g' \ -e 's/@''GNULIB_SETSOCKOPT''@/$(GNULIB_SETSOCKOPT)/g' \ -e 's/@''GNULIB_SHUTDOWN''@/$(GNULIB_SHUTDOWN)/g' \ -e 's/@''GNULIB_ACCEPT4''@/$(GNULIB_ACCEPT4)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY''@|$(HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY)|g' \ -e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \ -e 's|@''HAVE_ACCEPT4''@|$(HAVE_ACCEPT4)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_socket.in.h; \ } > $@-t && \ mv -f $@-t $@ # We need the following in order to create when the system # has one that is incomplete. sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GNULIB_OVERRIDES_STRUCT_STAT)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_stat.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \ -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \ -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \ -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \ -e 's/@''REPLACE_STRUCT_TIMEVAL''@/$(REPLACE_STRUCT_TIMEVAL)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_time.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/uio.h: sys_uio.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \ -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \ < $(srcdir)/sys_uio.in.h; \ } > $@-t && \ mv -f $@-t $@ # We need the following in order to create when the system # does not have one. sys/utsname.h: sys_utsname.in.h $(top_builddir)/config.status $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_SYS_UTSNAME_H''@/$(HAVE_SYS_UTSNAME_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_UTSNAME_H''@|$(NEXT_SYS_UTSNAME_H)|g' \ -e 's/@''GNULIB_UNAME''@/$(GNULIB_UNAME)/g' \ -e 's|@''HAVE_STRUCT_UTSNAME''@|$(HAVE_STRUCT_UTSNAME)|g' \ -e 's|@''HAVE_UNAME''@|$(HAVE_UNAME)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_utsname.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -e 's/@''GNULIB_CTIME''@/$(GNULIB_CTIME)/g' \ -e 's/@''GNULIB_LOCALTIME''@/$(GNULIB_LOCALTIME)/g' \ -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ -e 's/@''GNULIB_STRFTIME''@/$(GNULIB_STRFTIME)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's/@''GNULIB_TIME_RZ''@/$(GNULIB_TIME_RZ)/g' \ -e 's/@''GNULIB_TZSET''@/$(GNULIB_TZSET)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \ -e 's|@''HAVE_TZSET''@|$(HAVE_TZSET)|g' \ -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \ -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/time.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create an empty placeholder for # when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETPASS''@/$(GNULIB_GETPASS)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TRUNCATE''@/$(GNULIB_TRUNCATE)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ -e 's/@''GNULIB_WCSFTIME''@/$(GNULIB_WCSFTIME)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_WCSFTIME''@|$(HAVE_WCSFTIME)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e 's|@''REPLACE_WCSFTIME''@|$(REPLACE_WCSFTIME)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \ -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \ -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \ -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \ -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/wctype.in.h; \ } > $@-t && \ mv $@-t $@ mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/libmissing/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163410021045 xustar000000000000000024 mtime=1599661832.532 23 atime=1599661832.74 24 ctime=1599661998.752 libprelude-5.2.0/libmissing/Makefile.am0000644000000000000000000025757213726163410020064 0ustar00rootroot00000000000000## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. # Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: # gnulib-tool --import \ # --lib=libmissing \ # --source-base=libmissing \ # --m4-base=libmissing/m4 \ # --doc-base=libmissing/doc \ # --tests-base=libmissing/tests \ # --aux-dir=. \ # --with-tests \ # --lgpl=2 \ # --no-conditional-dependencies \ # --libtool \ # --macro-prefix=gl \ # --no-vc-files \ # accept \ # bind \ # close \ # cond \ # connect \ # dup2 \ # fclose \ # fopen \ # ftw \ # getaddrinfo \ # getpass \ # getsockname \ # gettimeofday \ # inet_ntop \ # inet_pton \ # ioctl \ # listen \ # lock \ # lseek \ # memmem \ # minmax \ # pathmax \ # perror \ # poll \ # regex \ # relocatable-lib-lgpl \ # select \ # setsockopt \ # sigprocmask \ # sleep \ # snprintf \ # socket \ # socklen \ # strcase \ # strcasestr \ # strdup-posix \ # strerror \ # strndup \ # strptime \ # strsep \ # sys_stat \ # thread \ # time_r \ # timegm \ # tls \ # uname \ # vsnprintf \ # write AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = EXTRA_DIST = BUILT_SOURCES = SUFFIXES = MOSTLYCLEANFILES = core *.stackdump MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = # No GNU Make output. SUBDIRS += . tests EXTRA_DIST += m4/gnulib-cache.m4 AM_CPPFLAGS = AM_CFLAGS = noinst_LTLIBRARIES += libmissing.la libmissing_la_SOURCES = libmissing_la_LIBADD = $(gl_LTLIBOBJS) libmissing_la_DEPENDENCIES = $(gl_LTLIBOBJS) EXTRA_libmissing_la_SOURCES = libmissing_la_LDFLAGS = $(AM_LDFLAGS) libmissing_la_LDFLAGS += -no-undefined libmissing_la_LDFLAGS += $(GETADDRINFO_LIB) libmissing_la_LDFLAGS += $(GETHOSTNAME_LIB) libmissing_la_LDFLAGS += $(HOSTENT_LIB) libmissing_la_LDFLAGS += $(INET_NTOP_LIB) libmissing_la_LDFLAGS += $(INET_PTON_LIB) libmissing_la_LDFLAGS += $(LIBSOCKET) libmissing_la_LDFLAGS += $(LIB_POLL) libmissing_la_LDFLAGS += $(LIB_PTHREAD_SIGMASK) libmissing_la_LDFLAGS += $(LIB_SELECT) libmissing_la_LDFLAGS += $(LTLIBINTL) libmissing_la_LDFLAGS += $(LTLIBMULTITHREAD) libmissing_la_LDFLAGS += $(LTLIBTHREAD) libmissing_la_LDFLAGS += $(SERVENT_LIB) ## begin gnulib module absolute-header # Use this preprocessor expression to decide whether #include_next works. # Do not rely on a 'configure'-time test for this, since the expression # might appear in an installed header, which is used by some other compiler. HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER) ## end gnulib module absolute-header ## begin gnulib module accept EXTRA_DIST += accept.c w32sock.h EXTRA_libmissing_la_SOURCES += accept.c ## end gnulib module accept ## begin gnulib module alloca libmissing_la_LIBADD += @LTALLOCA@ libmissing_la_DEPENDENCIES += @LTALLOCA@ EXTRA_DIST += alloca.c EXTRA_libmissing_la_SOURCES += alloca.c ## end gnulib module alloca ## begin gnulib module alloca-opt BUILT_SOURCES += $(ALLOCA_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_ALLOCA_H alloca.h: alloca.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/alloca.in.h; \ } > $@-t && \ mv -f $@-t $@ else alloca.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += alloca.h alloca.h-t EXTRA_DIST += alloca.in.h ## end gnulib module alloca-opt ## begin gnulib module arpa_inet BUILT_SOURCES += arpa/inet.h # We need the following in order to create when the system # doesn't have one. arpa/inet.h: arpa_inet.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) arpa $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_ARPA_INET_H''@|$(NEXT_ARPA_INET_H)|g' \ -e 's|@''HAVE_ARPA_INET_H''@|$(HAVE_ARPA_INET_H)|g' \ -e 's/@''GNULIB_INET_NTOP''@/$(GNULIB_INET_NTOP)/g' \ -e 's/@''GNULIB_INET_PTON''@/$(GNULIB_INET_PTON)/g' \ -e 's|@''HAVE_DECL_INET_NTOP''@|$(HAVE_DECL_INET_NTOP)|g' \ -e 's|@''HAVE_DECL_INET_PTON''@|$(HAVE_DECL_INET_PTON)|g' \ -e 's|@''REPLACE_INET_NTOP''@|$(REPLACE_INET_NTOP)|g' \ -e 's|@''REPLACE_INET_PTON''@|$(REPLACE_INET_PTON)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/arpa_inet.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += arpa/inet.h arpa/inet.h-t MOSTLYCLEANDIRS += arpa EXTRA_DIST += arpa_inet.in.h ## end gnulib module arpa_inet ## begin gnulib module assure EXTRA_DIST += assure.h ## end gnulib module assure ## begin gnulib module bind EXTRA_DIST += bind.c w32sock.h EXTRA_libmissing_la_SOURCES += bind.c ## end gnulib module bind ## begin gnulib module btowc EXTRA_DIST += btowc.c EXTRA_libmissing_la_SOURCES += btowc.c ## end gnulib module btowc ## begin gnulib module c-ctype libmissing_la_SOURCES += c-ctype.h c-ctype.c ## end gnulib module c-ctype ## begin gnulib module close EXTRA_DIST += close.c EXTRA_libmissing_la_SOURCES += close.c ## end gnulib module close ## begin gnulib module cond libmissing_la_SOURCES += glthread/cond.h glthread/cond.c ## end gnulib module cond ## begin gnulib module connect EXTRA_DIST += connect.c w32sock.h EXTRA_libmissing_la_SOURCES += connect.c ## end gnulib module connect ## begin gnulib module dup2 EXTRA_DIST += dup2.c EXTRA_libmissing_la_SOURCES += dup2.c ## end gnulib module dup2 ## begin gnulib module errno BUILT_SOURCES += $(ERRNO_H) # We need the following in order to create when the system # doesn't have one that is POSIX compliant. if GL_GENERATE_ERRNO_H errno.h: errno.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ < $(srcdir)/errno.in.h; \ } > $@-t && \ mv $@-t $@ else errno.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += errno.h errno.h-t EXTRA_DIST += errno.in.h ## end gnulib module errno ## begin gnulib module fclose EXTRA_DIST += fclose.c EXTRA_libmissing_la_SOURCES += fclose.c ## end gnulib module fclose ## begin gnulib module fd-hook libmissing_la_SOURCES += fd-hook.c EXTRA_DIST += fd-hook.h ## end gnulib module fd-hook ## begin gnulib module fflush EXTRA_DIST += fflush.c stdio-impl.h EXTRA_libmissing_la_SOURCES += fflush.c ## end gnulib module fflush ## begin gnulib module filename EXTRA_DIST += filename.h ## end gnulib module filename ## begin gnulib module float BUILT_SOURCES += $(FLOAT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_FLOAT_H float.h: float.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \ < $(srcdir)/float.in.h; \ } > $@-t && \ mv $@-t $@ else float.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += float.h float.h-t EXTRA_DIST += float.c float.in.h itold.c EXTRA_libmissing_la_SOURCES += float.c itold.c ## end gnulib module float ## begin gnulib module fopen EXTRA_DIST += fopen.c EXTRA_libmissing_la_SOURCES += fopen.c ## end gnulib module fopen ## begin gnulib module fpurge EXTRA_DIST += fpurge.c stdio-impl.h EXTRA_libmissing_la_SOURCES += fpurge.c ## end gnulib module fpurge ## begin gnulib module freading libmissing_la_SOURCES += freading.c EXTRA_DIST += freading.h stdio-impl.h ## end gnulib module freading ## begin gnulib module fseek EXTRA_DIST += fseek.c EXTRA_libmissing_la_SOURCES += fseek.c ## end gnulib module fseek ## begin gnulib module fseeko EXTRA_DIST += fseeko.c stdio-impl.h EXTRA_libmissing_la_SOURCES += fseeko.c ## end gnulib module fseeko ## begin gnulib module fstat EXTRA_DIST += fstat.c stat-w32.c stat-w32.h EXTRA_libmissing_la_SOURCES += fstat.c stat-w32.c ## end gnulib module fstat ## begin gnulib module ftell EXTRA_DIST += ftell.c EXTRA_libmissing_la_SOURCES += ftell.c ## end gnulib module ftell ## begin gnulib module ftello EXTRA_DIST += ftello.c stdio-impl.h EXTRA_libmissing_la_SOURCES += ftello.c ## end gnulib module ftello ## begin gnulib module ftw libmissing_la_SOURCES += ftw_.h EXTRA_DIST += ftw.c EXTRA_libmissing_la_SOURCES += ftw.c ## end gnulib module ftw ## begin gnulib module getaddrinfo EXTRA_DIST += gai_strerror.c getaddrinfo.c EXTRA_libmissing_la_SOURCES += gai_strerror.c getaddrinfo.c ## end gnulib module getaddrinfo ## begin gnulib module getdelim EXTRA_DIST += getdelim.c EXTRA_libmissing_la_SOURCES += getdelim.c ## end gnulib module getdelim ## begin gnulib module gethostname EXTRA_DIST += gethostname.c w32sock.h EXTRA_libmissing_la_SOURCES += gethostname.c ## end gnulib module gethostname ## begin gnulib module getline EXTRA_DIST += getline.c EXTRA_libmissing_la_SOURCES += getline.c ## end gnulib module getline ## begin gnulib module getpass EXTRA_DIST += getpass.c getpass.h EXTRA_libmissing_la_SOURCES += getpass.c ## end gnulib module getpass ## begin gnulib module getsockname EXTRA_DIST += getsockname.c w32sock.h EXTRA_libmissing_la_SOURCES += getsockname.c ## end gnulib module getsockname ## begin gnulib module gettext-h libmissing_la_SOURCES += gettext.h ## end gnulib module gettext-h ## begin gnulib module gettimeofday EXTRA_DIST += gettimeofday.c EXTRA_libmissing_la_SOURCES += gettimeofday.c ## end gnulib module gettimeofday ## begin gnulib module hard-locale libmissing_la_SOURCES += hard-locale.c EXTRA_DIST += hard-locale.h ## end gnulib module hard-locale ## begin gnulib module havelib EXTRA_DIST += $(top_srcdir)/./config.rpath ## end gnulib module havelib ## begin gnulib module inet_ntop EXTRA_DIST += inet_ntop.c EXTRA_libmissing_la_SOURCES += inet_ntop.c ## end gnulib module inet_ntop ## begin gnulib module inet_pton EXTRA_DIST += inet_pton.c EXTRA_libmissing_la_SOURCES += inet_pton.c ## end gnulib module inet_pton ## begin gnulib module intprops EXTRA_DIST += intprops.h ## end gnulib module intprops ## begin gnulib module ioctl EXTRA_DIST += ioctl.c w32sock.h EXTRA_libmissing_la_SOURCES += ioctl.c ## end gnulib module ioctl ## begin gnulib module langinfo BUILT_SOURCES += langinfo.h # We need the following in order to create an empty placeholder for # when the system doesn't have one. langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \ -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \ -e 's|@''HAVE_LANGINFO_ALTMON''@|$(HAVE_LANGINFO_ALTMON)|g' \ -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \ -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \ -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \ -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/langinfo.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += langinfo.h langinfo.h-t EXTRA_DIST += langinfo.in.h ## end gnulib module langinfo ## begin gnulib module limits-h BUILT_SOURCES += $(LIMITS_H) # We need the following in order to create when the system # doesn't have one that is compatible with GNU. if GL_GENERATE_LIMITS_H limits.h: limits.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ < $(srcdir)/limits.in.h; \ } > $@-t && \ mv $@-t $@ else limits.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += limits.h limits.h-t EXTRA_DIST += limits.in.h ## end gnulib module limits-h ## begin gnulib module listen EXTRA_DIST += listen.c w32sock.h EXTRA_libmissing_la_SOURCES += listen.c ## end gnulib module listen ## begin gnulib module localcharset libmissing_la_SOURCES += localcharset.c EXTRA_DIST += localcharset.h ## end gnulib module localcharset ## begin gnulib module locale BUILT_SOURCES += locale.h # We need the following in order to create when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/locale.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += locale.h locale.h-t EXTRA_DIST += locale.in.h ## end gnulib module locale ## begin gnulib module localeconv EXTRA_DIST += localeconv.c EXTRA_libmissing_la_SOURCES += localeconv.c ## end gnulib module localeconv ## begin gnulib module localtime-buffer EXTRA_DIST += localtime-buffer.c localtime-buffer.h EXTRA_libmissing_la_SOURCES += localtime-buffer.c ## end gnulib module localtime-buffer ## begin gnulib module lock libmissing_la_SOURCES += glthread/lock.h glthread/lock.c ## end gnulib module lock ## begin gnulib module lseek EXTRA_DIST += lseek.c EXTRA_libmissing_la_SOURCES += lseek.c ## end gnulib module lseek ## begin gnulib module malloc-posix EXTRA_DIST += malloc.c EXTRA_libmissing_la_SOURCES += malloc.c ## end gnulib module malloc-posix ## begin gnulib module malloca libmissing_la_SOURCES += malloca.c EXTRA_DIST += malloca.h ## end gnulib module malloca ## begin gnulib module mbrtowc EXTRA_DIST += mbrtowc.c EXTRA_libmissing_la_SOURCES += mbrtowc.c ## end gnulib module mbrtowc ## begin gnulib module mbsinit EXTRA_DIST += mbsinit.c EXTRA_libmissing_la_SOURCES += mbsinit.c ## end gnulib module mbsinit ## begin gnulib module mbtowc EXTRA_DIST += mbtowc-impl.h mbtowc.c EXTRA_libmissing_la_SOURCES += mbtowc.c ## end gnulib module mbtowc ## begin gnulib module memchr EXTRA_DIST += memchr.c memchr.valgrind EXTRA_libmissing_la_SOURCES += memchr.c ## end gnulib module memchr ## begin gnulib module memmem-simple EXTRA_DIST += memmem.c str-two-way.h EXTRA_libmissing_la_SOURCES += memmem.c ## end gnulib module memmem-simple ## begin gnulib module minmax libmissing_la_SOURCES += minmax.h ## end gnulib module minmax ## begin gnulib module mktime EXTRA_DIST += mktime-internal.h mktime.c EXTRA_libmissing_la_SOURCES += mktime.c ## end gnulib module mktime ## begin gnulib module mktime-internal EXTRA_DIST += mktime-internal.h mktime.c EXTRA_libmissing_la_SOURCES += mktime.c ## end gnulib module mktime-internal ## begin gnulib module msvc-inval EXTRA_DIST += msvc-inval.c msvc-inval.h EXTRA_libmissing_la_SOURCES += msvc-inval.c ## end gnulib module msvc-inval ## begin gnulib module msvc-nothrow EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h EXTRA_libmissing_la_SOURCES += msvc-nothrow.c ## end gnulib module msvc-nothrow ## begin gnulib module netdb BUILT_SOURCES += netdb.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. netdb.h: netdb.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_NETDB_H''@|$(NEXT_NETDB_H)|g' \ -e 's|@''HAVE_NETDB_H''@|$(HAVE_NETDB_H)|g' \ -e 's/@''GNULIB_GETADDRINFO''@/$(GNULIB_GETADDRINFO)/g' \ -e 's|@''HAVE_STRUCT_ADDRINFO''@|$(HAVE_STRUCT_ADDRINFO)|g' \ -e 's|@''HAVE_DECL_FREEADDRINFO''@|$(HAVE_DECL_FREEADDRINFO)|g' \ -e 's|@''HAVE_DECL_GAI_STRERROR''@|$(HAVE_DECL_GAI_STRERROR)|g' \ -e 's|@''HAVE_DECL_GETADDRINFO''@|$(HAVE_DECL_GETADDRINFO)|g' \ -e 's|@''HAVE_DECL_GETNAMEINFO''@|$(HAVE_DECL_GETNAMEINFO)|g' \ -e 's|@''REPLACE_GAI_STRERROR''@|$(REPLACE_GAI_STRERROR)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/netdb.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += netdb.h netdb.h-t EXTRA_DIST += netdb.in.h ## end gnulib module netdb ## begin gnulib module netinet_in BUILT_SOURCES += $(NETINET_IN_H) # We need the following in order to create when the system # doesn't have one. if GL_GENERATE_NETINET_IN_H netinet/in.h: netinet_in.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) netinet $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_NETINET_IN_H''@|$(NEXT_NETINET_IN_H)|g' \ -e 's|@''HAVE_NETINET_IN_H''@|$(HAVE_NETINET_IN_H)|g' \ < $(srcdir)/netinet_in.in.h; \ } > $@-t && \ mv $@-t $@ else netinet/in.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += netinet/in.h netinet/in.h-t MOSTLYCLEANDIRS += netinet EXTRA_DIST += netinet_in.in.h ## end gnulib module netinet_in ## begin gnulib module nl_langinfo EXTRA_DIST += nl_langinfo.c EXTRA_libmissing_la_SOURCES += nl_langinfo.c ## end gnulib module nl_langinfo ## begin gnulib module pathmax EXTRA_DIST += pathmax.h ## end gnulib module pathmax ## begin gnulib module perror EXTRA_DIST += perror.c EXTRA_libmissing_la_SOURCES += perror.c ## end gnulib module perror ## begin gnulib module poll EXTRA_DIST += poll.c EXTRA_libmissing_la_SOURCES += poll.c ## end gnulib module poll ## begin gnulib module poll-h BUILT_SOURCES += poll.h # We need the following in order to create when the system # doesn't have one. poll.h: poll.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_POLL_H''@|$(HAVE_POLL_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_POLL_H''@|$(NEXT_POLL_H)|g' \ -e 's/@''GNULIB_POLL''@/$(GNULIB_POLL)/g' \ -e 's|@''HAVE_POLL''@|$(HAVE_POLL)|g' \ -e 's|@''REPLACE_POLL''@|$(REPLACE_POLL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/poll.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += poll.h poll.h-t EXTRA_DIST += poll.in.h ## end gnulib module poll-h ## begin gnulib module pthread_sigmask EXTRA_DIST += pthread_sigmask.c EXTRA_libmissing_la_SOURCES += pthread_sigmask.c ## end gnulib module pthread_sigmask ## begin gnulib module raise EXTRA_DIST += raise.c EXTRA_libmissing_la_SOURCES += raise.c ## end gnulib module raise ## begin gnulib module regex EXTRA_DIST += regcomp.c regex.c regex.h regex_internal.c regex_internal.h regexec.c EXTRA_libmissing_la_SOURCES += regcomp.c regex.c regex_internal.c regexec.c ## end gnulib module regex ## begin gnulib module relocatable-lib-lgpl DEFS += -DNO_XMALLOC EXTRA_DIST += relocatable.c relocatable.h relocatable.valgrind EXTRA_libmissing_la_SOURCES += relocatable.c ## end gnulib module relocatable-lib-lgpl ## begin gnulib module select EXTRA_DIST += select.c EXTRA_libmissing_la_SOURCES += select.c ## end gnulib module select ## begin gnulib module setsockopt EXTRA_DIST += setsockopt.c w32sock.h EXTRA_libmissing_la_SOURCES += setsockopt.c ## end gnulib module setsockopt ## begin gnulib module signal-h BUILT_SOURCES += signal.h # We need the following in order to create when the system # doesn't have a complete one. signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \ -e 's/@''GNULIB_PTHREAD_SIGMASK''@/$(GNULIB_PTHREAD_SIGMASK)/g' \ -e 's/@''GNULIB_RAISE''@/$(GNULIB_RAISE)/g' \ -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \ -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \ -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \ -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \ -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \ -e 's|@''HAVE_RAISE''@|$(HAVE_RAISE)|g' \ -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \ -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \ -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \ -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \ -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \ -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \ -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' \ -e 's|@''REPLACE_RAISE''@|$(REPLACE_RAISE)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/signal.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += signal.h signal.h-t EXTRA_DIST += signal.in.h ## end gnulib module signal-h ## begin gnulib module sigprocmask EXTRA_DIST += sigprocmask.c EXTRA_libmissing_la_SOURCES += sigprocmask.c ## end gnulib module sigprocmask ## begin gnulib module size_max libmissing_la_SOURCES += size_max.h ## end gnulib module size_max ## begin gnulib module sleep EXTRA_DIST += sleep.c EXTRA_libmissing_la_SOURCES += sleep.c ## end gnulib module sleep ## begin gnulib module snippet/_Noreturn # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H=$(srcdir)/_Noreturn.h EXTRA_DIST += _Noreturn.h ## end gnulib module snippet/_Noreturn ## begin gnulib module snippet/arg-nonnull # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. ARG_NONNULL_H=$(srcdir)/arg-nonnull.h EXTRA_DIST += arg-nonnull.h ## end gnulib module snippet/arg-nonnull ## begin gnulib module snippet/c++defs # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. CXXDEFS_H=$(srcdir)/c++defs.h EXTRA_DIST += c++defs.h ## end gnulib module snippet/c++defs ## begin gnulib module snippet/unused-parameter # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. UNUSED_PARAMETER_H=$(srcdir)/unused-parameter.h EXTRA_DIST += unused-parameter.h ## end gnulib module snippet/unused-parameter ## begin gnulib module snippet/warn-on-use # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. WARN_ON_USE_H=$(srcdir)/warn-on-use.h EXTRA_DIST += warn-on-use.h ## end gnulib module snippet/warn-on-use ## begin gnulib module snprintf EXTRA_DIST += snprintf.c EXTRA_libmissing_la_SOURCES += snprintf.c ## end gnulib module snprintf ## begin gnulib module socket EXTRA_DIST += socket.c w32sock.h EXTRA_libmissing_la_SOURCES += socket.c ## end gnulib module socket ## begin gnulib module sockets libmissing_la_SOURCES += sockets.h sockets.c EXTRA_DIST += w32sock.h ## end gnulib module sockets ## begin gnulib module stat EXTRA_DIST += stat-w32.c stat-w32.h stat.c EXTRA_libmissing_la_SOURCES += stat-w32.c stat.c ## end gnulib module stat ## begin gnulib module stat-time libmissing_la_SOURCES += stat-time.c EXTRA_DIST += stat-time.h ## end gnulib module stat-time ## begin gnulib module stdalign BUILT_SOURCES += $(STDALIGN_H) # We need the following in order to create when the system # doesn't have one that works. if GL_GENERATE_STDALIGN_H stdalign.h: stdalign.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/stdalign.in.h; \ } > $@-t && \ mv $@-t $@ else stdalign.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdalign.h stdalign.h-t EXTRA_DIST += stdalign.in.h ## end gnulib module stdalign ## begin gnulib module stdbool BUILT_SOURCES += $(STDBOOL_H) # We need the following in order to create when the system # doesn't have one that works. if GL_GENERATE_STDBOOL_H stdbool.h: stdbool.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ } > $@-t && \ mv $@-t $@ else stdbool.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdbool.h stdbool.h-t EXTRA_DIST += stdbool.in.h ## end gnulib module stdbool ## begin gnulib module stddef BUILT_SOURCES += $(STDDEF_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDDEF_H stddef.h: stddef.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ < $(srcdir)/stddef.in.h; \ } > $@-t && \ mv $@-t $@ else stddef.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stddef.h stddef.h-t EXTRA_DIST += stddef.in.h ## end gnulib module stddef ## begin gnulib module stdint BUILT_SOURCES += $(STDINT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDINT_H stdint.h: stdint.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ < $(srcdir)/stdint.in.h; \ } > $@-t && \ mv $@-t $@ else stdint.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdint.h stdint.h-t EXTRA_DIST += stdint.in.h ## end gnulib module stdint ## begin gnulib module stdio BUILT_SOURCES += stdio.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \ -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdio.h stdio.h-t EXTRA_DIST += stdio.in.h ## end gnulib module stdio ## begin gnulib module stdlib BUILT_SOURCES += stdlib.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_QSORT_R''@/$(GNULIB_QSORT_R)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALLOCARRAY''@/$(GNULIB_REALLOCARRAY)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdlib.h stdlib.h-t EXTRA_DIST += stdlib.in.h ## end gnulib module stdlib ## begin gnulib module strcase EXTRA_DIST += strcasecmp.c strncasecmp.c EXTRA_libmissing_la_SOURCES += strcasecmp.c strncasecmp.c ## end gnulib module strcase ## begin gnulib module strcasestr-simple EXTRA_DIST += str-two-way.h strcasestr.c EXTRA_libmissing_la_SOURCES += strcasestr.c ## end gnulib module strcasestr-simple ## begin gnulib module strdup-posix EXTRA_DIST += strdup.c EXTRA_libmissing_la_SOURCES += strdup.c ## end gnulib module strdup-posix ## begin gnulib module streq EXTRA_DIST += streq.h ## end gnulib module streq ## begin gnulib module strerror EXTRA_DIST += strerror.c EXTRA_libmissing_la_SOURCES += strerror.c ## end gnulib module strerror ## begin gnulib module strerror-override EXTRA_DIST += strerror-override.c strerror-override.h EXTRA_libmissing_la_SOURCES += strerror-override.c ## end gnulib module strerror-override ## begin gnulib module strerror_r-posix EXTRA_DIST += strerror_r.c EXTRA_libmissing_la_SOURCES += strerror_r.c ## end gnulib module strerror_r-posix ## begin gnulib module string BUILT_SOURCES += string.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GNULIB_EXPLICIT_BZERO)/g' \ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += string.h string.h-t EXTRA_DIST += string.in.h ## end gnulib module string ## begin gnulib module strings BUILT_SOURCES += strings.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \ -e 's/@''GNULIB_FFS''@/$(GNULIB_FFS)/g' \ -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \ -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \ -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/strings.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += strings.h strings.h-t EXTRA_DIST += strings.in.h ## end gnulib module strings ## begin gnulib module strndup EXTRA_DIST += strndup.c EXTRA_libmissing_la_SOURCES += strndup.c ## end gnulib module strndup ## begin gnulib module strnlen EXTRA_DIST += strnlen.c EXTRA_libmissing_la_SOURCES += strnlen.c ## end gnulib module strnlen ## begin gnulib module strptime EXTRA_DIST += strptime.c EXTRA_libmissing_la_SOURCES += strptime.c ## end gnulib module strptime ## begin gnulib module strsep EXTRA_DIST += strsep.c EXTRA_libmissing_la_SOURCES += strsep.c ## end gnulib module strsep ## begin gnulib module sys_ioctl BUILT_SOURCES += sys/ioctl.h # We need the following in order to create when the system # does not have a complete one. sys/ioctl.h: sys_ioctl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_SYS_IOCTL_H''@|$(HAVE_SYS_IOCTL_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_IOCTL_H''@|$(NEXT_SYS_IOCTL_H)|g' \ -e 's/@''GNULIB_IOCTL''@/$(GNULIB_IOCTL)/g' \ -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e 's|@''REPLACE_IOCTL''@|$(REPLACE_IOCTL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_ioctl.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/ioctl.h sys/ioctl.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_ioctl.in.h ## end gnulib module sys_ioctl ## begin gnulib module sys_select BUILT_SOURCES += sys/select.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/select.h: sys_select.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SELECT_H''@|$(NEXT_SYS_SELECT_H)|g' \ -e 's|@''HAVE_SYS_SELECT_H''@|$(HAVE_SYS_SELECT_H)|g' \ -e 's/@''GNULIB_PSELECT''@/$(GNULIB_PSELECT)/g' \ -e 's/@''GNULIB_SELECT''@/$(GNULIB_SELECT)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_PSELECT''@|$(HAVE_PSELECT)|g' \ -e 's|@''REPLACE_PSELECT''@|$(REPLACE_PSELECT)|g' \ -e 's|@''REPLACE_SELECT''@|$(REPLACE_SELECT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_select.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/select.h sys/select.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_select.in.h ## end gnulib module sys_select ## begin gnulib module sys_socket BUILT_SOURCES += sys/socket.h libmissing_la_SOURCES += sys_socket.c # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_SOCKET''@/$(GNULIB_SOCKET)/g' \ -e 's/@''GNULIB_CONNECT''@/$(GNULIB_CONNECT)/g' \ -e 's/@''GNULIB_ACCEPT''@/$(GNULIB_ACCEPT)/g' \ -e 's/@''GNULIB_BIND''@/$(GNULIB_BIND)/g' \ -e 's/@''GNULIB_GETPEERNAME''@/$(GNULIB_GETPEERNAME)/g' \ -e 's/@''GNULIB_GETSOCKNAME''@/$(GNULIB_GETSOCKNAME)/g' \ -e 's/@''GNULIB_GETSOCKOPT''@/$(GNULIB_GETSOCKOPT)/g' \ -e 's/@''GNULIB_LISTEN''@/$(GNULIB_LISTEN)/g' \ -e 's/@''GNULIB_RECV''@/$(GNULIB_RECV)/g' \ -e 's/@''GNULIB_SEND''@/$(GNULIB_SEND)/g' \ -e 's/@''GNULIB_RECVFROM''@/$(GNULIB_RECVFROM)/g' \ -e 's/@''GNULIB_SENDTO''@/$(GNULIB_SENDTO)/g' \ -e 's/@''GNULIB_SETSOCKOPT''@/$(GNULIB_SETSOCKOPT)/g' \ -e 's/@''GNULIB_SHUTDOWN''@/$(GNULIB_SHUTDOWN)/g' \ -e 's/@''GNULIB_ACCEPT4''@/$(GNULIB_ACCEPT4)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY''@|$(HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY)|g' \ -e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \ -e 's|@''HAVE_ACCEPT4''@|$(HAVE_ACCEPT4)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_socket.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += sys/socket.h sys/socket.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_socket.in.h ## end gnulib module sys_socket ## begin gnulib module sys_stat BUILT_SOURCES += sys/stat.h # We need the following in order to create when the system # has one that is incomplete. sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GNULIB_OVERRIDES_STRUCT_STAT)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_stat.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_stat.in.h ## end gnulib module sys_stat ## begin gnulib module sys_time BUILT_SOURCES += sys/time.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \ -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \ -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \ -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \ -e 's/@''REPLACE_STRUCT_TIMEVAL''@/$(REPLACE_STRUCT_TIMEVAL)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_time.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/time.h sys/time.h-t EXTRA_DIST += sys_time.in.h ## end gnulib module sys_time ## begin gnulib module sys_types BUILT_SOURCES += sys/types.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/types.h sys/types.h-t EXTRA_DIST += sys_types.in.h ## end gnulib module sys_types ## begin gnulib module sys_uio BUILT_SOURCES += sys/uio.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/uio.h: sys_uio.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \ -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \ < $(srcdir)/sys_uio.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += sys/uio.h sys/uio.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_uio.in.h ## end gnulib module sys_uio ## begin gnulib module sys_utsname BUILT_SOURCES += sys/utsname.h # We need the following in order to create when the system # does not have one. sys/utsname.h: sys_utsname.in.h $(top_builddir)/config.status $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_SYS_UTSNAME_H''@/$(HAVE_SYS_UTSNAME_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_UTSNAME_H''@|$(NEXT_SYS_UTSNAME_H)|g' \ -e 's/@''GNULIB_UNAME''@/$(GNULIB_UNAME)/g' \ -e 's|@''HAVE_STRUCT_UTSNAME''@|$(HAVE_STRUCT_UTSNAME)|g' \ -e 's|@''HAVE_UNAME''@|$(HAVE_UNAME)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_utsname.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/utsname.h sys/utsname.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_utsname.in.h ## end gnulib module sys_utsname ## begin gnulib module thread libmissing_la_SOURCES += glthread/thread.h glthread/thread.c ## end gnulib module thread ## begin gnulib module threadlib libmissing_la_SOURCES += glthread/threadlib.c EXTRA_DIST += $(top_srcdir)/./config.rpath ## end gnulib module threadlib ## begin gnulib module time BUILT_SOURCES += time.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -e 's/@''GNULIB_CTIME''@/$(GNULIB_CTIME)/g' \ -e 's/@''GNULIB_LOCALTIME''@/$(GNULIB_LOCALTIME)/g' \ -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ -e 's/@''GNULIB_STRFTIME''@/$(GNULIB_STRFTIME)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's/@''GNULIB_TIME_RZ''@/$(GNULIB_TIME_RZ)/g' \ -e 's/@''GNULIB_TZSET''@/$(GNULIB_TZSET)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \ -e 's|@''HAVE_TZSET''@|$(HAVE_TZSET)|g' \ -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \ -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/time.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += time.h time.h-t EXTRA_DIST += time.in.h ## end gnulib module time ## begin gnulib module time_r EXTRA_DIST += time_r.c EXTRA_libmissing_la_SOURCES += time_r.c ## end gnulib module time_r ## begin gnulib module timegm EXTRA_DIST += mktime-internal.h timegm.c EXTRA_libmissing_la_SOURCES += timegm.c ## end gnulib module timegm ## begin gnulib module tls libmissing_la_SOURCES += glthread/tls.h glthread/tls.c ## end gnulib module tls ## begin gnulib module uname EXTRA_DIST += uname.c EXTRA_libmissing_la_SOURCES += uname.c ## end gnulib module uname ## begin gnulib module unistd BUILT_SOURCES += unistd.h libmissing_la_SOURCES += unistd.c # We need the following in order to create an empty placeholder for # when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETPASS''@/$(GNULIB_GETPASS)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TRUNCATE''@/$(GNULIB_TRUNCATE)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += unistd.h unistd.h-t EXTRA_DIST += unistd.in.h ## end gnulib module unistd ## begin gnulib module vasnprintf EXTRA_DIST += asnprintf.c float+.h printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h EXTRA_libmissing_la_SOURCES += asnprintf.c printf-args.c printf-parse.c vasnprintf.c ## end gnulib module vasnprintf ## begin gnulib module verify EXTRA_DIST += verify.h ## end gnulib module verify ## begin gnulib module vsnprintf EXTRA_DIST += vsnprintf.c EXTRA_libmissing_la_SOURCES += vsnprintf.c ## end gnulib module vsnprintf ## begin gnulib module wchar BUILT_SOURCES += wchar.h # We need the following in order to create when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ -e 's/@''GNULIB_WCSFTIME''@/$(GNULIB_WCSFTIME)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_WCSFTIME''@|$(HAVE_WCSFTIME)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e 's|@''REPLACE_WCSFTIME''@|$(REPLACE_WCSFTIME)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += wchar.h wchar.h-t EXTRA_DIST += wchar.in.h ## end gnulib module wchar ## begin gnulib module wcrtomb EXTRA_DIST += wcrtomb.c EXTRA_libmissing_la_SOURCES += wcrtomb.c ## end gnulib module wcrtomb ## begin gnulib module wctype-h BUILT_SOURCES += wctype.h libmissing_la_SOURCES += wctype-h.c # We need the following in order to create when the system # doesn't have one that works with the given compiler. wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \ -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \ -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \ -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \ -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/wctype.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += wctype.h wctype.h-t EXTRA_DIST += wctype.in.h ## end gnulib module wctype-h ## begin gnulib module write EXTRA_DIST += write.c EXTRA_libmissing_la_SOURCES += write.c ## end gnulib module write ## begin gnulib module xalloc-oversized EXTRA_DIST += xalloc-oversized.h ## end gnulib module xalloc-oversized ## begin gnulib module xsize libmissing_la_SOURCES += xsize.h xsize.c ## end gnulib module xsize mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : libprelude-5.2.0/libmissing/PaxHeaders.14770/alloca.c0000644000000000000000000000010713726163410020410 xustar000000000000000024 mtime=1599661832.533 23 atime=1599661832.74 24 ctime=1599661998.755 libprelude-5.2.0/libmissing/alloca.c0000644000000000000000000003445413726163410017417 0ustar00rootroot00000000000000/* alloca.c -- allocate automatically reclaimed memory (Mostly) portable public-domain implementation -- D A Gwyn This implementation of the PWB library alloca function, which is used to allocate space off the run-time stack so that it is automatically reclaimed upon procedure exit, was inspired by discussions with J. Q. Johnson of Cornell. J.Otto Tennant contributed the Cray support. There are some preprocessor constants that can be defined when compiling for your specific system, for improved efficiency; however, the defaults should be okay. The general concept of this implementation is to keep track of all alloca-allocated blocks, and reclaim any that are found to be deeper in the stack than the current invocation. This heuristic does not reclaim storage as soon as it becomes invalid, but it will do so eventually. As a special case, alloca(0) reclaims storage without allocating any. It is a good idea to use alloca(0) in your main control loop, etc. to force garbage collection. */ #include #include #include #include #ifdef emacs # include "lisp.h" # include "blockinput.h" # ifdef EMACS_FREE # undef free # define free EMACS_FREE # endif #else # define memory_full() abort () #endif /* If compiling with GCC 2, this file's not needed. */ #if !defined (__GNUC__) || __GNUC__ < 2 /* If someone has defined alloca as a macro, there must be some other way alloca is supposed to work. */ # ifndef alloca # ifdef emacs # ifdef static /* actually, only want this if static is defined as "" -- this is for usg, in which emacs must undefine static in order to make unexec workable */ # ifndef STACK_DIRECTION you lose -- must know STACK_DIRECTION at compile-time /* Using #error here is not wise since this file should work for old and obscure compilers. */ # endif /* STACK_DIRECTION undefined */ # endif /* static */ # endif /* emacs */ /* If your stack is a linked list of frames, you have to provide an "address metric" ADDRESS_FUNCTION macro. */ # if defined (CRAY) && defined (CRAY_STACKSEG_END) long i00afunc (); # define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg)) # else # define ADDRESS_FUNCTION(arg) &(arg) # endif /* Define STACK_DIRECTION if you know the direction of stack growth for your system; otherwise it will be automatically deduced at run-time. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ # ifndef STACK_DIRECTION # define STACK_DIRECTION 0 /* Direction unknown. */ # endif # if STACK_DIRECTION != 0 # define STACK_DIR STACK_DIRECTION /* Known at compile-time. */ # else /* STACK_DIRECTION == 0; need run-time code. */ static int stack_dir; /* 1 or -1 once known. */ # define STACK_DIR stack_dir static int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } # endif /* STACK_DIRECTION == 0 */ /* An "alloca header" is used to: (a) chain together all alloca'ed blocks; (b) keep track of stack depth. It is very important that sizeof(header) agree with malloc alignment chunk size. The following default should work okay. */ # ifndef ALIGN_SIZE # define ALIGN_SIZE sizeof(double) # endif typedef union hdr { char align[ALIGN_SIZE]; /* To force sizeof(header). */ struct { union hdr *next; /* For chaining headers. */ char *deep; /* For stack depth measure. */ } h; } header; static header *last_alloca_header = NULL; /* -> last alloca header. */ /* Return a pointer to at least SIZE bytes of storage, which will be automatically reclaimed upon exit from the procedure that called alloca. Originally, this space was supposed to be taken from the current stack frame of the caller, but that method cannot be made to work for some implementations of C, for example under Gould's UTX/32. */ void * alloca (size_t size) { auto char probe; /* Probes stack depth: */ register char *depth = ADDRESS_FUNCTION (probe); # if STACK_DIRECTION == 0 if (STACK_DIR == 0) /* Unknown growth direction. */ STACK_DIR = find_stack_direction (NULL, (size & 1) + 20); # endif /* Reclaim garbage, defined as all alloca'd storage that was allocated from deeper in the stack than currently. */ { register header *hp; /* Traverses linked list. */ # ifdef emacs BLOCK_INPUT; # endif for (hp = last_alloca_header; hp != NULL;) if ((STACK_DIR > 0 && hp->h.deep > depth) || (STACK_DIR < 0 && hp->h.deep < depth)) { register header *np = hp->h.next; free (hp); /* Collect garbage. */ hp = np; /* -> next header. */ } else break; /* Rest are not deeper. */ last_alloca_header = hp; /* -> last valid storage. */ # ifdef emacs UNBLOCK_INPUT; # endif } if (size == 0) return NULL; /* No allocation required. */ /* Allocate combined header + user data storage. */ { /* Address of header. */ register header *new; size_t combined_size = sizeof (header) + size; if (combined_size < sizeof (header)) memory_full (); new = malloc (combined_size); if (! new) memory_full (); new->h.next = last_alloca_header; new->h.deep = depth; last_alloca_header = new; /* User storage begins just after header. */ return (void *) (new + 1); } } # if defined (CRAY) && defined (CRAY_STACKSEG_END) # ifdef DEBUG_I00AFUNC # include # endif # ifndef CRAY_STACK # define CRAY_STACK # ifndef CRAY2 /* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */ struct stack_control_header { long shgrow:32; /* Number of times stack has grown. */ long shaseg:32; /* Size of increments to stack. */ long shhwm:32; /* High water mark of stack. */ long shsize:32; /* Current size of stack (all segments). */ }; /* The stack segment linkage control information occurs at the high-address end of a stack segment. (The stack grows from low addresses to high addresses.) The initial part of the stack segment linkage control information is 0200 (octal) words. This provides for register storage for the routine which overflows the stack. */ struct stack_segment_linkage { long ss[0200]; /* 0200 overflow words. */ long sssize:32; /* Number of words in this segment. */ long ssbase:32; /* Offset to stack base. */ long:32; long sspseg:32; /* Offset to linkage control of previous segment of stack. */ long:32; long sstcpt:32; /* Pointer to task common address block. */ long sscsnm; /* Private control structure number for microtasking. */ long ssusr1; /* Reserved for user. */ long ssusr2; /* Reserved for user. */ long sstpid; /* Process ID for pid based multi-tasking. */ long ssgvup; /* Pointer to multitasking thread giveup. */ long sscray[7]; /* Reserved for Cray Research. */ long ssa0; long ssa1; long ssa2; long ssa3; long ssa4; long ssa5; long ssa6; long ssa7; long sss0; long sss1; long sss2; long sss3; long sss4; long sss5; long sss6; long sss7; }; # else /* CRAY2 */ /* The following structure defines the vector of words returned by the STKSTAT library routine. */ struct stk_stat { long now; /* Current total stack size. */ long maxc; /* Amount of contiguous space which would be required to satisfy the maximum stack demand to date. */ long high_water; /* Stack high-water mark. */ long overflows; /* Number of stack overflow ($STKOFEN) calls. */ long hits; /* Number of internal buffer hits. */ long extends; /* Number of block extensions. */ long stko_mallocs; /* Block allocations by $STKOFEN. */ long underflows; /* Number of stack underflow calls ($STKRETN). */ long stko_free; /* Number of deallocations by $STKRETN. */ long stkm_free; /* Number of deallocations by $STKMRET. */ long segments; /* Current number of stack segments. */ long maxs; /* Maximum number of stack segments so far. */ long pad_size; /* Stack pad size. */ long current_address; /* Current stack segment address. */ long current_size; /* Current stack segment size. This number is actually corrupted by STKSTAT to include the fifteen word trailer area. */ long initial_address; /* Address of initial segment. */ long initial_size; /* Size of initial segment. */ }; /* The following structure describes the data structure which trails any stack segment. I think that the description in 'asdef' is out of date. I only describe the parts that I am sure about. */ struct stk_trailer { long this_address; /* Address of this block. */ long this_size; /* Size of this block (does not include this trailer). */ long unknown2; long unknown3; long link; /* Address of trailer block of previous segment. */ long unknown5; long unknown6; long unknown7; long unknown8; long unknown9; long unknown10; long unknown11; long unknown12; long unknown13; long unknown14; }; # endif /* CRAY2 */ # endif /* not CRAY_STACK */ # ifdef CRAY2 /* Determine a "stack measure" for an arbitrary ADDRESS. I doubt that "lint" will like this much. */ static long i00afunc (long *address) { struct stk_stat status; struct stk_trailer *trailer; long *block, size; long result = 0; /* We want to iterate through all of the segments. The first step is to get the stack status structure. We could do this more quickly and more directly, perhaps, by referencing the $LM00 common block, but I know that this works. */ STKSTAT (&status); /* Set up the iteration. */ trailer = (struct stk_trailer *) (status.current_address + status.current_size - 15); /* There must be at least one stack segment. Therefore it is a fatal error if "trailer" is null. */ if (trailer == 0) abort (); /* Discard segments that do not contain our argument address. */ while (trailer != 0) { block = (long *) trailer->this_address; size = trailer->this_size; if (block == 0 || size == 0) abort (); trailer = (struct stk_trailer *) trailer->link; if ((block <= address) && (address < (block + size))) break; } /* Set the result to the offset in this segment and add the sizes of all predecessor segments. */ result = address - block; if (trailer == 0) { return result; } do { if (trailer->this_size <= 0) abort (); result += trailer->this_size; trailer = (struct stk_trailer *) trailer->link; } while (trailer != 0); /* We are done. Note that if you present a bogus address (one not in any segment), you will get a different number back, formed from subtracting the address of the first block. This is probably not what you want. */ return (result); } # else /* not CRAY2 */ /* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP. Determine the number of the cell within the stack, given the address of the cell. The purpose of this routine is to linearize, in some sense, stack addresses for alloca. */ static long i00afunc (long address) { long stkl = 0; long size, pseg, this_segment, stack; long result = 0; struct stack_segment_linkage *ssptr; /* Register B67 contains the address of the end of the current stack segment. If you (as a subprogram) store your registers on the stack and find that you are past the contents of B67, you have overflowed the segment. B67 also points to the stack segment linkage control area, which is what we are really interested in. */ stkl = CRAY_STACKSEG_END (); ssptr = (struct stack_segment_linkage *) stkl; /* If one subtracts 'size' from the end of the segment, one has the address of the first word of the segment. If this is not the first segment, 'pseg' will be nonzero. */ pseg = ssptr->sspseg; size = ssptr->sssize; this_segment = stkl - size; /* It is possible that calling this routine itself caused a stack overflow. Discard stack segments which do not contain the target address. */ while (!(this_segment <= address && address <= stkl)) { # ifdef DEBUG_I00AFUNC fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl); # endif if (pseg == 0) break; stkl = stkl - pseg; ssptr = (struct stack_segment_linkage *) stkl; size = ssptr->sssize; pseg = ssptr->sspseg; this_segment = stkl - size; } result = address - this_segment; /* If you subtract pseg from the current end of the stack, you get the address of the previous stack segment's end. This seems a little convoluted to me, but I'll bet you save a cycle somewhere. */ while (pseg != 0) { # ifdef DEBUG_I00AFUNC fprintf (stderr, "%011o %011o\n", pseg, size); # endif stkl = stkl - pseg; ssptr = (struct stack_segment_linkage *) stkl; size = ssptr->sssize; pseg = ssptr->sspseg; result += size; } return (result); } # endif /* not CRAY2 */ # endif /* CRAY */ # endif /* no alloca */ #endif /* not GCC 2 */ libprelude-5.2.0/libmissing/PaxHeaders.14770/c-ctype.h0000644000000000000000000000011013726163410020520 xustar000000000000000024 mtime=1599661832.535 24 atime=1599661832.741 24 ctime=1599661998.757 libprelude-5.2.0/libmissing/c-ctype.h0000644000000000000000000002243613726163410017532 0ustar00rootroot00000000000000/* Character handling in C locale. These functions work like the corresponding functions in , except that they have the C (POSIX) locale hardwired, whereas the functions' behaviour depends on the current locale set via setlocale. Copyright (C) 2000-2003, 2006, 2008-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef C_CTYPE_H #define C_CTYPE_H #include #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef C_CTYPE_INLINE # define C_CTYPE_INLINE _GL_INLINE #endif #ifdef __cplusplus extern "C" { #endif /* The functions defined in this file assume the "C" locale and a character set without diacritics (ASCII-US or EBCDIC-US or something like that). Even if the "C" locale on a particular system is an extension of the ASCII character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it is ISO-8859-1), the functions in this file recognize only the ASCII characters. */ #if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) /* The character set is ASCII or one of its variants or extensions, not EBCDIC. Testing the value of '\n' and '\r' is not relevant. */ # define C_CTYPE_ASCII 1 #elif ! (' ' == '\x40' && '0' == '\xf0' \ && 'A' == '\xc1' && 'J' == '\xd1' && 'S' == '\xe2' \ && 'a' == '\x81' && 'j' == '\x91' && 's' == '\xa2') # error "Only ASCII and EBCDIC are supported" #endif #if 'A' < 0 # error "EBCDIC and char is signed -- not supported" #endif /* Cases for control characters. */ #define _C_CTYPE_CNTRL \ case '\a': case '\b': case '\f': case '\n': \ case '\r': case '\t': case '\v': \ _C_CTYPE_OTHER_CNTRL /* ASCII control characters other than those with \-letter escapes. */ #if C_CTYPE_ASCII # define _C_CTYPE_OTHER_CNTRL \ case '\x00': case '\x01': case '\x02': case '\x03': \ case '\x04': case '\x05': case '\x06': case '\x0e': \ case '\x0f': case '\x10': case '\x11': case '\x12': \ case '\x13': case '\x14': case '\x15': case '\x16': \ case '\x17': case '\x18': case '\x19': case '\x1a': \ case '\x1b': case '\x1c': case '\x1d': case '\x1e': \ case '\x1f': case '\x7f' #else /* Use EBCDIC code page 1047's assignments for ASCII control chars; assume all EBCDIC code pages agree about these assignments. */ # define _C_CTYPE_OTHER_CNTRL \ case '\x00': case '\x01': case '\x02': case '\x03': \ case '\x07': case '\x0e': case '\x0f': case '\x10': \ case '\x11': case '\x12': case '\x13': case '\x18': \ case '\x19': case '\x1c': case '\x1d': case '\x1e': \ case '\x1f': case '\x26': case '\x27': case '\x2d': \ case '\x2e': case '\x32': case '\x37': case '\x3c': \ case '\x3d': case '\x3f' #endif /* Cases for lowercase hex letters, and lowercase letters, all offset by N. */ #define _C_CTYPE_LOWER_A_THRU_F_N(N) \ case 'a' + (N): case 'b' + (N): case 'c' + (N): case 'd' + (N): \ case 'e' + (N): case 'f' + (N) #define _C_CTYPE_LOWER_N(N) \ _C_CTYPE_LOWER_A_THRU_F_N(N): \ case 'g' + (N): case 'h' + (N): case 'i' + (N): case 'j' + (N): \ case 'k' + (N): case 'l' + (N): case 'm' + (N): case 'n' + (N): \ case 'o' + (N): case 'p' + (N): case 'q' + (N): case 'r' + (N): \ case 's' + (N): case 't' + (N): case 'u' + (N): case 'v' + (N): \ case 'w' + (N): case 'x' + (N): case 'y' + (N): case 'z' + (N) /* Cases for hex letters, digits, lower, punct, and upper. */ #define _C_CTYPE_A_THRU_F \ _C_CTYPE_LOWER_A_THRU_F_N (0): \ _C_CTYPE_LOWER_A_THRU_F_N ('A' - 'a') #define _C_CTYPE_DIGIT \ case '0': case '1': case '2': case '3': \ case '4': case '5': case '6': case '7': \ case '8': case '9' #define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0) #define _C_CTYPE_PUNCT \ case '!': case '"': case '#': case '$': \ case '%': case '&': case '\'': case '(': \ case ')': case '*': case '+': case ',': \ case '-': case '.': case '/': case ':': \ case ';': case '<': case '=': case '>': \ case '?': case '@': case '[': case '\\': \ case ']': case '^': case '_': case '`': \ case '{': case '|': case '}': case '~' #define _C_CTYPE_UPPER _C_CTYPE_LOWER_N ('A' - 'a') /* Function definitions. */ /* Unlike the functions in , which require an argument in the range of the 'unsigned char' type, the functions here operate on values that are in the 'unsigned char' range or in the 'char' range. In other words, when you have a 'char' value, you need to cast it before using it as argument to a function: const char *s = ...; if (isalpha ((unsigned char) *s)) ... but you don't need to cast it for the functions defined in this file: const char *s = ...; if (c_isalpha (*s)) ... */ C_CTYPE_INLINE bool c_isalnum (int c) { switch (c) { _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_isalpha (int c) { switch (c) { _C_CTYPE_LOWER: _C_CTYPE_UPPER: return true; default: return false; } } /* The function isascii is not locale dependent. Its use in EBCDIC is questionable. */ C_CTYPE_INLINE bool c_isascii (int c) { switch (c) { case ' ': _C_CTYPE_CNTRL: _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_PUNCT: _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_isblank (int c) { return c == ' ' || c == '\t'; } C_CTYPE_INLINE bool c_iscntrl (int c) { switch (c) { _C_CTYPE_CNTRL: return true; default: return false; } } C_CTYPE_INLINE bool c_isdigit (int c) { switch (c) { _C_CTYPE_DIGIT: return true; default: return false; } } C_CTYPE_INLINE bool c_isgraph (int c) { switch (c) { _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_PUNCT: _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_islower (int c) { switch (c) { _C_CTYPE_LOWER: return true; default: return false; } } C_CTYPE_INLINE bool c_isprint (int c) { switch (c) { case ' ': _C_CTYPE_DIGIT: _C_CTYPE_LOWER: _C_CTYPE_PUNCT: _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_ispunct (int c) { switch (c) { _C_CTYPE_PUNCT: return true; default: return false; } } C_CTYPE_INLINE bool c_isspace (int c) { switch (c) { case ' ': case '\t': case '\n': case '\v': case '\f': case '\r': return true; default: return false; } } C_CTYPE_INLINE bool c_isupper (int c) { switch (c) { _C_CTYPE_UPPER: return true; default: return false; } } C_CTYPE_INLINE bool c_isxdigit (int c) { switch (c) { _C_CTYPE_DIGIT: _C_CTYPE_A_THRU_F: return true; default: return false; } } C_CTYPE_INLINE int c_tolower (int c) { switch (c) { _C_CTYPE_UPPER: return c - 'A' + 'a'; default: return c; } } C_CTYPE_INLINE int c_toupper (int c) { switch (c) { _C_CTYPE_LOWER: return c - 'a' + 'A'; default: return c; } } #ifdef __cplusplus } #endif _GL_INLINE_HEADER_END #endif /* C_CTYPE_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/c-ctype.c0000644000000000000000000000010713726163410020521 xustar000000000000000024 mtime=1599661832.535 24 atime=1599661832.741 23 ctime=1599661998.76 libprelude-5.2.0/libmissing/c-ctype.c0000644000000000000000000000012213726163410017511 0ustar00rootroot00000000000000#include #define C_CTYPE_INLINE _GL_EXTERN_INLINE #include "c-ctype.h" libprelude-5.2.0/libmissing/PaxHeaders.14770/fd-hook.c0000644000000000000000000000011013726163410020476 xustar000000000000000024 mtime=1599661832.536 24 atime=1599661832.741 24 ctime=1599661998.767 libprelude-5.2.0/libmissing/fd-hook.c0000644000000000000000000000703313726163410017504 0ustar00rootroot00000000000000/* Hook for making file descriptor functions close(), ioctl() extensible. Copyright (C) 2009-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2009. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include "fd-hook.h" #include /* Currently, this entire code is only needed for the handling of sockets on native Windows platforms. */ #if WINDOWS_SOCKETS /* The first and last link in the doubly linked list. Initially the list is empty. */ static struct fd_hook anchor = { &anchor, &anchor, NULL, NULL }; int execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, int fd) { if (remaining_list == &anchor) /* End of list reached. */ return primary (fd); else return remaining_list->private_close_fn (remaining_list->private_next, primary, fd); } int execute_all_close_hooks (gl_close_fn primary, int fd) { return execute_close_hooks (anchor.private_next, primary, fd); } int execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg) { if (remaining_list == &anchor) /* End of list reached. */ return primary (fd, request, arg); else return remaining_list->private_ioctl_fn (remaining_list->private_next, primary, fd, request, arg); } int execute_all_ioctl_hooks (gl_ioctl_fn primary, int fd, int request, void *arg) { return execute_ioctl_hooks (anchor.private_next, primary, fd, request, arg); } void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link) { if (close_hook == NULL) close_hook = execute_close_hooks; if (ioctl_hook == NULL) ioctl_hook = execute_ioctl_hooks; if (link->private_next == NULL && link->private_prev == NULL) { /* Add the link to the doubly linked list. */ link->private_next = anchor.private_next; link->private_prev = &anchor; link->private_close_fn = close_hook; link->private_ioctl_fn = ioctl_hook; anchor.private_next->private_prev = link; anchor.private_next = link; } else { /* The link is already in use. */ if (link->private_close_fn != close_hook || link->private_ioctl_fn != ioctl_hook) abort (); } } void unregister_fd_hook (struct fd_hook *link) { struct fd_hook *next = link->private_next; struct fd_hook *prev = link->private_prev; if (next != NULL && prev != NULL) { /* The link is in use. Remove it from the doubly linked list. */ prev->private_next = next; next->private_prev = prev; /* Clear the link, to mark it unused. */ link->private_next = NULL; link->private_prev = NULL; link->private_close_fn = NULL; link->private_ioctl_fn = NULL; } } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/freading.c0000644000000000000000000000011013726163410020726 xustar000000000000000024 mtime=1599661832.538 24 atime=1599661832.741 24 ctime=1599661998.769 libprelude-5.2.0/libmissing/freading.c0000644000000000000000000000614613726163410017740 0ustar00rootroot00000000000000/* Retrieve information about a FILE stream. Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include "freading.h" #include "stdio-impl.h" /* Don't use glibc's __freading function in glibc < 2.7, see */ #if !(HAVE___FREADING && (!defined __GLIBC__ || defined __UCLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7))) bool freading (FILE *fp) { /* Most systems provide FILE as a struct and the necessary bitmask in , because they need it for implementing getc() and putc() as fast macros. */ # if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ return ((fp->_flags & _IO_NO_WRITES) != 0 || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0 && fp->_IO_read_base != NULL)); # elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ return (fp_->_flags & __SRD) != 0; # elif defined __EMX__ /* emx+gcc */ return (fp->_flags & _IOREAD) != 0; # elif defined __minix /* Minix */ return (fp->_flags & _IOREADING) != 0; # elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, MSVC, NonStop Kernel, OpenVMS */ # if defined __sun /* Solaris */ return (fp_->_flag & _IOREAD) != 0 && (fp_->_flag & _IOWRT) == 0; # else return (fp_->_flag & _IOREAD) != 0; # endif # elif defined __UCLIBC__ /* uClibc */ return (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) != 0; # elif defined __QNX__ /* QNX */ return ((fp->_Mode & 0x2 /* _MOPENW */) == 0 || (fp->_Mode & 0x1000 /* _MREAD */) != 0); # elif defined __MINT__ /* Atari FreeMiNT */ if (!fp->__mode.__write) return 1; if (!fp->__mode.__read) return 0; # ifdef _IO_CURRENTLY_GETTING /* Flag added on 2009-02-28 */ return (fp->__flags & _IO_CURRENTLY_GETTING) != 0; # else return (fp->__buffer < fp->__get_limit /*|| fp->__bufp == fp->__put_limit ??*/); # endif # elif defined EPLAN9 /* Plan9 */ if (fp->state == 0 /* CLOSED */ || fp->state == 4 /* WR */) return 0; return (fp->state == 3 /* RD */ && (fp->bufl == 0 || fp->rp < fp->wp)); # else # error "Please port gnulib freading.c to your platform!" # endif } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/ftw_.h0000644000000000000000000000010713726163410020121 xustar000000000000000023 mtime=1599661832.54 24 atime=1599661832.742 24 ctime=1599661998.772 libprelude-5.2.0/libmissing/ftw_.h0000644000000000000000000000221013726163410017111 0ustar00rootroot00000000000000/* Copyright (C) 2005 Free Software Foundation, Inc. * Written by Yoann Vandoorselaere * * The file is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This file 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this file; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. */ #include #include #include #if HAVE_FTW # include #else #define FTW_F 1 #define FTW_D 2 #define FTW_DNR 3 #define FTW_SL 4 #define FTW_NS 5 extern int ftw(const char *dir, int (*fn)(const char *file, const struct stat *sb, int flag), int nopenfd); #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/gettext.h0000644000000000000000000000011013726163410020640 xustar000000000000000024 mtime=1599661832.541 24 atime=1599661832.742 24 ctime=1599661998.774 libprelude-5.2.0/libmissing/gettext.h0000644000000000000000000002412713726163410017651 0ustar00rootroot00000000000000/* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option or through "#define ENABLE NLS 0" before including this file. */ #if defined ENABLE_NLS && ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include /* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by the gettext() and ngettext() macros. This is an alternative to calling textdomain(), and is useful for libraries. */ # ifdef DEFAULT_TEXT_DOMAIN # undef gettext # define gettext(Msgid) \ dgettext (DEFAULT_TEXT_DOMAIN, Msgid) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) # endif #else /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. We don't include as well because people using "gettext.h" will not include , and also including would fail on SunOS 4, whereas is OK. */ #if defined(__sun) # include #endif /* Many header files from the libstdc++ coming with g++ 3.3 or newer include , which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. */ #if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) # include # if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H # include # endif #endif /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ # undef gettext # define gettext(Msgid) ((const char *) (Msgid)) # undef dgettext # define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) # undef dcgettext # define dcgettext(Domainname, Msgid, Category) \ ((void) (Category), dgettext (Domainname, Msgid)) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 \ ? ((void) (Msgid2), (const char *) (Msgid1)) \ : ((void) (Msgid1), (const char *) (Msgid2))) # undef dngettext # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) # undef dcngettext # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N)) # undef textdomain # define textdomain(Domainname) ((const char *) (Domainname)) # undef bindtextdomain # define bindtextdomain(Domainname, Dirname) \ ((void) (Domainname), (const char *) (Dirname)) # undef bind_textdomain_codeset # define bind_textdomain_codeset(Domainname, Codeset) \ ((void) (Domainname), (const char *) (Codeset)) #endif /* Prefer gnulib's setlocale override over libintl's setlocale override. */ #ifdef GNULIB_defined_setlocale # undef setlocale # define setlocale rpl_setlocale #endif /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. The argument, String, should be a literal string. Concatenated strings and other string expressions won't work. The macro's expansion is not parenthesized, so that it is suitable as initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String /* The separator between msgctxt and msgid in a .mo file. */ #define GETTEXT_CONTEXT_GLUE "\004" /* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be short and rarely need to change. The letter 'p' stands for 'particular' or 'special'. */ #ifdef DEFAULT_TEXT_DOMAIN # define pgettext(Msgctxt, Msgid) \ pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #else # define pgettext(Msgctxt, Msgid) \ pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #endif #define dpgettext(Domainname, Msgctxt, Msgid) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) #ifdef DEFAULT_TEXT_DOMAIN # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #else # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #endif #define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * pgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, int category) { const char *translation = dcgettext (domain, msg_ctxt_id, category); if (translation == msg_ctxt_id) return msgid; else return translation; } #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * npgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { const char *translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); if (translation == msg_ctxt_id || translation == msgid_plural) return (n == 1 ? msgid : msgid_plural); else return translation; } /* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID can be arbitrary expressions. But for string literals these macros are less efficient than those above. */ #include #if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \ /* || __STDC_VERSION__ == 199901L || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ ) # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 #else # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 #endif #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS #include #endif #define pgettext_expr(Msgctxt, Msgid) \ dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) #define dpgettext_expr(Domainname, Msgctxt, Msgid) \ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { int found_translation; memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcgettext (domain, msg_ctxt_id, category); found_translation = (translation != msg_ctxt_id); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (found_translation) return translation; } return msgid; } #define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcnpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { int found_translation; memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); found_translation = !(translation == msg_ctxt_id || translation == msgid_plural); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (found_translation) return translation; } return (n == 1 ? msgid : msgid_plural); } #endif /* _LIBGETTEXT_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/hard-locale.c0000644000000000000000000000011013726163410021322 xustar000000000000000024 mtime=1599661832.544 24 atime=1599661832.743 24 ctime=1599661998.777 libprelude-5.2.0/libmissing/hard-locale.c0000644000000000000000000000417513726163410020334 0ustar00rootroot00000000000000/* hard-locale.c -- Determine whether a locale is hard. Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include #include "hard-locale.h" #include #include #include #ifdef __GLIBC__ # define GLIBC_VERSION __GLIBC__ #elif defined __UCLIBC__ # define GLIBC_VERSION 2 #else # define GLIBC_VERSION 0 #endif /* Return true if the current CATEGORY locale is hard, i.e. if you can't get away with assuming traditional C or POSIX behavior. */ bool hard_locale (int category) { bool hard = true; char const *p = setlocale (category, NULL); if (p) { if (2 <= GLIBC_VERSION) { if (strcmp (p, "C") == 0 || strcmp (p, "POSIX") == 0) hard = false; } else { char *locale = strdup (p); if (locale) { /* Temporarily set the locale to the "C" and "POSIX" locales to find their names, so that we can determine whether one or the other is the caller's locale. */ if (((p = setlocale (category, "C")) && strcmp (p, locale) == 0) || ((p = setlocale (category, "POSIX")) && strcmp (p, locale) == 0)) hard = false; /* Restore the caller's locale. */ setlocale (category, locale); free (locale); } } } return hard; } libprelude-5.2.0/libmissing/PaxHeaders.14770/localcharset.c0000644000000000000000000000011013726163410021613 xustar000000000000000024 mtime=1599661832.547 24 atime=1599661832.744 24 ctime=1599661998.779 libprelude-5.2.0/libmissing/localcharset.c0000644000000000000000000010141313726163410020616 0ustar00rootroot00000000000000/* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2006, 2008-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Bruno Haible . */ #include /* Specification. */ #include "localcharset.h" #include #include #include #include #if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET # define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */ #endif #if defined _WIN32 && !defined __CYGWIN__ # define WINDOWS_NATIVE # include #endif #if defined __EMX__ /* Assume EMX program runs on OS/2, even if compiled under DOS. */ # ifndef OS2 # define OS2 # endif #endif #if !defined WINDOWS_NATIVE # if HAVE_LANGINFO_CODESET # include # else # if 0 /* see comment regarding use of setlocale(), below */ # include # endif # endif # ifdef __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include # endif #elif defined WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN # include #endif #if defined OS2 # define INCL_DOS # include #endif /* For MB_CUR_MAX_L */ #if defined DARWIN7 # include #endif #if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 /* On these platforms, we use a mapping from non-canonical encoding name to GNU canonical encoding name. */ /* With glibc-2.1 or newer, we don't need any canonicalization, because glibc has iconv and both glibc and libiconv support all GNU canonical names directly. */ # if !((defined __GNU_LIBRARY__ && __GLIBC__ >= 2) || defined __UCLIBC__) struct table_entry { const char alias[11+1]; const char canonical[11+1]; }; /* Table of platform-dependent mappings, sorted in ascending order. */ static const struct table_entry alias_table[] = { # if defined __FreeBSD__ /* FreeBSD */ /*{ "ARMSCII-8", "ARMSCII-8" },*/ { "Big5", "BIG5" }, { "C", "ASCII" }, /*{ "CP1131", "CP1131" },*/ /*{ "CP1251", "CP1251" },*/ /*{ "CP866", "CP866" },*/ /*{ "GB18030", "GB18030" },*/ /*{ "GB2312", "GB2312" },*/ /*{ "GBK", "GBK" },*/ /*{ "ISCII-DEV", "?" },*/ { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-13", "ISO-8859-13" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-9", "ISO-8859-9" }, /*{ "KOI8-R", "KOI8-R" },*/ /*{ "KOI8-U", "KOI8-U" },*/ { "SJIS", "SHIFT_JIS" }, { "US-ASCII", "ASCII" }, { "eucCN", "GB2312" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" } # define alias_table_defined # endif # if defined __NetBSD__ /* NetBSD */ { "646", "ASCII" }, /*{ "ARMSCII-8", "ARMSCII-8" },*/ /*{ "BIG5", "BIG5" },*/ { "Big5-HKSCS", "BIG5-HKSCS" }, /*{ "CP1251", "CP1251" },*/ /*{ "CP866", "CP866" },*/ /*{ "GB18030", "GB18030" },*/ /*{ "GB2312", "GB2312" },*/ { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-13", "ISO-8859-13" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-4", "ISO-8859-4" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, /*{ "KOI8-R", "KOI8-R" },*/ /*{ "KOI8-U", "KOI8-U" },*/ /*{ "PT154", "PT154" },*/ { "SJIS", "SHIFT_JIS" }, { "eucCN", "GB2312" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" }, { "eucTW", "EUC-TW" } # define alias_table_defined # endif # if defined __OpenBSD__ /* OpenBSD */ { "646", "ASCII" }, { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-13", "ISO-8859-13" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-4", "ISO-8859-4" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" } # define alias_table_defined # endif # if defined __APPLE__ && defined __MACH__ /* Mac OS X */ /* Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is useless: - It returns the empty string when LANG is set to a locale of the form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 LC_CTYPE file. - The environment variables LANG, LC_CTYPE, LC_ALL are not set by the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. - The documentation says: "... all code that calls BSD system routines should ensure that the const *char parameters of these routines are in UTF-8 encoding. All BSD system functions expect their string parameters to be in UTF-8 encoding and nothing else." It also says "An additional caveat is that string parameters for files, paths, and other file-system entities must be in canonical UTF-8. In a canonical UTF-8 Unicode string, all decomposable characters are decomposed ..." but this is not true: You can pass non-decomposed UTF-8 strings to file system functions, and it is the OS which will convert them to decomposed UTF-8 before accessing the file system. - The Apple Terminal application displays UTF-8 by default. - However, other applications are free to use different encodings: - xterm uses ISO-8859-1 by default. - TextEdit uses MacRoman by default. We prefer UTF-8 over decomposed UTF-8-MAC because one should minimize the use of decomposed Unicode. Unfortunately, through the Darwin file system, decomposed UTF-8 strings are leaked into user space nevertheless. Then there are also the locales with encodings other than US-ASCII and UTF-8. These locales can be occasionally useful to users (e.g. when grepping through ISO-8859-1 encoded text files), when all their file names are in US-ASCII. */ { "ARMSCII-8", "ARMSCII-8" }, { "Big5", "BIG5" }, { "Big5HKSCS", "BIG5-HKSCS" }, { "CP1131", "CP1131" }, { "CP1251", "CP1251" }, { "CP866", "CP866" }, { "CP949", "CP949" }, { "GB18030", "GB18030" }, { "GB2312", "GB2312" }, { "GBK", "GBK" }, /*{ "ISCII-DEV", "?" },*/ { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-13", "ISO-8859-13" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-4", "ISO-8859-4" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-9", "ISO-8859-9" }, { "KOI8-R", "KOI8-R" }, { "KOI8-U", "KOI8-U" }, { "PT154", "PT154" }, { "SJIS", "SHIFT_JIS" }, { "eucCN", "GB2312" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" } # define alias_table_defined # endif # if defined _AIX /* AIX */ /*{ "GBK", "GBK" },*/ { "IBM-1046", "CP1046" }, { "IBM-1124", "CP1124" }, { "IBM-1129", "CP1129" }, { "IBM-1252", "CP1252" }, { "IBM-850", "CP850" }, { "IBM-856", "CP856" }, { "IBM-921", "ISO-8859-13" }, { "IBM-922", "CP922" }, { "IBM-932", "CP932" }, { "IBM-943", "CP943" }, { "IBM-eucCN", "GB2312" }, { "IBM-eucJP", "EUC-JP" }, { "IBM-eucKR", "EUC-KR" }, { "IBM-eucTW", "EUC-TW" }, { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-6", "ISO-8859-6" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-8", "ISO-8859-8" }, { "ISO8859-9", "ISO-8859-9" }, { "TIS-620", "TIS-620" }, /*{ "UTF-8", "UTF-8" },*/ { "big5", "BIG5" } # define alias_table_defined # endif # if defined __hpux /* HP-UX */ { "SJIS", "SHIFT_JIS" }, { "arabic8", "HP-ARABIC8" }, { "big5", "BIG5" }, { "cp1251", "CP1251" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" }, { "eucTW", "EUC-TW" }, { "gb18030", "GB18030" }, { "greek8", "HP-GREEK8" }, { "hebrew8", "HP-HEBREW8" }, { "hkbig5", "BIG5-HKSCS" }, { "hp15CN", "GB2312" }, { "iso88591", "ISO-8859-1" }, { "iso885913", "ISO-8859-13" }, { "iso885915", "ISO-8859-15" }, { "iso88592", "ISO-8859-2" }, { "iso88594", "ISO-8859-4" }, { "iso88595", "ISO-8859-5" }, { "iso88596", "ISO-8859-6" }, { "iso88597", "ISO-8859-7" }, { "iso88598", "ISO-8859-8" }, { "iso88599", "ISO-8859-9" }, { "kana8", "HP-KANA8" }, { "koi8r", "KOI8-R" }, { "roman8", "HP-ROMAN8" }, { "tis620", "TIS-620" }, { "turkish8", "HP-TURKISH8" }, { "utf8", "UTF-8" } # define alias_table_defined # endif # if defined __sgi /* IRIX */ { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-9", "ISO-8859-9" }, { "eucCN", "GB2312" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" }, { "eucTW", "EUC-TW" } # define alias_table_defined # endif # if defined __osf__ /* OSF/1 */ /*{ "GBK", "GBK" },*/ { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-4", "ISO-8859-4" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-8", "ISO-8859-8" }, { "ISO8859-9", "ISO-8859-9" }, { "KSC5601", "CP949" }, { "SJIS", "SHIFT_JIS" }, { "TACTIS", "TIS-620" }, /*{ "UTF-8", "UTF-8" },*/ { "big5", "BIG5" }, { "cp850", "CP850" }, { "dechanyu", "DEC-HANYU" }, { "dechanzi", "GB2312" }, { "deckanji", "DEC-KANJI" }, { "deckorean", "EUC-KR" }, { "eucJP", "EUC-JP" }, { "eucKR", "EUC-KR" }, { "eucTW", "EUC-TW" }, { "sdeckanji", "EUC-JP" } # define alias_table_defined # endif # if defined __sun /* Solaris */ { "5601", "EUC-KR" }, { "646", "ASCII" }, /*{ "BIG5", "BIG5" },*/ { "Big5-HKSCS", "BIG5-HKSCS" }, { "GB18030", "GB18030" }, /*{ "GBK", "GBK" },*/ { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-11", "TIS-620" }, { "ISO8859-13", "ISO-8859-13" }, { "ISO8859-15", "ISO-8859-15" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-3", "ISO-8859-3" }, { "ISO8859-4", "ISO-8859-4" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-6", "ISO-8859-6" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-8", "ISO-8859-8" }, { "ISO8859-9", "ISO-8859-9" }, { "PCK", "SHIFT_JIS" }, { "TIS620.2533", "TIS-620" }, /*{ "UTF-8", "UTF-8" },*/ { "ansi-1251", "CP1251" }, { "cns11643", "EUC-TW" }, { "eucJP", "EUC-JP" }, { "gb2312", "GB2312" }, { "koi8-r", "KOI8-R" } # define alias_table_defined # endif # if defined __minix /* Minix */ { "646", "ASCII" } # define alias_table_defined # endif # if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Windows */ { "CP1361", "JOHAB" }, { "CP20127", "ASCII" }, { "CP20866", "KOI8-R" }, { "CP20936", "GB2312" }, { "CP21866", "KOI8-RU" }, { "CP28591", "ISO-8859-1" }, { "CP28592", "ISO-8859-2" }, { "CP28593", "ISO-8859-3" }, { "CP28594", "ISO-8859-4" }, { "CP28595", "ISO-8859-5" }, { "CP28596", "ISO-8859-6" }, { "CP28597", "ISO-8859-7" }, { "CP28598", "ISO-8859-8" }, { "CP28599", "ISO-8859-9" }, { "CP28605", "ISO-8859-15" }, { "CP38598", "ISO-8859-8" }, { "CP51932", "EUC-JP" }, { "CP51936", "GB2312" }, { "CP51949", "EUC-KR" }, { "CP51950", "EUC-TW" }, { "CP54936", "GB18030" }, { "CP65001", "UTF-8" }, { "CP936", "GBK" } # define alias_table_defined # endif # if defined OS2 /* OS/2 */ /* The list of encodings is taken from "List of OS/2 Codepages" by Alex Taylor: . See also "IBM Globalization - Code page identifiers": . */ { "CP1089", "ISO-8859-6" }, { "CP1208", "UTF-8" }, { "CP1381", "GB2312" }, { "CP1386", "GBK" }, { "CP3372", "EUC-JP" }, { "CP813", "ISO-8859-7" }, { "CP819", "ISO-8859-1" }, { "CP878", "KOI8-R" }, { "CP912", "ISO-8859-2" }, { "CP913", "ISO-8859-3" }, { "CP914", "ISO-8859-4" }, { "CP915", "ISO-8859-5" }, { "CP916", "ISO-8859-8" }, { "CP920", "ISO-8859-9" }, { "CP921", "ISO-8859-13" }, { "CP923", "ISO-8859-15" }, { "CP954", "EUC-JP" }, { "CP964", "EUC-TW" }, { "CP970", "EUC-KR" } # define alias_table_defined # endif # if defined VMS /* OpenVMS */ /* The list of encodings is taken from the OpenVMS 7.3-1 documentation "Compaq C Run-Time Library Reference Manual for OpenVMS systems" section 10.7 "Handling Different Character Sets". */ { "DECHANYU", "DEC-HANYU" }, { "DECHANZI", "GB2312" }, { "DECKANJI", "DEC-KANJI" }, { "DECKOREAN", "EUC-KR" }, { "ISO8859-1", "ISO-8859-1" }, { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-5", "ISO-8859-5" }, { "ISO8859-7", "ISO-8859-7" }, { "ISO8859-8", "ISO-8859-8" }, { "ISO8859-9", "ISO-8859-9" }, { "SDECKANJI", "EUC-JP" }, { "SJIS", "SHIFT_JIS" }, { "eucJP", "EUC-JP" }, { "eucTW", "EUC-TW" } # define alias_table_defined # endif # ifndef alias_table_defined /* Just a dummy entry, to avoid a C syntax error. */ { "", "" } # endif }; # endif #else /* On these platforms, we use a mapping from locale name to GNU canonical encoding name. */ struct table_entry { const char locale[17+1]; const char canonical[11+1]; }; /* Table of platform-dependent mappings, sorted in ascending order. */ static const struct table_entry locale_table[] = { # if defined __FreeBSD__ /* FreeBSD 4.2 */ { "cs_CZ.ISO_8859-2", "ISO-8859-2" }, { "da_DK.DIS_8859-15", "ISO-8859-15" }, { "da_DK.ISO_8859-1", "ISO-8859-1" }, { "de_AT.DIS_8859-15", "ISO-8859-15" }, { "de_AT.ISO_8859-1", "ISO-8859-1" }, { "de_CH.DIS_8859-15", "ISO-8859-15" }, { "de_CH.ISO_8859-1", "ISO-8859-1" }, { "de_DE.DIS_8859-15", "ISO-8859-15" }, { "de_DE.ISO_8859-1", "ISO-8859-1" }, { "en_AU.DIS_8859-15", "ISO-8859-15" }, { "en_AU.ISO_8859-1", "ISO-8859-1" }, { "en_CA.DIS_8859-15", "ISO-8859-15" }, { "en_CA.ISO_8859-1", "ISO-8859-1" }, { "en_GB.DIS_8859-15", "ISO-8859-15" }, { "en_GB.ISO_8859-1", "ISO-8859-1" }, { "en_US.DIS_8859-15", "ISO-8859-15" }, { "en_US.ISO_8859-1", "ISO-8859-1" }, { "es_ES.DIS_8859-15", "ISO-8859-15" }, { "es_ES.ISO_8859-1", "ISO-8859-1" }, { "fi_FI.DIS_8859-15", "ISO-8859-15" }, { "fi_FI.ISO_8859-1", "ISO-8859-1" }, { "fr_BE.DIS_8859-15", "ISO-8859-15" }, { "fr_BE.ISO_8859-1", "ISO-8859-1" }, { "fr_CA.DIS_8859-15", "ISO-8859-15" }, { "fr_CA.ISO_8859-1", "ISO-8859-1" }, { "fr_CH.DIS_8859-15", "ISO-8859-15" }, { "fr_CH.ISO_8859-1", "ISO-8859-1" }, { "fr_FR.DIS_8859-15", "ISO-8859-15" }, { "fr_FR.ISO_8859-1", "ISO-8859-1" }, { "hr_HR.ISO_8859-2", "ISO-8859-2" }, { "hu_HU.ISO_8859-2", "ISO-8859-2" }, { "is_IS.DIS_8859-15", "ISO-8859-15" }, { "is_IS.ISO_8859-1", "ISO-8859-1" }, { "it_CH.DIS_8859-15", "ISO-8859-15" }, { "it_CH.ISO_8859-1", "ISO-8859-1" }, { "it_IT.DIS_8859-15", "ISO-8859-15" }, { "it_IT.ISO_8859-1", "ISO-8859-1" }, { "ja_JP.EUC", "EUC-JP" }, { "ja_JP.SJIS", "SHIFT_JIS" }, { "ja_JP.Shift_JIS", "SHIFT_JIS" }, { "ko_KR.EUC", "EUC-KR" }, { "la_LN.ASCII", "ASCII" }, { "la_LN.DIS_8859-15", "ISO-8859-15" }, { "la_LN.ISO_8859-1", "ISO-8859-1" }, { "la_LN.ISO_8859-2", "ISO-8859-2" }, { "la_LN.ISO_8859-4", "ISO-8859-4" }, { "lt_LN.ASCII", "ASCII" }, { "lt_LN.DIS_8859-15", "ISO-8859-15" }, { "lt_LN.ISO_8859-1", "ISO-8859-1" }, { "lt_LN.ISO_8859-2", "ISO-8859-2" }, { "lt_LT.ISO_8859-4", "ISO-8859-4" }, { "nl_BE.DIS_8859-15", "ISO-8859-15" }, { "nl_BE.ISO_8859-1", "ISO-8859-1" }, { "nl_NL.DIS_8859-15", "ISO-8859-15" }, { "nl_NL.ISO_8859-1", "ISO-8859-1" }, { "no_NO.DIS_8859-15", "ISO-8859-15" }, { "no_NO.ISO_8859-1", "ISO-8859-1" }, { "pl_PL.ISO_8859-2", "ISO-8859-2" }, { "pt_PT.DIS_8859-15", "ISO-8859-15" }, { "pt_PT.ISO_8859-1", "ISO-8859-1" }, { "ru_RU.CP866", "CP866" }, { "ru_RU.ISO_8859-5", "ISO-8859-5" }, { "ru_RU.KOI8-R", "KOI8-R" }, { "ru_SU.CP866", "CP866" }, { "ru_SU.ISO_8859-5", "ISO-8859-5" }, { "ru_SU.KOI8-R", "KOI8-R" }, { "sl_SI.ISO_8859-2", "ISO-8859-2" }, { "sv_SE.DIS_8859-15", "ISO-8859-15" }, { "sv_SE.ISO_8859-1", "ISO-8859-1" }, { "uk_UA.KOI8-U", "KOI8-U" }, { "zh_CN.EUC", "GB2312" }, { "zh_TW.BIG5", "BIG5" }, { "zh_TW.Big5", "BIG5" } # define locale_table_defined # endif # if defined __DJGPP__ /* DOS / DJGPP 2.03 */ /* The encodings given here may not all be correct. If you find that the encoding given for your language and country is not the one your DOS machine actually uses, just correct it in this file, and send a mail to Juan Manuel Guerrero and . */ { "C", "ASCII" }, { "ar", "CP864" }, { "ar_AE", "CP864" }, { "ar_DZ", "CP864" }, { "ar_EG", "CP864" }, { "ar_IQ", "CP864" }, { "ar_IR", "CP864" }, { "ar_JO", "CP864" }, { "ar_KW", "CP864" }, { "ar_MA", "CP864" }, { "ar_OM", "CP864" }, { "ar_QA", "CP864" }, { "ar_SA", "CP864" }, { "ar_SY", "CP864" }, { "be", "CP866" }, { "be_BE", "CP866" }, { "bg", "CP866" }, /* not CP855 ?? */ { "bg_BG", "CP866" }, /* not CP855 ?? */ { "ca", "CP850" }, { "ca_ES", "CP850" }, { "cs", "CP852" }, { "cs_CZ", "CP852" }, { "da", "CP865" }, /* not CP850 ?? */ { "da_DK", "CP865" }, /* not CP850 ?? */ { "de", "CP850" }, { "de_AT", "CP850" }, { "de_CH", "CP850" }, { "de_DE", "CP850" }, { "el", "CP869" }, { "el_GR", "CP869" }, { "en", "CP850" }, { "en_AU", "CP850" }, /* not CP437 ?? */ { "en_CA", "CP850" }, { "en_GB", "CP850" }, { "en_NZ", "CP437" }, { "en_US", "CP437" }, { "en_ZA", "CP850" }, /* not CP437 ?? */ { "eo", "CP850" }, { "eo_EO", "CP850" }, { "es", "CP850" }, { "es_AR", "CP850" }, { "es_BO", "CP850" }, { "es_CL", "CP850" }, { "es_CO", "CP850" }, { "es_CR", "CP850" }, { "es_CU", "CP850" }, { "es_DO", "CP850" }, { "es_EC", "CP850" }, { "es_ES", "CP850" }, { "es_GT", "CP850" }, { "es_HN", "CP850" }, { "es_MX", "CP850" }, { "es_NI", "CP850" }, { "es_PA", "CP850" }, { "es_PE", "CP850" }, { "es_PY", "CP850" }, { "es_SV", "CP850" }, { "es_UY", "CP850" }, { "es_VE", "CP850" }, { "et", "CP850" }, { "et_EE", "CP850" }, { "eu", "CP850" }, { "eu_ES", "CP850" }, { "fi", "CP850" }, { "fi_FI", "CP850" }, { "fr", "CP850" }, { "fr_BE", "CP850" }, { "fr_CA", "CP850" }, { "fr_CH", "CP850" }, { "fr_FR", "CP850" }, { "ga", "CP850" }, { "ga_IE", "CP850" }, { "gd", "CP850" }, { "gd_GB", "CP850" }, { "gl", "CP850" }, { "gl_ES", "CP850" }, { "he", "CP862" }, { "he_IL", "CP862" }, { "hr", "CP852" }, { "hr_HR", "CP852" }, { "hu", "CP852" }, { "hu_HU", "CP852" }, { "id", "CP850" }, /* not CP437 ?? */ { "id_ID", "CP850" }, /* not CP437 ?? */ { "is", "CP861" }, /* not CP850 ?? */ { "is_IS", "CP861" }, /* not CP850 ?? */ { "it", "CP850" }, { "it_CH", "CP850" }, { "it_IT", "CP850" }, { "ja", "CP932" }, { "ja_JP", "CP932" }, { "kr", "CP949" }, /* not CP934 ?? */ { "kr_KR", "CP949" }, /* not CP934 ?? */ { "lt", "CP775" }, { "lt_LT", "CP775" }, { "lv", "CP775" }, { "lv_LV", "CP775" }, { "mk", "CP866" }, /* not CP855 ?? */ { "mk_MK", "CP866" }, /* not CP855 ?? */ { "mt", "CP850" }, { "mt_MT", "CP850" }, { "nb", "CP865" }, /* not CP850 ?? */ { "nb_NO", "CP865" }, /* not CP850 ?? */ { "nl", "CP850" }, { "nl_BE", "CP850" }, { "nl_NL", "CP850" }, { "nn", "CP865" }, /* not CP850 ?? */ { "nn_NO", "CP865" }, /* not CP850 ?? */ { "no", "CP865" }, /* not CP850 ?? */ { "no_NO", "CP865" }, /* not CP850 ?? */ { "pl", "CP852" }, { "pl_PL", "CP852" }, { "pt", "CP850" }, { "pt_BR", "CP850" }, { "pt_PT", "CP850" }, { "ro", "CP852" }, { "ro_RO", "CP852" }, { "ru", "CP866" }, { "ru_RU", "CP866" }, { "sk", "CP852" }, { "sk_SK", "CP852" }, { "sl", "CP852" }, { "sl_SI", "CP852" }, { "sq", "CP852" }, { "sq_AL", "CP852" }, { "sr", "CP852" }, /* CP852 or CP866 or CP855 ?? */ { "sr_CS", "CP852" }, /* CP852 or CP866 or CP855 ?? */ { "sr_YU", "CP852" }, /* CP852 or CP866 or CP855 ?? */ { "sv", "CP850" }, { "sv_SE", "CP850" }, { "th", "CP874" }, { "th_TH", "CP874" }, { "tr", "CP857" }, { "tr_TR", "CP857" }, { "uk", "CP1125" }, { "uk_UA", "CP1125" }, { "zh_CN", "GBK" }, { "zh_TW", "CP950" } /* not CP938 ?? */ # define locale_table_defined # endif # ifndef locale_table_defined /* Just a dummy entry, to avoid a C syntax error. */ { "", "" } # endif }; #endif /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed in localcharset.h. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ #ifdef STATIC STATIC #endif const char * locale_charset (void) { const char *codeset; #if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 # if HAVE_LANGINFO_CODESET /* Most systems support nl_langinfo (CODESET) nowadays. */ codeset = nl_langinfo (CODESET); # ifdef __CYGWIN__ /* Cygwin < 1.7 does not have locales. nl_langinfo (CODESET) always returns "US-ASCII". Return the suffix of the locale name from the environment variables (if present) or the codepage as a number. */ if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) { const char *locale; static char buf[2 + 10 + 1]; locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } if (locale != NULL && locale[0] != '\0') { /* If the locale name contains an encoding after the dot, return it. */ const char *dot = strchr (locale, '.'); if (dot != NULL) { const char *modifier; dot++; /* Look for the possible @... trailer and remove it, if any. */ modifier = strchr (dot, '@'); if (modifier == NULL) return dot; if (modifier - dot < sizeof (buf)) { memcpy (buf, dot, modifier - dot); buf [modifier - dot] = '\0'; return buf; } } } /* The Windows API has a function returning the locale's codepage as a number: GetACP(). This encoding is used by Cygwin, unless the user has set the environment variable CYGWIN=codepage:oem (which very few people do). Output directed to console windows needs to be converted (to GetOEMCP() if the console is using a raster font, or to GetConsoleOutputCP() if it is using a TrueType font). Cygwin does this conversion transparently (see winsup/cygwin/fhandler_console.cc), converting to GetConsoleOutputCP(). This leads to correct results, except when SetConsoleOutputCP has been called and a raster font is in use. */ sprintf (buf, "CP%u", GetACP ()); codeset = buf; } # endif if (codeset == NULL) /* The canonical name cannot be determined. */ codeset = ""; # elif defined WINDOWS_NATIVE static char buf[2 + 10 + 1]; /* The Windows API has a function returning the locale's codepage as a number, but the value doesn't change according to what the 'setlocale' call specified. So we use it as a last resort, in case the string returned by 'setlocale' doesn't specify the codepage. */ char *current_locale = setlocale (LC_ALL, NULL); char *pdot; /* If they set different locales for different categories, 'setlocale' will return a semi-colon separated list of locale values. To make sure we use the correct one, we choose LC_CTYPE. */ if (strchr (current_locale, ';')) current_locale = setlocale (LC_CTYPE, NULL); pdot = strrchr (current_locale, '.'); if (pdot && 2 + strlen (pdot + 1) + 1 <= sizeof (buf)) sprintf (buf, "CP%s", pdot + 1); else { /* The Windows API has a function returning the locale's codepage as a number: GetACP(). When the output goes to a console window, it needs to be provided in GetOEMCP() encoding if the console is using a raster font, or in GetConsoleOutputCP() encoding if it is using a TrueType font. But in GUI programs and for output sent to files and pipes, GetACP() encoding is the best bet. */ sprintf (buf, "CP%u", GetACP ()); } codeset = buf; # elif defined OS2 const char *locale; static char buf[2 + 10 + 1]; ULONG cp[3]; ULONG cplen; codeset = NULL; /* Allow user to override the codeset, as set in the operating system, with standard language environment variables. */ locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } if (locale != NULL && locale[0] != '\0') { /* If the locale name contains an encoding after the dot, return it. */ const char *dot = strchr (locale, '.'); if (dot != NULL) { const char *modifier; dot++; /* Look for the possible @... trailer and remove it, if any. */ modifier = strchr (dot, '@'); if (modifier == NULL) return dot; if (modifier - dot < sizeof (buf)) { memcpy (buf, dot, modifier - dot); buf [modifier - dot] = '\0'; return buf; } } /* For the POSIX locale, don't use the system's codepage. */ if (strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0) codeset = ""; } if (codeset == NULL) { /* OS/2 has a function returning the locale's codepage as a number. */ if (DosQueryCp (sizeof (cp), cp, &cplen)) codeset = ""; else { sprintf (buf, "CP%u", cp[0]); codeset = buf; } } # else # error "Add code for other platforms here." # endif /* Resolve alias. */ { # ifdef alias_table_defined /* On some platforms, UTF-8 locales are the most frequently used ones. Speed up the common case and slow down the less common cases by testing for this case first. */ # if defined __OpenBSD__ || (defined __APPLE__ && defined __MACH__) || defined __sun || defined __CYGWIN__ if (strcmp (codeset, "UTF-8") == 0) goto done_table_lookup; else # endif { const struct table_entry * const table = alias_table; size_t const table_size = sizeof (alias_table) / sizeof (struct table_entry); /* The table is sorted. Perform a binary search. */ size_t hi = table_size; size_t lo = 0; while (lo < hi) { /* Invariant: for i < lo, strcmp (table[i].alias, codeset) < 0, for i >= hi, strcmp (table[i].alias, codeset) > 0. */ size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ int cmp = strcmp (table[mid].alias, codeset); if (cmp < 0) lo = mid + 1; else if (cmp > 0) hi = mid; else { /* Found an i with strcmp (table[i].alias, codeset) == 0. */ codeset = table[mid].canonical; goto done_table_lookup; } } } if (0) done_table_lookup: ; else # endif { /* Did not find it in the table. */ /* On Mac OS X, all modern locales use the UTF-8 encoding. BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ # if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ codeset = "UTF-8"; # else /* Don't return an empty string. GNU libc and GNU libiconv interpret the empty string as denoting "the locale's character encoding", thus GNU libiconv would call this function a second time. */ if (codeset[0] == '\0') codeset = "ASCII"; # endif } } #else /* On old systems which lack it, use setlocale or getenv. */ const char *locale = NULL; /* But most old systems don't have a complete set of locales. Some (like DJGPP) have only the C locale. Therefore we don't use setlocale here; it would return "C" when it doesn't support the locale name the user has set. */ # if 0 locale = setlocale (LC_CTYPE, NULL); # endif if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); if (locale == NULL) locale = ""; } } /* Map locale name to canonical encoding name. */ { # ifdef locale_table_defined const struct table_entry * const table = locale_table; size_t const table_size = sizeof (locale_table) / sizeof (struct table_entry); /* The table is sorted. Perform a binary search. */ size_t hi = table_size; size_t lo = 0; while (lo < hi) { /* Invariant: for i < lo, strcmp (table[i].locale, locale) < 0, for i >= hi, strcmp (table[i].locale, locale) > 0. */ size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ int cmp = strcmp (table[mid].locale, locale); if (cmp < 0) lo = mid + 1; else if (cmp > 0) hi = mid; else { /* Found an i with strcmp (table[i].locale, locale) == 0. */ codeset = table[mid].canonical; goto done_table_lookup; } } if (0) done_table_lookup: ; else # endif { /* Did not find it in the table. */ /* On Mac OS X, all modern locales use the UTF-8 encoding. BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ # if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ codeset = "UTF-8"; # else /* The canonical name cannot be determined. */ /* Don't return an empty string. GNU libc and GNU libiconv interpret the empty string as denoting "the locale's character encoding", thus GNU libiconv would call this function a second time. */ codeset = "ASCII"; # endif } } #endif #ifdef DARWIN7 /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8" (the default codeset) does not work when MB_CUR_MAX is 1. */ if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX_L (uselocale (NULL)) <= 1) codeset = "ASCII"; #endif return codeset; } libprelude-5.2.0/libmissing/PaxHeaders.14770/malloca.c0000644000000000000000000000011013726163410020557 xustar000000000000000024 mtime=1599661832.583 24 atime=1599661832.753 24 ctime=1599661998.787 libprelude-5.2.0/libmissing/malloca.c0000644000000000000000000000643113726163410017566 0ustar00rootroot00000000000000/* Safe automatic memory allocation. Copyright (C) 2003, 2006-2007, 2009-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2003, 2018. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #define _GL_USE_STDLIB_ALLOC 1 #include /* Specification. */ #include "malloca.h" #include "verify.h" /* The speed critical point in this file is freea() applied to an alloca() result: it must be fast, to match the speed of alloca(). The speed of mmalloca() and freea() in the other case are not critical, because they are only invoked for big memory sizes. Here we use a bit in the address as an indicator, an idea by OndÅ™ej Bílka. malloca() can return three types of pointers: - Pointers ≡ 0 mod 2*sa_alignment_max come from stack allocation. - Pointers ≡ sa_alignment_max mod 2*sa_alignment_max come from heap allocation. - NULL comes from a failed heap allocation. */ /* Type for holding very small pointer differences. */ typedef unsigned char small_t; /* Verify that it is wide enough. */ verify (2 * sa_alignment_max - 1 <= (small_t) -1); void * mmalloca (size_t n) { #if HAVE_ALLOCA /* Allocate one more word, used to determine the address to pass to freea(), and room for the alignment ≡ sa_alignment_max mod 2*sa_alignment_max. */ size_t nplus = n + sizeof (small_t) + 2 * sa_alignment_max - 1; if (nplus >= n) { char *mem = (char *) malloc (nplus); if (mem != NULL) { char *p = (char *)((((uintptr_t)mem + sizeof (small_t) + sa_alignment_max - 1) & ~(uintptr_t)(2 * sa_alignment_max - 1)) + sa_alignment_max); /* Here p >= mem + sizeof (small_t), and p <= mem + sizeof (small_t) + 2 * sa_alignment_max - 1 hence p + n <= mem + nplus. So, the memory range [p, p+n) lies in the allocated memory range [mem, mem + nplus). */ ((small_t *) p)[-1] = p - mem; /* p ≡ sa_alignment_max mod 2*sa_alignment_max. */ return p; } } /* Out of memory. */ return NULL; #else # if !MALLOC_0_IS_NONNULL if (n == 0) n = 1; # endif return malloc (n); #endif } #if HAVE_ALLOCA void freea (void *p) { /* Check argument. */ if ((uintptr_t) p & (sa_alignment_max - 1)) { /* p was not the result of a malloca() call. Invalid argument. */ abort (); } /* Determine whether p was a non-NULL pointer returned by mmalloca(). */ if ((uintptr_t) p & sa_alignment_max) { void *mem = (char *) p - ((small_t *) p)[-1]; free (mem); } } #endif /* * Hey Emacs! * Local Variables: * coding: utf-8 * End: */ libprelude-5.2.0/libmissing/PaxHeaders.14770/minmax.h0000644000000000000000000000011013726163410020445 xustar000000000000000024 mtime=1599661832.585 24 atime=1599661832.753 24 ctime=1599661998.789 libprelude-5.2.0/libmissing/minmax.h0000644000000000000000000000452013726163410017451 0ustar00rootroot00000000000000/* MIN, MAX macros. Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _MINMAX_H #define _MINMAX_H /* Note: MIN, MAX are also defined in on some systems (glibc, IRIX, HP-UX, OSF/1). Therefore you might get warnings about MIN, MAX macro redefinitions on some systems; the workaround is to #include this file as the last one among the #include list. */ /* Before we define the following symbols we get the file since otherwise we get redefinitions on some systems if is included after this file. Likewise for . If more than one of these system headers define MIN and MAX, pick just one of the headers (because the definitions most likely are the same). */ #if HAVE_MINMAX_IN_LIMITS_H # include #elif HAVE_MINMAX_IN_SYS_PARAM_H # include #endif /* Note: MIN and MAX should be used with two arguments of the same type. They might not return the minimum and maximum of their two arguments, if the arguments have different types or have unusual floating-point values. For example, on a typical host with 32-bit 'int', 64-bit 'long long', and 64-bit IEEE 754 'double' types: MAX (-1, 2147483648) returns 4294967295. MAX (9007199254740992.0, 9007199254740993) returns 9007199254740992.0. MAX (NaN, 0.0) returns 0.0. MAX (+0.0, -0.0) returns -0.0. and in each case the answer is in some sense bogus. */ /* MAX(a,b) returns the maximum of A and B. */ #ifndef MAX # define MAX(a,b) ((a) > (b) ? (a) : (b)) #endif /* MIN(a,b) returns the minimum of A and B. */ #ifndef MIN # define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif #endif /* _MINMAX_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/size_max.h0000644000000000000000000000011013726163410020773 xustar000000000000000024 mtime=1599661832.597 24 atime=1599661832.757 24 ctime=1599661998.791 libprelude-5.2.0/libmissing/size_max.h0000644000000000000000000000224113726163410017775 0ustar00rootroot00000000000000/* size_max.h -- declare SIZE_MAX through system headers Copyright (C) 2005-2006, 2009-2018 Free Software Foundation, Inc. Written by Simon Josefsson. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef GNULIB_SIZE_MAX_H #define GNULIB_SIZE_MAX_H /* Get SIZE_MAX declaration on systems like Solaris 7/8/9. */ # include /* Get SIZE_MAX declaration on systems like glibc 2. */ # if HAVE_STDINT_H # include # endif /* On systems where these include files don't define it, SIZE_MAX is defined in config.h. */ #endif /* GNULIB_SIZE_MAX_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/sockets.h0000644000000000000000000000011013726163410020627 xustar000000000000000024 mtime=1599661832.598 24 atime=1599661832.757 24 ctime=1599661998.794 libprelude-5.2.0/libmissing/sockets.h0000644000000000000000000000320213726163410017627 0ustar00rootroot00000000000000/* sockets.h - wrappers for Windows socket functions Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Simon Josefsson */ #ifndef SOCKETS_H #define SOCKETS_H 1 #define SOCKETS_1_0 0x0001 #define SOCKETS_1_1 0x0101 #define SOCKETS_2_0 0x0002 #define SOCKETS_2_1 0x0102 #define SOCKETS_2_2 0x0202 int gl_sockets_startup (int version) #ifndef WINDOWS_SOCKETS _GL_ATTRIBUTE_CONST #endif ; int gl_sockets_cleanup (void) #ifndef WINDOWS_SOCKETS _GL_ATTRIBUTE_CONST #endif ; /* This function is useful it you create a socket using gnulib's Winsock wrappers but needs to pass on the socket handle to some other library that only accepts sockets. */ #ifdef WINDOWS_SOCKETS # include # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif static inline SOCKET gl_fd_to_handle (int fd) { return _get_osfhandle (fd); } #else # define gl_fd_to_handle(x) (x) #endif /* WINDOWS_SOCKETS */ #endif /* SOCKETS_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/sockets.c0000644000000000000000000000011013726163410020622 xustar000000000000000024 mtime=1599661832.598 24 atime=1599661832.757 24 ctime=1599661998.796 libprelude-5.2.0/libmissing/sockets.c0000644000000000000000000001022013726163410017620 0ustar00rootroot00000000000000/* sockets.c --- wrappers for Windows socket functions Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Simon Josefsson */ #include /* Specification. */ #include "sockets.h" #if WINDOWS_SOCKETS /* This includes winsock2.h on MinGW. */ # include # include "fd-hook.h" # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif /* Get set_winsock_errno, FD_TO_SOCKET etc. */ # include "w32sock.h" static int close_fd_maybe_socket (const struct fd_hook *remaining_list, gl_close_fn primary, int fd) { /* Note about multithread-safety: There is a race condition where, between our calls to closesocket() and the primary close(), some other thread could make system calls that allocate precisely the same HANDLE value as sock; then the primary close() would call CloseHandle() on it. */ SOCKET sock; WSANETWORKEVENTS ev; /* Test whether fd refers to a socket. */ sock = FD_TO_SOCKET (fd); ev.lNetworkEvents = 0xDEADBEEF; WSAEnumNetworkEvents (sock, NULL, &ev); if (ev.lNetworkEvents != 0xDEADBEEF) { /* fd refers to a socket. */ /* FIXME: other applications, like squid, use an undocumented _free_osfhnd free function. But this is not enough: The 'osfile' flags for fd also needs to be cleared, but it is hard to access it. Instead, here we just close twice the file descriptor. */ if (closesocket (sock)) { set_winsock_errno (); return -1; } else { /* This call frees the file descriptor and does a CloseHandle ((HANDLE) _get_osfhandle (fd)), which fails. */ _close (fd); return 0; } } else /* Some other type of file descriptor. */ return execute_close_hooks (remaining_list, primary, fd); } static int ioctl_fd_maybe_socket (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg) { SOCKET sock; WSANETWORKEVENTS ev; /* Test whether fd refers to a socket. */ sock = FD_TO_SOCKET (fd); ev.lNetworkEvents = 0xDEADBEEF; WSAEnumNetworkEvents (sock, NULL, &ev); if (ev.lNetworkEvents != 0xDEADBEEF) { /* fd refers to a socket. */ if (ioctlsocket (sock, request, arg) < 0) { set_winsock_errno (); return -1; } else return 0; } else /* Some other type of file descriptor. */ return execute_ioctl_hooks (remaining_list, primary, fd, request, arg); } static struct fd_hook fd_sockets_hook; static int initialized_sockets_version /* = 0 */; #endif /* WINDOWS_SOCKETS */ int gl_sockets_startup (int version _GL_UNUSED) { #if WINDOWS_SOCKETS if (version > initialized_sockets_version) { WSADATA data; int err; err = WSAStartup (version, &data); if (err != 0) return 1; if (data.wVersion != version) { WSACleanup (); return 2; } if (initialized_sockets_version == 0) register_fd_hook (close_fd_maybe_socket, ioctl_fd_maybe_socket, &fd_sockets_hook); initialized_sockets_version = version; } #endif return 0; } int gl_sockets_cleanup (void) { #if WINDOWS_SOCKETS int err; initialized_sockets_version = 0; unregister_fd_hook (&fd_sockets_hook); err = WSACleanup (); if (err != 0) return 1; #endif return 0; } libprelude-5.2.0/libmissing/PaxHeaders.14770/stat-time.c0000644000000000000000000000011013726163410021056 xustar000000000000000024 mtime=1599661832.598 24 atime=1599661832.757 24 ctime=1599661998.799 libprelude-5.2.0/libmissing/stat-time.c0000644000000000000000000000013213726163410020055 0ustar00rootroot00000000000000#include #define _GL_STAT_TIME_INLINE _GL_EXTERN_INLINE #include "stat-time.h" libprelude-5.2.0/libmissing/PaxHeaders.14770/sys_socket.c0000644000000000000000000000010713726163410021343 xustar000000000000000024 mtime=1599661832.606 23 atime=1599661832.76 24 ctime=1599661998.801 libprelude-5.2.0/libmissing/sys_socket.c0000644000000000000000000000015713726163410020343 0ustar00rootroot00000000000000#include #define _GL_SYS_SOCKET_INLINE _GL_EXTERN_INLINE #include "sys/socket.h" typedef int dummy; libprelude-5.2.0/libmissing/PaxHeaders.14770/unistd.c0000644000000000000000000000011013726163410020455 xustar000000000000000024 mtime=1599661832.652 24 atime=1599661832.771 24 ctime=1599661998.816 libprelude-5.2.0/libmissing/unistd.c0000644000000000000000000000014713726163410017462 0ustar00rootroot00000000000000#include #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE #include "unistd.h" typedef int dummy; libprelude-5.2.0/libmissing/PaxHeaders.14770/wctype-h.c0000644000000000000000000000011013726163410020707 xustar000000000000000024 mtime=1599661832.657 24 atime=1599661832.773 24 ctime=1599661998.818 libprelude-5.2.0/libmissing/wctype-h.c0000644000000000000000000000023313726163410017710 0ustar00rootroot00000000000000/* Normally this would be wctype.c, but that name's already taken. */ #include #define _GL_WCTYPE_INLINE _GL_EXTERN_INLINE #include "wctype.h" libprelude-5.2.0/libmissing/PaxHeaders.14770/xsize.h0000644000000000000000000000010713726163410020324 xustar000000000000000024 mtime=1599661832.658 24 atime=1599661832.773 23 ctime=1599661998.82 libprelude-5.2.0/libmissing/xsize.h0000644000000000000000000000710613726163410017325 0ustar00rootroot00000000000000/* xsize.h -- Checked size_t computations. Copyright (C) 2003, 2008-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _XSIZE_H #define _XSIZE_H /* Get size_t. */ #include /* Get SIZE_MAX. */ #include #if HAVE_STDINT_H # include #endif #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef XSIZE_INLINE # define XSIZE_INLINE _GL_INLINE #endif /* The size of memory objects is often computed through expressions of type size_t. Example: void* p = malloc (header_size + n * element_size). These computations can lead to overflow. When this happens, malloc() returns a piece of memory that is way too small, and the program then crashes while attempting to fill the memory. To avoid this, the functions and macros in this file check for overflow. The convention is that SIZE_MAX represents overflow. malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc implementation that uses mmap --, it's recommended to use size_overflow_p() or size_in_bounds_p() before invoking malloc(). The example thus becomes: size_t size = xsum (header_size, xtimes (n, element_size)); void *p = (size_in_bounds_p (size) ? malloc (size) : NULL); */ /* Convert an arbitrary value >= 0 to type size_t. */ #define xcast_size_t(N) \ ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX) /* Sum of two sizes, with overflow check. */ XSIZE_INLINE size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xsum (size_t size1, size_t size2) { size_t sum = size1 + size2; return (sum >= size1 ? sum : SIZE_MAX); } /* Sum of three sizes, with overflow check. */ XSIZE_INLINE size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xsum3 (size_t size1, size_t size2, size_t size3) { return xsum (xsum (size1, size2), size3); } /* Sum of four sizes, with overflow check. */ XSIZE_INLINE size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xsum4 (size_t size1, size_t size2, size_t size3, size_t size4) { return xsum (xsum (xsum (size1, size2), size3), size4); } /* Maximum of two sizes, with overflow check. */ XSIZE_INLINE size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xmax (size_t size1, size_t size2) { /* No explicit check is needed here, because for any n: max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX. */ return (size1 >= size2 ? size1 : size2); } /* Multiplication of a count with an element size, with overflow check. The count must be >= 0 and the element size must be > 0. This is a macro, not a function, so that it works correctly even when N is of a wider type and N > SIZE_MAX. */ #define xtimes(N, ELSIZE) \ ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX) /* Check for overflow. */ #define size_overflow_p(SIZE) \ ((SIZE) == SIZE_MAX) /* Check against overflow. */ #define size_in_bounds_p(SIZE) \ ((SIZE) != SIZE_MAX) _GL_INLINE_HEADER_END #endif /* _XSIZE_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/xsize.c0000644000000000000000000000011013726163410020311 xustar000000000000000024 mtime=1599661832.658 24 atime=1599661832.773 24 ctime=1599661998.823 libprelude-5.2.0/libmissing/xsize.c0000644000000000000000000000011613726163410017312 0ustar00rootroot00000000000000#include #define XSIZE_INLINE _GL_EXTERN_INLINE #include "xsize.h" libprelude-5.2.0/libmissing/PaxHeaders.14770/accept.c0000644000000000000000000000010713726163410020414 xustar000000000000000024 mtime=1599661832.532 23 atime=1599661832.74 24 ctime=1599661998.825 libprelude-5.2.0/libmissing/accept.c0000644000000000000000000000257013726163410017415 0ustar00rootroot00000000000000/* accept.c --- wrappers for Windows accept function Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paolo Bonzini */ #include #define WIN32_LEAN_AND_MEAN /* Get winsock2.h. */ #include /* Get set_winsock_errno, FD_TO_SOCKET etc. */ #include "w32sock.h" #undef accept int rpl_accept (int fd, struct sockaddr *addr, socklen_t *addrlen) { SOCKET sock = FD_TO_SOCKET (fd); if (sock == INVALID_SOCKET) { errno = EBADF; return -1; } else { SOCKET fh = accept (sock, addr, addrlen); if (fh == INVALID_SOCKET) { set_winsock_errno (); return -1; } else return SOCKET_TO_FD (fh); } } libprelude-5.2.0/libmissing/PaxHeaders.14770/bind.c0000644000000000000000000000010713726163410020071 xustar000000000000000024 mtime=1599661832.534 23 atime=1599661832.74 24 ctime=1599661998.828 libprelude-5.2.0/libmissing/bind.c0000644000000000000000000000243113726163410017066 0ustar00rootroot00000000000000/* bind.c --- wrappers for Windows bind function Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paolo Bonzini */ #include #define WIN32_LEAN_AND_MEAN /* Get winsock2.h. */ #include /* Get set_winsock_errno, FD_TO_SOCKET etc. */ #include "w32sock.h" #undef bind int rpl_bind (int fd, const struct sockaddr *sockaddr, socklen_t len) { SOCKET sock = FD_TO_SOCKET (fd); if (sock == INVALID_SOCKET) { errno = EBADF; return -1; } else { int r = bind (sock, sockaddr, len); if (r < 0) set_winsock_errno (); return r; } } libprelude-5.2.0/libmissing/PaxHeaders.14770/btowc.c0000644000000000000000000000010613726163410020272 xustar000000000000000024 mtime=1599661832.534 23 atime=1599661832.74 23 ctime=1599661998.83 libprelude-5.2.0/libmissing/btowc.c0000644000000000000000000000213713726163410017273 0ustar00rootroot00000000000000/* Convert unibyte character to wide character. Copyright (C) 2008, 2010-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include wint_t btowc (int c) { if (c != EOF) { char buf[1]; wchar_t wc; buf[0] = c; if (mbtowc (&wc, buf, 1) >= 0) return wc; } return WEOF; } libprelude-5.2.0/libmissing/PaxHeaders.14770/close.c0000644000000000000000000000011013726163410020254 xustar000000000000000024 mtime=1599661832.535 24 atime=1599661832.741 24 ctime=1599661998.832 libprelude-5.2.0/libmissing/close.c0000644000000000000000000000301713726163410017260 0ustar00rootroot00000000000000/* close replacement. Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include "fd-hook.h" #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #undef close #if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int close_nothrow (int fd) { int result; TRY_MSVC_INVAL { result = close (fd); } CATCH_MSVC_INVAL { result = -1; errno = EBADF; } DONE_MSVC_INVAL; return result; } #else # define close_nothrow close #endif /* Override close() to call into other gnulib modules. */ int rpl_close (int fd) { #if WINDOWS_SOCKETS int retval = execute_all_close_hooks (close_nothrow, fd); #else int retval = close_nothrow (fd); #endif #if REPLACE_FCHDIR if (retval >= 0) _gl_unregister_fd (fd); #endif return retval; } libprelude-5.2.0/libmissing/PaxHeaders.14770/connect.c0000644000000000000000000000011013726163410020600 xustar000000000000000024 mtime=1599661832.535 24 atime=1599661832.741 24 ctime=1599661998.835 libprelude-5.2.0/libmissing/connect.c0000644000000000000000000000304513726163410017605 0ustar00rootroot00000000000000/* connect.c --- wrappers for Windows connect function Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paolo Bonzini */ #include #define WIN32_LEAN_AND_MEAN /* Get winsock2.h. */ #include /* Get set_winsock_errno, FD_TO_SOCKET etc. */ #include "w32sock.h" #undef connect int rpl_connect (int fd, const struct sockaddr *sockaddr, socklen_t len) { SOCKET sock = FD_TO_SOCKET (fd); if (sock == INVALID_SOCKET) { errno = EBADF; return -1; } else { int r = connect (sock, sockaddr, len); if (r < 0) { /* EINPROGRESS is not returned by WinSock 2.0; for backwards compatibility, connect(2) uses EWOULDBLOCK. */ if (WSAGetLastError () == WSAEWOULDBLOCK) WSASetLastError (WSAEINPROGRESS); set_winsock_errno (); } return r; } } libprelude-5.2.0/libmissing/PaxHeaders.14770/dup2.c0000644000000000000000000000011013726163410020021 xustar000000000000000024 mtime=1599661832.536 24 atime=1599661832.741 24 ctime=1599661998.837 libprelude-5.2.0/libmissing/dup2.c0000644000000000000000000001161313726163410017026 0ustar00rootroot00000000000000/* Duplicate an open file descriptor to a specified file descriptor. Copyright (C) 1999, 2004-2007, 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* written by Paul Eggert */ #include /* Specification. */ #include #include #include #if HAVE_DUP2 # undef dup2 # if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include # if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" # endif /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int dup2_nothrow (int fd, int desired_fd) { int result; TRY_MSVC_INVAL { result = dup2 (fd, desired_fd); } CATCH_MSVC_INVAL { errno = EBADF; result = -1; } DONE_MSVC_INVAL; return result; } # else # define dup2_nothrow dup2 # endif static int ms_windows_dup2 (int fd, int desired_fd) { int result; /* If fd is closed, mingw hangs on dup2 (fd, fd). If fd is open, dup2 (fd, fd) returns 0, but all further attempts to use fd in future dup2 calls will hang. */ if (fd == desired_fd) { if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } return fd; } /* Wine 1.0.1 return 0 when desired_fd is negative but not -1: https://bugs.winehq.org/show_bug.cgi?id=21289 */ if (desired_fd < 0) { errno = EBADF; return -1; } result = dup2_nothrow (fd, desired_fd); if (result == 0) result = desired_fd; return result; } # define dup2 ms_windows_dup2 # elif defined __KLIBC__ # include static int klibc_dup2dirfd (int fd, int desired_fd) { int tempfd; int dupfd; tempfd = open ("NUL", O_RDONLY); if (tempfd == -1) return -1; if (tempfd == desired_fd) { close (tempfd); char path[_MAX_PATH]; if (__libc_Back_ioFHToPath (fd, path, sizeof (path))) return -1; return open(path, O_RDONLY); } dupfd = klibc_dup2dirfd (fd, desired_fd); close (tempfd); return dupfd; } static int klibc_dup2 (int fd, int desired_fd) { int dupfd; struct stat sbuf; dupfd = dup2 (fd, desired_fd); if (dupfd == -1 && errno == ENOTSUP \ && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) { close (desired_fd); return klibc_dup2dirfd (fd, desired_fd); } return dupfd; } # define dup2 klibc_dup2 # endif int rpl_dup2 (int fd, int desired_fd) { int result; # ifdef F_GETFL /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF. On Cygwin 1.5.x, dup2 (1, 1) returns 0. On Cygwin 1.7.17, dup2 (1, -1) dumps core. On Cygwin 1.7.25, dup2 (1, 256) can dump core. On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC. */ # if HAVE_SETDTABLESIZE setdtablesize (desired_fd + 1); # endif if (desired_fd < 0) fd = desired_fd; if (fd == desired_fd) return fcntl (fd, F_GETFL) == -1 ? -1 : fd; # endif result = dup2 (fd, desired_fd); /* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x. */ if (result == -1 && errno == EMFILE) errno = EBADF; # if REPLACE_FCHDIR if (fd != desired_fd && result != -1) result = _gl_register_dup (fd, result); # endif return result; } #else /* !HAVE_DUP2 */ /* On older platforms, dup2 did not exist. */ # ifndef F_DUPFD static int dupfd (int fd, int desired_fd) { int duplicated_fd = dup (fd); if (duplicated_fd < 0 || duplicated_fd == desired_fd) return duplicated_fd; else { int r = dupfd (fd, desired_fd); int e = errno; close (duplicated_fd); errno = e; return r; } } # endif int dup2 (int fd, int desired_fd) { int result = fcntl (fd, F_GETFL) < 0 ? -1 : fd; if (result == -1 || fd == desired_fd) return result; close (desired_fd); # ifdef F_DUPFD result = fcntl (fd, F_DUPFD, desired_fd); # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (fd, result); # endif # else result = dupfd (fd, desired_fd); # endif if (result == -1 && (errno == EMFILE || errno == EINVAL)) errno = EBADF; return result; } #endif /* !HAVE_DUP2 */ libprelude-5.2.0/libmissing/PaxHeaders.14770/fclose.c0000644000000000000000000000010713726163410020430 xustar000000000000000024 mtime=1599661832.536 24 atime=1599661832.741 23 ctime=1599661998.84 libprelude-5.2.0/libmissing/fclose.c0000644000000000000000000000562213726163410017432 0ustar00rootroot00000000000000/* fclose replacement. Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include "freading.h" #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #undef fclose #if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int fclose_nothrow (FILE *fp) { int result; TRY_MSVC_INVAL { result = fclose (fp); } CATCH_MSVC_INVAL { result = EOF; errno = EBADF; } DONE_MSVC_INVAL; return result; } #else # define fclose_nothrow fclose #endif /* Override fclose() to call the overridden fflush() or close(). */ int rpl_fclose (FILE *fp) { int saved_errno = 0; int fd; int result = 0; /* Don't change behavior on memstreams. */ fd = fileno (fp); if (fd < 0) return fclose_nothrow (fp); /* We only need to flush the file if it is not reading or if it is seekable. This only guarantees the file position of input files if the fflush module is also in use. */ if ((!freading (fp) || lseek (fileno (fp), 0, SEEK_CUR) != -1) && fflush (fp)) saved_errno = errno; /* fclose() calls close(), but we need to also invoke all hooks that our overridden close() function invokes. See lib/close.c. */ #if WINDOWS_SOCKETS /* Call the overridden close(), then the original fclose(). Note about multithread-safety: There is a race condition where some other thread could open fd between our close and fclose. */ if (close (fd) < 0 && saved_errno == 0) saved_errno = errno; fclose_nothrow (fp); /* will fail with errno = EBADF, if we did not lose a race */ #else /* !WINDOWS_SOCKETS */ /* Call fclose() and invoke all hooks of the overridden close(). */ # if REPLACE_FCHDIR /* Note about multithread-safety: There is a race condition here as well. Some other thread could open fd between our calls to fclose and _gl_unregister_fd. */ result = fclose_nothrow (fp); if (result == 0) _gl_unregister_fd (fd); # else /* No race condition here. */ result = fclose_nothrow (fp); # endif #endif /* !WINDOWS_SOCKETS */ if (saved_errno != 0) { errno = saved_errno; result = EOF; } return result; } libprelude-5.2.0/libmissing/PaxHeaders.14770/fflush.c0000644000000000000000000000011013726163410020436 xustar000000000000000024 mtime=1599661832.537 24 atime=1599661832.741 24 ctime=1599661998.842 libprelude-5.2.0/libmissing/fflush.c0000644000000000000000000001713013726163410017443 0ustar00rootroot00000000000000/* fflush.c -- allow flushing input streams Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Eric Blake. */ #include /* Specification. */ #include #include #include #include "freading.h" #include "stdio-impl.h" #include "unused-parameter.h" #undef fflush #if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */ static void clear_ungetc_buffer_preserving_position (FILE *fp) { if (fp->_flags & _IO_IN_BACKUP) /* _IO_free_backup_area is a bit complicated. Simply call fseek. */ fseeko (fp, 0, SEEK_CUR); } #else /* Clear the stream's ungetc buffer. May modify the value of ftello (fp). */ static void clear_ungetc_buffer (FILE *fp) { # if defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ if (HASUB (fp)) { fp_->_p += fp_->_r; fp_->_r = 0; } # elif defined __EMX__ /* emx+gcc */ if (fp->_ungetc_count > 0) { fp->_ungetc_count = 0; fp->_rcount = - fp->_rcount; } # elif defined _IOERR /* Minix, AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, MSVC, NonStop Kernel, OpenVMS */ /* Nothing to do. */ # else /* other implementations */ fseeko (fp, 0, SEEK_CUR); # endif } #endif #if ! (defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1) /* GNU libc, BeOS, Haiku, Linux libc5 */ # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ static int disable_seek_optimization (FILE *fp) { int saved_flags = fp_->_flags & (__SOPT | __SNPT); fp_->_flags = (fp_->_flags & ~__SOPT) | __SNPT; return saved_flags; } static void restore_seek_optimization (FILE *fp, int saved_flags) { fp_->_flags = (fp_->_flags & ~(__SOPT | __SNPT)) | saved_flags; } # else static void update_fpos_cache (FILE *fp _GL_UNUSED_PARAMETER, off_t pos _GL_UNUSED_PARAMETER) { # if defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ # if defined __CYGWIN__ /* fp_->_offset is typed as an integer. */ fp_->_offset = pos; # else /* fp_->_offset is an fpos_t. */ /* Use a union, since on NetBSD, the compilation flags determine whether fpos_t is typedef'd to off_t or a struct containing a single off_t member. */ union { fpos_t f; off_t o; } u; u.o = pos; fp_->_offset = u.f; # endif fp_->_flags |= __SOFF; # endif } # endif #endif /* Flush all pending data on STREAM according to POSIX rules. Both output and seekable input streams are supported. */ int rpl_fflush (FILE *stream) { /* When stream is NULL, POSIX and C99 only require flushing of "output streams and update streams in which the most recent operation was not input", and all implementations do this. When stream is "an output stream or an update stream in which the most recent operation was not input", POSIX and C99 requires that fflush writes out any buffered data, and all implementations do this. When stream is, however, an input stream or an update stream in which the most recent operation was input, C99 specifies nothing, and POSIX only specifies behavior if the stream is seekable. mingw, in particular, drops the input buffer, leaving the file descriptor positioned at the end of the input buffer. I.e. ftell (stream) is lost. We don't want to call the implementation's fflush in this case. We test ! freading (stream) here, rather than fwriting (stream), because what we need to know is whether the stream holds a "read buffer", and on mingw this is indicated by _IOREAD, regardless of _IOWRT. */ if (stream == NULL || ! freading (stream)) return fflush (stream); #if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ clear_ungetc_buffer_preserving_position (stream); return fflush (stream); #else { /* Notes about the file-position indicator: 1) The file position indicator is incremented by fgetc() and decremented by ungetc(): "... the fgetc() function shall ... advance the associated file position indicator for the stream ..." "The file-position indicator is decremented by each successful call to ungetc()..." 2) says: "The value of the file-position indicator for the stream after reading or discarding all pushed-back bytes shall be the same as it was before the bytes were pushed back." Here we are discarding all pushed-back bytes. But more specifically, 3) says: "[After fflush(),] the file offset of the underlying open file description shall be set to the file position of the stream, and any characters pushed back onto the stream by ungetc() ... shall be discarded." */ /* POSIX does not specify fflush behavior for non-seekable input streams. Some implementations purge unread data, some return EBADF, some do nothing. */ off_t pos = ftello (stream); if (pos == -1) { errno = EBADF; return EOF; } /* Clear the ungetc buffer. */ clear_ungetc_buffer (stream); /* To get here, we must be flushing a seekable input stream, so the semantics of fpurge are now appropriate to clear the buffer. To avoid losing data, the lseek is also necessary. */ { int result = fpurge (stream); if (result != 0) return result; } # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ { /* Disable seek optimization for the next fseeko call. This tells the following fseeko call to seek to the desired position directly, rather than to seek to a block-aligned boundary. */ int saved_flags = disable_seek_optimization (stream); int result = fseeko (stream, pos, SEEK_SET); restore_seek_optimization (stream, saved_flags); return result; } # else pos = lseek (fileno (stream), pos, SEEK_SET); if (pos == -1) return EOF; /* After a successful lseek, update the file descriptor's position cache in the stream. */ update_fpos_cache (stream, pos); return 0; # endif } #endif } libprelude-5.2.0/libmissing/PaxHeaders.14770/float.c0000644000000000000000000000011013726163410020254 xustar000000000000000024 mtime=1599661832.537 24 atime=1599661832.741 24 ctime=1599661998.844 libprelude-5.2.0/libmissing/float.c0000644000000000000000000000253413726163410017263 0ustar00rootroot00000000000000/* Auxiliary definitions for . Copyright (C) 2011-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__ const union gl_long_double_union gl_LDBL_MAX = { { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL } }; #elif defined __i386__ const union gl_long_double_union gl_LDBL_MAX = { { 0xFFFFFFFF, 0xFFFFFFFF, 32766 } }; #else /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/itold.c0000644000000000000000000000011013726163410020262 xustar000000000000000024 mtime=1599661832.546 24 atime=1599661832.743 24 ctime=1599661998.847 libprelude-5.2.0/libmissing/itold.c0000644000000000000000000000204013726163410017261 0ustar00rootroot00000000000000/* Replacement for 'int' to 'long double' conversion routine. Copyright (C) 2011-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include void _Qp_itoq (long double *result, int a) { /* Convert from 'int' to 'double', then from 'double' to 'long double'. */ *result = (double) a; } libprelude-5.2.0/libmissing/PaxHeaders.14770/fopen.c0000644000000000000000000000011013726163410020256 xustar000000000000000024 mtime=1599661832.538 24 atime=1599661832.741 24 ctime=1599661998.849 libprelude-5.2.0/libmissing/fopen.c0000644000000000000000000000664613726163410017275 0ustar00rootroot00000000000000/* Open a stream to a file. Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_fopen doesn't recurse to rpl_fopen. */ #define __need_FILE #include /* Get the original definition of fopen. It might be defined as a macro. */ #include #undef __need_FILE static FILE * orig_fopen (const char *filename, const char *mode) { return fopen (filename, mode); } /* Specification. */ /* Write "stdio.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ #include "stdio.h" #include #include #include #include #include #include FILE * rpl_fopen (const char *filename, const char *mode) { #if defined _WIN32 && ! defined __CYGWIN__ if (strcmp (filename, "/dev/null") == 0) filename = "NUL"; #endif #if FOPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and a mode that requires write access is specified, then fail. Rationale: POSIX says that "A pathname that contains at least one non-slash character and that ends with one or more trailing slashes shall be resolved as if a single dot character ( '.' ) were appended to the pathname." and "The special filename dot shall refer to the directory specified by its predecessor." If the named file already exists as a directory, then if a mode that requires write access is specified, fopen() must fail because POSIX says that it fails with errno = EISDIR in this case. If the named file does not exist or does not name a directory, then fopen() must fail since the file does not contain a '.' directory. */ { size_t len = strlen (filename); if (len > 0 && filename[len - 1] == '/') { int fd; struct stat statbuf; FILE *fp; if (mode[0] == 'w' || mode[0] == 'a') { errno = EISDIR; return NULL; } fd = open (filename, O_RDONLY); if (fd < 0) return NULL; if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) { close (fd); errno = ENOTDIR; return NULL; } fp = fdopen (fd, mode); if (fp == NULL) { int saved_errno = errno; close (fd); errno = saved_errno; } return fp; } } # endif return orig_fopen (filename, mode); } libprelude-5.2.0/libmissing/PaxHeaders.14770/fpurge.c0000644000000000000000000000011013726163410020437 xustar000000000000000024 mtime=1599661832.538 24 atime=1599661832.741 24 ctime=1599661998.852 libprelude-5.2.0/libmissing/fpurge.c0000644000000000000000000001172513726163410017450 0ustar00rootroot00000000000000/* Flushing buffers of a FILE stream. Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7, Android API >= 23 */ # include #endif #include #include "stdio-impl.h" int fpurge (FILE *fp) { #if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7, Android API >= 23, musl libc */ __fpurge (fp); /* The __fpurge function does not have a return value. */ return 0; #elif HAVE_FPURGE /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin 1.7 */ /* Call the system's fpurge function. */ # undef fpurge # if !HAVE_DECL_FPURGE extern int fpurge (FILE *); # endif int result = fpurge (fp); # if defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ if (result == 0) /* Correct the invariants that fpurge broke. on BSD systems says: "The following always hold: if _flags & __SRD, _w is 0." If this invariant is not fulfilled and the stream is read-write but currently reading, subsequent putc or fputc calls will write directly into the buffer, although they shouldn't be allowed to. */ if ((fp_->_flags & __SRD) != 0) fp_->_w = 0; # endif return result; #else /* Most systems provide FILE as a struct and the necessary bitmask in , because they need it for implementing getc() and putc() as fast macros. */ # if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ fp->_IO_read_end = fp->_IO_read_ptr; fp->_IO_write_ptr = fp->_IO_write_base; /* Avoid memory leak when there is an active ungetc buffer. */ if (fp->_IO_save_base != NULL) { free (fp->_IO_save_base); fp->_IO_save_base = NULL; } return 0; # elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ fp_->_p = fp_->_bf._base; fp_->_r = 0; fp_->_w = ((fp_->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */ ? fp_->_bf._size : 0); /* Avoid memory leak when there is an active ungetc buffer. */ if (fp_ub._base != NULL) { if (fp_ub._base != fp_->_ubuf) free (fp_ub._base); fp_ub._base = NULL; } return 0; # elif defined __EMX__ /* emx+gcc */ fp->_ptr = fp->_buffer; fp->_rcount = 0; fp->_wcount = 0; fp->_ungetc_count = 0; return 0; # elif defined __minix /* Minix */ fp->_ptr = fp->_buf; if (fp->_ptr != NULL) fp->_count = 0; return 0; # elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, MSVC, NonStop Kernel, OpenVMS */ fp_->_ptr = fp_->_base; if (fp_->_ptr != NULL) fp_->_cnt = 0; return 0; # elif defined __UCLIBC__ /* uClibc */ # ifdef __STDIO_BUFFERS if (fp->__modeflags & __FLAG_WRITING) fp->__bufpos = fp->__bufstart; else if (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) fp->__bufpos = fp->__bufread; # endif return 0; # elif defined __QNX__ /* QNX */ fp->_Rback = fp->_Back + sizeof (fp->_Back); fp->_Rsave = NULL; if (fp->_Mode & 0x2000 /* _MWRITE */) /* fp->_Buf <= fp->_Next <= fp->_Wend */ fp->_Next = fp->_Buf; else /* fp->_Buf <= fp->_Next <= fp->_Rend */ fp->_Rend = fp->_Next; return 0; # elif defined __MINT__ /* Atari FreeMiNT */ if (fp->__pushed_back) { fp->__bufp = fp->__pushback_bufp; fp->__pushed_back = 0; } /* Preserve the current file position. */ if (fp->__target != -1) fp->__target += fp->__bufp - fp->__buffer; fp->__bufp = fp->__buffer; /* Nothing in the buffer, next getc is nontrivial. */ fp->__get_limit = fp->__bufp; /* Nothing in the buffer, next putc is nontrivial. */ fp->__put_limit = fp->__buffer; return 0; # elif defined EPLAN9 /* Plan9 */ fp->rp = fp->wp = fp->lp = fp->buf; return 0; # else # error "Please port gnulib fpurge.c to your platform! Look at the definitions of fflush, setvbuf and ungetc on your system, then report this to bug-gnulib." # endif #endif } libprelude-5.2.0/libmissing/PaxHeaders.14770/fseek.c0000644000000000000000000000011013726163410020244 xustar000000000000000024 mtime=1599661832.538 24 atime=1599661832.741 24 ctime=1599661998.854 libprelude-5.2.0/libmissing/fseek.c0000644000000000000000000000206513726163410017252 0ustar00rootroot00000000000000/* An fseek() function that, together with fflush(), is POSIX compliant. Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include /* Get off_t. */ #include int fseek (FILE *fp, long offset, int whence) { /* Use the replacement fseeko function with all its workarounds. */ return fseeko (fp, (off_t)offset, whence); } libprelude-5.2.0/libmissing/PaxHeaders.14770/fseeko.c0000644000000000000000000000011013726163410020423 xustar000000000000000024 mtime=1599661832.539 24 atime=1599661832.741 24 ctime=1599661998.857 libprelude-5.2.0/libmissing/fseeko.c0000644000000000000000000001402213726163410017425 0ustar00rootroot00000000000000/* An fseeko() function that, together with fflush(), is POSIX compliant. Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include /* Get off_t, lseek, _POSIX_VERSION. */ #include #include "stdio-impl.h" int fseeko (FILE *fp, off_t offset, int whence) #undef fseeko #if !HAVE_FSEEKO # undef fseek # define fseeko fseek #endif #if _GL_WINDOWS_64_BIT_OFF_T # undef fseeko # if HAVE__FSEEKI64 && HAVE_DECL__FSEEKI64 /* msvc, mingw since msvcrt8.0, mingw64 */ # define fseeko _fseeki64 # else /* mingw before msvcrt8.0 */ # define fseeko fseeko64 # endif #endif { #if LSEEK_PIPE_BROKEN /* mingw gives bogus answers rather than failure on non-seekable files. */ if (lseek (fileno (fp), 0, SEEK_CUR) == -1) return EOF; #endif /* These tests are based on fpurge.c. */ #if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ if (fp->_IO_read_end == fp->_IO_read_ptr && fp->_IO_write_ptr == fp->_IO_write_base && fp->_IO_save_base == NULL) #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ # if defined __SL64 && defined __SCLE /* Cygwin */ if ((fp->_flags & __SL64) == 0) { /* Cygwin 1.5.0 through 1.5.24 failed to open stdin in 64-bit mode; but has an fseeko that requires 64-bit mode. */ FILE *tmp = fopen ("/dev/null", "r"); if (!tmp) return -1; fp->_flags |= __SL64; fp->_seek64 = tmp->_seek64; fclose (tmp); } # endif if (fp_->_p == fp_->_bf._base && fp_->_r == 0 && fp_->_w == ((fp_->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */ ? fp_->_bf._size : 0) && fp_ub._base == NULL) #elif defined __EMX__ /* emx+gcc */ if (fp->_ptr == fp->_buffer && fp->_rcount == 0 && fp->_wcount == 0 && fp->_ungetc_count == 0) #elif defined __minix /* Minix */ if (fp_->_ptr == fp_->_buf && (fp_->_ptr == NULL || fp_->_count == 0)) #elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, MSVC, NonStop Kernel, OpenVMS */ if (fp_->_ptr == fp_->_base && (fp_->_ptr == NULL || fp_->_cnt == 0)) #elif defined __UCLIBC__ /* uClibc */ if (((fp->__modeflags & __FLAG_WRITING) == 0 || fp->__bufpos == fp->__bufstart) && ((fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) == 0 || fp->__bufpos == fp->__bufread)) #elif defined __QNX__ /* QNX */ if ((fp->_Mode & 0x2000 /* _MWRITE */ ? fp->_Next == fp->_Buf : fp->_Next == fp->_Rend) && fp->_Rback == fp->_Back + sizeof (fp->_Back) && fp->_Rsave == NULL) #elif defined __MINT__ /* Atari FreeMiNT */ if (fp->__bufp == fp->__buffer && fp->__get_limit == fp->__bufp && fp->__put_limit == fp->__bufp && !fp->__pushed_back) #elif defined EPLAN9 /* Plan9 */ if (fp->rp == fp->buf && fp->wp == fp->buf) #elif FUNC_FFLUSH_STDIN < 0 && 200809 <= _POSIX_VERSION /* Cross-compiling to some other system advertising conformance to POSIX.1-2008 or later. Assume fseeko and fflush work as advertised. If this assumption is incorrect, please report the bug to bug-gnulib. */ if (0) #else #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib." #endif { /* We get here when an fflush() call immediately preceded this one (or if ftell() has created buffers but no I/O has occurred on a newly-opened stream). We know there are no buffers. */ off_t pos = lseek (fileno (fp), offset, whence); if (pos == -1) { #if defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ fp_->_flags &= ~__SOFF; #endif return -1; } #if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ fp->_flags &= ~_IO_EOF_SEEN; fp->_offset = pos; #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ # if defined __CYGWIN__ || (defined __NetBSD__ && __NetBSD_Version__ >= 600000000) || defined __minix /* fp_->_offset is typed as an integer. */ fp_->_offset = pos; # else /* fp_->_offset is an fpos_t. */ { /* Use a union, since on NetBSD, the compilation flags determine whether fpos_t is typedef'd to off_t or a struct containing a single off_t member. */ union { fpos_t f; off_t o; } u; u.o = pos; fp_->_offset = u.f; } # endif fp_->_flags |= __SOFF; fp_->_flags &= ~__SEOF; #elif defined __EMX__ /* emx+gcc */ fp->_flags &= ~_IOEOF; #elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, MSVC, NonStop Kernel, OpenVMS */ fp_->_flag &= ~_IOEOF; #elif defined __MINT__ /* Atari FreeMiNT */ fp->__offset = pos; fp->__eof = 0; #endif return 0; } return fseeko (fp, offset, whence); } libprelude-5.2.0/libmissing/PaxHeaders.14770/fstat.c0000644000000000000000000000011013726163410020270 xustar000000000000000024 mtime=1599661832.539 24 atime=1599661832.742 24 ctime=1599661998.859 libprelude-5.2.0/libmissing/fstat.c0000644000000000000000000000507513726163410017302 0ustar00rootroot00000000000000/* fstat() replacement. Copyright (C) 2011-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_fstat doesn't recurse to rpl_fstat. */ #define __need_system_sys_stat_h #include /* Get the original definition of fstat. It might be defined as a macro. */ #include #include #undef __need_system_sys_stat_h #if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE #endif #if !defined WINDOWS_NATIVE static int orig_fstat (int fd, struct stat *buf) { return fstat (fd, buf); } #endif /* Specification. */ /* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ #include "sys/stat.h" #include "stat-time.h" #include #include #ifdef WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN # include # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif # include "stat-w32.h" #endif int rpl_fstat (int fd, struct stat *buf) { #if REPLACE_FCHDIR && REPLACE_OPEN_DIRECTORY /* Handle the case when rpl_open() used a dummy file descriptor to work around an open() that can't normally visit directories. */ const char *name = _gl_directory_name (fd); if (name != NULL) return stat (name, buf); #endif #ifdef WINDOWS_NATIVE /* Fill the fields ourselves, because the original fstat function returns values for st_atime, st_mtime, st_ctime that depend on the current time zone. See */ HANDLE h = (HANDLE) _get_osfhandle (fd); if (h == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } return _gl_fstat_by_handle (h, NULL, buf); #else return stat_time_normalize (orig_fstat (fd, buf), buf); #endif } libprelude-5.2.0/libmissing/PaxHeaders.14770/stat-w32.c0000644000000000000000000000011013726163410020533 xustar000000000000000024 mtime=1599661832.599 24 atime=1599661832.757 24 ctime=1599661998.861 libprelude-5.2.0/libmissing/stat-w32.c0000644000000000000000000003754013726163410017547 0ustar00rootroot00000000000000/* Core of implementation of fstat and stat for native Windows. Copyright (C) 2017-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Bruno Haible. */ #include #if defined _WIN32 && ! defined __CYGWIN__ /* Ensure that defines FILE_ID_INFO. */ #undef _WIN32_WINNT #define _WIN32_WINNT _WIN32_WINNT_WIN8 #include #include #include #include #include #include #include /* Specification. */ #include "stat-w32.h" #include "pathmax.h" #include "verify.h" /* Avoid warnings from gcc -Wcast-function-type. */ #define GetProcAddress \ (void *) GetProcAddress #if _GL_WINDOWS_STAT_INODES == 2 /* GetFileInformationByHandleEx was introduced only in Windows Vista. */ typedef DWORD (WINAPI * GetFileInformationByHandleExFuncType) (HANDLE hFile, FILE_INFO_BY_HANDLE_CLASS fiClass, LPVOID lpBuffer, DWORD dwBufferSize); static GetFileInformationByHandleExFuncType GetFileInformationByHandleExFunc = NULL; #endif /* GetFinalPathNameByHandle was introduced only in Windows Vista. */ typedef DWORD (WINAPI * GetFinalPathNameByHandleFuncType) (HANDLE hFile, LPTSTR lpFilePath, DWORD lenFilePath, DWORD dwFlags); static GetFinalPathNameByHandleFuncType GetFinalPathNameByHandleFunc = NULL; static BOOL initialized = FALSE; static void initialize (void) { HMODULE kernel32 = LoadLibrary ("kernel32.dll"); if (kernel32 != NULL) { #if _GL_WINDOWS_STAT_INODES == 2 GetFileInformationByHandleExFunc = (GetFileInformationByHandleExFuncType) GetProcAddress (kernel32, "GetFileInformationByHandleEx"); #endif GetFinalPathNameByHandleFunc = (GetFinalPathNameByHandleFuncType) GetProcAddress (kernel32, "GetFinalPathNameByHandleA"); } initialized = TRUE; } /* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ #if _GL_WINDOWS_STAT_TIMESPEC struct timespec _gl_convert_FILETIME_to_timespec (const FILETIME *ft) { struct timespec result; /* FILETIME: */ unsigned long long since_1601 = ((unsigned long long) ft->dwHighDateTime << 32) | (unsigned long long) ft->dwLowDateTime; if (since_1601 == 0) { result.tv_sec = 0; result.tv_nsec = 0; } else { /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 leap years, in total 134774 days. */ unsigned long long since_1970 = since_1601 - (unsigned long long) 134774 * (unsigned long long) 86400 * (unsigned long long) 10000000; result.tv_sec = since_1970 / (unsigned long long) 10000000; result.tv_nsec = (unsigned long) (since_1970 % (unsigned long long) 10000000) * 100; } return result; } #else time_t _gl_convert_FILETIME_to_POSIX (const FILETIME *ft) { /* FILETIME: */ unsigned long long since_1601 = ((unsigned long long) ft->dwHighDateTime << 32) | (unsigned long long) ft->dwLowDateTime; if (since_1601 == 0) return 0; else { /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 leap years, in total 134774 days. */ unsigned long long since_1970 = since_1601 - (unsigned long long) 134774 * (unsigned long long) 86400 * (unsigned long long) 10000000; return since_1970 / (unsigned long long) 10000000; } } #endif /* Fill *BUF with information about the file designated by H. PATH is the file name, if known, otherwise NULL. Return 0 if successful, or -1 with errno set upon failure. */ int _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf) { /* GetFileType */ DWORD type = GetFileType (h); if (type == FILE_TYPE_DISK) { if (!initialized) initialize (); /* st_mode can be determined through GetFileAttributesEx or through GetFileInformationByHandle or through GetFileInformationByHandleEx with argument FileBasicInfo The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ BY_HANDLE_FILE_INFORMATION info; if (! GetFileInformationByHandle (h, &info)) goto failed; /* Test for error conditions before starting to fill *buf. */ if (sizeof (buf->st_size) <= 4 && info.nFileSizeHigh > 0) { errno = EOVERFLOW; return -1; } #if _GL_WINDOWS_STAT_INODES /* st_ino can be determined through GetFileInformationByHandle as 64 bits, or through GetFileInformationByHandleEx with argument FileIdInfo as 128 bits. The latter requires -D_WIN32_WINNT=_WIN32_WINNT_WIN8 or higher. */ /* Experiments show that GetFileInformationByHandleEx does not provide much more information than GetFileInformationByHandle: * The dwVolumeSerialNumber from GetFileInformationByHandle is equal to the low 32 bits of the 64-bit VolumeSerialNumber from GetFileInformationByHandleEx, and is apparently sufficient for identifying the device. * The nFileIndex from GetFileInformationByHandle is equal to the low 64 bits of the 128-bit FileId from GetFileInformationByHandleEx, and the high 64 bits of this 128-bit FileId are zero. * On a FAT file system, GetFileInformationByHandleEx fails with error ERROR_INVALID_PARAMETER, whereas GetFileInformationByHandle succeeds. * On a CIFS/SMB file system, GetFileInformationByHandleEx fails with error ERROR_INVALID_LEVEL, whereas GetFileInformationByHandle succeeds. */ # if _GL_WINDOWS_STAT_INODES == 2 if (GetFileInformationByHandleExFunc != NULL) { FILE_ID_INFO id; if (GetFileInformationByHandleExFunc (h, FileIdInfo, &id, sizeof (id))) { buf->st_dev = id.VolumeSerialNumber; verify (sizeof (ino_t) == sizeof (id.FileId)); memcpy (&buf->st_ino, &id.FileId, sizeof (ino_t)); goto ino_done; } else { switch (GetLastError ()) { case ERROR_INVALID_PARAMETER: /* older Windows version, or FAT */ case ERROR_INVALID_LEVEL: /* CIFS/SMB file system */ goto fallback; default: goto failed; } } } fallback: ; /* Fallback for older Windows versions. */ buf->st_dev = info.dwVolumeSerialNumber; buf->st_ino._gl_ino[0] = ((ULONGLONG) info.nFileIndexHigh << 32) | (ULONGLONG) info.nFileIndexLow; buf->st_ino._gl_ino[1] = 0; ino_done: ; # else /* _GL_WINDOWS_STAT_INODES == 1 */ buf->st_dev = info.dwVolumeSerialNumber; buf->st_ino = ((ULONGLONG) info.nFileIndexHigh << 32) | (ULONGLONG) info.nFileIndexLow; # endif #else /* st_ino is not wide enough for identifying a file on a device. Without st_ino, st_dev is pointless. */ buf->st_dev = 0; buf->st_ino = 0; #endif /* st_mode. */ unsigned int mode = /* XXX How to handle FILE_ATTRIBUTE_REPARSE_POINT ? */ ((info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? _S_IFDIR | S_IEXEC_UGO : _S_IFREG) | S_IREAD_UGO | ((info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0 : S_IWRITE_UGO); if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { /* Determine whether the file is executable by looking at the file name suffix. If the file name is already known, use it. Otherwise, for non-empty files, it can be determined through GetFinalPathNameByHandle or through GetFileInformationByHandleEx with argument FileNameInfo Both require -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0) { char fpath[PATH_MAX]; if (path != NULL || (GetFinalPathNameByHandleFunc != NULL && GetFinalPathNameByHandleFunc (h, fpath, sizeof (fpath), VOLUME_NAME_NONE) < sizeof (fpath) && (path = fpath, 1))) { const char *last_dot = NULL; const char *p; for (p = path; *p != '\0'; p++) if (*p == '.') last_dot = p; if (last_dot != NULL) { const char *suffix = last_dot + 1; if (_stricmp (suffix, "exe") == 0 || _stricmp (suffix, "bat") == 0 || _stricmp (suffix, "cmd") == 0 || _stricmp (suffix, "com") == 0) mode |= S_IEXEC_UGO; } } else /* Cannot determine file name. Pretend that it is executable. */ mode |= S_IEXEC_UGO; } } buf->st_mode = mode; /* st_nlink can be determined through GetFileInformationByHandle or through GetFileInformationByHandleEx with argument FileStandardInfo The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ buf->st_nlink = (info.nNumberOfLinks > SHRT_MAX ? SHRT_MAX : info.nNumberOfLinks); /* There's no easy way to map the Windows SID concept to an integer. */ buf->st_uid = 0; buf->st_gid = 0; /* st_rdev is irrelevant for normal files and directories. */ buf->st_rdev = 0; /* st_size can be determined through GetFileSizeEx or through GetFileAttributesEx or through GetFileInformationByHandle or through GetFileInformationByHandleEx with argument FileStandardInfo The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ if (sizeof (buf->st_size) <= 4) /* Range check already done above. */ buf->st_size = info.nFileSizeLow; else buf->st_size = ((long long) info.nFileSizeHigh << 32) | (long long) info.nFileSizeLow; /* st_atime, st_mtime, st_ctime can be determined through GetFileTime or through GetFileAttributesEx or through GetFileInformationByHandle or through GetFileInformationByHandleEx with argument FileBasicInfo The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ #if _GL_WINDOWS_STAT_TIMESPEC buf->st_atim = _gl_convert_FILETIME_to_timespec (&info.ftLastAccessTime); buf->st_mtim = _gl_convert_FILETIME_to_timespec (&info.ftLastWriteTime); buf->st_ctim = _gl_convert_FILETIME_to_timespec (&info.ftCreationTime); #else buf->st_atime = _gl_convert_FILETIME_to_POSIX (&info.ftLastAccessTime); buf->st_mtime = _gl_convert_FILETIME_to_POSIX (&info.ftLastWriteTime); buf->st_ctime = _gl_convert_FILETIME_to_POSIX (&info.ftCreationTime); #endif return 0; } else if (type == FILE_TYPE_CHAR || type == FILE_TYPE_PIPE) { buf->st_dev = 0; #if _GL_WINDOWS_STAT_INODES == 2 buf->st_ino._gl_ino[0] = buf->st_ino._gl_ino[1] = 0; #else buf->st_ino = 0; #endif buf->st_mode = (type == FILE_TYPE_PIPE ? _S_IFIFO : _S_IFCHR); buf->st_nlink = 1; buf->st_uid = 0; buf->st_gid = 0; buf->st_rdev = 0; if (type == FILE_TYPE_PIPE) { /* PeekNamedPipe */ DWORD bytes_available; if (PeekNamedPipe (h, NULL, 0, NULL, &bytes_available, NULL)) buf->st_size = bytes_available; else buf->st_size = 0; } else buf->st_size = 0; #if _GL_WINDOWS_STAT_TIMESPEC buf->st_atim.tv_sec = 0; buf->st_atim.tv_nsec = 0; buf->st_mtim.tv_sec = 0; buf->st_mtim.tv_nsec = 0; buf->st_ctim.tv_sec = 0; buf->st_ctim.tv_nsec = 0; #else buf->st_atime = 0; buf->st_mtime = 0; buf->st_ctime = 0; #endif return 0; } else { errno = ENOENT; return -1; } failed: { DWORD error = GetLastError (); #if 0 fprintf (stderr, "_gl_fstat_by_handle error 0x%x\n", (unsigned int) error); #endif switch (error) { case ERROR_ACCESS_DENIED: case ERROR_SHARING_VIOLATION: errno = EACCES; break; case ERROR_OUTOFMEMORY: errno = ENOMEM; break; case ERROR_WRITE_FAULT: case ERROR_READ_FAULT: case ERROR_GEN_FAILURE: errno = EIO; break; default: errno = EINVAL; break; } return -1; } } #else /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/ftell.c0000644000000000000000000000011013726163410020255 xustar000000000000000024 mtime=1599661832.539 24 atime=1599661832.742 24 ctime=1599661998.864 libprelude-5.2.0/libmissing/ftell.c0000644000000000000000000000220513726163410017257 0ustar00rootroot00000000000000/* An ftell() function that works around platform bugs. Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include long ftell (FILE *fp) { /* Use the replacement ftello function with all its workarounds. */ off_t offset = ftello (fp); if (LONG_MIN <= offset && offset <= LONG_MAX) return /* (long) */ offset; else { errno = EOVERFLOW; return -1; } } libprelude-5.2.0/libmissing/PaxHeaders.14770/ftello.c0000644000000000000000000000010713726163410020442 xustar000000000000000023 mtime=1599661832.54 24 atime=1599661832.742 24 ctime=1599661998.866 libprelude-5.2.0/libmissing/ftello.c0000644000000000000000000000464013726163410017443 0ustar00rootroot00000000000000/* An ftello() function that works around platform bugs. Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include /* Get lseek. */ #include #include "stdio-impl.h" off_t ftello (FILE *fp) #undef ftello #if !HAVE_FTELLO # undef ftell # define ftello ftell #endif #if _GL_WINDOWS_64_BIT_OFF_T # undef ftello # if HAVE__FTELLI64 /* msvc, mingw64 */ # define ftello _ftelli64 # else /* mingw */ # define ftello ftello64 # endif #endif { #if LSEEK_PIPE_BROKEN /* mingw gives bogus answers rather than failure on non-seekable files. */ if (lseek (fileno (fp), 0, SEEK_CUR) == -1) return -1; #endif #if FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE /* Solaris */ /* The Solaris stdio leaves the _IOREAD flag set after reading from a file reaches EOF and the program then starts writing to the file. ftello gets confused by this. */ if (fp_->_flag & _IOWRT) { off_t pos; /* Call ftello nevertheless, for the side effects that it does on fp. */ ftello (fp); /* Compute the file position ourselves. */ pos = lseek (fileno (fp), (off_t) 0, SEEK_CUR); if (pos >= 0) { if ((fp_->_flag & _IONBF) == 0 && fp_->_base != NULL) pos += fp_->_ptr - fp_->_base; } return pos; } #endif #if defined __SL64 && defined __SCLE /* Cygwin */ if ((fp->_flags & __SL64) == 0) { /* Cygwin 1.5.0 through 1.5.24 failed to open stdin in 64-bit mode; but has an ftello that requires 64-bit mode. */ FILE *tmp = fopen ("/dev/null", "r"); if (!tmp) return -1; fp->_flags |= __SL64; fp->_seek64 = tmp->_seek64; fclose (tmp); } #endif return ftello (fp); } libprelude-5.2.0/libmissing/PaxHeaders.14770/ftw.c0000644000000000000000000000010713726163410017755 xustar000000000000000023 mtime=1599661832.54 24 atime=1599661832.742 24 ctime=1599661998.869 libprelude-5.2.0/libmissing/ftw.c0000644000000000000000000000631413726163410016756 0ustar00rootroot00000000000000/* Copyright (C) 2005 Free Software Foundation, Inc. * Written by Yoann Vandoorselaere * * The file is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This file 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this file; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include #include "ftw_.h" #include "pathmax.h" static int get_path_infos(const char *path, struct stat *st, int *flag) { int ret; ret = stat(path, st); if ( ret < 0 ) { *flag = FTW_NS; return -1; } if ( S_ISREG(st->st_mode) ) *flag = FTW_F; else if ( S_ISDIR(st->st_mode) ) *flag = FTW_D; #ifdef S_ISLNK else if ( S_ISLNK(st->st_mode) ) *flag = FTW_SL; #endif return ret; } int ftw(const char *dir, int (*fn)(const char *file, const struct stat *sb, int flag), int nopenfd) { DIR *d; size_t len; struct stat st; struct dirent *de; int flag, ret = 0; char filename[PATH_MAX]; ret = get_path_infos(dir, &st, &flag); if ( ret < 0 ) return -1; d = opendir(dir); if ( ! d ) return (errno == EACCES) ? fn(dir, &st, FTW_DNR) : -1; ret = fn(dir, &st, flag); if ( ret < 0 ) { closedir(d); return ret; } while ( (de = readdir(d)) ) { len = snprintf(filename, sizeof(filename), "%s/%s", dir, de->d_name); if ( len < 0 || len >= sizeof(filename) ) { errno = ENAMETOOLONG; return -1; } ret = get_path_infos(filename, &st, &flag); if ( ret < 0 ) break; if ( flag == FTW_D ) { if ( strcmp(de->d_name, "..") == 0 || strcmp(de->d_name, ".") == 0 ) continue; ret = ftw(filename, fn, nopenfd); if ( ret < 0 ) break; continue; } ret = fn(filename, (flag == FTW_NS) ? NULL : &st, flag); if ( ret < 0 ) break; } closedir(d); return ret; } libprelude-5.2.0/libmissing/PaxHeaders.14770/gai_strerror.c0000644000000000000000000000010713726163410021657 xustar000000000000000023 mtime=1599661832.54 24 atime=1599661832.742 24 ctime=1599661998.871 libprelude-5.2.0/libmissing/gai_strerror.c0000644000000000000000000000527313726163410020663 0ustar00rootroot00000000000000/* Copyright (C) 1997, 2001-2002, 2004-2006, 2008-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Philip Blundell , 1997. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _LIBC # include #endif #include #include #ifdef _LIBC # include #else # include "gettext.h" # define _(String) gettext (String) # define N_(String) String #endif #if HAVE_DECL_GAI_STRERROR # include # undef gai_strerror # if HAVE_DECL_GAI_STRERRORA # define gai_strerror gai_strerrorA # endif const char * rpl_gai_strerror (int code) { return gai_strerror (code); } #else /* !HAVE_DECL_GAI_STRERROR */ static struct { int code; const char *msg; } values[] = { { EAI_ADDRFAMILY, N_("Address family for hostname not supported") }, { EAI_AGAIN, N_("Temporary failure in name resolution") }, { EAI_BADFLAGS, N_("Bad value for ai_flags") }, { EAI_FAIL, N_("Non-recoverable failure in name resolution") }, { EAI_FAMILY, N_("ai_family not supported") }, { EAI_MEMORY, N_("Memory allocation failure") }, { EAI_NODATA, N_("No address associated with hostname") }, { EAI_NONAME, N_("Name or service not known") }, { EAI_SERVICE, N_("Servname not supported for ai_socktype") }, { EAI_SOCKTYPE, N_("ai_socktype not supported") }, { EAI_SYSTEM, N_("System error") }, { EAI_OVERFLOW, N_("Argument buffer too small") }, #ifdef EAI_INPROGRESS { EAI_INPROGRESS, N_("Processing request in progress") }, { EAI_CANCELED, N_("Request canceled") }, { EAI_NOTCANCELED, N_("Request not canceled") }, { EAI_ALLDONE, N_("All requests done") }, { EAI_INTR, N_("Interrupted by a signal") }, { EAI_IDN_ENCODE, N_("Parameter string not correctly encoded") } #endif }; const char * gai_strerror (int code) { size_t i; for (i = 0; i < sizeof (values) / sizeof (values[0]); ++i) if (values[i].code == code) return _(values[i].msg); return _("Unknown error"); } # ifdef _LIBC libc_hidden_def (gai_strerror) # endif #endif /* !HAVE_DECL_GAI_STRERROR */ libprelude-5.2.0/libmissing/PaxHeaders.14770/getaddrinfo.c0000644000000000000000000000010713726163410021443 xustar000000000000000023 mtime=1599661832.54 24 atime=1599661832.742 24 ctime=1599661998.873 libprelude-5.2.0/libmissing/getaddrinfo.c0000644000000000000000000002442713726163410020451 0ustar00rootroot00000000000000/* Get address information (partial implementation). Copyright (C) 1997, 2001-2002, 2004-2018 Free Software Foundation, Inc. Contributed by Simon Josefsson . This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the sa == NULL test below. */ #define _GL_ARG_NONNULL(params) #include #include #if HAVE_NETINET_IN_H # include #endif /* Get inet_ntop. */ #include /* Get calloc. */ #include /* Get memcpy, strdup. */ #include /* Get snprintf. */ #include #include #include "gettext.h" #define _(String) gettext (String) #define N_(String) String /* BeOS has AF_INET, but not PF_INET. */ #ifndef PF_INET # define PF_INET AF_INET #endif /* BeOS also lacks PF_UNSPEC. */ #ifndef PF_UNSPEC # define PF_UNSPEC 0 #endif #if defined _WIN32 && !defined __CYGWIN__ # define WINDOWS_NATIVE #endif /* gl_sockets_startup */ #include "sockets.h" #ifdef WINDOWS_NATIVE /* Avoid warnings from gcc -Wcast-function-type. */ # define GetProcAddress \ (void *) GetProcAddress typedef int (WSAAPI *getaddrinfo_func) (const char*, const char*, const struct addrinfo*, struct addrinfo**); typedef void (WSAAPI *freeaddrinfo_func) (struct addrinfo*); typedef int (WSAAPI *getnameinfo_func) (const struct sockaddr*, socklen_t, char*, DWORD, char*, DWORD, int); static getaddrinfo_func getaddrinfo_ptr = NULL; static freeaddrinfo_func freeaddrinfo_ptr = NULL; static getnameinfo_func getnameinfo_ptr = NULL; static int use_win32_p (void) { static int done = 0; HMODULE h; if (done) return getaddrinfo_ptr ? 1 : 0; done = 1; h = GetModuleHandle ("ws2_32.dll"); if (h) { getaddrinfo_ptr = (getaddrinfo_func) GetProcAddress (h, "getaddrinfo"); freeaddrinfo_ptr = (freeaddrinfo_func) GetProcAddress (h, "freeaddrinfo"); getnameinfo_ptr = (getnameinfo_func) GetProcAddress (h, "getnameinfo"); } /* If either is missing, something is odd. */ if (!getaddrinfo_ptr || !freeaddrinfo_ptr || !getnameinfo_ptr) { getaddrinfo_ptr = NULL; freeaddrinfo_ptr = NULL; getnameinfo_ptr = NULL; return 0; } gl_sockets_startup (SOCKETS_1_1); return 1; } #endif static bool validate_family (int family) { /* FIXME: Support more families. */ #if HAVE_IPV4 if (family == PF_INET) return true; #endif #if HAVE_IPV6 if (family == PF_INET6) return true; #endif if (family == PF_UNSPEC) return true; return false; } /* Translate name of a service location and/or a service name to set of socket addresses. */ int getaddrinfo (const char *restrict nodename, const char *restrict servname, const struct addrinfo *restrict hints, struct addrinfo **restrict res) { struct addrinfo *tmp; int port = 0; struct hostent *he; void *storage; size_t size; #if HAVE_IPV6 struct v6_pair { struct addrinfo addrinfo; struct sockaddr_in6 sockaddr_in6; }; #endif #if HAVE_IPV4 struct v4_pair { struct addrinfo addrinfo; struct sockaddr_in sockaddr_in; }; #endif #ifdef WINDOWS_NATIVE if (use_win32_p ()) return getaddrinfo_ptr (nodename, servname, hints, res); #endif if (hints && (hints->ai_flags & ~(AI_CANONNAME|AI_PASSIVE))) /* FIXME: Support more flags. */ return EAI_BADFLAGS; if (hints && !validate_family (hints->ai_family)) return EAI_FAMILY; if (hints && hints->ai_socktype != SOCK_STREAM && hints->ai_socktype != SOCK_DGRAM) /* FIXME: Support other socktype. */ return EAI_SOCKTYPE; /* FIXME: Better return code? */ if (!nodename) { if (!(hints->ai_flags & AI_PASSIVE)) return EAI_NONAME; #ifdef HAVE_IPV6 nodename = (hints->ai_family == AF_INET6) ? "::" : "0.0.0.0"; #else nodename = "0.0.0.0"; #endif } if (servname) { struct servent *se = NULL; const char *proto = (hints && hints->ai_socktype == SOCK_DGRAM) ? "udp" : "tcp"; if (hints == NULL || !(hints->ai_flags & AI_NUMERICSERV)) /* FIXME: Use getservbyname_r if available. */ se = getservbyname (servname, proto); if (!se) { char *c; if (!(*servname >= '0' && *servname <= '9')) return EAI_NONAME; port = strtoul (servname, &c, 10); if (*c || port > 0xffff) return EAI_NONAME; port = htons (port); } else port = se->s_port; } /* FIXME: Use gethostbyname_r if available. */ he = gethostbyname (nodename); if (!he || he->h_addr_list[0] == NULL) return EAI_NONAME; switch (he->h_addrtype) { #if HAVE_IPV6 case PF_INET6: size = sizeof (struct v6_pair); break; #endif #if HAVE_IPV4 case PF_INET: size = sizeof (struct v4_pair); break; #endif default: return EAI_NODATA; } storage = calloc (1, size); if (!storage) return EAI_MEMORY; switch (he->h_addrtype) { #if HAVE_IPV6 case PF_INET6: { struct v6_pair *p = storage; struct sockaddr_in6 *sinp = &p->sockaddr_in6; tmp = &p->addrinfo; if (port) sinp->sin6_port = port; if (he->h_length != sizeof (sinp->sin6_addr)) { free (storage); return EAI_SYSTEM; /* FIXME: Better return code? Set errno? */ } memcpy (&sinp->sin6_addr, he->h_addr_list[0], sizeof sinp->sin6_addr); tmp->ai_addr = (struct sockaddr *) sinp; tmp->ai_addrlen = sizeof *sinp; } break; #endif #if HAVE_IPV4 case PF_INET: { struct v4_pair *p = storage; struct sockaddr_in *sinp = &p->sockaddr_in; tmp = &p->addrinfo; if (port) sinp->sin_port = port; if (he->h_length != sizeof (sinp->sin_addr)) { free (storage); return EAI_SYSTEM; /* FIXME: Better return code? Set errno? */ } memcpy (&sinp->sin_addr, he->h_addr_list[0], sizeof sinp->sin_addr); tmp->ai_addr = (struct sockaddr *) sinp; tmp->ai_addrlen = sizeof *sinp; } break; #endif default: free (storage); return EAI_NODATA; } if (hints && hints->ai_flags & AI_CANONNAME) { const char *cn; if (he->h_name) cn = he->h_name; else cn = nodename; tmp->ai_canonname = strdup (cn); if (!tmp->ai_canonname) { free (storage); return EAI_MEMORY; } } tmp->ai_protocol = (hints) ? hints->ai_protocol : 0; tmp->ai_socktype = (hints) ? hints->ai_socktype : 0; tmp->ai_addr->sa_family = he->h_addrtype; tmp->ai_family = he->h_addrtype; #ifdef HAVE_STRUCT_SOCKADDR_SA_LEN switch (he->h_addrtype) { #if HAVE_IPV4 case AF_INET: tmp->ai_addr->sa_len = sizeof (struct sockaddr_in); break; #endif #if HAVE_IPV6 case AF_INET6: tmp->ai_addr->sa_len = sizeof (struct sockaddr_in6); break; #endif } #endif /* FIXME: If more than one address, create linked list of addrinfo's. */ *res = tmp; return 0; } /* Free 'addrinfo' structure AI including associated storage. */ void freeaddrinfo (struct addrinfo *ai) { #ifdef WINDOWS_NATIVE if (use_win32_p ()) { freeaddrinfo_ptr (ai); return; } #endif while (ai) { struct addrinfo *cur; cur = ai; ai = ai->ai_next; free (cur->ai_canonname); free (cur); } } int getnameinfo (const struct sockaddr *restrict sa, socklen_t salen, char *restrict node, socklen_t nodelen, char *restrict service, socklen_t servicelen, int flags) { #ifdef WINDOWS_NATIVE if (use_win32_p ()) return getnameinfo_ptr (sa, salen, node, nodelen, service, servicelen, flags); #endif /* FIXME: Support other flags. */ if ((node && nodelen > 0 && !(flags & NI_NUMERICHOST)) || (service && servicelen > 0 && !(flags & NI_NUMERICHOST)) || (flags & ~(NI_NUMERICHOST|NI_NUMERICSERV))) return EAI_BADFLAGS; if (sa == NULL || salen < sizeof (sa->sa_family)) return EAI_FAMILY; switch (sa->sa_family) { #if HAVE_IPV4 case AF_INET: if (salen < sizeof (struct sockaddr_in)) return EAI_FAMILY; break; #endif #if HAVE_IPV6 case AF_INET6: if (salen < sizeof (struct sockaddr_in6)) return EAI_FAMILY; break; #endif default: return EAI_FAMILY; } if (node && nodelen > 0 && flags & NI_NUMERICHOST) { switch (sa->sa_family) { #if HAVE_IPV4 case AF_INET: if (!inet_ntop (AF_INET, &(((const struct sockaddr_in *) sa)->sin_addr), node, nodelen)) return EAI_SYSTEM; break; #endif #if HAVE_IPV6 case AF_INET6: if (!inet_ntop (AF_INET6, &(((const struct sockaddr_in6 *) sa)->sin6_addr), node, nodelen)) return EAI_SYSTEM; break; #endif default: return EAI_FAMILY; } } if (service && servicelen > 0 && flags & NI_NUMERICSERV) switch (sa->sa_family) { #if HAVE_IPV4 case AF_INET: #endif #if HAVE_IPV6 case AF_INET6: #endif { unsigned short int port = ntohs (((const struct sockaddr_in *) sa)->sin_port); if (servicelen <= snprintf (service, servicelen, "%u", port)) return EAI_OVERFLOW; } break; } return 0; } libprelude-5.2.0/libmissing/PaxHeaders.14770/getdelim.c0000644000000000000000000000010713726163410020747 xustar000000000000000023 mtime=1599661832.54 24 atime=1599661832.742 24 ctime=1599661998.876 libprelude-5.2.0/libmissing/getdelim.c0000644000000000000000000000754113726163410017753 0ustar00rootroot00000000000000/* getdelim.c --- Implementation of replacement getdelim function. Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Ported from glibc by Simon Josefsson. */ /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the lineptr == NULL || n == NULL || fp == NULL tests below. */ #define _GL_ARG_NONNULL(params) #include #include #include #include #include #include #ifndef SSIZE_MAX # define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) #endif #if USE_UNLOCKED_IO # include "unlocked-io.h" # define getc_maybe_unlocked(fp) getc(fp) #elif !HAVE_FLOCKFILE || !HAVE_FUNLOCKFILE || !HAVE_DECL_GETC_UNLOCKED # undef flockfile # undef funlockfile # define flockfile(x) ((void) 0) # define funlockfile(x) ((void) 0) # define getc_maybe_unlocked(fp) getc(fp) #else # define getc_maybe_unlocked(fp) getc_unlocked(fp) #endif static void alloc_failed (void) { #if defined _WIN32 && ! defined __CYGWIN__ /* Avoid errno problem without using the realloc module; see: https://lists.gnu.org/r/bug-gnulib/2016-08/msg00025.html */ errno = ENOMEM; #endif } /* Read up to (and including) a DELIMITER from FP into *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *N characters of space. It is realloc'ed as necessary. Returns the number of characters read (not including the null terminator), or -1 on error or EOF. */ ssize_t getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp) { ssize_t result; size_t cur_len = 0; if (lineptr == NULL || n == NULL || fp == NULL) { errno = EINVAL; return -1; } flockfile (fp); if (*lineptr == NULL || *n == 0) { char *new_lineptr; *n = 120; new_lineptr = (char *) realloc (*lineptr, *n); if (new_lineptr == NULL) { alloc_failed (); result = -1; goto unlock_return; } *lineptr = new_lineptr; } for (;;) { int i; i = getc_maybe_unlocked (fp); if (i == EOF) { result = -1; break; } /* Make enough space for len+1 (for final NUL) bytes. */ if (cur_len + 1 >= *n) { size_t needed_max = SSIZE_MAX < SIZE_MAX ? (size_t) SSIZE_MAX + 1 : SIZE_MAX; size_t needed = 2 * *n + 1; /* Be generous. */ char *new_lineptr; if (needed_max < needed) needed = needed_max; if (cur_len + 1 >= needed) { result = -1; errno = EOVERFLOW; goto unlock_return; } new_lineptr = (char *) realloc (*lineptr, needed); if (new_lineptr == NULL) { alloc_failed (); result = -1; goto unlock_return; } *lineptr = new_lineptr; *n = needed; } (*lineptr)[cur_len] = i; cur_len++; if (i == delimiter) break; } (*lineptr)[cur_len] = '\0'; result = cur_len ? cur_len : result; unlock_return: funlockfile (fp); /* doesn't set errno */ return result; } libprelude-5.2.0/libmissing/PaxHeaders.14770/gethostname.c0000644000000000000000000000011013726163410021465 xustar000000000000000024 mtime=1599661832.541 24 atime=1599661832.742 24 ctime=1599661998.878 libprelude-5.2.0/libmissing/gethostname.c0000644000000000000000000000537213726163410020477 0ustar00rootroot00000000000000/* gethostname emulation for SysV and POSIX.1. Copyright (C) 1992, 2003, 2006, 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* David MacKenzie Windows port by Simon Josefsson */ #include #if !(defined _WIN32 && !defined __CYGWIN__) /* Unix API. */ /* Specification. */ #include #ifdef HAVE_UNAME # include #endif #include /* Put up to LEN chars of the host name into NAME. Null terminate it if the name is shorter than LEN. Return 0 if ok, -1 if error. */ #include int gethostname (char *name, size_t len) { #ifdef HAVE_UNAME struct utsname uts; if (uname (&uts) == -1) return -1; if (len > sizeof (uts.nodename)) { /* More space than we need is available. */ name[sizeof (uts.nodename)] = '\0'; len = sizeof (uts.nodename); } strncpy (name, uts.nodename, len); #else strcpy (name, ""); /* Hardcode your system name if you want. */ #endif return 0; } #else /* Native Windows API. Which primitive to choose? - gethostname() requires linking with -lws2_32. - GetComputerName() does not return the right kind of hostname. - GetComputerNameEx(ComputerNameDnsHostname,...) returns the right hostname, but it is hard to use portably: - It requires defining _WIN32_WINNT to at least 0x0500. - With mingw, it also requires "#define GetComputerNameEx GetComputerNameExA". - With older versions of mingw, none of the declarations are present at all, not even of the enum value ComputerNameDnsHostname. So we use gethostname(). Linking with -lws2_32 is the least evil. */ #define WIN32_LEAN_AND_MEAN /* Get winsock2.h. */ #include /* Get INT_MAX. */ #include /* Get set_winsock_errno. */ #include "w32sock.h" #include "sockets.h" #undef gethostname int rpl_gethostname (char *name, size_t len) { int r; if (len > INT_MAX) len = INT_MAX; gl_sockets_startup (SOCKETS_1_1); r = gethostname (name, (int) len); if (r < 0) set_winsock_errno (); return r; } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/getline.c0000644000000000000000000000011013726163410020576 xustar000000000000000024 mtime=1599661832.541 24 atime=1599661832.742 24 ctime=1599661998.881 libprelude-5.2.0/libmissing/getline.c0000644000000000000000000000171613726163410017606 0ustar00rootroot00000000000000/* getline.c --- Implementation of replacement getline function. Copyright (C) 2005-2007, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Simon Josefsson. */ #include #include ssize_t getline (char **lineptr, size_t *n, FILE *stream) { return getdelim (lineptr, n, '\n', stream); } libprelude-5.2.0/libmissing/PaxHeaders.14770/getpass.c0000644000000000000000000000011013726163410020615 xustar000000000000000024 mtime=1599661832.541 24 atime=1599661832.742 24 ctime=1599661998.883 libprelude-5.2.0/libmissing/getpass.c0000644000000000000000000001217513726163410017626 0ustar00rootroot00000000000000/* Copyright (C) 1992-2001, 2003-2007, 2009-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _LIBC # include #endif #include "getpass.h" #include #if !(defined _WIN32 && !defined __CYGWIN__) # include # if HAVE_DECL___FSETLOCKING && HAVE___FSETLOCKING # if HAVE_STDIO_EXT_H # include # endif # else # define __fsetlocking(stream, type) /* empty */ # endif # if HAVE_TERMIOS_H # include # endif # if USE_UNLOCKED_IO # include "unlocked-io.h" # else # if !HAVE_DECL_FFLUSH_UNLOCKED # undef fflush_unlocked # define fflush_unlocked(x) fflush (x) # endif # if !HAVE_DECL_FLOCKFILE # undef flockfile # define flockfile(x) ((void) 0) # endif # if !HAVE_DECL_FUNLOCKFILE # undef funlockfile # define funlockfile(x) ((void) 0) # endif # if !HAVE_DECL_FPUTS_UNLOCKED # undef fputs_unlocked # define fputs_unlocked(str,stream) fputs (str, stream) # endif # if !HAVE_DECL_PUTC_UNLOCKED # undef putc_unlocked # define putc_unlocked(c,stream) putc (c, stream) # endif # endif /* It is desirable to use this bit on systems that have it. The only bit of terminal state we want to twiddle is echoing, which is done in software; there is no need to change the state of the terminal hardware. */ # ifndef TCSASOFT # define TCSASOFT 0 # endif static void call_fclose (void *arg) { if (arg != NULL) fclose (arg); } char * getpass (const char *prompt) { FILE *tty; FILE *in, *out; # if HAVE_TCGETATTR struct termios s, t; # endif bool tty_changed = false; static char *buf; static size_t bufsize; ssize_t nread; /* Try to write to and read from the terminal if we can. If we can't open the terminal, use stderr and stdin. */ tty = fopen ("/dev/tty", "w+"); if (tty == NULL) { in = stdin; out = stderr; } else { /* We do the locking ourselves. */ __fsetlocking (tty, FSETLOCKING_BYCALLER); out = in = tty; } flockfile (out); /* Turn echoing off if it is on now. */ # if HAVE_TCGETATTR if (tcgetattr (fileno (in), &t) == 0) { /* Save the old one. */ s = t; /* Tricky, tricky. */ t.c_lflag &= ~(ECHO | ISIG); tty_changed = (tcsetattr (fileno (in), TCSAFLUSH | TCSASOFT, &t) == 0); } # endif /* Write the prompt. */ fputs_unlocked (prompt, out); fflush_unlocked (out); /* Read the password. */ nread = getline (&buf, &bufsize, in); /* According to the C standard, input may not be followed by output on the same stream without an intervening call to a file positioning function. Suppose in == out; then without this fseek call, on Solaris, HP-UX, AIX, OSF/1, the previous input gets echoed, whereas on IRIX, the following newline is not output as it should be. POSIX imposes similar restrictions if fileno (in) == fileno (out). The POSIX restrictions are tricky and change from POSIX version to POSIX version, so play it safe and invoke fseek even if in != out. */ fseeko (out, 0, SEEK_CUR); if (buf != NULL) { if (nread < 0) buf[0] = '\0'; else if (buf[nread - 1] == '\n') { /* Remove the newline. */ buf[nread - 1] = '\0'; if (tty_changed) { /* Write the newline that was not echoed. */ putc_unlocked ('\n', out); } } } /* Restore the original setting. */ # if HAVE_TCSETATTR if (tty_changed) tcsetattr (fileno (in), TCSAFLUSH | TCSASOFT, &s); # endif funlockfile (out); call_fclose (tty); return buf; } #else /* W32 native */ /* Windows implementation by Martin Lambers , improved by Simon Josefsson. */ /* For PASS_MAX. */ # include /* For _getch(). */ # include /* For strdup(). */ # include # ifndef PASS_MAX # define PASS_MAX 512 # endif char * getpass (const char *prompt) { char getpassbuf[PASS_MAX + 1]; size_t i = 0; int c; if (prompt) { fputs (prompt, stderr); fflush (stderr); } for (;;) { c = _getch (); if (c == '\r') { getpassbuf[i] = '\0'; break; } else if (i < PASS_MAX) { getpassbuf[i++] = c; } if (i >= PASS_MAX) { getpassbuf[i] = '\0'; break; } } if (prompt) { fputs ("\r\n", stderr); fflush (stderr); } return strdup (getpassbuf); } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/getsockname.c0000644000000000000000000000011013726163410021447 xustar000000000000000024 mtime=1599661832.541 24 atime=1599661832.742 24 ctime=1599661998.886 libprelude-5.2.0/libmissing/getsockname.c0000644000000000000000000000246713726163410020463 0ustar00rootroot00000000000000/* getsockname.c --- wrappers for Windows getsockname function Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paolo Bonzini */ #include #define WIN32_LEAN_AND_MEAN /* Get winsock2.h. */ #include /* Get set_winsock_errno, FD_TO_SOCKET etc. */ #include "w32sock.h" #undef getsockname int rpl_getsockname (int fd, struct sockaddr *addr, socklen_t *addrlen) { SOCKET sock = FD_TO_SOCKET (fd); if (sock == INVALID_SOCKET) { errno = EBADF; return -1; } else { int r = getsockname (sock, addr, addrlen); if (r < 0) set_winsock_errno (); return r; } } libprelude-5.2.0/libmissing/PaxHeaders.14770/gettimeofday.c0000644000000000000000000000011013726163410021630 xustar000000000000000024 mtime=1599661832.542 24 atime=1599661832.742 24 ctime=1599661998.888 libprelude-5.2.0/libmissing/gettimeofday.c0000644000000000000000000001112113726163410020627 0ustar00rootroot00000000000000/* Provide gettimeofday for systems that don't have it or for which it's broken. Copyright (C) 2001-2003, 2005-2007, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* written by Jim Meyering */ #include /* Specification. */ #include #include #if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE # include #endif #include "localtime-buffer.h" #ifdef WINDOWS_NATIVE /* Avoid warnings from gcc -Wcast-function-type. */ # define GetProcAddress \ (void *) GetProcAddress /* GetSystemTimePreciseAsFileTime was introduced only in Windows 8. */ typedef void (WINAPI * GetSystemTimePreciseAsFileTimeFuncType) (FILETIME *lpTime); static GetSystemTimePreciseAsFileTimeFuncType GetSystemTimePreciseAsFileTimeFunc = NULL; static BOOL initialized = FALSE; static void initialize (void) { HMODULE kernel32 = LoadLibrary ("kernel32.dll"); if (kernel32 != NULL) { GetSystemTimePreciseAsFileTimeFunc = (GetSystemTimePreciseAsFileTimeFuncType) GetProcAddress (kernel32, "GetSystemTimePreciseAsFileTime"); } initialized = TRUE; } #endif /* This is a wrapper for gettimeofday. It is used only on systems that lack this function, or whose implementation of this function causes problems. Work around the bug in some systems whereby gettimeofday clobbers the static buffer that localtime uses for its return value. The gettimeofday function from Mac OS X 10.0.4 (i.e., Darwin 1.3.7) has this problem. */ int gettimeofday (struct timeval *restrict tv, void *restrict tz) { #undef gettimeofday #ifdef WINDOWS_NATIVE /* On native Windows, there are two ways to get the current time: GetSystemTimeAsFileTime or GetSystemTimePreciseAsFileTime . GetSystemTimeAsFileTime produces values that jump by increments of 15.627 milliseconds (!) on average. Whereas GetSystemTimePreciseAsFileTime values usually jump by 1 or 2 microseconds. More discussion on this topic: . */ FILETIME current_time; if (!initialized) initialize (); if (GetSystemTimePreciseAsFileTimeFunc != NULL) GetSystemTimePreciseAsFileTimeFunc (¤t_time); else GetSystemTimeAsFileTime (¤t_time); /* Convert from FILETIME to 'struct timeval'. */ /* FILETIME: */ ULONGLONG since_1601 = ((ULONGLONG) current_time.dwHighDateTime << 32) | (ULONGLONG) current_time.dwLowDateTime; /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 leap years, in total 134774 days. */ ULONGLONG since_1970 = since_1601 - (ULONGLONG) 134774 * (ULONGLONG) 86400 * (ULONGLONG) 10000000; ULONGLONG microseconds_since_1970 = since_1970 / (ULONGLONG) 10; tv->tv_sec = microseconds_since_1970 / (ULONGLONG) 1000000; tv->tv_usec = microseconds_since_1970 % (ULONGLONG) 1000000; return 0; #else # if HAVE_GETTIMEOFDAY # if GETTIMEOFDAY_CLOBBERS_LOCALTIME /* Save and restore the contents of the buffer used for localtime's result around the call to gettimeofday. */ struct tm save = *localtime_buffer_addr; # endif # if defined timeval /* 'struct timeval' overridden by gnulib? */ # undef timeval struct timeval otv; int result = gettimeofday (&otv, (struct timezone *) tz); if (result == 0) { tv->tv_sec = otv.tv_sec; tv->tv_usec = otv.tv_usec; } # else int result = gettimeofday (tv, (struct timezone *) tz); # endif # if GETTIMEOFDAY_CLOBBERS_LOCALTIME *localtime_buffer_addr = save; # endif return result; # else # if !defined OK_TO_USE_1S_CLOCK # error "Only 1-second nominal clock resolution found. Is that intended?" \ "If so, compile with the -DOK_TO_USE_1S_CLOCK option." # endif tv->tv_sec = time (NULL); tv->tv_usec = 0; return 0; # endif #endif } libprelude-5.2.0/libmissing/PaxHeaders.14770/inet_ntop.c0000644000000000000000000000010713726163410021154 xustar000000000000000024 mtime=1599661832.545 24 atime=1599661832.743 23 ctime=1599661998.89 libprelude-5.2.0/libmissing/inet_ntop.c0000644000000000000000000001537613726163410020165 0ustar00rootroot00000000000000/* inet_ntop.c -- convert IPv4 and IPv6 addresses from binary to text form Copyright (C) 2005-2006, 2008-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* * Copyright (c) 1996-1999 by Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ #include /* Specification. */ #include /* Use this to suppress gcc's "...may be used before initialized" warnings. Beware: The Code argument must not contain commas. */ #ifndef IF_LINT # if defined GCC_LINT || defined lint # define IF_LINT(Code) Code # else # define IF_LINT(Code) /* empty */ # endif #endif #if HAVE_DECL_INET_NTOP # undef inet_ntop const char * rpl_inet_ntop (int af, const void *restrict src, char *restrict dst, socklen_t cnt) { return inet_ntop (af, src, dst, cnt); } #else # include # include # include # define NS_IN6ADDRSZ 16 # define NS_INT16SZ 2 /* * WARNING: Don't even consider trying to compile this on a system where * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX. */ typedef int verify_int_size[4 <= sizeof (int) ? 1 : -1]; static const char *inet_ntop4 (const unsigned char *src, char *dst, socklen_t size); # if HAVE_IPV6 static const char *inet_ntop6 (const unsigned char *src, char *dst, socklen_t size); # endif /* char * * inet_ntop(af, src, dst, size) * convert a network format address to presentation format. * return: * pointer to presentation format address ('dst'), or NULL (see errno). * author: * Paul Vixie, 1996. */ const char * inet_ntop (int af, const void *restrict src, char *restrict dst, socklen_t cnt) { switch (af) { # if HAVE_IPV4 case AF_INET: return (inet_ntop4 (src, dst, cnt)); # endif # if HAVE_IPV6 case AF_INET6: return (inet_ntop6 (src, dst, cnt)); # endif default: errno = EAFNOSUPPORT; return (NULL); } /* NOTREACHED */ } /* const char * * inet_ntop4(src, dst, size) * format an IPv4 address * return: * 'dst' (as a const) * notes: * (1) uses no statics * (2) takes a u_char* not an in_addr as input * author: * Paul Vixie, 1996. */ static const char * inet_ntop4 (const unsigned char *src, char *dst, socklen_t size) { char tmp[sizeof "255.255.255.255"]; int len; len = sprintf (tmp, "%u.%u.%u.%u", src[0], src[1], src[2], src[3]); if (len < 0) return NULL; if (len > size) { errno = ENOSPC; return NULL; } return strcpy (dst, tmp); } # if HAVE_IPV6 /* const char * * inet_ntop6(src, dst, size) * convert IPv6 binary address into presentation (printable) format * author: * Paul Vixie, 1996. */ static const char * inet_ntop6 (const unsigned char *src, char *dst, socklen_t size) { /* * Note that int32_t and int16_t need only be "at least" large enough * to contain a value of the specified size. On some systems, like * Crays, there is no such thing as an integer variable with 16 bits. * Keep this in mind if you think this function should have been coded * to use pointer overlays. All the world's not a VAX. */ char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp; struct { int base, len; } best, cur; unsigned int words[NS_IN6ADDRSZ / NS_INT16SZ]; int i; /* * Preprocess: * Copy the input (bytewise) array into a wordwise array. * Find the longest run of 0x00's in src[] for :: shorthanding. */ memset (words, '\0', sizeof words); for (i = 0; i < NS_IN6ADDRSZ; i += 2) words[i / 2] = (src[i] << 8) | src[i + 1]; best.base = -1; cur.base = -1; IF_LINT(best.len = 0); IF_LINT(cur.len = 0); for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) { if (words[i] == 0) { if (cur.base == -1) cur.base = i, cur.len = 1; else cur.len++; } else { if (cur.base != -1) { if (best.base == -1 || cur.len > best.len) best = cur; cur.base = -1; } } } if (cur.base != -1) { if (best.base == -1 || cur.len > best.len) best = cur; } if (best.base != -1 && best.len < 2) best.base = -1; /* * Format the result. */ tp = tmp; for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) { /* Are we inside the best run of 0x00's? */ if (best.base != -1 && i >= best.base && i < (best.base + best.len)) { if (i == best.base) *tp++ = ':'; continue; } /* Are we following an initial run of 0x00s or any real hex? */ if (i != 0) *tp++ = ':'; /* Is this address an encapsulated IPv4? */ if (i == 6 && best.base == 0 && (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) { if (!inet_ntop4 (src + 12, tp, sizeof tmp - (tp - tmp))) return (NULL); tp += strlen (tp); break; } { int len = sprintf (tp, "%x", words[i]); if (len < 0) return NULL; tp += len; } } /* Was it a trailing run of 0x00's? */ if (best.base != -1 && (best.base + best.len) == (NS_IN6ADDRSZ / NS_INT16SZ)) *tp++ = ':'; *tp++ = '\0'; /* * Check for overflow, copy, and we're done. */ if ((socklen_t) (tp - tmp) > size) { errno = ENOSPC; return NULL; } return strcpy (dst, tmp); } # endif #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/inet_pton.c0000644000000000000000000000011013726163410021146 xustar000000000000000024 mtime=1599661832.545 24 atime=1599661832.743 24 ctime=1599661998.893 libprelude-5.2.0/libmissing/inet_pton.c0000644000000000000000000001542213726163410020155 0ustar00rootroot00000000000000/* inet_pton.c -- convert IPv4 and IPv6 addresses from text to binary form Copyright (C) 2006, 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* * Copyright (c) 1996,1999 by Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ #include /* Specification. */ #include #if HAVE_DECL_INET_PTON # undef inet_pton int rpl_inet_pton (int af, const char *restrict src, void *restrict dst) { return inet_pton (af, src, dst); } #else # include # include # include # define NS_INADDRSZ 4 # define NS_IN6ADDRSZ 16 # define NS_INT16SZ 2 /* * WARNING: Don't even consider trying to compile this on a system where * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX. */ static int inet_pton4 (const char *src, unsigned char *dst); # if HAVE_IPV6 static int inet_pton6 (const char *src, unsigned char *dst); # endif /* int * inet_pton(af, src, dst) * convert from presentation format (which usually means ASCII printable) * to network format (which is usually some kind of binary format). * return: * 1 if the address was valid for the specified address family * 0 if the address wasn't valid ('dst' is untouched in this case) * -1 if some other error occurred ('dst' is untouched in this case, too) * author: * Paul Vixie, 1996. */ int inet_pton (int af, const char *restrict src, void *restrict dst) { switch (af) { case AF_INET: return (inet_pton4 (src, dst)); # if HAVE_IPV6 case AF_INET6: return (inet_pton6 (src, dst)); # endif default: errno = EAFNOSUPPORT; return (-1); } /* NOTREACHED */ } /* int * inet_pton4(src, dst) * like inet_aton() but without all the hexadecimal, octal (with the * exception of 0) and shorthand. * return: * 1 if 'src' is a valid dotted quad, else 0. * notice: * does not touch 'dst' unless it's returning 1. * author: * Paul Vixie, 1996. */ static int inet_pton4 (const char *restrict src, unsigned char *restrict dst) { int saw_digit, octets, ch; unsigned char tmp[NS_INADDRSZ], *tp; saw_digit = 0; octets = 0; *(tp = tmp) = 0; while ((ch = *src++) != '\0') { if (ch >= '0' && ch <= '9') { unsigned new = *tp * 10 + (ch - '0'); if (saw_digit && *tp == 0) return (0); if (new > 255) return (0); *tp = new; if (!saw_digit) { if (++octets > 4) return (0); saw_digit = 1; } } else if (ch == '.' && saw_digit) { if (octets == 4) return (0); *++tp = 0; saw_digit = 0; } else return (0); } if (octets < 4) return (0); memcpy (dst, tmp, NS_INADDRSZ); return (1); } # if HAVE_IPV6 /* int * inet_pton6(src, dst) * convert presentation level address to network order binary form. * return: * 1 if 'src' is a valid [RFC1884 2.2] address, else 0. * notice: * (1) does not touch 'dst' unless it's returning 1. * (2) :: in a full address is silently ignored. * credit: * inspired by Mark Andrews. * author: * Paul Vixie, 1996. */ static int inet_pton6 (const char *restrict src, unsigned char *restrict dst) { static const char xdigits[] = "0123456789abcdef"; unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp; const char *curtok; int ch, saw_xdigit; unsigned val; tp = memset (tmp, '\0', NS_IN6ADDRSZ); endp = tp + NS_IN6ADDRSZ; colonp = NULL; /* Leading :: requires some special handling. */ if (*src == ':') if (*++src != ':') return (0); curtok = src; saw_xdigit = 0; val = 0; while ((ch = c_tolower (*src++)) != '\0') { const char *pch; pch = strchr (xdigits, ch); if (pch != NULL) { val <<= 4; val |= (pch - xdigits); if (val > 0xffff) return (0); saw_xdigit = 1; continue; } if (ch == ':') { curtok = src; if (!saw_xdigit) { if (colonp) return (0); colonp = tp; continue; } else if (*src == '\0') { return (0); } if (tp + NS_INT16SZ > endp) return (0); *tp++ = (u_char) (val >> 8) & 0xff; *tp++ = (u_char) val & 0xff; saw_xdigit = 0; val = 0; continue; } if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) && inet_pton4 (curtok, tp) > 0) { tp += NS_INADDRSZ; saw_xdigit = 0; break; /* '\0' was seen by inet_pton4(). */ } return (0); } if (saw_xdigit) { if (tp + NS_INT16SZ > endp) return (0); *tp++ = (u_char) (val >> 8) & 0xff; *tp++ = (u_char) val & 0xff; } if (colonp != NULL) { /* * Since some memmove()'s erroneously fail to handle * overlapping regions, we'll do the shift by hand. */ const int n = tp - colonp; int i; if (tp == endp) return (0); for (i = 1; i <= n; i++) { endp[-i] = colonp[n - i]; colonp[n - i] = 0; } tp = endp; } if (tp != endp) return (0); memcpy (dst, tmp, NS_IN6ADDRSZ); return (1); } # endif #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/ioctl.c0000644000000000000000000000011013726163410020261 xustar000000000000000024 mtime=1599661832.546 24 atime=1599661832.743 24 ctime=1599661998.895 libprelude-5.2.0/libmissing/ioctl.c0000644000000000000000000000440213726163410017264 0ustar00rootroot00000000000000/* ioctl.c --- wrappers for Windows ioctl function Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paolo Bonzini */ #include #include #include #if HAVE_IOCTL /* Provide a wrapper with the POSIX prototype. */ # undef ioctl int rpl_ioctl (int fd, int request, ... /* {void *,char *} arg */) { void *buf; va_list args; va_start (args, request); buf = va_arg (args, void *); va_end (args); /* Cast 'request' so that when the system's ioctl function takes a 64-bit request argument, the value gets zero-extended, not sign-extended. */ return ioctl (fd, (unsigned int) request, buf); } #else /* mingw */ # include /* Get HANDLE. */ # define WIN32_LEAN_AND_MEAN # include # include "fd-hook.h" /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif static int primary_ioctl (int fd, int request, void *arg) { /* We don't support FIONBIO on pipes here. If you want to make pipe fds non-blocking, use the gnulib 'nonblocking' module, until gnulib implements fcntl F_GETFL / F_SETFL with O_NONBLOCK. */ if ((HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE) errno = ENOSYS; else errno = EBADF; return -1; } int ioctl (int fd, int request, ... /* {void *,char *} arg */) { void *arg; va_list args; va_start (args, request); arg = va_arg (args, void *); va_end (args); # if WINDOWS_SOCKETS return execute_all_ioctl_hooks (primary_ioctl, fd, request, arg); # else return primary_ioctl (fd, request, arg); # endif } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/listen.c0000644000000000000000000000011013726163410020445 xustar000000000000000024 mtime=1599661832.546 24 atime=1599661832.744 24 ctime=1599661998.898 libprelude-5.2.0/libmissing/listen.c0000644000000000000000000000237213726163410017454 0ustar00rootroot00000000000000/* listen.c --- wrappers for Windows listen function Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paolo Bonzini */ #include #define WIN32_LEAN_AND_MEAN /* Get winsock2.h. */ #include /* Get set_winsock_errno, FD_TO_SOCKET etc. */ #include "w32sock.h" #undef listen int rpl_listen (int fd, int backlog) { SOCKET sock = FD_TO_SOCKET (fd); if (sock == INVALID_SOCKET) { errno = EBADF; return -1; } else { int r = listen (sock, backlog); if (r < 0) set_winsock_errno (); return r; } } libprelude-5.2.0/libmissing/PaxHeaders.14770/localeconv.c0000644000000000000000000000010613726163410021301 xustar000000000000000024 mtime=1599661832.547 24 atime=1599661832.744 22 ctime=1599661998.9 libprelude-5.2.0/libmissing/localeconv.c0000644000000000000000000000661213726163410020304 0ustar00rootroot00000000000000/* Query locale dependent information for formatting numbers. Copyright (C) 2012-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #if HAVE_STRUCT_LCONV_DECIMAL_POINT /* Override for platforms where 'struct lconv' lacks the int_p_*, int_n_* members. */ struct lconv * localeconv (void) { static struct lconv result; # undef lconv # undef localeconv struct lconv *sys_result = localeconv (); result.decimal_point = sys_result->decimal_point; result.thousands_sep = sys_result->thousands_sep; result.grouping = sys_result->grouping; result.mon_decimal_point = sys_result->mon_decimal_point; result.mon_thousands_sep = sys_result->mon_thousands_sep; result.mon_grouping = sys_result->mon_grouping; result.positive_sign = sys_result->positive_sign; result.negative_sign = sys_result->negative_sign; result.currency_symbol = sys_result->currency_symbol; result.frac_digits = sys_result->frac_digits; result.p_cs_precedes = sys_result->p_cs_precedes; result.p_sign_posn = sys_result->p_sign_posn; result.p_sep_by_space = sys_result->p_sep_by_space; result.n_cs_precedes = sys_result->n_cs_precedes; result.n_sign_posn = sys_result->n_sign_posn; result.n_sep_by_space = sys_result->n_sep_by_space; result.int_curr_symbol = sys_result->int_curr_symbol; result.int_frac_digits = sys_result->int_frac_digits; result.int_p_cs_precedes = sys_result->p_cs_precedes; result.int_p_sign_posn = sys_result->p_sign_posn; result.int_p_sep_by_space = sys_result->p_sep_by_space; result.int_n_cs_precedes = sys_result->n_cs_precedes; result.int_n_sign_posn = sys_result->n_sign_posn; result.int_n_sep_by_space = sys_result->n_sep_by_space; return &result; } #else /* Override for platforms where 'struct lconv' is a dummy. */ # include struct lconv * localeconv (void) { static /*const*/ struct lconv result = { /* decimal_point */ ".", /* thousands_sep */ "", /* grouping */ "", /* mon_decimal_point */ "", /* mon_thousands_sep */ "", /* mon_grouping */ "", /* positive_sign */ "", /* negative_sign */ "", /* currency_symbol */ "", /* frac_digits */ CHAR_MAX, /* p_cs_precedes */ CHAR_MAX, /* p_sign_posn */ CHAR_MAX, /* p_sep_by_space */ CHAR_MAX, /* n_cs_precedes */ CHAR_MAX, /* n_sign_posn */ CHAR_MAX, /* n_sep_by_space */ CHAR_MAX, /* int_curr_symbol */ "", /* int_frac_digits */ CHAR_MAX, /* int_p_cs_precedes */ CHAR_MAX, /* int_p_sign_posn */ CHAR_MAX, /* int_p_sep_by_space */ CHAR_MAX, /* int_n_cs_precedes */ CHAR_MAX, /* int_n_sign_posn */ CHAR_MAX, /* int_n_sep_by_space */ CHAR_MAX }; return &result; } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/localtime-buffer.c0000644000000000000000000000011013726163410022367 xustar000000000000000024 mtime=1599661832.547 24 atime=1599661832.744 24 ctime=1599661998.903 libprelude-5.2.0/libmissing/localtime-buffer.c0000644000000000000000000000316313726163410021375 0ustar00rootroot00000000000000/* Provide access to the last buffer returned by localtime() or gmtime(). Copyright (C) 2001-2003, 2005-2007, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* written by Jim Meyering */ #include /* Specification. */ #include "localtime-buffer.h" #if GETTIMEOFDAY_CLOBBERS_LOCALTIME || TZSET_CLOBBERS_LOCALTIME static struct tm tm_zero_buffer; struct tm *localtime_buffer_addr = &tm_zero_buffer; /* This is a wrapper for localtime. On the first call, record the address of the static buffer that localtime uses for its result. */ struct tm * rpl_localtime (time_t const *timep) { struct tm *tm = localtime (timep); if (localtime_buffer_addr == &tm_zero_buffer) localtime_buffer_addr = tm; return tm; } /* Same as above, since gmtime and localtime use the same buffer. */ struct tm * rpl_gmtime (time_t const *timep) { struct tm *tm = gmtime (timep); if (localtime_buffer_addr == &tm_zero_buffer) localtime_buffer_addr = tm; return tm; } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/lseek.c0000644000000000000000000000011013726163410020252 xustar000000000000000024 mtime=1599661832.548 24 atime=1599661832.744 24 ctime=1599661998.905 libprelude-5.2.0/libmissing/lseek.c0000644000000000000000000000350013726163410017253 0ustar00rootroot00000000000000/* An lseek() function that detects pipes. Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include #if defined _WIN32 && ! defined __CYGWIN__ /* Windows platforms. */ /* Get GetFileType. */ # include /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif #else # include #endif #include #undef lseek off_t rpl_lseek (int fd, off_t offset, int whence) { #if defined _WIN32 && ! defined __CYGWIN__ /* mingw lseek mistakenly succeeds on pipes, sockets, and terminals. */ HANDLE h = (HANDLE) _get_osfhandle (fd); if (h == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } if (GetFileType (h) != FILE_TYPE_DISK) { errno = ESPIPE; return -1; } #else /* BeOS lseek mistakenly succeeds on pipes... */ struct stat statbuf; if (fstat (fd, &statbuf) < 0) return -1; if (!S_ISREG (statbuf.st_mode)) { errno = ESPIPE; return -1; } #endif #if _GL_WINDOWS_64_BIT_OFF_T return _lseeki64 (fd, offset, whence); #else return lseek (fd, offset, whence); #endif } libprelude-5.2.0/libmissing/PaxHeaders.14770/malloc.c0000644000000000000000000000011013726163410020416 xustar000000000000000024 mtime=1599661832.583 24 atime=1599661832.753 24 ctime=1599661998.907 libprelude-5.2.0/libmissing/malloc.c0000644000000000000000000000276213726163410017430 0ustar00rootroot00000000000000/* malloc() function that is glibc compatible. Copyright (C) 1997-1998, 2006-2007, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* written by Jim Meyering and Bruno Haible */ #define _GL_USE_STDLIB_ALLOC 1 #include /* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */ #ifdef malloc # define NEED_MALLOC_GNU 1 # undef malloc /* Whereas the gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */ #elif GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU # define NEED_MALLOC_GNU 1 #endif #include #include /* Allocate an N-byte block of memory from the heap. If N is zero, allocate a 1-byte block. */ void * rpl_malloc (size_t n) { void *result; #if NEED_MALLOC_GNU if (n == 0) n = 1; #endif result = malloc (n); #if !HAVE_MALLOC_POSIX if (result == NULL) errno = ENOMEM; #endif return result; } libprelude-5.2.0/libmissing/PaxHeaders.14770/mbrtowc.c0000644000000000000000000000010713726163410020632 xustar000000000000000024 mtime=1599661832.584 24 atime=1599661832.753 23 ctime=1599661998.91 libprelude-5.2.0/libmissing/mbrtowc.c0000644000000000000000000002756013726163410017641 0ustar00rootroot00000000000000/* Convert multibyte character to wide character. Copyright (C) 1999-2002, 2005-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #if C_LOCALE_MAYBE_EILSEQ # include "hard-locale.h" # include #endif #if GNULIB_defined_mbstate_t /* Implement mbrtowc() on top of mbtowc(). */ # include # include # include "localcharset.h" # include "streq.h" # include "verify.h" # ifndef FALLTHROUGH # if __GNUC__ < 7 # define FALLTHROUGH ((void) 0) # else # define FALLTHROUGH __attribute__ ((__fallthrough__)) # endif # endif /* Returns a classification of special values of the encoding of the current locale. */ typedef enum { enc_other, /* other */ enc_utf8, /* UTF-8 */ enc_eucjp, /* EUC-JP */ enc_94, /* EUC-KR, GB2312, BIG5 */ enc_euctw, /* EUC-TW */ enc_gb18030, /* GB18030 */ enc_sjis /* SJIS */ } enc_t; static inline enc_t locale_enc (void) { const char *encoding = locale_charset (); if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) return enc_utf8; if (STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)) return enc_eucjp; if (STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)) return enc_94; if (STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)) return enc_euctw; if (STREQ_OPT (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0)) return enc_gb18030; if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0)) return enc_sjis; return enc_other; } #if GNULIB_WCHAR_SINGLE /* When we know that the locale does not change, provide a speedup by caching the value of locale_enc. */ static int cached_locale_enc = -1; static inline enc_t locale_enc_cached (void) { if (cached_locale_enc < 0) cached_locale_enc = locale_enc (); return cached_locale_enc; } #else /* By default, don't make assumptions, hence no caching. */ # define locale_enc_cached locale_enc #endif verify (sizeof (mbstate_t) >= 4); static char internal_state[4]; size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) { char *pstate = (char *)ps; if (s == NULL) { pwc = NULL; s = ""; n = 1; } if (n == 0) return (size_t)(-2); /* Here n > 0. */ if (pstate == NULL) pstate = internal_state; { size_t nstate = pstate[0]; char buf[4]; const char *p; size_t m; switch (nstate) { case 0: p = s; m = n; break; case 3: buf[2] = pstate[3]; FALLTHROUGH; case 2: buf[1] = pstate[2]; FALLTHROUGH; case 1: buf[0] = pstate[1]; p = buf; m = nstate; buf[m++] = s[0]; if (n >= 2 && m < 4) { buf[m++] = s[1]; if (n >= 3 && m < 4) buf[m++] = s[2]; } break; default: errno = EINVAL; return (size_t)(-1); } /* Here m > 0. */ # if __GLIBC__ || defined __UCLIBC__ /* Work around bug */ mbtowc (NULL, NULL, 0); # endif { int res = mbtowc (pwc, p, m); if (res >= 0) { if (pwc != NULL && ((*pwc == 0) != (res == 0))) abort (); if (nstate >= (res > 0 ? res : 1)) abort (); res -= nstate; pstate[0] = 0; return res; } /* mbtowc does not distinguish between invalid and incomplete multibyte sequences. But mbrtowc needs to make this distinction. There are two possible approaches: - Use iconv() and its return value. - Use built-in knowledge about the possible encodings. Given the low quality of implementation of iconv() on the systems that lack mbrtowc(), we use the second approach. The possible encodings are: - 8-bit encodings, - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS, - UTF-8. Use specialized code for each. */ if (m >= 4 || m >= MB_CUR_MAX) goto invalid; /* Here MB_CUR_MAX > 1 and 0 < m < 4. */ switch (locale_enc_cached ()) { case enc_utf8: /* UTF-8 */ { /* Cf. unistr/u8-mblen.c. */ unsigned char c = (unsigned char) p[0]; if (c >= 0xc2) { if (c < 0xe0) { if (m == 1) goto incomplete; } else if (c < 0xf0) { if (m == 1) goto incomplete; if (m == 2) { unsigned char c2 = (unsigned char) p[1]; if ((c2 ^ 0x80) < 0x40 && (c >= 0xe1 || c2 >= 0xa0) && (c != 0xed || c2 < 0xa0)) goto incomplete; } } else if (c <= 0xf4) { if (m == 1) goto incomplete; else /* m == 2 || m == 3 */ { unsigned char c2 = (unsigned char) p[1]; if ((c2 ^ 0x80) < 0x40 && (c >= 0xf1 || c2 >= 0x90) && (c < 0xf4 || (c == 0xf4 && c2 < 0x90))) { if (m == 2) goto incomplete; else /* m == 3 */ { unsigned char c3 = (unsigned char) p[2]; if ((c3 ^ 0x80) < 0x40) goto incomplete; } } } } } goto invalid; } /* As a reference for this code, you can use the GNU libiconv implementation. Look for uses of the RET_TOOFEW macro. */ case enc_eucjp: /* EUC-JP */ { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f) goto incomplete; } if (m == 2) { unsigned char c = (unsigned char) p[0]; if (c == 0x8f) { unsigned char c2 = (unsigned char) p[1]; if (c2 >= 0xa1 && c2 < 0xff) goto incomplete; } } goto invalid; } case enc_94: /* EUC-KR, GB2312, BIG5 */ { if (m == 1) { unsigned char c = (unsigned char) p[0]; if (c >= 0xa1 && c < 0xff) goto incomplete; } goto invalid; } case enc_euctw: /* EUC-TW */ { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0xa1 && c < 0xff) || c == 0x8e) goto incomplete; } else /* m == 2 || m == 3 */ { unsigned char c = (unsigned char) p[0]; if (c == 0x8e) goto incomplete; } goto invalid; } case enc_gb18030: /* GB18030 */ { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe)) goto incomplete; } else /* m == 2 || m == 3 */ { unsigned char c = (unsigned char) p[0]; if (c >= 0x90 && c <= 0xe3) { unsigned char c2 = (unsigned char) p[1]; if (c2 >= 0x30 && c2 <= 0x39) { if (m == 2) goto incomplete; else /* m == 3 */ { unsigned char c3 = (unsigned char) p[2]; if (c3 >= 0x81 && c3 <= 0xfe) goto incomplete; } } } } goto invalid; } case enc_sjis: /* SJIS */ { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea) || (c >= 0xf0 && c <= 0xf9)) goto incomplete; } goto invalid; } default: /* An unknown multibyte encoding. */ goto incomplete; } incomplete: { size_t k = nstate; /* Here 0 <= k < m < 4. */ pstate[++k] = s[0]; if (k < m) { pstate[++k] = s[1]; if (k < m) pstate[++k] = s[2]; } if (k != m) abort (); } pstate[0] = m; return (size_t)(-2); invalid: errno = EILSEQ; /* The conversion state is undefined, says POSIX. */ return (size_t)(-1); } } } #else /* Override the system's mbrtowc() function. */ # undef mbrtowc size_t rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) { size_t ret; wchar_t wc; # if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG || MBRTOWC_EMPTY_INPUT_BUG if (s == NULL) { pwc = NULL; s = ""; n = 1; } # endif # if MBRTOWC_EMPTY_INPUT_BUG if (n == 0) return (size_t) -2; # endif if (! pwc) pwc = &wc; # if MBRTOWC_RETVAL_BUG { static mbstate_t internal_state; /* Override mbrtowc's internal state. We cannot call mbsinit() on the hidden internal state, but we can call it on our variable. */ if (ps == NULL) ps = &internal_state; if (!mbsinit (ps)) { /* Parse the rest of the multibyte character byte for byte. */ size_t count = 0; for (; n > 0; s++, n--) { ret = mbrtowc (&wc, s, 1, ps); if (ret == (size_t)(-1)) return (size_t)(-1); count++; if (ret != (size_t)(-2)) { /* The multibyte character has been completed. */ *pwc = wc; return (wc == 0 ? 0 : count); } } return (size_t)(-2); } } # endif ret = mbrtowc (pwc, s, n, ps); # if MBRTOWC_NUL_RETVAL_BUG if (ret < (size_t) -2 && !*pwc) return 0; # endif # if C_LOCALE_MAYBE_EILSEQ if ((size_t) -2 <= ret && n != 0 && ! hard_locale (LC_CTYPE)) { unsigned char uc = *s; *pwc = uc; return 1; } # endif return ret; } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/mbsinit.c0000644000000000000000000000011013726163410020614 xustar000000000000000024 mtime=1599661832.584 24 atime=1599661832.753 24 ctime=1599661998.912 libprelude-5.2.0/libmissing/mbsinit.c0000644000000000000000000000453713726163410017630 0ustar00rootroot00000000000000/* Test for initial conversion state. Copyright (C) 2008-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include "verify.h" #if GNULIB_defined_mbstate_t /* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs() and wcrtomb(), wcsrtombs(). We assume that - sizeof (mbstate_t) >= 4, - only stateless encodings are supported (such as UTF-8 and EUC-JP, but not ISO-2022 variants), - for each encoding, the number of bytes for a wide character is <= 4. (This maximum is attained for UTF-8, GB18030, EUC-TW.) We define the meaning of mbstate_t as follows: - In mb -> wc direction, mbstate_t's first byte contains the number of buffered bytes (in the range 0..3), followed by up to 3 buffered bytes. See mbrtowc.c. - In wc -> mb direction, mbstate_t contains no information. In other words, it is always in the initial state. */ verify (sizeof (mbstate_t) >= 4); int mbsinit (const mbstate_t *ps) { const char *pstate = (const char *)ps; return pstate == NULL || pstate[0] == 0; } #else int mbsinit (const mbstate_t *ps) { # if defined _WIN32 && !defined __CYGWIN__ /* Native Windows. */ # ifdef __MINGW32__ /* On mingw, 'mbstate_t' is defined as 'int'. */ return ps == NULL || *ps == 0; # else /* MSVC defines 'mbstate_t' as an 8-byte struct; the first 4-bytes matter. */ return ps == NULL || *(const unsigned int *)ps == 0; # endif # else /* Minix, HP-UX 11.00, Solaris 2.6, Interix, ... */ /* Maybe this definition works, maybe not... */ return ps == NULL || *(const char *)ps == 0; # endif } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/mbtowc.c0000644000000000000000000000011013726163410020442 xustar000000000000000024 mtime=1599661832.584 24 atime=1599661832.753 24 ctime=1599661998.915 libprelude-5.2.0/libmissing/mbtowc.c0000644000000000000000000000167613726163410017457 0ustar00rootroot00000000000000/* Convert multibyte character to wide character. Copyright (C) 2011-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include #include #include #include #include #include "mbtowc-impl.h" libprelude-5.2.0/libmissing/PaxHeaders.14770/memchr.c0000644000000000000000000000011013726163410020422 xustar000000000000000024 mtime=1599661832.585 24 atime=1599661832.753 24 ctime=1599661998.917 libprelude-5.2.0/libmissing/memchr.c0000644000000000000000000001337613726163410017437 0ustar00rootroot00000000000000/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2018 Free Software Foundation, Inc. Based on strlen implementation by Torbjorn Granlund (tege@sics.se), with help from Dan Sahlin (dan@sics.se) and commentary by Jim Blandy (jimb@ai.mit.edu); adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), and implemented by Roland McGrath (roland@ai.mit.edu). NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _LIBC # include #endif #include #include #if defined _LIBC # include #else # define reg_char char #endif #include #if HAVE_BP_SYM_H || defined _LIBC # include #else # define BP_SYM(sym) sym #endif #undef __memchr #ifdef _LIBC # undef memchr #endif #ifndef weak_alias # define __memchr memchr #endif /* Search no more than N bytes of S for C. */ void * __memchr (void const *s, int c_in, size_t n) { /* On 32-bit hardware, choosing longword to be a 32-bit unsigned long instead of a 64-bit uintmax_t tends to give better performance. On 64-bit hardware, unsigned long is generally 64 bits already. Change this typedef to experiment with performance. */ typedef unsigned long int longword; const unsigned char *char_ptr; const longword *longword_ptr; longword repeated_one; longword repeated_c; unsigned reg_char c; c = (unsigned char) c_in; /* Handle the first few bytes by reading one byte at a time. Do this until CHAR_PTR is aligned on a longword boundary. */ for (char_ptr = (const unsigned char *) s; n > 0 && (size_t) char_ptr % sizeof (longword) != 0; --n, ++char_ptr) if (*char_ptr == c) return (void *) char_ptr; longword_ptr = (const longword *) char_ptr; /* All these elucidatory comments refer to 4-byte longwords, but the theory applies equally well to any size longwords. */ /* Compute auxiliary longword values: repeated_one is a value which has a 1 in every byte. repeated_c has c in every byte. */ repeated_one = 0x01010101; repeated_c = c | (c << 8); repeated_c |= repeated_c << 16; if (0xffffffffU < (longword) -1) { repeated_one |= repeated_one << 31 << 1; repeated_c |= repeated_c << 31 << 1; if (8 < sizeof (longword)) { size_t i; for (i = 64; i < sizeof (longword) * 8; i *= 2) { repeated_one |= repeated_one << i; repeated_c |= repeated_c << i; } } } /* Instead of the traditional loop which tests each byte, we will test a longword at a time. The tricky part is testing if *any of the four* bytes in the longword in question are equal to c. We first use an xor with repeated_c. This reduces the task to testing whether *any of the four* bytes in longword1 is zero. We compute tmp = ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7). That is, we perform the following operations: 1. Subtract repeated_one. 2. & ~longword1. 3. & a mask consisting of 0x80 in every byte. Consider what happens in each byte: - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, and step 3 transforms it into 0x80. A carry can also be propagated to more significant bytes. - If a byte of longword1 is nonzero, let its lowest 1 bit be at position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, the byte ends in a single bit of value 0 and k bits of value 1. After step 2, the result is just k bits of value 1: 2^k - 1. After step 3, the result is 0. And no carry is produced. So, if longword1 has only non-zero bytes, tmp is zero. Whereas if longword1 has a zero byte, call j the position of the least significant zero byte. Then the result has a zero at positions 0, ..., j-1 and a 0x80 at position j. We cannot predict the result at the more significant bytes (positions j+1..3), but it does not matter since we already have a non-zero bit at position 8*j+7. So, the test whether any byte in longword1 is zero is equivalent to testing whether tmp is nonzero. */ while (n >= sizeof (longword)) { longword longword1 = *longword_ptr ^ repeated_c; if ((((longword1 - repeated_one) & ~longword1) & (repeated_one << 7)) != 0) break; longword_ptr++; n -= sizeof (longword); } char_ptr = (const unsigned char *) longword_ptr; /* At this point, we know that either n < sizeof (longword), or one of the sizeof (longword) bytes starting at char_ptr is == c. On little-endian machines, we could determine the first such byte without any further memory accesses, just by looking at the tmp result from the last loop iteration. But this does not work on big-endian machines. Choose code that works in both cases. */ for (; n > 0; --n, ++char_ptr) { if (*char_ptr == c) return (void *) char_ptr; } return NULL; } #ifdef weak_alias weak_alias (__memchr, BP_SYM (memchr)) #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/memmem.c0000644000000000000000000000011013726163410020424 xustar000000000000000024 mtime=1599661832.585 24 atime=1599661832.753 24 ctime=1599661998.919 libprelude-5.2.0/libmissing/memmem.c0000644000000000000000000000527013726163410017433 0ustar00rootroot00000000000000/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* This particular implementation was written by Eric Blake, 2008. */ #ifndef _LIBC # include #endif /* Specification of memmem. */ #include #define RETURN_TYPE void * #define AVAILABLE(h, h_l, j, n_l) ((j) <= (h_l) - (n_l)) #include "str-two-way.h" /* Return the first occurrence of NEEDLE in HAYSTACK. Return HAYSTACK if NEEDLE_LEN is 0, otherwise NULL if NEEDLE is not found in HAYSTACK. */ void * memmem (const void *haystack_start, size_t haystack_len, const void *needle_start, size_t needle_len) { /* Abstract memory is considered to be an array of 'unsigned char' values, not an array of 'char' values. See ISO C 99 section 6.2.6.1. */ const unsigned char *haystack = (const unsigned char *) haystack_start; const unsigned char *needle = (const unsigned char *) needle_start; if (needle_len == 0) /* The first occurrence of the empty string is deemed to occur at the beginning of the string. */ return (void *) haystack; /* Sanity check, otherwise the loop might search through the whole memory. */ if (__builtin_expect (haystack_len < needle_len, 0)) return NULL; /* Use optimizations in memchr when possible, to reduce the search size of haystack using a linear algorithm with a smaller coefficient. However, avoid memchr for long needles, since we can often achieve sublinear performance. */ if (needle_len < LONG_NEEDLE_THRESHOLD) { haystack = memchr (haystack, *needle, haystack_len); if (!haystack || __builtin_expect (needle_len == 1, 0)) return (void *) haystack; haystack_len -= haystack - (const unsigned char *) haystack_start; if (haystack_len < needle_len) return NULL; return two_way_short_needle (haystack, haystack_len, needle, needle_len); } else return two_way_long_needle (haystack, haystack_len, needle, needle_len); } #undef LONG_NEEDLE_THRESHOLD libprelude-5.2.0/libmissing/PaxHeaders.14770/mktime.c0000644000000000000000000000011013726163410020435 xustar000000000000000024 mtime=1599661832.586 24 atime=1599661832.753 24 ctime=1599661998.922 libprelude-5.2.0/libmissing/mktime.c0000644000000000000000000005322413726163410017446 0ustar00rootroot00000000000000/* Convert a 'struct tm' to a time_t value. Copyright (C) 1993-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Paul Eggert . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* Define this to 1 to have a standalone program to test this implementation of mktime. */ #ifndef DEBUG_MKTIME # define DEBUG_MKTIME 0 #endif /* The following macros influence what gets defined when this file is compiled: Macro/expression Which gnulib module This compilation unit should define _LIBC (glibc proper) mktime NEED_MKTIME_WORKING mktime rpl_mktime || NEED_MKTIME_WINDOWS NEED_MKTIME_INTERNAL mktime-internal mktime_internal DEBUG_MKTIME (defined manually) my_mktime, main */ #if !defined _LIBC && !DEBUG_MKTIME # include #endif /* Assume that leap seconds are possible, unless told otherwise. If the host has a 'zic' command with a '-L leapsecondfilename' option, then it supports leap seconds; otherwise it probably doesn't. */ #ifndef LEAP_SECONDS_POSSIBLE # define LEAP_SECONDS_POSSIBLE 1 #endif #include #include #include #include #include #include #include #if DEBUG_MKTIME # include /* Make it work even if the system's libc has its own mktime routine. */ # undef mktime # define mktime my_mktime #endif /* DEBUG_MKTIME */ #ifndef NEED_MKTIME_INTERNAL # define NEED_MKTIME_INTERNAL 0 #endif #ifndef NEED_MKTIME_WINDOWS # define NEED_MKTIME_WINDOWS 0 #endif #ifndef NEED_MKTIME_WORKING # define NEED_MKTIME_WORKING DEBUG_MKTIME #endif #ifdef _LIBC typedef long int mktime_offset_t; #else # include "mktime-internal.h" #endif #ifndef _LIBC static void my_tzset (void) { # if NEED_MKTIME_WINDOWS /* Rectify the value of the environment variable TZ. There are four possible kinds of such values: - Traditional US time zone names, e.g. "PST8PDT". Syntax: see - Time zone names based on geography, that contain one or more slashes, e.g. "Europe/Moscow". - Time zone names based on geography, without slashes, e.g. "Singapore". - Time zone names that contain explicit DST rules. Syntax: see The Microsoft CRT understands only the first kind. It produces incorrect results if the value of TZ is of the other kinds. But in a Cygwin environment, /etc/profile.d/tzset.sh sets TZ to a value of the second kind for most geographies, or of the first kind in a few other geographies. If it is of the second kind, neutralize it. For the Microsoft CRT, an absent or empty TZ means the time zone that the user has set in the Windows Control Panel. If the value of TZ is of the third or fourth kind -- Cygwin programs understand these syntaxes as well --, it does not matter whether we neutralize it or not, since these values occur only when a Cygwin user has set TZ explicitly; this case is 1. rare and 2. under the user's responsibility. */ const char *tz = getenv ("TZ"); if (tz != NULL && strchr (tz, '/') != NULL) _putenv ("TZ="); # elif HAVE_TZSET tzset (); # endif } # undef __tzset # define __tzset() my_tzset () #endif #if defined _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL /* A signed type that can represent an integer number of years multiplied by three times the number of seconds in a year. It is needed when converting a tm_year value times the number of seconds in a year. The factor of three comes because these products need to be subtracted from each other, and sometimes with an offset added to them, without worrying about overflow. Much of the code uses long_int to represent time_t values, to lessen the hassle of dealing with platforms where time_t is unsigned, and because long_int should suffice to represent all time_t values that mktime can generate even on platforms where time_t is excessively wide. */ #if INT_MAX <= LONG_MAX / 3 / 366 / 24 / 60 / 60 typedef long int long_int; #else typedef long long int long_int; #endif verify (INT_MAX <= TYPE_MAXIMUM (long_int) / 3 / 366 / 24 / 60 / 60); /* Shift A right by B bits portably, by dividing A by 2**B and truncating towards minus infinity. B should be in the range 0 <= B <= LONG_INT_BITS - 2, where LONG_INT_BITS is the number of useful bits in a long_int. LONG_INT_BITS is at least 32. ISO C99 says that A >> B is implementation-defined if A < 0. Some implementations (e.g., UNICOS 9.0 on a Cray Y-MP EL) don't shift right in the usual way when A < 0, so SHR falls back on division if ordinary A >> B doesn't seem to be the usual signed shift. */ static long_int shr (long_int a, int b) { long_int one = 1; return (-one >> 1 == -1 ? a >> b : a / (one << b) - (a % (one << b) < 0)); } /* Bounds for the intersection of time_t and long_int. */ static long_int const mktime_min = ((TYPE_SIGNED (time_t) && TYPE_MINIMUM (time_t) < TYPE_MINIMUM (long_int)) ? TYPE_MINIMUM (long_int) : TYPE_MINIMUM (time_t)); static long_int const mktime_max = (TYPE_MAXIMUM (long_int) < TYPE_MAXIMUM (time_t) ? TYPE_MAXIMUM (long_int) : TYPE_MAXIMUM (time_t)); verify (TYPE_IS_INTEGER (time_t)); #define EPOCH_YEAR 1970 #define TM_YEAR_BASE 1900 verify (TM_YEAR_BASE % 100 == 0); /* Is YEAR + TM_YEAR_BASE a leap year? */ static bool leapyear (long_int year) { /* Don't add YEAR to TM_YEAR_BASE, as that might overflow. Also, work even if YEAR is negative. */ return ((year & 3) == 0 && (year % 100 != 0 || ((year / 100) & 3) == (- (TM_YEAR_BASE / 100) & 3))); } /* How many days come before each month (0-12). */ #ifndef _LIBC static #endif const unsigned short int __mon_yday[2][13] = { /* Normal years. */ { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, /* Leap years. */ { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } }; /* Do the values A and B differ according to the rules for tm_isdst? A and B differ if one is zero and the other positive. */ static bool isdst_differ (int a, int b) { return (!a != !b) && (0 <= a) && (0 <= b); } /* Return an integer value measuring (YEAR1-YDAY1 HOUR1:MIN1:SEC1) - (YEAR0-YDAY0 HOUR0:MIN0:SEC0) in seconds, assuming that the clocks were not adjusted between the timestamps. The YEAR values uses the same numbering as TP->tm_year. Values need not be in the usual range. However, YEAR1 must not overflow when multiplied by three times the number of seconds in a year, and likewise for YDAY1 and three times the number of seconds in a day. */ static long_int ydhms_diff (long_int year1, long_int yday1, int hour1, int min1, int sec1, int year0, int yday0, int hour0, int min0, int sec0) { verify (-1 / 2 == 0); /* Compute intervening leap days correctly even if year is negative. Take care to avoid integer overflow here. */ int a4 = shr (year1, 2) + shr (TM_YEAR_BASE, 2) - ! (year1 & 3); int b4 = shr (year0, 2) + shr (TM_YEAR_BASE, 2) - ! (year0 & 3); int a100 = a4 / 25 - (a4 % 25 < 0); int b100 = b4 / 25 - (b4 % 25 < 0); int a400 = shr (a100, 2); int b400 = shr (b100, 2); int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400); /* Compute the desired time without overflowing. */ long_int years = year1 - year0; long_int days = 365 * years + yday1 - yday0 + intervening_leap_days; long_int hours = 24 * days + hour1 - hour0; long_int minutes = 60 * hours + min1 - min0; long_int seconds = 60 * minutes + sec1 - sec0; return seconds; } /* Return the average of A and B, even if A + B would overflow. Round toward positive infinity. */ static long_int long_int_avg (long_int a, long_int b) { return shr (a, 1) + shr (b, 1) + ((a | b) & 1); } /* Return a time_t value corresponding to (YEAR-YDAY HOUR:MIN:SEC), assuming that T corresponds to *TP and that no clock adjustments occurred between *TP and the desired time. Although T and the returned value are of type long_int, they represent time_t values and must be in time_t range. If TP is null, return a value not equal to T; this avoids false matches. YEAR and YDAY must not be so large that multiplying them by three times the number of seconds in a year (or day, respectively) would overflow long_int. If the returned value would be out of range, yield the minimal or maximal in-range value, except do not yield a value equal to T. */ static long_int guess_time_tm (long_int year, long_int yday, int hour, int min, int sec, long_int t, const struct tm *tp) { if (tp) { long_int result; long_int d = ydhms_diff (year, yday, hour, min, sec, tp->tm_year, tp->tm_yday, tp->tm_hour, tp->tm_min, tp->tm_sec); if (! INT_ADD_WRAPV (t, d, &result)) return result; } /* Overflow occurred one way or another. Return the nearest result that is actually in range, except don't report a zero difference if the actual difference is nonzero, as that would cause a false match; and don't oscillate between two values, as that would confuse the spring-forward gap detector. */ return (t < long_int_avg (mktime_min, mktime_max) ? (t <= mktime_min + 1 ? t + 1 : mktime_min) : (mktime_max - 1 <= t ? t - 1 : mktime_max)); } /* Use CONVERT to convert T to a struct tm value in *TM. T must be in range for time_t. Return TM if successful, NULL if T is out of range for CONVERT. */ static struct tm * convert_time (struct tm *(*convert) (const time_t *, struct tm *), long_int t, struct tm *tm) { time_t x = t; return convert (&x, tm); } /* Use CONVERT to convert *T to a broken down time in *TP. If *T is out of range for conversion, adjust it so that it is the nearest in-range value and then convert that. A value is in range if it fits in both time_t and long_int. */ static struct tm * ranged_convert (struct tm *(*convert) (const time_t *, struct tm *), long_int *t, struct tm *tp) { struct tm *r; if (*t < mktime_min) *t = mktime_min; else if (mktime_max < *t) *t = mktime_max; r = convert_time (convert, *t, tp); if (!r && *t) { long_int bad = *t; long_int ok = 0; /* BAD is a known unconvertible value, and OK is a known good one. Use binary search to narrow the range between BAD and OK until they differ by 1. */ while (true) { long_int mid = long_int_avg (ok, bad); if (mid != ok && mid != bad) break; r = convert_time (convert, mid, tp); if (r) ok = mid; else bad = mid; } if (!r && ok) { /* The last conversion attempt failed; revert to the most recent successful attempt. */ r = convert_time (convert, ok, tp); } } return r; } /* Convert *TP to a time_t value, inverting the monotonic and mostly-unit-linear conversion function CONVERT. Use *OFFSET to keep track of a guess at the offset of the result, compared to what the result would be for UTC without leap seconds. If *OFFSET's guess is correct, only one CONVERT call is needed. This function is external because it is used also by timegm.c. */ time_t __mktime_internal (struct tm *tp, struct tm *(*convert) (const time_t *, struct tm *), mktime_offset_t *offset) { long_int t, gt, t0, t1, t2, dt; struct tm tm; /* The maximum number of probes (calls to CONVERT) should be enough to handle any combinations of time zone rule changes, solar time, leap seconds, and oscillations around a spring-forward gap. POSIX.1 prohibits leap seconds, but some hosts have them anyway. */ int remaining_probes = 6; /* Time requested. Copy it in case CONVERT modifies *TP; this can occur if TP is localtime's returned value and CONVERT is localtime. */ int sec = tp->tm_sec; int min = tp->tm_min; int hour = tp->tm_hour; int mday = tp->tm_mday; int mon = tp->tm_mon; int year_requested = tp->tm_year; int isdst = tp->tm_isdst; /* 1 if the previous probe was DST. */ int dst2; /* Ensure that mon is in range, and set year accordingly. */ int mon_remainder = mon % 12; int negative_mon_remainder = mon_remainder < 0; int mon_years = mon / 12 - negative_mon_remainder; long_int lyear_requested = year_requested; long_int year = lyear_requested + mon_years; /* The other values need not be in range: the remaining code handles overflows correctly. */ /* Calculate day of year from year, month, and day of month. The result need not be in range. */ int mon_yday = ((__mon_yday[leapyear (year)] [mon_remainder + 12 * negative_mon_remainder]) - 1); long_int lmday = mday; long_int yday = mon_yday + lmday; mktime_offset_t off = *offset; int negative_offset_guess; int sec_requested = sec; if (LEAP_SECONDS_POSSIBLE) { /* Handle out-of-range seconds specially, since ydhms_tm_diff assumes every minute has 60 seconds. */ if (sec < 0) sec = 0; if (59 < sec) sec = 59; } /* Invert CONVERT by probing. First assume the same offset as last time. */ INT_SUBTRACT_WRAPV (0, off, &negative_offset_guess); t0 = ydhms_diff (year, yday, hour, min, sec, EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, negative_offset_guess); /* Repeatedly use the error to improve the guess. */ for (t = t1 = t2 = t0, dst2 = 0; (gt = guess_time_tm (year, yday, hour, min, sec, t, ranged_convert (convert, &t, &tm)), t != gt); t1 = t2, t2 = t, t = gt, dst2 = tm.tm_isdst != 0) if (t == t1 && t != t2 && (tm.tm_isdst < 0 || (isdst < 0 ? dst2 <= (tm.tm_isdst != 0) : (isdst != 0) != (tm.tm_isdst != 0)))) /* We can't possibly find a match, as we are oscillating between two values. The requested time probably falls within a spring-forward gap of size GT - T. Follow the common practice in this case, which is to return a time that is GT - T away from the requested time, preferring a time whose tm_isdst differs from the requested value. (If no tm_isdst was requested and only one of the two values has a nonzero tm_isdst, prefer that value.) In practice, this is more useful than returning -1. */ goto offset_found; else if (--remaining_probes == 0) return -1; /* We have a match. Check whether tm.tm_isdst has the requested value, if any. */ if (isdst_differ (isdst, tm.tm_isdst)) { /* tm.tm_isdst has the wrong value. Look for a neighboring time with the right value, and use its UTC offset. Heuristic: probe the adjacent timestamps in both directions, looking for the desired isdst. This should work for all real time zone histories in the tz database. */ /* Distance between probes when looking for a DST boundary. In tzdata2003a, the shortest period of DST is 601200 seconds (e.g., America/Recife starting 2000-10-08 01:00), and the shortest period of non-DST surrounded by DST is 694800 seconds (Africa/Tunis starting 1943-04-17 01:00). Use the minimum of these two values, so we don't miss these short periods when probing. */ int stride = 601200; /* The longest period of DST in tzdata2003a is 536454000 seconds (e.g., America/Jujuy starting 1946-10-01 01:00). The longest period of non-DST is much longer, but it makes no real sense to search for more than a year of non-DST, so use the DST max. */ int duration_max = 536454000; /* Search in both directions, so the maximum distance is half the duration; add the stride to avoid off-by-1 problems. */ int delta_bound = duration_max / 2 + stride; int delta, direction; for (delta = stride; delta < delta_bound; delta += stride) for (direction = -1; direction <= 1; direction += 2) { long_int ot; if (! INT_ADD_WRAPV (t, delta * direction, &ot)) { struct tm otm; ranged_convert (convert, &ot, &otm); if (! isdst_differ (isdst, otm.tm_isdst)) { /* We found the desired tm_isdst. Extrapolate back to the desired time. */ t = guess_time_tm (year, yday, hour, min, sec, ot, &otm); ranged_convert (convert, &t, &tm); goto offset_found; } } } } offset_found: /* Set *OFFSET to the low-order bits of T - T0 - NEGATIVE_OFFSET_GUESS. This is just a heuristic to speed up the next mktime call, and correctness is unaffected if integer overflow occurs here. */ INT_SUBTRACT_WRAPV (t, t0, &dt); INT_SUBTRACT_WRAPV (dt, negative_offset_guess, offset); if (LEAP_SECONDS_POSSIBLE && sec_requested != tm.tm_sec) { /* Adjust time to reflect the tm_sec requested, not the normalized value. Also, repair any damage from a false match due to a leap second. */ long_int sec_adjustment = sec == 0 && tm.tm_sec == 60; sec_adjustment -= sec; sec_adjustment += sec_requested; if (INT_ADD_WRAPV (t, sec_adjustment, &t) || ! (mktime_min <= t && t <= mktime_max) || ! convert_time (convert, t, &tm)) return -1; } *tp = tm; return t; } #endif /* _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL */ #if defined _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS /* Convert *TP to a time_t value. */ time_t mktime (struct tm *tp) { /* POSIX.1 8.1.1 requires that whenever mktime() is called, the time zone names contained in the external variable 'tzname' shall be set as if the tzset() function had been called. */ __tzset (); # if defined __LIBC || NEED_MKTIME_WORKING static mktime_offset_t localtime_offset; return __mktime_internal (tp, __localtime_r, &localtime_offset); # else # undef mktime return mktime (tp); # endif } #endif /* _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS */ #ifdef weak_alias weak_alias (mktime, timelocal) #endif #ifdef _LIBC libc_hidden_def (mktime) libc_hidden_weak (timelocal) #endif #if DEBUG_MKTIME static int not_equal_tm (const struct tm *a, const struct tm *b) { return ((a->tm_sec ^ b->tm_sec) | (a->tm_min ^ b->tm_min) | (a->tm_hour ^ b->tm_hour) | (a->tm_mday ^ b->tm_mday) | (a->tm_mon ^ b->tm_mon) | (a->tm_year ^ b->tm_year) | (a->tm_yday ^ b->tm_yday) | isdst_differ (a->tm_isdst, b->tm_isdst)); } static void print_tm (const struct tm *tp) { if (tp) printf ("%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d", tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday, tp->tm_hour, tp->tm_min, tp->tm_sec, tp->tm_yday, tp->tm_wday, tp->tm_isdst); else printf ("0"); } static int check_result (time_t tk, struct tm tmk, time_t tl, const struct tm *lt) { if (tk != tl || !lt || not_equal_tm (&tmk, lt)) { printf ("mktime ("); print_tm (lt); printf (")\nyields ("); print_tm (&tmk); printf (") == %ld, should be %ld\n", (long int) tk, (long int) tl); return 1; } return 0; } int main (int argc, char **argv) { int status = 0; struct tm tm, tmk, tml; struct tm *lt; time_t tk, tl, tl1; char trailer; /* Sanity check, plus call tzset. */ tl = 0; if (! localtime (&tl)) { printf ("localtime (0) fails\n"); status = 1; } if ((argc == 3 || argc == 4) && (sscanf (argv[1], "%d-%d-%d%c", &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer) == 3) && (sscanf (argv[2], "%d:%d:%d%c", &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer) == 3)) { tm.tm_year -= TM_YEAR_BASE; tm.tm_mon--; tm.tm_isdst = argc == 3 ? -1 : atoi (argv[3]); tmk = tm; tl = mktime (&tmk); lt = localtime_r (&tl, &tml); printf ("mktime returns %ld == ", (long int) tl); print_tm (&tmk); printf ("\n"); status = check_result (tl, tmk, tl, lt); } else if (argc == 4 || (argc == 5 && strcmp (argv[4], "-") == 0)) { time_t from = atol (argv[1]); time_t by = atol (argv[2]); time_t to = atol (argv[3]); if (argc == 4) for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) { lt = localtime_r (&tl, &tml); if (lt) { tmk = tml; tk = mktime (&tmk); status |= check_result (tk, tmk, tl, &tml); } else { printf ("localtime_r (%ld) yields 0\n", (long int) tl); status = 1; } tl1 = tl + by; if ((tl1 < tl) != (by < 0)) break; } else for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) { /* Null benchmark. */ lt = localtime_r (&tl, &tml); if (lt) { tmk = tml; tk = tl; status |= check_result (tk, tmk, tl, &tml); } else { printf ("localtime_r (%ld) yields 0\n", (long int) tl); status = 1; } tl1 = tl + by; if ((tl1 < tl) != (by < 0)) break; } } else printf ("Usage:\ \t%s YYYY-MM-DD HH:MM:SS [ISDST] # Test given time.\n\ \t%s FROM BY TO # Test values FROM, FROM+BY, ..., TO.\n\ \t%s FROM BY TO - # Do not test those values (for benchmark).\n", argv[0], argv[0], argv[0]); return status; } #endif /* DEBUG_MKTIME */ /* Local Variables: compile-command: "gcc -DDEBUG_MKTIME -I. -Wall -W -O2 -g mktime.c -o mktime" End: */ libprelude-5.2.0/libmissing/PaxHeaders.14770/msvc-inval.c0000644000000000000000000000011013726163410021226 xustar000000000000000024 mtime=1599661832.586 24 atime=1599661832.753 24 ctime=1599661998.924 libprelude-5.2.0/libmissing/msvc-inval.c0000644000000000000000000000754113726163410020240 0ustar00rootroot00000000000000/* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 2011-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include "msvc-inval.h" #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) /* Get _invalid_parameter_handler type and _set_invalid_parameter_handler declaration. */ # include # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { } # else /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include # if defined _MSC_VER static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); } # else /* An index to thread-local storage. */ static DWORD tls_index; static int tls_initialized /* = 0 */; /* Used as a fallback only. */ static struct gl_msvc_inval_per_thread not_per_thread; struct gl_msvc_inval_per_thread * gl_msvc_inval_current (void) { if (!tls_initialized) { tls_index = TlsAlloc (); tls_initialized = 1; } if (tls_index == TLS_OUT_OF_INDEXES) /* TlsAlloc had failed. */ return ¬_per_thread; else { struct gl_msvc_inval_per_thread *pointer = (struct gl_msvc_inval_per_thread *) TlsGetValue (tls_index); if (pointer == NULL) { /* First call. Allocate a new 'struct gl_msvc_inval_per_thread'. */ pointer = (struct gl_msvc_inval_per_thread *) malloc (sizeof (struct gl_msvc_inval_per_thread)); if (pointer == NULL) /* Could not allocate memory. Use the global storage. */ pointer = ¬_per_thread; TlsSetValue (tls_index, pointer); } return pointer; } } static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { struct gl_msvc_inval_per_thread *current = gl_msvc_inval_current (); if (current->restart_valid) longjmp (current->restart, 1); else /* An invalid parameter notification from outside the gnulib code. Give the caller a chance to intervene. */ RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); } # endif # endif static int gl_msvc_inval_initialized /* = 0 */; void gl_msvc_inval_ensure_handler (void) { if (gl_msvc_inval_initialized == 0) { _set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler); gl_msvc_inval_initialized = 1; } } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/msvc-nothrow.c0000644000000000000000000000011013726163410021615 xustar000000000000000024 mtime=1599661832.586 24 atime=1599661832.753 24 ctime=1599661998.927 libprelude-5.2.0/libmissing/msvc-nothrow.c0000644000000000000000000000254413726163410020625 0ustar00rootroot00000000000000/* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 2011-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include "msvc-nothrow.h" /* Get declarations of the native Windows API functions. */ #define WIN32_LEAN_AND_MEAN #include #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #undef _get_osfhandle #if HAVE_MSVC_INVALID_PARAMETER_HANDLER intptr_t _gl_nothrow_get_osfhandle (int fd) { intptr_t result; TRY_MSVC_INVAL { result = _get_osfhandle (fd); } CATCH_MSVC_INVAL { result = (intptr_t) INVALID_HANDLE_VALUE; } DONE_MSVC_INVAL; return result; } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/nl_langinfo.c0000644000000000000000000000011013726163410021435 xustar000000000000000024 mtime=1599661832.588 24 atime=1599661832.754 24 ctime=1599661998.929 libprelude-5.2.0/libmissing/nl_langinfo.c0000644000000000000000000002425113726163410020444 0ustar00rootroot00000000000000/* nl_langinfo() replacement: query locale dependent information. Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #if defined _WIN32 && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # include #endif #if !REPLACE_NL_LANGINFO || GNULIB_defined_CODESET /* Return the codeset of the current locale, if this is easily deducible. Otherwise, return "". */ static char * ctype_codeset (void) { static char buf[2 + 10 + 1]; char const *locale = setlocale (LC_CTYPE, NULL); char *codeset = buf; size_t codesetlen; codeset[0] = '\0'; if (locale && locale[0]) { /* If the locale name contains an encoding after the dot, return it. */ char *dot = strchr (locale, '.'); if (dot) { /* Look for the possible @... trailer and remove it, if any. */ char *codeset_start = dot + 1; char const *modifier = strchr (codeset_start, '@'); if (! modifier) codeset = codeset_start; else { codesetlen = modifier - codeset_start; if (codesetlen < sizeof buf) { codeset = memcpy (buf, codeset_start, codesetlen); codeset[codesetlen] = '\0'; } } } } # if defined _WIN32 && ! defined __CYGWIN__ /* If setlocale is successful, it returns the number of the codepage, as a string. Otherwise, fall back on Windows API GetACP, which returns the locale's codepage as a number (although this doesn't change according to what the 'setlocale' call specified). Either way, prepend "CP" to make it a valid codeset name. */ codesetlen = strlen (codeset); if (0 < codesetlen && codesetlen < sizeof buf - 2) memmove (buf + 2, codeset, codesetlen + 1); else sprintf (buf + 2, "%u", GetACP ()); codeset = memcpy (buf, "CP", 2); # endif return codeset; } #endif #if REPLACE_NL_LANGINFO /* Override nl_langinfo with support for added nl_item values. */ # undef nl_langinfo char * rpl_nl_langinfo (nl_item item) { switch (item) { # if GNULIB_defined_CODESET case CODESET: return ctype_codeset (); # endif # if GNULIB_defined_T_FMT_AMPM case T_FMT_AMPM: return (char *) "%I:%M:%S %p"; # endif # if GNULIB_defined_ALTMON case ALTMON_1: case ALTMON_2: case ALTMON_3: case ALTMON_4: case ALTMON_5: case ALTMON_6: case ALTMON_7: case ALTMON_8: case ALTMON_9: case ALTMON_10: case ALTMON_11: case ALTMON_12: /* We don't ship the appropriate localizations with gnulib. Therefore, treat ALTMON_i like MON_i. */ item = item - ALTMON_1 + MON_1; break; # endif # if GNULIB_defined_ERA case ERA: /* The format is not standardized. In glibc it is a sequence of strings of the form "direction:offset:start_date:end_date:era_name:era_format" with an empty string at the end. */ return (char *) ""; case ERA_D_FMT: /* The %Ex conversion in strftime behaves like %x if the locale does not have an alternative time format. */ item = D_FMT; break; case ERA_D_T_FMT: /* The %Ec conversion in strftime behaves like %c if the locale does not have an alternative time format. */ item = D_T_FMT; break; case ERA_T_FMT: /* The %EX conversion in strftime behaves like %X if the locale does not have an alternative time format. */ item = T_FMT; break; case ALT_DIGITS: /* The format is not standardized. In glibc it is a sequence of 10 strings, appended in memory. */ return (char *) "\0\0\0\0\0\0\0\0\0\0"; # endif # if GNULIB_defined_YESEXPR || !FUNC_NL_LANGINFO_YESEXPR_WORKS case YESEXPR: return (char *) "^[yY]"; case NOEXPR: return (char *) "^[nN]"; # endif default: break; } return nl_langinfo (item); } #else /* Provide nl_langinfo from scratch, either for native MS-Windows, or for old Unix platforms without locales, such as Linux libc5 or BeOS. */ # include char * nl_langinfo (nl_item item) { static char nlbuf[100]; struct tm tmm = { 0 }; switch (item) { /* nl_langinfo items of the LC_CTYPE category */ case CODESET: { char *codeset = ctype_codeset (); if (*codeset) return codeset; } # ifdef __BEOS__ return (char *) "UTF-8"; # else return (char *) "ISO-8859-1"; # endif /* nl_langinfo items of the LC_NUMERIC category */ case RADIXCHAR: return localeconv () ->decimal_point; case THOUSEP: return localeconv () ->thousands_sep; # ifdef GROUPING case GROUPING: return localeconv () ->grouping; # endif /* nl_langinfo items of the LC_TIME category. TODO: Really use the locale. */ case D_T_FMT: case ERA_D_T_FMT: return (char *) "%a %b %e %H:%M:%S %Y"; case D_FMT: case ERA_D_FMT: return (char *) "%m/%d/%y"; case T_FMT: case ERA_T_FMT: return (char *) "%H:%M:%S"; case T_FMT_AMPM: return (char *) "%I:%M:%S %p"; case AM_STR: if (!strftime (nlbuf, sizeof nlbuf, "%p", &tmm)) return (char *) "AM"; return nlbuf; case PM_STR: tmm.tm_hour = 12; if (!strftime (nlbuf, sizeof nlbuf, "%p", &tmm)) return (char *) "PM"; return nlbuf; case DAY_1: case DAY_2: case DAY_3: case DAY_4: case DAY_5: case DAY_6: case DAY_7: { static char const days[][sizeof "Wednesday"] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; tmm.tm_wday = item - DAY_1; if (!strftime (nlbuf, sizeof nlbuf, "%A", &tmm)) return (char *) days[item - DAY_1]; return nlbuf; } case ABDAY_1: case ABDAY_2: case ABDAY_3: case ABDAY_4: case ABDAY_5: case ABDAY_6: case ABDAY_7: { static char const abdays[][sizeof "Sun"] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; tmm.tm_wday = item - ABDAY_1; if (!strftime (nlbuf, sizeof nlbuf, "%a", &tmm)) return (char *) abdays[item - ABDAY_1]; return nlbuf; } { static char const months[][sizeof "September"] = { "January", "February", "March", "April", "May", "June", "July", "September", "October", "November", "December" }; case MON_1: case MON_2: case MON_3: case MON_4: case MON_5: case MON_6: case MON_7: case MON_8: case MON_9: case MON_10: case MON_11: case MON_12: tmm.tm_mon = item - MON_1; if (!strftime (nlbuf, sizeof nlbuf, "%B", &tmm)) return (char *) months[item - MON_1]; return nlbuf; case ALTMON_1: case ALTMON_2: case ALTMON_3: case ALTMON_4: case ALTMON_5: case ALTMON_6: case ALTMON_7: case ALTMON_8: case ALTMON_9: case ALTMON_10: case ALTMON_11: case ALTMON_12: tmm.tm_mon = item - ALTMON_1; /* The platforms without nl_langinfo() don't support strftime with %OB. We don't even need to try. */ #if 0 if (!strftime (nlbuf, sizeof nlbuf, "%OB", &tmm)) #endif if (!strftime (nlbuf, sizeof nlbuf, "%B", &tmm)) return (char *) months[item - ALTMON_1]; return nlbuf; } case ABMON_1: case ABMON_2: case ABMON_3: case ABMON_4: case ABMON_5: case ABMON_6: case ABMON_7: case ABMON_8: case ABMON_9: case ABMON_10: case ABMON_11: case ABMON_12: { static char const abmonths[][sizeof "Jan"] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Sep", "Oct", "Nov", "Dec" }; tmm.tm_mon = item - ABMON_1; if (!strftime (nlbuf, sizeof nlbuf, "%b", &tmm)) return (char *) abmonths[item - ABMON_1]; return nlbuf; } case ERA: return (char *) ""; case ALT_DIGITS: return (char *) "\0\0\0\0\0\0\0\0\0\0"; /* nl_langinfo items of the LC_MONETARY category. */ case CRNCYSTR: return localeconv () ->currency_symbol; # ifdef INT_CURR_SYMBOL case INT_CURR_SYMBOL: return localeconv () ->int_curr_symbol; case MON_DECIMAL_POINT: return localeconv () ->mon_decimal_point; case MON_THOUSANDS_SEP: return localeconv () ->mon_thousands_sep; case MON_GROUPING: return localeconv () ->mon_grouping; case POSITIVE_SIGN: return localeconv () ->positive_sign; case NEGATIVE_SIGN: return localeconv () ->negative_sign; case FRAC_DIGITS: return & localeconv () ->frac_digits; case INT_FRAC_DIGITS: return & localeconv () ->int_frac_digits; case P_CS_PRECEDES: return & localeconv () ->p_cs_precedes; case N_CS_PRECEDES: return & localeconv () ->n_cs_precedes; case P_SEP_BY_SPACE: return & localeconv () ->p_sep_by_space; case N_SEP_BY_SPACE: return & localeconv () ->n_sep_by_space; case P_SIGN_POSN: return & localeconv () ->p_sign_posn; case N_SIGN_POSN: return & localeconv () ->n_sign_posn; # endif /* nl_langinfo items of the LC_MESSAGES category TODO: Really use the locale. */ case YESEXPR: return (char *) "^[yY]"; case NOEXPR: return (char *) "^[nN]"; default: return (char *) ""; } } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/perror.c0000644000000000000000000000011013726163410020460 xustar000000000000000024 mtime=1599661832.589 24 atime=1599661832.754 24 ctime=1599661998.932 libprelude-5.2.0/libmissing/perror.c0000644000000000000000000000301313726163410017460 0ustar00rootroot00000000000000/* Print a message describing error code. Copyright (C) 2008-2018 Free Software Foundation, Inc. Written by Bruno Haible and Simon Josefsson. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include #include "strerror-override.h" /* Use the system functions, not the gnulib overrides in this file. */ #undef fprintf void perror (const char *string) { char stackbuf[STACKBUF_LEN]; int ret; /* Our implementation guarantees that this will be a non-empty string, even if it returns EINVAL; and stackbuf should be sized large enough to avoid ERANGE. */ ret = strerror_r (errno, stackbuf, sizeof stackbuf); if (ret == ERANGE) abort (); if (string != NULL && *string != '\0') fprintf (stderr, "%s: %s\n", string, stackbuf); else fprintf (stderr, "%s\n", stackbuf); } libprelude-5.2.0/libmissing/PaxHeaders.14770/poll.c0000644000000000000000000000011013726163410020115 xustar000000000000000024 mtime=1599661832.589 24 atime=1599661832.754 24 ctime=1599661998.934 libprelude-5.2.0/libmissing/poll.c0000644000000000000000000004067613726163410017135 0ustar00rootroot00000000000000/* Emulation for poll(2) Contributed by Paolo Bonzini. Copyright 2001-2003, 2006-2018 Free Software Foundation, Inc. This file is part of gnulib. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Tell gcc not to warn about the (nfd < 0) tests, below. */ #if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__ # pragma GCC diagnostic ignored "-Wtype-limits" #endif #include #include #include /* Specification. */ #include #include #include #if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE # include # include # include # include # include # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif #else # include # include #endif #include #include #ifdef HAVE_SYS_IOCTL_H # include #endif #ifdef HAVE_SYS_FILIO_H # include #endif #include #include "assure.h" #ifndef INFTIM # define INFTIM (-1) #endif /* BeOS does not have MSG_PEEK. */ #ifndef MSG_PEEK # define MSG_PEEK 0 #endif #ifdef WINDOWS_NATIVE /* Here we need the recv() function from Windows, that takes a SOCKET as first argument, not any possible gnulib override. */ # undef recv /* Here we need the select() function from Windows, because we pass bit masks of SOCKETs, not bit masks of FDs. */ # undef select /* Avoid warnings from gcc -Wcast-function-type. */ # define GetProcAddress \ (void *) GetProcAddress static BOOL IsConsoleHandle (HANDLE h) { DWORD mode; return GetConsoleMode (h, &mode) != 0; } static BOOL IsSocketHandle (HANDLE h) { WSANETWORKEVENTS ev; if (IsConsoleHandle (h)) return FALSE; /* Under Wine, it seems that getsockopt returns 0 for pipes too. WSAEnumNetworkEvents instead distinguishes the two correctly. */ ev.lNetworkEvents = 0xDEADBEEF; WSAEnumNetworkEvents ((SOCKET) h, NULL, &ev); return ev.lNetworkEvents != 0xDEADBEEF; } /* Declare data structures for ntdll functions. */ typedef struct _FILE_PIPE_LOCAL_INFORMATION { ULONG NamedPipeType; ULONG NamedPipeConfiguration; ULONG MaximumInstances; ULONG CurrentInstances; ULONG InboundQuota; ULONG ReadDataAvailable; ULONG OutboundQuota; ULONG WriteQuotaAvailable; ULONG NamedPipeState; ULONG NamedPipeEnd; } FILE_PIPE_LOCAL_INFORMATION, *PFILE_PIPE_LOCAL_INFORMATION; typedef struct _IO_STATUS_BLOCK { union { DWORD Status; PVOID Pointer; } u; ULONG_PTR Information; } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; typedef enum _FILE_INFORMATION_CLASS { FilePipeLocalInformation = 24 } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; typedef DWORD (WINAPI *PNtQueryInformationFile) (HANDLE, IO_STATUS_BLOCK *, VOID *, ULONG, FILE_INFORMATION_CLASS); # ifndef PIPE_BUF # define PIPE_BUF 512 # endif /* Compute revents values for file handle H. If some events cannot happen for the handle, eliminate them from *P_SOUGHT. */ static int windows_compute_revents (HANDLE h, int *p_sought) { int i, ret, happened; INPUT_RECORD *irbuffer; DWORD avail, nbuffer; BOOL bRet; IO_STATUS_BLOCK iosb; FILE_PIPE_LOCAL_INFORMATION fpli; static PNtQueryInformationFile NtQueryInformationFile; static BOOL once_only; switch (GetFileType (h)) { case FILE_TYPE_PIPE: if (!once_only) { NtQueryInformationFile = (PNtQueryInformationFile) GetProcAddress (GetModuleHandle ("ntdll.dll"), "NtQueryInformationFile"); once_only = TRUE; } happened = 0; if (PeekNamedPipe (h, NULL, 0, NULL, &avail, NULL) != 0) { if (avail) happened |= *p_sought & (POLLIN | POLLRDNORM); } else if (GetLastError () == ERROR_BROKEN_PIPE) happened |= POLLHUP; else { /* It was the write-end of the pipe. Check if it is writable. If NtQueryInformationFile fails, optimistically assume the pipe is writable. This could happen on Windows 9x, where NtQueryInformationFile is not available, or if we inherit a pipe that doesn't permit FILE_READ_ATTRIBUTES access on the write end (I think this should not happen since Windows XP SP2; WINE seems fine too). Otherwise, ensure that enough space is available for atomic writes. */ memset (&iosb, 0, sizeof (iosb)); memset (&fpli, 0, sizeof (fpli)); if (!NtQueryInformationFile || NtQueryInformationFile (h, &iosb, &fpli, sizeof (fpli), FilePipeLocalInformation) || fpli.WriteQuotaAvailable >= PIPE_BUF || (fpli.OutboundQuota < PIPE_BUF && fpli.WriteQuotaAvailable == fpli.OutboundQuota)) happened |= *p_sought & (POLLOUT | POLLWRNORM | POLLWRBAND); } return happened; case FILE_TYPE_CHAR: ret = WaitForSingleObject (h, 0); if (!IsConsoleHandle (h)) return ret == WAIT_OBJECT_0 ? *p_sought & ~(POLLPRI | POLLRDBAND) : 0; nbuffer = avail = 0; bRet = GetNumberOfConsoleInputEvents (h, &nbuffer); if (bRet) { /* Input buffer. */ *p_sought &= POLLIN | POLLRDNORM; if (nbuffer == 0) return POLLHUP; if (!*p_sought) return 0; irbuffer = (INPUT_RECORD *) alloca (nbuffer * sizeof (INPUT_RECORD)); bRet = PeekConsoleInput (h, irbuffer, nbuffer, &avail); if (!bRet || avail == 0) return POLLHUP; for (i = 0; i < avail; i++) if (irbuffer[i].EventType == KEY_EVENT) return *p_sought; return 0; } else { /* Screen buffer. */ *p_sought &= POLLOUT | POLLWRNORM | POLLWRBAND; return *p_sought; } default: ret = WaitForSingleObject (h, 0); if (ret == WAIT_OBJECT_0) return *p_sought & ~(POLLPRI | POLLRDBAND); return *p_sought & (POLLOUT | POLLWRNORM | POLLWRBAND); } } /* Convert fd_sets returned by select into revents values. */ static int windows_compute_revents_socket (SOCKET h, int sought, long lNetworkEvents) { int happened = 0; if ((lNetworkEvents & (FD_READ | FD_ACCEPT | FD_CLOSE)) == FD_ACCEPT) happened |= (POLLIN | POLLRDNORM) & sought; else if (lNetworkEvents & (FD_READ | FD_ACCEPT | FD_CLOSE)) { int r, error; char data[64]; WSASetLastError (0); r = recv (h, data, sizeof (data), MSG_PEEK); error = WSAGetLastError (); WSASetLastError (0); if (r > 0 || error == WSAENOTCONN) happened |= (POLLIN | POLLRDNORM) & sought; /* Distinguish hung-up sockets from other errors. */ else if (r == 0 || error == WSAESHUTDOWN || error == WSAECONNRESET || error == WSAECONNABORTED || error == WSAENETRESET) happened |= POLLHUP; else happened |= POLLERR; } if (lNetworkEvents & (FD_WRITE | FD_CONNECT)) happened |= (POLLOUT | POLLWRNORM | POLLWRBAND) & sought; if (lNetworkEvents & FD_OOB) happened |= (POLLPRI | POLLRDBAND) & sought; return happened; } #else /* !MinGW */ /* Convert select(2) returned fd_sets into poll(2) revents values. */ static int compute_revents (int fd, int sought, fd_set *rfds, fd_set *wfds, fd_set *efds) { int happened = 0; if (FD_ISSET (fd, rfds)) { int r; int socket_errno; # if defined __MACH__ && defined __APPLE__ /* There is a bug in Mac OS X that causes it to ignore MSG_PEEK for some kinds of descriptors. Detect if this descriptor is a connected socket, a server socket, or something else using a 0-byte recv, and use ioctl(2) to detect POLLHUP. */ r = recv (fd, NULL, 0, MSG_PEEK); socket_errno = (r < 0) ? errno : 0; if (r == 0 || socket_errno == ENOTSOCK) ioctl (fd, FIONREAD, &r); # else char data[64]; r = recv (fd, data, sizeof (data), MSG_PEEK); socket_errno = (r < 0) ? errno : 0; # endif if (r == 0) happened |= POLLHUP; /* If the event happened on an unconnected server socket, that's fine. */ else if (r > 0 || ( /* (r == -1) && */ socket_errno == ENOTCONN)) happened |= (POLLIN | POLLRDNORM) & sought; /* Distinguish hung-up sockets from other errors. */ else if (socket_errno == ESHUTDOWN || socket_errno == ECONNRESET || socket_errno == ECONNABORTED || socket_errno == ENETRESET) happened |= POLLHUP; /* some systems can't use recv() on non-socket, including HP NonStop */ else if (socket_errno == ENOTSOCK) happened |= (POLLIN | POLLRDNORM) & sought; else happened |= POLLERR; } if (FD_ISSET (fd, wfds)) happened |= (POLLOUT | POLLWRNORM | POLLWRBAND) & sought; if (FD_ISSET (fd, efds)) happened |= (POLLPRI | POLLRDBAND) & sought; return happened; } #endif /* !MinGW */ int poll (struct pollfd *pfd, nfds_t nfd, int timeout) { #ifndef WINDOWS_NATIVE fd_set rfds, wfds, efds; struct timeval tv; struct timeval *ptv; int maxfd, rc; nfds_t i; if (nfd > INT_MAX) { errno = EINVAL; return -1; } /* Don't check directly for NFD greater than OPEN_MAX. Any practical use of a too-large NFD is caught by one of the other checks below, and checking directly for getdtablesize is too much of a portability and/or performance and/or correctness hassle. */ /* EFAULT is not necessary to implement, but let's do it in the simplest case. */ if (!pfd && nfd) { errno = EFAULT; return -1; } /* convert timeout number into a timeval structure */ if (timeout == 0) { ptv = &tv; ptv->tv_sec = 0; ptv->tv_usec = 0; } else if (timeout > 0) { ptv = &tv; ptv->tv_sec = timeout / 1000; ptv->tv_usec = (timeout % 1000) * 1000; } else if (timeout == INFTIM) /* wait forever */ ptv = NULL; else { errno = EINVAL; return -1; } /* create fd sets and determine max fd */ maxfd = -1; FD_ZERO (&rfds); FD_ZERO (&wfds); FD_ZERO (&efds); for (i = 0; i < nfd; i++) { if (pfd[i].fd < 0) continue; if (maxfd < pfd[i].fd) { maxfd = pfd[i].fd; if (FD_SETSIZE <= maxfd) { errno = EINVAL; return -1; } } if (pfd[i].events & (POLLIN | POLLRDNORM)) FD_SET (pfd[i].fd, &rfds); /* see select(2): "the only exceptional condition detectable is out-of-band data received on a socket", hence we push POLLWRBAND events onto wfds instead of efds. */ if (pfd[i].events & (POLLOUT | POLLWRNORM | POLLWRBAND)) FD_SET (pfd[i].fd, &wfds); if (pfd[i].events & (POLLPRI | POLLRDBAND)) FD_SET (pfd[i].fd, &efds); } /* examine fd sets */ rc = select (maxfd + 1, &rfds, &wfds, &efds, ptv); if (rc < 0) return rc; /* establish results */ rc = 0; for (i = 0; i < nfd; i++) { pfd[i].revents = (pfd[i].fd < 0 ? 0 : compute_revents (pfd[i].fd, pfd[i].events, &rfds, &wfds, &efds)); rc += pfd[i].revents != 0; } return rc; #else static struct timeval tv0; static HANDLE hEvent; WSANETWORKEVENTS ev; HANDLE h, handle_array[FD_SETSIZE + 2]; DWORD ret, wait_timeout, nhandles; fd_set rfds, wfds, xfds; BOOL poll_again; MSG msg; int rc = 0; nfds_t i; if (nfd > INT_MAX || timeout < -1) { errno = EINVAL; return -1; } if (!hEvent) hEvent = CreateEvent (NULL, FALSE, FALSE, NULL); restart: handle_array[0] = hEvent; nhandles = 1; FD_ZERO (&rfds); FD_ZERO (&wfds); FD_ZERO (&xfds); /* Classify socket handles and create fd sets. */ for (i = 0; i < nfd; i++) { int sought = pfd[i].events; pfd[i].revents = 0; if (pfd[i].fd < 0) continue; if (!(sought & (POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM | POLLWRBAND | POLLPRI | POLLRDBAND))) continue; h = (HANDLE) _get_osfhandle (pfd[i].fd); assure (h != NULL); if (IsSocketHandle (h)) { int requested = FD_CLOSE; /* see above; socket handles are mapped onto select. */ if (sought & (POLLIN | POLLRDNORM)) { requested |= FD_READ | FD_ACCEPT; FD_SET ((SOCKET) h, &rfds); } if (sought & (POLLOUT | POLLWRNORM | POLLWRBAND)) { requested |= FD_WRITE | FD_CONNECT; FD_SET ((SOCKET) h, &wfds); } if (sought & (POLLPRI | POLLRDBAND)) { requested |= FD_OOB; FD_SET ((SOCKET) h, &xfds); } if (requested) WSAEventSelect ((SOCKET) h, hEvent, requested); } else { /* Poll now. If we get an event, do not poll again. Also, screen buffer handles are waitable, and they'll block until a character is available. windows_compute_revents eliminates bits for the "wrong" direction. */ pfd[i].revents = windows_compute_revents (h, &sought); if (sought) handle_array[nhandles++] = h; if (pfd[i].revents) timeout = 0; } } if (select (0, &rfds, &wfds, &xfds, &tv0) > 0) { /* Do MsgWaitForMultipleObjects anyway to dispatch messages, but no need to call select again. */ poll_again = FALSE; wait_timeout = 0; } else { poll_again = TRUE; if (timeout == INFTIM) wait_timeout = INFINITE; else wait_timeout = timeout; } for (;;) { ret = MsgWaitForMultipleObjects (nhandles, handle_array, FALSE, wait_timeout, QS_ALLINPUT); if (ret == WAIT_OBJECT_0 + nhandles) { /* new input of some other kind */ BOOL bRet; while ((bRet = PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) != 0) { TranslateMessage (&msg); DispatchMessage (&msg); } } else break; } if (poll_again) select (0, &rfds, &wfds, &xfds, &tv0); /* Place a sentinel at the end of the array. */ handle_array[nhandles] = NULL; nhandles = 1; for (i = 0; i < nfd; i++) { int happened; if (pfd[i].fd < 0) continue; if (!(pfd[i].events & (POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM | POLLWRBAND))) continue; h = (HANDLE) _get_osfhandle (pfd[i].fd); if (h != handle_array[nhandles]) { /* It's a socket. */ WSAEnumNetworkEvents ((SOCKET) h, NULL, &ev); WSAEventSelect ((SOCKET) h, 0, 0); /* If we're lucky, WSAEnumNetworkEvents already provided a way to distinguish FD_READ and FD_ACCEPT; this saves a recv later. */ if (FD_ISSET ((SOCKET) h, &rfds) && !(ev.lNetworkEvents & (FD_READ | FD_ACCEPT))) ev.lNetworkEvents |= FD_READ | FD_ACCEPT; if (FD_ISSET ((SOCKET) h, &wfds)) ev.lNetworkEvents |= FD_WRITE | FD_CONNECT; if (FD_ISSET ((SOCKET) h, &xfds)) ev.lNetworkEvents |= FD_OOB; happened = windows_compute_revents_socket ((SOCKET) h, pfd[i].events, ev.lNetworkEvents); } else { /* Not a socket. */ int sought = pfd[i].events; happened = windows_compute_revents (h, &sought); nhandles++; } if ((pfd[i].revents |= happened) != 0) rc++; } if (!rc && timeout == INFTIM) { SleepEx (1, TRUE); goto restart; } return rc; #endif } libprelude-5.2.0/libmissing/PaxHeaders.14770/pthread_sigmask.c0000644000000000000000000000010713726163410022322 xustar000000000000000023 mtime=1599661832.59 24 atime=1599661832.754 24 ctime=1599661998.936 libprelude-5.2.0/libmissing/pthread_sigmask.c0000644000000000000000000000536713726163410021332 0ustar00rootroot00000000000000/* POSIX compatible signal blocking for threads. Copyright (C) 2011-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #if PTHREAD_SIGMASK_INEFFECTIVE # include #endif #if PTHREAD_SIGMASK_UNBLOCK_BUG # include #endif int pthread_sigmask (int how, const sigset_t *new_mask, sigset_t *old_mask) #undef pthread_sigmask { #if HAVE_PTHREAD_SIGMASK int ret; # if PTHREAD_SIGMASK_INEFFECTIVE sigset_t omask, omask_copy; sigset_t *old_mask_ptr = &omask; sigemptyset (&omask); /* Add a signal unlikely to be blocked, so that OMASK_COPY is unlikely to match the actual mask. */ sigaddset (&omask, SIGILL); memcpy (&omask_copy, &omask, sizeof omask); # else sigset_t *old_mask_ptr = old_mask; # endif ret = pthread_sigmask (how, new_mask, old_mask_ptr); # if PTHREAD_SIGMASK_INEFFECTIVE if (ret == 0) { /* Detect whether pthread_sigmask is currently ineffective. Don't cache the information: libpthread.so could be dynamically loaded after the program started and after pthread_sigmask was called for the first time. */ if (memcmp (&omask_copy, &omask, sizeof omask) == 0 && pthread_sigmask (1729, &omask_copy, NULL) == 0) { /* pthread_sigmask is currently ineffective. The program is not linked to -lpthread. So use sigprocmask instead. */ return (sigprocmask (how, new_mask, old_mask) < 0 ? errno : 0); } if (old_mask) memcpy (old_mask, &omask, sizeof omask); } # endif # if PTHREAD_SIGMASK_FAILS_WITH_ERRNO if (ret == -1) return errno; # endif # if PTHREAD_SIGMASK_UNBLOCK_BUG if (ret == 0 && new_mask != NULL && (how == SIG_UNBLOCK || how == SIG_SETMASK)) { /* Give the OS the opportunity to raise signals that were pending before the pthread_sigmask call and have now been unblocked. */ usleep (1); } # endif return ret; #else int ret = sigprocmask (how, new_mask, old_mask); return (ret < 0 ? errno : 0); #endif } libprelude-5.2.0/libmissing/PaxHeaders.14770/raise.c0000644000000000000000000000010713726163410020260 xustar000000000000000023 mtime=1599661832.59 24 atime=1599661832.754 24 ctime=1599661998.939 libprelude-5.2.0/libmissing/raise.c0000644000000000000000000000330513726163410017256 0ustar00rootroot00000000000000/* Provide a non-threads replacement for the POSIX raise function. Copyright (C) 2002-2003, 2005-2006, 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* written by Jim Meyering and Bruno Haible */ #include /* Specification. */ #include #if HAVE_RAISE /* Native Windows platform. */ # include # if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" # endif # undef raise # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int raise_nothrow (int sig) { int result; TRY_MSVC_INVAL { result = raise (sig); } CATCH_MSVC_INVAL { result = -1; errno = EINVAL; } DONE_MSVC_INVAL; return result; } # else # define raise_nothrow raise # endif #else /* An old Unix platform. */ # include # define rpl_raise raise #endif int rpl_raise (int sig) { #if GNULIB_defined_signal_blocking && GNULIB_defined_SIGPIPE if (sig == SIGPIPE) return _gl_raise_SIGPIPE (); #endif #if HAVE_RAISE return raise_nothrow (sig); #else return kill (getpid (), sig); #endif } libprelude-5.2.0/libmissing/PaxHeaders.14770/regcomp.c0000644000000000000000000000011013726163410020603 xustar000000000000000024 mtime=1599661832.592 24 atime=1599661832.754 24 ctime=1599661998.941 libprelude-5.2.0/libmissing/regcomp.c0000644000000000000000000033516513726163410017623 0ustar00rootroot00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifdef _LIBC # include #endif static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, size_t length, reg_syntax_t syntax); static void re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, char *fastmap); static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len); #ifdef RE_ENABLE_I18N static void free_charset (re_charset_t *cset); #endif /* RE_ENABLE_I18N */ static void free_workarea_compile (regex_t *preg); static reg_errcode_t create_initial_state (re_dfa_t *dfa); #ifdef RE_ENABLE_I18N static void optimize_utf8 (re_dfa_t *dfa); #endif static reg_errcode_t analyze (regex_t *preg); static reg_errcode_t preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra); static reg_errcode_t postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra); static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node); static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node); static bin_tree_t *lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node); static reg_errcode_t calc_first (void *extra, bin_tree_t *node); static reg_errcode_t calc_next (void *extra, bin_tree_t *node); static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node); static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint); static Idx search_duplicated_node (const re_dfa_t *dfa, Idx org_node, unsigned int constraint); static reg_errcode_t calc_eclosure (re_dfa_t *dfa); static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root); static reg_errcode_t calc_inveclosure (re_dfa_t *dfa); static Idx fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax); static int peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax); static bin_tree_t *parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, reg_errcode_t *err); static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err); static bin_tree_t *parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err); static bin_tree_t *parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err); static bin_tree_t *parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err); static bin_tree_t *parse_dup_op (bin_tree_t *dup_elem, re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err); static bin_tree_t *parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err); static reg_errcode_t parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token, int token_len, re_dfa_t *dfa, reg_syntax_t syntax, bool accept_hyphen); static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token); #ifdef RE_ENABLE_I18N static reg_errcode_t build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, Idx *equiv_class_alloc, const unsigned char *name); static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, re_charset_t *mbcset, Idx *char_class_alloc, const char *class_name, reg_syntax_t syntax); #else /* not RE_ENABLE_I18N */ static reg_errcode_t build_equiv_class (bitset_t sbcset, const unsigned char *name); static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, const char *class_name, reg_syntax_t syntax); #endif /* not RE_ENABLE_I18N */ static bin_tree_t *build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, const char *class_name, const char *extra, bool non_match, reg_errcode_t *err); static bin_tree_t *create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, re_token_type_t type); static bin_tree_t *create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, const re_token_t *token); static bin_tree_t *duplicate_tree (const bin_tree_t *src, re_dfa_t *dfa); static void free_token (re_token_t *node); static reg_errcode_t free_tree (void *extra, bin_tree_t *node); static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node); /* This table gives an error message for each of the error codes listed in regex.h. Obviously the order here has to be same as there. POSIX doesn't require that we do anything for REG_NOERROR, but why not be nice? */ static const char __re_error_msgid[] = { #define REG_NOERROR_IDX 0 gettext_noop ("Success") /* REG_NOERROR */ "\0" #define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success") gettext_noop ("No match") /* REG_NOMATCH */ "\0" #define REG_BADPAT_IDX (REG_NOMATCH_IDX + sizeof "No match") gettext_noop ("Invalid regular expression") /* REG_BADPAT */ "\0" #define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression") gettext_noop ("Invalid collation character") /* REG_ECOLLATE */ "\0" #define REG_ECTYPE_IDX (REG_ECOLLATE_IDX + sizeof "Invalid collation character") gettext_noop ("Invalid character class name") /* REG_ECTYPE */ "\0" #define REG_EESCAPE_IDX (REG_ECTYPE_IDX + sizeof "Invalid character class name") gettext_noop ("Trailing backslash") /* REG_EESCAPE */ "\0" #define REG_ESUBREG_IDX (REG_EESCAPE_IDX + sizeof "Trailing backslash") gettext_noop ("Invalid back reference") /* REG_ESUBREG */ "\0" #define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference") gettext_noop ("Unmatched [, [^, [:, [., or [=") /* REG_EBRACK */ "\0" #define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [, [^, [:, [., or [=") gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */ "\0" #define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(") gettext_noop ("Unmatched \\{") /* REG_EBRACE */ "\0" #define REG_BADBR_IDX (REG_EBRACE_IDX + sizeof "Unmatched \\{") gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */ "\0" #define REG_ERANGE_IDX (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}") gettext_noop ("Invalid range end") /* REG_ERANGE */ "\0" #define REG_ESPACE_IDX (REG_ERANGE_IDX + sizeof "Invalid range end") gettext_noop ("Memory exhausted") /* REG_ESPACE */ "\0" #define REG_BADRPT_IDX (REG_ESPACE_IDX + sizeof "Memory exhausted") gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */ "\0" #define REG_EEND_IDX (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression") gettext_noop ("Premature end of regular expression") /* REG_EEND */ "\0" #define REG_ESIZE_IDX (REG_EEND_IDX + sizeof "Premature end of regular expression") gettext_noop ("Regular expression too big") /* REG_ESIZE */ "\0" #define REG_ERPAREN_IDX (REG_ESIZE_IDX + sizeof "Regular expression too big") gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */ }; static const size_t __re_error_msgid_idx[] = { REG_NOERROR_IDX, REG_NOMATCH_IDX, REG_BADPAT_IDX, REG_ECOLLATE_IDX, REG_ECTYPE_IDX, REG_EESCAPE_IDX, REG_ESUBREG_IDX, REG_EBRACK_IDX, REG_EPAREN_IDX, REG_EBRACE_IDX, REG_BADBR_IDX, REG_ERANGE_IDX, REG_ESPACE_IDX, REG_BADRPT_IDX, REG_EEND_IDX, REG_ESIZE_IDX, REG_ERPAREN_IDX }; /* Entry points for GNU code. */ /* re_compile_pattern is the GNU regular expression compiler: it compiles PATTERN (of length LENGTH) and puts the result in BUFP. Returns 0 if the pattern was valid, otherwise an error string. Assumes the 'allocated' (and perhaps 'buffer') and 'translate' fields are set in BUFP on entry. */ const char * re_compile_pattern (const char *pattern, size_t length, struct re_pattern_buffer *bufp) { reg_errcode_t ret; /* And GNU code determines whether or not to get register information by passing null for the REGS argument to re_match, etc., not by setting no_sub, unless RE_NO_SUB is set. */ bufp->no_sub = !!(re_syntax_options & RE_NO_SUB); /* Match anchors at newline. */ bufp->newline_anchor = 1; ret = re_compile_internal (bufp, pattern, length, re_syntax_options); if (!ret) return NULL; return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } #ifdef _LIBC weak_alias (__re_compile_pattern, re_compile_pattern) #endif /* Set by 're_set_syntax' to the current regexp syntax to recognize. Can also be assigned to arbitrarily: each pattern buffer stores its own syntax, so it can be changed between regex compilations. */ /* This has no initializer because initialized variables in Emacs become read-only after dumping. */ reg_syntax_t re_syntax_options; /* Specify the precise syntax of regexps for compilation. This provides for compatibility for various utilities which historically have different, incompatible syntaxes. The argument SYNTAX is a bit mask comprised of the various bits defined in regex.h. We return the old syntax. */ reg_syntax_t re_set_syntax (reg_syntax_t syntax) { reg_syntax_t ret = re_syntax_options; re_syntax_options = syntax; return ret; } #ifdef _LIBC weak_alias (__re_set_syntax, re_set_syntax) #endif int re_compile_fastmap (struct re_pattern_buffer *bufp) { re_dfa_t *dfa = bufp->buffer; char *fastmap = bufp->fastmap; memset (fastmap, '\0', sizeof (char) * SBC_MAX); re_compile_fastmap_iter (bufp, dfa->init_state, fastmap); if (dfa->init_state != dfa->init_state_word) re_compile_fastmap_iter (bufp, dfa->init_state_word, fastmap); if (dfa->init_state != dfa->init_state_nl) re_compile_fastmap_iter (bufp, dfa->init_state_nl, fastmap); if (dfa->init_state != dfa->init_state_begbuf) re_compile_fastmap_iter (bufp, dfa->init_state_begbuf, fastmap); bufp->fastmap_accurate = 1; return 0; } #ifdef _LIBC weak_alias (__re_compile_fastmap, re_compile_fastmap) #endif static inline void __attribute__ ((always_inline)) re_set_fastmap (char *fastmap, bool icase, int ch) { fastmap[ch] = 1; if (icase) fastmap[tolower (ch)] = 1; } /* Helper function for re_compile_fastmap. Compile fastmap for the initial_state INIT_STATE. */ static void re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, char *fastmap) { re_dfa_t *dfa = bufp->buffer; Idx node_cnt; bool icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE)); for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt) { Idx node = init_state->nodes.elems[node_cnt]; re_token_type_t type = dfa->nodes[node].type; if (type == CHARACTER) { re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c); #ifdef RE_ENABLE_I18N if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) { unsigned char buf[MB_LEN_MAX]; unsigned char *p; wchar_t wc; mbstate_t state; p = buf; *p++ = dfa->nodes[node].opr.c; while (++node < dfa->nodes_len && dfa->nodes[node].type == CHARACTER && dfa->nodes[node].mb_partial) *p++ = dfa->nodes[node].opr.c; memset (&state, '\0', sizeof (state)); if (__mbrtowc (&wc, (const char *) buf, p - buf, &state) == p - buf && (__wcrtomb ((char *) buf, __towlower (wc), &state) != (size_t) -1)) re_set_fastmap (fastmap, false, buf[0]); } #endif } else if (type == SIMPLE_BRACKET) { int i, ch; for (i = 0, ch = 0; i < BITSET_WORDS; ++i) { int j; bitset_word_t w = dfa->nodes[node].opr.sbcset[i]; for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) if (w & ((bitset_word_t) 1 << j)) re_set_fastmap (fastmap, icase, ch); } } #ifdef RE_ENABLE_I18N else if (type == COMPLEX_BRACKET) { re_charset_t *cset = dfa->nodes[node].opr.mbcset; Idx i; # ifdef _LIBC /* See if we have to try all bytes which start multiple collation elements. e.g. In da_DK, we want to catch 'a' since "aa" is a valid collation element, and don't catch 'b' since 'b' is the only collation element which starts from 'b' (and it is caught by SIMPLE_BRACKET). */ if (_NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES) != 0 && (cset->ncoll_syms || cset->nranges)) { const int32_t *table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); for (i = 0; i < SBC_MAX; ++i) if (table[i] < 0) re_set_fastmap (fastmap, icase, i); } # endif /* _LIBC */ /* See if we have to start the match at all multibyte characters, i.e. where we would not find an invalid sequence. This only applies to multibyte character sets; for single byte character sets, the SIMPLE_BRACKET again suffices. */ if (dfa->mb_cur_max > 1 && (cset->nchar_classes || cset->non_match || cset->nranges # ifdef _LIBC || cset->nequiv_classes # endif /* _LIBC */ )) { unsigned char c = 0; do { mbstate_t mbs; memset (&mbs, 0, sizeof (mbs)); if (__mbrtowc (NULL, (char *) &c, 1, &mbs) == (size_t) -2) re_set_fastmap (fastmap, false, (int) c); } while (++c != 0); } else { /* ... Else catch all bytes which can start the mbchars. */ for (i = 0; i < cset->nmbchars; ++i) { char buf[256]; mbstate_t state; memset (&state, '\0', sizeof (state)); if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1) re_set_fastmap (fastmap, icase, *(unsigned char *) buf); if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) { if (__wcrtomb (buf, __towlower (cset->mbchars[i]), &state) != (size_t) -1) re_set_fastmap (fastmap, false, *(unsigned char *) buf); } } } } #endif /* RE_ENABLE_I18N */ else if (type == OP_PERIOD #ifdef RE_ENABLE_I18N || type == OP_UTF8_PERIOD #endif /* RE_ENABLE_I18N */ || type == END_OF_RE) { memset (fastmap, '\1', sizeof (char) * SBC_MAX); if (type == END_OF_RE) bufp->can_be_null = 1; return; } } } /* Entry point for POSIX code. */ /* regcomp takes a regular expression as a string and compiles it. PREG is a regex_t *. We do not expect any fields to be initialized, since POSIX says we shouldn't. Thus, we set 'buffer' to the compiled pattern; 'used' to the length of the compiled pattern; 'syntax' to RE_SYNTAX_POSIX_EXTENDED if the REG_EXTENDED bit in CFLAGS is set; otherwise, to RE_SYNTAX_POSIX_BASIC; 'newline_anchor' to REG_NEWLINE being set in CFLAGS; 'fastmap' to an allocated space for the fastmap; 'fastmap_accurate' to zero; 're_nsub' to the number of subexpressions in PATTERN. PATTERN is the address of the pattern string. CFLAGS is a series of bits which affect compilation. If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we use POSIX basic syntax. If REG_NEWLINE is set, then . and [^...] don't match newline. Also, regexec will try a match beginning after every newline. If REG_ICASE is set, then we considers upper- and lowercase versions of letters to be equivalent when matching. If REG_NOSUB is set, then when PREG is passed to regexec, that routine will report only success or failure, and nothing about the registers. It returns 0 if it succeeds, nonzero if it doesn't. (See regex.h for the return codes and their meanings.) */ int regcomp (regex_t *_Restrict_ preg, const char *_Restrict_ pattern, int cflags) { reg_errcode_t ret; reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED : RE_SYNTAX_POSIX_BASIC); preg->buffer = NULL; preg->allocated = 0; preg->used = 0; /* Try to allocate space for the fastmap. */ preg->fastmap = re_malloc (char, SBC_MAX); if (BE (preg->fastmap == NULL, 0)) return REG_ESPACE; syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0; /* If REG_NEWLINE is set, newlines are treated differently. */ if (cflags & REG_NEWLINE) { /* REG_NEWLINE implies neither . nor [^...] match newline. */ syntax &= ~RE_DOT_NEWLINE; syntax |= RE_HAT_LISTS_NOT_NEWLINE; /* It also changes the matching behavior. */ preg->newline_anchor = 1; } else preg->newline_anchor = 0; preg->no_sub = !!(cflags & REG_NOSUB); preg->translate = NULL; ret = re_compile_internal (preg, pattern, strlen (pattern), syntax); /* POSIX doesn't distinguish between an unmatched open-group and an unmatched close-group: both are REG_EPAREN. */ if (ret == REG_ERPAREN) ret = REG_EPAREN; /* We have already checked preg->fastmap != NULL. */ if (BE (ret == REG_NOERROR, 1)) /* Compute the fastmap now, since regexec cannot modify the pattern buffer. This function never fails in this implementation. */ (void) re_compile_fastmap (preg); else { /* Some error occurred while compiling the expression. */ re_free (preg->fastmap); preg->fastmap = NULL; } return (int) ret; } #ifdef _LIBC libc_hidden_def (__regcomp) weak_alias (__regcomp, regcomp) #endif /* Returns a message corresponding to an error code, ERRCODE, returned from either regcomp or regexec. We don't use PREG here. */ size_t regerror (int errcode, const regex_t *_Restrict_ preg, char *_Restrict_ errbuf, size_t errbuf_size) { const char *msg; size_t msg_size; if (BE (errcode < 0 || errcode >= (int) (sizeof (__re_error_msgid_idx) / sizeof (__re_error_msgid_idx[0])), 0)) /* Only error codes returned by the rest of the code should be passed to this routine. If we are given anything else, or if other regex code generates an invalid error code, then the program has a bug. Dump core so we can fix it. */ abort (); msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]); msg_size = strlen (msg) + 1; /* Includes the null. */ if (BE (errbuf_size != 0, 1)) { size_t cpy_size = msg_size; if (BE (msg_size > errbuf_size, 0)) { cpy_size = errbuf_size - 1; errbuf[cpy_size] = '\0'; } memcpy (errbuf, msg, cpy_size); } return msg_size; } #ifdef _LIBC weak_alias (__regerror, regerror) #endif #ifdef RE_ENABLE_I18N /* This static array is used for the map to single-byte characters when UTF-8 is used. Otherwise we would allocate memory just to initialize it the same all the time. UTF-8 is the preferred encoding so this is a worthwhile optimization. */ static const bitset_t utf8_sb_map = { /* Set the first 128 bits. */ # if defined __GNUC__ && !defined __STRICT_ANSI__ [0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX # else # if 4 * BITSET_WORD_BITS < ASCII_CHARS # error "bitset_word_t is narrower than 32 bits" # elif 3 * BITSET_WORD_BITS < ASCII_CHARS BITSET_WORD_MAX, BITSET_WORD_MAX, BITSET_WORD_MAX, # elif 2 * BITSET_WORD_BITS < ASCII_CHARS BITSET_WORD_MAX, BITSET_WORD_MAX, # elif 1 * BITSET_WORD_BITS < ASCII_CHARS BITSET_WORD_MAX, # endif (BITSET_WORD_MAX >> (SBC_MAX % BITSET_WORD_BITS == 0 ? 0 : BITSET_WORD_BITS - SBC_MAX % BITSET_WORD_BITS)) # endif }; #endif static void free_dfa_content (re_dfa_t *dfa) { Idx i, j; if (dfa->nodes) for (i = 0; i < dfa->nodes_len; ++i) free_token (dfa->nodes + i); re_free (dfa->nexts); for (i = 0; i < dfa->nodes_len; ++i) { if (dfa->eclosures != NULL) re_node_set_free (dfa->eclosures + i); if (dfa->inveclosures != NULL) re_node_set_free (dfa->inveclosures + i); if (dfa->edests != NULL) re_node_set_free (dfa->edests + i); } re_free (dfa->edests); re_free (dfa->eclosures); re_free (dfa->inveclosures); re_free (dfa->nodes); if (dfa->state_table) for (i = 0; i <= dfa->state_hash_mask; ++i) { struct re_state_table_entry *entry = dfa->state_table + i; for (j = 0; j < entry->num; ++j) { re_dfastate_t *state = entry->array[j]; free_state (state); } re_free (entry->array); } re_free (dfa->state_table); #ifdef RE_ENABLE_I18N if (dfa->sb_char != utf8_sb_map) re_free (dfa->sb_char); #endif re_free (dfa->subexp_map); #ifdef DEBUG re_free (dfa->re_str); #endif re_free (dfa); } /* Free dynamically allocated space used by PREG. */ void regfree (regex_t *preg) { re_dfa_t *dfa = preg->buffer; if (BE (dfa != NULL, 1)) { lock_fini (dfa->lock); free_dfa_content (dfa); } preg->buffer = NULL; preg->allocated = 0; re_free (preg->fastmap); preg->fastmap = NULL; re_free (preg->translate); preg->translate = NULL; } #ifdef _LIBC libc_hidden_def (__regfree) weak_alias (__regfree, regfree) #endif /* Entry points compatible with 4.2 BSD regex library. We don't define them unless specifically requested. */ #if defined _REGEX_RE_COMP || defined _LIBC /* BSD has one and only one pattern buffer. */ static struct re_pattern_buffer re_comp_buf; char * # ifdef _LIBC /* Make these definitions weak in libc, so POSIX programs can redefine these names if they don't use our functions, and still use regcomp/regexec above without link errors. */ weak_function # endif re_comp (const char *s) { reg_errcode_t ret; char *fastmap; if (!s) { if (!re_comp_buf.buffer) return gettext ("No previous regular expression"); return 0; } if (re_comp_buf.buffer) { fastmap = re_comp_buf.fastmap; re_comp_buf.fastmap = NULL; __regfree (&re_comp_buf); memset (&re_comp_buf, '\0', sizeof (re_comp_buf)); re_comp_buf.fastmap = fastmap; } if (re_comp_buf.fastmap == NULL) { re_comp_buf.fastmap = re_malloc (char, SBC_MAX); if (re_comp_buf.fastmap == NULL) return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) REG_ESPACE]); } /* Since 're_exec' always passes NULL for the 'regs' argument, we don't need to initialize the pattern buffer fields which affect it. */ /* Match anchors at newlines. */ re_comp_buf.newline_anchor = 1; ret = re_compile_internal (&re_comp_buf, s, strlen (s), re_syntax_options); if (!ret) return NULL; /* Yes, we're discarding 'const' here if !HAVE_LIBINTL. */ return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } #ifdef _LIBC libc_freeres_fn (free_mem) { __regfree (&re_comp_buf); } #endif #endif /* _REGEX_RE_COMP */ /* Internal entry point. Compile the regular expression PATTERN, whose length is LENGTH. SYNTAX indicate regular expression's syntax. */ static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, size_t length, reg_syntax_t syntax) { reg_errcode_t err = REG_NOERROR; re_dfa_t *dfa; re_string_t regexp; /* Initialize the pattern buffer. */ preg->fastmap_accurate = 0; preg->syntax = syntax; preg->not_bol = preg->not_eol = 0; preg->used = 0; preg->re_nsub = 0; preg->can_be_null = 0; preg->regs_allocated = REGS_UNALLOCATED; /* Initialize the dfa. */ dfa = preg->buffer; if (BE (preg->allocated < sizeof (re_dfa_t), 0)) { /* If zero allocated, but buffer is non-null, try to realloc enough space. This loses if buffer's address is bogus, but that is the user's responsibility. If ->buffer is NULL this is a simple allocation. */ dfa = re_realloc (preg->buffer, re_dfa_t, 1); if (dfa == NULL) return REG_ESPACE; preg->allocated = sizeof (re_dfa_t); preg->buffer = dfa; } preg->used = sizeof (re_dfa_t); err = init_dfa (dfa, length); if (BE (err == REG_NOERROR && lock_init (dfa->lock) != 0, 0)) err = REG_ESPACE; if (BE (err != REG_NOERROR, 0)) { free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; return err; } #ifdef DEBUG /* Note: length+1 will not overflow since it is checked in init_dfa. */ dfa->re_str = re_malloc (char, length + 1); strncpy (dfa->re_str, pattern, length + 1); #endif err = re_string_construct (®exp, pattern, length, preg->translate, (syntax & RE_ICASE) != 0, dfa); if (BE (err != REG_NOERROR, 0)) { re_compile_internal_free_return: free_workarea_compile (preg); re_string_destruct (®exp); lock_fini (dfa->lock); free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; return err; } /* Parse the regular expression, and build a structure tree. */ preg->re_nsub = 0; dfa->str_tree = parse (®exp, preg, syntax, &err); if (BE (dfa->str_tree == NULL, 0)) goto re_compile_internal_free_return; /* Analyze the tree and create the nfa. */ err = analyze (preg); if (BE (err != REG_NOERROR, 0)) goto re_compile_internal_free_return; #ifdef RE_ENABLE_I18N /* If possible, do searching in single byte encoding to speed things up. */ if (dfa->is_utf8 && !(syntax & RE_ICASE) && preg->translate == NULL) optimize_utf8 (dfa); #endif /* Then create the initial state of the dfa. */ err = create_initial_state (dfa); /* Release work areas. */ free_workarea_compile (preg); re_string_destruct (®exp); if (BE (err != REG_NOERROR, 0)) { lock_fini (dfa->lock); free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; } return err; } /* Initialize DFA. We use the length of the regular expression PAT_LEN as the initial length of some arrays. */ static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len) { __re_size_t table_size; #ifndef _LIBC const char *codeset_name; #endif #ifdef RE_ENABLE_I18N size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t)); #else size_t max_i18n_object_size = 0; #endif size_t max_object_size = MAX (sizeof (struct re_state_table_entry), MAX (sizeof (re_token_t), MAX (sizeof (re_node_set), MAX (sizeof (regmatch_t), max_i18n_object_size)))); memset (dfa, '\0', sizeof (re_dfa_t)); /* Force allocation of str_tree_storage the first time. */ dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE; /* Avoid overflows. The extra "/ 2" is for the table_size doubling calculation below, and for similar doubling calculations elsewhere. And it's <= rather than <, because some of the doubling calculations add 1 afterwards. */ if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2 <= pat_len, 0)) return REG_ESPACE; dfa->nodes_alloc = pat_len + 1; dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc); /* table_size = 2 ^ ceil(log pat_len) */ for (table_size = 1; ; table_size <<= 1) if (table_size > pat_len) break; dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size); dfa->state_hash_mask = table_size - 1; dfa->mb_cur_max = MB_CUR_MAX; #ifdef _LIBC if (dfa->mb_cur_max == 6 && strcmp (_NL_CURRENT (LC_CTYPE, _NL_CTYPE_CODESET_NAME), "UTF-8") == 0) dfa->is_utf8 = 1; dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII) != 0); #else codeset_name = nl_langinfo (CODESET); if ((codeset_name[0] == 'U' || codeset_name[0] == 'u') && (codeset_name[1] == 'T' || codeset_name[1] == 't') && (codeset_name[2] == 'F' || codeset_name[2] == 'f') && strcmp (codeset_name + 3 + (codeset_name[3] == '-'), "8") == 0) dfa->is_utf8 = 1; /* We check exhaustively in the loop below if this charset is a superset of ASCII. */ dfa->map_notascii = 0; #endif #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { if (dfa->is_utf8) dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map; else { int i, j, ch; dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); if (BE (dfa->sb_char == NULL, 0)) return REG_ESPACE; /* Set the bits corresponding to single byte chars. */ for (i = 0, ch = 0; i < BITSET_WORDS; ++i) for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) { wint_t wch = __btowc (ch); if (wch != WEOF) dfa->sb_char[i] |= (bitset_word_t) 1 << j; # ifndef _LIBC if (isascii (ch) && wch != ch) dfa->map_notascii = 1; # endif } } } #endif if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0)) return REG_ESPACE; return REG_NOERROR; } /* Initialize WORD_CHAR table, which indicate which character is "word". In this case "word" means that it is the word construction character used by some operators like "\<", "\>", etc. */ static void init_word_char (re_dfa_t *dfa) { int i = 0; int j; int ch = 0; dfa->word_ops_used = 1; if (BE (dfa->map_notascii == 0, 1)) { /* Avoid uint32_t and uint64_t as some non-GCC platforms lack them, an issue when this code is used in Gnulib. */ bitset_word_t bits0 = 0x00000000; bitset_word_t bits1 = 0x03ff0000; bitset_word_t bits2 = 0x87fffffe; bitset_word_t bits3 = 0x07fffffe; if (BITSET_WORD_BITS == 64) { /* Pacify gcc -Woverflow on 32-bit platformns. */ dfa->word_char[0] = bits1 << 31 << 1 | bits0; dfa->word_char[1] = bits3 << 31 << 1 | bits2; i = 2; } else if (BITSET_WORD_BITS == 32) { dfa->word_char[0] = bits0; dfa->word_char[1] = bits1; dfa->word_char[2] = bits2; dfa->word_char[3] = bits3; i = 4; } else goto general_case; ch = 128; if (BE (dfa->is_utf8, 1)) { memset (&dfa->word_char[i], '\0', (SBC_MAX - ch) / 8); return; } } general_case: for (; i < BITSET_WORDS; ++i) for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) if (isalnum (ch) || ch == '_') dfa->word_char[i] |= (bitset_word_t) 1 << j; } /* Free the work area which are only used while compiling. */ static void free_workarea_compile (regex_t *preg) { re_dfa_t *dfa = preg->buffer; bin_tree_storage_t *storage, *next; for (storage = dfa->str_tree_storage; storage; storage = next) { next = storage->next; re_free (storage); } dfa->str_tree_storage = NULL; dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE; dfa->str_tree = NULL; re_free (dfa->org_indices); dfa->org_indices = NULL; } /* Create initial states for all contexts. */ static reg_errcode_t create_initial_state (re_dfa_t *dfa) { Idx first, i; reg_errcode_t err; re_node_set init_nodes; /* Initial states have the epsilon closure of the node which is the first node of the regular expression. */ first = dfa->str_tree->first->node_idx; dfa->init_node = first; err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first); if (BE (err != REG_NOERROR, 0)) return err; /* The back-references which are in initial states can epsilon transit, since in this case all of the subexpressions can be null. Then we add epsilon closures of the nodes which are the next nodes of the back-references. */ if (dfa->nbackref > 0) for (i = 0; i < init_nodes.nelem; ++i) { Idx node_idx = init_nodes.elems[i]; re_token_type_t type = dfa->nodes[node_idx].type; Idx clexp_idx; if (type != OP_BACK_REF) continue; for (clexp_idx = 0; clexp_idx < init_nodes.nelem; ++clexp_idx) { re_token_t *clexp_node; clexp_node = dfa->nodes + init_nodes.elems[clexp_idx]; if (clexp_node->type == OP_CLOSE_SUBEXP && clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx) break; } if (clexp_idx == init_nodes.nelem) continue; if (type == OP_BACK_REF) { Idx dest_idx = dfa->edests[node_idx].elems[0]; if (!re_node_set_contains (&init_nodes, dest_idx)) { reg_errcode_t merge_err = re_node_set_merge (&init_nodes, dfa->eclosures + dest_idx); if (merge_err != REG_NOERROR) return merge_err; i = 0; } } } /* It must be the first time to invoke acquire_state. */ dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0); /* We don't check ERR here, since the initial state must not be NULL. */ if (BE (dfa->init_state == NULL, 0)) return err; if (dfa->init_state->has_constraint) { dfa->init_state_word = re_acquire_state_context (&err, dfa, &init_nodes, CONTEXT_WORD); dfa->init_state_nl = re_acquire_state_context (&err, dfa, &init_nodes, CONTEXT_NEWLINE); dfa->init_state_begbuf = re_acquire_state_context (&err, dfa, &init_nodes, CONTEXT_NEWLINE | CONTEXT_BEGBUF); if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL || dfa->init_state_begbuf == NULL, 0)) return err; } else dfa->init_state_word = dfa->init_state_nl = dfa->init_state_begbuf = dfa->init_state; re_node_set_free (&init_nodes); return REG_NOERROR; } #ifdef RE_ENABLE_I18N /* If it is possible to do searching in single byte encoding instead of UTF-8 to speed things up, set dfa->mb_cur_max to 1, clear is_utf8 and change DFA nodes where needed. */ static void optimize_utf8 (re_dfa_t *dfa) { Idx node; int i; bool mb_chars = false; bool has_period = false; for (node = 0; node < dfa->nodes_len; ++node) switch (dfa->nodes[node].type) { case CHARACTER: if (dfa->nodes[node].opr.c >= ASCII_CHARS) mb_chars = true; break; case ANCHOR: switch (dfa->nodes[node].opr.ctx_type) { case LINE_FIRST: case LINE_LAST: case BUF_FIRST: case BUF_LAST: break; default: /* Word anchors etc. cannot be handled. It's okay to test opr.ctx_type since constraints (for all DFA nodes) are created by ORing one or more opr.ctx_type values. */ return; } break; case OP_PERIOD: has_period = true; break; case OP_BACK_REF: case OP_ALT: case END_OF_RE: case OP_DUP_ASTERISK: case OP_OPEN_SUBEXP: case OP_CLOSE_SUBEXP: break; case COMPLEX_BRACKET: return; case SIMPLE_BRACKET: /* Just double check. */ { int rshift = (ASCII_CHARS % BITSET_WORD_BITS == 0 ? 0 : BITSET_WORD_BITS - ASCII_CHARS % BITSET_WORD_BITS); for (i = ASCII_CHARS / BITSET_WORD_BITS; i < BITSET_WORDS; ++i) { if (dfa->nodes[node].opr.sbcset[i] >> rshift != 0) return; rshift = 0; } } break; default: abort (); } if (mb_chars || has_period) for (node = 0; node < dfa->nodes_len; ++node) { if (dfa->nodes[node].type == CHARACTER && dfa->nodes[node].opr.c >= ASCII_CHARS) dfa->nodes[node].mb_partial = 0; else if (dfa->nodes[node].type == OP_PERIOD) dfa->nodes[node].type = OP_UTF8_PERIOD; } /* The search can be in single byte locale. */ dfa->mb_cur_max = 1; dfa->is_utf8 = 0; dfa->has_mb_node = dfa->nbackref > 0 || has_period; } #endif /* Analyze the structure tree, and calculate "first", "next", "edest", "eclosure", and "inveclosure". */ static reg_errcode_t analyze (regex_t *preg) { re_dfa_t *dfa = preg->buffer; reg_errcode_t ret; /* Allocate arrays. */ dfa->nexts = re_malloc (Idx, dfa->nodes_alloc); dfa->org_indices = re_malloc (Idx, dfa->nodes_alloc); dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc); dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc); if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL || dfa->eclosures == NULL, 0)) return REG_ESPACE; dfa->subexp_map = re_malloc (Idx, preg->re_nsub); if (dfa->subexp_map != NULL) { Idx i; for (i = 0; i < preg->re_nsub; i++) dfa->subexp_map[i] = i; preorder (dfa->str_tree, optimize_subexps, dfa); for (i = 0; i < preg->re_nsub; i++) if (dfa->subexp_map[i] != i) break; if (i == preg->re_nsub) { re_free (dfa->subexp_map); dfa->subexp_map = NULL; } } ret = postorder (dfa->str_tree, lower_subexps, preg); if (BE (ret != REG_NOERROR, 0)) return ret; ret = postorder (dfa->str_tree, calc_first, dfa); if (BE (ret != REG_NOERROR, 0)) return ret; preorder (dfa->str_tree, calc_next, dfa); ret = preorder (dfa->str_tree, link_nfa_nodes, dfa); if (BE (ret != REG_NOERROR, 0)) return ret; ret = calc_eclosure (dfa); if (BE (ret != REG_NOERROR, 0)) return ret; /* We only need this during the prune_impossible_nodes pass in regexec.c; skip it if p_i_n will not run, as calc_inveclosure can be quadratic. */ if ((!preg->no_sub && preg->re_nsub > 0 && dfa->has_plural_match) || dfa->nbackref) { dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len); if (BE (dfa->inveclosures == NULL, 0)) return REG_ESPACE; ret = calc_inveclosure (dfa); } return ret; } /* Our parse trees are very unbalanced, so we cannot use a stack to implement parse tree visits. Instead, we use parent pointers and some hairy code in these two functions. */ static reg_errcode_t postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra) { bin_tree_t *node, *prev; for (node = root; ; ) { /* Descend down the tree, preferably to the left (or to the right if that's the only child). */ while (node->left || node->right) if (node->left) node = node->left; else node = node->right; do { reg_errcode_t err = fn (extra, node); if (BE (err != REG_NOERROR, 0)) return err; if (node->parent == NULL) return REG_NOERROR; prev = node; node = node->parent; } /* Go up while we have a node that is reached from the right. */ while (node->right == prev || node->right == NULL); node = node->right; } } static reg_errcode_t preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra) { bin_tree_t *node; for (node = root; ; ) { reg_errcode_t err = fn (extra, node); if (BE (err != REG_NOERROR, 0)) return err; /* Go to the left node, or up and to the right. */ if (node->left) node = node->left; else { bin_tree_t *prev = NULL; while (node->right == prev || node->right == NULL) { prev = node; node = node->parent; if (!node) return REG_NOERROR; } node = node->right; } } } /* Optimization pass: if a SUBEXP is entirely contained, strip it and tell re_search_internal to map the inner one's opr.idx to this one's. Adjust backreferences as well. Requires a preorder visit. */ static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; if (node->token.type == OP_BACK_REF && dfa->subexp_map) { int idx = node->token.opr.idx; node->token.opr.idx = dfa->subexp_map[idx]; dfa->used_bkref_map |= 1 << node->token.opr.idx; } else if (node->token.type == SUBEXP && node->left && node->left->token.type == SUBEXP) { Idx other_idx = node->left->token.opr.idx; node->left = node->left->left; if (node->left) node->left->parent = node; dfa->subexp_map[other_idx] = dfa->subexp_map[node->token.opr.idx]; if (other_idx < BITSET_WORD_BITS) dfa->used_bkref_map &= ~((bitset_word_t) 1 << other_idx); } return REG_NOERROR; } /* Lowering pass: Turn each SUBEXP node into the appropriate concatenation of OP_OPEN_SUBEXP, the body of the SUBEXP (if any) and OP_CLOSE_SUBEXP. */ static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node) { regex_t *preg = (regex_t *) extra; reg_errcode_t err = REG_NOERROR; if (node->left && node->left->token.type == SUBEXP) { node->left = lower_subexp (&err, preg, node->left); if (node->left) node->left->parent = node; } if (node->right && node->right->token.type == SUBEXP) { node->right = lower_subexp (&err, preg, node->right); if (node->right) node->right->parent = node; } return err; } static bin_tree_t * lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node) { re_dfa_t *dfa = preg->buffer; bin_tree_t *body = node->left; bin_tree_t *op, *cls, *tree1, *tree; if (preg->no_sub /* We do not optimize empty subexpressions, because otherwise we may have bad CONCAT nodes with NULL children. This is obviously not very common, so we do not lose much. An example that triggers this case is the sed "script" /\(\)/x. */ && node->left != NULL && (node->token.opr.idx >= BITSET_WORD_BITS || !(dfa->used_bkref_map & ((bitset_word_t) 1 << node->token.opr.idx)))) return node->left; /* Convert the SUBEXP node to the concatenation of an OP_OPEN_SUBEXP, the contents, and an OP_CLOSE_SUBEXP. */ op = create_tree (dfa, NULL, NULL, OP_OPEN_SUBEXP); cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP); tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls; tree = create_tree (dfa, op, tree1, CONCAT); if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0)) { *err = REG_ESPACE; return NULL; } op->token.opr.idx = cls->token.opr.idx = node->token.opr.idx; op->token.opt_subexp = cls->token.opt_subexp = node->token.opt_subexp; return tree; } /* Pass 1 in building the NFA: compute FIRST and create unlinked automaton nodes. Requires a postorder visit. */ static reg_errcode_t calc_first (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; if (node->token.type == CONCAT) { node->first = node->left->first; node->node_idx = node->left->node_idx; } else { node->first = node; node->node_idx = re_dfa_add_node (dfa, node->token); if (BE (node->node_idx == -1, 0)) return REG_ESPACE; if (node->token.type == ANCHOR) dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type; } return REG_NOERROR; } /* Pass 2: compute NEXT on the tree. Preorder visit. */ static reg_errcode_t calc_next (void *extra, bin_tree_t *node) { switch (node->token.type) { case OP_DUP_ASTERISK: node->left->next = node; break; case CONCAT: node->left->next = node->right->first; node->right->next = node->next; break; default: if (node->left) node->left->next = node->next; if (node->right) node->right->next = node->next; break; } return REG_NOERROR; } /* Pass 3: link all DFA nodes to their NEXT node (any order will do). */ static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; Idx idx = node->node_idx; reg_errcode_t err = REG_NOERROR; switch (node->token.type) { case CONCAT: break; case END_OF_RE: assert (node->next == NULL); break; case OP_DUP_ASTERISK: case OP_ALT: { Idx left, right; dfa->has_plural_match = 1; if (node->left != NULL) left = node->left->first->node_idx; else left = node->next->node_idx; if (node->right != NULL) right = node->right->first->node_idx; else right = node->next->node_idx; assert (left > -1); assert (right > -1); err = re_node_set_init_2 (dfa->edests + idx, left, right); } break; case ANCHOR: case OP_OPEN_SUBEXP: case OP_CLOSE_SUBEXP: err = re_node_set_init_1 (dfa->edests + idx, node->next->node_idx); break; case OP_BACK_REF: dfa->nexts[idx] = node->next->node_idx; if (node->token.type == OP_BACK_REF) err = re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]); break; default: assert (!IS_EPSILON_NODE (node->token.type)); dfa->nexts[idx] = node->next->node_idx; break; } return err; } /* Duplicate the epsilon closure of the node ROOT_NODE. Note that duplicated nodes have constraint INIT_CONSTRAINT in addition to their own constraint. */ static reg_errcode_t duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, Idx root_node, unsigned int init_constraint) { Idx org_node, clone_node; bool ok; unsigned int constraint = init_constraint; for (org_node = top_org_node, clone_node = top_clone_node;;) { Idx org_dest, clone_dest; if (dfa->nodes[org_node].type == OP_BACK_REF) { /* If the back reference epsilon-transit, its destination must also have the constraint. Then duplicate the epsilon closure of the destination of the back reference, and store it in edests of the back reference. */ org_dest = dfa->nexts[org_node]; re_node_set_empty (dfa->edests + clone_node); clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == -1, 0)) return REG_ESPACE; dfa->nexts[clone_node] = dfa->nexts[org_node]; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; } else if (dfa->edests[org_node].nelem == 0) { /* In case of the node can't epsilon-transit, don't duplicate the destination and store the original destination as the destination of the node. */ dfa->nexts[clone_node] = dfa->nexts[org_node]; break; } else if (dfa->edests[org_node].nelem == 1) { /* In case of the node can epsilon-transit, and it has only one destination. */ org_dest = dfa->edests[org_node].elems[0]; re_node_set_empty (dfa->edests + clone_node); /* If the node is root_node itself, it means the epsilon closure has a loop. Then tie it to the destination of the root_node. */ if (org_node == root_node && clone_node != org_node) { ok = re_node_set_insert (dfa->edests + clone_node, org_dest); if (BE (! ok, 0)) return REG_ESPACE; break; } /* In case the node has another constraint, append it. */ constraint |= dfa->nodes[org_node].constraint; clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == -1, 0)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; } else /* dfa->edests[org_node].nelem == 2 */ { /* In case of the node can epsilon-transit, and it has two destinations. In the bin_tree_t and DFA, that's '|' and '*'. */ org_dest = dfa->edests[org_node].elems[0]; re_node_set_empty (dfa->edests + clone_node); /* Search for a duplicated node which satisfies the constraint. */ clone_dest = search_duplicated_node (dfa, org_dest, constraint); if (clone_dest == -1) { /* There is no such duplicated node, create a new one. */ reg_errcode_t err; clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == -1, 0)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; err = duplicate_node_closure (dfa, org_dest, clone_dest, root_node, constraint); if (BE (err != REG_NOERROR, 0)) return err; } else { /* There is a duplicated node which satisfies the constraint, use it to avoid infinite loop. */ ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; } org_dest = dfa->edests[org_node].elems[1]; clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == -1, 0)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; } org_node = org_dest; clone_node = clone_dest; } return REG_NOERROR; } /* Search for a node which is duplicated from the node ORG_NODE, and satisfies the constraint CONSTRAINT. */ static Idx search_duplicated_node (const re_dfa_t *dfa, Idx org_node, unsigned int constraint) { Idx idx; for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx) { if (org_node == dfa->org_indices[idx] && constraint == dfa->nodes[idx].constraint) return idx; /* Found. */ } return -1; /* Not found. */ } /* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT. Return the index of the new node, or -1 if insufficient storage is available. */ static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint) { Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]); if (BE (dup_idx != -1, 1)) { dfa->nodes[dup_idx].constraint = constraint; dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint; dfa->nodes[dup_idx].duplicated = 1; /* Store the index of the original node. */ dfa->org_indices[dup_idx] = org_idx; } return dup_idx; } static reg_errcode_t calc_inveclosure (re_dfa_t *dfa) { Idx src, idx; bool ok; for (idx = 0; idx < dfa->nodes_len; ++idx) re_node_set_init_empty (dfa->inveclosures + idx); for (src = 0; src < dfa->nodes_len; ++src) { Idx *elems = dfa->eclosures[src].elems; for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx) { ok = re_node_set_insert_last (dfa->inveclosures + elems[idx], src); if (BE (! ok, 0)) return REG_ESPACE; } } return REG_NOERROR; } /* Calculate "eclosure" for all the node in DFA. */ static reg_errcode_t calc_eclosure (re_dfa_t *dfa) { Idx node_idx; bool incomplete; #ifdef DEBUG assert (dfa->nodes_len > 0); #endif incomplete = false; /* For each nodes, calculate epsilon closure. */ for (node_idx = 0; ; ++node_idx) { reg_errcode_t err; re_node_set eclosure_elem; if (node_idx == dfa->nodes_len) { if (!incomplete) break; incomplete = false; node_idx = 0; } #ifdef DEBUG assert (dfa->eclosures[node_idx].nelem != -1); #endif /* If we have already calculated, skip it. */ if (dfa->eclosures[node_idx].nelem != 0) continue; /* Calculate epsilon closure of 'node_idx'. */ err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, true); if (BE (err != REG_NOERROR, 0)) return err; if (dfa->eclosures[node_idx].nelem == 0) { incomplete = true; re_node_set_free (&eclosure_elem); } } return REG_NOERROR; } /* Calculate epsilon closure of NODE. */ static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) { reg_errcode_t err; Idx i; re_node_set eclosure; bool ok; bool incomplete = false; err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1); if (BE (err != REG_NOERROR, 0)) return err; /* This indicates that we are calculating this node now. We reference this value to avoid infinite loop. */ dfa->eclosures[node].nelem = -1; /* If the current node has constraints, duplicate all nodes since they must inherit the constraints. */ if (dfa->nodes[node].constraint && dfa->edests[node].nelem && !dfa->nodes[dfa->edests[node].elems[0]].duplicated) { err = duplicate_node_closure (dfa, node, node, node, dfa->nodes[node].constraint); if (BE (err != REG_NOERROR, 0)) return err; } /* Expand each epsilon destination nodes. */ if (IS_EPSILON_NODE(dfa->nodes[node].type)) for (i = 0; i < dfa->edests[node].nelem; ++i) { re_node_set eclosure_elem; Idx edest = dfa->edests[node].elems[i]; /* If calculating the epsilon closure of 'edest' is in progress, return intermediate result. */ if (dfa->eclosures[edest].nelem == -1) { incomplete = true; continue; } /* If we haven't calculated the epsilon closure of 'edest' yet, calculate now. Otherwise use calculated epsilon closure. */ if (dfa->eclosures[edest].nelem == 0) { err = calc_eclosure_iter (&eclosure_elem, dfa, edest, false); if (BE (err != REG_NOERROR, 0)) return err; } else eclosure_elem = dfa->eclosures[edest]; /* Merge the epsilon closure of 'edest'. */ err = re_node_set_merge (&eclosure, &eclosure_elem); if (BE (err != REG_NOERROR, 0)) return err; /* If the epsilon closure of 'edest' is incomplete, the epsilon closure of this node is also incomplete. */ if (dfa->eclosures[edest].nelem == 0) { incomplete = true; re_node_set_free (&eclosure_elem); } } /* An epsilon closure includes itself. */ ok = re_node_set_insert (&eclosure, node); if (BE (! ok, 0)) return REG_ESPACE; if (incomplete && !root) dfa->eclosures[node].nelem = 0; else dfa->eclosures[node] = eclosure; *new_set = eclosure; return REG_NOERROR; } /* Functions for token which are used in the parser. */ /* Fetch a token from INPUT. We must not use this function inside bracket expressions. */ static void fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax) { re_string_skip_bytes (input, peek_token (result, input, syntax)); } /* Peek a token from INPUT, and return the length of the token. We must not use this function inside bracket expressions. */ static int peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; if (re_string_eoi (input)) { token->type = END_OF_RE; return 0; } c = re_string_peek_byte (input, 0); token->opr.c = c; token->word_char = 0; #ifdef RE_ENABLE_I18N token->mb_partial = 0; if (input->mb_cur_max > 1 && !re_string_first_byte (input, re_string_cur_idx (input))) { token->type = CHARACTER; token->mb_partial = 1; return 1; } #endif if (c == '\\') { unsigned char c2; if (re_string_cur_idx (input) + 1 >= re_string_length (input)) { token->type = BACK_SLASH; return 1; } c2 = re_string_peek_byte_case (input, 1); token->opr.c = c2; token->type = CHARACTER; #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input) + 1); token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; } else #endif token->word_char = IS_WORD_CHAR (c2) != 0; switch (c2) { case '|': if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_NO_BK_VBAR)) token->type = OP_ALT; break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (!(syntax & RE_NO_BK_REFS)) { token->type = OP_BACK_REF; token->opr.idx = c2 - '1'; } break; case '<': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = WORD_FIRST; } break; case '>': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = WORD_LAST; } break; case 'b': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = WORD_DELIM; } break; case 'B': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = NOT_WORD_DELIM; } break; case 'w': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_WORD; break; case 'W': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_NOTWORD; break; case 's': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_SPACE; break; case 'S': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_NOTSPACE; break; case '`': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = BUF_FIRST; } break; case '\'': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = BUF_LAST; } break; case '(': if (!(syntax & RE_NO_BK_PARENS)) token->type = OP_OPEN_SUBEXP; break; case ')': if (!(syntax & RE_NO_BK_PARENS)) token->type = OP_CLOSE_SUBEXP; break; case '+': if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_PLUS; break; case '?': if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_QUESTION; break; case '{': if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES))) token->type = OP_OPEN_DUP_NUM; break; case '}': if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES))) token->type = OP_CLOSE_DUP_NUM; break; default: break; } return 2; } token->type = CHARACTER; #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input)); token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; } else #endif token->word_char = IS_WORD_CHAR (token->opr.c); switch (c) { case '\n': if (syntax & RE_NEWLINE_ALT) token->type = OP_ALT; break; case '|': if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_NO_BK_VBAR)) token->type = OP_ALT; break; case '*': token->type = OP_DUP_ASTERISK; break; case '+': if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_PLUS; break; case '?': if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_QUESTION; break; case '{': if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES)) token->type = OP_OPEN_DUP_NUM; break; case '}': if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES)) token->type = OP_CLOSE_DUP_NUM; break; case '(': if (syntax & RE_NO_BK_PARENS) token->type = OP_OPEN_SUBEXP; break; case ')': if (syntax & RE_NO_BK_PARENS) token->type = OP_CLOSE_SUBEXP; break; case '[': token->type = OP_OPEN_BRACKET; break; case '.': token->type = OP_PERIOD; break; case '^': if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) && re_string_cur_idx (input) != 0) { char prev = re_string_peek_byte (input, -1); if (!(syntax & RE_NEWLINE_ALT) || prev != '\n') break; } token->type = ANCHOR; token->opr.ctx_type = LINE_FIRST; break; case '$': if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) && re_string_cur_idx (input) + 1 != re_string_length (input)) { re_token_t next; re_string_skip_bytes (input, 1); peek_token (&next, input, syntax); re_string_skip_bytes (input, -1); if (next.type != OP_ALT && next.type != OP_CLOSE_SUBEXP) break; } token->type = ANCHOR; token->opr.ctx_type = LINE_LAST; break; default: break; } return 1; } /* Peek a token from INPUT, and return the length of the token. We must not use this function out of bracket expressions. */ static int peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; if (re_string_eoi (input)) { token->type = END_OF_RE; return 0; } c = re_string_peek_byte (input, 0); token->opr.c = c; #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1 && !re_string_first_byte (input, re_string_cur_idx (input))) { token->type = CHARACTER; return 1; } #endif /* RE_ENABLE_I18N */ if (c == '\\' && (syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && re_string_cur_idx (input) + 1 < re_string_length (input)) { /* In this case, '\' escape a character. */ unsigned char c2; re_string_skip_bytes (input, 1); c2 = re_string_peek_byte (input, 0); token->opr.c = c2; token->type = CHARACTER; return 1; } if (c == '[') /* '[' is a special char in a bracket exps. */ { unsigned char c2; int token_len; if (re_string_cur_idx (input) + 1 < re_string_length (input)) c2 = re_string_peek_byte (input, 1); else c2 = 0; token->opr.c = c2; token_len = 2; switch (c2) { case '.': token->type = OP_OPEN_COLL_ELEM; break; case '=': token->type = OP_OPEN_EQUIV_CLASS; break; case ':': if (syntax & RE_CHAR_CLASSES) { token->type = OP_OPEN_CHAR_CLASS; break; } FALLTHROUGH; default: token->type = CHARACTER; token->opr.c = c; token_len = 1; break; } return token_len; } switch (c) { case '-': token->type = OP_CHARSET_RANGE; break; case ']': token->type = OP_CLOSE_BRACKET; break; case '^': token->type = OP_NON_MATCH_LIST; break; default: token->type = CHARACTER; } return 1; } /* Functions for parser. */ /* Entry point of the parser. Parse the regular expression REGEXP and return the structure tree. If an error occurs, ERR is set by error code, and return NULL. This function build the following tree, from regular expression : CAT / \ / \ EOR CAT means concatenation. EOR means end of regular expression. */ static bin_tree_t * parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, reg_errcode_t *err) { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree, *eor, *root; re_token_t current_token; dfa->syntax = syntax; fetch_token (¤t_token, regexp, syntax | RE_CARET_ANCHORS_HERE); tree = parse_reg_exp (regexp, preg, ¤t_token, syntax, 0, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; eor = create_tree (dfa, NULL, NULL, END_OF_RE); if (tree != NULL) root = create_tree (dfa, tree, eor, CONCAT); else root = eor; if (BE (eor == NULL || root == NULL, 0)) { *err = REG_ESPACE; return NULL; } return root; } /* This function build the following tree, from regular expression |: ALT / \ / \ ALT means alternative, which represents the operator '|'. */ static bin_tree_t * parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err) { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree, *branch = NULL; bitset_word_t initial_bkref_map = dfa->completed_bkref_map; tree = parse_branch (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; while (token->type == OP_ALT) { fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE); if (token->type != OP_ALT && token->type != END_OF_RE && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) { bitset_word_t accumulated_bkref_map = dfa->completed_bkref_map; dfa->completed_bkref_map = initial_bkref_map; branch = parse_branch (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && branch == NULL, 0)) { if (tree != NULL) postorder (tree, free_tree, NULL); return NULL; } dfa->completed_bkref_map |= accumulated_bkref_map; } else branch = NULL; tree = create_tree (dfa, tree, branch, OP_ALT); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } return tree; } /* This function build the following tree, from regular expression : CAT / \ / \ CAT means concatenation. */ static bin_tree_t * parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err) { bin_tree_t *tree, *expr; re_dfa_t *dfa = preg->buffer; tree = parse_expression (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; while (token->type != OP_ALT && token->type != END_OF_RE && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) { expr = parse_expression (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && expr == NULL, 0)) { if (tree != NULL) postorder (tree, free_tree, NULL); return NULL; } if (tree != NULL && expr != NULL) { bin_tree_t *newtree = create_tree (dfa, tree, expr, CONCAT); if (newtree == NULL) { postorder (expr, free_tree, NULL); postorder (tree, free_tree, NULL); *err = REG_ESPACE; return NULL; } tree = newtree; } else if (tree == NULL) tree = expr; /* Otherwise expr == NULL, we don't need to create new tree. */ } return tree; } /* This function build the following tree, from regular expression a*: * | a */ static bin_tree_t * parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err) { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree; switch (token->type) { case CHARACTER: tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { while (!re_string_eoi (regexp) && !re_string_first_byte (regexp, re_string_cur_idx (regexp))) { bin_tree_t *mbc_remain; fetch_token (token, regexp, syntax); mbc_remain = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree, mbc_remain, CONCAT); if (BE (mbc_remain == NULL || tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } } #endif break; case OP_OPEN_SUBEXP: tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_OPEN_BRACKET: tree = parse_bracket_exp (regexp, dfa, token, syntax, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_BACK_REF: if (!BE (dfa->completed_bkref_map & (1 << token->opr.idx), 1)) { *err = REG_ESUBREG; return NULL; } dfa->used_bkref_map |= 1 << token->opr.idx; tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } ++dfa->nbackref; dfa->has_mb_node = 1; break; case OP_OPEN_DUP_NUM: if (syntax & RE_CONTEXT_INVALID_DUP) { *err = REG_BADRPT; return NULL; } FALLTHROUGH; case OP_DUP_ASTERISK: case OP_DUP_PLUS: case OP_DUP_QUESTION: if (syntax & RE_CONTEXT_INVALID_OPS) { *err = REG_BADRPT; return NULL; } else if (syntax & RE_CONTEXT_INDEP_OPS) { fetch_token (token, regexp, syntax); return parse_expression (regexp, preg, token, syntax, nest, err); } FALLTHROUGH; case OP_CLOSE_SUBEXP: if ((token->type == OP_CLOSE_SUBEXP) && !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)) { *err = REG_ERPAREN; return NULL; } FALLTHROUGH; case OP_CLOSE_DUP_NUM: /* We treat it as a normal character. */ /* Then we can these characters as normal characters. */ token->type = CHARACTER; /* mb_partial and word_char bits should be initialized already by peek_token. */ tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } break; case ANCHOR: if ((token->opr.ctx_type & (WORD_DELIM | NOT_WORD_DELIM | WORD_FIRST | WORD_LAST)) && dfa->word_ops_used == 0) init_word_char (dfa); if (token->opr.ctx_type == WORD_DELIM || token->opr.ctx_type == NOT_WORD_DELIM) { bin_tree_t *tree_first, *tree_last; if (token->opr.ctx_type == WORD_DELIM) { token->opr.ctx_type = WORD_FIRST; tree_first = create_token_tree (dfa, NULL, NULL, token); token->opr.ctx_type = WORD_LAST; } else { token->opr.ctx_type = INSIDE_WORD; tree_first = create_token_tree (dfa, NULL, NULL, token); token->opr.ctx_type = INSIDE_NOTWORD; } tree_last = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree_first, tree_last, OP_ALT); if (BE (tree_first == NULL || tree_last == NULL || tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } else { tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } /* We must return here, since ANCHORs can't be followed by repetition operators. eg. RE"^*" is invalid or "", it must not be "". */ fetch_token (token, regexp, syntax); return tree; case OP_PERIOD: tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } if (dfa->mb_cur_max > 1) dfa->has_mb_node = 1; break; case OP_WORD: case OP_NOTWORD: tree = build_charclass_op (dfa, regexp->trans, "alnum", "_", token->type == OP_NOTWORD, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_SPACE: case OP_NOTSPACE: tree = build_charclass_op (dfa, regexp->trans, "space", "", token->type == OP_NOTSPACE, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_ALT: case END_OF_RE: return NULL; case BACK_SLASH: *err = REG_EESCAPE; return NULL; default: /* Must not happen? */ #ifdef DEBUG assert (0); #endif return NULL; } fetch_token (token, regexp, syntax); while (token->type == OP_DUP_ASTERISK || token->type == OP_DUP_PLUS || token->type == OP_DUP_QUESTION || token->type == OP_OPEN_DUP_NUM) { bin_tree_t *dup_tree = parse_dup_op (tree, regexp, dfa, token, syntax, err); if (BE (*err != REG_NOERROR && dup_tree == NULL, 0)) { if (tree != NULL) postorder (tree, free_tree, NULL); return NULL; } tree = dup_tree; /* In BRE consecutive duplications are not allowed. */ if ((syntax & RE_CONTEXT_INVALID_DUP) && (token->type == OP_DUP_ASTERISK || token->type == OP_OPEN_DUP_NUM)) { if (tree != NULL) postorder (tree, free_tree, NULL); *err = REG_BADRPT; return NULL; } } return tree; } /* This function build the following tree, from regular expression (): SUBEXP | */ static bin_tree_t * parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err) { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree; size_t cur_nsub; cur_nsub = preg->re_nsub++; fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE); /* The subexpression may be a null string. */ if (token->type == OP_CLOSE_SUBEXP) tree = NULL; else { tree = parse_reg_exp (regexp, preg, token, syntax, nest, err); if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0)) { if (tree != NULL) postorder (tree, free_tree, NULL); *err = REG_EPAREN; } if (BE (*err != REG_NOERROR, 0)) return NULL; } if (cur_nsub <= '9' - '1') dfa->completed_bkref_map |= 1 << cur_nsub; tree = create_tree (dfa, tree, NULL, SUBEXP); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } tree->token.opr.idx = cur_nsub; return tree; } /* This function parse repetition operators like "*", "+", "{1,3}" etc. */ static bin_tree_t * parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err) { bin_tree_t *tree = NULL, *old_tree = NULL; Idx i, start, end, start_idx = re_string_cur_idx (regexp); re_token_t start_token = *token; if (token->type == OP_OPEN_DUP_NUM) { end = 0; start = fetch_number (regexp, token, syntax); if (start == -1) { if (token->type == CHARACTER && token->opr.c == ',') start = 0; /* We treat "{,m}" as "{0,m}". */ else { *err = REG_BADBR; /* {} is invalid. */ return NULL; } } if (BE (start != -2, 1)) { /* We treat "{n}" as "{n,n}". */ end = ((token->type == OP_CLOSE_DUP_NUM) ? start : ((token->type == CHARACTER && token->opr.c == ',') ? fetch_number (regexp, token, syntax) : -2)); } if (BE (start == -2 || end == -2, 0)) { /* Invalid sequence. */ if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0)) { if (token->type == END_OF_RE) *err = REG_EBRACE; else *err = REG_BADBR; return NULL; } /* If the syntax bit is set, rollback. */ re_string_set_index (regexp, start_idx); *token = start_token; token->type = CHARACTER; /* mb_partial and word_char bits should be already initialized by peek_token. */ return elem; } if (BE ((end != -1 && start > end) || token->type != OP_CLOSE_DUP_NUM, 0)) { /* First number greater than second. */ *err = REG_BADBR; return NULL; } if (BE (RE_DUP_MAX < (end == -1 ? start : end), 0)) { *err = REG_ESIZE; return NULL; } } else { start = (token->type == OP_DUP_PLUS) ? 1 : 0; end = (token->type == OP_DUP_QUESTION) ? 1 : -1; } fetch_token (token, regexp, syntax); if (BE (elem == NULL, 0)) return NULL; if (BE (start == 0 && end == 0, 0)) { postorder (elem, free_tree, NULL); return NULL; } /* Extract "{n,m}" to "...{0,}". */ if (BE (start > 0, 0)) { tree = elem; for (i = 2; i <= start; ++i) { elem = duplicate_tree (elem, dfa); tree = create_tree (dfa, tree, elem, CONCAT); if (BE (elem == NULL || tree == NULL, 0)) goto parse_dup_op_espace; } if (start == end) return tree; /* Duplicate ELEM before it is marked optional. */ elem = duplicate_tree (elem, dfa); if (BE (elem == NULL, 0)) goto parse_dup_op_espace; old_tree = tree; } else old_tree = NULL; if (elem->token.type == SUBEXP) { uintptr_t subidx = elem->token.opr.idx; postorder (elem, mark_opt_subexp, (void *) subidx); } tree = create_tree (dfa, elem, NULL, (end == -1 ? OP_DUP_ASTERISK : OP_ALT)); if (BE (tree == NULL, 0)) goto parse_dup_op_espace; /* This loop is actually executed only when end != -1, to rewrite {0,n} as ((...?)?)?... We have already created the start+1-th copy. */ if (TYPE_SIGNED (Idx) || end != -1) for (i = start + 2; i <= end; ++i) { elem = duplicate_tree (elem, dfa); tree = create_tree (dfa, tree, elem, CONCAT); if (BE (elem == NULL || tree == NULL, 0)) goto parse_dup_op_espace; tree = create_tree (dfa, tree, NULL, OP_ALT); if (BE (tree == NULL, 0)) goto parse_dup_op_espace; } if (old_tree) tree = create_tree (dfa, old_tree, tree, CONCAT); return tree; parse_dup_op_espace: *err = REG_ESPACE; return NULL; } /* Size of the names for collating symbol/equivalence_class/character_class. I'm not sure, but maybe enough. */ #define BRACKET_NAME_BUF_SIZE 32 #ifndef _LIBC # ifdef RE_ENABLE_I18N /* Convert the byte B to the corresponding wide character. In a unibyte locale, treat B as itself. In a multibyte locale, return WEOF if B is an encoding error. */ static wint_t parse_byte (unsigned char b, re_charset_t *mbcset) { return mbcset == NULL ? b : __btowc (b); } # endif /* Local function for parse_bracket_exp only used in case of NOT _LIBC. Build the range expression which starts from START_ELEM, and ends at END_ELEM. The result are written to MBCSET and SBCSET. RANGE_ALLOC is the allocated size of mbcset->range_starts, and mbcset->range_ends, is a pointer argument since we may update it. */ static reg_errcode_t # ifdef RE_ENABLE_I18N build_range_exp (const reg_syntax_t syntax, bitset_t sbcset, re_charset_t *mbcset, Idx *range_alloc, const bracket_elem_t *start_elem, const bracket_elem_t *end_elem) # else /* not RE_ENABLE_I18N */ build_range_exp (const reg_syntax_t syntax, bitset_t sbcset, const bracket_elem_t *start_elem, const bracket_elem_t *end_elem) # endif /* not RE_ENABLE_I18N */ { unsigned int start_ch, end_ch; /* Equivalence Classes and Character Classes can't be a range start/end. */ if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS, 0)) return REG_ERANGE; /* We can handle no multi character collating elements without libc support. */ if (BE ((start_elem->type == COLL_SYM && strlen ((char *) start_elem->opr.name) > 1) || (end_elem->type == COLL_SYM && strlen ((char *) end_elem->opr.name) > 1), 0)) return REG_ECOLLATE; # ifdef RE_ENABLE_I18N { wchar_t wc; wint_t start_wc; wint_t end_wc; start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0] : 0)); end_ch = ((end_elem->type == SB_CHAR) ? end_elem->opr.ch : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] : 0)); start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM) ? parse_byte (start_ch, mbcset) : start_elem->opr.wch); end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM) ? parse_byte (end_ch, mbcset) : end_elem->opr.wch); if (start_wc == WEOF || end_wc == WEOF) return REG_ECOLLATE; else if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_wc > end_wc, 0)) return REG_ERANGE; /* Got valid collation sequence values, add them as a new entry. However, for !_LIBC we have no collation elements: if the character set is single byte, the single byte character set that we build below suffices. parse_bracket_exp passes no MBCSET if dfa->mb_cur_max == 1. */ if (mbcset) { /* Check the space of the arrays. */ if (BE (*range_alloc == mbcset->nranges, 0)) { /* There is not enough space, need realloc. */ wchar_t *new_array_start, *new_array_end; Idx new_nranges; /* +1 in case of mbcset->nranges is 0. */ new_nranges = 2 * mbcset->nranges + 1; /* Use realloc since mbcset->range_starts and mbcset->range_ends are NULL if *range_alloc == 0. */ new_array_start = re_realloc (mbcset->range_starts, wchar_t, new_nranges); new_array_end = re_realloc (mbcset->range_ends, wchar_t, new_nranges); if (BE (new_array_start == NULL || new_array_end == NULL, 0)) { re_free (new_array_start); re_free (new_array_end); return REG_ESPACE; } mbcset->range_starts = new_array_start; mbcset->range_ends = new_array_end; *range_alloc = new_nranges; } mbcset->range_starts[mbcset->nranges] = start_wc; mbcset->range_ends[mbcset->nranges++] = end_wc; } /* Build the table for single byte characters. */ for (wc = 0; wc < SBC_MAX; ++wc) { if (start_wc <= wc && wc <= end_wc) bitset_set (sbcset, wc); } } # else /* not RE_ENABLE_I18N */ { unsigned int ch; start_ch = ((start_elem->type == SB_CHAR ) ? start_elem->opr.ch : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0] : 0)); end_ch = ((end_elem->type == SB_CHAR ) ? end_elem->opr.ch : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] : 0)); if (start_ch > end_ch) return REG_ERANGE; /* Build the table for single byte characters. */ for (ch = 0; ch < SBC_MAX; ++ch) if (start_ch <= ch && ch <= end_ch) bitset_set (sbcset, ch); } # endif /* not RE_ENABLE_I18N */ return REG_NOERROR; } #endif /* not _LIBC */ #ifndef _LIBC /* Helper function for parse_bracket_exp only used in case of NOT _LIBC.. Build the collating element which is represented by NAME. The result are written to MBCSET and SBCSET. COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a pointer argument since we may update it. */ static reg_errcode_t # ifdef RE_ENABLE_I18N build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, Idx *coll_sym_alloc, const unsigned char *name) # else /* not RE_ENABLE_I18N */ build_collating_symbol (bitset_t sbcset, const unsigned char *name) # endif /* not RE_ENABLE_I18N */ { size_t name_len = strlen ((const char *) name); if (BE (name_len != 1, 0)) return REG_ECOLLATE; else { bitset_set (sbcset, name[0]); return REG_NOERROR; } } #endif /* not _LIBC */ /* This function parse bracket expression like "[abc]", "[a-c]", "[[.a-a.]]" etc. */ static bin_tree_t * parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err) { #ifdef _LIBC const unsigned char *collseqmb; const char *collseqwc; uint32_t nrules; int32_t table_size; const int32_t *symb_table; const unsigned char *extra; /* Local function for parse_bracket_exp used in _LIBC environment. Seek the collating symbol entry corresponding to NAME. Return the index of the symbol in the SYMB_TABLE, or -1 if not found. */ auto inline int32_t __attribute__ ((always_inline)) seek_collating_symbol_entry (const unsigned char *name, size_t name_len) { int32_t elem; for (elem = 0; elem < table_size; elem++) if (symb_table[2 * elem] != 0) { int32_t idx = symb_table[2 * elem + 1]; /* Skip the name of collating element name. */ idx += 1 + extra[idx]; if (/* Compare the length of the name. */ name_len == extra[idx] /* Compare the name. */ && memcmp (name, &extra[idx + 1], name_len) == 0) /* Yep, this is the entry. */ return elem; } return -1; } /* Local function for parse_bracket_exp used in _LIBC environment. Look up the collation sequence value of BR_ELEM. Return the value if succeeded, UINT_MAX otherwise. */ auto inline unsigned int __attribute__ ((always_inline)) lookup_collation_sequence_value (bracket_elem_t *br_elem) { if (br_elem->type == SB_CHAR) { /* if (MB_CUR_MAX == 1) */ if (nrules == 0) return collseqmb[br_elem->opr.ch]; else { wint_t wc = __btowc (br_elem->opr.ch); return __collseq_table_lookup (collseqwc, wc); } } else if (br_elem->type == MB_CHAR) { if (nrules != 0) return __collseq_table_lookup (collseqwc, br_elem->opr.wch); } else if (br_elem->type == COLL_SYM) { size_t sym_name_len = strlen ((char *) br_elem->opr.name); if (nrules != 0) { int32_t elem, idx; elem = seek_collating_symbol_entry (br_elem->opr.name, sym_name_len); if (elem != -1) { /* We found the entry. */ idx = symb_table[2 * elem + 1]; /* Skip the name of collating element name. */ idx += 1 + extra[idx]; /* Skip the byte sequence of the collating element. */ idx += 1 + extra[idx]; /* Adjust for the alignment. */ idx = (idx + 3) & ~3; /* Skip the multibyte collation sequence value. */ idx += sizeof (unsigned int); /* Skip the wide char sequence of the collating element. */ idx += sizeof (unsigned int) * (1 + *(unsigned int *) (extra + idx)); /* Return the collation sequence value. */ return *(unsigned int *) (extra + idx); } else if (sym_name_len == 1) { /* No valid character. Match it as a single byte character. */ return collseqmb[br_elem->opr.name[0]]; } } else if (sym_name_len == 1) return collseqmb[br_elem->opr.name[0]]; } return UINT_MAX; } /* Local function for parse_bracket_exp used in _LIBC environment. Build the range expression which starts from START_ELEM, and ends at END_ELEM. The result are written to MBCSET and SBCSET. RANGE_ALLOC is the allocated size of mbcset->range_starts, and mbcset->range_ends, is a pointer argument since we may update it. */ auto inline reg_errcode_t __attribute__ ((always_inline)) build_range_exp (bitset_t sbcset, re_charset_t *mbcset, int *range_alloc, bracket_elem_t *start_elem, bracket_elem_t *end_elem) { unsigned int ch; uint32_t start_collseq; uint32_t end_collseq; /* Equivalence Classes and Character Classes can't be a range start/end. */ if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS, 0)) return REG_ERANGE; /* FIXME: Implement rational ranges here, too. */ start_collseq = lookup_collation_sequence_value (start_elem); end_collseq = lookup_collation_sequence_value (end_elem); /* Check start/end collation sequence values. */ if (BE (start_collseq == UINT_MAX || end_collseq == UINT_MAX, 0)) return REG_ECOLLATE; if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_collseq > end_collseq, 0)) return REG_ERANGE; /* Got valid collation sequence values, add them as a new entry. However, if we have no collation elements, and the character set is single byte, the single byte character set that we build below suffices. */ if (nrules > 0 || dfa->mb_cur_max > 1) { /* Check the space of the arrays. */ if (BE (*range_alloc == mbcset->nranges, 0)) { /* There is not enough space, need realloc. */ uint32_t *new_array_start; uint32_t *new_array_end; Idx new_nranges; /* +1 in case of mbcset->nranges is 0. */ new_nranges = 2 * mbcset->nranges + 1; new_array_start = re_realloc (mbcset->range_starts, uint32_t, new_nranges); new_array_end = re_realloc (mbcset->range_ends, uint32_t, new_nranges); if (BE (new_array_start == NULL || new_array_end == NULL, 0)) return REG_ESPACE; mbcset->range_starts = new_array_start; mbcset->range_ends = new_array_end; *range_alloc = new_nranges; } mbcset->range_starts[mbcset->nranges] = start_collseq; mbcset->range_ends[mbcset->nranges++] = end_collseq; } /* Build the table for single byte characters. */ for (ch = 0; ch < SBC_MAX; ch++) { uint32_t ch_collseq; /* if (MB_CUR_MAX == 1) */ if (nrules == 0) ch_collseq = collseqmb[ch]; else ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch)); if (start_collseq <= ch_collseq && ch_collseq <= end_collseq) bitset_set (sbcset, ch); } return REG_NOERROR; } /* Local function for parse_bracket_exp used in _LIBC environment. Build the collating element which is represented by NAME. The result are written to MBCSET and SBCSET. COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a pointer argument since we may update it. */ auto inline reg_errcode_t __attribute__ ((always_inline)) build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, Idx *coll_sym_alloc, const unsigned char *name) { int32_t elem, idx; size_t name_len = strlen ((const char *) name); if (nrules != 0) { elem = seek_collating_symbol_entry (name, name_len); if (elem != -1) { /* We found the entry. */ idx = symb_table[2 * elem + 1]; /* Skip the name of collating element name. */ idx += 1 + extra[idx]; } else if (name_len == 1) { /* No valid character, treat it as a normal character. */ bitset_set (sbcset, name[0]); return REG_NOERROR; } else return REG_ECOLLATE; /* Got valid collation sequence, add it as a new entry. */ /* Check the space of the arrays. */ if (BE (*coll_sym_alloc == mbcset->ncoll_syms, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->ncoll_syms is 0. */ Idx new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1; /* Use realloc since mbcset->coll_syms is NULL if *alloc == 0. */ int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t, new_coll_sym_alloc); if (BE (new_coll_syms == NULL, 0)) return REG_ESPACE; mbcset->coll_syms = new_coll_syms; *coll_sym_alloc = new_coll_sym_alloc; } mbcset->coll_syms[mbcset->ncoll_syms++] = idx; return REG_NOERROR; } else { if (BE (name_len != 1, 0)) return REG_ECOLLATE; else { bitset_set (sbcset, name[0]); return REG_NOERROR; } } } #endif re_token_t br_token; re_bitset_ptr_t sbcset; #ifdef RE_ENABLE_I18N re_charset_t *mbcset; Idx coll_sym_alloc = 0, range_alloc = 0, mbchar_alloc = 0; Idx equiv_class_alloc = 0, char_class_alloc = 0; #endif /* not RE_ENABLE_I18N */ bool non_match = false; bin_tree_t *work_tree; int token_len; bool first_round = true; #ifdef _LIBC collseqmb = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB); nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules) { /* if (MB_CUR_MAX > 1) */ collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); table_size = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_SYMB_HASH_SIZEMB); symb_table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_TABLEMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); } #endif sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); #ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); #endif /* RE_ENABLE_I18N */ #ifdef RE_ENABLE_I18N if (BE (sbcset == NULL || mbcset == NULL, 0)) #else if (BE (sbcset == NULL, 0)) #endif /* RE_ENABLE_I18N */ { re_free (sbcset); #ifdef RE_ENABLE_I18N re_free (mbcset); #endif *err = REG_ESPACE; return NULL; } token_len = peek_token_bracket (token, regexp, syntax); if (BE (token->type == END_OF_RE, 0)) { *err = REG_BADPAT; goto parse_bracket_exp_free_return; } if (token->type == OP_NON_MATCH_LIST) { #ifdef RE_ENABLE_I18N mbcset->non_match = 1; #endif /* not RE_ENABLE_I18N */ non_match = true; if (syntax & RE_HAT_LISTS_NOT_NEWLINE) bitset_set (sbcset, '\n'); re_string_skip_bytes (regexp, token_len); /* Skip a token. */ token_len = peek_token_bracket (token, regexp, syntax); if (BE (token->type == END_OF_RE, 0)) { *err = REG_BADPAT; goto parse_bracket_exp_free_return; } } /* We treat the first ']' as a normal character. */ if (token->type == OP_CLOSE_BRACKET) token->type = CHARACTER; while (1) { bracket_elem_t start_elem, end_elem; unsigned char start_name_buf[BRACKET_NAME_BUF_SIZE]; unsigned char end_name_buf[BRACKET_NAME_BUF_SIZE]; reg_errcode_t ret; int token_len2 = 0; bool is_range_exp = false; re_token_t token2; start_elem.opr.name = start_name_buf; start_elem.type = COLL_SYM; ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa, syntax, first_round); if (BE (ret != REG_NOERROR, 0)) { *err = ret; goto parse_bracket_exp_free_return; } first_round = false; /* Get information about the next token. We need it in any case. */ token_len = peek_token_bracket (token, regexp, syntax); /* Do not check for ranges if we know they are not allowed. */ if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS) { if (BE (token->type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; } if (token->type == OP_CHARSET_RANGE) { re_string_skip_bytes (regexp, token_len); /* Skip '-'. */ token_len2 = peek_token_bracket (&token2, regexp, syntax); if (BE (token2.type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; } if (token2.type == OP_CLOSE_BRACKET) { /* We treat the last '-' as a normal character. */ re_string_skip_bytes (regexp, -token_len); token->type = CHARACTER; } else is_range_exp = true; } } if (is_range_exp == true) { end_elem.opr.name = end_name_buf; end_elem.type = COLL_SYM; ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2, dfa, syntax, true); if (BE (ret != REG_NOERROR, 0)) { *err = ret; goto parse_bracket_exp_free_return; } token_len = peek_token_bracket (token, regexp, syntax); #ifdef _LIBC *err = build_range_exp (sbcset, mbcset, &range_alloc, &start_elem, &end_elem); #else # ifdef RE_ENABLE_I18N *err = build_range_exp (syntax, sbcset, dfa->mb_cur_max > 1 ? mbcset : NULL, &range_alloc, &start_elem, &end_elem); # else *err = build_range_exp (syntax, sbcset, &start_elem, &end_elem); # endif #endif /* RE_ENABLE_I18N */ if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; } else { switch (start_elem.type) { case SB_CHAR: bitset_set (sbcset, start_elem.opr.ch); break; #ifdef RE_ENABLE_I18N case MB_CHAR: /* Check whether the array has enough space. */ if (BE (mbchar_alloc == mbcset->nmbchars, 0)) { wchar_t *new_mbchars; /* Not enough, realloc it. */ /* +1 in case of mbcset->nmbchars is 0. */ mbchar_alloc = 2 * mbcset->nmbchars + 1; /* Use realloc since array is NULL if *alloc == 0. */ new_mbchars = re_realloc (mbcset->mbchars, wchar_t, mbchar_alloc); if (BE (new_mbchars == NULL, 0)) goto parse_bracket_exp_espace; mbcset->mbchars = new_mbchars; } mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch; break; #endif /* RE_ENABLE_I18N */ case EQUIV_CLASS: *err = build_equiv_class (sbcset, #ifdef RE_ENABLE_I18N mbcset, &equiv_class_alloc, #endif /* RE_ENABLE_I18N */ start_elem.opr.name); if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; case COLL_SYM: *err = build_collating_symbol (sbcset, #ifdef RE_ENABLE_I18N mbcset, &coll_sym_alloc, #endif /* RE_ENABLE_I18N */ start_elem.opr.name); if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; case CHAR_CLASS: *err = build_charclass (regexp->trans, sbcset, #ifdef RE_ENABLE_I18N mbcset, &char_class_alloc, #endif /* RE_ENABLE_I18N */ (const char *) start_elem.opr.name, syntax); if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; default: assert (0); break; } } if (BE (token->type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; } if (token->type == OP_CLOSE_BRACKET) break; } re_string_skip_bytes (regexp, token_len); /* Skip a token. */ /* If it is non-matching list. */ if (non_match) bitset_not (sbcset); #ifdef RE_ENABLE_I18N /* Ensure only single byte characters are set. */ if (dfa->mb_cur_max > 1) bitset_mask (sbcset, dfa->sb_char); if (mbcset->nmbchars || mbcset->ncoll_syms || mbcset->nequiv_classes || mbcset->nranges || (dfa->mb_cur_max > 1 && (mbcset->nchar_classes || mbcset->non_match))) { bin_tree_t *mbc_tree; int sbc_idx; /* Build a tree for complex bracket. */ dfa->has_mb_node = 1; br_token.type = COMPLEX_BRACKET; br_token.opr.mbcset = mbcset; mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (mbc_tree == NULL, 0)) goto parse_bracket_exp_espace; for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx) if (sbcset[sbc_idx]) break; /* If there are no bits set in sbcset, there is no point of having both SIMPLE_BRACKET and COMPLEX_BRACKET. */ if (sbc_idx < BITSET_WORDS) { /* Build a tree for simple bracket. */ br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; /* Then join them by ALT node. */ work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT); if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; } else { re_free (sbcset); work_tree = mbc_tree; } } else #endif /* not RE_ENABLE_I18N */ { #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* Build a tree for simple bracket. */ br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; } return work_tree; parse_bracket_exp_espace: *err = REG_ESPACE; parse_bracket_exp_free_return: re_free (sbcset); #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* RE_ENABLE_I18N */ return NULL; } /* Parse an element in the bracket expression. */ static reg_errcode_t parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token, int token_len, re_dfa_t *dfa, reg_syntax_t syntax, bool accept_hyphen) { #ifdef RE_ENABLE_I18N int cur_char_size; cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp)); if (cur_char_size > 1) { elem->type = MB_CHAR; elem->opr.wch = re_string_wchar_at (regexp, re_string_cur_idx (regexp)); re_string_skip_bytes (regexp, cur_char_size); return REG_NOERROR; } #endif /* RE_ENABLE_I18N */ re_string_skip_bytes (regexp, token_len); /* Skip a token. */ if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS || token->type == OP_OPEN_EQUIV_CLASS) return parse_bracket_symbol (elem, regexp, token); if (BE (token->type == OP_CHARSET_RANGE, 0) && !accept_hyphen) { /* A '-' must only appear as anything but a range indicator before the closing bracket. Everything else is an error. */ re_token_t token2; (void) peek_token_bracket (&token2, regexp, syntax); if (token2.type != OP_CLOSE_BRACKET) /* The actual error value is not standardized since this whole case is undefined. But ERANGE makes good sense. */ return REG_ERANGE; } elem->type = SB_CHAR; elem->opr.ch = token->opr.c; return REG_NOERROR; } /* Parse a bracket symbol in the bracket expression. Bracket symbols are such as [::], [..], and [==]. */ static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token) { unsigned char ch, delim = token->opr.c; int i = 0; if (re_string_eoi(regexp)) return REG_EBRACK; for (;; ++i) { if (i >= BRACKET_NAME_BUF_SIZE) return REG_EBRACK; if (token->type == OP_OPEN_CHAR_CLASS) ch = re_string_fetch_byte_case (regexp); else ch = re_string_fetch_byte (regexp); if (re_string_eoi(regexp)) return REG_EBRACK; if (ch == delim && re_string_peek_byte (regexp, 0) == ']') break; elem->opr.name[i] = ch; } re_string_skip_bytes (regexp, 1); elem->opr.name[i] = '\0'; switch (token->type) { case OP_OPEN_COLL_ELEM: elem->type = COLL_SYM; break; case OP_OPEN_EQUIV_CLASS: elem->type = EQUIV_CLASS; break; case OP_OPEN_CHAR_CLASS: elem->type = CHAR_CLASS; break; default: break; } return REG_NOERROR; } /* Helper function for parse_bracket_exp. Build the equivalence class which is represented by NAME. The result are written to MBCSET and SBCSET. EQUIV_CLASS_ALLOC is the allocated size of mbcset->equiv_classes, is a pointer argument since we may update it. */ static reg_errcode_t #ifdef RE_ENABLE_I18N build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, Idx *equiv_class_alloc, const unsigned char *name) #else /* not RE_ENABLE_I18N */ build_equiv_class (bitset_t sbcset, const unsigned char *name) #endif /* not RE_ENABLE_I18N */ { #ifdef _LIBC uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { const int32_t *table, *indirect; const unsigned char *weights, *extra, *cp; unsigned char char_buf[2]; int32_t idx1, idx2; unsigned int ch; size_t len; /* Calculate the index for equivalence class. */ cp = name; table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); idx1 = findidx (table, indirect, extra, &cp, -1); if (BE (idx1 == 0 || *cp != '\0', 0)) /* This isn't a valid character. */ return REG_ECOLLATE; /* Build single byte matching table for this equivalence class. */ len = weights[idx1 & 0xffffff]; for (ch = 0; ch < SBC_MAX; ++ch) { char_buf[0] = ch; cp = char_buf; idx2 = findidx (table, indirect, extra, &cp, 1); /* idx2 = table[ch]; */ if (idx2 == 0) /* This isn't a valid character. */ continue; /* Compare only if the length matches and the collation rule index is the same. */ if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24) && memcmp (weights + (idx1 & 0xffffff) + 1, weights + (idx2 & 0xffffff) + 1, len) == 0) bitset_set (sbcset, ch); } /* Check whether the array has enough space. */ if (BE (*equiv_class_alloc == mbcset->nequiv_classes, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->nequiv_classes is 0. */ Idx new_equiv_class_alloc = 2 * mbcset->nequiv_classes + 1; /* Use realloc since the array is NULL if *alloc == 0. */ int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes, int32_t, new_equiv_class_alloc); if (BE (new_equiv_classes == NULL, 0)) return REG_ESPACE; mbcset->equiv_classes = new_equiv_classes; *equiv_class_alloc = new_equiv_class_alloc; } mbcset->equiv_classes[mbcset->nequiv_classes++] = idx1; } else #endif /* _LIBC */ { if (BE (strlen ((const char *) name) != 1, 0)) return REG_ECOLLATE; bitset_set (sbcset, *name); } return REG_NOERROR; } /* Helper function for parse_bracket_exp. Build the character class which is represented by NAME. The result are written to MBCSET and SBCSET. CHAR_CLASS_ALLOC is the allocated size of mbcset->char_classes, is a pointer argument since we may update it. */ static reg_errcode_t #ifdef RE_ENABLE_I18N build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, re_charset_t *mbcset, Idx *char_class_alloc, const char *class_name, reg_syntax_t syntax) #else /* not RE_ENABLE_I18N */ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, const char *class_name, reg_syntax_t syntax) #endif /* not RE_ENABLE_I18N */ { int i; const char *name = class_name; /* In case of REG_ICASE "upper" and "lower" match the both of upper and lower cases. */ if ((syntax & RE_ICASE) && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0)) name = "alpha"; #ifdef RE_ENABLE_I18N /* Check the space of the arrays. */ if (BE (*char_class_alloc == mbcset->nchar_classes, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->nchar_classes is 0. */ Idx new_char_class_alloc = 2 * mbcset->nchar_classes + 1; /* Use realloc since array is NULL if *alloc == 0. */ wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t, new_char_class_alloc); if (BE (new_char_classes == NULL, 0)) return REG_ESPACE; mbcset->char_classes = new_char_classes; *char_class_alloc = new_char_class_alloc; } mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name); #endif /* RE_ENABLE_I18N */ #define BUILD_CHARCLASS_LOOP(ctype_func) \ do { \ if (BE (trans != NULL, 0)) \ { \ for (i = 0; i < SBC_MAX; ++i) \ if (ctype_func (i)) \ bitset_set (sbcset, trans[i]); \ } \ else \ { \ for (i = 0; i < SBC_MAX; ++i) \ if (ctype_func (i)) \ bitset_set (sbcset, i); \ } \ } while (0) if (strcmp (name, "alnum") == 0) BUILD_CHARCLASS_LOOP (isalnum); else if (strcmp (name, "cntrl") == 0) BUILD_CHARCLASS_LOOP (iscntrl); else if (strcmp (name, "lower") == 0) BUILD_CHARCLASS_LOOP (islower); else if (strcmp (name, "space") == 0) BUILD_CHARCLASS_LOOP (isspace); else if (strcmp (name, "alpha") == 0) BUILD_CHARCLASS_LOOP (isalpha); else if (strcmp (name, "digit") == 0) BUILD_CHARCLASS_LOOP (isdigit); else if (strcmp (name, "print") == 0) BUILD_CHARCLASS_LOOP (isprint); else if (strcmp (name, "upper") == 0) BUILD_CHARCLASS_LOOP (isupper); else if (strcmp (name, "blank") == 0) BUILD_CHARCLASS_LOOP (isblank); else if (strcmp (name, "graph") == 0) BUILD_CHARCLASS_LOOP (isgraph); else if (strcmp (name, "punct") == 0) BUILD_CHARCLASS_LOOP (ispunct); else if (strcmp (name, "xdigit") == 0) BUILD_CHARCLASS_LOOP (isxdigit); else return REG_ECTYPE; return REG_NOERROR; } static bin_tree_t * build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, const char *class_name, const char *extra, bool non_match, reg_errcode_t *err) { re_bitset_ptr_t sbcset; #ifdef RE_ENABLE_I18N re_charset_t *mbcset; Idx alloc = 0; #endif /* not RE_ENABLE_I18N */ reg_errcode_t ret; re_token_t br_token; bin_tree_t *tree; sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); if (BE (sbcset == NULL, 0)) { *err = REG_ESPACE; return NULL; } #ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); if (BE (mbcset == NULL, 0)) { re_free (sbcset); *err = REG_ESPACE; return NULL; } mbcset->non_match = non_match; #endif /* RE_ENABLE_I18N */ /* We don't care the syntax in this case. */ ret = build_charclass (trans, sbcset, #ifdef RE_ENABLE_I18N mbcset, &alloc, #endif /* RE_ENABLE_I18N */ class_name, 0); if (BE (ret != REG_NOERROR, 0)) { re_free (sbcset); #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* RE_ENABLE_I18N */ *err = ret; return NULL; } /* \w match '_' also. */ for (; *extra; extra++) bitset_set (sbcset, *extra); /* If it is non-matching list. */ if (non_match) bitset_not (sbcset); #ifdef RE_ENABLE_I18N /* Ensure only single byte characters are set. */ if (dfa->mb_cur_max > 1) bitset_mask (sbcset, dfa->sb_char); #endif /* Build a tree for simple bracket. */ #if defined GCC_LINT || defined lint memset (&br_token, 0, sizeof br_token); #endif br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (tree == NULL, 0)) goto build_word_op_espace; #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { bin_tree_t *mbc_tree; /* Build a tree for complex bracket. */ br_token.type = COMPLEX_BRACKET; br_token.opr.mbcset = mbcset; dfa->has_mb_node = 1; mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (mbc_tree == NULL, 0)) goto build_word_op_espace; /* Then join them by ALT node. */ tree = create_tree (dfa, tree, mbc_tree, OP_ALT); if (BE (mbc_tree != NULL, 1)) return tree; } else { free_charset (mbcset); return tree; } #else /* not RE_ENABLE_I18N */ return tree; #endif /* not RE_ENABLE_I18N */ build_word_op_espace: re_free (sbcset); #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* RE_ENABLE_I18N */ *err = REG_ESPACE; return NULL; } /* This is intended for the expressions like "a{1,3}". Fetch a number from 'input', and return the number. Return -1 if the number field is empty like "{,1}". Return RE_DUP_MAX + 1 if the number field is too large. Return -2 if an error occurred. */ static Idx fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax) { Idx num = -1; unsigned char c; while (1) { fetch_token (token, input, syntax); c = token->opr.c; if (BE (token->type == END_OF_RE, 0)) return -2; if (token->type == OP_CLOSE_DUP_NUM || c == ',') break; num = ((token->type != CHARACTER || c < '0' || '9' < c || num == -2) ? -2 : num == -1 ? c - '0' : MIN (RE_DUP_MAX + 1, num * 10 + c - '0')); } return num; } #ifdef RE_ENABLE_I18N static void free_charset (re_charset_t *cset) { re_free (cset->mbchars); # ifdef _LIBC re_free (cset->coll_syms); re_free (cset->equiv_classes); # endif re_free (cset->range_starts); re_free (cset->range_ends); re_free (cset->char_classes); re_free (cset); } #endif /* RE_ENABLE_I18N */ /* Functions for binary tree operation. */ /* Create a tree node. */ static bin_tree_t * create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, re_token_type_t type) { re_token_t t; #if defined GCC_LINT || defined lint memset (&t, 0, sizeof t); #endif t.type = type; return create_token_tree (dfa, left, right, &t); } static bin_tree_t * create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, const re_token_t *token) { bin_tree_t *tree; if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0)) { bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1); if (storage == NULL) return NULL; storage->next = dfa->str_tree_storage; dfa->str_tree_storage = storage; dfa->str_tree_storage_idx = 0; } tree = &dfa->str_tree_storage->data[dfa->str_tree_storage_idx++]; tree->parent = NULL; tree->left = left; tree->right = right; tree->token = *token; tree->token.duplicated = 0; tree->token.opt_subexp = 0; tree->first = NULL; tree->next = NULL; tree->node_idx = -1; if (left != NULL) left->parent = tree; if (right != NULL) right->parent = tree; return tree; } /* Mark the tree SRC as an optional subexpression. To be called from preorder or postorder. */ static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node) { Idx idx = (uintptr_t) extra; if (node->token.type == SUBEXP && node->token.opr.idx == idx) node->token.opt_subexp = 1; return REG_NOERROR; } /* Free the allocated memory inside NODE. */ static void free_token (re_token_t *node) { #ifdef RE_ENABLE_I18N if (node->type == COMPLEX_BRACKET && node->duplicated == 0) free_charset (node->opr.mbcset); else #endif /* RE_ENABLE_I18N */ if (node->type == SIMPLE_BRACKET && node->duplicated == 0) re_free (node->opr.sbcset); } /* Worker function for tree walking. Free the allocated memory inside NODE and its children. */ static reg_errcode_t free_tree (void *extra, bin_tree_t *node) { free_token (&node->token); return REG_NOERROR; } /* Duplicate the node SRC, and return new node. This is a preorder visit similar to the one implemented by the generic visitor, but we need more infrastructure to maintain two parallel trees --- so, it's easier to duplicate. */ static bin_tree_t * duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa) { const bin_tree_t *node; bin_tree_t *dup_root; bin_tree_t **p_new = &dup_root, *dup_node = root->parent; for (node = root; ; ) { /* Create a new tree and link it back to the current parent. */ *p_new = create_token_tree (dfa, NULL, NULL, &node->token); if (*p_new == NULL) return NULL; (*p_new)->parent = dup_node; (*p_new)->token.duplicated = 1; dup_node = *p_new; /* Go to the left node, or up and to the right. */ if (node->left) { node = node->left; p_new = &dup_node->left; } else { const bin_tree_t *prev = NULL; while (node->right == prev || node->right == NULL) { prev = node; node = node->parent; dup_node = dup_node->parent; if (!node) return dup_root; } node = node->right; p_new = &dup_node->right; } } } libprelude-5.2.0/libmissing/PaxHeaders.14770/regex.c0000644000000000000000000000011013726163410020261 xustar000000000000000024 mtime=1599661832.592 24 atime=1599661832.755 24 ctime=1599661998.944 libprelude-5.2.0/libmissing/regex.c0000644000000000000000000000620313726163410017265 0ustar00rootroot00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _LIBC # include # if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__ # pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" # endif # if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__ # pragma GCC diagnostic ignored "-Wold-style-definition" # pragma GCC diagnostic ignored "-Wtype-limits" # endif #endif /* Make sure no one compiles this code with a C++ compiler. */ #if defined __cplusplus && defined _LIBC # error "This is C code, use a C compiler" #endif #ifdef _LIBC /* We have to keep the namespace clean. */ # define regfree(preg) __regfree (preg) # define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef) # define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags) # define regerror(errcode, preg, errbuf, errbuf_size) \ __regerror(errcode, preg, errbuf, errbuf_size) # define re_set_registers(bu, re, nu, st, en) \ __re_set_registers (bu, re, nu, st, en) # define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \ __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) # define re_match(bufp, string, size, pos, regs) \ __re_match (bufp, string, size, pos, regs) # define re_search(bufp, string, size, startpos, range, regs) \ __re_search (bufp, string, size, startpos, range, regs) # define re_compile_pattern(pattern, length, bufp) \ __re_compile_pattern (pattern, length, bufp) # define re_set_syntax(syntax) __re_set_syntax (syntax) # define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \ __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop) # define re_compile_fastmap(bufp) __re_compile_fastmap (bufp) # include "../locale/localeinfo.h" #endif /* On some systems, limits.h sets RE_DUP_MAX to a lower value than GNU regex allows. Include it before , which correctly #undefs RE_DUP_MAX and sets it to the right value. */ #include #include #include "regex_internal.h" #include "regex_internal.c" #include "regcomp.c" #include "regexec.c" /* Binary backward compatibility. */ #if _LIBC # include # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3) link_warning (re_max_failures, "the 're_max_failures' variable is obsolete and will go away.") int re_max_failures = 2000; # endif #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/regex_internal.c0000644000000000000000000000011013726163410022155 xustar000000000000000024 mtime=1599661832.593 24 atime=1599661832.755 24 ctime=1599661998.946 libprelude-5.2.0/libmissing/regex_internal.c0000644000000000000000000013636113726163410021172 0ustar00rootroot00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ static void re_string_construct_common (const char *str, Idx len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa); static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_hashval_t hash); static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, re_hashval_t hash); static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len); #ifdef RE_ENABLE_I18N static void build_wcs_buffer (re_string_t *pstr); static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr); #endif /* RE_ENABLE_I18N */ static void build_upper_buffer (re_string_t *pstr); static void re_string_translate_buffer (re_string_t *pstr); static unsigned int re_string_context_at (const re_string_t *input, Idx idx, int eflags) __attribute__ ((pure)); /* Functions for string operation. */ /* This function allocate the buffers. It is necessary to call re_string_reconstruct before using the object. */ static reg_errcode_t __attribute_warn_unused_result__ re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { reg_errcode_t ret; Idx init_buf_len; /* Ensure at least one character fits into the buffers. */ if (init_len < dfa->mb_cur_max) init_len = dfa->mb_cur_max; init_buf_len = (len + 1 < init_len) ? len + 1: init_len; re_string_construct_common (str, len, pstr, trans, icase, dfa); ret = re_string_realloc_buffers (pstr, init_buf_len); if (BE (ret != REG_NOERROR, 0)) return ret; pstr->word_char = dfa->word_char; pstr->word_ops_used = dfa->word_ops_used; pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; pstr->valid_len = (pstr->mbs_allocated || dfa->mb_cur_max > 1) ? 0 : len; pstr->valid_raw_len = pstr->valid_len; return REG_NOERROR; } /* This function allocate the buffers, and initialize them. */ static reg_errcode_t __attribute_warn_unused_result__ re_string_construct (re_string_t *pstr, const char *str, Idx len, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { reg_errcode_t ret; memset (pstr, '\0', sizeof (re_string_t)); re_string_construct_common (str, len, pstr, trans, icase, dfa); if (len > 0) { ret = re_string_realloc_buffers (pstr, len + 1); if (BE (ret != REG_NOERROR, 0)) return ret; } pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; if (icase) { #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { while (1) { ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; if (pstr->valid_raw_len >= len) break; if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max) break; ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2); if (BE (ret != REG_NOERROR, 0)) return ret; } } else #endif /* RE_ENABLE_I18N */ build_upper_buffer (pstr); } else { #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) build_wcs_buffer (pstr); else #endif /* RE_ENABLE_I18N */ { if (trans != NULL) re_string_translate_buffer (pstr); else { pstr->valid_len = pstr->bufs_len; pstr->valid_raw_len = pstr->bufs_len; } } } return REG_NOERROR; } /* Helper functions for re_string_allocate, and re_string_construct. */ static reg_errcode_t __attribute_warn_unused_result__ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { wint_t *new_wcs; /* Avoid overflow in realloc. */ const size_t max_object_size = MAX (sizeof (wint_t), sizeof (Idx)); if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_buf_len, 0)) return REG_ESPACE; new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len); if (BE (new_wcs == NULL, 0)) return REG_ESPACE; pstr->wcs = new_wcs; if (pstr->offsets != NULL) { Idx *new_offsets = re_realloc (pstr->offsets, Idx, new_buf_len); if (BE (new_offsets == NULL, 0)) return REG_ESPACE; pstr->offsets = new_offsets; } } #endif /* RE_ENABLE_I18N */ if (pstr->mbs_allocated) { unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char, new_buf_len); if (BE (new_mbs == NULL, 0)) return REG_ESPACE; pstr->mbs = new_mbs; } pstr->bufs_len = new_buf_len; return REG_NOERROR; } static void re_string_construct_common (const char *str, Idx len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { pstr->raw_mbs = (const unsigned char *) str; pstr->len = len; pstr->raw_len = len; pstr->trans = trans; pstr->icase = icase; pstr->mbs_allocated = (trans != NULL || icase); pstr->mb_cur_max = dfa->mb_cur_max; pstr->is_utf8 = dfa->is_utf8; pstr->map_notascii = dfa->map_notascii; pstr->stop = pstr->len; pstr->raw_stop = pstr->stop; } #ifdef RE_ENABLE_I18N /* Build wide character buffer PSTR->WCS. If the byte sequence of the string are: (0), (1), (0), (1), Then wide character buffer will be: , WEOF , , WEOF , We use WEOF for padding, they indicate that the position isn't a first byte of a multibyte character. Note that this function assumes PSTR->VALID_LEN elements are already built and starts from PSTR->VALID_LEN. */ static void build_wcs_buffer (re_string_t *pstr) { #ifdef _LIBC unsigned char buf[MB_LEN_MAX]; assert (MB_LEN_MAX >= pstr->mb_cur_max); #else unsigned char buf[64]; #endif mbstate_t prev_st; Idx byte_idx, end_idx, remain_len; size_t mbclen; /* Build the buffers from pstr->valid_len to either pstr->len or pstr->bufs_len. */ end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; for (byte_idx = pstr->valid_len; byte_idx < end_idx;) { wchar_t wc; const char *p; remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; /* Apply the translation if we need. */ if (BE (pstr->trans != NULL, 0)) { int i, ch; for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) { ch = pstr->raw_mbs [pstr->raw_mbs_idx + byte_idx + i]; buf[i] = pstr->mbs[byte_idx + i] = pstr->trans[ch]; } p = (const char *) buf; } else p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx; mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); if (BE (mbclen == (size_t) -1 || mbclen == 0 || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len), 0)) { /* We treat these cases as a singlebyte character. */ mbclen = 1; wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; if (BE (pstr->trans != NULL, 0)) wc = pstr->trans[wc]; pstr->cur_state = prev_st; } else if (BE (mbclen == (size_t) -2, 0)) { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; break; } /* Write wide character and padding. */ pstr->wcs[byte_idx++] = wc; /* Write paddings. */ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) pstr->wcs[byte_idx++] = WEOF; } pstr->valid_len = byte_idx; pstr->valid_raw_len = byte_idx; } /* Build wide character buffer PSTR->WCS like build_wcs_buffer, but for REG_ICASE. */ static reg_errcode_t __attribute_warn_unused_result__ build_wcs_upper_buffer (re_string_t *pstr) { mbstate_t prev_st; Idx src_idx, byte_idx, end_idx, remain_len; size_t mbclen; #ifdef _LIBC char buf[MB_LEN_MAX]; assert (MB_LEN_MAX >= pstr->mb_cur_max); #else char buf[64]; #endif byte_idx = pstr->valid_len; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; /* The following optimization assumes that ASCII characters can be mapped to wide characters with a simple cast. */ if (! pstr->map_notascii && pstr->trans == NULL && !pstr->offsets_needed) { while (byte_idx < end_idx) { wchar_t wc; if (isascii (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]) && mbsinit (&pstr->cur_state)) { /* In case of a singlebyte character. */ pstr->mbs[byte_idx] = toupper (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]); /* The next step uses the assumption that wchar_t is encoded ASCII-safe: all ASCII values can be converted like this. */ pstr->wcs[byte_idx] = (wchar_t) pstr->mbs[byte_idx]; ++byte_idx; continue; } remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; mbclen = __mbrtowc (&wc, ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx), remain_len, &pstr->cur_state); if (BE (0 < mbclen && mbclen < (size_t) -2, 1)) { wchar_t wcu = __towupper (wc); if (wcu != wc) { size_t mbcdlen; mbcdlen = __wcrtomb (buf, wcu, &prev_st); if (BE (mbclen == mbcdlen, 1)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else { src_idx = byte_idx; goto offsets_needed; } } else memcpy (pstr->mbs + byte_idx, pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx, mbclen); pstr->wcs[byte_idx++] = wcu; /* Write paddings. */ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) pstr->wcs[byte_idx++] = WEOF; } else if (mbclen == (size_t) -1 || mbclen == 0 || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len)) { /* It is an invalid character, an incomplete character at the end of the string, or '\0'. Just use the byte. */ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; pstr->mbs[byte_idx] = ch; /* And also cast it to wide char. */ pstr->wcs[byte_idx++] = (wchar_t) ch; if (BE (mbclen == (size_t) -1, 0)) pstr->cur_state = prev_st; } else { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; break; } } pstr->valid_len = byte_idx; pstr->valid_raw_len = byte_idx; return REG_NOERROR; } else for (src_idx = pstr->valid_raw_len; byte_idx < end_idx;) { wchar_t wc; const char *p; offsets_needed: remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; if (BE (pstr->trans != NULL, 0)) { int i, ch; for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) { ch = pstr->raw_mbs [pstr->raw_mbs_idx + src_idx + i]; buf[i] = pstr->trans[ch]; } p = (const char *) buf; } else p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx; mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); if (BE (0 < mbclen && mbclen < (size_t) -2, 1)) { wchar_t wcu = __towupper (wc); if (wcu != wc) { size_t mbcdlen; mbcdlen = __wcrtomb ((char *) buf, wcu, &prev_st); if (BE (mbclen == mbcdlen, 1)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else if (mbcdlen != (size_t) -1) { size_t i; if (byte_idx + mbcdlen > pstr->bufs_len) { pstr->cur_state = prev_st; break; } if (pstr->offsets == NULL) { pstr->offsets = re_malloc (Idx, pstr->bufs_len); if (pstr->offsets == NULL) return REG_ESPACE; } if (!pstr->offsets_needed) { for (i = 0; i < (size_t) byte_idx; ++i) pstr->offsets[i] = i; pstr->offsets_needed = 1; } memcpy (pstr->mbs + byte_idx, buf, mbcdlen); pstr->wcs[byte_idx] = wcu; pstr->offsets[byte_idx] = src_idx; for (i = 1; i < mbcdlen; ++i) { pstr->offsets[byte_idx + i] = src_idx + (i < mbclen ? i : mbclen - 1); pstr->wcs[byte_idx + i] = WEOF; } pstr->len += mbcdlen - mbclen; if (pstr->raw_stop > src_idx) pstr->stop += mbcdlen - mbclen; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; byte_idx += mbcdlen; src_idx += mbclen; continue; } else memcpy (pstr->mbs + byte_idx, p, mbclen); } else memcpy (pstr->mbs + byte_idx, p, mbclen); if (BE (pstr->offsets_needed != 0, 0)) { size_t i; for (i = 0; i < mbclen; ++i) pstr->offsets[byte_idx + i] = src_idx + i; } src_idx += mbclen; pstr->wcs[byte_idx++] = wcu; /* Write paddings. */ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) pstr->wcs[byte_idx++] = WEOF; } else if (mbclen == (size_t) -1 || mbclen == 0 || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len)) { /* It is an invalid character or '\0'. Just use the byte. */ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx]; if (BE (pstr->trans != NULL, 0)) ch = pstr->trans [ch]; pstr->mbs[byte_idx] = ch; if (BE (pstr->offsets_needed != 0, 0)) pstr->offsets[byte_idx] = src_idx; ++src_idx; /* And also cast it to wide char. */ pstr->wcs[byte_idx++] = (wchar_t) ch; if (BE (mbclen == (size_t) -1, 0)) pstr->cur_state = prev_st; } else { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; break; } } pstr->valid_len = byte_idx; pstr->valid_raw_len = src_idx; return REG_NOERROR; } /* Skip characters until the index becomes greater than NEW_RAW_IDX. Return the index. */ static Idx re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc) { mbstate_t prev_st; Idx rawbuf_idx; size_t mbclen; wint_t wc = WEOF; /* Skip the characters which are not necessary to check. */ for (rawbuf_idx = pstr->raw_mbs_idx + pstr->valid_raw_len; rawbuf_idx < new_raw_idx;) { wchar_t wc2; Idx remain_len = pstr->raw_len - rawbuf_idx; prev_st = pstr->cur_state; mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx, remain_len, &pstr->cur_state); if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0)) { /* We treat these cases as a single byte character. */ if (mbclen == 0 || remain_len == 0) wc = L'\0'; else wc = *(unsigned char *) (pstr->raw_mbs + rawbuf_idx); mbclen = 1; pstr->cur_state = prev_st; } else wc = wc2; /* Then proceed the next character. */ rawbuf_idx += mbclen; } *last_wc = wc; return rawbuf_idx; } #endif /* RE_ENABLE_I18N */ /* Build the buffer PSTR->MBS, and apply the translation if we need. This function is used in case of REG_ICASE. */ static void build_upper_buffer (re_string_t *pstr) { Idx char_idx, end_idx; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx) { int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx]; if (BE (pstr->trans != NULL, 0)) ch = pstr->trans[ch]; pstr->mbs[char_idx] = toupper (ch); } pstr->valid_len = char_idx; pstr->valid_raw_len = char_idx; } /* Apply TRANS to the buffer in PSTR. */ static void re_string_translate_buffer (re_string_t *pstr) { Idx buf_idx, end_idx; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; for (buf_idx = pstr->valid_len; buf_idx < end_idx; ++buf_idx) { int ch = pstr->raw_mbs[pstr->raw_mbs_idx + buf_idx]; pstr->mbs[buf_idx] = pstr->trans[ch]; } pstr->valid_len = buf_idx; pstr->valid_raw_len = buf_idx; } /* This function re-construct the buffers. Concretely, convert to wide character in case of pstr->mb_cur_max > 1, convert to upper case in case of REG_ICASE, apply translation. */ static reg_errcode_t __attribute_warn_unused_result__ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) { Idx offset; if (BE (pstr->raw_mbs_idx <= idx, 0)) offset = idx - pstr->raw_mbs_idx; else { /* Reset buffer. */ #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); #endif /* RE_ENABLE_I18N */ pstr->len = pstr->raw_len; pstr->stop = pstr->raw_stop; pstr->valid_len = 0; pstr->raw_mbs_idx = 0; pstr->valid_raw_len = 0; pstr->offsets_needed = 0; pstr->tip_context = ((eflags & REG_NOTBOL) ? CONTEXT_BEGBUF : CONTEXT_NEWLINE | CONTEXT_BEGBUF); if (!pstr->mbs_allocated) pstr->mbs = (unsigned char *) pstr->raw_mbs; offset = idx; } if (BE (offset != 0, 1)) { /* Should the already checked characters be kept? */ if (BE (offset < pstr->valid_raw_len, 1)) { /* Yes, move them to the front of the buffer. */ #ifdef RE_ENABLE_I18N if (BE (pstr->offsets_needed, 0)) { Idx low = 0, high = pstr->valid_len, mid; do { mid = (high + low) / 2; if (pstr->offsets[mid] > offset) high = mid; else if (pstr->offsets[mid] < offset) low = mid + 1; else break; } while (low < high); if (pstr->offsets[mid] < offset) ++mid; pstr->tip_context = re_string_context_at (pstr, mid - 1, eflags); /* This can be quite complicated, so handle specially only the common and easy case where the character with different length representation of lower and upper case is present at or after offset. */ if (pstr->valid_len > offset && mid == offset && pstr->offsets[mid] == offset) { memmove (pstr->wcs, pstr->wcs + offset, (pstr->valid_len - offset) * sizeof (wint_t)); memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset); pstr->valid_len -= offset; pstr->valid_raw_len -= offset; for (low = 0; low < pstr->valid_len; low++) pstr->offsets[low] = pstr->offsets[low + offset] - offset; } else { /* Otherwise, just find out how long the partial multibyte character at offset is and fill it with WEOF/255. */ pstr->len = pstr->raw_len - idx + offset; pstr->stop = pstr->raw_stop - idx + offset; pstr->offsets_needed = 0; while (mid > 0 && pstr->offsets[mid - 1] == offset) --mid; while (mid < pstr->valid_len) if (pstr->wcs[mid] != WEOF) break; else ++mid; if (mid == pstr->valid_len) pstr->valid_len = 0; else { pstr->valid_len = pstr->offsets[mid] - offset; if (pstr->valid_len) { for (low = 0; low < pstr->valid_len; ++low) pstr->wcs[low] = WEOF; memset (pstr->mbs, 255, pstr->valid_len); } } pstr->valid_raw_len = pstr->valid_len; } } else #endif { pstr->tip_context = re_string_context_at (pstr, offset - 1, eflags); #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) memmove (pstr->wcs, pstr->wcs + offset, (pstr->valid_len - offset) * sizeof (wint_t)); #endif /* RE_ENABLE_I18N */ if (BE (pstr->mbs_allocated, 0)) memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset); pstr->valid_len -= offset; pstr->valid_raw_len -= offset; #if defined DEBUG && DEBUG assert (pstr->valid_len > 0); #endif } } else { #ifdef RE_ENABLE_I18N /* No, skip all characters until IDX. */ Idx prev_valid_len = pstr->valid_len; if (BE (pstr->offsets_needed, 0)) { pstr->len = pstr->raw_len - idx + offset; pstr->stop = pstr->raw_stop - idx + offset; pstr->offsets_needed = 0; } #endif pstr->valid_len = 0; #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { Idx wcs_idx; wint_t wc = WEOF; if (pstr->is_utf8) { const unsigned char *raw, *p, *end; /* Special case UTF-8. Multi-byte chars start with any byte other than 0x80 - 0xbf. */ raw = pstr->raw_mbs + pstr->raw_mbs_idx; end = raw + (offset - pstr->mb_cur_max); if (end < pstr->raw_mbs) end = pstr->raw_mbs; p = raw + offset - 1; #ifdef _LIBC /* We know the wchar_t encoding is UCS4, so for the simple case, ASCII characters, skip the conversion step. */ if (isascii (*p) && BE (pstr->trans == NULL, 1)) { memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); /* pstr->valid_len = 0; */ wc = (wchar_t) *p; } else #endif for (; p >= end; --p) if ((*p & 0xc0) != 0x80) { mbstate_t cur_state; wchar_t wc2; Idx mlen = raw + pstr->len - p; unsigned char buf[6]; size_t mbclen; const unsigned char *pp = p; if (BE (pstr->trans != NULL, 0)) { int i = mlen < 6 ? mlen : 6; while (--i >= 0) buf[i] = pstr->trans[p[i]]; pp = buf; } /* XXX Don't use mbrtowc, we know which conversion to use (UTF-8 -> UCS4). */ memset (&cur_state, 0, sizeof (cur_state)); mbclen = __mbrtowc (&wc2, (const char *) pp, mlen, &cur_state); if (raw + offset - p <= mbclen && mbclen < (size_t) -2) { memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); pstr->valid_len = mbclen - (raw + offset - p); wc = wc2; } break; } } if (wc == WEOF) pstr->valid_len = re_string_skip_chars (pstr, idx, &wc) - idx; if (wc == WEOF) pstr->tip_context = re_string_context_at (pstr, prev_valid_len - 1, eflags); else pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc)) ? CONTEXT_WORD : ((IS_WIDE_NEWLINE (wc) && pstr->newline_anchor) ? CONTEXT_NEWLINE : 0)); if (BE (pstr->valid_len, 0)) { for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx) pstr->wcs[wcs_idx] = WEOF; if (pstr->mbs_allocated) memset (pstr->mbs, 255, pstr->valid_len); } pstr->valid_raw_len = pstr->valid_len; } else #endif /* RE_ENABLE_I18N */ { int c = pstr->raw_mbs[pstr->raw_mbs_idx + offset - 1]; pstr->valid_raw_len = 0; if (pstr->trans) c = pstr->trans[c]; pstr->tip_context = (bitset_contain (pstr->word_char, c) ? CONTEXT_WORD : ((IS_NEWLINE (c) && pstr->newline_anchor) ? CONTEXT_NEWLINE : 0)); } } if (!BE (pstr->mbs_allocated, 0)) pstr->mbs += offset; } pstr->raw_mbs_idx = idx; pstr->len -= offset; pstr->stop -= offset; /* Then build the buffers. */ #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { if (pstr->icase) { reg_errcode_t ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; } else build_wcs_buffer (pstr); } else #endif /* RE_ENABLE_I18N */ if (BE (pstr->mbs_allocated, 0)) { if (pstr->icase) build_upper_buffer (pstr); else if (pstr->trans != NULL) re_string_translate_buffer (pstr); } else pstr->valid_len = pstr->len; pstr->cur_idx = 0; return REG_NOERROR; } static unsigned char __attribute__ ((pure)) re_string_peek_byte_case (const re_string_t *pstr, Idx idx) { int ch; Idx off; /* Handle the common (easiest) cases first. */ if (BE (!pstr->mbs_allocated, 1)) return re_string_peek_byte (pstr, idx); #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1 && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx)) return re_string_peek_byte (pstr, idx); #endif off = pstr->cur_idx + idx; #ifdef RE_ENABLE_I18N if (pstr->offsets_needed) off = pstr->offsets[off]; #endif ch = pstr->raw_mbs[pstr->raw_mbs_idx + off]; #ifdef RE_ENABLE_I18N /* Ensure that e.g. for tr_TR.UTF-8 BACKSLASH DOTLESS SMALL LETTER I this function returns CAPITAL LETTER I instead of first byte of DOTLESS SMALL LETTER I. The latter would confuse the parser, since peek_byte_case doesn't advance cur_idx in any way. */ if (pstr->offsets_needed && !isascii (ch)) return re_string_peek_byte (pstr, idx); #endif return ch; } static unsigned char re_string_fetch_byte_case (re_string_t *pstr) { if (BE (!pstr->mbs_allocated, 1)) return re_string_fetch_byte (pstr); #ifdef RE_ENABLE_I18N if (pstr->offsets_needed) { Idx off; int ch; /* For tr_TR.UTF-8 [[:islower:]] there is [[: CAPITAL LETTER I WITH DOT lower:]] in mbs. Skip in that case the whole multi-byte character and return the original letter. On the other side, with [[: DOTLESS SMALL LETTER I return [[:I, as doing anything else would complicate things too much. */ if (!re_string_first_byte (pstr, pstr->cur_idx)) return re_string_fetch_byte (pstr); off = pstr->offsets[pstr->cur_idx]; ch = pstr->raw_mbs[pstr->raw_mbs_idx + off]; if (! isascii (ch)) return re_string_fetch_byte (pstr); re_string_skip_bytes (pstr, re_string_char_size_at (pstr, pstr->cur_idx)); return ch; } #endif return pstr->raw_mbs[pstr->raw_mbs_idx + pstr->cur_idx++]; } static void re_string_destruct (re_string_t *pstr) { #ifdef RE_ENABLE_I18N re_free (pstr->wcs); re_free (pstr->offsets); #endif /* RE_ENABLE_I18N */ if (pstr->mbs_allocated) re_free (pstr->mbs); } /* Return the context at IDX in INPUT. */ static unsigned int re_string_context_at (const re_string_t *input, Idx idx, int eflags) { int c; if (BE (idx < 0, 0)) /* In this case, we use the value stored in input->tip_context, since we can't know the character in input->mbs[-1] here. */ return input->tip_context; if (BE (idx == input->len, 0)) return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF : CONTEXT_NEWLINE | CONTEXT_ENDBUF); #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc; Idx wc_idx = idx; while(input->wcs[wc_idx] == WEOF) { #if defined DEBUG && DEBUG /* It must not happen. */ assert (wc_idx >= 0); #endif --wc_idx; if (wc_idx < 0) return input->tip_context; } wc = input->wcs[wc_idx]; if (BE (input->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc)) return CONTEXT_WORD; return (IS_WIDE_NEWLINE (wc) && input->newline_anchor ? CONTEXT_NEWLINE : 0); } else #endif { c = re_string_byte_at (input, idx); if (bitset_contain (input->word_char, c)) return CONTEXT_WORD; return IS_NEWLINE (c) && input->newline_anchor ? CONTEXT_NEWLINE : 0; } } /* Functions for set operation. */ static reg_errcode_t __attribute_warn_unused_result__ re_node_set_alloc (re_node_set *set, Idx size) { set->alloc = size; set->nelem = 0; set->elems = re_malloc (Idx, size); if (BE (set->elems == NULL, 0) && (MALLOC_0_IS_NONNULL || size != 0)) return REG_ESPACE; return REG_NOERROR; } static reg_errcode_t __attribute_warn_unused_result__ re_node_set_init_1 (re_node_set *set, Idx elem) { set->alloc = 1; set->nelem = 1; set->elems = re_malloc (Idx, 1); if (BE (set->elems == NULL, 0)) { set->alloc = set->nelem = 0; return REG_ESPACE; } set->elems[0] = elem; return REG_NOERROR; } static reg_errcode_t __attribute_warn_unused_result__ re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2) { set->alloc = 2; set->elems = re_malloc (Idx, 2); if (BE (set->elems == NULL, 0)) return REG_ESPACE; if (elem1 == elem2) { set->nelem = 1; set->elems[0] = elem1; } else { set->nelem = 2; if (elem1 < elem2) { set->elems[0] = elem1; set->elems[1] = elem2; } else { set->elems[0] = elem2; set->elems[1] = elem1; } } return REG_NOERROR; } static reg_errcode_t __attribute_warn_unused_result__ re_node_set_init_copy (re_node_set *dest, const re_node_set *src) { dest->nelem = src->nelem; if (src->nelem > 0) { dest->alloc = dest->nelem; dest->elems = re_malloc (Idx, dest->alloc); if (BE (dest->elems == NULL, 0)) { dest->alloc = dest->nelem = 0; return REG_ESPACE; } memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx)); } else re_node_set_init_empty (dest); return REG_NOERROR; } /* Calculate the intersection of the sets SRC1 and SRC2. And merge it to DEST. Return value indicate the error code or REG_NOERROR if succeeded. Note: We assume dest->elems is NULL, when dest->alloc is 0. */ static reg_errcode_t __attribute_warn_unused_result__ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { Idx i1, i2, is, id, delta, sbase; if (src1->nelem == 0 || src2->nelem == 0) return REG_NOERROR; /* We need dest->nelem + 2 * elems_in_intersection; this is a conservative estimate. */ if (src1->nelem + src2->nelem + dest->nelem > dest->alloc) { Idx new_alloc = src1->nelem + src2->nelem + dest->alloc; Idx *new_elems = re_realloc (dest->elems, Idx, new_alloc); if (BE (new_elems == NULL, 0)) return REG_ESPACE; dest->elems = new_elems; dest->alloc = new_alloc; } /* Find the items in the intersection of SRC1 and SRC2, and copy into the top of DEST those that are not already in DEST itself. */ sbase = dest->nelem + src1->nelem + src2->nelem; i1 = src1->nelem - 1; i2 = src2->nelem - 1; id = dest->nelem - 1; for (;;) { if (src1->elems[i1] == src2->elems[i2]) { /* Try to find the item in DEST. Maybe we could binary search? */ while (id >= 0 && dest->elems[id] > src1->elems[i1]) --id; if (id < 0 || dest->elems[id] != src1->elems[i1]) dest->elems[--sbase] = src1->elems[i1]; if (--i1 < 0 || --i2 < 0) break; } /* Lower the highest of the two items. */ else if (src1->elems[i1] < src2->elems[i2]) { if (--i2 < 0) break; } else { if (--i1 < 0) break; } } id = dest->nelem - 1; is = dest->nelem + src1->nelem + src2->nelem - 1; delta = is - sbase + 1; /* Now copy. When DELTA becomes zero, the remaining DEST elements are already in place; this is more or less the same loop that is in re_node_set_merge. */ dest->nelem += delta; if (delta > 0 && id >= 0) for (;;) { if (dest->elems[is] > dest->elems[id]) { /* Copy from the top. */ dest->elems[id + delta--] = dest->elems[is--]; if (delta == 0) break; } else { /* Slide from the bottom. */ dest->elems[id + delta] = dest->elems[id]; if (--id < 0) break; } } /* Copy remaining SRC elements. */ memcpy (dest->elems, dest->elems + sbase, delta * sizeof (Idx)); return REG_NOERROR; } /* Calculate the union set of the sets SRC1 and SRC2. And store it to DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t __attribute_warn_unused_result__ re_node_set_init_union (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { Idx i1, i2, id; if (src1 != NULL && src1->nelem > 0 && src2 != NULL && src2->nelem > 0) { dest->alloc = src1->nelem + src2->nelem; dest->elems = re_malloc (Idx, dest->alloc); if (BE (dest->elems == NULL, 0)) return REG_ESPACE; } else { if (src1 != NULL && src1->nelem > 0) return re_node_set_init_copy (dest, src1); else if (src2 != NULL && src2->nelem > 0) return re_node_set_init_copy (dest, src2); else re_node_set_init_empty (dest); return REG_NOERROR; } for (i1 = i2 = id = 0 ; i1 < src1->nelem && i2 < src2->nelem ;) { if (src1->elems[i1] > src2->elems[i2]) { dest->elems[id++] = src2->elems[i2++]; continue; } if (src1->elems[i1] == src2->elems[i2]) ++i2; dest->elems[id++] = src1->elems[i1++]; } if (i1 < src1->nelem) { memcpy (dest->elems + id, src1->elems + i1, (src1->nelem - i1) * sizeof (Idx)); id += src1->nelem - i1; } else if (i2 < src2->nelem) { memcpy (dest->elems + id, src2->elems + i2, (src2->nelem - i2) * sizeof (Idx)); id += src2->nelem - i2; } dest->nelem = id; return REG_NOERROR; } /* Calculate the union set of the sets DEST and SRC. And store it to DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t __attribute_warn_unused_result__ re_node_set_merge (re_node_set *dest, const re_node_set *src) { Idx is, id, sbase, delta; if (src == NULL || src->nelem == 0) return REG_NOERROR; if (dest->alloc < 2 * src->nelem + dest->nelem) { Idx new_alloc = 2 * (src->nelem + dest->alloc); Idx *new_buffer = re_realloc (dest->elems, Idx, new_alloc); if (BE (new_buffer == NULL, 0)) return REG_ESPACE; dest->elems = new_buffer; dest->alloc = new_alloc; } if (BE (dest->nelem == 0, 0)) { dest->nelem = src->nelem; memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx)); return REG_NOERROR; } /* Copy into the top of DEST the items of SRC that are not found in DEST. Maybe we could binary search in DEST? */ for (sbase = dest->nelem + 2 * src->nelem, is = src->nelem - 1, id = dest->nelem - 1; is >= 0 && id >= 0; ) { if (dest->elems[id] == src->elems[is]) is--, id--; else if (dest->elems[id] < src->elems[is]) dest->elems[--sbase] = src->elems[is--]; else /* if (dest->elems[id] > src->elems[is]) */ --id; } if (is >= 0) { /* If DEST is exhausted, the remaining items of SRC must be unique. */ sbase -= is + 1; memcpy (dest->elems + sbase, src->elems, (is + 1) * sizeof (Idx)); } id = dest->nelem - 1; is = dest->nelem + 2 * src->nelem - 1; delta = is - sbase + 1; if (delta == 0) return REG_NOERROR; /* Now copy. When DELTA becomes zero, the remaining DEST elements are already in place. */ dest->nelem += delta; for (;;) { if (dest->elems[is] > dest->elems[id]) { /* Copy from the top. */ dest->elems[id + delta--] = dest->elems[is--]; if (delta == 0) break; } else { /* Slide from the bottom. */ dest->elems[id + delta] = dest->elems[id]; if (--id < 0) { /* Copy remaining SRC elements. */ memcpy (dest->elems, dest->elems + sbase, delta * sizeof (Idx)); break; } } } return REG_NOERROR; } /* Insert the new element ELEM to the re_node_set* SET. SET should not already have ELEM. Return true if successful. */ static bool __attribute_warn_unused_result__ re_node_set_insert (re_node_set *set, Idx elem) { Idx idx; /* In case the set is empty. */ if (set->alloc == 0) return BE (re_node_set_init_1 (set, elem) == REG_NOERROR, 1); if (BE (set->nelem, 0) == 0) { /* We already guaranteed above that set->alloc != 0. */ set->elems[0] = elem; ++set->nelem; return true; } /* Realloc if we need. */ if (set->alloc == set->nelem) { Idx *new_elems; set->alloc = set->alloc * 2; new_elems = re_realloc (set->elems, Idx, set->alloc); if (BE (new_elems == NULL, 0)) return false; set->elems = new_elems; } /* Move the elements which follows the new element. Test the first element separately to skip a check in the inner loop. */ if (elem < set->elems[0]) { idx = 0; for (idx = set->nelem; idx > 0; idx--) set->elems[idx] = set->elems[idx - 1]; } else { for (idx = set->nelem; set->elems[idx - 1] > elem; idx--) set->elems[idx] = set->elems[idx - 1]; } /* Insert the new element. */ set->elems[idx] = elem; ++set->nelem; return true; } /* Insert the new element ELEM to the re_node_set* SET. SET should not already have any element greater than or equal to ELEM. Return true if successful. */ static bool __attribute_warn_unused_result__ re_node_set_insert_last (re_node_set *set, Idx elem) { /* Realloc if we need. */ if (set->alloc == set->nelem) { Idx *new_elems; set->alloc = (set->alloc + 1) * 2; new_elems = re_realloc (set->elems, Idx, set->alloc); if (BE (new_elems == NULL, 0)) return false; set->elems = new_elems; } /* Insert the new element. */ set->elems[set->nelem++] = elem; return true; } /* Compare two node sets SET1 and SET2. Return true if SET1 and SET2 are equivalent. */ static bool __attribute__ ((pure)) re_node_set_compare (const re_node_set *set1, const re_node_set *set2) { Idx i; if (set1 == NULL || set2 == NULL || set1->nelem != set2->nelem) return false; for (i = set1->nelem ; --i >= 0 ; ) if (set1->elems[i] != set2->elems[i]) return false; return true; } /* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise. */ static Idx __attribute__ ((pure)) re_node_set_contains (const re_node_set *set, Idx elem) { __re_size_t idx, right, mid; if (set->nelem <= 0) return 0; /* Binary search the element. */ idx = 0; right = set->nelem - 1; while (idx < right) { mid = (idx + right) / 2; if (set->elems[mid] < elem) idx = mid + 1; else right = mid; } return set->elems[idx] == elem ? idx + 1 : 0; } static void re_node_set_remove_at (re_node_set *set, Idx idx) { if (idx < 0 || idx >= set->nelem) return; --set->nelem; for (; idx < set->nelem; idx++) set->elems[idx] = set->elems[idx + 1]; } /* Add the token TOKEN to dfa->nodes, and return the index of the token. Or return -1 if an error occurred. */ static Idx re_dfa_add_node (re_dfa_t *dfa, re_token_t token) { if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0)) { size_t new_nodes_alloc = dfa->nodes_alloc * 2; Idx *new_nexts, *new_indices; re_node_set *new_edests, *new_eclosures; re_token_t *new_nodes; /* Avoid overflows in realloc. */ const size_t max_object_size = MAX (sizeof (re_token_t), MAX (sizeof (re_node_set), sizeof (Idx))); if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_nodes_alloc, 0)) return -1; new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc); if (BE (new_nodes == NULL, 0)) return -1; dfa->nodes = new_nodes; new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc); new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc); new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc); new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc); if (BE (new_nexts == NULL || new_indices == NULL || new_edests == NULL || new_eclosures == NULL, 0)) { re_free (new_nexts); re_free (new_indices); re_free (new_edests); re_free (new_eclosures); return -1; } dfa->nexts = new_nexts; dfa->org_indices = new_indices; dfa->edests = new_edests; dfa->eclosures = new_eclosures; dfa->nodes_alloc = new_nodes_alloc; } dfa->nodes[dfa->nodes_len] = token; dfa->nodes[dfa->nodes_len].constraint = 0; #ifdef RE_ENABLE_I18N dfa->nodes[dfa->nodes_len].accept_mb = ((token.type == OP_PERIOD && dfa->mb_cur_max > 1) || token.type == COMPLEX_BRACKET); #endif dfa->nexts[dfa->nodes_len] = -1; re_node_set_init_empty (dfa->edests + dfa->nodes_len); re_node_set_init_empty (dfa->eclosures + dfa->nodes_len); return dfa->nodes_len++; } static re_hashval_t calc_state_hash (const re_node_set *nodes, unsigned int context) { re_hashval_t hash = nodes->nelem + context; Idx i; for (i = 0 ; i < nodes->nelem ; i++) hash += nodes->elems[i]; return hash; } /* Search for the state whose node_set is equivalent to NODES. Return the pointer to the state, if we found it in the DFA. Otherwise create the new one and return it. In case of an error return NULL and set the error code in ERR. Note: - We assume NULL as the invalid state, then it is possible that return value is NULL and ERR is REG_NOERROR. - We never return non-NULL value in case of any errors, it is for optimization. */ static re_dfastate_t * __attribute_warn_unused_result__ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes) { re_hashval_t hash; re_dfastate_t *new_state; struct re_state_table_entry *spot; Idx i; #if defined GCC_LINT || defined lint /* Suppress bogus uninitialized-variable warnings. */ *err = REG_NOERROR; #endif if (BE (nodes->nelem == 0, 0)) { *err = REG_NOERROR; return NULL; } hash = calc_state_hash (nodes, 0); spot = dfa->state_table + (hash & dfa->state_hash_mask); for (i = 0 ; i < spot->num ; i++) { re_dfastate_t *state = spot->array[i]; if (hash != state->hash) continue; if (re_node_set_compare (&state->nodes, nodes)) return state; } /* There are no appropriate state in the dfa, create the new one. */ new_state = create_ci_newstate (dfa, nodes, hash); if (BE (new_state == NULL, 0)) *err = REG_ESPACE; return new_state; } /* Search for the state whose node_set is equivalent to NODES and whose context is equivalent to CONTEXT. Return the pointer to the state, if we found it in the DFA. Otherwise create the new one and return it. In case of an error return NULL and set the error code in ERR. Note: - We assume NULL as the invalid state, then it is possible that return value is NULL and ERR is REG_NOERROR. - We never return non-NULL value in case of any errors, it is for optimization. */ static re_dfastate_t * __attribute_warn_unused_result__ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context) { re_hashval_t hash; re_dfastate_t *new_state; struct re_state_table_entry *spot; Idx i; #if defined GCC_LINT || defined lint /* Suppress bogus uninitialized-variable warnings. */ *err = REG_NOERROR; #endif if (nodes->nelem == 0) { *err = REG_NOERROR; return NULL; } hash = calc_state_hash (nodes, context); spot = dfa->state_table + (hash & dfa->state_hash_mask); for (i = 0 ; i < spot->num ; i++) { re_dfastate_t *state = spot->array[i]; if (state->hash == hash && state->context == context && re_node_set_compare (state->entrance_nodes, nodes)) return state; } /* There are no appropriate state in 'dfa', create the new one. */ new_state = create_cd_newstate (dfa, nodes, context, hash); if (BE (new_state == NULL, 0)) *err = REG_ESPACE; return new_state; } /* Finish initialization of the new state NEWSTATE, and using its hash value HASH put in the appropriate bucket of DFA's state table. Return value indicates the error code if failed. */ static reg_errcode_t __attribute_warn_unused_result__ register_state (const re_dfa_t *dfa, re_dfastate_t *newstate, re_hashval_t hash) { struct re_state_table_entry *spot; reg_errcode_t err; Idx i; newstate->hash = hash; err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem); if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; for (i = 0; i < newstate->nodes.nelem; i++) { Idx elem = newstate->nodes.elems[i]; if (!IS_EPSILON_NODE (dfa->nodes[elem].type)) if (! re_node_set_insert_last (&newstate->non_eps_nodes, elem)) return REG_ESPACE; } spot = dfa->state_table + (hash & dfa->state_hash_mask); if (BE (spot->alloc <= spot->num, 0)) { Idx new_alloc = 2 * spot->num + 2; re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *, new_alloc); if (BE (new_array == NULL, 0)) return REG_ESPACE; spot->array = new_array; spot->alloc = new_alloc; } spot->array[spot->num++] = newstate; return REG_NOERROR; } static void free_state (re_dfastate_t *state) { re_node_set_free (&state->non_eps_nodes); re_node_set_free (&state->inveclosure); if (state->entrance_nodes != &state->nodes) { re_node_set_free (state->entrance_nodes); re_free (state->entrance_nodes); } re_node_set_free (&state->nodes); re_free (state->word_trtable); re_free (state->trtable); re_free (state); } /* Create the new state which is independent of contexts. Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * __attribute_warn_unused_result__ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_hashval_t hash) { Idx i; reg_errcode_t err; re_dfastate_t *newstate; newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); if (BE (newstate == NULL, 0)) return NULL; err = re_node_set_init_copy (&newstate->nodes, nodes); if (BE (err != REG_NOERROR, 0)) { re_free (newstate); return NULL; } newstate->entrance_nodes = &newstate->nodes; for (i = 0 ; i < nodes->nelem ; i++) { re_token_t *node = dfa->nodes + nodes->elems[i]; re_token_type_t type = node->type; if (type == CHARACTER && !node->constraint) continue; #ifdef RE_ENABLE_I18N newstate->accept_mb |= node->accept_mb; #endif /* RE_ENABLE_I18N */ /* If the state has the halt node, the state is a halt state. */ if (type == END_OF_RE) newstate->halt = 1; else if (type == OP_BACK_REF) newstate->has_backref = 1; else if (type == ANCHOR || node->constraint) newstate->has_constraint = 1; } err = register_state (dfa, newstate, hash); if (BE (err != REG_NOERROR, 0)) { free_state (newstate); newstate = NULL; } return newstate; } /* Create the new state which is depend on the context CONTEXT. Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * __attribute_warn_unused_result__ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, re_hashval_t hash) { Idx i, nctx_nodes = 0; reg_errcode_t err; re_dfastate_t *newstate; newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); if (BE (newstate == NULL, 0)) return NULL; err = re_node_set_init_copy (&newstate->nodes, nodes); if (BE (err != REG_NOERROR, 0)) { re_free (newstate); return NULL; } newstate->context = context; newstate->entrance_nodes = &newstate->nodes; for (i = 0 ; i < nodes->nelem ; i++) { re_token_t *node = dfa->nodes + nodes->elems[i]; re_token_type_t type = node->type; unsigned int constraint = node->constraint; if (type == CHARACTER && !constraint) continue; #ifdef RE_ENABLE_I18N newstate->accept_mb |= node->accept_mb; #endif /* RE_ENABLE_I18N */ /* If the state has the halt node, the state is a halt state. */ if (type == END_OF_RE) newstate->halt = 1; else if (type == OP_BACK_REF) newstate->has_backref = 1; if (constraint) { if (newstate->entrance_nodes == &newstate->nodes) { newstate->entrance_nodes = re_malloc (re_node_set, 1); if (BE (newstate->entrance_nodes == NULL, 0)) { free_state (newstate); return NULL; } if (re_node_set_init_copy (newstate->entrance_nodes, nodes) != REG_NOERROR) return NULL; nctx_nodes = 0; newstate->has_constraint = 1; } if (NOT_SATISFY_PREV_CONSTRAINT (constraint,context)) { re_node_set_remove_at (&newstate->nodes, i - nctx_nodes); ++nctx_nodes; } } } err = register_state (dfa, newstate, hash); if (BE (err != REG_NOERROR, 0)) { free_state (newstate); newstate = NULL; } return newstate; } libprelude-5.2.0/libmissing/PaxHeaders.14770/regexec.c0000644000000000000000000000011013726163410020571 xustar000000000000000024 mtime=1599661832.595 24 atime=1599661832.756 24 ctime=1599661998.949 libprelude-5.2.0/libmissing/regexec.c0000644000000000000000000037246513726163410017615 0ustar00rootroot00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, Idx n); static void match_ctx_clean (re_match_context_t *mctx); static void match_ctx_free (re_match_context_t *cache); static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, Idx node, Idx str_idx, Idx from, Idx to); static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx); static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx); static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx); static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, re_dfastate_t **limited_sts, Idx last_node, Idx last_str_idx); static reg_errcode_t re_search_internal (const regex_t *preg, const char *string, Idx length, Idx start, Idx last_start, Idx stop, size_t nmatch, regmatch_t pmatch[], int eflags); static regoff_t re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, Idx length1, const char *string2, Idx length2, Idx start, regoff_t range, struct re_registers *regs, Idx stop, bool ret_len); static regoff_t re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx start, regoff_t range, Idx stop, struct re_registers *regs, bool ret_len); static unsigned re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, int regs_allocated); static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx); static Idx check_matching (re_match_context_t *mctx, bool fl_longest_match, Idx *p_match_first); static Idx check_halt_state_context (const re_match_context_t *mctx, const re_dfastate_t *state, Idx idx); static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch); static reg_errcode_t push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes); static reg_errcode_t set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, bool fl_backtrack); static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs); #ifdef RE_ENABLE_I18N static int sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx node_idx, Idx str_idx, Idx max_str_idx); #endif /* RE_ENABLE_I18N */ static reg_errcode_t sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx); static reg_errcode_t build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *cur_dest); static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *dest_nodes); static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates); static bool check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx); static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, Idx subexp_idx, Idx from_node, Idx bkref_idx); static int check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, Idx subexp_idx, Idx node, Idx str_idx, Idx bkref_idx); static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, Idx str_idx); static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, const re_node_set *candidates); static reg_errcode_t merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, re_dfastate_t **src, Idx num); static re_dfastate_t *find_recover_state (reg_errcode_t *err, re_match_context_t *mctx); static re_dfastate_t *transit_state (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state); static re_dfastate_t *merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *next_state); static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, Idx str_idx); #if 0 static re_dfastate_t *transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *pstate); #endif #ifdef RE_ENABLE_I18N static reg_errcode_t transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate); #endif /* RE_ENABLE_I18N */ static reg_errcode_t transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes); static reg_errcode_t get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx); static reg_errcode_t get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, Idx bkref_node, Idx bkref_str); static Idx find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, Idx subexp_idx, int type); static reg_errcode_t check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Idx top_str, Idx last_node, Idx last_str, int type); static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, re_node_set *cur_nodes, re_node_set *next_nodes); static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, Idx ex_subexp, int type); static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, Idx target, Idx ex_subexp, int type); static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Idx cur_str, Idx subexp_num, int type); static bool build_trtable (const re_dfa_t *dfa, re_dfastate_t *state); #ifdef RE_ENABLE_I18N static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, const re_string_t *input, Idx idx); # ifdef _LIBC static unsigned int find_collation_sequence_value (const unsigned char *mbs, size_t name_len); # endif /* _LIBC */ #endif /* RE_ENABLE_I18N */ static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *states_node, bitset_t *states_ch); static bool check_node_accept (const re_match_context_t *mctx, const re_token_t *node, Idx idx); static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len); /* Entry point for POSIX code. */ /* regexec searches for a given pattern, specified by PREG, in the string STRING. If NMATCH is zero or REG_NOSUB was set in the cflags argument to 'regcomp', we ignore PMATCH. Otherwise, we assume PMATCH has at least NMATCH elements, and we set them to the offsets of the corresponding matched substrings. EFLAGS specifies "execution flags" which affect matching: if REG_NOTBOL is set, then ^ does not match at the beginning of the string; if REG_NOTEOL is set, then $ does not match at the end. We return 0 if we find a match and REG_NOMATCH if not. */ int regexec (const regex_t *_Restrict_ preg, const char *_Restrict_ string, size_t nmatch, regmatch_t pmatch[], int eflags) { reg_errcode_t err; Idx start, length; re_dfa_t *dfa = preg->buffer; if (eflags & ~(REG_NOTBOL | REG_NOTEOL | REG_STARTEND)) return REG_BADPAT; if (eflags & REG_STARTEND) { start = pmatch[0].rm_so; length = pmatch[0].rm_eo; } else { start = 0; length = strlen (string); } lock_lock (dfa->lock); if (preg->no_sub) err = re_search_internal (preg, string, length, start, length, length, 0, NULL, eflags); else err = re_search_internal (preg, string, length, start, length, length, nmatch, pmatch, eflags); lock_unlock (dfa->lock); return err != REG_NOERROR; } #ifdef _LIBC libc_hidden_def (__regexec) # include versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4); # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4) __typeof__ (__regexec) __compat_regexec; int attribute_compat_text_section __compat_regexec (const regex_t *_Restrict_ preg, const char *_Restrict_ string, size_t nmatch, regmatch_t pmatch[], int eflags) { return regexec (preg, string, nmatch, pmatch, eflags & (REG_NOTBOL | REG_NOTEOL)); } compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0); # endif #endif /* Entry points for GNU code. */ /* re_match, re_search, re_match_2, re_search_2 The former two functions operate on STRING with length LENGTH, while the later two operate on concatenation of STRING1 and STRING2 with lengths LENGTH1 and LENGTH2, respectively. re_match() matches the compiled pattern in BUFP against the string, starting at index START. re_search() first tries matching at index START, then it tries to match starting from index START + 1, and so on. The last start position tried is START + RANGE. (Thus RANGE = 0 forces re_search to operate the same way as re_match().) The parameter STOP of re_{match,search}_2 specifies that no match exceeding the first STOP characters of the concatenation of the strings should be concerned. If REGS is not NULL, and BUFP->no_sub is not set, the offsets of the match and all groups is stored in REGS. (For the "_2" variants, the offsets are computed relative to the concatenation, not relative to the individual strings.) On success, re_match* functions return the length of the match, re_search* return the position of the start of the match. Return value -1 means no match was found and -2 indicates an internal error. */ regoff_t re_match (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx start, struct re_registers *regs) { return re_search_stub (bufp, string, length, start, 0, length, regs, true); } #ifdef _LIBC weak_alias (__re_match, re_match) #endif regoff_t re_search (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx start, regoff_t range, struct re_registers *regs) { return re_search_stub (bufp, string, length, start, range, length, regs, false); } #ifdef _LIBC weak_alias (__re_search, re_search) #endif regoff_t re_match_2 (struct re_pattern_buffer *bufp, const char *string1, Idx length1, const char *string2, Idx length2, Idx start, struct re_registers *regs, Idx stop) { return re_search_2_stub (bufp, string1, length1, string2, length2, start, 0, regs, stop, true); } #ifdef _LIBC weak_alias (__re_match_2, re_match_2) #endif regoff_t re_search_2 (struct re_pattern_buffer *bufp, const char *string1, Idx length1, const char *string2, Idx length2, Idx start, regoff_t range, struct re_registers *regs, Idx stop) { return re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs, stop, false); } #ifdef _LIBC weak_alias (__re_search_2, re_search_2) #endif static regoff_t re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, Idx length1, const char *string2, Idx length2, Idx start, regoff_t range, struct re_registers *regs, Idx stop, bool ret_len) { const char *str; regoff_t rval; Idx len; char *s = NULL; if (BE ((length1 < 0 || length2 < 0 || stop < 0 || INT_ADD_WRAPV (length1, length2, &len)), 0)) return -2; /* Concatenate the strings. */ if (length2 > 0) if (length1 > 0) { s = re_malloc (char, len); if (BE (s == NULL, 0)) return -2; #ifdef _LIBC memcpy (__mempcpy (s, string1, length1), string2, length2); #else memcpy (s, string1, length1); memcpy (s + length1, string2, length2); #endif str = s; } else str = string2; else str = string1; rval = re_search_stub (bufp, str, len, start, range, stop, regs, ret_len); re_free (s); return rval; } /* The parameters have the same meaning as those of re_search. Additional parameters: If RET_LEN is true the length of the match is returned (re_match style); otherwise the position of the match is returned. */ static regoff_t re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx start, regoff_t range, Idx stop, struct re_registers *regs, bool ret_len) { reg_errcode_t result; regmatch_t *pmatch; Idx nregs; regoff_t rval; int eflags = 0; re_dfa_t *dfa = bufp->buffer; Idx last_start = start + range; /* Check for out-of-range. */ if (BE (start < 0 || start > length, 0)) return -1; if (BE (length < last_start || (0 <= range && last_start < start), 0)) last_start = length; else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0)) last_start = 0; lock_lock (dfa->lock); eflags |= (bufp->not_bol) ? REG_NOTBOL : 0; eflags |= (bufp->not_eol) ? REG_NOTEOL : 0; /* Compile fastmap if we haven't yet. */ if (start < last_start && bufp->fastmap != NULL && !bufp->fastmap_accurate) re_compile_fastmap (bufp); if (BE (bufp->no_sub, 0)) regs = NULL; /* We need at least 1 register. */ if (regs == NULL) nregs = 1; else if (BE (bufp->regs_allocated == REGS_FIXED && regs->num_regs <= bufp->re_nsub, 0)) { nregs = regs->num_regs; if (BE (nregs < 1, 0)) { /* Nothing can be copied to regs. */ regs = NULL; nregs = 1; } } else nregs = bufp->re_nsub + 1; pmatch = re_malloc (regmatch_t, nregs); if (BE (pmatch == NULL, 0)) { rval = -2; goto out; } result = re_search_internal (bufp, string, length, start, last_start, stop, nregs, pmatch, eflags); rval = 0; /* I hope we needn't fill their regs with -1's when no match was found. */ if (result != REG_NOERROR) rval = result == REG_NOMATCH ? -1 : -2; else if (regs != NULL) { /* If caller wants register contents data back, copy them. */ bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs, bufp->regs_allocated); if (BE (bufp->regs_allocated == REGS_UNALLOCATED, 0)) rval = -2; } if (BE (rval == 0, 1)) { if (ret_len) { assert (pmatch[0].rm_so == start); rval = pmatch[0].rm_eo - start; } else rval = pmatch[0].rm_so; } re_free (pmatch); out: lock_unlock (dfa->lock); return rval; } static unsigned re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, int regs_allocated) { int rval = REGS_REALLOCATE; Idx i; Idx need_regs = nregs + 1; /* We need one extra element beyond 'num_regs' for the '-1' marker GNU code uses. */ /* Have the register data arrays been allocated? */ if (regs_allocated == REGS_UNALLOCATED) { /* No. So allocate them with malloc. */ regs->start = re_malloc (regoff_t, need_regs); if (BE (regs->start == NULL, 0)) return REGS_UNALLOCATED; regs->end = re_malloc (regoff_t, need_regs); if (BE (regs->end == NULL, 0)) { re_free (regs->start); return REGS_UNALLOCATED; } regs->num_regs = need_regs; } else if (regs_allocated == REGS_REALLOCATE) { /* Yes. If we need more elements than were already allocated, reallocate them. If we need fewer, just leave it alone. */ if (BE (need_regs > regs->num_regs, 0)) { regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs); regoff_t *new_end; if (BE (new_start == NULL, 0)) return REGS_UNALLOCATED; new_end = re_realloc (regs->end, regoff_t, need_regs); if (BE (new_end == NULL, 0)) { re_free (new_start); return REGS_UNALLOCATED; } regs->start = new_start; regs->end = new_end; regs->num_regs = need_regs; } } else { assert (regs_allocated == REGS_FIXED); /* This function may not be called with REGS_FIXED and nregs too big. */ assert (regs->num_regs >= nregs); rval = REGS_FIXED; } /* Copy the regs. */ for (i = 0; i < nregs; ++i) { regs->start[i] = pmatch[i].rm_so; regs->end[i] = pmatch[i].rm_eo; } for ( ; i < regs->num_regs; ++i) regs->start[i] = regs->end[i] = -1; return rval; } /* Set REGS to hold NUM_REGS registers, storing them in STARTS and ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use this memory for recording register information. STARTS and ENDS must be allocated using the malloc library routine, and must each be at least NUM_REGS * sizeof (regoff_t) bytes long. If NUM_REGS == 0, then subsequent matches should allocate their own register data. Unless this function is called, the first search or match using PATTERN_BUFFER will allocate its own register data, without freeing the old data. */ void re_set_registers (struct re_pattern_buffer *bufp, struct re_registers *regs, __re_size_t num_regs, regoff_t *starts, regoff_t *ends) { if (num_regs) { bufp->regs_allocated = REGS_REALLOCATE; regs->num_regs = num_regs; regs->start = starts; regs->end = ends; } else { bufp->regs_allocated = REGS_UNALLOCATED; regs->num_regs = 0; regs->start = regs->end = NULL; } } #ifdef _LIBC weak_alias (__re_set_registers, re_set_registers) #endif /* Entry points compatible with 4.2 BSD regex library. We don't define them unless specifically requested. */ #if defined _REGEX_RE_COMP || defined _LIBC int # ifdef _LIBC weak_function # endif re_exec (const char *s) { return 0 == regexec (&re_comp_buf, s, 0, NULL, 0); } #endif /* _REGEX_RE_COMP */ /* Internal entry point. */ /* Searches for a compiled pattern PREG in the string STRING, whose length is LENGTH. NMATCH, PMATCH, and EFLAGS have the same meaning as with regexec. LAST_START is START + RANGE, where START and RANGE have the same meaning as with re_search. Return REG_NOERROR if we find a match, and REG_NOMATCH if not, otherwise return the error code. Note: We assume front end functions already check ranges. (0 <= LAST_START && LAST_START <= LENGTH) */ static reg_errcode_t __attribute_warn_unused_result__ re_search_internal (const regex_t *preg, const char *string, Idx length, Idx start, Idx last_start, Idx stop, size_t nmatch, regmatch_t pmatch[], int eflags) { reg_errcode_t err; const re_dfa_t *dfa = preg->buffer; Idx left_lim, right_lim; int incr; bool fl_longest_match; int match_kind; Idx match_first; Idx match_last = -1; Idx extra_nmatch; bool sb; int ch; #if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) re_match_context_t mctx = { .dfa = dfa }; #else re_match_context_t mctx; #endif char *fastmap = ((preg->fastmap != NULL && preg->fastmap_accurate && start != last_start && !preg->can_be_null) ? preg->fastmap : NULL); RE_TRANSLATE_TYPE t = preg->translate; #if !(defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) memset (&mctx, '\0', sizeof (re_match_context_t)); mctx.dfa = dfa; #endif extra_nmatch = (nmatch > preg->re_nsub) ? nmatch - (preg->re_nsub + 1) : 0; nmatch -= extra_nmatch; /* Check if the DFA haven't been compiled. */ if (BE (preg->used == 0 || dfa->init_state == NULL || dfa->init_state_word == NULL || dfa->init_state_nl == NULL || dfa->init_state_begbuf == NULL, 0)) return REG_NOMATCH; #ifdef DEBUG /* We assume front-end functions already check them. */ assert (0 <= last_start && last_start <= length); #endif /* If initial states with non-begbuf contexts have no elements, the regex must be anchored. If preg->newline_anchor is set, we'll never use init_state_nl, so do not check it. */ if (dfa->init_state->nodes.nelem == 0 && dfa->init_state_word->nodes.nelem == 0 && (dfa->init_state_nl->nodes.nelem == 0 || !preg->newline_anchor)) { if (start != 0 && last_start != 0) return REG_NOMATCH; start = last_start = 0; } /* We must check the longest matching, if nmatch > 0. */ fl_longest_match = (nmatch != 0 || dfa->nbackref); err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1, preg->translate, (preg->syntax & RE_ICASE) != 0, dfa); if (BE (err != REG_NOERROR, 0)) goto free_return; mctx.input.stop = stop; mctx.input.raw_stop = stop; mctx.input.newline_anchor = preg->newline_anchor; err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2); if (BE (err != REG_NOERROR, 0)) goto free_return; /* We will log all the DFA states through which the dfa pass, if nmatch > 1, or this dfa has "multibyte node", which is a back-reference or a node which can accept multibyte character or multi character collating element. */ if (nmatch > 1 || dfa->has_mb_node) { /* Avoid overflow. */ if (BE ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) <= mctx.input.bufs_len), 0)) { err = REG_ESPACE; goto free_return; } mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1); if (BE (mctx.state_log == NULL, 0)) { err = REG_ESPACE; goto free_return; } } else mctx.state_log = NULL; match_first = start; mctx.input.tip_context = (eflags & REG_NOTBOL) ? CONTEXT_BEGBUF : CONTEXT_NEWLINE | CONTEXT_BEGBUF; /* Check incrementally whether the input string matches. */ incr = (last_start < start) ? -1 : 1; left_lim = (last_start < start) ? last_start : start; right_lim = (last_start < start) ? start : last_start; sb = dfa->mb_cur_max == 1; match_kind = (fastmap ? ((sb || !(preg->syntax & RE_ICASE || t) ? 4 : 0) | (start <= last_start ? 2 : 0) | (t != NULL ? 1 : 0)) : 8); for (;; match_first += incr) { err = REG_NOMATCH; if (match_first < left_lim || right_lim < match_first) goto free_return; /* Advance as rapidly as possible through the string, until we find a plausible place to start matching. This may be done with varying efficiency, so there are various possibilities: only the most common of them are specialized, in order to save on code size. We use a switch statement for speed. */ switch (match_kind) { case 8: /* No fastmap. */ break; case 7: /* Fastmap with single-byte translation, match forward. */ while (BE (match_first < right_lim, 1) && !fastmap[t[(unsigned char) string[match_first]]]) ++match_first; goto forward_match_found_start_or_reached_end; case 6: /* Fastmap without translation, match forward. */ while (BE (match_first < right_lim, 1) && !fastmap[(unsigned char) string[match_first]]) ++match_first; forward_match_found_start_or_reached_end: if (BE (match_first == right_lim, 0)) { ch = match_first >= length ? 0 : (unsigned char) string[match_first]; if (!fastmap[t ? t[ch] : ch]) goto free_return; } break; case 4: case 5: /* Fastmap without multi-byte translation, match backwards. */ while (match_first >= left_lim) { ch = match_first >= length ? 0 : (unsigned char) string[match_first]; if (fastmap[t ? t[ch] : ch]) break; --match_first; } if (match_first < left_lim) goto free_return; break; default: /* In this case, we can't determine easily the current byte, since it might be a component byte of a multibyte character. Then we use the constructed buffer instead. */ for (;;) { /* If MATCH_FIRST is out of the valid range, reconstruct the buffers. */ __re_size_t offset = match_first - mctx.input.raw_mbs_idx; if (BE (offset >= (__re_size_t) mctx.input.valid_raw_len, 0)) { err = re_string_reconstruct (&mctx.input, match_first, eflags); if (BE (err != REG_NOERROR, 0)) goto free_return; offset = match_first - mctx.input.raw_mbs_idx; } /* If MATCH_FIRST is out of the buffer, leave it as '\0'. Note that MATCH_FIRST must not be smaller than 0. */ ch = (match_first >= length ? 0 : re_string_byte_at (&mctx.input, offset)); if (fastmap[ch]) break; match_first += incr; if (match_first < left_lim || match_first > right_lim) { err = REG_NOMATCH; goto free_return; } } break; } /* Reconstruct the buffers so that the matcher can assume that the matching starts from the beginning of the buffer. */ err = re_string_reconstruct (&mctx.input, match_first, eflags); if (BE (err != REG_NOERROR, 0)) goto free_return; #ifdef RE_ENABLE_I18N /* Don't consider this char as a possible match start if it part, yet isn't the head, of a multibyte character. */ if (!sb && !re_string_first_byte (&mctx.input, 0)) continue; #endif /* It seems to be appropriate one, then use the matcher. */ /* We assume that the matching starts from 0. */ mctx.state_log_top = mctx.nbkref_ents = mctx.max_mb_elem_len = 0; match_last = check_matching (&mctx, fl_longest_match, start <= last_start ? &match_first : NULL); if (match_last != -1) { if (BE (match_last == -2, 0)) { err = REG_ESPACE; goto free_return; } else { mctx.match_last = match_last; if ((!preg->no_sub && nmatch > 1) || dfa->nbackref) { re_dfastate_t *pstate = mctx.state_log[match_last]; mctx.last_node = check_halt_state_context (&mctx, pstate, match_last); } if ((!preg->no_sub && nmatch > 1 && dfa->has_plural_match) || dfa->nbackref) { err = prune_impossible_nodes (&mctx); if (err == REG_NOERROR) break; if (BE (err != REG_NOMATCH, 0)) goto free_return; match_last = -1; } else break; /* We found a match. */ } } match_ctx_clean (&mctx); } #ifdef DEBUG assert (match_last != -1); assert (err == REG_NOERROR); #endif /* Set pmatch[] if we need. */ if (nmatch > 0) { Idx reg_idx; /* Initialize registers. */ for (reg_idx = 1; reg_idx < nmatch; ++reg_idx) pmatch[reg_idx].rm_so = pmatch[reg_idx].rm_eo = -1; /* Set the points where matching start/end. */ pmatch[0].rm_so = 0; pmatch[0].rm_eo = mctx.match_last; /* FIXME: This function should fail if mctx.match_last exceeds the maximum possible regoff_t value. We need a new error code REG_OVERFLOW. */ if (!preg->no_sub && nmatch > 1) { err = set_regs (preg, &mctx, nmatch, pmatch, dfa->has_plural_match && dfa->nbackref > 0); if (BE (err != REG_NOERROR, 0)) goto free_return; } /* At last, add the offset to each register, since we slid the buffers so that we could assume that the matching starts from 0. */ for (reg_idx = 0; reg_idx < nmatch; ++reg_idx) if (pmatch[reg_idx].rm_so != -1) { #ifdef RE_ENABLE_I18N if (BE (mctx.input.offsets_needed != 0, 0)) { pmatch[reg_idx].rm_so = (pmatch[reg_idx].rm_so == mctx.input.valid_len ? mctx.input.valid_raw_len : mctx.input.offsets[pmatch[reg_idx].rm_so]); pmatch[reg_idx].rm_eo = (pmatch[reg_idx].rm_eo == mctx.input.valid_len ? mctx.input.valid_raw_len : mctx.input.offsets[pmatch[reg_idx].rm_eo]); } #else assert (mctx.input.offsets_needed == 0); #endif pmatch[reg_idx].rm_so += match_first; pmatch[reg_idx].rm_eo += match_first; } for (reg_idx = 0; reg_idx < extra_nmatch; ++reg_idx) { pmatch[nmatch + reg_idx].rm_so = -1; pmatch[nmatch + reg_idx].rm_eo = -1; } if (dfa->subexp_map) for (reg_idx = 0; reg_idx + 1 < nmatch; reg_idx++) if (dfa->subexp_map[reg_idx] != reg_idx) { pmatch[reg_idx + 1].rm_so = pmatch[dfa->subexp_map[reg_idx] + 1].rm_so; pmatch[reg_idx + 1].rm_eo = pmatch[dfa->subexp_map[reg_idx] + 1].rm_eo; } } free_return: re_free (mctx.state_log); if (dfa->nbackref) match_ctx_free (&mctx); re_string_destruct (&mctx.input); return err; } static reg_errcode_t __attribute_warn_unused_result__ prune_impossible_nodes (re_match_context_t *mctx) { const re_dfa_t *const dfa = mctx->dfa; Idx halt_node, match_last; reg_errcode_t ret; re_dfastate_t **sifted_states; re_dfastate_t **lim_states = NULL; re_sift_context_t sctx; #ifdef DEBUG assert (mctx->state_log != NULL); #endif match_last = mctx->match_last; halt_node = mctx->last_node; /* Avoid overflow. */ if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) <= match_last, 0)) return REG_ESPACE; sifted_states = re_malloc (re_dfastate_t *, match_last + 1); if (BE (sifted_states == NULL, 0)) { ret = REG_ESPACE; goto free_return; } if (dfa->nbackref) { lim_states = re_malloc (re_dfastate_t *, match_last + 1); if (BE (lim_states == NULL, 0)) { ret = REG_ESPACE; goto free_return; } while (1) { memset (lim_states, '\0', sizeof (re_dfastate_t *) * (match_last + 1)); sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last); ret = sift_states_backward (mctx, &sctx); re_node_set_free (&sctx.limits); if (BE (ret != REG_NOERROR, 0)) goto free_return; if (sifted_states[0] != NULL || lim_states[0] != NULL) break; do { --match_last; if (match_last < 0) { ret = REG_NOMATCH; goto free_return; } } while (mctx->state_log[match_last] == NULL || !mctx->state_log[match_last]->halt); halt_node = check_halt_state_context (mctx, mctx->state_log[match_last], match_last); } ret = merge_state_array (dfa, sifted_states, lim_states, match_last + 1); re_free (lim_states); lim_states = NULL; if (BE (ret != REG_NOERROR, 0)) goto free_return; } else { sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last); ret = sift_states_backward (mctx, &sctx); re_node_set_free (&sctx.limits); if (BE (ret != REG_NOERROR, 0)) goto free_return; if (sifted_states[0] == NULL) { ret = REG_NOMATCH; goto free_return; } } re_free (mctx->state_log); mctx->state_log = sifted_states; sifted_states = NULL; mctx->last_node = halt_node; mctx->match_last = match_last; ret = REG_NOERROR; free_return: re_free (sifted_states); re_free (lim_states); return ret; } /* Acquire an initial state and return it. We must select appropriate initial state depending on the context, since initial states may have constraints like "\<", "^", etc.. */ static inline re_dfastate_t * __attribute__ ((always_inline)) acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx, Idx idx) { const re_dfa_t *const dfa = mctx->dfa; if (dfa->init_state->has_constraint) { unsigned int context; context = re_string_context_at (&mctx->input, idx - 1, mctx->eflags); if (IS_WORD_CONTEXT (context)) return dfa->init_state_word; else if (IS_ORDINARY_CONTEXT (context)) return dfa->init_state; else if (IS_BEGBUF_CONTEXT (context) && IS_NEWLINE_CONTEXT (context)) return dfa->init_state_begbuf; else if (IS_NEWLINE_CONTEXT (context)) return dfa->init_state_nl; else if (IS_BEGBUF_CONTEXT (context)) { /* It is relatively rare case, then calculate on demand. */ return re_acquire_state_context (err, dfa, dfa->init_state->entrance_nodes, context); } else /* Must not happen? */ return dfa->init_state; } else return dfa->init_state; } /* Check whether the regular expression match input string INPUT or not, and return the index where the matching end. Return -1 if there is no match, and return -2 in case of an error. FL_LONGEST_MATCH means we want the POSIX longest matching. If P_MATCH_FIRST is not NULL, and the match fails, it is set to the next place where we may want to try matching. Note that the matcher assumes that the matching starts from the current index of the buffer. */ static Idx __attribute_warn_unused_result__ check_matching (re_match_context_t *mctx, bool fl_longest_match, Idx *p_match_first) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx match = 0; Idx match_last = -1; Idx cur_str_idx = re_string_cur_idx (&mctx->input); re_dfastate_t *cur_state; bool at_init_state = p_match_first != NULL; Idx next_start_idx = cur_str_idx; err = REG_NOERROR; cur_state = acquire_init_state_context (&err, mctx, cur_str_idx); /* An initial state must not be NULL (invalid). */ if (BE (cur_state == NULL, 0)) { assert (err == REG_ESPACE); return -2; } if (mctx->state_log != NULL) { mctx->state_log[cur_str_idx] = cur_state; /* Check OP_OPEN_SUBEXP in the initial state in case that we use them later. E.g. Processing back references. */ if (BE (dfa->nbackref, 0)) { at_init_state = false; err = check_subexp_matching_top (mctx, &cur_state->nodes, 0); if (BE (err != REG_NOERROR, 0)) return err; if (cur_state->has_backref) { err = transit_state_bkref (mctx, &cur_state->nodes); if (BE (err != REG_NOERROR, 0)) return err; } } } /* If the RE accepts NULL string. */ if (BE (cur_state->halt, 0)) { if (!cur_state->has_constraint || check_halt_state_context (mctx, cur_state, cur_str_idx)) { if (!fl_longest_match) return cur_str_idx; else { match_last = cur_str_idx; match = 1; } } } while (!re_string_eoi (&mctx->input)) { re_dfastate_t *old_state = cur_state; Idx next_char_idx = re_string_cur_idx (&mctx->input) + 1; if ((BE (next_char_idx >= mctx->input.bufs_len, 0) && mctx->input.bufs_len < mctx->input.len) || (BE (next_char_idx >= mctx->input.valid_len, 0) && mctx->input.valid_len < mctx->input.len)) { err = extend_buffers (mctx, next_char_idx + 1); if (BE (err != REG_NOERROR, 0)) { assert (err == REG_ESPACE); return -2; } } cur_state = transit_state (&err, mctx, cur_state); if (mctx->state_log != NULL) cur_state = merge_state_with_log (&err, mctx, cur_state); if (cur_state == NULL) { /* Reached the invalid state or an error. Try to recover a valid state using the state log, if available and if we have not already found a valid (even if not the longest) match. */ if (BE (err != REG_NOERROR, 0)) return -2; if (mctx->state_log == NULL || (match && !fl_longest_match) || (cur_state = find_recover_state (&err, mctx)) == NULL) break; } if (BE (at_init_state, 0)) { if (old_state == cur_state) next_start_idx = next_char_idx; else at_init_state = false; } if (cur_state->halt) { /* Reached a halt state. Check the halt state can satisfy the current context. */ if (!cur_state->has_constraint || check_halt_state_context (mctx, cur_state, re_string_cur_idx (&mctx->input))) { /* We found an appropriate halt state. */ match_last = re_string_cur_idx (&mctx->input); match = 1; /* We found a match, do not modify match_first below. */ p_match_first = NULL; if (!fl_longest_match) break; } } } if (p_match_first) *p_match_first += next_start_idx; return match_last; } /* Check NODE match the current context. */ static bool check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context) { re_token_type_t type = dfa->nodes[node].type; unsigned int constraint = dfa->nodes[node].constraint; if (type != END_OF_RE) return false; if (!constraint) return true; if (NOT_SATISFY_NEXT_CONSTRAINT (constraint, context)) return false; return true; } /* Check the halt state STATE match the current context. Return 0 if not match, if the node, STATE has, is a halt node and match the context, return the node. */ static Idx check_halt_state_context (const re_match_context_t *mctx, const re_dfastate_t *state, Idx idx) { Idx i; unsigned int context; #ifdef DEBUG assert (state->halt); #endif context = re_string_context_at (&mctx->input, idx, mctx->eflags); for (i = 0; i < state->nodes.nelem; ++i) if (check_halt_node_context (mctx->dfa, state->nodes.elems[i], context)) return state->nodes.elems[i]; return 0; } /* Compute the next node to which "NFA" transit from NODE("NFA" is a NFA corresponding to the DFA). Return the destination node, and update EPS_VIA_NODES; return -1 in case of errors. */ static Idx proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, Idx *pidx, Idx node, re_node_set *eps_via_nodes, struct re_fail_stack_t *fs) { const re_dfa_t *const dfa = mctx->dfa; Idx i; bool ok; if (IS_EPSILON_NODE (dfa->nodes[node].type)) { re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes; re_node_set *edests = &dfa->edests[node]; Idx dest_node; ok = re_node_set_insert (eps_via_nodes, node); if (BE (! ok, 0)) return -2; /* Pick up a valid destination, or return -1 if none is found. */ for (dest_node = -1, i = 0; i < edests->nelem; ++i) { Idx candidate = edests->elems[i]; if (!re_node_set_contains (cur_nodes, candidate)) continue; if (dest_node == -1) dest_node = candidate; else { /* In order to avoid infinite loop like "(a*)*", return the second epsilon-transition if the first was already considered. */ if (re_node_set_contains (eps_via_nodes, dest_node)) return candidate; /* Otherwise, push the second epsilon-transition on the fail stack. */ else if (fs != NULL && push_fail_stack (fs, *pidx, candidate, nregs, regs, eps_via_nodes)) return -2; /* We know we are going to exit. */ break; } } return dest_node; } else { Idx naccepted = 0; re_token_type_t type = dfa->nodes[node].type; #ifdef RE_ENABLE_I18N if (dfa->nodes[node].accept_mb) naccepted = check_node_accept_bytes (dfa, node, &mctx->input, *pidx); else #endif /* RE_ENABLE_I18N */ if (type == OP_BACK_REF) { Idx subexp_idx = dfa->nodes[node].opr.idx + 1; naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so; if (fs != NULL) { if (regs[subexp_idx].rm_so == -1 || regs[subexp_idx].rm_eo == -1) return -1; else if (naccepted) { char *buf = (char *) re_string_get_buffer (&mctx->input); if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx, naccepted) != 0) return -1; } } if (naccepted == 0) { Idx dest_node; ok = re_node_set_insert (eps_via_nodes, node); if (BE (! ok, 0)) return -2; dest_node = dfa->edests[node].elems[0]; if (re_node_set_contains (&mctx->state_log[*pidx]->nodes, dest_node)) return dest_node; } } if (naccepted != 0 || check_node_accept (mctx, dfa->nodes + node, *pidx)) { Idx dest_node = dfa->nexts[node]; *pidx = (naccepted == 0) ? *pidx + 1 : *pidx + naccepted; if (fs && (*pidx > mctx->match_last || mctx->state_log[*pidx] == NULL || !re_node_set_contains (&mctx->state_log[*pidx]->nodes, dest_node))) return -1; re_node_set_empty (eps_via_nodes); return dest_node; } } return -1; } static reg_errcode_t __attribute_warn_unused_result__ push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { reg_errcode_t err; Idx num = fs->num++; if (fs->num == fs->alloc) { struct re_fail_stack_ent_t *new_array; new_array = re_realloc (fs->stack, struct re_fail_stack_ent_t, fs->alloc * 2); if (new_array == NULL) return REG_ESPACE; fs->alloc *= 2; fs->stack = new_array; } fs->stack[num].idx = str_idx; fs->stack[num].node = dest_node; fs->stack[num].regs = re_malloc (regmatch_t, nregs); if (fs->stack[num].regs == NULL) return REG_ESPACE; memcpy (fs->stack[num].regs, regs, sizeof (regmatch_t) * nregs); err = re_node_set_init_copy (&fs->stack[num].eps_via_nodes, eps_via_nodes); return err; } static Idx pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { Idx num = --fs->num; assert (num >= 0); *pidx = fs->stack[num].idx; memcpy (regs, fs->stack[num].regs, sizeof (regmatch_t) * nregs); re_node_set_free (eps_via_nodes); re_free (fs->stack[num].regs); *eps_via_nodes = fs->stack[num].eps_via_nodes; return fs->stack[num].node; } /* Set the positions where the subexpressions are starts/ends to registers PMATCH. Note: We assume that pmatch[0] is already set, and pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch. */ static reg_errcode_t __attribute_warn_unused_result__ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, bool fl_backtrack) { const re_dfa_t *dfa = preg->buffer; Idx idx, cur_node; re_node_set eps_via_nodes; struct re_fail_stack_t *fs; struct re_fail_stack_t fs_body = { 0, 2, NULL }; regmatch_t *prev_idx_match; bool prev_idx_match_malloced = false; #ifdef DEBUG assert (nmatch > 1); assert (mctx->state_log != NULL); #endif if (fl_backtrack) { fs = &fs_body; fs->stack = re_malloc (struct re_fail_stack_ent_t, fs->alloc); if (fs->stack == NULL) return REG_ESPACE; } else fs = NULL; cur_node = dfa->init_node; re_node_set_init_empty (&eps_via_nodes); if (__libc_use_alloca (nmatch * sizeof (regmatch_t))) prev_idx_match = (regmatch_t *) alloca (nmatch * sizeof (regmatch_t)); else { prev_idx_match = re_malloc (regmatch_t, nmatch); if (prev_idx_match == NULL) { free_fail_stack_return (fs); return REG_ESPACE; } prev_idx_match_malloced = true; } memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;) { update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch); if (idx == pmatch[0].rm_eo && cur_node == mctx->last_node) { Idx reg_idx; if (fs) { for (reg_idx = 0; reg_idx < nmatch; ++reg_idx) if (pmatch[reg_idx].rm_so > -1 && pmatch[reg_idx].rm_eo == -1) break; if (reg_idx == nmatch) { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return free_fail_stack_return (fs); } cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, &eps_via_nodes); } else { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return REG_NOERROR; } } /* Proceed to next node. */ cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node, &eps_via_nodes, fs); if (BE (cur_node < 0, 0)) { if (BE (cur_node == -2, 0)) { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); free_fail_stack_return (fs); return REG_ESPACE; } if (fs) cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, &eps_via_nodes); else { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return REG_NOMATCH; } } } re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return free_fail_stack_return (fs); } static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs) { if (fs) { Idx fs_idx; for (fs_idx = 0; fs_idx < fs->num; ++fs_idx) { re_node_set_free (&fs->stack[fs_idx].eps_via_nodes); re_free (fs->stack[fs_idx].regs); } re_free (fs->stack); } return REG_NOERROR; } static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch) { int type = dfa->nodes[cur_node].type; if (type == OP_OPEN_SUBEXP) { Idx reg_num = dfa->nodes[cur_node].opr.idx + 1; /* We are at the first node of this sub expression. */ if (reg_num < nmatch) { pmatch[reg_num].rm_so = cur_idx; pmatch[reg_num].rm_eo = -1; } } else if (type == OP_CLOSE_SUBEXP) { Idx reg_num = dfa->nodes[cur_node].opr.idx + 1; if (reg_num < nmatch) { /* We are at the last node of this sub expression. */ if (pmatch[reg_num].rm_so < cur_idx) { pmatch[reg_num].rm_eo = cur_idx; /* This is a non-empty match or we are not inside an optional subexpression. Accept this right away. */ memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); } else { if (dfa->nodes[cur_node].opt_subexp && prev_idx_match[reg_num].rm_so != -1) /* We transited through an empty match for an optional subexpression, like (a?)*, and this is not the subexp's first match. Copy back the old content of the registers so that matches of an inner subexpression are undone as well, like in ((a?))*. */ memcpy (pmatch, prev_idx_match, sizeof (regmatch_t) * nmatch); else /* We completed a subexpression, but it may be part of an optional one, so do not update PREV_IDX_MATCH. */ pmatch[reg_num].rm_eo = cur_idx; } } } } /* This function checks the STATE_LOG from the SCTX->last_str_idx to 0 and sift the nodes in each states according to the following rules. Updated state_log will be wrote to STATE_LOG. Rules: We throw away the Node 'a' in the STATE_LOG[STR_IDX] if... 1. When STR_IDX == MATCH_LAST(the last index in the state_log): If 'a' isn't the LAST_NODE and 'a' can't epsilon transit to the LAST_NODE, we throw away the node 'a'. 2. When 0 <= STR_IDX < MATCH_LAST and 'a' accepts string 's' and transit to 'b': i. If 'b' isn't in the STATE_LOG[STR_IDX+strlen('s')], we throw away the node 'a'. ii. If 'b' is in the STATE_LOG[STR_IDX+strlen('s')] but 'b' is thrown away, we throw away the node 'a'. 3. When 0 <= STR_IDX < MATCH_LAST and 'a' epsilon transit to 'b': i. If 'b' isn't in the STATE_LOG[STR_IDX], we throw away the node 'a'. ii. If 'b' is in the STATE_LOG[STR_IDX] but 'b' is thrown away, we throw away the node 'a'. */ #define STATE_NODE_CONTAINS(state,node) \ ((state) != NULL && re_node_set_contains (&(state)->nodes, node)) static reg_errcode_t sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) { reg_errcode_t err; int null_cnt = 0; Idx str_idx = sctx->last_str_idx; re_node_set cur_dest; #ifdef DEBUG assert (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL); #endif /* Build sifted state_log[str_idx]. It has the nodes which can epsilon transit to the last_node and the last_node itself. */ err = re_node_set_init_1 (&cur_dest, sctx->last_node); if (BE (err != REG_NOERROR, 0)) return err; err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); if (BE (err != REG_NOERROR, 0)) goto free_return; /* Then check each states in the state_log. */ while (str_idx > 0) { /* Update counters. */ null_cnt = (sctx->sifted_states[str_idx] == NULL) ? null_cnt + 1 : 0; if (null_cnt > mctx->max_mb_elem_len) { memset (sctx->sifted_states, '\0', sizeof (re_dfastate_t *) * str_idx); re_node_set_free (&cur_dest); return REG_NOERROR; } re_node_set_empty (&cur_dest); --str_idx; if (mctx->state_log[str_idx]) { err = build_sifted_states (mctx, sctx, str_idx, &cur_dest); if (BE (err != REG_NOERROR, 0)) goto free_return; } /* Add all the nodes which satisfy the following conditions: - It can epsilon transit to a node in CUR_DEST. - It is in CUR_SRC. And update state_log. */ err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); if (BE (err != REG_NOERROR, 0)) goto free_return; } err = REG_NOERROR; free_return: re_node_set_free (&cur_dest); return err; } static reg_errcode_t __attribute_warn_unused_result__ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *cur_dest) { const re_dfa_t *const dfa = mctx->dfa; const re_node_set *cur_src = &mctx->state_log[str_idx]->non_eps_nodes; Idx i; /* Then build the next sifted state. We build the next sifted state on 'cur_dest', and update 'sifted_states[str_idx]' with 'cur_dest'. Note: 'cur_dest' is the sifted state from 'state_log[str_idx + 1]'. 'cur_src' points the node_set of the old 'state_log[str_idx]' (with the epsilon nodes pre-filtered out). */ for (i = 0; i < cur_src->nelem; i++) { Idx prev_node = cur_src->elems[i]; int naccepted = 0; bool ok; #ifdef DEBUG re_token_type_t type = dfa->nodes[prev_node].type; assert (!IS_EPSILON_NODE (type)); #endif #ifdef RE_ENABLE_I18N /* If the node may accept "multi byte". */ if (dfa->nodes[prev_node].accept_mb) naccepted = sift_states_iter_mb (mctx, sctx, prev_node, str_idx, sctx->last_str_idx); #endif /* RE_ENABLE_I18N */ /* We don't check backreferences here. See update_cur_sifted_state(). */ if (!naccepted && check_node_accept (mctx, dfa->nodes + prev_node, str_idx) && STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + 1], dfa->nexts[prev_node])) naccepted = 1; if (naccepted == 0) continue; if (sctx->limits.nelem) { Idx to_idx = str_idx + naccepted; if (check_dst_limits (mctx, &sctx->limits, dfa->nexts[prev_node], to_idx, prev_node, str_idx)) continue; } ok = re_node_set_insert (cur_dest, prev_node); if (BE (! ok, 0)) return REG_ESPACE; } return REG_NOERROR; } /* Helper functions. */ static reg_errcode_t clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx) { Idx top = mctx->state_log_top; if ((next_state_log_idx >= mctx->input.bufs_len && mctx->input.bufs_len < mctx->input.len) || (next_state_log_idx >= mctx->input.valid_len && mctx->input.valid_len < mctx->input.len)) { reg_errcode_t err; err = extend_buffers (mctx, next_state_log_idx + 1); if (BE (err != REG_NOERROR, 0)) return err; } if (top < next_state_log_idx) { memset (mctx->state_log + top + 1, '\0', sizeof (re_dfastate_t *) * (next_state_log_idx - top)); mctx->state_log_top = next_state_log_idx; } return REG_NOERROR; } static reg_errcode_t merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, re_dfastate_t **src, Idx num) { Idx st_idx; reg_errcode_t err; for (st_idx = 0; st_idx < num; ++st_idx) { if (dst[st_idx] == NULL) dst[st_idx] = src[st_idx]; else if (src[st_idx] != NULL) { re_node_set merged_set; err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes, &src[st_idx]->nodes); if (BE (err != REG_NOERROR, 0)) return err; dst[st_idx] = re_acquire_state (&err, dfa, &merged_set); re_node_set_free (&merged_set); if (BE (err != REG_NOERROR, 0)) return err; } } return REG_NOERROR; } static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *dest_nodes) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err = REG_NOERROR; const re_node_set *candidates; candidates = ((mctx->state_log[str_idx] == NULL) ? NULL : &mctx->state_log[str_idx]->nodes); if (dest_nodes->nelem == 0) sctx->sifted_states[str_idx] = NULL; else { if (candidates) { /* At first, add the nodes which can epsilon transit to a node in DEST_NODE. */ err = add_epsilon_src_nodes (dfa, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; /* Then, check the limitations in the current sift_context. */ if (sctx->limits.nelem) { err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits, mctx->bkref_ents, str_idx); if (BE (err != REG_NOERROR, 0)) return err; } } sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes); if (BE (err != REG_NOERROR, 0)) return err; } if (candidates && mctx->state_log[str_idx]->has_backref) { err = sift_states_bkref (mctx, sctx, str_idx, candidates); if (BE (err != REG_NOERROR, 0)) return err; } return REG_NOERROR; } static reg_errcode_t __attribute_warn_unused_result__ add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates) { reg_errcode_t err = REG_NOERROR; Idx i; re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes); if (BE (err != REG_NOERROR, 0)) return err; if (!state->inveclosure.alloc) { err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem); if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; for (i = 0; i < dest_nodes->nelem; i++) { err = re_node_set_merge (&state->inveclosure, dfa->inveclosures + dest_nodes->elems[i]); if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; } } return re_node_set_add_intersect (dest_nodes, candidates, &state->inveclosure); } static reg_errcode_t sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes, const re_node_set *candidates) { Idx ecl_idx; reg_errcode_t err; re_node_set *inv_eclosure = dfa->inveclosures + node; re_node_set except_nodes; re_node_set_init_empty (&except_nodes); for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx) { Idx cur_node = inv_eclosure->elems[ecl_idx]; if (cur_node == node) continue; if (IS_EPSILON_NODE (dfa->nodes[cur_node].type)) { Idx edst1 = dfa->edests[cur_node].elems[0]; Idx edst2 = ((dfa->edests[cur_node].nelem > 1) ? dfa->edests[cur_node].elems[1] : -1); if ((!re_node_set_contains (inv_eclosure, edst1) && re_node_set_contains (dest_nodes, edst1)) || (edst2 > 0 && !re_node_set_contains (inv_eclosure, edst2) && re_node_set_contains (dest_nodes, edst2))) { err = re_node_set_add_intersect (&except_nodes, candidates, dfa->inveclosures + cur_node); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&except_nodes); return err; } } } } for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx) { Idx cur_node = inv_eclosure->elems[ecl_idx]; if (!re_node_set_contains (&except_nodes, cur_node)) { Idx idx = re_node_set_contains (dest_nodes, cur_node) - 1; re_node_set_remove_at (dest_nodes, idx); } } re_node_set_free (&except_nodes); return REG_NOERROR; } static bool check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx) { const re_dfa_t *const dfa = mctx->dfa; Idx lim_idx, src_pos, dst_pos; Idx dst_bkref_idx = search_cur_bkref_entry (mctx, dst_idx); Idx src_bkref_idx = search_cur_bkref_entry (mctx, src_idx); for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx) { Idx subexp_idx; struct re_backref_cache_entry *ent; ent = mctx->bkref_ents + limits->elems[lim_idx]; subexp_idx = dfa->nodes[ent->node].opr.idx; dst_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx], subexp_idx, dst_node, dst_idx, dst_bkref_idx); src_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx], subexp_idx, src_node, src_idx, src_bkref_idx); /* In case of: ( ) ( ) ( ) */ if (src_pos == dst_pos) continue; /* This is unrelated limitation. */ else return true; } return false; } static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, Idx subexp_idx, Idx from_node, Idx bkref_idx) { const re_dfa_t *const dfa = mctx->dfa; const re_node_set *eclosures = dfa->eclosures + from_node; Idx node_idx; /* Else, we are on the boundary: examine the nodes on the epsilon closure. */ for (node_idx = 0; node_idx < eclosures->nelem; ++node_idx) { Idx node = eclosures->elems[node_idx]; switch (dfa->nodes[node].type) { case OP_BACK_REF: if (bkref_idx != -1) { struct re_backref_cache_entry *ent = mctx->bkref_ents + bkref_idx; do { Idx dst; int cpos; if (ent->node != node) continue; if (subexp_idx < BITSET_WORD_BITS && !(ent->eps_reachable_subexps_map & ((bitset_word_t) 1 << subexp_idx))) continue; /* Recurse trying to reach the OP_OPEN_SUBEXP and OP_CLOSE_SUBEXP cases below. But, if the destination node is the same node as the source node, don't recurse because it would cause an infinite loop: a regex that exhibits this behavior is ()\1*\1* */ dst = dfa->edests[node].elems[0]; if (dst == from_node) { if (boundaries & 1) return -1; else /* if (boundaries & 2) */ return 0; } cpos = check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx, dst, bkref_idx); if (cpos == -1 /* && (boundaries & 1) */) return -1; if (cpos == 0 && (boundaries & 2)) return 0; if (subexp_idx < BITSET_WORD_BITS) ent->eps_reachable_subexps_map &= ~((bitset_word_t) 1 << subexp_idx); } while (ent++->more); } break; case OP_OPEN_SUBEXP: if ((boundaries & 1) && subexp_idx == dfa->nodes[node].opr.idx) return -1; break; case OP_CLOSE_SUBEXP: if ((boundaries & 2) && subexp_idx == dfa->nodes[node].opr.idx) return 0; break; default: break; } } return (boundaries & 2) ? 1 : 0; } static int check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, Idx subexp_idx, Idx from_node, Idx str_idx, Idx bkref_idx) { struct re_backref_cache_entry *lim = mctx->bkref_ents + limit; int boundaries; /* If we are outside the range of the subexpression, return -1 or 1. */ if (str_idx < lim->subexp_from) return -1; if (lim->subexp_to < str_idx) return 1; /* If we are within the subexpression, return 0. */ boundaries = (str_idx == lim->subexp_from); boundaries |= (str_idx == lim->subexp_to) << 1; if (boundaries == 0) return 0; /* Else, examine epsilon closure. */ return check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx, from_node, bkref_idx); } /* Check the limitations of sub expressions LIMITS, and remove the nodes which are against limitations from DEST_NODES. */ static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, Idx str_idx) { reg_errcode_t err; Idx node_idx, lim_idx; for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx) { Idx subexp_idx; struct re_backref_cache_entry *ent; ent = bkref_ents + limits->elems[lim_idx]; if (str_idx <= ent->subexp_from || ent->str_idx < str_idx) continue; /* This is unrelated limitation. */ subexp_idx = dfa->nodes[ent->node].opr.idx; if (ent->subexp_to == str_idx) { Idx ops_node = -1; Idx cls_node = -1; for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { Idx node = dest_nodes->elems[node_idx]; re_token_type_t type = dfa->nodes[node].type; if (type == OP_OPEN_SUBEXP && subexp_idx == dfa->nodes[node].opr.idx) ops_node = node; else if (type == OP_CLOSE_SUBEXP && subexp_idx == dfa->nodes[node].opr.idx) cls_node = node; } /* Check the limitation of the open subexpression. */ /* Note that (ent->subexp_to = str_idx != ent->subexp_from). */ if (ops_node >= 0) { err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; } /* Check the limitation of the close subexpression. */ if (cls_node >= 0) for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { Idx node = dest_nodes->elems[node_idx]; if (!re_node_set_contains (dfa->inveclosures + node, cls_node) && !re_node_set_contains (dfa->eclosures + node, cls_node)) { /* It is against this limitation. Remove it form the current sifted state. */ err = sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; --node_idx; } } } else /* (ent->subexp_to != str_idx) */ { for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { Idx node = dest_nodes->elems[node_idx]; re_token_type_t type = dfa->nodes[node].type; if (type == OP_CLOSE_SUBEXP || type == OP_OPEN_SUBEXP) { if (subexp_idx != dfa->nodes[node].opr.idx) continue; /* It is against this limitation. Remove it form the current sifted state. */ err = sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; } } } } return REG_NOERROR; } static reg_errcode_t __attribute_warn_unused_result__ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, const re_node_set *candidates) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx node_idx, node; re_sift_context_t local_sctx; Idx first_idx = search_cur_bkref_entry (mctx, str_idx); if (first_idx == -1) return REG_NOERROR; local_sctx.sifted_states = NULL; /* Mark that it hasn't been initialized. */ for (node_idx = 0; node_idx < candidates->nelem; ++node_idx) { Idx enabled_idx; re_token_type_t type; struct re_backref_cache_entry *entry; node = candidates->elems[node_idx]; type = dfa->nodes[node].type; /* Avoid infinite loop for the REs like "()\1+". */ if (node == sctx->last_node && str_idx == sctx->last_str_idx) continue; if (type != OP_BACK_REF) continue; entry = mctx->bkref_ents + first_idx; enabled_idx = first_idx; do { Idx subexp_len; Idx to_idx; Idx dst_node; bool ok; re_dfastate_t *cur_state; if (entry->node != node) continue; subexp_len = entry->subexp_to - entry->subexp_from; to_idx = str_idx + subexp_len; dst_node = (subexp_len ? dfa->nexts[node] : dfa->edests[node].elems[0]); if (to_idx > sctx->last_str_idx || sctx->sifted_states[to_idx] == NULL || !STATE_NODE_CONTAINS (sctx->sifted_states[to_idx], dst_node) || check_dst_limits (mctx, &sctx->limits, node, str_idx, dst_node, to_idx)) continue; if (local_sctx.sifted_states == NULL) { local_sctx = *sctx; err = re_node_set_init_copy (&local_sctx.limits, &sctx->limits); if (BE (err != REG_NOERROR, 0)) goto free_return; } local_sctx.last_node = node; local_sctx.last_str_idx = str_idx; ok = re_node_set_insert (&local_sctx.limits, enabled_idx); if (BE (! ok, 0)) { err = REG_ESPACE; goto free_return; } cur_state = local_sctx.sifted_states[str_idx]; err = sift_states_backward (mctx, &local_sctx); if (BE (err != REG_NOERROR, 0)) goto free_return; if (sctx->limited_states != NULL) { err = merge_state_array (dfa, sctx->limited_states, local_sctx.sifted_states, str_idx + 1); if (BE (err != REG_NOERROR, 0)) goto free_return; } local_sctx.sifted_states[str_idx] = cur_state; re_node_set_remove (&local_sctx.limits, enabled_idx); /* mctx->bkref_ents may have changed, reload the pointer. */ entry = mctx->bkref_ents + enabled_idx; } while (enabled_idx++, entry++->more); } err = REG_NOERROR; free_return: if (local_sctx.sifted_states != NULL) { re_node_set_free (&local_sctx.limits); } return err; } #ifdef RE_ENABLE_I18N static int sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx node_idx, Idx str_idx, Idx max_str_idx) { const re_dfa_t *const dfa = mctx->dfa; int naccepted; /* Check the node can accept "multi byte". */ naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx); if (naccepted > 0 && str_idx + naccepted <= max_str_idx && !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted], dfa->nexts[node_idx])) /* The node can't accept the "multi byte", or the destination was already thrown away, then the node could't accept the current input "multi byte". */ naccepted = 0; /* Otherwise, it is sure that the node could accept 'naccepted' bytes input. */ return naccepted; } #endif /* RE_ENABLE_I18N */ /* Functions for state transition. */ /* Return the next state to which the current state STATE will transit by accepting the current input byte, and update STATE_LOG if necessary. If STATE can accept a multibyte char/collating element/back reference update the destination of STATE_LOG. */ static re_dfastate_t * __attribute_warn_unused_result__ transit_state (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) { re_dfastate_t **trtable; unsigned char ch; #ifdef RE_ENABLE_I18N /* If the current state can accept multibyte. */ if (BE (state->accept_mb, 0)) { *err = transit_state_mb (mctx, state); if (BE (*err != REG_NOERROR, 0)) return NULL; } #endif /* RE_ENABLE_I18N */ /* Then decide the next state with the single byte. */ #if 0 if (0) /* don't use transition table */ return transit_state_sb (err, mctx, state); #endif /* Use transition table */ ch = re_string_fetch_byte (&mctx->input); for (;;) { trtable = state->trtable; if (BE (trtable != NULL, 1)) return trtable[ch]; trtable = state->word_trtable; if (BE (trtable != NULL, 1)) { unsigned int context; context = re_string_context_at (&mctx->input, re_string_cur_idx (&mctx->input) - 1, mctx->eflags); if (IS_WORD_CONTEXT (context)) return trtable[ch + SBC_MAX]; else return trtable[ch]; } if (!build_trtable (mctx->dfa, state)) { *err = REG_ESPACE; return NULL; } /* Retry, we now have a transition table. */ } } /* Update the state_log if we need */ static re_dfastate_t * merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *next_state) { const re_dfa_t *const dfa = mctx->dfa; Idx cur_idx = re_string_cur_idx (&mctx->input); if (cur_idx > mctx->state_log_top) { mctx->state_log[cur_idx] = next_state; mctx->state_log_top = cur_idx; } else if (mctx->state_log[cur_idx] == 0) { mctx->state_log[cur_idx] = next_state; } else { re_dfastate_t *pstate; unsigned int context; re_node_set next_nodes, *log_nodes, *table_nodes = NULL; /* If (state_log[cur_idx] != 0), it implies that cur_idx is the destination of a multibyte char/collating element/ back reference. Then the next state is the union set of these destinations and the results of the transition table. */ pstate = mctx->state_log[cur_idx]; log_nodes = pstate->entrance_nodes; if (next_state != NULL) { table_nodes = next_state->entrance_nodes; *err = re_node_set_init_union (&next_nodes, table_nodes, log_nodes); if (BE (*err != REG_NOERROR, 0)) return NULL; } else next_nodes = *log_nodes; /* Note: We already add the nodes of the initial state, then we don't need to add them here. */ context = re_string_context_at (&mctx->input, re_string_cur_idx (&mctx->input) - 1, mctx->eflags); next_state = mctx->state_log[cur_idx] = re_acquire_state_context (err, dfa, &next_nodes, context); /* We don't need to check errors here, since the return value of this function is next_state and ERR is already set. */ if (table_nodes != NULL) re_node_set_free (&next_nodes); } if (BE (dfa->nbackref, 0) && next_state != NULL) { /* Check OP_OPEN_SUBEXP in the current state in case that we use them later. We must check them here, since the back references in the next state might use them. */ *err = check_subexp_matching_top (mctx, &next_state->nodes, cur_idx); if (BE (*err != REG_NOERROR, 0)) return NULL; /* If the next state has back references. */ if (next_state->has_backref) { *err = transit_state_bkref (mctx, &next_state->nodes); if (BE (*err != REG_NOERROR, 0)) return NULL; next_state = mctx->state_log[cur_idx]; } } return next_state; } /* Skip bytes in the input that correspond to part of a multi-byte match, then look in the log for a state from which to restart matching. */ static re_dfastate_t * find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) { re_dfastate_t *cur_state; do { Idx max = mctx->state_log_top; Idx cur_str_idx = re_string_cur_idx (&mctx->input); do { if (++cur_str_idx > max) return NULL; re_string_skip_bytes (&mctx->input, 1); } while (mctx->state_log[cur_str_idx] == NULL); cur_state = merge_state_with_log (err, mctx, NULL); } while (*err == REG_NOERROR && cur_state == NULL); return cur_state; } /* Helper functions for transit_state. */ /* From the node set CUR_NODES, pick up the nodes whose types are OP_OPEN_SUBEXP and which have corresponding back references in the regular expression. And register them to use them later for evaluating the corresponding back references. */ static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, Idx str_idx) { const re_dfa_t *const dfa = mctx->dfa; Idx node_idx; reg_errcode_t err; /* TODO: This isn't efficient. Because there might be more than one nodes whose types are OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all nodes. E.g. RE: (a){2} */ for (node_idx = 0; node_idx < cur_nodes->nelem; ++node_idx) { Idx node = cur_nodes->elems[node_idx]; if (dfa->nodes[node].type == OP_OPEN_SUBEXP && dfa->nodes[node].opr.idx < BITSET_WORD_BITS && (dfa->used_bkref_map & ((bitset_word_t) 1 << dfa->nodes[node].opr.idx))) { err = match_ctx_add_subtop (mctx, node, str_idx); if (BE (err != REG_NOERROR, 0)) return err; } } return REG_NOERROR; } #if 0 /* Return the next state to which the current state STATE will transit by accepting the current input byte. */ static re_dfastate_t * transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) { const re_dfa_t *const dfa = mctx->dfa; re_node_set next_nodes; re_dfastate_t *next_state; Idx node_cnt, cur_str_idx = re_string_cur_idx (&mctx->input); unsigned int context; *err = re_node_set_alloc (&next_nodes, state->nodes.nelem + 1); if (BE (*err != REG_NOERROR, 0)) return NULL; for (node_cnt = 0; node_cnt < state->nodes.nelem; ++node_cnt) { Idx cur_node = state->nodes.elems[node_cnt]; if (check_node_accept (mctx, dfa->nodes + cur_node, cur_str_idx)) { *err = re_node_set_merge (&next_nodes, dfa->eclosures + dfa->nexts[cur_node]); if (BE (*err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return NULL; } } } context = re_string_context_at (&mctx->input, cur_str_idx, mctx->eflags); next_state = re_acquire_state_context (err, dfa, &next_nodes, context); /* We don't need to check errors here, since the return value of this function is next_state and ERR is already set. */ re_node_set_free (&next_nodes); re_string_skip_bytes (&mctx->input, 1); return next_state; } #endif #ifdef RE_ENABLE_I18N static reg_errcode_t transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx i; for (i = 0; i < pstate->nodes.nelem; ++i) { re_node_set dest_nodes, *new_nodes; Idx cur_node_idx = pstate->nodes.elems[i]; int naccepted; Idx dest_idx; unsigned int context; re_dfastate_t *dest_state; if (!dfa->nodes[cur_node_idx].accept_mb) continue; if (dfa->nodes[cur_node_idx].constraint) { context = re_string_context_at (&mctx->input, re_string_cur_idx (&mctx->input), mctx->eflags); if (NOT_SATISFY_NEXT_CONSTRAINT (dfa->nodes[cur_node_idx].constraint, context)) continue; } /* How many bytes the node can accept? */ naccepted = check_node_accept_bytes (dfa, cur_node_idx, &mctx->input, re_string_cur_idx (&mctx->input)); if (naccepted == 0) continue; /* The node can accepts 'naccepted' bytes. */ dest_idx = re_string_cur_idx (&mctx->input) + naccepted; mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted : mctx->max_mb_elem_len); err = clean_state_log_if_needed (mctx, dest_idx); if (BE (err != REG_NOERROR, 0)) return err; #ifdef DEBUG assert (dfa->nexts[cur_node_idx] != -1); #endif new_nodes = dfa->eclosures + dfa->nexts[cur_node_idx]; dest_state = mctx->state_log[dest_idx]; if (dest_state == NULL) dest_nodes = *new_nodes; else { err = re_node_set_init_union (&dest_nodes, dest_state->entrance_nodes, new_nodes); if (BE (err != REG_NOERROR, 0)) return err; } context = re_string_context_at (&mctx->input, dest_idx - 1, mctx->eflags); mctx->state_log[dest_idx] = re_acquire_state_context (&err, dfa, &dest_nodes, context); if (dest_state != NULL) re_node_set_free (&dest_nodes); if (BE (mctx->state_log[dest_idx] == NULL && err != REG_NOERROR, 0)) return err; } return REG_NOERROR; } #endif /* RE_ENABLE_I18N */ static reg_errcode_t transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx i; Idx cur_str_idx = re_string_cur_idx (&mctx->input); for (i = 0; i < nodes->nelem; ++i) { Idx dest_str_idx, prev_nelem, bkc_idx; Idx node_idx = nodes->elems[i]; unsigned int context; const re_token_t *node = dfa->nodes + node_idx; re_node_set *new_dest_nodes; /* Check whether 'node' is a backreference or not. */ if (node->type != OP_BACK_REF) continue; if (node->constraint) { context = re_string_context_at (&mctx->input, cur_str_idx, mctx->eflags); if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context)) continue; } /* 'node' is a backreference. Check the substring which the substring matched. */ bkc_idx = mctx->nbkref_ents; err = get_subexp (mctx, node_idx, cur_str_idx); if (BE (err != REG_NOERROR, 0)) goto free_return; /* And add the epsilon closures (which is 'new_dest_nodes') of the backreference to appropriate state_log. */ #ifdef DEBUG assert (dfa->nexts[node_idx] != -1); #endif for (; bkc_idx < mctx->nbkref_ents; ++bkc_idx) { Idx subexp_len; re_dfastate_t *dest_state; struct re_backref_cache_entry *bkref_ent; bkref_ent = mctx->bkref_ents + bkc_idx; if (bkref_ent->node != node_idx || bkref_ent->str_idx != cur_str_idx) continue; subexp_len = bkref_ent->subexp_to - bkref_ent->subexp_from; new_dest_nodes = (subexp_len == 0 ? dfa->eclosures + dfa->edests[node_idx].elems[0] : dfa->eclosures + dfa->nexts[node_idx]); dest_str_idx = (cur_str_idx + bkref_ent->subexp_to - bkref_ent->subexp_from); context = re_string_context_at (&mctx->input, dest_str_idx - 1, mctx->eflags); dest_state = mctx->state_log[dest_str_idx]; prev_nelem = ((mctx->state_log[cur_str_idx] == NULL) ? 0 : mctx->state_log[cur_str_idx]->nodes.nelem); /* Add 'new_dest_node' to state_log. */ if (dest_state == NULL) { mctx->state_log[dest_str_idx] = re_acquire_state_context (&err, dfa, new_dest_nodes, context); if (BE (mctx->state_log[dest_str_idx] == NULL && err != REG_NOERROR, 0)) goto free_return; } else { re_node_set dest_nodes; err = re_node_set_init_union (&dest_nodes, dest_state->entrance_nodes, new_dest_nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&dest_nodes); goto free_return; } mctx->state_log[dest_str_idx] = re_acquire_state_context (&err, dfa, &dest_nodes, context); re_node_set_free (&dest_nodes); if (BE (mctx->state_log[dest_str_idx] == NULL && err != REG_NOERROR, 0)) goto free_return; } /* We need to check recursively if the backreference can epsilon transit. */ if (subexp_len == 0 && mctx->state_log[cur_str_idx]->nodes.nelem > prev_nelem) { err = check_subexp_matching_top (mctx, new_dest_nodes, cur_str_idx); if (BE (err != REG_NOERROR, 0)) goto free_return; err = transit_state_bkref (mctx, new_dest_nodes); if (BE (err != REG_NOERROR, 0)) goto free_return; } } } err = REG_NOERROR; free_return: return err; } /* Enumerate all the candidates which the backreference BKREF_NODE can match at BKREF_STR_IDX, and register them by match_ctx_add_entry(). Note that we might collect inappropriate candidates here. However, the cost of checking them strictly here is too high, then we delay these checking for prune_impossible_nodes(). */ static reg_errcode_t __attribute_warn_unused_result__ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) { const re_dfa_t *const dfa = mctx->dfa; Idx subexp_num, sub_top_idx; const char *buf = (const char *) re_string_get_buffer (&mctx->input); /* Return if we have already checked BKREF_NODE at BKREF_STR_IDX. */ Idx cache_idx = search_cur_bkref_entry (mctx, bkref_str_idx); if (cache_idx != -1) { const struct re_backref_cache_entry *entry = mctx->bkref_ents + cache_idx; do if (entry->node == bkref_node) return REG_NOERROR; /* We already checked it. */ while (entry++->more); } subexp_num = dfa->nodes[bkref_node].opr.idx; /* For each sub expression */ for (sub_top_idx = 0; sub_top_idx < mctx->nsub_tops; ++sub_top_idx) { reg_errcode_t err; re_sub_match_top_t *sub_top = mctx->sub_tops[sub_top_idx]; re_sub_match_last_t *sub_last; Idx sub_last_idx, sl_str, bkref_str_off; if (dfa->nodes[sub_top->node].opr.idx != subexp_num) continue; /* It isn't related. */ sl_str = sub_top->str_idx; bkref_str_off = bkref_str_idx; /* At first, check the last node of sub expressions we already evaluated. */ for (sub_last_idx = 0; sub_last_idx < sub_top->nlasts; ++sub_last_idx) { regoff_t sl_str_diff; sub_last = sub_top->lasts[sub_last_idx]; sl_str_diff = sub_last->str_idx - sl_str; /* The matched string by the sub expression match with the substring at the back reference? */ if (sl_str_diff > 0) { if (BE (bkref_str_off + sl_str_diff > mctx->input.valid_len, 0)) { /* Not enough chars for a successful match. */ if (bkref_str_off + sl_str_diff > mctx->input.len) break; err = clean_state_log_if_needed (mctx, bkref_str_off + sl_str_diff); if (BE (err != REG_NOERROR, 0)) return err; buf = (const char *) re_string_get_buffer (&mctx->input); } if (memcmp (buf + bkref_str_off, buf + sl_str, sl_str_diff) != 0) /* We don't need to search this sub expression any more. */ break; } bkref_str_off += sl_str_diff; sl_str += sl_str_diff; err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node, bkref_str_idx); /* Reload buf, since the preceding call might have reallocated the buffer. */ buf = (const char *) re_string_get_buffer (&mctx->input); if (err == REG_NOMATCH) continue; if (BE (err != REG_NOERROR, 0)) return err; } if (sub_last_idx < sub_top->nlasts) continue; if (sub_last_idx > 0) ++sl_str; /* Then, search for the other last nodes of the sub expression. */ for (; sl_str <= bkref_str_idx; ++sl_str) { Idx cls_node; regoff_t sl_str_off; const re_node_set *nodes; sl_str_off = sl_str - sub_top->str_idx; /* The matched string by the sub expression match with the substring at the back reference? */ if (sl_str_off > 0) { if (BE (bkref_str_off >= mctx->input.valid_len, 0)) { /* If we are at the end of the input, we cannot match. */ if (bkref_str_off >= mctx->input.len) break; err = extend_buffers (mctx, bkref_str_off + 1); if (BE (err != REG_NOERROR, 0)) return err; buf = (const char *) re_string_get_buffer (&mctx->input); } if (buf [bkref_str_off++] != buf[sl_str - 1]) break; /* We don't need to search this sub expression any more. */ } if (mctx->state_log[sl_str] == NULL) continue; /* Does this state have a ')' of the sub expression? */ nodes = &mctx->state_log[sl_str]->nodes; cls_node = find_subexp_node (dfa, nodes, subexp_num, OP_CLOSE_SUBEXP); if (cls_node == -1) continue; /* No. */ if (sub_top->path == NULL) { sub_top->path = calloc (sizeof (state_array_t), sl_str - sub_top->str_idx + 1); if (sub_top->path == NULL) return REG_ESPACE; } /* Can the OP_OPEN_SUBEXP node arrive the OP_CLOSE_SUBEXP node in the current context? */ err = check_arrival (mctx, sub_top->path, sub_top->node, sub_top->str_idx, cls_node, sl_str, OP_CLOSE_SUBEXP); if (err == REG_NOMATCH) continue; if (BE (err != REG_NOERROR, 0)) return err; sub_last = match_ctx_add_sublast (sub_top, cls_node, sl_str); if (BE (sub_last == NULL, 0)) return REG_ESPACE; err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node, bkref_str_idx); if (err == REG_NOMATCH) continue; } } return REG_NOERROR; } /* Helper functions for get_subexp(). */ /* Check SUB_LAST can arrive to the back reference BKREF_NODE at BKREF_STR. If it can arrive, register the sub expression expressed with SUB_TOP and SUB_LAST. */ static reg_errcode_t get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, Idx bkref_node, Idx bkref_str) { reg_errcode_t err; Idx to_idx; /* Can the subexpression arrive the back reference? */ err = check_arrival (mctx, &sub_last->path, sub_last->node, sub_last->str_idx, bkref_node, bkref_str, OP_OPEN_SUBEXP); if (err != REG_NOERROR) return err; err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx, sub_last->str_idx); if (BE (err != REG_NOERROR, 0)) return err; to_idx = bkref_str + sub_last->str_idx - sub_top->str_idx; return clean_state_log_if_needed (mctx, to_idx); } /* Find the first node which is '(' or ')' and whose index is SUBEXP_IDX. Search '(' if FL_OPEN, or search ')' otherwise. TODO: This function isn't efficient... Because there might be more than one nodes whose types are OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all nodes. E.g. RE: (a){2} */ static Idx find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, Idx subexp_idx, int type) { Idx cls_idx; for (cls_idx = 0; cls_idx < nodes->nelem; ++cls_idx) { Idx cls_node = nodes->elems[cls_idx]; const re_token_t *node = dfa->nodes + cls_node; if (node->type == type && node->opr.idx == subexp_idx) return cls_node; } return -1; } /* Check whether the node TOP_NODE at TOP_STR can arrive to the node LAST_NODE at LAST_STR. We record the path onto PATH since it will be heavily reused. Return REG_NOERROR if it can arrive, or REG_NOMATCH otherwise. */ static reg_errcode_t __attribute_warn_unused_result__ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Idx top_str, Idx last_node, Idx last_str, int type) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err = REG_NOERROR; Idx subexp_num, backup_cur_idx, str_idx, null_cnt; re_dfastate_t *cur_state = NULL; re_node_set *cur_nodes, next_nodes; re_dfastate_t **backup_state_log; unsigned int context; subexp_num = dfa->nodes[top_node].opr.idx; /* Extend the buffer if we need. */ if (BE (path->alloc < last_str + mctx->max_mb_elem_len + 1, 0)) { re_dfastate_t **new_array; Idx old_alloc = path->alloc; Idx incr_alloc = last_str + mctx->max_mb_elem_len + 1; Idx new_alloc; if (BE (IDX_MAX - old_alloc < incr_alloc, 0)) return REG_ESPACE; new_alloc = old_alloc + incr_alloc; if (BE (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc, 0)) return REG_ESPACE; new_array = re_realloc (path->array, re_dfastate_t *, new_alloc); if (BE (new_array == NULL, 0)) return REG_ESPACE; path->array = new_array; path->alloc = new_alloc; memset (new_array + old_alloc, '\0', sizeof (re_dfastate_t *) * (path->alloc - old_alloc)); } str_idx = path->next_idx ? path->next_idx : top_str; /* Temporary modify MCTX. */ backup_state_log = mctx->state_log; backup_cur_idx = mctx->input.cur_idx; mctx->state_log = path->array; mctx->input.cur_idx = str_idx; /* Setup initial node set. */ context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags); if (str_idx == top_str) { err = re_node_set_init_1 (&next_nodes, top_node); if (BE (err != REG_NOERROR, 0)) return err; err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } else { cur_state = mctx->state_log[str_idx]; if (cur_state && cur_state->has_backref) { err = re_node_set_init_copy (&next_nodes, &cur_state->nodes); if (BE (err != REG_NOERROR, 0)) return err; } else re_node_set_init_empty (&next_nodes); } if (str_idx == top_str || (cur_state && cur_state->has_backref)) { if (next_nodes.nelem) { err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); if (BE (cur_state == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } mctx->state_log[str_idx] = cur_state; } for (null_cnt = 0; str_idx < last_str && null_cnt <= mctx->max_mb_elem_len;) { re_node_set_empty (&next_nodes); if (mctx->state_log[str_idx + 1]) { err = re_node_set_merge (&next_nodes, &mctx->state_log[str_idx + 1]->nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } if (cur_state) { err = check_arrival_add_next_nodes (mctx, str_idx, &cur_state->non_eps_nodes, &next_nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } ++str_idx; if (next_nodes.nelem) { err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags); cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); if (BE (cur_state == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } mctx->state_log[str_idx] = cur_state; null_cnt = cur_state == NULL ? null_cnt + 1 : 0; } re_node_set_free (&next_nodes); cur_nodes = (mctx->state_log[last_str] == NULL ? NULL : &mctx->state_log[last_str]->nodes); path->next_idx = str_idx; /* Fix MCTX. */ mctx->state_log = backup_state_log; mctx->input.cur_idx = backup_cur_idx; /* Then check the current node set has the node LAST_NODE. */ if (cur_nodes != NULL && re_node_set_contains (cur_nodes, last_node)) return REG_NOERROR; return REG_NOMATCH; } /* Helper functions for check_arrival. */ /* Calculate the destination nodes of CUR_NODES at STR_IDX, and append them to NEXT_NODES. TODO: This function is similar to the functions transit_state*(), however this function has many additional works. Can't we unify them? */ static reg_errcode_t __attribute_warn_unused_result__ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, re_node_set *cur_nodes, re_node_set *next_nodes) { const re_dfa_t *const dfa = mctx->dfa; bool ok; Idx cur_idx; #ifdef RE_ENABLE_I18N reg_errcode_t err = REG_NOERROR; #endif re_node_set union_set; re_node_set_init_empty (&union_set); for (cur_idx = 0; cur_idx < cur_nodes->nelem; ++cur_idx) { int naccepted = 0; Idx cur_node = cur_nodes->elems[cur_idx]; #ifdef DEBUG re_token_type_t type = dfa->nodes[cur_node].type; assert (!IS_EPSILON_NODE (type)); #endif #ifdef RE_ENABLE_I18N /* If the node may accept "multi byte". */ if (dfa->nodes[cur_node].accept_mb) { naccepted = check_node_accept_bytes (dfa, cur_node, &mctx->input, str_idx); if (naccepted > 1) { re_dfastate_t *dest_state; Idx next_node = dfa->nexts[cur_node]; Idx next_idx = str_idx + naccepted; dest_state = mctx->state_log[next_idx]; re_node_set_empty (&union_set); if (dest_state) { err = re_node_set_merge (&union_set, &dest_state->nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&union_set); return err; } } ok = re_node_set_insert (&union_set, next_node); if (BE (! ok, 0)) { re_node_set_free (&union_set); return REG_ESPACE; } mctx->state_log[next_idx] = re_acquire_state (&err, dfa, &union_set); if (BE (mctx->state_log[next_idx] == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&union_set); return err; } } } #endif /* RE_ENABLE_I18N */ if (naccepted || check_node_accept (mctx, dfa->nodes + cur_node, str_idx)) { ok = re_node_set_insert (next_nodes, dfa->nexts[cur_node]); if (BE (! ok, 0)) { re_node_set_free (&union_set); return REG_ESPACE; } } } re_node_set_free (&union_set); return REG_NOERROR; } /* For all the nodes in CUR_NODES, add the epsilon closures of them to CUR_NODES, however exclude the nodes which are: - inside the sub expression whose number is EX_SUBEXP, if FL_OPEN. - out of the sub expression whose number is EX_SUBEXP, if !FL_OPEN. */ static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, Idx ex_subexp, int type) { reg_errcode_t err; Idx idx, outside_node; re_node_set new_nodes; #ifdef DEBUG assert (cur_nodes->nelem); #endif err = re_node_set_alloc (&new_nodes, cur_nodes->nelem); if (BE (err != REG_NOERROR, 0)) return err; /* Create a new node set NEW_NODES with the nodes which are epsilon closures of the node in CUR_NODES. */ for (idx = 0; idx < cur_nodes->nelem; ++idx) { Idx cur_node = cur_nodes->elems[idx]; const re_node_set *eclosure = dfa->eclosures + cur_node; outside_node = find_subexp_node (dfa, eclosure, ex_subexp, type); if (outside_node == -1) { /* There are no problematic nodes, just merge them. */ err = re_node_set_merge (&new_nodes, eclosure); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&new_nodes); return err; } } else { /* There are problematic nodes, re-calculate incrementally. */ err = check_arrival_expand_ecl_sub (dfa, &new_nodes, cur_node, ex_subexp, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&new_nodes); return err; } } } re_node_set_free (cur_nodes); *cur_nodes = new_nodes; return REG_NOERROR; } /* Helper function for check_arrival_expand_ecl. Check incrementally the epsilon closure of TARGET, and if it isn't problematic append it to DST_NODES. */ static reg_errcode_t __attribute_warn_unused_result__ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, Idx target, Idx ex_subexp, int type) { Idx cur_node; for (cur_node = target; !re_node_set_contains (dst_nodes, cur_node);) { bool ok; if (dfa->nodes[cur_node].type == type && dfa->nodes[cur_node].opr.idx == ex_subexp) { if (type == OP_CLOSE_SUBEXP) { ok = re_node_set_insert (dst_nodes, cur_node); if (BE (! ok, 0)) return REG_ESPACE; } break; } ok = re_node_set_insert (dst_nodes, cur_node); if (BE (! ok, 0)) return REG_ESPACE; if (dfa->edests[cur_node].nelem == 0) break; if (dfa->edests[cur_node].nelem == 2) { reg_errcode_t err; err = check_arrival_expand_ecl_sub (dfa, dst_nodes, dfa->edests[cur_node].elems[1], ex_subexp, type); if (BE (err != REG_NOERROR, 0)) return err; } cur_node = dfa->edests[cur_node].elems[0]; } return REG_NOERROR; } /* For all the back references in the current state, calculate the destination of the back references by the appropriate entry in MCTX->BKREF_ENTS. */ static reg_errcode_t __attribute_warn_unused_result__ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Idx cur_str, Idx subexp_num, int type) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx cache_idx_start = search_cur_bkref_entry (mctx, cur_str); struct re_backref_cache_entry *ent; if (cache_idx_start == -1) return REG_NOERROR; restart: ent = mctx->bkref_ents + cache_idx_start; do { Idx to_idx, next_node; /* Is this entry ENT is appropriate? */ if (!re_node_set_contains (cur_nodes, ent->node)) continue; /* No. */ to_idx = cur_str + ent->subexp_to - ent->subexp_from; /* Calculate the destination of the back reference, and append it to MCTX->STATE_LOG. */ if (to_idx == cur_str) { /* The backreference did epsilon transit, we must re-check all the node in the current state. */ re_node_set new_dests; reg_errcode_t err2, err3; next_node = dfa->edests[ent->node].elems[0]; if (re_node_set_contains (cur_nodes, next_node)) continue; err = re_node_set_init_1 (&new_dests, next_node); err2 = check_arrival_expand_ecl (dfa, &new_dests, subexp_num, type); err3 = re_node_set_merge (cur_nodes, &new_dests); re_node_set_free (&new_dests); if (BE (err != REG_NOERROR || err2 != REG_NOERROR || err3 != REG_NOERROR, 0)) { err = (err != REG_NOERROR ? err : (err2 != REG_NOERROR ? err2 : err3)); return err; } /* TODO: It is still inefficient... */ goto restart; } else { re_node_set union_set; next_node = dfa->nexts[ent->node]; if (mctx->state_log[to_idx]) { bool ok; if (re_node_set_contains (&mctx->state_log[to_idx]->nodes, next_node)) continue; err = re_node_set_init_copy (&union_set, &mctx->state_log[to_idx]->nodes); ok = re_node_set_insert (&union_set, next_node); if (BE (err != REG_NOERROR || ! ok, 0)) { re_node_set_free (&union_set); err = err != REG_NOERROR ? err : REG_ESPACE; return err; } } else { err = re_node_set_init_1 (&union_set, next_node); if (BE (err != REG_NOERROR, 0)) return err; } mctx->state_log[to_idx] = re_acquire_state (&err, dfa, &union_set); re_node_set_free (&union_set); if (BE (mctx->state_log[to_idx] == NULL && err != REG_NOERROR, 0)) return err; } } while (ent++->more); return REG_NOERROR; } /* Build transition table for the state. Return true if successful. */ static bool build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) { reg_errcode_t err; Idx i, j; int ch; bool need_word_trtable = false; bitset_word_t elem, mask; bool dests_node_malloced = false; bool dest_states_malloced = false; Idx ndests; /* Number of the destination states from 'state'. */ re_dfastate_t **trtable; re_dfastate_t **dest_states = NULL, **dest_states_word, **dest_states_nl; re_node_set follows, *dests_node; bitset_t *dests_ch; bitset_t acceptable; struct dests_alloc { re_node_set dests_node[SBC_MAX]; bitset_t dests_ch[SBC_MAX]; } *dests_alloc; /* We build DFA states which corresponds to the destination nodes from 'state'. 'dests_node[i]' represents the nodes which i-th destination state contains, and 'dests_ch[i]' represents the characters which i-th destination state accepts. */ if (__libc_use_alloca (sizeof (struct dests_alloc))) dests_alloc = (struct dests_alloc *) alloca (sizeof (struct dests_alloc)); else { dests_alloc = re_malloc (struct dests_alloc, 1); if (BE (dests_alloc == NULL, 0)) return false; dests_node_malloced = true; } dests_node = dests_alloc->dests_node; dests_ch = dests_alloc->dests_ch; /* Initialize transition table. */ state->word_trtable = state->trtable = NULL; /* At first, group all nodes belonging to 'state' into several destinations. */ ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch); if (BE (ndests <= 0, 0)) { if (dests_node_malloced) re_free (dests_alloc); /* Return false in case of an error, true otherwise. */ if (ndests == 0) { state->trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); if (BE (state->trtable == NULL, 0)) return false; return true; } return false; } err = re_node_set_alloc (&follows, ndests + 1); if (BE (err != REG_NOERROR, 0)) goto out_free; /* Avoid arithmetic overflow in size calculation. */ if (BE ((((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX) / (3 * sizeof (re_dfastate_t *))) < ndests), 0)) goto out_free; if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX + ndests * 3 * sizeof (re_dfastate_t *))) dest_states = (re_dfastate_t **) alloca (ndests * 3 * sizeof (re_dfastate_t *)); else { dest_states = re_malloc (re_dfastate_t *, ndests * 3); if (BE (dest_states == NULL, 0)) { out_free: if (dest_states_malloced) re_free (dest_states); re_node_set_free (&follows); for (i = 0; i < ndests; ++i) re_node_set_free (dests_node + i); if (dests_node_malloced) re_free (dests_alloc); return false; } dest_states_malloced = true; } dest_states_word = dest_states + ndests; dest_states_nl = dest_states_word + ndests; bitset_empty (acceptable); /* Then build the states for all destinations. */ for (i = 0; i < ndests; ++i) { Idx next_node; re_node_set_empty (&follows); /* Merge the follows of this destination states. */ for (j = 0; j < dests_node[i].nelem; ++j) { next_node = dfa->nexts[dests_node[i].elems[j]]; if (next_node != -1) { err = re_node_set_merge (&follows, dfa->eclosures + next_node); if (BE (err != REG_NOERROR, 0)) goto out_free; } } dest_states[i] = re_acquire_state_context (&err, dfa, &follows, 0); if (BE (dest_states[i] == NULL && err != REG_NOERROR, 0)) goto out_free; /* If the new state has context constraint, build appropriate states for these contexts. */ if (dest_states[i]->has_constraint) { dest_states_word[i] = re_acquire_state_context (&err, dfa, &follows, CONTEXT_WORD); if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0)) goto out_free; if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1) need_word_trtable = true; dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows, CONTEXT_NEWLINE); if (BE (dest_states_nl[i] == NULL && err != REG_NOERROR, 0)) goto out_free; } else { dest_states_word[i] = dest_states[i]; dest_states_nl[i] = dest_states[i]; } bitset_merge (acceptable, dests_ch[i]); } if (!BE (need_word_trtable, 0)) { /* We don't care about whether the following character is a word character, or we are in a single-byte character set so we can discern by looking at the character code: allocate a 256-entry transition table. */ trtable = state->trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); if (BE (trtable == NULL, 0)) goto out_free; /* For all characters ch...: */ for (i = 0; i < BITSET_WORDS; ++i) for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) if (BE (elem & 1, 0)) { /* There must be exactly one destination which accepts character ch. See group_nodes_into_DFAstates. */ for (j = 0; (dests_ch[j][i] & mask) == 0; ++j) ; /* j-th destination accepts the word character ch. */ if (dfa->word_char[i] & mask) trtable[ch] = dest_states_word[j]; else trtable[ch] = dest_states[j]; } } else { /* We care about whether the following character is a word character, and we are in a multi-byte character set: discern by looking at the character code: build two 256-entry transition tables, one starting at trtable[0] and one starting at trtable[SBC_MAX]. */ trtable = state->word_trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX); if (BE (trtable == NULL, 0)) goto out_free; /* For all characters ch...: */ for (i = 0; i < BITSET_WORDS; ++i) for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) if (BE (elem & 1, 0)) { /* There must be exactly one destination which accepts character ch. See group_nodes_into_DFAstates. */ for (j = 0; (dests_ch[j][i] & mask) == 0; ++j) ; /* j-th destination accepts the word character ch. */ trtable[ch] = dest_states[j]; trtable[ch + SBC_MAX] = dest_states_word[j]; } } /* new line */ if (bitset_contain (acceptable, NEWLINE_CHAR)) { /* The current state accepts newline character. */ for (j = 0; j < ndests; ++j) if (bitset_contain (dests_ch[j], NEWLINE_CHAR)) { /* k-th destination accepts newline character. */ trtable[NEWLINE_CHAR] = dest_states_nl[j]; if (need_word_trtable) trtable[NEWLINE_CHAR + SBC_MAX] = dest_states_nl[j]; /* There must be only one destination which accepts newline. See group_nodes_into_DFAstates. */ break; } } if (dest_states_malloced) re_free (dest_states); re_node_set_free (&follows); for (i = 0; i < ndests; ++i) re_node_set_free (dests_node + i); if (dests_node_malloced) re_free (dests_alloc); return true; } /* Group all nodes belonging to STATE into several destinations. Then for all destinations, set the nodes belonging to the destination to DESTS_NODE[i] and set the characters accepted by the destination to DEST_CH[i]. This function return the number of destinations. */ static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *dests_node, bitset_t *dests_ch) { reg_errcode_t err; bool ok; Idx i, j, k; Idx ndests; /* Number of the destinations from 'state'. */ bitset_t accepts; /* Characters a node can accept. */ const re_node_set *cur_nodes = &state->nodes; bitset_empty (accepts); ndests = 0; /* For all the nodes belonging to 'state', */ for (i = 0; i < cur_nodes->nelem; ++i) { re_token_t *node = &dfa->nodes[cur_nodes->elems[i]]; re_token_type_t type = node->type; unsigned int constraint = node->constraint; /* Enumerate all single byte character this node can accept. */ if (type == CHARACTER) bitset_set (accepts, node->opr.c); else if (type == SIMPLE_BRACKET) { bitset_merge (accepts, node->opr.sbcset); } else if (type == OP_PERIOD) { #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) bitset_merge (accepts, dfa->sb_char); else #endif bitset_set_all (accepts); if (!(dfa->syntax & RE_DOT_NEWLINE)) bitset_clear (accepts, '\n'); if (dfa->syntax & RE_DOT_NOT_NULL) bitset_clear (accepts, '\0'); } #ifdef RE_ENABLE_I18N else if (type == OP_UTF8_PERIOD) { if (ASCII_CHARS % BITSET_WORD_BITS == 0) memset (accepts, -1, ASCII_CHARS / CHAR_BIT); else bitset_merge (accepts, utf8_sb_map); if (!(dfa->syntax & RE_DOT_NEWLINE)) bitset_clear (accepts, '\n'); if (dfa->syntax & RE_DOT_NOT_NULL) bitset_clear (accepts, '\0'); } #endif else continue; /* Check the 'accepts' and sift the characters which are not match it the context. */ if (constraint) { if (constraint & NEXT_NEWLINE_CONSTRAINT) { bool accepts_newline = bitset_contain (accepts, NEWLINE_CHAR); bitset_empty (accepts); if (accepts_newline) bitset_set (accepts, NEWLINE_CHAR); else continue; } if (constraint & NEXT_ENDBUF_CONSTRAINT) { bitset_empty (accepts); continue; } if (constraint & NEXT_WORD_CONSTRAINT) { bitset_word_t any_set = 0; if (type == CHARACTER && !node->word_char) { bitset_empty (accepts); continue; } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j])); else #endif for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= dfa->word_char[j]); if (!any_set) continue; } if (constraint & NEXT_NOTWORD_CONSTRAINT) { bitset_word_t any_set = 0; if (type == CHARACTER && node->word_char) { bitset_empty (accepts); continue; } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j])); else #endif for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= ~dfa->word_char[j]); if (!any_set) continue; } } /* Then divide 'accepts' into DFA states, or create a new state. Above, we make sure that accepts is not empty. */ for (j = 0; j < ndests; ++j) { bitset_t intersec; /* Intersection sets, see below. */ bitset_t remains; /* Flags, see below. */ bitset_word_t has_intersec, not_subset, not_consumed; /* Optimization, skip if this state doesn't accept the character. */ if (type == CHARACTER && !bitset_contain (dests_ch[j], node->opr.c)) continue; /* Enumerate the intersection set of this state and 'accepts'. */ has_intersec = 0; for (k = 0; k < BITSET_WORDS; ++k) has_intersec |= intersec[k] = accepts[k] & dests_ch[j][k]; /* And skip if the intersection set is empty. */ if (!has_intersec) continue; /* Then check if this state is a subset of 'accepts'. */ not_subset = not_consumed = 0; for (k = 0; k < BITSET_WORDS; ++k) { not_subset |= remains[k] = ~accepts[k] & dests_ch[j][k]; not_consumed |= accepts[k] = accepts[k] & ~dests_ch[j][k]; } /* If this state isn't a subset of 'accepts', create a new group state, which has the 'remains'. */ if (not_subset) { bitset_copy (dests_ch[ndests], remains); bitset_copy (dests_ch[j], intersec); err = re_node_set_init_copy (dests_node + ndests, &dests_node[j]); if (BE (err != REG_NOERROR, 0)) goto error_return; ++ndests; } /* Put the position in the current group. */ ok = re_node_set_insert (&dests_node[j], cur_nodes->elems[i]); if (BE (! ok, 0)) goto error_return; /* If all characters are consumed, go to next node. */ if (!not_consumed) break; } /* Some characters remain, create a new group. */ if (j == ndests) { bitset_copy (dests_ch[ndests], accepts); err = re_node_set_init_1 (dests_node + ndests, cur_nodes->elems[i]); if (BE (err != REG_NOERROR, 0)) goto error_return; ++ndests; bitset_empty (accepts); } } return ndests; error_return: for (j = 0; j < ndests; ++j) re_node_set_free (dests_node + j); return -1; } #ifdef RE_ENABLE_I18N /* Check how many bytes the node 'dfa->nodes[node_idx]' accepts. Return the number of the bytes the node accepts. STR_IDX is the current index of the input string. This function handles the nodes which can accept one character, or one collating element like '.', '[a-z]', opposite to the other nodes can only accept one byte. */ # ifdef _LIBC # include # endif static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, const re_string_t *input, Idx str_idx) { const re_token_t *node = dfa->nodes + node_idx; int char_len, elem_len; Idx i; if (BE (node->type == OP_UTF8_PERIOD, 0)) { unsigned char c = re_string_byte_at (input, str_idx), d; if (BE (c < 0xc2, 1)) return 0; if (str_idx + 2 > input->len) return 0; d = re_string_byte_at (input, str_idx + 1); if (c < 0xe0) return (d < 0x80 || d > 0xbf) ? 0 : 2; else if (c < 0xf0) { char_len = 3; if (c == 0xe0 && d < 0xa0) return 0; } else if (c < 0xf8) { char_len = 4; if (c == 0xf0 && d < 0x90) return 0; } else if (c < 0xfc) { char_len = 5; if (c == 0xf8 && d < 0x88) return 0; } else if (c < 0xfe) { char_len = 6; if (c == 0xfc && d < 0x84) return 0; } else return 0; if (str_idx + char_len > input->len) return 0; for (i = 1; i < char_len; ++i) { d = re_string_byte_at (input, str_idx + i); if (d < 0x80 || d > 0xbf) return 0; } return char_len; } char_len = re_string_char_size_at (input, str_idx); if (node->type == OP_PERIOD) { if (char_len <= 1) return 0; /* FIXME: I don't think this if is needed, as both '\n' and '\0' are char_len == 1. */ /* '.' accepts any one character except the following two cases. */ if ((!(dfa->syntax & RE_DOT_NEWLINE) && re_string_byte_at (input, str_idx) == '\n') || ((dfa->syntax & RE_DOT_NOT_NULL) && re_string_byte_at (input, str_idx) == '\0')) return 0; return char_len; } elem_len = re_string_elem_size_at (input, str_idx); if ((elem_len <= 1 && char_len <= 1) || char_len == 0) return 0; if (node->type == COMPLEX_BRACKET) { const re_charset_t *cset = node->opr.mbcset; # ifdef _LIBC const unsigned char *pin = ((const unsigned char *) re_string_get_buffer (input) + str_idx); Idx j; uint32_t nrules; # endif /* _LIBC */ int match_len = 0; wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars) ? re_string_wchar_at (input, str_idx) : 0); /* match with multibyte character? */ for (i = 0; i < cset->nmbchars; ++i) if (wc == cset->mbchars[i]) { match_len = char_len; goto check_node_accept_bytes_match; } /* match with character_class? */ for (i = 0; i < cset->nchar_classes; ++i) { wctype_t wt = cset->char_classes[i]; if (__iswctype (wc, wt)) { match_len = char_len; goto check_node_accept_bytes_match; } } # ifdef _LIBC nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { unsigned int in_collseq = 0; const int32_t *table, *indirect; const unsigned char *weights, *extra; const char *collseqwc; /* match with collating_symbol? */ if (cset->ncoll_syms) extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); for (i = 0; i < cset->ncoll_syms; ++i) { const unsigned char *coll_sym = extra + cset->coll_syms[i]; /* Compare the length of input collating element and the length of current collating element. */ if (*coll_sym != elem_len) continue; /* Compare each bytes. */ for (j = 0; j < *coll_sym; j++) if (pin[j] != coll_sym[1 + j]) break; if (j == *coll_sym) { /* Match if every bytes is equal. */ match_len = j; goto check_node_accept_bytes_match; } } if (cset->nranges) { if (elem_len <= char_len) { collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); in_collseq = __collseq_table_lookup (collseqwc, wc); } else in_collseq = find_collation_sequence_value (pin, elem_len); } /* match with range expression? */ /* FIXME: Implement rational ranges here, too. */ for (i = 0; i < cset->nranges; ++i) if (cset->range_starts[i] <= in_collseq && in_collseq <= cset->range_ends[i]) { match_len = elem_len; goto check_node_accept_bytes_match; } /* match with equivalence_class? */ if (cset->nequiv_classes) { const unsigned char *cp = pin; table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); int32_t idx = findidx (table, indirect, extra, &cp, elem_len); int32_t rule = idx >> 24; idx &= 0xffffff; if (idx > 0) { size_t weight_len = weights[idx]; for (i = 0; i < cset->nequiv_classes; ++i) { int32_t equiv_class_idx = cset->equiv_classes[i]; int32_t equiv_class_rule = equiv_class_idx >> 24; equiv_class_idx &= 0xffffff; if (weights[equiv_class_idx] == weight_len && equiv_class_rule == rule && memcmp (weights + idx + 1, weights + equiv_class_idx + 1, weight_len) == 0) { match_len = elem_len; goto check_node_accept_bytes_match; } } } } } else # endif /* _LIBC */ { /* match with range expression? */ for (i = 0; i < cset->nranges; ++i) { if (cset->range_starts[i] <= wc && wc <= cset->range_ends[i]) { match_len = char_len; goto check_node_accept_bytes_match; } } } check_node_accept_bytes_match: if (!cset->non_match) return match_len; else { if (match_len > 0) return 0; else return (elem_len > char_len) ? elem_len : char_len; } } return 0; } # ifdef _LIBC static unsigned int find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len) { uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules == 0) { if (mbs_len == 1) { /* No valid character. Match it as a single byte character. */ const unsigned char *collseq = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB); return collseq[mbs[0]]; } return UINT_MAX; } else { int32_t idx; const unsigned char *extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); int32_t extrasize = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB + 1) - extra; for (idx = 0; idx < extrasize;) { int mbs_cnt; bool found = false; int32_t elem_mbs_len; /* Skip the name of collating element name. */ idx = idx + extra[idx] + 1; elem_mbs_len = extra[idx++]; if (mbs_len == elem_mbs_len) { for (mbs_cnt = 0; mbs_cnt < elem_mbs_len; ++mbs_cnt) if (extra[idx + mbs_cnt] != mbs[mbs_cnt]) break; if (mbs_cnt == elem_mbs_len) /* Found the entry. */ found = true; } /* Skip the byte sequence of the collating element. */ idx += elem_mbs_len; /* Adjust for the alignment. */ idx = (idx + 3) & ~3; /* Skip the collation sequence value. */ idx += sizeof (uint32_t); /* Skip the wide char sequence of the collating element. */ idx = idx + sizeof (uint32_t) * (*(int32_t *) (extra + idx) + 1); /* If we found the entry, return the sequence value. */ if (found) return *(uint32_t *) (extra + idx); /* Skip the collation sequence value. */ idx += sizeof (uint32_t); } return UINT_MAX; } } # endif /* _LIBC */ #endif /* RE_ENABLE_I18N */ /* Check whether the node accepts the byte which is IDX-th byte of the INPUT. */ static bool check_node_accept (const re_match_context_t *mctx, const re_token_t *node, Idx idx) { unsigned char ch; ch = re_string_byte_at (&mctx->input, idx); switch (node->type) { case CHARACTER: if (node->opr.c != ch) return false; break; case SIMPLE_BRACKET: if (!bitset_contain (node->opr.sbcset, ch)) return false; break; #ifdef RE_ENABLE_I18N case OP_UTF8_PERIOD: if (ch >= ASCII_CHARS) return false; FALLTHROUGH; #endif case OP_PERIOD: if ((ch == '\n' && !(mctx->dfa->syntax & RE_DOT_NEWLINE)) || (ch == '\0' && (mctx->dfa->syntax & RE_DOT_NOT_NULL))) return false; break; default: return false; } if (node->constraint) { /* The node has constraints. Check whether the current context satisfies the constraints. */ unsigned int context = re_string_context_at (&mctx->input, idx, mctx->eflags); if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context)) return false; } return true; } /* Extend the buffers, if the buffers have run out. */ static reg_errcode_t __attribute_warn_unused_result__ extend_buffers (re_match_context_t *mctx, int min_len) { reg_errcode_t ret; re_string_t *pstr = &mctx->input; /* Avoid overflow. */ if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2 <= pstr->bufs_len, 0)) return REG_ESPACE; /* Double the lengths of the buffers, but allocate at least MIN_LEN. */ ret = re_string_realloc_buffers (pstr, MAX (min_len, MIN (pstr->len, pstr->bufs_len * 2))); if (BE (ret != REG_NOERROR, 0)) return ret; if (mctx->state_log != NULL) { /* And double the length of state_log. */ /* XXX We have no indication of the size of this buffer. If this allocation fail we have no indication that the state_log array does not have the right size. */ re_dfastate_t **new_array = re_realloc (mctx->state_log, re_dfastate_t *, pstr->bufs_len + 1); if (BE (new_array == NULL, 0)) return REG_ESPACE; mctx->state_log = new_array; } /* Then reconstruct the buffers. */ if (pstr->icase) { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; } else #endif /* RE_ENABLE_I18N */ build_upper_buffer (pstr); } else { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) build_wcs_buffer (pstr); else #endif /* RE_ENABLE_I18N */ { if (pstr->trans != NULL) re_string_translate_buffer (pstr); } } return REG_NOERROR; } /* Functions for matching context. */ /* Initialize MCTX. */ static reg_errcode_t __attribute_warn_unused_result__ match_ctx_init (re_match_context_t *mctx, int eflags, Idx n) { mctx->eflags = eflags; mctx->match_last = -1; if (n > 0) { /* Avoid overflow. */ size_t max_object_size = MAX (sizeof (struct re_backref_cache_entry), sizeof (re_sub_match_top_t *)); if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n, 0)) return REG_ESPACE; mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n); mctx->sub_tops = re_malloc (re_sub_match_top_t *, n); if (BE (mctx->bkref_ents == NULL || mctx->sub_tops == NULL, 0)) return REG_ESPACE; } /* Already zero-ed by the caller. else mctx->bkref_ents = NULL; mctx->nbkref_ents = 0; mctx->nsub_tops = 0; */ mctx->abkref_ents = n; mctx->max_mb_elem_len = 1; mctx->asub_tops = n; return REG_NOERROR; } /* Clean the entries which depend on the current input in MCTX. This function must be invoked when the matcher changes the start index of the input, or changes the input string. */ static void match_ctx_clean (re_match_context_t *mctx) { Idx st_idx; for (st_idx = 0; st_idx < mctx->nsub_tops; ++st_idx) { Idx sl_idx; re_sub_match_top_t *top = mctx->sub_tops[st_idx]; for (sl_idx = 0; sl_idx < top->nlasts; ++sl_idx) { re_sub_match_last_t *last = top->lasts[sl_idx]; re_free (last->path.array); re_free (last); } re_free (top->lasts); if (top->path) { re_free (top->path->array); re_free (top->path); } re_free (top); } mctx->nsub_tops = 0; mctx->nbkref_ents = 0; } /* Free all the memory associated with MCTX. */ static void match_ctx_free (re_match_context_t *mctx) { /* First, free all the memory associated with MCTX->SUB_TOPS. */ match_ctx_clean (mctx); re_free (mctx->sub_tops); re_free (mctx->bkref_ents); } /* Add a new backreference entry to MCTX. Note that we assume that caller never call this function with duplicate entry, and call with STR_IDX which isn't smaller than any existing entry. */ static reg_errcode_t __attribute_warn_unused_result__ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from, Idx to) { if (mctx->nbkref_ents >= mctx->abkref_ents) { struct re_backref_cache_entry* new_entry; new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry, mctx->abkref_ents * 2); if (BE (new_entry == NULL, 0)) { re_free (mctx->bkref_ents); return REG_ESPACE; } mctx->bkref_ents = new_entry; memset (mctx->bkref_ents + mctx->nbkref_ents, '\0', sizeof (struct re_backref_cache_entry) * mctx->abkref_ents); mctx->abkref_ents *= 2; } if (mctx->nbkref_ents > 0 && mctx->bkref_ents[mctx->nbkref_ents - 1].str_idx == str_idx) mctx->bkref_ents[mctx->nbkref_ents - 1].more = 1; mctx->bkref_ents[mctx->nbkref_ents].node = node; mctx->bkref_ents[mctx->nbkref_ents].str_idx = str_idx; mctx->bkref_ents[mctx->nbkref_ents].subexp_from = from; mctx->bkref_ents[mctx->nbkref_ents].subexp_to = to; /* This is a cache that saves negative results of check_dst_limits_calc_pos. If bit N is clear, means that this entry won't epsilon-transition to an OP_OPEN_SUBEXP or OP_CLOSE_SUBEXP for the N+1-th subexpression. If it is set, check_dst_limits_calc_pos_1 will recurse and try to find one such node. A backreference does not epsilon-transition unless it is empty, so set to all zeros if FROM != TO. */ mctx->bkref_ents[mctx->nbkref_ents].eps_reachable_subexps_map = (from == to ? -1 : 0); mctx->bkref_ents[mctx->nbkref_ents++].more = 0; if (mctx->max_mb_elem_len < to - from) mctx->max_mb_elem_len = to - from; return REG_NOERROR; } /* Return the first entry with the same str_idx, or -1 if none is found. Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX. */ static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) { Idx left, right, mid, last; last = right = mctx->nbkref_ents; for (left = 0; left < right;) { mid = (left + right) / 2; if (mctx->bkref_ents[mid].str_idx < str_idx) left = mid + 1; else right = mid; } if (left < last && mctx->bkref_ents[left].str_idx == str_idx) return left; else return -1; } /* Register the node NODE, whose type is OP_OPEN_SUBEXP, and which matches at STR_IDX. */ static reg_errcode_t __attribute_warn_unused_result__ match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx) { #ifdef DEBUG assert (mctx->sub_tops != NULL); assert (mctx->asub_tops > 0); #endif if (BE (mctx->nsub_tops == mctx->asub_tops, 0)) { Idx new_asub_tops = mctx->asub_tops * 2; re_sub_match_top_t **new_array = re_realloc (mctx->sub_tops, re_sub_match_top_t *, new_asub_tops); if (BE (new_array == NULL, 0)) return REG_ESPACE; mctx->sub_tops = new_array; mctx->asub_tops = new_asub_tops; } mctx->sub_tops[mctx->nsub_tops] = calloc (1, sizeof (re_sub_match_top_t)); if (BE (mctx->sub_tops[mctx->nsub_tops] == NULL, 0)) return REG_ESPACE; mctx->sub_tops[mctx->nsub_tops]->node = node; mctx->sub_tops[mctx->nsub_tops++]->str_idx = str_idx; return REG_NOERROR; } /* Register the node NODE, whose type is OP_CLOSE_SUBEXP, and which matches at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP. */ static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx) { re_sub_match_last_t *new_entry; if (BE (subtop->nlasts == subtop->alasts, 0)) { Idx new_alasts = 2 * subtop->alasts + 1; re_sub_match_last_t **new_array = re_realloc (subtop->lasts, re_sub_match_last_t *, new_alasts); if (BE (new_array == NULL, 0)) return NULL; subtop->lasts = new_array; subtop->alasts = new_alasts; } new_entry = calloc (1, sizeof (re_sub_match_last_t)); if (BE (new_entry != NULL, 1)) { subtop->lasts[subtop->nlasts] = new_entry; new_entry->node = node; new_entry->str_idx = str_idx; ++subtop->nlasts; } return new_entry; } static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, re_dfastate_t **limited_sts, Idx last_node, Idx last_str_idx) { sctx->sifted_states = sifted_sts; sctx->limited_states = limited_sts; sctx->last_node = last_node; sctx->last_str_idx = last_str_idx; re_node_set_init_empty (&sctx->limits); } libprelude-5.2.0/libmissing/PaxHeaders.14770/relocatable.c0000644000000000000000000000011013726163410021424 xustar000000000000000024 mtime=1599661832.596 24 atime=1599661832.756 24 ctime=1599661998.951 libprelude-5.2.0/libmissing/relocatable.c0000644000000000000000000004327713726163410020444 0ustar00rootroot00000000000000/* Provide relocatable packages. Copyright (C) 2003-2006, 2008-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2003. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Tell glibc's to provide a prototype for getline(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #define _GL_USE_STDLIB_ALLOC 1 #include /* Specification. */ #include "relocatable.h" #if ENABLE_RELOCATABLE #include #include #include #include #ifdef NO_XMALLOC # define xmalloc malloc #else # include "xalloc.h" #endif #if defined _WIN32 && !defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include #endif #ifdef __EMX__ # define INCL_DOS # include # define strcmp stricmp # define strncmp strnicmp #endif #if DEPENDS_ON_LIBCHARSET # include #endif #if DEPENDS_ON_LIBICONV && HAVE_ICONV # include #endif #if DEPENDS_ON_LIBINTL && ENABLE_NLS # include #endif /* Faked cheap 'bool'. */ #undef bool #undef false #undef true #define bool int #define false 0 #define true 1 /* Pathname support. ISSLASH(C) tests whether C is a directory separator character. IS_PATH_WITH_DIR(P) tests whether P contains a directory specification. */ #if (defined _WIN32 && !defined __CYGWIN__) || defined __EMX__ || defined __DJGPP__ /* Native Windows, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') # define HAS_DEVICE(P) \ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ && (P)[1] == ':') # define IS_PATH_WITH_DIR(P) \ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) # define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0) #else /* Unix */ # define ISSLASH(C) ((C) == '/') # define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL) # define FILE_SYSTEM_PREFIX_LEN(P) 0 #endif /* Whether to enable the more costly support for relocatable libraries. It allows libraries to be have been installed with a different original prefix than the program. But it is quite costly, especially on Cygwin platforms, see below. Therefore we enable it by default only on native Windows platforms. */ #ifndef ENABLE_COSTLY_RELOCATABLE # if defined _WIN32 && !defined __CYGWIN__ # define ENABLE_COSTLY_RELOCATABLE 1 # else # define ENABLE_COSTLY_RELOCATABLE 0 # endif #endif /* Original installation prefix. */ static char *orig_prefix; static size_t orig_prefix_len; /* Current installation prefix. */ static char *curr_prefix; static size_t curr_prefix_len; /* These prefixes do not end in a slash. Anything that will be concatenated to them must start with a slash. */ /* Sets the original and the current installation prefix of this module. Relocation simply replaces a pathname starting with the original prefix by the corresponding pathname with the current prefix instead. Both prefixes should be directory names without trailing slash (i.e. use "" instead of "/"). */ static void set_this_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg) { if (orig_prefix_arg != NULL && curr_prefix_arg != NULL /* Optimization: if orig_prefix and curr_prefix are equal, the relocation is a nop. */ && strcmp (orig_prefix_arg, curr_prefix_arg) != 0) { /* Duplicate the argument strings. */ char *memory; orig_prefix_len = strlen (orig_prefix_arg); curr_prefix_len = strlen (curr_prefix_arg); memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1); #ifdef NO_XMALLOC if (memory != NULL) #endif { memcpy (memory, orig_prefix_arg, orig_prefix_len + 1); orig_prefix = memory; memory += orig_prefix_len + 1; memcpy (memory, curr_prefix_arg, curr_prefix_len + 1); curr_prefix = memory; return; } } orig_prefix = NULL; curr_prefix = NULL; /* Don't worry about wasted memory here - this function is usually only called once. */ } /* Sets the original and the current installation prefix of the package. Relocation simply replaces a pathname starting with the original prefix by the corresponding pathname with the current prefix instead. Both prefixes should be directory names without trailing slash (i.e. use "" instead of "/"). */ void set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg) { set_this_relocation_prefix (orig_prefix_arg, curr_prefix_arg); /* Now notify all dependent libraries. */ #if DEPENDS_ON_LIBCHARSET libcharset_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); #endif #if DEPENDS_ON_LIBICONV && HAVE_ICONV && _LIBICONV_VERSION >= 0x0109 libiconv_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); #endif #if DEPENDS_ON_LIBINTL && ENABLE_NLS && defined libintl_set_relocation_prefix libintl_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); #endif } #if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE) /* Convenience function: Computes the current installation prefix, based on the original installation prefix, the original installation directory of a particular file, and the current pathname of this file. Returns it, freshly allocated. Returns NULL upon failure. */ #ifdef IN_LIBRARY #define compute_curr_prefix local_compute_curr_prefix static #endif char * compute_curr_prefix (const char *orig_installprefix, const char *orig_installdir, const char *curr_pathname) { char *curr_installdir; const char *rel_installdir; if (curr_pathname == NULL) return NULL; /* Determine the relative installation directory, relative to the prefix. This is simply the difference between orig_installprefix and orig_installdir. */ if (strncmp (orig_installprefix, orig_installdir, strlen (orig_installprefix)) != 0) /* Shouldn't happen - nothing should be installed outside $(prefix). */ return NULL; rel_installdir = orig_installdir + strlen (orig_installprefix); /* Determine the current installation directory. */ { const char *p_base = curr_pathname + FILE_SYSTEM_PREFIX_LEN (curr_pathname); const char *p = curr_pathname + strlen (curr_pathname); char *q; while (p > p_base) { p--; if (ISSLASH (*p)) break; } q = (char *) xmalloc (p - curr_pathname + 1); #ifdef NO_XMALLOC if (q == NULL) return NULL; #endif memcpy (q, curr_pathname, p - curr_pathname); q[p - curr_pathname] = '\0'; curr_installdir = q; } /* Compute the current installation prefix by removing the trailing rel_installdir from it. */ { const char *rp = rel_installdir + strlen (rel_installdir); const char *cp = curr_installdir + strlen (curr_installdir); const char *cp_base = curr_installdir + FILE_SYSTEM_PREFIX_LEN (curr_installdir); while (rp > rel_installdir && cp > cp_base) { bool same = false; const char *rpi = rp; const char *cpi = cp; while (rpi > rel_installdir && cpi > cp_base) { rpi--; cpi--; if (ISSLASH (*rpi) || ISSLASH (*cpi)) { if (ISSLASH (*rpi) && ISSLASH (*cpi)) same = true; break; } /* Do case-insensitive comparison if the file system is always or often case-insensitive. It's better to accept the comparison if the difference is only in case, rather than to fail. */ #if defined _WIN32 || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ /* Native Windows, Cygwin, OS/2, DOS - case insignificant file system */ if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi) != (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi)) break; #else if (*rpi != *cpi) break; #endif } if (!same) break; /* The last pathname component was the same. opi and cpi now point to the slash before it. */ rp = rpi; cp = cpi; } if (rp > rel_installdir) { /* Unexpected: The curr_installdir does not end with rel_installdir. */ free (curr_installdir); return NULL; } { size_t curr_prefix_len = cp - curr_installdir; char *curr_prefix; curr_prefix = (char *) xmalloc (curr_prefix_len + 1); #ifdef NO_XMALLOC if (curr_prefix == NULL) { free (curr_installdir); return NULL; } #endif memcpy (curr_prefix, curr_installdir, curr_prefix_len); curr_prefix[curr_prefix_len] = '\0'; free (curr_installdir); return curr_prefix; } } } #endif /* !IN_LIBRARY || PIC */ #if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE /* Full pathname of shared library, or NULL. */ static char *shared_library_fullname; #if defined _WIN32 && !defined __CYGWIN__ /* Native Windows only. On Cygwin, it is better to use the Cygwin provided /proc interface, than to use native Windows API and cygwin_conv_to_posix_path, because it supports longer file names (see ). */ /* Determine the full pathname of the shared library when it is loaded. */ BOOL WINAPI DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved) { (void) reserved; if (event == DLL_PROCESS_ATTACH) { /* The DLL is being loaded into an application's address range. */ static char location[MAX_PATH]; if (!GetModuleFileName (module_handle, location, sizeof (location))) /* Shouldn't happen. */ return FALSE; if (!IS_PATH_WITH_DIR (location)) /* Shouldn't happen. */ return FALSE; shared_library_fullname = strdup (location); } return TRUE; } #elif defined __EMX__ extern int _CRT_init (void); extern void _CRT_term (void); extern void __ctordtorInit (void); extern void __ctordtorTerm (void); unsigned long _System _DLL_InitTerm (unsigned long hModule, unsigned long ulFlag) { static char location[CCHMAXPATH]; switch (ulFlag) { case 0: if (_CRT_init () == -1) return 0; __ctordtorInit(); /* See http://cyberkinetica.homeunix.net/os2tk45/cp1/1247_L2H_DosQueryModuleNameSy.html for specification of DosQueryModuleName(). */ if (DosQueryModuleName (hModule, sizeof (location), location)) return 0; _fnslashify (location); shared_library_fullname = strdup (location); break; case 1: __ctordtorTerm(); _CRT_term (); break; } return 1; } #else /* Unix */ static void find_shared_library_fullname () { #if (defined __linux__ && (__GLIBC__ >= 2 || defined __UCLIBC__)) || defined __CYGWIN__ /* Linux has /proc/self/maps. glibc 2 and uClibc have the getline() function. Cygwin >= 1.5 has /proc/self/maps and the getline() function too. But it is costly: ca. 0.3 ms on Linux, 3 ms on Cygwin 1.5, and 5 ms on Cygwin 1.7. */ FILE *fp; /* Open the current process' maps file. It describes one VMA per line. */ fp = fopen ("/proc/self/maps", "r"); if (fp) { unsigned long address = (unsigned long) &find_shared_library_fullname; for (;;) { unsigned long start, end; int c; if (fscanf (fp, "%lx-%lx", &start, &end) != 2) break; if (address >= start && address <= end - 1) { /* Found it. Now see if this line contains a filename. */ while (c = getc (fp), c != EOF && c != '\n' && c != '/') continue; if (c == '/') { size_t size; int len; ungetc (c, fp); shared_library_fullname = NULL; size = 0; len = getline (&shared_library_fullname, &size, fp); if (len >= 0) { /* Success: filled shared_library_fullname. */ if (len > 0 && shared_library_fullname[len - 1] == '\n') shared_library_fullname[len - 1] = '\0'; } } break; } while (c = getc (fp), c != EOF && c != '\n') continue; } fclose (fp); } #endif } #endif /* Native Windows / EMX / Unix */ /* Return the full pathname of the current shared library. Return NULL if unknown. Guaranteed to work only on Linux, EMX, Cygwin, and native Windows. */ static char * get_shared_library_fullname () { #if !(defined _WIN32 && !defined __CYGWIN__) && !defined __EMX__ static bool tried_find_shared_library_fullname; if (!tried_find_shared_library_fullname) { find_shared_library_fullname (); tried_find_shared_library_fullname = true; } #endif return shared_library_fullname; } #endif /* PIC */ /* Returns the pathname, relocated according to the current installation directory. The returned string is either PATHNAME unmodified or a freshly allocated string that you can free with free() after casting it to 'char *'. */ const char * relocate (const char *pathname) { #if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE static int initialized; /* Initialization code for a shared library. */ if (!initialized) { /* At this point, orig_prefix and curr_prefix likely have already been set through the main program's set_program_name_and_installdir function. This is sufficient in the case that the library has initially been installed in the same orig_prefix. But we can do better, to also cover the cases that 1. it has been installed in a different prefix before being moved to orig_prefix and (later) to curr_prefix, 2. unlike the program, it has not moved away from orig_prefix. */ const char *orig_installprefix = INSTALLPREFIX; const char *orig_installdir = INSTALLDIR; char *curr_prefix_better; curr_prefix_better = compute_curr_prefix (orig_installprefix, orig_installdir, get_shared_library_fullname ()); set_relocation_prefix (orig_installprefix, curr_prefix_better != NULL ? curr_prefix_better : curr_prefix); if (curr_prefix_better != NULL) free (curr_prefix_better); initialized = 1; } #endif /* Note: It is not necessary to perform case insensitive comparison here, even for DOS-like file systems, because the pathname argument was typically created from the same Makefile variable as orig_prefix came from. */ if (orig_prefix != NULL && curr_prefix != NULL && strncmp (pathname, orig_prefix, orig_prefix_len) == 0) { if (pathname[orig_prefix_len] == '\0') { /* pathname equals orig_prefix. */ char *result = (char *) xmalloc (strlen (curr_prefix) + 1); #ifdef NO_XMALLOC if (result != NULL) #endif { strcpy (result, curr_prefix); return result; } } else if (ISSLASH (pathname[orig_prefix_len])) { /* pathname starts with orig_prefix. */ const char *pathname_tail = &pathname[orig_prefix_len]; char *result = (char *) xmalloc (curr_prefix_len + strlen (pathname_tail) + 1); #ifdef NO_XMALLOC if (result != NULL) #endif { memcpy (result, curr_prefix, curr_prefix_len); strcpy (result + curr_prefix_len, pathname_tail); return result; } } } #ifdef __EMX__ # ifdef __KLIBC__ # undef strncmp if (strncmp (pathname, "/@unixroot", 10) == 0 && (pathname[10] == '\0' || ISSLASH (pathname[10]))) { /* kLIBC itself processes /@unixroot prefix */ return pathname; } else # endif if (ISSLASH (pathname[0])) { const char *unixroot = getenv ("UNIXROOT"); if (unixroot && HAS_DEVICE (unixroot) && unixroot[2] == '\0') { char *result = (char *) xmalloc (2 + strlen (pathname) + 1); #ifdef NO_XMALLOC if (result != NULL) #endif { memcpy (result, unixroot, 2); strcpy (result + 2, pathname); return result; } } } #endif /* Nothing to relocate. */ return pathname; } /* Returns the pathname, relocated according to the current installation directory. This function sets *ALLOCATEDP to the allocated memory, or to NULL if no memory allocation occurs. So that, after you're done with the return value, to reclaim allocated memory, you can do: free (*ALLOCATEDP). */ const char * relocate2 (const char *pathname, char **allocatedp) { const char *result = relocate (pathname); *allocatedp = (result != pathname ? (char *) result : NULL); return result; } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/select.c0000644000000000000000000000011013726163410020426 xustar000000000000000024 mtime=1599661832.596 24 atime=1599661832.757 24 ctime=1599661998.954 libprelude-5.2.0/libmissing/select.c0000644000000000000000000004006213726163410017433 0ustar00rootroot00000000000000/* Emulation for select(2) Contributed by Paolo Bonzini. Copyright 2008-2018 Free Software Foundation, Inc. This file is part of gnulib. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include #include #include #if defined _WIN32 && ! defined __CYGWIN__ /* Native Windows. */ #include #include #include #include #include #include #include #include #include /* Get the overridden 'struct timeval'. */ #include #if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" #else # include #endif #undef select /* Avoid warnings from gcc -Wcast-function-type. */ #define GetProcAddress \ (void *) GetProcAddress struct bitset { unsigned char in[FD_SETSIZE / CHAR_BIT]; unsigned char out[FD_SETSIZE / CHAR_BIT]; }; /* Declare data structures for ntdll functions. */ typedef struct _FILE_PIPE_LOCAL_INFORMATION { ULONG NamedPipeType; ULONG NamedPipeConfiguration; ULONG MaximumInstances; ULONG CurrentInstances; ULONG InboundQuota; ULONG ReadDataAvailable; ULONG OutboundQuota; ULONG WriteQuotaAvailable; ULONG NamedPipeState; ULONG NamedPipeEnd; } FILE_PIPE_LOCAL_INFORMATION, *PFILE_PIPE_LOCAL_INFORMATION; typedef struct _IO_STATUS_BLOCK { union { DWORD Status; PVOID Pointer; } u; ULONG_PTR Information; } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; typedef enum _FILE_INFORMATION_CLASS { FilePipeLocalInformation = 24 } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; typedef DWORD (WINAPI *PNtQueryInformationFile) (HANDLE, IO_STATUS_BLOCK *, VOID *, ULONG, FILE_INFORMATION_CLASS); #ifndef PIPE_BUF #define PIPE_BUF 512 #endif static BOOL IsConsoleHandle (HANDLE h) { DWORD mode; return GetConsoleMode (h, &mode) != 0; } static BOOL IsSocketHandle (HANDLE h) { WSANETWORKEVENTS ev; if (IsConsoleHandle (h)) return FALSE; /* Under Wine, it seems that getsockopt returns 0 for pipes too. WSAEnumNetworkEvents instead distinguishes the two correctly. */ ev.lNetworkEvents = 0xDEADBEEF; WSAEnumNetworkEvents ((SOCKET) h, NULL, &ev); return ev.lNetworkEvents != 0xDEADBEEF; } /* Compute output fd_sets for libc descriptor FD (whose Windows handle is H). */ static int windows_poll_handle (HANDLE h, int fd, struct bitset *rbits, struct bitset *wbits, struct bitset *xbits) { BOOL read, write, except; int i, ret; INPUT_RECORD *irbuffer; DWORD avail, nbuffer; BOOL bRet; IO_STATUS_BLOCK iosb; FILE_PIPE_LOCAL_INFORMATION fpli; static PNtQueryInformationFile NtQueryInformationFile; static BOOL once_only; read = write = except = FALSE; switch (GetFileType (h)) { case FILE_TYPE_DISK: read = TRUE; write = TRUE; break; case FILE_TYPE_PIPE: if (!once_only) { NtQueryInformationFile = (PNtQueryInformationFile) GetProcAddress (GetModuleHandle ("ntdll.dll"), "NtQueryInformationFile"); once_only = TRUE; } if (PeekNamedPipe (h, NULL, 0, NULL, &avail, NULL) != 0) { if (avail) read = TRUE; } else if (GetLastError () == ERROR_BROKEN_PIPE) ; else { /* It was the write-end of the pipe. Check if it is writable. If NtQueryInformationFile fails, optimistically assume the pipe is writable. This could happen on Windows 9x, where NtQueryInformationFile is not available, or if we inherit a pipe that doesn't permit FILE_READ_ATTRIBUTES access on the write end (I think this should not happen since Windows XP SP2; WINE seems fine too). Otherwise, ensure that enough space is available for atomic writes. */ memset (&iosb, 0, sizeof (iosb)); memset (&fpli, 0, sizeof (fpli)); if (!NtQueryInformationFile || NtQueryInformationFile (h, &iosb, &fpli, sizeof (fpli), FilePipeLocalInformation) || fpli.WriteQuotaAvailable >= PIPE_BUF || (fpli.OutboundQuota < PIPE_BUF && fpli.WriteQuotaAvailable == fpli.OutboundQuota)) write = TRUE; } break; case FILE_TYPE_CHAR: write = TRUE; if (!(rbits->in[fd / CHAR_BIT] & (1 << (fd & (CHAR_BIT - 1))))) break; ret = WaitForSingleObject (h, 0); if (ret == WAIT_OBJECT_0) { if (!IsConsoleHandle (h)) { read = TRUE; break; } nbuffer = avail = 0; bRet = GetNumberOfConsoleInputEvents (h, &nbuffer); /* Screen buffers handles are filtered earlier. */ assert (bRet); if (nbuffer == 0) { except = TRUE; break; } irbuffer = (INPUT_RECORD *) alloca (nbuffer * sizeof (INPUT_RECORD)); bRet = PeekConsoleInput (h, irbuffer, nbuffer, &avail); if (!bRet || avail == 0) { except = TRUE; break; } for (i = 0; i < avail; i++) if (irbuffer[i].EventType == KEY_EVENT) read = TRUE; } break; default: ret = WaitForSingleObject (h, 0); write = TRUE; if (ret == WAIT_OBJECT_0) read = TRUE; break; } ret = 0; if (read && (rbits->in[fd / CHAR_BIT] & (1 << (fd & (CHAR_BIT - 1))))) { rbits->out[fd / CHAR_BIT] |= (1 << (fd & (CHAR_BIT - 1))); ret++; } if (write && (wbits->in[fd / CHAR_BIT] & (1 << (fd & (CHAR_BIT - 1))))) { wbits->out[fd / CHAR_BIT] |= (1 << (fd & (CHAR_BIT - 1))); ret++; } if (except && (xbits->in[fd / CHAR_BIT] & (1 << (fd & (CHAR_BIT - 1))))) { xbits->out[fd / CHAR_BIT] |= (1 << (fd & (CHAR_BIT - 1))); ret++; } return ret; } int rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds, struct timeval *timeout) #undef timeval { static struct timeval tv0; static HANDLE hEvent; HANDLE h, handle_array[FD_SETSIZE + 2]; fd_set handle_rfds, handle_wfds, handle_xfds; struct bitset rbits, wbits, xbits; unsigned char anyfds_in[FD_SETSIZE / CHAR_BIT]; DWORD ret, wait_timeout, nhandles, nsock, nbuffer; MSG msg; int i, fd, rc; clock_t tend; if (nfds > FD_SETSIZE) nfds = FD_SETSIZE; if (!timeout) wait_timeout = INFINITE; else { wait_timeout = timeout->tv_sec * 1000 + timeout->tv_usec / 1000; /* select is also used as a portable usleep. */ if (!rfds && !wfds && !xfds) { Sleep (wait_timeout); return 0; } } if (!hEvent) hEvent = CreateEvent (NULL, FALSE, FALSE, NULL); handle_array[0] = hEvent; nhandles = 1; nsock = 0; /* Copy descriptors to bitsets. At the same time, eliminate bits in the "wrong" direction for console input buffers and screen buffers, because screen buffers are waitable and they will block until a character is available. */ memset (&rbits, 0, sizeof (rbits)); memset (&wbits, 0, sizeof (wbits)); memset (&xbits, 0, sizeof (xbits)); memset (anyfds_in, 0, sizeof (anyfds_in)); if (rfds) for (i = 0; i < rfds->fd_count; i++) { fd = rfds->fd_array[i]; h = (HANDLE) _get_osfhandle (fd); if (IsConsoleHandle (h) && !GetNumberOfConsoleInputEvents (h, &nbuffer)) continue; rbits.in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1)); anyfds_in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1)); } else rfds = (fd_set *) alloca (sizeof (fd_set)); if (wfds) for (i = 0; i < wfds->fd_count; i++) { fd = wfds->fd_array[i]; h = (HANDLE) _get_osfhandle (fd); if (IsConsoleHandle (h) && GetNumberOfConsoleInputEvents (h, &nbuffer)) continue; wbits.in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1)); anyfds_in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1)); } else wfds = (fd_set *) alloca (sizeof (fd_set)); if (xfds) for (i = 0; i < xfds->fd_count; i++) { fd = xfds->fd_array[i]; xbits.in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1)); anyfds_in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1)); } else xfds = (fd_set *) alloca (sizeof (fd_set)); /* Zero all the fd_sets, including the application's. */ FD_ZERO (rfds); FD_ZERO (wfds); FD_ZERO (xfds); FD_ZERO (&handle_rfds); FD_ZERO (&handle_wfds); FD_ZERO (&handle_xfds); /* Classify handles. Create fd sets for sockets, poll the others. */ for (i = 0; i < nfds; i++) { if ((anyfds_in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) == 0) continue; h = (HANDLE) _get_osfhandle (i); if (!h) { errno = EBADF; return -1; } if (IsSocketHandle (h)) { int requested = FD_CLOSE; /* See above; socket handles are mapped onto select, but we need to map descriptors to handles. */ if (rbits.in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) { requested |= FD_READ | FD_ACCEPT; FD_SET ((SOCKET) h, rfds); FD_SET ((SOCKET) h, &handle_rfds); } if (wbits.in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) { requested |= FD_WRITE | FD_CONNECT; FD_SET ((SOCKET) h, wfds); FD_SET ((SOCKET) h, &handle_wfds); } if (xbits.in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) { requested |= FD_OOB; FD_SET ((SOCKET) h, xfds); FD_SET ((SOCKET) h, &handle_xfds); } WSAEventSelect ((SOCKET) h, hEvent, requested); nsock++; } else { handle_array[nhandles++] = h; /* Poll now. If we get an event, do not wait below. */ if (wait_timeout != 0 && windows_poll_handle (h, i, &rbits, &wbits, &xbits)) wait_timeout = 0; } } /* Place a sentinel at the end of the array. */ handle_array[nhandles] = NULL; /* When will the waiting period expire? */ if (wait_timeout != INFINITE) tend = clock () + wait_timeout; restart: if (wait_timeout == 0 || nsock == 0) rc = 0; else { /* See if we need to wait in the loop below. If any select is ready, do MsgWaitForMultipleObjects anyway to dispatch messages, but no need to call select again. */ rc = select (0, &handle_rfds, &handle_wfds, &handle_xfds, &tv0); if (rc == 0) { /* Restore the fd_sets for the other select we do below. */ memcpy (&handle_rfds, rfds, sizeof (fd_set)); memcpy (&handle_wfds, wfds, sizeof (fd_set)); memcpy (&handle_xfds, xfds, sizeof (fd_set)); } else wait_timeout = 0; } /* How much is left to wait? */ if (wait_timeout != INFINITE) { clock_t tnow = clock (); if (tend >= tnow) wait_timeout = tend - tnow; else wait_timeout = 0; } for (;;) { ret = MsgWaitForMultipleObjects (nhandles, handle_array, FALSE, wait_timeout, QS_ALLINPUT); if (ret == WAIT_OBJECT_0 + nhandles) { /* new input of some other kind */ BOOL bRet; while ((bRet = PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) != 0) { TranslateMessage (&msg); DispatchMessage (&msg); } } else break; } /* If we haven't done it yet, check the status of the sockets. */ if (rc == 0 && nsock > 0) rc = select (0, &handle_rfds, &handle_wfds, &handle_xfds, &tv0); if (nhandles > 1) { /* Count results that are not counted in the return value of select. */ nhandles = 1; for (i = 0; i < nfds; i++) { if ((anyfds_in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) == 0) continue; h = (HANDLE) _get_osfhandle (i); if (h == handle_array[nhandles]) { /* Not a socket. */ nhandles++; windows_poll_handle (h, i, &rbits, &wbits, &xbits); if (rbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))) || wbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))) || xbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) rc++; } } if (rc == 0 && (wait_timeout == INFINITE /* If NHANDLES > 1, but no bits are set, it means we've been told incorrectly that some handle was signaled. This happens with anonymous pipes, which always cause MsgWaitForMultipleObjects to exit immediately, but no data is found ready to be read by windows_poll_handle. To avoid a total failure (whereby we return zero and don't wait at all), let's poll in a more busy loop. */ || (wait_timeout != 0 && nhandles > 1))) { /* Sleep 1 millisecond to avoid busy wait and retry with the original fd_sets. */ memcpy (&handle_rfds, rfds, sizeof (fd_set)); memcpy (&handle_wfds, wfds, sizeof (fd_set)); memcpy (&handle_xfds, xfds, sizeof (fd_set)); SleepEx (1, TRUE); goto restart; } if (timeout && wait_timeout == 0 && rc == 0) timeout->tv_sec = timeout->tv_usec = 0; } /* Now fill in the results. */ FD_ZERO (rfds); FD_ZERO (wfds); FD_ZERO (xfds); nhandles = 1; for (i = 0; i < nfds; i++) { if ((anyfds_in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) == 0) continue; h = (HANDLE) _get_osfhandle (i); if (h != handle_array[nhandles]) { /* Perform handle->descriptor mapping. */ WSAEventSelect ((SOCKET) h, NULL, 0); if (FD_ISSET (h, &handle_rfds)) FD_SET (i, rfds); if (FD_ISSET (h, &handle_wfds)) FD_SET (i, wfds); if (FD_ISSET (h, &handle_xfds)) FD_SET (i, xfds); } else { /* Not a socket. */ nhandles++; if (rbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) FD_SET (i, rfds); if (wbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) FD_SET (i, wfds); if (xbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) FD_SET (i, xfds); } } return rc; } #else /* ! Native Windows. */ #include #include /* NULL */ #include #include #undef select int rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds, struct timeval *timeout) { int i; /* FreeBSD 8.2 has a bug: it does not always detect invalid fds. */ if (nfds < 0 || nfds > FD_SETSIZE) { errno = EINVAL; return -1; } for (i = 0; i < nfds; i++) { if (((rfds && FD_ISSET (i, rfds)) || (wfds && FD_ISSET (i, wfds)) || (xfds && FD_ISSET (i, xfds))) && dup2 (i, i) != i) return -1; } /* Interix 3.5 has a bug: it does not support nfds == 0. */ if (nfds == 0) { nfds = 1; rfds = NULL; wfds = NULL; xfds = NULL; } return select (nfds, rfds, wfds, xfds, timeout); } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/setsockopt.c0000644000000000000000000000011013726163410021345 xustar000000000000000024 mtime=1599661832.597 24 atime=1599661832.757 24 ctime=1599661998.956 libprelude-5.2.0/libmissing/setsockopt.c0000644000000000000000000000337613726163410020361 0ustar00rootroot00000000000000/* setsockopt.c --- wrappers for Windows setsockopt function Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paolo Bonzini */ #include #define WIN32_LEAN_AND_MEAN /* Get winsock2.h. */ #include /* Get struct timeval. */ #include /* Get set_winsock_errno, FD_TO_SOCKET etc. */ #include "w32sock.h" #undef setsockopt int rpl_setsockopt (int fd, int level, int optname, const void *optval, socklen_t optlen) { SOCKET sock = FD_TO_SOCKET (fd); int r; if (sock == INVALID_SOCKET) { errno = EBADF; return -1; } else { if (level == SOL_SOCKET && (optname == SO_RCVTIMEO || optname == SO_SNDTIMEO)) { const struct timeval *tv = optval; int milliseconds = tv->tv_sec * 1000 + tv->tv_usec / 1000; optval = &milliseconds; r = setsockopt (sock, level, optname, optval, sizeof (int)); } else { r = setsockopt (sock, level, optname, optval, optlen); } if (r < 0) set_winsock_errno (); return r; } } libprelude-5.2.0/libmissing/PaxHeaders.14770/sigprocmask.c0000644000000000000000000000011013726163410021471 xustar000000000000000024 mtime=1599661832.597 24 atime=1599661832.757 24 ctime=1599661998.959 libprelude-5.2.0/libmissing/sigprocmask.c0000644000000000000000000002063013726163410020475 0ustar00rootroot00000000000000/* POSIX compatible signal blocking. Copyright (C) 2006-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2006. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif /* We assume that a platform without POSIX signal blocking functions also does not have the POSIX sigaction() function, only the signal() function. We also assume signal() has SysV semantics, where any handler is uninstalled prior to being invoked. This is true for native Windows platforms. */ /* We use raw signal(), but also provide a wrapper rpl_signal() so that applications can query or change a blocked signal. */ #undef signal /* Provide invalid signal numbers as fallbacks if the uncatchable signals are not defined. */ #ifndef SIGKILL # define SIGKILL (-1) #endif #ifndef SIGSTOP # define SIGSTOP (-1) #endif /* On native Windows, as of 2008, the signal SIGABRT_COMPAT is an alias for the signal SIGABRT. Only one signal handler is stored for both SIGABRT and SIGABRT_COMPAT. SIGABRT_COMPAT is not a signal of its own. */ #if defined _WIN32 && ! defined __CYGWIN__ # undef SIGABRT_COMPAT # define SIGABRT_COMPAT 6 #endif #ifdef SIGABRT_COMPAT # define SIGABRT_COMPAT_MASK (1U << SIGABRT_COMPAT) #else # define SIGABRT_COMPAT_MASK 0 #endif typedef void (*handler_t) (int); #if HAVE_MSVC_INVALID_PARAMETER_HANDLER static handler_t signal_nothrow (int sig, handler_t handler) { handler_t result; TRY_MSVC_INVAL { result = signal (sig, handler); } CATCH_MSVC_INVAL { result = SIG_ERR; errno = EINVAL; } DONE_MSVC_INVAL; return result; } # define signal signal_nothrow #endif /* Handling of gnulib defined signals. */ #if GNULIB_defined_SIGPIPE static handler_t SIGPIPE_handler = SIG_DFL; #endif #if GNULIB_defined_SIGPIPE static handler_t ext_signal (int sig, handler_t handler) { switch (sig) { case SIGPIPE: { handler_t old_handler = SIGPIPE_handler; SIGPIPE_handler = handler; return old_handler; } default: /* System defined signal */ return signal (sig, handler); } } # undef signal # define signal ext_signal #endif int sigismember (const sigset_t *set, int sig) { if (sig >= 0 && sig < NSIG) { #ifdef SIGABRT_COMPAT if (sig == SIGABRT_COMPAT) sig = SIGABRT; #endif return (*set >> sig) & 1; } else return 0; } int sigemptyset (sigset_t *set) { *set = 0; return 0; } int sigaddset (sigset_t *set, int sig) { if (sig >= 0 && sig < NSIG) { #ifdef SIGABRT_COMPAT if (sig == SIGABRT_COMPAT) sig = SIGABRT; #endif *set |= 1U << sig; return 0; } else { errno = EINVAL; return -1; } } int sigdelset (sigset_t *set, int sig) { if (sig >= 0 && sig < NSIG) { #ifdef SIGABRT_COMPAT if (sig == SIGABRT_COMPAT) sig = SIGABRT; #endif *set &= ~(1U << sig); return 0; } else { errno = EINVAL; return -1; } } int sigfillset (sigset_t *set) { *set = ((2U << (NSIG - 1)) - 1) & ~ SIGABRT_COMPAT_MASK; return 0; } /* Set of currently blocked signals. */ static volatile sigset_t blocked_set /* = 0 */; /* Set of currently blocked and pending signals. */ static volatile sig_atomic_t pending_array[NSIG] /* = { 0 } */; /* Signal handler that is installed for blocked signals. */ static void blocked_handler (int sig) { /* Reinstall the handler, in case the signal occurs multiple times while blocked. There is an inherent race where an asynchronous signal in between when the kernel uninstalled the handler and when we reinstall it will trigger the default handler; oh well. */ signal (sig, blocked_handler); if (sig >= 0 && sig < NSIG) pending_array[sig] = 1; } int sigpending (sigset_t *set) { sigset_t pending = 0; int sig; for (sig = 0; sig < NSIG; sig++) if (pending_array[sig]) pending |= 1U << sig; *set = pending; return 0; } /* The previous signal handlers. Only the array elements corresponding to blocked signals are relevant. */ static volatile handler_t old_handlers[NSIG]; int sigprocmask (int operation, const sigset_t *set, sigset_t *old_set) { if (old_set != NULL) *old_set = blocked_set; if (set != NULL) { sigset_t new_blocked_set; sigset_t to_unblock; sigset_t to_block; switch (operation) { case SIG_BLOCK: new_blocked_set = blocked_set | *set; break; case SIG_SETMASK: new_blocked_set = *set; break; case SIG_UNBLOCK: new_blocked_set = blocked_set & ~*set; break; default: errno = EINVAL; return -1; } to_unblock = blocked_set & ~new_blocked_set; to_block = new_blocked_set & ~blocked_set; if (to_block != 0) { int sig; for (sig = 0; sig < NSIG; sig++) if ((to_block >> sig) & 1) { pending_array[sig] = 0; if ((old_handlers[sig] = signal (sig, blocked_handler)) != SIG_ERR) blocked_set |= 1U << sig; } } if (to_unblock != 0) { sig_atomic_t received[NSIG]; int sig; for (sig = 0; sig < NSIG; sig++) if ((to_unblock >> sig) & 1) { if (signal (sig, old_handlers[sig]) != blocked_handler) /* The application changed a signal handler while the signal was blocked, bypassing our rpl_signal replacement. We don't support this. */ abort (); received[sig] = pending_array[sig]; blocked_set &= ~(1U << sig); pending_array[sig] = 0; } else received[sig] = 0; for (sig = 0; sig < NSIG; sig++) if (received[sig]) raise (sig); } } return 0; } /* Install the handler FUNC for signal SIG, and return the previous handler. */ handler_t rpl_signal (int sig, handler_t handler) { /* We must provide a wrapper, so that a user can query what handler they installed even if that signal is currently blocked. */ if (sig >= 0 && sig < NSIG && sig != SIGKILL && sig != SIGSTOP && handler != SIG_ERR) { #ifdef SIGABRT_COMPAT if (sig == SIGABRT_COMPAT) sig = SIGABRT; #endif if (blocked_set & (1U << sig)) { /* POSIX states that sigprocmask and signal are both async-signal-safe. This is not true of our implementation - there is a slight data race where an asynchronous interrupt on signal A can occur after we install blocked_handler but before we have updated old_handlers for signal B, such that handler A can see stale information if it calls signal(B). Oh well - signal handlers really shouldn't try to manipulate the installed handlers of unrelated signals. */ handler_t result = old_handlers[sig]; old_handlers[sig] = handler; return result; } else return signal (sig, handler); } else { errno = EINVAL; return SIG_ERR; } } #if GNULIB_defined_SIGPIPE /* Raise the signal SIGPIPE. */ int _gl_raise_SIGPIPE (void) { if (blocked_set & (1U << SIGPIPE)) pending_array[SIGPIPE] = 1; else { handler_t handler = SIGPIPE_handler; if (handler == SIG_DFL) exit (128 + SIGPIPE); else if (handler != SIG_IGN) (*handler) (SIGPIPE); } return 0; } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/sleep.c0000644000000000000000000000011013726163410020257 xustar000000000000000024 mtime=1599661832.598 24 atime=1599661832.757 24 ctime=1599661998.961 libprelude-5.2.0/libmissing/sleep.c0000644000000000000000000000441013726163410017261 0ustar00rootroot00000000000000/* Pausing execution of the current thread. Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2007. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include "verify.h" #if defined _WIN32 && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include unsigned int sleep (unsigned int seconds) { unsigned int remaining; /* Sleep for 1 second many times, because 1. Sleep is not interruptible by Ctrl-C, 2. we want to avoid arithmetic overflow while multiplying with 1000. */ for (remaining = seconds; remaining > 0; remaining--) Sleep (1000); return remaining; } #elif HAVE_SLEEP # undef sleep /* Guarantee unlimited sleep and a reasonable return value. Cygwin 1.5.x rejects attempts to sleep more than 49.7 days (2**32 milliseconds), but uses uninitialized memory which results in a garbage answer. Similarly, Linux 2.6.9 with glibc 2.3.4 has a too small return value when asked to sleep more than 24.85 days. */ unsigned int rpl_sleep (unsigned int seconds) { /* This requires int larger than 16 bits. */ verify (UINT_MAX / 24 / 24 / 60 / 60); const unsigned int limit = 24 * 24 * 60 * 60; while (limit < seconds) { unsigned int result; seconds -= limit; result = sleep (limit); if (result) return seconds + result; } return sleep (seconds); } #else /* !HAVE_SLEEP */ #error "Please port gnulib sleep.c to your platform, possibly using usleep() or select(), then report this to bug-gnulib." #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/snprintf.c0000644000000000000000000000011013726163410021012 xustar000000000000000024 mtime=1599661832.598 24 atime=1599661832.757 24 ctime=1599661998.963 libprelude-5.2.0/libmissing/snprintf.c0000644000000000000000000000355313726163410020023 0ustar00rootroot00000000000000/* Formatted output to strings. Copyright (C) 2004, 2006-2018 Free Software Foundation, Inc. Written by Simon Josefsson and Paul Eggert. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include #include #include #include #include #include #include "vasnprintf.h" /* Print formatted output to string STR. Similar to sprintf, but additional length SIZE limit how much is written into STR. Returns string length of formatted string (which may be larger than SIZE). STR may be NULL, in which case nothing will be written. On error, return a negative value. */ int snprintf (char *str, size_t size, const char *format, ...) { char *output; size_t len; size_t lenbuf = size; va_list args; va_start (args, format); output = vasnprintf (str, &lenbuf, format, args); len = lenbuf; va_end (args); if (!output) return -1; if (output != str) { if (size) { size_t pruned_len = (len < size ? len : size - 1); memcpy (str, output, pruned_len); str[pruned_len] = '\0'; } free (output); } if (INT_MAX < len) { errno = EOVERFLOW; return -1; } return len; } libprelude-5.2.0/libmissing/PaxHeaders.14770/socket.c0000644000000000000000000000011013726163410020437 xustar000000000000000024 mtime=1599661832.598 24 atime=1599661832.757 24 ctime=1599661998.966 libprelude-5.2.0/libmissing/socket.c0000644000000000000000000000261413726163410017445 0ustar00rootroot00000000000000/* socket.c --- wrappers for Windows socket function Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paolo Bonzini */ #include #define WIN32_LEAN_AND_MEAN /* Get winsock2.h. */ #include /* Get set_winsock_errno, FD_TO_SOCKET etc. */ #include "w32sock.h" #include "sockets.h" int rpl_socket (int domain, int type, int protocol) { SOCKET fh; gl_sockets_startup (SOCKETS_1_1); /* We have to use WSASocket() to create non-overlapped IO sockets. Overlapped IO sockets cannot be used with read/write. */ fh = WSASocket (domain, type, protocol, NULL, 0, 0); if (fh == INVALID_SOCKET) { set_winsock_errno (); return -1; } else return SOCKET_TO_FD (fh); } libprelude-5.2.0/libmissing/PaxHeaders.14770/stat.c0000644000000000000000000000011013726163410020122 xustar000000000000000024 mtime=1599661832.599 24 atime=1599661832.757 24 ctime=1599661998.968 libprelude-5.2.0/libmissing/stat.c0000644000000000000000000003174013726163410017132 0ustar00rootroot00000000000000/* Work around platform bugs in stat. Copyright (C) 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Eric Blake and Bruno Haible. */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_stat doesn't recurse to rpl_stat. */ #define __need_system_sys_stat_h #include /* Get the original definition of stat. It might be defined as a macro. */ #include #include #undef __need_system_sys_stat_h #if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE #endif #if !defined WINDOWS_NATIVE static int orig_stat (const char *filename, struct stat *buf) { return stat (filename, buf); } #endif /* Specification. */ /* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ #include "sys/stat.h" #include "stat-time.h" #include #include #include #include #include "filename.h" #include "malloca.h" #include "verify.h" #ifdef WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN # include # include "stat-w32.h" #endif #ifdef WINDOWS_NATIVE /* Return TRUE if the given file name denotes an UNC root. */ static BOOL is_unc_root (const char *rname) { /* Test whether it has the syntax '\\server\share'. */ if (ISSLASH (rname[0]) && ISSLASH (rname[1])) { /* It starts with two slashes. Find the next slash. */ const char *p = rname + 2; const char *q = p; while (*q != '\0' && !ISSLASH (*q)) q++; if (q > p && *q != '\0') { /* Found the next slash at q. */ q++; const char *r = q; while (*r != '\0' && !ISSLASH (*r)) r++; if (r > q && *r == '\0') return TRUE; } } return FALSE; } #endif /* Store information about NAME into ST. Work around bugs with trailing slashes. Mingw has other bugs (such as st_ino always being 0 on success) which this wrapper does not work around. But at least this implementation provides the ability to emulate fchdir correctly. */ int rpl_stat (char const *name, struct stat *buf) { #ifdef WINDOWS_NATIVE /* Fill the fields ourselves, because the original stat function returns values for st_atime, st_mtime, st_ctime that depend on the current time zone. See */ /* XXX Should we convert to wchar_t* and prepend '\\?\', in order to work around length limitations ? */ /* POSIX specifies: "More than two leading characters shall be treated as a single character." */ if (ISSLASH (name[0]) && ISSLASH (name[1]) && ISSLASH (name[2])) { name += 2; while (ISSLASH (name[1])) name++; } size_t len = strlen (name); size_t drive_prefix_len = (HAS_DEVICE (name) ? 2 : 0); /* Remove trailing slashes (except the very first one, at position drive_prefix_len), but remember their presence. */ size_t rlen; bool check_dir = false; rlen = len; while (rlen > drive_prefix_len && ISSLASH (name[rlen-1])) { check_dir = true; if (rlen == drive_prefix_len + 1) break; rlen--; } /* Handle '' and 'C:'. */ if (!check_dir && rlen == drive_prefix_len) { errno = ENOENT; return -1; } /* Handle '\\'. */ if (rlen == 1 && ISSLASH (name[0]) && len >= 2) { errno = ENOENT; return -1; } const char *rname; char *malloca_rname; if (rlen == len) { rname = name; malloca_rname = NULL; } else { malloca_rname = malloca (rlen + 1); if (malloca_rname == NULL) { errno = ENOMEM; return -1; } memcpy (malloca_rname, name, rlen); malloca_rname[rlen] = '\0'; rname = malloca_rname; } /* There are two ways to get at the requested information: - by scanning the parent directory and examining the relevant directory entry, - by opening the file directly. The first approach fails for root directories (e.g. 'C:\') and UNC root directories (e.g. '\\server\share'). The second approach fails for some system files (e.g. 'C:\pagefile.sys' and 'C:\hiberfil.sys'): ERROR_SHARING_VIOLATION. The second approach gives more information (in particular, correct st_dev, st_ino, st_nlink fields). So we use the second approach and, as a fallback except for root and UNC root directories, also the first approach. */ { int ret; { /* Approach based on the file. */ /* Open a handle to the file. CreateFile */ HANDLE h = CreateFile (rname, FILE_READ_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, /* FILE_FLAG_POSIX_SEMANTICS (treat file names that differ only in case as different) makes sense only when applied to *all* filesystem operations. */ FILE_FLAG_BACKUP_SEMANTICS /* | FILE_FLAG_POSIX_SEMANTICS */, NULL); if (h != INVALID_HANDLE_VALUE) { ret = _gl_fstat_by_handle (h, rname, buf); CloseHandle (h); goto done; } } /* Test for root and UNC root directories. */ if ((rlen == drive_prefix_len + 1 && ISSLASH (rname[drive_prefix_len])) || is_unc_root (rname)) goto failed; /* Fallback. */ { /* Approach based on the directory entry. */ if (strchr (rname, '?') != NULL || strchr (rname, '*') != NULL) { /* Other Windows API functions would fail with error ERROR_INVALID_NAME. */ if (malloca_rname != NULL) freea (malloca_rname); errno = ENOENT; return -1; } /* Get the details about the directory entry. This can be done through FindFirstFile or through FindFirstFileEx with argument FindExInfoBasic */ WIN32_FIND_DATA info; HANDLE h = FindFirstFile (rname, &info); if (h == INVALID_HANDLE_VALUE) goto failed; /* Test for error conditions before starting to fill *buf. */ if (sizeof (buf->st_size) <= 4 && info.nFileSizeHigh > 0) { FindClose (h); if (malloca_rname != NULL) freea (malloca_rname); errno = EOVERFLOW; return -1; } # if _GL_WINDOWS_STAT_INODES buf->st_dev = 0; # if _GL_WINDOWS_STAT_INODES == 2 buf->st_ino._gl_ino[0] = buf->st_ino._gl_ino[1] = 0; # else /* _GL_WINDOWS_STAT_INODES == 1 */ buf->st_ino = 0; # endif # else /* st_ino is not wide enough for identifying a file on a device. Without st_ino, st_dev is pointless. */ buf->st_dev = 0; buf->st_ino = 0; # endif /* st_mode. */ unsigned int mode = /* XXX How to handle FILE_ATTRIBUTE_REPARSE_POINT ? */ ((info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? _S_IFDIR | S_IEXEC_UGO : _S_IFREG) | S_IREAD_UGO | ((info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0 : S_IWRITE_UGO); if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { /* Determine whether the file is executable by looking at the file name suffix. */ if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0) { const char *last_dot = NULL; const char *p; for (p = info.cFileName; *p != '\0'; p++) if (*p == '.') last_dot = p; if (last_dot != NULL) { const char *suffix = last_dot + 1; if (_stricmp (suffix, "exe") == 0 || _stricmp (suffix, "bat") == 0 || _stricmp (suffix, "cmd") == 0 || _stricmp (suffix, "com") == 0) mode |= S_IEXEC_UGO; } } } buf->st_mode = mode; /* st_nlink. Ignore hard links here. */ buf->st_nlink = 1; /* There's no easy way to map the Windows SID concept to an integer. */ buf->st_uid = 0; buf->st_gid = 0; /* st_rdev is irrelevant for normal files and directories. */ buf->st_rdev = 0; /* st_size. */ if (sizeof (buf->st_size) <= 4) /* Range check already done above. */ buf->st_size = info.nFileSizeLow; else buf->st_size = ((long long) info.nFileSizeHigh << 32) | (long long) info.nFileSizeLow; /* st_atime, st_mtime, st_ctime. */ # if _GL_WINDOWS_STAT_TIMESPEC buf->st_atim = _gl_convert_FILETIME_to_timespec (&info.ftLastAccessTime); buf->st_mtim = _gl_convert_FILETIME_to_timespec (&info.ftLastWriteTime); buf->st_ctim = _gl_convert_FILETIME_to_timespec (&info.ftCreationTime); # else buf->st_atime = _gl_convert_FILETIME_to_POSIX (&info.ftLastAccessTime); buf->st_mtime = _gl_convert_FILETIME_to_POSIX (&info.ftLastWriteTime); buf->st_ctime = _gl_convert_FILETIME_to_POSIX (&info.ftCreationTime); # endif FindClose (h); ret = 0; } done: if (ret >= 0 && check_dir && !S_ISDIR (buf->st_mode)) { errno = ENOTDIR; ret = -1; } if (malloca_rname != NULL) { int saved_errno = errno; freea (malloca_rname); errno = saved_errno; } return ret; } failed: { DWORD error = GetLastError (); #if 0 fprintf (stderr, "rpl_stat error 0x%x\n", (unsigned int) error); #endif if (malloca_rname != NULL) freea (malloca_rname); switch (error) { /* Some of these errors probably cannot happen with the specific flags that we pass to CreateFile. But who knows... */ case ERROR_FILE_NOT_FOUND: /* The last component of rname does not exist. */ case ERROR_PATH_NOT_FOUND: /* Some directory component in rname does not exist. */ case ERROR_BAD_PATHNAME: /* rname is such as '\\server'. */ case ERROR_BAD_NET_NAME: /* rname is such as '\\server\nonexistentshare'. */ case ERROR_INVALID_NAME: /* rname contains wildcards, misplaced colon, etc. */ case ERROR_DIRECTORY: errno = ENOENT; break; case ERROR_ACCESS_DENIED: /* rname is such as 'C:\System Volume Information\foo'. */ case ERROR_SHARING_VIOLATION: /* rname is such as 'C:\pagefile.sys' (second approach only). */ /* XXX map to EACCESS or EPERM? */ errno = EACCES; break; case ERROR_OUTOFMEMORY: errno = ENOMEM; break; case ERROR_WRITE_PROTECT: errno = EROFS; break; case ERROR_WRITE_FAULT: case ERROR_READ_FAULT: case ERROR_GEN_FAILURE: errno = EIO; break; case ERROR_BUFFER_OVERFLOW: case ERROR_FILENAME_EXCED_RANGE: errno = ENAMETOOLONG; break; case ERROR_DELETE_PENDING: /* XXX map to EACCESS or EPERM? */ errno = EPERM; break; default: errno = EINVAL; break; } return -1; } #else int result = orig_stat (name, buf); if (result == 0) { # if REPLACE_FUNC_STAT_FILE /* Solaris 9 mistakenly succeeds when given a non-directory with a trailing slash. */ if (!S_ISDIR (buf->st_mode)) { size_t len = strlen (name); if (ISSLASH (name[len - 1])) { errno = ENOTDIR; return -1; } } # endif /* REPLACE_FUNC_STAT_FILE */ result = stat_time_normalize (result, buf); } return result; #endif } libprelude-5.2.0/libmissing/PaxHeaders.14770/strcasecmp.c0000644000000000000000000000011013726163410021313 xustar000000000000000024 mtime=1599661832.602 24 atime=1599661832.758 24 ctime=1599661998.971 libprelude-5.2.0/libmissing/strcasecmp.c0000644000000000000000000000345713726163410020327 0ustar00rootroot00000000000000/* Case-insensitive string comparison function. Copyright (C) 1998-1999, 2005-2007, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include #include #include #define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) /* Compare strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function does not work with multibyte strings! */ int strcasecmp (const char *s1, const char *s2) { const unsigned char *p1 = (const unsigned char *) s1; const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; if (p1 == p2) return 0; do { c1 = TOLOWER (*p1); c2 = TOLOWER (*p2); if (c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) return c1 - c2; else /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); } libprelude-5.2.0/libmissing/PaxHeaders.14770/strncasecmp.c0000644000000000000000000000011013726163410021471 xustar000000000000000024 mtime=1599661832.604 24 atime=1599661832.759 24 ctime=1599661998.973 libprelude-5.2.0/libmissing/strncasecmp.c0000644000000000000000000000360713726163410020502 0ustar00rootroot00000000000000/* strncasecmp.c -- case insensitive string comparator Copyright (C) 1998-1999, 2005-2007, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include #include #include #define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) /* Compare no more than N bytes of strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function cannot work correctly in multibyte locales. */ int strncasecmp (const char *s1, const char *s2, size_t n) { register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; if (p1 == p2 || n == 0) return 0; do { c1 = TOLOWER (*p1); c2 = TOLOWER (*p2); if (--n == 0 || c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) return c1 - c2; else /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); } libprelude-5.2.0/libmissing/PaxHeaders.14770/strcasestr.c0000644000000000000000000000011013726163410021344 xustar000000000000000024 mtime=1599661832.602 24 atime=1599661832.758 24 ctime=1599661998.976 libprelude-5.2.0/libmissing/strcasestr.c0000644000000000000000000000576713726163410020366 0ustar00rootroot00000000000000/* Case-insensitive searching in a string. Copyright (C) 2005-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2005. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include #include #include #include #define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) /* Two-Way algorithm. */ #define RETURN_TYPE char * #define AVAILABLE(h, h_l, j, n_l) \ (!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l)) \ && ((h_l) = (j) + (n_l))) #define CANON_ELEMENT(c) TOLOWER (c) #define CMP_FUNC(p1, p2, l) \ strncasecmp ((const char *) (p1), (const char *) (p2), l) #include "str-two-way.h" /* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive comparison. This function gives unspecified results in multibyte locales. */ char * strcasestr (const char *haystack_start, const char *needle_start) { const char *haystack = haystack_start; const char *needle = needle_start; size_t needle_len; /* Length of NEEDLE. */ size_t haystack_len; /* Known minimum length of HAYSTACK. */ bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */ /* Determine length of NEEDLE, and in the process, make sure HAYSTACK is at least as long (no point processing all of a long NEEDLE if HAYSTACK is too short). */ while (*haystack && *needle) { ok &= (TOLOWER ((unsigned char) *haystack) == TOLOWER ((unsigned char) *needle)); haystack++; needle++; } if (*needle) return NULL; if (ok) return (char *) haystack_start; needle_len = needle - needle_start; haystack = haystack_start + 1; haystack_len = needle_len - 1; /* Perform the search. Abstract memory is considered to be an array of 'unsigned char' values, not an array of 'char' values. See ISO C 99 section 6.2.6.1. */ if (needle_len < LONG_NEEDLE_THRESHOLD) return two_way_short_needle ((const unsigned char *) haystack, haystack_len, (const unsigned char *) needle_start, needle_len); return two_way_long_needle ((const unsigned char *) haystack, haystack_len, (const unsigned char *) needle_start, needle_len); } #undef LONG_NEEDLE_THRESHOLD libprelude-5.2.0/libmissing/PaxHeaders.14770/strdup.c0000644000000000000000000000011013726163410020470 xustar000000000000000024 mtime=1599661832.602 24 atime=1599661832.758 24 ctime=1599661998.978 libprelude-5.2.0/libmissing/strdup.c0000644000000000000000000000252013726163410017472 0ustar00rootroot00000000000000/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _LIBC # include #endif /* Get specification. */ #include #include #undef __strdup #ifdef _LIBC # undef strdup #endif #ifndef weak_alias # define __strdup strdup #endif /* Duplicate S, returning an identical malloc'd string. */ char * __strdup (const char *s) { size_t len = strlen (s) + 1; void *new = malloc (len); if (new == NULL) return NULL; return (char *) memcpy (new, s, len); } #ifdef libc_hidden_def libc_hidden_def (__strdup) #endif #ifdef weak_alias weak_alias (__strdup, strdup) #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/strerror.c0000644000000000000000000000010713726163410021037 xustar000000000000000024 mtime=1599661832.603 24 atime=1599661832.759 23 ctime=1599661998.98 libprelude-5.2.0/libmissing/strerror.c0000644000000000000000000000410213726163410020031 0ustar00rootroot00000000000000/* strerror.c --- POSIX compatible system error routine Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include #include #include "intprops.h" #include "strerror-override.h" #include "verify.h" /* Use the system functions, not the gnulib overrides in this file. */ #undef sprintf char * strerror (int n) #undef strerror { static char buf[STACKBUF_LEN]; size_t len; /* Cast away const, due to the historical signature of strerror; callers should not be modifying the string. */ const char *msg = strerror_override (n); if (msg) return (char *) msg; msg = strerror (n); /* Our strerror_r implementation might use the system's strerror buffer, so all other clients of strerror have to see the error copied into a buffer that we manage. This is not thread-safe, even if the system strerror is, but portable programs shouldn't be using strerror if they care about thread-safety. */ if (!msg || !*msg) { static char const fmt[] = "Unknown error %d"; verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); sprintf (buf, fmt, n); errno = EINVAL; return buf; } /* Fix STACKBUF_LEN if this ever aborts. */ len = strlen (msg); if (sizeof buf <= len) abort (); memcpy (buf, msg, len + 1); return buf; } libprelude-5.2.0/libmissing/PaxHeaders.14770/strerror-override.c0000644000000000000000000000011013726163410022646 xustar000000000000000024 mtime=1599661832.603 24 atime=1599661832.759 24 ctime=1599661998.983 libprelude-5.2.0/libmissing/strerror-override.c0000644000000000000000000002151513726163410021655 0ustar00rootroot00000000000000/* strerror-override.c --- POSIX compatible system error routine Copyright (C) 2010-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2010. */ #include #include "strerror-override.h" #include #if GNULIB_defined_EWINSOCK /* native Windows platforms */ # if HAVE_WINSOCK2_H # include # endif #endif /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ const char * strerror_override (int errnum) { /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */ switch (errnum) { #if REPLACE_STRERROR_0 case 0: return "Success"; #endif #if GNULIB_defined_ESOCK /* native Windows platforms with older */ case EINPROGRESS: return "Operation now in progress"; case EALREADY: return "Operation already in progress"; case ENOTSOCK: return "Socket operation on non-socket"; case EDESTADDRREQ: return "Destination address required"; case EMSGSIZE: return "Message too long"; case EPROTOTYPE: return "Protocol wrong type for socket"; case ENOPROTOOPT: return "Protocol not available"; case EPROTONOSUPPORT: return "Protocol not supported"; case EOPNOTSUPP: return "Operation not supported"; case EAFNOSUPPORT: return "Address family not supported by protocol"; case EADDRINUSE: return "Address already in use"; case EADDRNOTAVAIL: return "Cannot assign requested address"; case ENETDOWN: return "Network is down"; case ENETUNREACH: return "Network is unreachable"; case ECONNRESET: return "Connection reset by peer"; case ENOBUFS: return "No buffer space available"; case EISCONN: return "Transport endpoint is already connected"; case ENOTCONN: return "Transport endpoint is not connected"; case ETIMEDOUT: return "Connection timed out"; case ECONNREFUSED: return "Connection refused"; case ELOOP: return "Too many levels of symbolic links"; case EHOSTUNREACH: return "No route to host"; case EWOULDBLOCK: return "Operation would block"; #endif #if GNULIB_defined_ESTREAMS /* native Windows platforms with older */ case ETXTBSY: return "Text file busy"; case ENODATA: return "No data available"; case ENOSR: return "Out of streams resources"; case ENOSTR: return "Device not a stream"; case ETIME: return "Timer expired"; case EOTHER: return "Other error"; #endif #if GNULIB_defined_EWINSOCK /* native Windows platforms */ case ESOCKTNOSUPPORT: return "Socket type not supported"; case EPFNOSUPPORT: return "Protocol family not supported"; case ESHUTDOWN: return "Cannot send after transport endpoint shutdown"; case ETOOMANYREFS: return "Too many references: cannot splice"; case EHOSTDOWN: return "Host is down"; case EPROCLIM: return "Too many processes"; case EUSERS: return "Too many users"; case EDQUOT: return "Disk quota exceeded"; case ESTALE: return "Stale NFS file handle"; case EREMOTE: return "Object is remote"; # if HAVE_WINSOCK2_H /* WSA_INVALID_HANDLE maps to EBADF */ /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */ /* WSA_INVALID_PARAMETER maps to EINVAL */ case WSA_OPERATION_ABORTED: return "Overlapped operation aborted"; case WSA_IO_INCOMPLETE: return "Overlapped I/O event object not in signaled state"; case WSA_IO_PENDING: return "Overlapped operations will complete later"; /* WSAEINTR maps to EINTR */ /* WSAEBADF maps to EBADF */ /* WSAEACCES maps to EACCES */ /* WSAEFAULT maps to EFAULT */ /* WSAEINVAL maps to EINVAL */ /* WSAEMFILE maps to EMFILE */ /* WSAEWOULDBLOCK maps to EWOULDBLOCK */ /* WSAEINPROGRESS maps to EINPROGRESS */ /* WSAEALREADY maps to EALREADY */ /* WSAENOTSOCK maps to ENOTSOCK */ /* WSAEDESTADDRREQ maps to EDESTADDRREQ */ /* WSAEMSGSIZE maps to EMSGSIZE */ /* WSAEPROTOTYPE maps to EPROTOTYPE */ /* WSAENOPROTOOPT maps to ENOPROTOOPT */ /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */ /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */ /* WSAEOPNOTSUPP maps to EOPNOTSUPP */ /* WSAEPFNOSUPPORT is EPFNOSUPPORT */ /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */ /* WSAEADDRINUSE maps to EADDRINUSE */ /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */ /* WSAENETDOWN maps to ENETDOWN */ /* WSAENETUNREACH maps to ENETUNREACH */ /* WSAENETRESET maps to ENETRESET */ /* WSAECONNABORTED maps to ECONNABORTED */ /* WSAECONNRESET maps to ECONNRESET */ /* WSAENOBUFS maps to ENOBUFS */ /* WSAEISCONN maps to EISCONN */ /* WSAENOTCONN maps to ENOTCONN */ /* WSAESHUTDOWN is ESHUTDOWN */ /* WSAETOOMANYREFS is ETOOMANYREFS */ /* WSAETIMEDOUT maps to ETIMEDOUT */ /* WSAECONNREFUSED maps to ECONNREFUSED */ /* WSAELOOP maps to ELOOP */ /* WSAENAMETOOLONG maps to ENAMETOOLONG */ /* WSAEHOSTDOWN is EHOSTDOWN */ /* WSAEHOSTUNREACH maps to EHOSTUNREACH */ /* WSAENOTEMPTY maps to ENOTEMPTY */ /* WSAEPROCLIM is EPROCLIM */ /* WSAEUSERS is EUSERS */ /* WSAEDQUOT is EDQUOT */ /* WSAESTALE is ESTALE */ /* WSAEREMOTE is EREMOTE */ case WSASYSNOTREADY: return "Network subsystem is unavailable"; case WSAVERNOTSUPPORTED: return "Winsock.dll version out of range"; case WSANOTINITIALISED: return "Successful WSAStartup not yet performed"; case WSAEDISCON: return "Graceful shutdown in progress"; case WSAENOMORE: case WSA_E_NO_MORE: return "No more results"; case WSAECANCELLED: case WSA_E_CANCELLED: return "Call was canceled"; case WSAEINVALIDPROCTABLE: return "Procedure call table is invalid"; case WSAEINVALIDPROVIDER: return "Service provider is invalid"; case WSAEPROVIDERFAILEDINIT: return "Service provider failed to initialize"; case WSASYSCALLFAILURE: return "System call failure"; case WSASERVICE_NOT_FOUND: return "Service not found"; case WSATYPE_NOT_FOUND: return "Class type not found"; case WSAEREFUSED: return "Database query was refused"; case WSAHOST_NOT_FOUND: return "Host not found"; case WSATRY_AGAIN: return "Nonauthoritative host not found"; case WSANO_RECOVERY: return "Nonrecoverable error"; case WSANO_DATA: return "Valid name, no data record of requested type"; /* WSA_QOS_* omitted */ # endif #endif #if GNULIB_defined_ENOMSG case ENOMSG: return "No message of desired type"; #endif #if GNULIB_defined_EIDRM case EIDRM: return "Identifier removed"; #endif #if GNULIB_defined_ENOLINK case ENOLINK: return "Link has been severed"; #endif #if GNULIB_defined_EPROTO case EPROTO: return "Protocol error"; #endif #if GNULIB_defined_EMULTIHOP case EMULTIHOP: return "Multihop attempted"; #endif #if GNULIB_defined_EBADMSG case EBADMSG: return "Bad message"; #endif #if GNULIB_defined_EOVERFLOW case EOVERFLOW: return "Value too large for defined data type"; #endif #if GNULIB_defined_ENOTSUP case ENOTSUP: return "Not supported"; #endif #if GNULIB_defined_ENETRESET case ENETRESET: return "Network dropped connection on reset"; #endif #if GNULIB_defined_ECONNABORTED case ECONNABORTED: return "Software caused connection abort"; #endif #if GNULIB_defined_ESTALE case ESTALE: return "Stale NFS file handle"; #endif #if GNULIB_defined_EDQUOT case EDQUOT: return "Disk quota exceeded"; #endif #if GNULIB_defined_ECANCELED case ECANCELED: return "Operation canceled"; #endif #if GNULIB_defined_EOWNERDEAD case EOWNERDEAD: return "Owner died"; #endif #if GNULIB_defined_ENOTRECOVERABLE case ENOTRECOVERABLE: return "State not recoverable"; #endif #if GNULIB_defined_EILSEQ case EILSEQ: return "Invalid or incomplete multibyte or wide character"; #endif default: return NULL; } } libprelude-5.2.0/libmissing/PaxHeaders.14770/strerror_r.c0000644000000000000000000000011013726163410021352 xustar000000000000000024 mtime=1599661832.603 24 atime=1599661832.759 24 ctime=1599661998.985 libprelude-5.2.0/libmissing/strerror_r.c0000644000000000000000000003253313726163410020363 0ustar00rootroot00000000000000/* strerror_r.c --- POSIX compatible system error routine Copyright (C) 2010-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2010. */ #include /* Enable declaration of sys_nerr and sys_errlist in on NetBSD. */ #define _NETBSD_SOURCE 1 /* Specification. */ #include #include #include #include #if !HAVE_SNPRINTF # include #endif #include "strerror-override.h" #if (__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__) && HAVE___XPG_STRERROR_R /* glibc >= 2.3.4, cygwin >= 1.7.9 */ # define USE_XPG_STRERROR_R 1 extern #ifdef __cplusplus "C" #endif int __xpg_strerror_r (int errnum, char *buf, size_t buflen); #elif HAVE_DECL_STRERROR_R && !(__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__) /* The system's strerror_r function is OK, except that its third argument is 'int', not 'size_t', or its return type is wrong. */ # include # define USE_SYSTEM_STRERROR_R 1 #else /* (__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__ ? !HAVE___XPG_STRERROR_R : !HAVE_DECL_STRERROR_R) */ /* Use the system's strerror(). Exclude glibc and cygwin because the system strerror_r has the wrong return type, and cygwin 1.7.9 strerror_r clobbers strerror. */ # undef strerror # define USE_SYSTEM_STRERROR 1 # if defined __NetBSD__ || defined __hpux || (defined _WIN32 && !defined __CYGWIN__) || defined __sgi || (defined __sun && !defined _LP64) || defined __CYGWIN__ /* No locking needed. */ /* Get catgets internationalization functions. */ # if HAVE_CATGETS # include # endif #ifdef __cplusplus extern "C" { #endif /* Get sys_nerr, sys_errlist on HP-UX (otherwise only declared in C++ mode). Get sys_nerr, sys_errlist on IRIX (otherwise only declared with _SGIAPI). */ # if defined __hpux || defined __sgi extern int sys_nerr; extern char *sys_errlist[]; # endif /* Get sys_nerr on Solaris. */ # if defined __sun && !defined _LP64 extern int sys_nerr; # endif #ifdef __cplusplus } #endif # else # include "glthread/lock.h" /* This lock protects the buffer returned by strerror(). We assume that no other uses of strerror() exist in the program. */ gl_lock_define_initialized(static, strerror_lock) # endif #endif /* On MSVC, there is no snprintf() function, just a _snprintf(). It is of lower quality, but sufficient for the simple use here. We only have to make sure to NUL terminate the result (_snprintf does not NUL terminate, like strncpy). */ #if !HAVE_SNPRINTF static int local_snprintf (char *buf, size_t buflen, const char *format, ...) { va_list args; int result; va_start (args, format); result = _vsnprintf (buf, buflen, format, args); va_end (args); if (buflen > 0 && (result < 0 || result >= buflen)) buf[buflen - 1] = '\0'; return result; } # define snprintf local_snprintf #endif /* Copy as much of MSG into BUF as possible, without corrupting errno. Return 0 if MSG fit in BUFLEN, otherwise return ERANGE. */ static int safe_copy (char *buf, size_t buflen, const char *msg) { size_t len = strlen (msg); int ret; if (len < buflen) { /* Although POSIX allows memcpy() to corrupt errno, we don't know of any implementation where this is a real problem. */ memcpy (buf, msg, len + 1); ret = 0; } else { memcpy (buf, msg, buflen - 1); buf[buflen - 1] = '\0'; ret = ERANGE; } return ret; } int strerror_r (int errnum, char *buf, size_t buflen) #undef strerror_r { /* Filter this out now, so that rest of this replacement knows that there is room for a non-empty message and trailing NUL. */ if (buflen <= 1) { if (buflen) *buf = '\0'; return ERANGE; } *buf = '\0'; /* Check for gnulib overrides. */ { char const *msg = strerror_override (errnum); if (msg) return safe_copy (buf, buflen, msg); } { int ret; int saved_errno = errno; #if USE_XPG_STRERROR_R { ret = __xpg_strerror_r (errnum, buf, buflen); if (ret < 0) ret = errno; if (!*buf) { /* glibc 2.13 would not touch buf on err, so we have to fall back to GNU strerror_r which always returns a thread-safe untruncated string to (partially) copy into our buf. */ safe_copy (buf, buflen, strerror_r (errnum, buf, buflen)); } } #elif USE_SYSTEM_STRERROR_R if (buflen > INT_MAX) buflen = INT_MAX; # ifdef __hpux /* On HP-UX 11.31, strerror_r always fails when buflen < 80; it also fails to change buf on EINVAL. */ { char stackbuf[80]; if (buflen < sizeof stackbuf) { ret = strerror_r (errnum, stackbuf, sizeof stackbuf); if (ret == 0) ret = safe_copy (buf, buflen, stackbuf); } else ret = strerror_r (errnum, buf, buflen); } # else ret = strerror_r (errnum, buf, buflen); /* Some old implementations may return (-1, EINVAL) instead of EINVAL. But on Haiku, valid error numbers are negative. */ # if !defined __HAIKU__ if (ret < 0) ret = errno; # endif # endif # if defined _AIX || defined __HAIKU__ /* AIX and Haiku return 0 rather than ERANGE when truncating strings; try again until we are sure we got the entire string. */ if (!ret && strlen (buf) == buflen - 1) { char stackbuf[STACKBUF_LEN]; size_t len; strerror_r (errnum, stackbuf, sizeof stackbuf); len = strlen (stackbuf); /* STACKBUF_LEN should have been large enough. */ if (len + 1 == sizeof stackbuf) abort (); if (buflen <= len) ret = ERANGE; } # else /* Solaris 10 does not populate buf on ERANGE. OpenBSD 4.7 truncates early on ERANGE rather than return a partial integer. We prefer the maximal string. We set buf[0] earlier, and we know of no implementation that modifies buf to be an unterminated string, so this strlen should be portable in practice (rather than pulling in a safer strnlen). */ if (ret == ERANGE && strlen (buf) < buflen - 1) { char stackbuf[STACKBUF_LEN]; /* STACKBUF_LEN should have been large enough. */ if (strerror_r (errnum, stackbuf, sizeof stackbuf) == ERANGE) abort (); safe_copy (buf, buflen, stackbuf); } # endif #else /* USE_SYSTEM_STRERROR */ /* Try to do what strerror (errnum) does, but without clobbering the buffer used by strerror(). */ # if defined __NetBSD__ || defined __hpux || (defined _WIN32 && !defined __CYGWIN__) || defined __CYGWIN__ /* NetBSD, HP-UX, native Windows, Cygwin */ /* NetBSD: sys_nerr, sys_errlist are declared through _NETBSD_SOURCE and above. HP-UX: sys_nerr, sys_errlist are declared explicitly above. native Windows: sys_nerr, sys_errlist are declared in . Cygwin: sys_nerr, sys_errlist are declared in . */ if (errnum >= 0 && errnum < sys_nerr) { # if HAVE_CATGETS && (defined __NetBSD__ || defined __hpux) # if defined __NetBSD__ nl_catd catd = catopen ("libc", NL_CAT_LOCALE); const char *errmsg = (catd != (nl_catd)-1 ? catgets (catd, 1, errnum, sys_errlist[errnum]) : sys_errlist[errnum]); # endif # if defined __hpux nl_catd catd = catopen ("perror", NL_CAT_LOCALE); const char *errmsg = (catd != (nl_catd)-1 ? catgets (catd, 1, 1 + errnum, sys_errlist[errnum]) : sys_errlist[errnum]); # endif # else const char *errmsg = sys_errlist[errnum]; # endif if (errmsg == NULL || *errmsg == '\0') ret = EINVAL; else ret = safe_copy (buf, buflen, errmsg); # if HAVE_CATGETS && (defined __NetBSD__ || defined __hpux) if (catd != (nl_catd)-1) catclose (catd); # endif } else ret = EINVAL; # elif defined __sgi || (defined __sun && !defined _LP64) /* IRIX, Solaris <= 9 32-bit */ /* For a valid error number, the system's strerror() function returns a pointer to a not copied string, not to a buffer. */ if (errnum >= 0 && errnum < sys_nerr) { char *errmsg = strerror (errnum); if (errmsg == NULL || *errmsg == '\0') ret = EINVAL; else ret = safe_copy (buf, buflen, errmsg); } else ret = EINVAL; # else gl_lock_lock (strerror_lock); { char *errmsg = strerror (errnum); /* For invalid error numbers, strerror() on - IRIX 6.5 returns NULL, - HP-UX 11 returns an empty string. */ if (errmsg == NULL || *errmsg == '\0') ret = EINVAL; else ret = safe_copy (buf, buflen, errmsg); } gl_lock_unlock (strerror_lock); # endif #endif #if defined _WIN32 && !defined __CYGWIN__ /* MSVC 14 defines names for many error codes in the range 100..140, but _sys_errlist contains strings only for the error codes < _sys_nerr = 43. */ if (ret == EINVAL) { const char *errmsg; switch (errnum) { case 100 /* EADDRINUSE */: errmsg = "Address already in use"; break; case 101 /* EADDRNOTAVAIL */: errmsg = "Cannot assign requested address"; break; case 102 /* EAFNOSUPPORT */: errmsg = "Address family not supported by protocol"; break; case 103 /* EALREADY */: errmsg = "Operation already in progress"; break; case 105 /* ECANCELED */: errmsg = "Operation canceled"; break; case 106 /* ECONNABORTED */: errmsg = "Software caused connection abort"; break; case 107 /* ECONNREFUSED */: errmsg = "Connection refused"; break; case 108 /* ECONNRESET */: errmsg = "Connection reset by peer"; break; case 109 /* EDESTADDRREQ */: errmsg = "Destination address required"; break; case 110 /* EHOSTUNREACH */: errmsg = "No route to host"; break; case 112 /* EINPROGRESS */: errmsg = "Operation now in progress"; break; case 113 /* EISCONN */: errmsg = "Transport endpoint is already connected"; break; case 114 /* ELOOP */: errmsg = "Too many levels of symbolic links"; break; case 115 /* EMSGSIZE */: errmsg = "Message too long"; break; case 116 /* ENETDOWN */: errmsg = "Network is down"; break; case 117 /* ENETRESET */: errmsg = "Network dropped connection on reset"; break; case 118 /* ENETUNREACH */: errmsg = "Network is unreachable"; break; case 119 /* ENOBUFS */: errmsg = "No buffer space available"; break; case 123 /* ENOPROTOOPT */: errmsg = "Protocol not available"; break; case 126 /* ENOTCONN */: errmsg = "Transport endpoint is not connected"; break; case 128 /* ENOTSOCK */: errmsg = "Socket operation on non-socket"; break; case 129 /* ENOTSUP */: errmsg = "Not supported"; break; case 130 /* EOPNOTSUPP */: errmsg = "Operation not supported"; break; case 132 /* EOVERFLOW */: errmsg = "Value too large for defined data type"; break; case 133 /* EOWNERDEAD */: errmsg = "Owner died"; break; case 134 /* EPROTO */: errmsg = "Protocol error"; break; case 135 /* EPROTONOSUPPORT */: errmsg = "Protocol not supported"; break; case 136 /* EPROTOTYPE */: errmsg = "Protocol wrong type for socket"; break; case 138 /* ETIMEDOUT */: errmsg = "Connection timed out"; break; case 140 /* EWOULDBLOCK */: errmsg = "Operation would block"; break; default: errmsg = NULL; break; } if (errmsg != NULL) ret = safe_copy (buf, buflen, errmsg); } #endif if (ret == EINVAL && !*buf) { #if defined __HAIKU__ /* For consistency with perror(). */ snprintf (buf, buflen, "Unknown Application Error (%d)", errnum); #else snprintf (buf, buflen, "Unknown error %d", errnum); #endif } errno = saved_errno; return ret; } } libprelude-5.2.0/libmissing/PaxHeaders.14770/strndup.c0000644000000000000000000000011013726163410020646 xustar000000000000000024 mtime=1599661832.604 24 atime=1599661832.759 24 ctime=1599661998.988 libprelude-5.2.0/libmissing/strndup.c0000644000000000000000000000205413726163410017652 0ustar00rootroot00000000000000/* A replacement function, for systems that lack strndup. Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include #include #include char * strndup (char const *s, size_t n) { size_t len = strnlen (s, n); char *new = malloc (len + 1); if (new == NULL) return NULL; new[len] = '\0'; return memcpy (new, s, len); } libprelude-5.2.0/libmissing/PaxHeaders.14770/strnlen.c0000644000000000000000000000010713726163410020642 xustar000000000000000024 mtime=1599661832.604 24 atime=1599661832.759 23 ctime=1599661998.99 libprelude-5.2.0/libmissing/strnlen.c0000644000000000000000000000221413726163410017636 0ustar00rootroot00000000000000/* Find the length of STRING, but scan at most MAXLEN characters. Copyright (C) 2005-2007, 2009-2018 Free Software Foundation, Inc. Written by Simon Josefsson. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include #include /* Find the length of STRING, but scan at most MAXLEN characters. If no '\0' terminator is found in that many characters, return MAXLEN. */ size_t strnlen (const char *string, size_t maxlen) { const char *end = memchr (string, '\0', maxlen); return end ? (size_t) (end - string) : maxlen; } libprelude-5.2.0/libmissing/PaxHeaders.14770/strptime.c0000644000000000000000000000011013726163410021016 xustar000000000000000024 mtime=1599661832.605 24 atime=1599661832.759 24 ctime=1599661998.993 libprelude-5.2.0/libmissing/strptime.c0000644000000000000000000011063013726163410020022 0ustar00rootroot00000000000000/* Copyright (C) 2002, 2004-2005, 2007, 2009-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _LIBC # include #endif #include #include #include #ifdef _LIBC # include #endif #include #include #include #ifdef _LIBC # include "../locale/localeinfo.h" #endif #ifndef _LIBC enum ptime_locale_status { not, loc, raw }; #endif #define match_char(ch1, ch2) if (ch1 != ch2) return NULL #if defined _LIBC && defined __GNUC__ && __GNUC__ >= 2 # define match_string(cs1, s2) \ ({ size_t len = strlen (cs1); \ int result = __strncasecmp_l ((cs1), (s2), len, locale) == 0; \ if (result) (s2) += len; \ result; }) #else /* Oh come on. Get a reasonable compiler. */ # define match_string(cs1, s2) \ (strncasecmp ((cs1), (s2), strlen (cs1)) ? 0 : ((s2) += strlen (cs1), 1)) #endif /* We intentionally do not use isdigit() for testing because this will lead to problems with the wide character version. */ #define get_number(from, to, n) \ do { \ int __n = n; \ val = 0; \ while (*rp == ' ') \ ++rp; \ if (*rp < '0' || *rp > '9') \ return NULL; \ do { \ val *= 10; \ val += *rp++ - '0'; \ } while (--__n > 0 && val * 10 <= to && *rp >= '0' && *rp <= '9'); \ if (val < from || val > to) \ return NULL; \ } while (0) #ifdef _NL_CURRENT # define get_alt_number(from, to, n) \ ({ \ __label__ do_normal; \ \ if (*decided != raw) \ { \ val = _nl_parse_alt_digit (&rp HELPER_LOCALE_ARG); \ if (val == -1 && *decided != loc) \ { \ *decided = loc; \ goto do_normal; \ } \ if (val < from || val > to) \ return NULL; \ } \ else \ { \ do_normal: \ get_number (from, to, n); \ } \ 0; \ }) #else # define get_alt_number(from, to, n) \ /* We don't have the alternate representation. */ \ get_number(from, to, n) #endif #define recursive(new_fmt) \ (*(new_fmt) != '\0' \ && (rp = __strptime_internal (rp, (new_fmt), tm, \ decided, era_cnt LOCALE_ARG)) != NULL) #ifdef _LIBC /* This is defined in locale/C-time.c in the GNU libc. */ extern const struct locale_data _nl_C_LC_TIME attribute_hidden; # define weekday_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (DAY_1)].string) # define ab_weekday_name \ (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABDAY_1)].string) # define month_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (MON_1)].string) # define ab_month_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABMON_1)].string) # define HERE_D_T_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (D_T_FMT)].string) # define HERE_D_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (D_FMT)].string) # define HERE_AM_STR (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (AM_STR)].string) # define HERE_PM_STR (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (PM_STR)].string) # define HERE_T_FMT_AMPM \ (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (T_FMT_AMPM)].string) # define HERE_T_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (T_FMT)].string) # define strncasecmp(s1, s2, n) __strncasecmp (s1, s2, n) #else static char const weekday_name[][10] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; static char const ab_weekday_name[][4] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; static char const month_name[][10] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; static char const ab_month_name[][4] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; # define HERE_D_T_FMT "%a %b %e %H:%M:%S %Y" # define HERE_D_FMT "%m/%d/%y" # define HERE_AM_STR "AM" # define HERE_PM_STR "PM" # define HERE_T_FMT_AMPM "%I:%M:%S %p" # define HERE_T_FMT "%H:%M:%S" static const unsigned short int __mon_yday[2][13] = { /* Normal years. */ { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, /* Leap years. */ { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } }; #endif #if defined _LIBC /* We use this code also for the extended locale handling where the function gets as an additional argument the locale which has to be used. To access the values we have to redefine the _NL_CURRENT macro. */ # define strptime __strptime_l # undef _NL_CURRENT # define _NL_CURRENT(category, item) \ (current->values[_NL_ITEM_INDEX (item)].string) # undef _NL_CURRENT_WORD # define _NL_CURRENT_WORD(category, item) \ (current->values[_NL_ITEM_INDEX (item)].word) # define LOCALE_PARAM , locale # define LOCALE_ARG , locale # define LOCALE_PARAM_PROTO , __locale_t locale # define LOCALE_PARAM_DECL __locale_t locale; # define HELPER_LOCALE_ARG , current # define ISSPACE(Ch) __isspace_l (Ch, locale) #else # define LOCALE_PARAM # define LOCALE_ARG # define LOCALE_PARAM_DECL # define LOCALE_PARAM_PROTO # define HELPER_LOCALE_ARG # define ISSPACE(Ch) isspace (Ch) #endif #ifndef __isleap /* Nonzero if YEAR is a leap year (every 4 years, except every 100th isn't, and every 400th is). */ # define __isleap(year) \ ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) #endif /* Compute the day of the week. */ static void day_of_the_week (struct tm *tm) { /* We know that January 1st 1970 was a Thursday (= 4). Compute the difference between this data in the one on TM and so determine the weekday. */ int corr_year = 1900 + tm->tm_year - (tm->tm_mon < 2); int wday = (-473 + (365 * (tm->tm_year - 70)) + (corr_year / 4) - ((corr_year / 4) / 25) + ((corr_year / 4) % 25 < 0) + (((corr_year / 4) / 25) / 4) + __mon_yday[0][tm->tm_mon] + tm->tm_mday - 1); tm->tm_wday = ((wday % 7) + 7) % 7; } /* Compute the day of the year. */ static void day_of_the_year (struct tm *tm) { tm->tm_yday = (__mon_yday[__isleap (1900 + tm->tm_year)][tm->tm_mon] + (tm->tm_mday - 1)); } #ifdef _LIBC char * internal_function #else static char * #endif __strptime_internal (rp, fmt, tm, decided, era_cnt LOCALE_PARAM) const char *rp; const char *fmt; struct tm *tm; enum ptime_locale_status *decided; int era_cnt; LOCALE_PARAM_DECL { #ifdef _LIBC struct locale_data *const current = locale->__locales[LC_TIME]; #endif int cnt; size_t val; int have_I, is_pm; int century, want_century; int want_era; int have_wday, want_xday; int have_yday; int have_mon, have_mday; int have_uweek, have_wweek; int week_no; #ifdef _NL_CURRENT size_t num_eras; struct era_entry *era = NULL; const char *rp_backup; #endif have_I = is_pm = 0; century = -1; want_century = 0; want_era = 0; week_no = 0; have_wday = want_xday = have_yday = have_mon = have_mday = have_uweek = 0; have_wweek = 0; while (*fmt != '\0') { /* A white space in the format string matches 0 more or white space in the input string. */ if (ISSPACE (*fmt)) { while (ISSPACE (*rp)) ++rp; ++fmt; continue; } /* Any character but '%' must be matched by the same character in the iput string. */ if (*fmt != '%') { match_char (*fmt++, *rp++); continue; } ++fmt; #ifndef _NL_CURRENT /* We need this for handling the 'E' modifier. */ start_over: #else /* Make back up of current processing pointer. */ rp_backup = rp; #endif switch (*fmt++) { case '%': /* Match the '%' character itself. */ match_char ('%', *rp++); break; case 'a': case 'A': /* Match day of week. */ for (cnt = 0; cnt < 7; ++cnt) { #ifdef _NL_CURRENT if (*decided !=raw) { if (match_string (_NL_CURRENT (LC_TIME, DAY_1 + cnt), rp)) { if (*decided == not && strcmp (_NL_CURRENT (LC_TIME, DAY_1 + cnt), weekday_name[cnt])) *decided = loc; break; } if (match_string (_NL_CURRENT (LC_TIME, ABDAY_1 + cnt), rp)) { if (*decided == not && strcmp (_NL_CURRENT (LC_TIME, ABDAY_1 + cnt), ab_weekday_name[cnt])) *decided = loc; break; } } #endif if (*decided != loc && (match_string (weekday_name[cnt], rp) || match_string (ab_weekday_name[cnt], rp))) { *decided = raw; break; } } if (cnt == 7) /* Does not match a weekday name. */ return NULL; tm->tm_wday = cnt; have_wday = 1; break; case 'b': case 'B': case 'h': /* Match month name. */ for (cnt = 0; cnt < 12; ++cnt) { #ifdef _NL_CURRENT if (*decided !=raw) { if (match_string (_NL_CURRENT (LC_TIME, MON_1 + cnt), rp)) { if (*decided == not && strcmp (_NL_CURRENT (LC_TIME, MON_1 + cnt), month_name[cnt])) *decided = loc; break; } if (match_string (_NL_CURRENT (LC_TIME, ABMON_1 + cnt), rp)) { if (*decided == not && strcmp (_NL_CURRENT (LC_TIME, ABMON_1 + cnt), ab_month_name[cnt])) *decided = loc; break; } } #endif if (match_string (month_name[cnt], rp) || match_string (ab_month_name[cnt], rp)) { *decided = raw; break; } } if (cnt == 12) /* Does not match a month name. */ return NULL; tm->tm_mon = cnt; want_xday = 1; break; case 'c': /* Match locale's date and time format. */ #ifdef _NL_CURRENT if (*decided != raw) { if (!recursive (_NL_CURRENT (LC_TIME, D_T_FMT))) { if (*decided == loc) return NULL; else rp = rp_backup; } else { if (*decided == not && strcmp (_NL_CURRENT (LC_TIME, D_T_FMT), HERE_D_T_FMT)) *decided = loc; want_xday = 1; break; } *decided = raw; } #endif if (!recursive (HERE_D_T_FMT)) return NULL; want_xday = 1; break; case 'C': /* Match century number. */ #ifdef _NL_CURRENT match_century: #endif get_number (0, 99, 2); century = val; want_xday = 1; break; case 'd': case 'e': /* Match day of month. */ get_number (1, 31, 2); tm->tm_mday = val; have_mday = 1; want_xday = 1; break; case 'F': if (!recursive ("%Y-%m-%d")) return NULL; want_xday = 1; break; case 'x': #ifdef _NL_CURRENT if (*decided != raw) { if (!recursive (_NL_CURRENT (LC_TIME, D_FMT))) { if (*decided == loc) return NULL; else rp = rp_backup; } else { if (*decided == not && strcmp (_NL_CURRENT (LC_TIME, D_FMT), HERE_D_FMT)) *decided = loc; want_xday = 1; break; } *decided = raw; } #endif /* Fall through. */ case 'D': /* Match standard day format. */ if (!recursive (HERE_D_FMT)) return NULL; want_xday = 1; break; case 'k': case 'H': /* Match hour in 24-hour clock. */ get_number (0, 23, 2); tm->tm_hour = val; have_I = 0; break; case 'l': /* Match hour in 12-hour clock. GNU extension. */ case 'I': /* Match hour in 12-hour clock. */ get_number (1, 12, 2); tm->tm_hour = val % 12; have_I = 1; break; case 'j': /* Match day number of year. */ get_number (1, 366, 3); tm->tm_yday = val - 1; have_yday = 1; break; case 'm': /* Match number of month. */ get_number (1, 12, 2); tm->tm_mon = val - 1; have_mon = 1; want_xday = 1; break; case 'M': /* Match minute. */ get_number (0, 59, 2); tm->tm_min = val; break; case 'n': case 't': /* Match any white space. */ while (ISSPACE (*rp)) ++rp; break; case 'p': /* Match locale's equivalent of AM/PM. */ #ifdef _NL_CURRENT if (*decided != raw) { if (match_string (_NL_CURRENT (LC_TIME, AM_STR), rp)) { if (strcmp (_NL_CURRENT (LC_TIME, AM_STR), HERE_AM_STR)) *decided = loc; break; } if (match_string (_NL_CURRENT (LC_TIME, PM_STR), rp)) { if (strcmp (_NL_CURRENT (LC_TIME, PM_STR), HERE_PM_STR)) *decided = loc; is_pm = 1; break; } *decided = raw; } #endif if (!match_string (HERE_AM_STR, rp)) { if (match_string (HERE_PM_STR, rp)) is_pm = 1; else return NULL; } break; case 'q': /* Match quarter of year. GNU extension. */ get_number (1, 4, 1); tm->tm_mon = (val - 1) * 3; tm->tm_mday = 1; have_mon = 1; have_mday = 1; want_xday = 1; break; case 'r': #ifdef _NL_CURRENT if (*decided != raw) { if (!recursive (_NL_CURRENT (LC_TIME, T_FMT_AMPM))) { if (*decided == loc) return NULL; else rp = rp_backup; } else { if (*decided == not && strcmp (_NL_CURRENT (LC_TIME, T_FMT_AMPM), HERE_T_FMT_AMPM)) *decided = loc; break; } *decided = raw; } #endif if (!recursive (HERE_T_FMT_AMPM)) return NULL; break; case 'R': if (!recursive ("%H:%M")) return NULL; break; case 's': { /* The number of seconds may be very high so we cannot use the 'get_number' macro. Instead read the number character for character and construct the result while doing this. */ time_t secs = 0; if (*rp < '0' || *rp > '9') /* We need at least one digit. */ return NULL; do { secs *= 10; secs += *rp++ - '0'; } while (*rp >= '0' && *rp <= '9'); if (localtime_r (&secs, tm) == NULL) /* Error in function. */ return NULL; } break; case 'S': get_number (0, 61, 2); tm->tm_sec = val; break; case 'X': #ifdef _NL_CURRENT if (*decided != raw) { if (!recursive (_NL_CURRENT (LC_TIME, T_FMT))) { if (*decided == loc) return NULL; else rp = rp_backup; } else { if (strcmp (_NL_CURRENT (LC_TIME, T_FMT), HERE_T_FMT)) *decided = loc; break; } *decided = raw; } #endif /* Fall through. */ case 'T': if (!recursive (HERE_T_FMT)) return NULL; break; case 'u': get_number (1, 7, 1); tm->tm_wday = val % 7; have_wday = 1; break; case 'g': get_number (0, 99, 2); /* XXX This cannot determine any field in TM. */ break; case 'G': if (*rp < '0' || *rp > '9') return NULL; /* XXX Ignore the number since we would need some more information to compute a real date. */ do ++rp; while (*rp >= '0' && *rp <= '9'); break; case 'U': get_number (0, 53, 2); week_no = val; have_uweek = 1; break; case 'W': get_number (0, 53, 2); week_no = val; have_wweek = 1; break; case 'V': get_number (0, 53, 2); /* XXX This cannot determine any field in TM without some information. */ break; case 'w': /* Match number of weekday. */ get_number (0, 6, 1); tm->tm_wday = val; have_wday = 1; break; case 'y': #ifdef _NL_CURRENT match_year_in_century: #endif /* Match year within century. */ get_number (0, 99, 2); /* The "Year 2000: The Millennium Rollover" paper suggests that values in the range 69-99 refer to the twentieth century. */ tm->tm_year = val >= 69 ? val : val + 100; /* Indicate that we want to use the century, if specified. */ want_century = 1; want_xday = 1; break; case 'Y': /* Match year including century number. */ get_number (0, 9999, 4); tm->tm_year = val - 1900; want_century = 0; want_xday = 1; break; case 'Z': /* XXX How to handle this? */ break; case 'z': /* We recognize two formats: if two digits are given, these specify hours. If fours digits are used, minutes are also specified. */ { bool neg _GL_UNUSED; int n; val = 0; while (*rp == ' ') ++rp; if (*rp != '+' && *rp != '-') return NULL; neg = *rp++ == '-'; n = 0; while (n < 4 && *rp >= '0' && *rp <= '9') { val = val * 10 + *rp++ - '0'; ++n; } if (n == 2) val *= 100; else if (n != 4) /* Only two or four digits recognized. */ return NULL; else { /* We have to convert the minutes into decimal. */ if (val % 100 >= 60) return NULL; val = (val / 100) * 100 + ((val % 100) * 50) / 30; } if (val > 1200) return NULL; #if defined _LIBC || HAVE_TM_GMTOFF tm->tm_gmtoff = (val * 3600) / 100; if (neg) tm->tm_gmtoff = -tm->tm_gmtoff; #endif } break; case 'E': #ifdef _NL_CURRENT switch (*fmt++) { case 'c': /* Match locale's alternate date and time format. */ if (*decided != raw) { const char *fmt = _NL_CURRENT (LC_TIME, ERA_D_T_FMT); if (*fmt == '\0') fmt = _NL_CURRENT (LC_TIME, D_T_FMT); if (!recursive (fmt)) { if (*decided == loc) return NULL; else rp = rp_backup; } else { if (strcmp (fmt, HERE_D_T_FMT)) *decided = loc; want_xday = 1; break; } *decided = raw; } /* The C locale has no era information, so use the normal representation. */ if (!recursive (HERE_D_T_FMT)) return NULL; want_xday = 1; break; case 'C': if (*decided != raw) { if (era_cnt >= 0) { era = _nl_select_era_entry (era_cnt HELPER_LOCALE_ARG); if (era != NULL && match_string (era->era_name, rp)) { *decided = loc; break; } else return NULL; } num_eras = _NL_CURRENT_WORD (LC_TIME, _NL_TIME_ERA_NUM_ENTRIES); for (era_cnt = 0; era_cnt < (int) num_eras; ++era_cnt, rp = rp_backup) { era = _nl_select_era_entry (era_cnt HELPER_LOCALE_ARG); if (era != NULL && match_string (era->era_name, rp)) { *decided = loc; break; } } if (era_cnt != (int) num_eras) break; era_cnt = -1; if (*decided == loc) return NULL; *decided = raw; } /* The C locale has no era information, so use the normal representation. */ goto match_century; case 'y': if (*decided != raw) { get_number(0, 9999, 4); tm->tm_year = val; want_era = 1; want_xday = 1; want_century = 1; if (era_cnt >= 0) { assert (*decided == loc); era = _nl_select_era_entry (era_cnt HELPER_LOCALE_ARG); bool match = false; if (era != NULL) { int delta = ((tm->tm_year - era->offset) * era->absolute_direction); match = (delta >= 0 && delta < (((int64_t) era->stop_date[0] - (int64_t) era->start_date[0]) * era->absolute_direction)); } if (! match) return NULL; break; } num_eras = _NL_CURRENT_WORD (LC_TIME, _NL_TIME_ERA_NUM_ENTRIES); for (era_cnt = 0; era_cnt < (int) num_eras; ++era_cnt) { era = _nl_select_era_entry (era_cnt HELPER_LOCALE_ARG); if (era != NULL) { int delta = ((tm->tm_year - era->offset) * era->absolute_direction); if (delta >= 0 && delta < (((int64_t) era->stop_date[0] - (int64_t) era->start_date[0]) * era->absolute_direction)) { *decided = loc; break; } } } if (era_cnt != (int) num_eras) break; era_cnt = -1; if (*decided == loc) return NULL; *decided = raw; } goto match_year_in_century; case 'Y': if (*decided != raw) { num_eras = _NL_CURRENT_WORD (LC_TIME, _NL_TIME_ERA_NUM_ENTRIES); for (era_cnt = 0; era_cnt < (int) num_eras; ++era_cnt, rp = rp_backup) { era = _nl_select_era_entry (era_cnt HELPER_LOCALE_ARG); if (era != NULL && recursive (era->era_format)) break; } if (era_cnt == (int) num_eras) { era_cnt = -1; if (*decided == loc) return NULL; else rp = rp_backup; } else { *decided = loc; era_cnt = -1; break; } *decided = raw; } get_number (0, 9999, 4); tm->tm_year = val - 1900; want_century = 0; want_xday = 1; break; case 'x': if (*decided != raw) { const char *fmt = _NL_CURRENT (LC_TIME, ERA_D_FMT); if (*fmt == '\0') fmt = _NL_CURRENT (LC_TIME, D_FMT); if (!recursive (fmt)) { if (*decided == loc) return NULL; else rp = rp_backup; } else { if (strcmp (fmt, HERE_D_FMT)) *decided = loc; break; } *decided = raw; } if (!recursive (HERE_D_FMT)) return NULL; break; case 'X': if (*decided != raw) { const char *fmt = _NL_CURRENT (LC_TIME, ERA_T_FMT); if (*fmt == '\0') fmt = _NL_CURRENT (LC_TIME, T_FMT); if (!recursive (fmt)) { if (*decided == loc) return NULL; else rp = rp_backup; } else { if (strcmp (fmt, HERE_T_FMT)) *decided = loc; break; } *decided = raw; } if (!recursive (HERE_T_FMT)) return NULL; break; default: return NULL; } break; #else /* We have no information about the era format. Just use the normal format. */ if (*fmt != 'c' && *fmt != 'C' && *fmt != 'y' && *fmt != 'Y' && *fmt != 'x' && *fmt != 'X') /* This is an illegal format. */ return NULL; goto start_over; #endif case 'O': switch (*fmt++) { case 'd': case 'e': /* Match day of month using alternate numeric symbols. */ get_alt_number (1, 31, 2); tm->tm_mday = val; have_mday = 1; want_xday = 1; break; case 'H': /* Match hour in 24-hour clock using alternate numeric symbols. */ get_alt_number (0, 23, 2); tm->tm_hour = val; have_I = 0; break; case 'I': /* Match hour in 12-hour clock using alternate numeric symbols. */ get_alt_number (1, 12, 2); tm->tm_hour = val % 12; have_I = 1; break; case 'm': /* Match month using alternate numeric symbols. */ get_alt_number (1, 12, 2); tm->tm_mon = val - 1; have_mon = 1; want_xday = 1; break; case 'M': /* Match minutes using alternate numeric symbols. */ get_alt_number (0, 59, 2); tm->tm_min = val; break; case 'q': /* Match quarter using alternate numeric symbols. */ get_alt_number (1, 4, 1); tm->tm_mon = (val - 1) * 3; tm->tm_mday = 1; have_mon = 1; have_mday = 1; want_xday = 1; break; case 'S': /* Match seconds using alternate numeric symbols. */ get_alt_number (0, 61, 2); tm->tm_sec = val; break; case 'U': get_alt_number (0, 53, 2); week_no = val; have_uweek = 1; break; case 'W': get_alt_number (0, 53, 2); week_no = val; have_wweek = 1; break; case 'V': get_alt_number (0, 53, 2); /* XXX This cannot determine any field in TM without further information. */ break; case 'w': /* Match number of weekday using alternate numeric symbols. */ get_alt_number (0, 6, 1); tm->tm_wday = val; have_wday = 1; break; case 'y': /* Match year within century using alternate numeric symbols. */ get_alt_number (0, 99, 2); tm->tm_year = val >= 69 ? val : val + 100; want_xday = 1; break; default: return NULL; } break; default: return NULL; } } if (have_I && is_pm) tm->tm_hour += 12; if (century != -1) { if (want_century) tm->tm_year = tm->tm_year % 100 + (century - 19) * 100; else /* Only the century, but not the year. Strange, but so be it. */ tm->tm_year = (century - 19) * 100; } if (era_cnt != -1) { #ifdef _NL_CURRENT era = _nl_select_era_entry (era_cnt HELPER_LOCALE_ARG); if (era == NULL) return NULL; if (want_era) tm->tm_year = (era->start_date[0] + ((tm->tm_year - era->offset) * era->absolute_direction)); else /* Era start year assumed. */ tm->tm_year = era->start_date[0]; #endif } else if (want_era) { /* No era found but we have seen an E modifier. Rectify some values. */ if (want_century && century == -1 && tm->tm_year < 69) tm->tm_year += 100; } if (want_xday && !have_wday) { if ( !(have_mon && have_mday) && have_yday) { /* We don't have tm_mon and/or tm_mday, compute them. */ int t_mon = 0; while (__mon_yday[__isleap(1900 + tm->tm_year)][t_mon] <= tm->tm_yday) t_mon++; if (!have_mon) tm->tm_mon = t_mon - 1; if (!have_mday) tm->tm_mday = (tm->tm_yday - __mon_yday[__isleap(1900 + tm->tm_year)][t_mon - 1] + 1); } day_of_the_week (tm); } if (want_xday && !have_yday) day_of_the_year (tm); if ((have_uweek || have_wweek) && have_wday) { int save_wday = tm->tm_wday; int save_mday = tm->tm_mday; int save_mon = tm->tm_mon; int w_offset = have_uweek ? 0 : 1; tm->tm_mday = 1; tm->tm_mon = 0; day_of_the_week (tm); if (have_mday) tm->tm_mday = save_mday; if (have_mon) tm->tm_mon = save_mon; if (!have_yday) tm->tm_yday = ((7 - (tm->tm_wday - w_offset)) % 7 + (week_no - 1) *7 + save_wday - w_offset); if (!have_mday || !have_mon) { int t_mon = 0; while (__mon_yday[__isleap(1900 + tm->tm_year)][t_mon] <= tm->tm_yday) t_mon++; if (!have_mon) tm->tm_mon = t_mon - 1; if (!have_mday) tm->tm_mday = (tm->tm_yday - __mon_yday[__isleap(1900 + tm->tm_year)][t_mon - 1] + 1); } tm->tm_wday = save_wday; } return (char *) rp; } char * strptime (buf, format, tm LOCALE_PARAM) const char *restrict buf; const char *restrict format; struct tm *restrict tm; LOCALE_PARAM_DECL { enum ptime_locale_status decided; #ifdef _NL_CURRENT decided = not; #else decided = raw; #endif return __strptime_internal (buf, format, tm, &decided, -1 LOCALE_ARG); } #ifdef _LIBC weak_alias (__strptime_l, strptime_l) #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/strsep.c0000644000000000000000000000011013726163410020467 xustar000000000000000024 mtime=1599661832.605 24 atime=1599661832.759 24 ctime=1599661998.995 libprelude-5.2.0/libmissing/strsep.c0000644000000000000000000000264213726163410017476 0ustar00rootroot00000000000000/* Copyright (C) 2004, 2007, 2009-2018 Free Software Foundation, Inc. Written by Yoann Vandoorselaere . This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifdef HAVE_CONFIG_H # include #endif /* Specification. */ #include char * strsep (char **stringp, const char *delim) { char *start = *stringp; char *ptr; if (start == NULL) return NULL; /* Optimize the case of no delimiters. */ if (delim[0] == '\0') { *stringp = NULL; return start; } /* Optimize the case of one delimiter. */ if (delim[1] == '\0') ptr = strchr (start, delim[0]); else /* The general case. */ ptr = strpbrk (start, delim); if (ptr == NULL) { *stringp = NULL; return start; } *ptr = '\0'; *stringp = ptr + 1; return start; } libprelude-5.2.0/libmissing/PaxHeaders.14770/time_r.c0000644000000000000000000000011013726163410020426 xustar000000000000000024 mtime=1599661832.652 24 atime=1599661832.771 24 ctime=1599661998.997 libprelude-5.2.0/libmissing/time_r.c0000644000000000000000000000232313726163410017431 0ustar00rootroot00000000000000/* Reentrant time functions like localtime_r. Copyright (C) 2003, 2006-2007, 2010-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Paul Eggert. */ #include #include static struct tm * copy_tm_result (struct tm *dest, struct tm const *src) { if (! src) return 0; *dest = *src; return dest; } struct tm * gmtime_r (time_t const * restrict t, struct tm * restrict tp) { return copy_tm_result (tp, gmtime (t)); } struct tm * localtime_r (time_t const * restrict t, struct tm * restrict tp) { return copy_tm_result (tp, localtime (t)); } libprelude-5.2.0/libmissing/PaxHeaders.14770/timegm.c0000644000000000000000000000010413726163410020434 xustar000000000000000024 mtime=1599661832.652 24 atime=1599661832.771 20 ctime=1599661999 libprelude-5.2.0/libmissing/timegm.c0000644000000000000000000000223013726163410017431 0ustar00rootroot00000000000000/* Convert UTC calendar time to simple time. Like mktime but assumes UTC. Copyright (C) 1994-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _LIBC # include #endif #include #ifdef _LIBC typedef long int mktime_offset_t; #else # include "mktime-internal.h" #endif time_t timegm (struct tm *tmp) { static mktime_offset_t gmtime_offset; tmp->tm_isdst = 0; return __mktime_internal (tmp, __gmtime_r, &gmtime_offset); } libprelude-5.2.0/libmissing/PaxHeaders.14770/uname.c0000644000000000000000000000011013726163410020254 xustar000000000000000024 mtime=1599661832.652 24 atime=1599661832.771 24 ctime=1599661999.002 libprelude-5.2.0/libmissing/uname.c0000644000000000000000000002102713726163410017261 0ustar00rootroot00000000000000/* uname replacement. Copyright (C) 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include /* This file provides an implementation only for the native Windows API. */ #if defined _WIN32 && ! defined __CYGWIN__ #include #include #include #include #include /* Mingw headers don't have all the platform codes. */ #ifndef VER_PLATFORM_WIN32_CE # define VER_PLATFORM_WIN32_CE 3 #endif /* Some headers don't have all the processor architecture codes. */ #ifndef PROCESSOR_ARCHITECTURE_AMD64 # define PROCESSOR_ARCHITECTURE_AMD64 9 #endif #ifndef PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 # define PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 10 #endif /* Mingw headers don't have the latest processor codes. */ #ifndef PROCESSOR_AMD_X8664 # define PROCESSOR_AMD_X8664 8664 #endif int uname (struct utsname *buf) { OSVERSIONINFO version; OSVERSIONINFOEX versionex; BOOL have_versionex; /* indicates whether versionex is filled */ const char *super_version; /* Preparation: Fill version and, if possible, also versionex. But try to call GetVersionEx only once in the common case. */ versionex.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX); have_versionex = GetVersionEx ((OSVERSIONINFO *) &versionex); if (have_versionex) { /* We know that OSVERSIONINFO is a subset of OSVERSIONINFOEX. */ memcpy (&version, &versionex, sizeof (OSVERSIONINFO)); } else { version.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); if (!GetVersionEx (&version)) abort (); } /* Fill in nodename. */ if (gethostname (buf->nodename, sizeof (buf->nodename)) < 0) strcpy (buf->nodename, "localhost"); /* Determine major-major Windows version. */ if (version.dwPlatformId == VER_PLATFORM_WIN32_NT) { /* Windows NT or newer. */ super_version = "NT"; } else if (version.dwPlatformId == VER_PLATFORM_WIN32_CE) { /* Windows CE or Embedded CE. */ super_version = "CE"; } else if (version.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) { /* Windows 95/98/ME. */ switch (version.dwMinorVersion) { case 0: super_version = "95"; break; case 10: super_version = "98"; break; case 90: super_version = "ME"; break; default: super_version = ""; break; } } else super_version = ""; /* Fill in sysname. */ #ifdef __MINGW32__ /* Returns a string compatible with the MSYS uname.exe program, so that no further changes are needed to GNU config.guess. For example, $ ./uname.exe -s => MINGW32_NT-5.1 */ sprintf (buf->sysname, "MINGW32_%s-%u.%u", super_version, (unsigned int) version.dwMajorVersion, (unsigned int) version.dwMinorVersion); #else sprintf (buf->sysname, "Windows%s", super_version); #endif /* Fill in release, version. */ /* The MSYS uname.exe programs uses strings from a modified Cygwin runtime: $ ./uname.exe -r => 1.0.11(0.46/3/2) $ ./uname.exe -v => 2008-08-25 23:40 There is no point in imitating this behaviour. */ if (version.dwPlatformId == VER_PLATFORM_WIN32_NT) { /* Windows NT or newer. */ struct windows_version { int major; int minor; unsigned int server_offset; const char *name; }; /* Storing the workstation and server version names in a single stream does not waste memory when they are the same. These macros abstract the representation. VERSION1 is used if version.wProductType does not matter, VERSION2 if it does. */ #define VERSION1(major, minor, name) \ { major, minor, 0, name } #define VERSION2(major, minor, workstation, server) \ { major, minor, sizeof workstation, workstation "\0" server } static const struct windows_version versions[] = { VERSION2 (3, -1, "Windows NT Workstation", "Windows NT Server"), VERSION2 (4, -1, "Windows NT Workstation", "Windows NT Server"), VERSION1 (5, 0, "Windows 2000"), VERSION1 (5, 1, "Windows XP"), VERSION1 (5, 2, "Windows Server 2003"), VERSION2 (6, 0, "Windows Vista", "Windows Server 2008"), VERSION2 (6, 1, "Windows 7", "Windows Server 2008 R2"), VERSION2 (-1, -1, "Windows", "Windows Server") }; const char *base; const struct windows_version *v = versions; /* Find a version that matches ours. The last element is a wildcard that always ends the loop. */ while ((v->major != version.dwMajorVersion && v->major != -1) || (v->minor != version.dwMinorVersion && v->minor != -1)) v++; if (have_versionex && versionex.wProductType != VER_NT_WORKSTATION) base = v->name + v->server_offset; else base = v->name; if (v->major == -1 || v->minor == -1) sprintf (buf->release, "%s %u.%u", base, (unsigned int) version.dwMajorVersion, (unsigned int) version.dwMinorVersion); else strcpy (buf->release, base); } else if (version.dwPlatformId == VER_PLATFORM_WIN32_CE) { /* Windows CE or Embedded CE. */ sprintf (buf->release, "Windows CE %u.%u", (unsigned int) version.dwMajorVersion, (unsigned int) version.dwMinorVersion); } else { /* Windows 95/98/ME. */ sprintf (buf->release, "Windows %s", super_version); } strcpy (buf->version, version.szCSDVersion); /* Fill in machine. */ { SYSTEM_INFO info; GetSystemInfo (&info); /* Check for Windows NT or CE, since the info.wProcessorLevel is garbage on Windows 95. */ if (version.dwPlatformId == VER_PLATFORM_WIN32_NT || version.dwPlatformId == VER_PLATFORM_WIN32_CE) { /* Windows NT or newer, or Windows CE or Embedded CE. */ switch (info.wProcessorArchitecture) { case PROCESSOR_ARCHITECTURE_AMD64: strcpy (buf->machine, "x86_64"); break; case PROCESSOR_ARCHITECTURE_IA64: strcpy (buf->machine, "ia64"); break; case PROCESSOR_ARCHITECTURE_INTEL: strcpy (buf->machine, "i386"); if (info.wProcessorLevel >= 3) buf->machine[1] = '0' + (info.wProcessorLevel <= 6 ? info.wProcessorLevel : 6); break; case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64: strcpy (buf->machine, "i686"); break; case PROCESSOR_ARCHITECTURE_MIPS: strcpy (buf->machine, "mips"); break; case PROCESSOR_ARCHITECTURE_ALPHA: case PROCESSOR_ARCHITECTURE_ALPHA64: strcpy (buf->machine, "alpha"); break; case PROCESSOR_ARCHITECTURE_PPC: strcpy (buf->machine, "powerpc"); break; case PROCESSOR_ARCHITECTURE_SHX: strcpy (buf->machine, "sh"); break; case PROCESSOR_ARCHITECTURE_ARM: strcpy (buf->machine, "arm"); break; default: strcpy (buf->machine, "unknown"); break; } } else { /* Windows 95/98/ME. */ switch (info.dwProcessorType) { case PROCESSOR_AMD_X8664: strcpy (buf->machine, "x86_64"); break; case PROCESSOR_INTEL_IA64: strcpy (buf->machine, "ia64"); break; default: if (info.dwProcessorType % 100 == 86) sprintf (buf->machine, "i%u", (unsigned int) info.dwProcessorType); else strcpy (buf->machine, "unknown"); break; } } } return 0; } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/asnprintf.c0000644000000000000000000000010713726163410021161 xustar000000000000000024 mtime=1599661832.534 23 atime=1599661832.74 24 ctime=1599661999.005 libprelude-5.2.0/libmissing/asnprintf.c0000644000000000000000000000207613726163410020163 0ustar00rootroot00000000000000/* Formatted output to strings. Copyright (C) 1999, 2002, 2006, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include "vasnprintf.h" #include char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...) { va_list args; char *result; va_start (args, format); result = vasnprintf (resultbuf, lengthp, format, args); va_end (args); return result; } libprelude-5.2.0/libmissing/PaxHeaders.14770/printf-args.c0000644000000000000000000000011013726163410021403 xustar000000000000000024 mtime=1599661832.589 24 atime=1599661832.754 24 ctime=1599661999.007 libprelude-5.2.0/libmissing/printf-args.c0000644000000000000000000001466213726163410020417 0ustar00rootroot00000000000000/* Decomposed printf argument list. Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* This file can be parametrized with the following macros: ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. PRINTF_FETCHARGS Name of the function to be defined. STATIC Set to 'static' to declare the function static. */ #ifndef PRINTF_FETCHARGS # include #endif /* Specification. */ #ifndef PRINTF_FETCHARGS # include "printf-args.h" #endif #ifdef STATIC STATIC #endif int PRINTF_FETCHARGS (va_list args, arguments *a) { size_t i; argument *ap; for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++) switch (ap->type) { case TYPE_SCHAR: ap->a.a_schar = va_arg (args, /*signed char*/ int); break; case TYPE_UCHAR: ap->a.a_uchar = va_arg (args, /*unsigned char*/ int); break; case TYPE_SHORT: ap->a.a_short = va_arg (args, /*short*/ int); break; case TYPE_USHORT: ap->a.a_ushort = va_arg (args, /*unsigned short*/ int); break; case TYPE_INT: ap->a.a_int = va_arg (args, int); break; case TYPE_UINT: ap->a.a_uint = va_arg (args, unsigned int); break; case TYPE_LONGINT: ap->a.a_longint = va_arg (args, long int); break; case TYPE_ULONGINT: ap->a.a_ulongint = va_arg (args, unsigned long int); break; #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: ap->a.a_longlongint = va_arg (args, long long int); break; case TYPE_ULONGLONGINT: ap->a.a_ulonglongint = va_arg (args, unsigned long long int); break; #endif case TYPE_DOUBLE: ap->a.a_double = va_arg (args, double); break; case TYPE_LONGDOUBLE: ap->a.a_longdouble = va_arg (args, long double); break; case TYPE_CHAR: ap->a.a_char = va_arg (args, int); break; #if HAVE_WINT_T case TYPE_WIDE_CHAR: /* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by default argument promotions", this is not the case in mingw32, where wint_t is 'unsigned short'. */ ap->a.a_wide_char = (sizeof (wint_t) < sizeof (int) ? (wint_t) va_arg (args, int) : va_arg (args, wint_t)); break; #endif case TYPE_STRING: ap->a.a_string = va_arg (args, const char *); /* A null pointer is an invalid argument for "%s", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_string == NULL) ap->a.a_string = "(NULL)"; break; #if HAVE_WCHAR_T case TYPE_WIDE_STRING: ap->a.a_wide_string = va_arg (args, const wchar_t *); /* A null pointer is an invalid argument for "%ls", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_wide_string == NULL) { static const wchar_t wide_null_string[] = { (wchar_t)'(', (wchar_t)'N', (wchar_t)'U', (wchar_t)'L', (wchar_t)'L', (wchar_t)')', (wchar_t)0 }; ap->a.a_wide_string = wide_null_string; } break; #endif case TYPE_POINTER: ap->a.a_pointer = va_arg (args, void *); break; case TYPE_COUNT_SCHAR_POINTER: ap->a.a_count_schar_pointer = va_arg (args, signed char *); break; case TYPE_COUNT_SHORT_POINTER: ap->a.a_count_short_pointer = va_arg (args, short *); break; case TYPE_COUNT_INT_POINTER: ap->a.a_count_int_pointer = va_arg (args, int *); break; case TYPE_COUNT_LONGINT_POINTER: ap->a.a_count_longint_pointer = va_arg (args, long int *); break; #if HAVE_LONG_LONG_INT case TYPE_COUNT_LONGLONGINT_POINTER: ap->a.a_count_longlongint_pointer = va_arg (args, long long int *); break; #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ case TYPE_U8_STRING: ap->a.a_u8_string = va_arg (args, const uint8_t *); /* A null pointer is an invalid argument for "%U", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_u8_string == NULL) { static const uint8_t u8_null_string[] = { '(', 'N', 'U', 'L', 'L', ')', 0 }; ap->a.a_u8_string = u8_null_string; } break; case TYPE_U16_STRING: ap->a.a_u16_string = va_arg (args, const uint16_t *); /* A null pointer is an invalid argument for "%lU", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_u16_string == NULL) { static const uint16_t u16_null_string[] = { '(', 'N', 'U', 'L', 'L', ')', 0 }; ap->a.a_u16_string = u16_null_string; } break; case TYPE_U32_STRING: ap->a.a_u32_string = va_arg (args, const uint32_t *); /* A null pointer is an invalid argument for "%llU", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_u32_string == NULL) { static const uint32_t u32_null_string[] = { '(', 'N', 'U', 'L', 'L', ')', 0 }; ap->a.a_u32_string = u32_null_string; } break; #endif default: /* Unknown type. */ return -1; } return 0; } libprelude-5.2.0/libmissing/PaxHeaders.14770/printf-parse.c0000644000000000000000000000010713726163410021567 xustar000000000000000023 mtime=1599661832.59 24 atime=1599661832.754 24 ctime=1599661999.009 libprelude-5.2.0/libmissing/printf-parse.c0000644000000000000000000005317213726163410020574 0ustar00rootroot00000000000000/* Formatted output to strings. Copyright (C) 1999-2000, 2002-2003, 2006-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* This file can be parametrized with the following macros: CHAR_T The element type of the format string. CHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters in the format string are ASCII. DIRECTIVE Structure denoting a format directive. Depends on CHAR_T. DIRECTIVES Structure denoting the set of format directives of a format string. Depends on CHAR_T. PRINTF_PARSE Function that parses a format string. Depends on CHAR_T. STATIC Set to 'static' to declare the function static. ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. */ #ifndef PRINTF_PARSE # include #endif /* Specification. */ #ifndef PRINTF_PARSE # include "printf-parse.h" #endif /* Default parameters. */ #ifndef PRINTF_PARSE # define PRINTF_PARSE printf_parse # define CHAR_T char # define DIRECTIVE char_directive # define DIRECTIVES char_directives #endif /* Get size_t, NULL. */ #include /* Get intmax_t. */ #if defined IN_LIBINTL || defined IN_LIBASPRINTF # if HAVE_STDINT_H_WITH_UINTMAX # include # endif # if HAVE_INTTYPES_H_WITH_UINTMAX # include # endif #else # include #endif /* malloc(), realloc(), free(). */ #include /* memcpy(). */ #include /* errno. */ #include /* Checked size_t computations. */ #include "xsize.h" #if CHAR_T_ONLY_ASCII /* c_isascii(). */ # include "c-ctype.h" #endif #ifdef STATIC STATIC #endif int PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) { const CHAR_T *cp = format; /* pointer into format */ size_t arg_posn = 0; /* number of regular arguments consumed */ size_t d_allocated; /* allocated elements of d->dir */ size_t a_allocated; /* allocated elements of a->arg */ size_t max_width_length = 0; size_t max_precision_length = 0; d->count = 0; d_allocated = N_DIRECT_ALLOC_DIRECTIVES; d->dir = d->direct_alloc_dir; a->count = 0; a_allocated = N_DIRECT_ALLOC_ARGUMENTS; a->arg = a->direct_alloc_arg; #define REGISTER_ARG(_index_,_type_) \ { \ size_t n = (_index_); \ if (n >= a_allocated) \ { \ size_t memory_size; \ argument *memory; \ \ a_allocated = xtimes (a_allocated, 2); \ if (a_allocated <= n) \ a_allocated = xsum (n, 1); \ memory_size = xtimes (a_allocated, sizeof (argument)); \ if (size_overflow_p (memory_size)) \ /* Overflow, would lead to out of memory. */ \ goto out_of_memory; \ memory = (argument *) (a->arg != a->direct_alloc_arg \ ? realloc (a->arg, memory_size) \ : malloc (memory_size)); \ if (memory == NULL) \ /* Out of memory. */ \ goto out_of_memory; \ if (a->arg == a->direct_alloc_arg) \ memcpy (memory, a->arg, a->count * sizeof (argument)); \ a->arg = memory; \ } \ while (a->count <= n) \ a->arg[a->count++].type = TYPE_NONE; \ if (a->arg[n].type == TYPE_NONE) \ a->arg[n].type = (_type_); \ else if (a->arg[n].type != (_type_)) \ /* Ambiguous type for positional argument. */ \ goto error; \ } while (*cp != '\0') { CHAR_T c = *cp++; if (c == '%') { size_t arg_index = ARG_NONE; DIRECTIVE *dp = &d->dir[d->count]; /* pointer to next directive */ /* Initialize the next directive. */ dp->dir_start = cp - 1; dp->flags = 0; dp->width_start = NULL; dp->width_end = NULL; dp->width_arg_index = ARG_NONE; dp->precision_start = NULL; dp->precision_end = NULL; dp->precision_arg_index = ARG_NONE; dp->arg_index = ARG_NONE; /* Test for positional argument. */ if (*cp >= '0' && *cp <= '9') { const CHAR_T *np; for (np = cp; *np >= '0' && *np <= '9'; np++) ; if (*np == '$') { size_t n = 0; for (np = cp; *np >= '0' && *np <= '9'; np++) n = xsum (xtimes (n, 10), *np - '0'); if (n == 0) /* Positional argument 0. */ goto error; if (size_overflow_p (n)) /* n too large, would lead to out of memory later. */ goto error; arg_index = n - 1; cp = np + 1; } } /* Read the flags. */ for (;;) { if (*cp == '\'') { dp->flags |= FLAG_GROUP; cp++; } else if (*cp == '-') { dp->flags |= FLAG_LEFT; cp++; } else if (*cp == '+') { dp->flags |= FLAG_SHOWSIGN; cp++; } else if (*cp == ' ') { dp->flags |= FLAG_SPACE; cp++; } else if (*cp == '#') { dp->flags |= FLAG_ALT; cp++; } else if (*cp == '0') { dp->flags |= FLAG_ZERO; cp++; } #if __GLIBC__ >= 2 && !defined __UCLIBC__ else if (*cp == 'I') { dp->flags |= FLAG_LOCALIZED; cp++; } #endif else break; } /* Parse the field width. */ if (*cp == '*') { dp->width_start = cp; cp++; dp->width_end = cp; if (max_width_length < 1) max_width_length = 1; /* Test for positional argument. */ if (*cp >= '0' && *cp <= '9') { const CHAR_T *np; for (np = cp; *np >= '0' && *np <= '9'; np++) ; if (*np == '$') { size_t n = 0; for (np = cp; *np >= '0' && *np <= '9'; np++) n = xsum (xtimes (n, 10), *np - '0'); if (n == 0) /* Positional argument 0. */ goto error; if (size_overflow_p (n)) /* n too large, would lead to out of memory later. */ goto error; dp->width_arg_index = n - 1; cp = np + 1; } } if (dp->width_arg_index == ARG_NONE) { dp->width_arg_index = arg_posn++; if (dp->width_arg_index == ARG_NONE) /* arg_posn wrapped around. */ goto error; } REGISTER_ARG (dp->width_arg_index, TYPE_INT); } else if (*cp >= '0' && *cp <= '9') { size_t width_length; dp->width_start = cp; for (; *cp >= '0' && *cp <= '9'; cp++) ; dp->width_end = cp; width_length = dp->width_end - dp->width_start; if (max_width_length < width_length) max_width_length = width_length; } /* Parse the precision. */ if (*cp == '.') { cp++; if (*cp == '*') { dp->precision_start = cp - 1; cp++; dp->precision_end = cp; if (max_precision_length < 2) max_precision_length = 2; /* Test for positional argument. */ if (*cp >= '0' && *cp <= '9') { const CHAR_T *np; for (np = cp; *np >= '0' && *np <= '9'; np++) ; if (*np == '$') { size_t n = 0; for (np = cp; *np >= '0' && *np <= '9'; np++) n = xsum (xtimes (n, 10), *np - '0'); if (n == 0) /* Positional argument 0. */ goto error; if (size_overflow_p (n)) /* n too large, would lead to out of memory later. */ goto error; dp->precision_arg_index = n - 1; cp = np + 1; } } if (dp->precision_arg_index == ARG_NONE) { dp->precision_arg_index = arg_posn++; if (dp->precision_arg_index == ARG_NONE) /* arg_posn wrapped around. */ goto error; } REGISTER_ARG (dp->precision_arg_index, TYPE_INT); } else { size_t precision_length; dp->precision_start = cp - 1; for (; *cp >= '0' && *cp <= '9'; cp++) ; dp->precision_end = cp; precision_length = dp->precision_end - dp->precision_start; if (max_precision_length < precision_length) max_precision_length = precision_length; } } { arg_type type; /* Parse argument type/size specifiers. */ { int flags = 0; for (;;) { if (*cp == 'h') { flags |= (1 << (flags & 1)); cp++; } else if (*cp == 'L') { flags |= 4; cp++; } else if (*cp == 'l') { flags += 8; cp++; } else if (*cp == 'j') { if (sizeof (intmax_t) > sizeof (long)) { /* intmax_t = long long */ flags += 16; } else if (sizeof (intmax_t) > sizeof (int)) { /* intmax_t = long */ flags += 8; } cp++; } else if (*cp == 'z' || *cp == 'Z') { /* 'z' is standardized in ISO C 99, but glibc uses 'Z' because the warning facility in gcc-2.95.2 understands only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784). */ if (sizeof (size_t) > sizeof (long)) { /* size_t = long long */ flags += 16; } else if (sizeof (size_t) > sizeof (int)) { /* size_t = long */ flags += 8; } cp++; } else if (*cp == 't') { if (sizeof (ptrdiff_t) > sizeof (long)) { /* ptrdiff_t = long long */ flags += 16; } else if (sizeof (ptrdiff_t) > sizeof (int)) { /* ptrdiff_t = long */ flags += 8; } cp++; } #if defined __APPLE__ && defined __MACH__ /* On Mac OS X 10.3, PRIdMAX is defined as "qd". We cannot change it to "lld" because PRIdMAX must also be understood by the system's printf routines. */ else if (*cp == 'q') { if (64 / 8 > sizeof (long)) { /* int64_t = long long */ flags += 16; } else { /* int64_t = long */ flags += 8; } cp++; } #endif #if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows, PRIdMAX is defined as "I64d". We cannot change it to "lld" because PRIdMAX must also be understood by the system's printf routines. */ else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4') { if (64 / 8 > sizeof (long)) { /* __int64 = long long */ flags += 16; } else { /* __int64 = long */ flags += 8; } cp += 3; } #endif else break; } /* Read the conversion character. */ c = *cp++; switch (c) { case 'd': case 'i': #if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_LONGLONGINT; else #endif /* If 'long long' exists and is the same as 'long', we parse "lld" into TYPE_LONGINT. */ if (flags >= 8) type = TYPE_LONGINT; else if (flags & 2) type = TYPE_SCHAR; else if (flags & 1) type = TYPE_SHORT; else type = TYPE_INT; break; case 'o': case 'u': case 'x': case 'X': #if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_ULONGLONGINT; else #endif /* If 'unsigned long long' exists and is the same as 'unsigned long', we parse "llu" into TYPE_ULONGINT. */ if (flags >= 8) type = TYPE_ULONGINT; else if (flags & 2) type = TYPE_UCHAR; else if (flags & 1) type = TYPE_USHORT; else type = TYPE_UINT; break; case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': case 'a': case 'A': if (flags >= 16 || (flags & 4)) type = TYPE_LONGDOUBLE; else type = TYPE_DOUBLE; break; case 'c': if (flags >= 8) #if HAVE_WINT_T type = TYPE_WIDE_CHAR; #else goto error; #endif else type = TYPE_CHAR; break; #if HAVE_WINT_T case 'C': type = TYPE_WIDE_CHAR; c = 'c'; break; #endif case 's': if (flags >= 8) #if HAVE_WCHAR_T type = TYPE_WIDE_STRING; #else goto error; #endif else type = TYPE_STRING; break; #if HAVE_WCHAR_T case 'S': type = TYPE_WIDE_STRING; c = 's'; break; #endif case 'p': type = TYPE_POINTER; break; case 'n': #if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_COUNT_LONGLONGINT_POINTER; else #endif /* If 'long long' exists and is the same as 'long', we parse "lln" into TYPE_COUNT_LONGINT_POINTER. */ if (flags >= 8) type = TYPE_COUNT_LONGINT_POINTER; else if (flags & 2) type = TYPE_COUNT_SCHAR_POINTER; else if (flags & 1) type = TYPE_COUNT_SHORT_POINTER; else type = TYPE_COUNT_INT_POINTER; break; #if ENABLE_UNISTDIO /* The unistdio extensions. */ case 'U': if (flags >= 16) type = TYPE_U32_STRING; else if (flags >= 8) type = TYPE_U16_STRING; else type = TYPE_U8_STRING; break; #endif case '%': type = TYPE_NONE; break; default: /* Unknown conversion character. */ goto error; } } if (type != TYPE_NONE) { dp->arg_index = arg_index; if (dp->arg_index == ARG_NONE) { dp->arg_index = arg_posn++; if (dp->arg_index == ARG_NONE) /* arg_posn wrapped around. */ goto error; } REGISTER_ARG (dp->arg_index, type); } dp->conversion = c; dp->dir_end = cp; } d->count++; if (d->count >= d_allocated) { size_t memory_size; DIRECTIVE *memory; d_allocated = xtimes (d_allocated, 2); memory_size = xtimes (d_allocated, sizeof (DIRECTIVE)); if (size_overflow_p (memory_size)) /* Overflow, would lead to out of memory. */ goto out_of_memory; memory = (DIRECTIVE *) (d->dir != d->direct_alloc_dir ? realloc (d->dir, memory_size) : malloc (memory_size)); if (memory == NULL) /* Out of memory. */ goto out_of_memory; if (d->dir == d->direct_alloc_dir) memcpy (memory, d->dir, d->count * sizeof (DIRECTIVE)); d->dir = memory; } } #if CHAR_T_ONLY_ASCII else if (!c_isascii (c)) { /* Non-ASCII character. Not supported. */ goto error; } #endif } d->dir[d->count].dir_start = cp; d->max_width_length = max_width_length; d->max_precision_length = max_precision_length; return 0; error: if (a->arg != a->direct_alloc_arg) free (a->arg); if (d->dir != d->direct_alloc_dir) free (d->dir); errno = EINVAL; return -1; out_of_memory: if (a->arg != a->direct_alloc_arg) free (a->arg); if (d->dir != d->direct_alloc_dir) free (d->dir); errno = ENOMEM; return -1; } #undef PRINTF_PARSE #undef DIRECTIVES #undef DIRECTIVE #undef CHAR_T_ONLY_ASCII #undef CHAR_T libprelude-5.2.0/libmissing/PaxHeaders.14770/vasnprintf.c0000644000000000000000000000011013726163410021341 xustar000000000000000024 mtime=1599661832.655 24 atime=1599661832.771 24 ctime=1599661999.012 libprelude-5.2.0/libmissing/vasnprintf.c0000644000000000000000000066613013726163410020360 0ustar00rootroot00000000000000/* vsprintf with automatic memory allocation. Copyright (C) 1999, 2002-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* This file can be parametrized with the following macros: VASNPRINTF The name of the function being defined. FCHAR_T The element type of the format string. DCHAR_T The element type of the destination (result) string. FCHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters in the format string are ASCII. MUST be set if FCHAR_T and DCHAR_T are not the same type. DIRECTIVE Structure denoting a format directive. Depends on FCHAR_T. DIRECTIVES Structure denoting the set of format directives of a format string. Depends on FCHAR_T. PRINTF_PARSE Function that parses a format string. Depends on FCHAR_T. DCHAR_CPY memcpy like function for DCHAR_T[] arrays. DCHAR_SET memset like function for DCHAR_T[] arrays. DCHAR_MBSNLEN mbsnlen like function for DCHAR_T[] arrays. SNPRINTF The system's snprintf (or similar) function. This may be either snprintf or swprintf. TCHAR_T The element type of the argument and result string of the said SNPRINTF function. This may be either char or wchar_t. The code exploits that sizeof (TCHAR_T) | sizeof (DCHAR_T) and alignof (TCHAR_T) <= alignof (DCHAR_T). DCHAR_IS_TCHAR Set to 1 if DCHAR_T and TCHAR_T are the same type. DCHAR_CONV_FROM_ENCODING A function to convert from char[] to DCHAR[]. DCHAR_IS_UINT8_T Set to 1 if DCHAR_T is uint8_t. DCHAR_IS_UINT16_T Set to 1 if DCHAR_T is uint16_t. DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. */ /* Tell glibc's to provide a prototype for snprintf(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifndef VASNPRINTF # include #endif #ifndef IN_LIBINTL # include #endif /* Specification. */ #ifndef VASNPRINTF # if WIDE_CHAR_VERSION # include "vasnwprintf.h" # else # include "vasnprintf.h" # endif #endif #include /* localeconv() */ #include /* snprintf(), sprintf() */ #include /* abort(), malloc(), realloc(), free() */ #include /* memcpy(), strlen() */ #include /* errno */ #include /* CHAR_BIT */ #include /* DBL_MAX_EXP, LDBL_MAX_EXP */ #if HAVE_NL_LANGINFO # include #endif #ifndef VASNPRINTF # if WIDE_CHAR_VERSION # include "wprintf-parse.h" # else # include "printf-parse.h" # endif #endif /* Checked size_t computations. */ #include "xsize.h" #include "verify.h" #if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL # include # include "float+.h" #endif #if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL # include # include "isnand-nolibm.h" #endif #if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL # include # include "isnanl-nolibm.h" # include "fpucw.h" #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL # include # include "isnand-nolibm.h" # include "printf-frexp.h" #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL # include # include "isnanl-nolibm.h" # include "printf-frexpl.h" # include "fpucw.h" #endif #ifndef FALLTHROUGH # if __GNUC__ < 7 # define FALLTHROUGH ((void) 0) # else # define FALLTHROUGH __attribute__ ((__fallthrough__)) # endif #endif /* Default parameters. */ #ifndef VASNPRINTF # if WIDE_CHAR_VERSION # define VASNPRINTF vasnwprintf # define FCHAR_T wchar_t # define DCHAR_T wchar_t # define TCHAR_T wchar_t # define DCHAR_IS_TCHAR 1 # define DIRECTIVE wchar_t_directive # define DIRECTIVES wchar_t_directives # define PRINTF_PARSE wprintf_parse # define DCHAR_CPY wmemcpy # define DCHAR_SET wmemset # else # define VASNPRINTF vasnprintf # define FCHAR_T char # define DCHAR_T char # define TCHAR_T char # define DCHAR_IS_TCHAR 1 # define DIRECTIVE char_directive # define DIRECTIVES char_directives # define PRINTF_PARSE printf_parse # define DCHAR_CPY memcpy # define DCHAR_SET memset # endif #endif #if WIDE_CHAR_VERSION /* TCHAR_T is wchar_t. */ # define USE_SNPRINTF 1 # if HAVE_DECL__SNWPRINTF /* On Windows, the function swprintf() has a different signature than on Unix; we use the function _snwprintf() or - on mingw - snwprintf() instead. The mingw function snwprintf() has fewer bugs than the MSVCRT function _snwprintf(), so prefer that. */ # if defined __MINGW32__ # define SNPRINTF snwprintf # else # define SNPRINTF _snwprintf # define USE_MSVC__SNPRINTF 1 # endif # else /* Unix. */ # define SNPRINTF swprintf # endif #else /* TCHAR_T is char. */ /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'. But don't use it on BeOS, since BeOS snprintf produces no output if the size argument is >= 0x3000000. Also don't use it on Linux libc5, since there snprintf with size = 1 writes any output without bounds, like sprintf. */ # if (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) && !defined __BEOS__ && !(__GNU_LIBRARY__ == 1) # define USE_SNPRINTF 1 # else # define USE_SNPRINTF 0 # endif # if HAVE_DECL__SNPRINTF /* Windows. The mingw function snprintf() has fewer bugs than the MSVCRT function _snprintf(), so prefer that. */ # if defined __MINGW32__ # define SNPRINTF snprintf /* Here we need to call the native snprintf, not rpl_snprintf. */ # undef snprintf # else /* MSVC versions < 14 did not have snprintf, only _snprintf. */ # define SNPRINTF _snprintf # define USE_MSVC__SNPRINTF 1 # endif # else /* Unix. */ # define SNPRINTF snprintf /* Here we need to call the native snprintf, not rpl_snprintf. */ # undef snprintf # endif #endif /* Here we need to call the native sprintf, not rpl_sprintf. */ #undef sprintf /* GCC >= 4.0 with -Wall emits unjustified "... may be used uninitialized" warnings in this file. Use -Dlint to suppress them. */ #if defined GCC_LINT || defined lint # define IF_LINT(Code) Code #else # define IF_LINT(Code) /* empty */ #endif /* Avoid some warnings from "gcc -Wshadow". This file doesn't use the exp() and remainder() functions. */ #undef exp #define exp expo #undef remainder #define remainder rem #if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && !WIDE_CHAR_VERSION # if (HAVE_STRNLEN && !defined _AIX) # define local_strnlen strnlen # else # ifndef local_strnlen_defined # define local_strnlen_defined 1 static size_t local_strnlen (const char *string, size_t maxlen) { const char *end = memchr (string, '\0', maxlen); return end ? (size_t) (end - string) : maxlen; } # endif # endif #endif #if (((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && WIDE_CHAR_VERSION) || ((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && !WIDE_CHAR_VERSION && DCHAR_IS_TCHAR)) && HAVE_WCHAR_T # if HAVE_WCSLEN # define local_wcslen wcslen # else /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid a dependency towards this library, here is a local substitute. Define this substitute only once, even if this file is included twice in the same compilation unit. */ # ifndef local_wcslen_defined # define local_wcslen_defined 1 static size_t local_wcslen (const wchar_t *s) { const wchar_t *ptr; for (ptr = s; *ptr != (wchar_t) 0; ptr++) ; return ptr - s; } # endif # endif #endif #if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && HAVE_WCHAR_T && WIDE_CHAR_VERSION # if HAVE_WCSNLEN # define local_wcsnlen wcsnlen # else # ifndef local_wcsnlen_defined # define local_wcsnlen_defined 1 static size_t local_wcsnlen (const wchar_t *s, size_t maxlen) { const wchar_t *ptr; for (ptr = s; maxlen > 0 && *ptr != (wchar_t) 0; ptr++, maxlen--) ; return ptr - s; } # endif # endif #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL /* Determine the decimal-point character according to the current locale. */ # ifndef decimal_point_char_defined # define decimal_point_char_defined 1 static char decimal_point_char (void) { const char *point; /* Determine it in a multithread-safe way. We know nl_langinfo is multithread-safe on glibc systems and Mac OS X systems, but is not required to be multithread-safe by POSIX. sprintf(), however, is multithread-safe. localeconv() is rarely multithread-safe. */ # if HAVE_NL_LANGINFO && (__GLIBC__ || defined __UCLIBC__ || (defined __APPLE__ && defined __MACH__)) point = nl_langinfo (RADIXCHAR); # elif 1 char pointbuf[5]; sprintf (pointbuf, "%#.0f", 1.0); point = &pointbuf[1]; # else point = localeconv () -> decimal_point; # endif /* The decimal point is always a single byte: either '.' or ','. */ return (point[0] != '\0' ? point[0] : '.'); } # endif #endif #if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE && !defined IN_LIBINTL /* Equivalent to !isfinite(x) || x == 0, but does not require libm. */ static int is_infinite_or_zero (double x) { return isnand (x) || x + x == x; } #endif #if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE && !defined IN_LIBINTL /* Equivalent to !isfinite(x) || x == 0, but does not require libm. */ static int is_infinite_or_zerol (long double x) { return isnanl (x) || x + x == x; } #endif #if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL /* Converting 'long double' to decimal without rare rounding bugs requires real bignums. We use the naming conventions of GNU gmp, but vastly simpler (and slower) algorithms. */ typedef unsigned int mp_limb_t; # define GMP_LIMB_BITS 32 verify (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS); typedef unsigned long long mp_twolimb_t; # define GMP_TWOLIMB_BITS 64 verify (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS); /* Representation of a bignum >= 0. */ typedef struct { size_t nlimbs; mp_limb_t *limbs; /* Bits in little-endian order, allocated with malloc(). */ } mpn_t; /* Compute the product of two bignums >= 0. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * multiply (mpn_t src1, mpn_t src2, mpn_t *dest) { const mp_limb_t *p1; const mp_limb_t *p2; size_t len1; size_t len2; if (src1.nlimbs <= src2.nlimbs) { len1 = src1.nlimbs; p1 = src1.limbs; len2 = src2.nlimbs; p2 = src2.limbs; } else { len1 = src2.nlimbs; p1 = src2.limbs; len2 = src1.nlimbs; p2 = src1.limbs; } /* Now 0 <= len1 <= len2. */ if (len1 == 0) { /* src1 or src2 is zero. */ dest->nlimbs = 0; dest->limbs = (mp_limb_t *) malloc (1); } else { /* Here 1 <= len1 <= len2. */ size_t dlen; mp_limb_t *dp; size_t k, i, j; dlen = len1 + len2; dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t)); if (dp == NULL) return NULL; for (k = len2; k > 0; ) dp[--k] = 0; for (i = 0; i < len1; i++) { mp_limb_t digit1 = p1[i]; mp_twolimb_t carry = 0; for (j = 0; j < len2; j++) { mp_limb_t digit2 = p2[j]; carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; carry += dp[i + j]; dp[i + j] = (mp_limb_t) carry; carry = carry >> GMP_LIMB_BITS; } dp[i + len2] = (mp_limb_t) carry; } /* Normalise. */ while (dlen > 0 && dp[dlen - 1] == 0) dlen--; dest->nlimbs = dlen; dest->limbs = dp; } return dest->limbs; } /* Compute the quotient of a bignum a >= 0 and a bignum b > 0. a is written as a = q * b + r with 0 <= r < b. q is the quotient, r the remainder. Finally, round-to-even is performed: If r > b/2 or if r = b/2 and q is odd, q is incremented. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * divide (mpn_t a, mpn_t b, mpn_t *q) { /* Algorithm: First normalise a and b: a=[a[m-1],...,a[0]], b=[b[n-1],...,b[0]] with m>=0 and n>0 (in base beta = 2^GMP_LIMB_BITS). If m=n=1, perform a single-precision division: r:=0, j:=m, while j>0 do {Here (q[m-1]*beta^(m-1)+...+q[j]*beta^j) * b[0] + r*beta^j = = a[m-1]*beta^(m-1)+...+a[j]*beta^j und 0<=r=n>1, perform a multiple-precision division: We have a/b < beta^(m-n+1). s:=intDsize-1-(highest bit in b[n-1]), 0<=s=beta/2. For j=m-n,...,0: {Here 0 <= r < b*beta^(j+1).} Compute q* : q* := floor((r[j+n]*beta+r[j+n-1])/b[n-1]). In case of overflow (q* >= beta) set q* := beta-1. Compute c2 := ((r[j+n]*beta+r[j+n-1]) - q* * b[n-1])*beta + r[j+n-2] and c3 := b[n-2] * q*. {We have 0 <= c2 < 2*beta^2, even 0 <= c2 < beta^2 if no overflow occurred. Furthermore 0 <= c3 < beta^2. If there was overflow and r[j+n]*beta+r[j+n-1] - q* * b[n-1] >= beta, i.e. c2 >= beta^2, the next test can be skipped.} While c3 > c2, {Here 0 <= c2 < c3 < beta^2} Put q* := q* - 1, c2 := c2 + b[n-1]*beta, c3 := c3 - b[n-2]. If q* > 0: Put r := r - b * q* * beta^j. In detail: [r[n+j],...,r[j]] := [r[n+j],...,r[j]] - q* * [b[n-1],...,b[0]]. hence: u:=0, for i:=0 to n-1 do u := u + q* * b[i], r[j+i]:=r[j+i]-(u mod beta) (+ beta, if carry), u:=u div beta (+ 1, if carry in subtraction) r[n+j]:=r[n+j]-u. {Since always u = (q* * [b[i-1],...,b[0]] div beta^i) + 1 < q* + 1 <= beta, the carry u does not overflow.} If a negative carry occurs, put q* := q* - 1 and [r[n+j],...,r[j]] := [r[n+j],...,r[j]] + [0,b[n-1],...,b[0]]. Set q[j] := q*. Normalise [q[m-n],..,q[0]]; this yields the quotient q. Shift [r[n-1],...,r[0]] right by s bits and normalise; this yields the rest r. The room for q[j] can be allocated at the memory location of r[n+j]. Finally, round-to-even: Shift r left by 1 bit. If r > b or if r = b and q[0] is odd, q := q+1. */ const mp_limb_t *a_ptr = a.limbs; size_t a_len = a.nlimbs; const mp_limb_t *b_ptr = b.limbs; size_t b_len = b.nlimbs; mp_limb_t *roomptr; mp_limb_t *tmp_roomptr = NULL; mp_limb_t *q_ptr; size_t q_len; mp_limb_t *r_ptr; size_t r_len; /* Allocate room for a_len+2 digits. (Need a_len+1 digits for the real division and 1 more digit for the final rounding of q.) */ roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t)); if (roomptr == NULL) return NULL; /* Normalise a. */ while (a_len > 0 && a_ptr[a_len - 1] == 0) a_len--; /* Normalise b. */ for (;;) { if (b_len == 0) /* Division by zero. */ abort (); if (b_ptr[b_len - 1] == 0) b_len--; else break; } /* Here m = a_len >= 0 and n = b_len > 0. */ if (a_len < b_len) { /* m beta^(m-2) <= a/b < beta^m */ r_ptr = roomptr; q_ptr = roomptr + 1; { mp_limb_t den = b_ptr[0]; mp_limb_t remainder = 0; const mp_limb_t *sourceptr = a_ptr + a_len; mp_limb_t *destptr = q_ptr + a_len; size_t count; for (count = a_len; count > 0; count--) { mp_twolimb_t num = ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr; *--destptr = num / den; remainder = num % den; } /* Normalise and store r. */ if (remainder > 0) { r_ptr[0] = remainder; r_len = 1; } else r_len = 0; /* Normalise q. */ q_len = a_len; if (q_ptr[q_len - 1] == 0) q_len--; } } else { /* n>1: multiple precision division. beta^(m-1) <= a < beta^m, beta^(n-1) <= b < beta^n ==> beta^(m-n-1) <= a/b < beta^(m-n+1). */ /* Determine s. */ size_t s; { mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */ /* Determine s = GMP_LIMB_BITS - integer_length (msd). Code copied from gnulib's integer_length.c. */ # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) s = __builtin_clz (msd); # else # if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT if (GMP_LIMB_BITS <= DBL_MANT_BIT) { /* Use 'double' operations. Assumes an IEEE 754 'double' implementation. */ # define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7) # define DBL_EXP_BIAS (DBL_EXP_MASK / 2 - 1) # define NWORDS \ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) union { double value; unsigned int word[NWORDS]; } m; /* Use a single integer to floating-point conversion. */ m.value = msd; s = GMP_LIMB_BITS - (((m.word[DBL_EXPBIT0_WORD] >> DBL_EXPBIT0_BIT) & DBL_EXP_MASK) - DBL_EXP_BIAS); } else # undef NWORDS # endif { s = 31; if (msd >= 0x10000) { msd = msd >> 16; s -= 16; } if (msd >= 0x100) { msd = msd >> 8; s -= 8; } if (msd >= 0x10) { msd = msd >> 4; s -= 4; } if (msd >= 0x4) { msd = msd >> 2; s -= 2; } if (msd >= 0x2) { msd = msd >> 1; s -= 1; } } # endif } /* 0 <= s < GMP_LIMB_BITS. Copy b, shifting it left by s bits. */ if (s > 0) { tmp_roomptr = (mp_limb_t *) malloc (b_len * sizeof (mp_limb_t)); if (tmp_roomptr == NULL) { free (roomptr); return NULL; } { const mp_limb_t *sourceptr = b_ptr; mp_limb_t *destptr = tmp_roomptr; mp_twolimb_t accu = 0; size_t count; for (count = b_len; count > 0; count--) { accu += (mp_twolimb_t) *sourceptr++ << s; *destptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } /* accu must be zero, since that was how s was determined. */ if (accu != 0) abort (); } b_ptr = tmp_roomptr; } /* Copy a, shifting it left by s bits, yields r. Memory layout: At the beginning: r = roomptr[0..a_len], at the end: r = roomptr[0..b_len-1], q = roomptr[b_len..a_len] */ r_ptr = roomptr; if (s == 0) { memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t)); r_ptr[a_len] = 0; } else { const mp_limb_t *sourceptr = a_ptr; mp_limb_t *destptr = r_ptr; mp_twolimb_t accu = 0; size_t count; for (count = a_len; count > 0; count--) { accu += (mp_twolimb_t) *sourceptr++ << s; *destptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } *destptr++ = (mp_limb_t) accu; } q_ptr = roomptr + b_len; q_len = a_len - b_len + 1; /* q will have m-n+1 limbs */ { size_t j = a_len - b_len; /* m-n */ mp_limb_t b_msd = b_ptr[b_len - 1]; /* b[n-1] */ mp_limb_t b_2msd = b_ptr[b_len - 2]; /* b[n-2] */ mp_twolimb_t b_msdd = /* b[n-1]*beta+b[n-2] */ ((mp_twolimb_t) b_msd << GMP_LIMB_BITS) | b_2msd; /* Division loop, traversed m-n+1 times. j counts down, b is unchanged, beta/2 <= b[n-1] < beta. */ for (;;) { mp_limb_t q_star; mp_limb_t c1; if (r_ptr[j + b_len] < b_msd) /* r[j+n] < b[n-1] ? */ { /* Divide r[j+n]*beta+r[j+n-1] by b[n-1], no overflow. */ mp_twolimb_t num = ((mp_twolimb_t) r_ptr[j + b_len] << GMP_LIMB_BITS) | r_ptr[j + b_len - 1]; q_star = num / b_msd; c1 = num % b_msd; } else { /* Overflow, hence r[j+n]*beta+r[j+n-1] >= beta*b[n-1]. */ q_star = (mp_limb_t)~(mp_limb_t)0; /* q* = beta-1 */ /* Test whether r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] >= beta <==> r[j+n]*beta+r[j+n-1] + b[n-1] >= beta*b[n-1]+beta <==> b[n-1] < floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) {<= beta !}. If yes, jump directly to the subtraction loop. (Otherwise, r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] < beta <==> floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) = b[n-1] ) */ if (r_ptr[j + b_len] > b_msd || (c1 = r_ptr[j + b_len - 1] + b_msd) < b_msd) /* r[j+n] >= b[n-1]+1 or r[j+n] = b[n-1] and the addition r[j+n-1]+b[n-1] gives a carry. */ goto subtract; } /* q_star = q*, c1 = (r[j+n]*beta+r[j+n-1]) - q* * b[n-1] (>=0, 0, decrease it by b[n-1]*beta+b[n-2]. Because of b[n-1]*beta+b[n-2] >= beta^2/2 this can happen only twice. */ if (c3 > c2) { q_star = q_star - 1; /* q* := q* - 1 */ if (c3 - c2 > b_msdd) q_star = q_star - 1; /* q* := q* - 1 */ } } if (q_star > 0) subtract: { /* Subtract r := r - b * q* * beta^j. */ mp_limb_t cr; { const mp_limb_t *sourceptr = b_ptr; mp_limb_t *destptr = r_ptr + j; mp_twolimb_t carry = 0; size_t count; for (count = b_len; count > 0; count--) { /* Here 0 <= carry <= q*. */ carry = carry + (mp_twolimb_t) q_star * (mp_twolimb_t) *sourceptr++ + (mp_limb_t) ~(*destptr); /* Here 0 <= carry <= beta*q* + beta-1. */ *destptr++ = ~(mp_limb_t) carry; carry = carry >> GMP_LIMB_BITS; /* <= q* */ } cr = (mp_limb_t) carry; } /* Subtract cr from r_ptr[j + b_len], then forget about r_ptr[j + b_len]. */ if (cr > r_ptr[j + b_len]) { /* Subtraction gave a carry. */ q_star = q_star - 1; /* q* := q* - 1 */ /* Add b back. */ { const mp_limb_t *sourceptr = b_ptr; mp_limb_t *destptr = r_ptr + j; mp_limb_t carry = 0; size_t count; for (count = b_len; count > 0; count--) { mp_limb_t source1 = *sourceptr++; mp_limb_t source2 = *destptr; *destptr++ = source1 + source2 + carry; carry = (carry ? source1 >= (mp_limb_t) ~source2 : source1 > (mp_limb_t) ~source2); } } /* Forget about the carry and about r[j+n]. */ } } /* q* is determined. Store it as q[j]. */ q_ptr[j] = q_star; if (j == 0) break; j--; } } r_len = b_len; /* Normalise q. */ if (q_ptr[q_len - 1] == 0) q_len--; # if 0 /* Not needed here, since we need r only to compare it with b/2, and b is shifted left by s bits. */ /* Shift r right by s bits. */ if (s > 0) { mp_limb_t ptr = r_ptr + r_len; mp_twolimb_t accu = 0; size_t count; for (count = r_len; count > 0; count--) { accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS; accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s); *ptr = (mp_limb_t) (accu >> GMP_LIMB_BITS); } } # endif /* Normalise r. */ while (r_len > 0 && r_ptr[r_len - 1] == 0) r_len--; } /* Compare r << 1 with b. */ if (r_len > b_len) goto increment_q; { size_t i; for (i = b_len;;) { mp_limb_t r_i = (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0) | (i < r_len ? r_ptr[i] << 1 : 0); mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0); if (r_i > b_i) goto increment_q; if (r_i < b_i) goto keep_q; if (i == 0) break; i--; } } if (q_len > 0 && ((q_ptr[0] & 1) != 0)) /* q is odd. */ increment_q: { size_t i; for (i = 0; i < q_len; i++) if (++(q_ptr[i]) != 0) goto keep_q; q_ptr[q_len++] = 1; } keep_q: if (tmp_roomptr != NULL) free (tmp_roomptr); q->limbs = q_ptr; q->nlimbs = q_len; return roomptr; } /* Convert a bignum a >= 0, multiplied with 10^extra_zeroes, to decimal representation. Destroys the contents of a. Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * convert_to_decimal (mpn_t a, size_t extra_zeroes) { mp_limb_t *a_ptr = a.limbs; size_t a_len = a.nlimbs; /* 0.03345 is slightly larger than log(2)/(9*log(10)). */ size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1); char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes)); if (c_ptr != NULL) { char *d_ptr = c_ptr; for (; extra_zeroes > 0; extra_zeroes--) *d_ptr++ = '0'; while (a_len > 0) { /* Divide a by 10^9, in-place. */ mp_limb_t remainder = 0; mp_limb_t *ptr = a_ptr + a_len; size_t count; for (count = a_len; count > 0; count--) { mp_twolimb_t num = ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr; *ptr = num / 1000000000; remainder = num % 1000000000; } /* Store the remainder as 9 decimal digits. */ for (count = 9; count > 0; count--) { *d_ptr++ = '0' + (remainder % 10); remainder = remainder / 10; } /* Normalize a. */ if (a_ptr[a_len - 1] == 0) a_len--; } /* Remove leading zeroes. */ while (d_ptr > c_ptr && d_ptr[-1] == '0') d_ptr--; /* But keep at least one zero. */ if (d_ptr == c_ptr) *d_ptr++ = '0'; /* Terminate the string. */ *d_ptr = '\0'; } return c_ptr; } # if NEED_PRINTF_LONG_DOUBLE /* Assuming x is finite and >= 0: write x as x = 2^e * m, where m is a bignum. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * decode_long_double (long double x, int *ep, mpn_t *mp) { mpn_t m; int exp; long double y; size_t i; /* Allocate memory for result. */ m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); if (m.limbs == NULL) return NULL; /* Split into exponential part and mantissa. */ y = frexpl (x, &exp); if (!(y >= 0.0L && y < 1.0L)) abort (); /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * 2^LDBL_MANT_BIT), and the latter is an integer. */ /* Convert the mantissa (y * 2^LDBL_MANT_BIT) to a sequence of limbs. I'm not sure whether it's safe to cast a 'long double' value between 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only 'long double' values between 0 and 2^16 (to 'unsigned int' or 'int', doesn't matter). */ # if (LDBL_MANT_BIT % GMP_LIMB_BITS) != 0 # if (LDBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % (GMP_LIMB_BITS / 2)); hi = (int) y; y -= hi; if (!(y >= 0.0L && y < 1.0L)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0L && y < 1.0L)) abort (); m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; } # else { mp_limb_t d; y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % GMP_LIMB_BITS); d = (int) y; y -= d; if (!(y >= 0.0L && y < 1.0L)) abort (); m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = d; } # endif # endif for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); hi = (int) y; y -= hi; if (!(y >= 0.0L && y < 1.0L)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0L && y < 1.0L)) abort (); m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; } # if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess precision. */ if (!(y == 0.0L)) abort (); # endif /* Normalise. */ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) m.nlimbs--; *mp = m; *ep = exp - LDBL_MANT_BIT; return m.limbs; } # endif # if NEED_PRINTF_DOUBLE /* Assuming x is finite and >= 0: write x as x = 2^e * m, where m is a bignum. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * decode_double (double x, int *ep, mpn_t *mp) { mpn_t m; int exp; double y; size_t i; /* Allocate memory for result. */ m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); if (m.limbs == NULL) return NULL; /* Split into exponential part and mantissa. */ y = frexp (x, &exp); if (!(y >= 0.0 && y < 1.0)) abort (); /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * 2^DBL_MANT_BIT), and the latter is an integer. */ /* Convert the mantissa (y * 2^DBL_MANT_BIT) to a sequence of limbs. I'm not sure whether it's safe to cast a 'double' value between 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only 'double' values between 0 and 2^16 (to 'unsigned int' or 'int', doesn't matter). */ # if (DBL_MANT_BIT % GMP_LIMB_BITS) != 0 # if (DBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (DBL_MANT_BIT % (GMP_LIMB_BITS / 2)); hi = (int) y; y -= hi; if (!(y >= 0.0 && y < 1.0)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0 && y < 1.0)) abort (); m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; } # else { mp_limb_t d; y *= (mp_limb_t) 1 << (DBL_MANT_BIT % GMP_LIMB_BITS); d = (int) y; y -= d; if (!(y >= 0.0 && y < 1.0)) abort (); m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = d; } # endif # endif for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); hi = (int) y; y -= hi; if (!(y >= 0.0 && y < 1.0)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0 && y < 1.0)) abort (); m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; } if (!(y == 0.0)) abort (); /* Normalise. */ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) m.nlimbs--; *mp = m; *ep = exp - DBL_MANT_BIT; return m.limbs; } # endif /* Assuming x = 2^e * m is finite and >= 0, and n is an integer: Returns the decimal representation of round (x * 10^n). Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n) { int s; size_t extra_zeroes; unsigned int abs_n; unsigned int abs_s; mp_limb_t *pow5_ptr; size_t pow5_len; unsigned int s_limbs; unsigned int s_bits; mpn_t pow5; mpn_t z; void *z_memory; char *digits; if (memory == NULL) return NULL; /* x = 2^e * m, hence y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m) = round (2^s * 5^n * m). */ s = e + n; extra_zeroes = 0; /* Factor out a common power of 10 if possible. */ if (s > 0 && n > 0) { extra_zeroes = (s < n ? s : n); s -= extra_zeroes; n -= extra_zeroes; } /* Here y = round (2^s * 5^n * m) * 10^extra_zeroes. Before converting to decimal, we need to compute z = round (2^s * 5^n * m). */ /* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same sign. 2.322 is slightly larger than log(5)/log(2). */ abs_n = (n >= 0 ? n : -n); abs_s = (s >= 0 ? s : -s); pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1 + abs_s / GMP_LIMB_BITS + 1) * sizeof (mp_limb_t)); if (pow5_ptr == NULL) { free (memory); return NULL; } /* Initialize with 1. */ pow5_ptr[0] = 1; pow5_len = 1; /* Multiply with 5^|n|. */ if (abs_n > 0) { static mp_limb_t const small_pow5[13 + 1] = { 1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125 }; unsigned int n13; for (n13 = 0; n13 <= abs_n; n13 += 13) { mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13]; size_t j; mp_twolimb_t carry = 0; for (j = 0; j < pow5_len; j++) { mp_limb_t digit2 = pow5_ptr[j]; carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; pow5_ptr[j] = (mp_limb_t) carry; carry = carry >> GMP_LIMB_BITS; } if (carry > 0) pow5_ptr[pow5_len++] = (mp_limb_t) carry; } } s_limbs = abs_s / GMP_LIMB_BITS; s_bits = abs_s % GMP_LIMB_BITS; if (n >= 0 ? s >= 0 : s <= 0) { /* Multiply with 2^|s|. */ if (s_bits > 0) { mp_limb_t *ptr = pow5_ptr; mp_twolimb_t accu = 0; size_t count; for (count = pow5_len; count > 0; count--) { accu += (mp_twolimb_t) *ptr << s_bits; *ptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } if (accu > 0) { *ptr = (mp_limb_t) accu; pow5_len++; } } if (s_limbs > 0) { size_t count; for (count = pow5_len; count > 0;) { count--; pow5_ptr[s_limbs + count] = pow5_ptr[count]; } for (count = s_limbs; count > 0;) { count--; pow5_ptr[count] = 0; } pow5_len += s_limbs; } pow5.limbs = pow5_ptr; pow5.nlimbs = pow5_len; if (n >= 0) { /* Multiply m with pow5. No division needed. */ z_memory = multiply (m, pow5, &z); } else { /* Divide m by pow5 and round. */ z_memory = divide (m, pow5, &z); } } else { pow5.limbs = pow5_ptr; pow5.nlimbs = pow5_len; if (n >= 0) { /* n >= 0, s < 0. Multiply m with pow5, then divide by 2^|s|. */ mpn_t numerator; mpn_t denominator; void *tmp_memory; tmp_memory = multiply (m, pow5, &numerator); if (tmp_memory == NULL) { free (pow5_ptr); free (memory); return NULL; } /* Construct 2^|s|. */ { mp_limb_t *ptr = pow5_ptr + pow5_len; size_t i; for (i = 0; i < s_limbs; i++) ptr[i] = 0; ptr[s_limbs] = (mp_limb_t) 1 << s_bits; denominator.limbs = ptr; denominator.nlimbs = s_limbs + 1; } z_memory = divide (numerator, denominator, &z); free (tmp_memory); } else { /* n < 0, s > 0. Multiply m with 2^s, then divide by pow5. */ mpn_t numerator; mp_limb_t *num_ptr; num_ptr = (mp_limb_t *) malloc ((m.nlimbs + s_limbs + 1) * sizeof (mp_limb_t)); if (num_ptr == NULL) { free (pow5_ptr); free (memory); return NULL; } { mp_limb_t *destptr = num_ptr; { size_t i; for (i = 0; i < s_limbs; i++) *destptr++ = 0; } if (s_bits > 0) { const mp_limb_t *sourceptr = m.limbs; mp_twolimb_t accu = 0; size_t count; for (count = m.nlimbs; count > 0; count--) { accu += (mp_twolimb_t) *sourceptr++ << s_bits; *destptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } if (accu > 0) *destptr++ = (mp_limb_t) accu; } else { const mp_limb_t *sourceptr = m.limbs; size_t count; for (count = m.nlimbs; count > 0; count--) *destptr++ = *sourceptr++; } numerator.limbs = num_ptr; numerator.nlimbs = destptr - num_ptr; } z_memory = divide (numerator, pow5, &z); free (num_ptr); } } free (pow5_ptr); free (memory); /* Here y = round (x * 10^n) = z * 10^extra_zeroes. */ if (z_memory == NULL) return NULL; digits = convert_to_decimal (z, extra_zeroes); free (z_memory); return digits; } # if NEED_PRINTF_LONG_DOUBLE /* Assuming x is finite and >= 0, and n is an integer: Returns the decimal representation of round (x * 10^n). Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * scale10_round_decimal_long_double (long double x, int n) { int e IF_LINT(= 0); mpn_t m; void *memory = decode_long_double (x, &e, &m); return scale10_round_decimal_decoded (e, m, memory, n); } # endif # if NEED_PRINTF_DOUBLE /* Assuming x is finite and >= 0, and n is an integer: Returns the decimal representation of round (x * 10^n). Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * scale10_round_decimal_double (double x, int n) { int e IF_LINT(= 0); mpn_t m; void *memory = decode_double (x, &e, &m); return scale10_round_decimal_decoded (e, m, memory, n); } # endif # if NEED_PRINTF_LONG_DOUBLE /* Assuming x is finite and > 0: Return an approximation for n with 10^n <= x < 10^(n+1). The approximation is usually the right n, but may be off by 1 sometimes. */ static int floorlog10l (long double x) { int exp; long double y; double z; double l; /* Split into exponential part and mantissa. */ y = frexpl (x, &exp); if (!(y >= 0.0L && y < 1.0L)) abort (); if (y == 0.0L) return INT_MIN; if (y < 0.5L) { while (y < (1.0L / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) { y *= 1.0L * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); exp -= GMP_LIMB_BITS; } if (y < (1.0L / (1 << 16))) { y *= 1.0L * (1 << 16); exp -= 16; } if (y < (1.0L / (1 << 8))) { y *= 1.0L * (1 << 8); exp -= 8; } if (y < (1.0L / (1 << 4))) { y *= 1.0L * (1 << 4); exp -= 4; } if (y < (1.0L / (1 << 2))) { y *= 1.0L * (1 << 2); exp -= 2; } if (y < (1.0L / (1 << 1))) { y *= 1.0L * (1 << 1); exp -= 1; } } if (!(y >= 0.5L && y < 1.0L)) abort (); /* Compute an approximation for l = log2(x) = exp + log2(y). */ l = exp; z = y; if (z < 0.70710678118654752444) { z *= 1.4142135623730950488; l -= 0.5; } if (z < 0.8408964152537145431) { z *= 1.1892071150027210667; l -= 0.25; } if (z < 0.91700404320467123175) { z *= 1.0905077326652576592; l -= 0.125; } if (z < 0.9576032806985736469) { z *= 1.0442737824274138403; l -= 0.0625; } /* Now 0.95 <= z <= 1.01. */ z = 1 - z; /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...) Four terms are enough to get an approximation with error < 10^-7. */ l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); /* Finally multiply with log(2)/log(10), yields an approximation for log10(x). */ l *= 0.30102999566398119523; /* Round down to the next integer. */ return (int) l + (l < 0 ? -1 : 0); } # endif # if NEED_PRINTF_DOUBLE /* Assuming x is finite and > 0: Return an approximation for n with 10^n <= x < 10^(n+1). The approximation is usually the right n, but may be off by 1 sometimes. */ static int floorlog10 (double x) { int exp; double y; double z; double l; /* Split into exponential part and mantissa. */ y = frexp (x, &exp); if (!(y >= 0.0 && y < 1.0)) abort (); if (y == 0.0) return INT_MIN; if (y < 0.5) { while (y < (1.0 / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) { y *= 1.0 * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); exp -= GMP_LIMB_BITS; } if (y < (1.0 / (1 << 16))) { y *= 1.0 * (1 << 16); exp -= 16; } if (y < (1.0 / (1 << 8))) { y *= 1.0 * (1 << 8); exp -= 8; } if (y < (1.0 / (1 << 4))) { y *= 1.0 * (1 << 4); exp -= 4; } if (y < (1.0 / (1 << 2))) { y *= 1.0 * (1 << 2); exp -= 2; } if (y < (1.0 / (1 << 1))) { y *= 1.0 * (1 << 1); exp -= 1; } } if (!(y >= 0.5 && y < 1.0)) abort (); /* Compute an approximation for l = log2(x) = exp + log2(y). */ l = exp; z = y; if (z < 0.70710678118654752444) { z *= 1.4142135623730950488; l -= 0.5; } if (z < 0.8408964152537145431) { z *= 1.1892071150027210667; l -= 0.25; } if (z < 0.91700404320467123175) { z *= 1.0905077326652576592; l -= 0.125; } if (z < 0.9576032806985736469) { z *= 1.0442737824274138403; l -= 0.0625; } /* Now 0.95 <= z <= 1.01. */ z = 1 - z; /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...) Four terms are enough to get an approximation with error < 10^-7. */ l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); /* Finally multiply with log(2)/log(10), yields an approximation for log10(x). */ l *= 0.30102999566398119523; /* Round down to the next integer. */ return (int) l + (l < 0 ? -1 : 0); } # endif /* Tests whether a string of digits consists of exactly PRECISION zeroes and a single '1' digit. */ static int is_borderline (const char *digits, size_t precision) { for (; precision > 0; precision--, digits++) if (*digits != '0') return 0; if (*digits != '1') return 0; digits++; return *digits == '\0'; } #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF /* Use a different function name, to make it possible that the 'wchar_t' parametrization and the 'char' parametrization get compiled in the same translation unit. */ # if WIDE_CHAR_VERSION # define MAX_ROOM_NEEDED wmax_room_needed # else # define MAX_ROOM_NEEDED max_room_needed # endif /* Returns the number of TCHAR_T units needed as temporary space for the result of sprintf or SNPRINTF of a single conversion directive. */ static size_t MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion, arg_type type, int flags, size_t width, int has_precision, size_t precision, int pad_ourselves) { size_t tmp_length; switch (conversion) { case 'd': case 'i': case 'u': # if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ else # endif if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Multiply by 2, as an estimate for FLAG_GROUP. */ tmp_length = xsum (tmp_length, tmp_length); /* Add 1, to account for a leading sign. */ tmp_length = xsum (tmp_length, 1); break; case 'o': # if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ else # endif if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Add 1, to account for a leading sign. */ tmp_length = xsum (tmp_length, 1); break; case 'x': case 'X': # if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ else # endif if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Add 2, to account for a leading sign or alternate form. */ tmp_length = xsum (tmp_length, 2); break; case 'f': case 'F': if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) (LDBL_MAX_EXP * 0.30103 /* binary -> decimal */ * 2 /* estimate for FLAG_GROUP */ ) + 1 /* turn floor into ceil */ + 10; /* sign, decimal point etc. */ else tmp_length = (unsigned int) (DBL_MAX_EXP * 0.30103 /* binary -> decimal */ * 2 /* estimate for FLAG_GROUP */ ) + 1 /* turn floor into ceil */ + 10; /* sign, decimal point etc. */ tmp_length = xsum (tmp_length, precision); break; case 'e': case 'E': case 'g': case 'G': tmp_length = 12; /* sign, decimal point, exponent etc. */ tmp_length = xsum (tmp_length, precision); break; case 'a': case 'A': if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) (LDBL_DIG * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (DBL_DIG * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Account for sign, decimal point etc. */ tmp_length = xsum (tmp_length, 12); break; case 'c': # if HAVE_WINT_T && !WIDE_CHAR_VERSION if (type == TYPE_WIDE_CHAR) tmp_length = MB_CUR_MAX; else # endif tmp_length = 1; break; case 's': # if HAVE_WCHAR_T if (type == TYPE_WIDE_STRING) { # if WIDE_CHAR_VERSION /* ISO C says about %ls in fwprintf: "If the precision is not specified or is greater than the size of the array, the array shall contain a null wide character." So if there is a precision, we must not use wcslen. */ const wchar_t *arg = ap->arg[arg_index].a.a_wide_string; if (has_precision) tmp_length = local_wcsnlen (arg, precision); else tmp_length = local_wcslen (arg); # else /* ISO C says about %ls in fprintf: "If a precision is specified, no more than that many bytes are written (including shift sequences, if any), and the array shall contain a null wide character if, to equal the multibyte character sequence length given by the precision, the function would need to access a wide character one past the end of the array." So if there is a precision, we must not use wcslen. */ /* This case has already been handled separately in VASNPRINTF. */ abort (); # endif } else # endif { # if WIDE_CHAR_VERSION /* ISO C says about %s in fwprintf: "If the precision is not specified or is greater than the size of the converted array, the converted array shall contain a null wide character." So if there is a precision, we must not use strlen. */ /* This case has already been handled separately in VASNPRINTF. */ abort (); # else /* ISO C says about %s in fprintf: "If the precision is not specified or greater than the size of the array, the array shall contain a null character." So if there is a precision, we must not use strlen. */ const char *arg = ap->arg[arg_index].a.a_string; if (has_precision) tmp_length = local_strnlen (arg, precision); else tmp_length = strlen (arg); # endif } break; case 'p': tmp_length = (unsigned int) (sizeof (void *) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1 /* turn floor into ceil */ + 2; /* account for leading 0x */ break; default: abort (); } if (!pad_ourselves) { # if ENABLE_UNISTDIO /* Padding considers the number of characters, therefore the number of elements after padding may be > max (tmp_length, width) but is certainly <= tmp_length + width. */ tmp_length = xsum (tmp_length, width); # else /* Padding considers the number of elements, says POSIX. */ if (tmp_length < width) tmp_length = width; # endif } tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ return tmp_length; } #endif DCHAR_T * VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, const FCHAR_T *format, va_list args) { DIRECTIVES d; arguments a; if (PRINTF_PARSE (format, &d, &a) < 0) /* errno is already set. */ return NULL; #define CLEANUP() \ if (d.dir != d.direct_alloc_dir) \ free (d.dir); \ if (a.arg != a.direct_alloc_arg) \ free (a.arg); if (PRINTF_FETCHARGS (args, &a) < 0) { CLEANUP (); errno = EINVAL; return NULL; } { size_t buf_neededlength; TCHAR_T *buf; TCHAR_T *buf_malloced; const FCHAR_T *cp; size_t i; DIRECTIVE *dp; /* Output string accumulator. */ DCHAR_T *result; size_t allocated; size_t length; /* Allocate a small buffer that will hold a directive passed to sprintf or snprintf. */ buf_neededlength = xsum4 (7, d.max_width_length, d.max_precision_length, 6); #if HAVE_ALLOCA if (buf_neededlength < 4000 / sizeof (TCHAR_T)) { buf = (TCHAR_T *) alloca (buf_neededlength * sizeof (TCHAR_T)); buf_malloced = NULL; } else #endif { size_t buf_memsize = xtimes (buf_neededlength, sizeof (TCHAR_T)); if (size_overflow_p (buf_memsize)) goto out_of_memory_1; buf = (TCHAR_T *) malloc (buf_memsize); if (buf == NULL) goto out_of_memory_1; buf_malloced = buf; } if (resultbuf != NULL) { result = resultbuf; allocated = *lengthp; } else { result = NULL; allocated = 0; } length = 0; /* Invariants: result is either == resultbuf or == NULL or malloc-allocated. If length > 0, then result != NULL. */ /* Ensures that allocated >= needed. Aborts through a jump to out_of_memory if needed is SIZE_MAX or otherwise too big. */ #define ENSURE_ALLOCATION(needed) \ if ((needed) > allocated) \ { \ size_t memory_size; \ DCHAR_T *memory; \ \ allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \ if ((needed) > allocated) \ allocated = (needed); \ memory_size = xtimes (allocated, sizeof (DCHAR_T)); \ if (size_overflow_p (memory_size)) \ goto out_of_memory; \ if (result == resultbuf || result == NULL) \ memory = (DCHAR_T *) malloc (memory_size); \ else \ memory = (DCHAR_T *) realloc (result, memory_size); \ if (memory == NULL) \ goto out_of_memory; \ if (result == resultbuf && length > 0) \ DCHAR_CPY (memory, result, length); \ result = memory; \ } for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++) { if (cp != dp->dir_start) { size_t n = dp->dir_start - cp; size_t augmented_length = xsum (length, n); ENSURE_ALLOCATION (augmented_length); /* This copies a piece of FCHAR_T[] into a DCHAR_T[]. Here we need that the format string contains only ASCII characters if FCHAR_T and DCHAR_T are not the same type. */ if (sizeof (FCHAR_T) == sizeof (DCHAR_T)) { DCHAR_CPY (result + length, (const DCHAR_T *) cp, n); length = augmented_length; } else { do result[length++] = *cp++; while (--n > 0); } } if (i == d.count) break; /* Execute a single directive. */ if (dp->conversion == '%') { size_t augmented_length; if (!(dp->arg_index == ARG_NONE)) abort (); augmented_length = xsum (length, 1); ENSURE_ALLOCATION (augmented_length); result[length] = '%'; length = augmented_length; } else { if (!(dp->arg_index != ARG_NONE)) abort (); if (dp->conversion == 'n') { switch (a.arg[dp->arg_index].type) { case TYPE_COUNT_SCHAR_POINTER: *a.arg[dp->arg_index].a.a_count_schar_pointer = length; break; case TYPE_COUNT_SHORT_POINTER: *a.arg[dp->arg_index].a.a_count_short_pointer = length; break; case TYPE_COUNT_INT_POINTER: *a.arg[dp->arg_index].a.a_count_int_pointer = length; break; case TYPE_COUNT_LONGINT_POINTER: *a.arg[dp->arg_index].a.a_count_longint_pointer = length; break; #if HAVE_LONG_LONG_INT case TYPE_COUNT_LONGLONGINT_POINTER: *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length; break; #endif default: abort (); } } #if ENABLE_UNISTDIO /* The unistdio extensions. */ else if (dp->conversion == 'U') { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; width = arg; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = -width; } } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 0; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } switch (type) { case TYPE_U8_STRING: { const uint8_t *arg = a.arg[dp->arg_index].a.a_u8_string; const uint8_t *arg_end; size_t characters; if (has_precision) { /* Use only PRECISION characters, from the left. */ arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count = u8_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of characters. */ arg_end = arg; characters = 0; for (;;) { int count = u8_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + u8_strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (characters < width && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_UINT8_T { size_t n = arg_end - arg; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_CPY (result + length, arg, n); length += n; } # else { /* Convert. */ DCHAR_T *converted = result + length; size_t converted_len = allocated - length; # if DCHAR_IS_TCHAR /* Convert from UTF-8 to locale encoding. */ converted = u8_conv_to_encoding (locale_charset (), iconveh_question_mark, arg, arg_end - arg, NULL, converted, &converted_len); # else /* Convert from UTF-8 to UTF-16/UTF-32. */ converted = U8_TO_DCHAR (arg, arg_end - arg, converted, &converted_len); # endif if (converted == NULL) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } if (converted != result + length) { ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } length += converted_len; } # endif if (characters < width && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } break; case TYPE_U16_STRING: { const uint16_t *arg = a.arg[dp->arg_index].a.a_u16_string; const uint16_t *arg_end; size_t characters; if (has_precision) { /* Use only PRECISION characters, from the left. */ arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count = u16_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of characters. */ arg_end = arg; characters = 0; for (;;) { int count = u16_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + u16_strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (characters < width && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_UINT16_T { size_t n = arg_end - arg; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_CPY (result + length, arg, n); length += n; } # else { /* Convert. */ DCHAR_T *converted = result + length; size_t converted_len = allocated - length; # if DCHAR_IS_TCHAR /* Convert from UTF-16 to locale encoding. */ converted = u16_conv_to_encoding (locale_charset (), iconveh_question_mark, arg, arg_end - arg, NULL, converted, &converted_len); # else /* Convert from UTF-16 to UTF-8/UTF-32. */ converted = U16_TO_DCHAR (arg, arg_end - arg, converted, &converted_len); # endif if (converted == NULL) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } if (converted != result + length) { ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } length += converted_len; } # endif if (characters < width && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } break; case TYPE_U32_STRING: { const uint32_t *arg = a.arg[dp->arg_index].a.a_u32_string; const uint32_t *arg_end; size_t characters; if (has_precision) { /* Use only PRECISION characters, from the left. */ arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count = u32_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of characters. */ arg_end = arg; characters = 0; for (;;) { int count = u32_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + u32_strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (characters < width && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_UINT32_T { size_t n = arg_end - arg; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_CPY (result + length, arg, n); length += n; } # else { /* Convert. */ DCHAR_T *converted = result + length; size_t converted_len = allocated - length; # if DCHAR_IS_TCHAR /* Convert from UTF-32 to locale encoding. */ converted = u32_conv_to_encoding (locale_charset (), iconveh_question_mark, arg, arg_end - arg, NULL, converted, &converted_len); # else /* Convert from UTF-32 to UTF-8/UTF-16. */ converted = U32_TO_DCHAR (arg, arg_end - arg, converted, &converted_len); # endif if (converted == NULL) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } if (converted != result + length) { ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } length += converted_len; } # endif if (characters < width && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } break; default: abort (); } } #endif #if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && HAVE_WCHAR_T else if (dp->conversion == 's' # if WIDE_CHAR_VERSION && a.arg[dp->arg_index].type != TYPE_WIDE_STRING # else && a.arg[dp->arg_index].type == TYPE_WIDE_STRING # endif ) { /* The normal handling of the 's' directive below requires allocating a temporary buffer. The determination of its length (tmp_length), in the case when a precision is specified, below requires a conversion between a char[] string and a wchar_t[] wide string. It could be done, but we have no guarantee that the implementation of sprintf will use the exactly same algorithm. Without this guarantee, it is possible to have buffer overrun bugs. In order to avoid such bugs, we implement the entire processing of the 's' directive ourselves. */ int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; width = arg; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = -width; } } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 6; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } # if WIDE_CHAR_VERSION /* %s in vasnwprintf. See the specification of fwprintf. */ { const char *arg = a.arg[dp->arg_index].a.a_string; const char *arg_end; size_t characters; if (has_precision) { /* Use only as many bytes as needed to produce PRECISION wide characters, from the left. */ # if HAVE_MBRTOWC mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count; # if HAVE_MBRTOWC count = mbrlen (arg_end, MB_CUR_MAX, &state); # else count = mblen (arg_end, MB_CUR_MAX); # endif if (count == 0) /* Found the terminating NUL. */ break; if (count < 0) { /* Invalid or incomplete multibyte character. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of wide characters. */ # if HAVE_MBRTOWC mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif arg_end = arg; characters = 0; for (;;) { int count; # if HAVE_MBRTOWC count = mbrlen (arg_end, MB_CUR_MAX, &state); # else count = mblen (arg_end, MB_CUR_MAX); # endif if (count == 0) /* Found the terminating NUL. */ break; if (count < 0) { /* Invalid or incomplete multibyte character. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (characters < width && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } if (has_precision || has_width) { /* We know the number of wide characters in advance. */ size_t remaining; # if HAVE_MBRTOWC mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif ENSURE_ALLOCATION (xsum (length, characters)); for (remaining = characters; remaining > 0; remaining--) { wchar_t wc; int count; # if HAVE_MBRTOWC count = mbrtowc (&wc, arg, arg_end - arg, &state); # else count = mbtowc (&wc, arg, arg_end - arg); # endif if (count <= 0) /* mbrtowc not consistent with mbrlen, or mbtowc not consistent with mblen. */ abort (); result[length++] = wc; arg += count; } if (!(arg == arg_end)) abort (); } else { # if HAVE_MBRTOWC mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif while (arg < arg_end) { wchar_t wc; int count; # if HAVE_MBRTOWC count = mbrtowc (&wc, arg, arg_end - arg, &state); # else count = mbtowc (&wc, arg, arg_end - arg); # endif if (count <= 0) /* mbrtowc not consistent with mbrlen, or mbtowc not consistent with mblen. */ abort (); ENSURE_ALLOCATION (xsum (length, 1)); result[length++] = wc; arg += count; } } if (characters < width && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } # else /* %ls in vasnprintf. See the specification of fprintf. */ { const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string; const wchar_t *arg_end; size_t characters; # if !DCHAR_IS_TCHAR /* This code assumes that TCHAR_T is 'char'. */ verify (sizeof (TCHAR_T) == 1); TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t tmpdst_len; # endif size_t w; if (has_precision) { /* Use only as many wide characters as needed to produce at most PRECISION bytes, from the left. */ # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif arg_end = arg; characters = 0; while (precision > 0) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg_end == 0) /* Found the terminating null wide character. */ break; # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg_end, &state); # else count = wctomb (cbuf, *arg_end); # endif if (count < 0) { /* Cannot convert. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } if (precision < count) break; arg_end++; characters += count; precision -= count; } } # if DCHAR_IS_TCHAR else if (has_width) # else else # endif { /* Use the entire string, and count the number of bytes. */ # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif arg_end = arg; characters = 0; for (;;) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg_end == 0) /* Found the terminating null wide character. */ break; # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg_end, &state); # else count = wctomb (cbuf, *arg_end); # endif if (count < 0) { /* Cannot convert. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end++; characters += count; } } # if DCHAR_IS_TCHAR else { /* Use the entire string. */ arg_end = arg + local_wcslen (arg); /* The number of bytes doesn't matter. */ characters = 0; } # endif # if !DCHAR_IS_TCHAR /* Convert the string into a piece of temporary memory. */ tmpsrc = (TCHAR_T *) malloc (characters * sizeof (TCHAR_T)); if (tmpsrc == NULL) goto out_of_memory; { TCHAR_T *tmpptr = tmpsrc; size_t remaining; # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif for (remaining = characters; remaining > 0; ) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg == 0) abort (); # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg, &state); # else count = wctomb (cbuf, *arg); # endif if (count <= 0) /* Inconsistency. */ abort (); memcpy (tmpptr, cbuf, count); tmpptr += count; arg++; remaining -= count; } if (!(arg == arg_end)) abort (); } /* Convert from TCHAR_T[] to DCHAR_T[]. */ tmpdst = DCHAR_CONV_FROM_ENCODING (locale_charset (), iconveh_question_mark, tmpsrc, characters, NULL, NULL, &tmpdst_len); if (tmpdst == NULL) { int saved_errno = errno; free (tmpsrc); if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } free (tmpsrc); # endif if (has_width) { # if ENABLE_UNISTDIO /* Outside POSIX, it's preferable to compare the width against the number of _characters_ of the converted value. */ w = DCHAR_MBSNLEN (result + length, characters); # else /* The width is compared against the number of _bytes_ of the converted value, says POSIX. */ w = characters; # endif } else /* w doesn't matter. */ w = 0; if (w < width && !(dp->flags & FLAG_LEFT)) { size_t n = width - w; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_TCHAR if (has_precision || has_width) { /* We know the number of bytes in advance. */ size_t remaining; # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif ENSURE_ALLOCATION (xsum (length, characters)); for (remaining = characters; remaining > 0; ) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg == 0) abort (); # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg, &state); # else count = wctomb (cbuf, *arg); # endif if (count <= 0) /* Inconsistency. */ abort (); memcpy (result + length, cbuf, count); length += count; arg++; remaining -= count; } if (!(arg == arg_end)) abort (); } else { # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t mbstate_t state; memset (&state, '\0', sizeof (mbstate_t)); # endif while (arg < arg_end) { char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ int count; if (*arg == 0) abort (); # if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t count = wcrtomb (cbuf, *arg, &state); # else count = wctomb (cbuf, *arg); # endif if (count <= 0) { /* Cannot convert. */ if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } ENSURE_ALLOCATION (xsum (length, count)); memcpy (result + length, cbuf, count); length += count; arg++; } } # else ENSURE_ALLOCATION (xsum (length, tmpdst_len)); DCHAR_CPY (result + length, tmpdst, tmpdst_len); free (tmpdst); length += tmpdst_len; # endif if (w < width && (dp->flags & FLAG_LEFT)) { size_t n = width - w; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } # endif } #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL else if ((dp->conversion == 'a' || dp->conversion == 'A') # if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE)) && (0 # if NEED_PRINTF_DOUBLE || a.arg[dp->arg_index].type == TYPE_DOUBLE # endif # if NEED_PRINTF_LONG_DOUBLE || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE # endif ) # endif ) { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; size_t width; int has_precision; size_t precision; size_t tmp_length; size_t count; DCHAR_T tmpbuf[700]; DCHAR_T *tmp; DCHAR_T *pad_ptr; DCHAR_T *p; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; width = arg; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = -width; } } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } } has_precision = 0; precision = 0; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } /* Allocate a temporary buffer of sufficient size. */ if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) ((LDBL_DIG + 1) * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) ((DBL_DIG + 1) * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Account for sign, decimal point etc. */ tmp_length = xsum (tmp_length, 12); if (tmp_length < width) tmp_length = width; tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) tmp = tmpbuf; else { size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; tmp = (DCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } pad_ptr = NULL; p = tmp; if (type == TYPE_LONGDOUBLE) { # if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE long double arg = a.arg[dp->arg_index].a.a_longdouble; if (isnanl (arg)) { if (dp->conversion == 'A') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; DECL_LONG_DOUBLE_ROUNDING BEGIN_LONG_DOUBLE_ROUNDING (); if (signbit (arg)) /* arg < 0.0L or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0L && arg + arg == arg) { if (dp->conversion == 'A') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { int exponent; long double mantissa; if (arg > 0.0L) mantissa = printf_frexpl (arg, &exponent); else { exponent = 0; mantissa = 0.0L; } if (has_precision && precision < (unsigned int) ((LDBL_DIG + 1) * 0.831) + 1) { /* Round the mantissa. */ long double tail = mantissa; size_t q; for (q = precision; ; q--) { int digit = (int) tail; tail -= digit; if (q == 0) { if (digit & 1 ? tail >= 0.5L : tail > 0.5L) tail = 1 - tail; else tail = - tail; break; } tail *= 16.0L; } if (tail != 0.0L) for (q = precision; q > 0; q--) tail *= 0.0625L; mantissa += tail; } *p++ = '0'; *p++ = dp->conversion - 'A' + 'X'; pad_ptr = p; { int digit; digit = (int) mantissa; mantissa -= digit; *p++ = '0' + digit; if ((flags & FLAG_ALT) || mantissa > 0.0L || precision > 0) { *p++ = decimal_point_char (); /* This loop terminates because we assume that FLT_RADIX is a power of 2. */ while (mantissa > 0.0L) { mantissa *= 16.0L; digit = (int) mantissa; mantissa -= digit; *p++ = digit + (digit < 10 ? '0' : dp->conversion - 10); if (precision > 0) precision--; } while (precision > 0) { *p++ = '0'; precision--; } } } *p++ = dp->conversion - 'A' + 'P'; # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } END_LONG_DOUBLE_ROUNDING (); } # else abort (); # endif } else { # if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE double arg = a.arg[dp->arg_index].a.a_double; if (isnand (arg)) { if (dp->conversion == 'A') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; if (signbit (arg)) /* arg < 0.0 or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0 && arg + arg == arg) { if (dp->conversion == 'A') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { int exponent; double mantissa; if (arg > 0.0) mantissa = printf_frexp (arg, &exponent); else { exponent = 0; mantissa = 0.0; } if (has_precision && precision < (unsigned int) ((DBL_DIG + 1) * 0.831) + 1) { /* Round the mantissa. */ double tail = mantissa; size_t q; for (q = precision; ; q--) { int digit = (int) tail; tail -= digit; if (q == 0) { if (digit & 1 ? tail >= 0.5 : tail > 0.5) tail = 1 - tail; else tail = - tail; break; } tail *= 16.0; } if (tail != 0.0) for (q = precision; q > 0; q--) tail *= 0.0625; mantissa += tail; } *p++ = '0'; *p++ = dp->conversion - 'A' + 'X'; pad_ptr = p; { int digit; digit = (int) mantissa; mantissa -= digit; *p++ = '0' + digit; if ((flags & FLAG_ALT) || mantissa > 0.0 || precision > 0) { *p++ = decimal_point_char (); /* This loop terminates because we assume that FLT_RADIX is a power of 2. */ while (mantissa > 0.0) { mantissa *= 16.0; digit = (int) mantissa; mantissa -= digit; *p++ = digit + (digit < 10 ? '0' : dp->conversion - 10); if (precision > 0) precision--; } while (precision > 0) { *p++ = '0'; precision--; } } } *p++ = dp->conversion - 'A' + 'P'; # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } } # else abort (); # endif } /* The generated string now extends from tmp to p, with the zero padding insertion point being at pad_ptr. */ count = p - tmp; if (count < width) { size_t pad = width - count; DCHAR_T *end = p + pad; if (flags & FLAG_LEFT) { /* Pad with spaces on the right. */ for (; pad > 0; pad--) *p++ = ' '; } else if ((flags & FLAG_ZERO) && pad_ptr != NULL) { /* Pad with zeroes. */ DCHAR_T *q = end; while (p > pad_ptr) *--q = *--p; for (; pad > 0; pad--) *p++ = '0'; } else { /* Pad with spaces on the left. */ DCHAR_T *q = end; while (p > tmp) *--q = *--p; for (; pad > 0; pad--) *p++ = ' '; } p = end; } count = p - tmp; if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); /* Make room for the result. */ if (count >= allocated - length) { size_t n = xsum (length, count); ENSURE_ALLOCATION (n); } /* Append the result. */ memcpy (result + length, tmp, count * sizeof (DCHAR_T)); if (tmp != tmpbuf) free (tmp); length += count; } #endif #if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL else if ((dp->conversion == 'f' || dp->conversion == 'F' || dp->conversion == 'e' || dp->conversion == 'E' || dp->conversion == 'g' || dp->conversion == 'G' || dp->conversion == 'a' || dp->conversion == 'A') && (0 # if NEED_PRINTF_DOUBLE || a.arg[dp->arg_index].type == TYPE_DOUBLE # elif NEED_PRINTF_INFINITE_DOUBLE || (a.arg[dp->arg_index].type == TYPE_DOUBLE /* The systems (mingw) which produce wrong output for Inf, -Inf, and NaN also do so for -0.0. Therefore we treat this case here as well. */ && is_infinite_or_zero (a.arg[dp->arg_index].a.a_double)) # endif # if NEED_PRINTF_LONG_DOUBLE || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE # elif NEED_PRINTF_INFINITE_LONG_DOUBLE || (a.arg[dp->arg_index].type == TYPE_LONGDOUBLE /* Some systems produce wrong output for Inf, -Inf, and NaN. Some systems in this category (IRIX 5.3) also do so for -0.0. Therefore we treat this case here as well. */ && is_infinite_or_zerol (a.arg[dp->arg_index].a.a_longdouble)) # endif )) { # if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) arg_type type = a.arg[dp->arg_index].type; # endif int flags = dp->flags; size_t width; size_t count; int has_precision; size_t precision; size_t tmp_length; DCHAR_T tmpbuf[700]; DCHAR_T *tmp; DCHAR_T *pad_ptr; DCHAR_T *p; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; width = arg; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = -width; } } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } } has_precision = 0; precision = 0; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } /* POSIX specifies the default precision to be 6 for %f, %F, %e, %E, but not for %g, %G. Implementations appear to use the same default precision also for %g, %G. But for %a, %A, the default precision is 0. */ if (!has_precision) if (!(dp->conversion == 'a' || dp->conversion == 'A')) precision = 6; /* Allocate a temporary buffer of sufficient size. */ # if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1); # elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : 0); # elif NEED_PRINTF_LONG_DOUBLE tmp_length = LDBL_DIG + 1; # elif NEED_PRINTF_DOUBLE tmp_length = DBL_DIG + 1; # else tmp_length = 0; # endif if (tmp_length < precision) tmp_length = precision; # if NEED_PRINTF_LONG_DOUBLE # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE if (type == TYPE_LONGDOUBLE) # endif if (dp->conversion == 'f' || dp->conversion == 'F') { long double arg = a.arg[dp->arg_index].a.a_longdouble; if (!(isnanl (arg) || arg + arg == arg)) { /* arg is finite and nonzero. */ int exponent = floorlog10l (arg < 0 ? -arg : arg); if (exponent >= 0 && tmp_length < exponent + precision) tmp_length = exponent + precision; } } # endif # if NEED_PRINTF_DOUBLE # if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE if (type == TYPE_DOUBLE) # endif if (dp->conversion == 'f' || dp->conversion == 'F') { double arg = a.arg[dp->arg_index].a.a_double; if (!(isnand (arg) || arg + arg == arg)) { /* arg is finite and nonzero. */ int exponent = floorlog10 (arg < 0 ? -arg : arg); if (exponent >= 0 && tmp_length < exponent + precision) tmp_length = exponent + precision; } } # endif /* Account for sign, decimal point etc. */ tmp_length = xsum (tmp_length, 12); if (tmp_length < width) tmp_length = width; tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) tmp = tmpbuf; else { size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; tmp = (DCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } pad_ptr = NULL; p = tmp; # if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE if (type == TYPE_LONGDOUBLE) # endif { long double arg = a.arg[dp->arg_index].a.a_longdouble; if (isnanl (arg)) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; DECL_LONG_DOUBLE_ROUNDING BEGIN_LONG_DOUBLE_ROUNDING (); if (signbit (arg)) /* arg < 0.0L or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0L && arg + arg == arg) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { # if NEED_PRINTF_LONG_DOUBLE pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { char *digits; size_t ndigits; digits = scale10_round_decimal_long_double (arg, precision); if (digits == NULL) { END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } ndigits = strlen (digits); if (ndigits > precision) do { --ndigits; *p++ = digits[ndigits]; } while (ndigits > precision); else *p++ = '0'; /* Here ndigits <= precision. */ if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > ndigits; precision--) *p++ = '0'; while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } else if (dp->conversion == 'e' || dp->conversion == 'E') { int exponent; if (arg == 0.0L) { exponent = 0; *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else { /* arg > 0.0L. */ int adjusted; char *digits; size_t ndigits; exponent = floorlog10l (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_long_double (arg, (int)precision - exponent); if (digits == NULL) { END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } ndigits = strlen (digits); if (ndigits == precision + 1) break; if (ndigits < precision || ndigits > precision + 2) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits == precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision+1. */ if (is_borderline (digits, precision)) { /* Maybe the exponent guess was too high and a smaller exponent can be reached by turning a 10...0 into 9...9x. */ char *digits2 = scale10_round_decimal_long_double (arg, (int)precision - exponent + 1); if (digits2 == NULL) { free (digits); END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } if (strlen (digits2) == precision + 1) { free (digits); digits = digits2; exponent -= 1; } else free (digits2); } /* Here ndigits = precision+1. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } *p++ = dp->conversion; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', '.', '2', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+.2d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+.2d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } else if (dp->conversion == 'g' || dp->conversion == 'G') { if (precision == 0) precision = 1; /* precision >= 1. */ if (arg == 0.0L) /* The exponent is 0, >= -4, < precision. Use fixed-point notation. */ { size_t ndigits = precision; /* Number of trailing zeroes that have to be dropped. */ size_t nzeroes = (flags & FLAG_ALT ? 0 : precision - 1); --ndigits; *p++ = '0'; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = '0'; } } } else { /* arg > 0.0L. */ int exponent; int adjusted; char *digits; size_t ndigits; size_t nzeroes; exponent = floorlog10l (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_long_double (arg, (int)(precision - 1) - exponent); if (digits == NULL) { END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } ndigits = strlen (digits); if (ndigits == precision) break; if (ndigits < precision - 1 || ndigits > precision + 1) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits < precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision. */ if (is_borderline (digits, precision - 1)) { /* Maybe the exponent guess was too high and a smaller exponent can be reached by turning a 10...0 into 9...9x. */ char *digits2 = scale10_round_decimal_long_double (arg, (int)(precision - 1) - exponent + 1); if (digits2 == NULL) { free (digits); END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } if (strlen (digits2) == precision) { free (digits); digits = digits2; exponent -= 1; } else free (digits2); } /* Here ndigits = precision. */ /* Determine the number of trailing zeroes that have to be dropped. */ nzeroes = 0; if ((flags & FLAG_ALT) == 0) while (nzeroes < ndigits && digits[nzeroes] == '0') nzeroes++; /* The exponent is now determined. */ if (exponent >= -4 && exponent < (long)precision) { /* Fixed-point notation: max(exponent,0)+1 digits, then the decimal point, then the remaining digits without trailing zeroes. */ if (exponent >= 0) { size_t ecount = exponent + 1; /* Note: count <= precision = ndigits. */ for (; ecount > 0; ecount--) *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { size_t ecount = -exponent - 1; *p++ = '0'; *p++ = decimal_point_char (); for (; ecount > 0; ecount--) *p++ = '0'; while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { /* Exponential notation. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', '.', '2', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+.2d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+.2d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } free (digits); } } else abort (); # else /* arg is finite. */ if (!(arg == 0.0L)) abort (); pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else if (dp->conversion == 'e' || dp->conversion == 'E') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } *p++ = dp->conversion; /* 'e' or 'E' */ *p++ = '+'; *p++ = '0'; *p++ = '0'; } else if (dp->conversion == 'g' || dp->conversion == 'G') { *p++ = '0'; if (flags & FLAG_ALT) { size_t ndigits = (precision > 0 ? precision - 1 : 0); *p++ = decimal_point_char (); for (; ndigits > 0; --ndigits) *p++ = '0'; } } else if (dp->conversion == 'a' || dp->conversion == 'A') { *p++ = '0'; *p++ = dp->conversion - 'A' + 'X'; pad_ptr = p; *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } *p++ = dp->conversion - 'A' + 'P'; *p++ = '+'; *p++ = '0'; } else abort (); # endif } END_LONG_DOUBLE_ROUNDING (); } } # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE else # endif # endif # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE { double arg = a.arg[dp->arg_index].a.a_double; if (isnand (arg)) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; if (signbit (arg)) /* arg < 0.0 or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0 && arg + arg == arg) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { # if NEED_PRINTF_DOUBLE pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { char *digits; size_t ndigits; digits = scale10_round_decimal_double (arg, precision); if (digits == NULL) goto out_of_memory; ndigits = strlen (digits); if (ndigits > precision) do { --ndigits; *p++ = digits[ndigits]; } while (ndigits > precision); else *p++ = '0'; /* Here ndigits <= precision. */ if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > ndigits; precision--) *p++ = '0'; while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } else if (dp->conversion == 'e' || dp->conversion == 'E') { int exponent; if (arg == 0.0) { exponent = 0; *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else { /* arg > 0.0. */ int adjusted; char *digits; size_t ndigits; exponent = floorlog10 (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_double (arg, (int)precision - exponent); if (digits == NULL) goto out_of_memory; ndigits = strlen (digits); if (ndigits == precision + 1) break; if (ndigits < precision || ndigits > precision + 2) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits == precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision+1. */ if (is_borderline (digits, precision)) { /* Maybe the exponent guess was too high and a smaller exponent can be reached by turning a 10...0 into 9...9x. */ char *digits2 = scale10_round_decimal_double (arg, (int)precision - exponent + 1); if (digits2 == NULL) { free (digits); goto out_of_memory; } if (strlen (digits2) == precision + 1) { free (digits); digits = digits2; exponent -= 1; } else free (digits2); } /* Here ndigits = precision+1. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } *p++ = dp->conversion; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if defined _WIN32 && ! defined __CYGWIN__ { '%', '+', '.', '3', 'd', '\0' }; # else { '%', '+', '.', '2', 'd', '\0' }; # endif SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else { static const char decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if defined _WIN32 && ! defined __CYGWIN__ "%+.3d"; # else "%+.2d"; # endif if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, decimal_format, exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, decimal_format, exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } } # endif } else if (dp->conversion == 'g' || dp->conversion == 'G') { if (precision == 0) precision = 1; /* precision >= 1. */ if (arg == 0.0) /* The exponent is 0, >= -4, < precision. Use fixed-point notation. */ { size_t ndigits = precision; /* Number of trailing zeroes that have to be dropped. */ size_t nzeroes = (flags & FLAG_ALT ? 0 : precision - 1); --ndigits; *p++ = '0'; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = '0'; } } } else { /* arg > 0.0. */ int exponent; int adjusted; char *digits; size_t ndigits; size_t nzeroes; exponent = floorlog10 (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_double (arg, (int)(precision - 1) - exponent); if (digits == NULL) goto out_of_memory; ndigits = strlen (digits); if (ndigits == precision) break; if (ndigits < precision - 1 || ndigits > precision + 1) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits < precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision. */ if (is_borderline (digits, precision - 1)) { /* Maybe the exponent guess was too high and a smaller exponent can be reached by turning a 10...0 into 9...9x. */ char *digits2 = scale10_round_decimal_double (arg, (int)(precision - 1) - exponent + 1); if (digits2 == NULL) { free (digits); goto out_of_memory; } if (strlen (digits2) == precision) { free (digits); digits = digits2; exponent -= 1; } else free (digits2); } /* Here ndigits = precision. */ /* Determine the number of trailing zeroes that have to be dropped. */ nzeroes = 0; if ((flags & FLAG_ALT) == 0) while (nzeroes < ndigits && digits[nzeroes] == '0') nzeroes++; /* The exponent is now determined. */ if (exponent >= -4 && exponent < (long)precision) { /* Fixed-point notation: max(exponent,0)+1 digits, then the decimal point, then the remaining digits without trailing zeroes. */ if (exponent >= 0) { size_t ecount = exponent + 1; /* Note: ecount <= precision = ndigits. */ for (; ecount > 0; ecount--) *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { size_t ecount = -exponent - 1; *p++ = '0'; *p++ = decimal_point_char (); for (; ecount > 0; ecount--) *p++ = '0'; while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { /* Exponential notation. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if defined _WIN32 && ! defined __CYGWIN__ { '%', '+', '.', '3', 'd', '\0' }; # else { '%', '+', '.', '2', 'd', '\0' }; # endif SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else { static const char decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if defined _WIN32 && ! defined __CYGWIN__ "%+.3d"; # else "%+.2d"; # endif if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, decimal_format, exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, decimal_format, exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } } # endif } free (digits); } } else abort (); # else /* arg is finite. */ if (!(arg == 0.0)) abort (); pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else if (dp->conversion == 'e' || dp->conversion == 'E') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } *p++ = dp->conversion; /* 'e' or 'E' */ *p++ = '+'; /* Produce the same number of exponent digits as the native printf implementation. */ # if defined _WIN32 && ! defined __CYGWIN__ *p++ = '0'; # endif *p++ = '0'; *p++ = '0'; } else if (dp->conversion == 'g' || dp->conversion == 'G') { *p++ = '0'; if (flags & FLAG_ALT) { size_t ndigits = (precision > 0 ? precision - 1 : 0); *p++ = decimal_point_char (); for (; ndigits > 0; --ndigits) *p++ = '0'; } } else abort (); # endif } } } # endif /* The generated string now extends from tmp to p, with the zero padding insertion point being at pad_ptr. */ count = p - tmp; if (count < width) { size_t pad = width - count; DCHAR_T *end = p + pad; if (flags & FLAG_LEFT) { /* Pad with spaces on the right. */ for (; pad > 0; pad--) *p++ = ' '; } else if ((flags & FLAG_ZERO) && pad_ptr != NULL) { /* Pad with zeroes. */ DCHAR_T *q = end; while (p > pad_ptr) *--q = *--p; for (; pad > 0; pad--) *p++ = '0'; } else { /* Pad with spaces on the left. */ DCHAR_T *q = end; while (p > tmp) *--q = *--p; for (; pad > 0; pad--) *p++ = ' '; } p = end; } count = p - tmp; if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); /* Make room for the result. */ if (count >= allocated - length) { size_t n = xsum (length, count); ENSURE_ALLOCATION (n); } /* Append the result. */ memcpy (result + length, tmp, count * sizeof (DCHAR_T)); if (tmp != tmpbuf) free (tmp); length += count; } #endif else { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; #if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION int has_width; #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION size_t width; #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION int has_precision; size_t precision; #endif #if NEED_PRINTF_UNBOUNDED_PRECISION int prec_ourselves; #else # define prec_ourselves 0 #endif #if NEED_PRINTF_FLAG_LEFTADJUST # define pad_ourselves 1 #elif !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION int pad_ourselves; #else # define pad_ourselves 0 #endif TCHAR_T *fbp; unsigned int prefix_count; int prefixes[2] IF_LINT (= { 0 }); int orig_errno; #if !USE_SNPRINTF size_t tmp_length; TCHAR_T tmpbuf[700]; TCHAR_T *tmp; #endif #if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION has_width = 0; #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; width = arg; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = -width; } } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } #if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION has_width = 1; #endif } #endif #if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION has_precision = 0; precision = 6; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } #endif /* Decide whether to handle the precision ourselves. */ #if NEED_PRINTF_UNBOUNDED_PRECISION switch (dp->conversion) { case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': prec_ourselves = has_precision && (precision > 0); break; default: prec_ourselves = 0; break; } #endif /* Decide whether to perform the padding ourselves. */ #if !NEED_PRINTF_FLAG_LEFTADJUST && (!DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION) switch (dp->conversion) { # if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO /* If we need conversion from TCHAR_T[] to DCHAR_T[], we need to perform the padding after this conversion. Functions with unistdio extensions perform the padding based on character count rather than element count. */ case 'c': case 's': # endif # if NEED_PRINTF_FLAG_ZERO case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': case 'a': case 'A': # endif pad_ourselves = 1; break; default: pad_ourselves = prec_ourselves; break; } #endif #if !USE_SNPRINTF /* Allocate a temporary buffer of sufficient size for calling sprintf. */ tmp_length = MAX_ROOM_NEEDED (&a, dp->arg_index, dp->conversion, type, flags, width, has_precision, precision, pad_ourselves); if (tmp_length <= sizeof (tmpbuf) / sizeof (TCHAR_T)) tmp = tmpbuf; else { size_t tmp_memsize = xtimes (tmp_length, sizeof (TCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; tmp = (TCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } #endif /* Construct the format string for calling snprintf or sprintf. */ fbp = buf; *fbp++ = '%'; #if NEED_PRINTF_FLAG_GROUPING /* The underlying implementation doesn't support the ' flag. Produce no grouping characters in this case; this is acceptable because the grouping is locale dependent. */ #else if (flags & FLAG_GROUP) *fbp++ = '\''; #endif if (flags & FLAG_LEFT) *fbp++ = '-'; if (flags & FLAG_SHOWSIGN) *fbp++ = '+'; if (flags & FLAG_SPACE) *fbp++ = ' '; if (flags & FLAG_ALT) *fbp++ = '#'; #if __GLIBC__ >= 2 && !defined __UCLIBC__ if (flags & FLAG_LOCALIZED) *fbp++ = 'I'; #endif if (!pad_ourselves) { if (flags & FLAG_ZERO) *fbp++ = '0'; if (dp->width_start != dp->width_end) { size_t n = dp->width_end - dp->width_start; /* The width specification is known to consist only of standard ASCII characters. */ if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) { memcpy (fbp, dp->width_start, n * sizeof (TCHAR_T)); fbp += n; } else { const FCHAR_T *mp = dp->width_start; do *fbp++ = *mp++; while (--n > 0); } } } if (!prec_ourselves) { if (dp->precision_start != dp->precision_end) { size_t n = dp->precision_end - dp->precision_start; /* The precision specification is known to consist only of standard ASCII characters. */ if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) { memcpy (fbp, dp->precision_start, n * sizeof (TCHAR_T)); fbp += n; } else { const FCHAR_T *mp = dp->precision_start; do *fbp++ = *mp++; while (--n > 0); } } } switch (type) { #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: case TYPE_ULONGLONGINT: # if defined _WIN32 && ! defined __CYGWIN__ *fbp++ = 'I'; *fbp++ = '6'; *fbp++ = '4'; break; # else *fbp++ = 'l'; # endif #endif FALLTHROUGH; case TYPE_LONGINT: case TYPE_ULONGINT: #if HAVE_WINT_T case TYPE_WIDE_CHAR: #endif #if HAVE_WCHAR_T case TYPE_WIDE_STRING: #endif *fbp++ = 'l'; break; case TYPE_LONGDOUBLE: *fbp++ = 'L'; break; default: break; } #if NEED_PRINTF_DIRECTIVE_F if (dp->conversion == 'F') *fbp = 'f'; else #endif *fbp = dp->conversion; #if USE_SNPRINTF # if ! (((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) \ && !defined __UCLIBC__) \ || (defined __APPLE__ && defined __MACH__) \ || (defined _WIN32 && ! defined __CYGWIN__)) fbp[1] = '%'; fbp[2] = 'n'; fbp[3] = '\0'; # else /* On glibc2 systems from glibc >= 2.3 - probably also older ones - we know that snprintf's return value conforms to ISO C 99: the tests gl_SNPRINTF_RETVAL_C99 and gl_SNPRINTF_TRUNCATION_C99 pass. Therefore we can avoid using %n in this situation. On glibc2 systems from 2004-10-18 or newer, the use of %n in format strings in writable memory may crash the program (if compiled with _FORTIFY_SOURCE=2), so we should avoid it in this situation. */ /* On Mac OS X 10.3 or newer, we know that snprintf's return value conforms to ISO C 99: the tests gl_SNPRINTF_RETVAL_C99 and gl_SNPRINTF_TRUNCATION_C99 pass. Therefore we can avoid using %n in this situation. On Mac OS X 10.13 or newer, the use of %n in format strings in writable memory by default crashes the program, so we should avoid it in this situation. */ /* On native Windows systems (such as mingw), we can avoid using %n because: - Although the gl_SNPRINTF_TRUNCATION_C99 test fails, snprintf does not write more than the specified number of bytes. (snprintf (buf, 3, "%d %d", 4567, 89) writes '4', '5', '6' into buf, not '4', '5', '\0'.) - Although the gl_SNPRINTF_RETVAL_C99 test fails, snprintf allows us to recognize the case of an insufficient buffer size: it returns -1 in this case. On native Windows systems (such as mingw) where the OS is Windows Vista, the use of %n in format strings by default crashes the program. See and So we should avoid %n in this situation. */ fbp[1] = '\0'; # endif #else fbp[1] = '\0'; #endif /* Construct the arguments for calling snprintf or sprintf. */ prefix_count = 0; if (!pad_ourselves && dp->width_arg_index != ARG_NONE) { if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int; } if (!prec_ourselves && dp->precision_arg_index != ARG_NONE) { if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int; } #if USE_SNPRINTF /* The SNPRINTF result is appended after result[0..length]. The latter is an array of DCHAR_T; SNPRINTF appends an array of TCHAR_T to it. This is possible because sizeof (TCHAR_T) divides sizeof (DCHAR_T) and alignof (TCHAR_T) <= alignof (DCHAR_T). */ # define TCHARS_PER_DCHAR (sizeof (DCHAR_T) / sizeof (TCHAR_T)) /* Ensure that maxlen below will be >= 2. Needed on BeOS, where an snprintf() with maxlen==1 acts like sprintf(). */ ENSURE_ALLOCATION (xsum (length, (2 + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR)); /* Prepare checking whether snprintf returns the count via %n. */ *(TCHAR_T *) (result + length) = '\0'; #endif orig_errno = errno; for (;;) { int count = -1; #if USE_SNPRINTF int retcount = 0; size_t maxlen = allocated - length; /* SNPRINTF can fail if its second argument is > INT_MAX. */ if (maxlen > INT_MAX / TCHARS_PER_DCHAR) maxlen = INT_MAX / TCHARS_PER_DCHAR; maxlen = maxlen * TCHARS_PER_DCHAR; # define SNPRINTF_BUF(arg) \ switch (prefix_count) \ { \ case 0: \ retcount = SNPRINTF ((TCHAR_T *) (result + length), \ maxlen, buf, \ arg, &count); \ break; \ case 1: \ retcount = SNPRINTF ((TCHAR_T *) (result + length), \ maxlen, buf, \ prefixes[0], arg, &count); \ break; \ case 2: \ retcount = SNPRINTF ((TCHAR_T *) (result + length), \ maxlen, buf, \ prefixes[0], prefixes[1], arg, \ &count); \ break; \ default: \ abort (); \ } #else # define SNPRINTF_BUF(arg) \ switch (prefix_count) \ { \ case 0: \ count = sprintf (tmp, buf, arg); \ break; \ case 1: \ count = sprintf (tmp, buf, prefixes[0], arg); \ break; \ case 2: \ count = sprintf (tmp, buf, prefixes[0], prefixes[1],\ arg); \ break; \ default: \ abort (); \ } #endif errno = 0; switch (type) { case TYPE_SCHAR: { int arg = a.arg[dp->arg_index].a.a_schar; SNPRINTF_BUF (arg); } break; case TYPE_UCHAR: { unsigned int arg = a.arg[dp->arg_index].a.a_uchar; SNPRINTF_BUF (arg); } break; case TYPE_SHORT: { int arg = a.arg[dp->arg_index].a.a_short; SNPRINTF_BUF (arg); } break; case TYPE_USHORT: { unsigned int arg = a.arg[dp->arg_index].a.a_ushort; SNPRINTF_BUF (arg); } break; case TYPE_INT: { int arg = a.arg[dp->arg_index].a.a_int; SNPRINTF_BUF (arg); } break; case TYPE_UINT: { unsigned int arg = a.arg[dp->arg_index].a.a_uint; SNPRINTF_BUF (arg); } break; case TYPE_LONGINT: { long int arg = a.arg[dp->arg_index].a.a_longint; SNPRINTF_BUF (arg); } break; case TYPE_ULONGINT: { unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint; SNPRINTF_BUF (arg); } break; #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: { long long int arg = a.arg[dp->arg_index].a.a_longlongint; SNPRINTF_BUF (arg); } break; case TYPE_ULONGLONGINT: { unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint; SNPRINTF_BUF (arg); } break; #endif case TYPE_DOUBLE: { double arg = a.arg[dp->arg_index].a.a_double; SNPRINTF_BUF (arg); } break; case TYPE_LONGDOUBLE: { long double arg = a.arg[dp->arg_index].a.a_longdouble; SNPRINTF_BUF (arg); } break; case TYPE_CHAR: { int arg = a.arg[dp->arg_index].a.a_char; SNPRINTF_BUF (arg); } break; #if HAVE_WINT_T case TYPE_WIDE_CHAR: { wint_t arg = a.arg[dp->arg_index].a.a_wide_char; SNPRINTF_BUF (arg); } break; #endif case TYPE_STRING: { const char *arg = a.arg[dp->arg_index].a.a_string; SNPRINTF_BUF (arg); } break; #if HAVE_WCHAR_T case TYPE_WIDE_STRING: { const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string; SNPRINTF_BUF (arg); } break; #endif case TYPE_POINTER: { void *arg = a.arg[dp->arg_index].a.a_pointer; SNPRINTF_BUF (arg); } break; default: abort (); } #if USE_SNPRINTF /* Portability: Not all implementations of snprintf() are ISO C 99 compliant. Determine the number of bytes that snprintf() has produced or would have produced. */ if (count >= 0) { /* Verify that snprintf() has NUL-terminated its result. */ if (count < maxlen && ((TCHAR_T *) (result + length)) [count] != '\0') abort (); /* Portability hack. */ if (retcount > count) count = retcount; } else { /* snprintf() doesn't understand the '%n' directive. */ if (fbp[1] != '\0') { /* Don't use the '%n' directive; instead, look at the snprintf() return value. */ fbp[1] = '\0'; continue; } else { /* Look at the snprintf() return value. */ if (retcount < 0) { # if !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF /* HP-UX 10.20 snprintf() is doubly deficient: It doesn't understand the '%n' directive, *and* it returns -1 (rather than the length that would have been required) when the buffer is too small. But a failure at this point can also come from other reasons than a too small buffer, such as an invalid wide string argument to the %ls directive, or possibly an invalid floating-point argument. */ size_t tmp_length = MAX_ROOM_NEEDED (&a, dp->arg_index, dp->conversion, type, flags, width, has_precision, precision, pad_ourselves); if (maxlen < tmp_length) { /* Make more room. But try to do through this reallocation only once. */ size_t bigger_need = xsum (length, xsum (tmp_length, TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR); /* And always grow proportionally. (There may be several arguments, each needing a little more room than the previous one.) */ size_t bigger_need2 = xsum (xtimes (allocated, 2), 12); if (bigger_need < bigger_need2) bigger_need = bigger_need2; ENSURE_ALLOCATION (bigger_need); continue; } # endif } else count = retcount; } } #endif /* Attempt to handle failure. */ if (count < 0) { /* SNPRINTF or sprintf failed. Save and use the errno that it has set, if any. */ int saved_errno = errno; if (saved_errno == 0) { if (dp->conversion == 'c' || dp->conversion == 's') saved_errno = EILSEQ; else saved_errno = EINVAL; } if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } #if USE_SNPRINTF /* Handle overflow of the allocated buffer. If such an overflow occurs, a C99 compliant snprintf() returns a count >= maxlen. However, a non-compliant snprintf() function returns only count = maxlen - 1. To cover both cases, test whether count >= maxlen - 1. */ if ((unsigned int) count + 1 >= maxlen) { /* If maxlen already has attained its allowed maximum, allocating more memory will not increase maxlen. Instead of looping, bail out. */ if (maxlen == INT_MAX / TCHARS_PER_DCHAR) goto overflow; else { /* Need at least (count + 1) * sizeof (TCHAR_T) bytes. (The +1 is for the trailing NUL.) But ask for (count + 2) * sizeof (TCHAR_T) bytes, so that in the next round, we likely get maxlen > (unsigned int) count + 1 and so we don't get here again. And allocate proportionally, to avoid looping eternally if snprintf() reports a too small count. */ size_t n = xmax (xsum (length, ((unsigned int) count + 2 + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR), xtimes (allocated, 2)); ENSURE_ALLOCATION (n); continue; } } #endif #if NEED_PRINTF_UNBOUNDED_PRECISION if (prec_ourselves) { /* Handle the precision. */ TCHAR_T *prec_ptr = # if USE_SNPRINTF (TCHAR_T *) (result + length); # else tmp; # endif size_t prefix_count; size_t move; prefix_count = 0; /* Put the additional zeroes after the sign. */ if (count >= 1 && (*prec_ptr == '-' || *prec_ptr == '+' || *prec_ptr == ' ')) prefix_count = 1; /* Put the additional zeroes after the 0x prefix if (flags & FLAG_ALT) || (dp->conversion == 'p'). */ else if (count >= 2 && prec_ptr[0] == '0' && (prec_ptr[1] == 'x' || prec_ptr[1] == 'X')) prefix_count = 2; move = count - prefix_count; if (precision > move) { /* Insert zeroes. */ size_t insert = precision - move; TCHAR_T *prec_end; # if USE_SNPRINTF size_t n = xsum (length, (count + insert + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR); length += (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; ENSURE_ALLOCATION (n); length -= (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; prec_ptr = (TCHAR_T *) (result + length); # endif prec_end = prec_ptr + count; prec_ptr += prefix_count; while (prec_end > prec_ptr) { prec_end--; prec_end[insert] = prec_end[0]; } prec_end += insert; do *--prec_end = '0'; while (prec_end > prec_ptr); count += insert; } } #endif #if !USE_SNPRINTF if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); #endif #if !DCHAR_IS_TCHAR /* Convert from TCHAR_T[] to DCHAR_T[]. */ if (dp->conversion == 'c' || dp->conversion == 's') { /* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING TYPE_WIDE_STRING. The result string is not certainly ASCII. */ const TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t tmpdst_len; /* This code assumes that TCHAR_T is 'char'. */ verify (sizeof (TCHAR_T) == 1); # if USE_SNPRINTF tmpsrc = (TCHAR_T *) (result + length); # else tmpsrc = tmp; # endif tmpdst = DCHAR_CONV_FROM_ENCODING (locale_charset (), iconveh_question_mark, tmpsrc, count, NULL, NULL, &tmpdst_len); if (tmpdst == NULL) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } ENSURE_ALLOCATION (xsum (length, tmpdst_len)); DCHAR_CPY (result + length, tmpdst, tmpdst_len); free (tmpdst); count = tmpdst_len; } else { /* The result string is ASCII. Simple 1:1 conversion. */ # if USE_SNPRINTF /* If sizeof (DCHAR_T) == sizeof (TCHAR_T), it's a no-op conversion, in-place on the array starting at (result + length). */ if (sizeof (DCHAR_T) != sizeof (TCHAR_T)) # endif { const TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t n; # if USE_SNPRINTF if (result == resultbuf) { tmpsrc = (TCHAR_T *) (result + length); /* ENSURE_ALLOCATION will not move tmpsrc (because it's part of resultbuf). */ ENSURE_ALLOCATION (xsum (length, count)); } else { /* ENSURE_ALLOCATION will move the array (because it uses realloc(). */ ENSURE_ALLOCATION (xsum (length, count)); tmpsrc = (TCHAR_T *) (result + length); } # else tmpsrc = tmp; ENSURE_ALLOCATION (xsum (length, count)); # endif tmpdst = result + length; /* Copy backwards, because of overlapping. */ tmpsrc += count; tmpdst += count; for (n = count; n > 0; n--) *--tmpdst = *--tmpsrc; } } #endif #if DCHAR_IS_TCHAR && !USE_SNPRINTF /* Make room for the result. */ if (count > allocated - length) { /* Need at least count elements. But allocate proportionally. */ size_t n = xmax (xsum (length, count), xtimes (allocated, 2)); ENSURE_ALLOCATION (n); } #endif /* Here count <= allocated - length. */ /* Perform padding. */ #if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION if (pad_ourselves && has_width) { size_t w; # if ENABLE_UNISTDIO /* Outside POSIX, it's preferable to compare the width against the number of _characters_ of the converted value. */ w = DCHAR_MBSNLEN (result + length, count); # else /* The width is compared against the number of _bytes_ of the converted value, says POSIX. */ w = count; # endif if (w < width) { size_t pad = width - w; /* Make room for the result. */ if (xsum (count, pad) > allocated - length) { /* Need at least count + pad elements. But allocate proportionally. */ size_t n = xmax (xsum3 (length, count, pad), xtimes (allocated, 2)); # if USE_SNPRINTF length += count; ENSURE_ALLOCATION (n); length -= count; # else ENSURE_ALLOCATION (n); # endif } /* Here count + pad <= allocated - length. */ { # if !DCHAR_IS_TCHAR || USE_SNPRINTF DCHAR_T * const rp = result + length; # else DCHAR_T * const rp = tmp; # endif DCHAR_T *p = rp + count; DCHAR_T *end = p + pad; DCHAR_T *pad_ptr; # if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO if (dp->conversion == 'c' || dp->conversion == 's') /* No zero-padding for string directives. */ pad_ptr = NULL; else # endif { pad_ptr = (*rp == '-' ? rp + 1 : rp); /* No zero-padding of "inf" and "nan". */ if ((*pad_ptr >= 'A' && *pad_ptr <= 'Z') || (*pad_ptr >= 'a' && *pad_ptr <= 'z')) pad_ptr = NULL; } /* The generated string now extends from rp to p, with the zero padding insertion point being at pad_ptr. */ count = count + pad; /* = end - rp */ if (flags & FLAG_LEFT) { /* Pad with spaces on the right. */ for (; pad > 0; pad--) *p++ = ' '; } else if ((flags & FLAG_ZERO) && pad_ptr != NULL) { /* Pad with zeroes. */ DCHAR_T *q = end; while (p > pad_ptr) *--q = *--p; for (; pad > 0; pad--) *p++ = '0'; } else { /* Pad with spaces on the left. */ DCHAR_T *q = end; while (p > rp) *--q = *--p; for (; pad > 0; pad--) *p++ = ' '; } } } } #endif /* Here still count <= allocated - length. */ #if !DCHAR_IS_TCHAR || USE_SNPRINTF /* The snprintf() result did fit. */ #else /* Append the sprintf() result. */ memcpy (result + length, tmp, count * sizeof (DCHAR_T)); #endif #if !USE_SNPRINTF if (tmp != tmpbuf) free (tmp); #endif #if NEED_PRINTF_DIRECTIVE_F if (dp->conversion == 'F') { /* Convert the %f result to upper case for %F. */ DCHAR_T *rp = result + length; size_t rc; for (rc = count; rc > 0; rc--, rp++) if (*rp >= 'a' && *rp <= 'z') *rp = *rp - 'a' + 'A'; } #endif length += count; break; } errno = orig_errno; #undef pad_ourselves #undef prec_ourselves } } } /* Add the final NUL. */ ENSURE_ALLOCATION (xsum (length, 1)); result[length] = '\0'; if (result != resultbuf && length + 1 < allocated) { /* Shrink the allocated memory if possible. */ DCHAR_T *memory; memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T)); if (memory != NULL) result = memory; } if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); *lengthp = length; /* Note that we can produce a big string of a length > INT_MAX. POSIX says that snprintf() fails with errno = EOVERFLOW in this case, but that's only because snprintf() returns an 'int'. This function does not have this limitation. */ return result; #if USE_SNPRINTF overflow: if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EOVERFLOW; return NULL; #endif out_of_memory: if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); out_of_memory_1: CLEANUP (); errno = ENOMEM; return NULL; } } #undef MAX_ROOM_NEEDED #undef TCHARS_PER_DCHAR #undef SNPRINTF #undef USE_SNPRINTF #undef DCHAR_SET #undef DCHAR_CPY #undef PRINTF_PARSE #undef DIRECTIVES #undef DIRECTIVE #undef DCHAR_IS_TCHAR #undef TCHAR_T #undef DCHAR_T #undef FCHAR_T #undef VASNPRINTF libprelude-5.2.0/libmissing/PaxHeaders.14770/vsnprintf.c0000644000000000000000000000011013726163410021200 xustar000000000000000024 mtime=1599661832.656 24 atime=1599661832.773 24 ctime=1599661999.015 libprelude-5.2.0/libmissing/vsnprintf.c0000644000000000000000000000357013726163410020210 0ustar00rootroot00000000000000/* Formatted output to strings. Copyright (C) 2004, 2006-2018 Free Software Foundation, Inc. Written by Simon Josefsson and Yoann Vandoorselaere . This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifdef HAVE_CONFIG_H # include #endif /* Specification. */ #include #include #include #include #include #include #include "vasnprintf.h" /* Print formatted output to string STR. Similar to vsprintf, but additional length SIZE limit how much is written into STR. Returns string length of formatted string (which may be larger than SIZE). STR may be NULL, in which case nothing will be written. On error, return a negative value. */ int vsnprintf (char *str, size_t size, const char *format, va_list args) { char *output; size_t len; size_t lenbuf = size; output = vasnprintf (str, &lenbuf, format, args); len = lenbuf; if (!output) return -1; if (output != str) { if (size) { size_t pruned_len = (len < size ? len : size - 1); memcpy (str, output, pruned_len); str[pruned_len] = '\0'; } free (output); } if (len > INT_MAX) { errno = EOVERFLOW; return -1; } return len; } libprelude-5.2.0/libmissing/PaxHeaders.14770/wcrtomb.c0000644000000000000000000000011013726163410020624 xustar000000000000000024 mtime=1599661832.657 24 atime=1599661832.773 24 ctime=1599661999.017 libprelude-5.2.0/libmissing/wcrtomb.c0000644000000000000000000000274513726163410017637 0ustar00rootroot00000000000000/* Convert wide character to multibyte character. Copyright (C) 2008-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps) { /* This implementation of wcrtomb on top of wctomb() supports only stateless encodings. ps must be in the initial state. */ if (ps != NULL && !mbsinit (ps)) { errno = EINVAL; return (size_t)(-1); } if (s == NULL) /* We know the NUL wide character corresponds to the NUL character. */ return 1; else { int ret = wctomb (s, wc); if (ret >= 0) return ret; else { errno = EILSEQ; return (size_t)(-1); } } } libprelude-5.2.0/libmissing/PaxHeaders.14770/write.c0000644000000000000000000000011013726163410020301 xustar000000000000000024 mtime=1599661832.657 24 atime=1599661832.773 24 ctime=1599661999.019 libprelude-5.2.0/libmissing/write.c0000644000000000000000000001216713726163410017313 0ustar00rootroot00000000000000/* POSIX compatible write() function. Copyright (C) 2008-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include /* On native Windows platforms, SIGPIPE does not exist. When write() is called on a pipe with no readers, WriteFile() fails with error GetLastError() = ERROR_NO_DATA, and write() in consequence fails with error EINVAL. */ #if defined _WIN32 && ! defined __CYGWIN__ # include # include # include # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" # endif # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif # undef write # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static ssize_t write_nothrow (int fd, const void *buf, size_t count) { ssize_t result; TRY_MSVC_INVAL { result = write (fd, buf, count); } CATCH_MSVC_INVAL { result = -1; errno = EBADF; } DONE_MSVC_INVAL; return result; } # else # define write_nothrow write # endif ssize_t rpl_write (int fd, const void *buf, size_t count) { for (;;) { ssize_t ret = write_nothrow (fd, buf, count); if (ret < 0) { # if GNULIB_NONBLOCKING if (errno == ENOSPC) { HANDLE h = (HANDLE) _get_osfhandle (fd); if (GetFileType (h) == FILE_TYPE_PIPE) { /* h is a pipe or socket. */ DWORD state; if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL, NULL, 0) && (state & PIPE_NOWAIT) != 0) { /* h is a pipe in non-blocking mode. We can get here in four situations: 1. When the pipe buffer is full. 2. When count <= pipe_buf_size and the number of free bytes in the pipe buffer is < count. 3. When count > pipe_buf_size and the number of free bytes in the pipe buffer is > 0, < pipe_buf_size. 4. When count > pipe_buf_size and the pipe buffer is entirely empty. The cases 1 and 2 are POSIX compliant. In cases 3 and 4 POSIX specifies that write() must split the request and succeed with a partial write. We fix case 4. We don't fix case 3 because it is not essential for programs. */ DWORD out_size; /* size of the buffer for outgoing data */ DWORD in_size; /* size of the buffer for incoming data */ if (GetNamedPipeInfo (h, NULL, &out_size, &in_size, NULL)) { size_t reduced_count = count; /* In theory we need only one of out_size, in_size. But I don't know which of the two. The description is ambiguous. */ if (out_size != 0 && out_size < reduced_count) reduced_count = out_size; if (in_size != 0 && in_size < reduced_count) reduced_count = in_size; if (reduced_count < count) { /* Attempt to write only the first part. */ count = reduced_count; continue; } } /* Change errno from ENOSPC to EAGAIN. */ errno = EAGAIN; } } } else # endif { # if GNULIB_SIGPIPE if (GetLastError () == ERROR_NO_DATA && GetFileType ((HANDLE) _get_osfhandle (fd)) == FILE_TYPE_PIPE) { /* Try to raise signal SIGPIPE. */ raise (SIGPIPE); /* If it is currently blocked or ignored, change errno from EINVAL to EPIPE. */ errno = EPIPE; } # endif } } return ret; } } #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/w32sock.h0000644000000000000000000000011013726163410020447 xustar000000000000000024 mtime=1599661832.656 24 atime=1599661832.773 24 ctime=1599661999.024 libprelude-5.2.0/libmissing/w32sock.h0000644000000000000000000000646013726163410017460 0ustar00rootroot00000000000000/* w32sock.h --- internal auxiliary functions for Windows socket functions Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paolo Bonzini */ #include /* Get O_RDWR and O_BINARY. */ #include /* Get _open_osfhandle(). */ #include /* Get _get_osfhandle(). */ #if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" #else # include #endif #define FD_TO_SOCKET(fd) ((SOCKET) _get_osfhandle ((fd))) #define SOCKET_TO_FD(fh) (_open_osfhandle ((intptr_t) (fh), O_RDWR | O_BINARY)) static inline void set_winsock_errno (void) { int err = WSAGetLastError (); /* Map some WSAE* errors to the runtime library's error codes. */ switch (err) { case WSA_INVALID_HANDLE: errno = EBADF; break; case WSA_NOT_ENOUGH_MEMORY: errno = ENOMEM; break; case WSA_INVALID_PARAMETER: errno = EINVAL; break; case WSAENAMETOOLONG: errno = ENAMETOOLONG; break; case WSAENOTEMPTY: errno = ENOTEMPTY; break; case WSAEWOULDBLOCK: errno = EWOULDBLOCK; break; case WSAEINPROGRESS: errno = EINPROGRESS; break; case WSAEALREADY: errno = EALREADY; break; case WSAENOTSOCK: errno = ENOTSOCK; break; case WSAEDESTADDRREQ: errno = EDESTADDRREQ; break; case WSAEMSGSIZE: errno = EMSGSIZE; break; case WSAEPROTOTYPE: errno = EPROTOTYPE; break; case WSAENOPROTOOPT: errno = ENOPROTOOPT; break; case WSAEPROTONOSUPPORT: errno = EPROTONOSUPPORT; break; case WSAEOPNOTSUPP: errno = EOPNOTSUPP; break; case WSAEAFNOSUPPORT: errno = EAFNOSUPPORT; break; case WSAEADDRINUSE: errno = EADDRINUSE; break; case WSAEADDRNOTAVAIL: errno = EADDRNOTAVAIL; break; case WSAENETDOWN: errno = ENETDOWN; break; case WSAENETUNREACH: errno = ENETUNREACH; break; case WSAENETRESET: errno = ENETRESET; break; case WSAECONNABORTED: errno = ECONNABORTED; break; case WSAECONNRESET: errno = ECONNRESET; break; case WSAENOBUFS: errno = ENOBUFS; break; case WSAEISCONN: errno = EISCONN; break; case WSAENOTCONN: errno = ENOTCONN; break; case WSAETIMEDOUT: errno = ETIMEDOUT; break; case WSAECONNREFUSED: errno = ECONNREFUSED; break; case WSAELOOP: errno = ELOOP; break; case WSAEHOSTUNREACH: errno = EHOSTUNREACH; break; default: errno = (err > 10000 && err < 10025) ? err - 10000 : err; break; } } libprelude-5.2.0/libmissing/PaxHeaders.14770/alloca.in.h0000644000000000000000000000010713726163410021022 xustar000000000000000024 mtime=1599661832.533 23 atime=1599661832.74 24 ctime=1599661999.027 libprelude-5.2.0/libmissing/alloca.in.h0000644000000000000000000000403113726163410020015 0ustar00rootroot00000000000000/* Memory allocation on the stack. Copyright (C) 1995, 1999, 2001-2004, 2006-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H means there is a real alloca function. */ #ifndef _GL_ALLOCA_H #define _GL_ALLOCA_H /* alloca (N) returns a pointer to N bytes of memory allocated on the stack, which will last until the function returns. Use of alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns, - for huge N (say, N >= 65536) - you never know how large (or small) the stack is, and when the stack cannot fulfill the memory allocation request, the program just crashes. */ #ifndef alloca # ifdef __GNUC__ # define alloca __builtin_alloca # elif defined _AIX # define alloca __alloca # elif defined _MSC_VER # include # define alloca _alloca # elif defined __DECC && defined __VMS # define alloca __ALLOCA # elif defined __TANDEM && defined _TNS_E_TARGET # ifdef __cplusplus extern "C" # endif void *_alloca (unsigned short); # pragma intrinsic (_alloca) # define alloca _alloca # elif defined __MVS__ # include # else # include # ifdef __cplusplus extern "C" # endif void *alloca (size_t); # endif #endif #endif /* _GL_ALLOCA_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/arpa_inet.in.h0000644000000000000000000000010713726163410021531 xustar000000000000000024 mtime=1599661832.533 23 atime=1599661832.74 24 ctime=1599661999.029 libprelude-5.2.0/libmissing/arpa_inet.in.h0000644000000000000000000001146313726163410020533 0ustar00rootroot00000000000000/* A GNU-like . Copyright (C) 2005-2006, 2008-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_ARPA_INET_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if @HAVE_FEATURES_H@ # include /* for __GLIBC__ */ #endif /* Gnulib's sys/socket.h is responsible for defining socklen_t (used below) and for pulling in winsock2.h etc. under MinGW. But avoid namespace pollution on glibc systems. */ #ifndef __GLIBC__ # include #endif /* On NonStop Kernel, inet_ntop and inet_pton are declared in . But avoid namespace pollution on glibc systems. */ #if defined __TANDEM && !defined __GLIBC__ # include #endif #if @HAVE_ARPA_INET_H@ /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_ARPA_INET_H@ #endif #ifndef _@GUARD_PREFIX@_ARPA_INET_H #define _@GUARD_PREFIX@_ARPA_INET_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #if @GNULIB_INET_NTOP@ /* Converts an internet address from internal format to a printable, presentable format. AF is an internet address family, such as AF_INET or AF_INET6. SRC points to a 'struct in_addr' (for AF_INET) or 'struct in6_addr' (for AF_INET6). DST points to a buffer having room for CNT bytes. The printable representation of the address (in numeric form, not surrounded by [...], no reverse DNS is done) is placed in DST, and DST is returned. If an error occurs, the return value is NULL and errno is set. If CNT bytes are not sufficient to hold the result, the return value is NULL and errno is set to ENOSPC. A good value for CNT is 46. For more details, see the POSIX:2001 specification . */ # if @REPLACE_INET_NTOP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef inet_ntop # define inet_ntop rpl_inet_ntop # endif _GL_FUNCDECL_RPL (inet_ntop, const char *, (int af, const void *restrict src, char *restrict dst, socklen_t cnt) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (inet_ntop, const char *, (int af, const void *restrict src, char *restrict dst, socklen_t cnt)); # else # if !@HAVE_DECL_INET_NTOP@ _GL_FUNCDECL_SYS (inet_ntop, const char *, (int af, const void *restrict src, char *restrict dst, socklen_t cnt) _GL_ARG_NONNULL ((2, 3))); # endif /* Need to cast, because on NonStop Kernel, the fourth parameter is size_t cnt. */ _GL_CXXALIAS_SYS_CAST (inet_ntop, const char *, (int af, const void *restrict src, char *restrict dst, socklen_t cnt)); # endif _GL_CXXALIASWARN (inet_ntop); #elif defined GNULIB_POSIXCHECK # undef inet_ntop # if HAVE_RAW_DECL_INET_NTOP _GL_WARN_ON_USE (inet_ntop, "inet_ntop is unportable - " "use gnulib module inet_ntop for portability"); # endif #endif #if @GNULIB_INET_PTON@ # if @REPLACE_INET_PTON@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef inet_pton # define inet_pton rpl_inet_pton # endif _GL_FUNCDECL_RPL (inet_pton, int, (int af, const char *restrict src, void *restrict dst) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (inet_pton, int, (int af, const char *restrict src, void *restrict dst)); # else # if !@HAVE_DECL_INET_PTON@ _GL_FUNCDECL_SYS (inet_pton, int, (int af, const char *restrict src, void *restrict dst) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (inet_pton, int, (int af, const char *restrict src, void *restrict dst)); # endif _GL_CXXALIASWARN (inet_pton); #elif defined GNULIB_POSIXCHECK # undef inet_pton # if HAVE_RAW_DECL_INET_PTON _GL_WARN_ON_USE (inet_pton, "inet_pton is unportable - " "use gnulib module inet_pton for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_ARPA_INET_H */ #endif /* _@GUARD_PREFIX@_ARPA_INET_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/assure.h0000644000000000000000000000010713726163410020464 xustar000000000000000024 mtime=1599661832.534 23 atime=1599661832.74 24 ctime=1599661999.032 libprelude-5.2.0/libmissing/assure.h0000644000000000000000000000230613726163410017462 0ustar00rootroot00000000000000/* Run-time assert-like macros. Copyright (C) 2014-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paul Eggert. */ #ifndef _GL_ASSURE_H #define _GL_ASSURE_H #include /* Check E's value at runtime, and report an error and abort if not. However, do nothng if NDEBUG is defined. Unlike standard 'assert', this macro always compiles E even when NDEBUG is defined, so as to catch typos and avoid some GCC warnings. */ #ifdef NDEBUG # define assure(E) ((void) (0 && (E))) #else # define assure(E) assert (E) #endif #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/errno.in.h0000644000000000000000000000011013726163410020706 xustar000000000000000024 mtime=1599661832.536 24 atime=1599661832.741 24 ctime=1599661999.035 libprelude-5.2.0/libmissing/errno.in.h0000644000000000000000000001643513726163410017722 0ustar00rootroot00000000000000/* A POSIX-like . Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_ERRNO_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_ERRNO_H@ #ifndef _@GUARD_PREFIX@_ERRNO_H #define _@GUARD_PREFIX@_ERRNO_H /* On native Windows platforms, many macros are not defined. */ # if defined _WIN32 && ! defined __CYGWIN__ /* These are the same values as defined by MSVC 10, for interoperability. */ # ifndef ENOMSG # define ENOMSG 122 # define GNULIB_defined_ENOMSG 1 # endif # ifndef EIDRM # define EIDRM 111 # define GNULIB_defined_EIDRM 1 # endif # ifndef ENOLINK # define ENOLINK 121 # define GNULIB_defined_ENOLINK 1 # endif # ifndef EPROTO # define EPROTO 134 # define GNULIB_defined_EPROTO 1 # endif # ifndef EBADMSG # define EBADMSG 104 # define GNULIB_defined_EBADMSG 1 # endif # ifndef EOVERFLOW # define EOVERFLOW 132 # define GNULIB_defined_EOVERFLOW 1 # endif # ifndef ENOTSUP # define ENOTSUP 129 # define GNULIB_defined_ENOTSUP 1 # endif # ifndef ENETRESET # define ENETRESET 117 # define GNULIB_defined_ENETRESET 1 # endif # ifndef ECONNABORTED # define ECONNABORTED 106 # define GNULIB_defined_ECONNABORTED 1 # endif # ifndef ECANCELED # define ECANCELED 105 # define GNULIB_defined_ECANCELED 1 # endif # ifndef EOWNERDEAD # define EOWNERDEAD 133 # define GNULIB_defined_EOWNERDEAD 1 # endif # ifndef ENOTRECOVERABLE # define ENOTRECOVERABLE 127 # define GNULIB_defined_ENOTRECOVERABLE 1 # endif # ifndef EINPROGRESS # define EINPROGRESS 112 # define EALREADY 103 # define ENOTSOCK 128 # define EDESTADDRREQ 109 # define EMSGSIZE 115 # define EPROTOTYPE 136 # define ENOPROTOOPT 123 # define EPROTONOSUPPORT 135 # define EOPNOTSUPP 130 # define EAFNOSUPPORT 102 # define EADDRINUSE 100 # define EADDRNOTAVAIL 101 # define ENETDOWN 116 # define ENETUNREACH 118 # define ECONNRESET 108 # define ENOBUFS 119 # define EISCONN 113 # define ENOTCONN 126 # define ETIMEDOUT 138 # define ECONNREFUSED 107 # define ELOOP 114 # define EHOSTUNREACH 110 # define EWOULDBLOCK 140 # define GNULIB_defined_ESOCK 1 # endif # ifndef ETXTBSY # define ETXTBSY 139 # define ENODATA 120 /* not required by POSIX */ # define ENOSR 124 /* not required by POSIX */ # define ENOSTR 125 /* not required by POSIX */ # define ETIME 137 /* not required by POSIX */ # define EOTHER 131 /* not required by POSIX */ # define GNULIB_defined_ESTREAMS 1 # endif /* These are intentionally the same values as the WSA* error numbers, defined in . */ # define ESOCKTNOSUPPORT 10044 /* not required by POSIX */ # define EPFNOSUPPORT 10046 /* not required by POSIX */ # define ESHUTDOWN 10058 /* not required by POSIX */ # define ETOOMANYREFS 10059 /* not required by POSIX */ # define EHOSTDOWN 10064 /* not required by POSIX */ # define EPROCLIM 10067 /* not required by POSIX */ # define EUSERS 10068 /* not required by POSIX */ # define EDQUOT 10069 # define ESTALE 10070 # define EREMOTE 10071 /* not required by POSIX */ # define GNULIB_defined_EWINSOCK 1 # endif /* On OSF/1 5.1, when _XOPEN_SOURCE_EXTENDED is not defined, the macros EMULTIHOP, ENOLINK, EOVERFLOW are not defined. */ # if @EMULTIHOP_HIDDEN@ # define EMULTIHOP @EMULTIHOP_VALUE@ # define GNULIB_defined_EMULTIHOP 1 # endif # if @ENOLINK_HIDDEN@ # define ENOLINK @ENOLINK_VALUE@ # define GNULIB_defined_ENOLINK 1 # endif # if @EOVERFLOW_HIDDEN@ # define EOVERFLOW @EOVERFLOW_VALUE@ # define GNULIB_defined_EOVERFLOW 1 # endif /* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK, EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined. Likewise, on NonStop Kernel, EDQUOT is not defined. Define them here. Values >= 2000 seem safe to use: Solaris ESTALE = 151, HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133. Note: When one of these systems defines some of these macros some day, binaries will have to be recompiled so that they recognizes the new errno values from the system. */ # ifndef ENOMSG # define ENOMSG 2000 # define GNULIB_defined_ENOMSG 1 # endif # ifndef EIDRM # define EIDRM 2001 # define GNULIB_defined_EIDRM 1 # endif # ifndef ENOLINK # define ENOLINK 2002 # define GNULIB_defined_ENOLINK 1 # endif # ifndef EPROTO # define EPROTO 2003 # define GNULIB_defined_EPROTO 1 # endif # ifndef EMULTIHOP # define EMULTIHOP 2004 # define GNULIB_defined_EMULTIHOP 1 # endif # ifndef EBADMSG # define EBADMSG 2005 # define GNULIB_defined_EBADMSG 1 # endif # ifndef EOVERFLOW # define EOVERFLOW 2006 # define GNULIB_defined_EOVERFLOW 1 # endif # ifndef ENOTSUP # define ENOTSUP 2007 # define GNULIB_defined_ENOTSUP 1 # endif # ifndef ENETRESET # define ENETRESET 2011 # define GNULIB_defined_ENETRESET 1 # endif # ifndef ECONNABORTED # define ECONNABORTED 2012 # define GNULIB_defined_ECONNABORTED 1 # endif # ifndef ESTALE # define ESTALE 2009 # define GNULIB_defined_ESTALE 1 # endif # ifndef EDQUOT # define EDQUOT 2010 # define GNULIB_defined_EDQUOT 1 # endif # ifndef ECANCELED # define ECANCELED 2008 # define GNULIB_defined_ECANCELED 1 # endif /* On many platforms, the macros EOWNERDEAD and ENOTRECOVERABLE are not defined. */ # ifndef EOWNERDEAD # if defined __sun /* Use the same values as defined for Solaris >= 8, for interoperability. */ # define EOWNERDEAD 58 # define ENOTRECOVERABLE 59 # elif defined _WIN32 && ! defined __CYGWIN__ /* We have a conflict here: pthreads-win32 defines these values differently than MSVC 10. It's hairy to decide which one to use. */ # if defined __MINGW32__ && !defined USE_WINDOWS_THREADS /* Use the same values as defined by pthreads-win32, for interoperability. */ # define EOWNERDEAD 43 # define ENOTRECOVERABLE 44 # else /* Use the same values as defined by MSVC 10, for interoperability. */ # define EOWNERDEAD 133 # define ENOTRECOVERABLE 127 # endif # else # define EOWNERDEAD 2013 # define ENOTRECOVERABLE 2014 # endif # define GNULIB_defined_EOWNERDEAD 1 # define GNULIB_defined_ENOTRECOVERABLE 1 # endif # ifndef EILSEQ # define EILSEQ 2015 # define GNULIB_defined_EILSEQ 1 # endif #endif /* _@GUARD_PREFIX@_ERRNO_H */ #endif /* _@GUARD_PREFIX@_ERRNO_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/fd-hook.h0000644000000000000000000000011013726163410020503 xustar000000000000000024 mtime=1599661832.536 24 atime=1599661832.741 24 ctime=1599661999.037 libprelude-5.2.0/libmissing/fd-hook.h0000644000000000000000000001137213726163410017512 0ustar00rootroot00000000000000/* Hook for making file descriptor functions close(), ioctl() extensible. Copyright (C) 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef FD_HOOK_H #define FD_HOOK_H #ifdef __cplusplus extern "C" { #endif /* Currently, this entire code is only needed for the handling of sockets on native Windows platforms. */ #if WINDOWS_SOCKETS /* Type of function that closes FD. */ typedef int (*gl_close_fn) (int fd); /* Type of function that applies a control request to FD. */ typedef int (*gl_ioctl_fn) (int fd, int request, void *arg); /* An element of the list of file descriptor hooks. In CLOS (Common Lisp Object System) speak, it consists of an "around" method for the close() function and an "around" method for the ioctl() function. The fields of this structure are considered private. */ struct fd_hook { /* Doubly linked list. */ struct fd_hook *private_next; struct fd_hook *private_prev; /* Function that treats the types of FD that it knows about and calls execute_close_hooks (REMAINING_LIST, PRIMARY, FD) as a fallback. */ int (*private_close_fn) (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Function that treats the types of FD that it knows about and calls execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) as a fallback. */ int (*private_ioctl_fn) (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); }; /* This type of function closes FD, applying special knowledge for the FD types it knows about, and calls execute_close_hooks (REMAINING_LIST, PRIMARY, FD) for the other FD types. In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, and PRIMARY is the "primary" method for close(). */ typedef int (*close_hook_fn) (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Execute the close hooks in REMAINING_LIST, with PRIMARY as "primary" method. Return 0 or -1, like close() would do. */ extern int execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Execute all close hooks, with PRIMARY as "primary" method. Return 0 or -1, like close() would do. */ extern int execute_all_close_hooks (gl_close_fn primary, int fd); /* This type of function applies a control request to FD, applying special knowledge for the FD types it knows about, and calls execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) for the other FD types. In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, and PRIMARY is the "primary" method for ioctl(). */ typedef int (*ioctl_hook_fn) (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); /* Execute the ioctl hooks in REMAINING_LIST, with PRIMARY as "primary" method. Return 0 or -1, like ioctl() would do. */ extern int execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); /* Execute all ioctl hooks, with PRIMARY as "primary" method. Return 0 or -1, like ioctl() would do. */ extern int execute_all_ioctl_hooks (gl_ioctl_fn primary, int fd, int request, void *arg); /* Add a function pair to the list of file descriptor hooks. CLOSE_HOOK and IOCTL_HOOK may be NULL, indicating no change. The LINK variable points to a piece of memory which is guaranteed to be accessible until the corresponding call to unregister_fd_hook. */ extern void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link); /* Removes a hook from the list of file descriptor hooks. */ extern void unregister_fd_hook (struct fd_hook *link); #endif #ifdef __cplusplus } #endif #endif /* FD_HOOK_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/stdio-impl.h0000644000000000000000000000010613726163410021242 xustar000000000000000022 mtime=1599661832.6 24 atime=1599661832.758 24 ctime=1599661999.039 libprelude-5.2.0/libmissing/stdio-impl.h0000644000000000000000000001712013726163410020241 0ustar00rootroot00000000000000/* Implementation details of FILE streams. Copyright (C) 2007-2008, 2010-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Many stdio implementations have the same logic and therefore can share the same implementation of stdio extension API, except that some fields have different naming conventions, or their access requires some casts. */ /* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this problem by defining it ourselves. FIXME: Do not rely on glibc internals. */ #if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN # define _IO_IN_BACKUP 0x100 #endif /* BSD stdio derived implementations. */ #if defined __NetBSD__ /* NetBSD */ /* Get __NetBSD_Version__. */ # include #endif #include /* For detecting Plan9. */ #if defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ # if defined __DragonFly__ /* DragonFly */ /* See . */ # define fp_ ((struct { struct __FILE_public pub; \ struct { unsigned char *_base; int _size; } _bf; \ void *cookie; \ void *_close; \ void *_read; \ void *_seek; \ void *_write; \ struct { unsigned char *_base; int _size; } _ub; \ int _ur; \ unsigned char _ubuf[3]; \ unsigned char _nbuf[1]; \ struct { unsigned char *_base; int _size; } _lb; \ int _blksize; \ fpos_t _offset; \ /* More fields, not relevant here. */ \ } *) fp) /* See . */ # define _p pub._p # define _flags pub._flags # define _r pub._r # define _w pub._w # elif defined __ANDROID__ /* Android */ /* Up to this commit from 2015-10-12 the innards of FILE were public, and fp_ub could be defined like for OpenBSD, see and . After this commit, the innards of FILE are hidden. */ # define fp_ ((struct { unsigned char *_p; \ int _r; \ int _w; \ int _flags; \ int _file; \ struct { unsigned char *_base; size_t _size; } _bf; \ int _lbfsize; \ void *_cookie; \ void *_close; \ void *_read; \ void *_seek; \ void *_write; \ struct { unsigned char *_base; size_t _size; } _ext; \ unsigned char *_up; \ int _ur; \ unsigned char _ubuf[3]; \ unsigned char _nbuf[1]; \ struct { unsigned char *_base; size_t _size; } _lb; \ int _blksize; \ fpos_t _offset; \ /* More fields, not relevant here. */ \ } *) fp) # else # define fp_ fp # endif # if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ || defined __minix /* NetBSD >= 1.5ZA, OpenBSD, Minix 3 */ /* See and and */ struct __sfileext { struct __sbuf _ub; /* ungetc buffer */ /* More fields, not relevant here. */ }; # define fp_ub ((struct __sfileext *) fp->_ext._base)->_ub # elif defined __ANDROID__ /* Android */ struct __sfileext { struct { unsigned char *_base; size_t _size; } _ub; /* ungetc buffer */ /* More fields, not relevant here. */ }; # define fp_ub ((struct __sfileext *) fp_->_ext._base)->_ub # else /* FreeBSD, NetBSD <= 1.5Z, DragonFly, Mac OS X, Cygwin */ # define fp_ub fp_->_ub # endif # define HASUB(fp) (fp_ub._base != NULL) # if defined __ANDROID__ /* Android */ /* Needed after this commit from 2016-01-25 */ # ifndef __SEOF # define __SLBF 1 # define __SNBF 2 # define __SRD 4 # define __SWR 8 # define __SRW 0x10 # define __SEOF 0x20 # define __SERR 0x40 # endif # ifndef __SOFF # define __SOFF 0x1000 # endif # endif #endif /* SystemV derived implementations. */ #ifdef __TANDEM /* NonStop Kernel */ # ifndef _IOERR /* These values were determined by the program 'stdioext-flags' at . */ # define _IOERR 0x40 # define _IOREAD 0x80 # define _IOWRT 0x4 # define _IORW 0x100 # endif #endif #if defined _IOERR # if defined __sun && defined _LP64 /* Solaris/{SPARC,AMD64} 64-bit */ # define fp_ ((struct { unsigned char *_ptr; \ unsigned char *_base; \ unsigned char *_end; \ long _cnt; \ int _file; \ unsigned int _flag; \ } *) fp) # elif defined __VMS /* OpenVMS */ # define fp_ ((struct _iobuf *) fp) # else # define fp_ fp # endif # if defined _SCO_DS /* OpenServer */ # define _cnt __cnt # define _ptr __ptr # define _base __base # define _flag __flag # endif #elif defined _WIN32 && ! defined __CYGWIN__ /* newer Windows with MSVC */ /* does not define the innards of FILE any more. */ # define WINDOWS_OPAQUE_FILE struct _gl_real_FILE { /* Note: Compared to older Windows and to mingw, it has the fields _base and _cnt swapped. */ unsigned char *_ptr; unsigned char *_base; int _cnt; int _flag; int _file; int _charbuf; int _bufsiz; }; # define fp_ ((struct _gl_real_FILE *) fp) /* These values were determined by a program similar to the one at . */ # define _IOREAD 0x1 # define _IOWRT 0x2 # define _IORW 0x4 # define _IOEOF 0x8 # define _IOERR 0x10 #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/filename.h0000644000000000000000000000011013726163410020734 xustar000000000000000024 mtime=1599661832.537 24 atime=1599661832.741 24 ctime=1599661999.042 libprelude-5.2.0/libmissing/filename.h0000644000000000000000000000365513726163410017750 0ustar00rootroot00000000000000/* Basic filename support macros. Copyright (C) 2001-2004, 2007-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _FILENAME_H #define _FILENAME_H #ifdef __cplusplus extern "C" { #endif /* Pathname support. ISSLASH(C) tests whether C is a directory separator character. IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not, it may be concatenated to a directory pathname. IS_PATH_WITH_DIR(P) tests whether P contains a directory specification. */ #if defined _WIN32 || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ /* Native Windows, Cygwin, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') # define HAS_DEVICE(P) \ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ && (P)[1] == ':') # define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P)) # define IS_PATH_WITH_DIR(P) \ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) # define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0) #else /* Unix */ # define ISSLASH(C) ((C) == '/') # define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0]) # define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL) # define FILE_SYSTEM_PREFIX_LEN(P) 0 #endif #ifdef __cplusplus } #endif #endif /* _FILENAME_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/float.in.h0000644000000000000000000000011013726163410020666 xustar000000000000000024 mtime=1599661832.537 24 atime=1599661832.741 24 ctime=1599661999.044 libprelude-5.2.0/libmissing/float.in.h0000644000000000000000000001702613726163410017677 0ustar00rootroot00000000000000/* A correct . Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _@GUARD_PREFIX@_FLOAT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FLOAT_H@ #ifndef _@GUARD_PREFIX@_FLOAT_H #define _@GUARD_PREFIX@_FLOAT_H /* 'long double' properties. */ #if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__) /* Number of mantissa units, in base FLT_RADIX. */ # undef LDBL_MANT_DIG # define LDBL_MANT_DIG 64 /* Number of decimal digits that is sufficient for representing a number. */ # undef LDBL_DIG # define LDBL_DIG 18 /* x-1 where x is the smallest representable number > 1. */ # undef LDBL_EPSILON # define LDBL_EPSILON 1.0842021724855044340E-19L /* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP (-16381) /* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */ # undef LDBL_MAX_EXP # define LDBL_MAX_EXP 16384 /* Minimum positive normalized number. */ # undef LDBL_MIN # define LDBL_MIN 3.3621031431120935063E-4932L /* Maximum representable finite number. */ # undef LDBL_MAX # define LDBL_MAX 1.1897314953572317650E+4932L /* Minimum e such that 10^e is in the range of normalized numbers. */ # undef LDBL_MIN_10_EXP # define LDBL_MIN_10_EXP (-4931) /* Maximum e such that 10^e is in the range of representable finite numbers. */ # undef LDBL_MAX_10_EXP # define LDBL_MAX_10_EXP 4932 #endif /* On FreeBSD/x86 6.4, the 'long double' type really has only 53 bits of precision in the compiler but 64 bits of precision at runtime. See . */ #if defined __i386__ && (defined __FreeBSD__ || defined __DragonFly__) /* Number of mantissa units, in base FLT_RADIX. */ # undef LDBL_MANT_DIG # define LDBL_MANT_DIG 64 /* Number of decimal digits that is sufficient for representing a number. */ # undef LDBL_DIG # define LDBL_DIG 18 /* x-1 where x is the smallest representable number > 1. */ # undef LDBL_EPSILON # define LDBL_EPSILON 1.084202172485504434007452800869941711426e-19L /* 2^-63 */ /* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP (-16381) /* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */ # undef LDBL_MAX_EXP # define LDBL_MAX_EXP 16384 /* Minimum positive normalized number. */ # undef LDBL_MIN # define LDBL_MIN 3.362103143112093506262677817321752E-4932L /* = 0x1p-16382L */ /* Maximum representable finite number. */ # undef LDBL_MAX /* LDBL_MAX is represented as { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }. But the largest literal that GCC allows us to write is 0x0.fffffffffffff8p16384L = { 0xFFFFF800, 0xFFFFFFFF, 32766 }. So, define it like this through a reference to an external variable const unsigned int LDBL_MAX[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }; extern const long double LDBL_MAX; Unfortunately, this is not a constant expression. */ union gl_long_double_union { struct { unsigned int lo; unsigned int hi; unsigned int exponent; } xd; long double ld; }; extern const union gl_long_double_union gl_LDBL_MAX; # define LDBL_MAX (gl_LDBL_MAX.ld) /* Minimum e such that 10^e is in the range of normalized numbers. */ # undef LDBL_MIN_10_EXP # define LDBL_MIN_10_EXP (-4931) /* Maximum e such that 10^e is in the range of representable finite numbers. */ # undef LDBL_MAX_10_EXP # define LDBL_MAX_10_EXP 4932 #endif /* On AIX 7.1 with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_MAX are wrong. On Linux/PowerPC with gcc 4.4, the value of LDBL_MAX is wrong. */ #if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP DBL_MIN_EXP # undef LDBL_MIN_10_EXP # define LDBL_MIN_10_EXP DBL_MIN_10_EXP # undef LDBL_MIN # define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */ #endif #if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__ # undef LDBL_MAX /* LDBL_MAX is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xFFFFFFFF }. It is not easy to define: #define LDBL_MAX 1.79769313486231580793728971405302307166e308L is too small, whereas #define LDBL_MAX 1.79769313486231580793728971405302307167e308L is too large. Apparently a bug in GCC decimal-to-binary conversion. Also, I can't get values larger than #define LDBL63 ((long double) (1ULL << 63)) #define LDBL882 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63) #define LDBL945 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63) #define LDBL1008 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63) #define LDBL_MAX (LDBL1008 * 65535.0L + LDBL945 * (long double) 9223372036821221375ULL + LDBL882 * (long double) 4611686018427387904ULL) which is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xF8000000 }. So, define it like this through a reference to an external variable const double LDBL_MAX[2] = { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL }; extern const long double LDBL_MAX; or through a pointer cast #define LDBL_MAX \ (*(const long double *) (double[]) { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL }) Unfortunately, this is not a constant expression, and the latter expression does not work well when GCC is optimizing.. */ union gl_long_double_union { struct { double hi; double lo; } dd; long double ld; }; extern const union gl_long_double_union gl_LDBL_MAX; # define LDBL_MAX (gl_LDBL_MAX.ld) #endif /* On IRIX 6.5, with cc, the value of LDBL_MANT_DIG is wrong. On IRIX 6.5, with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_EPSILON are wrong. */ #if defined __sgi && (LDBL_MANT_DIG >= 106) # undef LDBL_MANT_DIG # define LDBL_MANT_DIG 106 # if defined __GNUC__ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP DBL_MIN_EXP # undef LDBL_MIN_10_EXP # define LDBL_MIN_10_EXP DBL_MIN_10_EXP # undef LDBL_MIN # define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */ # undef LDBL_EPSILON # define LDBL_EPSILON 2.46519032881566189191165176650870696773e-32L /* 2^-105 */ # endif #endif #if @REPLACE_ITOLD@ /* Pull in a function that fixes the 'int' to 'long double' conversion of glibc 2.7. */ extern # ifdef __cplusplus "C" # endif void _Qp_itoq (long double *, int); static void (*_gl_float_fix_itold) (long double *, int) = _Qp_itoq; #endif #endif /* _@GUARD_PREFIX@_FLOAT_H */ #endif /* _@GUARD_PREFIX@_FLOAT_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/freading.h0000644000000000000000000000011013726163410020733 xustar000000000000000024 mtime=1599661832.538 24 atime=1599661832.741 24 ctime=1599661999.047 libprelude-5.2.0/libmissing/freading.h0000644000000000000000000000371413726163410017743 0ustar00rootroot00000000000000/* Retrieve information about a FILE stream. Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include #include /* Return true if the stream STREAM is opened read-only, or if the last operation on the stream was a read operation. Return false if the stream is opened write-only or append-only, or if it supports writing and there is no current read operation (such as fgetc). freading and fwriting will never both be true. If STREAM supports both reads and writes, then: - both freading and fwriting might be false when the stream is first opened, after read encounters EOF, or after fflush, - freading might be false or true and fwriting might be false after repositioning (such as fseek, fsetpos, or rewind), depending on the underlying implementation. STREAM must not be wide-character oriented. */ #if HAVE___FREADING && (!defined __GLIBC__ || defined __UCLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7)) /* Solaris >= 7, Android API >= 29, not glibc >= 2.2, but glibc >= 2.7, or musl libc */ # include # define freading(stream) (__freading (stream) != 0) #else # ifdef __cplusplus extern "C" { # endif extern bool freading (FILE *stream) _GL_ATTRIBUTE_PURE; # ifdef __cplusplus } # endif #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/stat-w32.h0000644000000000000000000000010713726163410020546 xustar000000000000000024 mtime=1599661832.599 24 atime=1599661832.757 23 ctime=1599661999.05 libprelude-5.2.0/libmissing/stat-w32.h0000644000000000000000000000311513726163410017543 0ustar00rootroot00000000000000/* Core of implementation of fstat and stat for native Windows. Copyright (C) 2017-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _STAT_W32_H #define _STAT_W32_H 1 /* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ #if _GL_WINDOWS_STAT_TIMESPEC extern struct timespec _gl_convert_FILETIME_to_timespec (const FILETIME *ft); #else extern time_t _gl_convert_FILETIME_to_POSIX (const FILETIME *ft); #endif /* Fill *BUF with information about the file designated by H. PATH is the file name, if known, otherwise NULL. Return 0 if successful, or -1 with errno set upon failure. */ extern int _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf); /* Bitmasks for st_mode. */ #define S_IREAD_UGO (_S_IREAD | (_S_IREAD >> 3) | (_S_IREAD >> 6)) #define S_IWRITE_UGO (_S_IWRITE | (_S_IWRITE >> 3) | (_S_IWRITE >> 6)) #define S_IEXEC_UGO (_S_IEXEC | (_S_IEXEC >> 3) | (_S_IEXEC >> 6)) #endif /* _STAT_W32_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/getpass.h0000644000000000000000000000011013726163410020622 xustar000000000000000024 mtime=1599661832.541 24 atime=1599661832.742 24 ctime=1599661999.053 libprelude-5.2.0/libmissing/getpass.h0000644000000000000000000000016513726163410017627 0ustar00rootroot00000000000000/* Obsolete; consider using unistd.h instead. */ /* Get getpass declaration, if available. */ #include libprelude-5.2.0/libmissing/PaxHeaders.14770/hard-locale.h0000644000000000000000000000011013726163410021327 xustar000000000000000024 mtime=1599661832.545 24 atime=1599661832.743 24 ctime=1599661999.056 libprelude-5.2.0/libmissing/hard-locale.h0000644000000000000000000000162113726163410020332 0ustar00rootroot00000000000000/* Determine whether a locale is hard. Copyright (C) 1999, 2003-2004, 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef HARD_LOCALE_H_ # define HARD_LOCALE_H_ 1 # include bool hard_locale (int); #endif /* HARD_LOCALE_H_ */ libprelude-5.2.0/libmissing/PaxHeaders.14770/intprops.h0000644000000000000000000000011013726163410021032 xustar000000000000000024 mtime=1599661832.545 24 atime=1599661832.743 24 ctime=1599661999.059 libprelude-5.2.0/libmissing/intprops.h0000644000000000000000000005075113726163410020045 0ustar00rootroot00000000000000/* intprops.h -- properties of integer types Copyright (C) 2001-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paul Eggert. */ #ifndef _GL_INTPROPS_H #define _GL_INTPROPS_H #include /* Return a value with the common real type of E and V and the value of V. Do not evaluate E. */ #define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v)) /* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see . */ #define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v)) /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ /* True if the arithmetic type T is an integer type. bool counts as an integer. */ #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) /* True if the real type T is signed. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* Return 1 if the real expression E, after promotion, has a signed or floating type. Do not evaluate E. */ #define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) /* Minimum and maximum values for integer types and expressions. */ /* The width in bits of the integer type or expression T. Do not evaluate T. Padding bits are not supported; this is checked at compile-time below. */ #define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) /* The maximum and minimum values for the integer type T. */ #define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1))) /* The maximum and minimum values for the type of the expression E, after integer promotion. E is not evaluated. */ #define _GL_INT_MINIMUM(e) \ (EXPR_SIGNED (e) \ ? ~ _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_CONVERT (e, 0)) #define _GL_INT_MAXIMUM(e) \ (EXPR_SIGNED (e) \ ? _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_NEGATE_CONVERT (e, 1)) #define _GL_SIGNED_INT_MAXIMUM(e) \ (((_GL_INT_CONVERT (e, 1) << (TYPE_WIDTH ((e) + 0) - 2)) - 1) * 2 + 1) /* Work around OpenVMS incompatibility with C99. */ #if !defined LLONG_MAX && defined __INT64_MAX # define LLONG_MAX __INT64_MAX # define LLONG_MIN __INT64_MIN #endif /* This include file assumes that signed types are two's complement without padding bits; the above macros have undefined behavior otherwise. If this is a problem for you, please let us know how to fix it for your host. This assumption is tested by the intprops-tests module. */ /* Does the __typeof__ keyword work? This could be done by 'configure', but for now it's easier to do it by hand. */ #if (2 <= __GNUC__ \ || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \ || (0x5110 <= __SUNPRO_C && !__STDC__)) # define _GL_HAVE___TYPEOF__ 1 #else # define _GL_HAVE___TYPEOF__ 0 #endif /* Return 1 if the integer type or expression T might be signed. Return 0 if it is definitely unsigned. This macro does not evaluate its argument, and expands to an integer constant expression. */ #if _GL_HAVE___TYPEOF__ # define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t)) #else # define _GL_SIGNED_TYPE_OR_EXPR(t) 1 #endif /* Bound on length of the string representing an unsigned integer value representable in B bits. log10 (2.0) < 146/485. The smallest value of B where this bound is not tight is 2621. */ #define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) /* Bound on length of the string representing an integer type or expression T. Subtract 1 for the sign bit if T is signed, and then add 1 more for a minus sign if needed. Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is signed, this macro may overestimate the true bound by one byte when applied to unsigned types of size 2, 4, 16, ... bytes. */ #define INT_STRLEN_BOUND(t) \ (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \ + _GL_SIGNED_TYPE_OR_EXPR (t)) /* Bound on buffer size needed to represent an integer type or expression T, including the terminating null. */ #define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) /* Range overflow checks. The INT__RANGE_OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. They do not rely on undefined or implementation-defined behavior. Their implementations are simple and straightforward, but they are a bit harder to use than the INT__OVERFLOW macros described below. Example usage: long int i = ...; long int j = ...; if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX)) printf ("multiply would overflow"); else printf ("product is %ld", i * j); Restrictions on *_RANGE_OVERFLOW macros: These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. The arithmetic arguments (including the MIN and MAX arguments) must be of the same integer type after the usual arithmetic conversions, and the type must have minimum value MIN and maximum MAX. Unsigned types should use a zero MIN of the proper type. These macros are tuned for constant MIN and MAX. For commutative operations such as A + B, they are also tuned for constant B. */ /* Return 1 if A + B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (a) < (min) - (b) \ : (max) - (b) < (a)) /* Return 1 if A - B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (max) + (b) < (a) \ : (a) < (min) + (b)) /* Return 1 if - A would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ ((min) < 0 \ ? (a) < - (max) \ : 0 < (a)) /* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Avoid && and || as they tickle bugs in Sun C 5.11 2010/08/13 and other compilers; see . */ #define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? ((a) < 0 \ ? (a) < (max) / (b) \ : (b) == -1 \ ? 0 \ : (min) / (b) < (a)) \ : (b) == 0 \ ? 0 \ : ((a) < 0 \ ? (a) < (min) / (b) \ : (max) / (b) < (a))) /* Return 1 if A / B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. */ #define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \ ((min) < 0 && (b) == -1 && (a) < - (max)) /* Return 1 if A % B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. Mathematically, % should never overflow, but on x86-like hosts INT_MIN % -1 traps, and the C standard permits this, so treat this as an overflow too. */ #define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \ INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max) /* Return 1 if A << B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Here, MIN and MAX are for A only, and B need not be of the same type as the other arguments. The C standard says that behavior is undefined for shifts unless 0 <= B < wordwidth, and that when A is negative then A << B has undefined behavior and A >> B has implementation-defined behavior, but do not check these other restrictions. */ #define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \ ((a) < 0 \ ? (a) < (min) >> (b) \ : (max) >> (b) < (a)) /* True if __builtin_add_overflow (A, B, P) works when P is non-null. */ #if 5 <= __GNUC__ && !defined __ICC # define _GL_HAS_BUILTIN_OVERFLOW 1 #else # define _GL_HAS_BUILTIN_OVERFLOW 0 #endif /* True if __builtin_add_overflow_p (A, B, C) works. */ #define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__) /* The _GL*_OVERFLOW macros have the same restrictions as the *_RANGE_OVERFLOW macros, except that they do not assume that operands (e.g., A and B) have the same type as MIN and MAX. Instead, they assume that the result (e.g., A + B) has that type. */ #if _GL_HAS_BUILTIN_OVERFLOW_P # define _GL_ADD_OVERFLOW(a, b, min, max) \ __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0) # define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0) # define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0) #else # define _GL_ADD_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? (b) <= (a) + (b) \ : (b) < 0 ? (a) <= (a) + (b) \ : (a) + (b) < (b)) # define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? 1 \ : (b) < 0 ? (a) - (b) <= (a) \ : (a) < (b)) # define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) #endif #define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (b) <= (a) + (b) - 1 \ : (b) < 0 && (a) + (b) <= (a)) #define _GL_REMAINDER_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \ : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max)) /* Return a nonzero value if A is a mathematical multiple of B, where A is unsigned, B is negative, and MAX is the maximum value of A's type. A's type must be the same as (A % B)'s type. Normally (A % -B == 0) suffices, but things get tricky if -B would overflow. */ #define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \ (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \ ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \ ? (a) \ : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \ : (a) % - (b)) \ == 0) /* Check for integer overflow, and report low order bits of answer. The INT__OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. The INT__WRAPV macros also store the low-order bits of the answer. These macros work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. Example usage, assuming A and B are long int: if (INT_MULTIPLY_OVERFLOW (a, b)) printf ("result would overflow\n"); else printf ("result is %ld (no overflow)\n", a * b); Example usage with WRAPV flavor: long int result; bool overflow = INT_MULTIPLY_WRAPV (a, b, &result); printf ("result is %ld (%s)\n", result, overflow ? "after overflow" : "no overflow"); Restrictions on these macros: These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. The WRAPV macros are not constant expressions. They support only +, binary -, and *. The result type must be signed. These macros are tuned for their last argument being a constant. Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, A % B, and A << B would overflow, respectively. */ #define INT_ADD_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW) #define INT_SUBTRACT_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW) #if _GL_HAS_BUILTIN_OVERFLOW_P # define INT_NEGATE_OVERFLOW(a) INT_SUBTRACT_OVERFLOW (0, a) #else # define INT_NEGATE_OVERFLOW(a) \ INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) #endif #define INT_MULTIPLY_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW) #define INT_DIVIDE_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW) #define INT_REMAINDER_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW) #define INT_LEFT_SHIFT_OVERFLOW(a, b) \ INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \ _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) /* Return 1 if the expression A B would overflow, where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test, assuming MIN and MAX are the minimum and maximum for the result type. Arguments should be free of side effects. */ #define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ op_result_overflow (a, b, \ _GL_INT_MINIMUM ((1 ? 0 : (b)) + (a)), \ _GL_INT_MAXIMUM ((1 ? 0 : (b)) + (a))) /* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. Return 1 if the result overflows. See above for restrictions. */ #define INT_ADD_WRAPV(a, b, r) \ _GL_INT_OP_WRAPV (a, b, r, +, __builtin_add_overflow, INT_ADD_OVERFLOW) #define INT_SUBTRACT_WRAPV(a, b, r) \ _GL_INT_OP_WRAPV (a, b, r, -, __builtin_sub_overflow, INT_SUBTRACT_OVERFLOW) #define INT_MULTIPLY_WRAPV(a, b, r) \ _GL_INT_OP_WRAPV (a, b, r, *, __builtin_mul_overflow, INT_MULTIPLY_OVERFLOW) /* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193 https://llvm.org/bugs/show_bug.cgi?id=25390 For now, assume all versions of GCC-like compilers generate bogus warnings for _Generic. This matters only for older compilers that lack __builtin_add_overflow. */ #if __GNUC__ # define _GL__GENERIC_BOGUS 1 #else # define _GL__GENERIC_BOGUS 0 #endif /* Store the low-order bits of A B into *R, where OP specifies the operation. BUILTIN is the builtin operation, and OVERFLOW the overflow predicate. Return 1 if the result overflows. See above for restrictions. */ #if _GL_HAS_BUILTIN_OVERFLOW # define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) builtin (a, b, r) #elif 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS # define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \ (_Generic \ (*(r), \ signed char: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ signed char, SCHAR_MIN, SCHAR_MAX), \ short int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ short int, SHRT_MIN, SHRT_MAX), \ int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ int, INT_MIN, INT_MAX), \ long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX), \ long long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ long long int, LLONG_MIN, LLONG_MAX))) #else # define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \ (sizeof *(r) == sizeof (signed char) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ signed char, SCHAR_MIN, SCHAR_MAX) \ : sizeof *(r) == sizeof (short int) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ short int, SHRT_MIN, SHRT_MAX) \ : sizeof *(r) == sizeof (int) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ int, INT_MIN, INT_MAX) \ : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow)) # ifdef LLONG_MAX # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ (sizeof *(r) == sizeof (long int) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX) \ : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ long long int, LLONG_MIN, LLONG_MAX)) # else # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX) # endif #endif /* Store the low-order bits of A B into *R, where the operation is given by OP. Use the unsigned type UT for calculation to avoid overflow problems. *R's type is T, with extrema TMIN and TMAX. T must be a signed integer type. Return 1 if the result overflows. */ #define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \ (sizeof ((a) op (b)) < sizeof (t) \ ? _GL_INT_OP_CALC1 ((t) (a), (t) (b), r, op, overflow, ut, t, tmin, tmax) \ : _GL_INT_OP_CALC1 (a, b, r, op, overflow, ut, t, tmin, tmax)) #define _GL_INT_OP_CALC1(a, b, r, op, overflow, ut, t, tmin, tmax) \ ((overflow (a, b) \ || (EXPR_SIGNED ((a) op (b)) && ((a) op (b)) < (tmin)) \ || (tmax) < ((a) op (b))) \ ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \ : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0)) /* Return the low-order bits of A B, where the operation is given by OP. Use the unsigned type UT for calculation to avoid undefined behavior on signed integer overflow, and convert the result to type T. UT is at least as wide as T and is no narrower than unsigned int, T is two's complement, and there is no padding or trap representations. Assume that converting UT to T yields the low-order bits, as is done in all known two's-complement C compilers. E.g., see: https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html According to the C standard, converting UT to T yields an implementation-defined result or signal for values outside T's range. However, code that works around this theoretical problem runs afoul of a compiler bug in Oracle Studio 12.3 x86. See: https://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html As the compiler bug is real, don't try to work around the theoretical problem. */ #define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \ ((t) ((ut) (a) op (ut) (b))) #endif /* _GL_INTPROPS_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/langinfo.in.h0000644000000000000000000000011013726163410021356 xustar000000000000000024 mtime=1599661832.546 24 atime=1599661832.744 24 ctime=1599661999.061 libprelude-5.2.0/libmissing/langinfo.in.h0000644000000000000000000001511013726163410020357 0ustar00rootroot00000000000000/* Substitute for and wrapper around . Copyright (C) 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* * POSIX for platforms that lack it or have an incomplete one. * */ #ifndef _@GUARD_PREFIX@_LANGINFO_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_LANGINFO_H@ # @INCLUDE_NEXT@ @NEXT_LANGINFO_H@ #endif #ifndef _@GUARD_PREFIX@_LANGINFO_H #define _@GUARD_PREFIX@_LANGINFO_H #if !@HAVE_LANGINFO_H@ /* A platform that lacks . */ /* Assume that it also lacks and the nl_item type. */ # if !GNULIB_defined_nl_item typedef int nl_item; # define GNULIB_defined_nl_item 1 # endif /* nl_langinfo items of the LC_CTYPE category */ # define CODESET 10000 /* nl_langinfo items of the LC_NUMERIC category */ # define RADIXCHAR 10001 # define DECIMAL_POINT RADIXCHAR # define THOUSEP 10002 # define THOUSANDS_SEP THOUSEP # define GROUPING 10114 /* nl_langinfo items of the LC_TIME category */ # define D_T_FMT 10003 # define D_FMT 10004 # define T_FMT 10005 # define T_FMT_AMPM 10006 # define AM_STR 10007 # define PM_STR 10008 # define DAY_1 10009 # define DAY_2 (DAY_1 + 1) # define DAY_3 (DAY_1 + 2) # define DAY_4 (DAY_1 + 3) # define DAY_5 (DAY_1 + 4) # define DAY_6 (DAY_1 + 5) # define DAY_7 (DAY_1 + 6) # define ABDAY_1 10016 # define ABDAY_2 (ABDAY_1 + 1) # define ABDAY_3 (ABDAY_1 + 2) # define ABDAY_4 (ABDAY_1 + 3) # define ABDAY_5 (ABDAY_1 + 4) # define ABDAY_6 (ABDAY_1 + 5) # define ABDAY_7 (ABDAY_1 + 6) # define MON_1 10023 # define MON_2 (MON_1 + 1) # define MON_3 (MON_1 + 2) # define MON_4 (MON_1 + 3) # define MON_5 (MON_1 + 4) # define MON_6 (MON_1 + 5) # define MON_7 (MON_1 + 6) # define MON_8 (MON_1 + 7) # define MON_9 (MON_1 + 8) # define MON_10 (MON_1 + 9) # define MON_11 (MON_1 + 10) # define MON_12 (MON_1 + 11) # define ALTMON_1 10200 # define ALTMON_2 (ALTMON_1 + 1) # define ALTMON_3 (ALTMON_1 + 2) # define ALTMON_4 (ALTMON_1 + 3) # define ALTMON_5 (ALTMON_1 + 4) # define ALTMON_6 (ALTMON_1 + 5) # define ALTMON_7 (ALTMON_1 + 6) # define ALTMON_8 (ALTMON_1 + 7) # define ALTMON_9 (ALTMON_1 + 8) # define ALTMON_10 (ALTMON_1 + 9) # define ALTMON_11 (ALTMON_1 + 10) # define ALTMON_12 (ALTMON_1 + 11) # define ABMON_1 10035 # define ABMON_2 (ABMON_1 + 1) # define ABMON_3 (ABMON_1 + 2) # define ABMON_4 (ABMON_1 + 3) # define ABMON_5 (ABMON_1 + 4) # define ABMON_6 (ABMON_1 + 5) # define ABMON_7 (ABMON_1 + 6) # define ABMON_8 (ABMON_1 + 7) # define ABMON_9 (ABMON_1 + 8) # define ABMON_10 (ABMON_1 + 9) # define ABMON_11 (ABMON_1 + 10) # define ABMON_12 (ABMON_1 + 11) # define ERA 10047 # define ERA_D_FMT 10048 # define ERA_D_T_FMT 10049 # define ERA_T_FMT 10050 # define ALT_DIGITS 10051 /* nl_langinfo items of the LC_MONETARY category */ # define CRNCYSTR 10052 # define CURRENCY_SYMBOL CRNCYSTR # define INT_CURR_SYMBOL 10100 # define MON_DECIMAL_POINT 10101 # define MON_THOUSANDS_SEP 10102 # define MON_GROUPING 10103 # define POSITIVE_SIGN 10104 # define NEGATIVE_SIGN 10105 # define FRAC_DIGITS 10106 # define INT_FRAC_DIGITS 10107 # define P_CS_PRECEDES 10108 # define N_CS_PRECEDES 10109 # define P_SEP_BY_SPACE 10110 # define N_SEP_BY_SPACE 10111 # define P_SIGN_POSN 10112 # define N_SIGN_POSN 10113 /* nl_langinfo items of the LC_MESSAGES category */ # define YESEXPR 10053 # define NOEXPR 10054 #else /* A platform that has . */ # if !@HAVE_LANGINFO_CODESET@ # define CODESET 10000 # define GNULIB_defined_CODESET 1 # endif # if !@HAVE_LANGINFO_T_FMT_AMPM@ # define T_FMT_AMPM 10006 # define GNULIB_defined_T_FMT_AMPM 1 # endif # if !@HAVE_LANGINFO_ALTMON@ # define ALTMON_1 10200 # define ALTMON_2 (ALTMON_1 + 1) # define ALTMON_3 (ALTMON_1 + 2) # define ALTMON_4 (ALTMON_1 + 3) # define ALTMON_5 (ALTMON_1 + 4) # define ALTMON_6 (ALTMON_1 + 5) # define ALTMON_7 (ALTMON_1 + 6) # define ALTMON_8 (ALTMON_1 + 7) # define ALTMON_9 (ALTMON_1 + 8) # define ALTMON_10 (ALTMON_1 + 9) # define ALTMON_11 (ALTMON_1 + 10) # define ALTMON_12 (ALTMON_1 + 11) # define GNULIB_defined_ALTMON 1 # endif # if !@HAVE_LANGINFO_ERA@ # define ERA 10047 # define ERA_D_FMT 10048 # define ERA_D_T_FMT 10049 # define ERA_T_FMT 10050 # define ALT_DIGITS 10051 # define GNULIB_defined_ERA 1 # endif # if !@HAVE_LANGINFO_YESEXPR@ # define YESEXPR 10053 # define NOEXPR 10054 # define GNULIB_defined_YESEXPR 1 # endif #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ /* Return a piece of locale dependent information. Note: The difference between nl_langinfo (CODESET) and locale_charset () is that the latter normalizes the encoding names to GNU conventions. */ #if @GNULIB_NL_LANGINFO@ # if @REPLACE_NL_LANGINFO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef nl_langinfo # define nl_langinfo rpl_nl_langinfo # endif _GL_FUNCDECL_RPL (nl_langinfo, char *, (nl_item item)); _GL_CXXALIAS_RPL (nl_langinfo, char *, (nl_item item)); # else # if !@HAVE_NL_LANGINFO@ _GL_FUNCDECL_SYS (nl_langinfo, char *, (nl_item item)); # endif _GL_CXXALIAS_SYS (nl_langinfo, char *, (nl_item item)); # endif _GL_CXXALIASWARN (nl_langinfo); #elif defined GNULIB_POSIXCHECK # undef nl_langinfo # if HAVE_RAW_DECL_NL_LANGINFO _GL_WARN_ON_USE (nl_langinfo, "nl_langinfo is not portable - " "use gnulib module nl_langinfo for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_LANGINFO_H */ #endif /* _@GUARD_PREFIX@_LANGINFO_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/limits.in.h0000644000000000000000000000011013726163410021062 xustar000000000000000024 mtime=1599661832.546 24 atime=1599661832.744 24 ctime=1599661999.063 libprelude-5.2.0/libmissing/limits.in.h0000644000000000000000000000610013726163410020062 0ustar00rootroot00000000000000/* A GNU-like . Copyright 2016-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_LIMITS_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_LIMITS_H@ #ifndef _@GUARD_PREFIX@_LIMITS_H #define _@GUARD_PREFIX@_LIMITS_H /* For HP-UX 11.31. */ #if defined LONG_LONG_MIN && !defined LLONG_MIN # define LLONG_MIN LONG_LONG_MIN #endif #if defined LONG_LONG_MAX && !defined LLONG_MAX # define LLONG_MAX LONG_LONG_MAX #endif #if defined ULONG_LONG_MAX && !defined ULLONG_MAX # define ULLONG_MAX ULONG_LONG_MAX #endif /* The number of usable bits in an unsigned or signed integer type with minimum value MIN and maximum value MAX, as an int expression suitable in #if. Cover all known practical hosts. This implementation exploits the fact that MAX is 1 less than a power of 2, and merely counts the number of 1 bits in MAX; "COBn" means "count the number of 1 bits in the low-order n bits"). */ #define _GL_INTEGER_WIDTH(min, max) (((min) < 0) + _GL_COB128 (max)) #define _GL_COB128(n) (_GL_COB64 ((n) >> 31 >> 31 >> 2) + _GL_COB64 (n)) #define _GL_COB64(n) (_GL_COB32 ((n) >> 31 >> 1) + _GL_COB32 (n)) #define _GL_COB32(n) (_GL_COB16 ((n) >> 16) + _GL_COB16 (n)) #define _GL_COB16(n) (_GL_COB8 ((n) >> 8) + _GL_COB8 (n)) #define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n)) #define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1)) /* Macros specified by ISO/IEC TS 18661-1:2014. */ #if (! defined ULLONG_WIDTH \ && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) # define CHAR_WIDTH _GL_INTEGER_WIDTH (CHAR_MIN, CHAR_MAX) # define SCHAR_WIDTH _GL_INTEGER_WIDTH (SCHAR_MIN, SCHAR_MAX) # define UCHAR_WIDTH _GL_INTEGER_WIDTH (0, UCHAR_MAX) # define SHRT_WIDTH _GL_INTEGER_WIDTH (SHRT_MIN, SHRT_MAX) # define USHRT_WIDTH _GL_INTEGER_WIDTH (0, USHRT_MAX) # define INT_WIDTH _GL_INTEGER_WIDTH (INT_MIN, INT_MAX) # define UINT_WIDTH _GL_INTEGER_WIDTH (0, UINT_MAX) # define LONG_WIDTH _GL_INTEGER_WIDTH (LONG_MIN, LONG_MAX) # define ULONG_WIDTH _GL_INTEGER_WIDTH (0, ULONG_MAX) # define LLONG_WIDTH _GL_INTEGER_WIDTH (LLONG_MIN, LLONG_MAX) # define ULLONG_WIDTH _GL_INTEGER_WIDTH (0, ULLONG_MAX) #endif /* !ULLONG_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ #endif /* _@GUARD_PREFIX@_LIMITS_H */ #endif /* _@GUARD_PREFIX@_LIMITS_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/localcharset.h0000644000000000000000000000011013726163410021620 xustar000000000000000024 mtime=1599661832.547 24 atime=1599661832.744 24 ctime=1599661999.066 libprelude-5.2.0/libmissing/localcharset.h0000644000000000000000000001365213726163410020632 0ustar00rootroot00000000000000/* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2003, 2009-2018 Free Software Foundation, Inc. This file is part of the GNU CHARSET Library. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _LOCALCHARSET_H #define _LOCALCHARSET_H #ifdef __cplusplus extern "C" { #endif /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed below. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ extern const char * locale_charset (void); /* About GNU canonical names for character encodings: Every canonical name must be supported by GNU libiconv. Support by GNU libc is also desirable. The name is case insensitive. Usually an upper case MIME charset name is preferred. The current list of these GNU canonical names is: name MIME? used by which systems (darwin = Mac OS X, windows = native Windows) ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix cygwin ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin ISO-8859-3 Y glibc solaris cygwin ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin ISO-8859-6 Y glibc aix hpux solaris cygwin ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin ISO-8859-8 Y glibc aix hpux osf solaris cygwin ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin ISO-8859-14 glibc cygwin ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin KOI8-R Y glibc hpux solaris freebsd netbsd openbsd darwin KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin KOI8-T glibc CP437 dos CP775 dos CP850 aix osf dos CP852 dos CP855 dos CP856 aix CP857 dos CP861 dos CP862 dos CP864 dos CP865 dos CP866 freebsd netbsd openbsd darwin dos CP869 dos CP874 windows dos CP922 aix CP932 aix cygwin windows dos CP943 aix CP949 osf darwin windows dos CP950 windows dos CP1046 aix CP1124 aix CP1125 dos CP1129 aix CP1131 freebsd darwin CP1250 windows CP1251 glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows CP1252 aix windows CP1253 windows CP1254 windows CP1255 glibc windows CP1256 windows CP1257 windows GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin EUC-TW glibc aix hpux irix osf solaris netbsd BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin BIG5-HKSCS glibc hpux solaris netbsd darwin GBK glibc aix osf solaris freebsd darwin cygwin windows dos GB18030 glibc hpux solaris freebsd netbsd darwin SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin JOHAB glibc solaris windows TIS-620 glibc aix hpux osf solaris cygwin VISCII Y glibc TCVN5712-1 glibc ARMSCII-8 glibc freebsd netbsd darwin GEORGIAN-PS glibc cygwin PT154 glibc netbsd cygwin HP-ROMAN8 hpux HP-ARABIC8 hpux HP-GREEK8 hpux HP-HEBREW8 hpux HP-TURKISH8 hpux HP-KANA8 hpux DEC-KANJI osf DEC-HANYU osf UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin Note: Names which are not marked as being a MIME name should not be used in Internet protocols for information interchange (mail, news, etc.). Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications must understand both names and treat them as equivalent. */ #ifdef __cplusplus } #endif #endif /* _LOCALCHARSET_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/locale.in.h0000644000000000000000000000011013726163410021020 xustar000000000000000024 mtime=1599661832.547 24 atime=1599661832.744 24 ctime=1599661999.068 libprelude-5.2.0/libmissing/locale.in.h0000644000000000000000000001624613726163410020034 0ustar00rootroot00000000000000/* A POSIX . Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if (defined _WIN32 && !defined __CYGWIN__ && defined __need_locale_t) \ || defined _GL_ALREADY_INCLUDING_LOCALE_H /* Special invocation convention: - Inside mingw header files, - To handle Solaris header files (through Solaris 10) when combined with gettext's libintl.h. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_LOCALE_H #define _GL_ALREADY_INCLUDING_LOCALE_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ #undef _GL_ALREADY_INCLUDING_LOCALE_H #ifndef _@GUARD_PREFIX@_LOCALE_H #define _@GUARD_PREFIX@_LOCALE_H /* NetBSD 5.0 mis-defines NULL. */ #include /* Mac OS X 10.5 defines the locale_t type in . */ #if @HAVE_XLOCALE_H@ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* The LC_MESSAGES locale category is specified in POSIX, but not in ISO C. On systems that don't define it, use the same value as GNU libintl. */ #if !defined LC_MESSAGES # define LC_MESSAGES 1729 #endif /* Bionic libc's 'struct lconv' is just a dummy. */ #if @REPLACE_STRUCT_LCONV@ # define lconv rpl_lconv struct lconv { /* All 'char *' are actually 'const char *'. */ /* Members that depend on the LC_NUMERIC category of the locale. See */ /* Symbol used as decimal point. */ char *decimal_point; /* Symbol used to separate groups of digits to the left of the decimal point. */ char *thousands_sep; /* Definition of the size of groups of digits to the left of the decimal point. */ char *grouping; /* Members that depend on the LC_MONETARY category of the locale. See */ /* Symbol used as decimal point. */ char *mon_decimal_point; /* Symbol used to separate groups of digits to the left of the decimal point. */ char *mon_thousands_sep; /* Definition of the size of groups of digits to the left of the decimal point. */ char *mon_grouping; /* Sign used to indicate a value >= 0. */ char *positive_sign; /* Sign used to indicate a value < 0. */ char *negative_sign; /* For formatting local currency. */ /* Currency symbol (3 characters) followed by separator (1 character). */ char *currency_symbol; /* Number of digits after the decimal point. */ char frac_digits; /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char p_cs_precedes; /* For values >= 0: Position of the sign. */ char p_sign_posn; /* For values >= 0: Placement of spaces between currency symbol, sign, and number. */ char p_sep_by_space; /* For values < 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char n_cs_precedes; /* For values < 0: Position of the sign. */ char n_sign_posn; /* For values < 0: Placement of spaces between currency symbol, sign, and number. */ char n_sep_by_space; /* For formatting international currency. */ /* Currency symbol (3 characters) followed by separator (1 character). */ char *int_curr_symbol; /* Number of digits after the decimal point. */ char int_frac_digits; /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char int_p_cs_precedes; /* For values >= 0: Position of the sign. */ char int_p_sign_posn; /* For values >= 0: Placement of spaces between currency symbol, sign, and number. */ char int_p_sep_by_space; /* For values < 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char int_n_cs_precedes; /* For values < 0: Position of the sign. */ char int_n_sign_posn; /* For values < 0: Placement of spaces between currency symbol, sign, and number. */ char int_n_sep_by_space; }; #endif #if @GNULIB_LOCALECONV@ # if @REPLACE_LOCALECONV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localeconv # define localeconv rpl_localeconv # endif _GL_FUNCDECL_RPL (localeconv, struct lconv *, (void)); _GL_CXXALIAS_RPL (localeconv, struct lconv *, (void)); # else _GL_CXXALIAS_SYS (localeconv, struct lconv *, (void)); # endif _GL_CXXALIASWARN (localeconv); #elif @REPLACE_STRUCT_LCONV@ # undef localeconv # define localeconv localeconv_used_without_requesting_gnulib_module_localeconv #elif defined GNULIB_POSIXCHECK # undef localeconv # if HAVE_RAW_DECL_LOCALECONV _GL_WARN_ON_USE (localeconv, "localeconv returns too few information on some platforms - " "use gnulib module localeconv for portability"); # endif #endif #if @GNULIB_SETLOCALE@ # if @REPLACE_SETLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setlocale # define setlocale rpl_setlocale # define GNULIB_defined_setlocale 1 # endif _GL_FUNCDECL_RPL (setlocale, char *, (int category, const char *locale)); _GL_CXXALIAS_RPL (setlocale, char *, (int category, const char *locale)); # else _GL_CXXALIAS_SYS (setlocale, char *, (int category, const char *locale)); # endif _GL_CXXALIASWARN (setlocale); #elif defined GNULIB_POSIXCHECK # undef setlocale # if HAVE_RAW_DECL_SETLOCALE _GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - " "use gnulib module setlocale for portability"); # endif #endif #if @GNULIB_DUPLOCALE@ # if @REPLACE_DUPLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef duplocale # define duplocale rpl_duplocale # endif _GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale)); # else # if @HAVE_DUPLOCALE@ _GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale)); # endif # endif # if @HAVE_DUPLOCALE@ _GL_CXXALIASWARN (duplocale); # endif #elif defined GNULIB_POSIXCHECK # undef duplocale # if HAVE_RAW_DECL_DUPLOCALE _GL_WARN_ON_USE (duplocale, "duplocale is buggy on some glibc systems - " "use gnulib module duplocale for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_LOCALE_H */ #endif /* _@GUARD_PREFIX@_LOCALE_H */ #endif /* !(__need_locale_t || _GL_ALREADY_INCLUDING_LOCALE_H) */ libprelude-5.2.0/libmissing/PaxHeaders.14770/localtime-buffer.h0000644000000000000000000000011013726163410022374 xustar000000000000000024 mtime=1599661832.548 24 atime=1599661832.744 24 ctime=1599661999.071 libprelude-5.2.0/libmissing/localtime-buffer.h0000644000000000000000000000203213726163410021374 0ustar00rootroot00000000000000/* Provide access to the last buffer returned by localtime() or gmtime(). Copyright (C) 2001-2003, 2005-2007, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* written by Jim Meyering */ #include #if GETTIMEOFDAY_CLOBBERS_LOCALTIME || TZSET_CLOBBERS_LOCALTIME /* The address of the last buffer returned by localtime() or gmtime(). */ extern struct tm *localtime_buffer_addr; #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/malloca.h0000644000000000000000000000011013726163410020564 xustar000000000000000024 mtime=1599661832.584 24 atime=1599661832.753 24 ctime=1599661999.074 libprelude-5.2.0/libmissing/malloca.h0000644000000000000000000001065113726163410017572 0ustar00rootroot00000000000000/* Safe automatic memory allocation. Copyright (C) 2003-2007, 2009-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2003. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _MALLOCA_H #define _MALLOCA_H #include #include #include #include #include "xalloc-oversized.h" #ifdef __cplusplus extern "C" { #endif /* safe_alloca(N) is equivalent to alloca(N) when it is safe to call alloca(N); otherwise it returns NULL. It either returns N bytes of memory allocated on the stack, that lasts until the function returns, or NULL. Use of safe_alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns. */ #if HAVE_ALLOCA /* The OS usually guarantees only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely allocate anything larger than 4096 bytes. Also care for the possibility of a few compiler-allocated temporary stack slots. This must be a macro, not a function. */ # define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL) #else # define safe_alloca(N) ((void) (N), NULL) #endif /* malloca(N) is a safe variant of alloca(N). It allocates N bytes of memory allocated on the stack, that must be freed using freea() before the function returns. Upon failure, it returns NULL. */ #if HAVE_ALLOCA # define malloca(N) \ ((N) < 4032 - (2 * sa_alignment_max - 1) \ ? (void *) (((uintptr_t) (char *) alloca ((N) + 2 * sa_alignment_max - 1) \ + (2 * sa_alignment_max - 1)) \ & ~(uintptr_t)(2 * sa_alignment_max - 1)) \ : mmalloca (N)) #else # define malloca(N) \ mmalloca (N) #endif extern void * mmalloca (size_t n); /* Free a block of memory allocated through malloca(). */ #if HAVE_ALLOCA extern void freea (void *p); #else # define freea free #endif /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S). It allocates an array of N objects, each with S bytes of memory, on the stack. S must be positive and N must be nonnegative. The array must be freed using freea() before the function returns. */ #define nmalloca(n, s) (xalloc_oversized (n, s) ? NULL : malloca ((n) * (s))) #ifdef __cplusplus } #endif /* ------------------- Auxiliary, non-public definitions ------------------- */ /* Determine the alignment of a type at compile time. */ #if defined __GNUC__ || defined __IBM__ALIGNOF__ # define sa_alignof __alignof__ #elif defined __cplusplus template struct sa_alignof_helper { char __slot1; type __slot2; }; # define sa_alignof(type) offsetof (sa_alignof_helper, __slot2) #elif defined __hpux /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #elif defined _AIX /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #else # define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) #endif enum { /* The desired alignment of memory allocations is the maximum alignment among all elementary types. */ sa_alignment_long = sa_alignof (long), sa_alignment_double = sa_alignof (double), #if HAVE_LONG_LONG_INT sa_alignment_longlong = sa_alignof (long long), #endif sa_alignment_longdouble = sa_alignof (long double), sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) #if HAVE_LONG_LONG_INT | (sa_alignment_longlong - 1) #endif | (sa_alignment_longdouble - 1) ) + 1 }; #endif /* _MALLOCA_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/mbtowc-impl.h0000644000000000000000000000011013726163410021406 xustar000000000000000024 mtime=1599661832.584 24 atime=1599661832.753 24 ctime=1599661999.076 libprelude-5.2.0/libmissing/mbtowc-impl.h0000644000000000000000000000265613726163410020422 0ustar00rootroot00000000000000/* Convert multibyte character to wide character. Copyright (C) 2011-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* We don't need a static internal state, because the encoding is not state dependent, and when mbrtowc returns (size_t)(-2). we throw the result away. */ int mbtowc (wchar_t *pwc, const char *s, size_t n) { if (s == NULL) return 0; else { mbstate_t state; wchar_t wc; size_t result; memset (&state, 0, sizeof (mbstate_t)); result = mbrtowc (&wc, s, n, &state); if (result == (size_t)-1 || result == (size_t)-2) { errno = EILSEQ; return -1; } if (pwc != NULL) *pwc = wc; return (wc == 0 ? 0 : result); } } libprelude-5.2.0/libmissing/PaxHeaders.14770/memchr.valgrind0000644000000000000000000000011013726163410022006 xustar000000000000000024 mtime=1599661832.585 24 atime=1599661832.753 24 ctime=1599661999.078 libprelude-5.2.0/libmissing/memchr.valgrind0000644000000000000000000000065213726163410021014 0ustar00rootroot00000000000000# Suppress a valgrind message about use of uninitialized memory in memchr(). # POSIX states that when the character is found, memchr must not read extra # bytes in an overestimated length (for example, where memchr is used to # implement strnlen). However, we use a safe word read to provide a speedup. { memchr-value4 Memcheck:Value4 fun:rpl_memchr } { memchr-value8 Memcheck:Value8 fun:rpl_memchr } libprelude-5.2.0/libmissing/PaxHeaders.14770/str-two-way.h0000644000000000000000000000010713726163410021377 xustar000000000000000024 mtime=1599661832.602 24 atime=1599661832.758 23 ctime=1599661999.08 libprelude-5.2.0/libmissing/str-two-way.h0000644000000000000000000004221713726163410020402 0ustar00rootroot00000000000000/* Byte-wise substring search, using the Two-Way algorithm. Copyright (C) 2008-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Eric Blake , 2008. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Before including this file, you need to include and , and define: RESULT_TYPE A macro that expands to the return type. AVAILABLE(h, h_l, j, n_l) A macro that returns nonzero if there are at least N_L bytes left starting at H[J]. H is 'unsigned char *', H_L, J, and N_L are 'size_t'; H_L is an lvalue. For NUL-terminated searches, H_L can be modified each iteration to avoid having to compute the end of H up front. For case-insensitivity, you may optionally define: CMP_FUNC(p1, p2, l) A macro that returns 0 iff the first L characters of P1 and P2 are equal. CANON_ELEMENT(c) A macro that canonicalizes an element right after it has been fetched from one of the two strings. The argument is an 'unsigned char'; the result must be an 'unsigned char' as well. This file undefines the macros documented above, and defines LONG_NEEDLE_THRESHOLD. */ #include #include /* We use the Two-Way string matching algorithm (also known as Chrochemore-Perrin), which guarantees linear complexity with constant space. Additionally, for long needles, we also use a bad character shift table similar to the Boyer-Moore algorithm to achieve improved (potentially sub-linear) performance. See http://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260, https://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm, https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.34.6641&rep=rep1&type=pdf */ /* Point at which computing a bad-byte shift table is likely to be worthwhile. Small needles should not compute a table, since it adds (1 << CHAR_BIT) + NEEDLE_LEN computations of preparation for a speedup no greater than a factor of NEEDLE_LEN. The larger the needle, the better the potential performance gain. On the other hand, on non-POSIX systems with CHAR_BIT larger than eight, the memory required for the table is prohibitive. */ #if CHAR_BIT < 10 # define LONG_NEEDLE_THRESHOLD 32U #else # define LONG_NEEDLE_THRESHOLD SIZE_MAX #endif #ifndef MAX # define MAX(a, b) ((a < b) ? (b) : (a)) #endif #ifndef CANON_ELEMENT # define CANON_ELEMENT(c) c #endif #ifndef CMP_FUNC # define CMP_FUNC memcmp #endif /* Perform a critical factorization of NEEDLE, of length NEEDLE_LEN. Return the index of the first byte in the right half, and set *PERIOD to the global period of the right half. The global period of a string is the smallest index (possibly its length) at which all remaining bytes in the string are repetitions of the prefix (the last repetition may be a subset of the prefix). When NEEDLE is factored into two halves, a local period is the length of the smallest word that shares a suffix with the left half and shares a prefix with the right half. All factorizations of a non-empty NEEDLE have a local period of at least 1 and no greater than NEEDLE_LEN. A critical factorization has the property that the local period equals the global period. All strings have at least one critical factorization with the left half smaller than the global period. And while some strings have more than one critical factorization, it is provable that with an ordered alphabet, at least one of the critical factorizations corresponds to a maximal suffix. Given an ordered alphabet, a critical factorization can be computed in linear time, with 2 * NEEDLE_LEN comparisons, by computing the shorter of two ordered maximal suffixes. The ordered maximal suffixes are determined by lexicographic comparison while tracking periodicity. */ static size_t critical_factorization (const unsigned char *needle, size_t needle_len, size_t *period) { /* Index of last byte of left half, or SIZE_MAX. */ size_t max_suffix, max_suffix_rev; size_t j; /* Index into NEEDLE for current candidate suffix. */ size_t k; /* Offset into current period. */ size_t p; /* Intermediate period. */ unsigned char a, b; /* Current comparison bytes. */ /* Special case NEEDLE_LEN of 1 or 2 (all callers already filtered out 0-length needles. */ if (needle_len < 3) { *period = 1; return needle_len - 1; } /* Invariants: 0 <= j < NEEDLE_LEN - 1 -1 <= max_suffix{,_rev} < j (treating SIZE_MAX as if it were signed) min(max_suffix, max_suffix_rev) < global period of NEEDLE 1 <= p <= global period of NEEDLE p == global period of the substring NEEDLE[max_suffix{,_rev}+1...j] 1 <= k <= p */ /* Perform lexicographic search. */ max_suffix = SIZE_MAX; j = 0; k = p = 1; while (j + k < needle_len) { a = CANON_ELEMENT (needle[j + k]); b = CANON_ELEMENT (needle[max_suffix + k]); if (a < b) { /* Suffix is smaller, period is entire prefix so far. */ j += k; k = 1; p = j - max_suffix; } else if (a == b) { /* Advance through repetition of the current period. */ if (k != p) ++k; else { j += p; k = 1; } } else /* b < a */ { /* Suffix is larger, start over from current location. */ max_suffix = j++; k = p = 1; } } *period = p; /* Perform reverse lexicographic search. */ max_suffix_rev = SIZE_MAX; j = 0; k = p = 1; while (j + k < needle_len) { a = CANON_ELEMENT (needle[j + k]); b = CANON_ELEMENT (needle[max_suffix_rev + k]); if (b < a) { /* Suffix is smaller, period is entire prefix so far. */ j += k; k = 1; p = j - max_suffix_rev; } else if (a == b) { /* Advance through repetition of the current period. */ if (k != p) ++k; else { j += p; k = 1; } } else /* a < b */ { /* Suffix is larger, start over from current location. */ max_suffix_rev = j++; k = p = 1; } } /* Choose the shorter suffix. Return the index of the first byte of the right half, rather than the last byte of the left half. For some examples, 'banana' has two critical factorizations, both exposed by the two lexicographic extreme suffixes of 'anana' and 'nana', where both suffixes have a period of 2. On the other hand, with 'aab' and 'bba', both strings have a single critical factorization of the last byte, with the suffix having a period of 1. While the maximal lexicographic suffix of 'aab' is 'b', the maximal lexicographic suffix of 'bba' is 'ba', which is not a critical factorization. Conversely, the maximal reverse lexicographic suffix of 'a' works for 'bba', but not 'ab' for 'aab'. The shorter suffix of the two will always be a critical factorization. */ if (max_suffix_rev + 1 < max_suffix + 1) return max_suffix + 1; *period = p; return max_suffix_rev + 1; } /* Return the first location of non-empty NEEDLE within HAYSTACK, or NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This method is optimized for NEEDLE_LEN < LONG_NEEDLE_THRESHOLD. Performance is guaranteed to be linear, with an initialization cost of 2 * NEEDLE_LEN comparisons. If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. */ static RETURN_TYPE two_way_short_needle (const unsigned char *haystack, size_t haystack_len, const unsigned char *needle, size_t needle_len) { size_t i; /* Index into current byte of NEEDLE. */ size_t j; /* Index into current window of HAYSTACK. */ size_t period; /* The period of the right half of needle. */ size_t suffix; /* The index of the right half of needle. */ /* Factor the needle into two halves, such that the left half is smaller than the global period, and the right half is periodic (with a period as large as NEEDLE_LEN - suffix). */ suffix = critical_factorization (needle, needle_len, &period); /* Perform the search. Each iteration compares the right half first. */ if (CMP_FUNC (needle, needle + period, suffix) == 0) { /* Entire needle is periodic; a mismatch in the left half can only advance by the period, so use memory to avoid rescanning known occurrences of the period in the right half. */ size_t memory = 0; j = 0; while (AVAILABLE (haystack, haystack_len, j, needle_len)) { /* Scan for matches in right half. */ i = MAX (suffix, memory); while (i < needle_len && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) ++i; if (needle_len <= i) { /* Scan for matches in left half. */ i = suffix - 1; while (memory < i + 1 && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) --i; if (i + 1 < memory + 1) return (RETURN_TYPE) (haystack + j); /* No match, so remember how many repetitions of period on the right half were scanned. */ j += period; memory = needle_len - period; } else { j += i - suffix + 1; memory = 0; } } } else { /* The two halves of needle are distinct; no extra memory is required, and any mismatch results in a maximal shift. */ period = MAX (suffix, needle_len - suffix) + 1; j = 0; while (AVAILABLE (haystack, haystack_len, j, needle_len)) { /* Scan for matches in right half. */ i = suffix; while (i < needle_len && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) ++i; if (needle_len <= i) { /* Scan for matches in left half. */ i = suffix - 1; while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) --i; if (i == SIZE_MAX) return (RETURN_TYPE) (haystack + j); j += period; } else j += i - suffix + 1; } } return NULL; } /* Return the first location of non-empty NEEDLE within HAYSTACK, or NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This method is optimized for LONG_NEEDLE_THRESHOLD <= NEEDLE_LEN. Performance is guaranteed to be linear, with an initialization cost of 3 * NEEDLE_LEN + (1 << CHAR_BIT) operations. If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and sublinear performance O(HAYSTACK_LEN / NEEDLE_LEN) is possible. If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and sublinear performance is not possible. */ static RETURN_TYPE two_way_long_needle (const unsigned char *haystack, size_t haystack_len, const unsigned char *needle, size_t needle_len) { size_t i; /* Index into current byte of NEEDLE. */ size_t j; /* Index into current window of HAYSTACK. */ size_t period; /* The period of the right half of needle. */ size_t suffix; /* The index of the right half of needle. */ size_t shift_table[1U << CHAR_BIT]; /* See below. */ /* Factor the needle into two halves, such that the left half is smaller than the global period, and the right half is periodic (with a period as large as NEEDLE_LEN - suffix). */ suffix = critical_factorization (needle, needle_len, &period); /* Populate shift_table. For each possible byte value c, shift_table[c] is the distance from the last occurrence of c to the end of NEEDLE, or NEEDLE_LEN if c is absent from the NEEDLE. shift_table[NEEDLE[NEEDLE_LEN - 1]] contains the only 0. */ for (i = 0; i < 1U << CHAR_BIT; i++) shift_table[i] = needle_len; for (i = 0; i < needle_len; i++) shift_table[CANON_ELEMENT (needle[i])] = needle_len - i - 1; /* Perform the search. Each iteration compares the right half first. */ if (CMP_FUNC (needle, needle + period, suffix) == 0) { /* Entire needle is periodic; a mismatch in the left half can only advance by the period, so use memory to avoid rescanning known occurrences of the period in the right half. */ size_t memory = 0; size_t shift; j = 0; while (AVAILABLE (haystack, haystack_len, j, needle_len)) { /* Check the last byte first; if it does not match, then shift to the next possible match location. */ shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])]; if (0 < shift) { if (memory && shift < period) { /* Since needle is periodic, but the last period has a byte out of place, there can be no match until after the mismatch. */ shift = needle_len - period; } memory = 0; j += shift; continue; } /* Scan for matches in right half. The last byte has already been matched, by virtue of the shift table. */ i = MAX (suffix, memory); while (i < needle_len - 1 && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) ++i; if (needle_len - 1 <= i) { /* Scan for matches in left half. */ i = suffix - 1; while (memory < i + 1 && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) --i; if (i + 1 < memory + 1) return (RETURN_TYPE) (haystack + j); /* No match, so remember how many repetitions of period on the right half were scanned. */ j += period; memory = needle_len - period; } else { j += i - suffix + 1; memory = 0; } } } else { /* The two halves of needle are distinct; no extra memory is required, and any mismatch results in a maximal shift. */ size_t shift; period = MAX (suffix, needle_len - suffix) + 1; j = 0; while (AVAILABLE (haystack, haystack_len, j, needle_len)) { /* Check the last byte first; if it does not match, then shift to the next possible match location. */ shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])]; if (0 < shift) { j += shift; continue; } /* Scan for matches in right half. The last byte has already been matched, by virtue of the shift table. */ i = suffix; while (i < needle_len - 1 && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) ++i; if (needle_len - 1 <= i) { /* Scan for matches in left half. */ i = suffix - 1; while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) --i; if (i == SIZE_MAX) return (RETURN_TYPE) (haystack + j); j += period; } else j += i - suffix + 1; } } return NULL; } #undef AVAILABLE #undef CANON_ELEMENT #undef CMP_FUNC #undef MAX #undef RETURN_TYPE libprelude-5.2.0/libmissing/PaxHeaders.14770/mktime-internal.h0000644000000000000000000000011013726163410022254 xustar000000000000000024 mtime=1599661832.585 24 atime=1599661832.753 24 ctime=1599661999.081 libprelude-5.2.0/libmissing/mktime-internal.h0000644000000000000000000000376313726163410021270 0ustar00rootroot00000000000000/* mktime variant that also uses an offset guess Copyright 2016-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* mktime_offset_t is a signed type wide enough to hold a UTC offset in seconds, and used as part of the type of the offset-guess argument to mktime_internal. Use time_t on platforms where time_t is signed, to be compatible with platforms like BeOS that export this implementation detail of mktime. On platforms where time_t is unsigned, GNU and POSIX code can assume 'int' is at least 32 bits which is wide enough for a UTC offset. */ #if TIME_T_IS_SIGNED typedef time_t mktime_offset_t; #else typedef int mktime_offset_t; #endif time_t mktime_internal (struct tm *, struct tm * (*) (time_t const *, struct tm *), mktime_offset_t *); /* Although glibc source code uses leading underscores, Gnulib wants ordinary names. Portable standalone applications should supply a that declares a POSIX-compliant localtime_r, for the benefit of older implementations that lack localtime_r or have a nonstandard one. Similarly for gmtime_r. See the gnulib time_r module for one way to implement this. */ #undef __gmtime_r #undef __localtime_r #define __gmtime_r gmtime_r #define __localtime_r localtime_r #define __mktime_internal mktime_internal libprelude-5.2.0/libmissing/PaxHeaders.14770/msvc-inval.h0000644000000000000000000000011013726163410021233 xustar000000000000000024 mtime=1599661832.586 24 atime=1599661832.753 24 ctime=1599661999.083 libprelude-5.2.0/libmissing/msvc-inval.h0000644000000000000000000002116713726163410020245 0ustar00rootroot00000000000000/* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 2011-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _MSVC_INVAL_H #define _MSVC_INVAL_H /* With MSVC runtime libraries with the "invalid parameter handler" concept, functions like fprintf(), dup2(), or close() crash when the caller passes an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) instead. This file defines macros that turn such an invalid parameter notification into a non-local exit. An error code can then be produced at the target of this exit. You can thus write code like TRY_MSVC_INVAL { } CATCH_MSVC_INVAL { } DONE_MSVC_INVAL; This entire block expands to a single statement. The handling of invalid parameters can be done in three ways: * The default way, which is reasonable for programs (not libraries): AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING]) * The way for libraries that make "hairy" calls (like close(-1), or fclose(fp) where fileno(fp) is closed, or simply getdtablesize()): AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING]) * The way for libraries that make no "hairy" calls: AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING]) */ #define DEFAULT_HANDLING 0 #define HAIRY_LIBRARY_HANDLING 1 #define SANE_LIBRARY_HANDLING 2 #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) /* A native Windows platform with the "invalid parameter handler" concept, and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING. */ # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING /* Default handling. */ # ifdef __cplusplus extern "C" { # endif /* Ensure that the invalid parameter handler in installed that just returns. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ gl_msvc_inval_ensure_handler (); \ if (1) # define CATCH_MSVC_INVAL \ else # define DONE_MSVC_INVAL \ } \ while (0) # else /* Handling for hairy libraries. */ # include /* Gnulib can define its own status codes, as described in the page "Raising Software Exceptions" on microsoft.com . Our status codes are composed of - 0xE0000000, mandatory for all user-defined status codes, - 0x474E550, a API identifier ("GNU"), - 0, 1, 2, ..., used to distinguish different status codes from the same API. */ # define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0) # if defined _MSC_VER /* A compiler that supports __try/__except, as described in the page "try-except statement" on microsoft.com . With __try/__except, we can use the multithread-safe exception handling. */ # ifdef __cplusplus extern "C" { # endif /* Ensure that the invalid parameter handler in installed that raises a software exception with code STATUS_GNULIB_INVALID_PARAMETER. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ gl_msvc_inval_ensure_handler (); \ __try # define CATCH_MSVC_INVAL \ __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER \ ? EXCEPTION_EXECUTE_HANDLER \ : EXCEPTION_CONTINUE_SEARCH) # define DONE_MSVC_INVAL \ } \ while (0) # else /* Any compiler. We can only use setjmp/longjmp. */ # include # ifdef __cplusplus extern "C" { # endif struct gl_msvc_inval_per_thread { /* The restart that will resume execution at the code between CATCH_MSVC_INVAL and DONE_MSVC_INVAL. It is enabled only between TRY_MSVC_INVAL and CATCH_MSVC_INVAL. */ jmp_buf restart; /* Tells whether the contents of restart is valid. */ int restart_valid; }; /* Ensure that the invalid parameter handler in installed that passes control to the gl_msvc_inval_restart if it is valid, or raises a software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); /* Return a pointer to the per-thread data for the current thread. */ extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ struct gl_msvc_inval_per_thread *msvc_inval_current; \ gl_msvc_inval_ensure_handler (); \ msvc_inval_current = gl_msvc_inval_current (); \ /* First, initialize gl_msvc_inval_restart. */ \ if (setjmp (msvc_inval_current->restart) == 0) \ { \ /* Then, mark it as valid. */ \ msvc_inval_current->restart_valid = 1; # define CATCH_MSVC_INVAL \ /* Execution completed. \ Mark gl_msvc_inval_restart as invalid. */ \ msvc_inval_current->restart_valid = 0; \ } \ else \ { \ /* Execution triggered an invalid parameter notification. \ Mark gl_msvc_inval_restart as invalid. */ \ msvc_inval_current->restart_valid = 0; # define DONE_MSVC_INVAL \ } \ } \ while (0) # endif # endif #else /* A platform that does not need to the invalid parameter handler, or when SANE_LIBRARY_HANDLING is desired. */ /* The braces here avoid GCC warnings like "warning: suggest explicit braces to avoid ambiguous 'else'". */ # define TRY_MSVC_INVAL \ do \ { \ if (1) # define CATCH_MSVC_INVAL \ else # define DONE_MSVC_INVAL \ } \ while (0) #endif #endif /* _MSVC_INVAL_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/msvc-nothrow.h0000644000000000000000000000011013726163410021622 xustar000000000000000024 mtime=1599661832.586 24 atime=1599661832.753 24 ctime=1599661999.085 libprelude-5.2.0/libmissing/msvc-nothrow.h0000644000000000000000000000301113726163410020620 0ustar00rootroot00000000000000/* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 2011-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _MSVC_NOTHROW_H #define _MSVC_NOTHROW_H /* With MSVC runtime libraries with the "invalid parameter handler" concept, functions like fprintf(), dup2(), or close() crash when the caller passes an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) instead. This file defines wrappers that turn such an invalid parameter notification into an error code. */ #if defined _WIN32 && ! defined __CYGWIN__ /* Get original declaration of _get_osfhandle. */ # include # if HAVE_MSVC_INVALID_PARAMETER_HANDLER /* Override _get_osfhandle. */ extern intptr_t _gl_nothrow_get_osfhandle (int fd); # define _get_osfhandle _gl_nothrow_get_osfhandle # endif #endif #endif /* _MSVC_NOTHROW_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/netdb.in.h0000644000000000000000000000011013726163410020655 xustar000000000000000024 mtime=1599661832.588 24 atime=1599661832.754 24 ctime=1599661999.087 libprelude-5.2.0/libmissing/netdb.in.h0000644000000000000000000002263613726163410017671 0ustar00rootroot00000000000000/* Provide a netdb.h header file for systems lacking it (read: MinGW). Copyright (C) 2008-2018 Free Software Foundation, Inc. Written by Simon Josefsson. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* This file is supposed to be used on platforms that lack . It is intended to provide definitions and prototypes needed by an application. */ #ifndef _@GUARD_PREFIX@_NETDB_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if @HAVE_NETDB_H@ /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_NETDB_H@ #endif #ifndef _@GUARD_PREFIX@_NETDB_H #define _@GUARD_PREFIX@_NETDB_H /* Get definitions such as 'socklen_t' on IRIX 6.5 and OSF/1 4.0 and 'struct hostent' on MinGW. */ #include /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declarations for a platform that lacks , or where it is incomplete. */ #if @GNULIB_GETADDRINFO@ # if !@HAVE_STRUCT_ADDRINFO@ # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_struct_addrinfo /* Structure to contain information about address of a service provider. */ struct addrinfo { int ai_flags; /* Input flags. */ int ai_family; /* Protocol family for socket. */ int ai_socktype; /* Socket type. */ int ai_protocol; /* Protocol for socket. */ socklen_t ai_addrlen; /* Length of socket address. */ struct sockaddr *ai_addr; /* Socket address for socket. */ char *ai_canonname; /* Canonical name for service location. */ struct addrinfo *ai_next; /* Pointer to next in list. */ }; # define GNULIB_defined_struct_addrinfo 1 # endif # ifdef __cplusplus } # endif # endif /* Possible values for 'ai_flags' field in 'addrinfo' structure. */ # ifndef AI_PASSIVE # define AI_PASSIVE 0x0001 /* Socket address is intended for 'bind'. */ # endif # ifndef AI_CANONNAME # define AI_CANONNAME 0x0002 /* Request for canonical name. */ # endif # ifndef AI_NUMERICSERV # define AI_NUMERICSERV 0x0400 /* Don't use name resolution. */ # endif # if 0 # define AI_NUMERICHOST 0x0004 /* Don't use name resolution. */ # endif /* These symbolic constants are required to be present by POSIX, but our getaddrinfo replacement doesn't use them (yet). Setting them to 0 on systems that doesn't have them avoids causing problems for system getaddrinfo implementations that would be confused by unknown values. */ # ifndef AI_V4MAPPED # define AI_V4MAPPED 0 /* 0x0008: IPv4 mapped addresses are acceptable. */ # endif # ifndef AI_ALL # define AI_ALL 0 /* 0x0010: Return IPv4 mapped and IPv6 addresses. */ # endif # ifndef AI_ADDRCONFIG # define AI_ADDRCONFIG 0 /* 0x0020: Use configuration of this host to choose returned address type. */ # endif /* Error values for 'getaddrinfo' function. */ # ifndef EAI_BADFLAGS # define EAI_BADFLAGS -1 /* Invalid value for 'ai_flags' field. */ # define EAI_NONAME -2 /* NAME or SERVICE is unknown. */ # define EAI_AGAIN -3 /* Temporary failure in name resolution. */ # define EAI_FAIL -4 /* Non-recoverable failure in name res. */ # define EAI_NODATA -5 /* No address associated with NAME. */ # define EAI_FAMILY -6 /* 'ai_family' not supported. */ # define EAI_SOCKTYPE -7 /* 'ai_socktype' not supported. */ # define EAI_SERVICE -8 /* SERVICE not supported for 'ai_socktype'. */ # define EAI_MEMORY -10 /* Memory allocation failure. */ # endif /* Since EAI_NODATA is deprecated by RFC3493, some systems (at least FreeBSD, which does define EAI_BADFLAGS) have removed the definition in favor of EAI_NONAME. */ # if !defined EAI_NODATA && defined EAI_NONAME # define EAI_NODATA EAI_NONAME # endif # ifndef EAI_OVERFLOW /* Not defined on mingw32 and Haiku. */ # define EAI_OVERFLOW -12 /* Argument buffer overflow. */ # endif # ifndef EAI_ADDRFAMILY /* Not defined on mingw32. */ # define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */ # endif # ifndef EAI_SYSTEM /* Not defined on mingw32. */ # define EAI_SYSTEM -11 /* System error returned in 'errno'. */ # endif # if 0 /* The commented out definitions below are not yet implemented in the GNULIB getaddrinfo() replacement, so are not yet needed. If they are restored, be sure to protect the definitions with #ifndef. */ # ifndef EAI_INPROGRESS # define EAI_INPROGRESS -100 /* Processing request in progress. */ # define EAI_CANCELED -101 /* Request canceled. */ # define EAI_NOTCANCELED -102 /* Request not canceled. */ # define EAI_ALLDONE -103 /* All requests done. */ # define EAI_INTR -104 /* Interrupted by a signal. */ # define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ # endif # endif # if !@HAVE_DECL_GETADDRINFO@ /* Translate name of a service location and/or a service name to set of socket addresses. For more details, see the POSIX:2001 specification . */ _GL_FUNCDECL_SYS (getaddrinfo, int, (const char *restrict nodename, const char *restrict servname, const struct addrinfo *restrict hints, struct addrinfo **restrict res) _GL_ARG_NONNULL ((4))); # endif _GL_CXXALIAS_SYS (getaddrinfo, int, (const char *restrict nodename, const char *restrict servname, const struct addrinfo *restrict hints, struct addrinfo **restrict res)); _GL_CXXALIASWARN (getaddrinfo); # if !@HAVE_DECL_FREEADDRINFO@ /* Free 'addrinfo' structure AI including associated storage. For more details, see the POSIX:2001 specification . */ _GL_FUNCDECL_SYS (freeaddrinfo, void, (struct addrinfo *ai) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (freeaddrinfo, void, (struct addrinfo *ai)); _GL_CXXALIASWARN (freeaddrinfo); # if @REPLACE_GAI_STRERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gai_strerror # define gai_strerror rpl_gai_strerror # endif _GL_FUNCDECL_RPL (gai_strerror, const char *, (int ecode)); _GL_CXXALIAS_RPL (gai_strerror, const char *, (int ecode)); # else # if !@HAVE_DECL_GAI_STRERROR@ /* Convert error return from getaddrinfo() to a string. For more details, see the POSIX:2001 specification . */ _GL_FUNCDECL_SYS (gai_strerror, const char *, (int ecode)); # endif _GL_CXXALIAS_SYS (gai_strerror, const char *, (int ecode)); # endif _GL_CXXALIASWARN (gai_strerror); # if !@HAVE_DECL_GETNAMEINFO@ /* Convert socket address to printable node and service names. For more details, see the POSIX:2001 specification . */ _GL_FUNCDECL_SYS (getnameinfo, int, (const struct sockaddr *restrict sa, socklen_t salen, char *restrict node, socklen_t nodelen, char *restrict service, socklen_t servicelen, int flags) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on glibc systems, the seventh parameter is unsigned int flags. */ _GL_CXXALIAS_SYS_CAST (getnameinfo, int, (const struct sockaddr *restrict sa, socklen_t salen, char *restrict node, socklen_t nodelen, char *restrict service, socklen_t servicelen, int flags)); _GL_CXXALIASWARN (getnameinfo); /* Possible flags for getnameinfo. */ # ifndef NI_NUMERICHOST # define NI_NUMERICHOST 1 # endif # ifndef NI_NUMERICSERV # define NI_NUMERICSERV 2 # endif #elif defined GNULIB_POSIXCHECK # undef getaddrinfo # if HAVE_RAW_DECL_GETADDRINFO _GL_WARN_ON_USE (getaddrinfo, "getaddrinfo is unportable - " "use gnulib module getaddrinfo for portability"); # endif # undef freeaddrinfo # if HAVE_RAW_DECL_FREEADDRINFO _GL_WARN_ON_USE (freeaddrinfo, "freeaddrinfo is unportable - " "use gnulib module getaddrinfo for portability"); # endif # undef gai_strerror # if HAVE_RAW_DECL_GAI_STRERROR _GL_WARN_ON_USE (gai_strerror, "gai_strerror is unportable - " "use gnulib module getaddrinfo for portability"); # endif # undef getnameinfo # if HAVE_RAW_DECL_GETNAMEINFO _GL_WARN_ON_USE (getnameinfo, "getnameinfo is unportable - " "use gnulib module getaddrinfo for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_NETDB_H */ #endif /* _@GUARD_PREFIX@_NETDB_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/netinet_in.in.h0000644000000000000000000000011013726163410021715 xustar000000000000000024 mtime=1599661832.588 24 atime=1599661832.754 24 ctime=1599661999.089 libprelude-5.2.0/libmissing/netinet_in.in.h0000644000000000000000000000252413726163410020723 0ustar00rootroot00000000000000/* Substitute for . Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_NETINET_IN_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if @HAVE_NETINET_IN_H@ /* On many platforms, assumes prior inclusion of . */ # include /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_NETINET_IN_H@ #endif #ifndef _@GUARD_PREFIX@_NETINET_IN_H #define _@GUARD_PREFIX@_NETINET_IN_H #if !@HAVE_NETINET_IN_H@ /* A platform that lacks . */ # include #endif #endif /* _@GUARD_PREFIX@_NETINET_IN_H */ #endif /* _@GUARD_PREFIX@_NETINET_IN_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/pathmax.h0000644000000000000000000000011013726163410020616 xustar000000000000000024 mtime=1599661832.588 24 atime=1599661832.754 24 ctime=1599661999.091 libprelude-5.2.0/libmissing/pathmax.h0000644000000000000000000000554713726163410017634 0ustar00rootroot00000000000000/* Define PATH_MAX somehow. Requires sys/types.h. Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _PATHMAX_H # define _PATHMAX_H /* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename, including the terminating NUL byte. PATH_MAX is not defined on systems which have no limit on filename length, such as GNU/Hurd. This file does *not* define PATH_MAX always. Programs that use this file can handle the GNU/Hurd case in several ways: - Either with a package-wide handling, or with a per-file handling, - Either through a #ifdef PATH_MAX or through a fallback like #ifndef PATH_MAX # define PATH_MAX 8192 #endif or through a fallback like #ifndef PATH_MAX # define PATH_MAX pathconf ("/", _PC_PATH_MAX) #endif */ # include # include # ifndef _POSIX_PATH_MAX # define _POSIX_PATH_MAX 256 # endif /* Don't include sys/param.h if it already has been. */ # if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include # endif # if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN # endif # ifdef __hpux /* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename, *not* including the terminating NUL byte, and is set to 1023. Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is not defined at all any more. */ # undef PATH_MAX # define PATH_MAX 1024 # endif # if defined _WIN32 && ! defined __CYGWIN__ /* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, section "Maximum Path Length Limitation", explains that the maximum size of a filename, including the terminating NUL byte, is 260 = 3 + 256 + 1. This is the same value as - FILENAME_MAX in , - _MAX_PATH in , - MAX_PATH in . Undefine the original value, because mingw's gets it wrong. */ # undef PATH_MAX # define PATH_MAX 260 # endif #endif /* _PATHMAX_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/poll.in.h0000644000000000000000000000011013726163410020527 xustar000000000000000024 mtime=1599661832.589 24 atime=1599661832.754 24 ctime=1599661999.092 libprelude-5.2.0/libmissing/poll.in.h0000644000000000000000000000602413726163410017534 0ustar00rootroot00000000000000/* Header for poll(2) emulation Contributed by Paolo Bonzini. Copyright 2001-2003, 2007, 2009-2018 Free Software Foundation, Inc. This file is part of gnulib. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_POLL_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_POLL_H@ # @INCLUDE_NEXT@ @NEXT_POLL_H@ #endif #ifndef _@GUARD_PREFIX@_POLL_H #define _@GUARD_PREFIX@_POLL_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #if !@HAVE_POLL_H@ /* fake a poll(2) environment */ # define POLLIN 0x0001 /* any readable data available */ # define POLLPRI 0x0002 /* OOB/Urgent readable data */ # define POLLOUT 0x0004 /* file descriptor is writable */ # define POLLERR 0x0008 /* some poll error occurred */ # define POLLHUP 0x0010 /* file descriptor was "hung up" */ # define POLLNVAL 0x0020 /* requested events "invalid" */ # define POLLRDNORM 0x0040 # define POLLRDBAND 0x0080 # define POLLWRNORM 0x0100 # define POLLWRBAND 0x0200 # if !GNULIB_defined_poll_types struct pollfd { int fd; /* which file descriptor to poll */ short events; /* events we are interested in */ short revents; /* events found on return */ }; typedef unsigned long nfds_t; # define GNULIB_defined_poll_types 1 # endif /* Define INFTIM only if doing so conforms to POSIX. */ # if !defined (_POSIX_C_SOURCE) && !defined (_XOPEN_SOURCE) # define INFTIM (-1) # endif #endif #if @GNULIB_POLL@ # if @REPLACE_POLL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef poll # define poll rpl_poll # endif _GL_FUNCDECL_RPL (poll, int, (struct pollfd *pfd, nfds_t nfd, int timeout)); _GL_CXXALIAS_RPL (poll, int, (struct pollfd *pfd, nfds_t nfd, int timeout)); # else # if !@HAVE_POLL@ _GL_FUNCDECL_SYS (poll, int, (struct pollfd *pfd, nfds_t nfd, int timeout)); # endif _GL_CXXALIAS_SYS (poll, int, (struct pollfd *pfd, nfds_t nfd, int timeout)); # endif _GL_CXXALIASWARN (poll); #elif defined GNULIB_POSIXCHECK # undef poll # if HAVE_RAW_DECL_POLL _GL_WARN_ON_USE (poll, "poll is unportable - " "use gnulib module poll for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_POLL_H */ #endif /* _@GUARD_PREFIX@_POLL_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/regex.h0000644000000000000000000000011013726163410020266 xustar000000000000000024 mtime=1599661832.592 24 atime=1599661832.755 24 ctime=1599661999.094 libprelude-5.2.0/libmissing/regex.h0000644000000000000000000006021313726163410017273 0ustar00rootroot00000000000000/* Definitions for data structures and routines for the regular expression library. Copyright (C) 1985, 1989-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _REGEX_H #define _REGEX_H 1 #include /* Allow the use in C++ code. */ #ifdef __cplusplus extern "C" { #endif /* Define __USE_GNU to declare GNU extensions that violate the POSIX name space rules. */ #ifdef _GNU_SOURCE # define __USE_GNU 1 #endif #ifdef _REGEX_LARGE_OFFSETS /* Use types and values that are wide enough to represent signed and unsigned byte offsets in memory. This currently works only when the regex code is used outside of the GNU C library; it is not yet supported within glibc itself, and glibc users should not define _REGEX_LARGE_OFFSETS. */ /* The type of object sizes. */ typedef size_t __re_size_t; /* The type of object sizes, in places where the traditional code uses unsigned long int. */ typedef size_t __re_long_size_t; #else /* The traditional GNU regex implementation mishandles strings longer than INT_MAX. */ typedef unsigned int __re_size_t; typedef unsigned long int __re_long_size_t; #endif /* The following two types have to be signed and unsigned integer type wide enough to hold a value of a pointer. For most ANSI compilers ptrdiff_t and size_t should be likely OK. Still size of these two types is 2 for Microsoft C. Ugh... */ typedef long int s_reg_t; typedef unsigned long int active_reg_t; /* The following bits are used to determine the regexp syntax we recognize. The set/not-set meanings are chosen so that Emacs syntax remains the value 0. The bits are given in alphabetical order, and the definitions shifted by one from the previous bit; thus, when we add or remove a bit, only one other definition need change. */ typedef unsigned long int reg_syntax_t; #ifdef __USE_GNU /* If this bit is not set, then \ inside a bracket expression is literal. If set, then such a \ quotes the following character. */ # define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) /* If this bit is not set, then + and ? are operators, and \+ and \? are literals. If set, then \+ and \? are operators and + and ? are literals. */ # define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) /* If this bit is set, then character classes are supported. They are: [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. If not set, then character classes are not supported. */ # define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) /* If this bit is set, then ^ and $ are always anchors (outside bracket expressions, of course). If this bit is not set, then it depends: ^ is an anchor if it is at the beginning of a regular expression or after an open-group or an alternation operator; $ is an anchor if it is at the end of a regular expression, or before a close-group or an alternation operator. This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because POSIX draft 11.2 says that * etc. in leading positions is undefined. We already implemented a previous draft which made those constructs invalid, though, so we haven't changed the code back. */ # define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) /* If this bit is set, then special characters are always special regardless of where they are in the pattern. If this bit is not set, then special characters are special only in some contexts; otherwise they are ordinary. Specifically, * + ? and intervals are only special when not after the beginning, open-group, or alternation operator. */ # define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) /* If this bit is set, then *, +, ?, and { cannot be first in an re or immediately after an alternation or begin-group operator. */ # define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) /* If this bit is set, then . matches newline. If not set, then it doesn't. */ # define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) /* If this bit is set, then . doesn't match NUL. If not set, then it does. */ # define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) /* If this bit is set, nonmatching lists [^...] do not match newline. If not set, they do. */ # define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) /* If this bit is set, either \{...\} or {...} defines an interval, depending on RE_NO_BK_BRACES. If not set, \{, \}, {, and } are literals. */ # define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) /* If this bit is set, +, ? and | aren't recognized as operators. If not set, they are. */ # define RE_LIMITED_OPS (RE_INTERVALS << 1) /* If this bit is set, newline is an alternation operator. If not set, newline is literal. */ # define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) /* If this bit is set, then '{...}' defines an interval, and \{ and \} are literals. If not set, then '\{...\}' defines an interval. */ # define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) /* If this bit is set, (...) defines a group, and \( and \) are literals. If not set, \(...\) defines a group, and ( and ) are literals. */ # define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) /* If this bit is set, then \ matches . If not set, then \ is a back-reference. */ # define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) /* If this bit is set, then | is an alternation operator, and \| is literal. If not set, then \| is an alternation operator, and | is literal. */ # define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) /* If this bit is set, then an ending range point collating higher than the starting range point, as in [z-a], is invalid. If not set, then when ending range point collates higher than the starting range point, the range is ignored. */ # define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) /* If this bit is set, then an unmatched ) is ordinary. If not set, then an unmatched ) is invalid. */ # define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) /* If this bit is set, succeed as soon as we match the whole pattern, without further backtracking. */ # define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) /* If this bit is set, do not process the GNU regex operators. If not set, then the GNU regex operators are recognized. */ # define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) /* If this bit is set, turn on internal regex debugging. If not set, and debugging was on, turn it off. This only works if regex.c is compiled -DDEBUG. We define this bit always, so that all that's needed to turn on debugging is to recompile regex.c; the calling code can always have this bit set, and it won't affect anything in the normal case. */ # define RE_DEBUG (RE_NO_GNU_OPS << 1) /* If this bit is set, a syntactically invalid interval is treated as a string of ordinary characters. For example, the ERE 'a{1' is treated as 'a\{1'. */ # define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) /* If this bit is set, then ignore case when matching. If not set, then case is significant. */ # define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) /* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only for ^, because it is difficult to scan the regex backwards to find whether ^ should be special. */ # define RE_CARET_ANCHORS_HERE (RE_ICASE << 1) /* If this bit is set, then \{ cannot be first in a regex or immediately after an alternation, open-group or \} operator. */ # define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1) /* If this bit is set, then no_sub will be set to 1 during re_compile_pattern. */ # define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) #endif /* This global variable defines the particular regexp syntax to use (for some interfaces). When a regexp is compiled, the syntax used is stored in the pattern buffer, so changing this does not affect already-compiled regexps. */ extern reg_syntax_t re_syntax_options; #ifdef __USE_GNU /* Define combinations of the above bits for the standard possibilities. (The [[[ comments delimit what gets put into the Texinfo file, so don't delete them!) */ /* [[[begin syntaxes]]] */ # define RE_SYNTAX_EMACS 0 # define RE_SYNTAX_AWK \ (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \ | RE_CHAR_CLASSES \ | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS) # define RE_SYNTAX_GNU_AWK \ ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ | RE_INVALID_INTERVAL_ORD) \ & ~(RE_DOT_NOT_NULL | RE_CONTEXT_INDEP_OPS \ | RE_CONTEXT_INVALID_OPS )) # define RE_SYNTAX_POSIX_AWK \ (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ | RE_INTERVALS | RE_NO_GNU_OPS \ | RE_INVALID_INTERVAL_ORD) # define RE_SYNTAX_GREP \ ((RE_SYNTAX_POSIX_BASIC | RE_NEWLINE_ALT) \ & ~(RE_CONTEXT_INVALID_DUP | RE_DOT_NOT_NULL)) # define RE_SYNTAX_EGREP \ ((RE_SYNTAX_POSIX_EXTENDED | RE_INVALID_INTERVAL_ORD | RE_NEWLINE_ALT) \ & ~(RE_CONTEXT_INVALID_OPS | RE_DOT_NOT_NULL)) /* POSIX grep -E behavior is no longer incompatible with GNU. */ # define RE_SYNTAX_POSIX_EGREP \ RE_SYNTAX_EGREP /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ # define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC # define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC /* Syntax bits common to both basic and extended POSIX regex syntax. */ # define _RE_SYNTAX_POSIX_COMMON \ (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ | RE_INTERVALS | RE_NO_EMPTY_RANGES) # define RE_SYNTAX_POSIX_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP) /* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this isn't minimal, since other operators, such as \`, aren't disabled. */ # define RE_SYNTAX_POSIX_MINIMAL_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS) # define RE_SYNTAX_POSIX_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_VBAR \ | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD) /* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is removed and RE_NO_BK_REFS is added. */ # define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD) /* [[[end syntaxes]]] */ /* Maximum number of duplicates an interval can allow. POSIX-conforming systems might define this in , but we want our value, so remove any previous define. */ # ifdef _REGEX_INCLUDE_LIMITS_H # include # endif # ifdef RE_DUP_MAX # undef RE_DUP_MAX # endif /* RE_DUP_MAX is 2**15 - 1 because an earlier implementation stored the counter as a 2-byte signed integer. This is no longer true, so RE_DUP_MAX could be increased to (INT_MAX / 10 - 1), or to ((SIZE_MAX - 9) / 10) if _REGEX_LARGE_OFFSETS is defined. However, there would be a huge performance problem if someone actually used a pattern like a\{214748363\}, so RE_DUP_MAX retains its historical value. */ # define RE_DUP_MAX (0x7fff) #endif /* POSIX 'cflags' bits (i.e., information for 'regcomp'). */ /* If this bit is set, then use extended regular expression syntax. If not set, then use basic regular expression syntax. */ #define REG_EXTENDED 1 /* If this bit is set, then ignore case when matching. If not set, then case is significant. */ #define REG_ICASE (1 << 1) /* If this bit is set, then anchors do not match at newline characters in the string. If not set, then anchors do match at newlines. */ #define REG_NEWLINE (1 << 2) /* If this bit is set, then report only success or fail in regexec. If not set, then returns differ between not matching and errors. */ #define REG_NOSUB (1 << 3) /* POSIX 'eflags' bits (i.e., information for regexec). */ /* If this bit is set, then the beginning-of-line operator doesn't match the beginning of the string (presumably because it's not the beginning of a line). If not set, then the beginning-of-line operator does match the beginning of the string. */ #define REG_NOTBOL 1 /* Like REG_NOTBOL, except for the end-of-line. */ #define REG_NOTEOL (1 << 1) /* Use PMATCH[0] to delimit the start and end of the search in the buffer. */ #define REG_STARTEND (1 << 2) /* If any error codes are removed, changed, or added, update the '__re_error_msgid' table in regcomp.c. */ typedef enum { _REG_ENOSYS = -1, /* This will never happen for this implementation. */ _REG_NOERROR = 0, /* Success. */ _REG_NOMATCH, /* Didn't find a match (for regexec). */ /* POSIX regcomp return error codes. (In the order listed in the standard.) */ _REG_BADPAT, /* Invalid pattern. */ _REG_ECOLLATE, /* Invalid collating element. */ _REG_ECTYPE, /* Invalid character class name. */ _REG_EESCAPE, /* Trailing backslash. */ _REG_ESUBREG, /* Invalid back reference. */ _REG_EBRACK, /* Unmatched left bracket. */ _REG_EPAREN, /* Parenthesis imbalance. */ _REG_EBRACE, /* Unmatched \{. */ _REG_BADBR, /* Invalid contents of \{\}. */ _REG_ERANGE, /* Invalid range end. */ _REG_ESPACE, /* Ran out of memory. */ _REG_BADRPT, /* No preceding re for repetition op. */ /* Error codes we've added. */ _REG_EEND, /* Premature end. */ _REG_ESIZE, /* Too large (e.g., repeat count too large). */ _REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */ } reg_errcode_t; #if defined _XOPEN_SOURCE || defined __USE_XOPEN2K # define REG_ENOSYS _REG_ENOSYS #endif #define REG_NOERROR _REG_NOERROR #define REG_NOMATCH _REG_NOMATCH #define REG_BADPAT _REG_BADPAT #define REG_ECOLLATE _REG_ECOLLATE #define REG_ECTYPE _REG_ECTYPE #define REG_EESCAPE _REG_EESCAPE #define REG_ESUBREG _REG_ESUBREG #define REG_EBRACK _REG_EBRACK #define REG_EPAREN _REG_EPAREN #define REG_EBRACE _REG_EBRACE #define REG_BADBR _REG_BADBR #define REG_ERANGE _REG_ERANGE #define REG_ESPACE _REG_ESPACE #define REG_BADRPT _REG_BADRPT #define REG_EEND _REG_EEND #define REG_ESIZE _REG_ESIZE #define REG_ERPAREN _REG_ERPAREN /* This data structure represents a compiled pattern. Before calling the pattern compiler, the fields 'buffer', 'allocated', 'fastmap', and 'translate' can be set. After the pattern has been compiled, the fields 're_nsub', 'not_bol' and 'not_eol' are available. All other fields are private to the regex routines. */ #ifndef RE_TRANSLATE_TYPE # define __RE_TRANSLATE_TYPE unsigned char * # ifdef __USE_GNU # define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE # endif #endif #ifdef __USE_GNU # define __REPB_PREFIX(name) name #else # define __REPB_PREFIX(name) __##name #endif struct re_pattern_buffer { /* Space that holds the compiled pattern. The type 'struct re_dfa_t' is private and is not declared here. */ struct re_dfa_t *__REPB_PREFIX(buffer); /* Number of bytes to which 'buffer' points. */ __re_long_size_t __REPB_PREFIX(allocated); /* Number of bytes actually used in 'buffer'. */ __re_long_size_t __REPB_PREFIX(used); /* Syntax setting with which the pattern was compiled. */ reg_syntax_t __REPB_PREFIX(syntax); /* Pointer to a fastmap, if any, otherwise zero. re_search uses the fastmap, if there is one, to skip over impossible starting points for matches. */ char *__REPB_PREFIX(fastmap); /* Either a translate table to apply to all characters before comparing them, or zero for no translation. The translation is applied to a pattern when it is compiled and to a string when it is matched. */ __RE_TRANSLATE_TYPE __REPB_PREFIX(translate); /* Number of subexpressions found by the compiler. */ size_t re_nsub; /* Zero if this pattern cannot match the empty string, one else. Well, in truth it's used only in 're_search_2', to see whether or not we should use the fastmap, so we don't set this absolutely perfectly; see 're_compile_fastmap' (the "duplicate" case). */ unsigned __REPB_PREFIX(can_be_null) : 1; /* If REGS_UNALLOCATED, allocate space in the 'regs' structure for 'max (RE_NREGS, re_nsub + 1)' groups. If REGS_REALLOCATE, reallocate space if necessary. If REGS_FIXED, use what's there. */ #ifdef __USE_GNU # define REGS_UNALLOCATED 0 # define REGS_REALLOCATE 1 # define REGS_FIXED 2 #endif unsigned __REPB_PREFIX(regs_allocated) : 2; /* Set to zero when 're_compile_pattern' compiles a pattern; set to one by 're_compile_fastmap' if it updates the fastmap. */ unsigned __REPB_PREFIX(fastmap_accurate) : 1; /* If set, 're_match_2' does not return information about subexpressions. */ unsigned __REPB_PREFIX(no_sub) : 1; /* If set, a beginning-of-line anchor doesn't match at the beginning of the string. */ unsigned __REPB_PREFIX(not_bol) : 1; /* Similarly for an end-of-line anchor. */ unsigned __REPB_PREFIX(not_eol) : 1; /* If true, an anchor at a newline matches. */ unsigned __REPB_PREFIX(newline_anchor) : 1; }; typedef struct re_pattern_buffer regex_t; /* Type for byte offsets within the string. POSIX mandates this. */ #ifdef _REGEX_LARGE_OFFSETS /* POSIX 1003.1-2008 requires that regoff_t be at least as wide as ptrdiff_t and ssize_t. We don't know of any hosts where ptrdiff_t is wider than ssize_t, so ssize_t is safe. ptrdiff_t is not visible here, so use ssize_t. */ typedef ssize_t regoff_t; #else /* The traditional GNU regex implementation mishandles strings longer than INT_MAX. */ typedef int regoff_t; #endif #ifdef __USE_GNU /* This is the structure we store register match data in. See regex.texinfo for a full description of what registers match. */ struct re_registers { __re_size_t num_regs; regoff_t *start; regoff_t *end; }; /* If 'regs_allocated' is REGS_UNALLOCATED in the pattern buffer, 're_match_2' returns information about at least this many registers the first time a 'regs' structure is passed. */ # ifndef RE_NREGS # define RE_NREGS 30 # endif #endif /* POSIX specification for registers. Aside from the different names than 're_registers', POSIX uses an array of structures, instead of a structure of arrays. */ typedef struct { regoff_t rm_so; /* Byte offset from string's start to substring's start. */ regoff_t rm_eo; /* Byte offset from string's start to substring's end. */ } regmatch_t; /* Declarations for routines. */ #ifdef __USE_GNU /* Sets the current default syntax to SYNTAX, and return the old syntax. You can also simply assign to the 're_syntax_options' variable. */ extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax); /* Compile the regular expression PATTERN, with length LENGTH and syntax given by the global 're_syntax_options', into the buffer BUFFER. Return NULL if successful, and an error string if not. To free the allocated storage, you must call 'regfree' on BUFFER. Note that the translate table must either have been initialized by 'regcomp', with a malloc'ed value, or set to NULL before calling 'regfree'. */ extern const char *re_compile_pattern (const char *__pattern, size_t __length, struct re_pattern_buffer *__buffer); /* Compile a fastmap for the compiled pattern in BUFFER; used to accelerate searches. Return 0 if successful and -2 if was an internal error. */ extern int re_compile_fastmap (struct re_pattern_buffer *__buffer); /* Search in the string STRING (with length LENGTH) for the pattern compiled into BUFFER. Start searching at position START, for RANGE characters. Return the starting position of the match, -1 for no match, or -2 for an internal error. Also return register information in REGS (if REGS and BUFFER->no_sub are nonzero). */ extern regoff_t re_search (struct re_pattern_buffer *__buffer, const char *__String, regoff_t __length, regoff_t __start, regoff_t __range, struct re_registers *__regs); /* Like 're_search', but search in the concatenation of STRING1 and STRING2. Also, stop searching at index START + STOP. */ extern regoff_t re_search_2 (struct re_pattern_buffer *__buffer, const char *__string1, regoff_t __length1, const char *__string2, regoff_t __length2, regoff_t __start, regoff_t __range, struct re_registers *__regs, regoff_t __stop); /* Like 're_search', but return how many characters in STRING the regexp in BUFFER matched, starting at position START. */ extern regoff_t re_match (struct re_pattern_buffer *__buffer, const char *__String, regoff_t __length, regoff_t __start, struct re_registers *__regs); /* Relates to 're_match' as 're_search_2' relates to 're_search'. */ extern regoff_t re_match_2 (struct re_pattern_buffer *__buffer, const char *__string1, regoff_t __length1, const char *__string2, regoff_t __length2, regoff_t __start, struct re_registers *__regs, regoff_t __stop); /* Set REGS to hold NUM_REGS registers, storing them in STARTS and ENDS. Subsequent matches using BUFFER and REGS will use this memory for recording register information. STARTS and ENDS must be allocated with malloc, and must each be at least 'NUM_REGS * sizeof (regoff_t)' bytes long. If NUM_REGS == 0, then subsequent matches should allocate their own register data. Unless this function is called, the first search or match using BUFFER will allocate its own register data, without freeing the old data. */ extern void re_set_registers (struct re_pattern_buffer *__buffer, struct re_registers *__regs, __re_size_t __num_regs, regoff_t *__starts, regoff_t *__ends); #endif /* Use GNU */ #if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_MISC) # ifndef _CRAY /* 4.2 bsd compatibility. */ extern char *re_comp (const char *); extern int re_exec (const char *); # endif #endif /* For plain 'restrict', use glibc's __restrict if defined. Otherwise, GCC 2.95 and later have "__restrict"; C99 compilers have "restrict", and "configure" may have defined "restrict". Other compilers use __restrict, __restrict__, and _Restrict, and 'configure' might #define 'restrict' to those words, so pick a different name. */ #ifndef _Restrict_ # if defined __restrict || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) # define _Restrict_ __restrict # elif 199901L <= __STDC_VERSION__ || defined restrict # define _Restrict_ restrict # else # define _Restrict_ # endif #endif /* For [restrict], use glibc's __restrict_arr if available. Otherwise, GCC 3.1 (not in C++ mode) and C99 support [restrict]. */ #ifndef _Restrict_arr_ # ifdef __restrict_arr # define _Restrict_arr_ __restrict_arr # elif ((199901L <= __STDC_VERSION__ || 3 < __GNUC__ + (1 <= __GNUC_MINOR__)) \ && !defined __GNUG__) # define _Restrict_arr_ _Restrict_ # else # define _Restrict_arr_ # endif #endif /* POSIX compatibility. */ extern int regcomp (regex_t *_Restrict_ __preg, const char *_Restrict_ __pattern, int __cflags); extern int regexec (const regex_t *_Restrict_ __preg, const char *_Restrict_ __String, size_t __nmatch, regmatch_t __pmatch[_Restrict_arr_], int __eflags); extern size_t regerror (int __errcode, const regex_t *_Restrict_ __preg, char *_Restrict_ __errbuf, size_t __errbuf_size); extern void regfree (regex_t *__preg); #ifdef __cplusplus } #endif /* C++ */ #endif /* regex.h */ libprelude-5.2.0/libmissing/PaxHeaders.14770/regex_internal.h0000644000000000000000000000011013726163410022162 xustar000000000000000024 mtime=1599661832.593 24 atime=1599661832.755 24 ctime=1599661999.096 libprelude-5.2.0/libmissing/regex_internal.h0000644000000000000000000006236713726163410021203 0ustar00rootroot00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _REGEX_INTERNAL_H #define _REGEX_INTERNAL_H 1 #include #include #include #include #include #include #include #include #include #include #include /* Properties of integers. Although Gnulib has intprops.h, glibc does without for now. */ #ifndef _LIBC # include "intprops.h" #else /* True if the real type T is signed. */ # define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* True if adding the nonnegative Idx values A and B would overflow. If false, set *R to A + B. A, B, and R may be evaluated more than once, or zero times. Although this is not a full implementation of Gnulib INT_ADD_WRAPV, it is good enough for glibc regex code. FIXME: This implementation is a fragile stopgap, and this file would be simpler and more robust if intprops.h were migrated into glibc. */ # define INT_ADD_WRAPV(a, b, r) \ (IDX_MAX - (a) < (b) ? true : (*(r) = (a) + (b), false)) #endif #ifdef _LIBC # include # define lock_define(name) __libc_lock_define (, name) # define lock_init(lock) (__libc_lock_init (lock), 0) # define lock_fini(lock) ((void) 0) # define lock_lock(lock) __libc_lock_lock (lock) # define lock_unlock(lock) __libc_lock_unlock (lock) #elif defined GNULIB_LOCK && !defined USE_UNLOCKED_IO # include "glthread/lock.h" /* Use gl_lock_define if empty macro arguments are known to work. Otherwise, fall back on less-portable substitutes. */ # if ((defined __GNUC__ && !defined __STRICT_ANSI__) \ || (defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__)) # define lock_define(name) gl_lock_define (, name) # elif USE_POSIX_THREADS # define lock_define(name) pthread_mutex_t name; # elif USE_PTH_THREADS # define lock_define(name) pth_mutex_t name; # elif USE_SOLARIS_THREADS # define lock_define(name) mutex_t name; # elif USE_WINDOWS_THREADS # define lock_define(name) gl_lock_t name; # else # define lock_define(name) # endif # define lock_init(lock) glthread_lock_init (&(lock)) # define lock_fini(lock) glthread_lock_destroy (&(lock)) # define lock_lock(lock) glthread_lock_lock (&(lock)) # define lock_unlock(lock) glthread_lock_unlock (&(lock)) #elif defined GNULIB_PTHREAD && !defined USE_UNLOCKED_IO # include # define lock_define(name) pthread_mutex_t name; # define lock_init(lock) pthread_mutex_init (&(lock), 0) # define lock_fini(lock) pthread_mutex_destroy (&(lock)) # define lock_lock(lock) pthread_mutex_lock (&(lock)) # define lock_unlock(lock) pthread_mutex_unlock (&(lock)) #else # define lock_define(name) # define lock_init(lock) 0 # define lock_fini(lock) ((void) 0) /* The 'dfa' avoids an "unused variable 'dfa'" warning from GCC. */ # define lock_lock(lock) ((void) dfa) # define lock_unlock(lock) ((void) 0) #endif /* In case that the system doesn't have isblank(). */ #if !defined _LIBC && ! (defined isblank || (HAVE_ISBLANK && HAVE_DECL_ISBLANK)) # define isblank(ch) ((ch) == ' ' || (ch) == '\t') #endif #ifdef _LIBC # ifndef _RE_DEFINE_LOCALE_FUNCTIONS # define _RE_DEFINE_LOCALE_FUNCTIONS 1 # include # include # endif #endif /* This is for other GNU distributions with internationalized messages. */ #if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC # include # ifdef _LIBC # undef gettext # define gettext(msgid) \ __dcgettext (_libc_intl_domainname, msgid, LC_MESSAGES) # endif #else # undef gettext # define gettext(msgid) (msgid) #endif #ifndef gettext_noop /* This define is so xgettext can find the internationalizable strings. */ # define gettext_noop(String) String #endif #if (defined MB_CUR_MAX && HAVE_WCTYPE_H && HAVE_ISWCTYPE) || _LIBC # define RE_ENABLE_I18N #endif #define BE(expr, val) __builtin_expect (expr, val) /* Number of ASCII characters. */ #define ASCII_CHARS 0x80 /* Number of single byte characters. */ #define SBC_MAX (UCHAR_MAX + 1) #define COLL_ELEM_LEN_MAX 8 /* The character which represents newline. */ #define NEWLINE_CHAR '\n' #define WIDE_NEWLINE_CHAR L'\n' /* Rename to standard API for using out of glibc. */ #ifndef _LIBC # undef __wctype # undef __iswalnum # undef __iswctype # undef __towlower # undef __towupper # define __wctype wctype # define __iswalnum iswalnum # define __iswctype iswctype # define __towlower towlower # define __towupper towupper # define __btowc btowc # define __mbrtowc mbrtowc # define __wcrtomb wcrtomb # define __regfree regfree # define attribute_hidden #endif /* not _LIBC */ #if __GNUC__ < 3 + (__GNUC_MINOR__ < 1) # define __attribute__(arg) #endif #ifndef SSIZE_MAX # define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) #endif /* The type of indexes into strings. This is signed, not size_t, since the API requires indexes to fit in regoff_t anyway, and using signed integers makes the code a bit smaller and presumably faster. The traditional GNU regex implementation uses int for indexes. The POSIX-compatible implementation uses a possibly-wider type. The name 'Idx' is three letters to minimize the hassle of reindenting a lot of regex code that formerly used 'int'. */ typedef regoff_t Idx; #ifdef _REGEX_LARGE_OFFSETS # define IDX_MAX SSIZE_MAX #else # define IDX_MAX INT_MAX #endif /* A hash value, suitable for computing hash tables. */ typedef __re_size_t re_hashval_t; /* An integer used to represent a set of bits. It must be unsigned, and must be at least as wide as unsigned int. */ typedef unsigned long int bitset_word_t; /* All bits set in a bitset_word_t. */ #define BITSET_WORD_MAX ULONG_MAX /* Number of bits in a bitset_word_t. For portability to hosts with padding bits, do not use '(sizeof (bitset_word_t) * CHAR_BIT)'; instead, deduce it directly from BITSET_WORD_MAX. Avoid greater-than-32-bit integers and unconditional shifts by more than 31 bits, as they're not portable. */ #if BITSET_WORD_MAX == 0xffffffffUL # define BITSET_WORD_BITS 32 #elif BITSET_WORD_MAX >> 31 >> 4 == 1 # define BITSET_WORD_BITS 36 #elif BITSET_WORD_MAX >> 31 >> 16 == 1 # define BITSET_WORD_BITS 48 #elif BITSET_WORD_MAX >> 31 >> 28 == 1 # define BITSET_WORD_BITS 60 #elif BITSET_WORD_MAX >> 31 >> 31 >> 1 == 1 # define BITSET_WORD_BITS 64 #elif BITSET_WORD_MAX >> 31 >> 31 >> 9 == 1 # define BITSET_WORD_BITS 72 #elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 3 == 1 # define BITSET_WORD_BITS 128 #elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 == 1 # define BITSET_WORD_BITS 256 #elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 > 1 # define BITSET_WORD_BITS 257 /* any value > SBC_MAX will do here */ # if BITSET_WORD_BITS <= SBC_MAX # error "Invalid SBC_MAX" # endif #else # error "Add case for new bitset_word_t size" #endif /* Number of bitset_word_t values in a bitset_t. */ #define BITSET_WORDS ((SBC_MAX + BITSET_WORD_BITS - 1) / BITSET_WORD_BITS) typedef bitset_word_t bitset_t[BITSET_WORDS]; typedef bitset_word_t *re_bitset_ptr_t; typedef const bitset_word_t *re_const_bitset_ptr_t; #define PREV_WORD_CONSTRAINT 0x0001 #define PREV_NOTWORD_CONSTRAINT 0x0002 #define NEXT_WORD_CONSTRAINT 0x0004 #define NEXT_NOTWORD_CONSTRAINT 0x0008 #define PREV_NEWLINE_CONSTRAINT 0x0010 #define NEXT_NEWLINE_CONSTRAINT 0x0020 #define PREV_BEGBUF_CONSTRAINT 0x0040 #define NEXT_ENDBUF_CONSTRAINT 0x0080 #define WORD_DELIM_CONSTRAINT 0x0100 #define NOT_WORD_DELIM_CONSTRAINT 0x0200 typedef enum { INSIDE_WORD = PREV_WORD_CONSTRAINT | NEXT_WORD_CONSTRAINT, WORD_FIRST = PREV_NOTWORD_CONSTRAINT | NEXT_WORD_CONSTRAINT, WORD_LAST = PREV_WORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT, INSIDE_NOTWORD = PREV_NOTWORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT, LINE_FIRST = PREV_NEWLINE_CONSTRAINT, LINE_LAST = NEXT_NEWLINE_CONSTRAINT, BUF_FIRST = PREV_BEGBUF_CONSTRAINT, BUF_LAST = NEXT_ENDBUF_CONSTRAINT, WORD_DELIM = WORD_DELIM_CONSTRAINT, NOT_WORD_DELIM = NOT_WORD_DELIM_CONSTRAINT } re_context_type; typedef struct { Idx alloc; Idx nelem; Idx *elems; } re_node_set; typedef enum { NON_TYPE = 0, /* Node type, These are used by token, node, tree. */ CHARACTER = 1, END_OF_RE = 2, SIMPLE_BRACKET = 3, OP_BACK_REF = 4, OP_PERIOD = 5, #ifdef RE_ENABLE_I18N COMPLEX_BRACKET = 6, OP_UTF8_PERIOD = 7, #endif /* RE_ENABLE_I18N */ /* We define EPSILON_BIT as a macro so that OP_OPEN_SUBEXP is used when the debugger shows values of this enum type. */ #define EPSILON_BIT 8 OP_OPEN_SUBEXP = EPSILON_BIT | 0, OP_CLOSE_SUBEXP = EPSILON_BIT | 1, OP_ALT = EPSILON_BIT | 2, OP_DUP_ASTERISK = EPSILON_BIT | 3, ANCHOR = EPSILON_BIT | 4, /* Tree type, these are used only by tree. */ CONCAT = 16, SUBEXP = 17, /* Token type, these are used only by token. */ OP_DUP_PLUS = 18, OP_DUP_QUESTION, OP_OPEN_BRACKET, OP_CLOSE_BRACKET, OP_CHARSET_RANGE, OP_OPEN_DUP_NUM, OP_CLOSE_DUP_NUM, OP_NON_MATCH_LIST, OP_OPEN_COLL_ELEM, OP_CLOSE_COLL_ELEM, OP_OPEN_EQUIV_CLASS, OP_CLOSE_EQUIV_CLASS, OP_OPEN_CHAR_CLASS, OP_CLOSE_CHAR_CLASS, OP_WORD, OP_NOTWORD, OP_SPACE, OP_NOTSPACE, BACK_SLASH } re_token_type_t; #ifdef RE_ENABLE_I18N typedef struct { /* Multibyte characters. */ wchar_t *mbchars; /* Collating symbols. */ # ifdef _LIBC int32_t *coll_syms; # endif /* Equivalence classes. */ # ifdef _LIBC int32_t *equiv_classes; # endif /* Range expressions. */ # ifdef _LIBC uint32_t *range_starts; uint32_t *range_ends; # else /* not _LIBC */ wchar_t *range_starts; wchar_t *range_ends; # endif /* not _LIBC */ /* Character classes. */ wctype_t *char_classes; /* If this character set is the non-matching list. */ unsigned int non_match : 1; /* # of multibyte characters. */ Idx nmbchars; /* # of collating symbols. */ Idx ncoll_syms; /* # of equivalence classes. */ Idx nequiv_classes; /* # of range expressions. */ Idx nranges; /* # of character classes. */ Idx nchar_classes; } re_charset_t; #endif /* RE_ENABLE_I18N */ typedef struct { union { unsigned char c; /* for CHARACTER */ re_bitset_ptr_t sbcset; /* for SIMPLE_BRACKET */ #ifdef RE_ENABLE_I18N re_charset_t *mbcset; /* for COMPLEX_BRACKET */ #endif /* RE_ENABLE_I18N */ Idx idx; /* for BACK_REF */ re_context_type ctx_type; /* for ANCHOR */ } opr; #if __GNUC__ >= 2 && !defined __STRICT_ANSI__ re_token_type_t type : 8; #else re_token_type_t type; #endif unsigned int constraint : 10; /* context constraint */ unsigned int duplicated : 1; unsigned int opt_subexp : 1; #ifdef RE_ENABLE_I18N unsigned int accept_mb : 1; /* These 2 bits can be moved into the union if needed (e.g. if running out of bits; move opr.c to opr.c.c and move the flags to opr.c.flags). */ unsigned int mb_partial : 1; #endif unsigned int word_char : 1; } re_token_t; #define IS_EPSILON_NODE(type) ((type) & EPSILON_BIT) struct re_string_t { /* Indicate the raw buffer which is the original string passed as an argument of regexec(), re_search(), etc.. */ const unsigned char *raw_mbs; /* Store the multibyte string. In case of "case insensitive mode" like REG_ICASE, upper cases of the string are stored, otherwise MBS points the same address that RAW_MBS points. */ unsigned char *mbs; #ifdef RE_ENABLE_I18N /* Store the wide character string which is corresponding to MBS. */ wint_t *wcs; Idx *offsets; mbstate_t cur_state; #endif /* Index in RAW_MBS. Each character mbs[i] corresponds to raw_mbs[raw_mbs_idx + i]. */ Idx raw_mbs_idx; /* The length of the valid characters in the buffers. */ Idx valid_len; /* The corresponding number of bytes in raw_mbs array. */ Idx valid_raw_len; /* The length of the buffers MBS and WCS. */ Idx bufs_len; /* The index in MBS, which is updated by re_string_fetch_byte. */ Idx cur_idx; /* length of RAW_MBS array. */ Idx raw_len; /* This is RAW_LEN - RAW_MBS_IDX + VALID_LEN - VALID_RAW_LEN. */ Idx len; /* End of the buffer may be shorter than its length in the cases such as re_match_2, re_search_2. Then, we use STOP for end of the buffer instead of LEN. */ Idx raw_stop; /* This is RAW_STOP - RAW_MBS_IDX adjusted through OFFSETS. */ Idx stop; /* The context of mbs[0]. We store the context independently, since the context of mbs[0] may be different from raw_mbs[0], which is the beginning of the input string. */ unsigned int tip_context; /* The translation passed as a part of an argument of re_compile_pattern. */ RE_TRANSLATE_TYPE trans; /* Copy of re_dfa_t's word_char. */ re_const_bitset_ptr_t word_char; /* true if REG_ICASE. */ unsigned char icase; unsigned char is_utf8; unsigned char map_notascii; unsigned char mbs_allocated; unsigned char offsets_needed; unsigned char newline_anchor; unsigned char word_ops_used; int mb_cur_max; }; typedef struct re_string_t re_string_t; struct re_dfa_t; typedef struct re_dfa_t re_dfa_t; #ifndef _LIBC # define IS_IN(libc) false #endif #define re_string_peek_byte(pstr, offset) \ ((pstr)->mbs[(pstr)->cur_idx + offset]) #define re_string_fetch_byte(pstr) \ ((pstr)->mbs[(pstr)->cur_idx++]) #define re_string_first_byte(pstr, idx) \ ((idx) == (pstr)->valid_len || (pstr)->wcs[idx] != WEOF) #define re_string_is_single_byte_char(pstr, idx) \ ((pstr)->wcs[idx] != WEOF && ((pstr)->valid_len == (idx) + 1 \ || (pstr)->wcs[(idx) + 1] != WEOF)) #define re_string_eoi(pstr) ((pstr)->stop <= (pstr)->cur_idx) #define re_string_cur_idx(pstr) ((pstr)->cur_idx) #define re_string_get_buffer(pstr) ((pstr)->mbs) #define re_string_length(pstr) ((pstr)->len) #define re_string_byte_at(pstr,idx) ((pstr)->mbs[idx]) #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx)) #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx)) #if defined _LIBC || HAVE_ALLOCA # include #endif #ifndef _LIBC # if HAVE_ALLOCA /* The OS usually guarantees only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely allocate anything larger than 4096 bytes. Also care for the possibility of a few compiler-allocated temporary stack slots. */ # define __libc_use_alloca(n) ((n) < 4032) # else /* alloca is implemented with malloc, so just use malloc. */ # define __libc_use_alloca(n) 0 # undef alloca # define alloca(n) malloc (n) # endif #endif #ifdef _LIBC # define MALLOC_0_IS_NONNULL 1 #elif !defined MALLOC_0_IS_NONNULL # define MALLOC_0_IS_NONNULL 0 #endif #ifndef MAX # define MAX(a,b) ((a) < (b) ? (b) : (a)) #endif #ifndef MIN # define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif #define re_malloc(t,n) ((t *) malloc ((n) * sizeof (t))) #define re_realloc(p,t,n) ((t *) realloc (p, (n) * sizeof (t))) #define re_free(p) free (p) struct bin_tree_t { struct bin_tree_t *parent; struct bin_tree_t *left; struct bin_tree_t *right; struct bin_tree_t *first; struct bin_tree_t *next; re_token_t token; /* 'node_idx' is the index in dfa->nodes, if 'type' == 0. Otherwise 'type' indicate the type of this node. */ Idx node_idx; }; typedef struct bin_tree_t bin_tree_t; #define BIN_TREE_STORAGE_SIZE \ ((1024 - sizeof (void *)) / sizeof (bin_tree_t)) struct bin_tree_storage_t { struct bin_tree_storage_t *next; bin_tree_t data[BIN_TREE_STORAGE_SIZE]; }; typedef struct bin_tree_storage_t bin_tree_storage_t; #define CONTEXT_WORD 1 #define CONTEXT_NEWLINE (CONTEXT_WORD << 1) #define CONTEXT_BEGBUF (CONTEXT_NEWLINE << 1) #define CONTEXT_ENDBUF (CONTEXT_BEGBUF << 1) #define IS_WORD_CONTEXT(c) ((c) & CONTEXT_WORD) #define IS_NEWLINE_CONTEXT(c) ((c) & CONTEXT_NEWLINE) #define IS_BEGBUF_CONTEXT(c) ((c) & CONTEXT_BEGBUF) #define IS_ENDBUF_CONTEXT(c) ((c) & CONTEXT_ENDBUF) #define IS_ORDINARY_CONTEXT(c) ((c) == 0) #define IS_WORD_CHAR(ch) (isalnum (ch) || (ch) == '_') #define IS_NEWLINE(ch) ((ch) == NEWLINE_CHAR) #define IS_WIDE_WORD_CHAR(ch) (__iswalnum (ch) || (ch) == L'_') #define IS_WIDE_NEWLINE(ch) ((ch) == WIDE_NEWLINE_CHAR) #define NOT_SATISFY_PREV_CONSTRAINT(constraint,context) \ ((((constraint) & PREV_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \ || ((constraint & PREV_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \ || ((constraint & PREV_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context))\ || ((constraint & PREV_BEGBUF_CONSTRAINT) && !IS_BEGBUF_CONTEXT (context))) #define NOT_SATISFY_NEXT_CONSTRAINT(constraint,context) \ ((((constraint) & NEXT_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \ || (((constraint) & NEXT_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \ || (((constraint) & NEXT_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context)) \ || (((constraint) & NEXT_ENDBUF_CONSTRAINT) && !IS_ENDBUF_CONTEXT (context))) struct re_dfastate_t { re_hashval_t hash; re_node_set nodes; re_node_set non_eps_nodes; re_node_set inveclosure; re_node_set *entrance_nodes; struct re_dfastate_t **trtable, **word_trtable; unsigned int context : 4; unsigned int halt : 1; /* If this state can accept "multi byte". Note that we refer to multibyte characters, and multi character collating elements as "multi byte". */ unsigned int accept_mb : 1; /* If this state has backreference node(s). */ unsigned int has_backref : 1; unsigned int has_constraint : 1; }; typedef struct re_dfastate_t re_dfastate_t; struct re_state_table_entry { Idx num; Idx alloc; re_dfastate_t **array; }; /* Array type used in re_sub_match_last_t and re_sub_match_top_t. */ typedef struct { Idx next_idx; Idx alloc; re_dfastate_t **array; } state_array_t; /* Store information about the node NODE whose type is OP_CLOSE_SUBEXP. */ typedef struct { Idx node; Idx str_idx; /* The position NODE match at. */ state_array_t path; } re_sub_match_last_t; /* Store information about the node NODE whose type is OP_OPEN_SUBEXP. And information about the node, whose type is OP_CLOSE_SUBEXP, corresponding to NODE is stored in LASTS. */ typedef struct { Idx str_idx; Idx node; state_array_t *path; Idx alasts; /* Allocation size of LASTS. */ Idx nlasts; /* The number of LASTS. */ re_sub_match_last_t **lasts; } re_sub_match_top_t; struct re_backref_cache_entry { Idx node; Idx str_idx; Idx subexp_from; Idx subexp_to; char more; char unused; unsigned short int eps_reachable_subexps_map; }; typedef struct { /* The string object corresponding to the input string. */ re_string_t input; #if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) const re_dfa_t *const dfa; #else const re_dfa_t *dfa; #endif /* EFLAGS of the argument of regexec. */ int eflags; /* Where the matching ends. */ Idx match_last; Idx last_node; /* The state log used by the matcher. */ re_dfastate_t **state_log; Idx state_log_top; /* Back reference cache. */ Idx nbkref_ents; Idx abkref_ents; struct re_backref_cache_entry *bkref_ents; int max_mb_elem_len; Idx nsub_tops; Idx asub_tops; re_sub_match_top_t **sub_tops; } re_match_context_t; typedef struct { re_dfastate_t **sifted_states; re_dfastate_t **limited_states; Idx last_node; Idx last_str_idx; re_node_set limits; } re_sift_context_t; struct re_fail_stack_ent_t { Idx idx; Idx node; regmatch_t *regs; re_node_set eps_via_nodes; }; struct re_fail_stack_t { Idx num; Idx alloc; struct re_fail_stack_ent_t *stack; }; struct re_dfa_t { re_token_t *nodes; size_t nodes_alloc; size_t nodes_len; Idx *nexts; Idx *org_indices; re_node_set *edests; re_node_set *eclosures; re_node_set *inveclosures; struct re_state_table_entry *state_table; re_dfastate_t *init_state; re_dfastate_t *init_state_word; re_dfastate_t *init_state_nl; re_dfastate_t *init_state_begbuf; bin_tree_t *str_tree; bin_tree_storage_t *str_tree_storage; re_bitset_ptr_t sb_char; int str_tree_storage_idx; /* number of subexpressions 're_nsub' is in regex_t. */ re_hashval_t state_hash_mask; Idx init_node; Idx nbackref; /* The number of backreference in this dfa. */ /* Bitmap expressing which backreference is used. */ bitset_word_t used_bkref_map; bitset_word_t completed_bkref_map; unsigned int has_plural_match : 1; /* If this dfa has "multibyte node", which is a backreference or a node which can accept multibyte character or multi character collating element. */ unsigned int has_mb_node : 1; unsigned int is_utf8 : 1; unsigned int map_notascii : 1; unsigned int word_ops_used : 1; int mb_cur_max; bitset_t word_char; reg_syntax_t syntax; Idx *subexp_map; #ifdef DEBUG char* re_str; #endif lock_define (lock) }; #define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set)) #define re_node_set_remove(set,id) \ (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1)) #define re_node_set_empty(p) ((p)->nelem = 0) #define re_node_set_free(set) re_free ((set)->elems) typedef enum { SB_CHAR, MB_CHAR, EQUIV_CLASS, COLL_SYM, CHAR_CLASS } bracket_elem_type; typedef struct { bracket_elem_type type; union { unsigned char ch; unsigned char *name; wchar_t wch; } opr; } bracket_elem_t; /* Functions for bitset_t operation. */ static inline void bitset_set (bitset_t set, Idx i) { set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS; } static inline void bitset_clear (bitset_t set, Idx i) { set[i / BITSET_WORD_BITS] &= ~ ((bitset_word_t) 1 << i % BITSET_WORD_BITS); } static inline bool bitset_contain (const bitset_t set, Idx i) { return (set[i / BITSET_WORD_BITS] >> i % BITSET_WORD_BITS) & 1; } static inline void bitset_empty (bitset_t set) { memset (set, '\0', sizeof (bitset_t)); } static inline void bitset_set_all (bitset_t set) { memset (set, -1, sizeof (bitset_word_t) * (SBC_MAX / BITSET_WORD_BITS)); if (SBC_MAX % BITSET_WORD_BITS != 0) set[BITSET_WORDS - 1] = ((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1; } static inline void bitset_copy (bitset_t dest, const bitset_t src) { memcpy (dest, src, sizeof (bitset_t)); } static inline void bitset_not (bitset_t set) { int bitset_i; for (bitset_i = 0; bitset_i < SBC_MAX / BITSET_WORD_BITS; ++bitset_i) set[bitset_i] = ~set[bitset_i]; if (SBC_MAX % BITSET_WORD_BITS != 0) set[BITSET_WORDS - 1] = ((((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1) & ~set[BITSET_WORDS - 1]); } static inline void bitset_merge (bitset_t dest, const bitset_t src) { int bitset_i; for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) dest[bitset_i] |= src[bitset_i]; } static inline void bitset_mask (bitset_t dest, const bitset_t src) { int bitset_i; for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) dest[bitset_i] &= src[bitset_i]; } #ifdef RE_ENABLE_I18N /* Functions for re_string. */ static int __attribute__ ((pure, unused)) re_string_char_size_at (const re_string_t *pstr, Idx idx) { int byte_idx; if (pstr->mb_cur_max == 1) return 1; for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx) if (pstr->wcs[idx + byte_idx] != WEOF) break; return byte_idx; } static wint_t __attribute__ ((pure, unused)) re_string_wchar_at (const re_string_t *pstr, Idx idx) { if (pstr->mb_cur_max == 1) return (wint_t) pstr->mbs[idx]; return (wint_t) pstr->wcs[idx]; } # ifdef _LIBC # include # endif static int __attribute__ ((pure, unused)) re_string_elem_size_at (const re_string_t *pstr, Idx idx) { # ifdef _LIBC const unsigned char *p, *extra; const int32_t *table, *indirect; uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); p = pstr->mbs + idx; findidx (table, indirect, extra, &p, pstr->len - idx); return p - pstr->mbs - idx; } else # endif /* _LIBC */ return 1; } #endif /* RE_ENABLE_I18N */ #ifndef __GNUC_PREREQ # if defined __GNUC__ && defined __GNUC_MINOR__ # define __GNUC_PREREQ(maj, min) \ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) # else # define __GNUC_PREREQ(maj, min) 0 # endif #endif #if __GNUC_PREREQ (3,4) # undef __attribute_warn_unused_result__ # define __attribute_warn_unused_result__ \ __attribute__ ((__warn_unused_result__)) #else # define __attribute_warn_unused_result__ /* empty */ #endif #ifndef FALLTHROUGH # if __GNUC__ < 7 # define FALLTHROUGH ((void) 0) # else # define FALLTHROUGH __attribute__ ((__fallthrough__)) # endif #endif #endif /* _REGEX_INTERNAL_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/relocatable.h0000644000000000000000000000011013726163410021431 xustar000000000000000024 mtime=1599661832.596 24 atime=1599661832.756 24 ctime=1599661999.098 libprelude-5.2.0/libmissing/relocatable.h0000644000000000000000000000760013726163410020437 0ustar00rootroot00000000000000/* Provide relocatable packages. Copyright (C) 2003, 2005, 2008-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2003. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _RELOCATABLE_H #define _RELOCATABLE_H #ifdef __cplusplus extern "C" { #endif /* This can be enabled through the configure --enable-relocatable option. */ #if ENABLE_RELOCATABLE /* When building a DLL, we must export some functions. Note that because this is a private .h file, we don't need to use __declspec(dllimport) in any case. */ #if HAVE_VISIBILITY && BUILDING_DLL # define RELOCATABLE_DLL_EXPORTED __attribute__((__visibility__("default"))) #elif defined _MSC_VER && BUILDING_DLL # define RELOCATABLE_DLL_EXPORTED __declspec(dllexport) #else # define RELOCATABLE_DLL_EXPORTED #endif /* Sets the original and the current installation prefix of the package. Relocation simply replaces a pathname starting with the original prefix by the corresponding pathname with the current prefix instead. Both prefixes should be directory names without trailing slash (i.e. use "" instead of "/"). */ extern RELOCATABLE_DLL_EXPORTED void set_relocation_prefix (const char *orig_prefix, const char *curr_prefix); /* Returns the pathname, relocated according to the current installation directory. The returned string is either PATHNAME unmodified or a freshly allocated string that you can free with free() after casting it to 'char *'. */ extern const char * relocate (const char *pathname); /* Returns the pathname, relocated according to the current installation directory. This function sets *ALLOCATEDP to the allocated memory, or to NULL if no memory allocation occurs. So that, after you're done with the return value, to reclaim allocated memory, you can do: free (*ALLOCATEDP). */ extern const char * relocate2 (const char *pathname, char **allocatedp); /* Memory management: relocate() potentially allocates memory, because it has to construct a fresh pathname. If this is a problem because your program calls relocate() frequently or because you want to fix all potential memory leaks anyway, you have three options: 1) Use this idiom: const char *pathname = ...; const char *rel_pathname = relocate (pathname); ... if (rel_pathname != pathname) free ((char *) rel_pathname); 2) Use this idiom: char *allocated; const char *rel_pathname = relocate2 (..., &allocated); ... free (allocated); 3) Think about caching the result. */ /* Convenience function: Computes the current installation prefix, based on the original installation prefix, the original installation directory of a particular file, and the current pathname of this file. Returns it, freshly allocated. Returns NULL upon failure. */ extern char * compute_curr_prefix (const char *orig_installprefix, const char *orig_installdir, const char *curr_pathname); #else /* By default, we use the hardwired pathnames. */ #define relocate(pathname) (pathname) #define relocate2(pathname,allocatedp) (*(allocatedp) = NULL, (pathname)) #endif #ifdef __cplusplus } #endif #endif /* _RELOCATABLE_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/relocatable.valgrind0000644000000000000000000000010613726163410023015 xustar000000000000000024 mtime=1599661832.596 24 atime=1599661832.757 22 ctime=1599661999.1 libprelude-5.2.0/libmissing/relocatable.valgrind0000644000000000000000000000027013726163410022012 0ustar00rootroot00000000000000# set_this_relocation_prefix leaks intentionally { relocatable/set_this_relocation_prefix Memcheck:Leak fun:malloc fun:set_this_relocation_prefix fun:set_relocation_prefix } libprelude-5.2.0/libmissing/PaxHeaders.14770/signal.in.h0000644000000000000000000000011013726163410021036 xustar000000000000000024 mtime=1599661832.597 24 atime=1599661832.757 24 ctime=1599661999.101 libprelude-5.2.0/libmissing/signal.in.h0000644000000000000000000003467613726163410020061 0ustar00rootroot00000000000000/* A GNU-like . Copyright (C) 2006-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_sig_atomic_t || defined __need_sigset_t || defined _GL_ALREADY_INCLUDING_SIGNAL_H || (defined _SIGNAL_H && !defined __SIZEOF_PTHREAD_MUTEX_T) /* Special invocation convention: - Inside glibc header files. - On glibc systems we have a sequence of nested includes -> -> . In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. - On glibc systems with GCC 4.3 we have a sequence of nested includes -> -> -> . In this situation, some of the functions are not yet declared, therefore we cannot provide the C++ aliases. */ # @INCLUDE_NEXT@ @NEXT_SIGNAL_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SIGNAL_H #define _GL_ALREADY_INCLUDING_SIGNAL_H /* Define pid_t, uid_t. Also, mingw defines sigset_t not in , but in . On Solaris 10, includes , which eventually includes us; so include now, before the second inclusion guard. */ #include /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SIGNAL_H@ #undef _GL_ALREADY_INCLUDING_SIGNAL_H #ifndef _@GUARD_PREFIX@_SIGNAL_H #define _@GUARD_PREFIX@_SIGNAL_H /* Mac OS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6, Android declare pthread_sigmask in , not in . But avoid namespace pollution on glibc systems.*/ #if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \ && ((defined __APPLE__ && defined __MACH__) \ || defined __FreeBSD__ || defined __OpenBSD__ || defined __osf__ \ || defined __sun || defined __ANDROID__) \ && ! defined __GLIBC__ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* On AIX, sig_atomic_t already includes volatile. C99 requires that 'volatile sig_atomic_t' ignore the extra modifier, but C89 did not. Hence, redefine this to a non-volatile type as needed. */ #if ! @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ # if !GNULIB_defined_sig_atomic_t typedef int rpl_sig_atomic_t; # undef sig_atomic_t # define sig_atomic_t rpl_sig_atomic_t # define GNULIB_defined_sig_atomic_t 1 # endif #endif /* A set or mask of signals. */ #if !@HAVE_SIGSET_T@ # if !GNULIB_defined_sigset_t typedef unsigned int sigset_t; # define GNULIB_defined_sigset_t 1 # endif #endif /* Define sighandler_t, the type of signal handlers. A GNU extension. */ #if !@HAVE_SIGHANDLER_T@ # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_sighandler_t typedef void (*sighandler_t) (int); # define GNULIB_defined_sighandler_t 1 # endif # ifdef __cplusplus } # endif #endif #if @GNULIB_SIGNAL_H_SIGPIPE@ # ifndef SIGPIPE /* Define SIGPIPE to a value that does not overlap with other signals. */ # define SIGPIPE 13 # define GNULIB_defined_SIGPIPE 1 /* To actually use SIGPIPE, you also need the gnulib modules 'sigprocmask', 'write', 'stdio'. */ # endif #endif /* Maximum signal number + 1. */ #ifndef NSIG # if defined __TANDEM # define NSIG 32 # endif #endif #if @GNULIB_PTHREAD_SIGMASK@ # if @REPLACE_PTHREAD_SIGMASK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pthread_sigmask # define pthread_sigmask rpl_pthread_sigmask # endif _GL_FUNCDECL_RPL (pthread_sigmask, int, (int how, const sigset_t *new_mask, sigset_t *old_mask)); _GL_CXXALIAS_RPL (pthread_sigmask, int, (int how, const sigset_t *new_mask, sigset_t *old_mask)); # else # if !(@HAVE_PTHREAD_SIGMASK@ || defined pthread_sigmask) _GL_FUNCDECL_SYS (pthread_sigmask, int, (int how, const sigset_t *new_mask, sigset_t *old_mask)); # endif _GL_CXXALIAS_SYS (pthread_sigmask, int, (int how, const sigset_t *new_mask, sigset_t *old_mask)); # endif _GL_CXXALIASWARN (pthread_sigmask); #elif defined GNULIB_POSIXCHECK # undef pthread_sigmask # if HAVE_RAW_DECL_PTHREAD_SIGMASK _GL_WARN_ON_USE (pthread_sigmask, "pthread_sigmask is not portable - " "use gnulib module pthread_sigmask for portability"); # endif #endif #if @GNULIB_RAISE@ # if @REPLACE_RAISE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef raise # define raise rpl_raise # endif _GL_FUNCDECL_RPL (raise, int, (int sig)); _GL_CXXALIAS_RPL (raise, int, (int sig)); # else # if !@HAVE_RAISE@ _GL_FUNCDECL_SYS (raise, int, (int sig)); # endif _GL_CXXALIAS_SYS (raise, int, (int sig)); # endif _GL_CXXALIASWARN (raise); #elif defined GNULIB_POSIXCHECK # undef raise /* Assume raise is always declared. */ _GL_WARN_ON_USE (raise, "raise can crash on native Windows - " "use gnulib module raise for portability"); #endif #if @GNULIB_SIGPROCMASK@ # if !@HAVE_POSIX_SIGNALBLOCKING@ # ifndef GNULIB_defined_signal_blocking # define GNULIB_defined_signal_blocking 1 # endif /* Maximum signal number + 1. */ # ifndef NSIG # define NSIG 32 # endif /* This code supports only 32 signals. */ # if !GNULIB_defined_verify_NSIG_constraint typedef int verify_NSIG_constraint[NSIG <= 32 ? 1 : -1]; # define GNULIB_defined_verify_NSIG_constraint 1 # endif # endif /* When also using extern inline, suppress the use of static inline in standard headers of problematic Apple configurations, as Libc at least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., . Perhaps Apple will fix this some day. */ #if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ && (defined __i386__ || defined __x86_64__)) # undef sigaddset # undef sigdelset # undef sigemptyset # undef sigfillset # undef sigismember #endif /* Test whether a given signal is contained in a signal set. */ # if @HAVE_POSIX_SIGNALBLOCKING@ /* This function is defined as a macro on Mac OS X. */ # if defined __cplusplus && defined GNULIB_NAMESPACE # undef sigismember # endif # else _GL_FUNCDECL_SYS (sigismember, int, (const sigset_t *set, int sig) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (sigismember, int, (const sigset_t *set, int sig)); _GL_CXXALIASWARN (sigismember); /* Initialize a signal set to the empty set. */ # if @HAVE_POSIX_SIGNALBLOCKING@ /* This function is defined as a macro on Mac OS X. */ # if defined __cplusplus && defined GNULIB_NAMESPACE # undef sigemptyset # endif # else _GL_FUNCDECL_SYS (sigemptyset, int, (sigset_t *set) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (sigemptyset, int, (sigset_t *set)); _GL_CXXALIASWARN (sigemptyset); /* Add a signal to a signal set. */ # if @HAVE_POSIX_SIGNALBLOCKING@ /* This function is defined as a macro on Mac OS X. */ # if defined __cplusplus && defined GNULIB_NAMESPACE # undef sigaddset # endif # else _GL_FUNCDECL_SYS (sigaddset, int, (sigset_t *set, int sig) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (sigaddset, int, (sigset_t *set, int sig)); _GL_CXXALIASWARN (sigaddset); /* Remove a signal from a signal set. */ # if @HAVE_POSIX_SIGNALBLOCKING@ /* This function is defined as a macro on Mac OS X. */ # if defined __cplusplus && defined GNULIB_NAMESPACE # undef sigdelset # endif # else _GL_FUNCDECL_SYS (sigdelset, int, (sigset_t *set, int sig) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (sigdelset, int, (sigset_t *set, int sig)); _GL_CXXALIASWARN (sigdelset); /* Fill a signal set with all possible signals. */ # if @HAVE_POSIX_SIGNALBLOCKING@ /* This function is defined as a macro on Mac OS X. */ # if defined __cplusplus && defined GNULIB_NAMESPACE # undef sigfillset # endif # else _GL_FUNCDECL_SYS (sigfillset, int, (sigset_t *set) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (sigfillset, int, (sigset_t *set)); _GL_CXXALIASWARN (sigfillset); /* Return the set of those blocked signals that are pending. */ # if !@HAVE_POSIX_SIGNALBLOCKING@ _GL_FUNCDECL_SYS (sigpending, int, (sigset_t *set) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (sigpending, int, (sigset_t *set)); _GL_CXXALIASWARN (sigpending); /* If OLD_SET is not NULL, put the current set of blocked signals in *OLD_SET. Then, if SET is not NULL, affect the current set of blocked signals by combining it with *SET as indicated in OPERATION. In this implementation, you are not allowed to change a signal handler while the signal is blocked. */ # if !@HAVE_POSIX_SIGNALBLOCKING@ # define SIG_BLOCK 0 /* blocked_set = blocked_set | *set; */ # define SIG_SETMASK 1 /* blocked_set = *set; */ # define SIG_UNBLOCK 2 /* blocked_set = blocked_set & ~*set; */ _GL_FUNCDECL_SYS (sigprocmask, int, (int operation, const sigset_t *set, sigset_t *old_set)); # endif _GL_CXXALIAS_SYS (sigprocmask, int, (int operation, const sigset_t *set, sigset_t *old_set)); _GL_CXXALIASWARN (sigprocmask); /* Install the handler FUNC for signal SIG, and return the previous handler. */ # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_function_taking_int_returning_void_t typedef void (*_gl_function_taking_int_returning_void_t) (int); # define GNULIB_defined_function_taking_int_returning_void_t 1 # endif # ifdef __cplusplus } # endif # if !@HAVE_POSIX_SIGNALBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define signal rpl_signal # endif _GL_FUNCDECL_RPL (signal, _gl_function_taking_int_returning_void_t, (int sig, _gl_function_taking_int_returning_void_t func)); _GL_CXXALIAS_RPL (signal, _gl_function_taking_int_returning_void_t, (int sig, _gl_function_taking_int_returning_void_t func)); # else _GL_CXXALIAS_SYS (signal, _gl_function_taking_int_returning_void_t, (int sig, _gl_function_taking_int_returning_void_t func)); # endif _GL_CXXALIASWARN (signal); # if !@HAVE_POSIX_SIGNALBLOCKING@ && GNULIB_defined_SIGPIPE /* Raise signal SIGPIPE. */ _GL_EXTERN_C int _gl_raise_SIGPIPE (void); # endif #elif defined GNULIB_POSIXCHECK # undef sigaddset # if HAVE_RAW_DECL_SIGADDSET _GL_WARN_ON_USE (sigaddset, "sigaddset is unportable - " "use the gnulib module sigprocmask for portability"); # endif # undef sigdelset # if HAVE_RAW_DECL_SIGDELSET _GL_WARN_ON_USE (sigdelset, "sigdelset is unportable - " "use the gnulib module sigprocmask for portability"); # endif # undef sigemptyset # if HAVE_RAW_DECL_SIGEMPTYSET _GL_WARN_ON_USE (sigemptyset, "sigemptyset is unportable - " "use the gnulib module sigprocmask for portability"); # endif # undef sigfillset # if HAVE_RAW_DECL_SIGFILLSET _GL_WARN_ON_USE (sigfillset, "sigfillset is unportable - " "use the gnulib module sigprocmask for portability"); # endif # undef sigismember # if HAVE_RAW_DECL_SIGISMEMBER _GL_WARN_ON_USE (sigismember, "sigismember is unportable - " "use the gnulib module sigprocmask for portability"); # endif # undef sigpending # if HAVE_RAW_DECL_SIGPENDING _GL_WARN_ON_USE (sigpending, "sigpending is unportable - " "use the gnulib module sigprocmask for portability"); # endif # undef sigprocmask # if HAVE_RAW_DECL_SIGPROCMASK _GL_WARN_ON_USE (sigprocmask, "sigprocmask is unportable - " "use the gnulib module sigprocmask for portability"); # endif #endif /* @GNULIB_SIGPROCMASK@ */ #if @GNULIB_SIGACTION@ # if !@HAVE_SIGACTION@ # if !@HAVE_SIGINFO_T@ # if !GNULIB_defined_siginfo_types /* Present to allow compilation, but unsupported by gnulib. */ union sigval { int sival_int; void *sival_ptr; }; /* Present to allow compilation, but unsupported by gnulib. */ struct siginfo_t { int si_signo; int si_code; int si_errno; pid_t si_pid; uid_t si_uid; void *si_addr; int si_status; long si_band; union sigval si_value; }; typedef struct siginfo_t siginfo_t; # define GNULIB_defined_siginfo_types 1 # endif # endif /* !@HAVE_SIGINFO_T@ */ /* We assume that platforms which lack the sigaction() function also lack the 'struct sigaction' type, and vice versa. */ # if !GNULIB_defined_struct_sigaction struct sigaction { union { void (*_sa_handler) (int); /* Present to allow compilation, but unsupported by gnulib. POSIX says that implementations may, but not must, make sa_sigaction overlap with sa_handler, but we know of no implementation where they do not overlap. */ void (*_sa_sigaction) (int, siginfo_t *, void *); } _sa_func; sigset_t sa_mask; /* Not all POSIX flags are supported. */ int sa_flags; }; # define sa_handler _sa_func._sa_handler # define sa_sigaction _sa_func._sa_sigaction /* Unsupported flags are not present. */ # define SA_RESETHAND 1 # define SA_NODEFER 2 # define SA_RESTART 4 # define GNULIB_defined_struct_sigaction 1 # endif _GL_FUNCDECL_SYS (sigaction, int, (int, const struct sigaction *restrict, struct sigaction *restrict)); # elif !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ # define sa_sigaction sa_handler # endif /* !@HAVE_SIGACTION@, !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ */ _GL_CXXALIAS_SYS (sigaction, int, (int, const struct sigaction *restrict, struct sigaction *restrict)); _GL_CXXALIASWARN (sigaction); #elif defined GNULIB_POSIXCHECK # undef sigaction # if HAVE_RAW_DECL_SIGACTION _GL_WARN_ON_USE (sigaction, "sigaction is unportable - " "use the gnulib module sigaction for portability"); # endif #endif /* Some systems don't have SA_NODEFER. */ #ifndef SA_NODEFER # define SA_NODEFER 0 #endif #endif /* _@GUARD_PREFIX@_SIGNAL_H */ #endif /* _@GUARD_PREFIX@_SIGNAL_H */ #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/_Noreturn.h0000644000000000000000000000010713726163410021135 xustar000000000000000024 mtime=1599661832.532 23 atime=1599661832.74 24 ctime=1599661999.103 libprelude-5.2.0/libmissing/_Noreturn.h0000644000000000000000000000046213726163410020134 0ustar00rootroot00000000000000#if !defined _Noreturn && __STDC_VERSION__ < 201112 # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/arg-nonnull.h0000644000000000000000000000010713726163410021416 xustar000000000000000024 mtime=1599661832.533 23 atime=1599661832.74 24 ctime=1599661999.105 libprelude-5.2.0/libmissing/arg-nonnull.h0000644000000000000000000000233013726163410020411 0ustar00rootroot00000000000000/* A C macro for declaring that specific arguments must not be NULL. Copyright (C) 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools that the values passed as arguments n, ..., m must be non-NULL pointers. n = 1 stands for the first argument, n = 2 for the second argument etc. */ #ifndef _GL_ARG_NONNULL # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) # else # define _GL_ARG_NONNULL(params) # endif #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/c++defs.h0000644000000000000000000000011013726163410020366 xustar000000000000000024 mtime=1599661832.534 24 atime=1599661832.741 24 ctime=1599661999.107 libprelude-5.2.0/libmissing/c++defs.h0000644000000000000000000003415713726163410017403 0ustar00rootroot00000000000000/* C++ compatible function declaration macros. Copyright (C) 2010-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _GL_CXXDEFS_H #define _GL_CXXDEFS_H /* Begin/end the GNULIB_NAMESPACE namespace. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { # define _GL_END_NAMESPACE } #else # define _GL_BEGIN_NAMESPACE # define _GL_END_NAMESPACE #endif /* The three most frequent use cases of these macros are: * For providing a substitute for a function that is missing on some platforms, but is declared and works fine on the platforms on which it exists: #if @GNULIB_FOO@ # if !@HAVE_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on all platforms, but is broken/insufficient and needs to be replaced on some platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on some platforms but is broken/insufficient and needs to be replaced on some of them and is additionally either missing or undeclared on some other platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif */ /* _GL_EXTERN_C declaration; performs the declaration with C linkage. */ #if defined __cplusplus # define _GL_EXTERN_C extern "C" #else # define _GL_EXTERN_C extern #endif /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); declares a replacement function, named rpl_func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype rpl_func parameters_and_attributes /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); declares the system function, named func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype func parameters_and_attributes /* _GL_CXXALIAS_RPL (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to rpl_func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); Wrapping rpl_func in an object with an inline conversion operator avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is actually used in the program. */ #define _GL_CXXALIAS_RPL(func,rettype,parameters) \ _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return ::rpl_func; \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); except that the C function rpl_func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast(::rpl_func); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to the system provided function func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); Wrapping func in an object with an inline conversion operator avoids a reference to func unless GNULIB_NAMESPACE::func is actually used in the program. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return ::func; \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast(::func); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function is picked among a set of overloaded functions, namely the one with rettype2 and parameters2. Two consecutive casts are used to silence the "cannot find a match" and "invalid conversion" errors that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE /* The outer cast must be a reinterpret_cast. The inner cast: When the function is defined as a set of overloaded functions, it works as a static_cast<>, choosing the designated variant. When the function is defined as a single variant, it works as a reinterpret_cast<>. The parenthesized cast syntax works both ways. */ # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN (func); causes a warning to be emitted when ::func is used but not when GNULIB_NAMESPACE::func is used. func must be defined without overloaded variants. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN(func) \ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) # define _GL_CXXALIASWARN_1(func,namespace) \ _GL_CXXALIASWARN_2 (func, namespace) /* To work around GCC bug , we enable the warning only when not optimizing. */ # if !__OPTIMIZE__ # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_WARN_ON_USE (func, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN_2(func,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN(func) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); causes a warning to be emitted when the given overloaded variant of ::func is used but not when GNULIB_NAMESPACE::func is used. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ GNULIB_NAMESPACE) # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) /* To work around GCC bug , we enable the warning only when not optimizing. */ # if !__OPTIMIZE__ # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif #endif /* _GL_CXXDEFS_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/unused-parameter.h0000644000000000000000000000011013726163410022435 xustar000000000000000024 mtime=1599661832.653 24 atime=1599661832.771 24 ctime=1599661999.108 libprelude-5.2.0/libmissing/unused-parameter.h0000644000000000000000000000307213726163410021442 0ustar00rootroot00000000000000/* A C macro for declaring that specific function parameters are not used. Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter declarations for parameters that are not used. This helps to reduce warnings, such as from GCC -Wunused-parameter. The syntax is as follows: type param _GL_UNUSED_PARAMETER or more generally param_decl _GL_UNUSED_PARAMETER For example: int param _GL_UNUSED_PARAMETER int *(*param)(void) _GL_UNUSED_PARAMETER Other possible, but obscure and discouraged syntaxes: int _GL_UNUSED_PARAMETER *(*param)(void) _GL_UNUSED_PARAMETER int *(*param)(void) */ #ifndef _GL_UNUSED_PARAMETER # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_UNUSED_PARAMETER __attribute__ ((__unused__)) # else # define _GL_UNUSED_PARAMETER # endif #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/warn-on-use.h0000644000000000000000000000010713726163410021335 xustar000000000000000024 mtime=1599661832.656 24 atime=1599661832.773 23 ctime=1599661999.11 libprelude-5.2.0/libmissing/warn-on-use.h0000644000000000000000000001354013726163410020335 0ustar00rootroot00000000000000/* A C macro for emitting warnings if a function is used. Copyright (C) 2010-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* _GL_WARN_ON_USE (function, "literal string") issues a declaration for FUNCTION which will then trigger a compiler warning containing the text of "literal string" anywhere that function is called, if supported by the compiler. If the compiler does not support this feature, the macro expands to an unused extern declaration. _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the attribute used in _GL_WARN_ON_USE. If the compiler does not support this feature, it expands to empty. These macros are useful for marking a function as a potential portability trap, with the intent that "literal string" include instructions on the replacement function that should be used instead. _GL_WARN_ON_USE is for functions with 'extern' linkage. _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' linkage. However, one of the reasons that a function is a portability trap is if it has the wrong signature. Declaring FUNCTION with a different signature in C is a compilation error, so this macro must use the same type as any existing declaration so that programs that avoid the problematic FUNCTION do not fail to compile merely because they included a header that poisoned the function. But this implies that _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already have a declaration. Use of this macro implies that there must not be any other macro hiding the declaration of FUNCTION; but undefining FUNCTION first is part of the poisoning process anyway (although for symbols that are provided only via a macro, the result is a compilation error rather than a warning containing "literal string"). Also note that in C++, it is only safe to use if FUNCTION has no overloads. For an example, it is possible to poison 'getline' by: - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], [getline]) in configure.ac, which potentially defines HAVE_RAW_DECL_GETLINE - adding this code to a header that wraps the system : #undef getline #if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" "not universally present; use the gnulib module getline"); #endif It is not possible to directly poison global variables. But it is possible to write a wrapper accessor function, and poison that (less common usage, like &environ, will cause a compilation error rather than issue the nice warning, but the end result of informing the developer about their portability problem is still achieved): #if HAVE_RAW_DECL_ENVIRON static char *** rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); # undef environ # define environ (*rpl_environ ()) #endif or better (avoiding contradictory use of 'static' and 'extern'): #if HAVE_RAW_DECL_ENVIRON static char *** _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") rpl_environ (void) { return &environ; } # undef environ # define environ (*rpl_environ ()) #endif */ #ifndef _GL_WARN_ON_USE # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) /* A compiler attribute is available in gcc versions 4.3.0 and later. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function __attribute__ ((__warning__ (message))) # define _GL_WARN_ON_USE_ATTRIBUTE(message) \ __attribute__ ((__warning__ (message))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function # define _GL_WARN_ON_USE_ATTRIBUTE(message) # else /* Unsupported. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # define _GL_WARN_ON_USE_ATTRIBUTE(message) # endif #endif /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string") is like _GL_WARN_ON_USE (function, "string"), except that the function is declared with the given prototype, consisting of return type, parameters, and attributes. This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does not work in this case. */ #ifndef _GL_WARN_ON_USE_CXX # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ extern rettype function parameters_and_attributes \ __attribute__ ((__warning__ (msg))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ extern rettype function parameters_and_attributes # else /* Unsupported. */ # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # endif #endif /* _GL_WARN_EXTERN_C declaration; performs the declaration with C linkage. */ #ifndef _GL_WARN_EXTERN_C # if defined __cplusplus # define _GL_WARN_EXTERN_C extern "C" # else # define _GL_WARN_EXTERN_C extern # endif #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/stat-time.h0000644000000000000000000000011013726163410021063 xustar000000000000000024 mtime=1599661832.599 24 atime=1599661832.757 24 ctime=1599661999.112 libprelude-5.2.0/libmissing/stat-time.h0000644000000000000000000001705013726163410020071 0ustar00rootroot00000000000000/* stat-related time functions. Copyright (C) 2005, 2007, 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paul Eggert. */ #ifndef STAT_TIME_H #define STAT_TIME_H 1 #include "intprops.h" #include #include #include #include #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_STAT_TIME_INLINE # define _GL_STAT_TIME_INLINE _GL_INLINE #endif #ifdef __cplusplus extern "C" { #endif /* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type struct timespec, if available. If not, then STAT_TIMESPEC_NS (ST, ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST, if available. ST_XTIM can be st_atim, st_ctim, st_mtim, or st_birthtim for access, status change, data modification, or birth (creation) time respectively. These macros are private to stat-time.h. */ #if _GL_WINDOWS_STAT_TIMESPEC || defined HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC # if _GL_WINDOWS_STAT_TIMESPEC || defined TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC # define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim) # else # define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.tv_nsec) # endif #elif defined HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC # define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim##espec) #elif defined HAVE_STRUCT_STAT_ST_ATIMENSEC # define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim##ensec) #elif defined HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC # define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.st__tim.tv_nsec) #endif /* Return the nanosecond component of *ST's access time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_atime_ns (struct stat const *st) { # if defined STAT_TIMESPEC return STAT_TIMESPEC (st, st_atim).tv_nsec; # elif defined STAT_TIMESPEC_NS return STAT_TIMESPEC_NS (st, st_atim); # else return 0; # endif } /* Return the nanosecond component of *ST's status change time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_ctime_ns (struct stat const *st) { # if defined STAT_TIMESPEC return STAT_TIMESPEC (st, st_ctim).tv_nsec; # elif defined STAT_TIMESPEC_NS return STAT_TIMESPEC_NS (st, st_ctim); # else return 0; # endif } /* Return the nanosecond component of *ST's data modification time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_mtime_ns (struct stat const *st) { # if defined STAT_TIMESPEC return STAT_TIMESPEC (st, st_mtim).tv_nsec; # elif defined STAT_TIMESPEC_NS return STAT_TIMESPEC_NS (st, st_mtim); # else return 0; # endif } /* Return the nanosecond component of *ST's birth time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE get_stat_birthtime_ns (struct stat const *st _GL_UNUSED) { # if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC return STAT_TIMESPEC (st, st_birthtim).tv_nsec; # elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC return STAT_TIMESPEC_NS (st, st_birthtim); # else return 0; # endif } /* Return *ST's access time. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_atime (struct stat const *st) { #ifdef STAT_TIMESPEC return STAT_TIMESPEC (st, st_atim); #else struct timespec t; t.tv_sec = st->st_atime; t.tv_nsec = get_stat_atime_ns (st); return t; #endif } /* Return *ST's status change time. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_ctime (struct stat const *st) { #ifdef STAT_TIMESPEC return STAT_TIMESPEC (st, st_ctim); #else struct timespec t; t.tv_sec = st->st_ctime; t.tv_nsec = get_stat_ctime_ns (st); return t; #endif } /* Return *ST's data modification time. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_mtime (struct stat const *st) { #ifdef STAT_TIMESPEC return STAT_TIMESPEC (st, st_mtim); #else struct timespec t; t.tv_sec = st->st_mtime; t.tv_nsec = get_stat_mtime_ns (st); return t; #endif } /* Return *ST's birth time, if available; otherwise return a value with tv_sec and tv_nsec both equal to -1. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE get_stat_birthtime (struct stat const *st _GL_UNUSED) { struct timespec t; #if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC) t = STAT_TIMESPEC (st, st_birthtim); #elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC t.tv_sec = st->st_birthtime; t.tv_nsec = st->st_birthtimensec; #elif defined _WIN32 && ! defined __CYGWIN__ /* Native Windows platforms (but not Cygwin) put the "file creation time" in st_ctime (!). See . */ # if _GL_WINDOWS_STAT_TIMESPEC t = st->st_ctim; # else t.tv_sec = st->st_ctime; t.tv_nsec = 0; # endif #else /* Birth time is not supported. */ t.tv_sec = -1; t.tv_nsec = -1; #endif #if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC \ || defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC) /* FreeBSD and NetBSD sometimes signal the absence of knowledge by using zero. Attempt to work around this problem. Alas, this can report failure even for valid timestamps. Also, NetBSD sometimes returns junk in the birth time fields; work around this bug if it is detected. */ if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000)) { t.tv_sec = -1; t.tv_nsec = -1; } #endif return t; } /* If a stat-like function returned RESULT, normalize the timestamps in *ST, in case this platform suffers from the Solaris 11 bug where tv_nsec might be negative. Return the adjusted RESULT, setting errno to EOVERFLOW if normalization overflowed. This function is intended to be private to this .h file. */ _GL_STAT_TIME_INLINE int stat_time_normalize (int result, struct stat *st _GL_UNUSED) { #if defined __sun && defined STAT_TIMESPEC if (result == 0) { long int timespec_resolution = 1000000000; short int const ts_off[] = { offsetof (struct stat, st_atim), offsetof (struct stat, st_mtim), offsetof (struct stat, st_ctim) }; int i; for (i = 0; i < sizeof ts_off / sizeof *ts_off; i++) { struct timespec *ts = (struct timespec *) ((char *) st + ts_off[i]); long int q = ts->tv_nsec / timespec_resolution; long int r = ts->tv_nsec % timespec_resolution; if (r < 0) { r += timespec_resolution; q--; } ts->tv_nsec = r; /* Overflow is possible, as Solaris 11 stat can yield tv_sec == TYPE_MINIMUM (time_t) && tv_nsec == -1000000000. INT_ADD_WRAPV is OK, since time_t is signed on Solaris. */ if (INT_ADD_WRAPV (q, ts->tv_sec, &ts->tv_sec)) { errno = EOVERFLOW; return -1; } } } #endif return result; } #ifdef __cplusplus } #endif _GL_INLINE_HEADER_END #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/stdalign.in.h0000644000000000000000000000011013726163410021366 xustar000000000000000024 mtime=1599661832.599 24 atime=1599661832.757 24 ctime=1599661999.114 libprelude-5.2.0/libmissing/stdalign.in.h0000644000000000000000000001121713726163410020373 0ustar00rootroot00000000000000/* A substitute for ISO C11 . Copyright 2011-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Paul Eggert and Bruno Haible. */ #ifndef _GL_STDALIGN_H #define _GL_STDALIGN_H /* ISO C11 for platforms that lack it. References: ISO C11 (latest free draft ) sections 6.5.3.4, 6.7.5, 7.15. C++11 (latest free draft ) section 18.10. */ /* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment requirement of a structure member (i.e., slot or field) that is of type TYPE, as an integer constant expression. This differs from GCC's __alignof__ operator, which can yield a better-performing alignment for an object of that type. For example, on x86 with GCC, __alignof__ (double) and __alignof__ (long long) are 8, whereas alignof (double) and alignof (long long) are 4 unless the option '-malign-double' is used. The result cannot be used as a value for an 'enum' constant, if you want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. Include for offsetof. */ #include /* FreeBSD 9.1 , included by and lots of other standard headers, defines conflicting implementations of _Alignas and _Alignof that are no better than ours; override them. */ #undef _Alignas #undef _Alignof /* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023 . */ #if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9))) # ifdef __cplusplus # if 201103 <= __cplusplus # define _Alignof(type) alignof (type) # else template struct __alignof_helper { char __a; __t __b; }; # define _Alignof(type) offsetof (__alignof_helper, __b) # endif # else # define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) # endif #endif #if ! (defined __cplusplus && 201103 <= __cplusplus) # define alignof _Alignof #endif #define __alignof_is_defined 1 /* alignas (A), also known as _Alignas (A), aligns a variable or type to the alignment A, where A is an integer constant expression. For example: int alignas (8) foo; struct s { int a; int alignas (8) bar; }; aligns the address of FOO and the offset of BAR to be multiples of 8. A should be a power of two that is at least the type's alignment and at most the implementation's alignment limit. This limit is 2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable to MSVC through at least version 10.0, A should be an integer constant, as MSVC does not support expressions such as 1 << 3. To be portable to Sun C 5.11, do not align auto variables to anything stricter than their default alignment. The following C11 requirements are not supported here: - If A is zero, alignas has no effect. - alignas can be used multiple times; the strictest one wins. - alignas (TYPE) is equivalent to alignas (alignof (TYPE)). */ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 # if defined __cplusplus && 201103 <= __cplusplus # define _Alignas(a) alignas (a) # elif ((defined __APPLE__ && defined __MACH__ \ ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ : __GNUC__) \ || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__) # define _Alignas(a) __attribute__ ((__aligned__ (a))) # elif 1300 <= _MSC_VER # define _Alignas(a) __declspec (align (a)) # endif #endif #if ((defined _Alignas && ! (defined __cplusplus && 201103 <= __cplusplus)) \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # define alignas _Alignas #endif #if defined alignas || (defined __cplusplus && 201103 <= __cplusplus) # define __alignas_is_defined 1 #endif #endif /* _GL_STDALIGN_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/stdbool.in.h0000644000000000000000000000010613726163410021234 xustar000000000000000022 mtime=1599661832.6 24 atime=1599661832.757 24 ctime=1599661999.115 libprelude-5.2.0/libmissing/stdbool.in.h0000644000000000000000000001177713726163410020247 0ustar00rootroot00000000000000/* Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _GL_STDBOOL_H #define _GL_STDBOOL_H /* ISO C 99 for platforms that lack it. */ /* Usage suggestions: Programs that use should be aware of some limitations and standards compliance issues. Standards compliance: - must be #included before 'bool', 'false', 'true' can be used. - You cannot assume that sizeof (bool) == 1. - Programs should not undefine the macros bool, true, and false, as C99 lists that as an "obsolescent feature". Limitations of this substitute, when used in a C89 environment: - must be #included before the '_Bool' type can be used. - You cannot assume that _Bool is a typedef; it might be a macro. - Bit-fields of type 'bool' are not supported. Portable code should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. - In C99, casts and automatic conversions to '_Bool' or 'bool' are performed in such a way that every nonzero value gets converted to 'true', and zero gets converted to 'false'. This doesn't work with this substitute. With this substitute, only the values 0 and 1 give the expected result when converted to _Bool' or 'bool'. - C99 allows the use of (_Bool)0.0 in constant expressions, but this substitute cannot always provide this property. Also, it is suggested that programs use 'bool' rather than '_Bool'; this isn't required, but 'bool' is more common. */ /* 7.16. Boolean type and values */ /* BeOS already #defines false 0, true 1. We use the same definitions below, but temporarily we have to #undef them. */ #if defined __BEOS__ && !defined __HAIKU__ # include /* defines bool but not _Bool */ # undef false # undef true #endif #ifdef __cplusplus # define _Bool bool # define bool bool #else # if defined __BEOS__ && !defined __HAIKU__ /* A compiler known to have 'bool'. */ /* If the compiler already has both 'bool' and '_Bool', we can assume they are the same types. */ # if !@HAVE__BOOL@ typedef bool _Bool; # endif # else # if !defined __GNUC__ /* If @HAVE__BOOL@: Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when the built-in _Bool type is used. See https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html https://lists.gnu.org/r/bug-coreutils/2005-10/msg00086.html Similar bugs are likely with other compilers as well; this file wouldn't be used if was working. So we override the _Bool type. If !@HAVE__BOOL@: Need to define _Bool ourselves. As 'signed char' or as an enum type? Use of a typedef, with SunPRO C, leads to a stupid "warning: _Bool is a keyword in ISO C99". Use of an enum type, with IRIX cc, leads to a stupid "warning(1185): enumerated type mixed with another type". Even the existence of an enum type, without a typedef, "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. The only benefit of the enum, debuggability, is not important with these compilers. So use 'signed char' and no enum. */ # define _Bool signed char # else /* With this compiler, trust the _Bool type if the compiler has it. */ # if !@HAVE__BOOL@ /* For the sake of symbolic names in gdb, define true and false as enum constants, not only as macros. It is tempting to write typedef enum { false = 0, true = 1 } _Bool; so that gdb prints values of type 'bool' symbolically. But then values of type '_Bool' might promote to 'int' or 'unsigned int' (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int' (see ISO C 99 6.3.1.1.(2)). So add a negative value to the enum; this ensures that '_Bool' promotes to 'int'. */ typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool; # endif # endif # endif # define bool _Bool #endif /* The other macros must be usable in preprocessor directives. */ #ifdef __cplusplus # define false false # define true true #else # define false 0 # define true 1 #endif #define __bool_true_false_are_defined 1 #endif /* _GL_STDBOOL_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/stddef.in.h0000644000000000000000000000010613726163410021037 xustar000000000000000022 mtime=1599661832.6 24 atime=1599661832.757 24 ctime=1599661999.117 libprelude-5.2.0/libmissing/stddef.in.h0000644000000000000000000000751213726163410020042 0ustar00rootroot00000000000000/* A substitute for POSIX 2008 , for platforms that have issues. Copyright (C) 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Eric Blake. */ /* * POSIX 2008 for platforms that have issues. * */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_wchar_t || defined __need_size_t \ || defined __need_ptrdiff_t || defined __need_NULL \ || defined __need_wint_t /* Special invocation convention inside gcc header files. In particular, gcc provides a version of that blindly redefines NULL even when __need_wint_t was defined, even though wint_t is not normally provided by . Hence, we must remember if special invocation has ever been used to obtain wint_t, in which case we need to clean up NULL yet again. */ # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) # ifdef __need_wint_t # define _GL_STDDEF_WINT_T # endif # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ # endif #else /* Normal invocation convention. */ # ifndef _@GUARD_PREFIX@_STDDEF_H /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ # if (@REPLACE_NULL@ \ && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T)) # undef NULL # ifdef __cplusplus /* ISO C++ says that the macro NULL must expand to an integer constant expression, hence '((void *) 0)' is not allowed in C++. */ # if __GNUG__ >= 3 /* GNU C++ has a __null macro that behaves like an integer ('int' or 'long') but has the same size as a pointer. Use that, to avoid warnings. */ # define NULL __null # else # define NULL 0L # endif # else # define NULL ((void *) 0) # endif # endif # ifndef _@GUARD_PREFIX@_STDDEF_H # define _@GUARD_PREFIX@_STDDEF_H /* Some platforms lack wchar_t. */ #if !@HAVE_WCHAR_T@ # define wchar_t int #endif /* Some platforms lack max_align_t. The check for _GCC_MAX_ALIGN_T is a hack in case the configure-time test was done with g++ even though we are currently compiling with gcc. */ #if ! (@HAVE_MAX_ALIGN_T@ || defined _GCC_MAX_ALIGN_T) # if !GNULIB_defined_max_align_t /* On the x86, the maximum storage alignment of double, long, etc. is 4, but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8, and the C11 standard allows this. Work around this problem by using __alignof__ (which returns 8 for double) rather than _Alignof (which returns 4), and align each union member accordingly. */ # ifdef __GNUC__ # define _GL_STDDEF_ALIGNAS(type) \ __attribute__ ((__aligned__ (__alignof__ (type)))) # else # define _GL_STDDEF_ALIGNAS(type) /* */ # endif typedef union { char *__p _GL_STDDEF_ALIGNAS (char *); double __d _GL_STDDEF_ALIGNAS (double); long double __ld _GL_STDDEF_ALIGNAS (long double); long int __i _GL_STDDEF_ALIGNAS (long int); } rpl_max_align_t; # define max_align_t rpl_max_align_t # define GNULIB_defined_max_align_t 1 # endif #endif # endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */ #endif /* __need_XXX */ libprelude-5.2.0/libmissing/PaxHeaders.14770/stdint.in.h0000644000000000000000000000010613726163410021073 xustar000000000000000022 mtime=1599661832.6 24 atime=1599661832.758 24 ctime=1599661999.119 libprelude-5.2.0/libmissing/stdint.in.h0000644000000000000000000005424613726163410020104 0ustar00rootroot00000000000000/* Copyright (C) 2001-2002, 2004-2018 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* * ISO C 99 for platforms that lack it. * */ #ifndef _@GUARD_PREFIX@_STDINT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* When including a system file that in turn includes , use the system , not our substitute. This avoids problems with (for example) VMS, whose includes . */ #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* On Android (Bionic libc), includes this file before having defined 'time_t'. Therefore in this case avoid including other system header files; just include the system's . Ideally we should test __BIONIC__ here, but it is only defined after has been included; hence test __ANDROID__ instead. */ #if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #else /* Get those types that are already defined in other system include files, so that we can "#define int8_t signed char" below without worrying about a later system include file containing a "typedef signed char int8_t;" that will get messed up by our macro. Our macros should all be consistent with the system versions, except for the "fast" types and macros, which we recommend against using in public interfaces due to compiler differences. */ #if @HAVE_STDINT_H@ # if defined __sgi && ! defined __c99 /* Bypass IRIX's if in C89 mode, since it merely annoys users with "This header file is to be used only for c99 mode compilations" diagnostics. */ # define __STDINT_H__ # endif /* Some pre-C++11 implementations need this. */ # ifdef __cplusplus # ifndef __STDC_CONSTANT_MACROS # define __STDC_CONSTANT_MACROS 1 # endif # ifndef __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS 1 # endif # endif /* Other systems may have an incomplete or buggy . Include it before , since any "#include " in would reinclude us, skipping our contents because _@GUARD_PREFIX@_STDINT_H is defined. The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #endif #if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H #define _@GUARD_PREFIX@_STDINT_H /* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, LONG_MIN, LONG_MAX, ULONG_MAX, _GL_INTEGER_WIDTH. */ #include /* Override WINT_MIN and WINT_MAX if gnulib's or overrides wint_t. */ #if @GNULIB_OVERRIDES_WINT_T@ # undef WINT_MIN # undef WINT_MAX # define WINT_MIN 0x0U # define WINT_MAX 0xffffffffU #endif #if ! @HAVE_C99_STDINT_H@ /* defines some of the stdint.h types as well, on glibc, IRIX 6.5, and OpenBSD 3.8 (via ). AIX 5.2 isn't needed and causes troubles. Mac OS X 10.4.6 includes (which is us), but relies on the system definitions, so include after @NEXT_STDINT_H@. */ # if @HAVE_SYS_TYPES_H@ && ! defined _AIX # include # endif # if @HAVE_INTTYPES_H@ /* In OpenBSD 3.8, includes , which defines int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. also defines intptr_t and uintptr_t. */ # include # elif @HAVE_SYS_INTTYPES_H@ /* Solaris 7 has the types except the *_fast*_t types, and the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ # include # endif # if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ /* Linux libc4 >= 4.6.7 and libc5 have a that defines int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is included by . */ # include # endif # undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* Minimum and maximum values for an integer type under the usual assumption. Return an unspecified value if BITS == 0, adding a check to pacify picky compilers. */ /* These are separate macros, because if you try to merge these macros into a single one, HP-UX cc rejects the resulting expression in constant expressions. */ # define _STDINT_UNSIGNED_MIN(bits, zero) \ (zero) # define _STDINT_SIGNED_MIN(bits, zero) \ (~ _STDINT_MAX (1, bits, zero)) # define _STDINT_MAX(signed, bits, zero) \ (((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) #if !GNULIB_defined_stdint_types /* 7.18.1.1. Exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ # undef int8_t # undef uint8_t typedef signed char gl_int8_t; typedef unsigned char gl_uint8_t; # define int8_t gl_int8_t # define uint8_t gl_uint8_t # undef int16_t # undef uint16_t typedef short int gl_int16_t; typedef unsigned short int gl_uint16_t; # define int16_t gl_int16_t # define uint16_t gl_uint16_t # undef int32_t # undef uint32_t typedef int gl_int32_t; typedef unsigned int gl_uint32_t; # define int32_t gl_int32_t # define uint32_t gl_uint32_t /* If the system defines INT64_MAX, assume int64_t works. That way, if the underlying platform defines int64_t to be a 64-bit long long int, the code below won't mistakenly define it to be a 64-bit long int, which would mess up C++ name mangling. We must use #ifdef rather than #if, to avoid an error with HP-UX 10.20 cc. */ # ifdef INT64_MAX # define GL_INT64_T # else /* Do not undefine int64_t if gnulib is not being used with 64-bit types, since otherwise it breaks platforms like Tandem/NSK. */ # if LONG_MAX >> 31 >> 31 == 1 # undef int64_t typedef long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif defined _MSC_VER # undef int64_t typedef __int64 gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif @HAVE_LONG_LONG_INT@ # undef int64_t typedef long long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # endif # endif # ifdef UINT64_MAX # define GL_UINT64_T # else # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # undef uint64_t typedef unsigned long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif defined _MSC_VER # undef uint64_t typedef unsigned __int64 gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif @HAVE_UNSIGNED_LONG_LONG_INT@ # undef uint64_t typedef unsigned long long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # endif # endif /* Avoid collision with Solaris 2.5.1 etc. */ # define _UINT8_T # define _UINT32_T # define _UINT64_T /* 7.18.1.2. Minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ # undef int_least8_t # undef uint_least8_t # undef int_least16_t # undef uint_least16_t # undef int_least32_t # undef uint_least32_t # undef int_least64_t # undef uint_least64_t # define int_least8_t int8_t # define uint_least8_t uint8_t # define int_least16_t int16_t # define uint_least16_t uint16_t # define int_least32_t int32_t # define uint_least32_t uint32_t # ifdef GL_INT64_T # define int_least64_t int64_t # endif # ifdef GL_UINT64_T # define uint_least64_t uint64_t # endif /* 7.18.1.3. Fastest minimum-width integer types */ /* Note: Other substitutes may define these types differently. It is not recommended to use these types in public header files. */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. The following code normally uses types consistent with glibc, as that lessens the chance of incompatibility with older GNU hosts. */ # undef int_fast8_t # undef uint_fast8_t # undef int_fast16_t # undef uint_fast16_t # undef int_fast32_t # undef uint_fast32_t # undef int_fast64_t # undef uint_fast64_t typedef signed char gl_int_fast8_t; typedef unsigned char gl_uint_fast8_t; # ifdef __sun /* Define types compatible with SunOS 5.10, so that code compiled under earlier SunOS versions works with code compiled under SunOS 5.10. */ typedef int gl_int_fast32_t; typedef unsigned int gl_uint_fast32_t; # else typedef long int gl_int_fast32_t; typedef unsigned long int gl_uint_fast32_t; # endif typedef gl_int_fast32_t gl_int_fast16_t; typedef gl_uint_fast32_t gl_uint_fast16_t; # define int_fast8_t gl_int_fast8_t # define uint_fast8_t gl_uint_fast8_t # define int_fast16_t gl_int_fast16_t # define uint_fast16_t gl_uint_fast16_t # define int_fast32_t gl_int_fast32_t # define uint_fast32_t gl_uint_fast32_t # ifdef GL_INT64_T # define int_fast64_t int64_t # endif # ifdef GL_UINT64_T # define uint_fast64_t uint64_t # endif /* 7.18.1.4. Integer types capable of holding object pointers */ /* kLIBC's stdint.h defines _INTPTR_T_DECLARED and needs its own definitions of intptr_t and uintptr_t (which use int and unsigned) to avoid clashes with declarations of system functions like sbrk. */ # ifndef _INTPTR_T_DECLARED # undef intptr_t # undef uintptr_t typedef long int gl_intptr_t; typedef unsigned long int gl_uintptr_t; # define intptr_t gl_intptr_t # define uintptr_t gl_uintptr_t # endif /* 7.18.1.5. Greatest-width integer types */ /* Note: These types are compiler dependent. It may be unwise to use them in public header files. */ /* If the system defines INTMAX_MAX, assume that intmax_t works, and similarly for UINTMAX_MAX and uintmax_t. This avoids problems with assuming one type where another is used by the system. */ # ifndef INTMAX_MAX # undef INTMAX_C # undef intmax_t # if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 typedef long long int gl_intmax_t; # define intmax_t gl_intmax_t # elif defined GL_INT64_T # define intmax_t int64_t # else typedef long int gl_intmax_t; # define intmax_t gl_intmax_t # endif # endif # ifndef UINTMAX_MAX # undef UINTMAX_C # undef uintmax_t # if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 typedef unsigned long long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # elif defined GL_UINT64_T # define uintmax_t uint64_t # else typedef unsigned long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # endif # endif /* Verify that intmax_t and uintmax_t have the same size. Too much code breaks if this is not the case. If this check fails, the reason is likely to be found in the autoconf macros. */ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) ? 1 : -1]; # define GNULIB_defined_stdint_types 1 # endif /* !GNULIB_defined_stdint_types */ /* 7.18.2. Limits of specified-width integer types */ /* 7.18.2.1. Limits of exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ # undef INT8_MIN # undef INT8_MAX # undef UINT8_MAX # define INT8_MIN (~ INT8_MAX) # define INT8_MAX 127 # define UINT8_MAX 255 # undef INT16_MIN # undef INT16_MAX # undef UINT16_MAX # define INT16_MIN (~ INT16_MAX) # define INT16_MAX 32767 # define UINT16_MAX 65535 # undef INT32_MIN # undef INT32_MAX # undef UINT32_MAX # define INT32_MIN (~ INT32_MAX) # define INT32_MAX 2147483647 # define UINT32_MAX 4294967295U # if defined GL_INT64_T && ! defined INT64_MAX /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 evaluates the latter incorrectly in preprocessor expressions. */ # define INT64_MIN (- INTMAX_C (1) << 63) # define INT64_MAX INTMAX_C (9223372036854775807) # endif # if defined GL_UINT64_T && ! defined UINT64_MAX # define UINT64_MAX UINTMAX_C (18446744073709551615) # endif /* 7.18.2.2. Limits of minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ # undef INT_LEAST8_MIN # undef INT_LEAST8_MAX # undef UINT_LEAST8_MAX # define INT_LEAST8_MIN INT8_MIN # define INT_LEAST8_MAX INT8_MAX # define UINT_LEAST8_MAX UINT8_MAX # undef INT_LEAST16_MIN # undef INT_LEAST16_MAX # undef UINT_LEAST16_MAX # define INT_LEAST16_MIN INT16_MIN # define INT_LEAST16_MAX INT16_MAX # define UINT_LEAST16_MAX UINT16_MAX # undef INT_LEAST32_MIN # undef INT_LEAST32_MAX # undef UINT_LEAST32_MAX # define INT_LEAST32_MIN INT32_MIN # define INT_LEAST32_MAX INT32_MAX # define UINT_LEAST32_MAX UINT32_MAX # undef INT_LEAST64_MIN # undef INT_LEAST64_MAX # ifdef GL_INT64_T # define INT_LEAST64_MIN INT64_MIN # define INT_LEAST64_MAX INT64_MAX # endif # undef UINT_LEAST64_MAX # ifdef GL_UINT64_T # define UINT_LEAST64_MAX UINT64_MAX # endif /* 7.18.2.3. Limits of fastest minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. */ # undef INT_FAST8_MIN # undef INT_FAST8_MAX # undef UINT_FAST8_MAX # define INT_FAST8_MIN SCHAR_MIN # define INT_FAST8_MAX SCHAR_MAX # define UINT_FAST8_MAX UCHAR_MAX # undef INT_FAST16_MIN # undef INT_FAST16_MAX # undef UINT_FAST16_MAX # define INT_FAST16_MIN INT_FAST32_MIN # define INT_FAST16_MAX INT_FAST32_MAX # define UINT_FAST16_MAX UINT_FAST32_MAX # undef INT_FAST32_MIN # undef INT_FAST32_MAX # undef UINT_FAST32_MAX # ifdef __sun # define INT_FAST32_MIN INT_MIN # define INT_FAST32_MAX INT_MAX # define UINT_FAST32_MAX UINT_MAX # else # define INT_FAST32_MIN LONG_MIN # define INT_FAST32_MAX LONG_MAX # define UINT_FAST32_MAX ULONG_MAX # endif # undef INT_FAST64_MIN # undef INT_FAST64_MAX # ifdef GL_INT64_T # define INT_FAST64_MIN INT64_MIN # define INT_FAST64_MAX INT64_MAX # endif # undef UINT_FAST64_MAX # ifdef GL_UINT64_T # define UINT_FAST64_MAX UINT64_MAX # endif /* 7.18.2.4. Limits of integer types capable of holding object pointers */ # undef INTPTR_MIN # undef INTPTR_MAX # undef UINTPTR_MAX # define INTPTR_MIN LONG_MIN # define INTPTR_MAX LONG_MAX # define UINTPTR_MAX ULONG_MAX /* 7.18.2.5. Limits of greatest-width integer types */ # ifndef INTMAX_MAX # undef INTMAX_MIN # ifdef INT64_MAX # define INTMAX_MIN INT64_MIN # define INTMAX_MAX INT64_MAX # else # define INTMAX_MIN INT32_MIN # define INTMAX_MAX INT32_MAX # endif # endif # ifndef UINTMAX_MAX # ifdef UINT64_MAX # define UINTMAX_MAX UINT64_MAX # else # define UINTMAX_MAX UINT32_MAX # endif # endif /* 7.18.3. Limits of other integer types */ /* ptrdiff_t limits */ # undef PTRDIFF_MIN # undef PTRDIFF_MAX # if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define PTRDIFF_MIN _STDINT_SIGNED_MIN (64, 0l) # define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) # else # define PTRDIFF_MIN _STDINT_SIGNED_MIN (32, 0) # define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) # endif # else # define PTRDIFF_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # define PTRDIFF_MAX \ _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # endif /* sig_atomic_t limits */ # undef SIG_ATOMIC_MIN # undef SIG_ATOMIC_MAX # if @HAVE_SIGNED_SIG_ATOMIC_T@ # define SIG_ATOMIC_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_SIG_ATOMIC_T@, 0@SIG_ATOMIC_T_SUFFIX@) # else # define SIG_ATOMIC_MIN \ _STDINT_UNSIGNED_MIN (@BITSIZEOF_SIG_ATOMIC_T@, 0@SIG_ATOMIC_T_SUFFIX@) # endif # define SIG_ATOMIC_MAX \ _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) /* size_t limit */ # undef SIZE_MAX # if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define SIZE_MAX _STDINT_MAX (0, 64, 0ul) # else # define SIZE_MAX _STDINT_MAX (0, 32, 0ul) # endif # else # define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) # endif /* wchar_t limits */ /* Get WCHAR_MIN, WCHAR_MAX. This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested includes -> -> -> , and the latter includes and assumes its types are already defined. */ # if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) /* BSD/OS 4.0.1 has a bug: , and must be included before . */ # include # include # include # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # include # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # endif # undef WCHAR_MIN # undef WCHAR_MAX # if @HAVE_SIGNED_WCHAR_T@ # define WCHAR_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) # else # define WCHAR_MIN \ _STDINT_UNSIGNED_MIN (@BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) # endif # define WCHAR_MAX \ _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) /* wint_t limits */ # undef WINT_MIN # undef WINT_MAX # if @HAVE_SIGNED_WINT_T@ # define WINT_MIN \ _STDINT_SIGNED_MIN (@BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) # else # define WINT_MIN \ _STDINT_UNSIGNED_MIN (@BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) # endif # define WINT_MAX \ _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) /* 7.18.4. Macros for integer constants */ /* 7.18.4.1. Macros for minimum-width integer constants */ /* According to ISO C 99 Technical Corrigendum 1 */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ # undef INT8_C # undef UINT8_C # define INT8_C(x) x # define UINT8_C(x) x # undef INT16_C # undef UINT16_C # define INT16_C(x) x # define UINT16_C(x) x # undef INT32_C # undef UINT32_C # define INT32_C(x) x # define UINT32_C(x) x ## U # undef INT64_C # undef UINT64_C # if LONG_MAX >> 31 >> 31 == 1 # define INT64_C(x) x##L # elif defined _MSC_VER # define INT64_C(x) x##i64 # elif @HAVE_LONG_LONG_INT@ # define INT64_C(x) x##LL # endif # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # define UINT64_C(x) x##UL # elif defined _MSC_VER # define UINT64_C(x) x##ui64 # elif @HAVE_UNSIGNED_LONG_LONG_INT@ # define UINT64_C(x) x##ULL # endif /* 7.18.4.2. Macros for greatest-width integer constants */ # ifndef INTMAX_C # if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define INTMAX_C(x) x##LL # elif defined GL_INT64_T # define INTMAX_C(x) INT64_C(x) # else # define INTMAX_C(x) x##L # endif # endif # ifndef UINTMAX_C # if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define UINTMAX_C(x) x##ULL # elif defined GL_UINT64_T # define UINTMAX_C(x) UINT64_C(x) # else # define UINTMAX_C(x) x##UL # endif # endif #endif /* !@HAVE_C99_STDINT_H@ */ /* Macros specified by ISO/IEC TS 18661-1:2014. */ #if (!defined UINTMAX_WIDTH \ && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) # ifdef INT8_MAX # define INT8_WIDTH _GL_INTEGER_WIDTH (INT8_MIN, INT8_MAX) # endif # ifdef UINT8_MAX # define UINT8_WIDTH _GL_INTEGER_WIDTH (0, UINT8_MAX) # endif # ifdef INT16_MAX # define INT16_WIDTH _GL_INTEGER_WIDTH (INT16_MIN, INT16_MAX) # endif # ifdef UINT16_MAX # define UINT16_WIDTH _GL_INTEGER_WIDTH (0, UINT16_MAX) # endif # ifdef INT32_MAX # define INT32_WIDTH _GL_INTEGER_WIDTH (INT32_MIN, INT32_MAX) # endif # ifdef UINT32_MAX # define UINT32_WIDTH _GL_INTEGER_WIDTH (0, UINT32_MAX) # endif # ifdef INT64_MAX # define INT64_WIDTH _GL_INTEGER_WIDTH (INT64_MIN, INT64_MAX) # endif # ifdef UINT64_MAX # define UINT64_WIDTH _GL_INTEGER_WIDTH (0, UINT64_MAX) # endif # define INT_LEAST8_WIDTH _GL_INTEGER_WIDTH (INT_LEAST8_MIN, INT_LEAST8_MAX) # define UINT_LEAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST8_MAX) # define INT_LEAST16_WIDTH _GL_INTEGER_WIDTH (INT_LEAST16_MIN, INT_LEAST16_MAX) # define UINT_LEAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST16_MAX) # define INT_LEAST32_WIDTH _GL_INTEGER_WIDTH (INT_LEAST32_MIN, INT_LEAST32_MAX) # define UINT_LEAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST32_MAX) # define INT_LEAST64_WIDTH _GL_INTEGER_WIDTH (INT_LEAST64_MIN, INT_LEAST64_MAX) # define UINT_LEAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST64_MAX) # define INT_FAST8_WIDTH _GL_INTEGER_WIDTH (INT_FAST8_MIN, INT_FAST8_MAX) # define UINT_FAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST8_MAX) # define INT_FAST16_WIDTH _GL_INTEGER_WIDTH (INT_FAST16_MIN, INT_FAST16_MAX) # define UINT_FAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST16_MAX) # define INT_FAST32_WIDTH _GL_INTEGER_WIDTH (INT_FAST32_MIN, INT_FAST32_MAX) # define UINT_FAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST32_MAX) # define INT_FAST64_WIDTH _GL_INTEGER_WIDTH (INT_FAST64_MIN, INT_FAST64_MAX) # define UINT_FAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST64_MAX) # define INTPTR_WIDTH _GL_INTEGER_WIDTH (INTPTR_MIN, INTPTR_MAX) # define UINTPTR_WIDTH _GL_INTEGER_WIDTH (0, UINTPTR_MAX) # define INTMAX_WIDTH _GL_INTEGER_WIDTH (INTMAX_MIN, INTMAX_MAX) # define UINTMAX_WIDTH _GL_INTEGER_WIDTH (0, UINTMAX_MAX) # define PTRDIFF_WIDTH _GL_INTEGER_WIDTH (PTRDIFF_MIN, PTRDIFF_MAX) # define SIZE_WIDTH _GL_INTEGER_WIDTH (0, SIZE_MAX) # define WCHAR_WIDTH _GL_INTEGER_WIDTH (WCHAR_MIN, WCHAR_MAX) # ifdef WINT_MAX # define WINT_WIDTH _GL_INTEGER_WIDTH (WINT_MIN, WINT_MAX) # endif # ifdef SIG_ATOMIC_MAX # define SIG_ATOMIC_WIDTH _GL_INTEGER_WIDTH (SIG_ATOMIC_MIN, SIG_ATOMIC_MAX) # endif #endif /* !WINT_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ #endif /* _@GUARD_PREFIX@_STDINT_H */ #endif /* !(defined __ANDROID__ && ...) */ #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/stdio.in.h0000644000000000000000000000010713726163410020711 xustar000000000000000024 mtime=1599661832.601 24 atime=1599661832.758 23 ctime=1599661999.12 libprelude-5.2.0/libmissing/stdio.in.h0000644000000000000000000014434213726163410017716 0ustar00rootroot00000000000000/* A GNU-like . Copyright (C) 2004, 2007-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H /* Special invocation convention: - Inside glibc header files. - On OSF/1 5.1 we have a sequence of nested includes -> -> -> -> -> -> -> . In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_STDIO_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDIO_H #define _GL_ALREADY_INCLUDING_STDIO_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDIO_H@ #undef _GL_ALREADY_INCLUDING_STDIO_H #ifndef _@GUARD_PREFIX@_STDIO_H #define _@GUARD_PREFIX@_STDIO_H /* Get va_list. Needed on many systems, including glibc 2.8. */ #include #include /* Get off_t and ssize_t. Needed on many systems, including glibc 2.8 and eglibc 2.11.2. May also define off_t to a 64-bit type on native Windows. */ #include /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) #else # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ #endif /* _GL_ATTRIBUTE_FORMAT_PRINTF indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument)) #else # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) #endif /* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF, except that it indicates to GCC that the supported format string directives are the ones of the system printf(), rather than the ones standardized by ISO C99 and POSIX. */ #if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU # define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT_PRINTF (formatstring_parameter, first_argument) #else # define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) #endif /* _GL_ATTRIBUTE_FORMAT_SCANF indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument)) #else # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) #endif /* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF, except that it indicates to GCC that the supported format string directives are the ones of the system scanf(), rather than the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) /* Solaris 10 and NetBSD 7.0 declare renameat in , not in . */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \ && ! defined __GLIBC__ # include #endif /* MSVC declares 'perror' in , not in . We must include it before we #define perror rpl_perror. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include #endif /* MSVC declares 'remove' in , not in . We must include it before we #define remove rpl_remove. */ /* MSVC declares 'rename' in , not in . We must include it before we #define rename rpl_rename. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Macros for stringification. */ #define _GL_STDIO_STRINGIZE(token) #token #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) /* When also using extern inline, suppress the use of static inline in standard headers of problematic Apple configurations, as Libc at least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., . Perhaps Apple will fix this some day. */ #if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ && defined __GNUC__ && defined __STDC__) # undef putc_unlocked #endif #if @GNULIB_DPRINTF@ # if @REPLACE_DPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dprintf rpl_dprintf # endif _GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...)); # else # if !@HAVE_DPRINTF@ _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...)); # endif _GL_CXXALIASWARN (dprintf); #elif defined GNULIB_POSIXCHECK # undef dprintf # if HAVE_RAW_DECL_DPRINTF _GL_WARN_ON_USE (dprintf, "dprintf is unportable - " "use gnulib module dprintf for portability"); # endif #endif #if @GNULIB_FCLOSE@ /* Close STREAM and its underlying file descriptor. */ # if @REPLACE_FCLOSE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fclose rpl_fclose # endif _GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fclose, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); # endif _GL_CXXALIASWARN (fclose); #elif defined GNULIB_POSIXCHECK # undef fclose /* Assume fclose is always declared. */ _GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - " "use gnulib module fclose for portable POSIX compliance"); #endif #if @GNULIB_FDOPEN@ # if @REPLACE_FDOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdopen # define fdopen rpl_fdopen # endif _GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); # else _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); # endif _GL_CXXALIASWARN (fdopen); #elif defined GNULIB_POSIXCHECK # undef fdopen /* Assume fdopen is always declared. */ _GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " "use gnulib module fdopen for portability"); #endif #if @GNULIB_FFLUSH@ /* Flush all pending data on STREAM according to POSIX rules. Both output and seekable input streams are supported. Note! LOSS OF DATA can occur if fflush is applied on an input stream that is _not_seekable_ or on an update stream that is _not_seekable_ and in which the most recent operation was input. Seekability can be tested with lseek(fileno(fp),0,SEEK_CUR). */ # if @REPLACE_FFLUSH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fflush rpl_fflush # endif _GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream)); _GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream)); # else _GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); # endif _GL_CXXALIASWARN (fflush); #elif defined GNULIB_POSIXCHECK # undef fflush /* Assume fflush is always declared. */ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " "use gnulib module fflush for portable POSIX compliance"); #endif #if @GNULIB_FGETC@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fgetc # define fgetc rpl_fgetc # endif _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); # endif _GL_CXXALIASWARN (fgetc); #endif #if @GNULIB_FGETS@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fgets # define fgets rpl_fgets # endif _GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream) _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream)); # else _GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream)); # endif _GL_CXXALIASWARN (fgets); #endif #if @GNULIB_FOPEN@ # if @REPLACE_FOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fopen # define fopen rpl_fopen # endif _GL_FUNCDECL_RPL (fopen, FILE *, (const char *filename, const char *mode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fopen, FILE *, (const char *filename, const char *mode)); # else _GL_CXXALIAS_SYS (fopen, FILE *, (const char *filename, const char *mode)); # endif _GL_CXXALIASWARN (fopen); #elif defined GNULIB_POSIXCHECK # undef fopen /* Assume fopen is always declared. */ _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " "use gnulib module fopen for portability"); #endif #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ # if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \ || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fprintf rpl_fprintf # endif # define GNULIB_overrides_fprintf 1 # if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # else _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...)); # else _GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...)); # endif _GL_CXXALIASWARN (fprintf); #endif #if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_fprintf # undef fprintf # endif /* Assume fprintf is always declared. */ _GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - " "use gnulib module fprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_FPURGE@ /* Discard all pending buffered I/O data on STREAM. STREAM must not be wide-character oriented. When discarding pending output, the file position is set back to where it was before the write calls. When discarding pending input, the file position is advanced to match the end of the previously read input. Return 0 if successful. Upon error, return -1 and set errno. */ # if @REPLACE_FPURGE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fpurge rpl_fpurge # endif _GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream)); # else # if !@HAVE_DECL_FPURGE@ _GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream)); # endif _GL_CXXALIASWARN (fpurge); #elif defined GNULIB_POSIXCHECK # undef fpurge # if HAVE_RAW_DECL_FPURGE _GL_WARN_ON_USE (fpurge, "fpurge is not always present - " "use gnulib module fpurge for portability"); # endif #endif #if @GNULIB_FPUTC@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputc # define fputc rpl_fputc # endif _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); # endif _GL_CXXALIASWARN (fputc); #endif #if @GNULIB_FPUTS@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputs # define fputs rpl_fputs # endif _GL_FUNCDECL_RPL (fputs, int, (const char *string, FILE *stream) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fputs, int, (const char *string, FILE *stream)); # else _GL_CXXALIAS_SYS (fputs, int, (const char *string, FILE *stream)); # endif _GL_CXXALIASWARN (fputs); #endif #if @GNULIB_FREAD@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fread # define fread rpl_fread # endif _GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream) _GL_ARG_NONNULL ((4))); _GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); # else _GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); # endif _GL_CXXALIASWARN (fread); #endif #if @GNULIB_FREOPEN@ # if @REPLACE_FREOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef freopen # define freopen rpl_freopen # endif _GL_FUNCDECL_RPL (freopen, FILE *, (const char *filename, const char *mode, FILE *stream) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (freopen, FILE *, (const char *filename, const char *mode, FILE *stream)); # else _GL_CXXALIAS_SYS (freopen, FILE *, (const char *filename, const char *mode, FILE *stream)); # endif _GL_CXXALIASWARN (freopen); #elif defined GNULIB_POSIXCHECK # undef freopen /* Assume freopen is always declared. */ _GL_WARN_ON_USE (freopen, "freopen on native Windows platforms is not POSIX compliant - " "use gnulib module freopen for portability"); #endif #if @GNULIB_FSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fscanf # define fscanf rpl_fscanf # endif _GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...)); # else _GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...)); # endif _GL_CXXALIASWARN (fscanf); #endif /* Set up the following warnings, based on which modules are in use. GNU Coding Standards discourage the use of fseek, since it imposes an arbitrary limitation on some 32-bit hosts. Remember that the fseek module depends on the fseeko module, so we only have three cases to consider: 1. The developer is not using either module. Issue a warning under GNULIB_POSIXCHECK for both functions, to remind them that both functions have bugs on some systems. _GL_NO_LARGE_FILES has no impact on this warning. 2. The developer is using both modules. They may be unaware of the arbitrary limitations of fseek, so issue a warning under GNULIB_POSIXCHECK. On the other hand, they may be using both modules intentionally, so the developer can define _GL_NO_LARGE_FILES in the compilation units where the use of fseek is safe, to silence the warning. 3. The developer is using the fseeko module, but not fseek. Gnulib guarantees that fseek will still work around platform bugs in that case, but we presume that the developer is aware of the pitfalls of fseek and was trying to avoid it, so issue a warning even when GNULIB_POSIXCHECK is undefined. Again, _GL_NO_LARGE_FILES can be defined to silence the warning in particular compilation units. In C++ compilations with GNULIB_NAMESPACE, in order to avoid that fseek gets defined as a macro, it is recommended that the developer uses the fseek module, even if he is not calling the fseek function. Most gnulib clients that perform stream operations should fall into category 3. */ #if @GNULIB_FSEEK@ # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES # define _GL_FSEEK_WARN /* Category 2, above. */ # undef fseek # endif # if @REPLACE_FSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fseek # define fseek rpl_fseek # endif _GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence)); # else _GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); # endif _GL_CXXALIASWARN (fseek); #endif #if @GNULIB_FSEEKO@ # if !@GNULIB_FSEEK@ && !defined _GL_NO_LARGE_FILES # define _GL_FSEEK_WARN /* Category 3, above. */ # undef fseek # endif # if @REPLACE_FSEEKO@ /* Provide an fseeko function that is aware of a preceding fflush(), and which detects pipes. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fseeko # define fseeko rpl_fseeko # endif _GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)); # else # if ! @HAVE_DECL_FSEEKO@ _GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)); # endif _GL_CXXALIASWARN (fseeko); #elif defined GNULIB_POSIXCHECK # define _GL_FSEEK_WARN /* Category 1, above. */ # undef fseek # undef fseeko # if HAVE_RAW_DECL_FSEEKO _GL_WARN_ON_USE (fseeko, "fseeko is unportable - " "use gnulib module fseeko for portability"); # endif #endif #ifdef _GL_FSEEK_WARN # undef _GL_FSEEK_WARN /* Here, either fseek is undefined (but C89 guarantees that it is declared), or it is defined as rpl_fseek (declared above). */ _GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB " "on 32-bit platforms - " "use fseeko function for handling of large files"); #endif /* ftell, ftello. See the comments on fseek/fseeko. */ #if @GNULIB_FTELL@ # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES # define _GL_FTELL_WARN /* Category 2, above. */ # undef ftell # endif # if @REPLACE_FTELL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftell # define ftell rpl_ftell # endif _GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); # else _GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); # endif _GL_CXXALIASWARN (ftell); #endif #if @GNULIB_FTELLO@ # if !@GNULIB_FTELL@ && !defined _GL_NO_LARGE_FILES # define _GL_FTELL_WARN /* Category 3, above. */ # undef ftell # endif # if @REPLACE_FTELLO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftello # define ftello rpl_ftello # endif _GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp)); # else # if ! @HAVE_DECL_FTELLO@ _GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp)); # endif _GL_CXXALIASWARN (ftello); #elif defined GNULIB_POSIXCHECK # define _GL_FTELL_WARN /* Category 1, above. */ # undef ftell # undef ftello # if HAVE_RAW_DECL_FTELLO _GL_WARN_ON_USE (ftello, "ftello is unportable - " "use gnulib module ftello for portability"); # endif #endif #ifdef _GL_FTELL_WARN # undef _GL_FTELL_WARN /* Here, either ftell is undefined (but C89 guarantees that it is declared), or it is defined as rpl_ftell (declared above). */ _GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB " "on 32-bit platforms - " "use ftello function for handling of large files"); #endif #if @GNULIB_FWRITE@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fwrite # define fwrite rpl_fwrite # endif _GL_FUNCDECL_RPL (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream) _GL_ARG_NONNULL ((1, 4))); _GL_CXXALIAS_RPL (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream)); # else _GL_CXXALIAS_SYS (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream)); /* Work around bug 11959 when fortifying glibc 2.4 through 2.15 , which sometimes causes an unwanted diagnostic for fwrite calls. This affects only function declaration attributes under certain versions of gcc and clang, and is not needed for C++. */ # if (0 < __USE_FORTIFY_LEVEL \ && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \ && 3 < __GNUC__ + (4 <= __GNUC_MINOR__) \ && !defined __cplusplus) # undef fwrite # undef fwrite_unlocked extern size_t __REDIRECT (rpl_fwrite, (const void *__restrict, size_t, size_t, FILE *__restrict), fwrite); extern size_t __REDIRECT (rpl_fwrite_unlocked, (const void *__restrict, size_t, size_t, FILE *__restrict), fwrite_unlocked); # define fwrite rpl_fwrite # define fwrite_unlocked rpl_fwrite_unlocked # endif # endif _GL_CXXALIASWARN (fwrite); #endif #if @GNULIB_GETC@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getc # define getc rpl_fgetc # endif _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (getc, int, (FILE *stream)); # endif _GL_CXXALIASWARN (getc); #endif #if @GNULIB_GETCHAR@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getchar # define getchar rpl_getchar # endif _GL_FUNCDECL_RPL (getchar, int, (void)); _GL_CXXALIAS_RPL (getchar, int, (void)); # else _GL_CXXALIAS_SYS (getchar, int, (void)); # endif _GL_CXXALIASWARN (getchar); #endif #if @GNULIB_GETDELIM@ /* Read input, up to (and including) the next occurrence of DELIMITER, from STREAM, store it in *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE bytes of space. It is realloc'd as necessary. Return the number of bytes read and stored at *LINEPTR (not including the NUL terminator), or -1 on error or EOF. */ # if @REPLACE_GETDELIM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdelim # define getdelim rpl_getdelim # endif _GL_FUNCDECL_RPL (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream) _GL_ARG_NONNULL ((1, 2, 4))); _GL_CXXALIAS_RPL (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream)); # else # if !@HAVE_DECL_GETDELIM@ _GL_FUNCDECL_SYS (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream) _GL_ARG_NONNULL ((1, 2, 4))); # endif _GL_CXXALIAS_SYS (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream)); # endif _GL_CXXALIASWARN (getdelim); #elif defined GNULIB_POSIXCHECK # undef getdelim # if HAVE_RAW_DECL_GETDELIM _GL_WARN_ON_USE (getdelim, "getdelim is unportable - " "use gnulib module getdelim for portability"); # endif #endif #if @GNULIB_GETLINE@ /* Read a line, up to (and including) the next newline, from STREAM, store it in *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE bytes of space. It is realloc'd as necessary. Return the number of bytes read and stored at *LINEPTR (not including the NUL terminator), or -1 on error or EOF. */ # if @REPLACE_GETLINE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getline # define getline rpl_getline # endif _GL_FUNCDECL_RPL (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream) _GL_ARG_NONNULL ((1, 2, 3))); _GL_CXXALIAS_RPL (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream)); # else # if !@HAVE_DECL_GETLINE@ _GL_FUNCDECL_SYS (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream)); # endif # if @HAVE_DECL_GETLINE@ _GL_CXXALIASWARN (getline); # endif #elif defined GNULIB_POSIXCHECK # undef getline # if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is unportable - " "use gnulib module getline for portability"); # endif #endif /* It is very rare that the developer ever has full control of stdin, so any use of gets warrants an unconditional warning; besides, C11 removed it. */ #undef gets #if HAVE_RAW_DECL_GETS && !defined __cplusplus _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); #endif #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ struct obstack; /* Grow an obstack with formatted output. Return the number of bytes added to OBS. No trailing nul byte is added, and the object should be closed with obstack_finish before use. Upon memory allocation error, call obstack_alloc_failed_handler. Upon other error, return -1. */ # if @REPLACE_OBSTACK_PRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define obstack_printf rpl_obstack_printf # endif _GL_FUNCDECL_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...)); # else # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...)); # endif _GL_CXXALIASWARN (obstack_printf); # if @REPLACE_OBSTACK_PRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define obstack_vprintf rpl_obstack_vprintf # endif _GL_FUNCDECL_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); # else # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); # endif _GL_CXXALIASWARN (obstack_vprintf); #endif #if @GNULIB_PCLOSE@ # if !@HAVE_PCLOSE@ _GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pclose, int, (FILE *stream)); _GL_CXXALIASWARN (pclose); #elif defined GNULIB_POSIXCHECK # undef pclose # if HAVE_RAW_DECL_PCLOSE _GL_WARN_ON_USE (pclose, "pclose is unportable - " "use gnulib module pclose for more portability"); # endif #endif #if @GNULIB_PERROR@ /* Print a message to standard error, describing the value of ERRNO, (if STRING is not NULL and not empty) prefixed with STRING and ": ", and terminated with a newline. */ # if @REPLACE_PERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define perror rpl_perror # endif _GL_FUNCDECL_RPL (perror, void, (const char *string)); _GL_CXXALIAS_RPL (perror, void, (const char *string)); # else _GL_CXXALIAS_SYS (perror, void, (const char *string)); # endif _GL_CXXALIASWARN (perror); #elif defined GNULIB_POSIXCHECK # undef perror /* Assume perror is always declared. */ _GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " "use gnulib module perror for portability"); #endif #if @GNULIB_POPEN@ # if @REPLACE_POPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef popen # define popen rpl_popen # endif _GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); # else # if !@HAVE_POPEN@ _GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); # endif _GL_CXXALIASWARN (popen); #elif defined GNULIB_POSIXCHECK # undef popen # if HAVE_RAW_DECL_POPEN _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " "use gnulib module popen or pipe for more portability"); # endif #endif #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if defined __GNUC__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) /* Don't break __attribute__((format(printf,M,N))). */ # define printf __printf__ # endif # if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define printf rpl_printf # endif _GL_FUNCDECL_RPL (printf, int, (const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (printf, int, (const char *format, ...)); # endif # define GNULIB_overrides_printf 1 # else _GL_CXXALIAS_SYS (printf, int, (const char *format, ...)); # endif _GL_CXXALIASWARN (printf); #endif #if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_printf # undef printf # endif /* Assume printf is always declared. */ _GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - " "use gnulib module printf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_PUTC@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putc # define putc rpl_fputc # endif _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); # endif _GL_CXXALIASWARN (putc); #endif #if @GNULIB_PUTCHAR@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putchar # define putchar rpl_putchar # endif _GL_FUNCDECL_RPL (putchar, int, (int c)); _GL_CXXALIAS_RPL (putchar, int, (int c)); # else _GL_CXXALIAS_SYS (putchar, int, (int c)); # endif _GL_CXXALIASWARN (putchar); #endif #if @GNULIB_PUTS@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef puts # define puts rpl_puts # endif _GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (puts, int, (const char *string)); # else _GL_CXXALIAS_SYS (puts, int, (const char *string)); # endif _GL_CXXALIASWARN (puts); #endif #if @GNULIB_REMOVE@ # if @REPLACE_REMOVE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef remove # define remove rpl_remove # endif _GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (remove, int, (const char *name)); # else _GL_CXXALIAS_SYS (remove, int, (const char *name)); # endif _GL_CXXALIASWARN (remove); #elif defined GNULIB_POSIXCHECK # undef remove /* Assume remove is always declared. */ _GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - " "use gnulib module remove for more portability"); #endif #if @GNULIB_RENAME@ # if @REPLACE_RENAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef rename # define rename rpl_rename # endif _GL_FUNCDECL_RPL (rename, int, (const char *old_filename, const char *new_filename) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (rename, int, (const char *old_filename, const char *new_filename)); # else _GL_CXXALIAS_SYS (rename, int, (const char *old_filename, const char *new_filename)); # endif _GL_CXXALIASWARN (rename); #elif defined GNULIB_POSIXCHECK # undef rename /* Assume rename is always declared. */ _GL_WARN_ON_USE (rename, "rename is buggy on some platforms - " "use gnulib module rename for more portability"); #endif #if @GNULIB_RENAMEAT@ # if @REPLACE_RENAMEAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef renameat # define renameat rpl_renameat # endif _GL_FUNCDECL_RPL (renameat, int, (int fd1, char const *file1, int fd2, char const *file2) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (renameat, int, (int fd1, char const *file1, int fd2, char const *file2)); # else # if !@HAVE_RENAMEAT@ _GL_FUNCDECL_SYS (renameat, int, (int fd1, char const *file1, int fd2, char const *file2) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (renameat, int, (int fd1, char const *file1, int fd2, char const *file2)); # endif _GL_CXXALIASWARN (renameat); #elif defined GNULIB_POSIXCHECK # undef renameat # if HAVE_RAW_DECL_RENAMEAT _GL_WARN_ON_USE (renameat, "renameat is not portable - " "use gnulib module renameat for portability"); # endif #endif #if @GNULIB_SCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if defined __GNUC__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf /* Don't break __attribute__((format(scanf,M,N))). */ # define scanf __scanf__ # endif _GL_FUNCDECL_RPL_1 (__scanf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf # define scanf rpl_scanf # endif _GL_FUNCDECL_RPL (scanf, int, (const char *format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (scanf, int, (const char *format, ...)); # endif # else _GL_CXXALIAS_SYS (scanf, int, (const char *format, ...)); # endif _GL_CXXALIASWARN (scanf); #endif #if @GNULIB_SNPRINTF@ # if @REPLACE_SNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define snprintf rpl_snprintf # endif _GL_FUNCDECL_RPL (snprintf, int, (char *str, size_t size, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (snprintf, int, (char *str, size_t size, const char *format, ...)); # else # if !@HAVE_DECL_SNPRINTF@ _GL_FUNCDECL_SYS (snprintf, int, (char *str, size_t size, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (snprintf, int, (char *str, size_t size, const char *format, ...)); # endif _GL_CXXALIASWARN (snprintf); #elif defined GNULIB_POSIXCHECK # undef snprintf # if HAVE_RAW_DECL_SNPRINTF _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " "use gnulib module snprintf for portability"); # endif #endif /* Some people would argue that all sprintf uses should be warned about (for example, OpenBSD issues a link warning for it), since it can cause security holes due to buffer overruns. However, we believe that sprintf can be used safely, and is more efficient than snprintf in those safe cases; and as proof of our belief, we use sprintf in several gnulib modules. So this header intentionally avoids adding a warning to sprintf except when GNULIB_POSIXCHECK is defined. */ #if @GNULIB_SPRINTF_POSIX@ # if @REPLACE_SPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define sprintf rpl_sprintf # endif _GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...)); # else _GL_CXXALIAS_SYS (sprintf, int, (char *str, const char *format, ...)); # endif _GL_CXXALIASWARN (sprintf); #elif defined GNULIB_POSIXCHECK # undef sprintf /* Assume sprintf is always declared. */ _GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - " "use gnulib module sprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_TMPFILE@ # if @REPLACE_TMPFILE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define tmpfile rpl_tmpfile # endif _GL_FUNCDECL_RPL (tmpfile, FILE *, (void)); _GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); # else _GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); # endif _GL_CXXALIASWARN (tmpfile); #elif defined GNULIB_POSIXCHECK # undef tmpfile # if HAVE_RAW_DECL_TMPFILE _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " "use gnulib module tmpfile for portability"); # endif #endif #if @GNULIB_VASPRINTF@ /* Write formatted output to a string dynamically allocated with malloc(). If the memory allocation succeeds, store the address of the string in *RESULT and return the number of resulting bytes, excluding the trailing NUL. Upon memory allocation error, or some other error, return -1. */ # if @REPLACE_VASPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define asprintf rpl_asprintf # endif _GL_FUNCDECL_RPL (asprintf, int, (char **result, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (asprintf, int, (char **result, const char *format, ...)); # else # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (asprintf, int, (char **result, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (asprintf, int, (char **result, const char *format, ...)); # endif _GL_CXXALIASWARN (asprintf); # if @REPLACE_VASPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vasprintf rpl_vasprintf # endif _GL_FUNCDECL_RPL (vasprintf, int, (char **result, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vasprintf, int, (char **result, const char *format, va_list args)); # else # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (vasprintf, int, (char **result, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (vasprintf, int, (char **result, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vasprintf); #endif #if @GNULIB_VDPRINTF@ # if @REPLACE_VDPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vdprintf rpl_vdprintf # endif _GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args)); # else # if !@HAVE_VDPRINTF@ _GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((2))); # endif /* Need to cast, because on Solaris, the third parameter will likely be __va_list args. */ _GL_CXXALIAS_SYS_CAST (vdprintf, int, (int fd, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vdprintf); #elif defined GNULIB_POSIXCHECK # undef vdprintf # if HAVE_RAW_DECL_VDPRINTF _GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - " "use gnulib module vdprintf for portability"); # endif #endif #if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@ # if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \ || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vfprintf rpl_vfprintf # endif # define GNULIB_overrides_vfprintf 1 # if @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # else _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vfprintf, int, (FILE *fp, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vfprintf); #endif #if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vfprintf # undef vfprintf # endif /* Assume vfprintf is always declared. */ _GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - " "use gnulib module vfprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_VFSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef vfscanf # define vfscanf rpl_vfscanf # endif _GL_FUNCDECL_RPL (vfscanf, int, (FILE *stream, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vfscanf, int, (FILE *stream, const char *format, va_list args)); # else _GL_CXXALIAS_SYS (vfscanf, int, (FILE *stream, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vfscanf); #endif #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ # if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \ || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vprintf rpl_vprintf # endif # define GNULIB_overrides_vprintf 1 # if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args)); # else /* Need to cast, because on Solaris, the second parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vprintf, int, (const char *format, va_list args)); # endif _GL_CXXALIASWARN (vprintf); #endif #if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vprintf # undef vprintf # endif /* Assume vprintf is always declared. */ _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " "use gnulib module vprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_VSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef vscanf # define vscanf rpl_vscanf # endif _GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args)); # else _GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args)); # endif _GL_CXXALIASWARN (vscanf); #endif #if @GNULIB_VSNPRINTF@ # if @REPLACE_VSNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsnprintf rpl_vsnprintf # endif _GL_FUNCDECL_RPL (vsnprintf, int, (char *str, size_t size, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (vsnprintf, int, (char *str, size_t size, const char *format, va_list args)); # else # if !@HAVE_DECL_VSNPRINTF@ _GL_FUNCDECL_SYS (vsnprintf, int, (char *str, size_t size, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (vsnprintf, int, (char *str, size_t size, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vsnprintf); #elif defined GNULIB_POSIXCHECK # undef vsnprintf # if HAVE_RAW_DECL_VSNPRINTF _GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - " "use gnulib module vsnprintf for portability"); # endif #endif #if @GNULIB_VSPRINTF_POSIX@ # if @REPLACE_VSPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsprintf rpl_vsprintf # endif _GL_FUNCDECL_RPL (vsprintf, int, (char *str, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vsprintf, int, (char *str, const char *format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vsprintf, int, (char *str, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vsprintf); #elif defined GNULIB_POSIXCHECK # undef vsprintf /* Assume vsprintf is always declared. */ _GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - " "use gnulib module vsprintf-posix for portable " "POSIX compliance"); #endif #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/stdlib.in.h0000644000000000000000000000011013726163410021042 xustar000000000000000024 mtime=1599661832.601 24 atime=1599661832.758 24 ctime=1599661999.122 libprelude-5.2.0/libmissing/stdlib.in.h0000644000000000000000000010514413726163410020052 0ustar00rootroot00000000000000/* A GNU-like . Copyright (C) 1995, 2001-2004, 2006-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_stdlib_h || defined __need_malloc_and_calloc /* Special invocation conventions inside some gnulib header files, and inside some glibc header files, respectively. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDLIB_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #ifndef _@GUARD_PREFIX@_STDLIB_H #define _@GUARD_PREFIX@_STDLIB_H /* NetBSD 5.0 mis-defines NULL. */ #include /* MirBSD 10 defines WEXITSTATUS in , not in . */ #if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS # include #endif /* Solaris declares getloadavg() in . */ #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@ /* OpenIndiana has a bug: must be included before . */ # include # include #endif /* Native Windows platforms declare mktemp() in . */ #if 0 && (defined _WIN32 && ! defined __CYGWIN__) # include #endif #if @GNULIB_RANDOM_R@ /* OSF/1 5.1 declares 'struct random_data' in , which is included from if _REENTRANT is defined. Include it whenever we need 'struct random_data'. */ # if @HAVE_RANDOM_H@ # include # endif # if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@ # include # endif # if !@HAVE_STRUCT_RANDOM_DATA@ /* Define 'struct random_data'. But allow multiple gnulib generated replacements to coexist. */ # if !GNULIB_defined_struct_random_data struct random_data { int32_t *fptr; /* Front pointer. */ int32_t *rptr; /* Rear pointer. */ int32_t *state; /* Array of state values. */ int rand_type; /* Type of random number generator. */ int rand_deg; /* Degree of random number generator. */ int rand_sep; /* Distance between front and rear. */ int32_t *end_ptr; /* Pointer behind state table. */ }; # define GNULIB_defined_struct_random_data 1 # endif # endif #endif #if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(defined _WIN32 && ! defined __CYGWIN__) /* On Mac OS X 10.3, only declares mkstemp. */ /* On Mac OS X 10.5, only declares mkstemps. */ /* On Cygwin 1.7.1, only declares getsubopt. */ /* But avoid namespace pollution on glibc systems and native Windows. */ # include #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The definition of _Noreturn is copied here. */ /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems do not define EXIT_*, despite otherwise supporting C89. */ #ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 #endif /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere with proper operation of xargs. */ #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #elif EXIT_FAILURE != 1 # undef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #if @GNULIB__EXIT@ /* Terminate the current process with the given return code, without running the 'atexit' handlers. */ # if !@HAVE__EXIT@ _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); # endif _GL_CXXALIAS_SYS (_Exit, void, (int status)); _GL_CXXALIASWARN (_Exit); #elif defined GNULIB_POSIXCHECK # undef _Exit # if HAVE_RAW_DECL__EXIT _GL_WARN_ON_USE (_Exit, "_Exit is unportable - " "use gnulib module _Exit for portability"); # endif #endif #if @GNULIB_ATOLL@ /* Parse a signed decimal integer. Returns the value of the integer. Errors are not detected. */ # if !@HAVE_ATOLL@ _GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (atoll, long long, (const char *string)); _GL_CXXALIASWARN (atoll); #elif defined GNULIB_POSIXCHECK # undef atoll # if HAVE_RAW_DECL_ATOLL _GL_WARN_ON_USE (atoll, "atoll is unportable - " "use gnulib module atoll for portability"); # endif #endif #if @GNULIB_CALLOC_POSIX@ # if @REPLACE_CALLOC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef calloc # define calloc rpl_calloc # endif _GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size)); _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); # else _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); # endif _GL_CXXALIASWARN (calloc); #elif defined GNULIB_POSIXCHECK # undef calloc /* Assume calloc is always declared. */ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " "use gnulib module calloc-posix for portability"); #endif #if @GNULIB_CANONICALIZE_FILE_NAME@ # if @REPLACE_CANONICALIZE_FILE_NAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define canonicalize_file_name rpl_canonicalize_file_name # endif _GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); # else # if !@HAVE_CANONICALIZE_FILE_NAME@ _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); # endif _GL_CXXALIASWARN (canonicalize_file_name); #elif defined GNULIB_POSIXCHECK # undef canonicalize_file_name # if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME _GL_WARN_ON_USE (canonicalize_file_name, "canonicalize_file_name is unportable - " "use gnulib module canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_GETLOADAVG@ /* Store max(NELEM,3) load average numbers in LOADAVG[]. The three numbers are the load average of the last 1 minute, the last 5 minutes, and the last 15 minutes, respectively. LOADAVG is an array of NELEM numbers. */ # if !@HAVE_DECL_GETLOADAVG@ _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); _GL_CXXALIASWARN (getloadavg); #elif defined GNULIB_POSIXCHECK # undef getloadavg # if HAVE_RAW_DECL_GETLOADAVG _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " "use gnulib module getloadavg for portability"); # endif #endif #if @GNULIB_GETSUBOPT@ /* Assuming *OPTIONP is a comma separated list of elements of the form "token" or "token=value", getsubopt parses the first of these elements. If the first element refers to a "token" that is member of the given NULL-terminated array of tokens: - It replaces the comma with a NUL byte, updates *OPTIONP to point past the first option and the comma, sets *VALUEP to the value of the element (or NULL if it doesn't contain an "=" sign), - It returns the index of the "token" in the given array of tokens. Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. For more details see the POSIX:2001 specification. http://www.opengroup.org/susv3xsh/getsubopt.html */ # if !@HAVE_GETSUBOPT@ _GL_FUNCDECL_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep)); _GL_CXXALIASWARN (getsubopt); #elif defined GNULIB_POSIXCHECK # undef getsubopt # if HAVE_RAW_DECL_GETSUBOPT _GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - " "use gnulib module getsubopt for portability"); # endif #endif #if @GNULIB_GRANTPT@ /* Change the ownership and access permission of the slave side of the pseudo-terminal whose master side is specified by FD. */ # if !@HAVE_GRANTPT@ _GL_FUNCDECL_SYS (grantpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (grantpt, int, (int fd)); _GL_CXXALIASWARN (grantpt); #elif defined GNULIB_POSIXCHECK # undef grantpt # if HAVE_RAW_DECL_GRANTPT _GL_WARN_ON_USE (grantpt, "grantpt is not portable - " "use gnulib module grantpt for portability"); # endif #endif /* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not rely on GNU or POSIX semantics for malloc and realloc (for example, by never specifying a zero size), so it does not need malloc or realloc to be redefined. */ #if @GNULIB_MALLOC_POSIX@ # if @REPLACE_MALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef malloc # define malloc rpl_malloc # endif _GL_FUNCDECL_RPL (malloc, void *, (size_t size)); _GL_CXXALIAS_RPL (malloc, void *, (size_t size)); # else _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); # endif _GL_CXXALIASWARN (malloc); #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef malloc /* Assume malloc is always declared. */ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " "use gnulib module malloc-posix for portability"); #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBTOWC@ # if @REPLACE_MBTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbtowc # define mbtowc rpl_mbtowc # endif _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # else _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # endif _GL_CXXALIASWARN (mbtowc); #endif #if @GNULIB_MKDTEMP@ /* Create a unique temporary directory from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the directory name unique. Returns TEMPLATE, or a null pointer if it cannot get a unique name. The directory is created mode 700. */ # if !@HAVE_MKDTEMP@ _GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/)); _GL_CXXALIASWARN (mkdtemp); #elif defined GNULIB_POSIXCHECK # undef mkdtemp # if HAVE_RAW_DECL_MKDTEMP _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " "use gnulib module mkdtemp for portability"); # endif #endif #if @GNULIB_MKOSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKOSTEMP@ _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); _GL_CXXALIASWARN (mkostemp); #elif defined GNULIB_POSIXCHECK # undef mkostemp # if HAVE_RAW_DECL_MKOSTEMP _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " "use gnulib module mkostemp for portability"); # endif #endif #if @GNULIB_MKOSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE before a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKOSTEMPS@ _GL_FUNCDECL_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/)); _GL_CXXALIASWARN (mkostemps); #elif defined GNULIB_POSIXCHECK # undef mkostemps # if HAVE_RAW_DECL_MKOSTEMPS _GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - " "use gnulib module mkostemps for portability"); # endif #endif #if @GNULIB_MKSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if @REPLACE_MKSTEMP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mkstemp rpl_mkstemp # endif _GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/)); # else # if ! @HAVE_MKSTEMP@ _GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/)); # endif _GL_CXXALIASWARN (mkstemp); #elif defined GNULIB_POSIXCHECK # undef mkstemp # if HAVE_RAW_DECL_MKSTEMP _GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - " "use gnulib module mkstemp for portability"); # endif #endif #if @GNULIB_MKSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE prior to a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKSTEMPS@ _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)); _GL_CXXALIASWARN (mkstemps); #elif defined GNULIB_POSIXCHECK # undef mkstemps # if HAVE_RAW_DECL_MKSTEMPS _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - " "use gnulib module mkstemps for portability"); # endif #endif #if @GNULIB_POSIX_OPENPT@ /* Return an FD open to the master side of a pseudo-terminal. Flags should include O_RDWR, and may also include O_NOCTTY. */ # if !@HAVE_POSIX_OPENPT@ _GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); # endif _GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); _GL_CXXALIASWARN (posix_openpt); #elif defined GNULIB_POSIXCHECK # undef posix_openpt # if HAVE_RAW_DECL_POSIX_OPENPT _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " "use gnulib module posix_openpt for portability"); # endif #endif #if @GNULIB_PTSNAME@ /* Return the pathname of the pseudo-terminal slave associated with the master FD is open on, or NULL on errors. */ # if @REPLACE_PTSNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname # define ptsname rpl_ptsname # endif _GL_FUNCDECL_RPL (ptsname, char *, (int fd)); _GL_CXXALIAS_RPL (ptsname, char *, (int fd)); # else # if !@HAVE_PTSNAME@ _GL_FUNCDECL_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIAS_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIASWARN (ptsname); #elif defined GNULIB_POSIXCHECK # undef ptsname # if HAVE_RAW_DECL_PTSNAME _GL_WARN_ON_USE (ptsname, "ptsname is not portable - " "use gnulib module ptsname for portability"); # endif #endif #if @GNULIB_PTSNAME_R@ /* Set the pathname of the pseudo-terminal slave associated with the master FD is open on and return 0, or set errno and return non-zero on errors. */ # if @REPLACE_PTSNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname_r # define ptsname_r rpl_ptsname_r # endif _GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); _GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); # else # if !@HAVE_PTSNAME_R@ _GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIASWARN (ptsname_r); #elif defined GNULIB_POSIXCHECK # undef ptsname_r # if HAVE_RAW_DECL_PTSNAME_R _GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " "use gnulib module ptsname_r for portability"); # endif #endif #if @GNULIB_PUTENV@ # if @REPLACE_PUTENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putenv # define putenv rpl_putenv # endif _GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (putenv, int, (char *string)); # else _GL_CXXALIAS_SYS (putenv, int, (char *string)); # endif _GL_CXXALIASWARN (putenv); #endif #if @GNULIB_QSORT_R@ /* Sort an array of NMEMB elements, starting at address BASE, each element occupying SIZE bytes, in ascending order according to the comparison function COMPARE. */ # if @REPLACE_QSORT_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef qsort_r # define qsort_r rpl_qsort_r # endif _GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, int (*compare) (void const *, void const *, void *), void *arg) _GL_ARG_NONNULL ((1, 4))); _GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, int (*compare) (void const *, void const *, void *), void *arg)); # else # if !@HAVE_QSORT_R@ _GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, int (*compare) (void const *, void const *, void *), void *arg) _GL_ARG_NONNULL ((1, 4))); # endif _GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, int (*compare) (void const *, void const *, void *), void *arg)); # endif _GL_CXXALIASWARN (qsort_r); #elif defined GNULIB_POSIXCHECK # undef qsort_r # if HAVE_RAW_DECL_QSORT_R _GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - " "use gnulib module qsort_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if !@HAVE_RANDOM_R@ # ifndef RAND_MAX # define RAND_MAX 2147483647 # endif # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (random, long, (void)); # endif _GL_CXXALIAS_SYS (random, long, (void)); _GL_CXXALIASWARN (random); #elif defined GNULIB_POSIXCHECK # undef random # if HAVE_RAW_DECL_RANDOM _GL_WARN_ON_USE (random, "random is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); # endif _GL_CXXALIAS_SYS (srandom, void, (unsigned int seed)); _GL_CXXALIASWARN (srandom); #elif defined GNULIB_POSIXCHECK # undef srandom # if HAVE_RAW_DECL_SRANDOM _GL_WARN_ON_USE (srandom, "srandom is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ || !@HAVE_DECL_INITSTATE@ _GL_FUNCDECL_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size)); _GL_CXXALIASWARN (initstate); #elif defined GNULIB_POSIXCHECK # undef initstate # if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate, "initstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ || !@HAVE_DECL_SETSTATE@ _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (setstate, char *, (char *arg_state)); _GL_CXXALIASWARN (setstate); #elif defined GNULIB_POSIXCHECK # undef setstate # if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate, "setstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef random_r # define random_r rpl_random_r # endif _GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result)); # endif _GL_CXXALIASWARN (random_r); #elif defined GNULIB_POSIXCHECK # undef random_r # if HAVE_RAW_DECL_RANDOM_R _GL_WARN_ON_USE (random_r, "random_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef srandom_r # define srandom_r rpl_srandom_r # endif _GL_FUNCDECL_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (srandom_r); #elif defined GNULIB_POSIXCHECK # undef srandom_r # if HAVE_RAW_DECL_SRANDOM_R _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef initstate_r # define initstate_r rpl_initstate_r # endif _GL_FUNCDECL_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (initstate_r); #elif defined GNULIB_POSIXCHECK # undef initstate_r # if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setstate_r # define setstate_r rpl_setstate_r # endif _GL_FUNCDECL_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (setstate_r); #elif defined GNULIB_POSIXCHECK # undef setstate_r # if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_REALLOC_POSIX@ # if @REPLACE_REALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef realloc # define realloc rpl_realloc # endif _GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)); _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); # else _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); # endif _GL_CXXALIASWARN (realloc); #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef realloc /* Assume realloc is always declared. */ _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " "use gnulib module realloc-posix for portability"); #endif #if @GNULIB_REALLOCARRAY@ # if ! @HAVE_REALLOCARRAY@ _GL_FUNCDECL_SYS (reallocarray, void *, (void *ptr, size_t nmemb, size_t size)); # endif _GL_CXXALIAS_SYS (reallocarray, void *, (void *ptr, size_t nmemb, size_t size)); _GL_CXXALIASWARN (reallocarray); #elif defined GNULIB_POSIXCHECK # undef reallocarray # if HAVE_RAW_DECL_REALLOCARRAY _GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - " "use gnulib module reallocarray for portability"); # endif #endif #if @GNULIB_REALPATH@ # if @REPLACE_REALPATH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define realpath rpl_realpath # endif _GL_FUNCDECL_RPL (realpath, char *, (const char *name, char *resolved) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (realpath, char *, (const char *name, char *resolved)); # else # if !@HAVE_REALPATH@ _GL_FUNCDECL_SYS (realpath, char *, (const char *name, char *resolved) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (realpath, char *, (const char *name, char *resolved)); # endif _GL_CXXALIASWARN (realpath); #elif defined GNULIB_POSIXCHECK # undef realpath # if HAVE_RAW_DECL_REALPATH _GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module " "canonicalize or canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_RPMATCH@ /* Test a user response to a question. Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ # if !@HAVE_RPMATCH@ _GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (rpmatch, int, (const char *response)); _GL_CXXALIASWARN (rpmatch); #elif defined GNULIB_POSIXCHECK # undef rpmatch # if HAVE_RAW_DECL_RPMATCH _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - " "use gnulib module rpmatch for portability"); # endif #endif #if @GNULIB_SECURE_GETENV@ /* Look up NAME in the environment, returning 0 in insecure situations. */ # if !@HAVE_SECURE_GETENV@ _GL_FUNCDECL_SYS (secure_getenv, char *, (char const *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name)); _GL_CXXALIASWARN (secure_getenv); #elif defined GNULIB_POSIXCHECK # undef secure_getenv # if HAVE_RAW_DECL_SECURE_GETENV _GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - " "use gnulib module secure_getenv for portability"); # endif #endif #if @GNULIB_SETENV@ /* Set NAME to VALUE in the environment. If REPLACE is nonzero, overwrite an existing value. */ # if @REPLACE_SETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setenv # define setenv rpl_setenv # endif _GL_FUNCDECL_RPL (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (setenv, int, (const char *name, const char *value, int replace)); # else # if !@HAVE_DECL_SETENV@ _GL_FUNCDECL_SYS (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (setenv, int, (const char *name, const char *value, int replace)); # endif # if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@) _GL_CXXALIASWARN (setenv); # endif #elif defined GNULIB_POSIXCHECK # undef setenv # if HAVE_RAW_DECL_SETENV _GL_WARN_ON_USE (setenv, "setenv is unportable - " "use gnulib module setenv for portability"); # endif #endif #if @GNULIB_STRTOD@ /* Parse a double from STRING, updating ENDP if appropriate. */ # if @REPLACE_STRTOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtod rpl_strtod # endif _GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp)); # else # if !@HAVE_STRTOD@ _GL_FUNCDECL_SYS (strtod, double, (const char *str, char **endp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtod, double, (const char *str, char **endp)); # endif _GL_CXXALIASWARN (strtod); #elif defined GNULIB_POSIXCHECK # undef strtod # if HAVE_RAW_DECL_STRTOD _GL_WARN_ON_USE (strtod, "strtod is unportable - " "use gnulib module strtod for portability"); # endif #endif #if @GNULIB_STRTOLL@ /* Parse a signed integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set to ERANGE. */ # if !@HAVE_STRTOLL@ _GL_FUNCDECL_SYS (strtoll, long long, (const char *string, char **endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoll, long long, (const char *string, char **endptr, int base)); _GL_CXXALIASWARN (strtoll); #elif defined GNULIB_POSIXCHECK # undef strtoll # if HAVE_RAW_DECL_STRTOLL _GL_WARN_ON_USE (strtoll, "strtoll is unportable - " "use gnulib module strtoll for portability"); # endif #endif #if @GNULIB_STRTOULL@ /* Parse an unsigned integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is ULLONG_MAX, and errno is set to ERANGE. */ # if !@HAVE_STRTOULL@ _GL_FUNCDECL_SYS (strtoull, unsigned long long, (const char *string, char **endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoull, unsigned long long, (const char *string, char **endptr, int base)); _GL_CXXALIASWARN (strtoull); #elif defined GNULIB_POSIXCHECK # undef strtoull # if HAVE_RAW_DECL_STRTOULL _GL_WARN_ON_USE (strtoull, "strtoull is unportable - " "use gnulib module strtoull for portability"); # endif #endif #if @GNULIB_UNLOCKPT@ /* Unlock the slave side of the pseudo-terminal whose master side is specified by FD, so that it can be opened. */ # if !@HAVE_UNLOCKPT@ _GL_FUNCDECL_SYS (unlockpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (unlockpt, int, (int fd)); _GL_CXXALIASWARN (unlockpt); #elif defined GNULIB_POSIXCHECK # undef unlockpt # if HAVE_RAW_DECL_UNLOCKPT _GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - " "use gnulib module unlockpt for portability"); # endif #endif #if @GNULIB_UNSETENV@ /* Remove the variable NAME from the environment. */ # if @REPLACE_UNSETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unsetenv # define unsetenv rpl_unsetenv # endif _GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unsetenv, int, (const char *name)); # else # if !@HAVE_DECL_UNSETENV@ _GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (unsetenv, int, (const char *name)); # endif # if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@) _GL_CXXALIASWARN (unsetenv); # endif #elif defined GNULIB_POSIXCHECK # undef unsetenv # if HAVE_RAW_DECL_UNSETENV _GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - " "use gnulib module unsetenv for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCTOMB@ # if @REPLACE_WCTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctomb # define wctomb rpl_wctomb # endif _GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc)); _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc)); # else _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc)); # endif _GL_CXXALIASWARN (wctomb); #endif #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/streq.h0000644000000000000000000000011013726163410020312 xustar000000000000000024 mtime=1599661832.602 24 atime=1599661832.759 24 ctime=1599661999.124 libprelude-5.2.0/libmissing/streq.h0000644000000000000000000000766613726163410017334 0ustar00rootroot00000000000000/* Optimized string comparison. Copyright (C) 2001-2002, 2007, 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Bruno Haible . */ #ifndef _GL_STREQ_H #define _GL_STREQ_H #include /* STREQ_OPT allows to optimize string comparison with a small literal string. STREQ_OPT (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) is semantically equivalent to strcmp (s, "EUC-KR") == 0 just faster. */ /* Help GCC to generate good code for string comparisons with immediate strings. */ #if defined (__GNUC__) && defined (__OPTIMIZE__) static inline int streq9 (const char *s1, const char *s2) { return strcmp (s1 + 9, s2 + 9) == 0; } static inline int streq8 (const char *s1, const char *s2, char s28) { if (s1[8] == s28) { if (s28 == 0) return 1; else return streq9 (s1, s2); } else return 0; } static inline int streq7 (const char *s1, const char *s2, char s27, char s28) { if (s1[7] == s27) { if (s27 == 0) return 1; else return streq8 (s1, s2, s28); } else return 0; } static inline int streq6 (const char *s1, const char *s2, char s26, char s27, char s28) { if (s1[6] == s26) { if (s26 == 0) return 1; else return streq7 (s1, s2, s27, s28); } else return 0; } static inline int streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28) { if (s1[5] == s25) { if (s25 == 0) return 1; else return streq6 (s1, s2, s26, s27, s28); } else return 0; } static inline int streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28) { if (s1[4] == s24) { if (s24 == 0) return 1; else return streq5 (s1, s2, s25, s26, s27, s28); } else return 0; } static inline int streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[3] == s23) { if (s23 == 0) return 1; else return streq4 (s1, s2, s24, s25, s26, s27, s28); } else return 0; } static inline int streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[2] == s22) { if (s22 == 0) return 1; else return streq3 (s1, s2, s23, s24, s25, s26, s27, s28); } else return 0; } static inline int streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[1] == s21) { if (s21 == 0) return 1; else return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28); } else return 0; } static inline int streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[0] == s20) { if (s20 == 0) return 1; else return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28); } else return 0; } #define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28) #else #define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ (strcmp (s1, s2) == 0) #endif #endif /* _GL_STREQ_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/strerror-override.h0000644000000000000000000000011013726163410022653 xustar000000000000000024 mtime=1599661832.603 24 atime=1599661832.759 24 ctime=1599661999.126 libprelude-5.2.0/libmissing/strerror-override.h0000644000000000000000000000377313726163410021670 0ustar00rootroot00000000000000/* strerror-override.h --- POSIX compatible system error routine Copyright (C) 2010-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _GL_STRERROR_OVERRIDE_H # define _GL_STRERROR_OVERRIDE_H # include # include /* Reasonable buffer size that should never trigger ERANGE; if this proves too small, we intentionally abort(), to remind us to fix this value. */ # define STACKBUF_LEN 256 /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ # if REPLACE_STRERROR_0 \ || GNULIB_defined_ESOCK \ || GNULIB_defined_ESTREAMS \ || GNULIB_defined_EWINSOCK \ || GNULIB_defined_ENOMSG \ || GNULIB_defined_EIDRM \ || GNULIB_defined_ENOLINK \ || GNULIB_defined_EPROTO \ || GNULIB_defined_EMULTIHOP \ || GNULIB_defined_EBADMSG \ || GNULIB_defined_EOVERFLOW \ || GNULIB_defined_ENOTSUP \ || GNULIB_defined_ENETRESET \ || GNULIB_defined_ECONNABORTED \ || GNULIB_defined_ESTALE \ || GNULIB_defined_EDQUOT \ || GNULIB_defined_ECANCELED \ || GNULIB_defined_EOWNERDEAD \ || GNULIB_defined_ENOTRECOVERABLE \ || GNULIB_defined_EILSEQ extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST; # else # define strerror_override(ignored) NULL # endif #endif /* _GL_STRERROR_OVERRIDE_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/string.in.h0000644000000000000000000000011013726163410021067 xustar000000000000000024 mtime=1599661832.604 24 atime=1599661832.759 24 ctime=1599661999.128 libprelude-5.2.0/libmissing/string.in.h0000644000000000000000000012061013726163410020072 0ustar00rootroot00000000000000/* A GNU-like . Copyright (C) 1995-1996, 2001-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _GL_ALREADY_INCLUDING_STRING_H /* Special invocation convention: - On OS X/NetBSD we have a sequence of nested includes -> -> "string.h" In this situation system _chk variants due to -D_FORTIFY_SOURCE might be used after any replacements defined here. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STRING_H #define _GL_ALREADY_INCLUDING_STRING_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #undef _GL_ALREADY_INCLUDING_STRING_H #ifndef _@GUARD_PREFIX@_STRING_H #define _@GUARD_PREFIX@_STRING_H /* NetBSD 5.0 mis-defines NULL. */ #include /* MirBSD defines mbslen as a macro. */ #if @GNULIB_MBSLEN@ && defined __MirBSD__ # include #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* NetBSD 5.0 declares strsignal in , not in . */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ && ! defined __GLIBC__ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Clear a block of memory. The compiler will not delete a call to this function, even if the block is dead after the call. */ #if @GNULIB_EXPLICIT_BZERO@ # if ! @HAVE_EXPLICIT_BZERO@ _GL_FUNCDECL_SYS (explicit_bzero, void, (void *__dest, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (explicit_bzero, void, (void *__dest, size_t __n)); _GL_CXXALIASWARN (explicit_bzero); #elif defined GNULIB_POSIXCHECK # undef explicit_bzero # if HAVE_RAW_DECL_EXPLICIT_BZERO _GL_WARN_ON_USE (explicit_bzero, "explicit_bzero is unportable - " "use gnulib module explicit_bzero for portability"); # endif #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSL@ # if !@HAVE_FFSL@ _GL_FUNCDECL_SYS (ffsl, int, (long int i)); # endif _GL_CXXALIAS_SYS (ffsl, int, (long int i)); _GL_CXXALIASWARN (ffsl); #elif defined GNULIB_POSIXCHECK # undef ffsl # if HAVE_RAW_DECL_FFSL _GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); # endif #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSLL@ # if !@HAVE_FFSLL@ _GL_FUNCDECL_SYS (ffsll, int, (long long int i)); # endif _GL_CXXALIAS_SYS (ffsll, int, (long long int i)); _GL_CXXALIASWARN (ffsll); #elif defined GNULIB_POSIXCHECK # undef ffsll # if HAVE_RAW_DECL_FFSLL _GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); # endif #endif /* Return the first instance of C within N bytes of S, or NULL. */ #if @GNULIB_MEMCHR@ # if @REPLACE_MEMCHR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memchr rpl_memchr # endif _GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); # else # if ! @HAVE_MEMCHR@ _GL_FUNCDECL_SYS (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const void * std::memchr (const void *, int, size_t); } extern "C++" { void * std::memchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memchr, void *, (void const *__s, int __c, size_t __n), void const *, (void const *__s, int __c, size_t __n)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n)); _GL_CXXALIASWARN1 (memchr, void const *, (void const *__s, int __c, size_t __n)); # else _GL_CXXALIASWARN (memchr); # endif #elif defined GNULIB_POSIXCHECK # undef memchr /* Assume memchr is always declared. */ _GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " "use gnulib module memchr for portability" ); #endif /* Return the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_MEMMEM@ # if @REPLACE_MEMMEM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memmem rpl_memmem # endif _GL_FUNCDECL_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # else # if ! @HAVE_DECL_MEMMEM@ _GL_FUNCDECL_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # endif _GL_CXXALIASWARN (memmem); #elif defined GNULIB_POSIXCHECK # undef memmem # if HAVE_RAW_DECL_MEMMEM _GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " "use gnulib module memmem-simple for portability, " "and module memmem for speed" ); # endif #endif /* Copy N bytes of SRC to DEST, return pointer to bytes after the last written byte. */ #if @GNULIB_MEMPCPY@ # if ! @HAVE_MEMPCPY@ _GL_FUNCDECL_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n)); _GL_CXXALIASWARN (mempcpy); #elif defined GNULIB_POSIXCHECK # undef mempcpy # if HAVE_RAW_DECL_MEMPCPY _GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " "use gnulib module mempcpy for portability"); # endif #endif /* Search backwards through a block for a byte (specified as an int). */ #if @GNULIB_MEMRCHR@ # if ! @HAVE_DECL_MEMRCHR@ _GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::memrchr (const void *, int, size_t); } extern "C++" { void * std::memrchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memrchr, void *, (void const *, int, size_t), void const *, (void const *, int, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t)); _GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t)); # else _GL_CXXALIASWARN (memrchr); # endif #elif defined GNULIB_POSIXCHECK # undef memrchr # if HAVE_RAW_DECL_MEMRCHR _GL_WARN_ON_USE (memrchr, "memrchr is unportable - " "use gnulib module memrchr for portability"); # endif #endif /* Find the first occurrence of C in S. More efficient than memchr(S,C,N), at the expense of undefined behavior if C does not occur within N bytes. */ #if @GNULIB_RAWMEMCHR@ # if ! @HAVE_RAWMEMCHR@ _GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::rawmemchr (const void *, int); } extern "C++" { void * std::rawmemchr (void *, int); } */ _GL_CXXALIAS_SYS_CAST2 (rawmemchr, void *, (void const *__s, int __c_in), void const *, (void const *__s, int __c_in)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in)); _GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in)); # else _GL_CXXALIASWARN (rawmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef rawmemchr # if HAVE_RAW_DECL_RAWMEMCHR _GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " "use gnulib module rawmemchr for portability"); # endif #endif /* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ #if @GNULIB_STPCPY@ # if ! @HAVE_STPCPY@ _GL_FUNCDECL_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src)); _GL_CXXALIASWARN (stpcpy); #elif defined GNULIB_POSIXCHECK # undef stpcpy # if HAVE_RAW_DECL_STPCPY _GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " "use gnulib module stpcpy for portability"); # endif #endif /* Copy no more than N bytes of SRC to DST, returning a pointer past the last non-NUL byte written into DST. */ #if @GNULIB_STPNCPY@ # if @REPLACE_STPNCPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef stpncpy # define stpncpy rpl_stpncpy # endif _GL_FUNCDECL_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # else # if ! @HAVE_STPNCPY@ _GL_FUNCDECL_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # endif _GL_CXXALIASWARN (stpncpy); #elif defined GNULIB_POSIXCHECK # undef stpncpy # if HAVE_RAW_DECL_STPNCPY _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " "use gnulib module stpncpy for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strchr /* Assume strchr is always declared. */ _GL_WARN_ON_USE (strchr, "strchr cannot work correctly on character strings " "in some multibyte locales - " "use mbschr if you care about internationalization"); #endif /* Find the first occurrence of C in S or the final NUL byte. */ #if @GNULIB_STRCHRNUL@ # if @REPLACE_STRCHRNUL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strchrnul rpl_strchrnul # endif _GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strchrnul, char *, (const char *str, int ch)); # else # if ! @HAVE_STRCHRNUL@ _GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * std::strchrnul (const char *, int); } extern "C++" { char * std::strchrnul (char *, int); } */ _GL_CXXALIAS_SYS_CAST2 (strchrnul, char *, (char const *__s, int __c_in), char const *, (char const *__s, int __c_in)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in)); _GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in)); # else _GL_CXXALIASWARN (strchrnul); # endif #elif defined GNULIB_POSIXCHECK # undef strchrnul # if HAVE_RAW_DECL_STRCHRNUL _GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " "use gnulib module strchrnul for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_STRDUP@ # if @REPLACE_STRDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup rpl_strdup # endif _GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup /* strdup exists as a function and as a macro. Get rid of the macro. */ # undef strdup # endif # if !(@HAVE_DECL_STRDUP@ || defined strdup) _GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); # endif _GL_CXXALIASWARN (strdup); #elif defined GNULIB_POSIXCHECK # undef strdup # if HAVE_RAW_DECL_STRDUP _GL_WARN_ON_USE (strdup, "strdup is unportable - " "use gnulib module strdup for portability"); # endif #endif /* Append no more than N characters from SRC onto DEST. */ #if @GNULIB_STRNCAT@ # if @REPLACE_STRNCAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strncat # define strncat rpl_strncat # endif _GL_FUNCDECL_RPL (strncat, char *, (char *dest, const char *src, size_t n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strncat, char *, (char *dest, const char *src, size_t n)); # else _GL_CXXALIAS_SYS (strncat, char *, (char *dest, const char *src, size_t n)); # endif _GL_CXXALIASWARN (strncat); #elif defined GNULIB_POSIXCHECK # undef strncat # if HAVE_RAW_DECL_STRNCAT _GL_WARN_ON_USE (strncat, "strncat is unportable - " "use gnulib module strncat for portability"); # endif #endif /* Return a newly allocated copy of at most N bytes of STRING. */ #if @GNULIB_STRNDUP@ # if @REPLACE_STRNDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strndup # define strndup rpl_strndup # endif _GL_FUNCDECL_RPL (strndup, char *, (char const *__s, size_t __n) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n)); # else # if ! @HAVE_DECL_STRNDUP@ _GL_FUNCDECL_SYS (strndup, char *, (char const *__s, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strndup, char *, (char const *__s, size_t __n)); # endif _GL_CXXALIASWARN (strndup); #elif defined GNULIB_POSIXCHECK # undef strndup # if HAVE_RAW_DECL_STRNDUP _GL_WARN_ON_USE (strndup, "strndup is unportable - " "use gnulib module strndup for portability"); # endif #endif /* Find the length (number of bytes) of STRING, but scan at most MAXLEN bytes. If no '\0' terminator is found in that many bytes, return MAXLEN. */ #if @GNULIB_STRNLEN@ # if @REPLACE_STRNLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strnlen # define strnlen rpl_strnlen # endif _GL_FUNCDECL_RPL (strnlen, size_t, (char const *__s, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strnlen, size_t, (char const *__s, size_t __maxlen)); # else # if ! @HAVE_DECL_STRNLEN@ _GL_FUNCDECL_SYS (strnlen, size_t, (char const *__s, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen)); # endif _GL_CXXALIASWARN (strnlen); #elif defined GNULIB_POSIXCHECK # undef strnlen # if HAVE_RAW_DECL_STRNLEN _GL_WARN_ON_USE (strnlen, "strnlen is unportable - " "use gnulib module strnlen for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strcspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strcspn /* Assume strcspn is always declared. */ _GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " "in multibyte locales - " "use mbscspn if you care about internationalization"); #endif /* Find the first occurrence in S of any character in ACCEPT. */ #if @GNULIB_STRPBRK@ # if ! @HAVE_STRPBRK@ _GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const char * strpbrk (const char *, const char *); } extern "C++" { char * strpbrk (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strpbrk, char *, (char const *__s, char const *__accept), const char *, (char const *__s, char const *__accept)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept)); _GL_CXXALIASWARN1 (strpbrk, char const *, (char const *__s, char const *__accept)); # else _GL_CXXALIASWARN (strpbrk); # endif # if defined GNULIB_POSIXCHECK /* strpbrk() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strpbrk _GL_WARN_ON_USE (strpbrk, "strpbrk cannot work correctly on character strings " "in multibyte locales - " "use mbspbrk if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strpbrk # if HAVE_RAW_DECL_STRPBRK _GL_WARN_ON_USE (strpbrk, "strpbrk is unportable - " "use gnulib module strpbrk for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it cannot work with multibyte strings. */ # undef strspn /* Assume strspn is always declared. */ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " "in multibyte locales - " "use mbsspn if you care about internationalization"); #endif #if defined GNULIB_POSIXCHECK /* strrchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strrchr /* Assume strrchr is always declared. */ _GL_WARN_ON_USE (strrchr, "strrchr cannot work correctly on character strings " "in some multibyte locales - " "use mbsrchr if you care about internationalization"); #endif /* Search the next delimiter (char listed in DELIM) starting at *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next char after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of strtok() that is multithread-safe and supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strtok_r(). */ #if @GNULIB_STRSEP@ # if ! @HAVE_STRSEP@ _GL_FUNCDECL_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim)); _GL_CXXALIASWARN (strsep); # if defined GNULIB_POSIXCHECK # undef strsep _GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " "in multibyte locales - " "use mbssep if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strsep # if HAVE_RAW_DECL_STRSEP _GL_WARN_ON_USE (strsep, "strsep is unportable - " "use gnulib module strsep for portability"); # endif #endif #if @GNULIB_STRSTR@ # if @REPLACE_STRSTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strstr rpl_strstr # endif _GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); # else /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strstr (const char *, const char *); } extern "C++" { char * strstr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strstr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strstr, const char *, (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strstr); # endif #elif defined GNULIB_POSIXCHECK /* strstr() does not work with multibyte strings if the locale encoding is different from UTF-8: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strstr /* Assume strstr is always declared. */ _GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " "work correctly on character strings in most " "multibyte locales - " "use mbsstr if you care about internationalization, " "or use strstr if you care about speed"); #endif /* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive comparison. */ #if @GNULIB_STRCASESTR@ # if @REPLACE_STRCASESTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strcasestr rpl_strcasestr # endif _GL_FUNCDECL_RPL (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strcasestr, char *, (const char *haystack, const char *needle)); # else # if ! @HAVE_STRCASESTR@ _GL_FUNCDECL_SYS (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strcasestr (const char *, const char *); } extern "C++" { char * strcasestr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strcasestr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strcasestr, const char *, (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strcasestr); # endif #elif defined GNULIB_POSIXCHECK /* strcasestr() does not work with multibyte strings: It is a glibc extension, and glibc implements it only for unibyte locales. */ # undef strcasestr # if HAVE_RAW_DECL_STRCASESTR _GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " "strings in multibyte locales - " "use mbscasestr if you care about " "internationalization, or use c-strcasestr if you want " "a locale independent function"); # endif #endif /* Parse S into tokens separated by characters in DELIM. If S is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = strtok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" This is a variant of strtok() that is multithread-safe. For the POSIX documentation for this function, see: http://www.opengroup.org/susv3xsh/strtok.html Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strsep(). */ #if @GNULIB_STRTOK_R@ # if @REPLACE_STRTOK_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtok_r # define strtok_r rpl_strtok_r # endif _GL_FUNCDECL_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # else # if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK # undef strtok_r # endif # if ! @HAVE_DECL_STRTOK_R@ _GL_FUNCDECL_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # endif _GL_CXXALIASWARN (strtok_r); # if defined GNULIB_POSIXCHECK _GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " "strings in multibyte locales - " "use mbstok_r if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strtok_r # if HAVE_RAW_DECL_STRTOK_R _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " "use gnulib module strtok_r for portability"); # endif #endif /* The following functions are not specified by POSIX. They are gnulib extensions. */ #if @GNULIB_MBSLEN@ /* Return the number of multibyte characters in the character string STRING. This considers multibyte characters, unlike strlen, which counts bytes. */ # ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ # undef mbslen # endif # if @HAVE_MBSLEN@ /* AIX, OSF/1, MirBSD define mbslen already in libc. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbslen rpl_mbslen # endif _GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); # else _GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); # endif _GL_CXXALIASWARN (mbslen); #endif #if @GNULIB_MBSNLEN@ /* Return the number of multibyte characters in the character string starting at STRING and ending at STRING + LEN. */ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1)); #endif #if @GNULIB_MBSCHR@ /* Locate the first single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbschr rpl_mbschr /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbschr); #endif #if @GNULIB_MBSRCHR@ /* Locate the last single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strrchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux || defined __INTERIX # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbsrchr rpl_mbsrchr /* avoid collision with system function */ # endif _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbsrchr); #endif #if @GNULIB_MBSSTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. Unlike strstr(), this function works correctly in multibyte locales with encodings different from UTF-8. */ _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASECMP@ /* Compare the character strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function may, in multibyte locales, return 0 for strings of different lengths! Unlike strcasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSNCASECMP@ /* Compare the initial segment of the character string S1 consisting of at most N characters with the initial segment of the character string S2 consisting of at most N characters, ignoring case, returning less than, equal to or greater than zero if the initial segment of S1 is lexicographically less than, equal to or greater than the initial segment of S2. Note: This function may, in multibyte locales, return 0 for initial segments of different lengths! Unlike strncasecmp(), this function works correctly in multibyte locales. But beware that N is not a byte count but a character count! */ _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPCASECMP@ /* Compare the initial segment of the character string STRING consisting of at most mbslen (PREFIX) characters with the character string PREFIX, ignoring case. If the two match, return a pointer to the first byte after this prefix in STRING. Otherwise, return NULL. Note: This function may, in multibyte locales, return non-NULL if STRING is of smaller length than PREFIX! Unlike strncasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASESTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK, using case-insensitive comparison. Note: This function may, in multibyte locales, return success even if strlen (haystack) < strlen (needle) ! Unlike strcasestr(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCSPN@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strcspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPBRK@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the pointer to it, or NULL if none exists. Unlike strpbrk(), this function works correctly in multibyte locales. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); # else _GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); # endif _GL_CXXALIASWARN (mbspbrk); #endif #if @GNULIB_MBSSPN@ /* Find the first occurrence in the character string STRING of any character not in the character string REJECT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSSEP@ /* Search the next delimiter (multibyte character listed in the character string DELIM) starting at the character string *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next multibyte character after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of mbstok_r() that supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbstok_r(). */ _GL_EXTERN_C char * mbssep (char **stringp, const char *delim) _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSTOK_R@ /* Parse the character string STRING into tokens separated by characters in the character string DELIM. If STRING is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = mbstok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbssep(). */ _GL_EXTERN_C char * mbstok_r (char *string, const char *delim, char **save_ptr) _GL_ARG_NONNULL ((2, 3)); #endif /* Map any int, typically from errno, into an error message. */ #if @GNULIB_STRERROR@ # if @REPLACE_STRERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror # define strerror rpl_strerror # endif _GL_FUNCDECL_RPL (strerror, char *, (int)); _GL_CXXALIAS_RPL (strerror, char *, (int)); # else _GL_CXXALIAS_SYS (strerror, char *, (int)); # endif _GL_CXXALIASWARN (strerror); #elif defined GNULIB_POSIXCHECK # undef strerror /* Assume strerror is always declared. */ _GL_WARN_ON_USE (strerror, "strerror is unportable - " "use gnulib module strerror to guarantee non-NULL result"); #endif /* Map any int, typically from errno, into an error message. Multithread-safe. Uses the POSIX declaration, not the glibc declaration. */ #if @GNULIB_STRERROR_R@ # if @REPLACE_STRERROR_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror_r # define strerror_r rpl_strerror_r # endif _GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)); # else # if !@HAVE_DECL_STRERROR_R@ _GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); # endif # if @HAVE_DECL_STRERROR_R@ _GL_CXXALIASWARN (strerror_r); # endif #elif defined GNULIB_POSIXCHECK # undef strerror_r # if HAVE_RAW_DECL_STRERROR_R _GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " "use gnulib module strerror_r-posix for portability"); # endif #endif #if @GNULIB_STRSIGNAL@ # if @REPLACE_STRSIGNAL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strsignal rpl_strsignal # endif _GL_FUNCDECL_RPL (strsignal, char *, (int __sig)); _GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); # else # if ! @HAVE_DECL_STRSIGNAL@ _GL_FUNCDECL_SYS (strsignal, char *, (int __sig)); # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is 'const char *'. */ _GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); # endif _GL_CXXALIASWARN (strsignal); #elif defined GNULIB_POSIXCHECK # undef strsignal # if HAVE_RAW_DECL_STRSIGNAL _GL_WARN_ON_USE (strsignal, "strsignal is unportable - " "use gnulib module strsignal for portability"); # endif #endif #if @GNULIB_STRVERSCMP@ # if !@HAVE_STRVERSCMP@ _GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); _GL_CXXALIASWARN (strverscmp); #elif defined GNULIB_POSIXCHECK # undef strverscmp # if HAVE_RAW_DECL_STRVERSCMP _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " "use gnulib module strverscmp for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */ #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/strings.in.h0000644000000000000000000000011013726163410021252 xustar000000000000000024 mtime=1599661832.604 24 atime=1599661832.759 24 ctime=1599661999.129 libprelude-5.2.0/libmissing/strings.in.h0000644000000000000000000000770613726163410020267 0ustar00rootroot00000000000000/* A substitute . Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_STRINGS_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Minix 3.1.8 has a bug: must be included before . But avoid namespace pollution on glibc systems. */ #if defined __minix && !defined __GLIBC__ # include #endif /* The include_next requires a split double-inclusion guard. */ #if @HAVE_STRINGS_H@ # @INCLUDE_NEXT@ @NEXT_STRINGS_H@ #endif #ifndef _@GUARD_PREFIX@_STRINGS_H #define _@GUARD_PREFIX@_STRINGS_H #if ! @HAVE_DECL_STRNCASECMP@ /* Get size_t. */ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #ifdef __cplusplus extern "C" { #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFS@ # if !@HAVE_FFS@ _GL_FUNCDECL_SYS (ffs, int, (int i)); # endif _GL_CXXALIAS_SYS (ffs, int, (int i)); _GL_CXXALIASWARN (ffs); #elif defined GNULIB_POSIXCHECK # undef ffs # if HAVE_RAW_DECL_FFS _GL_WARN_ON_USE (ffs, "ffs is not portable - use the ffs module"); # endif #endif /* Compare strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function does not work in multibyte locales. */ #if ! @HAVE_STRCASECMP@ extern int strcasecmp (char const *s1, char const *s2) _GL_ARG_NONNULL ((1, 2)); #endif #if defined GNULIB_POSIXCHECK /* strcasecmp() does not work with multibyte strings: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strcasecmp # if HAVE_RAW_DECL_STRCASECMP _GL_WARN_ON_USE (strcasecmp, "strcasecmp cannot work correctly on character " "strings in multibyte locales - " "use mbscasecmp if you care about " "internationalization, or use c_strcasecmp , " "gnulib module c-strcase) if you want a locale " "independent function"); # endif #endif /* Compare no more than N bytes of strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function cannot work correctly in multibyte locales. */ #if ! @HAVE_DECL_STRNCASECMP@ extern int strncasecmp (char const *s1, char const *s2, size_t n) _GL_ARG_NONNULL ((1, 2)); #endif #if defined GNULIB_POSIXCHECK /* strncasecmp() does not work with multibyte strings: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strncasecmp # if HAVE_RAW_DECL_STRNCASECMP _GL_WARN_ON_USE (strncasecmp, "strncasecmp cannot work correctly on character " "strings in multibyte locales - " "use mbsncasecmp or mbspcasecmp if you care about " "internationalization, or use c_strncasecmp , " "gnulib module c-strcase) if you want a locale " "independent function"); # endif #endif #ifdef __cplusplus } #endif #endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/sys_ioctl.in.h0000644000000000000000000000011013726163410021571 xustar000000000000000024 mtime=1599661832.605 24 atime=1599661832.759 24 ctime=1599661999.131 libprelude-5.2.0/libmissing/sys_ioctl.in.h0000644000000000000000000000504213726163410020575 0ustar00rootroot00000000000000/* Substitute for and wrapper around . Copyright (C) 2008-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_SYS_IOCTL_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_SYS_IOCTL_H@ # @INCLUDE_NEXT@ @NEXT_SYS_IOCTL_H@ #endif #ifndef _@GUARD_PREFIX@_SYS_IOCTL_H #define _@GUARD_PREFIX@_SYS_IOCTL_H /* AIX 5.1 and Solaris 10 declare ioctl() in and in , but not in . Haiku declares ioctl() in , but not in . But avoid namespace pollution on glibc systems. */ #ifndef __GLIBC__ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ #if @GNULIB_IOCTL@ # if @REPLACE_IOCTL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ioctl # define ioctl rpl_ioctl # endif _GL_FUNCDECL_RPL (ioctl, int, (int fd, int request, ... /* {void *,char *} arg */)); _GL_CXXALIAS_RPL (ioctl, int, (int fd, int request, ... /* {void *,char *} arg */)); # else # if @SYS_IOCTL_H_HAVE_WINSOCK2_H@ || 1 _GL_FUNCDECL_SYS (ioctl, int, (int fd, int request, ... /* {void *,char *} arg */)); # endif _GL_CXXALIAS_SYS (ioctl, int, (int fd, int request, ... /* {void *,char *} arg */)); # endif _GL_CXXALIASWARN (ioctl); #elif @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ # undef ioctl # define ioctl ioctl_used_without_requesting_gnulib_module_ioctl #elif defined GNULIB_POSIXCHECK # undef ioctl # if HAVE_RAW_DECL_IOCTL _GL_WARN_ON_USE (ioctl, "ioctl does not portably work on sockets - " "use gnulib module ioctl for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_SYS_IOCTL_H */ #endif /* _@GUARD_PREFIX@_SYS_IOCTL_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/sys_select.in.h0000644000000000000000000000010713726163410021744 xustar000000000000000024 mtime=1599661832.606 23 atime=1599661832.76 24 ctime=1599661999.133 libprelude-5.2.0/libmissing/sys_select.in.h0000644000000000000000000002761613726163410020755 0ustar00rootroot00000000000000/* Substitute for . Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ # if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ # endif @PRAGMA_COLUMNS@ /* On OSF/1 and Solaris 2.6, and both include . On Cygwin, includes . Simply delegate to the system's header in this case. */ #if (@HAVE_SYS_SELECT_H@ \ && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TYPES_H \ && ((defined __osf__ && defined _SYS_TYPES_H_ \ && defined _OSF_SOURCE) \ || (defined __sun && defined _SYS_TYPES_H \ && (! (defined _XOPEN_SOURCE || defined _POSIX_C_SOURCE) \ || defined __EXTENSIONS__)))) # define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TYPES_H # @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@ #elif (@HAVE_SYS_SELECT_H@ \ && (defined _CYGWIN_SYS_TIME_H \ || (!defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H \ && ((defined __osf__ && defined _SYS_TIME_H_ \ && defined _OSF_SOURCE) \ || (defined __sun && defined _SYS_TIME_H \ && (! (defined _XOPEN_SOURCE \ || defined _POSIX_C_SOURCE) \ || defined __EXTENSIONS__)))))) # define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H # @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@ /* On IRIX 6.5, includes , which includes , which includes . At this point we cannot include , because that includes , which gives a syntax error because has not been completely processed. Simply delegate to the system's header in this case. */ #elif @HAVE_SYS_SELECT_H@ && defined __sgi && (defined _SYS_BSD_TYPES_H && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_BSD_TYPES_H) # define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_BSD_TYPES_H # @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@ /* On OpenBSD 5.0, includes , which includes . At this point we cannot include , because that includes gnulib's pthread.h override, which gives a syntax error because /usr/include/pthread.h has not been completely processed. Simply delegate to the system's header in this case. */ #elif @HAVE_SYS_SELECT_H@ && defined __OpenBSD__ && (defined _PTHREAD_H_ && !defined PTHREAD_MUTEX_INITIALIZER) # @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@ #else #ifndef _@GUARD_PREFIX@_SYS_SELECT_H /* On many platforms, assumes prior inclusion of . Also, mingw defines sigset_t there, instead of in where it belongs. */ #include #if @HAVE_SYS_SELECT_H@ /* On OSF/1 4.0, provides only a forward declaration of 'struct timeval', and no definition of this type. Also, Mac OS X, AIX, HP-UX, IRIX, Solaris, Interix declare select() in . But avoid namespace pollution on glibc systems and "unknown type name" problems on Cygwin. */ # if !(defined __GLIBC__ || defined __CYGWIN__) # include # endif /* On AIX 7 and Solaris 10, provides an FD_ZERO implementation that relies on memset(), but without including . But in any case avoid namespace pollution on glibc systems. */ # if (defined __OpenBSD__ || defined _AIX || defined __sun || defined __osf__ || defined __BEOS__) \ && ! defined __GLIBC__ # include # endif /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@ #endif /* Get definition of 'sigset_t'. But avoid namespace pollution on glibc systems and "unknown type name" problems on Cygwin. Do this after the include_next (for the sake of OpenBSD 5.0) but before the split double-inclusion guard (for the sake of Solaris). */ #if !((defined __GLIBC__ || defined __CYGWIN__) && !defined __UCLIBC__) # include #endif #ifndef _@GUARD_PREFIX@_SYS_SELECT_H #define _@GUARD_PREFIX@_SYS_SELECT_H #if !@HAVE_SYS_SELECT_H@ /* A platform that lacks . */ /* Get the 'struct timeval' and 'fd_set' types and the FD_* macros on most platforms. */ # include /* On HP-UX 11, provides an FD_ZERO implementation that relies on memset(), but without including . */ # if defined __hpux # include # endif /* On native Windows platforms: Get the 'fd_set' type. Get the close() declaration before we override it. */ # if @HAVE_WINSOCK2_H@ # if !defined _GL_INCLUDING_WINSOCK2_H # define _GL_INCLUDING_WINSOCK2_H # include # undef _GL_INCLUDING_WINSOCK2_H # endif # include # endif #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Fix some definitions from . */ #if @HAVE_WINSOCK2_H@ # if !GNULIB_defined_rpl_fd_isset /* Re-define FD_ISSET to avoid a WSA call while we are not using network sockets. */ static int rpl_fd_isset (SOCKET fd, fd_set * set) { u_int i; if (set == NULL) return 0; for (i = 0; i < set->fd_count; i++) if (set->fd_array[i] == fd) return 1; return 0; } # define GNULIB_defined_rpl_fd_isset 1 # endif # undef FD_ISSET # define FD_ISSET(fd, set) rpl_fd_isset(fd, set) #endif /* Hide some function declarations from . */ #if @HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_UNISTD_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close close_used_without_including_unistd_h # else _GL_WARN_ON_USE (close, "close() used without including "); # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname gethostname_used_without_including_unistd_h # else _GL_WARN_ON_USE (gethostname, "gethostname() used without including "); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h # undef connect # define connect connect_used_without_including_sys_socket_h # undef accept # define accept accept_used_without_including_sys_socket_h # undef bind # define bind bind_used_without_including_sys_socket_h # undef getpeername # define getpeername getpeername_used_without_including_sys_socket_h # undef getsockname # define getsockname getsockname_used_without_including_sys_socket_h # undef getsockopt # define getsockopt getsockopt_used_without_including_sys_socket_h # undef listen # define listen listen_used_without_including_sys_socket_h # undef recv # define recv recv_used_without_including_sys_socket_h # undef send # define send send_used_without_including_sys_socket_h # undef recvfrom # define recvfrom recvfrom_used_without_including_sys_socket_h # undef sendto # define sendto sendto_used_without_including_sys_socket_h # undef setsockopt # define setsockopt setsockopt_used_without_including_sys_socket_h # undef shutdown # define shutdown shutdown_used_without_including_sys_socket_h # else _GL_WARN_ON_USE (socket, "socket() used without including "); _GL_WARN_ON_USE (connect, "connect() used without including "); _GL_WARN_ON_USE (accept, "accept() used without including "); _GL_WARN_ON_USE (bind, "bind() used without including "); _GL_WARN_ON_USE (getpeername, "getpeername() used without including "); _GL_WARN_ON_USE (getsockname, "getsockname() used without including "); _GL_WARN_ON_USE (getsockopt, "getsockopt() used without including "); _GL_WARN_ON_USE (listen, "listen() used without including "); _GL_WARN_ON_USE (recv, "recv() used without including "); _GL_WARN_ON_USE (send, "send() used without including "); _GL_WARN_ON_USE (recvfrom, "recvfrom() used without including "); _GL_WARN_ON_USE (sendto, "sendto() used without including "); _GL_WARN_ON_USE (setsockopt, "setsockopt() used without including "); _GL_WARN_ON_USE (shutdown, "shutdown() used without including "); # endif # endif #endif #if @GNULIB_PSELECT@ # if @REPLACE_PSELECT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pselect # define pselect rpl_pselect # endif _GL_FUNCDECL_RPL (pselect, int, (int, fd_set *restrict, fd_set *restrict, fd_set *restrict, struct timespec const *restrict, const sigset_t *restrict)); _GL_CXXALIAS_RPL (pselect, int, (int, fd_set *restrict, fd_set *restrict, fd_set *restrict, struct timespec const *restrict, const sigset_t *restrict)); # else # if !@HAVE_PSELECT@ _GL_FUNCDECL_SYS (pselect, int, (int, fd_set *restrict, fd_set *restrict, fd_set *restrict, struct timespec const *restrict, const sigset_t *restrict)); # endif _GL_CXXALIAS_SYS (pselect, int, (int, fd_set *restrict, fd_set *restrict, fd_set *restrict, struct timespec const *restrict, const sigset_t *restrict)); # endif _GL_CXXALIASWARN (pselect); #elif defined GNULIB_POSIXCHECK # undef pselect # if HAVE_RAW_DECL_PSELECT _GL_WARN_ON_USE (pselect, "pselect is not portable - " "use gnulib module pselect for portability"); # endif #endif #if @GNULIB_SELECT@ # if @REPLACE_SELECT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select rpl_select # endif _GL_FUNCDECL_RPL (select, int, (int, fd_set *restrict, fd_set *restrict, fd_set *restrict, struct timeval *restrict)); _GL_CXXALIAS_RPL (select, int, (int, fd_set *restrict, fd_set *restrict, fd_set *restrict, struct timeval *restrict)); # else _GL_CXXALIAS_SYS (select, int, (int, fd_set *restrict, fd_set *restrict, fd_set *restrict, struct timeval *restrict)); # endif _GL_CXXALIASWARN (select); #elif @HAVE_WINSOCK2_H@ # undef select # define select select_used_without_requesting_gnulib_module_select #elif defined GNULIB_POSIXCHECK # undef select # if HAVE_RAW_DECL_SELECT _GL_WARN_ON_USE (select, "select is not always POSIX compliant - " "use gnulib module select for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_SYS_SELECT_H */ #endif /* _@GUARD_PREFIX@_SYS_SELECT_H */ #endif /* OSF/1 */ libprelude-5.2.0/libmissing/PaxHeaders.14770/sys_socket.in.h0000644000000000000000000000010713726163410021755 xustar000000000000000024 mtime=1599661832.606 23 atime=1599661832.76 24 ctime=1599661999.135 libprelude-5.2.0/libmissing/sys_socket.in.h0000644000000000000000000005611213726163410020757 0ustar00rootroot00000000000000/* Provide a sys/socket header file for systems lacking it (read: MinGW) and for systems where it is incomplete. Copyright (C) 2005-2018 Free Software Foundation, Inc. Written by Simon Josefsson. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* This file is supposed to be used on platforms that lack , on platforms where cannot be included standalone, and on platforms where does not provide all necessary definitions. It is intended to provide definitions and prototypes needed by an application. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _GL_ALREADY_INCLUDING_SYS_SOCKET_H /* Special invocation convention: - On Cygwin 1.5.x we have a sequence of nested includes -> -> -> , and the latter includes . In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_SYS_SOCKET_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_SOCKET_H #if @HAVE_SYS_SOCKET_H@ # define _GL_ALREADY_INCLUDING_SYS_SOCKET_H /* On many platforms, assumes prior inclusion of . */ # include /* On FreeBSD 6.4, defines some macros that assume that NULL is defined. */ # include /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_SYS_SOCKET_H@ # undef _GL_ALREADY_INCLUDING_SYS_SOCKET_H #endif #ifndef _@GUARD_PREFIX@_SYS_SOCKET_H #define _@GUARD_PREFIX@_SYS_SOCKET_H #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_SYS_SOCKET_INLINE # define _GL_SYS_SOCKET_INLINE _GL_INLINE #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #if !@HAVE_SA_FAMILY_T@ # if !GNULIB_defined_sa_family_t /* On OS/2 kLIBC, sa_family_t is unsigned char unless TCPV40HDRS is defined. */ # if !defined __KLIBC__ || defined TCPV40HDRS typedef unsigned short sa_family_t; # else typedef unsigned char sa_family_t; # endif # define GNULIB_defined_sa_family_t 1 # endif #endif #if @HAVE_STRUCT_SOCKADDR_STORAGE@ /* Make the 'struct sockaddr_storage' field 'ss_family' visible on AIX 7.1. */ # if !@HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ # ifndef ss_family # define ss_family __ss_family # endif # endif #else # include /* Code taken from glibc sysdeps/unix/sysv/linux/bits/socket.h on 2009-05-08, licensed under LGPLv2.1+, plus portability fixes. */ # define __ss_aligntype unsigned long int # define _SS_SIZE 256 # define _SS_PADSIZE \ (_SS_SIZE - ((sizeof (sa_family_t) >= alignof (__ss_aligntype) \ ? sizeof (sa_family_t) \ : alignof (__ss_aligntype)) \ + sizeof (__ss_aligntype))) # if !GNULIB_defined_struct_sockaddr_storage struct sockaddr_storage { sa_family_t ss_family; /* Address family, etc. */ __ss_aligntype __ss_align; /* Force desired alignment. */ char __ss_padding[_SS_PADSIZE]; }; # define GNULIB_defined_struct_sockaddr_storage 1 # endif #endif /* Get struct iovec. */ /* But avoid namespace pollution on glibc systems. */ #if ! defined __GLIBC__ # include #endif #if @HAVE_SYS_SOCKET_H@ /* A platform that has . */ /* For shutdown(). */ # if !defined SHUT_RD # define SHUT_RD 0 # endif # if !defined SHUT_WR # define SHUT_WR 1 # endif # if !defined SHUT_RDWR # define SHUT_RDWR 2 # endif # ifdef __VMS /* OpenVMS */ # ifndef CMSG_SPACE # define CMSG_SPACE(length) _CMSG_SPACE(length) # endif # ifndef CMSG_LEN # define CMSG_LEN(length) _CMSG_LEN(length) # endif # endif #else # ifdef __CYGWIN__ # error "Cygwin does have a sys/socket.h, doesn't it?!?" # endif /* A platform that lacks . Currently only MinGW is supported. See the gnulib manual regarding Windows sockets. MinGW has the header files winsock2.h and ws2tcpip.h that declare the sys/socket.h definitions we need. Note that you can influence which definitions you get by setting the WINVER symbol before including these two files. For example, getaddrinfo is only available if _WIN32_WINNT >= 0x0501 (that symbol is set indirectly through WINVER). You can set this by adding AC_DEFINE(WINVER, 0x0501) to configure.ac. Note that your code may not run on older Windows releases then. My Windows 2000 box was not able to run the code, for example. The situation is slightly confusing because suggests that getaddrinfo should be available on all Windows releases. */ # if @HAVE_WINSOCK2_H@ # include # endif # if @HAVE_WS2TCPIP_H@ # include # endif /* For shutdown(). */ # if !defined SHUT_RD && defined SD_RECEIVE # define SHUT_RD SD_RECEIVE # endif # if !defined SHUT_WR && defined SD_SEND # define SHUT_WR SD_SEND # endif # if !defined SHUT_RDWR && defined SD_BOTH # define SHUT_RDWR SD_BOTH # endif # if @HAVE_WINSOCK2_H@ /* Include headers needed by the emulation code. */ # include # include # if !GNULIB_defined_socklen_t typedef int socklen_t; # define GNULIB_defined_socklen_t 1 # endif # endif /* Rudimentary 'struct msghdr'; this works as long as you don't try to access msg_control or msg_controllen. */ struct msghdr { void *msg_name; socklen_t msg_namelen; struct iovec *msg_iov; int msg_iovlen; int msg_flags; }; #endif /* Ensure SO_REUSEPORT is defined. */ /* For the subtle differences between SO_REUSEPORT and SO_REUSEADDR, see https://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t and https://lwn.net/Articles/542629/ */ #ifndef SO_REUSEPORT # define SO_REUSEPORT SO_REUSEADDR #endif /* Fix some definitions from . */ #if @HAVE_WINSOCK2_H@ # if !GNULIB_defined_rpl_fd_isset /* Re-define FD_ISSET to avoid a WSA call while we are not using network sockets. */ _GL_SYS_SOCKET_INLINE int rpl_fd_isset (SOCKET fd, fd_set * set) { u_int i; if (set == NULL) return 0; for (i = 0; i < set->fd_count; i++) if (set->fd_array[i] == fd) return 1; return 0; } # define GNULIB_defined_rpl_fd_isset 1 # endif # undef FD_ISSET # define FD_ISSET(fd, set) rpl_fd_isset(fd, set) #endif /* Hide some function declarations from . */ #if @HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_UNISTD_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close close_used_without_including_unistd_h # else _GL_WARN_ON_USE (close, "close() used without including "); # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname gethostname_used_without_including_unistd_h # else _GL_WARN_ON_USE (gethostname, "gethostname() used without including "); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including "); # endif # endif #endif /* Wrap everything else to use libc file descriptors for sockets. */ #if @GNULIB_SOCKET@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket rpl_socket # endif _GL_FUNCDECL_RPL (socket, int, (int domain, int type, int protocol)); _GL_CXXALIAS_RPL (socket, int, (int domain, int type, int protocol)); # else _GL_CXXALIAS_SYS (socket, int, (int domain, int type, int protocol)); # endif _GL_CXXALIASWARN (socket); #elif @HAVE_WINSOCK2_H@ # undef socket # define socket socket_used_without_requesting_gnulib_module_socket #elif defined GNULIB_POSIXCHECK # undef socket # if HAVE_RAW_DECL_SOCKET _GL_WARN_ON_USE (socket, "socket is not always POSIX compliant - " "use gnulib module socket for portability"); # endif #endif #if @GNULIB_CONNECT@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef connect # define connect rpl_connect # endif _GL_FUNCDECL_RPL (connect, int, (int fd, const struct sockaddr *addr, socklen_t addrlen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (connect, int, (int fd, const struct sockaddr *addr, socklen_t addrlen)); # else /* Need to cast, because on NonStop Kernel, the third parameter is size_t addrlen. */ _GL_CXXALIAS_SYS_CAST (connect, int, (int fd, const struct sockaddr *addr, socklen_t addrlen)); # endif _GL_CXXALIASWARN (connect); #elif @HAVE_WINSOCK2_H@ # undef connect # define connect socket_used_without_requesting_gnulib_module_connect #elif defined GNULIB_POSIXCHECK # undef connect # if HAVE_RAW_DECL_CONNECT _GL_WARN_ON_USE (connect, "connect is not always POSIX compliant - " "use gnulib module connect for portability"); # endif #endif #if @GNULIB_ACCEPT@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef accept # define accept rpl_accept # endif _GL_FUNCDECL_RPL (accept, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); _GL_CXXALIAS_RPL (accept, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); # else /* Need to cast, because on Solaris 10 systems, the third parameter is void *addrlen. */ _GL_CXXALIAS_SYS_CAST (accept, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); # endif _GL_CXXALIASWARN (accept); #elif @HAVE_WINSOCK2_H@ # undef accept # define accept accept_used_without_requesting_gnulib_module_accept #elif defined GNULIB_POSIXCHECK # undef accept # if HAVE_RAW_DECL_ACCEPT _GL_WARN_ON_USE (accept, "accept is not always POSIX compliant - " "use gnulib module accept for portability"); # endif #endif #if @GNULIB_BIND@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef bind # define bind rpl_bind # endif _GL_FUNCDECL_RPL (bind, int, (int fd, const struct sockaddr *addr, socklen_t addrlen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (bind, int, (int fd, const struct sockaddr *addr, socklen_t addrlen)); # else /* Need to cast, because on NonStop Kernel, the third parameter is size_t addrlen. */ _GL_CXXALIAS_SYS_CAST (bind, int, (int fd, const struct sockaddr *addr, socklen_t addrlen)); # endif _GL_CXXALIASWARN (bind); #elif @HAVE_WINSOCK2_H@ # undef bind # define bind bind_used_without_requesting_gnulib_module_bind #elif defined GNULIB_POSIXCHECK # undef bind # if HAVE_RAW_DECL_BIND _GL_WARN_ON_USE (bind, "bind is not always POSIX compliant - " "use gnulib module bind for portability"); # endif #endif #if @GNULIB_GETPEERNAME@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getpeername # define getpeername rpl_getpeername # endif _GL_FUNCDECL_RPL (getpeername, int, (int fd, struct sockaddr *addr, socklen_t *addrlen) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (getpeername, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); # else /* Need to cast, because on Solaris 10 systems, the third parameter is void *addrlen. */ _GL_CXXALIAS_SYS_CAST (getpeername, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); # endif _GL_CXXALIASWARN (getpeername); #elif @HAVE_WINSOCK2_H@ # undef getpeername # define getpeername getpeername_used_without_requesting_gnulib_module_getpeername #elif defined GNULIB_POSIXCHECK # undef getpeername # if HAVE_RAW_DECL_GETPEERNAME _GL_WARN_ON_USE (getpeername, "getpeername is not always POSIX compliant - " "use gnulib module getpeername for portability"); # endif #endif #if @GNULIB_GETSOCKNAME@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getsockname # define getsockname rpl_getsockname # endif _GL_FUNCDECL_RPL (getsockname, int, (int fd, struct sockaddr *addr, socklen_t *addrlen) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (getsockname, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); # else /* Need to cast, because on Solaris 10 systems, the third parameter is void *addrlen. */ _GL_CXXALIAS_SYS_CAST (getsockname, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); # endif _GL_CXXALIASWARN (getsockname); #elif @HAVE_WINSOCK2_H@ # undef getsockname # define getsockname getsockname_used_without_requesting_gnulib_module_getsockname #elif defined GNULIB_POSIXCHECK # undef getsockname # if HAVE_RAW_DECL_GETSOCKNAME _GL_WARN_ON_USE (getsockname, "getsockname is not always POSIX compliant - " "use gnulib module getsockname for portability"); # endif #endif #if @GNULIB_GETSOCKOPT@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getsockopt # define getsockopt rpl_getsockopt # endif _GL_FUNCDECL_RPL (getsockopt, int, (int fd, int level, int optname, void *optval, socklen_t *optlen) _GL_ARG_NONNULL ((4, 5))); _GL_CXXALIAS_RPL (getsockopt, int, (int fd, int level, int optname, void *optval, socklen_t *optlen)); # else /* Need to cast, because on Solaris 10 systems, the fifth parameter is void *optlen. */ _GL_CXXALIAS_SYS_CAST (getsockopt, int, (int fd, int level, int optname, void *optval, socklen_t *optlen)); # endif _GL_CXXALIASWARN (getsockopt); #elif @HAVE_WINSOCK2_H@ # undef getsockopt # define getsockopt getsockopt_used_without_requesting_gnulib_module_getsockopt #elif defined GNULIB_POSIXCHECK # undef getsockopt # if HAVE_RAW_DECL_GETSOCKOPT _GL_WARN_ON_USE (getsockopt, "getsockopt is not always POSIX compliant - " "use gnulib module getsockopt for portability"); # endif #endif #if @GNULIB_LISTEN@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef listen # define listen rpl_listen # endif _GL_FUNCDECL_RPL (listen, int, (int fd, int backlog)); _GL_CXXALIAS_RPL (listen, int, (int fd, int backlog)); # else _GL_CXXALIAS_SYS (listen, int, (int fd, int backlog)); # endif _GL_CXXALIASWARN (listen); #elif @HAVE_WINSOCK2_H@ # undef listen # define listen listen_used_without_requesting_gnulib_module_listen #elif defined GNULIB_POSIXCHECK # undef listen # if HAVE_RAW_DECL_LISTEN _GL_WARN_ON_USE (listen, "listen is not always POSIX compliant - " "use gnulib module listen for portability"); # endif #endif #if @GNULIB_RECV@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef recv # define recv rpl_recv # endif _GL_FUNCDECL_RPL (recv, ssize_t, (int fd, void *buf, size_t len, int flags) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (recv, ssize_t, (int fd, void *buf, size_t len, int flags)); # else _GL_CXXALIAS_SYS (recv, ssize_t, (int fd, void *buf, size_t len, int flags)); # endif _GL_CXXALIASWARN (recv); #elif @HAVE_WINSOCK2_H@ # undef recv # define recv recv_used_without_requesting_gnulib_module_recv #elif defined GNULIB_POSIXCHECK # undef recv # if HAVE_RAW_DECL_RECV _GL_WARN_ON_USE (recv, "recv is not always POSIX compliant - " "use gnulib module recv for portability"); # endif #endif #if @GNULIB_SEND@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef send # define send rpl_send # endif _GL_FUNCDECL_RPL (send, ssize_t, (int fd, const void *buf, size_t len, int flags) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (send, ssize_t, (int fd, const void *buf, size_t len, int flags)); # else _GL_CXXALIAS_SYS (send, ssize_t, (int fd, const void *buf, size_t len, int flags)); # endif _GL_CXXALIASWARN (send); #elif @HAVE_WINSOCK2_H@ # undef send # define send send_used_without_requesting_gnulib_module_send #elif defined GNULIB_POSIXCHECK # undef send # if HAVE_RAW_DECL_SEND _GL_WARN_ON_USE (send, "send is not always POSIX compliant - " "use gnulib module send for portability"); # endif #endif #if @GNULIB_RECVFROM@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef recvfrom # define recvfrom rpl_recvfrom # endif _GL_FUNCDECL_RPL (recvfrom, ssize_t, (int fd, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (recvfrom, ssize_t, (int fd, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen)); # else /* Need to cast, because on Solaris 10 systems, the sixth parameter is void *fromlen. */ _GL_CXXALIAS_SYS_CAST (recvfrom, ssize_t, (int fd, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen)); # endif _GL_CXXALIASWARN (recvfrom); #elif @HAVE_WINSOCK2_H@ # undef recvfrom # define recvfrom recvfrom_used_without_requesting_gnulib_module_recvfrom #elif defined GNULIB_POSIXCHECK # undef recvfrom # if HAVE_RAW_DECL_RECVFROM _GL_WARN_ON_USE (recvfrom, "recvfrom is not always POSIX compliant - " "use gnulib module recvfrom for portability"); # endif #endif #if @GNULIB_SENDTO@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sendto # define sendto rpl_sendto # endif _GL_FUNCDECL_RPL (sendto, ssize_t, (int fd, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (sendto, ssize_t, (int fd, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)); # else /* Need to cast, because on NonStop Kernel, the sixth parameter is size_t tolen. */ _GL_CXXALIAS_SYS_CAST (sendto, ssize_t, (int fd, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)); # endif _GL_CXXALIASWARN (sendto); #elif @HAVE_WINSOCK2_H@ # undef sendto # define sendto sendto_used_without_requesting_gnulib_module_sendto #elif defined GNULIB_POSIXCHECK # undef sendto # if HAVE_RAW_DECL_SENDTO _GL_WARN_ON_USE (sendto, "sendto is not always POSIX compliant - " "use gnulib module sendto for portability"); # endif #endif #if @GNULIB_SETSOCKOPT@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setsockopt # define setsockopt rpl_setsockopt # endif _GL_FUNCDECL_RPL (setsockopt, int, (int fd, int level, int optname, const void * optval, socklen_t optlen) _GL_ARG_NONNULL ((4))); _GL_CXXALIAS_RPL (setsockopt, int, (int fd, int level, int optname, const void * optval, socklen_t optlen)); # else /* Need to cast, because on NonStop Kernel, the fifth parameter is size_t optlen. */ _GL_CXXALIAS_SYS_CAST (setsockopt, int, (int fd, int level, int optname, const void * optval, socklen_t optlen)); # endif _GL_CXXALIASWARN (setsockopt); #elif @HAVE_WINSOCK2_H@ # undef setsockopt # define setsockopt setsockopt_used_without_requesting_gnulib_module_setsockopt #elif defined GNULIB_POSIXCHECK # undef setsockopt # if HAVE_RAW_DECL_SETSOCKOPT _GL_WARN_ON_USE (setsockopt, "setsockopt is not always POSIX compliant - " "use gnulib module setsockopt for portability"); # endif #endif #if @GNULIB_SHUTDOWN@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef shutdown # define shutdown rpl_shutdown # endif _GL_FUNCDECL_RPL (shutdown, int, (int fd, int how)); _GL_CXXALIAS_RPL (shutdown, int, (int fd, int how)); # else _GL_CXXALIAS_SYS (shutdown, int, (int fd, int how)); # endif _GL_CXXALIASWARN (shutdown); #elif @HAVE_WINSOCK2_H@ # undef shutdown # define shutdown shutdown_used_without_requesting_gnulib_module_shutdown #elif defined GNULIB_POSIXCHECK # undef shutdown # if HAVE_RAW_DECL_SHUTDOWN _GL_WARN_ON_USE (shutdown, "shutdown is not always POSIX compliant - " "use gnulib module shutdown for portability"); # endif #endif #if @GNULIB_ACCEPT4@ /* Accept a connection on a socket, with specific opening flags. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). See also the Linux man page at . */ # if @HAVE_ACCEPT4@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define accept4 rpl_accept4 # endif _GL_FUNCDECL_RPL (accept4, int, (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)); _GL_CXXALIAS_RPL (accept4, int, (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)); # else _GL_FUNCDECL_SYS (accept4, int, (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)); _GL_CXXALIAS_SYS (accept4, int, (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)); # endif _GL_CXXALIASWARN (accept4); #elif defined GNULIB_POSIXCHECK # undef accept4 # if HAVE_RAW_DECL_ACCEPT4 _GL_WARN_ON_USE (accept4, "accept4 is unportable - " "use gnulib module accept4 for portability"); # endif #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */ #endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */ #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/sys_stat.in.h0000644000000000000000000000010713726163410021440 xustar000000000000000024 mtime=1599661832.606 23 atime=1599661832.76 24 ctime=1599661999.136 libprelude-5.2.0/libmissing/sys_stat.in.h0000644000000000000000000005362413726163410020447 0ustar00rootroot00000000000000/* Provide a more complete sys/stat.h header file. Copyright (C) 2005-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ /* This file is supposed to be used on platforms where is incomplete. It is intended to provide definitions and prototypes needed by an application. Start with what the system provides. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_sys_stat_h /* Special invocation convention. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_STAT_H /* Get nlink_t. May also define off_t to a 64-bit type on native Windows. */ #include /* Get struct timespec. */ #include /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ #ifndef _@GUARD_PREFIX@_SYS_STAT_H #define _@GUARD_PREFIX@_SYS_STAT_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Before doing "#define mkdir rpl_mkdir" below, we need to include all headers that may declare mkdir(). Native Windows platforms declare mkdir in and/or , not in . */ #if defined _WIN32 && ! defined __CYGWIN__ # include /* mingw32, mingw64 */ # include /* mingw64, MSVC 9 */ #endif /* Native Windows platforms declare umask() in . */ #if 0 && (defined _WIN32 && ! defined __CYGWIN__) # include #endif /* Large File Support on native Windows. */ #if @WINDOWS_64_BIT_ST_SIZE@ # define stat _stati64 #endif /* Optionally, override 'struct stat' on native Windows. */ #if @GNULIB_OVERRIDES_STRUCT_STAT@ # undef stat # if @GNULIB_STAT@ # define stat rpl_stat # else /* Provoke a clear link error if stat() is used as a function and module 'stat' is not in use. */ # define stat stat_used_without_requesting_gnulib_module_stat # endif # if !GNULIB_defined_struct_stat struct stat { dev_t st_dev; ino_t st_ino; mode_t st_mode; nlink_t st_nlink; # if 0 uid_t st_uid; # else /* uid_t is not defined by default on native Windows. */ short st_uid; # endif # if 0 gid_t st_gid; # else /* gid_t is not defined by default on native Windows. */ short st_gid; # endif dev_t st_rdev; off_t st_size; # if 0 blksize_t st_blksize; blkcnt_t st_blocks; # endif # if @WINDOWS_STAT_TIMESPEC@ struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # else time_t st_atime; time_t st_mtime; time_t st_ctime; # endif }; # if @WINDOWS_STAT_TIMESPEC@ # define st_atime st_atim.tv_sec # define st_mtime st_mtim.tv_sec # define st_ctime st_ctim.tv_sec /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_STAT_TIMESPEC 1 # endif # define GNULIB_defined_struct_stat 1 # endif /* Other possible values of st_mode. */ # if 0 # define _S_IFBLK 0x6000 # endif # if 0 # define _S_IFLNK 0xA000 # endif # if 0 # define _S_IFSOCK 0xC000 # endif #endif #ifndef S_IFIFO # ifdef _S_IFIFO # define S_IFIFO _S_IFIFO # endif #endif #ifndef S_IFMT # define S_IFMT 0170000 #endif #if STAT_MACROS_BROKEN # undef S_ISBLK # undef S_ISCHR # undef S_ISDIR # undef S_ISFIFO # undef S_ISLNK # undef S_ISNAM # undef S_ISMPB # undef S_ISMPC # undef S_ISNWK # undef S_ISREG # undef S_ISSOCK #endif #ifndef S_ISBLK # ifdef S_IFBLK # define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) # else # define S_ISBLK(m) 0 # endif #endif #ifndef S_ISCHR # ifdef S_IFCHR # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) # else # define S_ISCHR(m) 0 # endif #endif #ifndef S_ISDIR # ifdef S_IFDIR # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) # else # define S_ISDIR(m) 0 # endif #endif #ifndef S_ISDOOR /* Solaris 2.5 and up */ # define S_ISDOOR(m) 0 #endif #ifndef S_ISFIFO # ifdef S_IFIFO # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) # else # define S_ISFIFO(m) 0 # endif #endif #ifndef S_ISLNK # ifdef S_IFLNK # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) # else # define S_ISLNK(m) 0 # endif #endif #ifndef S_ISMPB /* V7 */ # ifdef S_IFMPB # define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) # define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) # else # define S_ISMPB(m) 0 # define S_ISMPC(m) 0 # endif #endif #ifndef S_ISMPX /* AIX */ # define S_ISMPX(m) 0 #endif #ifndef S_ISNAM /* Xenix */ # ifdef S_IFNAM # define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) # else # define S_ISNAM(m) 0 # endif #endif #ifndef S_ISNWK /* HP/UX */ # ifdef S_IFNWK # define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) # else # define S_ISNWK(m) 0 # endif #endif #ifndef S_ISPORT /* Solaris 10 and up */ # define S_ISPORT(m) 0 #endif #ifndef S_ISREG # ifdef S_IFREG # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) # else # define S_ISREG(m) 0 # endif #endif #ifndef S_ISSOCK # ifdef S_IFSOCK # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) # else # define S_ISSOCK(m) 0 # endif #endif #ifndef S_TYPEISMQ # define S_TYPEISMQ(p) 0 #endif #ifndef S_TYPEISTMO # define S_TYPEISTMO(p) 0 #endif #ifndef S_TYPEISSEM # ifdef S_INSEM # define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM) # else # define S_TYPEISSEM(p) 0 # endif #endif #ifndef S_TYPEISSHM # ifdef S_INSHD # define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD) # else # define S_TYPEISSHM(p) 0 # endif #endif /* high performance ("contiguous data") */ #ifndef S_ISCTG # define S_ISCTG(p) 0 #endif /* Cray DMF (data migration facility): off line, with data */ #ifndef S_ISOFD # define S_ISOFD(p) 0 #endif /* Cray DMF (data migration facility): off line, with no data */ #ifndef S_ISOFL # define S_ISOFL(p) 0 #endif /* 4.4BSD whiteout */ #ifndef S_ISWHT # define S_ISWHT(m) 0 #endif /* If any of the following are undefined, define them to their de facto standard values. */ #if !S_ISUID # define S_ISUID 04000 #endif #if !S_ISGID # define S_ISGID 02000 #endif /* S_ISVTX is a common extension to POSIX. */ #ifndef S_ISVTX # define S_ISVTX 01000 #endif #if !S_IRUSR && S_IREAD # define S_IRUSR S_IREAD #endif #if !S_IRUSR # define S_IRUSR 00400 #endif #if !S_IRGRP # define S_IRGRP (S_IRUSR >> 3) #endif #if !S_IROTH # define S_IROTH (S_IRUSR >> 6) #endif #if !S_IWUSR && S_IWRITE # define S_IWUSR S_IWRITE #endif #if !S_IWUSR # define S_IWUSR 00200 #endif #if !S_IWGRP # define S_IWGRP (S_IWUSR >> 3) #endif #if !S_IWOTH # define S_IWOTH (S_IWUSR >> 6) #endif #if !S_IXUSR && S_IEXEC # define S_IXUSR S_IEXEC #endif #if !S_IXUSR # define S_IXUSR 00100 #endif #if !S_IXGRP # define S_IXGRP (S_IXUSR >> 3) #endif #if !S_IXOTH # define S_IXOTH (S_IXUSR >> 6) #endif #if !S_IRWXU # define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) #endif #if !S_IRWXG # define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) #endif #if !S_IRWXO # define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) #endif /* S_IXUGO is a common extension to POSIX. */ #if !S_IXUGO # define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) #endif #ifndef S_IRWXUGO # define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) #endif /* Macros for futimens and utimensat. */ #ifndef UTIME_NOW # define UTIME_NOW (-1) # define UTIME_OMIT (-2) #endif #if @GNULIB_FCHMODAT@ # if !@HAVE_FCHMODAT@ _GL_FUNCDECL_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag)); _GL_CXXALIASWARN (fchmodat); #elif defined GNULIB_POSIXCHECK # undef fchmodat # if HAVE_RAW_DECL_FCHMODAT _GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FSTAT@ # if @REPLACE_FSTAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fstat # define fstat rpl_fstat # endif _GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf)); # else _GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf)); # endif _GL_CXXALIASWARN (fstat); #elif @GNULIB_OVERRIDES_STRUCT_STAT@ # undef fstat # define fstat fstat_used_without_requesting_gnulib_module_fstat #elif @WINDOWS_64_BIT_ST_SIZE@ /* Above, we define stat to _stati64. */ # define fstat _fstati64 #elif defined GNULIB_POSIXCHECK # undef fstat # if HAVE_RAW_DECL_FSTAT _GL_WARN_ON_USE (fstat, "fstat has portability problems - " "use gnulib module fstat for portability"); # endif #endif #if @GNULIB_FSTATAT@ # if @REPLACE_FSTATAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fstatat # define fstatat rpl_fstatat # endif _GL_FUNCDECL_RPL (fstatat, int, (int fd, char const *name, struct stat *st, int flags) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (fstatat, int, (int fd, char const *name, struct stat *st, int flags)); # else # if !@HAVE_FSTATAT@ _GL_FUNCDECL_SYS (fstatat, int, (int fd, char const *name, struct stat *st, int flags) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (fstatat, int, (int fd, char const *name, struct stat *st, int flags)); # endif _GL_CXXALIASWARN (fstatat); #elif @GNULIB_OVERRIDES_STRUCT_STAT@ # undef fstatat # define fstatat fstatat_used_without_requesting_gnulib_module_fstatat #elif defined GNULIB_POSIXCHECK # undef fstatat # if HAVE_RAW_DECL_FSTATAT _GL_WARN_ON_USE (fstatat, "fstatat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FUTIMENS@ /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens implementation relies on futimesat, which on Solaris 10 makes an invocation to futimens that is meant to invoke the libc's futimens(), not gnulib's futimens(). */ # if @REPLACE_FUTIMENS@ || (!@HAVE_FUTIMENS@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef futimens # define futimens rpl_futimens # endif _GL_FUNCDECL_RPL (futimens, int, (int fd, struct timespec const times[2])); _GL_CXXALIAS_RPL (futimens, int, (int fd, struct timespec const times[2])); # else # if !@HAVE_FUTIMENS@ _GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif _GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif # if @HAVE_FUTIMENS@ _GL_CXXALIASWARN (futimens); # endif #elif defined GNULIB_POSIXCHECK # undef futimens # if HAVE_RAW_DECL_FUTIMENS _GL_WARN_ON_USE (futimens, "futimens is not portable - " "use gnulib module futimens for portability"); # endif #endif #if @GNULIB_LCHMOD@ /* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME denotes a symbolic link. */ # if !@HAVE_LCHMOD@ /* The lchmod replacement follows symbolic links. Callers should take this into account; lchmod should be applied only to arguments that are known to not be symbolic links. On hosts that lack lchmod, this can lead to race conditions between the check and the invocation of lchmod, but we know of no workarounds that are reliable in general. You might try requesting support for lchmod from your operating system supplier. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lchmod chmod # endif /* Need to cast, because on mingw, the second parameter of chmod is int mode. */ _GL_CXXALIAS_RPL_CAST_1 (lchmod, chmod, int, (const char *filename, mode_t mode)); # else # if 0 /* assume already declared */ _GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode)); # endif # if @HAVE_LCHMOD@ _GL_CXXALIASWARN (lchmod); # endif #elif defined GNULIB_POSIXCHECK # undef lchmod # if HAVE_RAW_DECL_LCHMOD _GL_WARN_ON_USE (lchmod, "lchmod is unportable - " "use gnulib module lchmod for portability"); # endif #endif #if @GNULIB_LSTAT@ # if ! @HAVE_LSTAT@ /* mingw does not support symlinks, therefore it does not have lstat. But without links, stat does just fine. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lstat stat # endif _GL_CXXALIAS_RPL_1 (lstat, stat, int, (const char *name, struct stat *buf)); # elif @REPLACE_LSTAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lstat # define lstat rpl_lstat # endif _GL_FUNCDECL_RPL (lstat, int, (const char *name, struct stat *buf) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (lstat, int, (const char *name, struct stat *buf)); # else _GL_CXXALIAS_SYS (lstat, int, (const char *name, struct stat *buf)); # endif # if @HAVE_LSTAT@ _GL_CXXALIASWARN (lstat); # endif #elif @GNULIB_OVERRIDES_STRUCT_STAT@ # undef lstat # define lstat lstat_used_without_requesting_gnulib_module_lstat #elif defined GNULIB_POSIXCHECK # undef lstat # if HAVE_RAW_DECL_LSTAT _GL_WARN_ON_USE (lstat, "lstat is unportable - " "use gnulib module lstat for portability"); # endif #endif #if @REPLACE_MKDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkdir # define mkdir rpl_mkdir # endif _GL_FUNCDECL_RPL (mkdir, int, (char const *name, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); #else /* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. Additionally, it declares _mkdir (and depending on compile flags, an alias mkdir), only in the nonstandard includes and , which are included above. */ # if defined _WIN32 && ! defined __CYGWIN__ # if !GNULIB_defined_rpl_mkdir static int rpl_mkdir (char const *name, mode_t mode) { return _mkdir (name); } # define GNULIB_defined_rpl_mkdir 1 # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mkdir rpl_mkdir # endif _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); # else _GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); # endif #endif _GL_CXXALIASWARN (mkdir); #if @GNULIB_MKDIRAT@ # if !@HAVE_MKDIRAT@ _GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode)); _GL_CXXALIASWARN (mkdirat); #elif defined GNULIB_POSIXCHECK # undef mkdirat # if HAVE_RAW_DECL_MKDIRAT _GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_MKFIFO@ # if @REPLACE_MKFIFO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkfifo # define mkfifo rpl_mkfifo # endif _GL_FUNCDECL_RPL (mkfifo, int, (char const *file, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkfifo, int, (char const *file, mode_t mode)); # else # if !@HAVE_MKFIFO@ _GL_FUNCDECL_SYS (mkfifo, int, (char const *file, mode_t mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode)); # endif _GL_CXXALIASWARN (mkfifo); #elif defined GNULIB_POSIXCHECK # undef mkfifo # if HAVE_RAW_DECL_MKFIFO _GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - " "use gnulib module mkfifo for portability"); # endif #endif #if @GNULIB_MKFIFOAT@ # if !@HAVE_MKFIFOAT@ _GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)); _GL_CXXALIASWARN (mkfifoat); #elif defined GNULIB_POSIXCHECK # undef mkfifoat # if HAVE_RAW_DECL_MKFIFOAT _GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - " "use gnulib module mkfifoat for portability"); # endif #endif #if @GNULIB_MKNOD@ # if @REPLACE_MKNOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mknod # define mknod rpl_mknod # endif _GL_FUNCDECL_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev)); # else # if !@HAVE_MKNOD@ _GL_FUNCDECL_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on OSF/1 5.1, the third parameter is '...'. */ _GL_CXXALIAS_SYS_CAST (mknod, int, (char const *file, mode_t mode, dev_t dev)); # endif _GL_CXXALIASWARN (mknod); #elif defined GNULIB_POSIXCHECK # undef mknod # if HAVE_RAW_DECL_MKNOD _GL_WARN_ON_USE (mknod, "mknod is not portable - " "use gnulib module mknod for portability"); # endif #endif #if @GNULIB_MKNODAT@ # if !@HAVE_MKNODAT@ _GL_FUNCDECL_SYS (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev)); _GL_CXXALIASWARN (mknodat); #elif defined GNULIB_POSIXCHECK # undef mknodat # if HAVE_RAW_DECL_MKNODAT _GL_WARN_ON_USE (mknodat, "mknodat is not portable - " "use gnulib module mkfifoat for portability"); # endif #endif #if @GNULIB_STAT@ # if @REPLACE_STAT@ # if !@GNULIB_OVERRIDES_STRUCT_STAT@ /* We can't use the object-like #define stat rpl_stat, because of struct stat. This means that rpl_stat will not be used if the user does (stat)(a,b). Oh well. */ # if defined _AIX && defined stat && defined _LARGE_FILES /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, so we have to replace stat64() instead of stat(). */ # undef stat64 # define stat64(name, st) rpl_stat (name, st) # elif @WINDOWS_64_BIT_ST_SIZE@ /* Above, we define stat to _stati64. */ # if defined __MINGW32__ && defined _stati64 # ifndef _USE_32BIT_TIME_T /* The system headers define _stati64 to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # elif defined _MSC_VER && defined _stati64 # ifdef _USE_32BIT_TIME_T /* The system headers define _stati64 to _stat32i64. */ # undef _stat32i64 # define _stat32i64(name, st) rpl_stat (name, st) # else /* The system headers define _stati64 to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # else # undef _stati64 # define _stati64(name, st) rpl_stat (name, st) # endif # elif defined __MINGW32__ && defined stat # ifdef _USE_32BIT_TIME_T /* The system headers define stat to _stat32i64. */ # undef _stat32i64 # define _stat32i64(name, st) rpl_stat (name, st) # else /* The system headers define stat to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # elif defined _MSC_VER && defined stat # ifdef _USE_32BIT_TIME_T /* The system headers define stat to _stat32. */ # undef _stat32 # define _stat32(name, st) rpl_stat (name, st) # else /* The system headers define stat to _stat64i32. */ # undef _stat64i32 # define _stat64i32(name, st) rpl_stat (name, st) # endif # else /* !(_AIX || __MINGW32__ || _MSC_VER) */ # undef stat # define stat(name, st) rpl_stat (name, st) # endif /* !_LARGE_FILES */ # endif /* !@GNULIB_OVERRIDES_STRUCT_STAT@ */ _GL_EXTERN_C int stat (const char *name, struct stat *buf) _GL_ARG_NONNULL ((1, 2)); # endif #elif @GNULIB_OVERRIDES_STRUCT_STAT@ /* see above: #define stat stat_used_without_requesting_gnulib_module_stat */ #elif defined GNULIB_POSIXCHECK # undef stat # if HAVE_RAW_DECL_STAT _GL_WARN_ON_USE (stat, "stat is unportable - " "use gnulib module stat for portability"); # endif #endif #if @GNULIB_UTIMENSAT@ /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat implementation relies on futimesat, which on Solaris 10 makes an invocation to utimensat that is meant to invoke the libc's utimensat(), not gnulib's utimensat(). */ # if @REPLACE_UTIMENSAT@ || (!@HAVE_UTIMENSAT@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef utimensat # define utimensat rpl_utimensat # endif _GL_FUNCDECL_RPL (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # else # if !@HAVE_UTIMENSAT@ _GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # endif # if @HAVE_UTIMENSAT@ _GL_CXXALIASWARN (utimensat); # endif #elif defined GNULIB_POSIXCHECK # undef utimensat # if HAVE_RAW_DECL_UTIMENSAT _GL_WARN_ON_USE (utimensat, "utimensat is not portable - " "use gnulib module utimensat for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/sys_time.in.h0000644000000000000000000000010713726163410021423 xustar000000000000000024 mtime=1599661832.607 23 atime=1599661832.76 24 ctime=1599661999.138 libprelude-5.2.0/libmissing/sys_time.in.h0000644000000000000000000001724513726163410020431 0ustar00rootroot00000000000000/* Provide a more complete sys/time.h. Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Paul Eggert. */ #ifndef _@GUARD_PREFIX@_SYS_TIME_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* On Cygwin and on many BSDish systems, includes itself recursively via . Simply delegate to the system's header in this case; it is a no-op. Without this extra ifdef, the C++ gettimeofday declaration below would be a forward declaration in gnulib's nested . */ #if defined _CYGWIN_SYS_TIME_H || defined _SYS_TIME_H || defined _SYS_TIME_H_ # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ #else /* The include_next requires a split double-inclusion guard. */ #if @HAVE_SYS_TIME_H@ # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ #endif #ifndef _@GUARD_PREFIX@_SYS_TIME_H #define _@GUARD_PREFIX@_SYS_TIME_H #if ! @HAVE_SYS_TIME_H@ # include #endif /* On native Windows with MSVC, get the 'struct timeval' type. Also, on native Windows with a 64-bit time_t, where we are overriding the 'struct timeval' type, get all declarations of system functions whose signature contains 'struct timeval'. */ #if (defined _MSC_VER || @REPLACE_STRUCT_TIMEVAL@) && @HAVE_WINSOCK2_H@ && !defined _GL_INCLUDING_WINSOCK2_H # define _GL_INCLUDING_WINSOCK2_H # include # undef _GL_INCLUDING_WINSOCK2_H #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #ifdef __cplusplus extern "C" { #endif #if !@HAVE_STRUCT_TIMEVAL@ || @REPLACE_STRUCT_TIMEVAL@ # if @REPLACE_STRUCT_TIMEVAL@ # define timeval rpl_timeval # endif # if !GNULIB_defined_struct_timeval struct timeval { time_t tv_sec; long int tv_usec; }; # define GNULIB_defined_struct_timeval 1 # endif #endif #ifdef __cplusplus } #endif #if @GNULIB_GETTIMEOFDAY@ # if @REPLACE_GETTIMEOFDAY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gettimeofday # define gettimeofday rpl_gettimeofday # endif _GL_FUNCDECL_RPL (gettimeofday, int, (struct timeval *restrict, void *restrict) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gettimeofday, int, (struct timeval *restrict, void *restrict)); # else # if !@HAVE_GETTIMEOFDAY@ _GL_FUNCDECL_SYS (gettimeofday, int, (struct timeval *restrict, void *restrict) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on glibc systems, by default, the second argument is struct timezone *. */ _GL_CXXALIAS_SYS_CAST (gettimeofday, int, (struct timeval *restrict, void *restrict)); # endif _GL_CXXALIASWARN (gettimeofday); # if defined __cplusplus && defined GNULIB_NAMESPACE namespace GNULIB_NAMESPACE { typedef ::timeval #undef timeval timeval; } # endif #elif defined GNULIB_POSIXCHECK # undef gettimeofday # if HAVE_RAW_DECL_GETTIMEOFDAY _GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - " "use gnulib module gettimeofday for portability"); # endif #endif /* Hide some function declarations from . */ #if defined _MSC_VER && @HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_UNISTD_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close close_used_without_including_unistd_h # else _GL_WARN_ON_USE (close, "close() used without including "); # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname gethostname_used_without_including_unistd_h # else _GL_WARN_ON_USE (gethostname, "gethostname() used without including "); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h # undef connect # define connect connect_used_without_including_sys_socket_h # undef accept # define accept accept_used_without_including_sys_socket_h # undef bind # define bind bind_used_without_including_sys_socket_h # undef getpeername # define getpeername getpeername_used_without_including_sys_socket_h # undef getsockname # define getsockname getsockname_used_without_including_sys_socket_h # undef getsockopt # define getsockopt getsockopt_used_without_including_sys_socket_h # undef listen # define listen listen_used_without_including_sys_socket_h # undef recv # define recv recv_used_without_including_sys_socket_h # undef send # define send send_used_without_including_sys_socket_h # undef recvfrom # define recvfrom recvfrom_used_without_including_sys_socket_h # undef sendto # define sendto sendto_used_without_including_sys_socket_h # undef setsockopt # define setsockopt setsockopt_used_without_including_sys_socket_h # undef shutdown # define shutdown shutdown_used_without_including_sys_socket_h # else _GL_WARN_ON_USE (socket, "socket() used without including "); _GL_WARN_ON_USE (connect, "connect() used without including "); _GL_WARN_ON_USE (accept, "accept() used without including "); _GL_WARN_ON_USE (bind, "bind() used without including "); _GL_WARN_ON_USE (getpeername, "getpeername() used without including "); _GL_WARN_ON_USE (getsockname, "getsockname() used without including "); _GL_WARN_ON_USE (getsockopt, "getsockopt() used without including "); _GL_WARN_ON_USE (listen, "listen() used without including "); _GL_WARN_ON_USE (recv, "recv() used without including "); _GL_WARN_ON_USE (send, "send() used without including "); _GL_WARN_ON_USE (recvfrom, "recvfrom() used without including "); _GL_WARN_ON_USE (sendto, "sendto() used without including "); _GL_WARN_ON_USE (setsockopt, "setsockopt() used without including "); _GL_WARN_ON_USE (shutdown, "shutdown() used without including "); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including "); # endif # endif #endif #endif /* _@GUARD_PREFIX@_SYS_TIME_H */ #endif /* _CYGWIN_SYS_TIME_H */ #endif /* _@GUARD_PREFIX@_SYS_TIME_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/tests0000644000000000000000000000011013726163657020105 xustar000000000000000024 mtime=1599661999.679 24 atime=1599662006.648 24 ctime=1599661999.679 libprelude-5.2.0/libmissing/tests/0000755000000000000000000000000013726163657017165 5ustar00rootroot00000000000000libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/glthread0000644000000000000000000000011013726163657021677 xustar000000000000000024 mtime=1599661999.263 24 atime=1599662006.648 24 ctime=1599661999.263 libprelude-5.2.0/libmissing/tests/glthread/0000755000000000000000000000000013726163657020757 5ustar00rootroot00000000000000libprelude-5.2.0/libmissing/tests/glthread/PaxHeaders.14770/yield.h0000644000000000000000000000011013726163410023216 xustar000000000000000024 mtime=1599661832.612 24 atime=1599661832.761 24 ctime=1599661999.263 libprelude-5.2.0/libmissing/tests/glthread/yield.h0000644000000000000000000000475013726163410022227 0ustar00rootroot00000000000000/* Yielding the processor to other threads and processes. Copyright (C) 2005-2018 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 3, 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, see . */ /* This file contains a primitive for yielding the processor to other threads. extern void gl_thread_yield (void); */ #ifndef _GLTHREAD_YIELD_H #define _GLTHREAD_YIELD_H #include /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # ifdef __cplusplus extern "C" { # endif # define gl_thread_yield() \ sched_yield () # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ # include # ifdef __cplusplus extern "C" { # endif # define gl_thread_yield() \ pth_yield (NULL) # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ # include # ifdef __cplusplus extern "C" { # endif # define gl_thread_yield() \ thr_yield () # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # ifdef __cplusplus extern "C" { # endif # define gl_thread_yield() \ Sleep (0) # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS) /* Provide dummy implementation if threads are not supported. */ # define gl_thread_yield() 0 #endif /* ========================================================================= */ #endif /* _GLTHREAD_YIELD_H */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163515022220 xustar000000000000000024 mtime=1599661901.672 24 atime=1599661945.337 24 ctime=1599661999.244 libprelude-5.2.0/libmissing/tests/Makefile.in0000644000000000000000000070533113726163515021234 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ TESTS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \ test-arpa_inet$(EXEEXT) test-binary-io.sh test-bind$(EXEEXT) \ test-btowc1.sh test-btowc2.sh test-c-ctype$(EXEEXT) \ test-c-strcase.sh test-cloexec$(EXEEXT) test-close$(EXEEXT) \ test-cond$(EXEEXT) test-connect$(EXEEXT) test-ctype$(EXEEXT) \ test-dup2$(EXEEXT) test-environ$(EXEEXT) test-errno$(EXEEXT) \ test-fclose$(EXEEXT) test-fcntl-h$(EXEEXT) test-fcntl$(EXEEXT) \ test-fdopen$(EXEEXT) test-fflush$(EXEEXT) test-fflush2.sh \ test-fgetc$(EXEEXT) test-float$(EXEEXT) test-fopen$(EXEEXT) \ test-fpurge$(EXEEXT) test-fputc$(EXEEXT) test-fread$(EXEEXT) \ test-freading$(EXEEXT) test-fseek.sh test-fseek2.sh \ test-fseeko.sh test-fseeko2.sh test-fseeko3.sh test-fseeko4.sh \ test-fstat$(EXEEXT) test-ftell.sh test-ftell2.sh \ test-ftell3$(EXEEXT) test-ftello.sh test-ftello2.sh \ test-ftello3$(EXEEXT) test-ftello4.sh test-ftruncate.sh \ test-fwrite$(EXEEXT) test-getaddrinfo$(EXEEXT) \ test-getcwd-lgpl$(EXEEXT) test-getdelim$(EXEEXT) \ test-getdtablesize$(EXEEXT) test-gethostname$(EXEEXT) \ test-getline$(EXEEXT) test-getsockname$(EXEEXT) \ test-gettimeofday$(EXEEXT) test-ignore-value$(EXEEXT) \ test-inet_ntop$(EXEEXT) test-inet_pton$(EXEEXT) \ test-intprops$(EXEEXT) test-inttypes$(EXEEXT) \ test-ioctl$(EXEEXT) test-isblank$(EXEEXT) \ test-langinfo$(EXEEXT) test-limits-h$(EXEEXT) \ test-listen$(EXEEXT) test-locale$(EXEEXT) \ test-localeconv$(EXEEXT) test-localename$(EXEEXT) \ test-rwlock1$(EXEEXT) test-lock$(EXEEXT) test-once1$(EXEEXT) \ test-once2$(EXEEXT) test-lseek.sh test-lstat$(EXEEXT) \ test-malloca$(EXEEXT) test-mbrtowc1.sh test-mbrtowc2.sh \ test-mbrtowc3.sh test-mbrtowc4.sh test-mbrtowc5.sh \ test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh \ test-mbrtowc-w32-3.sh test-mbrtowc-w32-4.sh \ test-mbrtowc-w32-5.sh test-mbsinit.sh test-memchr$(EXEEXT) \ test-memmem$(EXEEXT) test-nanosleep$(EXEEXT) \ test-netdb$(EXEEXT) test-netinet_in$(EXEEXT) \ test-nl_langinfo.sh test-open$(EXEEXT) test-pathmax$(EXEEXT) \ test-perror.sh test-perror2$(EXEEXT) test-pipe$(EXEEXT) \ test-poll-h$(EXEEXT) test-poll$(EXEEXT) \ test-pthread_sigmask1$(EXEEXT) test-pthread_sigmask2$(EXEEXT) \ test-raise$(EXEEXT) test-regex$(EXEEXT) test-select$(EXEEXT) \ test-select-in.sh test-select-out.sh test-setenv$(EXEEXT) \ test-setlocale1.sh test-setlocale2.sh test-setsockopt$(EXEEXT) \ test-sigaction$(EXEEXT) test-signal-h$(EXEEXT) \ test-sigprocmask$(EXEEXT) test-sleep$(EXEEXT) \ test-snprintf$(EXEEXT) test-sockets$(EXEEXT) \ test-stat$(EXEEXT) test-stat-time$(EXEEXT) \ test-stdalign$(EXEEXT) test-stdbool$(EXEEXT) \ test-stddef$(EXEEXT) test-stdint$(EXEEXT) test-stdio$(EXEEXT) \ test-stdlib$(EXEEXT) test-strcasestr$(EXEEXT) \ test-strerror$(EXEEXT) test-strerror_r$(EXEEXT) \ test-string$(EXEEXT) test-strings$(EXEEXT) \ test-strnlen$(EXEEXT) test-symlink$(EXEEXT) \ test-sys_ioctl$(EXEEXT) test-sys_select$(EXEEXT) \ test-sys_socket$(EXEEXT) test-sys_stat$(EXEEXT) \ test-sys_time$(EXEEXT) test-sys_types$(EXEEXT) \ test-sys_uio$(EXEEXT) test-sys_utsname$(EXEEXT) test-init.sh \ test-thread_self$(EXEEXT) test-thread_create$(EXEEXT) \ test-time$(EXEEXT) test-tls$(EXEEXT) test-uname$(EXEEXT) \ test-unistd$(EXEEXT) test-unsetenv$(EXEEXT) \ test-usleep$(EXEEXT) test-vasnprintf$(EXEEXT) \ test-verify$(EXEEXT) test-verify.sh test-vsnprintf$(EXEEXT) \ test-wchar$(EXEEXT) test-wcrtomb.sh test-wcrtomb-w32-1.sh \ test-wcrtomb-w32-2.sh test-wcrtomb-w32-3.sh \ test-wcrtomb-w32-4.sh test-wcrtomb-w32-5.sh \ test-wctype-h$(EXEEXT) test-write$(EXEEXT) XFAIL_TESTS = noinst_PROGRAMS = test-localcharset$(EXEEXT) check_PROGRAMS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \ test-arpa_inet$(EXEEXT) test-binary-io$(EXEEXT) \ test-bind$(EXEEXT) test-btowc$(EXEEXT) test-c-ctype$(EXEEXT) \ test-c-strcasecmp$(EXEEXT) test-c-strncasecmp$(EXEEXT) \ test-cloexec$(EXEEXT) test-close$(EXEEXT) test-cond$(EXEEXT) \ test-connect$(EXEEXT) test-ctype$(EXEEXT) test-dup2$(EXEEXT) \ test-environ$(EXEEXT) test-errno$(EXEEXT) test-fclose$(EXEEXT) \ test-fcntl-h$(EXEEXT) test-fcntl$(EXEEXT) test-fdopen$(EXEEXT) \ test-fflush$(EXEEXT) test-fflush2$(EXEEXT) test-fgetc$(EXEEXT) \ test-float$(EXEEXT) test-fopen$(EXEEXT) test-fpurge$(EXEEXT) \ test-fputc$(EXEEXT) test-fread$(EXEEXT) test-freading$(EXEEXT) \ test-fseek$(EXEEXT) test-fseeko$(EXEEXT) test-fseeko3$(EXEEXT) \ test-fseeko4$(EXEEXT) test-fstat$(EXEEXT) test-ftell$(EXEEXT) \ test-ftell3$(EXEEXT) test-ftello$(EXEEXT) \ test-ftello3$(EXEEXT) test-ftello4$(EXEEXT) \ test-ftruncate$(EXEEXT) test-fwrite$(EXEEXT) \ test-getaddrinfo$(EXEEXT) test-getcwd-lgpl$(EXEEXT) \ test-getdelim$(EXEEXT) test-getdtablesize$(EXEEXT) \ test-gethostname$(EXEEXT) test-getline$(EXEEXT) \ test-getsockname$(EXEEXT) test-gettimeofday$(EXEEXT) \ test-ignore-value$(EXEEXT) test-inet_ntop$(EXEEXT) \ test-inet_pton$(EXEEXT) test-intprops$(EXEEXT) \ test-inttypes$(EXEEXT) test-ioctl$(EXEEXT) \ test-isblank$(EXEEXT) test-langinfo$(EXEEXT) \ test-limits-h$(EXEEXT) test-listen$(EXEEXT) \ test-locale$(EXEEXT) test-localeconv$(EXEEXT) \ test-localename$(EXEEXT) test-rwlock1$(EXEEXT) \ test-lock$(EXEEXT) test-once1$(EXEEXT) test-once2$(EXEEXT) \ test-lseek$(EXEEXT) test-lstat$(EXEEXT) test-malloca$(EXEEXT) \ test-mbrtowc$(EXEEXT) test-mbrtowc-w32$(EXEEXT) \ test-mbsinit$(EXEEXT) test-memchr$(EXEEXT) \ test-memmem$(EXEEXT) test-nanosleep$(EXEEXT) \ test-netdb$(EXEEXT) test-netinet_in$(EXEEXT) \ test-nl_langinfo$(EXEEXT) test-open$(EXEEXT) \ test-pathmax$(EXEEXT) test-perror$(EXEEXT) \ test-perror2$(EXEEXT) test-pipe$(EXEEXT) test-poll-h$(EXEEXT) \ test-poll$(EXEEXT) test-pthread_sigmask1$(EXEEXT) \ test-pthread_sigmask2$(EXEEXT) test-raise$(EXEEXT) \ test-regex$(EXEEXT) test-select$(EXEEXT) \ test-select-fd$(EXEEXT) test-select-stdin$(EXEEXT) \ test-setenv$(EXEEXT) test-setlocale1$(EXEEXT) \ test-setlocale2$(EXEEXT) test-setsockopt$(EXEEXT) \ test-sigaction$(EXEEXT) test-signal-h$(EXEEXT) \ test-sigprocmask$(EXEEXT) test-sleep$(EXEEXT) \ test-snprintf$(EXEEXT) test-sockets$(EXEEXT) \ test-stat$(EXEEXT) test-stat-time$(EXEEXT) \ test-stdalign$(EXEEXT) test-stdbool$(EXEEXT) \ test-stddef$(EXEEXT) test-stdint$(EXEEXT) test-stdio$(EXEEXT) \ test-stdlib$(EXEEXT) test-strcasestr$(EXEEXT) \ test-strerror$(EXEEXT) test-strerror_r$(EXEEXT) \ test-string$(EXEEXT) test-strings$(EXEEXT) \ test-strnlen$(EXEEXT) test-symlink$(EXEEXT) \ test-sys_ioctl$(EXEEXT) test-sys_select$(EXEEXT) \ test-sys_socket$(EXEEXT) test-sys_stat$(EXEEXT) \ test-sys_time$(EXEEXT) test-sys_types$(EXEEXT) \ test-sys_uio$(EXEEXT) test-sys_utsname$(EXEEXT) \ test-thread_self$(EXEEXT) test-thread_create$(EXEEXT) \ test-time$(EXEEXT) test-tls$(EXEEXT) test-uname$(EXEEXT) \ test-unistd$(EXEEXT) test-unsetenv$(EXEEXT) \ test-usleep$(EXEEXT) test-vasnprintf$(EXEEXT) \ test-verify$(EXEEXT) test-vsnprintf$(EXEEXT) \ test-wchar$(EXEEXT) test-wcrtomb$(EXEEXT) \ test-wcrtomb-w32$(EXEEXT) test-wctype-h$(EXEEXT) \ test-write$(EXEEXT) EXTRA_PROGRAMS = test-verify-try$(EXEEXT) subdir = libmissing/tests DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp $(noinst_HEADERS) \ $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libtests_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = am_libtests_a_OBJECTS = binary-io.$(OBJEXT) c-strcasecmp.$(OBJEXT) \ c-strncasecmp.$(OBJEXT) cloexec.$(OBJEXT) localename.$(OBJEXT) \ sig-handler.$(OBJEXT) libtests_a_OBJECTS = $(am_libtests_a_OBJECTS) PROGRAMS = $(noinst_PROGRAMS) test_accept_SOURCES = test-accept.c test_accept_OBJECTS = test-accept.$(OBJEXT) am__DEPENDENCIES_2 = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_accept_DEPENDENCIES = $(am__DEPENDENCIES_2) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = test_alloca_opt_SOURCES = test-alloca-opt.c test_alloca_opt_OBJECTS = test-alloca-opt.$(OBJEXT) test_alloca_opt_LDADD = $(LDADD) test_alloca_opt_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_arpa_inet_SOURCES = test-arpa_inet.c test_arpa_inet_OBJECTS = test-arpa_inet.$(OBJEXT) test_arpa_inet_LDADD = $(LDADD) test_arpa_inet_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_binary_io_SOURCES = test-binary-io.c test_binary_io_OBJECTS = test-binary-io.$(OBJEXT) test_binary_io_LDADD = $(LDADD) test_binary_io_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_bind_SOURCES = test-bind.c test_bind_OBJECTS = test-bind.$(OBJEXT) test_bind_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) test_btowc_SOURCES = test-btowc.c test_btowc_OBJECTS = test-btowc.$(OBJEXT) test_btowc_LDADD = $(LDADD) test_btowc_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_c_ctype_SOURCES = test-c-ctype.c test_c_ctype_OBJECTS = test-c-ctype.$(OBJEXT) test_c_ctype_LDADD = $(LDADD) test_c_ctype_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_c_strcasecmp_SOURCES = test-c-strcasecmp.c test_c_strcasecmp_OBJECTS = test-c-strcasecmp.$(OBJEXT) test_c_strcasecmp_LDADD = $(LDADD) test_c_strcasecmp_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_c_strncasecmp_SOURCES = test-c-strncasecmp.c test_c_strncasecmp_OBJECTS = test-c-strncasecmp.$(OBJEXT) test_c_strncasecmp_LDADD = $(LDADD) test_c_strncasecmp_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_cloexec_SOURCES = test-cloexec.c test_cloexec_OBJECTS = test-cloexec.$(OBJEXT) test_cloexec_LDADD = $(LDADD) test_cloexec_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_close_SOURCES = test-close.c test_close_OBJECTS = test-close.$(OBJEXT) test_close_LDADD = $(LDADD) test_close_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_cond_SOURCES = test-cond.c test_cond_OBJECTS = test-cond.$(OBJEXT) test_cond_DEPENDENCIES = $(am__DEPENDENCIES_2) test_connect_SOURCES = test-connect.c test_connect_OBJECTS = test-connect.$(OBJEXT) test_connect_DEPENDENCIES = $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) test_ctype_SOURCES = test-ctype.c test_ctype_OBJECTS = test-ctype.$(OBJEXT) test_ctype_LDADD = $(LDADD) test_ctype_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_dup2_SOURCES = test-dup2.c test_dup2_OBJECTS = test-dup2.$(OBJEXT) test_dup2_LDADD = $(LDADD) test_dup2_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_environ_SOURCES = test-environ.c test_environ_OBJECTS = test-environ.$(OBJEXT) test_environ_LDADD = $(LDADD) test_environ_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_errno_SOURCES = test-errno.c test_errno_OBJECTS = test-errno.$(OBJEXT) test_errno_LDADD = $(LDADD) test_errno_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fclose_SOURCES = test-fclose.c test_fclose_OBJECTS = test-fclose.$(OBJEXT) test_fclose_LDADD = $(LDADD) test_fclose_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fcntl_SOURCES = test-fcntl.c test_fcntl_OBJECTS = test-fcntl.$(OBJEXT) test_fcntl_LDADD = $(LDADD) test_fcntl_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fcntl_h_SOURCES = test-fcntl-h.c test_fcntl_h_OBJECTS = test-fcntl-h.$(OBJEXT) test_fcntl_h_LDADD = $(LDADD) test_fcntl_h_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fdopen_SOURCES = test-fdopen.c test_fdopen_OBJECTS = test-fdopen.$(OBJEXT) test_fdopen_LDADD = $(LDADD) test_fdopen_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fflush_SOURCES = test-fflush.c test_fflush_OBJECTS = test-fflush.$(OBJEXT) test_fflush_LDADD = $(LDADD) test_fflush_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fflush2_SOURCES = test-fflush2.c test_fflush2_OBJECTS = test-fflush2.$(OBJEXT) test_fflush2_LDADD = $(LDADD) test_fflush2_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fgetc_SOURCES = test-fgetc.c test_fgetc_OBJECTS = test-fgetc.$(OBJEXT) test_fgetc_LDADD = $(LDADD) test_fgetc_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_float_SOURCES = test-float.c test_float_OBJECTS = test-float.$(OBJEXT) test_float_LDADD = $(LDADD) test_float_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fopen_SOURCES = test-fopen.c test_fopen_OBJECTS = test-fopen.$(OBJEXT) test_fopen_LDADD = $(LDADD) test_fopen_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fpurge_SOURCES = test-fpurge.c test_fpurge_OBJECTS = test-fpurge.$(OBJEXT) test_fpurge_LDADD = $(LDADD) test_fpurge_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fputc_SOURCES = test-fputc.c test_fputc_OBJECTS = test-fputc.$(OBJEXT) test_fputc_LDADD = $(LDADD) test_fputc_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fread_SOURCES = test-fread.c test_fread_OBJECTS = test-fread.$(OBJEXT) test_fread_LDADD = $(LDADD) test_fread_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_freading_SOURCES = test-freading.c test_freading_OBJECTS = test-freading.$(OBJEXT) test_freading_LDADD = $(LDADD) test_freading_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fseek_SOURCES = test-fseek.c test_fseek_OBJECTS = test-fseek.$(OBJEXT) test_fseek_LDADD = $(LDADD) test_fseek_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fseeko_SOURCES = test-fseeko.c test_fseeko_OBJECTS = test-fseeko.$(OBJEXT) test_fseeko_LDADD = $(LDADD) test_fseeko_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fseeko3_SOURCES = test-fseeko3.c test_fseeko3_OBJECTS = test-fseeko3.$(OBJEXT) test_fseeko3_LDADD = $(LDADD) test_fseeko3_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fseeko4_SOURCES = test-fseeko4.c test_fseeko4_OBJECTS = test-fseeko4.$(OBJEXT) test_fseeko4_LDADD = $(LDADD) test_fseeko4_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_fstat_SOURCES = test-fstat.c test_fstat_OBJECTS = test-fstat.$(OBJEXT) test_fstat_LDADD = $(LDADD) test_fstat_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_ftell_SOURCES = test-ftell.c test_ftell_OBJECTS = test-ftell.$(OBJEXT) test_ftell_LDADD = $(LDADD) test_ftell_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_ftell3_SOURCES = test-ftell3.c test_ftell3_OBJECTS = test-ftell3.$(OBJEXT) test_ftell3_LDADD = $(LDADD) test_ftell3_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_ftello_SOURCES = test-ftello.c test_ftello_OBJECTS = test-ftello.$(OBJEXT) test_ftello_LDADD = $(LDADD) test_ftello_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_ftello3_SOURCES = test-ftello3.c test_ftello3_OBJECTS = test-ftello3.$(OBJEXT) test_ftello3_LDADD = $(LDADD) test_ftello3_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_ftello4_SOURCES = test-ftello4.c test_ftello4_OBJECTS = test-ftello4.$(OBJEXT) test_ftello4_LDADD = $(LDADD) test_ftello4_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_ftruncate_SOURCES = test-ftruncate.c test_ftruncate_OBJECTS = test-ftruncate.$(OBJEXT) test_ftruncate_LDADD = $(LDADD) test_ftruncate_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_fwrite_SOURCES = test-fwrite.c test_fwrite_OBJECTS = test-fwrite.$(OBJEXT) test_fwrite_LDADD = $(LDADD) test_fwrite_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_getaddrinfo_SOURCES = test-getaddrinfo.c test_getaddrinfo_OBJECTS = test-getaddrinfo.$(OBJEXT) test_getaddrinfo_DEPENDENCIES = $(am__DEPENDENCIES_2) test_getcwd_lgpl_SOURCES = test-getcwd-lgpl.c test_getcwd_lgpl_OBJECTS = test-getcwd-lgpl.$(OBJEXT) test_getcwd_lgpl_DEPENDENCIES = $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) test_getdelim_SOURCES = test-getdelim.c test_getdelim_OBJECTS = test-getdelim.$(OBJEXT) test_getdelim_LDADD = $(LDADD) test_getdelim_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_getdtablesize_SOURCES = test-getdtablesize.c test_getdtablesize_OBJECTS = test-getdtablesize.$(OBJEXT) test_getdtablesize_LDADD = $(LDADD) test_getdtablesize_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_gethostname_SOURCES = test-gethostname.c test_gethostname_OBJECTS = test-gethostname.$(OBJEXT) test_gethostname_DEPENDENCIES = $(am__DEPENDENCIES_2) test_getline_SOURCES = test-getline.c test_getline_OBJECTS = test-getline.$(OBJEXT) test_getline_LDADD = $(LDADD) test_getline_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_getsockname_SOURCES = test-getsockname.c test_getsockname_OBJECTS = test-getsockname.$(OBJEXT) test_getsockname_DEPENDENCIES = $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) test_gettimeofday_SOURCES = test-gettimeofday.c test_gettimeofday_OBJECTS = test-gettimeofday.$(OBJEXT) test_gettimeofday_LDADD = $(LDADD) test_gettimeofday_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_ignore_value_SOURCES = test-ignore-value.c test_ignore_value_OBJECTS = test-ignore-value.$(OBJEXT) test_ignore_value_LDADD = $(LDADD) test_ignore_value_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_inet_ntop_SOURCES = test-inet_ntop.c test_inet_ntop_OBJECTS = test-inet_ntop.$(OBJEXT) test_inet_ntop_DEPENDENCIES = $(am__DEPENDENCIES_2) test_inet_pton_SOURCES = test-inet_pton.c test_inet_pton_OBJECTS = test-inet_pton.$(OBJEXT) test_inet_pton_DEPENDENCIES = $(am__DEPENDENCIES_2) test_intprops_SOURCES = test-intprops.c test_intprops_OBJECTS = test-intprops.$(OBJEXT) test_intprops_LDADD = $(LDADD) test_intprops_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_inttypes_SOURCES = test-inttypes.c test_inttypes_OBJECTS = test-inttypes.$(OBJEXT) test_inttypes_LDADD = $(LDADD) test_inttypes_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_ioctl_SOURCES = test-ioctl.c test_ioctl_OBJECTS = test-ioctl.$(OBJEXT) test_ioctl_LDADD = $(LDADD) test_ioctl_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_isblank_SOURCES = test-isblank.c test_isblank_OBJECTS = test-isblank.$(OBJEXT) test_isblank_LDADD = $(LDADD) test_isblank_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_langinfo_SOURCES = test-langinfo.c test_langinfo_OBJECTS = test-langinfo.$(OBJEXT) test_langinfo_LDADD = $(LDADD) test_langinfo_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_limits_h_SOURCES = test-limits-h.c test_limits_h_OBJECTS = test-limits-h.$(OBJEXT) test_limits_h_LDADD = $(LDADD) test_limits_h_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_listen_SOURCES = test-listen.c test_listen_OBJECTS = test-listen.$(OBJEXT) test_listen_DEPENDENCIES = $(am__DEPENDENCIES_2) test_localcharset_SOURCES = test-localcharset.c test_localcharset_OBJECTS = test-localcharset.$(OBJEXT) test_localcharset_LDADD = $(LDADD) test_localcharset_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_locale_SOURCES = test-locale.c test_locale_OBJECTS = test-locale.$(OBJEXT) test_locale_LDADD = $(LDADD) test_locale_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_localeconv_SOURCES = test-localeconv.c test_localeconv_OBJECTS = test-localeconv.$(OBJEXT) test_localeconv_LDADD = $(LDADD) test_localeconv_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_localename_SOURCES = test-localename.c test_localename_OBJECTS = test-localename.$(OBJEXT) test_localename_DEPENDENCIES = $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) test_lock_SOURCES = test-lock.c test_lock_OBJECTS = test-lock.$(OBJEXT) test_lock_DEPENDENCIES = $(am__DEPENDENCIES_2) test_lseek_SOURCES = test-lseek.c test_lseek_OBJECTS = test-lseek.$(OBJEXT) test_lseek_LDADD = $(LDADD) test_lseek_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_lstat_SOURCES = test-lstat.c test_lstat_OBJECTS = test-lstat.$(OBJEXT) test_lstat_LDADD = $(LDADD) test_lstat_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_malloca_SOURCES = test-malloca.c test_malloca_OBJECTS = test-malloca.$(OBJEXT) test_malloca_LDADD = $(LDADD) test_malloca_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_mbrtowc_SOURCES = test-mbrtowc.c test_mbrtowc_OBJECTS = test-mbrtowc.$(OBJEXT) test_mbrtowc_LDADD = $(LDADD) test_mbrtowc_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_mbrtowc_w32_SOURCES = test-mbrtowc-w32.c test_mbrtowc_w32_OBJECTS = test-mbrtowc-w32.$(OBJEXT) test_mbrtowc_w32_LDADD = $(LDADD) test_mbrtowc_w32_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_mbsinit_SOURCES = test-mbsinit.c test_mbsinit_OBJECTS = test-mbsinit.$(OBJEXT) test_mbsinit_LDADD = $(LDADD) test_mbsinit_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_memchr_SOURCES = test-memchr.c test_memchr_OBJECTS = test-memchr.$(OBJEXT) test_memchr_LDADD = $(LDADD) test_memchr_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_memmem_SOURCES = test-memmem.c test_memmem_OBJECTS = test-memmem.$(OBJEXT) test_memmem_LDADD = $(LDADD) test_memmem_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_nanosleep_SOURCES = test-nanosleep.c test_nanosleep_OBJECTS = test-nanosleep.$(OBJEXT) test_nanosleep_DEPENDENCIES = $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) test_netdb_SOURCES = test-netdb.c test_netdb_OBJECTS = test-netdb.$(OBJEXT) test_netdb_LDADD = $(LDADD) test_netdb_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_netinet_in_SOURCES = test-netinet_in.c test_netinet_in_OBJECTS = test-netinet_in.$(OBJEXT) test_netinet_in_LDADD = $(LDADD) test_netinet_in_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_nl_langinfo_SOURCES = test-nl_langinfo.c test_nl_langinfo_OBJECTS = test-nl_langinfo.$(OBJEXT) test_nl_langinfo_LDADD = $(LDADD) test_nl_langinfo_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) am_test_once1_OBJECTS = test-once.$(OBJEXT) test_once1_OBJECTS = $(am_test_once1_OBJECTS) test_once1_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_once2_OBJECTS = test-once.$(OBJEXT) test_once2_OBJECTS = $(am_test_once2_OBJECTS) test_once2_DEPENDENCIES = $(am__DEPENDENCIES_2) test_open_SOURCES = test-open.c test_open_OBJECTS = test-open.$(OBJEXT) test_open_LDADD = $(LDADD) test_open_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_pathmax_SOURCES = test-pathmax.c test_pathmax_OBJECTS = test-pathmax.$(OBJEXT) test_pathmax_LDADD = $(LDADD) test_pathmax_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_perror_SOURCES = test-perror.c test_perror_OBJECTS = test-perror.$(OBJEXT) test_perror_LDADD = $(LDADD) test_perror_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_perror2_SOURCES = test-perror2.c test_perror2_OBJECTS = test-perror2.$(OBJEXT) test_perror2_LDADD = $(LDADD) test_perror2_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_pipe_SOURCES = test-pipe.c test_pipe_OBJECTS = test-pipe.$(OBJEXT) test_pipe_LDADD = $(LDADD) test_pipe_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_poll_SOURCES = test-poll.c test_poll_OBJECTS = test-poll.$(OBJEXT) test_poll_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) test_poll_h_SOURCES = test-poll-h.c test_poll_h_OBJECTS = test-poll-h.$(OBJEXT) test_poll_h_LDADD = $(LDADD) test_poll_h_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_pthread_sigmask1_SOURCES = test-pthread_sigmask1.c test_pthread_sigmask1_OBJECTS = test-pthread_sigmask1.$(OBJEXT) test_pthread_sigmask1_DEPENDENCIES = $(am__DEPENDENCIES_2) test_pthread_sigmask2_SOURCES = test-pthread_sigmask2.c test_pthread_sigmask2_OBJECTS = test-pthread_sigmask2.$(OBJEXT) test_pthread_sigmask2_DEPENDENCIES = $(am__DEPENDENCIES_2) test_raise_SOURCES = test-raise.c test_raise_OBJECTS = test-raise.$(OBJEXT) test_raise_LDADD = $(LDADD) test_raise_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_regex_SOURCES = test-regex.c test_regex_OBJECTS = test-regex.$(OBJEXT) test_regex_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) test_rwlock1_SOURCES = test-rwlock1.c test_rwlock1_OBJECTS = test-rwlock1.$(OBJEXT) test_rwlock1_DEPENDENCIES = $(am__DEPENDENCIES_2) test_select_SOURCES = test-select.c test_select_OBJECTS = test-select.$(OBJEXT) test_select_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) test_select_fd_SOURCES = test-select-fd.c test_select_fd_OBJECTS = test-select-fd.$(OBJEXT) test_select_fd_DEPENDENCIES = $(am__DEPENDENCIES_2) test_select_stdin_SOURCES = test-select-stdin.c test_select_stdin_OBJECTS = test-select-stdin.$(OBJEXT) test_select_stdin_DEPENDENCIES = $(am__DEPENDENCIES_2) test_setenv_SOURCES = test-setenv.c test_setenv_OBJECTS = test-setenv.$(OBJEXT) test_setenv_LDADD = $(LDADD) test_setenv_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_setlocale1_SOURCES = test-setlocale1.c test_setlocale1_OBJECTS = test-setlocale1.$(OBJEXT) test_setlocale1_LDADD = $(LDADD) test_setlocale1_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_setlocale2_SOURCES = test-setlocale2.c test_setlocale2_OBJECTS = test-setlocale2.$(OBJEXT) test_setlocale2_LDADD = $(LDADD) test_setlocale2_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_setsockopt_SOURCES = test-setsockopt.c test_setsockopt_OBJECTS = test-setsockopt.$(OBJEXT) test_setsockopt_DEPENDENCIES = $(am__DEPENDENCIES_2) test_sigaction_SOURCES = test-sigaction.c test_sigaction_OBJECTS = test-sigaction.$(OBJEXT) test_sigaction_LDADD = $(LDADD) test_sigaction_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_signal_h_SOURCES = test-signal-h.c test_signal_h_OBJECTS = test-signal-h.$(OBJEXT) test_signal_h_LDADD = $(LDADD) test_signal_h_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_sigprocmask_SOURCES = test-sigprocmask.c test_sigprocmask_OBJECTS = test-sigprocmask.$(OBJEXT) test_sigprocmask_LDADD = $(LDADD) test_sigprocmask_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_sleep_SOURCES = test-sleep.c test_sleep_OBJECTS = test-sleep.$(OBJEXT) test_sleep_LDADD = $(LDADD) test_sleep_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_snprintf_SOURCES = test-snprintf.c test_snprintf_OBJECTS = test-snprintf.$(OBJEXT) test_snprintf_LDADD = $(LDADD) test_snprintf_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_sockets_SOURCES = test-sockets.c test_sockets_OBJECTS = test-sockets.$(OBJEXT) test_sockets_DEPENDENCIES = $(am__DEPENDENCIES_2) test_stat_SOURCES = test-stat.c test_stat_OBJECTS = test-stat.$(OBJEXT) test_stat_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) test_stat_time_SOURCES = test-stat-time.c test_stat_time_OBJECTS = test-stat-time.$(OBJEXT) test_stat_time_DEPENDENCIES = $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) test_stdalign_SOURCES = test-stdalign.c test_stdalign_OBJECTS = test-stdalign.$(OBJEXT) test_stdalign_LDADD = $(LDADD) test_stdalign_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_stdbool_SOURCES = test-stdbool.c test_stdbool_OBJECTS = test-stdbool.$(OBJEXT) test_stdbool_LDADD = $(LDADD) test_stdbool_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_stddef_SOURCES = test-stddef.c test_stddef_OBJECTS = test-stddef.$(OBJEXT) test_stddef_LDADD = $(LDADD) test_stddef_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_stdint_SOURCES = test-stdint.c test_stdint_OBJECTS = test-stdint.$(OBJEXT) test_stdint_LDADD = $(LDADD) test_stdint_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_stdio_SOURCES = test-stdio.c test_stdio_OBJECTS = test-stdio.$(OBJEXT) test_stdio_LDADD = $(LDADD) test_stdio_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_stdlib_SOURCES = test-stdlib.c test_stdlib_OBJECTS = test-stdlib.$(OBJEXT) test_stdlib_LDADD = $(LDADD) test_stdlib_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_strcasestr_SOURCES = test-strcasestr.c test_strcasestr_OBJECTS = test-strcasestr.$(OBJEXT) test_strcasestr_LDADD = $(LDADD) test_strcasestr_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_strerror_SOURCES = test-strerror.c test_strerror_OBJECTS = test-strerror.$(OBJEXT) test_strerror_LDADD = $(LDADD) test_strerror_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_strerror_r_SOURCES = test-strerror_r.c test_strerror_r_OBJECTS = test-strerror_r.$(OBJEXT) test_strerror_r_LDADD = $(LDADD) test_strerror_r_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_string_SOURCES = test-string.c test_string_OBJECTS = test-string.$(OBJEXT) test_string_LDADD = $(LDADD) test_string_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_strings_SOURCES = test-strings.c test_strings_OBJECTS = test-strings.$(OBJEXT) test_strings_LDADD = $(LDADD) test_strings_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_strnlen_SOURCES = test-strnlen.c test_strnlen_OBJECTS = test-strnlen.$(OBJEXT) test_strnlen_LDADD = $(LDADD) test_strnlen_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_symlink_SOURCES = test-symlink.c test_symlink_OBJECTS = test-symlink.$(OBJEXT) test_symlink_LDADD = $(LDADD) test_symlink_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_sys_ioctl_SOURCES = test-sys_ioctl.c test_sys_ioctl_OBJECTS = test-sys_ioctl.$(OBJEXT) test_sys_ioctl_LDADD = $(LDADD) test_sys_ioctl_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_sys_select_SOURCES = test-sys_select.c test_sys_select_OBJECTS = test-sys_select.$(OBJEXT) test_sys_select_LDADD = $(LDADD) test_sys_select_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_sys_socket_SOURCES = test-sys_socket.c test_sys_socket_OBJECTS = test-sys_socket.$(OBJEXT) test_sys_socket_LDADD = $(LDADD) test_sys_socket_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_sys_stat_SOURCES = test-sys_stat.c test_sys_stat_OBJECTS = test-sys_stat.$(OBJEXT) test_sys_stat_LDADD = $(LDADD) test_sys_stat_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_sys_time_SOURCES = test-sys_time.c test_sys_time_OBJECTS = test-sys_time.$(OBJEXT) test_sys_time_LDADD = $(LDADD) test_sys_time_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_sys_types_SOURCES = test-sys_types.c test_sys_types_OBJECTS = test-sys_types.$(OBJEXT) test_sys_types_LDADD = $(LDADD) test_sys_types_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_sys_uio_SOURCES = test-sys_uio.c test_sys_uio_OBJECTS = test-sys_uio.$(OBJEXT) test_sys_uio_LDADD = $(LDADD) test_sys_uio_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_sys_utsname_SOURCES = test-sys_utsname.c test_sys_utsname_OBJECTS = test-sys_utsname.$(OBJEXT) test_sys_utsname_LDADD = $(LDADD) test_sys_utsname_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_thread_create_SOURCES = test-thread_create.c test_thread_create_OBJECTS = test-thread_create.$(OBJEXT) test_thread_create_DEPENDENCIES = $(am__DEPENDENCIES_2) test_thread_self_SOURCES = test-thread_self.c test_thread_self_OBJECTS = test-thread_self.$(OBJEXT) test_thread_self_DEPENDENCIES = $(am__DEPENDENCIES_2) test_time_SOURCES = test-time.c test_time_OBJECTS = test-time.$(OBJEXT) test_time_LDADD = $(LDADD) test_time_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_tls_SOURCES = test-tls.c test_tls_OBJECTS = test-tls.$(OBJEXT) test_tls_DEPENDENCIES = $(am__DEPENDENCIES_2) test_uname_SOURCES = test-uname.c test_uname_OBJECTS = test-uname.$(OBJEXT) test_uname_DEPENDENCIES = $(am__DEPENDENCIES_2) test_unistd_SOURCES = test-unistd.c test_unistd_OBJECTS = test-unistd.$(OBJEXT) test_unistd_LDADD = $(LDADD) test_unistd_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_unsetenv_SOURCES = test-unsetenv.c test_unsetenv_OBJECTS = test-unsetenv.$(OBJEXT) test_unsetenv_LDADD = $(LDADD) test_unsetenv_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_usleep_SOURCES = test-usleep.c test_usleep_OBJECTS = test-usleep.$(OBJEXT) test_usleep_LDADD = $(LDADD) test_usleep_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_vasnprintf_SOURCES = test-vasnprintf.c test_vasnprintf_OBJECTS = test-vasnprintf.$(OBJEXT) test_vasnprintf_LDADD = $(LDADD) test_vasnprintf_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_verify_SOURCES = test-verify.c test_verify_OBJECTS = test-verify.$(OBJEXT) test_verify_LDADD = $(LDADD) test_verify_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_verify_try_SOURCES = test-verify-try.c test_verify_try_OBJECTS = test-verify-try.$(OBJEXT) test_verify_try_LDADD = $(LDADD) test_verify_try_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_vsnprintf_SOURCES = test-vsnprintf.c test_vsnprintf_OBJECTS = test-vsnprintf.$(OBJEXT) test_vsnprintf_LDADD = $(LDADD) test_vsnprintf_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_wchar_SOURCES = test-wchar.c test_wchar_OBJECTS = test-wchar.$(OBJEXT) test_wchar_LDADD = $(LDADD) test_wchar_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_wcrtomb_SOURCES = test-wcrtomb.c test_wcrtomb_OBJECTS = test-wcrtomb.$(OBJEXT) test_wcrtomb_LDADD = $(LDADD) test_wcrtomb_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_wcrtomb_w32_SOURCES = test-wcrtomb-w32.c test_wcrtomb_w32_OBJECTS = test-wcrtomb-w32.$(OBJEXT) test_wcrtomb_w32_LDADD = $(LDADD) test_wcrtomb_w32_DEPENDENCIES = libtests.a \ ../../libmissing/libmissing.la libtests.a \ $(am__DEPENDENCIES_1) test_wctype_h_SOURCES = test-wctype-h.c test_wctype_h_OBJECTS = test-wctype-h.$(OBJEXT) test_wctype_h_LDADD = $(LDADD) test_wctype_h_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) test_write_SOURCES = test-write.c test_write_OBJECTS = test-write.$(OBJEXT) test_write_LDADD = $(LDADD) test_write_DEPENDENCIES = libtests.a ../../libmissing/libmissing.la \ libtests.a $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \ test-accept.c test-alloca-opt.c test-arpa_inet.c \ test-binary-io.c test-bind.c test-btowc.c test-c-ctype.c \ test-c-strcasecmp.c test-c-strncasecmp.c test-cloexec.c \ test-close.c test-cond.c test-connect.c test-ctype.c \ test-dup2.c test-environ.c test-errno.c test-fclose.c \ test-fcntl.c test-fcntl-h.c test-fdopen.c test-fflush.c \ test-fflush2.c test-fgetc.c test-float.c test-fopen.c \ test-fpurge.c test-fputc.c test-fread.c test-freading.c \ test-fseek.c test-fseeko.c test-fseeko3.c test-fseeko4.c \ test-fstat.c test-ftell.c test-ftell3.c test-ftello.c \ test-ftello3.c test-ftello4.c test-ftruncate.c test-fwrite.c \ test-getaddrinfo.c test-getcwd-lgpl.c test-getdelim.c \ test-getdtablesize.c test-gethostname.c test-getline.c \ test-getsockname.c test-gettimeofday.c test-ignore-value.c \ test-inet_ntop.c test-inet_pton.c test-intprops.c \ test-inttypes.c test-ioctl.c test-isblank.c test-langinfo.c \ test-limits-h.c test-listen.c test-localcharset.c \ test-locale.c test-localeconv.c test-localename.c test-lock.c \ test-lseek.c test-lstat.c test-malloca.c test-mbrtowc.c \ test-mbrtowc-w32.c test-mbsinit.c test-memchr.c test-memmem.c \ test-nanosleep.c test-netdb.c test-netinet_in.c \ test-nl_langinfo.c $(test_once1_SOURCES) $(test_once2_SOURCES) \ test-open.c test-pathmax.c test-perror.c test-perror2.c \ test-pipe.c test-poll.c test-poll-h.c test-pthread_sigmask1.c \ test-pthread_sigmask2.c test-raise.c test-regex.c \ test-rwlock1.c test-select.c test-select-fd.c \ test-select-stdin.c test-setenv.c test-setlocale1.c \ test-setlocale2.c test-setsockopt.c test-sigaction.c \ test-signal-h.c test-sigprocmask.c test-sleep.c \ test-snprintf.c test-sockets.c test-stat.c test-stat-time.c \ test-stdalign.c test-stdbool.c test-stddef.c test-stdint.c \ test-stdio.c test-stdlib.c test-strcasestr.c test-strerror.c \ test-strerror_r.c test-string.c test-strings.c test-strnlen.c \ test-symlink.c test-sys_ioctl.c test-sys_select.c \ test-sys_socket.c test-sys_stat.c test-sys_time.c \ test-sys_types.c test-sys_uio.c test-sys_utsname.c \ test-thread_create.c test-thread_self.c test-time.c test-tls.c \ test-uname.c test-unistd.c test-unsetenv.c test-usleep.c \ test-vasnprintf.c test-verify.c test-verify-try.c \ test-vsnprintf.c test-wchar.c test-wcrtomb.c \ test-wcrtomb-w32.c test-wctype-h.c test-write.c DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \ test-accept.c test-alloca-opt.c test-arpa_inet.c \ test-binary-io.c test-bind.c test-btowc.c test-c-ctype.c \ test-c-strcasecmp.c test-c-strncasecmp.c test-cloexec.c \ test-close.c test-cond.c test-connect.c test-ctype.c \ test-dup2.c test-environ.c test-errno.c test-fclose.c \ test-fcntl.c test-fcntl-h.c test-fdopen.c test-fflush.c \ test-fflush2.c test-fgetc.c test-float.c test-fopen.c \ test-fpurge.c test-fputc.c test-fread.c test-freading.c \ test-fseek.c test-fseeko.c test-fseeko3.c test-fseeko4.c \ test-fstat.c test-ftell.c test-ftell3.c test-ftello.c \ test-ftello3.c test-ftello4.c test-ftruncate.c test-fwrite.c \ test-getaddrinfo.c test-getcwd-lgpl.c test-getdelim.c \ test-getdtablesize.c test-gethostname.c test-getline.c \ test-getsockname.c test-gettimeofday.c test-ignore-value.c \ test-inet_ntop.c test-inet_pton.c test-intprops.c \ test-inttypes.c test-ioctl.c test-isblank.c test-langinfo.c \ test-limits-h.c test-listen.c test-localcharset.c \ test-locale.c test-localeconv.c test-localename.c test-lock.c \ test-lseek.c test-lstat.c test-malloca.c test-mbrtowc.c \ test-mbrtowc-w32.c test-mbsinit.c test-memchr.c test-memmem.c \ test-nanosleep.c test-netdb.c test-netinet_in.c \ test-nl_langinfo.c $(test_once1_SOURCES) $(test_once2_SOURCES) \ test-open.c test-pathmax.c test-perror.c test-perror2.c \ test-pipe.c test-poll.c test-poll-h.c test-pthread_sigmask1.c \ test-pthread_sigmask2.c test-raise.c test-regex.c \ test-rwlock1.c test-select.c test-select-fd.c \ test-select-stdin.c test-setenv.c test-setlocale1.c \ test-setlocale2.c test-setsockopt.c test-sigaction.c \ test-signal-h.c test-sigprocmask.c test-sleep.c \ test-snprintf.c test-sockets.c test-stat.c test-stat-time.c \ test-stdalign.c test-stdbool.c test-stddef.c test-stdint.c \ test-stdio.c test-stdlib.c test-strcasestr.c test-strerror.c \ test-strerror_r.c test-string.c test-strings.c test-strnlen.c \ test-symlink.c test-sys_ioctl.c test-sys_select.c \ test-sys_socket.c test-sys_stat.c test-sys_time.c \ test-sys_types.c test-sys_uio.c test-sys_utsname.c \ test-thread_create.c test-thread_self.c test-time.c test-tls.c \ test-uname.c test-unistd.c test-unsetenv.c test-usleep.c \ test-vasnprintf.c test-verify.c test-verify-try.c \ test-vsnprintf.c test-wchar.c test-wcrtomb.c \ test-wcrtomb-w32.c test-wctype-h.c test-write.c RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ check recheck distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.9.6 foreign SUBDIRS = . TESTS_ENVIRONMENT = EXEEXT='@EXEEXT@' srcdir='$(srcdir)' \ LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \ LOCALE_FR='@LOCALE_FR@' LOCALE_TR_UTF8='@LOCALE_TR_UTF8@' \ LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \ LOCALE_JA='@LOCALE_JA@' LOCALE_ZH_CN='@LOCALE_ZH_CN@' \ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_FR='@LOCALE_FR@' \ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_FR='@LOCALE_FR@' \ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_JA='@LOCALE_JA@' \ LOCALE_ZH_CN='@LOCALE_ZH_CN@' MAKE='$(MAKE)' \ LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \ LOCALE_JA='@LOCALE_JA@' LOCALE_ZH_CN='@LOCALE_ZH_CN@' noinst_HEADERS = noinst_LIBRARIES = check_LIBRARIES = libtests.a EXTRA_DIST = test-accept.c signature.h macros.h test-alloca-opt.c \ test-arpa_inet.c test-binary-io.sh test-binary-io.c macros.h \ test-bind.c signature.h macros.h test-btowc1.sh test-btowc2.sh \ test-btowc.c signature.h macros.h test-c-ctype.c macros.h \ test-c-strcase.sh test-c-strcasecmp.c test-c-strncasecmp.c \ macros.h cloexec.h test-cloexec.c macros.h test-close.c \ signature.h macros.h test-cond.c test-connect.c signature.h \ macros.h ctype.in.h test-ctype.c dosname.h test-dup2.c \ signature.h macros.h test-environ.c test-errno.c test-fclose.c \ fcntl.c fcntl.in.h test-fcntl-h.c test-fcntl.c signature.h \ macros.h fdopen.c test-fdopen.c signature.h macros.h \ test-fflush.c test-fflush2.sh test-fflush2.c signature.h \ macros.h test-fgetc.c signature.h macros.h flexmember.h \ test-float.c macros.h test-fopen.h test-fopen.c signature.h \ macros.h fpucw.h test-fpurge.c macros.h test-fputc.c \ signature.h macros.h test-fread.c signature.h macros.h \ test-freading.c macros.h test-fseek.c test-fseek.sh \ test-fseek2.sh signature.h macros.h test-fseeko.c \ test-fseeko.sh test-fseeko2.sh test-fseeko3.c test-fseeko3.sh \ test-fseeko4.c test-fseeko4.sh signature.h macros.h \ test-fstat.c signature.h macros.h test-ftell.c test-ftell.sh \ test-ftell2.sh test-ftell3.c signature.h macros.h \ test-ftello.c test-ftello.sh test-ftello2.sh test-ftello3.c \ test-ftello4.c test-ftello4.sh signature.h macros.h \ ftruncate.c test-ftruncate.c test-ftruncate.sh signature.h \ macros.h test-fwrite.c signature.h macros.h signature.h \ test-getaddrinfo.c getcwd-lgpl.c test-getcwd-lgpl.c \ signature.h macros.h test-getdelim.c signature.h macros.h \ getdtablesize.c test-getdtablesize.c signature.h macros.h \ signature.h test-gethostname.c test-getline.c signature.h \ macros.h getpagesize.c test-getsockname.c signature.h macros.h \ signature.h test-gettimeofday.c ignore-value.h \ test-ignore-value.c test-inet_ntop.c signature.h macros.h \ test-inet_pton.c signature.h macros.h test-intprops.c macros.h \ inttypes.in.h test-inttypes.c test-ioctl.c signature.h \ macros.h isblank.c test-isblank.c signature.h macros.h \ test-langinfo.c test-limits-h.c test-listen.c signature.h \ macros.h test-localcharset.c test-locale.c test-localeconv.c \ signature.h macros.h localename.h test-localename.c macros.h \ test-rwlock1.c test-lock.c test-once.c test-lseek.c \ test-lseek.sh signature.h macros.h lstat.c test-lstat.h \ test-lstat.c signature.h macros.h test-malloca.c \ test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh \ test-mbrtowc4.sh test-mbrtowc5.sh test-mbrtowc.c \ test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh \ test-mbrtowc-w32-3.sh test-mbrtowc-w32-4.sh \ test-mbrtowc-w32-5.sh test-mbrtowc-w32.c signature.h macros.h \ test-mbsinit.sh test-mbsinit.c signature.h macros.h \ test-memchr.c zerosize-ptr.h signature.h macros.h \ test-memmem.c signature.h null-ptr.h zerosize-ptr.h macros.h \ nanosleep.c test-nanosleep.c signature.h macros.h test-netdb.c \ test-netinet_in.c test-nl_langinfo.sh test-nl_langinfo.c \ signature.h macros.h open.c test-open.h test-open.c \ signature.h macros.h test-pathmax.c macros.h signature.h \ test-perror.c test-perror2.c test-perror.sh pipe.c test-pipe.c \ signature.h macros.h test-poll-h.c test-poll.c signature.h \ macros.h test-pthread_sigmask1.c test-pthread_sigmask2.c \ signature.h macros.h putenv.c test-raise.c signature.h \ macros.h test-regex.c macros.h same-inode.h macros.h \ signature.h test-select.c test-select.h test-select-fd.c \ test-select-in.sh test-select-out.sh test-select-stdin.c \ setenv.c test-setenv.c signature.h macros.h setlocale.c \ test-setlocale1.sh test-setlocale1.c test-setlocale2.sh \ test-setlocale2.c signature.h macros.h test-setsockopt.c \ signature.h macros.h sig-handler.h sigaction.c \ test-sigaction.c signature.h macros.h test-signal-h.c \ test-sigprocmask.c signature.h macros.h test-sleep.c \ signature.h macros.h _Noreturn.h arg-nonnull.h c++defs.h \ unused-parameter.h warn-on-use.h test-snprintf.c signature.h \ macros.h test-sockets.c test-stat.h test-stat.c signature.h \ macros.h test-stat-time.c macros.h nap.h test-stdalign.c \ macros.h test-stdbool.c test-stddef.c test-stdint.c \ test-stdio.c test-stdlib.c test-sys_wait.h test-strcasestr.c \ signature.h macros.h test-strerror.c signature.h macros.h \ test-strerror_r.c signature.h macros.h test-string.c \ test-strings.c test-strnlen.c zerosize-ptr.h signature.h \ macros.h symlink.c test-symlink.h test-symlink.c signature.h \ macros.h test-sys_ioctl.c test-sys_select.c signature.h \ test-sys_socket.c test-sys_stat.c test-sys_time.c \ test-sys_types.c test-sys_uio.c test-sys_utsname.c init.sh \ test-init.sh test-thread_self.c test-thread_create.c macros.h \ test-time.c test-tls.c test-uname.c signature.h macros.h \ test-unistd.c unsetenv.c test-unsetenv.c signature.h macros.h \ usleep.c test-usleep.c signature.h macros.h test-vasnprintf.c \ macros.h test-verify.c test-verify-try.c test-verify.sh \ test-vsnprintf.c signature.h macros.h test-wchar.c \ test-wcrtomb.sh test-wcrtomb.c test-wcrtomb-w32-1.sh \ test-wcrtomb-w32-2.sh test-wcrtomb-w32-3.sh \ test-wcrtomb-w32-4.sh test-wcrtomb-w32-5.sh test-wcrtomb-w32.c \ signature.h macros.h wctob.c wctomb-impl.h wctomb.c \ test-wctype-h.c macros.h test-write.c signature.h macros.h BUILT_SOURCES = ctype.h fcntl.h inttypes.h SUFFIXES = # This test expects compilation of test-verify-try.c to fail, and # each time it fails, the makefile rule does not perform the usual # "mv -f $name.Tpo $name.po, so tell make clean to remove that file. MOSTLYCLEANFILES = core *.stackdump ctype.h ctype.h-t fcntl.h \ fcntl.h-t test-fflush.txt t-fpurge.tmp t-freading.tmp \ t-ftell3.tmp t-ftello3.tmp test-getdelim.txt test-getline.txt \ inttypes.h inttypes.h-t .deps/test-verify-try.Tpo MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = \ -D@gltests_WITNESS@=1 \ -I. -I$(srcdir) \ -I../.. -I$(srcdir)/../.. \ -I../../libmissing -I$(srcdir)/../../libmissing LDADD = libtests.a ../../libmissing/libmissing.la libtests.a $(LIBTESTS_LIBDEPS) libtests_a_SOURCES = binary-io.h binary-io.c c-strcase.h \ c-strcasecmp.c c-strncasecmp.c cloexec.c localename.c \ sig-handler.c glthread/yield.h libtests_a_LIBADD = $(gltests_LIBOBJS) libtests_a_DEPENDENCIES = $(gltests_LIBOBJS) EXTRA_libtests_a_SOURCES = fcntl.c fdopen.c ftruncate.c getcwd-lgpl.c \ getdtablesize.c getpagesize.c isblank.c lstat.c nanosleep.c \ open.c pipe.c putenv.c setenv.c setlocale.c sigaction.c \ symlink.c unsetenv.c usleep.c wctob.c wctomb.c AM_LIBTOOLFLAGS = --preserve-dup-deps test_accept_LDADD = $(LDADD) @LIBSOCKET@ test_bind_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB) test_cond_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@ test_connect_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB) test_getaddrinfo_LDADD = $(LDADD) @GETADDRINFO_LIB@ @LIBINTL@ test_getcwd_lgpl_LDADD = $(LDADD) $(LIBINTL) test_gethostname_LDADD = $(LDADD) @GETHOSTNAME_LIB@ test_getsockname_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB) test_inet_ntop_LDADD = $(LDADD) @INET_NTOP_LIB@ test_inet_pton_LDADD = $(LDADD) @INET_PTON_LIB@ test_listen_LDADD = $(LDADD) @LIBSOCKET@ test_localename_LDADD = $(LDADD) @INTL_MACOSX_LIBS@ $(LIBTHREAD) test_rwlock1_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@ test_lock_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@ test_once1_SOURCES = test-once.c test_once1_LDADD = $(LDADD) @LIBTHREAD@ test_once2_SOURCES = test-once.c test_once2_LDADD = $(LDADD) @LIBMULTITHREAD@ test_nanosleep_LDADD = $(LDADD) $(LIB_NANOSLEEP) test_poll_LDADD = $(LDADD) $(LIB_POLL) @LIBSOCKET@ $(INET_PTON_LIB) test_pthread_sigmask1_LDADD = $(LDADD) @LIB_PTHREAD_SIGMASK@ test_pthread_sigmask2_LDADD = $(LDADD) @LIB_PTHREAD_SIGMASK@ @LIBMULTITHREAD@ test_regex_LDADD = $(LDADD) @LIBINTL@ $(LIBTHREAD) $(LIB_PTHREAD) test_select_LDADD = $(LDADD) @LIB_SELECT@ @LIBSOCKET@ $(INET_PTON_LIB) test_select_fd_LDADD = $(LDADD) @LIB_SELECT@ test_select_stdin_LDADD = $(LDADD) @LIB_SELECT@ test_setsockopt_LDADD = $(LDADD) @LIBSOCKET@ # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H = $(srcdir)/_Noreturn.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. ARG_NONNULL_H = $(srcdir)/arg-nonnull.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. CXXDEFS_H = $(srcdir)/c++defs.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. UNUSED_PARAMETER_H = $(srcdir)/unused-parameter.h # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. WARN_ON_USE_H = $(srcdir)/warn-on-use.h test_sockets_LDADD = $(LDADD) @LIBSOCKET@ test_stat_LDADD = $(LDADD) $(LIBINTL) test_stat_time_LDADD = $(LDADD) $(LIB_NANOSLEEP) test_thread_self_LDADD = $(LDADD) @LIBTHREAD@ test_thread_create_LDADD = $(LDADD) @LIBMULTITHREAD@ test_tls_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@ test_uname_LDADD = $(LDADD) @GETHOSTNAME_LIB@ all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libmissing/tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libmissing/tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkLIBRARIES: -test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES) clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libtests.a: $(libtests_a_OBJECTS) $(libtests_a_DEPENDENCIES) $(EXTRA_libtests_a_DEPENDENCIES) $(AM_V_at)-rm -f libtests.a $(AM_V_AR)$(libtests_a_AR) libtests.a $(libtests_a_OBJECTS) $(libtests_a_LIBADD) $(AM_V_at)$(RANLIB) libtests.a clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list test-accept$(EXEEXT): $(test_accept_OBJECTS) $(test_accept_DEPENDENCIES) $(EXTRA_test_accept_DEPENDENCIES) @rm -f test-accept$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_accept_OBJECTS) $(test_accept_LDADD) $(LIBS) test-alloca-opt$(EXEEXT): $(test_alloca_opt_OBJECTS) $(test_alloca_opt_DEPENDENCIES) $(EXTRA_test_alloca_opt_DEPENDENCIES) @rm -f test-alloca-opt$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_alloca_opt_OBJECTS) $(test_alloca_opt_LDADD) $(LIBS) test-arpa_inet$(EXEEXT): $(test_arpa_inet_OBJECTS) $(test_arpa_inet_DEPENDENCIES) $(EXTRA_test_arpa_inet_DEPENDENCIES) @rm -f test-arpa_inet$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_arpa_inet_OBJECTS) $(test_arpa_inet_LDADD) $(LIBS) test-binary-io$(EXEEXT): $(test_binary_io_OBJECTS) $(test_binary_io_DEPENDENCIES) $(EXTRA_test_binary_io_DEPENDENCIES) @rm -f test-binary-io$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_binary_io_OBJECTS) $(test_binary_io_LDADD) $(LIBS) test-bind$(EXEEXT): $(test_bind_OBJECTS) $(test_bind_DEPENDENCIES) $(EXTRA_test_bind_DEPENDENCIES) @rm -f test-bind$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_bind_OBJECTS) $(test_bind_LDADD) $(LIBS) test-btowc$(EXEEXT): $(test_btowc_OBJECTS) $(test_btowc_DEPENDENCIES) $(EXTRA_test_btowc_DEPENDENCIES) @rm -f test-btowc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_btowc_OBJECTS) $(test_btowc_LDADD) $(LIBS) test-c-ctype$(EXEEXT): $(test_c_ctype_OBJECTS) $(test_c_ctype_DEPENDENCIES) $(EXTRA_test_c_ctype_DEPENDENCIES) @rm -f test-c-ctype$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_c_ctype_OBJECTS) $(test_c_ctype_LDADD) $(LIBS) test-c-strcasecmp$(EXEEXT): $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_DEPENDENCIES) $(EXTRA_test_c_strcasecmp_DEPENDENCIES) @rm -f test-c-strcasecmp$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_LDADD) $(LIBS) test-c-strncasecmp$(EXEEXT): $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_DEPENDENCIES) $(EXTRA_test_c_strncasecmp_DEPENDENCIES) @rm -f test-c-strncasecmp$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_LDADD) $(LIBS) test-cloexec$(EXEEXT): $(test_cloexec_OBJECTS) $(test_cloexec_DEPENDENCIES) $(EXTRA_test_cloexec_DEPENDENCIES) @rm -f test-cloexec$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_cloexec_OBJECTS) $(test_cloexec_LDADD) $(LIBS) test-close$(EXEEXT): $(test_close_OBJECTS) $(test_close_DEPENDENCIES) $(EXTRA_test_close_DEPENDENCIES) @rm -f test-close$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_close_OBJECTS) $(test_close_LDADD) $(LIBS) test-cond$(EXEEXT): $(test_cond_OBJECTS) $(test_cond_DEPENDENCIES) $(EXTRA_test_cond_DEPENDENCIES) @rm -f test-cond$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_cond_OBJECTS) $(test_cond_LDADD) $(LIBS) test-connect$(EXEEXT): $(test_connect_OBJECTS) $(test_connect_DEPENDENCIES) $(EXTRA_test_connect_DEPENDENCIES) @rm -f test-connect$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_connect_OBJECTS) $(test_connect_LDADD) $(LIBS) test-ctype$(EXEEXT): $(test_ctype_OBJECTS) $(test_ctype_DEPENDENCIES) $(EXTRA_test_ctype_DEPENDENCIES) @rm -f test-ctype$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ctype_OBJECTS) $(test_ctype_LDADD) $(LIBS) test-dup2$(EXEEXT): $(test_dup2_OBJECTS) $(test_dup2_DEPENDENCIES) $(EXTRA_test_dup2_DEPENDENCIES) @rm -f test-dup2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_dup2_OBJECTS) $(test_dup2_LDADD) $(LIBS) test-environ$(EXEEXT): $(test_environ_OBJECTS) $(test_environ_DEPENDENCIES) $(EXTRA_test_environ_DEPENDENCIES) @rm -f test-environ$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_environ_OBJECTS) $(test_environ_LDADD) $(LIBS) test-errno$(EXEEXT): $(test_errno_OBJECTS) $(test_errno_DEPENDENCIES) $(EXTRA_test_errno_DEPENDENCIES) @rm -f test-errno$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_errno_OBJECTS) $(test_errno_LDADD) $(LIBS) test-fclose$(EXEEXT): $(test_fclose_OBJECTS) $(test_fclose_DEPENDENCIES) $(EXTRA_test_fclose_DEPENDENCIES) @rm -f test-fclose$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fclose_OBJECTS) $(test_fclose_LDADD) $(LIBS) test-fcntl$(EXEEXT): $(test_fcntl_OBJECTS) $(test_fcntl_DEPENDENCIES) $(EXTRA_test_fcntl_DEPENDENCIES) @rm -f test-fcntl$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fcntl_OBJECTS) $(test_fcntl_LDADD) $(LIBS) test-fcntl-h$(EXEEXT): $(test_fcntl_h_OBJECTS) $(test_fcntl_h_DEPENDENCIES) $(EXTRA_test_fcntl_h_DEPENDENCIES) @rm -f test-fcntl-h$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fcntl_h_OBJECTS) $(test_fcntl_h_LDADD) $(LIBS) test-fdopen$(EXEEXT): $(test_fdopen_OBJECTS) $(test_fdopen_DEPENDENCIES) $(EXTRA_test_fdopen_DEPENDENCIES) @rm -f test-fdopen$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fdopen_OBJECTS) $(test_fdopen_LDADD) $(LIBS) test-fflush$(EXEEXT): $(test_fflush_OBJECTS) $(test_fflush_DEPENDENCIES) $(EXTRA_test_fflush_DEPENDENCIES) @rm -f test-fflush$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fflush_OBJECTS) $(test_fflush_LDADD) $(LIBS) test-fflush2$(EXEEXT): $(test_fflush2_OBJECTS) $(test_fflush2_DEPENDENCIES) $(EXTRA_test_fflush2_DEPENDENCIES) @rm -f test-fflush2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fflush2_OBJECTS) $(test_fflush2_LDADD) $(LIBS) test-fgetc$(EXEEXT): $(test_fgetc_OBJECTS) $(test_fgetc_DEPENDENCIES) $(EXTRA_test_fgetc_DEPENDENCIES) @rm -f test-fgetc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fgetc_OBJECTS) $(test_fgetc_LDADD) $(LIBS) test-float$(EXEEXT): $(test_float_OBJECTS) $(test_float_DEPENDENCIES) $(EXTRA_test_float_DEPENDENCIES) @rm -f test-float$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_float_OBJECTS) $(test_float_LDADD) $(LIBS) test-fopen$(EXEEXT): $(test_fopen_OBJECTS) $(test_fopen_DEPENDENCIES) $(EXTRA_test_fopen_DEPENDENCIES) @rm -f test-fopen$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fopen_OBJECTS) $(test_fopen_LDADD) $(LIBS) test-fpurge$(EXEEXT): $(test_fpurge_OBJECTS) $(test_fpurge_DEPENDENCIES) $(EXTRA_test_fpurge_DEPENDENCIES) @rm -f test-fpurge$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fpurge_OBJECTS) $(test_fpurge_LDADD) $(LIBS) test-fputc$(EXEEXT): $(test_fputc_OBJECTS) $(test_fputc_DEPENDENCIES) $(EXTRA_test_fputc_DEPENDENCIES) @rm -f test-fputc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fputc_OBJECTS) $(test_fputc_LDADD) $(LIBS) test-fread$(EXEEXT): $(test_fread_OBJECTS) $(test_fread_DEPENDENCIES) $(EXTRA_test_fread_DEPENDENCIES) @rm -f test-fread$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fread_OBJECTS) $(test_fread_LDADD) $(LIBS) test-freading$(EXEEXT): $(test_freading_OBJECTS) $(test_freading_DEPENDENCIES) $(EXTRA_test_freading_DEPENDENCIES) @rm -f test-freading$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_freading_OBJECTS) $(test_freading_LDADD) $(LIBS) test-fseek$(EXEEXT): $(test_fseek_OBJECTS) $(test_fseek_DEPENDENCIES) $(EXTRA_test_fseek_DEPENDENCIES) @rm -f test-fseek$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fseek_OBJECTS) $(test_fseek_LDADD) $(LIBS) test-fseeko$(EXEEXT): $(test_fseeko_OBJECTS) $(test_fseeko_DEPENDENCIES) $(EXTRA_test_fseeko_DEPENDENCIES) @rm -f test-fseeko$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fseeko_OBJECTS) $(test_fseeko_LDADD) $(LIBS) test-fseeko3$(EXEEXT): $(test_fseeko3_OBJECTS) $(test_fseeko3_DEPENDENCIES) $(EXTRA_test_fseeko3_DEPENDENCIES) @rm -f test-fseeko3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fseeko3_OBJECTS) $(test_fseeko3_LDADD) $(LIBS) test-fseeko4$(EXEEXT): $(test_fseeko4_OBJECTS) $(test_fseeko4_DEPENDENCIES) $(EXTRA_test_fseeko4_DEPENDENCIES) @rm -f test-fseeko4$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fseeko4_OBJECTS) $(test_fseeko4_LDADD) $(LIBS) test-fstat$(EXEEXT): $(test_fstat_OBJECTS) $(test_fstat_DEPENDENCIES) $(EXTRA_test_fstat_DEPENDENCIES) @rm -f test-fstat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fstat_OBJECTS) $(test_fstat_LDADD) $(LIBS) test-ftell$(EXEEXT): $(test_ftell_OBJECTS) $(test_ftell_DEPENDENCIES) $(EXTRA_test_ftell_DEPENDENCIES) @rm -f test-ftell$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ftell_OBJECTS) $(test_ftell_LDADD) $(LIBS) test-ftell3$(EXEEXT): $(test_ftell3_OBJECTS) $(test_ftell3_DEPENDENCIES) $(EXTRA_test_ftell3_DEPENDENCIES) @rm -f test-ftell3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ftell3_OBJECTS) $(test_ftell3_LDADD) $(LIBS) test-ftello$(EXEEXT): $(test_ftello_OBJECTS) $(test_ftello_DEPENDENCIES) $(EXTRA_test_ftello_DEPENDENCIES) @rm -f test-ftello$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ftello_OBJECTS) $(test_ftello_LDADD) $(LIBS) test-ftello3$(EXEEXT): $(test_ftello3_OBJECTS) $(test_ftello3_DEPENDENCIES) $(EXTRA_test_ftello3_DEPENDENCIES) @rm -f test-ftello3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ftello3_OBJECTS) $(test_ftello3_LDADD) $(LIBS) test-ftello4$(EXEEXT): $(test_ftello4_OBJECTS) $(test_ftello4_DEPENDENCIES) $(EXTRA_test_ftello4_DEPENDENCIES) @rm -f test-ftello4$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ftello4_OBJECTS) $(test_ftello4_LDADD) $(LIBS) test-ftruncate$(EXEEXT): $(test_ftruncate_OBJECTS) $(test_ftruncate_DEPENDENCIES) $(EXTRA_test_ftruncate_DEPENDENCIES) @rm -f test-ftruncate$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ftruncate_OBJECTS) $(test_ftruncate_LDADD) $(LIBS) test-fwrite$(EXEEXT): $(test_fwrite_OBJECTS) $(test_fwrite_DEPENDENCIES) $(EXTRA_test_fwrite_DEPENDENCIES) @rm -f test-fwrite$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fwrite_OBJECTS) $(test_fwrite_LDADD) $(LIBS) test-getaddrinfo$(EXEEXT): $(test_getaddrinfo_OBJECTS) $(test_getaddrinfo_DEPENDENCIES) $(EXTRA_test_getaddrinfo_DEPENDENCIES) @rm -f test-getaddrinfo$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_getaddrinfo_OBJECTS) $(test_getaddrinfo_LDADD) $(LIBS) test-getcwd-lgpl$(EXEEXT): $(test_getcwd_lgpl_OBJECTS) $(test_getcwd_lgpl_DEPENDENCIES) $(EXTRA_test_getcwd_lgpl_DEPENDENCIES) @rm -f test-getcwd-lgpl$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_getcwd_lgpl_OBJECTS) $(test_getcwd_lgpl_LDADD) $(LIBS) test-getdelim$(EXEEXT): $(test_getdelim_OBJECTS) $(test_getdelim_DEPENDENCIES) $(EXTRA_test_getdelim_DEPENDENCIES) @rm -f test-getdelim$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_getdelim_OBJECTS) $(test_getdelim_LDADD) $(LIBS) test-getdtablesize$(EXEEXT): $(test_getdtablesize_OBJECTS) $(test_getdtablesize_DEPENDENCIES) $(EXTRA_test_getdtablesize_DEPENDENCIES) @rm -f test-getdtablesize$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_getdtablesize_OBJECTS) $(test_getdtablesize_LDADD) $(LIBS) test-gethostname$(EXEEXT): $(test_gethostname_OBJECTS) $(test_gethostname_DEPENDENCIES) $(EXTRA_test_gethostname_DEPENDENCIES) @rm -f test-gethostname$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_gethostname_OBJECTS) $(test_gethostname_LDADD) $(LIBS) test-getline$(EXEEXT): $(test_getline_OBJECTS) $(test_getline_DEPENDENCIES) $(EXTRA_test_getline_DEPENDENCIES) @rm -f test-getline$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_getline_OBJECTS) $(test_getline_LDADD) $(LIBS) test-getsockname$(EXEEXT): $(test_getsockname_OBJECTS) $(test_getsockname_DEPENDENCIES) $(EXTRA_test_getsockname_DEPENDENCIES) @rm -f test-getsockname$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_getsockname_OBJECTS) $(test_getsockname_LDADD) $(LIBS) test-gettimeofday$(EXEEXT): $(test_gettimeofday_OBJECTS) $(test_gettimeofday_DEPENDENCIES) $(EXTRA_test_gettimeofday_DEPENDENCIES) @rm -f test-gettimeofday$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_gettimeofday_OBJECTS) $(test_gettimeofday_LDADD) $(LIBS) test-ignore-value$(EXEEXT): $(test_ignore_value_OBJECTS) $(test_ignore_value_DEPENDENCIES) $(EXTRA_test_ignore_value_DEPENDENCIES) @rm -f test-ignore-value$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ignore_value_OBJECTS) $(test_ignore_value_LDADD) $(LIBS) test-inet_ntop$(EXEEXT): $(test_inet_ntop_OBJECTS) $(test_inet_ntop_DEPENDENCIES) $(EXTRA_test_inet_ntop_DEPENDENCIES) @rm -f test-inet_ntop$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_inet_ntop_OBJECTS) $(test_inet_ntop_LDADD) $(LIBS) test-inet_pton$(EXEEXT): $(test_inet_pton_OBJECTS) $(test_inet_pton_DEPENDENCIES) $(EXTRA_test_inet_pton_DEPENDENCIES) @rm -f test-inet_pton$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_inet_pton_OBJECTS) $(test_inet_pton_LDADD) $(LIBS) test-intprops$(EXEEXT): $(test_intprops_OBJECTS) $(test_intprops_DEPENDENCIES) $(EXTRA_test_intprops_DEPENDENCIES) @rm -f test-intprops$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_intprops_OBJECTS) $(test_intprops_LDADD) $(LIBS) test-inttypes$(EXEEXT): $(test_inttypes_OBJECTS) $(test_inttypes_DEPENDENCIES) $(EXTRA_test_inttypes_DEPENDENCIES) @rm -f test-inttypes$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_inttypes_OBJECTS) $(test_inttypes_LDADD) $(LIBS) test-ioctl$(EXEEXT): $(test_ioctl_OBJECTS) $(test_ioctl_DEPENDENCIES) $(EXTRA_test_ioctl_DEPENDENCIES) @rm -f test-ioctl$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ioctl_OBJECTS) $(test_ioctl_LDADD) $(LIBS) test-isblank$(EXEEXT): $(test_isblank_OBJECTS) $(test_isblank_DEPENDENCIES) $(EXTRA_test_isblank_DEPENDENCIES) @rm -f test-isblank$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_isblank_OBJECTS) $(test_isblank_LDADD) $(LIBS) test-langinfo$(EXEEXT): $(test_langinfo_OBJECTS) $(test_langinfo_DEPENDENCIES) $(EXTRA_test_langinfo_DEPENDENCIES) @rm -f test-langinfo$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_langinfo_OBJECTS) $(test_langinfo_LDADD) $(LIBS) test-limits-h$(EXEEXT): $(test_limits_h_OBJECTS) $(test_limits_h_DEPENDENCIES) $(EXTRA_test_limits_h_DEPENDENCIES) @rm -f test-limits-h$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_limits_h_OBJECTS) $(test_limits_h_LDADD) $(LIBS) test-listen$(EXEEXT): $(test_listen_OBJECTS) $(test_listen_DEPENDENCIES) $(EXTRA_test_listen_DEPENDENCIES) @rm -f test-listen$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_listen_OBJECTS) $(test_listen_LDADD) $(LIBS) test-localcharset$(EXEEXT): $(test_localcharset_OBJECTS) $(test_localcharset_DEPENDENCIES) $(EXTRA_test_localcharset_DEPENDENCIES) @rm -f test-localcharset$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_localcharset_OBJECTS) $(test_localcharset_LDADD) $(LIBS) test-locale$(EXEEXT): $(test_locale_OBJECTS) $(test_locale_DEPENDENCIES) $(EXTRA_test_locale_DEPENDENCIES) @rm -f test-locale$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_locale_OBJECTS) $(test_locale_LDADD) $(LIBS) test-localeconv$(EXEEXT): $(test_localeconv_OBJECTS) $(test_localeconv_DEPENDENCIES) $(EXTRA_test_localeconv_DEPENDENCIES) @rm -f test-localeconv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_localeconv_OBJECTS) $(test_localeconv_LDADD) $(LIBS) test-localename$(EXEEXT): $(test_localename_OBJECTS) $(test_localename_DEPENDENCIES) $(EXTRA_test_localename_DEPENDENCIES) @rm -f test-localename$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_localename_OBJECTS) $(test_localename_LDADD) $(LIBS) test-lock$(EXEEXT): $(test_lock_OBJECTS) $(test_lock_DEPENDENCIES) $(EXTRA_test_lock_DEPENDENCIES) @rm -f test-lock$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_lock_OBJECTS) $(test_lock_LDADD) $(LIBS) test-lseek$(EXEEXT): $(test_lseek_OBJECTS) $(test_lseek_DEPENDENCIES) $(EXTRA_test_lseek_DEPENDENCIES) @rm -f test-lseek$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_lseek_OBJECTS) $(test_lseek_LDADD) $(LIBS) test-lstat$(EXEEXT): $(test_lstat_OBJECTS) $(test_lstat_DEPENDENCIES) $(EXTRA_test_lstat_DEPENDENCIES) @rm -f test-lstat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_lstat_OBJECTS) $(test_lstat_LDADD) $(LIBS) test-malloca$(EXEEXT): $(test_malloca_OBJECTS) $(test_malloca_DEPENDENCIES) $(EXTRA_test_malloca_DEPENDENCIES) @rm -f test-malloca$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_malloca_OBJECTS) $(test_malloca_LDADD) $(LIBS) test-mbrtowc$(EXEEXT): $(test_mbrtowc_OBJECTS) $(test_mbrtowc_DEPENDENCIES) $(EXTRA_test_mbrtowc_DEPENDENCIES) @rm -f test-mbrtowc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_mbrtowc_OBJECTS) $(test_mbrtowc_LDADD) $(LIBS) test-mbrtowc-w32$(EXEEXT): $(test_mbrtowc_w32_OBJECTS) $(test_mbrtowc_w32_DEPENDENCIES) $(EXTRA_test_mbrtowc_w32_DEPENDENCIES) @rm -f test-mbrtowc-w32$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_mbrtowc_w32_OBJECTS) $(test_mbrtowc_w32_LDADD) $(LIBS) test-mbsinit$(EXEEXT): $(test_mbsinit_OBJECTS) $(test_mbsinit_DEPENDENCIES) $(EXTRA_test_mbsinit_DEPENDENCIES) @rm -f test-mbsinit$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_mbsinit_OBJECTS) $(test_mbsinit_LDADD) $(LIBS) test-memchr$(EXEEXT): $(test_memchr_OBJECTS) $(test_memchr_DEPENDENCIES) $(EXTRA_test_memchr_DEPENDENCIES) @rm -f test-memchr$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_memchr_OBJECTS) $(test_memchr_LDADD) $(LIBS) test-memmem$(EXEEXT): $(test_memmem_OBJECTS) $(test_memmem_DEPENDENCIES) $(EXTRA_test_memmem_DEPENDENCIES) @rm -f test-memmem$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_memmem_OBJECTS) $(test_memmem_LDADD) $(LIBS) test-nanosleep$(EXEEXT): $(test_nanosleep_OBJECTS) $(test_nanosleep_DEPENDENCIES) $(EXTRA_test_nanosleep_DEPENDENCIES) @rm -f test-nanosleep$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_nanosleep_OBJECTS) $(test_nanosleep_LDADD) $(LIBS) test-netdb$(EXEEXT): $(test_netdb_OBJECTS) $(test_netdb_DEPENDENCIES) $(EXTRA_test_netdb_DEPENDENCIES) @rm -f test-netdb$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_netdb_OBJECTS) $(test_netdb_LDADD) $(LIBS) test-netinet_in$(EXEEXT): $(test_netinet_in_OBJECTS) $(test_netinet_in_DEPENDENCIES) $(EXTRA_test_netinet_in_DEPENDENCIES) @rm -f test-netinet_in$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_netinet_in_OBJECTS) $(test_netinet_in_LDADD) $(LIBS) test-nl_langinfo$(EXEEXT): $(test_nl_langinfo_OBJECTS) $(test_nl_langinfo_DEPENDENCIES) $(EXTRA_test_nl_langinfo_DEPENDENCIES) @rm -f test-nl_langinfo$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_nl_langinfo_OBJECTS) $(test_nl_langinfo_LDADD) $(LIBS) test-once1$(EXEEXT): $(test_once1_OBJECTS) $(test_once1_DEPENDENCIES) $(EXTRA_test_once1_DEPENDENCIES) @rm -f test-once1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_once1_OBJECTS) $(test_once1_LDADD) $(LIBS) test-once2$(EXEEXT): $(test_once2_OBJECTS) $(test_once2_DEPENDENCIES) $(EXTRA_test_once2_DEPENDENCIES) @rm -f test-once2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_once2_OBJECTS) $(test_once2_LDADD) $(LIBS) test-open$(EXEEXT): $(test_open_OBJECTS) $(test_open_DEPENDENCIES) $(EXTRA_test_open_DEPENDENCIES) @rm -f test-open$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_open_OBJECTS) $(test_open_LDADD) $(LIBS) test-pathmax$(EXEEXT): $(test_pathmax_OBJECTS) $(test_pathmax_DEPENDENCIES) $(EXTRA_test_pathmax_DEPENDENCIES) @rm -f test-pathmax$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_pathmax_OBJECTS) $(test_pathmax_LDADD) $(LIBS) test-perror$(EXEEXT): $(test_perror_OBJECTS) $(test_perror_DEPENDENCIES) $(EXTRA_test_perror_DEPENDENCIES) @rm -f test-perror$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_perror_OBJECTS) $(test_perror_LDADD) $(LIBS) test-perror2$(EXEEXT): $(test_perror2_OBJECTS) $(test_perror2_DEPENDENCIES) $(EXTRA_test_perror2_DEPENDENCIES) @rm -f test-perror2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_perror2_OBJECTS) $(test_perror2_LDADD) $(LIBS) test-pipe$(EXEEXT): $(test_pipe_OBJECTS) $(test_pipe_DEPENDENCIES) $(EXTRA_test_pipe_DEPENDENCIES) @rm -f test-pipe$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_pipe_OBJECTS) $(test_pipe_LDADD) $(LIBS) test-poll$(EXEEXT): $(test_poll_OBJECTS) $(test_poll_DEPENDENCIES) $(EXTRA_test_poll_DEPENDENCIES) @rm -f test-poll$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_poll_OBJECTS) $(test_poll_LDADD) $(LIBS) test-poll-h$(EXEEXT): $(test_poll_h_OBJECTS) $(test_poll_h_DEPENDENCIES) $(EXTRA_test_poll_h_DEPENDENCIES) @rm -f test-poll-h$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_poll_h_OBJECTS) $(test_poll_h_LDADD) $(LIBS) test-pthread_sigmask1$(EXEEXT): $(test_pthread_sigmask1_OBJECTS) $(test_pthread_sigmask1_DEPENDENCIES) $(EXTRA_test_pthread_sigmask1_DEPENDENCIES) @rm -f test-pthread_sigmask1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_pthread_sigmask1_OBJECTS) $(test_pthread_sigmask1_LDADD) $(LIBS) test-pthread_sigmask2$(EXEEXT): $(test_pthread_sigmask2_OBJECTS) $(test_pthread_sigmask2_DEPENDENCIES) $(EXTRA_test_pthread_sigmask2_DEPENDENCIES) @rm -f test-pthread_sigmask2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_pthread_sigmask2_OBJECTS) $(test_pthread_sigmask2_LDADD) $(LIBS) test-raise$(EXEEXT): $(test_raise_OBJECTS) $(test_raise_DEPENDENCIES) $(EXTRA_test_raise_DEPENDENCIES) @rm -f test-raise$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_raise_OBJECTS) $(test_raise_LDADD) $(LIBS) test-regex$(EXEEXT): $(test_regex_OBJECTS) $(test_regex_DEPENDENCIES) $(EXTRA_test_regex_DEPENDENCIES) @rm -f test-regex$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_regex_OBJECTS) $(test_regex_LDADD) $(LIBS) test-rwlock1$(EXEEXT): $(test_rwlock1_OBJECTS) $(test_rwlock1_DEPENDENCIES) $(EXTRA_test_rwlock1_DEPENDENCIES) @rm -f test-rwlock1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_rwlock1_OBJECTS) $(test_rwlock1_LDADD) $(LIBS) test-select$(EXEEXT): $(test_select_OBJECTS) $(test_select_DEPENDENCIES) $(EXTRA_test_select_DEPENDENCIES) @rm -f test-select$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_select_OBJECTS) $(test_select_LDADD) $(LIBS) test-select-fd$(EXEEXT): $(test_select_fd_OBJECTS) $(test_select_fd_DEPENDENCIES) $(EXTRA_test_select_fd_DEPENDENCIES) @rm -f test-select-fd$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_select_fd_OBJECTS) $(test_select_fd_LDADD) $(LIBS) test-select-stdin$(EXEEXT): $(test_select_stdin_OBJECTS) $(test_select_stdin_DEPENDENCIES) $(EXTRA_test_select_stdin_DEPENDENCIES) @rm -f test-select-stdin$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_select_stdin_OBJECTS) $(test_select_stdin_LDADD) $(LIBS) test-setenv$(EXEEXT): $(test_setenv_OBJECTS) $(test_setenv_DEPENDENCIES) $(EXTRA_test_setenv_DEPENDENCIES) @rm -f test-setenv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_setenv_OBJECTS) $(test_setenv_LDADD) $(LIBS) test-setlocale1$(EXEEXT): $(test_setlocale1_OBJECTS) $(test_setlocale1_DEPENDENCIES) $(EXTRA_test_setlocale1_DEPENDENCIES) @rm -f test-setlocale1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_setlocale1_OBJECTS) $(test_setlocale1_LDADD) $(LIBS) test-setlocale2$(EXEEXT): $(test_setlocale2_OBJECTS) $(test_setlocale2_DEPENDENCIES) $(EXTRA_test_setlocale2_DEPENDENCIES) @rm -f test-setlocale2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_setlocale2_OBJECTS) $(test_setlocale2_LDADD) $(LIBS) test-setsockopt$(EXEEXT): $(test_setsockopt_OBJECTS) $(test_setsockopt_DEPENDENCIES) $(EXTRA_test_setsockopt_DEPENDENCIES) @rm -f test-setsockopt$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_setsockopt_OBJECTS) $(test_setsockopt_LDADD) $(LIBS) test-sigaction$(EXEEXT): $(test_sigaction_OBJECTS) $(test_sigaction_DEPENDENCIES) $(EXTRA_test_sigaction_DEPENDENCIES) @rm -f test-sigaction$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sigaction_OBJECTS) $(test_sigaction_LDADD) $(LIBS) test-signal-h$(EXEEXT): $(test_signal_h_OBJECTS) $(test_signal_h_DEPENDENCIES) $(EXTRA_test_signal_h_DEPENDENCIES) @rm -f test-signal-h$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_signal_h_OBJECTS) $(test_signal_h_LDADD) $(LIBS) test-sigprocmask$(EXEEXT): $(test_sigprocmask_OBJECTS) $(test_sigprocmask_DEPENDENCIES) $(EXTRA_test_sigprocmask_DEPENDENCIES) @rm -f test-sigprocmask$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sigprocmask_OBJECTS) $(test_sigprocmask_LDADD) $(LIBS) test-sleep$(EXEEXT): $(test_sleep_OBJECTS) $(test_sleep_DEPENDENCIES) $(EXTRA_test_sleep_DEPENDENCIES) @rm -f test-sleep$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sleep_OBJECTS) $(test_sleep_LDADD) $(LIBS) test-snprintf$(EXEEXT): $(test_snprintf_OBJECTS) $(test_snprintf_DEPENDENCIES) $(EXTRA_test_snprintf_DEPENDENCIES) @rm -f test-snprintf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_snprintf_OBJECTS) $(test_snprintf_LDADD) $(LIBS) test-sockets$(EXEEXT): $(test_sockets_OBJECTS) $(test_sockets_DEPENDENCIES) $(EXTRA_test_sockets_DEPENDENCIES) @rm -f test-sockets$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sockets_OBJECTS) $(test_sockets_LDADD) $(LIBS) test-stat$(EXEEXT): $(test_stat_OBJECTS) $(test_stat_DEPENDENCIES) $(EXTRA_test_stat_DEPENDENCIES) @rm -f test-stat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stat_OBJECTS) $(test_stat_LDADD) $(LIBS) test-stat-time$(EXEEXT): $(test_stat_time_OBJECTS) $(test_stat_time_DEPENDENCIES) $(EXTRA_test_stat_time_DEPENDENCIES) @rm -f test-stat-time$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stat_time_OBJECTS) $(test_stat_time_LDADD) $(LIBS) test-stdalign$(EXEEXT): $(test_stdalign_OBJECTS) $(test_stdalign_DEPENDENCIES) $(EXTRA_test_stdalign_DEPENDENCIES) @rm -f test-stdalign$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stdalign_OBJECTS) $(test_stdalign_LDADD) $(LIBS) test-stdbool$(EXEEXT): $(test_stdbool_OBJECTS) $(test_stdbool_DEPENDENCIES) $(EXTRA_test_stdbool_DEPENDENCIES) @rm -f test-stdbool$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stdbool_OBJECTS) $(test_stdbool_LDADD) $(LIBS) test-stddef$(EXEEXT): $(test_stddef_OBJECTS) $(test_stddef_DEPENDENCIES) $(EXTRA_test_stddef_DEPENDENCIES) @rm -f test-stddef$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stddef_OBJECTS) $(test_stddef_LDADD) $(LIBS) test-stdint$(EXEEXT): $(test_stdint_OBJECTS) $(test_stdint_DEPENDENCIES) $(EXTRA_test_stdint_DEPENDENCIES) @rm -f test-stdint$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stdint_OBJECTS) $(test_stdint_LDADD) $(LIBS) test-stdio$(EXEEXT): $(test_stdio_OBJECTS) $(test_stdio_DEPENDENCIES) $(EXTRA_test_stdio_DEPENDENCIES) @rm -f test-stdio$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stdio_OBJECTS) $(test_stdio_LDADD) $(LIBS) test-stdlib$(EXEEXT): $(test_stdlib_OBJECTS) $(test_stdlib_DEPENDENCIES) $(EXTRA_test_stdlib_DEPENDENCIES) @rm -f test-stdlib$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stdlib_OBJECTS) $(test_stdlib_LDADD) $(LIBS) test-strcasestr$(EXEEXT): $(test_strcasestr_OBJECTS) $(test_strcasestr_DEPENDENCIES) $(EXTRA_test_strcasestr_DEPENDENCIES) @rm -f test-strcasestr$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_strcasestr_OBJECTS) $(test_strcasestr_LDADD) $(LIBS) test-strerror$(EXEEXT): $(test_strerror_OBJECTS) $(test_strerror_DEPENDENCIES) $(EXTRA_test_strerror_DEPENDENCIES) @rm -f test-strerror$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_strerror_OBJECTS) $(test_strerror_LDADD) $(LIBS) test-strerror_r$(EXEEXT): $(test_strerror_r_OBJECTS) $(test_strerror_r_DEPENDENCIES) $(EXTRA_test_strerror_r_DEPENDENCIES) @rm -f test-strerror_r$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_strerror_r_OBJECTS) $(test_strerror_r_LDADD) $(LIBS) test-string$(EXEEXT): $(test_string_OBJECTS) $(test_string_DEPENDENCIES) $(EXTRA_test_string_DEPENDENCIES) @rm -f test-string$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_string_OBJECTS) $(test_string_LDADD) $(LIBS) test-strings$(EXEEXT): $(test_strings_OBJECTS) $(test_strings_DEPENDENCIES) $(EXTRA_test_strings_DEPENDENCIES) @rm -f test-strings$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_strings_OBJECTS) $(test_strings_LDADD) $(LIBS) test-strnlen$(EXEEXT): $(test_strnlen_OBJECTS) $(test_strnlen_DEPENDENCIES) $(EXTRA_test_strnlen_DEPENDENCIES) @rm -f test-strnlen$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_strnlen_OBJECTS) $(test_strnlen_LDADD) $(LIBS) test-symlink$(EXEEXT): $(test_symlink_OBJECTS) $(test_symlink_DEPENDENCIES) $(EXTRA_test_symlink_DEPENDENCIES) @rm -f test-symlink$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_symlink_OBJECTS) $(test_symlink_LDADD) $(LIBS) test-sys_ioctl$(EXEEXT): $(test_sys_ioctl_OBJECTS) $(test_sys_ioctl_DEPENDENCIES) $(EXTRA_test_sys_ioctl_DEPENDENCIES) @rm -f test-sys_ioctl$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sys_ioctl_OBJECTS) $(test_sys_ioctl_LDADD) $(LIBS) test-sys_select$(EXEEXT): $(test_sys_select_OBJECTS) $(test_sys_select_DEPENDENCIES) $(EXTRA_test_sys_select_DEPENDENCIES) @rm -f test-sys_select$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sys_select_OBJECTS) $(test_sys_select_LDADD) $(LIBS) test-sys_socket$(EXEEXT): $(test_sys_socket_OBJECTS) $(test_sys_socket_DEPENDENCIES) $(EXTRA_test_sys_socket_DEPENDENCIES) @rm -f test-sys_socket$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sys_socket_OBJECTS) $(test_sys_socket_LDADD) $(LIBS) test-sys_stat$(EXEEXT): $(test_sys_stat_OBJECTS) $(test_sys_stat_DEPENDENCIES) $(EXTRA_test_sys_stat_DEPENDENCIES) @rm -f test-sys_stat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sys_stat_OBJECTS) $(test_sys_stat_LDADD) $(LIBS) test-sys_time$(EXEEXT): $(test_sys_time_OBJECTS) $(test_sys_time_DEPENDENCIES) $(EXTRA_test_sys_time_DEPENDENCIES) @rm -f test-sys_time$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sys_time_OBJECTS) $(test_sys_time_LDADD) $(LIBS) test-sys_types$(EXEEXT): $(test_sys_types_OBJECTS) $(test_sys_types_DEPENDENCIES) $(EXTRA_test_sys_types_DEPENDENCIES) @rm -f test-sys_types$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sys_types_OBJECTS) $(test_sys_types_LDADD) $(LIBS) test-sys_uio$(EXEEXT): $(test_sys_uio_OBJECTS) $(test_sys_uio_DEPENDENCIES) $(EXTRA_test_sys_uio_DEPENDENCIES) @rm -f test-sys_uio$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sys_uio_OBJECTS) $(test_sys_uio_LDADD) $(LIBS) test-sys_utsname$(EXEEXT): $(test_sys_utsname_OBJECTS) $(test_sys_utsname_DEPENDENCIES) $(EXTRA_test_sys_utsname_DEPENDENCIES) @rm -f test-sys_utsname$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sys_utsname_OBJECTS) $(test_sys_utsname_LDADD) $(LIBS) test-thread_create$(EXEEXT): $(test_thread_create_OBJECTS) $(test_thread_create_DEPENDENCIES) $(EXTRA_test_thread_create_DEPENDENCIES) @rm -f test-thread_create$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_thread_create_OBJECTS) $(test_thread_create_LDADD) $(LIBS) test-thread_self$(EXEEXT): $(test_thread_self_OBJECTS) $(test_thread_self_DEPENDENCIES) $(EXTRA_test_thread_self_DEPENDENCIES) @rm -f test-thread_self$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_thread_self_OBJECTS) $(test_thread_self_LDADD) $(LIBS) test-time$(EXEEXT): $(test_time_OBJECTS) $(test_time_DEPENDENCIES) $(EXTRA_test_time_DEPENDENCIES) @rm -f test-time$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_time_OBJECTS) $(test_time_LDADD) $(LIBS) test-tls$(EXEEXT): $(test_tls_OBJECTS) $(test_tls_DEPENDENCIES) $(EXTRA_test_tls_DEPENDENCIES) @rm -f test-tls$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_tls_OBJECTS) $(test_tls_LDADD) $(LIBS) test-uname$(EXEEXT): $(test_uname_OBJECTS) $(test_uname_DEPENDENCIES) $(EXTRA_test_uname_DEPENDENCIES) @rm -f test-uname$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_uname_OBJECTS) $(test_uname_LDADD) $(LIBS) test-unistd$(EXEEXT): $(test_unistd_OBJECTS) $(test_unistd_DEPENDENCIES) $(EXTRA_test_unistd_DEPENDENCIES) @rm -f test-unistd$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_unistd_OBJECTS) $(test_unistd_LDADD) $(LIBS) test-unsetenv$(EXEEXT): $(test_unsetenv_OBJECTS) $(test_unsetenv_DEPENDENCIES) $(EXTRA_test_unsetenv_DEPENDENCIES) @rm -f test-unsetenv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_unsetenv_OBJECTS) $(test_unsetenv_LDADD) $(LIBS) test-usleep$(EXEEXT): $(test_usleep_OBJECTS) $(test_usleep_DEPENDENCIES) $(EXTRA_test_usleep_DEPENDENCIES) @rm -f test-usleep$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_usleep_OBJECTS) $(test_usleep_LDADD) $(LIBS) test-vasnprintf$(EXEEXT): $(test_vasnprintf_OBJECTS) $(test_vasnprintf_DEPENDENCIES) $(EXTRA_test_vasnprintf_DEPENDENCIES) @rm -f test-vasnprintf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_vasnprintf_OBJECTS) $(test_vasnprintf_LDADD) $(LIBS) test-verify$(EXEEXT): $(test_verify_OBJECTS) $(test_verify_DEPENDENCIES) $(EXTRA_test_verify_DEPENDENCIES) @rm -f test-verify$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_verify_OBJECTS) $(test_verify_LDADD) $(LIBS) test-verify-try$(EXEEXT): $(test_verify_try_OBJECTS) $(test_verify_try_DEPENDENCIES) $(EXTRA_test_verify_try_DEPENDENCIES) @rm -f test-verify-try$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_verify_try_OBJECTS) $(test_verify_try_LDADD) $(LIBS) test-vsnprintf$(EXEEXT): $(test_vsnprintf_OBJECTS) $(test_vsnprintf_DEPENDENCIES) $(EXTRA_test_vsnprintf_DEPENDENCIES) @rm -f test-vsnprintf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_vsnprintf_OBJECTS) $(test_vsnprintf_LDADD) $(LIBS) test-wchar$(EXEEXT): $(test_wchar_OBJECTS) $(test_wchar_DEPENDENCIES) $(EXTRA_test_wchar_DEPENDENCIES) @rm -f test-wchar$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_wchar_OBJECTS) $(test_wchar_LDADD) $(LIBS) test-wcrtomb$(EXEEXT): $(test_wcrtomb_OBJECTS) $(test_wcrtomb_DEPENDENCIES) $(EXTRA_test_wcrtomb_DEPENDENCIES) @rm -f test-wcrtomb$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_wcrtomb_OBJECTS) $(test_wcrtomb_LDADD) $(LIBS) test-wcrtomb-w32$(EXEEXT): $(test_wcrtomb_w32_OBJECTS) $(test_wcrtomb_w32_DEPENDENCIES) $(EXTRA_test_wcrtomb_w32_DEPENDENCIES) @rm -f test-wcrtomb-w32$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_wcrtomb_w32_OBJECTS) $(test_wcrtomb_w32_LDADD) $(LIBS) test-wctype-h$(EXEEXT): $(test_wctype_h_OBJECTS) $(test_wctype_h_DEPENDENCIES) $(EXTRA_test_wctype_h_DEPENDENCIES) @rm -f test-wctype-h$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_wctype_h_OBJECTS) $(test_wctype_h_LDADD) $(LIBS) test-write$(EXEEXT): $(test_write_OBJECTS) $(test_write_DEPENDENCIES) $(EXTRA_test_write_DEPENDENCIES) @rm -f test-write$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_write_OBJECTS) $(test_write_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/binary-io.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloexec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdopen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftruncate.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd-lgpl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdtablesize.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpagesize.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isblank.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localename.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nanosleep.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/putenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setlocale.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sig-handler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaction.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symlink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-accept.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-alloca-opt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-arpa_inet.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-binary-io.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-bind.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-btowc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-ctype.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strcasecmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strncasecmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-cloexec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-close.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-cond.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-connect.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ctype.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-dup2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-environ.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-errno.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fclose.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fcntl-h.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fcntl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fdopen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fflush.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fflush2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fgetc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-float.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fopen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fpurge.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fputc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fread.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-freading.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fseek.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fseeko.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fseeko3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fseeko4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftell.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftell3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftello.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftello3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftello4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftruncate.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fwrite.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getaddrinfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getcwd-lgpl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getdelim.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getdtablesize.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-gethostname.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getline.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getsockname.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-gettimeofday.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ignore-value.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-inet_ntop.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-inet_pton.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-intprops.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-inttypes.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ioctl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-isblank.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-langinfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-limits-h.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-listen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-localcharset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-locale.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-localeconv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-localename.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-lock.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-lseek.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-lstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-malloca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbrtowc-w32.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbrtowc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsinit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-memchr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-memmem.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nanosleep.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-netdb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-netinet_in.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nl_langinfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-once.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-open.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pathmax.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-perror.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-perror2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pipe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-poll-h.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-poll.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pthread_sigmask1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pthread_sigmask2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-raise.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-regex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-rwlock1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-select-fd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-select-stdin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-select.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setlocale1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setlocale2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setsockopt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sigaction.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-signal-h.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sigprocmask.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sleep.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-snprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sockets.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stat-time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdalign.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdbool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stddef.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdint.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdlib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strcasestr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strerror.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strerror_r.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-string.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strings.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strnlen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-symlink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_ioctl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_select.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_socket.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_stat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_types.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_uio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_utsname.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-thread_create.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-thread_self.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-tls.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-uname.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unistd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unsetenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-usleep.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-vasnprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-verify-try.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-verify.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-vsnprintf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wchar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wcrtomb-w32.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wcrtomb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wctype-h.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-write.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usleep.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctob.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctomb.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(check_LIBRARIES) $(check_PROGRAMS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? test-accept.log: test-accept$(EXEEXT) @p='test-accept$(EXEEXT)'; \ b='test-accept'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-alloca-opt.log: test-alloca-opt$(EXEEXT) @p='test-alloca-opt$(EXEEXT)'; \ b='test-alloca-opt'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-arpa_inet.log: test-arpa_inet$(EXEEXT) @p='test-arpa_inet$(EXEEXT)'; \ b='test-arpa_inet'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-binary-io.sh.log: test-binary-io.sh @p='test-binary-io.sh'; \ b='test-binary-io.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-bind.log: test-bind$(EXEEXT) @p='test-bind$(EXEEXT)'; \ b='test-bind'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-btowc1.sh.log: test-btowc1.sh @p='test-btowc1.sh'; \ b='test-btowc1.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-btowc2.sh.log: test-btowc2.sh @p='test-btowc2.sh'; \ b='test-btowc2.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-c-ctype.log: test-c-ctype$(EXEEXT) @p='test-c-ctype$(EXEEXT)'; \ b='test-c-ctype'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-c-strcase.sh.log: test-c-strcase.sh @p='test-c-strcase.sh'; \ b='test-c-strcase.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-cloexec.log: test-cloexec$(EXEEXT) @p='test-cloexec$(EXEEXT)'; \ b='test-cloexec'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-close.log: test-close$(EXEEXT) @p='test-close$(EXEEXT)'; \ b='test-close'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-cond.log: test-cond$(EXEEXT) @p='test-cond$(EXEEXT)'; \ b='test-cond'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-connect.log: test-connect$(EXEEXT) @p='test-connect$(EXEEXT)'; \ b='test-connect'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-ctype.log: test-ctype$(EXEEXT) @p='test-ctype$(EXEEXT)'; \ b='test-ctype'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-dup2.log: test-dup2$(EXEEXT) @p='test-dup2$(EXEEXT)'; \ b='test-dup2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-environ.log: test-environ$(EXEEXT) @p='test-environ$(EXEEXT)'; \ b='test-environ'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-errno.log: test-errno$(EXEEXT) @p='test-errno$(EXEEXT)'; \ b='test-errno'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fclose.log: test-fclose$(EXEEXT) @p='test-fclose$(EXEEXT)'; \ b='test-fclose'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fcntl-h.log: test-fcntl-h$(EXEEXT) @p='test-fcntl-h$(EXEEXT)'; \ b='test-fcntl-h'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fcntl.log: test-fcntl$(EXEEXT) @p='test-fcntl$(EXEEXT)'; \ b='test-fcntl'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fdopen.log: test-fdopen$(EXEEXT) @p='test-fdopen$(EXEEXT)'; \ b='test-fdopen'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fflush.log: test-fflush$(EXEEXT) @p='test-fflush$(EXEEXT)'; \ b='test-fflush'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fflush2.sh.log: test-fflush2.sh @p='test-fflush2.sh'; \ b='test-fflush2.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fgetc.log: test-fgetc$(EXEEXT) @p='test-fgetc$(EXEEXT)'; \ b='test-fgetc'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-float.log: test-float$(EXEEXT) @p='test-float$(EXEEXT)'; \ b='test-float'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fopen.log: test-fopen$(EXEEXT) @p='test-fopen$(EXEEXT)'; \ b='test-fopen'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fpurge.log: test-fpurge$(EXEEXT) @p='test-fpurge$(EXEEXT)'; \ b='test-fpurge'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fputc.log: test-fputc$(EXEEXT) @p='test-fputc$(EXEEXT)'; \ b='test-fputc'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fread.log: test-fread$(EXEEXT) @p='test-fread$(EXEEXT)'; \ b='test-fread'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-freading.log: test-freading$(EXEEXT) @p='test-freading$(EXEEXT)'; \ b='test-freading'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fseek.sh.log: test-fseek.sh @p='test-fseek.sh'; \ b='test-fseek.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fseek2.sh.log: test-fseek2.sh @p='test-fseek2.sh'; \ b='test-fseek2.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fseeko.sh.log: test-fseeko.sh @p='test-fseeko.sh'; \ b='test-fseeko.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fseeko2.sh.log: test-fseeko2.sh @p='test-fseeko2.sh'; \ b='test-fseeko2.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fseeko3.sh.log: test-fseeko3.sh @p='test-fseeko3.sh'; \ b='test-fseeko3.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fseeko4.sh.log: test-fseeko4.sh @p='test-fseeko4.sh'; \ b='test-fseeko4.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fstat.log: test-fstat$(EXEEXT) @p='test-fstat$(EXEEXT)'; \ b='test-fstat'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-ftell.sh.log: test-ftell.sh @p='test-ftell.sh'; \ b='test-ftell.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-ftell2.sh.log: test-ftell2.sh @p='test-ftell2.sh'; \ b='test-ftell2.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-ftell3.log: test-ftell3$(EXEEXT) @p='test-ftell3$(EXEEXT)'; \ b='test-ftell3'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-ftello.sh.log: test-ftello.sh @p='test-ftello.sh'; \ b='test-ftello.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-ftello2.sh.log: test-ftello2.sh @p='test-ftello2.sh'; \ b='test-ftello2.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-ftello3.log: test-ftello3$(EXEEXT) @p='test-ftello3$(EXEEXT)'; \ b='test-ftello3'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-ftello4.sh.log: test-ftello4.sh @p='test-ftello4.sh'; \ b='test-ftello4.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-ftruncate.sh.log: test-ftruncate.sh @p='test-ftruncate.sh'; \ b='test-ftruncate.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fwrite.log: test-fwrite$(EXEEXT) @p='test-fwrite$(EXEEXT)'; \ b='test-fwrite'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-getaddrinfo.log: test-getaddrinfo$(EXEEXT) @p='test-getaddrinfo$(EXEEXT)'; \ b='test-getaddrinfo'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-getcwd-lgpl.log: test-getcwd-lgpl$(EXEEXT) @p='test-getcwd-lgpl$(EXEEXT)'; \ b='test-getcwd-lgpl'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-getdelim.log: test-getdelim$(EXEEXT) @p='test-getdelim$(EXEEXT)'; \ b='test-getdelim'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-getdtablesize.log: test-getdtablesize$(EXEEXT) @p='test-getdtablesize$(EXEEXT)'; \ b='test-getdtablesize'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-gethostname.log: test-gethostname$(EXEEXT) @p='test-gethostname$(EXEEXT)'; \ b='test-gethostname'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-getline.log: test-getline$(EXEEXT) @p='test-getline$(EXEEXT)'; \ b='test-getline'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-getsockname.log: test-getsockname$(EXEEXT) @p='test-getsockname$(EXEEXT)'; \ b='test-getsockname'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-gettimeofday.log: test-gettimeofday$(EXEEXT) @p='test-gettimeofday$(EXEEXT)'; \ b='test-gettimeofday'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-ignore-value.log: test-ignore-value$(EXEEXT) @p='test-ignore-value$(EXEEXT)'; \ b='test-ignore-value'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-inet_ntop.log: test-inet_ntop$(EXEEXT) @p='test-inet_ntop$(EXEEXT)'; \ b='test-inet_ntop'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-inet_pton.log: test-inet_pton$(EXEEXT) @p='test-inet_pton$(EXEEXT)'; \ b='test-inet_pton'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-intprops.log: test-intprops$(EXEEXT) @p='test-intprops$(EXEEXT)'; \ b='test-intprops'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-inttypes.log: test-inttypes$(EXEEXT) @p='test-inttypes$(EXEEXT)'; \ b='test-inttypes'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-ioctl.log: test-ioctl$(EXEEXT) @p='test-ioctl$(EXEEXT)'; \ b='test-ioctl'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-isblank.log: test-isblank$(EXEEXT) @p='test-isblank$(EXEEXT)'; \ b='test-isblank'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-langinfo.log: test-langinfo$(EXEEXT) @p='test-langinfo$(EXEEXT)'; \ b='test-langinfo'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-limits-h.log: test-limits-h$(EXEEXT) @p='test-limits-h$(EXEEXT)'; \ b='test-limits-h'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-listen.log: test-listen$(EXEEXT) @p='test-listen$(EXEEXT)'; \ b='test-listen'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-locale.log: test-locale$(EXEEXT) @p='test-locale$(EXEEXT)'; \ b='test-locale'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-localeconv.log: test-localeconv$(EXEEXT) @p='test-localeconv$(EXEEXT)'; \ b='test-localeconv'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-localename.log: test-localename$(EXEEXT) @p='test-localename$(EXEEXT)'; \ b='test-localename'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-rwlock1.log: test-rwlock1$(EXEEXT) @p='test-rwlock1$(EXEEXT)'; \ b='test-rwlock1'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-lock.log: test-lock$(EXEEXT) @p='test-lock$(EXEEXT)'; \ b='test-lock'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-once1.log: test-once1$(EXEEXT) @p='test-once1$(EXEEXT)'; \ b='test-once1'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-once2.log: test-once2$(EXEEXT) @p='test-once2$(EXEEXT)'; \ b='test-once2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-lseek.sh.log: test-lseek.sh @p='test-lseek.sh'; \ b='test-lseek.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-lstat.log: test-lstat$(EXEEXT) @p='test-lstat$(EXEEXT)'; \ b='test-lstat'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-malloca.log: test-malloca$(EXEEXT) @p='test-malloca$(EXEEXT)'; \ b='test-malloca'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-mbrtowc1.sh.log: test-mbrtowc1.sh @p='test-mbrtowc1.sh'; \ b='test-mbrtowc1.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-mbrtowc2.sh.log: test-mbrtowc2.sh @p='test-mbrtowc2.sh'; \ b='test-mbrtowc2.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-mbrtowc3.sh.log: test-mbrtowc3.sh @p='test-mbrtowc3.sh'; \ b='test-mbrtowc3.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-mbrtowc4.sh.log: test-mbrtowc4.sh @p='test-mbrtowc4.sh'; \ b='test-mbrtowc4.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-mbrtowc5.sh.log: test-mbrtowc5.sh @p='test-mbrtowc5.sh'; \ b='test-mbrtowc5.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-mbrtowc-w32-1.sh.log: test-mbrtowc-w32-1.sh @p='test-mbrtowc-w32-1.sh'; \ b='test-mbrtowc-w32-1.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-mbrtowc-w32-2.sh.log: test-mbrtowc-w32-2.sh @p='test-mbrtowc-w32-2.sh'; \ b='test-mbrtowc-w32-2.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-mbrtowc-w32-3.sh.log: test-mbrtowc-w32-3.sh @p='test-mbrtowc-w32-3.sh'; \ b='test-mbrtowc-w32-3.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-mbrtowc-w32-4.sh.log: test-mbrtowc-w32-4.sh @p='test-mbrtowc-w32-4.sh'; \ b='test-mbrtowc-w32-4.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-mbrtowc-w32-5.sh.log: test-mbrtowc-w32-5.sh @p='test-mbrtowc-w32-5.sh'; \ b='test-mbrtowc-w32-5.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-mbsinit.sh.log: test-mbsinit.sh @p='test-mbsinit.sh'; \ b='test-mbsinit.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-memchr.log: test-memchr$(EXEEXT) @p='test-memchr$(EXEEXT)'; \ b='test-memchr'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-memmem.log: test-memmem$(EXEEXT) @p='test-memmem$(EXEEXT)'; \ b='test-memmem'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-nanosleep.log: test-nanosleep$(EXEEXT) @p='test-nanosleep$(EXEEXT)'; \ b='test-nanosleep'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-netdb.log: test-netdb$(EXEEXT) @p='test-netdb$(EXEEXT)'; \ b='test-netdb'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-netinet_in.log: test-netinet_in$(EXEEXT) @p='test-netinet_in$(EXEEXT)'; \ b='test-netinet_in'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-nl_langinfo.sh.log: test-nl_langinfo.sh @p='test-nl_langinfo.sh'; \ b='test-nl_langinfo.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-open.log: test-open$(EXEEXT) @p='test-open$(EXEEXT)'; \ b='test-open'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-pathmax.log: test-pathmax$(EXEEXT) @p='test-pathmax$(EXEEXT)'; \ b='test-pathmax'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-perror.sh.log: test-perror.sh @p='test-perror.sh'; \ b='test-perror.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-perror2.log: test-perror2$(EXEEXT) @p='test-perror2$(EXEEXT)'; \ b='test-perror2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-pipe.log: test-pipe$(EXEEXT) @p='test-pipe$(EXEEXT)'; \ b='test-pipe'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-poll-h.log: test-poll-h$(EXEEXT) @p='test-poll-h$(EXEEXT)'; \ b='test-poll-h'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-poll.log: test-poll$(EXEEXT) @p='test-poll$(EXEEXT)'; \ b='test-poll'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-pthread_sigmask1.log: test-pthread_sigmask1$(EXEEXT) @p='test-pthread_sigmask1$(EXEEXT)'; \ b='test-pthread_sigmask1'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-pthread_sigmask2.log: test-pthread_sigmask2$(EXEEXT) @p='test-pthread_sigmask2$(EXEEXT)'; \ b='test-pthread_sigmask2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-raise.log: test-raise$(EXEEXT) @p='test-raise$(EXEEXT)'; \ b='test-raise'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-regex.log: test-regex$(EXEEXT) @p='test-regex$(EXEEXT)'; \ b='test-regex'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-select.log: test-select$(EXEEXT) @p='test-select$(EXEEXT)'; \ b='test-select'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-select-in.sh.log: test-select-in.sh @p='test-select-in.sh'; \ b='test-select-in.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-select-out.sh.log: test-select-out.sh @p='test-select-out.sh'; \ b='test-select-out.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-setenv.log: test-setenv$(EXEEXT) @p='test-setenv$(EXEEXT)'; \ b='test-setenv'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-setlocale1.sh.log: test-setlocale1.sh @p='test-setlocale1.sh'; \ b='test-setlocale1.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-setlocale2.sh.log: test-setlocale2.sh @p='test-setlocale2.sh'; \ b='test-setlocale2.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-setsockopt.log: test-setsockopt$(EXEEXT) @p='test-setsockopt$(EXEEXT)'; \ b='test-setsockopt'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sigaction.log: test-sigaction$(EXEEXT) @p='test-sigaction$(EXEEXT)'; \ b='test-sigaction'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-signal-h.log: test-signal-h$(EXEEXT) @p='test-signal-h$(EXEEXT)'; \ b='test-signal-h'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sigprocmask.log: test-sigprocmask$(EXEEXT) @p='test-sigprocmask$(EXEEXT)'; \ b='test-sigprocmask'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sleep.log: test-sleep$(EXEEXT) @p='test-sleep$(EXEEXT)'; \ b='test-sleep'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-snprintf.log: test-snprintf$(EXEEXT) @p='test-snprintf$(EXEEXT)'; \ b='test-snprintf'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sockets.log: test-sockets$(EXEEXT) @p='test-sockets$(EXEEXT)'; \ b='test-sockets'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stat.log: test-stat$(EXEEXT) @p='test-stat$(EXEEXT)'; \ b='test-stat'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stat-time.log: test-stat-time$(EXEEXT) @p='test-stat-time$(EXEEXT)'; \ b='test-stat-time'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stdalign.log: test-stdalign$(EXEEXT) @p='test-stdalign$(EXEEXT)'; \ b='test-stdalign'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stdbool.log: test-stdbool$(EXEEXT) @p='test-stdbool$(EXEEXT)'; \ b='test-stdbool'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stddef.log: test-stddef$(EXEEXT) @p='test-stddef$(EXEEXT)'; \ b='test-stddef'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stdint.log: test-stdint$(EXEEXT) @p='test-stdint$(EXEEXT)'; \ b='test-stdint'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stdio.log: test-stdio$(EXEEXT) @p='test-stdio$(EXEEXT)'; \ b='test-stdio'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stdlib.log: test-stdlib$(EXEEXT) @p='test-stdlib$(EXEEXT)'; \ b='test-stdlib'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-strcasestr.log: test-strcasestr$(EXEEXT) @p='test-strcasestr$(EXEEXT)'; \ b='test-strcasestr'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-strerror.log: test-strerror$(EXEEXT) @p='test-strerror$(EXEEXT)'; \ b='test-strerror'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-strerror_r.log: test-strerror_r$(EXEEXT) @p='test-strerror_r$(EXEEXT)'; \ b='test-strerror_r'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-string.log: test-string$(EXEEXT) @p='test-string$(EXEEXT)'; \ b='test-string'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-strings.log: test-strings$(EXEEXT) @p='test-strings$(EXEEXT)'; \ b='test-strings'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-strnlen.log: test-strnlen$(EXEEXT) @p='test-strnlen$(EXEEXT)'; \ b='test-strnlen'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-symlink.log: test-symlink$(EXEEXT) @p='test-symlink$(EXEEXT)'; \ b='test-symlink'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sys_ioctl.log: test-sys_ioctl$(EXEEXT) @p='test-sys_ioctl$(EXEEXT)'; \ b='test-sys_ioctl'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sys_select.log: test-sys_select$(EXEEXT) @p='test-sys_select$(EXEEXT)'; \ b='test-sys_select'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sys_socket.log: test-sys_socket$(EXEEXT) @p='test-sys_socket$(EXEEXT)'; \ b='test-sys_socket'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sys_stat.log: test-sys_stat$(EXEEXT) @p='test-sys_stat$(EXEEXT)'; \ b='test-sys_stat'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sys_time.log: test-sys_time$(EXEEXT) @p='test-sys_time$(EXEEXT)'; \ b='test-sys_time'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sys_types.log: test-sys_types$(EXEEXT) @p='test-sys_types$(EXEEXT)'; \ b='test-sys_types'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sys_uio.log: test-sys_uio$(EXEEXT) @p='test-sys_uio$(EXEEXT)'; \ b='test-sys_uio'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sys_utsname.log: test-sys_utsname$(EXEEXT) @p='test-sys_utsname$(EXEEXT)'; \ b='test-sys_utsname'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-init.sh.log: test-init.sh @p='test-init.sh'; \ b='test-init.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-thread_self.log: test-thread_self$(EXEEXT) @p='test-thread_self$(EXEEXT)'; \ b='test-thread_self'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-thread_create.log: test-thread_create$(EXEEXT) @p='test-thread_create$(EXEEXT)'; \ b='test-thread_create'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-time.log: test-time$(EXEEXT) @p='test-time$(EXEEXT)'; \ b='test-time'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-tls.log: test-tls$(EXEEXT) @p='test-tls$(EXEEXT)'; \ b='test-tls'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-uname.log: test-uname$(EXEEXT) @p='test-uname$(EXEEXT)'; \ b='test-uname'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-unistd.log: test-unistd$(EXEEXT) @p='test-unistd$(EXEEXT)'; \ b='test-unistd'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-unsetenv.log: test-unsetenv$(EXEEXT) @p='test-unsetenv$(EXEEXT)'; \ b='test-unsetenv'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-usleep.log: test-usleep$(EXEEXT) @p='test-usleep$(EXEEXT)'; \ b='test-usleep'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-vasnprintf.log: test-vasnprintf$(EXEEXT) @p='test-vasnprintf$(EXEEXT)'; \ b='test-vasnprintf'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-verify.log: test-verify$(EXEEXT) @p='test-verify$(EXEEXT)'; \ b='test-verify'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-verify.sh.log: test-verify.sh @p='test-verify.sh'; \ b='test-verify.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-vsnprintf.log: test-vsnprintf$(EXEEXT) @p='test-vsnprintf$(EXEEXT)'; \ b='test-vsnprintf'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-wchar.log: test-wchar$(EXEEXT) @p='test-wchar$(EXEEXT)'; \ b='test-wchar'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-wcrtomb.sh.log: test-wcrtomb.sh @p='test-wcrtomb.sh'; \ b='test-wcrtomb.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-wcrtomb-w32-1.sh.log: test-wcrtomb-w32-1.sh @p='test-wcrtomb-w32-1.sh'; \ b='test-wcrtomb-w32-1.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-wcrtomb-w32-2.sh.log: test-wcrtomb-w32-2.sh @p='test-wcrtomb-w32-2.sh'; \ b='test-wcrtomb-w32-2.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-wcrtomb-w32-3.sh.log: test-wcrtomb-w32-3.sh @p='test-wcrtomb-w32-3.sh'; \ b='test-wcrtomb-w32-3.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-wcrtomb-w32-4.sh.log: test-wcrtomb-w32-4.sh @p='test-wcrtomb-w32-4.sh'; \ b='test-wcrtomb-w32-4.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-wcrtomb-w32-5.sh.log: test-wcrtomb-w32-5.sh @p='test-wcrtomb-w32-5.sh'; \ b='test-wcrtomb-w32-5.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-wctype-h.log: test-wctype-h$(EXEEXT) @p='test-wctype-h$(EXEEXT)'; \ b='test-wctype-h'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-write.log: test-write$(EXEEXT) @p='test-write$(EXEEXT)'; \ b='test-write'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_LIBRARIES) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \ clean-libtool clean-local clean-noinstLIBRARIES \ clean-noinstPROGRAMS mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool mostlyclean-local pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all check check-am install install-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-TESTS check-am clean clean-checkLIBRARIES \ clean-checkPROGRAMS clean-generic clean-libtool clean-local \ clean-noinstLIBRARIES clean-noinstPROGRAMS cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \ pdf-am ps ps-am recheck tags tags-am uninstall uninstall-am # We need the following in order to create when the system # doesn't have one that works with the given compiler. ctype.h: ctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_CTYPE_H''@|$(NEXT_CTYPE_H)|g' \ -e 's/@''GNULIB_ISBLANK''@/$(GNULIB_ISBLANK)/g' \ -e 's/@''HAVE_ISBLANK''@/$(HAVE_ISBLANK)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/ctype.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \ -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \ -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \ -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/fcntl.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \ -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \ -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \ -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \ -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \ -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/inttypes.in.h; \ } > $@-t && \ mv $@-t $@ # Clean up after Solaris cc. clean-local: rm -rf SunWS_cache mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163410022207 xustar000000000000000024 mtime=1599661832.608 23 atime=1599661832.76 24 ctime=1599661999.246 libprelude-5.2.0/libmissing/tests/Makefile.am0000644000000000000000000011534513726163410021215 0ustar00rootroot00000000000000## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. # Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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 file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. AUTOMAKE_OPTIONS = 1.9.6 foreign SUBDIRS = . TESTS = XFAIL_TESTS = TESTS_ENVIRONMENT = noinst_PROGRAMS = check_PROGRAMS = EXTRA_PROGRAMS = noinst_HEADERS = noinst_LIBRARIES = check_LIBRARIES = libtests.a EXTRA_DIST = BUILT_SOURCES = SUFFIXES = MOSTLYCLEANFILES = core *.stackdump MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = \ -D@gltests_WITNESS@=1 \ -I. -I$(srcdir) \ -I../.. -I$(srcdir)/../.. \ -I../../libmissing -I$(srcdir)/../../libmissing LDADD = libtests.a ../../libmissing/libmissing.la libtests.a $(LIBTESTS_LIBDEPS) libtests_a_SOURCES = libtests_a_LIBADD = $(gltests_LIBOBJS) libtests_a_DEPENDENCIES = $(gltests_LIBOBJS) EXTRA_libtests_a_SOURCES = AM_LIBTOOLFLAGS = --preserve-dup-deps TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' srcdir='$(srcdir)' ## begin gnulib module accept-tests TESTS += test-accept check_PROGRAMS += test-accept test_accept_LDADD = $(LDADD) @LIBSOCKET@ EXTRA_DIST += test-accept.c signature.h macros.h ## end gnulib module accept-tests ## begin gnulib module alloca-opt-tests TESTS += test-alloca-opt check_PROGRAMS += test-alloca-opt EXTRA_DIST += test-alloca-opt.c ## end gnulib module alloca-opt-tests ## begin gnulib module arpa_inet-tests TESTS += test-arpa_inet check_PROGRAMS += test-arpa_inet EXTRA_DIST += test-arpa_inet.c ## end gnulib module arpa_inet-tests ## begin gnulib module binary-io libtests_a_SOURCES += binary-io.h binary-io.c ## end gnulib module binary-io ## begin gnulib module binary-io-tests TESTS += test-binary-io.sh check_PROGRAMS += test-binary-io EXTRA_DIST += test-binary-io.sh test-binary-io.c macros.h ## end gnulib module binary-io-tests ## begin gnulib module bind-tests TESTS += test-bind check_PROGRAMS += test-bind test_bind_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB) EXTRA_DIST += test-bind.c signature.h macros.h ## end gnulib module bind-tests ## begin gnulib module btowc-tests TESTS += test-btowc1.sh test-btowc2.sh TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' check_PROGRAMS += test-btowc EXTRA_DIST += test-btowc1.sh test-btowc2.sh test-btowc.c signature.h macros.h ## end gnulib module btowc-tests ## begin gnulib module c-ctype-tests TESTS += test-c-ctype check_PROGRAMS += test-c-ctype EXTRA_DIST += test-c-ctype.c macros.h ## end gnulib module c-ctype-tests ## begin gnulib module c-strcase libtests_a_SOURCES += c-strcase.h c-strcasecmp.c c-strncasecmp.c ## end gnulib module c-strcase ## begin gnulib module c-strcase-tests TESTS += test-c-strcase.sh TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_TR_UTF8='@LOCALE_TR_UTF8@' check_PROGRAMS += test-c-strcasecmp test-c-strncasecmp EXTRA_DIST += test-c-strcase.sh test-c-strcasecmp.c test-c-strncasecmp.c macros.h ## end gnulib module c-strcase-tests ## begin gnulib module cloexec libtests_a_SOURCES += cloexec.c EXTRA_DIST += cloexec.h ## end gnulib module cloexec ## begin gnulib module cloexec-tests TESTS += test-cloexec check_PROGRAMS += test-cloexec EXTRA_DIST += test-cloexec.c macros.h ## end gnulib module cloexec-tests ## begin gnulib module close-tests TESTS += test-close check_PROGRAMS += test-close EXTRA_DIST += test-close.c signature.h macros.h ## end gnulib module close-tests ## begin gnulib module cond-tests TESTS += test-cond check_PROGRAMS += test-cond test_cond_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@ EXTRA_DIST += test-cond.c ## end gnulib module cond-tests ## begin gnulib module connect-tests TESTS += test-connect check_PROGRAMS += test-connect test_connect_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB) EXTRA_DIST += test-connect.c signature.h macros.h ## end gnulib module connect-tests ## begin gnulib module ctype BUILT_SOURCES += ctype.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. ctype.h: ctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_CTYPE_H''@|$(NEXT_CTYPE_H)|g' \ -e 's/@''GNULIB_ISBLANK''@/$(GNULIB_ISBLANK)/g' \ -e 's/@''HAVE_ISBLANK''@/$(HAVE_ISBLANK)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/ctype.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += ctype.h ctype.h-t EXTRA_DIST += ctype.in.h ## end gnulib module ctype ## begin gnulib module ctype-tests TESTS += test-ctype check_PROGRAMS += test-ctype EXTRA_DIST += test-ctype.c ## end gnulib module ctype-tests ## begin gnulib module dosname EXTRA_DIST += dosname.h ## end gnulib module dosname ## begin gnulib module dup2-tests TESTS += test-dup2 check_PROGRAMS += test-dup2 EXTRA_DIST += test-dup2.c signature.h macros.h ## end gnulib module dup2-tests ## begin gnulib module environ-tests TESTS += test-environ check_PROGRAMS += test-environ EXTRA_DIST += test-environ.c ## end gnulib module environ-tests ## begin gnulib module errno-tests TESTS += test-errno check_PROGRAMS += test-errno EXTRA_DIST += test-errno.c ## end gnulib module errno-tests ## begin gnulib module fclose-tests TESTS += test-fclose check_PROGRAMS += test-fclose EXTRA_DIST += test-fclose.c ## end gnulib module fclose-tests ## begin gnulib module fcntl EXTRA_DIST += fcntl.c EXTRA_libtests_a_SOURCES += fcntl.c ## end gnulib module fcntl ## begin gnulib module fcntl-h BUILT_SOURCES += fcntl.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \ -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \ -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \ -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/fcntl.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += fcntl.h fcntl.h-t EXTRA_DIST += fcntl.in.h ## end gnulib module fcntl-h ## begin gnulib module fcntl-h-tests TESTS += test-fcntl-h check_PROGRAMS += test-fcntl-h EXTRA_DIST += test-fcntl-h.c ## end gnulib module fcntl-h-tests ## begin gnulib module fcntl-tests TESTS += test-fcntl check_PROGRAMS += test-fcntl EXTRA_DIST += test-fcntl.c signature.h macros.h ## end gnulib module fcntl-tests ## begin gnulib module fdopen EXTRA_DIST += fdopen.c EXTRA_libtests_a_SOURCES += fdopen.c ## end gnulib module fdopen ## begin gnulib module fdopen-tests TESTS += test-fdopen check_PROGRAMS += test-fdopen EXTRA_DIST += test-fdopen.c signature.h macros.h ## end gnulib module fdopen-tests ## begin gnulib module fflush-tests TESTS += test-fflush test-fflush2.sh check_PROGRAMS += test-fflush test-fflush2 MOSTLYCLEANFILES += test-fflush.txt EXTRA_DIST += test-fflush.c test-fflush2.sh test-fflush2.c signature.h macros.h ## end gnulib module fflush-tests ## begin gnulib module fgetc-tests TESTS += test-fgetc check_PROGRAMS += test-fgetc EXTRA_DIST += test-fgetc.c signature.h macros.h ## end gnulib module fgetc-tests ## begin gnulib module flexmember EXTRA_DIST += flexmember.h ## end gnulib module flexmember ## begin gnulib module float-tests TESTS += test-float check_PROGRAMS += test-float EXTRA_DIST += test-float.c macros.h ## end gnulib module float-tests ## begin gnulib module fopen-tests TESTS += test-fopen check_PROGRAMS += test-fopen EXTRA_DIST += test-fopen.h test-fopen.c signature.h macros.h ## end gnulib module fopen-tests ## begin gnulib module fpucw EXTRA_DIST += fpucw.h ## end gnulib module fpucw ## begin gnulib module fpurge-tests TESTS += test-fpurge check_PROGRAMS += test-fpurge MOSTLYCLEANFILES += t-fpurge.tmp EXTRA_DIST += test-fpurge.c macros.h ## end gnulib module fpurge-tests ## begin gnulib module fputc-tests TESTS += test-fputc check_PROGRAMS += test-fputc EXTRA_DIST += test-fputc.c signature.h macros.h ## end gnulib module fputc-tests ## begin gnulib module fread-tests TESTS += test-fread check_PROGRAMS += test-fread EXTRA_DIST += test-fread.c signature.h macros.h ## end gnulib module fread-tests ## begin gnulib module freading-tests TESTS += test-freading check_PROGRAMS += test-freading MOSTLYCLEANFILES += t-freading.tmp EXTRA_DIST += test-freading.c macros.h ## end gnulib module freading-tests ## begin gnulib module fseek-tests TESTS += test-fseek.sh test-fseek2.sh check_PROGRAMS += test-fseek EXTRA_DIST += test-fseek.c test-fseek.sh test-fseek2.sh signature.h macros.h ## end gnulib module fseek-tests ## begin gnulib module fseeko-tests TESTS += test-fseeko.sh test-fseeko2.sh test-fseeko3.sh test-fseeko4.sh check_PROGRAMS += test-fseeko test-fseeko3 test-fseeko4 EXTRA_DIST += test-fseeko.c test-fseeko.sh test-fseeko2.sh test-fseeko3.c test-fseeko3.sh test-fseeko4.c test-fseeko4.sh signature.h macros.h ## end gnulib module fseeko-tests ## begin gnulib module fstat-tests TESTS += test-fstat check_PROGRAMS += test-fstat EXTRA_DIST += test-fstat.c signature.h macros.h ## end gnulib module fstat-tests ## begin gnulib module ftell-tests TESTS += test-ftell.sh test-ftell2.sh test-ftell3 check_PROGRAMS += test-ftell test-ftell3 MOSTLYCLEANFILES += t-ftell3.tmp EXTRA_DIST += test-ftell.c test-ftell.sh test-ftell2.sh test-ftell3.c signature.h macros.h ## end gnulib module ftell-tests ## begin gnulib module ftello-tests TESTS += test-ftello.sh test-ftello2.sh test-ftello3 test-ftello4.sh check_PROGRAMS += test-ftello test-ftello3 test-ftello4 MOSTLYCLEANFILES += t-ftello3.tmp EXTRA_DIST += test-ftello.c test-ftello.sh test-ftello2.sh test-ftello3.c test-ftello4.c test-ftello4.sh signature.h macros.h ## end gnulib module ftello-tests ## begin gnulib module ftruncate EXTRA_DIST += ftruncate.c EXTRA_libtests_a_SOURCES += ftruncate.c ## end gnulib module ftruncate ## begin gnulib module ftruncate-tests TESTS += test-ftruncate.sh check_PROGRAMS += test-ftruncate EXTRA_DIST += test-ftruncate.c test-ftruncate.sh signature.h macros.h ## end gnulib module ftruncate-tests ## begin gnulib module fwrite-tests TESTS += test-fwrite check_PROGRAMS += test-fwrite EXTRA_DIST += test-fwrite.c signature.h macros.h ## end gnulib module fwrite-tests ## begin gnulib module getaddrinfo-tests TESTS += test-getaddrinfo check_PROGRAMS += test-getaddrinfo test_getaddrinfo_LDADD = $(LDADD) @GETADDRINFO_LIB@ @LIBINTL@ EXTRA_DIST += signature.h test-getaddrinfo.c ## end gnulib module getaddrinfo-tests ## begin gnulib module getcwd-lgpl EXTRA_DIST += getcwd-lgpl.c EXTRA_libtests_a_SOURCES += getcwd-lgpl.c ## end gnulib module getcwd-lgpl ## begin gnulib module getcwd-lgpl-tests TESTS += test-getcwd-lgpl check_PROGRAMS += test-getcwd-lgpl test_getcwd_lgpl_LDADD = $(LDADD) $(LIBINTL) EXTRA_DIST += test-getcwd-lgpl.c signature.h macros.h ## end gnulib module getcwd-lgpl-tests ## begin gnulib module getdelim-tests TESTS += test-getdelim check_PROGRAMS += test-getdelim MOSTLYCLEANFILES += test-getdelim.txt EXTRA_DIST += test-getdelim.c signature.h macros.h ## end gnulib module getdelim-tests ## begin gnulib module getdtablesize EXTRA_DIST += getdtablesize.c EXTRA_libtests_a_SOURCES += getdtablesize.c ## end gnulib module getdtablesize ## begin gnulib module getdtablesize-tests TESTS += test-getdtablesize check_PROGRAMS += test-getdtablesize EXTRA_DIST += test-getdtablesize.c signature.h macros.h ## end gnulib module getdtablesize-tests ## begin gnulib module gethostname-tests TESTS += test-gethostname check_PROGRAMS += test-gethostname test_gethostname_LDADD = $(LDADD) @GETHOSTNAME_LIB@ EXTRA_DIST += signature.h test-gethostname.c ## end gnulib module gethostname-tests ## begin gnulib module getline-tests TESTS += test-getline check_PROGRAMS += test-getline MOSTLYCLEANFILES += test-getline.txt EXTRA_DIST += test-getline.c signature.h macros.h ## end gnulib module getline-tests ## begin gnulib module getpagesize EXTRA_DIST += getpagesize.c EXTRA_libtests_a_SOURCES += getpagesize.c ## end gnulib module getpagesize ## begin gnulib module getsockname-tests TESTS += test-getsockname check_PROGRAMS += test-getsockname test_getsockname_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB) EXTRA_DIST += test-getsockname.c signature.h macros.h ## end gnulib module getsockname-tests ## begin gnulib module gettimeofday-tests TESTS += test-gettimeofday check_PROGRAMS += test-gettimeofday EXTRA_DIST += signature.h test-gettimeofday.c ## end gnulib module gettimeofday-tests ## begin gnulib module ignore-value EXTRA_DIST += ignore-value.h ## end gnulib module ignore-value ## begin gnulib module ignore-value-tests TESTS += test-ignore-value check_PROGRAMS += test-ignore-value EXTRA_DIST += test-ignore-value.c ## end gnulib module ignore-value-tests ## begin gnulib module inet_ntop-tests TESTS += test-inet_ntop check_PROGRAMS += test-inet_ntop test_inet_ntop_LDADD = $(LDADD) @INET_NTOP_LIB@ EXTRA_DIST += test-inet_ntop.c signature.h macros.h ## end gnulib module inet_ntop-tests ## begin gnulib module inet_pton-tests TESTS += test-inet_pton check_PROGRAMS += test-inet_pton test_inet_pton_LDADD = $(LDADD) @INET_PTON_LIB@ EXTRA_DIST += test-inet_pton.c signature.h macros.h ## end gnulib module inet_pton-tests ## begin gnulib module intprops-tests TESTS += test-intprops check_PROGRAMS += test-intprops EXTRA_DIST += test-intprops.c macros.h ## end gnulib module intprops-tests ## begin gnulib module inttypes-incomplete BUILT_SOURCES += inttypes.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \ -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \ -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \ -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \ -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \ -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/inttypes.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += inttypes.h inttypes.h-t EXTRA_DIST += inttypes.in.h ## end gnulib module inttypes-incomplete ## begin gnulib module inttypes-tests TESTS += test-inttypes check_PROGRAMS += test-inttypes EXTRA_DIST += test-inttypes.c ## end gnulib module inttypes-tests ## begin gnulib module ioctl-tests TESTS += test-ioctl check_PROGRAMS += test-ioctl EXTRA_DIST += test-ioctl.c signature.h macros.h ## end gnulib module ioctl-tests ## begin gnulib module isblank EXTRA_DIST += isblank.c EXTRA_libtests_a_SOURCES += isblank.c ## end gnulib module isblank ## begin gnulib module isblank-tests TESTS += test-isblank check_PROGRAMS += test-isblank EXTRA_DIST += test-isblank.c signature.h macros.h ## end gnulib module isblank-tests ## begin gnulib module langinfo-tests TESTS += test-langinfo check_PROGRAMS += test-langinfo EXTRA_DIST += test-langinfo.c ## end gnulib module langinfo-tests ## begin gnulib module limits-h-tests TESTS += test-limits-h check_PROGRAMS += test-limits-h EXTRA_DIST += test-limits-h.c ## end gnulib module limits-h-tests ## begin gnulib module listen-tests TESTS += test-listen check_PROGRAMS += test-listen test_listen_LDADD = $(LDADD) @LIBSOCKET@ EXTRA_DIST += test-listen.c signature.h macros.h ## end gnulib module listen-tests ## begin gnulib module localcharset-tests noinst_PROGRAMS += test-localcharset EXTRA_DIST += test-localcharset.c ## end gnulib module localcharset-tests ## begin gnulib module locale-tests TESTS += test-locale check_PROGRAMS += test-locale EXTRA_DIST += test-locale.c ## end gnulib module locale-tests ## begin gnulib module localeconv-tests TESTS += test-localeconv check_PROGRAMS += test-localeconv EXTRA_DIST += test-localeconv.c signature.h macros.h ## end gnulib module localeconv-tests ## begin gnulib module localename libtests_a_SOURCES += localename.c EXTRA_DIST += localename.h ## end gnulib module localename ## begin gnulib module localename-tests TESTS += test-localename check_PROGRAMS += test-localename test_localename_LDADD = $(LDADD) @INTL_MACOSX_LIBS@ $(LIBTHREAD) EXTRA_DIST += test-localename.c macros.h ## end gnulib module localename-tests ## begin gnulib module lock-tests TESTS += test-rwlock1 test-lock test-once1 test-once2 check_PROGRAMS += test-rwlock1 test-lock test-once1 test-once2 test_rwlock1_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@ test_lock_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@ test_once1_SOURCES = test-once.c test_once1_LDADD = $(LDADD) @LIBTHREAD@ test_once2_SOURCES = test-once.c test_once2_LDADD = $(LDADD) @LIBMULTITHREAD@ EXTRA_DIST += test-rwlock1.c test-lock.c test-once.c ## end gnulib module lock-tests ## begin gnulib module lseek-tests TESTS += test-lseek.sh check_PROGRAMS += test-lseek EXTRA_DIST += test-lseek.c test-lseek.sh signature.h macros.h ## end gnulib module lseek-tests ## begin gnulib module lstat EXTRA_DIST += lstat.c EXTRA_libtests_a_SOURCES += lstat.c ## end gnulib module lstat ## begin gnulib module lstat-tests TESTS += test-lstat check_PROGRAMS += test-lstat EXTRA_DIST += test-lstat.h test-lstat.c signature.h macros.h ## end gnulib module lstat-tests ## begin gnulib module malloca-tests TESTS += test-malloca check_PROGRAMS += test-malloca EXTRA_DIST += test-malloca.c ## end gnulib module malloca-tests ## begin gnulib module mbrtowc-tests TESTS += \ test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh \ test-mbrtowc5.sh \ test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh test-mbrtowc-w32-3.sh \ test-mbrtowc-w32-4.sh test-mbrtowc-w32-5.sh TESTS_ENVIRONMENT += \ LOCALE_FR='@LOCALE_FR@' \ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \ LOCALE_JA='@LOCALE_JA@' \ LOCALE_ZH_CN='@LOCALE_ZH_CN@' check_PROGRAMS += test-mbrtowc test-mbrtowc-w32 EXTRA_DIST += test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh test-mbrtowc5.sh test-mbrtowc.c test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh test-mbrtowc-w32-3.sh test-mbrtowc-w32-4.sh test-mbrtowc-w32-5.sh test-mbrtowc-w32.c signature.h macros.h ## end gnulib module mbrtowc-tests ## begin gnulib module mbsinit-tests TESTS += test-mbsinit.sh TESTS_ENVIRONMENT += LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' check_PROGRAMS += test-mbsinit EXTRA_DIST += test-mbsinit.sh test-mbsinit.c signature.h macros.h ## end gnulib module mbsinit-tests ## begin gnulib module memchr-tests TESTS += test-memchr check_PROGRAMS += test-memchr EXTRA_DIST += test-memchr.c zerosize-ptr.h signature.h macros.h ## end gnulib module memchr-tests ## begin gnulib module memmem-tests TESTS += test-memmem check_PROGRAMS += test-memmem EXTRA_DIST += test-memmem.c signature.h null-ptr.h zerosize-ptr.h macros.h ## end gnulib module memmem-tests ## begin gnulib module nanosleep EXTRA_DIST += nanosleep.c EXTRA_libtests_a_SOURCES += nanosleep.c ## end gnulib module nanosleep ## begin gnulib module nanosleep-tests TESTS += test-nanosleep check_PROGRAMS += test-nanosleep test_nanosleep_LDADD = $(LDADD) $(LIB_NANOSLEEP) EXTRA_DIST += test-nanosleep.c signature.h macros.h ## end gnulib module nanosleep-tests ## begin gnulib module netdb-tests TESTS += test-netdb check_PROGRAMS += test-netdb EXTRA_DIST += test-netdb.c ## end gnulib module netdb-tests ## begin gnulib module netinet_in-tests TESTS += test-netinet_in check_PROGRAMS += test-netinet_in EXTRA_DIST += test-netinet_in.c ## end gnulib module netinet_in-tests ## begin gnulib module nl_langinfo-tests TESTS += test-nl_langinfo.sh TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' check_PROGRAMS += test-nl_langinfo EXTRA_DIST += test-nl_langinfo.sh test-nl_langinfo.c signature.h macros.h ## end gnulib module nl_langinfo-tests ## begin gnulib module open EXTRA_DIST += open.c EXTRA_libtests_a_SOURCES += open.c ## end gnulib module open ## begin gnulib module open-tests TESTS += test-open check_PROGRAMS += test-open EXTRA_DIST += test-open.h test-open.c signature.h macros.h ## end gnulib module open-tests ## begin gnulib module pathmax-tests TESTS += test-pathmax check_PROGRAMS += test-pathmax EXTRA_DIST += test-pathmax.c ## end gnulib module pathmax-tests ## begin gnulib module perror-tests TESTS += test-perror.sh test-perror2 check_PROGRAMS += test-perror test-perror2 EXTRA_DIST += macros.h signature.h test-perror.c test-perror2.c test-perror.sh ## end gnulib module perror-tests ## begin gnulib module pipe-posix EXTRA_DIST += pipe.c EXTRA_libtests_a_SOURCES += pipe.c ## end gnulib module pipe-posix ## begin gnulib module pipe-posix-tests TESTS += test-pipe check_PROGRAMS += test-pipe EXTRA_DIST += test-pipe.c signature.h macros.h ## end gnulib module pipe-posix-tests ## begin gnulib module poll-h-tests TESTS += test-poll-h check_PROGRAMS += test-poll-h EXTRA_DIST += test-poll-h.c ## end gnulib module poll-h-tests ## begin gnulib module poll-tests TESTS += test-poll check_PROGRAMS += test-poll test_poll_LDADD = $(LDADD) $(LIB_POLL) @LIBSOCKET@ $(INET_PTON_LIB) EXTRA_DIST += test-poll.c signature.h macros.h ## end gnulib module poll-tests ## begin gnulib module pthread_sigmask-tests TESTS += test-pthread_sigmask1 test-pthread_sigmask2 check_PROGRAMS += test-pthread_sigmask1 test-pthread_sigmask2 test_pthread_sigmask1_LDADD = $(LDADD) @LIB_PTHREAD_SIGMASK@ test_pthread_sigmask2_LDADD = $(LDADD) @LIB_PTHREAD_SIGMASK@ @LIBMULTITHREAD@ EXTRA_DIST += test-pthread_sigmask1.c test-pthread_sigmask2.c signature.h macros.h ## end gnulib module pthread_sigmask-tests ## begin gnulib module putenv EXTRA_DIST += putenv.c EXTRA_libtests_a_SOURCES += putenv.c ## end gnulib module putenv ## begin gnulib module raise-tests TESTS += test-raise check_PROGRAMS += test-raise EXTRA_DIST += test-raise.c signature.h macros.h ## end gnulib module raise-tests ## begin gnulib module regex-tests TESTS += test-regex check_PROGRAMS += test-regex test_regex_LDADD = $(LDADD) @LIBINTL@ $(LIBTHREAD) $(LIB_PTHREAD) EXTRA_DIST += test-regex.c macros.h ## end gnulib module regex-tests ## begin gnulib module same-inode EXTRA_DIST += same-inode.h ## end gnulib module same-inode ## begin gnulib module select-tests TESTS += test-select test-select-in.sh test-select-out.sh # test-select-stdin has to be run by hand. check_PROGRAMS += test-select test-select-fd test-select-stdin test_select_LDADD = $(LDADD) @LIB_SELECT@ @LIBSOCKET@ $(INET_PTON_LIB) test_select_fd_LDADD = $(LDADD) @LIB_SELECT@ test_select_stdin_LDADD = $(LDADD) @LIB_SELECT@ EXTRA_DIST += macros.h signature.h test-select.c test-select.h test-select-fd.c test-select-in.sh test-select-out.sh test-select-stdin.c ## end gnulib module select-tests ## begin gnulib module setenv EXTRA_DIST += setenv.c EXTRA_libtests_a_SOURCES += setenv.c ## end gnulib module setenv ## begin gnulib module setenv-tests TESTS += test-setenv check_PROGRAMS += test-setenv EXTRA_DIST += test-setenv.c signature.h macros.h ## end gnulib module setenv-tests ## begin gnulib module setlocale EXTRA_DIST += setlocale.c EXTRA_libtests_a_SOURCES += setlocale.c ## end gnulib module setlocale ## begin gnulib module setlocale-tests TESTS += test-setlocale1.sh test-setlocale2.sh TESTS_ENVIRONMENT += \ LOCALE_FR='@LOCALE_FR@' \ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \ LOCALE_JA='@LOCALE_JA@' \ LOCALE_ZH_CN='@LOCALE_ZH_CN@' check_PROGRAMS += test-setlocale1 test-setlocale2 EXTRA_DIST += test-setlocale1.sh test-setlocale1.c test-setlocale2.sh test-setlocale2.c signature.h macros.h ## end gnulib module setlocale-tests ## begin gnulib module setsockopt-tests TESTS += test-setsockopt check_PROGRAMS += test-setsockopt test_setsockopt_LDADD = $(LDADD) @LIBSOCKET@ EXTRA_DIST += test-setsockopt.c signature.h macros.h ## end gnulib module setsockopt-tests ## begin gnulib module sigaction libtests_a_SOURCES += sig-handler.c EXTRA_DIST += sig-handler.h sigaction.c EXTRA_libtests_a_SOURCES += sigaction.c ## end gnulib module sigaction ## begin gnulib module sigaction-tests TESTS += test-sigaction check_PROGRAMS += test-sigaction EXTRA_DIST += test-sigaction.c signature.h macros.h ## end gnulib module sigaction-tests ## begin gnulib module signal-h-tests TESTS += test-signal-h check_PROGRAMS += test-signal-h EXTRA_DIST += test-signal-h.c ## end gnulib module signal-h-tests ## begin gnulib module sigprocmask-tests TESTS += test-sigprocmask check_PROGRAMS += test-sigprocmask EXTRA_DIST += test-sigprocmask.c signature.h macros.h ## end gnulib module sigprocmask-tests ## begin gnulib module sleep-tests TESTS += test-sleep check_PROGRAMS += test-sleep EXTRA_DIST += test-sleep.c signature.h macros.h ## end gnulib module sleep-tests ## begin gnulib module snippet/_Noreturn # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H=$(srcdir)/_Noreturn.h EXTRA_DIST += _Noreturn.h ## end gnulib module snippet/_Noreturn ## begin gnulib module snippet/arg-nonnull # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. ARG_NONNULL_H=$(srcdir)/arg-nonnull.h EXTRA_DIST += arg-nonnull.h ## end gnulib module snippet/arg-nonnull ## begin gnulib module snippet/c++defs # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. CXXDEFS_H=$(srcdir)/c++defs.h EXTRA_DIST += c++defs.h ## end gnulib module snippet/c++defs ## begin gnulib module snippet/unused-parameter # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. UNUSED_PARAMETER_H=$(srcdir)/unused-parameter.h EXTRA_DIST += unused-parameter.h ## end gnulib module snippet/unused-parameter ## begin gnulib module snippet/warn-on-use # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. WARN_ON_USE_H=$(srcdir)/warn-on-use.h EXTRA_DIST += warn-on-use.h ## end gnulib module snippet/warn-on-use ## begin gnulib module snprintf-tests TESTS += test-snprintf check_PROGRAMS += test-snprintf EXTRA_DIST += test-snprintf.c signature.h macros.h ## end gnulib module snprintf-tests ## begin gnulib module sockets-tests TESTS += test-sockets check_PROGRAMS += test-sockets test_sockets_LDADD = $(LDADD) @LIBSOCKET@ EXTRA_DIST += test-sockets.c ## end gnulib module sockets-tests ## begin gnulib module stat-tests TESTS += test-stat check_PROGRAMS += test-stat test_stat_LDADD = $(LDADD) $(LIBINTL) EXTRA_DIST += test-stat.h test-stat.c signature.h macros.h ## end gnulib module stat-tests ## begin gnulib module stat-time-tests TESTS += test-stat-time check_PROGRAMS += test-stat-time test_stat_time_LDADD = $(LDADD) $(LIB_NANOSLEEP) EXTRA_DIST += test-stat-time.c macros.h nap.h ## end gnulib module stat-time-tests ## begin gnulib module stdalign-tests TESTS += test-stdalign check_PROGRAMS += test-stdalign EXTRA_DIST += test-stdalign.c macros.h ## end gnulib module stdalign-tests ## begin gnulib module stdbool-tests TESTS += test-stdbool check_PROGRAMS += test-stdbool EXTRA_DIST += test-stdbool.c ## end gnulib module stdbool-tests ## begin gnulib module stddef-tests TESTS += test-stddef check_PROGRAMS += test-stddef EXTRA_DIST += test-stddef.c ## end gnulib module stddef-tests ## begin gnulib module stdint-tests TESTS += test-stdint check_PROGRAMS += test-stdint EXTRA_DIST += test-stdint.c ## end gnulib module stdint-tests ## begin gnulib module stdio-tests TESTS += test-stdio check_PROGRAMS += test-stdio EXTRA_DIST += test-stdio.c ## end gnulib module stdio-tests ## begin gnulib module stdlib-tests TESTS += test-stdlib check_PROGRAMS += test-stdlib EXTRA_DIST += test-stdlib.c test-sys_wait.h ## end gnulib module stdlib-tests ## begin gnulib module strcasestr-tests TESTS += test-strcasestr check_PROGRAMS += test-strcasestr EXTRA_DIST += test-strcasestr.c signature.h macros.h ## end gnulib module strcasestr-tests ## begin gnulib module strerror-tests TESTS += test-strerror check_PROGRAMS += test-strerror EXTRA_DIST += test-strerror.c signature.h macros.h ## end gnulib module strerror-tests ## begin gnulib module strerror_r-posix-tests TESTS += test-strerror_r check_PROGRAMS += test-strerror_r EXTRA_DIST += test-strerror_r.c signature.h macros.h ## end gnulib module strerror_r-posix-tests ## begin gnulib module string-tests TESTS += test-string check_PROGRAMS += test-string EXTRA_DIST += test-string.c ## end gnulib module string-tests ## begin gnulib module strings-tests TESTS += test-strings check_PROGRAMS += test-strings EXTRA_DIST += test-strings.c ## end gnulib module strings-tests ## begin gnulib module strnlen-tests TESTS += test-strnlen check_PROGRAMS += test-strnlen EXTRA_DIST += test-strnlen.c zerosize-ptr.h signature.h macros.h ## end gnulib module strnlen-tests ## begin gnulib module symlink EXTRA_DIST += symlink.c EXTRA_libtests_a_SOURCES += symlink.c ## end gnulib module symlink ## begin gnulib module symlink-tests TESTS += test-symlink check_PROGRAMS += test-symlink EXTRA_DIST += test-symlink.h test-symlink.c signature.h macros.h ## end gnulib module symlink-tests ## begin gnulib module sys_ioctl-tests TESTS += test-sys_ioctl check_PROGRAMS += test-sys_ioctl EXTRA_DIST += test-sys_ioctl.c ## end gnulib module sys_ioctl-tests ## begin gnulib module sys_select-tests TESTS += test-sys_select check_PROGRAMS += test-sys_select EXTRA_DIST += test-sys_select.c signature.h ## end gnulib module sys_select-tests ## begin gnulib module sys_socket-tests TESTS += test-sys_socket check_PROGRAMS += test-sys_socket EXTRA_DIST += test-sys_socket.c ## end gnulib module sys_socket-tests ## begin gnulib module sys_stat-tests TESTS += test-sys_stat check_PROGRAMS += test-sys_stat EXTRA_DIST += test-sys_stat.c ## end gnulib module sys_stat-tests ## begin gnulib module sys_time-tests TESTS += test-sys_time check_PROGRAMS += test-sys_time EXTRA_DIST += test-sys_time.c ## end gnulib module sys_time-tests ## begin gnulib module sys_types-tests TESTS += test-sys_types check_PROGRAMS += test-sys_types EXTRA_DIST += test-sys_types.c ## end gnulib module sys_types-tests ## begin gnulib module sys_uio-tests TESTS += test-sys_uio check_PROGRAMS += test-sys_uio EXTRA_DIST += test-sys_uio.c ## end gnulib module sys_uio-tests ## begin gnulib module sys_utsname-tests TESTS += test-sys_utsname check_PROGRAMS += test-sys_utsname EXTRA_DIST += test-sys_utsname.c ## end gnulib module sys_utsname-tests ## begin gnulib module test-framework-sh-tests TESTS += test-init.sh EXTRA_DIST += init.sh EXTRA_DIST += test-init.sh ## end gnulib module test-framework-sh-tests ## begin gnulib module thread-tests TESTS += test-thread_self test-thread_create check_PROGRAMS += test-thread_self test-thread_create test_thread_self_LDADD = $(LDADD) @LIBTHREAD@ test_thread_create_LDADD = $(LDADD) @LIBMULTITHREAD@ EXTRA_DIST += test-thread_self.c test-thread_create.c macros.h ## end gnulib module thread-tests ## begin gnulib module time-tests TESTS += test-time check_PROGRAMS += test-time EXTRA_DIST += test-time.c ## end gnulib module time-tests ## begin gnulib module tls-tests TESTS += test-tls check_PROGRAMS += test-tls test_tls_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@ EXTRA_DIST += test-tls.c ## end gnulib module tls-tests ## begin gnulib module uname-tests TESTS += test-uname check_PROGRAMS += test-uname test_uname_LDADD = $(LDADD) @GETHOSTNAME_LIB@ EXTRA_DIST += test-uname.c signature.h macros.h ## end gnulib module uname-tests ## begin gnulib module unistd-tests TESTS += test-unistd check_PROGRAMS += test-unistd EXTRA_DIST += test-unistd.c ## end gnulib module unistd-tests ## begin gnulib module unsetenv EXTRA_DIST += unsetenv.c EXTRA_libtests_a_SOURCES += unsetenv.c ## end gnulib module unsetenv ## begin gnulib module unsetenv-tests TESTS += test-unsetenv check_PROGRAMS += test-unsetenv EXTRA_DIST += test-unsetenv.c signature.h macros.h ## end gnulib module unsetenv-tests ## begin gnulib module usleep EXTRA_DIST += usleep.c EXTRA_libtests_a_SOURCES += usleep.c ## end gnulib module usleep ## begin gnulib module usleep-tests TESTS += test-usleep check_PROGRAMS += test-usleep EXTRA_DIST += test-usleep.c signature.h macros.h ## end gnulib module usleep-tests ## begin gnulib module vasnprintf-tests TESTS += test-vasnprintf check_PROGRAMS += test-vasnprintf EXTRA_DIST += test-vasnprintf.c macros.h ## end gnulib module vasnprintf-tests ## begin gnulib module verify-tests TESTS_ENVIRONMENT += MAKE='$(MAKE)' TESTS += test-verify test-verify.sh check_PROGRAMS += test-verify # test-verify-try is never built, but test-verify.sh needs a rule to # build test-verify-try.o. EXTRA_PROGRAMS += test-verify-try # This test expects compilation of test-verify-try.c to fail, and # each time it fails, the makefile rule does not perform the usual # "mv -f $name.Tpo $name.po, so tell make clean to remove that file. MOSTLYCLEANFILES += .deps/test-verify-try.Tpo EXTRA_DIST += test-verify.c test-verify-try.c test-verify.sh ## end gnulib module verify-tests ## begin gnulib module vsnprintf-tests TESTS += test-vsnprintf check_PROGRAMS += test-vsnprintf EXTRA_DIST += test-vsnprintf.c signature.h macros.h ## end gnulib module vsnprintf-tests ## begin gnulib module wchar-tests TESTS += test-wchar check_PROGRAMS += test-wchar EXTRA_DIST += test-wchar.c ## end gnulib module wchar-tests ## begin gnulib module wcrtomb-tests TESTS += \ test-wcrtomb.sh \ test-wcrtomb-w32-1.sh test-wcrtomb-w32-2.sh test-wcrtomb-w32-3.sh \ test-wcrtomb-w32-4.sh test-wcrtomb-w32-5.sh TESTS_ENVIRONMENT += \ LOCALE_FR='@LOCALE_FR@' \ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \ LOCALE_JA='@LOCALE_JA@' \ LOCALE_ZH_CN='@LOCALE_ZH_CN@' check_PROGRAMS += test-wcrtomb test-wcrtomb-w32 EXTRA_DIST += test-wcrtomb.sh test-wcrtomb.c test-wcrtomb-w32-1.sh test-wcrtomb-w32-2.sh test-wcrtomb-w32-3.sh test-wcrtomb-w32-4.sh test-wcrtomb-w32-5.sh test-wcrtomb-w32.c signature.h macros.h ## end gnulib module wcrtomb-tests ## begin gnulib module wctob EXTRA_DIST += wctob.c EXTRA_libtests_a_SOURCES += wctob.c ## end gnulib module wctob ## begin gnulib module wctomb EXTRA_DIST += wctomb-impl.h wctomb.c EXTRA_libtests_a_SOURCES += wctomb.c ## end gnulib module wctomb ## begin gnulib module wctype-h-tests TESTS += test-wctype-h check_PROGRAMS += test-wctype-h EXTRA_DIST += test-wctype-h.c macros.h ## end gnulib module wctype-h-tests ## begin gnulib module write-tests TESTS += test-write check_PROGRAMS += test-write EXTRA_DIST += test-write.c signature.h macros.h ## end gnulib module write-tests ## begin gnulib module yield libtests_a_SOURCES += glthread/yield.h ## end gnulib module yield # Clean up after Solaris cc. clean-local: rm -rf SunWS_cache mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/binary-io.h0000644000000000000000000000010713726163410022215 xustar000000000000000024 mtime=1599661832.609 23 atime=1599661832.76 24 ctime=1599661999.249 libprelude-5.2.0/libmissing/tests/binary-io.h0000644000000000000000000000475413726163410021224 0ustar00rootroot00000000000000/* Binary mode I/O. Copyright (C) 2001, 2003, 2005, 2008-2018 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 3 of the License, 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, see . */ #ifndef _BINARY_H #define _BINARY_H /* For systems that distinguish between text and binary I/O. O_BINARY is guaranteed by the gnulib . */ #include /* The MSVC7 doesn't like to be included after '#define fileno ...', so we include it here first. */ #include #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef BINARY_IO_INLINE # define BINARY_IO_INLINE _GL_INLINE #endif #if O_BINARY # if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__ # include /* declares setmode() */ # define __gl_setmode setmode # else # define __gl_setmode _setmode # undef fileno # define fileno _fileno # endif #else /* On reasonable systems, binary I/O is the only choice. */ /* Use a function rather than a macro, to avoid gcc warnings "warning: statement with no effect". */ BINARY_IO_INLINE int __gl_setmode (int fd _GL_UNUSED, int mode _GL_UNUSED) { return O_BINARY; } #endif #if defined __DJGPP__ || defined __EMX__ extern int __gl_setmode_check (int); #else BINARY_IO_INLINE int __gl_setmode_check (int fd _GL_UNUSED) { return 0; } #endif /* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY. Return the old mode if successful, -1 (setting errno) on failure. Ordinarily this function would be called 'setmode', since that is its name on MS-Windows, but it is called 'set_binary_mode' here to avoid colliding with a BSD function of another name. */ BINARY_IO_INLINE int set_binary_mode (int fd, int mode) { int r = __gl_setmode_check (fd); return r != 0 ? r : __gl_setmode (fd, mode); } /* This macro is obsolescent. */ #define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY)) _GL_INLINE_HEADER_END #endif /* _BINARY_H */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/binary-io.c0000644000000000000000000000010713726163410022210 xustar000000000000000024 mtime=1599661832.608 23 atime=1599661832.76 24 ctime=1599661999.251 libprelude-5.2.0/libmissing/tests/binary-io.c0000644000000000000000000000200413726163410021201 0ustar00rootroot00000000000000/* Binary mode I/O. Copyright 2017-2018 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 3 of the License, 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, see . */ #include #define BINARY_IO_INLINE _GL_EXTERN_INLINE #include "binary-io.h" #if defined __DJGPP__ || defined __EMX__ # include # include int __gl_setmode_check (int fd) { if (isatty (fd)) { errno = EINVAL; return -1; } else return 0; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/c-strcase.h0000644000000000000000000000011013726163410022202 xustar000000000000000024 mtime=1599661832.609 24 atime=1599661832.761 24 ctime=1599661999.253 libprelude-5.2.0/libmissing/tests/c-strcase.h0000644000000000000000000000401513726163410021205 0ustar00rootroot00000000000000/* Case-insensitive string comparison functions in C locale. Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2018 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 3, 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, see . */ #ifndef C_STRCASE_H #define C_STRCASE_H #include /* The functions defined in this file assume the "C" locale and a character set without diacritics (ASCII-US or EBCDIC-US or something like that). Even if the "C" locale on a particular system is an extension of the ASCII character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it is ISO-8859-1), the functions in this file recognize only the ASCII characters. More precisely, one of the string arguments must be an ASCII string; the other one can also contain non-ASCII characters (but then the comparison result will be nonzero). */ #ifdef __cplusplus extern "C" { #endif /* Compare strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. */ extern int c_strcasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE; /* Compare no more than N characters of strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. */ extern int c_strncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE; #ifdef __cplusplus } #endif #endif /* C_STRCASE_H */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/c-strcasecmp.c0000644000000000000000000000011013726163410022675 xustar000000000000000024 mtime=1599661832.609 24 atime=1599661832.761 24 ctime=1599661999.254 libprelude-5.2.0/libmissing/tests/c-strcasecmp.c0000644000000000000000000000304513726163410021702 0ustar00rootroot00000000000000/* c-strcasecmp.c -- case insensitive string comparator in C locale Copyright (C) 1998-1999, 2005-2006, 2009-2018 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 3, 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, see . */ #include /* Specification. */ #include "c-strcase.h" #include #include "c-ctype.h" int c_strcasecmp (const char *s1, const char *s2) { register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; if (p1 == p2) return 0; do { c1 = c_tolower (*p1); c2 = c_tolower (*p2); if (c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) return c1 - c2; else /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/c-strncasecmp.c0000644000000000000000000000011013726163410023053 xustar000000000000000024 mtime=1599661832.609 24 atime=1599661832.761 24 ctime=1599661999.256 libprelude-5.2.0/libmissing/tests/c-strncasecmp.c0000644000000000000000000000310713726163410022057 0ustar00rootroot00000000000000/* c-strncasecmp.c -- case insensitive string comparator in C locale Copyright (C) 1998-1999, 2005-2006, 2009-2018 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 3, 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, see . */ #include /* Specification. */ #include "c-strcase.h" #include #include "c-ctype.h" int c_strncasecmp (const char *s1, const char *s2, size_t n) { register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; if (p1 == p2 || n == 0) return 0; do { c1 = c_tolower (*p1); c2 = c_tolower (*p2); if (--n == 0 || c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) return c1 - c2; else /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/cloexec.c0000644000000000000000000000010713726163410021741 xustar000000000000000023 mtime=1599661832.61 24 atime=1599661832.761 24 ctime=1599661999.258 libprelude-5.2.0/libmissing/tests/cloexec.c0000644000000000000000000000442713726163410020745 0ustar00rootroot00000000000000/* cloexec.c - set or clear the close-on-exec descriptor flag Copyright (C) 1991, 2004-2006, 2009-2018 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 3 of the License, 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, see . The code is taken from glibc/manual/llio.texi */ #include #include "cloexec.h" #include #include #include /* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, or clear the flag if VALUE is false. Return 0 on success, or -1 on error with 'errno' set. Note that on MingW, this function does NOT protect DESC from being inherited into spawned children. Instead, either use dup_cloexec followed by closing the original DESC, or use interfaces such as open or pipe2 that accept flags like O_CLOEXEC to create DESC non-inheritable in the first place. */ int set_cloexec_flag (int desc, bool value) { #ifdef F_SETFD int flags = fcntl (desc, F_GETFD, 0); if (0 <= flags) { int newflags = (value ? flags | FD_CLOEXEC : flags & ~FD_CLOEXEC); if (flags == newflags || fcntl (desc, F_SETFD, newflags) != -1) return 0; } return -1; #else /* !F_SETFD */ /* Use dup2 to reject invalid file descriptors; the cloexec flag will be unaffected. */ if (desc < 0) { errno = EBADF; return -1; } if (dup2 (desc, desc) < 0) /* errno is EBADF here. */ return -1; /* There is nothing we can do on this kind of platform. Punt. */ return 0; #endif /* !F_SETFD */ } /* Duplicates a file handle FD, while marking the copy to be closed prior to exec or spawn. Returns -1 and sets errno if FD could not be duplicated. */ int dup_cloexec (int fd) { return fcntl (fd, F_DUPFD_CLOEXEC, 0); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/localename.c0000644000000000000000000000011013726163410022411 xustar000000000000000024 mtime=1599661832.614 24 atime=1599661832.762 24 ctime=1599661999.259 libprelude-5.2.0/libmissing/tests/localename.c0000644000000000000000000025340513726163410021425 0ustar00rootroot00000000000000/* Determine name of the currently selected locale. Copyright (C) 1995-2018 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 3 of the License, 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, see . */ /* Written by Ulrich Drepper , 1995. */ /* Native Windows code written by Tor Lillqvist . */ /* Mac OS X code written by Bruno Haible . */ #include /* Specification. */ #ifdef IN_LIBINTL # include "gettextP.h" #else # include "localename.h" #endif #include #include #include #include #include #include "flexmember.h" #if HAVE_USELOCALE /* Mac OS X 10.5 defines the locale_t type in . */ # if defined __APPLE__ && defined __MACH__ # include # endif # if (__GLIBC__ >= 2 && !defined __UCLIBC__) || (defined __linux__ && HAVE_LANGINFO_H) || defined __CYGWIN__ # include # endif # if !defined IN_LIBINTL # include "glthread/lock.h" # endif # if defined __sun && HAVE_GETLOCALENAME_L /* Solaris >= 12. */ extern char * getlocalename_l(int, locale_t); # endif #endif #if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE # include # if HAVE_CFLOCALECOPYCURRENT # include # elif HAVE_CFPREFERENCESCOPYAPPVALUE # include # endif #endif #if defined _WIN32 && !defined __CYGWIN__ # define WINDOWS_NATIVE # if !defined IN_LIBINTL # include "glthread/lock.h" # endif #endif #if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */ # define WIN32_LEAN_AND_MEAN # include # include /* List of language codes, sorted by value: 0x01 LANG_ARABIC 0x02 LANG_BULGARIAN 0x03 LANG_CATALAN 0x04 LANG_CHINESE 0x05 LANG_CZECH 0x06 LANG_DANISH 0x07 LANG_GERMAN 0x08 LANG_GREEK 0x09 LANG_ENGLISH 0x0a LANG_SPANISH 0x0b LANG_FINNISH 0x0c LANG_FRENCH 0x0d LANG_HEBREW 0x0e LANG_HUNGARIAN 0x0f LANG_ICELANDIC 0x10 LANG_ITALIAN 0x11 LANG_JAPANESE 0x12 LANG_KOREAN 0x13 LANG_DUTCH 0x14 LANG_NORWEGIAN 0x15 LANG_POLISH 0x16 LANG_PORTUGUESE 0x17 LANG_ROMANSH 0x18 LANG_ROMANIAN 0x19 LANG_RUSSIAN 0x1a LANG_CROATIAN == LANG_SERBIAN 0x1b LANG_SLOVAK 0x1c LANG_ALBANIAN 0x1d LANG_SWEDISH 0x1e LANG_THAI 0x1f LANG_TURKISH 0x20 LANG_URDU 0x21 LANG_INDONESIAN 0x22 LANG_UKRAINIAN 0x23 LANG_BELARUSIAN 0x24 LANG_SLOVENIAN 0x25 LANG_ESTONIAN 0x26 LANG_LATVIAN 0x27 LANG_LITHUANIAN 0x28 LANG_TAJIK 0x29 LANG_FARSI 0x2a LANG_VIETNAMESE 0x2b LANG_ARMENIAN 0x2c LANG_AZERI 0x2d LANG_BASQUE 0x2e LANG_SORBIAN 0x2f LANG_MACEDONIAN 0x30 LANG_SUTU 0x31 LANG_TSONGA 0x32 LANG_TSWANA 0x33 LANG_VENDA 0x34 LANG_XHOSA 0x35 LANG_ZULU 0x36 LANG_AFRIKAANS 0x37 LANG_GEORGIAN 0x38 LANG_FAEROESE 0x39 LANG_HINDI 0x3a LANG_MALTESE 0x3b LANG_SAMI 0x3c LANG_GAELIC 0x3d LANG_YIDDISH 0x3e LANG_MALAY 0x3f LANG_KAZAK 0x40 LANG_KYRGYZ 0x41 LANG_SWAHILI 0x42 LANG_TURKMEN 0x43 LANG_UZBEK 0x44 LANG_TATAR 0x45 LANG_BENGALI 0x46 LANG_PUNJABI 0x47 LANG_GUJARATI 0x48 LANG_ORIYA 0x49 LANG_TAMIL 0x4a LANG_TELUGU 0x4b LANG_KANNADA 0x4c LANG_MALAYALAM 0x4d LANG_ASSAMESE 0x4e LANG_MARATHI 0x4f LANG_SANSKRIT 0x50 LANG_MONGOLIAN 0x51 LANG_TIBETAN 0x52 LANG_WELSH 0x53 LANG_CAMBODIAN 0x54 LANG_LAO 0x55 LANG_BURMESE 0x56 LANG_GALICIAN 0x57 LANG_KONKANI 0x58 LANG_MANIPURI 0x59 LANG_SINDHI 0x5a LANG_SYRIAC 0x5b LANG_SINHALESE 0x5c LANG_CHEROKEE 0x5d LANG_INUKTITUT 0x5e LANG_AMHARIC 0x5f LANG_TAMAZIGHT 0x60 LANG_KASHMIRI 0x61 LANG_NEPALI 0x62 LANG_FRISIAN 0x63 LANG_PASHTO 0x64 LANG_TAGALOG 0x65 LANG_DIVEHI 0x66 LANG_EDO 0x67 LANG_FULFULDE 0x68 LANG_HAUSA 0x69 LANG_IBIBIO 0x6a LANG_YORUBA 0x6d LANG_BASHKIR 0x6e LANG_LUXEMBOURGISH 0x6f LANG_GREENLANDIC 0x70 LANG_IGBO 0x71 LANG_KANURI 0x72 LANG_OROMO 0x73 LANG_TIGRINYA 0x74 LANG_GUARANI 0x75 LANG_HAWAIIAN 0x76 LANG_LATIN 0x77 LANG_SOMALI 0x78 LANG_YI 0x79 LANG_PAPIAMENTU 0x7a LANG_MAPUDUNGUN 0x7c LANG_MOHAWK 0x7e LANG_BRETON 0x82 LANG_OCCITAN 0x83 LANG_CORSICAN 0x84 LANG_ALSATIAN 0x85 LANG_YAKUT 0x86 LANG_KICHE 0x87 LANG_KINYARWANDA 0x88 LANG_WOLOF 0x8c LANG_DARI 0x91 LANG_SCOTTISH_GAELIC */ /* Mingw headers don't have latest language and sublanguage codes. */ # ifndef LANG_AFRIKAANS # define LANG_AFRIKAANS 0x36 # endif # ifndef LANG_ALBANIAN # define LANG_ALBANIAN 0x1c # endif # ifndef LANG_ALSATIAN # define LANG_ALSATIAN 0x84 # endif # ifndef LANG_AMHARIC # define LANG_AMHARIC 0x5e # endif # ifndef LANG_ARABIC # define LANG_ARABIC 0x01 # endif # ifndef LANG_ARMENIAN # define LANG_ARMENIAN 0x2b # endif # ifndef LANG_ASSAMESE # define LANG_ASSAMESE 0x4d # endif # ifndef LANG_AZERI # define LANG_AZERI 0x2c # endif # ifndef LANG_BASHKIR # define LANG_BASHKIR 0x6d # endif # ifndef LANG_BASQUE # define LANG_BASQUE 0x2d # endif # ifndef LANG_BELARUSIAN # define LANG_BELARUSIAN 0x23 # endif # ifndef LANG_BENGALI # define LANG_BENGALI 0x45 # endif # ifndef LANG_BRETON # define LANG_BRETON 0x7e # endif # ifndef LANG_BURMESE # define LANG_BURMESE 0x55 # endif # ifndef LANG_CAMBODIAN # define LANG_CAMBODIAN 0x53 # endif # ifndef LANG_CATALAN # define LANG_CATALAN 0x03 # endif # ifndef LANG_CHEROKEE # define LANG_CHEROKEE 0x5c # endif # ifndef LANG_CORSICAN # define LANG_CORSICAN 0x83 # endif # ifndef LANG_DARI # define LANG_DARI 0x8c # endif # ifndef LANG_DIVEHI # define LANG_DIVEHI 0x65 # endif # ifndef LANG_EDO # define LANG_EDO 0x66 # endif # ifndef LANG_ESTONIAN # define LANG_ESTONIAN 0x25 # endif # ifndef LANG_FAEROESE # define LANG_FAEROESE 0x38 # endif # ifndef LANG_FARSI # define LANG_FARSI 0x29 # endif # ifndef LANG_FRISIAN # define LANG_FRISIAN 0x62 # endif # ifndef LANG_FULFULDE # define LANG_FULFULDE 0x67 # endif # ifndef LANG_GAELIC # define LANG_GAELIC 0x3c # endif # ifndef LANG_GALICIAN # define LANG_GALICIAN 0x56 # endif # ifndef LANG_GEORGIAN # define LANG_GEORGIAN 0x37 # endif # ifndef LANG_GREENLANDIC # define LANG_GREENLANDIC 0x6f # endif # ifndef LANG_GUARANI # define LANG_GUARANI 0x74 # endif # ifndef LANG_GUJARATI # define LANG_GUJARATI 0x47 # endif # ifndef LANG_HAUSA # define LANG_HAUSA 0x68 # endif # ifndef LANG_HAWAIIAN # define LANG_HAWAIIAN 0x75 # endif # ifndef LANG_HEBREW # define LANG_HEBREW 0x0d # endif # ifndef LANG_HINDI # define LANG_HINDI 0x39 # endif # ifndef LANG_IBIBIO # define LANG_IBIBIO 0x69 # endif # ifndef LANG_IGBO # define LANG_IGBO 0x70 # endif # ifndef LANG_INDONESIAN # define LANG_INDONESIAN 0x21 # endif # ifndef LANG_INUKTITUT # define LANG_INUKTITUT 0x5d # endif # ifndef LANG_KANNADA # define LANG_KANNADA 0x4b # endif # ifndef LANG_KANURI # define LANG_KANURI 0x71 # endif # ifndef LANG_KASHMIRI # define LANG_KASHMIRI 0x60 # endif # ifndef LANG_KAZAK # define LANG_KAZAK 0x3f # endif # ifndef LANG_KICHE # define LANG_KICHE 0x86 # endif # ifndef LANG_KINYARWANDA # define LANG_KINYARWANDA 0x87 # endif # ifndef LANG_KONKANI # define LANG_KONKANI 0x57 # endif # ifndef LANG_KYRGYZ # define LANG_KYRGYZ 0x40 # endif # ifndef LANG_LAO # define LANG_LAO 0x54 # endif # ifndef LANG_LATIN # define LANG_LATIN 0x76 # endif # ifndef LANG_LATVIAN # define LANG_LATVIAN 0x26 # endif # ifndef LANG_LITHUANIAN # define LANG_LITHUANIAN 0x27 # endif # ifndef LANG_LUXEMBOURGISH # define LANG_LUXEMBOURGISH 0x6e # endif # ifndef LANG_MACEDONIAN # define LANG_MACEDONIAN 0x2f # endif # ifndef LANG_MALAY # define LANG_MALAY 0x3e # endif # ifndef LANG_MALAYALAM # define LANG_MALAYALAM 0x4c # endif # ifndef LANG_MALTESE # define LANG_MALTESE 0x3a # endif # ifndef LANG_MANIPURI # define LANG_MANIPURI 0x58 # endif # ifndef LANG_MAORI # define LANG_MAORI 0x81 # endif # ifndef LANG_MAPUDUNGUN # define LANG_MAPUDUNGUN 0x7a # endif # ifndef LANG_MARATHI # define LANG_MARATHI 0x4e # endif # ifndef LANG_MOHAWK # define LANG_MOHAWK 0x7c # endif # ifndef LANG_MONGOLIAN # define LANG_MONGOLIAN 0x50 # endif # ifndef LANG_NEPALI # define LANG_NEPALI 0x61 # endif # ifndef LANG_OCCITAN # define LANG_OCCITAN 0x82 # endif # ifndef LANG_ORIYA # define LANG_ORIYA 0x48 # endif # ifndef LANG_OROMO # define LANG_OROMO 0x72 # endif # ifndef LANG_PAPIAMENTU # define LANG_PAPIAMENTU 0x79 # endif # ifndef LANG_PASHTO # define LANG_PASHTO 0x63 # endif # ifndef LANG_PUNJABI # define LANG_PUNJABI 0x46 # endif # ifndef LANG_QUECHUA # define LANG_QUECHUA 0x6b # endif # ifndef LANG_ROMANSH # define LANG_ROMANSH 0x17 # endif # ifndef LANG_SAMI # define LANG_SAMI 0x3b # endif # ifndef LANG_SANSKRIT # define LANG_SANSKRIT 0x4f # endif # ifndef LANG_SCOTTISH_GAELIC # define LANG_SCOTTISH_GAELIC 0x91 # endif # ifndef LANG_SERBIAN # define LANG_SERBIAN 0x1a # endif # ifndef LANG_SINDHI # define LANG_SINDHI 0x59 # endif # ifndef LANG_SINHALESE # define LANG_SINHALESE 0x5b # endif # ifndef LANG_SLOVAK # define LANG_SLOVAK 0x1b # endif # ifndef LANG_SOMALI # define LANG_SOMALI 0x77 # endif # ifndef LANG_SORBIAN # define LANG_SORBIAN 0x2e # endif # ifndef LANG_SOTHO # define LANG_SOTHO 0x6c # endif # ifndef LANG_SUTU # define LANG_SUTU 0x30 # endif # ifndef LANG_SWAHILI # define LANG_SWAHILI 0x41 # endif # ifndef LANG_SYRIAC # define LANG_SYRIAC 0x5a # endif # ifndef LANG_TAGALOG # define LANG_TAGALOG 0x64 # endif # ifndef LANG_TAJIK # define LANG_TAJIK 0x28 # endif # ifndef LANG_TAMAZIGHT # define LANG_TAMAZIGHT 0x5f # endif # ifndef LANG_TAMIL # define LANG_TAMIL 0x49 # endif # ifndef LANG_TATAR # define LANG_TATAR 0x44 # endif # ifndef LANG_TELUGU # define LANG_TELUGU 0x4a # endif # ifndef LANG_THAI # define LANG_THAI 0x1e # endif # ifndef LANG_TIBETAN # define LANG_TIBETAN 0x51 # endif # ifndef LANG_TIGRINYA # define LANG_TIGRINYA 0x73 # endif # ifndef LANG_TSONGA # define LANG_TSONGA 0x31 # endif # ifndef LANG_TSWANA # define LANG_TSWANA 0x32 # endif # ifndef LANG_TURKMEN # define LANG_TURKMEN 0x42 # endif # ifndef LANG_UIGHUR # define LANG_UIGHUR 0x80 # endif # ifndef LANG_UKRAINIAN # define LANG_UKRAINIAN 0x22 # endif # ifndef LANG_URDU # define LANG_URDU 0x20 # endif # ifndef LANG_UZBEK # define LANG_UZBEK 0x43 # endif # ifndef LANG_VENDA # define LANG_VENDA 0x33 # endif # ifndef LANG_VIETNAMESE # define LANG_VIETNAMESE 0x2a # endif # ifndef LANG_WELSH # define LANG_WELSH 0x52 # endif # ifndef LANG_WOLOF # define LANG_WOLOF 0x88 # endif # ifndef LANG_XHOSA # define LANG_XHOSA 0x34 # endif # ifndef LANG_YAKUT # define LANG_YAKUT 0x85 # endif # ifndef LANG_YI # define LANG_YI 0x78 # endif # ifndef LANG_YIDDISH # define LANG_YIDDISH 0x3d # endif # ifndef LANG_YORUBA # define LANG_YORUBA 0x6a # endif # ifndef LANG_ZULU # define LANG_ZULU 0x35 # endif # ifndef SUBLANG_AFRIKAANS_SOUTH_AFRICA # define SUBLANG_AFRIKAANS_SOUTH_AFRICA 0x01 # endif # ifndef SUBLANG_ALBANIAN_ALBANIA # define SUBLANG_ALBANIAN_ALBANIA 0x01 # endif # ifndef SUBLANG_ALSATIAN_FRANCE # define SUBLANG_ALSATIAN_FRANCE 0x01 # endif # ifndef SUBLANG_AMHARIC_ETHIOPIA # define SUBLANG_AMHARIC_ETHIOPIA 0x01 # endif # ifndef SUBLANG_ARABIC_SAUDI_ARABIA # define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 # endif # ifndef SUBLANG_ARABIC_IRAQ # define SUBLANG_ARABIC_IRAQ 0x02 # endif # ifndef SUBLANG_ARABIC_EGYPT # define SUBLANG_ARABIC_EGYPT 0x03 # endif # ifndef SUBLANG_ARABIC_LIBYA # define SUBLANG_ARABIC_LIBYA 0x04 # endif # ifndef SUBLANG_ARABIC_ALGERIA # define SUBLANG_ARABIC_ALGERIA 0x05 # endif # ifndef SUBLANG_ARABIC_MOROCCO # define SUBLANG_ARABIC_MOROCCO 0x06 # endif # ifndef SUBLANG_ARABIC_TUNISIA # define SUBLANG_ARABIC_TUNISIA 0x07 # endif # ifndef SUBLANG_ARABIC_OMAN # define SUBLANG_ARABIC_OMAN 0x08 # endif # ifndef SUBLANG_ARABIC_YEMEN # define SUBLANG_ARABIC_YEMEN 0x09 # endif # ifndef SUBLANG_ARABIC_SYRIA # define SUBLANG_ARABIC_SYRIA 0x0a # endif # ifndef SUBLANG_ARABIC_JORDAN # define SUBLANG_ARABIC_JORDAN 0x0b # endif # ifndef SUBLANG_ARABIC_LEBANON # define SUBLANG_ARABIC_LEBANON 0x0c # endif # ifndef SUBLANG_ARABIC_KUWAIT # define SUBLANG_ARABIC_KUWAIT 0x0d # endif # ifndef SUBLANG_ARABIC_UAE # define SUBLANG_ARABIC_UAE 0x0e # endif # ifndef SUBLANG_ARABIC_BAHRAIN # define SUBLANG_ARABIC_BAHRAIN 0x0f # endif # ifndef SUBLANG_ARABIC_QATAR # define SUBLANG_ARABIC_QATAR 0x10 # endif # ifndef SUBLANG_ARMENIAN_ARMENIA # define SUBLANG_ARMENIAN_ARMENIA 0x01 # endif # ifndef SUBLANG_ASSAMESE_INDIA # define SUBLANG_ASSAMESE_INDIA 0x01 # endif # ifndef SUBLANG_AZERI_LATIN # define SUBLANG_AZERI_LATIN 0x01 # endif # ifndef SUBLANG_AZERI_CYRILLIC # define SUBLANG_AZERI_CYRILLIC 0x02 # endif # ifndef SUBLANG_BASHKIR_RUSSIA # define SUBLANG_BASHKIR_RUSSIA 0x01 # endif # ifndef SUBLANG_BASQUE_BASQUE # define SUBLANG_BASQUE_BASQUE 0x01 # endif # ifndef SUBLANG_BELARUSIAN_BELARUS # define SUBLANG_BELARUSIAN_BELARUS 0x01 # endif # ifndef SUBLANG_BENGALI_INDIA # define SUBLANG_BENGALI_INDIA 0x01 # endif # ifndef SUBLANG_BENGALI_BANGLADESH # define SUBLANG_BENGALI_BANGLADESH 0x02 # endif # ifndef SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN # define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05 # endif # ifndef SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC # define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08 # endif # ifndef SUBLANG_BRETON_FRANCE # define SUBLANG_BRETON_FRANCE 0x01 # endif # ifndef SUBLANG_BULGARIAN_BULGARIA # define SUBLANG_BULGARIAN_BULGARIA 0x01 # endif # ifndef SUBLANG_CAMBODIAN_CAMBODIA # define SUBLANG_CAMBODIAN_CAMBODIA 0x01 # endif # ifndef SUBLANG_CATALAN_SPAIN # define SUBLANG_CATALAN_SPAIN 0x01 # endif # ifndef SUBLANG_CORSICAN_FRANCE # define SUBLANG_CORSICAN_FRANCE 0x01 # endif # ifndef SUBLANG_CROATIAN_CROATIA # define SUBLANG_CROATIAN_CROATIA 0x01 # endif # ifndef SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN # define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04 # endif # ifndef SUBLANG_CHINESE_MACAU # define SUBLANG_CHINESE_MACAU 0x05 # endif # ifndef SUBLANG_CZECH_CZECH_REPUBLIC # define SUBLANG_CZECH_CZECH_REPUBLIC 0x01 # endif # ifndef SUBLANG_DANISH_DENMARK # define SUBLANG_DANISH_DENMARK 0x01 # endif # ifndef SUBLANG_DARI_AFGHANISTAN # define SUBLANG_DARI_AFGHANISTAN 0x01 # endif # ifndef SUBLANG_DIVEHI_MALDIVES # define SUBLANG_DIVEHI_MALDIVES 0x01 # endif # ifndef SUBLANG_DUTCH_SURINAM # define SUBLANG_DUTCH_SURINAM 0x03 # endif # ifndef SUBLANG_ENGLISH_SOUTH_AFRICA # define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07 # endif # ifndef SUBLANG_ENGLISH_JAMAICA # define SUBLANG_ENGLISH_JAMAICA 0x08 # endif # ifndef SUBLANG_ENGLISH_CARIBBEAN # define SUBLANG_ENGLISH_CARIBBEAN 0x09 # endif # ifndef SUBLANG_ENGLISH_BELIZE # define SUBLANG_ENGLISH_BELIZE 0x0a # endif # ifndef SUBLANG_ENGLISH_TRINIDAD # define SUBLANG_ENGLISH_TRINIDAD 0x0b # endif # ifndef SUBLANG_ENGLISH_ZIMBABWE # define SUBLANG_ENGLISH_ZIMBABWE 0x0c # endif # ifndef SUBLANG_ENGLISH_PHILIPPINES # define SUBLANG_ENGLISH_PHILIPPINES 0x0d # endif # ifndef SUBLANG_ENGLISH_INDONESIA # define SUBLANG_ENGLISH_INDONESIA 0x0e # endif # ifndef SUBLANG_ENGLISH_HONGKONG # define SUBLANG_ENGLISH_HONGKONG 0x0f # endif # ifndef SUBLANG_ENGLISH_INDIA # define SUBLANG_ENGLISH_INDIA 0x10 # endif # ifndef SUBLANG_ENGLISH_MALAYSIA # define SUBLANG_ENGLISH_MALAYSIA 0x11 # endif # ifndef SUBLANG_ENGLISH_SINGAPORE # define SUBLANG_ENGLISH_SINGAPORE 0x12 # endif # ifndef SUBLANG_ESTONIAN_ESTONIA # define SUBLANG_ESTONIAN_ESTONIA 0x01 # endif # ifndef SUBLANG_FAEROESE_FAROE_ISLANDS # define SUBLANG_FAEROESE_FAROE_ISLANDS 0x01 # endif # ifndef SUBLANG_FARSI_IRAN # define SUBLANG_FARSI_IRAN 0x01 # endif # ifndef SUBLANG_FINNISH_FINLAND # define SUBLANG_FINNISH_FINLAND 0x01 # endif # ifndef SUBLANG_FRENCH_LUXEMBOURG # define SUBLANG_FRENCH_LUXEMBOURG 0x05 # endif # ifndef SUBLANG_FRENCH_MONACO # define SUBLANG_FRENCH_MONACO 0x06 # endif # ifndef SUBLANG_FRENCH_WESTINDIES # define SUBLANG_FRENCH_WESTINDIES 0x07 # endif # ifndef SUBLANG_FRENCH_REUNION # define SUBLANG_FRENCH_REUNION 0x08 # endif # ifndef SUBLANG_FRENCH_CONGO # define SUBLANG_FRENCH_CONGO 0x09 # endif # ifndef SUBLANG_FRENCH_SENEGAL # define SUBLANG_FRENCH_SENEGAL 0x0a # endif # ifndef SUBLANG_FRENCH_CAMEROON # define SUBLANG_FRENCH_CAMEROON 0x0b # endif # ifndef SUBLANG_FRENCH_COTEDIVOIRE # define SUBLANG_FRENCH_COTEDIVOIRE 0x0c # endif # ifndef SUBLANG_FRENCH_MALI # define SUBLANG_FRENCH_MALI 0x0d # endif # ifndef SUBLANG_FRENCH_MOROCCO # define SUBLANG_FRENCH_MOROCCO 0x0e # endif # ifndef SUBLANG_FRENCH_HAITI # define SUBLANG_FRENCH_HAITI 0x0f # endif # ifndef SUBLANG_FRISIAN_NETHERLANDS # define SUBLANG_FRISIAN_NETHERLANDS 0x01 # endif # ifndef SUBLANG_GALICIAN_SPAIN # define SUBLANG_GALICIAN_SPAIN 0x01 # endif # ifndef SUBLANG_GEORGIAN_GEORGIA # define SUBLANG_GEORGIAN_GEORGIA 0x01 # endif # ifndef SUBLANG_GERMAN_LUXEMBOURG # define SUBLANG_GERMAN_LUXEMBOURG 0x04 # endif # ifndef SUBLANG_GERMAN_LIECHTENSTEIN # define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 # endif # ifndef SUBLANG_GREEK_GREECE # define SUBLANG_GREEK_GREECE 0x01 # endif # ifndef SUBLANG_GREENLANDIC_GREENLAND # define SUBLANG_GREENLANDIC_GREENLAND 0x01 # endif # ifndef SUBLANG_GUJARATI_INDIA # define SUBLANG_GUJARATI_INDIA 0x01 # endif # ifndef SUBLANG_HAUSA_NIGERIA_LATIN # define SUBLANG_HAUSA_NIGERIA_LATIN 0x01 # endif # ifndef SUBLANG_HEBREW_ISRAEL # define SUBLANG_HEBREW_ISRAEL 0x01 # endif # ifndef SUBLANG_HINDI_INDIA # define SUBLANG_HINDI_INDIA 0x01 # endif # ifndef SUBLANG_HUNGARIAN_HUNGARY # define SUBLANG_HUNGARIAN_HUNGARY 0x01 # endif # ifndef SUBLANG_ICELANDIC_ICELAND # define SUBLANG_ICELANDIC_ICELAND 0x01 # endif # ifndef SUBLANG_IGBO_NIGERIA # define SUBLANG_IGBO_NIGERIA 0x01 # endif # ifndef SUBLANG_INDONESIAN_INDONESIA # define SUBLANG_INDONESIAN_INDONESIA 0x01 # endif # ifndef SUBLANG_INUKTITUT_CANADA # define SUBLANG_INUKTITUT_CANADA 0x01 # endif # undef SUBLANG_INUKTITUT_CANADA_LATIN # define SUBLANG_INUKTITUT_CANADA_LATIN 0x02 # undef SUBLANG_IRISH_IRELAND # define SUBLANG_IRISH_IRELAND 0x02 # ifndef SUBLANG_JAPANESE_JAPAN # define SUBLANG_JAPANESE_JAPAN 0x01 # endif # ifndef SUBLANG_KANNADA_INDIA # define SUBLANG_KANNADA_INDIA 0x01 # endif # ifndef SUBLANG_KASHMIRI_INDIA # define SUBLANG_KASHMIRI_INDIA 0x02 # endif # ifndef SUBLANG_KAZAK_KAZAKHSTAN # define SUBLANG_KAZAK_KAZAKHSTAN 0x01 # endif # ifndef SUBLANG_KICHE_GUATEMALA # define SUBLANG_KICHE_GUATEMALA 0x01 # endif # ifndef SUBLANG_KINYARWANDA_RWANDA # define SUBLANG_KINYARWANDA_RWANDA 0x01 # endif # ifndef SUBLANG_KONKANI_INDIA # define SUBLANG_KONKANI_INDIA 0x01 # endif # ifndef SUBLANG_KYRGYZ_KYRGYZSTAN # define SUBLANG_KYRGYZ_KYRGYZSTAN 0x01 # endif # ifndef SUBLANG_LAO_LAOS # define SUBLANG_LAO_LAOS 0x01 # endif # ifndef SUBLANG_LATVIAN_LATVIA # define SUBLANG_LATVIAN_LATVIA 0x01 # endif # ifndef SUBLANG_LITHUANIAN_LITHUANIA # define SUBLANG_LITHUANIAN_LITHUANIA 0x01 # endif # undef SUBLANG_LOWER_SORBIAN_GERMANY # define SUBLANG_LOWER_SORBIAN_GERMANY 0x02 # ifndef SUBLANG_LUXEMBOURGISH_LUXEMBOURG # define SUBLANG_LUXEMBOURGISH_LUXEMBOURG 0x01 # endif # ifndef SUBLANG_MACEDONIAN_MACEDONIA # define SUBLANG_MACEDONIAN_MACEDONIA 0x01 # endif # ifndef SUBLANG_MALAY_MALAYSIA # define SUBLANG_MALAY_MALAYSIA 0x01 # endif # ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM # define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 # endif # ifndef SUBLANG_MALAYALAM_INDIA # define SUBLANG_MALAYALAM_INDIA 0x01 # endif # ifndef SUBLANG_MALTESE_MALTA # define SUBLANG_MALTESE_MALTA 0x01 # endif # ifndef SUBLANG_MAORI_NEW_ZEALAND # define SUBLANG_MAORI_NEW_ZEALAND 0x01 # endif # ifndef SUBLANG_MAPUDUNGUN_CHILE # define SUBLANG_MAPUDUNGUN_CHILE 0x01 # endif # ifndef SUBLANG_MARATHI_INDIA # define SUBLANG_MARATHI_INDIA 0x01 # endif # ifndef SUBLANG_MOHAWK_CANADA # define SUBLANG_MOHAWK_CANADA 0x01 # endif # ifndef SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA # define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01 # endif # ifndef SUBLANG_MONGOLIAN_PRC # define SUBLANG_MONGOLIAN_PRC 0x02 # endif # ifndef SUBLANG_NEPALI_NEPAL # define SUBLANG_NEPALI_NEPAL 0x01 # endif # ifndef SUBLANG_NEPALI_INDIA # define SUBLANG_NEPALI_INDIA 0x02 # endif # ifndef SUBLANG_OCCITAN_FRANCE # define SUBLANG_OCCITAN_FRANCE 0x01 # endif # ifndef SUBLANG_ORIYA_INDIA # define SUBLANG_ORIYA_INDIA 0x01 # endif # ifndef SUBLANG_PASHTO_AFGHANISTAN # define SUBLANG_PASHTO_AFGHANISTAN 0x01 # endif # ifndef SUBLANG_POLISH_POLAND # define SUBLANG_POLISH_POLAND 0x01 # endif # ifndef SUBLANG_PUNJABI_INDIA # define SUBLANG_PUNJABI_INDIA 0x01 # endif # ifndef SUBLANG_PUNJABI_PAKISTAN # define SUBLANG_PUNJABI_PAKISTAN 0x02 # endif # ifndef SUBLANG_QUECHUA_BOLIVIA # define SUBLANG_QUECHUA_BOLIVIA 0x01 # endif # ifndef SUBLANG_QUECHUA_ECUADOR # define SUBLANG_QUECHUA_ECUADOR 0x02 # endif # ifndef SUBLANG_QUECHUA_PERU # define SUBLANG_QUECHUA_PERU 0x03 # endif # ifndef SUBLANG_ROMANIAN_ROMANIA # define SUBLANG_ROMANIAN_ROMANIA 0x01 # endif # ifndef SUBLANG_ROMANIAN_MOLDOVA # define SUBLANG_ROMANIAN_MOLDOVA 0x02 # endif # ifndef SUBLANG_ROMANSH_SWITZERLAND # define SUBLANG_ROMANSH_SWITZERLAND 0x01 # endif # ifndef SUBLANG_RUSSIAN_RUSSIA # define SUBLANG_RUSSIAN_RUSSIA 0x01 # endif # ifndef SUBLANG_RUSSIAN_MOLDAVIA # define SUBLANG_RUSSIAN_MOLDAVIA 0x02 # endif # ifndef SUBLANG_SAMI_NORTHERN_NORWAY # define SUBLANG_SAMI_NORTHERN_NORWAY 0x01 # endif # ifndef SUBLANG_SAMI_NORTHERN_SWEDEN # define SUBLANG_SAMI_NORTHERN_SWEDEN 0x02 # endif # ifndef SUBLANG_SAMI_NORTHERN_FINLAND # define SUBLANG_SAMI_NORTHERN_FINLAND 0x03 # endif # ifndef SUBLANG_SAMI_LULE_NORWAY # define SUBLANG_SAMI_LULE_NORWAY 0x04 # endif # ifndef SUBLANG_SAMI_LULE_SWEDEN # define SUBLANG_SAMI_LULE_SWEDEN 0x05 # endif # ifndef SUBLANG_SAMI_SOUTHERN_NORWAY # define SUBLANG_SAMI_SOUTHERN_NORWAY 0x06 # endif # ifndef SUBLANG_SAMI_SOUTHERN_SWEDEN # define SUBLANG_SAMI_SOUTHERN_SWEDEN 0x07 # endif # undef SUBLANG_SAMI_SKOLT_FINLAND # define SUBLANG_SAMI_SKOLT_FINLAND 0x08 # undef SUBLANG_SAMI_INARI_FINLAND # define SUBLANG_SAMI_INARI_FINLAND 0x09 # ifndef SUBLANG_SANSKRIT_INDIA # define SUBLANG_SANSKRIT_INDIA 0x01 # endif # ifndef SUBLANG_SERBIAN_LATIN # define SUBLANG_SERBIAN_LATIN 0x02 # endif # ifndef SUBLANG_SERBIAN_CYRILLIC # define SUBLANG_SERBIAN_CYRILLIC 0x03 # endif # ifndef SUBLANG_SINDHI_INDIA # define SUBLANG_SINDHI_INDIA 0x01 # endif # undef SUBLANG_SINDHI_PAKISTAN # define SUBLANG_SINDHI_PAKISTAN 0x02 # ifndef SUBLANG_SINDHI_AFGHANISTAN # define SUBLANG_SINDHI_AFGHANISTAN 0x02 # endif # ifndef SUBLANG_SINHALESE_SRI_LANKA # define SUBLANG_SINHALESE_SRI_LANKA 0x01 # endif # ifndef SUBLANG_SLOVAK_SLOVAKIA # define SUBLANG_SLOVAK_SLOVAKIA 0x01 # endif # ifndef SUBLANG_SLOVENIAN_SLOVENIA # define SUBLANG_SLOVENIAN_SLOVENIA 0x01 # endif # ifndef SUBLANG_SOTHO_SOUTH_AFRICA # define SUBLANG_SOTHO_SOUTH_AFRICA 0x01 # endif # ifndef SUBLANG_SPANISH_GUATEMALA # define SUBLANG_SPANISH_GUATEMALA 0x04 # endif # ifndef SUBLANG_SPANISH_COSTA_RICA # define SUBLANG_SPANISH_COSTA_RICA 0x05 # endif # ifndef SUBLANG_SPANISH_PANAMA # define SUBLANG_SPANISH_PANAMA 0x06 # endif # ifndef SUBLANG_SPANISH_DOMINICAN_REPUBLIC # define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07 # endif # ifndef SUBLANG_SPANISH_VENEZUELA # define SUBLANG_SPANISH_VENEZUELA 0x08 # endif # ifndef SUBLANG_SPANISH_COLOMBIA # define SUBLANG_SPANISH_COLOMBIA 0x09 # endif # ifndef SUBLANG_SPANISH_PERU # define SUBLANG_SPANISH_PERU 0x0a # endif # ifndef SUBLANG_SPANISH_ARGENTINA # define SUBLANG_SPANISH_ARGENTINA 0x0b # endif # ifndef SUBLANG_SPANISH_ECUADOR # define SUBLANG_SPANISH_ECUADOR 0x0c # endif # ifndef SUBLANG_SPANISH_CHILE # define SUBLANG_SPANISH_CHILE 0x0d # endif # ifndef SUBLANG_SPANISH_URUGUAY # define SUBLANG_SPANISH_URUGUAY 0x0e # endif # ifndef SUBLANG_SPANISH_PARAGUAY # define SUBLANG_SPANISH_PARAGUAY 0x0f # endif # ifndef SUBLANG_SPANISH_BOLIVIA # define SUBLANG_SPANISH_BOLIVIA 0x10 # endif # ifndef SUBLANG_SPANISH_EL_SALVADOR # define SUBLANG_SPANISH_EL_SALVADOR 0x11 # endif # ifndef SUBLANG_SPANISH_HONDURAS # define SUBLANG_SPANISH_HONDURAS 0x12 # endif # ifndef SUBLANG_SPANISH_NICARAGUA # define SUBLANG_SPANISH_NICARAGUA 0x13 # endif # ifndef SUBLANG_SPANISH_PUERTO_RICO # define SUBLANG_SPANISH_PUERTO_RICO 0x14 # endif # ifndef SUBLANG_SPANISH_US # define SUBLANG_SPANISH_US 0x15 # endif # ifndef SUBLANG_SWAHILI_KENYA # define SUBLANG_SWAHILI_KENYA 0x01 # endif # ifndef SUBLANG_SWEDISH_SWEDEN # define SUBLANG_SWEDISH_SWEDEN 0x01 # endif # ifndef SUBLANG_SWEDISH_FINLAND # define SUBLANG_SWEDISH_FINLAND 0x02 # endif # ifndef SUBLANG_SYRIAC_SYRIA # define SUBLANG_SYRIAC_SYRIA 0x01 # endif # ifndef SUBLANG_TAGALOG_PHILIPPINES # define SUBLANG_TAGALOG_PHILIPPINES 0x01 # endif # ifndef SUBLANG_TAJIK_TAJIKISTAN # define SUBLANG_TAJIK_TAJIKISTAN 0x01 # endif # ifndef SUBLANG_TAMAZIGHT_ARABIC # define SUBLANG_TAMAZIGHT_ARABIC 0x01 # endif # ifndef SUBLANG_TAMAZIGHT_ALGERIA_LATIN # define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02 # endif # ifndef SUBLANG_TAMIL_INDIA # define SUBLANG_TAMIL_INDIA 0x01 # endif # ifndef SUBLANG_TATAR_RUSSIA # define SUBLANG_TATAR_RUSSIA 0x01 # endif # ifndef SUBLANG_TELUGU_INDIA # define SUBLANG_TELUGU_INDIA 0x01 # endif # ifndef SUBLANG_THAI_THAILAND # define SUBLANG_THAI_THAILAND 0x01 # endif # ifndef SUBLANG_TIBETAN_PRC # define SUBLANG_TIBETAN_PRC 0x01 # endif # undef SUBLANG_TIBETAN_BHUTAN # define SUBLANG_TIBETAN_BHUTAN 0x02 # ifndef SUBLANG_TIGRINYA_ETHIOPIA # define SUBLANG_TIGRINYA_ETHIOPIA 0x01 # endif # ifndef SUBLANG_TIGRINYA_ERITREA # define SUBLANG_TIGRINYA_ERITREA 0x02 # endif # ifndef SUBLANG_TSWANA_SOUTH_AFRICA # define SUBLANG_TSWANA_SOUTH_AFRICA 0x01 # endif # ifndef SUBLANG_TURKISH_TURKEY # define SUBLANG_TURKISH_TURKEY 0x01 # endif # ifndef SUBLANG_TURKMEN_TURKMENISTAN # define SUBLANG_TURKMEN_TURKMENISTAN 0x01 # endif # ifndef SUBLANG_UIGHUR_PRC # define SUBLANG_UIGHUR_PRC 0x01 # endif # ifndef SUBLANG_UKRAINIAN_UKRAINE # define SUBLANG_UKRAINIAN_UKRAINE 0x01 # endif # ifndef SUBLANG_UPPER_SORBIAN_GERMANY # define SUBLANG_UPPER_SORBIAN_GERMANY 0x01 # endif # ifndef SUBLANG_URDU_PAKISTAN # define SUBLANG_URDU_PAKISTAN 0x01 # endif # ifndef SUBLANG_URDU_INDIA # define SUBLANG_URDU_INDIA 0x02 # endif # ifndef SUBLANG_UZBEK_LATIN # define SUBLANG_UZBEK_LATIN 0x01 # endif # ifndef SUBLANG_UZBEK_CYRILLIC # define SUBLANG_UZBEK_CYRILLIC 0x02 # endif # ifndef SUBLANG_VIETNAMESE_VIETNAM # define SUBLANG_VIETNAMESE_VIETNAM 0x01 # endif # ifndef SUBLANG_WELSH_UNITED_KINGDOM # define SUBLANG_WELSH_UNITED_KINGDOM 0x01 # endif # ifndef SUBLANG_WOLOF_SENEGAL # define SUBLANG_WOLOF_SENEGAL 0x01 # endif # ifndef SUBLANG_XHOSA_SOUTH_AFRICA # define SUBLANG_XHOSA_SOUTH_AFRICA 0x01 # endif # ifndef SUBLANG_YAKUT_RUSSIA # define SUBLANG_YAKUT_RUSSIA 0x01 # endif # ifndef SUBLANG_YI_PRC # define SUBLANG_YI_PRC 0x01 # endif # ifndef SUBLANG_YORUBA_NIGERIA # define SUBLANG_YORUBA_NIGERIA 0x01 # endif # ifndef SUBLANG_ZULU_SOUTH_AFRICA # define SUBLANG_ZULU_SOUTH_AFRICA 0x01 # endif /* GetLocaleInfoA operations. */ # ifndef LOCALE_SNAME # define LOCALE_SNAME 0x5c # endif # ifndef LOCALE_NAME_MAX_LENGTH # define LOCALE_NAME_MAX_LENGTH 85 # endif #endif #if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE /* Mac OS X 10.2 or newer */ /* Canonicalize a Mac OS X locale name to a Unix locale name. NAME is a sufficiently large buffer. On input, it contains the Mac OS X locale name. On output, it contains the Unix locale name. */ # if !defined IN_LIBINTL static # endif void gl_locale_name_canonicalize (char *name) { /* This conversion is based on a posting by Deborah GoldSmith on 2005-03-08, https://lists.apple.com/archives/carbon-dev/2005/Mar/msg00293.html */ /* Convert legacy (NeXTstep inherited) English names to Unix (ISO 639 and ISO 3166) names. Prior to Mac OS X 10.3, there is no API for doing this. Therefore we do it ourselves, using a table based on the results of the Mac OS X 10.3.8 function CFLocaleCreateCanonicalLocaleIdentifierFromString(). */ typedef struct { const char legacy[21+1]; const char unixy[5+1]; } legacy_entry; static const legacy_entry legacy_table[] = { { "Afrikaans", "af" }, { "Albanian", "sq" }, { "Amharic", "am" }, { "Arabic", "ar" }, { "Armenian", "hy" }, { "Assamese", "as" }, { "Aymara", "ay" }, { "Azerbaijani", "az" }, { "Basque", "eu" }, { "Belarusian", "be" }, { "Belorussian", "be" }, { "Bengali", "bn" }, { "Brazilian Portugese", "pt_BR" }, { "Brazilian Portuguese", "pt_BR" }, { "Breton", "br" }, { "Bulgarian", "bg" }, { "Burmese", "my" }, { "Byelorussian", "be" }, { "Catalan", "ca" }, { "Chewa", "ny" }, { "Chichewa", "ny" }, { "Chinese", "zh" }, { "Chinese, Simplified", "zh_CN" }, { "Chinese, Traditional", "zh_TW" }, { "Chinese, Tradtional", "zh_TW" }, { "Croatian", "hr" }, { "Czech", "cs" }, { "Danish", "da" }, { "Dutch", "nl" }, { "Dzongkha", "dz" }, { "English", "en" }, { "Esperanto", "eo" }, { "Estonian", "et" }, { "Faroese", "fo" }, { "Farsi", "fa" }, { "Finnish", "fi" }, { "Flemish", "nl_BE" }, { "French", "fr" }, { "Galician", "gl" }, { "Gallegan", "gl" }, { "Georgian", "ka" }, { "German", "de" }, { "Greek", "el" }, { "Greenlandic", "kl" }, { "Guarani", "gn" }, { "Gujarati", "gu" }, { "Hawaiian", "haw" }, /* Yes, "haw", not "cpe". */ { "Hebrew", "he" }, { "Hindi", "hi" }, { "Hungarian", "hu" }, { "Icelandic", "is" }, { "Indonesian", "id" }, { "Inuktitut", "iu" }, { "Irish", "ga" }, { "Italian", "it" }, { "Japanese", "ja" }, { "Javanese", "jv" }, { "Kalaallisut", "kl" }, { "Kannada", "kn" }, { "Kashmiri", "ks" }, { "Kazakh", "kk" }, { "Khmer", "km" }, { "Kinyarwanda", "rw" }, { "Kirghiz", "ky" }, { "Korean", "ko" }, { "Kurdish", "ku" }, { "Latin", "la" }, { "Latvian", "lv" }, { "Lithuanian", "lt" }, { "Macedonian", "mk" }, { "Malagasy", "mg" }, { "Malay", "ms" }, { "Malayalam", "ml" }, { "Maltese", "mt" }, { "Manx", "gv" }, { "Marathi", "mr" }, { "Moldavian", "mo" }, { "Mongolian", "mn" }, { "Nepali", "ne" }, { "Norwegian", "nb" }, /* Yes, "nb", not the obsolete "no". */ { "Nyanja", "ny" }, { "Nynorsk", "nn" }, { "Oriya", "or" }, { "Oromo", "om" }, { "Panjabi", "pa" }, { "Pashto", "ps" }, { "Persian", "fa" }, { "Polish", "pl" }, { "Portuguese", "pt" }, { "Portuguese, Brazilian", "pt_BR" }, { "Punjabi", "pa" }, { "Pushto", "ps" }, { "Quechua", "qu" }, { "Romanian", "ro" }, { "Ruanda", "rw" }, { "Rundi", "rn" }, { "Russian", "ru" }, { "Sami", "se_NO" }, /* Not just "se". */ { "Sanskrit", "sa" }, { "Scottish", "gd" }, { "Serbian", "sr" }, { "Simplified Chinese", "zh_CN" }, { "Sindhi", "sd" }, { "Sinhalese", "si" }, { "Slovak", "sk" }, { "Slovenian", "sl" }, { "Somali", "so" }, { "Spanish", "es" }, { "Sundanese", "su" }, { "Swahili", "sw" }, { "Swedish", "sv" }, { "Tagalog", "tl" }, { "Tajik", "tg" }, { "Tajiki", "tg" }, { "Tamil", "ta" }, { "Tatar", "tt" }, { "Telugu", "te" }, { "Thai", "th" }, { "Tibetan", "bo" }, { "Tigrinya", "ti" }, { "Tongan", "to" }, { "Traditional Chinese", "zh_TW" }, { "Turkish", "tr" }, { "Turkmen", "tk" }, { "Uighur", "ug" }, { "Ukrainian", "uk" }, { "Urdu", "ur" }, { "Uzbek", "uz" }, { "Vietnamese", "vi" }, { "Welsh", "cy" }, { "Yiddish", "yi" } }; /* Convert new-style locale names with language tags (ISO 639 and ISO 15924) to Unix (ISO 639 and ISO 3166) names. */ typedef struct { const char langtag[7+1]; const char unixy[12+1]; } langtag_entry; static const langtag_entry langtag_table[] = { /* Mac OS X has "az-Arab", "az-Cyrl", "az-Latn". The default script for az on Unix is Latin. */ { "az-Latn", "az" }, /* Mac OS X has "ga-dots". Does not yet exist on Unix. */ { "ga-dots", "ga" }, /* Mac OS X has "kk-Cyrl". Does not yet exist on Unix. */ /* Mac OS X has "mn-Cyrl", "mn-Mong". The default script for mn on Unix is Cyrillic. */ { "mn-Cyrl", "mn" }, /* Mac OS X has "ms-Arab", "ms-Latn". The default script for ms on Unix is Latin. */ { "ms-Latn", "ms" }, /* Mac OS X has "tg-Cyrl". The default script for tg on Unix is Cyrillic. */ { "tg-Cyrl", "tg" }, /* Mac OS X has "tk-Cyrl". Does not yet exist on Unix. */ /* Mac OS X has "tt-Cyrl". The default script for tt on Unix is Cyrillic. */ { "tt-Cyrl", "tt" }, /* Mac OS X has "zh-Hans", "zh-Hant". Country codes are used to distinguish these on Unix. */ { "zh-Hans", "zh_CN" }, { "zh-Hant", "zh_TW" } }; /* Convert script names (ISO 15924) to Unix conventions. See https://www.unicode.org/iso15924/iso15924-codes.html */ typedef struct { const char script[4+1]; const char unixy[9+1]; } script_entry; static const script_entry script_table[] = { { "Arab", "arabic" }, { "Cyrl", "cyrillic" }, { "Mong", "mongolian" } }; /* Step 1: Convert using legacy_table. */ if (name[0] >= 'A' && name[0] <= 'Z') { unsigned int i1, i2; i1 = 0; i2 = sizeof (legacy_table) / sizeof (legacy_entry); while (i2 - i1 > 1) { /* At this point we know that if name occurs in legacy_table, its index must be >= i1 and < i2. */ unsigned int i = (i1 + i2) >> 1; const legacy_entry *p = &legacy_table[i]; if (strcmp (name, p->legacy) < 0) i2 = i; else i1 = i; } if (strcmp (name, legacy_table[i1].legacy) == 0) { strcpy (name, legacy_table[i1].unixy); return; } } /* Step 2: Convert using langtag_table and script_table. */ if (strlen (name) == 7 && name[2] == '-') { unsigned int i1, i2; i1 = 0; i2 = sizeof (langtag_table) / sizeof (langtag_entry); while (i2 - i1 > 1) { /* At this point we know that if name occurs in langtag_table, its index must be >= i1 and < i2. */ unsigned int i = (i1 + i2) >> 1; const langtag_entry *p = &langtag_table[i]; if (strcmp (name, p->langtag) < 0) i2 = i; else i1 = i; } if (strcmp (name, langtag_table[i1].langtag) == 0) { strcpy (name, langtag_table[i1].unixy); return; } i1 = 0; i2 = sizeof (script_table) / sizeof (script_entry); while (i2 - i1 > 1) { /* At this point we know that if (name + 3) occurs in script_table, its index must be >= i1 and < i2. */ unsigned int i = (i1 + i2) >> 1; const script_entry *p = &script_table[i]; if (strcmp (name + 3, p->script) < 0) i2 = i; else i1 = i; } if (strcmp (name + 3, script_table[i1].script) == 0) { name[2] = '@'; strcpy (name + 3, script_table[i1].unixy); return; } } /* Step 3: Convert new-style dash to Unix underscore. */ { char *p; for (p = name; *p != '\0'; p++) if (*p == '-') *p = '_'; } } #endif #if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */ /* Canonicalize a Windows native locale name to a Unix locale name. NAME is a sufficiently large buffer. On input, it contains the Windows locale name. On output, it contains the Unix locale name. */ # if !defined IN_LIBINTL static # endif void gl_locale_name_canonicalize (char *name) { /* FIXME: This is probably incomplete: it does not handle "zh-Hans" and "zh-Hant". */ char *p; for (p = name; *p != '\0'; p++) if (*p == '-') { *p = '_'; p++; for (; *p != '\0'; p++) { if (*p >= 'a' && *p <= 'z') *p += 'A' - 'a'; if (*p == '-') { *p = '\0'; return; } } return; } } # if !defined IN_LIBINTL static # endif const char * gl_locale_name_from_win32_LANGID (LANGID langid) { /* Activate the new code only when the GETTEXT_MUI environment variable is set, for the time being, since the new code is not well tested. */ if (getenv ("GETTEXT_MUI") != NULL) { static char namebuf[256]; /* Query the system's notion of locale name. On Windows95/98/ME, GetLocaleInfoA returns some incorrect results. But we don't need to support systems that are so old. */ if (GetLocaleInfoA (MAKELCID (langid, SORT_DEFAULT), LOCALE_SNAME, namebuf, sizeof (namebuf) - 1)) { /* Convert it to a Unix locale name. */ gl_locale_name_canonicalize (namebuf); return namebuf; } } /* Internet Explorer has an LCID to RFC3066 name mapping stored in HKEY_CLASSES_ROOT\Mime\Database\Rfc1766. But we better don't use that since IE's i18n subsystem is known to be inconsistent with the native Windows base (e.g. they have different character conversion facilities that produce different results). */ /* Use our own table. */ { int primary, sub; /* Split into language and territory part. */ primary = PRIMARYLANGID (langid); sub = SUBLANGID (langid); /* Dispatch on language. See also https://www.unicode.org/unicode/onlinedat/languages.html . For details about languages, see https://www.ethnologue.com/ . */ switch (primary) { case LANG_AFRIKAANS: switch (sub) { case SUBLANG_AFRIKAANS_SOUTH_AFRICA: return "af_ZA"; } return "af"; case LANG_ALBANIAN: switch (sub) { case SUBLANG_ALBANIAN_ALBANIA: return "sq_AL"; } return "sq"; case LANG_ALSATIAN: switch (sub) { case SUBLANG_ALSATIAN_FRANCE: return "gsw_FR"; } return "gsw"; case LANG_AMHARIC: switch (sub) { case SUBLANG_AMHARIC_ETHIOPIA: return "am_ET"; } return "am"; case LANG_ARABIC: switch (sub) { case SUBLANG_ARABIC_SAUDI_ARABIA: return "ar_SA"; case SUBLANG_ARABIC_IRAQ: return "ar_IQ"; case SUBLANG_ARABIC_EGYPT: return "ar_EG"; case SUBLANG_ARABIC_LIBYA: return "ar_LY"; case SUBLANG_ARABIC_ALGERIA: return "ar_DZ"; case SUBLANG_ARABIC_MOROCCO: return "ar_MA"; case SUBLANG_ARABIC_TUNISIA: return "ar_TN"; case SUBLANG_ARABIC_OMAN: return "ar_OM"; case SUBLANG_ARABIC_YEMEN: return "ar_YE"; case SUBLANG_ARABIC_SYRIA: return "ar_SY"; case SUBLANG_ARABIC_JORDAN: return "ar_JO"; case SUBLANG_ARABIC_LEBANON: return "ar_LB"; case SUBLANG_ARABIC_KUWAIT: return "ar_KW"; case SUBLANG_ARABIC_UAE: return "ar_AE"; case SUBLANG_ARABIC_BAHRAIN: return "ar_BH"; case SUBLANG_ARABIC_QATAR: return "ar_QA"; } return "ar"; case LANG_ARMENIAN: switch (sub) { case SUBLANG_ARMENIAN_ARMENIA: return "hy_AM"; } return "hy"; case LANG_ASSAMESE: switch (sub) { case SUBLANG_ASSAMESE_INDIA: return "as_IN"; } return "as"; case LANG_AZERI: switch (sub) { /* FIXME: Adjust this when Azerbaijani locales appear on Unix. */ case 0x1e: return "az@latin"; case SUBLANG_AZERI_LATIN: return "az_AZ@latin"; case 0x1d: return "az@cyrillic"; case SUBLANG_AZERI_CYRILLIC: return "az_AZ@cyrillic"; } return "az"; case LANG_BASHKIR: switch (sub) { case SUBLANG_BASHKIR_RUSSIA: return "ba_RU"; } return "ba"; case LANG_BASQUE: switch (sub) { case SUBLANG_BASQUE_BASQUE: return "eu_ES"; } return "eu"; /* Ambiguous: could be "eu_ES" or "eu_FR". */ case LANG_BELARUSIAN: switch (sub) { case SUBLANG_BELARUSIAN_BELARUS: return "be_BY"; } return "be"; case LANG_BENGALI: switch (sub) { case SUBLANG_BENGALI_INDIA: return "bn_IN"; case SUBLANG_BENGALI_BANGLADESH: return "bn_BD"; } return "bn"; case LANG_BRETON: switch (sub) { case SUBLANG_BRETON_FRANCE: return "br_FR"; } return "br"; case LANG_BULGARIAN: switch (sub) { case SUBLANG_BULGARIAN_BULGARIA: return "bg_BG"; } return "bg"; case LANG_BURMESE: switch (sub) { case SUBLANG_DEFAULT: return "my_MM"; } return "my"; case LANG_CAMBODIAN: switch (sub) { case SUBLANG_CAMBODIAN_CAMBODIA: return "km_KH"; } return "km"; case LANG_CATALAN: switch (sub) { case SUBLANG_CATALAN_SPAIN: return "ca_ES"; } return "ca"; case LANG_CHEROKEE: switch (sub) { case SUBLANG_DEFAULT: return "chr_US"; } return "chr"; case LANG_CHINESE: switch (sub) { case SUBLANG_CHINESE_TRADITIONAL: case 0x1f: return "zh_TW"; case SUBLANG_CHINESE_SIMPLIFIED: case 0x00: return "zh_CN"; case SUBLANG_CHINESE_HONGKONG: return "zh_HK"; /* traditional */ case SUBLANG_CHINESE_SINGAPORE: return "zh_SG"; /* simplified */ case SUBLANG_CHINESE_MACAU: return "zh_MO"; /* traditional */ } return "zh"; case LANG_CORSICAN: switch (sub) { case SUBLANG_CORSICAN_FRANCE: return "co_FR"; } return "co"; case LANG_CROATIAN: /* LANG_CROATIAN == LANG_SERBIAN == LANG_BOSNIAN * What used to be called Serbo-Croatian * should really now be two separate * languages because of political reasons. * (Says tml, who knows nothing about Serbian * or Croatian.) * (I can feel those flames coming already.) */ switch (sub) { /* Croatian */ case 0x00: return "hr"; case SUBLANG_CROATIAN_CROATIA: return "hr_HR"; case SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN: return "hr_BA"; /* Serbian */ case 0x1f: return "sr"; case 0x1c: return "sr"; /* latin */ case SUBLANG_SERBIAN_LATIN: return "sr_CS"; /* latin */ case 0x09: return "sr_RS"; /* latin */ case 0x0b: return "sr_ME"; /* latin */ case 0x06: return "sr_BA"; /* latin */ case 0x1b: return "sr@cyrillic"; case SUBLANG_SERBIAN_CYRILLIC: return "sr_CS@cyrillic"; case 0x0a: return "sr_RS@cyrillic"; case 0x0c: return "sr_ME@cyrillic"; case 0x07: return "sr_BA@cyrillic"; /* Bosnian */ case 0x1e: return "bs"; case 0x1a: return "bs"; /* latin */ case SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN: return "bs_BA"; /* latin */ case 0x19: return "bs@cyrillic"; case SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC: return "bs_BA@cyrillic"; } return "hr"; case LANG_CZECH: switch (sub) { case SUBLANG_CZECH_CZECH_REPUBLIC: return "cs_CZ"; } return "cs"; case LANG_DANISH: switch (sub) { case SUBLANG_DANISH_DENMARK: return "da_DK"; } return "da"; case LANG_DARI: /* FIXME: Adjust this when such locales appear on Unix. */ switch (sub) { case SUBLANG_DARI_AFGHANISTAN: return "prs_AF"; } return "prs"; case LANG_DIVEHI: switch (sub) { case SUBLANG_DIVEHI_MALDIVES: return "dv_MV"; } return "dv"; case LANG_DUTCH: switch (sub) { case SUBLANG_DUTCH: return "nl_NL"; case SUBLANG_DUTCH_BELGIAN: /* FLEMISH, VLAAMS */ return "nl_BE"; case SUBLANG_DUTCH_SURINAM: return "nl_SR"; } return "nl"; case LANG_EDO: switch (sub) { case SUBLANG_DEFAULT: return "bin_NG"; } return "bin"; case LANG_ENGLISH: switch (sub) { /* SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. Heh. I thought * English was the language spoken in England. * Oh well. */ case SUBLANG_ENGLISH_US: return "en_US"; case SUBLANG_ENGLISH_UK: return "en_GB"; case SUBLANG_ENGLISH_AUS: return "en_AU"; case SUBLANG_ENGLISH_CAN: return "en_CA"; case SUBLANG_ENGLISH_NZ: return "en_NZ"; case SUBLANG_ENGLISH_EIRE: return "en_IE"; case SUBLANG_ENGLISH_SOUTH_AFRICA: return "en_ZA"; case SUBLANG_ENGLISH_JAMAICA: return "en_JM"; case SUBLANG_ENGLISH_CARIBBEAN: return "en_GD"; /* Grenada? */ case SUBLANG_ENGLISH_BELIZE: return "en_BZ"; case SUBLANG_ENGLISH_TRINIDAD: return "en_TT"; case SUBLANG_ENGLISH_ZIMBABWE: return "en_ZW"; case SUBLANG_ENGLISH_PHILIPPINES: return "en_PH"; case SUBLANG_ENGLISH_INDONESIA: return "en_ID"; case SUBLANG_ENGLISH_HONGKONG: return "en_HK"; case SUBLANG_ENGLISH_INDIA: return "en_IN"; case SUBLANG_ENGLISH_MALAYSIA: return "en_MY"; case SUBLANG_ENGLISH_SINGAPORE: return "en_SG"; } return "en"; case LANG_ESTONIAN: switch (sub) { case SUBLANG_ESTONIAN_ESTONIA: return "et_EE"; } return "et"; case LANG_FAEROESE: switch (sub) { case SUBLANG_FAEROESE_FAROE_ISLANDS: return "fo_FO"; } return "fo"; case LANG_FARSI: switch (sub) { case SUBLANG_FARSI_IRAN: return "fa_IR"; } return "fa"; case LANG_FINNISH: switch (sub) { case SUBLANG_FINNISH_FINLAND: return "fi_FI"; } return "fi"; case LANG_FRENCH: switch (sub) { case SUBLANG_FRENCH: return "fr_FR"; case SUBLANG_FRENCH_BELGIAN: /* WALLOON */ return "fr_BE"; case SUBLANG_FRENCH_CANADIAN: return "fr_CA"; case SUBLANG_FRENCH_SWISS: return "fr_CH"; case SUBLANG_FRENCH_LUXEMBOURG: return "fr_LU"; case SUBLANG_FRENCH_MONACO: return "fr_MC"; case SUBLANG_FRENCH_WESTINDIES: return "fr"; /* Caribbean? */ case SUBLANG_FRENCH_REUNION: return "fr_RE"; case SUBLANG_FRENCH_CONGO: return "fr_CG"; case SUBLANG_FRENCH_SENEGAL: return "fr_SN"; case SUBLANG_FRENCH_CAMEROON: return "fr_CM"; case SUBLANG_FRENCH_COTEDIVOIRE: return "fr_CI"; case SUBLANG_FRENCH_MALI: return "fr_ML"; case SUBLANG_FRENCH_MOROCCO: return "fr_MA"; case SUBLANG_FRENCH_HAITI: return "fr_HT"; } return "fr"; case LANG_FRISIAN: switch (sub) { case SUBLANG_FRISIAN_NETHERLANDS: return "fy_NL"; } return "fy"; case LANG_FULFULDE: /* Spoken in Nigeria, Guinea, Senegal, Mali, Niger, Cameroon, Benin. */ switch (sub) { case SUBLANG_DEFAULT: return "ff_NG"; } return "ff"; case LANG_GAELIC: switch (sub) { case 0x01: /* SCOTTISH */ /* old, superseded by LANG_SCOTTISH_GAELIC */ return "gd_GB"; case SUBLANG_IRISH_IRELAND: return "ga_IE"; } return "ga"; case LANG_GALICIAN: switch (sub) { case SUBLANG_GALICIAN_SPAIN: return "gl_ES"; } return "gl"; case LANG_GEORGIAN: switch (sub) { case SUBLANG_GEORGIAN_GEORGIA: return "ka_GE"; } return "ka"; case LANG_GERMAN: switch (sub) { case SUBLANG_GERMAN: return "de_DE"; case SUBLANG_GERMAN_SWISS: return "de_CH"; case SUBLANG_GERMAN_AUSTRIAN: return "de_AT"; case SUBLANG_GERMAN_LUXEMBOURG: return "de_LU"; case SUBLANG_GERMAN_LIECHTENSTEIN: return "de_LI"; } return "de"; case LANG_GREEK: switch (sub) { case SUBLANG_GREEK_GREECE: return "el_GR"; } return "el"; case LANG_GREENLANDIC: switch (sub) { case SUBLANG_GREENLANDIC_GREENLAND: return "kl_GL"; } return "kl"; case LANG_GUARANI: switch (sub) { case SUBLANG_DEFAULT: return "gn_PY"; } return "gn"; case LANG_GUJARATI: switch (sub) { case SUBLANG_GUJARATI_INDIA: return "gu_IN"; } return "gu"; case LANG_HAUSA: switch (sub) { case 0x1f: return "ha"; case SUBLANG_HAUSA_NIGERIA_LATIN: return "ha_NG"; } return "ha"; case LANG_HAWAIIAN: /* FIXME: Do they mean Hawaiian ("haw_US", 1000 speakers) or Hawaii Creole English ("cpe_US", 600000 speakers)? */ switch (sub) { case SUBLANG_DEFAULT: return "cpe_US"; } return "cpe"; case LANG_HEBREW: switch (sub) { case SUBLANG_HEBREW_ISRAEL: return "he_IL"; } return "he"; case LANG_HINDI: switch (sub) { case SUBLANG_HINDI_INDIA: return "hi_IN"; } return "hi"; case LANG_HUNGARIAN: switch (sub) { case SUBLANG_HUNGARIAN_HUNGARY: return "hu_HU"; } return "hu"; case LANG_IBIBIO: switch (sub) { case SUBLANG_DEFAULT: return "nic_NG"; } return "nic"; case LANG_ICELANDIC: switch (sub) { case SUBLANG_ICELANDIC_ICELAND: return "is_IS"; } return "is"; case LANG_IGBO: switch (sub) { case SUBLANG_IGBO_NIGERIA: return "ig_NG"; } return "ig"; case LANG_INDONESIAN: switch (sub) { case SUBLANG_INDONESIAN_INDONESIA: return "id_ID"; } return "id"; case LANG_INUKTITUT: switch (sub) { case 0x1e: return "iu"; /* syllabic */ case SUBLANG_INUKTITUT_CANADA: return "iu_CA"; /* syllabic */ case 0x1f: return "iu@latin"; case SUBLANG_INUKTITUT_CANADA_LATIN: return "iu_CA@latin"; } return "iu"; case LANG_ITALIAN: switch (sub) { case SUBLANG_ITALIAN: return "it_IT"; case SUBLANG_ITALIAN_SWISS: return "it_CH"; } return "it"; case LANG_JAPANESE: switch (sub) { case SUBLANG_JAPANESE_JAPAN: return "ja_JP"; } return "ja"; case LANG_KANNADA: switch (sub) { case SUBLANG_KANNADA_INDIA: return "kn_IN"; } return "kn"; case LANG_KANURI: switch (sub) { case SUBLANG_DEFAULT: return "kr_NG"; } return "kr"; case LANG_KASHMIRI: switch (sub) { case SUBLANG_DEFAULT: return "ks_PK"; case SUBLANG_KASHMIRI_INDIA: return "ks_IN"; } return "ks"; case LANG_KAZAK: switch (sub) { case SUBLANG_KAZAK_KAZAKHSTAN: return "kk_KZ"; } return "kk"; case LANG_KICHE: /* FIXME: Adjust this when such locales appear on Unix. */ switch (sub) { case SUBLANG_KICHE_GUATEMALA: return "qut_GT"; } return "qut"; case LANG_KINYARWANDA: switch (sub) { case SUBLANG_KINYARWANDA_RWANDA: return "rw_RW"; } return "rw"; case LANG_KONKANI: /* FIXME: Adjust this when such locales appear on Unix. */ switch (sub) { case SUBLANG_KONKANI_INDIA: return "kok_IN"; } return "kok"; case LANG_KOREAN: switch (sub) { case SUBLANG_DEFAULT: return "ko_KR"; } return "ko"; case LANG_KYRGYZ: switch (sub) { case SUBLANG_KYRGYZ_KYRGYZSTAN: return "ky_KG"; } return "ky"; case LANG_LAO: switch (sub) { case SUBLANG_LAO_LAOS: return "lo_LA"; } return "lo"; case LANG_LATIN: switch (sub) { case SUBLANG_DEFAULT: return "la_VA"; } return "la"; case LANG_LATVIAN: switch (sub) { case SUBLANG_LATVIAN_LATVIA: return "lv_LV"; } return "lv"; case LANG_LITHUANIAN: switch (sub) { case SUBLANG_LITHUANIAN_LITHUANIA: return "lt_LT"; } return "lt"; case LANG_LUXEMBOURGISH: switch (sub) { case SUBLANG_LUXEMBOURGISH_LUXEMBOURG: return "lb_LU"; } return "lb"; case LANG_MACEDONIAN: switch (sub) { case SUBLANG_MACEDONIAN_MACEDONIA: return "mk_MK"; } return "mk"; case LANG_MALAY: switch (sub) { case SUBLANG_MALAY_MALAYSIA: return "ms_MY"; case SUBLANG_MALAY_BRUNEI_DARUSSALAM: return "ms_BN"; } return "ms"; case LANG_MALAYALAM: switch (sub) { case SUBLANG_MALAYALAM_INDIA: return "ml_IN"; } return "ml"; case LANG_MALTESE: switch (sub) { case SUBLANG_MALTESE_MALTA: return "mt_MT"; } return "mt"; case LANG_MANIPURI: /* FIXME: Adjust this when such locales appear on Unix. */ switch (sub) { case SUBLANG_DEFAULT: return "mni_IN"; } return "mni"; case LANG_MAORI: switch (sub) { case SUBLANG_MAORI_NEW_ZEALAND: return "mi_NZ"; } return "mi"; case LANG_MAPUDUNGUN: switch (sub) { case SUBLANG_MAPUDUNGUN_CHILE: return "arn_CL"; } return "arn"; case LANG_MARATHI: switch (sub) { case SUBLANG_MARATHI_INDIA: return "mr_IN"; } return "mr"; case LANG_MOHAWK: switch (sub) { case SUBLANG_MOHAWK_CANADA: return "moh_CA"; } return "moh"; case LANG_MONGOLIAN: switch (sub) { case SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA: case 0x1e: return "mn_MN"; case SUBLANG_MONGOLIAN_PRC: case 0x1f: return "mn_CN"; } return "mn"; /* Ambiguous: could be "mn_CN" or "mn_MN". */ case LANG_NEPALI: switch (sub) { case SUBLANG_NEPALI_NEPAL: return "ne_NP"; case SUBLANG_NEPALI_INDIA: return "ne_IN"; } return "ne"; case LANG_NORWEGIAN: switch (sub) { case 0x1f: return "nb"; case SUBLANG_NORWEGIAN_BOKMAL: return "nb_NO"; case 0x1e: return "nn"; case SUBLANG_NORWEGIAN_NYNORSK: return "nn_NO"; } return "no"; case LANG_OCCITAN: switch (sub) { case SUBLANG_OCCITAN_FRANCE: return "oc_FR"; } return "oc"; case LANG_ORIYA: switch (sub) { case SUBLANG_ORIYA_INDIA: return "or_IN"; } return "or"; case LANG_OROMO: switch (sub) { case SUBLANG_DEFAULT: return "om_ET"; } return "om"; case LANG_PAPIAMENTU: switch (sub) { case SUBLANG_DEFAULT: return "pap_AN"; } return "pap"; case LANG_PASHTO: switch (sub) { case SUBLANG_PASHTO_AFGHANISTAN: return "ps_AF"; } return "ps"; /* Ambiguous: could be "ps_PK" or "ps_AF". */ case LANG_POLISH: switch (sub) { case SUBLANG_POLISH_POLAND: return "pl_PL"; } return "pl"; case LANG_PORTUGUESE: switch (sub) { /* Hmm. SUBLANG_PORTUGUESE_BRAZILIAN == SUBLANG_DEFAULT. Same phenomenon as SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. */ case SUBLANG_PORTUGUESE_BRAZILIAN: return "pt_BR"; case SUBLANG_PORTUGUESE: return "pt_PT"; } return "pt"; case LANG_PUNJABI: switch (sub) { case SUBLANG_PUNJABI_INDIA: return "pa_IN"; /* Gurmukhi script */ case SUBLANG_PUNJABI_PAKISTAN: return "pa_PK"; /* Arabic script */ } return "pa"; case LANG_QUECHUA: /* Note: Microsoft uses the non-ISO language code "quz". */ switch (sub) { case SUBLANG_QUECHUA_BOLIVIA: return "qu_BO"; case SUBLANG_QUECHUA_ECUADOR: return "qu_EC"; case SUBLANG_QUECHUA_PERU: return "qu_PE"; } return "qu"; case LANG_ROMANIAN: switch (sub) { case SUBLANG_ROMANIAN_ROMANIA: return "ro_RO"; case SUBLANG_ROMANIAN_MOLDOVA: return "ro_MD"; } return "ro"; case LANG_ROMANSH: switch (sub) { case SUBLANG_ROMANSH_SWITZERLAND: return "rm_CH"; } return "rm"; case LANG_RUSSIAN: switch (sub) { case SUBLANG_RUSSIAN_RUSSIA: return "ru_RU"; case SUBLANG_RUSSIAN_MOLDAVIA: return "ru_MD"; } return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA" or "ru_MD". */ case LANG_SAMI: switch (sub) { /* Northern Sami */ case 0x00: return "se"; case SUBLANG_SAMI_NORTHERN_NORWAY: return "se_NO"; case SUBLANG_SAMI_NORTHERN_SWEDEN: return "se_SE"; case SUBLANG_SAMI_NORTHERN_FINLAND: return "se_FI"; /* Lule Sami */ case 0x1f: return "smj"; case SUBLANG_SAMI_LULE_NORWAY: return "smj_NO"; case SUBLANG_SAMI_LULE_SWEDEN: return "smj_SE"; /* Southern Sami */ case 0x1e: return "sma"; case SUBLANG_SAMI_SOUTHERN_NORWAY: return "sma_NO"; case SUBLANG_SAMI_SOUTHERN_SWEDEN: return "sma_SE"; /* Skolt Sami */ case 0x1d: return "sms"; case SUBLANG_SAMI_SKOLT_FINLAND: return "sms_FI"; /* Inari Sami */ case 0x1c: return "smn"; case SUBLANG_SAMI_INARI_FINLAND: return "smn_FI"; } return "se"; /* or "smi"? */ case LANG_SANSKRIT: switch (sub) { case SUBLANG_SANSKRIT_INDIA: return "sa_IN"; } return "sa"; case LANG_SCOTTISH_GAELIC: switch (sub) { case SUBLANG_DEFAULT: return "gd_GB"; } return "gd"; case LANG_SINDHI: switch (sub) { case SUBLANG_SINDHI_INDIA: return "sd_IN"; case SUBLANG_SINDHI_PAKISTAN: return "sd_PK"; /*case SUBLANG_SINDHI_AFGHANISTAN: return "sd_AF";*/ } return "sd"; case LANG_SINHALESE: switch (sub) { case SUBLANG_SINHALESE_SRI_LANKA: return "si_LK"; } return "si"; case LANG_SLOVAK: switch (sub) { case SUBLANG_SLOVAK_SLOVAKIA: return "sk_SK"; } return "sk"; case LANG_SLOVENIAN: switch (sub) { case SUBLANG_SLOVENIAN_SLOVENIA: return "sl_SI"; } return "sl"; case LANG_SOMALI: switch (sub) { case SUBLANG_DEFAULT: return "so_SO"; } return "so"; case LANG_SORBIAN: /* FIXME: Adjust this when such locales appear on Unix. */ switch (sub) { /* Upper Sorbian */ case 0x00: return "hsb"; case SUBLANG_UPPER_SORBIAN_GERMANY: return "hsb_DE"; /* Lower Sorbian */ case 0x1f: return "dsb"; case SUBLANG_LOWER_SORBIAN_GERMANY: return "dsb_DE"; } return "wen"; case LANG_SOTHO: /* calls it "Sesotho sa Leboa"; according to it's the same as Northern Sotho. */ switch (sub) { case SUBLANG_SOTHO_SOUTH_AFRICA: return "nso_ZA"; } return "nso"; case LANG_SPANISH: switch (sub) { case SUBLANG_SPANISH: return "es_ES"; case SUBLANG_SPANISH_MEXICAN: return "es_MX"; case SUBLANG_SPANISH_MODERN: return "es_ES@modern"; /* not seen on Unix */ case SUBLANG_SPANISH_GUATEMALA: return "es_GT"; case SUBLANG_SPANISH_COSTA_RICA: return "es_CR"; case SUBLANG_SPANISH_PANAMA: return "es_PA"; case SUBLANG_SPANISH_DOMINICAN_REPUBLIC: return "es_DO"; case SUBLANG_SPANISH_VENEZUELA: return "es_VE"; case SUBLANG_SPANISH_COLOMBIA: return "es_CO"; case SUBLANG_SPANISH_PERU: return "es_PE"; case SUBLANG_SPANISH_ARGENTINA: return "es_AR"; case SUBLANG_SPANISH_ECUADOR: return "es_EC"; case SUBLANG_SPANISH_CHILE: return "es_CL"; case SUBLANG_SPANISH_URUGUAY: return "es_UY"; case SUBLANG_SPANISH_PARAGUAY: return "es_PY"; case SUBLANG_SPANISH_BOLIVIA: return "es_BO"; case SUBLANG_SPANISH_EL_SALVADOR: return "es_SV"; case SUBLANG_SPANISH_HONDURAS: return "es_HN"; case SUBLANG_SPANISH_NICARAGUA: return "es_NI"; case SUBLANG_SPANISH_PUERTO_RICO: return "es_PR"; case SUBLANG_SPANISH_US: return "es_US"; } return "es"; case LANG_SUTU: switch (sub) { case SUBLANG_DEFAULT: return "bnt_TZ"; /* or "st_LS" or "nso_ZA"? */ } return "bnt"; case LANG_SWAHILI: switch (sub) { case SUBLANG_SWAHILI_KENYA: return "sw_KE"; } return "sw"; case LANG_SWEDISH: switch (sub) { case SUBLANG_SWEDISH_SWEDEN: return "sv_SE"; case SUBLANG_SWEDISH_FINLAND: return "sv_FI"; } return "sv"; case LANG_SYRIAC: switch (sub) { case SUBLANG_SYRIAC_SYRIA: return "syr_SY"; /* An extinct language. */ } return "syr"; case LANG_TAGALOG: switch (sub) { case SUBLANG_TAGALOG_PHILIPPINES: return "tl_PH"; /* or "fil_PH"? */ } return "tl"; /* or "fil"? */ case LANG_TAJIK: switch (sub) { case 0x1f: return "tg"; case SUBLANG_TAJIK_TAJIKISTAN: return "tg_TJ"; } return "tg"; case LANG_TAMAZIGHT: /* Note: Microsoft uses the non-ISO language code "tmz". */ switch (sub) { /* FIXME: Adjust this when Tamazight locales appear on Unix. */ case SUBLANG_TAMAZIGHT_ARABIC: return "ber_MA@arabic"; case 0x1f: return "ber@latin"; case SUBLANG_TAMAZIGHT_ALGERIA_LATIN: return "ber_DZ@latin"; } return "ber"; case LANG_TAMIL: switch (sub) { case SUBLANG_TAMIL_INDIA: return "ta_IN"; } return "ta"; /* Ambiguous: could be "ta_IN" or "ta_LK" or "ta_SG". */ case LANG_TATAR: switch (sub) { case SUBLANG_TATAR_RUSSIA: return "tt_RU"; } return "tt"; case LANG_TELUGU: switch (sub) { case SUBLANG_TELUGU_INDIA: return "te_IN"; } return "te"; case LANG_THAI: switch (sub) { case SUBLANG_THAI_THAILAND: return "th_TH"; } return "th"; case LANG_TIBETAN: switch (sub) { case SUBLANG_TIBETAN_PRC: /* Most Tibetans would not like "bo_CN". But Tibet does not yet have a country code of its own. */ return "bo"; case SUBLANG_TIBETAN_BHUTAN: return "bo_BT"; } return "bo"; case LANG_TIGRINYA: switch (sub) { case SUBLANG_TIGRINYA_ETHIOPIA: return "ti_ET"; case SUBLANG_TIGRINYA_ERITREA: return "ti_ER"; } return "ti"; case LANG_TSONGA: switch (sub) { case SUBLANG_DEFAULT: return "ts_ZA"; } return "ts"; case LANG_TSWANA: /* Spoken in South Africa, Botswana. */ switch (sub) { case SUBLANG_TSWANA_SOUTH_AFRICA: return "tn_ZA"; } return "tn"; case LANG_TURKISH: switch (sub) { case SUBLANG_TURKISH_TURKEY: return "tr_TR"; } return "tr"; case LANG_TURKMEN: switch (sub) { case SUBLANG_TURKMEN_TURKMENISTAN: return "tk_TM"; } return "tk"; case LANG_UIGHUR: switch (sub) { case SUBLANG_UIGHUR_PRC: return "ug_CN"; } return "ug"; case LANG_UKRAINIAN: switch (sub) { case SUBLANG_UKRAINIAN_UKRAINE: return "uk_UA"; } return "uk"; case LANG_URDU: switch (sub) { case SUBLANG_URDU_PAKISTAN: return "ur_PK"; case SUBLANG_URDU_INDIA: return "ur_IN"; } return "ur"; case LANG_UZBEK: switch (sub) { case 0x1f: return "uz"; case SUBLANG_UZBEK_LATIN: return "uz_UZ"; case 0x1e: return "uz@cyrillic"; case SUBLANG_UZBEK_CYRILLIC: return "uz_UZ@cyrillic"; } return "uz"; case LANG_VENDA: switch (sub) { case SUBLANG_DEFAULT: return "ve_ZA"; } return "ve"; case LANG_VIETNAMESE: switch (sub) { case SUBLANG_VIETNAMESE_VIETNAM: return "vi_VN"; } return "vi"; case LANG_WELSH: switch (sub) { case SUBLANG_WELSH_UNITED_KINGDOM: return "cy_GB"; } return "cy"; case LANG_WOLOF: switch (sub) { case SUBLANG_WOLOF_SENEGAL: return "wo_SN"; } return "wo"; case LANG_XHOSA: switch (sub) { case SUBLANG_XHOSA_SOUTH_AFRICA: return "xh_ZA"; } return "xh"; case LANG_YAKUT: switch (sub) { case SUBLANG_YAKUT_RUSSIA: return "sah_RU"; } return "sah"; case LANG_YI: switch (sub) { case SUBLANG_YI_PRC: return "ii_CN"; } return "ii"; case LANG_YIDDISH: switch (sub) { case SUBLANG_DEFAULT: return "yi_IL"; } return "yi"; case LANG_YORUBA: switch (sub) { case SUBLANG_YORUBA_NIGERIA: return "yo_NG"; } return "yo"; case LANG_ZULU: switch (sub) { case SUBLANG_ZULU_SOUTH_AFRICA: return "zu_ZA"; } return "zu"; default: return "C"; } } } # if !defined IN_LIBINTL static # endif const char * gl_locale_name_from_win32_LCID (LCID lcid) { LANGID langid; /* Strip off the sorting rules, keep only the language part. */ langid = LANGIDFROMLCID (lcid); return gl_locale_name_from_win32_LANGID (langid); } # ifdef WINDOWS_NATIVE /* Two variables to interface between get_lcid and the EnumLocales callback function below. */ static LCID found_lcid; static char lname[LC_MAX * (LOCALE_NAME_MAX_LENGTH + 1) + 1]; /* Callback function for EnumLocales. */ static BOOL CALLBACK enum_locales_fn (LPTSTR locale_num_str) { char *endp; char locval[2 * LOCALE_NAME_MAX_LENGTH + 1 + 1]; LCID try_lcid = strtoul (locale_num_str, &endp, 16); if (GetLocaleInfo (try_lcid, LOCALE_SENGLANGUAGE, locval, LOCALE_NAME_MAX_LENGTH)) { strcat (locval, "_"); if (GetLocaleInfo (try_lcid, LOCALE_SENGCOUNTRY, locval + strlen (locval), LOCALE_NAME_MAX_LENGTH)) { size_t locval_len = strlen (locval); if (strncmp (locval, lname, locval_len) == 0 && (lname[locval_len] == '.' || lname[locval_len] == '\0')) { found_lcid = try_lcid; return FALSE; } } } return TRUE; } /* This lock protects the get_lcid against multiple simultaneous calls. */ gl_lock_define_initialized(static, get_lcid_lock) /* Return the Locale ID (LCID) number given the locale's name, a string, in LOCALE_NAME. This works by enumerating all the locales supported by the system, until we find one whose name matches LOCALE_NAME. */ static LCID get_lcid (const char *locale_name) { /* A simple cache. */ static LCID last_lcid; static char last_locale[1000]; /* Lock while looking for an LCID, to protect access to static variables: last_lcid, last_locale, found_lcid, and lname. */ gl_lock_lock (get_lcid_lock); if (last_lcid > 0 && strcmp (locale_name, last_locale) == 0) { gl_lock_unlock (get_lcid_lock); return last_lcid; } strncpy (lname, locale_name, sizeof (lname) - 1); lname[sizeof (lname) - 1] = '\0'; found_lcid = 0; EnumSystemLocales (enum_locales_fn, LCID_SUPPORTED); if (found_lcid > 0) { last_lcid = found_lcid; strcpy (last_locale, locale_name); } gl_lock_unlock (get_lcid_lock); return found_lcid; } # endif #endif #if HAVE_USELOCALE /* glibc, Mac OS X, Solaris 11 OpenIndiana, or Solaris 12 */ /* Simple hash set of strings. We don't want to drag in lots of hash table code here. */ # define SIZE_BITS (sizeof (size_t) * CHAR_BIT) /* A hash function for NUL-terminated char* strings using the method described by Bruno Haible. See https://www.haible.de/bruno/hashfunc.html. */ static size_t _GL_ATTRIBUTE_PURE string_hash (const void *x) { const char *s = (const char *) x; size_t h = 0; for (; *s; s++) h = *s + ((h << 9) | (h >> (SIZE_BITS - 9))); return h; } /* A hash table of fixed size. Multiple threads can access it read-only simultaneously, but only one thread can insert into it at the same time. */ /* A node in a hash bucket collision list. */ struct hash_node { struct hash_node * volatile next; char contents[FLEXIBLE_ARRAY_MEMBER]; }; # define HASH_TABLE_SIZE 257 static struct hash_node * volatile struniq_hash_table[HASH_TABLE_SIZE] /* = { NULL, ..., NULL } */; /* This lock protects the struniq_hash_table against multiple simultaneous insertions. */ gl_lock_define_initialized(static, struniq_lock) /* Store a copy of the given string in a string pool with indefinite extent. Return a pointer to this copy. */ static const char * struniq (const char *string) { size_t hashcode = string_hash (string); size_t slot = hashcode % HASH_TABLE_SIZE; size_t size; struct hash_node *new_node; struct hash_node *p; for (p = struniq_hash_table[slot]; p != NULL; p = p->next) if (strcmp (p->contents, string) == 0) return p->contents; size = strlen (string) + 1; new_node = (struct hash_node *) malloc (FLEXSIZEOF (struct hash_node, contents, size)); if (new_node == NULL) /* Out of memory. Return a statically allocated string. */ return "C"; memcpy (new_node->contents, string, size); /* Lock while inserting new_node. */ gl_lock_lock (struniq_lock); /* Check whether another thread already added the string while we were waiting on the lock. */ for (p = struniq_hash_table[slot]; p != NULL; p = p->next) if (strcmp (p->contents, string) == 0) { free (new_node); new_node = p; goto done; } /* Really insert new_node into the hash table. Fill new_node entirely first, because other threads may be iterating over the linked list. */ new_node->next = struniq_hash_table[slot]; struniq_hash_table[slot] = new_node; done: /* Unlock after new_node is inserted. */ gl_lock_unlock (struniq_lock); return new_node->contents; } #endif #if defined IN_LIBINTL || HAVE_USELOCALE /* Like gl_locale_name_thread, except that the result is not in storage of indefinite extent. */ # if !defined IN_LIBINTL static # endif const char * gl_locale_name_thread_unsafe (int category, const char *categoryname) { # if HAVE_USELOCALE { locale_t thread_locale = uselocale (NULL); if (thread_locale != LC_GLOBAL_LOCALE) { # if __GLIBC__ >= 2 && !defined __UCLIBC__ /* Work around an incorrect definition of the _NL_LOCALE_NAME macro in glibc < 2.12. See . */ const char *name = nl_langinfo (_NL_ITEM ((category), _NL_ITEM_INDEX (-1))); if (name[0] == '\0') /* Fallback code for glibc < 2.4, which did not implement nl_langinfo (_NL_LOCALE_NAME (category)). */ name = thread_locale->__names[category]; return name; # elif defined __linux__ && HAVE_LANGINFO_H && defined NL_LOCALE_NAME /* musl libc */ return nl_langinfo_l (NL_LOCALE_NAME (category), thread_locale); # elif (defined __FreeBSD__ || defined __DragonFly__) || (defined __APPLE__ && defined __MACH__) /* FreeBSD, Mac OS X */ int mask; switch (category) { case LC_CTYPE: mask = LC_CTYPE_MASK; break; case LC_NUMERIC: mask = LC_NUMERIC_MASK; break; case LC_TIME: mask = LC_TIME_MASK; break; case LC_COLLATE: mask = LC_COLLATE_MASK; break; case LC_MONETARY: mask = LC_MONETARY_MASK; break; case LC_MESSAGES: mask = LC_MESSAGES_MASK; break; default: /* We shouldn't get here. */ return ""; } return querylocale (mask, thread_locale); # elif defined __sun # if HAVE_GETLOCALENAME_L /* Solaris >= 12. */ return getlocalename_l (category, thread_locale); # else /* Solaris 11 OpenIndiana. For the internal structure of locale objects, see https://github.com/OpenIndiana/illumos-gate/blob/master/usr/src/lib/libc/port/locale/localeimpl.h */ switch (category) { case LC_CTYPE: case LC_NUMERIC: case LC_TIME: case LC_COLLATE: case LC_MONETARY: case LC_MESSAGES: return ((const char * const *) thread_locale)[category]; default: /* We shouldn't get here. */ return ""; } # endif # elif defined __CYGWIN__ /* Cygwin < 2.6 lacks uselocale and thread-local locales altogether. Cygwin <= 2.6.1 lacks NL_LOCALE_NAME, requiring peeking inside an opaque struct. */ # ifdef NL_LOCALE_NAME return nl_langinfo_l (NL_LOCALE_NAME (category), thread_locale); # else /* FIXME: Remove when we can assume new-enough Cygwin. */ struct __locale_t { char categories[7][32]; }; return ((struct __locale_t *) thread_locale)->categories[category]; # endif # elif defined __ANDROID__ return MB_CUR_MAX == 4 ? "C.UTF-8" : "C"; # endif } } # endif return NULL; } #endif const char * gl_locale_name_thread (int category, const char *categoryname) { #if HAVE_USELOCALE const char *name = gl_locale_name_thread_unsafe (category, categoryname); if (name != NULL) return struniq (name); #endif /* On WINDOWS_NATIVE, don't use GetThreadLocale() here, because when SetThreadLocale has not been called - which is a very frequent case - the value of GetThreadLocale() ignores past calls to 'setlocale'. */ return NULL; } /* XPG3 defines the result of 'setlocale (category, NULL)' as: "Directs 'setlocale()' to query 'category' and return the current setting of 'local'." However it does not specify the exact format. Neither do SUSV2 and ISO C 99. So we can use this feature only on selected systems (e.g. those using GNU C Library). */ #if defined _LIBC || ((defined __GLIBC__ && __GLIBC__ >= 2) && !defined __UCLIBC__) # define HAVE_LOCALE_NULL #endif const char * gl_locale_name_posix (int category, const char *categoryname) { #if defined WINDOWS_NATIVE if (LC_MIN <= category && category <= LC_MAX) { char *locname = setlocale (category, NULL); LCID lcid = 0; /* If CATEGORY is LC_ALL, the result might be a semi-colon separated list of locales. We need only one, so we take the one corresponding to LC_CTYPE, as the most important for character translations. */ if (category == LC_ALL && strchr (locname, ';')) locname = setlocale (LC_CTYPE, NULL); /* Convert locale name to LCID. We don't want to use LocaleNameToLCID because (a) it is only available since Vista, and (b) it doesn't accept locale names returned by 'setlocale'. */ lcid = get_lcid (locname); if (lcid > 0) return gl_locale_name_from_win32_LCID (lcid); } #endif /* Use the POSIX methods of looking to 'LC_ALL', 'LC_xxx', and 'LANG'. On some systems this can be done by the 'setlocale' function itself. */ #if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL return setlocale (category, NULL); #else /* On other systems we ignore what setlocale reports and instead look at the environment variables directly. This is necessary 1. on systems which have a facility for customizing the default locale (Mac OS X, native Windows, Cygwin) and where the system's setlocale() function ignores this default locale (Mac OS X, Cygwin), in two cases: a. when the user missed to use the setlocale() override from libintl (for example by not including ), b. when setlocale supports only the "C" locale, such as on Cygwin 1.5.x. In this case even the override from libintl cannot help. 2. on all systems where setlocale supports only the "C" locale. */ /* Strictly speaking, it is a POSIX violation to look at the environment variables regardless whether setlocale has been called or not. POSIX says: "For C-language programs, the POSIX locale shall be the default locale when the setlocale() function is not called." But we assume that all programs that use internationalized APIs call setlocale (LC_ALL, ""). */ return gl_locale_name_environ (category, categoryname); #endif } const char * gl_locale_name_environ (int category, const char *categoryname) { const char *retval; /* Setting of LC_ALL overrides all other. */ retval = getenv ("LC_ALL"); if (retval != NULL && retval[0] != '\0') return retval; /* Next comes the name of the desired category. */ retval = getenv (categoryname); if (retval != NULL && retval[0] != '\0') return retval; /* Last possibility is the LANG environment variable. */ retval = getenv ("LANG"); if (retval != NULL && retval[0] != '\0') { #if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE /* Mac OS X 10.2 or newer. Ignore invalid LANG value set by the Terminal application. */ if (strcmp (retval, "UTF-8") != 0) #endif #if defined __CYGWIN__ /* Cygwin. Ignore dummy LANG value set by ~/.profile. */ if (strcmp (retval, "C.UTF-8") != 0) #endif return retval; } return NULL; } const char * gl_locale_name_default (void) { /* POSIX:2001 says: "All implementations shall define a locale as the default locale, to be invoked when no environment variables are set, or set to the empty string. This default locale can be the POSIX locale or any other implementation-defined locale. Some implementations may provide facilities for local installation administrators to set the default locale, customizing it for each location. POSIX:2001 does not require such a facility. The systems with such a facility are Mac OS X and Windows: They provide a GUI that allows the user to choose a locale. - On Mac OS X, by default, none of LC_* or LANG are set. Starting with Mac OS X 10.4 or 10.5, LANG is set for processes launched by the 'Terminal' application (but sometimes to an incorrect value "UTF-8"). When no environment variable is set, setlocale (LC_ALL, "") uses the "C" locale. - On native Windows, by default, none of LC_* or LANG are set. When no environment variable is set, setlocale (LC_ALL, "") uses the locale chosen by the user. - On Cygwin 1.5.x, by default, none of LC_* or LANG are set. When no environment variable is set, setlocale (LC_ALL, "") uses the "C" locale. - On Cygwin 1.7, by default, LANG is set to "C.UTF-8" when the default ~/.profile is executed. When no environment variable is set, setlocale (LC_ALL, "") uses the "C.UTF-8" locale, which operates in the same way as the "C" locale. */ #if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined WINDOWS_NATIVE || defined __CYGWIN__) /* The system does not have a way of setting the locale, other than the POSIX specified environment variables. We use C as default locale. */ return "C"; #else /* Return an XPG style locale name language[_territory][@modifier]. Don't even bother determining the codeset; it's not useful in this context, because message catalogs are not specific to a single codeset. */ # if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE /* Mac OS X 10.2 or newer */ { /* Cache the locale name, since CoreFoundation calls are expensive. */ static const char *cached_localename; if (cached_localename == NULL) { char namebuf[256]; # if HAVE_CFLOCALECOPYCURRENT /* Mac OS X 10.3 or newer */ CFLocaleRef locale = CFLocaleCopyCurrent (); CFStringRef name = CFLocaleGetIdentifier (locale); if (CFStringGetCString (name, namebuf, sizeof (namebuf), kCFStringEncodingASCII)) { gl_locale_name_canonicalize (namebuf); cached_localename = strdup (namebuf); } CFRelease (locale); # elif HAVE_CFPREFERENCESCOPYAPPVALUE /* Mac OS X 10.2 or newer */ CFTypeRef value = CFPreferencesCopyAppValue (CFSTR ("AppleLocale"), kCFPreferencesCurrentApplication); if (value != NULL && CFGetTypeID (value) == CFStringGetTypeID () && CFStringGetCString ((CFStringRef)value, namebuf, sizeof (namebuf), kCFStringEncodingASCII)) { gl_locale_name_canonicalize (namebuf); cached_localename = strdup (namebuf); } # endif if (cached_localename == NULL) cached_localename = "C"; } return cached_localename; } # endif # if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */ { LCID lcid; /* Use native Windows API locale ID. */ lcid = GetThreadLocale (); return gl_locale_name_from_win32_LCID (lcid); } # endif #endif } /* Determine the current locale's name, and canonicalize it into XPG syntax language[_territory][.codeset][@modifier] The codeset part in the result is not reliable; the locale_charset() should be used for codeset information instead. The result must not be freed; it is statically allocated. */ const char * gl_locale_name (int category, const char *categoryname) { const char *retval; retval = gl_locale_name_thread (category, categoryname); if (retval != NULL) return retval; retval = gl_locale_name_posix (category, categoryname); if (retval != NULL) return retval; return gl_locale_name_default (); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/sig-handler.c0000644000000000000000000000011013726163410022506 xustar000000000000000024 mtime=1599661832.617 24 atime=1599661832.763 24 ctime=1599661999.261 libprelude-5.2.0/libmissing/tests/sig-handler.c0000644000000000000000000000013213726163410021505 0ustar00rootroot00000000000000#include #define SIG_HANDLER_INLINE _GL_EXTERN_INLINE #include "sig-handler.h" libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/fcntl.c0000644000000000000000000000010713726163410021425 xustar000000000000000023 mtime=1599661832.61 24 atime=1599661832.761 24 ctime=1599661999.264 libprelude-5.2.0/libmissing/tests/fcntl.c0000644000000000000000000002726113726163410020432 0ustar00rootroot00000000000000/* Provide file descriptor control. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake . */ #include /* Specification. */ #include #include #include #include #include #if !HAVE_FCNTL # define rpl_fcntl fcntl #endif #undef fcntl #if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif /* Upper bound on getdtablesize(). See lib/getdtablesize.c. */ # define OPEN_MAX_MAX 0x10000 /* Duplicate OLDFD into the first available slot of at least NEWFD, which must be positive, with FLAGS determining whether the duplicate will be inheritable. */ static int dupfd (int oldfd, int newfd, int flags) { /* Mingw has no way to create an arbitrary fd. Iterate until all file descriptors less than newfd are filled up. */ HANDLE curr_process = GetCurrentProcess (); HANDLE old_handle = (HANDLE) _get_osfhandle (oldfd); unsigned char fds_to_close[OPEN_MAX_MAX / CHAR_BIT]; unsigned int fds_to_close_bound = 0; int result; BOOL inherit = flags & O_CLOEXEC ? FALSE : TRUE; int mode; if (newfd < 0 || getdtablesize () <= newfd) { errno = EINVAL; return -1; } if (old_handle == INVALID_HANDLE_VALUE || (mode = setmode (oldfd, O_BINARY)) == -1) { /* oldfd is not open, or is an unassigned standard file descriptor. */ errno = EBADF; return -1; } setmode (oldfd, mode); flags |= mode; for (;;) { HANDLE new_handle; int duplicated_fd; unsigned int index; if (!DuplicateHandle (curr_process, /* SourceProcessHandle */ old_handle, /* SourceHandle */ curr_process, /* TargetProcessHandle */ (PHANDLE) &new_handle, /* TargetHandle */ (DWORD) 0, /* DesiredAccess */ inherit, /* InheritHandle */ DUPLICATE_SAME_ACCESS)) /* Options */ { switch (GetLastError ()) { case ERROR_TOO_MANY_OPEN_FILES: errno = EMFILE; break; case ERROR_INVALID_HANDLE: case ERROR_INVALID_TARGET_HANDLE: case ERROR_DIRECT_ACCESS_HANDLE: errno = EBADF; break; case ERROR_INVALID_PARAMETER: case ERROR_INVALID_FUNCTION: case ERROR_INVALID_ACCESS: errno = EINVAL; break; default: errno = EACCES; break; } result = -1; break; } duplicated_fd = _open_osfhandle ((intptr_t) new_handle, flags); if (duplicated_fd < 0) { CloseHandle (new_handle); result = -1; break; } if (newfd <= duplicated_fd) { result = duplicated_fd; break; } /* Set the bit duplicated_fd in fds_to_close[]. */ index = (unsigned int) duplicated_fd / CHAR_BIT; if (fds_to_close_bound <= index) { if (sizeof fds_to_close <= index) /* Need to increase OPEN_MAX_MAX. */ abort (); memset (fds_to_close + fds_to_close_bound, '\0', index + 1 - fds_to_close_bound); fds_to_close_bound = index + 1; } fds_to_close[index] |= 1 << ((unsigned int) duplicated_fd % CHAR_BIT); } /* Close the previous fds that turned out to be too small. */ { int saved_errno = errno; unsigned int duplicated_fd; for (duplicated_fd = 0; duplicated_fd < fds_to_close_bound * CHAR_BIT; duplicated_fd++) if ((fds_to_close[duplicated_fd / CHAR_BIT] >> (duplicated_fd % CHAR_BIT)) & 1) close (duplicated_fd); errno = saved_errno; } # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (oldfd, result); # endif return result; } #endif /* W32 */ #ifdef __KLIBC__ # define INCL_DOS # include static int klibc_fcntl (int fd, int action, /* arg */...) { va_list arg_ptr; int arg; struct stat sbuf; int result = -1; va_start (arg_ptr, action); arg = va_arg (arg_ptr, int); result = fcntl (fd, action, arg); /* EPERM for F_DUPFD, ENOTSUP for others */ if (result == -1 && (errno == EPERM || errno == ENOTSUP) && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) { ULONG ulMode; switch (action) { case F_DUPFD: /* Find available fd */ while (fcntl (arg, F_GETFL) != -1 || errno != EBADF) arg++; result = dup2 (fd, arg); break; /* Using underlying APIs is right ? */ case F_GETFD: if (DosQueryFHState (fd, &ulMode)) break; result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0; break; case F_SETFD: if (arg & ~FD_CLOEXEC) break; if (DosQueryFHState (fd, &ulMode)) break; if (arg & FD_CLOEXEC) ulMode |= OPEN_FLAGS_NOINHERIT; else ulMode &= ~OPEN_FLAGS_NOINHERIT; /* Filter supported flags. */ ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT); if (DosSetFHState (fd, ulMode)) break; result = 0; break; case F_GETFL: result = 0; break; case F_SETFL: if (arg != 0) break; result = 0; break; default : errno = EINVAL; break; } } va_end (arg_ptr); return result; } # define fcntl klibc_fcntl #endif /* Perform the specified ACTION on the file descriptor FD, possibly using the argument ARG further described below. This replacement handles the following actions, and forwards all others on to the native fcntl. An unrecognized ACTION returns -1 with errno set to EINVAL. F_DUPFD - duplicate FD, with int ARG being the minimum target fd. If successful, return the duplicate, which will be inheritable; otherwise return -1 and set errno. F_DUPFD_CLOEXEC - duplicate FD, with int ARG being the minimum target fd. If successful, return the duplicate, which will not be inheritable; otherwise return -1 and set errno. F_GETFD - ARG need not be present. If successful, return a non-negative value containing the descriptor flags of FD (only FD_CLOEXEC is portable, but other flags may be present); otherwise return -1 and set errno. */ int rpl_fcntl (int fd, int action, /* arg */...) { va_list arg; int result = -1; va_start (arg, action); switch (action) { #if !HAVE_FCNTL case F_DUPFD: { int target = va_arg (arg, int); result = dupfd (fd, target, 0); break; } #elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR case F_DUPFD: { int target = va_arg (arg, int); /* Detect invalid target; needed for cygwin 1.5.x. */ if (target < 0 || getdtablesize () <= target) errno = EINVAL; else { /* Haiku alpha 2 loses fd flags on original. */ int flags = fcntl (fd, F_GETFD); if (flags < 0) { result = -1; break; } result = fcntl (fd, action, target); if (0 <= result && fcntl (fd, F_SETFD, flags) == -1) { int saved_errno = errno; close (result); result = -1; errno = saved_errno; } # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (fd, result); # endif } break; } /* F_DUPFD */ #endif /* FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR */ case F_DUPFD_CLOEXEC: { int target = va_arg (arg, int); #if !HAVE_FCNTL result = dupfd (fd, target, O_CLOEXEC); break; #else /* HAVE_FCNTL */ /* Try the system call first, if the headers claim it exists (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we may be running with a glibc that has the macro but with an older kernel that does not support it. Cache the information on whether the system call really works, but avoid caching failure if the corresponding F_DUPFD fails for any reason. 0 = unknown, 1 = yes, -1 = no. */ static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0; if (0 <= have_dupfd_cloexec) { result = fcntl (fd, action, target); if (0 <= result || errno != EINVAL) { have_dupfd_cloexec = 1; # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (fd, result); # endif } else { result = rpl_fcntl (fd, F_DUPFD, target); if (result < 0) break; have_dupfd_cloexec = -1; } } else result = rpl_fcntl (fd, F_DUPFD, target); if (0 <= result && have_dupfd_cloexec == -1) { int flags = fcntl (result, F_GETFD); if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1) { int saved_errno = errno; close (result); errno = saved_errno; result = -1; } } break; #endif /* HAVE_FCNTL */ } /* F_DUPFD_CLOEXEC */ #if !HAVE_FCNTL case F_GETFD: { # if defined _WIN32 && ! defined __CYGWIN__ HANDLE handle = (HANDLE) _get_osfhandle (fd); DWORD flags; if (handle == INVALID_HANDLE_VALUE || GetHandleInformation (handle, &flags) == 0) errno = EBADF; else result = (flags & HANDLE_FLAG_INHERIT) ? 0 : FD_CLOEXEC; # else /* !W32 */ /* Use dup2 to reject invalid file descriptors. No way to access this information, so punt. */ if (0 <= dup2 (fd, fd)) result = 0; # endif /* !W32 */ break; } /* F_GETFD */ #endif /* !HAVE_FCNTL */ /* Implementing F_SETFD on mingw is not trivial - there is no API for changing the O_NOINHERIT bit on an fd, and merely changing the HANDLE_FLAG_INHERIT bit on the underlying handle can lead to odd state. It may be possible by duplicating the handle, using _open_osfhandle with the right flags, then using dup2 to move the duplicate onto the original, but that is not supported for now. */ default: { #if HAVE_FCNTL void *p = va_arg (arg, void *); result = fcntl (fd, action, p); #else errno = EINVAL; #endif break; } } va_end (arg); return result; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/fdopen.c0000644000000000000000000000011013726163410021564 xustar000000000000000024 mtime=1599661832.611 24 atime=1599661832.761 24 ctime=1599661999.266 libprelude-5.2.0/libmissing/tests/fdopen.c0000644000000000000000000000273013726163410020571 0ustar00rootroot00000000000000/* Open a stream with a given file descriptor. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include /* Specification. */ #include #include #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #undef fdopen #if HAVE_MSVC_INVALID_PARAMETER_HANDLER static FILE * fdopen_nothrow (int fd, const char *mode) { FILE *result; TRY_MSVC_INVAL { result = fdopen (fd, mode); } CATCH_MSVC_INVAL { result = NULL; } DONE_MSVC_INVAL; return result; } #else # define fdopen_nothrow fdopen #endif FILE * rpl_fdopen (int fd, const char *mode) { int saved_errno = errno; FILE *fp; errno = 0; fp = fdopen_nothrow (fd, mode); if (fp == NULL) { if (errno == 0) errno = EBADF; } else errno = saved_errno; return fp; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/ftruncate.c0000644000000000000000000000011013726163410022304 xustar000000000000000024 mtime=1599661832.611 24 atime=1599661832.761 24 ctime=1599661999.268 libprelude-5.2.0/libmissing/tests/ftruncate.c0000644000000000000000000001161613726163410021314 0ustar00rootroot00000000000000/* ftruncate emulations for native Windows. Copyright (C) 1992-2018 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 3, 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, see . */ #include /* Specification. */ #include #if HAVE_CHSIZE /* A native Windows platform. */ # include # if _GL_WINDOWS_64_BIT_OFF_T /* Large File Support: off_t is 64-bit, but chsize() takes only a 32-bit argument. So, define a 64-bit safe SetFileSize function ourselves. */ /* Ensure that declares GetFileSizeEx. */ # undef _WIN32_WINNT # define _WIN32_WINNT _WIN32_WINNT_WIN2K /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif static BOOL SetFileSize (HANDLE h, LONGLONG size) { LARGE_INTEGER old_size; if (!GetFileSizeEx (h, &old_size)) return FALSE; if (size != old_size.QuadPart) { /* Duplicate the handle, so we are free to modify its file position. */ HANDLE curr_process = GetCurrentProcess (); HANDLE tmph; if (!DuplicateHandle (curr_process, /* SourceProcessHandle */ h, /* SourceHandle */ curr_process, /* TargetProcessHandle */ (PHANDLE) &tmph, /* TargetHandle */ (DWORD) 0, /* DesiredAccess */ FALSE, /* InheritHandle */ DUPLICATE_SAME_ACCESS)) /* Options */ return FALSE; if (size < old_size.QuadPart) { /* Reduce the size. */ LONG size_hi = (LONG) (size >> 32); if (SetFilePointer (tmph, (LONG) size, &size_hi, FILE_BEGIN) == INVALID_SET_FILE_POINTER && GetLastError() != NO_ERROR) { CloseHandle (tmph); return FALSE; } if (!SetEndOfFile (tmph)) { CloseHandle (tmph); return FALSE; } } else { /* Increase the size by adding zero bytes at the end. */ static char zero_bytes[1024]; LONG pos_hi = 0; LONG pos_lo = SetFilePointer (tmph, (LONG) 0, &pos_hi, FILE_END); LONGLONG pos; if (pos_lo == INVALID_SET_FILE_POINTER && GetLastError() != NO_ERROR) { CloseHandle (tmph); return FALSE; } pos = ((LONGLONG) pos_hi << 32) | (ULONGLONG) (ULONG) pos_lo; while (pos < size) { DWORD written; LONGLONG count = size - pos; if (count > sizeof (zero_bytes)) count = sizeof (zero_bytes); if (!WriteFile (tmph, zero_bytes, (DWORD) count, &written, NULL) || written == 0) { CloseHandle (tmph); return FALSE; } pos += (ULONGLONG) (ULONG) written; } } /* Close the handle. */ CloseHandle (tmph); } return TRUE; } int ftruncate (int fd, off_t length) { HANDLE handle = (HANDLE) _get_osfhandle (fd); if (handle == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } if (length < 0) { errno = EINVAL; return -1; } if (!SetFileSize (handle, length)) { switch (GetLastError ()) { case ERROR_ACCESS_DENIED: errno = EACCES; break; case ERROR_HANDLE_DISK_FULL: case ERROR_DISK_FULL: case ERROR_DISK_TOO_FRAGMENTED: errno = ENOSPC; break; default: errno = EIO; break; } return -1; } return 0; } # else # include # if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" static int chsize_nothrow (int fd, long length) { int result; TRY_MSVC_INVAL { result = chsize (fd, length); } CATCH_MSVC_INVAL { result = -1; errno = EBADF; } DONE_MSVC_INVAL; return result; } # else # define chsize_nothrow chsize # endif int ftruncate (int fd, off_t length) { return chsize_nothrow (fd, length); } # endif #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/getcwd-lgpl.c0000644000000000000000000000011013726163410022522 xustar000000000000000024 mtime=1599661832.612 24 atime=1599661832.761 24 ctime=1599661999.269 libprelude-5.2.0/libmissing/tests/getcwd-lgpl.c0000644000000000000000000000606713726163410021536 0ustar00rootroot00000000000000/* Copyright (C) 2011-2018 Free Software Foundation, Inc. This file is part of gnulib. 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 3 of the License, 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, see . */ #include /* Specification */ #include #include #include #include #if GNULIB_GETCWD /* Favor GPL getcwd.c if both getcwd and getcwd-lgpl modules are in use. */ typedef int dummy; #else /* Get the name of the current working directory, and put it in SIZE bytes of BUF. Returns NULL if the directory couldn't be determined (perhaps because the absolute name was longer than PATH_MAX, or because of missing read/search permissions on parent directories) or SIZE was too small. If successful, returns BUF. If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ # undef getcwd char * rpl_getcwd (char *buf, size_t size) { char *ptr; char *result; /* Handle single size operations. */ if (buf) { if (!size) { errno = EINVAL; return NULL; } return getcwd (buf, size); } if (size) { buf = malloc (size); if (!buf) { errno = ENOMEM; return NULL; } result = getcwd (buf, size); if (!result) { int saved_errno = errno; free (buf); errno = saved_errno; } return result; } /* Flexible sizing requested. Avoid over-allocation for the common case of a name that fits within a 4k page, minus some space for local variables, to be sure we don't skip over a guard page. */ { char tmp[4032]; size = sizeof tmp; ptr = getcwd (tmp, size); if (ptr) { result = strdup (ptr); if (!result) errno = ENOMEM; return result; } if (errno != ERANGE) return NULL; } /* My what a large directory name we have. */ do { size <<= 1; ptr = realloc (buf, size); if (ptr == NULL) { free (buf); errno = ENOMEM; return NULL; } buf = ptr; result = getcwd (buf, size); } while (!result && errno == ERANGE); if (!result) { int saved_errno = errno; free (buf); errno = saved_errno; } else { /* Trim to fit, if possible. */ result = realloc (buf, strlen (buf) + 1); if (!result) result = buf; } return result; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/getdtablesize.c0000644000000000000000000000011013726163410023137 xustar000000000000000024 mtime=1599661832.612 24 atime=1599661832.761 24 ctime=1599661999.271 libprelude-5.2.0/libmissing/tests/getdtablesize.c0000644000000000000000000000654413726163410022153 0ustar00rootroot00000000000000/* getdtablesize() function: Return maximum possible file descriptor value + 1. Copyright (C) 2008-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2008. 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 3 of the License, 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, see . */ #include /* Specification. */ #include #if defined _WIN32 && ! defined __CYGWIN__ # include # if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" # endif # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int _setmaxstdio_nothrow (int newmax) { int result; TRY_MSVC_INVAL { result = _setmaxstdio (newmax); } CATCH_MSVC_INVAL { result = -1; } DONE_MSVC_INVAL; return result; } # else # define _setmaxstdio_nothrow _setmaxstdio # endif /* Cache for the previous getdtablesize () result. Safe to cache because Windows also lacks setrlimit. */ static int dtablesize; int getdtablesize (void) { if (dtablesize == 0) { /* We are looking for the number N such that the valid file descriptors are 0..N-1. It can be obtained through a loop as follows: { int fd; for (fd = 3; fd < 65536; fd++) if (dup2 (0, fd) == -1) break; return fd; } On Windows XP, the result is 2048. The drawback of this loop is that it allocates memory for a libc internal array that is never freed. The number N can also be obtained as the upper bound for _getmaxstdio (). _getmaxstdio () returns the maximum number of open FILE objects. The sanity check in _setmaxstdio reveals the maximum number of file descriptors. This too allocates memory, but it is freed when we call _setmaxstdio with the original value. */ int orig_max_stdio = _getmaxstdio (); unsigned int bound; for (bound = 0x10000; _setmaxstdio_nothrow (bound) < 0; bound = bound / 2) ; _setmaxstdio_nothrow (orig_max_stdio); dtablesize = bound; } return dtablesize; } #else # include # include # ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY # endif # ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY # endif # ifdef __CYGWIN__ /* Cygwin 1.7.25 auto-increases the RLIMIT_NOFILE soft limit until it hits the compile-time constant hard limit of 3200. We might as well just report the hard limit. */ # define rlim_cur rlim_max # endif int getdtablesize (void) { struct rlimit lim; if (getrlimit (RLIMIT_NOFILE, &lim) == 0 && 0 <= lim.rlim_cur && lim.rlim_cur <= INT_MAX && lim.rlim_cur != RLIM_INFINITY && lim.rlim_cur != RLIM_SAVED_CUR && lim.rlim_cur != RLIM_SAVED_MAX) return lim.rlim_cur; return INT_MAX; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/getpagesize.c0000644000000000000000000000011013726163410022620 xustar000000000000000024 mtime=1599661832.612 24 atime=1599661832.761 24 ctime=1599661999.273 libprelude-5.2.0/libmissing/tests/getpagesize.c0000644000000000000000000000224613726163410021627 0ustar00rootroot00000000000000/* getpagesize emulation for systems where it cannot be done in a C macro. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible and Martin Lambers. */ #include /* Specification. */ #include /* This implementation is only for native Windows systems. */ #if defined _WIN32 && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include int getpagesize (void) { SYSTEM_INFO system_info; GetSystemInfo (&system_info); return system_info.dwPageSize; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/isblank.c0000644000000000000000000000011013726163410021734 xustar000000000000000024 mtime=1599661832.613 24 atime=1599661832.762 24 ctime=1599661999.274 libprelude-5.2.0/libmissing/tests/isblank.c0000644000000000000000000000246713726163410020750 0ustar00rootroot00000000000000/* Test whether a character is a blank. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ #include /* Specification. */ #include int isblank (int c) { /* On all known platforms, in all predefined locales, isblank(c) is likely equivalent with (c == ' ' || c == '\t'). Look at the glibc definition (in glibc/localedata/locales/i18n): The "blank" characters are '\t', ' ', U+1680, U+180E, U+2000..U+2006, U+2008..U+200A, U+205F, U+3000, and none except the first two is present in a common 8-bit encoding. Therefore the substitute for other platforms is not more complicated than this. */ return (c == ' ' || c == '\t'); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/lstat.c0000644000000000000000000000011013726163410021440 xustar000000000000000024 mtime=1599661832.615 24 atime=1599661832.762 24 ctime=1599661999.276 libprelude-5.2.0/libmissing/tests/lstat.c0000644000000000000000000000712513726163410020450 0ustar00rootroot00000000000000/* Work around a bug of lstat on some systems Copyright (C) 1997-2006, 2008-2018 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 3 of the License, 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, see . */ /* written by Jim Meyering */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_lstat doesn't recurse to rpl_lstat. */ #define __need_system_sys_stat_h #include #if !HAVE_LSTAT /* On systems that lack symlinks, our replacement already defined lstat as stat, so there is nothing further to do other than avoid an empty file. */ typedef int dummy; #else /* HAVE_LSTAT */ /* Get the original definition of lstat. It might be defined as a macro. */ # include # include # undef __need_system_sys_stat_h static int orig_lstat (const char *filename, struct stat *buf) { return lstat (filename, buf); } /* Specification. */ /* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ # include "sys/stat.h" # include "stat-time.h" # include # include /* lstat works differently on Linux and Solaris systems. POSIX (see "pathname resolution" in the glossary) requires that programs like 'ls' take into consideration the fact that FILE has a trailing slash when FILE is a symbolic link. On Linux and Solaris 10 systems, the lstat function already has the desired semantics (in treating 'lstat ("symlink/", sbuf)' just like 'lstat ("symlink/.", sbuf)', but on Solaris 9 and earlier it does not. If FILE has a trailing slash and specifies a symbolic link, then use stat() to get more info on the referent of FILE. If the referent is a non-directory, then set errno to ENOTDIR and return -1. Otherwise, return stat's result. */ int rpl_lstat (const char *file, struct stat *sbuf) { int result = orig_lstat (file, sbuf); /* This replacement file can blindly check against '/' rather than using the ISSLASH macro, because all platforms with '\\' either lack symlinks (mingw) or have working lstat (cygwin) and thus do not compile this file. 0 len should have already been filtered out above, with a failure return of ENOENT. */ if (result == 0) { if (S_ISDIR (sbuf->st_mode) || file[strlen (file) - 1] != '/') result = stat_time_normalize (result, sbuf); else { /* At this point, a trailing slash is permitted only on symlink-to-dir; but it should have found information on the directory, not the symlink. Call 'stat' to get info about the link's referent. Our replacement stat guarantees valid results, even if the symlink is not pointing to a directory. */ if (!S_ISLNK (sbuf->st_mode)) { errno = ENOTDIR; return -1; } result = stat (file, sbuf); } } return result; } #endif /* HAVE_LSTAT */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/nanosleep.c0000644000000000000000000000011013726163410022275 xustar000000000000000024 mtime=1599661832.615 24 atime=1599661832.762 24 ctime=1599661999.278 libprelude-5.2.0/libmissing/tests/nanosleep.c0000644000000000000000000001775713726163410021321 0ustar00rootroot00000000000000/* Provide a replacement for the POSIX nanosleep function. Copyright (C) 1999-2000, 2002, 2004-2018 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 3 of the License, 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, see . */ /* written by Jim Meyering and Bruno Haible for the native Windows part */ #include #include #include "intprops.h" #include "sig-handler.h" #include "verify.h" #include #include #include #include #include #include #include #include enum { BILLION = 1000 * 1000 * 1000 }; #if HAVE_BUG_BIG_NANOSLEEP int nanosleep (const struct timespec *requested_delay, struct timespec *remaining_delay) # undef nanosleep { /* nanosleep mishandles large sleeps due to internal overflow problems. The worst known case of this is Linux 2.6.9 with glibc 2.3.4, which can't sleep more than 24.85 days (2^31 milliseconds). Similarly, cygwin 1.5.x, which can't sleep more than 49.7 days (2^32 milliseconds). Solve this by breaking the sleep up into smaller chunks. */ if (requested_delay->tv_nsec < 0 || BILLION <= requested_delay->tv_nsec) { errno = EINVAL; return -1; } { /* Verify that time_t is large enough. */ verify (TYPE_MAXIMUM (time_t) / 24 / 24 / 60 / 60); const time_t limit = 24 * 24 * 60 * 60; time_t seconds = requested_delay->tv_sec; struct timespec intermediate; intermediate.tv_nsec = requested_delay->tv_nsec; while (limit < seconds) { int result; intermediate.tv_sec = limit; result = nanosleep (&intermediate, remaining_delay); seconds -= limit; if (result) { if (remaining_delay) remaining_delay->tv_sec += seconds; return result; } intermediate.tv_nsec = 0; } intermediate.tv_sec = seconds; return nanosleep (&intermediate, remaining_delay); } } #elif defined _WIN32 && ! defined __CYGWIN__ /* Native Windows platforms. */ # define WIN32_LEAN_AND_MEAN # include /* The Windows API function Sleep() has a resolution of about 15 ms and takes at least 5 ms to execute. We use this function for longer time periods. Additionally, we use busy-looping over short time periods, to get a resolution of about 0.01 ms. In order to measure such short timespans, we use the QueryPerformanceCounter() function. */ int nanosleep (const struct timespec *requested_delay, struct timespec *remaining_delay) { static bool initialized; /* Number of performance counter increments per nanosecond, or zero if it could not be determined. */ static double ticks_per_nanosecond; if (requested_delay->tv_nsec < 0 || BILLION <= requested_delay->tv_nsec) { errno = EINVAL; return -1; } /* For requested delays of one second or more, 15ms resolution is sufficient. */ if (requested_delay->tv_sec == 0) { if (!initialized) { /* Initialize ticks_per_nanosecond. */ LARGE_INTEGER ticks_per_second; if (QueryPerformanceFrequency (&ticks_per_second)) ticks_per_nanosecond = (double) ticks_per_second.QuadPart / 1000000000.0; initialized = true; } if (ticks_per_nanosecond) { /* QueryPerformanceFrequency worked. We can use QueryPerformanceCounter. Use a combination of Sleep and busy-looping. */ /* Number of milliseconds to pass to the Sleep function. Since Sleep can take up to 8 ms less or 8 ms more than requested (or maybe more if the system is loaded), we subtract 10 ms. */ int sleep_millis = (int) requested_delay->tv_nsec / 1000000 - 10; /* Determine how many ticks to delay. */ LONGLONG wait_ticks = requested_delay->tv_nsec * ticks_per_nanosecond; /* Start. */ LARGE_INTEGER counter_before; if (QueryPerformanceCounter (&counter_before)) { /* Wait until the performance counter has reached this value. We don't need to worry about overflow, because the performance counter is reset at reboot, and with a frequency of 3.6E6 ticks per second 63 bits suffice for over 80000 years. */ LONGLONG wait_until = counter_before.QuadPart + wait_ticks; /* Use Sleep for the longest part. */ if (sleep_millis > 0) Sleep (sleep_millis); /* Busy-loop for the rest. */ for (;;) { LARGE_INTEGER counter_after; if (!QueryPerformanceCounter (&counter_after)) /* QueryPerformanceCounter failed, but succeeded earlier. Should not happen. */ break; if (counter_after.QuadPart >= wait_until) /* The requested time has elapsed. */ break; } goto done; } } } /* Implementation for long delays and as fallback. */ Sleep (requested_delay->tv_sec * 1000 + requested_delay->tv_nsec / 1000000); done: /* Sleep is not interruptible. So there is no remaining delay. */ if (remaining_delay != NULL) { remaining_delay->tv_sec = 0; remaining_delay->tv_nsec = 0; } return 0; } #else /* Unix platforms lacking nanosleep. */ /* Some systems (MSDOS) don't have SIGCONT. Using SIGTERM here turns the signal-handling code below into a no-op on such systems. */ # ifndef SIGCONT # define SIGCONT SIGTERM # endif static sig_atomic_t volatile suspended; /* Handle SIGCONT. */ static void sighandler (int sig) { suspended = 1; } /* Suspend execution for at least *TS_DELAY seconds. */ static int my_usleep (const struct timespec *ts_delay) { struct timeval tv_delay; tv_delay.tv_sec = ts_delay->tv_sec; tv_delay.tv_usec = (ts_delay->tv_nsec + 999) / 1000; if (tv_delay.tv_usec == 1000000) { if (tv_delay.tv_sec == TYPE_MAXIMUM (time_t)) tv_delay.tv_usec = 1000000 - 1; /* close enough */ else { tv_delay.tv_sec++; tv_delay.tv_usec = 0; } } return select (0, NULL, NULL, NULL, &tv_delay); } /* Suspend execution for at least *REQUESTED_DELAY seconds. The *REMAINING_DELAY part isn't implemented yet. */ int nanosleep (const struct timespec *requested_delay, struct timespec *remaining_delay) { static bool initialized; if (requested_delay->tv_nsec < 0 || BILLION <= requested_delay->tv_nsec) { errno = EINVAL; return -1; } /* set up sig handler */ if (! initialized) { struct sigaction oldact; sigaction (SIGCONT, NULL, &oldact); if (get_handler (&oldact) != SIG_IGN) { struct sigaction newact; newact.sa_handler = sighandler; sigemptyset (&newact.sa_mask); newact.sa_flags = 0; sigaction (SIGCONT, &newact, NULL); } initialized = true; } suspended = 0; if (my_usleep (requested_delay) == -1) { if (suspended) { /* Calculate time remaining. */ /* FIXME: the code in sleep doesn't use this, so there's no rush to implement it. */ errno = EINTR; } return -1; } /* FIXME: Restore sig handler? */ return 0; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/open.c0000644000000000000000000000010713726163410021260 xustar000000000000000024 mtime=1599661832.616 24 atime=1599661832.763 23 ctime=1599661999.28 libprelude-5.2.0/libmissing/tests/open.c0000644000000000000000000001504713726163410020264 0ustar00rootroot00000000000000/* Open a descriptor to a file. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_open doesn't recurse to rpl_open. */ #define __need_system_fcntl_h #include /* Get the original definition of open. It might be defined as a macro. */ #include #include #undef __need_system_fcntl_h static int orig_open (const char *filename, int flags, mode_t mode) { return open (filename, flags, mode); } /* Specification. */ /* Write "fcntl.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ #include "fcntl.h" #include "cloexec.h" #include #include #include #include #include #include #ifndef REPLACE_OPEN_DIRECTORY # define REPLACE_OPEN_DIRECTORY 0 #endif int open (const char *filename, int flags, ...) { /* 0 = unknown, 1 = yes, -1 = no. */ #if GNULIB_defined_O_CLOEXEC int have_cloexec = -1; #else static int have_cloexec; #endif mode_t mode; int fd; mode = 0; if (flags & O_CREAT) { va_list arg; va_start (arg, flags); /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 creates crashing code when 'mode_t' is smaller than 'int'. */ mode = va_arg (arg, PROMOTED_MODE_T); va_end (arg); } #if GNULIB_defined_O_NONBLOCK /* The only known platform that lacks O_NONBLOCK is mingw, but it also lacks named pipes and Unix sockets, which are the only two file types that require non-blocking handling in open(). Therefore, it is safe to ignore O_NONBLOCK here. It is handy that mingw also lacks openat(), so that is also covered here. */ flags &= ~O_NONBLOCK; #endif #if defined _WIN32 && ! defined __CYGWIN__ if (strcmp (filename, "/dev/null") == 0) filename = "NUL"; #endif #if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and one of O_CREAT, O_WRONLY, O_RDWR is specified, then fail. Rationale: POSIX says that "A pathname that contains at least one non-slash character and that ends with one or more trailing slashes shall be resolved as if a single dot character ( '.' ) were appended to the pathname." and "The special filename dot shall refer to the directory specified by its predecessor." If the named file already exists as a directory, then - if O_CREAT is specified, open() must fail because of the semantics of O_CREAT, - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX says that it fails with errno = EISDIR in this case. If the named file does not exist or does not name a directory, then - if O_CREAT is specified, open() must fail since open() cannot create directories, - if O_WRONLY or O_RDWR is specified, open() must fail because the file does not contain a '.' directory. */ if (flags & (O_CREAT | O_WRONLY | O_RDWR)) { size_t len = strlen (filename); if (len > 0 && filename[len - 1] == '/') { errno = EISDIR; return -1; } } #endif fd = orig_open (filename, flags & ~(have_cloexec <= 0 ? O_CLOEXEC : 0), mode); if (flags & O_CLOEXEC) { if (! have_cloexec) { if (0 <= fd) have_cloexec = 1; else if (errno == EINVAL) { fd = orig_open (filename, flags & ~O_CLOEXEC, mode); have_cloexec = -1; } } if (have_cloexec < 0 && 0 <= fd) set_cloexec_flag (fd, true); } #if REPLACE_FCHDIR /* Implementing fchdir and fdopendir requires the ability to open a directory file descriptor. If open doesn't support that (as on mingw), we use a dummy file that behaves the same as directories on Linux (ie. always reports EOF on attempts to read()), and override fstat() in fchdir.c to hide the fact that we have a dummy. */ if (REPLACE_OPEN_DIRECTORY && fd < 0 && errno == EACCES && ((flags & O_ACCMODE) == O_RDONLY || (O_SEARCH != O_RDONLY && (flags & O_ACCMODE) == O_SEARCH))) { struct stat statbuf; if (stat (filename, &statbuf) == 0 && S_ISDIR (statbuf.st_mode)) { /* Maximum recursion depth of 1. */ fd = open ("/dev/null", flags, mode); if (0 <= fd) fd = _gl_register_fd (fd, filename); } else errno = EACCES; } #endif #if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and fd does not refer to a directory, then fail. Rationale: POSIX says that "A pathname that contains at least one non-slash character and that ends with one or more trailing slashes shall be resolved as if a single dot character ( '.' ) were appended to the pathname." and "The special filename dot shall refer to the directory specified by its predecessor." If the named file without the slash is not a directory, open() must fail with ENOTDIR. */ if (fd >= 0) { /* We know len is positive, since open did not fail with ENOENT. */ size_t len = strlen (filename); if (filename[len - 1] == '/') { struct stat statbuf; if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) { close (fd); errno = ENOTDIR; return -1; } } } #endif #if REPLACE_FCHDIR if (!REPLACE_OPEN_DIRECTORY && 0 <= fd) fd = _gl_register_fd (fd, filename); #endif return fd; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/pipe.c0000644000000000000000000000011013726163410021246 xustar000000000000000024 mtime=1599661832.616 24 atime=1599661832.763 24 ctime=1599661999.281 libprelude-5.2.0/libmissing/tests/pipe.c0000644000000000000000000000247513726163410020261 0ustar00rootroot00000000000000/* Create a pipe. Copyright (C) 2009-2018 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 3, 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, see . */ #include /* Specification. */ #include #if defined _WIN32 && ! defined __CYGWIN__ /* Native Windows API. */ /* Get _pipe(). */ # include /* Get _O_BINARY. */ # include int pipe (int fd[2]) { /* Mingw changes fd to {-1,-1} on failure, but this violates http://austingroupbugs.net/view.php?id=467 */ int tmp[2]; int result = _pipe (tmp, 4096, _O_BINARY); if (!result) { fd[0] = tmp[0]; fd[1] = tmp[1]; } return result; } #else # error "This platform lacks a pipe function, and Gnulib doesn't provide a replacement. This is a bug in Gnulib." #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/putenv.c0000644000000000000000000000011013726163410021632 xustar000000000000000024 mtime=1599661832.616 24 atime=1599661832.763 24 ctime=1599661999.283 libprelude-5.2.0/libmissing/tests/putenv.c0000644000000000000000000001170613726163410020642 0ustar00rootroot00000000000000/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2018 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. 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 3 of the License, or 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, see . */ #include /* Specification. */ #include #include /* Include errno.h *after* sys/types.h to work around header problems on AIX 3.2.5. */ #include #ifndef __set_errno # define __set_errno(ev) ((errno) = (ev)) #endif #include #include #if defined _WIN32 && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include #endif #if _LIBC # if HAVE_GNU_LD # define environ __environ # else extern char **environ; # endif #endif #if _LIBC /* This lock protects against simultaneous modifications of 'environ'. */ # include __libc_lock_define_initialized (static, envlock) # define LOCK __libc_lock_lock (envlock) # define UNLOCK __libc_lock_unlock (envlock) #else # define LOCK # define UNLOCK #endif static int _unsetenv (const char *name) { size_t len; #if !HAVE_DECL__PUTENV char **ep; #endif if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) { __set_errno (EINVAL); return -1; } len = strlen (name); #if HAVE_DECL__PUTENV { int putenv_result, putenv_errno; char *name_ = malloc (len + 2); memcpy (name_, name, len); name_[len] = '='; name_[len + 1] = 0; putenv_result = _putenv (name_); putenv_errno = errno; free (name_); __set_errno (putenv_errno); return putenv_result; } #else LOCK; ep = environ; while (*ep != NULL) if (!strncmp (*ep, name, len) && (*ep)[len] == '=') { /* Found it. Remove this pointer by moving later ones back. */ char **dp = ep; do dp[0] = dp[1]; while (*dp++); /* Continue the loop in case NAME appears again. */ } else ++ep; UNLOCK; return 0; #endif } /* Put STRING, which is of the form "NAME=VALUE", in the environment. If STRING contains no '=', then remove STRING from the environment. */ int putenv (char *string) { const char *name_end = strchr (string, '='); char **ep; if (name_end == NULL) { /* Remove the variable from the environment. */ return _unsetenv (string); } #if HAVE_DECL__PUTENV /* Rely on _putenv to allocate the new environment. If other parts of the application use _putenv, the !HAVE_DECL__PUTENV code would fight over who owns the environ vector, causing a crash. */ if (name_end[1]) return _putenv (string); else { /* _putenv ("NAME=") unsets NAME, so invoke _putenv ("NAME= ") to allocate the environ vector and then replace the new entry with "NAME=". */ int putenv_result, putenv_errno; char *name_x = malloc (name_end - string + sizeof "= "); if (!name_x) return -1; memcpy (name_x, string, name_end - string + 1); name_x[name_end - string + 1] = ' '; name_x[name_end - string + 2] = 0; putenv_result = _putenv (name_x); putenv_errno = errno; for (ep = environ; *ep; ep++) if (strcmp (*ep, name_x) == 0) { *ep = string; break; } # if defined _WIN32 && ! defined __CYGWIN__ if (putenv_result == 0) { /* _putenv propagated "NAME= " into the subprocess environment; fix that by calling SetEnvironmentVariable directly. */ name_x[name_end - string] = 0; putenv_result = SetEnvironmentVariable (name_x, "") ? 0 : -1; putenv_errno = ENOMEM; /* ENOMEM is the only way to fail. */ } # endif free (name_x); __set_errno (putenv_errno); return putenv_result; } #else for (ep = environ; *ep; ep++) if (strncmp (*ep, string, name_end - string) == 0 && (*ep)[name_end - string] == '=') break; if (*ep) *ep = string; else { static char **last_environ = NULL; size_t size = ep - environ; char **new_environ = malloc ((size + 2) * sizeof *new_environ); if (! new_environ) return -1; new_environ[0] = string; memcpy (new_environ + 1, environ, (size + 1) * sizeof *new_environ); free (last_environ); last_environ = new_environ; environ = new_environ; } return 0; #endif } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/setenv.c0000644000000000000000000000011013726163410021615 xustar000000000000000024 mtime=1599661832.617 24 atime=1599661832.763 24 ctime=1599661999.285 libprelude-5.2.0/libmissing/tests/setenv.c0000644000000000000000000002502713726163410020626 0ustar00rootroot00000000000000/* Copyright (C) 1992, 1995-2003, 2005-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 of the License, 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, see . */ #if !_LIBC /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the name == NULL test below. */ # define _GL_ARG_NONNULL(params) # define _GL_USE_STDLIB_ALLOC 1 # include #endif #include /* Specification. */ #include #include #ifndef __set_errno # define __set_errno(ev) ((errno) = (ev)) #endif #include #if _LIBC || HAVE_UNISTD_H # include #endif #if !_LIBC # include "malloca.h" #endif #if _LIBC || !HAVE_SETENV #if !_LIBC # define __environ environ #endif #if _LIBC /* This lock protects against simultaneous modifications of 'environ'. */ # include __libc_lock_define_initialized (static, envlock) # define LOCK __libc_lock_lock (envlock) # define UNLOCK __libc_lock_unlock (envlock) #else # define LOCK # define UNLOCK #endif /* In the GNU C library we must keep the namespace clean. */ #ifdef _LIBC # define setenv __setenv # define clearenv __clearenv # define tfind __tfind # define tsearch __tsearch #endif /* In the GNU C library implementation we try to be more clever and allow arbitrarily many changes of the environment given that the used values are from a small set. Outside glibc this will eat up all memory after a while. */ #if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \ && defined __GNUC__) # define USE_TSEARCH 1 # include typedef int (*compar_fn_t) (const void *, const void *); /* This is a pointer to the root of the search tree with the known values. */ static void *known_values; # define KNOWN_VALUE(Str) \ ({ \ void *value = tfind (Str, &known_values, (compar_fn_t) strcmp); \ value != NULL ? *(char **) value : NULL; \ }) # define STORE_VALUE(Str) \ tsearch (Str, &known_values, (compar_fn_t) strcmp) #else # undef USE_TSEARCH # define KNOWN_VALUE(Str) NULL # define STORE_VALUE(Str) do { } while (0) #endif /* If this variable is not a null pointer we allocated the current environment. */ static char **last_environ; /* This function is used by 'setenv' and 'putenv'. The difference between the two functions is that for the former must create a new string which is then placed in the environment, while the argument of 'putenv' must be used directly. This is all complicated by the fact that we try to reuse values once generated for a 'setenv' call since we can never free the strings. */ int __add_to_environ (const char *name, const char *value, const char *combined, int replace) { char **ep; size_t size; const size_t namelen = strlen (name); const size_t vallen = value != NULL ? strlen (value) + 1 : 0; LOCK; /* We have to get the pointer now that we have the lock and not earlier since another thread might have created a new environment. */ ep = __environ; size = 0; if (ep != NULL) { for (; *ep != NULL; ++ep) if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=') break; else ++size; } if (ep == NULL || *ep == NULL) { char **new_environ; #ifdef USE_TSEARCH char *new_value; #endif /* We allocated this space; we can extend it. */ new_environ = (char **) (last_environ == NULL ? malloc ((size + 2) * sizeof (char *)) : realloc (last_environ, (size + 2) * sizeof (char *))); if (new_environ == NULL) { /* It's easier to set errno to ENOMEM than to rely on the 'malloc-posix' and 'realloc-posix' gnulib modules. */ __set_errno (ENOMEM); UNLOCK; return -1; } /* If the whole entry is given add it. */ if (combined != NULL) /* We must not add the string to the search tree since it belongs to the user. */ new_environ[size] = (char *) combined; else { /* See whether the value is already known. */ #ifdef USE_TSEARCH # ifdef _LIBC new_value = (char *) alloca (namelen + 1 + vallen); __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), value, vallen); # else new_value = (char *) malloca (namelen + 1 + vallen); if (new_value == NULL) { __set_errno (ENOMEM); UNLOCK; return -1; } memcpy (new_value, name, namelen); new_value[namelen] = '='; memcpy (&new_value[namelen + 1], value, vallen); # endif new_environ[size] = KNOWN_VALUE (new_value); if (new_environ[size] == NULL) #endif { new_environ[size] = (char *) malloc (namelen + 1 + vallen); if (new_environ[size] == NULL) { #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif __set_errno (ENOMEM); UNLOCK; return -1; } #ifdef USE_TSEARCH memcpy (new_environ[size], new_value, namelen + 1 + vallen); #else memcpy (new_environ[size], name, namelen); new_environ[size][namelen] = '='; memcpy (&new_environ[size][namelen + 1], value, vallen); #endif /* And save the value now. We cannot do this when we remove the string since then we cannot decide whether it is a user string or not. */ STORE_VALUE (new_environ[size]); } #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif } if (__environ != last_environ) memcpy ((char *) new_environ, (char *) __environ, size * sizeof (char *)); new_environ[size + 1] = NULL; last_environ = __environ = new_environ; } else if (replace) { char *np; /* Use the user string if given. */ if (combined != NULL) np = (char *) combined; else { #ifdef USE_TSEARCH char *new_value; # ifdef _LIBC new_value = alloca (namelen + 1 + vallen); __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), value, vallen); # else new_value = malloca (namelen + 1 + vallen); if (new_value == NULL) { __set_errno (ENOMEM); UNLOCK; return -1; } memcpy (new_value, name, namelen); new_value[namelen] = '='; memcpy (&new_value[namelen + 1], value, vallen); # endif np = KNOWN_VALUE (new_value); if (np == NULL) #endif { np = (char *) malloc (namelen + 1 + vallen); if (np == NULL) { #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif __set_errno (ENOMEM); UNLOCK; return -1; } #ifdef USE_TSEARCH memcpy (np, new_value, namelen + 1 + vallen); #else memcpy (np, name, namelen); np[namelen] = '='; memcpy (&np[namelen + 1], value, vallen); #endif /* And remember the value. */ STORE_VALUE (np); } #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif } *ep = np; } UNLOCK; return 0; } int setenv (const char *name, const char *value, int replace) { if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) { __set_errno (EINVAL); return -1; } return __add_to_environ (name, value, NULL, replace); } /* The 'clearenv' was planned to be added to POSIX.1 but probably never made it. Nevertheless the POSIX.9 standard (POSIX bindings for Fortran 77) requires this function. */ int clearenv (void) { LOCK; if (__environ == last_environ && __environ != NULL) { /* We allocated this environment so we can free it. */ free (__environ); last_environ = NULL; } /* Clear the environment pointer removes the whole environment. */ __environ = NULL; UNLOCK; return 0; } #ifdef _LIBC static void free_mem (void) { /* Remove all traces. */ clearenv (); /* Now remove the search tree. */ __tdestroy (known_values, free); known_values = NULL; } text_set_element (__libc_subfreeres, free_mem); # undef setenv # undef clearenv weak_alias (__setenv, setenv) weak_alias (__clearenv, clearenv) #endif #endif /* _LIBC || !HAVE_SETENV */ /* The rest of this file is called into use when replacing an existing but buggy setenv. Known bugs include failure to diagnose invalid name, and consuming a leading '=' from value. */ #if HAVE_SETENV # undef setenv # if !HAVE_DECL_SETENV extern int setenv (const char *, const char *, int); # endif # define STREQ(a, b) (strcmp (a, b) == 0) int rpl_setenv (const char *name, const char *value, int replace) { int result; if (!name || !*name || strchr (name, '=')) { errno = EINVAL; return -1; } /* Call the real setenv even if replace is 0, in case implementation has underlying data to update, such as when environ changes. */ result = setenv (name, value, replace); if (result == 0 && replace && *value == '=') { char *tmp = getenv (name); if (!STREQ (tmp, value)) { int saved_errno; size_t len = strlen (value); tmp = malloca (len + 2); /* Since leading '=' is eaten, double it up. */ *tmp = '='; memcpy (tmp + 1, value, len + 1); result = setenv (name, tmp, replace); saved_errno = errno; freea (tmp); errno = saved_errno; } } return result; } #endif /* HAVE_SETENV */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/setlocale.c0000644000000000000000000000011013726163410022264 xustar000000000000000024 mtime=1599661832.617 24 atime=1599661832.763 24 ctime=1599661999.286 libprelude-5.2.0/libmissing/tests/setlocale.c0000644000000000000000000007033013726163410021272 0ustar00rootroot00000000000000/* Set the current locale. -*- coding: utf-8 -*- Copyright (C) 2009, 2011-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2009. */ #include /* Override setlocale() so that when the default locale is requested (locale = ""), the environment variables LC_ALL, LC_*, and LANG are considered. Also include all the functionality from libintl's setlocale() override. */ /* Please keep this file in sync with gettext/gettext-runtime/intl/setlocale.c ! */ /* Specification. */ #include #include #include #include "localename.h" #if 1 # undef setlocale /* Return string representation of locale category CATEGORY. */ static const char * category_to_name (int category) { const char *retval; switch (category) { case LC_COLLATE: retval = "LC_COLLATE"; break; case LC_CTYPE: retval = "LC_CTYPE"; break; case LC_MONETARY: retval = "LC_MONETARY"; break; case LC_NUMERIC: retval = "LC_NUMERIC"; break; case LC_TIME: retval = "LC_TIME"; break; case LC_MESSAGES: retval = "LC_MESSAGES"; break; default: /* If you have a better idea for a default value let me know. */ retval = "LC_XXX"; } return retval; } # if defined _WIN32 && ! defined __CYGWIN__ /* The native Windows setlocale() function expects locale names of the form "German" or "German_Germany" or "DEU", but not "de" or "de_DE". We need to convert the names from the form with ISO 639 language code and ISO 3166 country code to the form with English names or with three-letter identifier. The three-letter identifiers known by a Windows XP SP2 or SP3 are: AFK Afrikaans_South Africa.1252 ARA Arabic_Saudi Arabia.1256 ARB Arabic_Lebanon.1256 ARE Arabic_Egypt.1256 ARG Arabic_Algeria.1256 ARH Arabic_Bahrain.1256 ARI Arabic_Iraq.1256 ARJ Arabic_Jordan.1256 ARK Arabic_Kuwait.1256 ARL Arabic_Libya.1256 ARM Arabic_Morocco.1256 ARO Arabic_Oman.1256 ARQ Arabic_Qatar.1256 ARS Arabic_Syria.1256 ART Arabic_Tunisia.1256 ARU Arabic_U.A.E..1256 ARY Arabic_Yemen.1256 AZE Azeri (Latin)_Azerbaijan.1254 BEL Belarusian_Belarus.1251 BGR Bulgarian_Bulgaria.1251 BSB Bosnian_Bosnia and Herzegovina.1250 BSC Bosnian (Cyrillic)_Bosnia and Herzegovina.1250 (wrong encoding!) CAT Catalan_Spain.1252 CHH Chinese_Hong Kong S.A.R..950 CHI Chinese_Singapore.936 CHS Chinese_People's Republic of China.936 CHT Chinese_Taiwan.950 CSY Czech_Czech Republic.1250 CYM Welsh_United Kingdom.1252 DAN Danish_Denmark.1252 DEA German_Austria.1252 DEC German_Liechtenstein.1252 DEL German_Luxembourg.1252 DES German_Switzerland.1252 DEU German_Germany.1252 ELL Greek_Greece.1253 ENA English_Australia.1252 ENB English_Caribbean.1252 ENC English_Canada.1252 ENG English_United Kingdom.1252 ENI English_Ireland.1252 ENJ English_Jamaica.1252 ENL English_Belize.1252 ENP English_Republic of the Philippines.1252 ENS English_South Africa.1252 ENT English_Trinidad and Tobago.1252 ENU English_United States.1252 ENW English_Zimbabwe.1252 ENZ English_New Zealand.1252 ESA Spanish_Panama.1252 ESB Spanish_Bolivia.1252 ESC Spanish_Costa Rica.1252 ESD Spanish_Dominican Republic.1252 ESE Spanish_El Salvador.1252 ESF Spanish_Ecuador.1252 ESG Spanish_Guatemala.1252 ESH Spanish_Honduras.1252 ESI Spanish_Nicaragua.1252 ESL Spanish_Chile.1252 ESM Spanish_Mexico.1252 ESN Spanish_Spain.1252 ESO Spanish_Colombia.1252 ESP Spanish_Spain.1252 ESR Spanish_Peru.1252 ESS Spanish_Argentina.1252 ESU Spanish_Puerto Rico.1252 ESV Spanish_Venezuela.1252 ESY Spanish_Uruguay.1252 ESZ Spanish_Paraguay.1252 ETI Estonian_Estonia.1257 EUQ Basque_Spain.1252 FAR Farsi_Iran.1256 FIN Finnish_Finland.1252 FOS Faroese_Faroe Islands.1252 FPO Filipino_Philippines.1252 FRA French_France.1252 FRB French_Belgium.1252 FRC French_Canada.1252 FRL French_Luxembourg.1252 FRM French_Principality of Monaco.1252 FRS French_Switzerland.1252 FYN Frisian_Netherlands.1252 GLC Galician_Spain.1252 HEB Hebrew_Israel.1255 HRB Croatian_Bosnia and Herzegovina.1250 HRV Croatian_Croatia.1250 HUN Hungarian_Hungary.1250 IND Indonesian_Indonesia.1252 IRE Irish_Ireland.1252 ISL Icelandic_Iceland.1252 ITA Italian_Italy.1252 ITS Italian_Switzerland.1252 IUK Inuktitut (Latin)_Canada.1252 JPN Japanese_Japan.932 KKZ Kazakh_Kazakhstan.1251 KOR Korean_Korea.949 KYR Kyrgyz_Kyrgyzstan.1251 LBX Luxembourgish_Luxembourg.1252 LTH Lithuanian_Lithuania.1257 LVI Latvian_Latvia.1257 MKI FYRO Macedonian_Former Yugoslav Republic of Macedonia.1251 MON Mongolian_Mongolia.1251 MPD Mapudungun_Chile.1252 MSB Malay_Brunei Darussalam.1252 MSL Malay_Malaysia.1252 MWK Mohawk_Canada.1252 NLB Dutch_Belgium.1252 NLD Dutch_Netherlands.1252 NON Norwegian-Nynorsk_Norway.1252 NOR Norwegian (BokmÃ¥l)_Norway.1252 NSO Northern Sotho_South Africa.1252 PLK Polish_Poland.1250 PTB Portuguese_Brazil.1252 PTG Portuguese_Portugal.1252 QUB Quechua_Bolivia.1252 QUE Quechua_Ecuador.1252 QUP Quechua_Peru.1252 RMC Romansh_Switzerland.1252 ROM Romanian_Romania.1250 RUS Russian_Russia.1251 SKY Slovak_Slovakia.1250 SLV Slovenian_Slovenia.1250 SMA Sami (Southern)_Norway.1252 SMB Sami (Southern)_Sweden.1252 SME Sami (Northern)_Norway.1252 SMF Sami (Northern)_Sweden.1252 SMG Sami (Northern)_Finland.1252 SMJ Sami (Lule)_Norway.1252 SMK Sami (Lule)_Sweden.1252 SMN Sami (Inari)_Finland.1252 SMS Sami (Skolt)_Finland.1252 SQI Albanian_Albania.1250 SRB Serbian (Cyrillic)_Serbia and Montenegro.1251 SRL Serbian (Latin)_Serbia and Montenegro.1250 SRN Serbian (Cyrillic)_Bosnia and Herzegovina.1251 SRS Serbian (Latin)_Bosnia and Herzegovina.1250 SVE Swedish_Sweden.1252 SVF Swedish_Finland.1252 SWK Swahili_Kenya.1252 THA Thai_Thailand.874 TRK Turkish_Turkey.1254 TSN Tswana_South Africa.1252 TTT Tatar_Russia.1251 UKR Ukrainian_Ukraine.1251 URD Urdu_Islamic Republic of Pakistan.1256 USA English_United States.1252 UZB Uzbek (Latin)_Uzbekistan.1254 VIT Vietnamese_Viet Nam.1258 XHO Xhosa_South Africa.1252 ZHH Chinese_Hong Kong S.A.R..950 ZHI Chinese_Singapore.936 ZHM Chinese_Macau S.A.R..950 ZUL Zulu_South Africa.1252 */ /* Table from ISO 639 language code, optionally with country or script suffix, to English name. Keep in sync with the gl_locale_name_from_win32_LANGID function in localename.c! */ struct table_entry { const char *code; const char *english; }; static const struct table_entry language_table[] = { { "af", "Afrikaans" }, { "am", "Amharic" }, { "ar", "Arabic" }, { "arn", "Mapudungun" }, { "as", "Assamese" }, { "az@cyrillic", "Azeri (Cyrillic)" }, { "az@latin", "Azeri (Latin)" }, { "ba", "Bashkir" }, { "be", "Belarusian" }, { "ber", "Tamazight" }, { "ber@arabic", "Tamazight (Arabic)" }, { "ber@latin", "Tamazight (Latin)" }, { "bg", "Bulgarian" }, { "bin", "Edo" }, { "bn", "Bengali" }, { "bn_BD", "Bengali (Bangladesh)" }, { "bn_IN", "Bengali (India)" }, { "bnt", "Sutu" }, { "bo", "Tibetan" }, { "br", "Breton" }, { "bs", "BSB" }, /* "Bosnian (Latin)" */ { "bs@cyrillic", "BSC" }, /* Bosnian (Cyrillic) */ { "ca", "Catalan" }, { "chr", "Cherokee" }, { "co", "Corsican" }, { "cpe", "Hawaiian" }, { "cs", "Czech" }, { "cy", "Welsh" }, { "da", "Danish" }, { "de", "German" }, { "dsb", "Lower Sorbian" }, { "dv", "Divehi" }, { "el", "Greek" }, { "en", "English" }, { "es", "Spanish" }, { "et", "Estonian" }, { "eu", "Basque" }, { "fa", "Farsi" }, { "ff", "Fulfulde" }, { "fi", "Finnish" }, { "fo", "Faroese" }, /* "Faeroese" does not work */ { "fr", "French" }, { "fy", "Frisian" }, { "ga", "IRE" }, /* Gaelic (Ireland) */ { "gd", "Gaelic (Scotland)" }, { "gd", "Scottish Gaelic" }, { "gl", "Galician" }, { "gn", "Guarani" }, { "gsw", "Alsatian" }, { "gu", "Gujarati" }, { "ha", "Hausa" }, { "he", "Hebrew" }, { "hi", "Hindi" }, { "hr", "Croatian" }, { "hsb", "Upper Sorbian" }, { "hu", "Hungarian" }, { "hy", "Armenian" }, { "id", "Indonesian" }, { "ig", "Igbo" }, { "ii", "Yi" }, { "is", "Icelandic" }, { "it", "Italian" }, { "iu", "IUK" }, /* Inuktitut */ { "ja", "Japanese" }, { "ka", "Georgian" }, { "kk", "Kazakh" }, { "kl", "Greenlandic" }, { "km", "Cambodian" }, { "km", "Khmer" }, { "kn", "Kannada" }, { "ko", "Korean" }, { "kok", "Konkani" }, { "kr", "Kanuri" }, { "ks", "Kashmiri" }, { "ks_IN", "Kashmiri_India" }, { "ks_PK", "Kashmiri (Arabic)_Pakistan" }, { "ky", "Kyrgyz" }, { "la", "Latin" }, { "lb", "Luxembourgish" }, { "lo", "Lao" }, { "lt", "Lithuanian" }, { "lv", "Latvian" }, { "mi", "Maori" }, { "mk", "FYRO Macedonian" }, { "mk", "Macedonian" }, { "ml", "Malayalam" }, { "mn", "Mongolian" }, { "mni", "Manipuri" }, { "moh", "Mohawk" }, { "mr", "Marathi" }, { "ms", "Malay" }, { "mt", "Maltese" }, { "my", "Burmese" }, { "nb", "NOR" }, /* Norwegian BokmÃ¥l */ { "ne", "Nepali" }, { "nic", "Ibibio" }, { "nl", "Dutch" }, { "nn", "NON" }, /* Norwegian Nynorsk */ { "no", "Norwegian" }, { "nso", "Northern Sotho" }, { "nso", "Sepedi" }, { "oc", "Occitan" }, { "om", "Oromo" }, { "or", "Oriya" }, { "pa", "Punjabi" }, { "pap", "Papiamentu" }, { "pl", "Polish" }, { "prs", "Dari" }, { "ps", "Pashto" }, { "pt", "Portuguese" }, { "qu", "Quechua" }, { "qut", "K'iche'" }, { "rm", "Romansh" }, { "ro", "Romanian" }, { "ru", "Russian" }, { "rw", "Kinyarwanda" }, { "sa", "Sanskrit" }, { "sah", "Yakut" }, { "sd", "Sindhi" }, { "se", "Sami (Northern)" }, { "se", "Northern Sami" }, { "si", "Sinhalese" }, { "sk", "Slovak" }, { "sl", "Slovenian" }, { "sma", "Sami (Southern)" }, { "sma", "Southern Sami" }, { "smj", "Sami (Lule)" }, { "smj", "Lule Sami" }, { "smn", "Sami (Inari)" }, { "smn", "Inari Sami" }, { "sms", "Sami (Skolt)" }, { "sms", "Skolt Sami" }, { "so", "Somali" }, { "sq", "Albanian" }, { "sr", "Serbian (Latin)" }, { "sr@cyrillic", "SRB" }, /* Serbian (Cyrillic) */ { "sv", "Swedish" }, { "sw", "Swahili" }, { "syr", "Syriac" }, { "ta", "Tamil" }, { "te", "Telugu" }, { "tg", "Tajik" }, { "th", "Thai" }, { "ti", "Tigrinya" }, { "tk", "Turkmen" }, { "tl", "Filipino" }, { "tn", "Tswana" }, { "tr", "Turkish" }, { "ts", "Tsonga" }, { "tt", "Tatar" }, { "ug", "Uighur" }, { "uk", "Ukrainian" }, { "ur", "Urdu" }, { "uz", "Uzbek" }, { "uz", "Uzbek (Latin)" }, { "uz@cyrillic", "Uzbek (Cyrillic)" }, { "ve", "Venda" }, { "vi", "Vietnamese" }, { "wen", "Sorbian" }, { "wo", "Wolof" }, { "xh", "Xhosa" }, { "yi", "Yiddish" }, { "yo", "Yoruba" }, { "zh", "Chinese" }, { "zu", "Zulu" } }; /* Table from ISO 3166 country code to English name. Keep in sync with the gl_locale_name_from_win32_LANGID function in localename.c! */ static const struct table_entry country_table[] = { { "AE", "U.A.E." }, { "AF", "Afghanistan" }, { "AL", "Albania" }, { "AM", "Armenia" }, { "AN", "Netherlands Antilles" }, { "AR", "Argentina" }, { "AT", "Austria" }, { "AU", "Australia" }, { "AZ", "Azerbaijan" }, { "BA", "Bosnia and Herzegovina" }, { "BD", "Bangladesh" }, { "BE", "Belgium" }, { "BG", "Bulgaria" }, { "BH", "Bahrain" }, { "BN", "Brunei Darussalam" }, { "BO", "Bolivia" }, { "BR", "Brazil" }, { "BT", "Bhutan" }, { "BY", "Belarus" }, { "BZ", "Belize" }, { "CA", "Canada" }, { "CG", "Congo" }, { "CH", "Switzerland" }, { "CI", "Cote d'Ivoire" }, { "CL", "Chile" }, { "CM", "Cameroon" }, { "CN", "People's Republic of China" }, { "CO", "Colombia" }, { "CR", "Costa Rica" }, { "CS", "Serbia and Montenegro" }, { "CZ", "Czech Republic" }, { "DE", "Germany" }, { "DK", "Denmark" }, { "DO", "Dominican Republic" }, { "DZ", "Algeria" }, { "EC", "Ecuador" }, { "EE", "Estonia" }, { "EG", "Egypt" }, { "ER", "Eritrea" }, { "ES", "Spain" }, { "ET", "Ethiopia" }, { "FI", "Finland" }, { "FO", "Faroe Islands" }, { "FR", "France" }, { "GB", "United Kingdom" }, { "GD", "Caribbean" }, { "GE", "Georgia" }, { "GL", "Greenland" }, { "GR", "Greece" }, { "GT", "Guatemala" }, { "HK", "Hong Kong" }, { "HK", "Hong Kong S.A.R." }, { "HN", "Honduras" }, { "HR", "Croatia" }, { "HT", "Haiti" }, { "HU", "Hungary" }, { "ID", "Indonesia" }, { "IE", "Ireland" }, { "IL", "Israel" }, { "IN", "India" }, { "IQ", "Iraq" }, { "IR", "Iran" }, { "IS", "Iceland" }, { "IT", "Italy" }, { "JM", "Jamaica" }, { "JO", "Jordan" }, { "JP", "Japan" }, { "KE", "Kenya" }, { "KG", "Kyrgyzstan" }, { "KH", "Cambodia" }, { "KR", "South Korea" }, { "KW", "Kuwait" }, { "KZ", "Kazakhstan" }, { "LA", "Laos" }, { "LB", "Lebanon" }, { "LI", "Liechtenstein" }, { "LK", "Sri Lanka" }, { "LT", "Lithuania" }, { "LU", "Luxembourg" }, { "LV", "Latvia" }, { "LY", "Libya" }, { "MA", "Morocco" }, { "MC", "Principality of Monaco" }, { "MD", "Moldava" }, { "MD", "Moldova" }, { "ME", "Montenegro" }, { "MK", "Former Yugoslav Republic of Macedonia" }, { "ML", "Mali" }, { "MM", "Myanmar" }, { "MN", "Mongolia" }, { "MO", "Macau S.A.R." }, { "MT", "Malta" }, { "MV", "Maldives" }, { "MX", "Mexico" }, { "MY", "Malaysia" }, { "NG", "Nigeria" }, { "NI", "Nicaragua" }, { "NL", "Netherlands" }, { "NO", "Norway" }, { "NP", "Nepal" }, { "NZ", "New Zealand" }, { "OM", "Oman" }, { "PA", "Panama" }, { "PE", "Peru" }, { "PH", "Philippines" }, { "PK", "Islamic Republic of Pakistan" }, { "PL", "Poland" }, { "PR", "Puerto Rico" }, { "PT", "Portugal" }, { "PY", "Paraguay" }, { "QA", "Qatar" }, { "RE", "Reunion" }, { "RO", "Romania" }, { "RS", "Serbia" }, { "RU", "Russia" }, { "RW", "Rwanda" }, { "SA", "Saudi Arabia" }, { "SE", "Sweden" }, { "SG", "Singapore" }, { "SI", "Slovenia" }, { "SK", "Slovak" }, { "SN", "Senegal" }, { "SO", "Somalia" }, { "SR", "Suriname" }, { "SV", "El Salvador" }, { "SY", "Syria" }, { "TH", "Thailand" }, { "TJ", "Tajikistan" }, { "TM", "Turkmenistan" }, { "TN", "Tunisia" }, { "TR", "Turkey" }, { "TT", "Trinidad and Tobago" }, { "TW", "Taiwan" }, { "TZ", "Tanzania" }, { "UA", "Ukraine" }, { "US", "United States" }, { "UY", "Uruguay" }, { "VA", "Vatican" }, { "VE", "Venezuela" }, { "VN", "Viet Nam" }, { "YE", "Yemen" }, { "ZA", "South Africa" }, { "ZW", "Zimbabwe" } }; /* Given a string STRING, find the set of indices i such that TABLE[i].code is the given STRING. It is a range [lo,hi-1]. */ typedef struct { size_t lo; size_t hi; } range_t; static void search (const struct table_entry *table, size_t table_size, const char *string, range_t *result) { /* The table is sorted. Perform a binary search. */ size_t hi = table_size; size_t lo = 0; while (lo < hi) { /* Invariant: for i < lo, strcmp (table[i].code, string) < 0, for i >= hi, strcmp (table[i].code, string) > 0. */ size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ int cmp = strcmp (table[mid].code, string); if (cmp < 0) lo = mid + 1; else if (cmp > 0) hi = mid; else { /* Found an i with strcmp (language_table[i].code, string) == 0. Find the entire interval of such i. */ { size_t i; for (i = mid; i > lo; ) { i--; if (strcmp (table[i].code, string) < 0) { lo = i + 1; break; } } } { size_t i; for (i = mid; i < hi; i++) { if (strcmp (table[i].code, string) > 0) { hi = i; break; } } } /* The set of i with strcmp (language_table[i].code, string) == 0 is the interval [lo, hi-1]. */ break; } } result->lo = lo; result->hi = hi; } /* Like setlocale, but accept also locale names in the form ll or ll_CC, where ll is an ISO 639 language code and CC is an ISO 3166 country code. */ static char * setlocale_unixlike (int category, const char *locale) { char *result; char llCC_buf[64]; char ll_buf[64]; char CC_buf[64]; /* The native Windows implementation of setlocale understands the special locale name "C", but not "POSIX". Therefore map "POSIX" to "C". */ if (locale != NULL && strcmp (locale, "POSIX") == 0) locale = "C"; /* First, try setlocale with the original argument unchanged. */ result = setlocale (category, locale); if (result != NULL) return result; /* Otherwise, assume the argument is in the form language[_territory][.codeset][@modifier] and try to map it using the tables. */ if (strlen (locale) < sizeof (llCC_buf)) { /* Second try: Remove the codeset part. */ { const char *p = locale; char *q = llCC_buf; /* Copy the part before the dot. */ for (; *p != '\0' && *p != '.'; p++, q++) *q = *p; if (*p == '.') /* Skip the part up to the '@', if any. */ for (; *p != '\0' && *p != '@'; p++) ; /* Copy the part starting with '@', if any. */ for (; *p != '\0'; p++, q++) *q = *p; *q = '\0'; } /* llCC_buf now contains language[_territory][@modifier] */ if (strcmp (llCC_buf, locale) != 0) { result = setlocale (category, llCC_buf); if (result != NULL) return result; } /* Look it up in language_table. */ { range_t range; size_t i; search (language_table, sizeof (language_table) / sizeof (language_table[0]), llCC_buf, &range); for (i = range.lo; i < range.hi; i++) { /* Try the replacement in language_table[i]. */ result = setlocale (category, language_table[i].english); if (result != NULL) return result; } } /* Split language[_territory][@modifier] into ll_buf = language[@modifier] and CC_buf = territory */ { const char *underscore = strchr (llCC_buf, '_'); if (underscore != NULL) { const char *territory_start = underscore + 1; const char *territory_end = strchr (territory_start, '@'); if (territory_end == NULL) territory_end = territory_start + strlen (territory_start); memcpy (ll_buf, llCC_buf, underscore - llCC_buf); strcpy (ll_buf + (underscore - llCC_buf), territory_end); memcpy (CC_buf, territory_start, territory_end - territory_start); CC_buf[territory_end - territory_start] = '\0'; { /* Look up ll_buf in language_table and CC_buf in country_table. */ range_t language_range; search (language_table, sizeof (language_table) / sizeof (language_table[0]), ll_buf, &language_range); if (language_range.lo < language_range.hi) { range_t country_range; search (country_table, sizeof (country_table) / sizeof (country_table[0]), CC_buf, &country_range); if (country_range.lo < country_range.hi) { size_t i; size_t j; for (i = language_range.lo; i < language_range.hi; i++) for (j = country_range.lo; j < country_range.hi; j++) { /* Concatenate the replacements. */ const char *part1 = language_table[i].english; size_t part1_len = strlen (part1); const char *part2 = country_table[j].english; size_t part2_len = strlen (part2) + 1; char buf[64+64]; if (!(part1_len + 1 + part2_len <= sizeof (buf))) abort (); memcpy (buf, part1, part1_len); buf[part1_len] = '_'; memcpy (buf + part1_len + 1, part2, part2_len); /* Try the concatenated replacements. */ result = setlocale (category, buf); if (result != NULL) return result; } } /* Try omitting the country entirely. This may set a locale corresponding to the wrong country, but is better than failing entirely. */ { size_t i; for (i = language_range.lo; i < language_range.hi; i++) { /* Try only the language replacement. */ result = setlocale (category, language_table[i].english); if (result != NULL) return result; } } } } } } } /* Failed. */ return NULL; } # else # define setlocale_unixlike setlocale # endif # if LC_MESSAGES == 1729 /* The system does not store an LC_MESSAGES locale category. Do it here. */ static char lc_messages_name[64] = "C"; /* Like setlocale, but support also LC_MESSAGES. */ static char * setlocale_single (int category, const char *locale) { if (category == LC_MESSAGES) { if (locale != NULL) { lc_messages_name[sizeof (lc_messages_name) - 1] = '\0'; strncpy (lc_messages_name, locale, sizeof (lc_messages_name) - 1); } return lc_messages_name; } else return setlocale_unixlike (category, locale); } # else # define setlocale_single setlocale_unixlike # endif char * rpl_setlocale (int category, const char *locale) { if (locale != NULL && locale[0] == '\0') { /* A request to the set the current locale to the default locale. */ if (category == LC_ALL) { /* Set LC_CTYPE first. Then the other categories. */ static int const categories[] = { LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES }; char *saved_locale; const char *base_name; unsigned int i; /* Back up the old locale, in case one of the steps fails. */ saved_locale = setlocale (LC_ALL, NULL); if (saved_locale == NULL) return NULL; saved_locale = strdup (saved_locale); if (saved_locale == NULL) return NULL; /* Set LC_CTYPE category. Set all other categories (except possibly LC_MESSAGES) to the same value in the same call; this is likely to save calls. */ base_name = gl_locale_name_environ (LC_CTYPE, category_to_name (LC_CTYPE)); if (base_name == NULL) base_name = gl_locale_name_default (); if (setlocale_unixlike (LC_ALL, base_name) == NULL) goto fail; # if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows, setlocale(LC_ALL,...) may succeed but set the LC_CTYPE category to an invalid value ("C") when it does not support the specified encoding. Report a failure instead. */ if (strchr (base_name, '.') != NULL && strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) goto fail; # endif for (i = 0; i < sizeof (categories) / sizeof (categories[0]); i++) { int cat = categories[i]; const char *name; name = gl_locale_name_environ (cat, category_to_name (cat)); if (name == NULL) name = gl_locale_name_default (); /* If name is the same as base_name, it has already been set through the setlocale call before the loop. */ if (strcmp (name, base_name) != 0 # if LC_MESSAGES == 1729 || cat == LC_MESSAGES # endif ) if (setlocale_single (cat, name) == NULL) goto fail; } /* All steps were successful. */ free (saved_locale); return setlocale (LC_ALL, NULL); fail: if (saved_locale[0] != '\0') /* don't risk an endless recursion */ setlocale (LC_ALL, saved_locale); free (saved_locale); return NULL; } else { const char *name = gl_locale_name_environ (category, category_to_name (category)); if (name == NULL) name = gl_locale_name_default (); return setlocale_single (category, name); } } else { # if defined _WIN32 && ! defined __CYGWIN__ if (category == LC_ALL && locale != NULL && strchr (locale, '.') != NULL) { char *saved_locale; /* Back up the old locale. */ saved_locale = setlocale (LC_ALL, NULL); if (saved_locale == NULL) return NULL; saved_locale = strdup (saved_locale); if (saved_locale == NULL) return NULL; if (setlocale_unixlike (LC_ALL, locale) == NULL) { free (saved_locale); return NULL; } /* On native Windows, setlocale(LC_ALL,...) may succeed but set the LC_CTYPE category to an invalid value ("C") when it does not support the specified encoding. Report a failure instead. */ if (strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) { if (saved_locale[0] != '\0') /* don't risk an endless recursion */ setlocale (LC_ALL, saved_locale); free (saved_locale); return NULL; } /* It was really successful. */ free (saved_locale); return setlocale (LC_ALL, NULL); } else # endif return setlocale_single (category, locale); } } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/sigaction.c0000644000000000000000000000011013726163410022271 xustar000000000000000024 mtime=1599661832.618 24 atime=1599661832.763 24 ctime=1599661999.288 libprelude-5.2.0/libmissing/tests/sigaction.c0000644000000000000000000001611513726163410021300 0ustar00rootroot00000000000000/* POSIX compatible signal blocking. Copyright (C) 2008-2018 Free Software Foundation, Inc. Written by Eric Blake , 2008. 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 3 of the License, 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, see . */ #include /* Specification. */ #include #include #include #include /* This implementation of sigaction is tailored to native Windows behavior: signal() has SysV semantics (ie. the handler is uninstalled before it is invoked). This is an inherent data race if an asynchronous signal is sent twice in a row before we can reinstall our handler, but there's nothing we can do about it. Meanwhile, sigprocmask() is not present, and while we can use the gnulib replacement to provide critical sections, it too suffers from potential data races in the face of an ill-timed asynchronous signal. And we compound the situation by reading static storage in a signal handler, which POSIX warns is not generically async-signal-safe. Oh well. Additionally: - We don't implement SA_NOCLDSTOP or SA_NOCLDWAIT, because SIGCHLD is not defined. - We don't implement SA_ONSTACK, because sigaltstack() is not present. - We ignore SA_RESTART, because blocking native Windows API calls are not interrupted anyway when an asynchronous signal occurs, and the MSVCRT runtime never sets errno to EINTR. - We don't implement SA_SIGINFO because it is impossible to do so portably. POSIX states that an application should not mix signal() and sigaction(). We support the use of signal() within the gnulib sigprocmask() substitute, but all other application code linked with this module should stick with only sigaction(). */ /* Check some of our assumptions. */ #if defined SIGCHLD || defined HAVE_SIGALTSTACK || defined HAVE_SIGINTERRUPT # error "Revisit the assumptions made in the sigaction module" #endif /* Out-of-range substitutes make a good fallback for uncatchable signals. */ #ifndef SIGKILL # define SIGKILL (-1) #endif #ifndef SIGSTOP # define SIGSTOP (-1) #endif /* On native Windows, as of 2008, the signal SIGABRT_COMPAT is an alias for the signal SIGABRT. Only one signal handler is stored for both SIGABRT and SIGABRT_COMPAT. SIGABRT_COMPAT is not a signal of its own. */ #if defined _WIN32 && ! defined __CYGWIN__ # undef SIGABRT_COMPAT # define SIGABRT_COMPAT 6 #endif /* A signal handler. */ typedef void (*handler_t) (int signal); /* Set of current actions. If sa_handler for an entry is NULL, then that signal is not currently handled by the sigaction handler. */ static struct sigaction volatile action_array[NSIG] /* = 0 */; /* Signal handler that is installed for signals. */ static void sigaction_handler (int sig) { handler_t handler; sigset_t mask; sigset_t oldmask; int saved_errno = errno; if (sig < 0 || NSIG <= sig || !action_array[sig].sa_handler) { /* Unexpected situation; be careful to avoid recursive abort. */ if (sig == SIGABRT) signal (SIGABRT, SIG_DFL); abort (); } /* Reinstall the signal handler when required; otherwise update the bookkeeping so that the user's handler may call sigaction and get accurate results. We know the signal isn't currently blocked, or we wouldn't be in its handler, therefore we know that we are not interrupting a sigaction() call. There is a race where any asynchronous instance of the same signal occurring before we reinstall the handler will trigger the default handler; oh well. */ handler = action_array[sig].sa_handler; if ((action_array[sig].sa_flags & SA_RESETHAND) == 0) signal (sig, sigaction_handler); else action_array[sig].sa_handler = NULL; /* Block appropriate signals. */ mask = action_array[sig].sa_mask; if ((action_array[sig].sa_flags & SA_NODEFER) == 0) sigaddset (&mask, sig); sigprocmask (SIG_BLOCK, &mask, &oldmask); /* Invoke the user's handler, then restore prior mask. */ errno = saved_errno; handler (sig); saved_errno = errno; sigprocmask (SIG_SETMASK, &oldmask, NULL); errno = saved_errno; } /* Change and/or query the action that will be taken on delivery of signal SIG. If not NULL, ACT describes the new behavior. If not NULL, OACT is set to the prior behavior. Return 0 on success, or set errno and return -1 on failure. */ int sigaction (int sig, const struct sigaction *restrict act, struct sigaction *restrict oact) { sigset_t mask; sigset_t oldmask; int saved_errno; if (sig < 0 || NSIG <= sig || sig == SIGKILL || sig == SIGSTOP || (act && act->sa_handler == SIG_ERR)) { errno = EINVAL; return -1; } #ifdef SIGABRT_COMPAT if (sig == SIGABRT_COMPAT) sig = SIGABRT; #endif /* POSIX requires sigaction() to be async-signal-safe. In other words, if an asynchronous signal can occur while we are anywhere inside this function, the user's handler could then call sigaction() recursively and expect consistent results. We meet this rule by using sigprocmask to block all signals before modifying any data structure that could be read from a signal handler; this works since we know that the gnulib sigprocmask replacement does not try to use sigaction() from its handler. */ if (!act && !oact) return 0; sigfillset (&mask); sigprocmask (SIG_BLOCK, &mask, &oldmask); if (oact) { if (action_array[sig].sa_handler) *oact = action_array[sig]; else { /* Safe to change the handler at will here, since all signals are currently blocked. */ oact->sa_handler = signal (sig, SIG_DFL); if (oact->sa_handler == SIG_ERR) goto failure; signal (sig, oact->sa_handler); oact->sa_flags = SA_RESETHAND | SA_NODEFER; sigemptyset (&oact->sa_mask); } } if (act) { /* Safe to install the handler before updating action_array, since all signals are currently blocked. */ if (act->sa_handler == SIG_DFL || act->sa_handler == SIG_IGN) { if (signal (sig, act->sa_handler) == SIG_ERR) goto failure; action_array[sig].sa_handler = NULL; } else { if (signal (sig, sigaction_handler) == SIG_ERR) goto failure; action_array[sig] = *act; } } sigprocmask (SIG_SETMASK, &oldmask, NULL); return 0; failure: saved_errno = errno; sigprocmask (SIG_SETMASK, &oldmask, NULL); errno = saved_errno; return -1; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/symlink.c0000644000000000000000000000010713726163410022005 xustar000000000000000024 mtime=1599661832.618 24 atime=1599661832.763 23 ctime=1599661999.29 libprelude-5.2.0/libmissing/tests/symlink.c0000644000000000000000000000263213726163410021005 0ustar00rootroot00000000000000/* Stub for symlink(). Copyright (C) 2009-2018 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 3 of the License, 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, see . */ #include /* Specification. */ #include #include #include #include #if HAVE_SYMLINK # undef symlink /* Create a symlink, but reject trailing slash. */ int rpl_symlink (char const *contents, char const *name) { size_t len = strlen (name); if (len && name[len - 1] == '/') { struct stat st; if (lstat (name, &st) == 0) errno = EEXIST; return -1; } return symlink (contents, name); } #else /* !HAVE_SYMLINK */ /* The system does not support symlinks. */ int symlink (char const *contents _GL_UNUSED, char const *name _GL_UNUSED) { errno = ENOSYS; return -1; } #endif /* !HAVE_SYMLINK */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/unsetenv.c0000644000000000000000000000010613726163410022165 xustar000000000000000023 mtime=1599661832.65 23 atime=1599661832.77 24 ctime=1599661999.291 libprelude-5.2.0/libmissing/tests/unsetenv.c0000644000000000000000000000547313726163410021174 0ustar00rootroot00000000000000/* Copyright (C) 1992, 1995-2002, 2005-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 of the License, 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, see . */ /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the name == NULL test below. */ #define _GL_ARG_NONNULL(params) #include /* Specification. */ #include #include #if !_LIBC # define __set_errno(ev) ((errno) = (ev)) #endif #include #include #if !_LIBC # define __environ environ #endif #if _LIBC /* This lock protects against simultaneous modifications of 'environ'. */ # include __libc_lock_define_initialized (static, envlock) # define LOCK __libc_lock_lock (envlock) # define UNLOCK __libc_lock_unlock (envlock) #else # define LOCK # define UNLOCK #endif /* In the GNU C library we must keep the namespace clean. */ #ifdef _LIBC # define unsetenv __unsetenv #endif #if _LIBC || !HAVE_UNSETENV int unsetenv (const char *name) { size_t len; char **ep; if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) { __set_errno (EINVAL); return -1; } len = strlen (name); LOCK; ep = __environ; while (*ep != NULL) if (!strncmp (*ep, name, len) && (*ep)[len] == '=') { /* Found it. Remove this pointer by moving later ones back. */ char **dp = ep; do dp[0] = dp[1]; while (*dp++); /* Continue the loop in case NAME appears again. */ } else ++ep; UNLOCK; return 0; } #ifdef _LIBC # undef unsetenv weak_alias (__unsetenv, unsetenv) #endif #else /* HAVE_UNSETENV */ # undef unsetenv # if !HAVE_DECL_UNSETENV # if VOID_UNSETENV extern void unsetenv (const char *); # else extern int unsetenv (const char *); # endif # endif /* Call the underlying unsetenv, in case there is hidden bookkeeping that needs updating beyond just modifying environ. */ int rpl_unsetenv (const char *name) { int result = 0; if (!name || !*name || strchr (name, '=')) { errno = EINVAL; return -1; } while (getenv (name)) # if !VOID_UNSETENV result = # endif unsetenv (name); return result; } #endif /* HAVE_UNSETENV */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/usleep.c0000644000000000000000000000010613726163410021613 xustar000000000000000023 mtime=1599661832.65 23 atime=1599661832.77 24 ctime=1599661999.293 libprelude-5.2.0/libmissing/tests/usleep.c0000644000000000000000000000350313726163410020612 0ustar00rootroot00000000000000/* Pausing execution of the current thread. Copyright (C) 2009-2018 Free Software Foundation, Inc. Written by Eric Blake , 2009. 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 3 of the License, 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, see . */ /* This file is _intentionally_ light-weight. Rather than using select or nanosleep, both of which drag in external libraries on some platforms, this merely rounds up to the nearest second if usleep() does not exist. If sub-second resolution is important, then use a more powerful interface to begin with. */ #include /* Specification. */ #include #include #ifndef HAVE_USLEEP # define HAVE_USLEEP 0 #endif /* Sleep for MICRO microseconds, which can be greater than 1 second. Return -1 and set errno to EINVAL on range error (about 4295 seconds), or 0 on success. Interaction with SIGALARM is unspecified. */ int usleep (useconds_t micro) { unsigned int seconds = micro / 1000000; if (sizeof seconds < sizeof micro && micro / 1000000 != seconds) { errno = EINVAL; return -1; } if (!HAVE_USLEEP && micro % 1000000) seconds++; while ((seconds = sleep (seconds)) != 0); #undef usleep #if !HAVE_USLEEP # define usleep(x) 0 #endif return usleep (micro % 1000000); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/wctob.c0000644000000000000000000000010713726163410021435 xustar000000000000000024 mtime=1599661832.651 23 atime=1599661832.77 24 ctime=1599661999.295 libprelude-5.2.0/libmissing/tests/wctob.c0000644000000000000000000000226513726163410020437 0ustar00rootroot00000000000000/* Convert wide character to unibyte character. Copyright (C) 2008, 2010-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2008. 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 3 of the License, 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, see . */ #include /* Specification. */ #include #include #include int wctob (wint_t wc) { char buf[64]; if (!(MB_CUR_MAX <= sizeof (buf))) abort (); /* Handle the case where WEOF is a value that does not fit in a wchar_t. */ if (wc == (wchar_t)wc) if (wctomb (buf, (wchar_t)wc) == 1) return (unsigned char) buf[0]; return EOF; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/wctomb.c0000644000000000000000000000011013726163410021604 xustar000000000000000024 mtime=1599661832.651 24 atime=1599661832.771 24 ctime=1599661999.296 libprelude-5.2.0/libmissing/tests/wctomb.c0000644000000000000000000000162413726163410020612 0ustar00rootroot00000000000000/* Convert wide character to multibyte character. Copyright (C) 2011-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2011. 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 3 of the License, 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, see . */ #include #include #include #include #include "wctomb-impl.h" libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-accept.c0000644000000000000000000000011013726163410022525 xustar000000000000000024 mtime=1599661832.618 24 atime=1599661832.763 24 ctime=1599661999.298 libprelude-5.2.0/libmissing/tests/test-accept.c0000644000000000000000000000277313726163410021541 0ustar00rootroot00000000000000/* Test accepting a connection to a server socket. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (accept, int, (int, struct sockaddr *, socklen_t *)); #include #include #include #include "sockets.h" #include "macros.h" int main (void) { (void) gl_sockets_startup (SOCKETS_1_1); /* Test behaviour for invalid file descriptors. */ { struct sockaddr_in addr; socklen_t addrlen = sizeof (addr); errno = 0; ASSERT (accept (-1, (struct sockaddr *) &addr, &addrlen) == -1); ASSERT (errno == EBADF); } { struct sockaddr_in addr; socklen_t addrlen = sizeof (addr); close (99); errno = 0; ASSERT (accept (99, (struct sockaddr *) &addr, &addrlen) == -1); ASSERT (errno == EBADF); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-alloca-opt.c0000644000000000000000000000010613726163410023326 xustar000000000000000024 mtime=1599661832.618 24 atime=1599661832.763 22 ctime=1599661999.3 libprelude-5.2.0/libmissing/tests/test-alloca-opt.c0000644000000000000000000000276313726163410022334 0ustar00rootroot00000000000000/* Test of optional automatic memory allocation. Copyright (C) 2005, 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #if HAVE_ALLOCA static void do_allocation (int n) { void *ptr = alloca (n); (void) ptr; } void (*func) (int) = do_allocation; #endif int main () { #if HAVE_ALLOCA int i; /* Repeat a lot of times, to make sure there's no memory leak. */ for (i = 0; i < 100000; i++) { /* Try various values. n = 0 gave a crash on Alpha with gcc-2.5.8. Some versions of Mac OS X have a stack size limit of 512 KB. */ func (34); func (134); func (399); func (510823); func (129321); func (0); func (4070); func (4095); func (1); func (16582); } #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-arpa_inet.c0000644000000000000000000000011013726163410023230 xustar000000000000000024 mtime=1599661832.618 24 atime=1599661832.763 24 ctime=1599661999.301 libprelude-5.2.0/libmissing/tests/test-arpa_inet.c0000644000000000000000000000156413726163410022241 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-binary-io.c0000644000000000000000000000011013726163410023157 xustar000000000000000024 mtime=1599661832.619 24 atime=1599661832.763 24 ctime=1599661999.303 libprelude-5.2.0/libmissing/tests/test-binary-io.c0000644000000000000000000000305413726163410022164 0ustar00rootroot00000000000000/* Test of binary mode I/O. Copyright (C) 2005, 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2005. */ #include #include "binary-io.h" #include #include #include #include #include #include #include "macros.h" int main (int argc, char *argv[]) { /* Test the O_BINARY macro. */ { int fd = open ("t-bin-out0.tmp", O_CREAT | O_TRUNC | O_RDWR | O_BINARY, 0600); if (write (fd, "Hello\n", 6) < 0) exit (1); close (fd); } { struct stat statbuf; if (stat ("t-bin-out0.tmp", &statbuf) < 0) exit (1); ASSERT (statbuf.st_size == 6); } switch (argv[1][0]) { case '1': /* Test the set_binary_mode() function. */ set_binary_mode (1, O_BINARY); fputs ("Hello\n", stdout); break; default: break; } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-bind.c0000644000000000000000000000011013726163410022202 xustar000000000000000024 mtime=1599661832.619 24 atime=1599661832.763 24 ctime=1599661999.305 libprelude-5.2.0/libmissing/tests/test-bind.c0000644000000000000000000000310513726163410021204 0ustar00rootroot00000000000000/* Test binding a server socket to a port. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (bind, int, (int, const struct sockaddr *, socklen_t)); #include #include #include #include #include "sockets.h" #include "macros.h" int main (void) { (void) gl_sockets_startup (SOCKETS_1_1); /* Test behaviour for invalid file descriptors. */ { struct sockaddr_in addr; addr.sin_family = AF_INET; inet_pton (AF_INET, "127.0.0.1", &addr.sin_addr); addr.sin_port = htons (80); { errno = 0; ASSERT (bind (-1, (const struct sockaddr *) &addr, sizeof (addr)) == -1); ASSERT (errno == EBADF); } { close (99); errno = 0; ASSERT (bind (99, (const struct sockaddr *) &addr, sizeof (addr)) == -1); ASSERT (errno == EBADF); } } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-btowc.c0000644000000000000000000000011013726163410022404 xustar000000000000000024 mtime=1599661832.619 24 atime=1599661832.763 24 ctime=1599661999.306 libprelude-5.2.0/libmissing/tests/test-btowc.c0000644000000000000000000000331113726163410021405 0ustar00rootroot00000000000000/* Test of conversion of unibyte character to wide character. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2008. */ #include #include #include "signature.h" SIGNATURE_CHECK (btowc, wint_t, (int)); #include #include #include "macros.h" int main (int argc, char *argv[]) { int c; /* configure should already have checked that the locale is supported. */ if (setlocale (LC_ALL, "") == NULL) return 1; ASSERT (btowc (EOF) == WEOF); if (argc > 1) switch (argv[1][0]) { case '1': /* Locale encoding is ISO-8859-1 or ISO-8859-15. */ for (c = 0; c < 0x80; c++) ASSERT (btowc (c) == c); for (c = 0xA0; c < 0x100; c++) ASSERT (btowc (c) != WEOF); return 0; case '2': /* Locale encoding is UTF-8. */ for (c = 0; c < 0x80; c++) ASSERT (btowc (c) == c); for (c = 0x80; c < 0x100; c++) ASSERT (btowc (c) == WEOF); return 0; } return 1; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-c-ctype.c0000644000000000000000000000010713726163410022640 xustar000000000000000023 mtime=1599661832.62 24 atime=1599661832.763 24 ctime=1599661999.308 libprelude-5.2.0/libmissing/tests/test-c-ctype.c0000644000000000000000000001464413726163410021646 0ustar00rootroot00000000000000/* Test of character handling in C locale. Copyright (C) 2005, 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2005. */ #include #include "c-ctype.h" #include #include #include #include "macros.h" static void test_agree_with_C_locale (void) { int c; for (c = 0; c <= UCHAR_MAX; c++) { ASSERT (c_isascii (c) == (isascii (c) != 0)); if (c_isascii (c)) { ASSERT (c_isalnum (c) == (isalnum (c) != 0)); ASSERT (c_isalpha (c) == (isalpha (c) != 0)); ASSERT (c_isblank (c) == (isblank (c) != 0)); ASSERT (c_iscntrl (c) == (iscntrl (c) != 0)); ASSERT (c_isdigit (c) == (isdigit (c) != 0)); ASSERT (c_islower (c) == (islower (c) != 0)); ASSERT (c_isgraph (c) == (isgraph (c) != 0)); ASSERT (c_isprint (c) == (isprint (c) != 0)); ASSERT (c_ispunct (c) == (ispunct (c) != 0)); ASSERT (c_isspace (c) == (isspace (c) != 0)); ASSERT (c_isupper (c) == (isupper (c) != 0)); ASSERT (c_isxdigit (c) == (isxdigit (c) != 0)); ASSERT (c_tolower (c) == tolower (c)); ASSERT (c_toupper (c) == toupper (c)); } } } static void test_all (void) { int c; int n_isascii = 0; for (c = CHAR_MIN; c <= UCHAR_MAX; c++) { if (! (0 <= c && c <= CHAR_MAX)) { ASSERT (! c_isascii (c)); ASSERT (! c_isalnum (c)); ASSERT (! c_isalpha (c)); ASSERT (! c_isblank (c)); ASSERT (! c_iscntrl (c)); ASSERT (! c_isdigit (c)); ASSERT (! c_islower (c)); ASSERT (! c_isgraph (c)); ASSERT (! c_isprint (c)); ASSERT (! c_ispunct (c)); ASSERT (! c_isspace (c)); ASSERT (! c_isupper (c)); ASSERT (! c_isxdigit (c)); ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == c); } n_isascii += c_isascii (c); #ifdef C_CTYPE_ASCII ASSERT (c_isascii (c) == (0 <= c && c <= 0x7f)); #endif ASSERT (c_isascii (c) == (c_isprint (c) || c_iscntrl (c))); ASSERT (c_isalnum (c) == (c_isalpha (c) || c_isdigit (c))); ASSERT (c_isalpha (c) == (c_islower (c) || c_isupper (c))); switch (c) { case '\t': case ' ': ASSERT (c_isblank (c) == 1); break; default: ASSERT (c_isblank (c) == 0); break; } #ifdef C_CTYPE_ASCII ASSERT (c_iscntrl (c) == ((c >= 0 && c < 0x20) || c == 0x7f)); #endif switch (c) { case '\a': case '\b': case '\f': case '\n': case '\r': case '\t': case '\v': ASSERT (c_iscntrl (c)); break; } ASSERT (! (c_iscntrl (c) && c_isprint (c))); switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': ASSERT (c_isdigit (c) == 1); break; default: ASSERT (c_isdigit (c) == 0); break; } switch (c) { case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': ASSERT (c_islower (c) == 1); ASSERT (c_toupper (c) == c - 'a' + 'A'); break; default: ASSERT (c_islower (c) == 0); ASSERT (c_toupper (c) == c); break; } #ifdef C_CTYPE_ASCII ASSERT (c_isgraph (c) == ((c >= 0x20 && c < 0x7f) && c != ' ')); ASSERT (c_isprint (c) == (c >= 0x20 && c < 0x7f)); #endif ASSERT (c_isgraph (c) == (c_isalnum (c) || c_ispunct (c))); ASSERT (c_isprint (c) == (c_isgraph (c) || c == ' ')); switch (c) { case '!': case '"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case ':': case ';': case '<': case '=': case '>': case '?': case '@': case '[': case'\\': case ']': case '^': case '_': case '`': case '{': case '|': case '}': case '~': ASSERT (c_ispunct (c) == 1); break; default: ASSERT (c_ispunct (c) == 0); break; } switch (c) { case ' ': case '\t': case '\n': case '\v': case '\f': case '\r': ASSERT (c_isspace (c) == 1); break; default: ASSERT (c_isspace (c) == 0); break; } switch (c) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': ASSERT (c_isupper (c) == 1); ASSERT (c_tolower (c) == c - 'A' + 'a'); break; default: ASSERT (c_isupper (c) == 0); ASSERT (c_tolower (c) == c); break; } switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': ASSERT (c_isxdigit (c) == 1); break; default: ASSERT (c_isxdigit (c) == 0); break; } } ASSERT (n_isascii == 128); } int main () { test_agree_with_C_locale (); test_all (); setlocale (LC_ALL, "de_DE"); test_all (); setlocale (LC_ALL, "ja_JP.EUC-JP"); test_all (); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-c-strcasecmp.c0000644000000000000000000000010613726163410023657 xustar000000000000000023 mtime=1599661832.62 24 atime=1599661832.764 23 ctime=1599661999.31 libprelude-5.2.0/libmissing/tests/test-c-strcasecmp.c0000644000000000000000000000422313726163410022656 0ustar00rootroot00000000000000/* Test of case-insensitive string comparison function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include "c-strcase.h" #include "c-ctype.h" #include #include #include "macros.h" int main (int argc, char *argv[]) { if (argc > 1) { /* configure should already have checked that the locale is supported. */ if (setlocale (LC_ALL, "") == NULL) return 1; } ASSERT (c_strcasecmp ("paragraph", "Paragraph") == 0); ASSERT (c_strcasecmp ("paragrapH", "parAgRaph") == 0); ASSERT (c_strcasecmp ("paragraph", "paraLyzed") < 0); ASSERT (c_strcasecmp ("paraLyzed", "paragraph") > 0); ASSERT (c_strcasecmp ("para", "paragraph") < 0); ASSERT (c_strcasecmp ("paragraph", "para") > 0); /* The following tests shows how c_strcasecmp() is different from strcasecmp(). */ ASSERT (c_strcasecmp ("\311mile", "\351mile") < 0); ASSERT (c_strcasecmp ("\351mile", "\311mile") > 0); /* The following tests shows how c_strcasecmp() is different from mbscasecmp(). */ ASSERT (c_strcasecmp ("\303\266zg\303\274r", "\303\226ZG\303\234R") > 0); /* özgür */ ASSERT (c_strcasecmp ("\303\226ZG\303\234R", "\303\266zg\303\274r") < 0); /* özgür */ #if C_CTYPE_ASCII /* This test shows how strings of different size cannot compare equal. */ ASSERT (c_strcasecmp ("turkish", "TURK\304\260SH") < 0); ASSERT (c_strcasecmp ("TURK\304\260SH", "turkish") > 0); #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-c-strncasecmp.c0000644000000000000000000000010713726163410024036 xustar000000000000000023 mtime=1599661832.62 24 atime=1599661832.764 24 ctime=1599661999.312 libprelude-5.2.0/libmissing/tests/test-c-strncasecmp.c0000644000000000000000000000601113726163410023031 0ustar00rootroot00000000000000/* Test of case-insensitive string comparison function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include "c-strcase.h" #include "c-ctype.h" #include #include #include "macros.h" int main (int argc, char *argv[]) { if (argc > 1) { /* configure should already have checked that the locale is supported. */ if (setlocale (LC_ALL, "") == NULL) return 1; } ASSERT (c_strncasecmp ("paragraph", "Paragraph", 1000000) == 0); ASSERT (c_strncasecmp ("paragraph", "Paragraph", 9) == 0); ASSERT (c_strncasecmp ("paragrapH", "parAgRaph", 1000000) == 0); ASSERT (c_strncasecmp ("paragrapH", "parAgRaph", 9) == 0); ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 10) < 0); ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 9) < 0); ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 5) < 0); ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 4) == 0); ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 10) > 0); ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 9) > 0); ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 5) > 0); ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 4) == 0); ASSERT (c_strncasecmp ("para", "paragraph", 10) < 0); ASSERT (c_strncasecmp ("para", "paragraph", 9) < 0); ASSERT (c_strncasecmp ("para", "paragraph", 5) < 0); ASSERT (c_strncasecmp ("para", "paragraph", 4) == 0); ASSERT (c_strncasecmp ("paragraph", "para", 10) > 0); ASSERT (c_strncasecmp ("paragraph", "para", 9) > 0); ASSERT (c_strncasecmp ("paragraph", "para", 5) > 0); ASSERT (c_strncasecmp ("paragraph", "para", 4) == 0); /* The following tests shows how c_strncasecmp() is different from strncasecmp(). */ ASSERT (c_strncasecmp ("\311mily", "\351mile", 4) < 0); ASSERT (c_strncasecmp ("\351mile", "\311mily", 4) > 0); /* The following tests shows how c_strncasecmp() is different from mbsncasecmp(). */ ASSERT (c_strncasecmp ("\303\266zg\303\274r", "\303\226ZG\303\234R", 99) > 0); /* özgür */ ASSERT (c_strncasecmp ("\303\226ZG\303\234R", "\303\266zg\303\274r", 99) < 0); /* özgür */ #if C_CTYPE_ASCII /* This test shows how strings of different size cannot compare equal. */ ASSERT (c_strncasecmp ("turkish", "TURK\304\260SH", 7) < 0); ASSERT (c_strncasecmp ("TURK\304\260SH", "turkish", 7) > 0); #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-cloexec.c0000644000000000000000000000010713726163410022716 xustar000000000000000023 mtime=1599661832.62 24 atime=1599661832.764 24 ctime=1599661999.313 libprelude-5.2.0/libmissing/tests/test-cloexec.c0000644000000000000000000000772713726163410021730 0ustar00rootroot00000000000000/* Test duplicating non-inheritable file descriptors. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include #include "cloexec.h" #include #include #include #if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif #endif #include "binary-io.h" #include "macros.h" /* Return non-zero if FD is open and inheritable across exec/spawn. */ static int is_inheritable (int fd) { #if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows, the initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE, and there is no fcntl. */ HANDLE h = (HANDLE) _get_osfhandle (fd); DWORD flags; if (h == INVALID_HANDLE_VALUE || GetHandleInformation (h, &flags) == 0) return 0; return (flags & HANDLE_FLAG_INHERIT) != 0; #else # ifndef F_GETFD # error Please port fcntl to your platform # endif int i = fcntl (fd, F_GETFD); return 0 <= i && (i & FD_CLOEXEC) == 0; #endif } #if !O_BINARY # define setmode(f,m) zero () static int zero (void) { return 0; } #endif /* Return non-zero if FD is open in the given MODE, which is either O_TEXT or O_BINARY. */ static int is_mode (int fd, int mode) { int value = setmode (fd, O_BINARY); setmode (fd, value); return mode == value; } int main (void) { const char *file = "test-cloexec.tmp"; int fd = creat (file, 0600); int fd2; int bad_fd = getdtablesize (); /* Assume std descriptors were provided by invoker. */ ASSERT (STDERR_FILENO < fd); ASSERT (is_inheritable (fd)); /* Normal use of set_cloexec_flag. */ ASSERT (set_cloexec_flag (fd, true) == 0); #if !(defined _WIN32 && ! defined __CYGWIN__) ASSERT (!is_inheritable (fd)); #endif ASSERT (set_cloexec_flag (fd, false) == 0); ASSERT (is_inheritable (fd)); /* Normal use of dup_cloexec. */ fd2 = dup_cloexec (fd); ASSERT (fd < fd2); ASSERT (!is_inheritable (fd2)); ASSERT (close (fd) == 0); ASSERT (dup_cloexec (fd2) == fd); ASSERT (!is_inheritable (fd)); ASSERT (close (fd2) == 0); /* On systems that distinguish between text and binary mode, dup_cloexec reuses the mode of the source. */ setmode (fd, O_BINARY); ASSERT (is_mode (fd, O_BINARY)); fd2 = dup_cloexec (fd); ASSERT (fd < fd2); ASSERT (is_mode (fd2, O_BINARY)); ASSERT (close (fd2) == 0); setmode (fd, O_TEXT); ASSERT (is_mode (fd, O_TEXT)); fd2 = dup_cloexec (fd); ASSERT (fd < fd2); ASSERT (is_mode (fd2, O_TEXT)); ASSERT (close (fd2) == 0); /* Test error handling. */ errno = 0; ASSERT (set_cloexec_flag (-1, false) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (set_cloexec_flag (bad_fd, false) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (set_cloexec_flag (fd2, false) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (dup_cloexec (-1) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (dup_cloexec (bad_fd) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (dup_cloexec (fd2) == -1); ASSERT (errno == EBADF); /* Clean up. */ ASSERT (close (fd) == 0); ASSERT (unlink (file) == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-close.c0000644000000000000000000000011013726163410022373 xustar000000000000000024 mtime=1599661832.621 24 atime=1599661832.764 24 ctime=1599661999.315 libprelude-5.2.0/libmissing/tests/test-close.c0000644000000000000000000000220213726163410021372 0ustar00rootroot00000000000000/* Test closing a file or socket. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (close, int, (int)); #include #include "macros.h" int main (void) { /* Test behaviour for invalid file descriptors. */ { errno = 0; ASSERT (close (-1) == -1); ASSERT (errno == EBADF); } { close (99); errno = 0; ASSERT (close (99) == -1); ASSERT (errno == EBADF); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-cond.c0000644000000000000000000000011013726163410022211 xustar000000000000000024 mtime=1599661832.621 24 atime=1599661832.764 24 ctime=1599661999.317 libprelude-5.2.0/libmissing/tests/test-cond.c0000644000000000000000000000763713726163410021231 0ustar00rootroot00000000000000/* Test of condition variables in multithreaded situations. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ #include #if USE_POSIX_THREADS || USE_SOLARIS_THREADS || USE_PTH_THREADS || USE_WINDOWS_THREADS /* Which tests to perform. Uncomment some of these, to verify that all tests crash if no locking is enabled. */ #define DO_TEST_COND 1 #define DO_TEST_TIMEDCOND 1 /* Whether to help the scheduler through explicit yield(). Uncomment this to see if the operating system has a fair scheduler. */ #define EXPLICIT_YIELD 1 /* Whether to print debugging messages. */ #define ENABLE_DEBUGGING 0 #include #include #include #include #include #include "glthread/cond.h" #include "glthread/lock.h" #include "glthread/thread.h" #include "glthread/yield.h" #if ENABLE_DEBUGGING # define dbgprintf printf #else # define dbgprintf if (0) printf #endif #if EXPLICIT_YIELD # define yield() gl_thread_yield () #else # define yield() #endif /* * Condition check */ static int cond_value = 0; gl_cond_define_initialized(static, condtest) gl_lock_define_initialized(static, lockcond) static void * cond_routine (void *arg) { gl_lock_lock (lockcond); while (!cond_value) { gl_cond_wait (condtest, lockcond); } gl_lock_unlock (lockcond); cond_value = 2; return NULL; } void test_cond () { int remain = 2; gl_thread_t thread; cond_value = 0; thread = gl_thread_create (cond_routine, NULL); do { yield (); remain = sleep (remain); } while (remain); /* signal condition */ gl_lock_lock (lockcond); cond_value = 1; gl_cond_signal (condtest); gl_lock_unlock (lockcond); gl_thread_join (thread, NULL); if (cond_value != 2) abort (); } /* * Timed Condition check */ static int cond_timeout; static void get_ts (struct timespec *ts) { struct timeval now; gettimeofday (&now, NULL); ts->tv_sec = now.tv_sec + 1; ts->tv_nsec = now.tv_usec * 1000; } static void * timedcond_routine (void *arg) { int ret; struct timespec ts; gl_lock_lock (lockcond); while (!cond_value) { get_ts (&ts); ret = glthread_cond_timedwait (&condtest, &lockcond, &ts); if (ret == ETIMEDOUT) cond_timeout = 1; } gl_lock_unlock (lockcond); return NULL; } static void test_timedcond (void) { int remain = 2; gl_thread_t thread; cond_value = cond_timeout = 0; thread = gl_thread_create (timedcond_routine, NULL); remain = 2; do { yield (); remain = sleep (remain); } while (remain); /* signal condition */ gl_lock_lock (lockcond); cond_value = 1; gl_cond_signal (condtest); gl_lock_unlock (lockcond); gl_thread_join (thread, NULL); if (!cond_timeout) abort (); } int main () { #if TEST_PTH_THREADS if (!pth_init ()) abort (); #endif #if DO_TEST_COND printf ("Starting test_cond ..."); fflush (stdout); test_cond (); printf (" OK\n"); fflush (stdout); #endif #if DO_TEST_TIMEDCOND printf ("Starting test_timedcond ..."); fflush (stdout); test_timedcond (); printf (" OK\n"); fflush (stdout); #endif return 0; } #else /* No multithreading available. */ #include int main () { fputs ("Skipping test: multithreading not enabled\n", stderr); return 77; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-connect.c0000644000000000000000000000011013726163410022717 xustar000000000000000024 mtime=1599661832.621 24 atime=1599661832.764 24 ctime=1599661999.318 libprelude-5.2.0/libmissing/tests/test-connect.c0000644000000000000000000000314313726163410021723 0ustar00rootroot00000000000000/* Test connecting a client socket. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (connect, int, (int, const struct sockaddr *, socklen_t)); #include #include #include #include #include "sockets.h" #include "macros.h" int main (void) { (void) gl_sockets_startup (SOCKETS_1_1); /* Test behaviour for invalid file descriptors. */ { struct sockaddr_in addr; addr.sin_family = AF_INET; inet_pton (AF_INET, "127.0.0.1", &addr.sin_addr); addr.sin_port = htons (80); { errno = 0; ASSERT (connect (-1, (const struct sockaddr *) &addr, sizeof (addr)) == -1); ASSERT (errno == EBADF); } { close (99); errno = 0; ASSERT (connect (99, (const struct sockaddr *) &addr, sizeof (addr)) == -1); ASSERT (errno == EBADF); } } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ctype.c0000644000000000000000000000010713726163410022420 xustar000000000000000024 mtime=1599661832.621 24 atime=1599661832.764 23 ctime=1599661999.32 libprelude-5.2.0/libmissing/tests/test-ctype.c0000644000000000000000000000154113726163410021416 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include #include int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-dup2.c0000644000000000000000000000011013726163410022140 xustar000000000000000024 mtime=1599661832.621 24 atime=1599661832.764 24 ctime=1599661999.322 libprelude-5.2.0/libmissing/tests/test-dup2.c0000644000000000000000000001375513726163410021156 0ustar00rootroot00000000000000/* Test duplicating file descriptors. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (dup2, int, (int, int)); #include #include #if HAVE_SYS_RESOURCE_H # include #endif #include "binary-io.h" #if GNULIB_TEST_CLOEXEC # include "cloexec.h" #endif #if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif #endif #include "macros.h" /* Return non-zero if FD is open. */ static int is_open (int fd) { #if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows, the initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE, and there is no fcntl. */ return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE; #else # ifndef F_GETFL # error Please port fcntl to your platform # endif return 0 <= fcntl (fd, F_GETFL); #endif } #if GNULIB_TEST_CLOEXEC /* Return non-zero if FD is open and inheritable across exec/spawn. */ static int is_inheritable (int fd) { # if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows, the initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE, and there is no fcntl. */ HANDLE h = (HANDLE) _get_osfhandle (fd); DWORD flags; if (h == INVALID_HANDLE_VALUE || GetHandleInformation (h, &flags) == 0) return 0; return (flags & HANDLE_FLAG_INHERIT) != 0; # else # ifndef F_GETFD # error Please port fcntl to your platform # endif int i = fcntl (fd, F_GETFD); return 0 <= i && (i & FD_CLOEXEC) == 0; # endif } #endif /* GNULIB_TEST_CLOEXEC */ #if !O_BINARY # define setmode(f,m) zero () static int zero (void) { return 0; } #endif /* Return non-zero if FD is open in the given MODE, which is either O_TEXT or O_BINARY. */ static int is_mode (int fd, int mode) { int value = setmode (fd, O_BINARY); setmode (fd, value); return mode == value; } int main (void) { const char *file = "test-dup2.tmp"; char buffer[1]; int bad_fd = getdtablesize (); int fd = open (file, O_CREAT | O_TRUNC | O_RDWR, 0600); /* Assume std descriptors were provided by invoker. */ ASSERT (STDERR_FILENO < fd); ASSERT (is_open (fd)); /* Ignore any other fd's leaked into this process. */ close (fd + 1); close (fd + 2); ASSERT (!is_open (fd + 1)); ASSERT (!is_open (fd + 2)); /* Assigning to self must be a no-op. */ ASSERT (dup2 (fd, fd) == fd); ASSERT (is_open (fd)); /* The source must be valid. */ errno = 0; ASSERT (dup2 (-1, fd) == -1); ASSERT (errno == EBADF); close (99); errno = 0; ASSERT (dup2 (99, fd) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (dup2 (AT_FDCWD, fd) == -1); ASSERT (errno == EBADF); ASSERT (is_open (fd)); /* If the source is not open, then the destination is unaffected. */ errno = 0; ASSERT (dup2 (fd + 1, fd + 1) == -1); ASSERT (errno == EBADF); ASSERT (!is_open (fd + 1)); errno = 0; ASSERT (dup2 (fd + 1, fd) == -1); ASSERT (errno == EBADF); ASSERT (is_open (fd)); /* The destination must be valid. */ errno = 0; ASSERT (dup2 (fd, -2) == -1); ASSERT (errno == EBADF); if (bad_fd > 256) { ASSERT (dup2 (fd, 255) == 255); ASSERT (dup2 (fd, 256) == 256); ASSERT (close (255) == 0); ASSERT (close (256) == 0); } ASSERT (dup2 (fd, bad_fd - 1) == bad_fd - 1); ASSERT (close (bad_fd - 1) == 0); errno = 0; ASSERT (dup2 (fd, bad_fd) == -1); ASSERT (errno == EBADF); /* Using dup2 can skip fds. */ ASSERT (dup2 (fd, fd + 2) == fd + 2); ASSERT (is_open (fd)); ASSERT (!is_open (fd + 1)); ASSERT (is_open (fd + 2)); /* Verify that dup2 closes the previous occupant of a fd. */ ASSERT (open ("/dev/null", O_WRONLY, 0600) == fd + 1); ASSERT (dup2 (fd + 1, fd) == fd); ASSERT (close (fd + 1) == 0); ASSERT (write (fd, "1", 1) == 1); ASSERT (dup2 (fd + 2, fd) == fd); ASSERT (lseek (fd, 0, SEEK_END) == 0); ASSERT (write (fd + 2, "2", 1) == 1); ASSERT (lseek (fd, 0, SEEK_SET) == 0); ASSERT (read (fd, buffer, 1) == 1); ASSERT (*buffer == '2'); #if GNULIB_TEST_CLOEXEC /* Any new fd created by dup2 must not be cloexec. */ ASSERT (close (fd + 2) == 0); ASSERT (dup_cloexec (fd) == fd + 1); ASSERT (!is_inheritable (fd + 1)); ASSERT (dup2 (fd + 1, fd + 1) == fd + 1); ASSERT (!is_inheritable (fd + 1)); ASSERT (dup2 (fd + 1, fd + 2) == fd + 2); ASSERT (!is_inheritable (fd + 1)); ASSERT (is_inheritable (fd + 2)); errno = 0; ASSERT (dup2 (fd + 1, -1) == -1); ASSERT (errno == EBADF); ASSERT (!is_inheritable (fd + 1)); #endif /* On systems that distinguish between text and binary mode, dup2 reuses the mode of the source. */ setmode (fd, O_BINARY); ASSERT (is_mode (fd, O_BINARY)); ASSERT (dup2 (fd, fd + 1) == fd + 1); ASSERT (is_mode (fd + 1, O_BINARY)); setmode (fd, O_TEXT); ASSERT (is_mode (fd, O_TEXT)); ASSERT (dup2 (fd, fd + 1) == fd + 1); ASSERT (is_mode (fd + 1, O_TEXT)); /* Clean up. */ ASSERT (close (fd + 2) == 0); ASSERT (close (fd + 1) == 0); ASSERT (close (fd) == 0); ASSERT (unlink (file) == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-environ.c0000644000000000000000000000011013726163410022746 xustar000000000000000024 mtime=1599661832.621 24 atime=1599661832.764 24 ctime=1599661999.323 libprelude-5.2.0/libmissing/tests/test-environ.c0000644000000000000000000000273013726163410021753 0ustar00rootroot00000000000000/* Test of environ variable. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2008. */ #include #include #include int main () { /* The environment variables that are set even in the weirdest situations are HOME and PATH. POSIX says that HOME is initialized by the system, and that PATH may be unset. But in practice it's more frequent to see HOME unset and PATH set. So we test the presence of PATH. */ char **remaining_variables = environ; char *string; for (; (string = *remaining_variables) != NULL; remaining_variables++) { if (strncmp (string, "PATH=", 5) == 0) /* Found the PATH environment variable. */ return 0; } /* Failed to find the PATH environment variable. */ return 1; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-errno.c0000644000000000000000000000011013726163410022413 xustar000000000000000024 mtime=1599661832.622 24 atime=1599661832.764 24 ctime=1599661999.325 libprelude-5.2.0/libmissing/tests/test-errno.c0000644000000000000000000000555513726163410021430 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2008. */ #include #include /* Verify that the POSIX mandated errno values exist and can be used as initializers outside of a function. The variable names happen to match the Linux/x86 error numbers. */ int e1 = EPERM; int e2 = ENOENT; int e3 = ESRCH; int e4 = EINTR; int e5 = EIO; int e6 = ENXIO; int e7 = E2BIG; int e8 = ENOEXEC; int e9 = EBADF; int e10 = ECHILD; int e11 = EAGAIN; int e11a = EWOULDBLOCK; int e12 = ENOMEM; int e13 = EACCES; int e14 = EFAULT; int e16 = EBUSY; int e17 = EEXIST; int e18 = EXDEV; int e19 = ENODEV; int e20 = ENOTDIR; int e21 = EISDIR; int e22 = EINVAL; int e23 = ENFILE; int e24 = EMFILE; int e25 = ENOTTY; int e26 = ETXTBSY; int e27 = EFBIG; int e28 = ENOSPC; int e29 = ESPIPE; int e30 = EROFS; int e31 = EMLINK; int e32 = EPIPE; int e33 = EDOM; int e34 = ERANGE; int e35 = EDEADLK; int e36 = ENAMETOOLONG; int e37 = ENOLCK; int e38 = ENOSYS; int e39 = ENOTEMPTY; int e40 = ELOOP; int e42 = ENOMSG; int e43 = EIDRM; int e67 = ENOLINK; int e71 = EPROTO; int e72 = EMULTIHOP; int e74 = EBADMSG; int e75 = EOVERFLOW; int e84 = EILSEQ; int e88 = ENOTSOCK; int e89 = EDESTADDRREQ; int e90 = EMSGSIZE; int e91 = EPROTOTYPE; int e92 = ENOPROTOOPT; int e93 = EPROTONOSUPPORT; int e95 = EOPNOTSUPP; int e95a = ENOTSUP; int e97 = EAFNOSUPPORT; int e98 = EADDRINUSE; int e99 = EADDRNOTAVAIL; int e100 = ENETDOWN; int e101 = ENETUNREACH; int e102 = ENETRESET; int e103 = ECONNABORTED; int e104 = ECONNRESET; int e105 = ENOBUFS; int e106 = EISCONN; int e107 = ENOTCONN; int e110 = ETIMEDOUT; int e111 = ECONNREFUSED; int e113 = EHOSTUNREACH; int e114 = EALREADY; int e115 = EINPROGRESS; int e116 = ESTALE; int e122 = EDQUOT; int e125 = ECANCELED; int e130 = EOWNERDEAD; int e131 = ENOTRECOVERABLE; /* Don't verify that these errno values are all different, except for possibly EWOULDBLOCK == EAGAIN. Even Linux/x86 does not pass this check: it has ENOTSUP == EOPNOTSUPP. */ int main () { /* Verify that errno can be assigned. */ errno = EOVERFLOW; /* snprintf() callers want to distinguish EINVAL and EOVERFLOW. */ if (errno == EINVAL) return 1; return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fclose.c0000644000000000000000000000011013726163410022541 xustar000000000000000024 mtime=1599661832.622 24 atime=1599661832.764 24 ctime=1599661999.327 libprelude-5.2.0/libmissing/tests/test-fclose.c0000644000000000000000000000544613726163410021555 0ustar00rootroot00000000000000/* Test of fclose module. Copyright (C) 2011-2018 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 3, 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, see . */ /* Written by Eric Blake. */ #include #include #include "signature.h" SIGNATURE_CHECK (fclose, int, (FILE *)); #include #include #include #include #include #include "macros.h" #define BASE "test-fclose.t" int main (int argc, char **argv) { const char buf[] = "hello world"; int fd; int fd2; FILE *f; /* Prepare a seekable file. */ fd = open (BASE, O_RDWR | O_CREAT | O_TRUNC, 0600); ASSERT (0 <= fd); ASSERT (write (fd, buf, sizeof buf) == sizeof buf); ASSERT (lseek (fd, 1, SEEK_SET) == 1); /* Create an output stream visiting the file; when it is closed, all other file descriptors visiting the file must see the new file position. */ fd2 = dup (fd); ASSERT (0 <= fd2); f = fdopen (fd2, "w"); ASSERT (f); ASSERT (fputc (buf[1], f) == buf[1]); ASSERT (fclose (f) == 0); errno = 0; ASSERT (lseek (fd2, 0, SEEK_CUR) == -1); ASSERT (errno == EBADF); ASSERT (lseek (fd, 0, SEEK_CUR) == 2); /* Likewise for an input stream. */ fd2 = dup (fd); ASSERT (0 <= fd2); f = fdopen (fd2, "r"); ASSERT (f); ASSERT (fgetc (f) == buf[2]); ASSERT (fclose (f) == 0); errno = 0; ASSERT (lseek (fd2, 0, SEEK_CUR) == -1); ASSERT (errno == EBADF); ASSERT (lseek (fd, 0, SEEK_CUR) == 3); /* Test that fclose() sets errno if someone else closes the stream fd behind the back of stdio. */ { FILE *fp = fdopen (fd, "w+"); ASSERT (fp != NULL); ASSERT (close (fd) == 0); errno = 0; ASSERT (fclose (fp) == EOF); ASSERT (errno == EBADF); } /* Test that fclose() sets errno if the stream was constructed with an invalid file descriptor. */ { FILE *fp = fdopen (-1, "r"); if (fp != NULL) { errno = 0; ASSERT (fclose (fp) == EOF); ASSERT (errno == EBADF); } } { FILE *fp; close (99); fp = fdopen (99, "r"); if (fp != NULL) { errno = 0; ASSERT (fclose (fp) == EOF); ASSERT (errno == EBADF); } } /* Clean up. */ ASSERT (remove (BASE) == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fcntl.c0000644000000000000000000000011013726163410022374 xustar000000000000000024 mtime=1599661832.622 24 atime=1599661832.764 24 ctime=1599661999.328 libprelude-5.2.0/libmissing/tests/test-fcntl.c0000644000000000000000000002345013726163410021403 0ustar00rootroot00000000000000/* Test of fcntl(2). Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include /* Specification. */ #include #include "signature.h" SIGNATURE_CHECK (fcntl, int, (int, int, ...)); /* Helpers. */ #include #include #include #include #if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif #endif #include "binary-io.h" #include "macros.h" #if !O_BINARY # define setmode(f,m) zero () static int zero (void) { return 0; } #endif /* Return true if FD is open. */ static bool is_open (int fd) { #if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows, the initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE, and there is no fcntl. */ return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE; #else # ifndef F_GETFL # error Please port fcntl to your platform # endif return 0 <= fcntl (fd, F_GETFL); #endif } /* Return true if FD is open and inheritable across exec/spawn. */ static bool is_inheritable (int fd) { #if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows, the initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE, and there is no fcntl. */ HANDLE h = (HANDLE) _get_osfhandle (fd); DWORD flags; if (h == INVALID_HANDLE_VALUE || GetHandleInformation (h, &flags) == 0) return false; return (flags & HANDLE_FLAG_INHERIT) != 0; #else # ifndef F_GETFD # error Please port fcntl to your platform # endif int i = fcntl (fd, F_GETFD); return 0 <= i && (i & FD_CLOEXEC) == 0; #endif } /* Return non-zero if FD is open in the given MODE, which is either O_TEXT or O_BINARY. */ static bool is_mode (int fd, int mode) { int value = setmode (fd, O_BINARY); setmode (fd, value); return mode == value; } /* Since native fcntl can have more supported operations than our replacement is aware of, and since various operations assign different types to the vararg argument, a wrapper around fcntl must be able to pass a vararg of unknown type on through to the original fcntl. Make sure that this works properly: func1 behaves like the original fcntl interpreting the vararg as an int or a pointer to a struct, and func2 behaves like rpl_fcntl that doesn't know what type to forward. */ struct dummy_struct { long filler; int value; }; static int func1 (int a, ...) { va_list arg; int i; va_start (arg, a); if (a < 4) i = va_arg (arg, int); else { struct dummy_struct *s = va_arg (arg, struct dummy_struct *); i = s->value; } va_end (arg); return i; } static int func2 (int a, ...) { va_list arg; void *p; va_start (arg, a); p = va_arg (arg, void *); va_end (arg); return func1 (a, p); } /* Ensure that all supported fcntl actions are distinct, and usable in preprocessor expressions. */ static void check_flags (void) { switch (0) { case F_DUPFD: #if F_DUPFD #endif case F_DUPFD_CLOEXEC: #if F_DUPFD_CLOEXEC #endif case F_GETFD: #if F_GETFD #endif #ifdef F_SETFD case F_SETFD: # if F_SETFD # endif #endif #ifdef F_GETFL case F_GETFL: # if F_GETFL # endif #endif #ifdef F_SETFL case F_SETFL: # if F_SETFL # endif #endif #ifdef F_GETOWN case F_GETOWN: # if F_GETOWN # endif #endif #ifdef F_SETOWN case F_SETOWN: # if F_SETOWN # endif #endif #ifdef F_GETLK case F_GETLK: # if F_GETLK # endif #endif #ifdef F_SETLK case F_SETLK: # if F_SETLK # endif #endif #ifdef F_SETLKW case F_SETLKW: # if F_SETLKW # endif #endif ; } } int main (void) { const char *file = "test-fcntl.tmp"; int fd; int bad_fd = getdtablesize (); /* Sanity check that rpl_fcntl is likely to work. */ ASSERT (func2 (1, 2) == 2); ASSERT (func2 (2, -2) == -2); ASSERT (func2 (3, 0x80000000) == 0x80000000); { struct dummy_struct s = { 0L, 4 }; ASSERT (func2 (4, &s) == 4); } check_flags (); /* Assume std descriptors were provided by invoker, and ignore fds that might have been inherited. */ fd = creat (file, 0600); ASSERT (STDERR_FILENO < fd); close (fd + 1); close (fd + 2); /* For F_DUPFD*, the source must be valid. */ errno = 0; ASSERT (fcntl (-1, F_DUPFD, 0) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (fd + 1, F_DUPFD, 0) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (bad_fd, F_DUPFD, 0) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (-1, F_DUPFD_CLOEXEC, 0) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (fd + 1, F_DUPFD_CLOEXEC, 0) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (bad_fd, F_DUPFD_CLOEXEC, 0) == -1); ASSERT (errno == EBADF); /* For F_DUPFD*, the destination must be valid. */ errno = 0; ASSERT (fcntl (fd, F_DUPFD, -1) == -1); ASSERT (errno == EINVAL); errno = 0; ASSERT (fcntl (fd, F_DUPFD, bad_fd) == -1); ASSERT (errno == EINVAL); errno = 0; ASSERT (fcntl (fd, F_DUPFD_CLOEXEC, -1) == -1); ASSERT (errno == EINVAL); errno = 0; ASSERT (fcntl (fd, F_DUPFD_CLOEXEC, bad_fd) == -1); ASSERT (errno == EINVAL || errno == EMFILE /* WSL */); /* For F_DUPFD*, check for correct inheritance, as well as preservation of text vs. binary. */ setmode (fd, O_BINARY); ASSERT (is_open (fd)); ASSERT (!is_open (fd + 1)); ASSERT (!is_open (fd + 2)); ASSERT (is_inheritable (fd)); ASSERT (is_mode (fd, O_BINARY)); ASSERT (fcntl (fd, F_DUPFD, fd) == fd + 1); ASSERT (is_open (fd)); ASSERT (is_open (fd + 1)); ASSERT (!is_open (fd + 2)); ASSERT (is_inheritable (fd + 1)); ASSERT (is_mode (fd, O_BINARY)); ASSERT (is_mode (fd + 1, O_BINARY)); ASSERT (close (fd + 1) == 0); ASSERT (fcntl (fd, F_DUPFD_CLOEXEC, fd + 2) == fd + 2); ASSERT (is_open (fd)); ASSERT (!is_open (fd + 1)); ASSERT (is_open (fd + 2)); ASSERT (is_inheritable (fd)); ASSERT (!is_inheritable (fd + 2)); ASSERT (is_mode (fd, O_BINARY)); ASSERT (is_mode (fd + 2, O_BINARY)); ASSERT (close (fd) == 0); setmode (fd + 2, O_TEXT); ASSERT (fcntl (fd + 2, F_DUPFD, fd + 1) == fd + 1); ASSERT (!is_open (fd)); ASSERT (is_open (fd + 1)); ASSERT (is_open (fd + 2)); ASSERT (is_inheritable (fd + 1)); ASSERT (!is_inheritable (fd + 2)); ASSERT (is_mode (fd + 1, O_TEXT)); ASSERT (is_mode (fd + 2, O_TEXT)); ASSERT (close (fd + 1) == 0); ASSERT (fcntl (fd + 2, F_DUPFD_CLOEXEC, 0) == fd); ASSERT (is_open (fd)); ASSERT (!is_open (fd + 1)); ASSERT (is_open (fd + 2)); ASSERT (!is_inheritable (fd)); ASSERT (!is_inheritable (fd + 2)); ASSERT (is_mode (fd, O_TEXT)); ASSERT (is_mode (fd + 2, O_TEXT)); ASSERT (close (fd + 2) == 0); /* Test F_GETFD on invalid file descriptors. */ errno = 0; ASSERT (fcntl (-1, F_GETFD) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (fd + 1, F_GETFD) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (bad_fd, F_GETFD) == -1); ASSERT (errno == EBADF); /* Test F_GETFD, the FD_CLOEXEC bit. */ { int result = fcntl (fd, F_GETFD); ASSERT (0 <= result); ASSERT ((result & FD_CLOEXEC) == FD_CLOEXEC); ASSERT (dup (fd) == fd + 1); result = fcntl (fd + 1, F_GETFD); ASSERT (0 <= result); ASSERT ((result & FD_CLOEXEC) == 0); ASSERT (close (fd + 1) == 0); } #ifdef F_SETFD /* Test F_SETFD on invalid file descriptors. */ errno = 0; ASSERT (fcntl (-1, F_SETFD, 0) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (fd + 1, F_SETFD, 0) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (bad_fd, F_SETFD, 0) == -1); ASSERT (errno == EBADF); #endif #ifdef F_GETFL /* Test F_GETFL on invalid file descriptors. */ errno = 0; ASSERT (fcntl (-1, F_GETFL) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (fd + 1, F_GETFL) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (bad_fd, F_GETFL) == -1); ASSERT (errno == EBADF); #endif #ifdef F_SETFL /* Test F_SETFL on invalid file descriptors. */ errno = 0; ASSERT (fcntl (-1, F_SETFL, 0) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (fd + 1, F_SETFL, 0) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (bad_fd, F_SETFL, 0) == -1); ASSERT (errno == EBADF); #endif #ifdef F_GETOWN /* Test F_GETOWN on invalid file descriptors. */ errno = 0; ASSERT (fcntl (-1, F_GETOWN) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (fd + 1, F_GETOWN) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (bad_fd, F_GETOWN) == -1); ASSERT (errno == EBADF); #endif #ifdef F_SETOWN /* Test F_SETFL on invalid file descriptors. */ errno = 0; ASSERT (fcntl (-1, F_SETOWN, 0) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (fd + 1, F_SETOWN, 0) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (fcntl (bad_fd, F_SETOWN, 0) == -1); ASSERT (errno == EBADF); #endif /* Cleanup. */ ASSERT (close (fd) == 0); ASSERT (unlink (file) == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fcntl-h.c0000644000000000000000000000010713726163410022627 xustar000000000000000024 mtime=1599661832.622 24 atime=1599661832.764 23 ctime=1599661999.33 libprelude-5.2.0/libmissing/tests/test-fcntl-h.c0000644000000000000000000000554313726163410021633 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include /* Check that the various O_* macros are defined. */ int o = (O_DIRECT | O_DIRECTORY | O_DSYNC | O_IGNORE_CTTY | O_NDELAY | O_NOATIME | O_NONBLOCK | O_NOCTTY | O_NOFOLLOW | O_NOLINK | O_NOLINKS | O_NOTRANS | O_RSYNC | O_SYNC | O_TTY_INIT | O_BINARY | O_TEXT); /* Check that the various SEEK_* macros are defined. */ int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET }; /* Check that the FD_* macros are defined. */ int i = FD_CLOEXEC; /* Check that the types are all defined. */ pid_t t1; off_t t2; mode_t t3; int main (void) { /* Ensure no overlap in SEEK_*. */ switch (0) { case SEEK_CUR: case SEEK_END: case SEEK_SET: ; } /* Ensure no dangerous overlap in non-zero gnulib-defined replacements. */ switch (O_RDONLY) { /* Access modes */ case O_RDONLY: case O_WRONLY: case O_RDWR: #if O_EXEC && O_EXEC != O_RDONLY case O_EXEC: #endif #if O_SEARCH && O_EXEC != O_SEARCH && O_SEARCH != O_RDONLY case O_SEARCH: #endif i = ! (~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH)); break; /* Everyone should have these */ case O_CREAT: case O_EXCL: case O_TRUNC: case O_APPEND: break; /* These might be 0 or O_RDONLY, only test non-zero versions. */ #if O_CLOEXEC case O_CLOEXEC: #endif #if O_DIRECT case O_DIRECT: #endif #if O_DIRECTORY case O_DIRECTORY: #endif #if O_DSYNC case O_DSYNC: #endif #if O_IGNORE_CTTY case O_IGNORE_CTTY: #endif #if O_NOATIME case O_NOATIME: #endif #if O_NONBLOCK case O_NONBLOCK: #endif #if O_NOCTTY case O_NOCTTY: #endif #if O_NOFOLLOW case O_NOFOLLOW: #endif #if O_NOLINK case O_NOLINK: #endif #if O_NOLINKS case O_NOLINKS: #endif #if O_NOTRANS case O_NOTRANS: #endif #if O_RSYNC && O_RSYNC != O_DSYNC case O_RSYNC: #endif #if O_SYNC && O_SYNC != O_DSYNC && O_SYNC != O_RSYNC case O_SYNC: #endif #if O_TTY_INIT case O_TTY_INIT: #endif #if O_BINARY case O_BINARY: #endif #if O_TEXT case O_TEXT: #endif ; } return !i; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fdopen.c0000644000000000000000000000011013726163410022541 xustar000000000000000024 mtime=1599661832.622 24 atime=1599661832.764 24 ctime=1599661999.332 libprelude-5.2.0/libmissing/tests/test-fdopen.c0000644000000000000000000000255713726163410021555 0ustar00rootroot00000000000000/* Test opening a stream with a file descriptor. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (fdopen, FILE *, (int, const char *)); #include #include #include "macros.h" int main (void) { /* Test behavior on failure. POSIX makes it hard to check for failure, since the behavior is not well-defined on invalid file descriptors, so try fdopen 1000 times and if that's not enough to fail due to EMFILE, so be it. */ int i; for (i = 0; i < 1000; i++) { errno = 0; if (! fdopen (STDOUT_FILENO, "w")) { ASSERT (errno != 0); break; } } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fflush.c0000644000000000000000000000011013726163410022555 xustar000000000000000024 mtime=1599661832.623 24 atime=1599661832.764 24 ctime=1599661999.333 libprelude-5.2.0/libmissing/tests/test-fflush.c0000644000000000000000000001217013726163410021561 0ustar00rootroot00000000000000/* Test of POSIX compatible fflush() function. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake, 2007. */ #include /* None of the files accessed by this test are large, so disable the ftell link warning if we are not using the gnulib ftell module. */ #define _GL_NO_LARGE_FILES #include #include "signature.h" SIGNATURE_CHECK (fflush, int, (FILE *)); #include #include #include "macros.h" int main (void) { FILE *f; char buffer[10]; int fd; /* Create test file. */ f = fopen ("test-fflush.txt", "w"); if (!f || fwrite ("1234567890ABCDEFG", 1, 17, f) != 17 || fclose (f) != 0) { fputs ("Failed to create sample file.\n", stderr); unlink ("test-fflush.txt"); return 1; } /* Test fflush. */ f = fopen ("test-fflush.txt", "r"); ASSERT (f != NULL); fd = fileno (f); if (!f || 0 > fd || fread (buffer, 1, 5, f) != 5) { fputs ("Failed initial read of sample file.\n", stderr); if (f) fclose (f); unlink ("test-fflush.txt"); return 1; } /* For deterministic results, ensure f read a bigger buffer. This is not the case on BeOS, nor on uClibc. */ #if !(defined __BEOS__ || defined __UCLIBC__) if (lseek (fd, 0, SEEK_CUR) == 5) { fputs ("Sample file was not buffered after fread.\n", stderr); fclose (f); unlink ("test-fflush.txt"); return 1; } #endif /* POSIX requires fflush-fseek to set file offset of fd. */ if (fflush (f) != 0 || fseeko (f, 0, SEEK_CUR) != 0) { fputs ("Failed to flush-fseek sample file.\n", stderr); fclose (f); unlink ("test-fflush.txt"); return 1; } /* Check that offset is correct. */ if (lseek (fd, 0, SEEK_CUR) != 5) { fprintf (stderr, "File offset is wrong after fseek: %ld.\n", (long) lseek (fd, 0, SEEK_CUR)); fclose (f); unlink ("test-fflush.txt"); return 1; } if (ftell (f) != 5) { fprintf (stderr, "ftell result is wrong after fseek: %ld.\n", (long) ftell (f)); fclose (f); unlink ("test-fflush.txt"); return 1; } /* Check that file reading resumes at correct location. */ if (fgetc (f) != '6') { fputs ("Failed to read next byte after fseek.\n", stderr); fclose (f); unlink ("test-fflush.txt"); return 1; } /* For deterministic results, ensure f read a bigger buffer. */ if (lseek (fd, 0, SEEK_CUR) == 6) { fputs ("Sample file was not buffered after fgetc.\n", stderr); fclose (f); unlink ("test-fflush.txt"); return 1; } /* POSIX requires fflush-fseeko to set file offset of fd. */ if (fflush (f) != 0 || fseeko (f, 0, SEEK_CUR) != 0) { fputs ("Failed to flush-fseeko sample file.\n", stderr); fclose (f); unlink ("test-fflush.txt"); return 1; } /* Check that offset is correct. */ if (lseek (fd, 0, SEEK_CUR) != 6) { fprintf (stderr, "File offset is wrong after fseeko: %ld.\n", (long) lseek (fd, 0, SEEK_CUR)); fclose (f); unlink ("test-fflush.txt"); return 1; } if (ftell (f) != 6) { fprintf (stderr, "ftell result is wrong after fseeko: %ld.\n", (long) ftell (f)); fclose (f); unlink ("test-fflush.txt"); return 1; } /* Check that file reading resumes at correct location. */ if (fgetc (f) != '7') { fputs ("Failed to read next byte after fseeko.\n", stderr); fclose (f); unlink ("test-fflush.txt"); return 1; } fclose (f); /* Test that fflush() sets errno if someone else closes the stream fd behind the back of stdio. */ { FILE *fp = fopen ("test-fflush.txt", "w"); ASSERT (fp != NULL); fputc ('x', fp); ASSERT (close (fileno (fp)) == 0); errno = 0; ASSERT (fflush (fp) == EOF); ASSERT (errno == EBADF); fclose (fp); } /* Test that fflush() sets errno if the stream was constructed with an invalid file descriptor. */ { FILE *fp = fdopen (-1, "w"); if (fp != NULL) { fputc ('x', fp); errno = 0; ASSERT (fflush (fp) == EOF); ASSERT (errno == EBADF); } } { FILE *fp; close (99); fp = fdopen (99, "w"); if (fp != NULL) { fputc ('x', fp); errno = 0; ASSERT (fflush (fp) == EOF); ASSERT (errno == EBADF); } } /* Clean up. */ unlink ("test-fflush.txt"); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fflush2.c0000644000000000000000000000011013726163410022637 xustar000000000000000024 mtime=1599661832.623 24 atime=1599661832.764 24 ctime=1599661999.335 libprelude-5.2.0/libmissing/tests/test-fflush2.c0000644000000000000000000000637213726163410021652 0ustar00rootroot00000000000000/* Test of POSIX compatible fflush() function. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ #include #include #include "binary-io.h" #include "macros.h" int main (int argc, char **argv) { int c; /* Avoid the well-known bugs of fflush() on streams in O_TEXT mode on native Windows platforms. */ set_binary_mode (0, O_BINARY); if (argc > 1) switch (argv[1][0]) { case '1': /* Check fflush after a backup ungetc() call. This is case 1a in terms of , according to the Austin Group's resolution on 2009-01-08. */ c = fgetc (stdin); ASSERT (c == '#'); c = fgetc (stdin); ASSERT (c == '!'); /* Here the file-position indicator must be 2. */ c = ungetc ('!', stdin); ASSERT (c == '!'); fflush (stdin); /* Here the file-position indicator must be 1. */ c = fgetc (stdin); ASSERT (c == '!'); c = fgetc (stdin); ASSERT (c == '/'); return 0; case '2': /* Check fflush after a non-backup ungetc() call. This is case 2a in terms of , according to the Austin Group's resolution on 2009-01-08. */ /* Check that fflush after a non-backup ungetc() call discards the ungetc buffer. This is mandated by POSIX : "The value of the file-position indicator for the stream after reading or discarding all pushed-back bytes shall be the same as it was before the bytes were pushed back." "[After fflush(),] the file offset of the underlying open file description shall be set to the file position of the stream, and any characters pushed back onto the stream by ungetc() or ungetwc() that have not subsequently been read from the stream shall be discarded." */ c = fgetc (stdin); ASSERT (c == '#'); c = fgetc (stdin); ASSERT (c == '!'); /* Here the file-position indicator must be 2. */ c = ungetc ('@', stdin); ASSERT (c == '@'); fflush (stdin); /* Here the file-position indicator must be 1. */ c = fgetc (stdin); ASSERT (c == '!'); c = fgetc (stdin); ASSERT (c == '/'); return 0; } return 1; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fgetc.c0000644000000000000000000000011013726163410022356 xustar000000000000000024 mtime=1599661832.623 24 atime=1599661832.764 24 ctime=1599661999.337 libprelude-5.2.0/libmissing/tests/test-fgetc.c0000644000000000000000000000476513726163410021375 0ustar00rootroot00000000000000/* Test of fgetc() function. Copyright (C) 2011-2018 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 3, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (fgetc, int, (FILE *)); #include #include #include #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #include "macros.h" int main (int argc, char **argv) { const char *filename = "test-fgetc.txt"; /* We don't have an fgetc() function that installs an invalid parameter handler so far. So install that handler here, explicitly. */ #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING gl_msvc_inval_ensure_handler (); #endif /* Prepare a file. */ { const char text[] = "hello world"; int fd = open (filename, O_RDWR | O_CREAT | O_TRUNC, 0600); ASSERT (fd >= 0); ASSERT (write (fd, text, sizeof (text)) == sizeof (text)); ASSERT (close (fd) == 0); } /* Test that fgetc() sets errno if someone else closes the stream fd behind the back of stdio. */ { FILE *fp = fopen (filename, "r"); ASSERT (fp != NULL); ASSERT (close (fileno (fp)) == 0); errno = 0; ASSERT (fgetc (fp) == EOF); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } /* Test that fgetc() sets errno if the stream was constructed with an invalid file descriptor. */ { FILE *fp = fdopen (-1, "r"); if (fp != NULL) { errno = 0; ASSERT (fgetc (fp) == EOF); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } { FILE *fp; close (99); fp = fdopen (99, "r"); if (fp != NULL) { errno = 0; ASSERT (fgetc (fp) == EOF); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } /* Clean up. */ unlink (filename); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-float.c0000644000000000000000000000011013726163410022373 xustar000000000000000024 mtime=1599661832.623 24 atime=1599661832.764 24 ctime=1599661999.338 libprelude-5.2.0/libmissing/tests/test-float.c0000644000000000000000000002162513726163410021404 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2011. */ #include #include #include "fpucw.h" #include "macros.h" /* Check that FLT_RADIX is a constant expression. */ int a[] = { FLT_RADIX }; #if FLT_RADIX == 2 /* Return 2^n. */ static float pow2f (int n) { int k = n; volatile float x = 1; volatile float y = 2; /* Invariant: 2^n == x * y^k. */ if (k < 0) { y = 0.5f; k = - k; } while (k > 0) { if (k != 2 * (k / 2)) { x = x * y; k = k - 1; } if (k == 0) break; y = y * y; k = k / 2; } /* Now k == 0, hence x == 2^n. */ return x; } /* Return 2^n. */ static double pow2d (int n) { int k = n; volatile double x = 1; volatile double y = 2; /* Invariant: 2^n == x * y^k. */ if (k < 0) { y = 0.5; k = - k; } while (k > 0) { if (k != 2 * (k / 2)) { x = x * y; k = k - 1; } if (k == 0) break; y = y * y; k = k / 2; } /* Now k == 0, hence x == 2^n. */ return x; } /* Return 2^n. */ static long double pow2l (int n) { int k = n; volatile long double x = 1; volatile long double y = 2; /* Invariant: 2^n == x * y^k. */ if (k < 0) { y = 0.5L; k = - k; } while (k > 0) { if (k != 2 * (k / 2)) { x = x * y; k = k - 1; } if (k == 0) break; y = y * y; k = k / 2; } /* Now k == 0, hence x == 2^n. */ return x; } /* ----------------------- Check macros for 'float' ----------------------- */ /* Check that the FLT_* macros expand to constant expressions. */ int fb[] = { FLT_MANT_DIG, FLT_MIN_EXP, FLT_MAX_EXP, FLT_DIG, FLT_MIN_10_EXP, FLT_MAX_10_EXP }; float fc[] = { FLT_EPSILON, FLT_MIN, FLT_MAX }; static void test_float (void) { /* Check that the value of FLT_MIN_EXP is well parenthesized. */ ASSERT ((FLT_MIN_EXP % 101111) == (FLT_MIN_EXP) % 101111); /* Check that the value of DBL_MIN_10_EXP is well parenthesized. */ ASSERT ((FLT_MIN_10_EXP % 101111) == (FLT_MIN_10_EXP) % 101111); /* Check that 'float' is as specified in IEEE 754. */ ASSERT (FLT_MANT_DIG == 24); ASSERT (FLT_MIN_EXP == -125); ASSERT (FLT_MAX_EXP == 128); /* Check the value of FLT_MIN_10_EXP. */ ASSERT (FLT_MIN_10_EXP == - (int) (- (FLT_MIN_EXP - 1) * 0.30103)); /* Check the value of FLT_DIG. */ ASSERT (FLT_DIG == (int) ((FLT_MANT_DIG - 1) * 0.30103)); /* Check the value of FLT_MIN_10_EXP. */ ASSERT (FLT_MIN_10_EXP == - (int) (- (FLT_MIN_EXP - 1) * 0.30103)); /* Check the value of FLT_MAX_10_EXP. */ ASSERT (FLT_MAX_10_EXP == (int) (FLT_MAX_EXP * 0.30103)); /* Check the value of FLT_MAX. */ { volatile float m = FLT_MAX; int n; ASSERT (m + m > m); for (n = 0; n <= 2 * FLT_MANT_DIG; n++) { volatile float pow2_n = pow2f (n); /* 2^n */ volatile float x = m + (m / pow2_n); if (x > m) ASSERT (x + x == x); else ASSERT (!(x + x == x)); } } /* Check the value of FLT_MIN. */ { volatile float m = FLT_MIN; volatile float x = pow2f (FLT_MIN_EXP - 1); ASSERT (m == x); } /* Check the value of FLT_EPSILON. */ { volatile float e = FLT_EPSILON; volatile float me; int n; me = 1.0f + e; ASSERT (me > 1.0f); ASSERT (me - 1.0f == e); for (n = 0; n <= 2 * FLT_MANT_DIG; n++) { volatile float half_n = pow2f (- n); /* 2^-n */ volatile float x = me - half_n; if (x < me) ASSERT (x <= 1.0f); } } } /* ----------------------- Check macros for 'double' ----------------------- */ /* Check that the DBL_* macros expand to constant expressions. */ int db[] = { DBL_MANT_DIG, DBL_MIN_EXP, DBL_MAX_EXP, DBL_DIG, DBL_MIN_10_EXP, DBL_MAX_10_EXP }; double dc[] = { DBL_EPSILON, DBL_MIN, DBL_MAX }; static void test_double (void) { /* Check that the value of DBL_MIN_EXP is well parenthesized. */ ASSERT ((DBL_MIN_EXP % 101111) == (DBL_MIN_EXP) % 101111); /* Check that the value of DBL_MIN_10_EXP is well parenthesized. */ ASSERT ((DBL_MIN_10_EXP % 101111) == (DBL_MIN_10_EXP) % 101111); /* Check that 'double' is as specified in IEEE 754. */ ASSERT (DBL_MANT_DIG == 53); ASSERT (DBL_MIN_EXP == -1021); ASSERT (DBL_MAX_EXP == 1024); /* Check the value of DBL_MIN_10_EXP. */ ASSERT (DBL_MIN_10_EXP == - (int) (- (DBL_MIN_EXP - 1) * 0.30103)); /* Check the value of DBL_DIG. */ ASSERT (DBL_DIG == (int) ((DBL_MANT_DIG - 1) * 0.30103)); /* Check the value of DBL_MIN_10_EXP. */ ASSERT (DBL_MIN_10_EXP == - (int) (- (DBL_MIN_EXP - 1) * 0.30103)); /* Check the value of DBL_MAX_10_EXP. */ ASSERT (DBL_MAX_10_EXP == (int) (DBL_MAX_EXP * 0.30103)); /* Check the value of DBL_MAX. */ { volatile double m = DBL_MAX; int n; ASSERT (m + m > m); for (n = 0; n <= 2 * DBL_MANT_DIG; n++) { volatile double pow2_n = pow2d (n); /* 2^n */ volatile double x = m + (m / pow2_n); if (x > m) ASSERT (x + x == x); else ASSERT (!(x + x == x)); } } /* Check the value of DBL_MIN. */ { volatile double m = DBL_MIN; volatile double x = pow2d (DBL_MIN_EXP - 1); ASSERT (m == x); } /* Check the value of DBL_EPSILON. */ { volatile double e = DBL_EPSILON; volatile double me; int n; me = 1.0 + e; ASSERT (me > 1.0); ASSERT (me - 1.0 == e); for (n = 0; n <= 2 * DBL_MANT_DIG; n++) { volatile double half_n = pow2d (- n); /* 2^-n */ volatile double x = me - half_n; if (x < me) ASSERT (x <= 1.0); } } } /* -------------------- Check macros for 'long double' -------------------- */ /* Check that the LDBL_* macros expand to constant expressions. */ int lb[] = { LDBL_MANT_DIG, LDBL_MIN_EXP, LDBL_MAX_EXP, LDBL_DIG, LDBL_MIN_10_EXP, LDBL_MAX_10_EXP }; long double lc1 = LDBL_EPSILON; long double lc2 = LDBL_MIN; #if 0 /* LDBL_MAX is not a constant expression on some platforms. */ long double lc3 = LDBL_MAX; #endif static void test_long_double (void) { /* Check that the value of LDBL_MIN_EXP is well parenthesized. */ ASSERT ((LDBL_MIN_EXP % 101111) == (LDBL_MIN_EXP) % 101111); /* Check that the value of LDBL_MIN_10_EXP is well parenthesized. */ ASSERT ((LDBL_MIN_10_EXP % 101111) == (LDBL_MIN_10_EXP) % 101111); /* Check that 'long double' is at least as wide as 'double'. */ ASSERT (LDBL_MANT_DIG >= DBL_MANT_DIG); ASSERT (LDBL_MIN_EXP - LDBL_MANT_DIG <= DBL_MIN_EXP - DBL_MANT_DIG); ASSERT (LDBL_MAX_EXP >= DBL_MAX_EXP); /* Check the value of LDBL_DIG. */ ASSERT (LDBL_DIG == (int)((LDBL_MANT_DIG - 1) * 0.30103)); /* Check the value of LDBL_MIN_10_EXP. */ ASSERT (LDBL_MIN_10_EXP == - (int) (- (LDBL_MIN_EXP - 1) * 0.30103)); /* Check the value of LDBL_MAX_10_EXP. */ ASSERT (LDBL_MAX_10_EXP == (int) (LDBL_MAX_EXP * 0.30103)); /* Check the value of LDBL_MAX. */ { volatile long double m = LDBL_MAX; int n; ASSERT (m + m > m); for (n = 0; n <= 2 * LDBL_MANT_DIG; n++) { volatile long double pow2_n = pow2l (n); /* 2^n */ volatile long double x = m + (m / pow2_n); if (x > m) ASSERT (x + x == x); else ASSERT (!(x + x == x)); } } /* Check the value of LDBL_MIN. */ { volatile long double m = LDBL_MIN; volatile long double x = pow2l (LDBL_MIN_EXP - 1); ASSERT (m == x); } /* Check the value of LDBL_EPSILON. */ { volatile long double e = LDBL_EPSILON; volatile long double me; int n; me = 1.0L + e; ASSERT (me > 1.0L); ASSERT (me - 1.0L == e); for (n = 0; n <= 2 * LDBL_MANT_DIG; n++) { volatile long double half_n = pow2l (- n); /* 2^-n */ volatile long double x = me - half_n; if (x < me) ASSERT (x <= 1.0L); } } } int main () { test_float (); test_double (); { DECL_LONG_DOUBLE_ROUNDING BEGIN_LONG_DOUBLE_ROUNDING (); test_long_double (); END_LONG_DOUBLE_ROUNDING (); } return 0; } #else int main () { fprintf (stderr, "Skipping test: FLT_RADIX is not 2.\n"); return 77; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fopen.c0000644000000000000000000000010713726163410022403 xustar000000000000000024 mtime=1599661832.623 24 atime=1599661832.764 23 ctime=1599661999.34 libprelude-5.2.0/libmissing/tests/test-fopen.c0000644000000000000000000000200013726163410021370 0ustar00rootroot00000000000000/* Test of opening a file stream. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "signature.h" SIGNATURE_CHECK (fopen, FILE *, (char const *, char const *)); #define BASE "test-fopen.t" #include "test-fopen.h" int main (void) { return test_fopen (); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fpurge.c0000644000000000000000000000011013726163410022556 xustar000000000000000024 mtime=1599661832.624 24 atime=1599661832.764 24 ctime=1599661999.342 libprelude-5.2.0/libmissing/tests/test-fpurge.c0000644000000000000000000000753413726163410021572 0ustar00rootroot00000000000000/* Test of fpurge() function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include /* None of the files accessed by this test are large, so disable the fseek link warning if we are not using the gnulib fseek module. */ #define _GL_NO_LARGE_FILES #include #include #include "macros.h" #define TESTFILE "t-fpurge.tmp" int main (void) { int check_filepos; for (check_filepos = 0; check_filepos <= 1; check_filepos++) { FILE *fp; /* Create a file with some contents. */ fp = fopen (TESTFILE, "w"); if (fp == NULL) goto skip; if (fwrite ("foobarsh", 1, 8, fp) < 8) goto skip; if (fclose (fp)) goto skip; /* The file's contents is now "foobarsh". */ /* Open it in read-write mode. */ fp = fopen (TESTFILE, "r+"); if (fp == NULL) goto skip; if (fseek (fp, 3, SEEK_CUR)) goto skip; if (fwrite ("g", 1, 1, fp) < 1) goto skip; if (fflush (fp)) goto skip; if (fwrite ("bz", 1, 2, fp) < 2) goto skip; /* Discard pending write. */ ASSERT (fpurge (fp) == 0); /* Verify that when discarding pending output, the file position is set back to where it was before the write calls. */ if (check_filepos) ASSERT (ftell (fp) == 4); ASSERT (fclose (fp) == 0); /* Open it in read-only mode. */ fp = fopen (TESTFILE, "r"); if (fp == NULL) goto skip; /* Verify that the pending writes before the fpurge were really discarded. */ { char buf[8]; if (fread (buf, 1, 7, fp) < 7) goto skip; ASSERT (memcmp (buf, "foogars", 7) == 0); } /* Discard the buffered 'h'. */ if (check_filepos) ASSERT (ftell (fp) == 7); ASSERT (fpurge (fp) == 0); /* Verify that when discarding pending input, the file position is advanced to match the end of the previously read input. */ if (check_filepos) ASSERT (ftell (fp) == 8); ASSERT (getc (fp) == EOF); ASSERT (fclose (fp) == 0); /* The file's contents is now "foogarsh". */ /* Ensure that purging a read does not corrupt subsequent writes. */ fp = fopen (TESTFILE, "r+"); if (fp == NULL) goto skip; if (fseek (fp, -1, SEEK_END)) goto skip; ASSERT (getc (fp) == 'h'); ASSERT (getc (fp) == EOF); if (check_filepos) ASSERT (ftell (fp) == 8); ASSERT (fpurge (fp) == 0); if (check_filepos) ASSERT (ftell (fp) == 8); ASSERT (putc ('!', fp) == '!'); if (check_filepos) ASSERT (ftell (fp) == 9); ASSERT (fclose (fp) == 0); fp = fopen (TESTFILE, "r"); if (fp == NULL) goto skip; { char buf[10]; ASSERT (fread (buf, 1, 10, fp) == 9); ASSERT (memcmp (buf, "foogarsh!", 9) == 0); } ASSERT (fclose (fp) == 0); /* The file's contents is now "foogarsh!". */ } remove (TESTFILE); return 0; skip: fprintf (stderr, "Skipping test: prerequisite file operations failed.\n"); remove (TESTFILE); return 77; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fputc.c0000644000000000000000000000011013726163410022407 xustar000000000000000024 mtime=1599661832.624 24 atime=1599661832.764 24 ctime=1599661999.344 libprelude-5.2.0/libmissing/tests/test-fputc.c0000644000000000000000000000465613726163410021425 0ustar00rootroot00000000000000/* Test of fputc() function. Copyright (C) 2011-2018 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 3, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (fputc, int, (int, FILE *)); #include #include #include #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #include "macros.h" int main (int argc, char **argv) { const char *filename = "test-fputc.txt"; /* We don't have an fputc() function that installs an invalid parameter handler so far. So install that handler here, explicitly. */ #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING gl_msvc_inval_ensure_handler (); #endif /* Test that fputc() on an unbuffered stream sets errno if someone else closes the stream fd behind the back of stdio. */ { FILE *fp = fopen (filename, "w"); ASSERT (fp != NULL); setvbuf (fp, NULL, _IONBF, 0); ASSERT (close (fileno (fp)) == 0); errno = 0; ASSERT (fputc ('x', fp) == EOF); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } /* Test that fputc() on an unbuffered stream sets errno if the stream was constructed with an invalid file descriptor. */ { FILE *fp = fdopen (-1, "w"); if (fp != NULL) { setvbuf (fp, NULL, _IONBF, 0); errno = 0; ASSERT (fputc ('x', fp) == EOF); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } { FILE *fp; close (99); fp = fdopen (99, "w"); if (fp != NULL) { setvbuf (fp, NULL, _IONBF, 0); errno = 0; ASSERT (fputc ('x', fp) == EOF); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } /* Clean up. */ unlink (filename); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fread.c0000644000000000000000000000011013726163410022347 xustar000000000000000024 mtime=1599661832.624 24 atime=1599661832.764 24 ctime=1599661999.345 libprelude-5.2.0/libmissing/tests/test-fread.c0000644000000000000000000000516113726163410021355 0ustar00rootroot00000000000000/* Test of fread() function. Copyright (C) 2011-2018 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 3, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (fread, size_t, (void *, size_t, size_t, FILE *)); #include #include #include #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #include "macros.h" int main (int argc, char **argv) { const char *filename = "test-fread.txt"; /* We don't have an fread() function that installs an invalid parameter handler so far. So install that handler here, explicitly. */ #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING gl_msvc_inval_ensure_handler (); #endif /* Prepare a file. */ { const char text[] = "hello world"; int fd = open (filename, O_RDWR | O_CREAT | O_TRUNC, 0600); ASSERT (fd >= 0); ASSERT (write (fd, text, sizeof (text)) == sizeof (text)); ASSERT (close (fd) == 0); } /* Test that fread() sets errno if someone else closes the stream fd behind the back of stdio. */ { FILE *fp = fopen (filename, "r"); char buf[5]; ASSERT (fp != NULL); ASSERT (close (fileno (fp)) == 0); errno = 0; ASSERT (fread (buf, 1, sizeof (buf), fp) == 0); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } /* Test that fread() sets errno if the stream was constructed with an invalid file descriptor. */ { FILE *fp = fdopen (-1, "r"); if (fp != NULL) { char buf[1]; errno = 0; ASSERT (fread (buf, 1, 1, fp) == 0); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } { FILE *fp; close (99); fp = fdopen (99, "r"); if (fp != NULL) { char buf[1]; errno = 0; ASSERT (fread (buf, 1, 1, fp) == 0); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } /* Clean up. */ unlink (filename); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-freading.c0000644000000000000000000000011013726163410023045 xustar000000000000000024 mtime=1599661832.624 24 atime=1599661832.765 24 ctime=1599661999.347 libprelude-5.2.0/libmissing/tests/test-freading.c0000644000000000000000000001112413726163410022047 0ustar00rootroot00000000000000/* Test of freading() function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include /* None of the files accessed by this test are large, so disable the fseek link warning if we are not using the gnulib fseek module. */ #define _GL_NO_LARGE_FILES #include "freading.h" #include #include "macros.h" #define TESTFILE "t-freading.tmp" int main (void) { FILE *fp; /* Create a file with some contents. Write-only file is never reading. */ fp = fopen (TESTFILE, "w"); ASSERT (fp); ASSERT (!freading (fp)); ASSERT (fwrite ("foobarsh", 1, 8, fp) == 8); ASSERT (!freading (fp)); ASSERT (fclose (fp) == 0); /* Open it in read-only mode. Read-only file is always reading. */ fp = fopen (TESTFILE, "r"); ASSERT (fp); ASSERT (freading (fp)); ASSERT (fgetc (fp) == 'f'); ASSERT (freading (fp)); ASSERT (fseek (fp, 2, SEEK_CUR) == 0); ASSERT (freading (fp)); ASSERT (fgetc (fp) == 'b'); ASSERT (freading (fp)); fflush (fp); ASSERT (freading (fp)); ASSERT (fgetc (fp) == 'a'); ASSERT (freading (fp)); ASSERT (fseek (fp, 0, SEEK_END) == 0); ASSERT (freading (fp)); ASSERT (fclose (fp) == 0); /* Open it in read-write mode. POSIX requires a reposition (fseek, fsetpos, rewind) or EOF when transitioning from read to write; freading is only deterministic after input or output, but this test case should be portable even on open, after reposition, and at EOF. */ /* First a scenario with only fgetc, fseek, fputc. */ fp = fopen (TESTFILE, "r+"); ASSERT (fp); ASSERT (!freading (fp)); ASSERT (fgetc (fp) == 'f'); ASSERT (freading (fp)); ASSERT (fseek (fp, 2, SEEK_CUR) == 0); /* freading (fp) is undefined here, but fwriting (fp) is false. */ ASSERT (fgetc (fp) == 'b'); ASSERT (freading (fp)); /* This fseek call is necessary when switching from reading to writing. See the description of fopen(), ISO C 99 7.19.5.3.(6). */ ASSERT (fseek (fp, 0, SEEK_CUR) == 0); /* freading (fp) is undefined here, but fwriting (fp) is false. */ ASSERT (fputc ('x', fp) == 'x'); ASSERT (!freading (fp)); ASSERT (fseek (fp, 0, SEEK_END) == 0); /* freading (fp) is undefined here, because on some implementations (e.g. glibc) fseek causes a buffer to be read. fwriting (fp) is undefined as well. */ ASSERT (fclose (fp) == 0); /* Open it in read-write mode. POSIX requires a reposition (fseek, fsetpos, rewind) or EOF when transitioning from read to write; freading is only deterministic after input or output, but this test case should be portable even on open, after reposition, and at EOF. */ /* Here a scenario that includes fflush. */ fp = fopen (TESTFILE, "r+"); ASSERT (fp); ASSERT (!freading (fp)); ASSERT (fgetc (fp) == 'f'); ASSERT (freading (fp)); ASSERT (fseek (fp, 2, SEEK_CUR) == 0); /* freading (fp) is undefined here, but fwriting (fp) is false. */ ASSERT (fgetc (fp) == 'b'); ASSERT (freading (fp)); fflush (fp); /* freading (fp) is undefined here, but fwriting (fp) is false. */ ASSERT (fgetc (fp) == 'x'); ASSERT (freading (fp)); /* This fseek call is necessary when switching from reading to writing. See the description of fopen(), ISO C 99 7.19.5.3.(6). */ ASSERT (fseek (fp, 0, SEEK_CUR) == 0); /* freading (fp) is undefined here, but fwriting (fp) is false. */ ASSERT (fputc ('z', fp) == 'z'); ASSERT (!freading (fp)); ASSERT (fseek (fp, 0, SEEK_END) == 0); /* freading (fp) is undefined here, because on some implementations (e.g. glibc) fseek causes a buffer to be read. fwriting (fp) is undefined as well. */ ASSERT (fclose (fp) == 0); /* Open it in append mode. Write-only file is never reading. */ fp = fopen (TESTFILE, "a"); ASSERT (fp); ASSERT (!freading (fp)); ASSERT (fwrite ("bla", 1, 3, fp) == 3); ASSERT (!freading (fp)); ASSERT (fclose (fp) == 0); ASSERT (remove (TESTFILE) == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fseek.c0000644000000000000000000000011013726163410022363 xustar000000000000000024 mtime=1599661832.624 24 atime=1599661832.765 24 ctime=1599661999.349 libprelude-5.2.0/libmissing/tests/test-fseek.c0000644000000000000000000000435513726163410021375 0ustar00rootroot00000000000000/* Test of fseek() function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include /* None of the files accessed by this test are large, so disable the fseek link warning if the user requested GNULIB_POSIXCHECK. */ #define _GL_NO_LARGE_FILES #include #include "signature.h" SIGNATURE_CHECK (fseek, int, (FILE *, long, int)); #include "macros.h" #ifndef FUNC_UNGETC_BROKEN # define FUNC_UNGETC_BROKEN 0 #endif int main (int argc, char **argv) { /* Assume stdin is non-empty, seekable, and starts with '#!/bin/sh' iff argc > 1. */ int expected = argc > 1 ? 0 : -1; ASSERT (fseek (stdin, 0, SEEK_CUR) == expected); if (argc > 1) { /* Test that fseek discards previously read ungetc data. */ int ch = fgetc (stdin); ASSERT (ch == '#'); ASSERT (ungetc (ch, stdin) == ch); ASSERT (fseek (stdin, 2, SEEK_SET) == 0); ch = fgetc (stdin); ASSERT (ch == '/'); if (2 < argc) { if (FUNC_UNGETC_BROKEN) { fputs ("Skipping test: ungetc cannot handle arbitrary bytes\n", stderr); return 77; } /* Test that fseek discards random ungetc data. */ ASSERT (ungetc (ch ^ 0xff, stdin) == (ch ^ 0xff)); } ASSERT (fseek (stdin, 0, SEEK_END) == 0); ASSERT (fgetc (stdin) == EOF); /* Test that fseek resets end-of-file marker. */ ASSERT (feof (stdin)); ASSERT (fseek (stdin, 0, SEEK_END) == 0); ASSERT (!feof (stdin)); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fseeko.c0000644000000000000000000000010713726163410022550 xustar000000000000000024 mtime=1599661832.625 24 atime=1599661832.765 23 ctime=1599661999.35 libprelude-5.2.0/libmissing/tests/test-fseeko.c0000644000000000000000000000457513726163410021560 0ustar00rootroot00000000000000/* Test of fseeko() function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include /* None of the files accessed by this test are large, so disable the fseek link warning if we are not using the gnulib fseek module. */ #define _GL_NO_LARGE_FILES #include #include "signature.h" SIGNATURE_CHECK (fseeko, int, (FILE *, off_t, int)); #include "macros.h" #ifndef FUNC_UNGETC_BROKEN # define FUNC_UNGETC_BROKEN 0 #endif int main (int argc, char **argv _GL_UNUSED) { /* Assume stdin is non-empty, seekable, and starts with '#!/bin/sh' iff argc > 1. */ int expected = argc > 1 ? 0 : -1; /* Exit with success only if fseek/fseeko agree. */ int r1 = fseeko (stdin, 0, SEEK_CUR); int r2 = fseek (stdin, 0, SEEK_CUR); ASSERT (r1 == r2 && r1 == expected); if (argc > 1) { /* Test that fseek discards previously read ungetc data. */ int ch = fgetc (stdin); ASSERT (ch == '#'); ASSERT (ungetc (ch, stdin) == ch); ASSERT (fseeko (stdin, 2, SEEK_SET) == 0); ch = fgetc (stdin); ASSERT (ch == '/'); if (2 < argc) { if (FUNC_UNGETC_BROKEN) { fputs ("Skipping test: ungetc cannot handle arbitrary bytes\n", stderr); return 77; } /* Test that fseek discards random ungetc data. */ ASSERT (ungetc (ch ^ 0xff, stdin) == (ch ^ 0xff)); } ASSERT (fseeko (stdin, 0, SEEK_END) == 0); ASSERT (fgetc (stdin) == EOF); /* Test that fseek resets end-of-file marker. */ ASSERT (feof (stdin)); ASSERT (fseeko (stdin, 0, SEEK_END) == 0); ASSERT (!feof (stdin)); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fseeko3.c0000644000000000000000000000011013726163410022625 xustar000000000000000024 mtime=1599661832.625 24 atime=1599661832.765 24 ctime=1599661999.352 libprelude-5.2.0/libmissing/tests/test-fseeko3.c0000644000000000000000000000240513726163410021631 0ustar00rootroot00000000000000/* Test of fseeko() function. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2011. */ #include #include #include #include "macros.h" int main (int argc, char **argv) { int do_initial_ftell = atoi (argv[1]); const char *filename = argv[2]; FILE *fp = fopen (filename, "r"); ASSERT (fp != NULL); if (do_initial_ftell) { off_t pos = ftell (fp); ASSERT (pos == 0); } ASSERT (fseeko (fp, 0, SEEK_END) == 0); { off_t pos = ftell (fp); ASSERT (pos > 0); } ASSERT (fclose (fp) == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fseeko4.c0000644000000000000000000000011013726163410022626 xustar000000000000000024 mtime=1599661832.625 24 atime=1599661832.765 24 ctime=1599661999.354 libprelude-5.2.0/libmissing/tests/test-fseeko4.c0000644000000000000000000000357313726163410021641 0ustar00rootroot00000000000000/* Test of fseeko() function. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include #include #include "macros.h" int main (int argc, char **argv) { const char *filename = argv[1]; /* Test that fseeko() sets errno if someone else closes the stream fd behind the back of stdio. */ { FILE *fp = fopen (filename, "r"); ASSERT (fp != NULL); setvbuf (fp, NULL, _IONBF, 0); ASSERT (ftell (fp) == 0); ASSERT (fseeko (fp, 0, SEEK_END) == 0); ASSERT (ftell (fp) > 0); ASSERT (close (fileno (fp)) == 0); errno = 0; ASSERT (fseeko (fp, 0, SEEK_SET) == -1); ASSERT (errno == EBADF); fclose (fp); } /* Test that fseeko() sets errno if the stream was constructed with an invalid file descriptor. */ { FILE *fp = fdopen (-1, "w"); if (fp != NULL) { errno = 0; ASSERT (fseeko (fp, 0, SEEK_END) == -1); ASSERT (errno == EBADF); fclose (fp); } } { FILE *fp; close (99); fp = fdopen (99, "w"); if (fp != NULL) { errno = 0; ASSERT (fseeko (fp, 0, SEEK_END) == -1); ASSERT (errno == EBADF); fclose (fp); } } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fstat.c0000644000000000000000000000011013726163410022407 xustar000000000000000024 mtime=1599661832.626 24 atime=1599661832.765 24 ctime=1599661999.355 libprelude-5.2.0/libmissing/tests/test-fstat.c0000644000000000000000000000237513726163410021421 0ustar00rootroot00000000000000/* Tests of fstat() function. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (fstat, int, (int, struct stat *)); #include #include #include "macros.h" int main (int argc, char *argv[]) { /* Test behaviour for invalid file descriptors. */ { struct stat statbuf; errno = 0; ASSERT (fstat (-1, &statbuf) == -1); ASSERT (errno == EBADF); } { struct stat statbuf; close (99); errno = 0; ASSERT (fstat (99, &statbuf) == -1); ASSERT (errno == EBADF); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ftell.c0000644000000000000000000000011013726163410022374 xustar000000000000000024 mtime=1599661832.626 24 atime=1599661832.765 24 ctime=1599661999.357 libprelude-5.2.0/libmissing/tests/test-ftell.c0000644000000000000000000000543113726163410021402 0ustar00rootroot00000000000000/* Test of ftell() function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include /* None of the files accessed by this test are large, so disable the fseek link warning if we are not using the gnulib fseek module. */ #define _GL_NO_LARGE_FILES #include #include "signature.h" SIGNATURE_CHECK (ftell, long, (FILE *)); #include "binary-io.h" #include "macros.h" #ifndef FUNC_UNGETC_BROKEN # define FUNC_UNGETC_BROKEN 0 #endif int main (int argc, char **argv) { int ch; /* Assume stdin is seekable iff argc > 1. */ if (argc == 1) { ASSERT (ftell (stdin) == -1); return 0; } /* mingw ftell is unreliable on text mode input. */ set_binary_mode (0, O_BINARY); /* Simple tests. */ ASSERT (ftell (stdin) == 0); ch = fgetc (stdin); ASSERT (ch == '#'); ASSERT (ftell (stdin) == 1); /* Test ftell after ungetc of read input. */ ch = ungetc ('#', stdin); ASSERT (ch == '#'); ASSERT (ftell (stdin) == 0); ch = fgetc (stdin); ASSERT (ch == '#'); ASSERT (ftell (stdin) == 1); /* Test ftell after fseek. */ ASSERT (fseek (stdin, 2, SEEK_SET) == 0); ASSERT (ftell (stdin) == 2); /* Test ftell after random ungetc. */ ch = fgetc (stdin); ASSERT (ch == '/'); ch = ungetc ('@', stdin); ASSERT (ch == '@'); ASSERT (ftell (stdin) == 2); ch = fgetc (stdin); ASSERT (ch == '@'); ASSERT (ftell (stdin) == 3); if (2 < argc) { if (FUNC_UNGETC_BROKEN) { fputs ("Skipping test: ungetc cannot handle arbitrary bytes\n", stderr); return 77; } /* Test ftell after ungetc without read. */ ASSERT (fseek (stdin, 0, SEEK_CUR) == 0); ASSERT (ftell (stdin) == 3); ch = ungetc ('~', stdin); ASSERT (ch == '~'); ASSERT (ftell (stdin) == 2); } #if !defined __MINT__ /* FreeMiNT has problems seeking past end of file */ /* Test ftell beyond end of file. */ ASSERT (fseek (stdin, 0, SEEK_END) == 0); ch = ftell (stdin); ASSERT (fseek (stdin, 10, SEEK_END) == 0); ASSERT (ftell (stdin) == ch + 10); #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ftell3.c0000644000000000000000000000011013726163410022457 xustar000000000000000024 mtime=1599661832.626 24 atime=1599661832.765 24 ctime=1599661999.359 libprelude-5.2.0/libmissing/tests/test-ftell3.c0000644000000000000000000000402413726163410021462 0ustar00rootroot00000000000000/* Test of ftell() function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ #include /* None of the files accessed by this test are large, so disable the fseek link warning if we are not using the gnulib fseek module. */ #define _GL_NO_LARGE_FILES #include #include #include "macros.h" #define TESTFILE "t-ftell3.tmp" int main (void) { FILE *fp; /* Create a file with some contents. */ fp = fopen (TESTFILE, "w"); if (fp == NULL) goto skip; if (fwrite ("foogarsh", 1, 8, fp) < 8) goto skip; if (fclose (fp)) goto skip; /* The file's contents is now "foogarsh". */ /* Try writing after reading to EOF. */ fp = fopen (TESTFILE, "r+"); if (fp == NULL) goto skip; if (fseek (fp, -1, SEEK_END)) goto skip; ASSERT (getc (fp) == 'h'); ASSERT (getc (fp) == EOF); ASSERT (ftell (fp) == 8); ASSERT (ftell (fp) == 8); ASSERT (putc ('!', fp) == '!'); ASSERT (ftell (fp) == 9); ASSERT (fclose (fp) == 0); fp = fopen (TESTFILE, "r"); if (fp == NULL) goto skip; { char buf[10]; ASSERT (fread (buf, 1, 10, fp) == 9); ASSERT (memcmp (buf, "foogarsh!", 9) == 0); } ASSERT (fclose (fp) == 0); /* The file's contents is now "foogarsh!". */ remove (TESTFILE); return 0; skip: fprintf (stderr, "Skipping test: prerequisite file operations failed.\n"); remove (TESTFILE); return 77; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ftello.c0000644000000000000000000000010713726163410022561 xustar000000000000000024 mtime=1599661832.627 24 atime=1599661832.765 23 ctime=1599661999.36 libprelude-5.2.0/libmissing/tests/test-ftello.c0000644000000000000000000000631513726163410021563 0ustar00rootroot00000000000000/* Test of ftello() function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include /* None of the files accessed by this test are large, so disable the fseek link warning if we are not using the gnulib fseek module. */ #define _GL_NO_LARGE_FILES #include #include "signature.h" SIGNATURE_CHECK (ftello, off_t, (FILE *)); #include "binary-io.h" #include "macros.h" #ifndef FUNC_UNGETC_BROKEN # define FUNC_UNGETC_BROKEN 0 #endif int main (int argc, char **argv _GL_UNUSED) { int ch; /* Assume stdin is seekable iff argc > 1. */ if (argc == 1) { ASSERT (ftell (stdin) == -1); ASSERT (ftello (stdin) == -1); return 0; } /* mingw ftell is unreliable on text mode input. */ set_binary_mode (0, O_BINARY); /* Simple tests. For each test, make sure ftell and ftello agree. */ ASSERT (ftell (stdin) == 0); ASSERT (ftello (stdin) == 0); ch = fgetc (stdin); ASSERT (ch == '#'); ASSERT (ftell (stdin) == 1); ASSERT (ftello (stdin) == 1); /* Test ftell after ungetc of read input. */ ch = ungetc ('#', stdin); ASSERT (ch == '#'); ASSERT (ftell (stdin) == 0); ASSERT (ftello (stdin) == 0); ch = fgetc (stdin); ASSERT (ch == '#'); ASSERT (ftell (stdin) == 1); ASSERT (ftello (stdin) == 1); /* Test ftell after fseek. */ ASSERT (fseek (stdin, 2, SEEK_SET) == 0); ASSERT (ftell (stdin) == 2); ASSERT (ftello (stdin) == 2); /* Test ftell after random ungetc. */ ch = fgetc (stdin); ASSERT (ch == '/'); ch = ungetc ('@', stdin); ASSERT (ch == '@'); ASSERT (ftell (stdin) == 2); ASSERT (ftello (stdin) == 2); ch = fgetc (stdin); ASSERT (ch == '@'); ASSERT (ftell (stdin) == 3); ASSERT (ftello (stdin) == 3); if (2 < argc) { if (FUNC_UNGETC_BROKEN) { fputs ("Skipping test: ungetc cannot handle arbitrary bytes\n", stderr); return 77; } /* Test ftell after ungetc without read. */ ASSERT (fseek (stdin, 0, SEEK_CUR) == 0); ASSERT (ftell (stdin) == 3); ASSERT (ftello (stdin) == 3); ch = ungetc ('~', stdin); ASSERT (ch == '~'); ASSERT (ftell (stdin) == 2); ASSERT (ftello (stdin) == 2); } #if !defined __MINT__ /* FreeMiNT has problems seeking past end of file */ /* Test ftell beyond end of file. */ ASSERT (fseek (stdin, 0, SEEK_END) == 0); ch = ftello (stdin); ASSERT (fseek (stdin, 10, SEEK_END) == 0); ASSERT (ftell (stdin) == ch + 10); ASSERT (ftello (stdin) == ch + 10); #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ftello3.c0000644000000000000000000000011013726163410022636 xustar000000000000000024 mtime=1599661832.627 24 atime=1599661832.765 24 ctime=1599661999.362 libprelude-5.2.0/libmissing/tests/test-ftello3.c0000644000000000000000000000403113726163410021637 0ustar00rootroot00000000000000/* Test of ftello() function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ #include /* None of the files accessed by this test are large, so disable the fseek link warning if we are not using the gnulib fseek module. */ #define _GL_NO_LARGE_FILES #include #include #include "macros.h" #define TESTFILE "t-ftello3.tmp" int main (void) { FILE *fp; /* Create a file with some contents. */ fp = fopen (TESTFILE, "w"); if (fp == NULL) goto skip; if (fwrite ("foogarsh", 1, 8, fp) < 8) goto skip; if (fclose (fp)) goto skip; /* The file's contents is now "foogarsh". */ /* Try writing after reading to EOF. */ fp = fopen (TESTFILE, "r+"); if (fp == NULL) goto skip; if (fseek (fp, -1, SEEK_END)) goto skip; ASSERT (getc (fp) == 'h'); ASSERT (getc (fp) == EOF); ASSERT (ftello (fp) == 8); ASSERT (ftello (fp) == 8); ASSERT (putc ('!', fp) == '!'); ASSERT (ftello (fp) == 9); ASSERT (fclose (fp) == 0); fp = fopen (TESTFILE, "r"); if (fp == NULL) goto skip; { char buf[10]; ASSERT (fread (buf, 1, 10, fp) == 9); ASSERT (memcmp (buf, "foogarsh!", 9) == 0); } ASSERT (fclose (fp) == 0); /* The file's contents is now "foogarsh!". */ remove (TESTFILE); return 0; skip: fprintf (stderr, "Skipping test: prerequisite file operations failed.\n"); remove (TESTFILE); return 77; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ftello4.c0000644000000000000000000000011013726163410022637 xustar000000000000000024 mtime=1599661832.627 24 atime=1599661832.765 24 ctime=1599661999.364 libprelude-5.2.0/libmissing/tests/test-ftello4.c0000644000000000000000000000340213726163410021641 0ustar00rootroot00000000000000/* Test of ftello() function. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include #include #include "macros.h" int main (int argc, char **argv) { const char *filename = argv[1]; /* Test that ftello() sets errno if someone else closes the stream fd behind the back of stdio. */ { FILE *fp = fopen (filename, "r"); ASSERT (fp != NULL); setvbuf (fp, NULL, _IONBF, 0); ASSERT (close (fileno (fp)) == 0); errno = 0; ASSERT (ftello (fp) == (off_t)-1); ASSERT (errno == EBADF); fclose (fp); } /* Test that ftello() sets errno if the stream was constructed with an invalid file descriptor. */ { FILE *fp = fdopen (-1, "w"); if (fp != NULL) { errno = 0; ASSERT (ftello (fp) == (off_t)-1); ASSERT (errno == EBADF); fclose (fp); } } { FILE *fp; close (99); fp = fdopen (99, "w"); if (fp != NULL) { errno = 0; ASSERT (ftello (fp) == (off_t)-1); ASSERT (errno == EBADF); fclose (fp); } } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ftruncate.c0000644000000000000000000000011013726163410023261 xustar000000000000000024 mtime=1599661832.627 24 atime=1599661832.765 24 ctime=1599661999.365 libprelude-5.2.0/libmissing/tests/test-ftruncate.c0000644000000000000000000000301713726163410022265 0ustar00rootroot00000000000000/* Test truncating a file. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (ftruncate, int, (int, off_t)); #include #include #include "macros.h" int main (int argc, char *argv[]) { const char *filename = argv[1]; /* Test behaviour for invalid file descriptors. */ { errno = 0; ASSERT (ftruncate (-1, 0) == -1); ASSERT (errno == EBADF); } { close (99); errno = 0; ASSERT (ftruncate (99, 0) == -1); ASSERT (errno == EBADF); } /* Test behaviour for read-only file descriptors. */ { int fd = open (filename, O_RDONLY); ASSERT (fd >= 0); errno = 0; ASSERT (ftruncate (fd, 0) == -1); ASSERT (errno == EBADF || errno == EINVAL || errno == EACCES /* seen on mingw */ ); close (fd); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fwrite.c0000644000000000000000000000011013726163410022566 xustar000000000000000024 mtime=1599661832.628 24 atime=1599661832.765 24 ctime=1599661999.367 libprelude-5.2.0/libmissing/tests/test-fwrite.c0000644000000000000000000000513113726163410021571 0ustar00rootroot00000000000000/* Test of fwrite() function. Copyright (C) 2011-2018 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 3, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (fwrite, size_t, (const void *, size_t, size_t, FILE *)); #include #include #include #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #include "macros.h" int main (int argc, char **argv) { const char *filename = "test-fwrite.txt"; /* We don't have an fwrite() function that installs an invalid parameter handler so far. So install that handler here, explicitly. */ #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING gl_msvc_inval_ensure_handler (); #endif /* Test that fwrite() on an unbuffered stream sets errno if someone else closes the stream fd behind the back of stdio. */ { FILE *fp = fopen (filename, "w"); char buf[5] = "world"; ASSERT (fp != NULL); setvbuf (fp, NULL, _IONBF, 0); ASSERT (close (fileno (fp)) == 0); errno = 0; ASSERT (fwrite (buf, 1, sizeof (buf), fp) == 0); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } /* Test that fwrite() on an unbuffered stream sets errno if the stream was constructed with an invalid file descriptor. */ { FILE *fp = fdopen (-1, "w"); if (fp != NULL) { char buf[5] = "world"; setvbuf (fp, NULL, _IONBF, 0); errno = 0; ASSERT (fwrite (buf, 1, sizeof (buf), fp) == 0); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } { FILE *fp; close (99); fp = fdopen (99, "w"); if (fp != NULL) { char buf[5] = "world"; setvbuf (fp, NULL, _IONBF, 0); errno = 0; ASSERT (fwrite (buf, 1, sizeof (buf), fp) == 0); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } /* Clean up. */ unlink (filename); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-getaddrinfo.c0000644000000000000000000000011013726163410023554 xustar000000000000000024 mtime=1599661832.628 24 atime=1599661832.765 24 ctime=1599661999.369 libprelude-5.2.0/libmissing/tests/test-getaddrinfo.c0000644000000000000000000001171313726163410022562 0ustar00rootroot00000000000000/* Test the getaddrinfo module. Copyright (C) 2006-2018 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 3 of the License, 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, see . */ /* Written by Simon Josefsson. */ #include #include #include "signature.h" SIGNATURE_CHECK (gai_strerror, char const *, (int)); /* On native Windows, these two functions may have the __stdcall calling convention. But the SIGNATURE_CHECK works only for functions with __cdecl calling convention. */ #if !(defined _WIN32 && !defined __CYGWIN__) SIGNATURE_CHECK (freeaddrinfo, void, (struct addrinfo *)); SIGNATURE_CHECK (getaddrinfo, int, (char const *, char const *, struct addrinfo const *, struct addrinfo **)); #endif #include #include #include #include #include /* Whether to print debugging messages. */ #define ENABLE_DEBUGGING 0 #if ENABLE_DEBUGGING # define dbgprintf printf #else # define dbgprintf if (0) printf #endif /* BeOS does not have AF_UNSPEC. */ #ifndef AF_UNSPEC # define AF_UNSPEC 0 #endif #ifndef EAI_SERVICE # define EAI_SERVICE 0 #endif static int simple (char const *host, char const *service) { char buf[BUFSIZ]; static int skip = 0; struct addrinfo hints; struct addrinfo *ai0, *ai; int res; int err; /* Once we skipped the test, do not try anything else */ if (skip) return 0; dbgprintf ("Finding %s service %s...\n", host, service); /* This initializes "hints" but does not use it. Is there a reason for this? If so, please fix this comment. */ memset (&hints, 0, sizeof (hints)); hints.ai_flags = AI_CANONNAME; hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; res = getaddrinfo (host, service, 0, &ai0); err = errno; dbgprintf ("res %d: %s\n", res, gai_strerror (res)); if (res != 0) { /* EAI_AGAIN is returned if no network is available. Don't fail the test merely because someone is down the country on their in-law's farm. */ if (res == EAI_AGAIN) { skip++; fprintf (stderr, "skipping getaddrinfo test: no network?\n"); return 77; } /* IRIX reports EAI_NONAME for "https". Don't fail the test merely because of this. */ if (res == EAI_NONAME) return 0; /* Solaris reports EAI_SERVICE for "http" and "https". Don't fail the test merely because of this. */ if (res == EAI_SERVICE) return 0; #ifdef EAI_NODATA /* AIX reports EAI_NODATA for "https". Don't fail the test merely because of this. */ if (res == EAI_NODATA) return 0; #endif /* Provide details if errno was set. */ if (res == EAI_SYSTEM) fprintf (stderr, "system error: %s\n", strerror (err)); return 1; } for (ai = ai0; ai; ai = ai->ai_next) { void *ai_addr = ai->ai_addr; struct sockaddr_in *sock_addr = ai_addr; dbgprintf ("\tflags %x\n", ai->ai_flags + 0u); dbgprintf ("\tfamily %x\n", ai->ai_family + 0u); dbgprintf ("\tsocktype %x\n", ai->ai_socktype + 0u); dbgprintf ("\tprotocol %x\n", ai->ai_protocol + 0u); dbgprintf ("\taddrlen %lu: ", (unsigned long) ai->ai_addrlen); dbgprintf ("\tFound %s\n", inet_ntop (ai->ai_family, &sock_addr->sin_addr, buf, sizeof (buf) - 1)); if (ai->ai_canonname) dbgprintf ("\tFound %s...\n", ai->ai_canonname); { char ipbuf[BUFSIZ]; char portbuf[BUFSIZ]; res = getnameinfo (ai->ai_addr, ai->ai_addrlen, ipbuf, sizeof (ipbuf) - 1, portbuf, sizeof (portbuf) - 1, NI_NUMERICHOST|NI_NUMERICSERV); dbgprintf ("\t\tgetnameinfo %d: %s\n", res, gai_strerror (res)); if (res == 0) { dbgprintf ("\t\tip %s\n", ipbuf); dbgprintf ("\t\tport %s\n", portbuf); } } } freeaddrinfo (ai0); return 0; } #define HOST1 "www.gnu.org" #define SERV1 "http" #define HOST2 "www.ibm.com" #define SERV2 "https" #define HOST3 "microsoft.com" #define SERV3 "http" #define HOST4 "google.org" #define SERV4 "ldap" int main (void) { return simple (HOST1, SERV1) + simple (HOST2, SERV2) + simple (HOST3, SERV3) + simple (HOST4, SERV4); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-getcwd-lgpl.c0000644000000000000000000000011013726163410023477 xustar000000000000000024 mtime=1599661832.628 24 atime=1599661832.765 24 ctime=1599661999.371 libprelude-5.2.0/libmissing/tests/test-getcwd-lgpl.c0000644000000000000000000000510613726163410022504 0ustar00rootroot00000000000000/* Test of getcwd() function. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (getcwd, char *, (char *, size_t)); #include #include #include #include #include "macros.h" int main (int argc, char **argv) { char *pwd1; char *pwd2; /* If the user provides an argument, attempt to chdir there first. */ if (1 < argc) { if (chdir (argv[1]) == 0) printf ("changed to directory %s\n", argv[1]); } pwd1 = getcwd (NULL, 0); ASSERT (pwd1 && *pwd1); if (1 < argc) printf ("cwd=%s\n", pwd1); /* Make sure the result is usable. */ ASSERT (chdir (pwd1) == 0); ASSERT (chdir (".//./.") == 0); /* Make sure that result is normalized. */ pwd2 = getcwd (NULL, 0); ASSERT (pwd2); ASSERT (strcmp (pwd1, pwd2) == 0); free (pwd2); { size_t len = strlen (pwd1); ssize_t i = len - 10; if (i < 1) i = 1; pwd2 = getcwd (NULL, len + 1); ASSERT (pwd2); free (pwd2); pwd2 = malloc (len + 2); for ( ; i <= len; i++) { char *tmp; errno = 0; ASSERT (getcwd (pwd2, i) == NULL); ASSERT (errno == ERANGE); /* Allow either glibc or BSD behavior, since POSIX allows both. */ errno = 0; tmp = getcwd (NULL, i); if (tmp) { ASSERT (strcmp (pwd1, tmp) == 0); free (tmp); } else { ASSERT (errno == ERANGE); } } ASSERT (getcwd (pwd2, len + 1) == pwd2); pwd2[len] = '/'; pwd2[len + 1] = '\0'; } ASSERT (strstr (pwd2, "/./") == NULL); ASSERT (strstr (pwd2, "/../") == NULL); ASSERT (strstr (pwd2 + 1 + (pwd2[1] == '/'), "//") == NULL); /* Validate a POSIX requirement on size. */ errno = 0; ASSERT (getcwd(pwd2, 0) == NULL); ASSERT (errno == EINVAL); free (pwd1); free (pwd2); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-getdelim.c0000644000000000000000000000011013726163410023060 xustar000000000000000024 mtime=1599661832.628 24 atime=1599661832.765 24 ctime=1599661999.372 libprelude-5.2.0/libmissing/tests/test-getdelim.c0000644000000000000000000000465513726163410022075 0ustar00rootroot00000000000000/* Test of getdelim() function. Copyright (C) 2007-2018 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 3, 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, see . */ /* Written by Eric Blake , 2007. */ #include #include #include "signature.h" SIGNATURE_CHECK (getdelim, ssize_t, (char **, size_t *, int, FILE *)); #include #include #include "macros.h" int main (void) { FILE *f; char *line; size_t len; ssize_t result; /* Create test file. */ f = fopen ("test-getdelim.txt", "wb"); if (!f || fwrite ("anAnbcnd\0f", 1, 10, f) != 10 || fclose (f) != 0) { fputs ("Failed to create sample file.\n", stderr); remove ("test-getdelim.txt"); return 1; } f = fopen ("test-getdelim.txt", "rb"); if (!f) { fputs ("Failed to reopen sample file.\n", stderr); remove ("test-getdelim.txt"); return 1; } /* Test initial allocation, which must include trailing NUL. */ line = NULL; len = 0; result = getdelim (&line, &len, 'n', f); ASSERT (result == 2); ASSERT (strcmp (line, "an") == 0); ASSERT (2 < len); free (line); /* Test initial allocation again, with line = NULL and len != 0. */ line = NULL; len = (size_t)(~0) / 4; result = getdelim (&line, &len, 'n', f); ASSERT (result == 2); ASSERT (strcmp (line, "An") == 0); ASSERT (2 < len); free (line); /* Test growth of buffer. */ line = malloc (1); len = 1; result = getdelim (&line, &len, 'n', f); ASSERT (result == 3); ASSERT (strcmp (line, "bcn") == 0); ASSERT (3 < len); /* Test embedded NULs and EOF behavior. */ result = getdelim (&line, &len, 'n', f); ASSERT (result == 3); ASSERT (memcmp (line, "d\0f", 4) == 0); ASSERT (3 < len); result = getdelim (&line, &len, 'n', f); ASSERT (result == -1); free (line); fclose (f); remove ("test-getdelim.txt"); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-getdtablesize.c0000644000000000000000000000011013726163410024114 xustar000000000000000024 mtime=1599661832.628 24 atime=1599661832.765 24 ctime=1599661999.374 libprelude-5.2.0/libmissing/tests/test-getdtablesize.c0000644000000000000000000000215113726163410023116 0ustar00rootroot00000000000000/* Test of getdtablesize() function. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2008. */ #include #include #include "signature.h" SIGNATURE_CHECK (getdtablesize, int, (void)); #include "macros.h" int main (int argc, char *argv[]) { ASSERT (getdtablesize () >= 3); ASSERT (dup2 (0, getdtablesize() - 1) == getdtablesize () - 1); ASSERT (dup2 (0, getdtablesize()) == -1); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-gethostname.c0000644000000000000000000000011013726163410023604 xustar000000000000000024 mtime=1599661832.628 24 atime=1599661832.765 24 ctime=1599661999.376 libprelude-5.2.0/libmissing/tests/test-gethostname.c0000644000000000000000000000320213726163410022604 0ustar00rootroot00000000000000/* * Copyright (C) 2008-2018 Free Software Foundation, Inc. * Written by Simon Josefsson. * * 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 3 of the License, 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, see . */ #include /* Get gethostname() declaration. */ #include #include "signature.h" SIGNATURE_CHECK (gethostname, int, (char *, size_t)); /* Get HOST_NAME_MAX definition. */ #include #include #include #include #define NOHOSTNAME "magic-gnulib-test-string" int main (int argc, char *argv[] _GL_UNUSED) { char buf[HOST_NAME_MAX]; int rc; if (strlen (NOHOSTNAME) >= HOST_NAME_MAX) { printf ("HOST_NAME_MAX impossibly small?! %d\n", HOST_NAME_MAX); return 2; } strcpy (buf, NOHOSTNAME); rc = gethostname (buf, sizeof (buf)); if (rc != 0) { printf ("gethostname failed, rc %d errno %d\n", rc, errno); return 1; } if (strcmp (buf, NOHOSTNAME) == 0) { printf ("gethostname left buffer untouched.\n"); return 1; } if (argc > 1) printf ("hostname: %s\n", buf); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-getline.c0000644000000000000000000000011013726163410022715 xustar000000000000000024 mtime=1599661832.629 24 atime=1599661832.765 24 ctime=1599661999.377 libprelude-5.2.0/libmissing/tests/test-getline.c0000644000000000000000000000463213726163410021725 0ustar00rootroot00000000000000/* Test of getline() function. Copyright (C) 2007-2018 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 3, 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, see . */ /* Written by Eric Blake , 2007. */ #include #include #include "signature.h" SIGNATURE_CHECK (getline, ssize_t, (char **, size_t *, FILE *)); #include #include #include "macros.h" int main (void) { FILE *f; char *line; size_t len; ssize_t result; /* Create test file. */ f = fopen ("test-getline.txt", "wb"); if (!f || fwrite ("a\nA\nbc\nd\0f", 1, 10, f) != 10 || fclose (f) != 0) { fputs ("Failed to create sample file.\n", stderr); remove ("test-getline.txt"); return 1; } f = fopen ("test-getline.txt", "rb"); if (!f) { fputs ("Failed to reopen sample file.\n", stderr); remove ("test-getline.txt"); return 1; } /* Test initial allocation, which must include trailing NUL. */ line = NULL; len = 0; result = getline (&line, &len, f); ASSERT (result == 2); ASSERT (strcmp (line, "a\n") == 0); ASSERT (2 < len); free (line); /* Test initial allocation again, with line = NULL and len != 0. */ line = NULL; len = (size_t)(~0) / 4; result = getline (&line, &len, f); ASSERT (result == 2); ASSERT (strcmp (line, "A\n") == 0); ASSERT (2 < len); free (line); /* Test growth of buffer, must not leak. */ len = 1; line = malloc (len); result = getline (&line, &len, f); ASSERT (result == 3); ASSERT (strcmp (line, "bc\n") == 0); ASSERT (3 < len); /* Test embedded NULs and EOF behavior. */ result = getline (&line, &len, f); ASSERT (result == 3); ASSERT (memcmp (line, "d\0f", 4) == 0); ASSERT (3 < len); result = getline (&line, &len, f); ASSERT (result == -1); free (line); fclose (f); remove ("test-getline.txt"); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-getsockname.c0000644000000000000000000000011013726163410023566 xustar000000000000000024 mtime=1599661832.629 24 atime=1599661832.765 24 ctime=1599661999.379 libprelude-5.2.0/libmissing/tests/test-getsockname.c0000644000000000000000000000473713726163410022604 0ustar00rootroot00000000000000/* Test getsockname() function. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (getsockname, int, (int, struct sockaddr *, socklen_t *)); #include #include #include #include #include #include #include "sockets.h" #include "macros.h" static int open_server_socket (void) { int s, x; struct sockaddr_in ia; s = socket (AF_INET, SOCK_STREAM, 0); x = 1; setsockopt (s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof (x)); memset (&ia, 0, sizeof (ia)); ia.sin_family = AF_INET; inet_pton (AF_INET, "0.0.0.0", &ia.sin_addr); /* Port 0 means that the system should assign a port. */ ia.sin_port = htons (0); if (bind (s, (struct sockaddr *) &ia, sizeof (ia)) < 0) { perror ("bind"); exit (77); } if (listen (s, 1) < 0) { perror ("listen"); exit (77); } return s; } int main (void) { (void) gl_sockets_startup (SOCKETS_1_1); /* Test behaviour for invalid file descriptors. */ { struct sockaddr_in addr; socklen_t addrlen = sizeof (addr); errno = 0; ASSERT (getsockname (-1, (struct sockaddr *) &addr, &addrlen) == -1); ASSERT (errno == EBADF); } { struct sockaddr_in addr; socklen_t addrlen = sizeof (addr); close (99); errno = 0; ASSERT (getsockname (99, (struct sockaddr *) &addr, &addrlen) == -1); ASSERT (errno == EBADF); } /* Test behaviour for a server socket. */ { int s = open_server_socket (); struct sockaddr_in addr; socklen_t addrlen = sizeof (addr); memset (&addr, 0, sizeof (addr)); ASSERT (getsockname (s, (struct sockaddr *) &addr, &addrlen) == 0); ASSERT (addr.sin_family == AF_INET); ASSERT (ntohs (addr.sin_port) != 0); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-gettimeofday.c0000644000000000000000000000011013726163410023747 xustar000000000000000024 mtime=1599661832.629 24 atime=1599661832.765 24 ctime=1599661999.381 libprelude-5.2.0/libmissing/tests/test-gettimeofday.c0000644000000000000000000000245113726163410022754 0ustar00rootroot00000000000000/* * Copyright (C) 2005, 2007, 2009-2018 Free Software Foundation, Inc. * Written by Jim Meyering. * * 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (gettimeofday, int, (struct timeval *, GETTIMEOFDAY_TIMEZONE *)); #include #include #include int main (void) { time_t t = 0; struct tm *lt; struct tm saved_lt; struct timeval tv; lt = localtime (&t); saved_lt = *lt; gettimeofday (&tv, NULL); if (memcmp (lt, &saved_lt, sizeof (struct tm)) != 0) { fprintf (stderr, "gettimeofday still clobbers the localtime buffer!\n"); return 1; } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ignore-value.c0000644000000000000000000000011013726163410023663 xustar000000000000000024 mtime=1599661832.629 24 atime=1599661832.766 24 ctime=1599661999.382 libprelude-5.2.0/libmissing/tests/test-ignore-value.c0000644000000000000000000000365213726163410022674 0ustar00rootroot00000000000000/* Test the "ignore-value" module. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake. */ #include #include "ignore-value.h" #include #ifndef _GL_ATTRIBUTE_RETURN_CHECK # if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4) # define _GL_ATTRIBUTE_RETURN_CHECK # else # define _GL_ATTRIBUTE_RETURN_CHECK __attribute__((__warn_unused_result__)) # endif #endif struct s { int i; }; static char doChar (void) _GL_ATTRIBUTE_RETURN_CHECK; static int doInt (void) _GL_ATTRIBUTE_RETURN_CHECK; static off_t doOff (void) _GL_ATTRIBUTE_RETURN_CHECK; static void *doPtr (void) _GL_ATTRIBUTE_RETURN_CHECK; static struct s doStruct (void) _GL_ATTRIBUTE_RETURN_CHECK; static char doChar (void) { return 0; } static int doInt (void) { return 0; } static off_t doOff (void) { return 0; } static void * doPtr (void) { return NULL; } static struct s doStruct (void) { static struct s s1; return s1; } int main (void) { /* If this test can compile with -Werror and the same warnings as the rest of the project, then we are properly silencing warnings about ignored return values. */ ignore_value (doChar ()); ignore_value (doInt ()); ignore_value (doOff ()); ignore_value (doPtr ()); ignore_value (doStruct ()); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-inet_ntop.c0000644000000000000000000000011013726163410023265 xustar000000000000000024 mtime=1599661832.629 24 atime=1599661832.766 24 ctime=1599661999.384 libprelude-5.2.0/libmissing/tests/test-inet_ntop.c0000644000000000000000000000310013726163410022262 0ustar00rootroot00000000000000/* Test of inet_ntop function. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (inet_ntop, char const *, (int, void const *, char *, socklen_t)); #include #include #include #include "macros.h" int main (void) { #if defined AF_INET /* HAVE_IPV4 */ { struct in_addr internal; char printable[16]; const char *result; /* This machine was for a long time known as ma2s2.mathematik.uni-karlsruhe.de. */ # ifdef WORDS_BIGENDIAN internal.s_addr = 0x810D7302; # else internal.s_addr = 0x02730D81; # endif result = inet_ntop (AF_INET, &internal, printable, sizeof (printable)); ASSERT (result != NULL); ASSERT (strcmp (result, "129.13.115.2") == 0); } #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-inet_pton.c0000644000000000000000000000011013726163410023265 xustar000000000000000024 mtime=1599661832.629 24 atime=1599661832.766 24 ctime=1599661999.386 libprelude-5.2.0/libmissing/tests/test-inet_pton.c0000644000000000000000000000333013726163410022267 0ustar00rootroot00000000000000/* Test of inet_pton function. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (inet_pton, int, (int, const char *, void *)); #include #include #include "macros.h" int main (void) { #if defined AF_INET /* HAVE_IPV4 */ { /* This machine was for a long time known as ma2s2.mathematik.uni-karlsruhe.de. */ const char printable[] = "129.13.115.2"; struct in_addr internal; int ret; ret = inet_pton (AF_INET, printable, &internal); ASSERT (ret == 1); /* Verify that internal is filled in network byte order. */ ASSERT (((unsigned char *) &internal)[0] == 0x81); ASSERT (((unsigned char *) &internal)[1] == 0x0D); ASSERT (((unsigned char *) &internal)[2] == 0x73); ASSERT (((unsigned char *) &internal)[3] == 0x02); # ifdef WORDS_BIGENDIAN ASSERT (internal.s_addr == 0x810D7302); # else ASSERT (internal.s_addr == 0x02730D81); # endif } #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-intprops.c0000644000000000000000000000010713726163410023152 xustar000000000000000023 mtime=1599661832.63 24 atime=1599661832.766 24 ctime=1599661999.387 libprelude-5.2.0/libmissing/tests/test-intprops.c0000644000000000000000000004343313726163410022156 0ustar00rootroot00000000000000/* Test intprops.h. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ /* Written by Paul Eggert. */ /* Tell gcc not to warn about the long expressions that the overflow macros expand to, or about the (X < 0) expressions. */ #if 4 < __GNUC__ + (3 <= __GNUC_MINOR__) # pragma GCC diagnostic ignored "-Woverlength-strings" # pragma GCC diagnostic ignored "-Wtype-limits" /* Work around a bug in GCC 6.1 and earlier; see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68971 */ # pragma GCC diagnostic ignored "-Woverflow" #endif #include #include "intprops.h" #include "verify.h" #include #include #include #include "macros.h" /* VERIFY (X) uses a static assertion for compilers that are known to work, and falls back on a dynamic assertion for other compilers. These tests should be checkable via 'verify' rather than 'ASSERT', but using 'verify' would run into a bug with HP-UX 11.23 cc; see . */ #if __GNUC__ || __SUNPRO_C # define VERIFY(x) do { verify (x); } while (0) #else # define VERIFY(x) ASSERT (x) #endif #define DONTCARE __LINE__ int main (void) { /* Use VERIFY for tests that must be integer constant expressions, ASSERT otherwise. */ /* TYPE_IS_INTEGER. */ ASSERT (TYPE_IS_INTEGER (bool)); ASSERT (TYPE_IS_INTEGER (char)); ASSERT (TYPE_IS_INTEGER (signed char)); ASSERT (TYPE_IS_INTEGER (unsigned char)); ASSERT (TYPE_IS_INTEGER (short int)); ASSERT (TYPE_IS_INTEGER (unsigned short int)); ASSERT (TYPE_IS_INTEGER (int)); ASSERT (TYPE_IS_INTEGER (unsigned int)); ASSERT (TYPE_IS_INTEGER (long int)); ASSERT (TYPE_IS_INTEGER (unsigned long int)); ASSERT (TYPE_IS_INTEGER (intmax_t)); ASSERT (TYPE_IS_INTEGER (uintmax_t)); ASSERT (! TYPE_IS_INTEGER (float)); ASSERT (! TYPE_IS_INTEGER (double)); ASSERT (! TYPE_IS_INTEGER (long double)); /* TYPE_SIGNED. */ /* VERIFY (! TYPE_SIGNED (bool)); // not guaranteed by gnulib substitute */ VERIFY (TYPE_SIGNED (signed char)); VERIFY (! TYPE_SIGNED (unsigned char)); VERIFY (TYPE_SIGNED (short int)); VERIFY (! TYPE_SIGNED (unsigned short int)); VERIFY (TYPE_SIGNED (int)); VERIFY (! TYPE_SIGNED (unsigned int)); VERIFY (TYPE_SIGNED (long int)); VERIFY (! TYPE_SIGNED (unsigned long int)); VERIFY (TYPE_SIGNED (intmax_t)); VERIFY (! TYPE_SIGNED (uintmax_t)); ASSERT (TYPE_SIGNED (float)); ASSERT (TYPE_SIGNED (double)); ASSERT (TYPE_SIGNED (long double)); /* Integer representation. Check that it is two's complement. */ VERIFY (INT_MIN + INT_MAX < 0); /* TYPE_MINIMUM, TYPE_MAXIMUM. */ VERIFY (TYPE_MINIMUM (char) == CHAR_MIN); VERIFY (TYPE_MAXIMUM (char) == CHAR_MAX); VERIFY (TYPE_MINIMUM (unsigned char) == 0); VERIFY (TYPE_MAXIMUM (unsigned char) == UCHAR_MAX); VERIFY (TYPE_MINIMUM (signed char) == SCHAR_MIN); VERIFY (TYPE_MAXIMUM (signed char) == SCHAR_MAX); VERIFY (TYPE_MINIMUM (short int) == SHRT_MIN); VERIFY (TYPE_MAXIMUM (short int) == SHRT_MAX); VERIFY (TYPE_MINIMUM (unsigned short int) == 0); VERIFY (TYPE_MAXIMUM (unsigned short int) == USHRT_MAX); VERIFY (TYPE_MINIMUM (int) == INT_MIN); VERIFY (TYPE_MAXIMUM (int) == INT_MAX); VERIFY (TYPE_MINIMUM (unsigned int) == 0); VERIFY (TYPE_MAXIMUM (unsigned int) == UINT_MAX); VERIFY (TYPE_MINIMUM (long int) == LONG_MIN); VERIFY (TYPE_MAXIMUM (long int) == LONG_MAX); VERIFY (TYPE_MINIMUM (unsigned long int) == 0); VERIFY (TYPE_MAXIMUM (unsigned long int) == ULONG_MAX); #ifdef LLONG_MAX verify (TYPE_MINIMUM (long long int) == LLONG_MIN); verify (TYPE_MAXIMUM (long long int) == LLONG_MAX); #endif VERIFY (TYPE_MINIMUM (intmax_t) == INTMAX_MIN); VERIFY (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX); VERIFY (TYPE_MINIMUM (uintmax_t) == 0); VERIFY (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX); /* TYPE_WIDTH. */ #ifdef CHAR_WIDTH verify (TYPE_WIDTH (char) == CHAR_WIDTH); verify (TYPE_WIDTH (signed char) == SCHAR_WIDTH); verify (TYPE_WIDTH (unsigned char) == UCHAR_WIDTH); verify (TYPE_WIDTH (short int) == SHRT_WIDTH); verify (TYPE_WIDTH (unsigned short int) == USHRT_WIDTH); verify (TYPE_WIDTH (int) == INT_WIDTH); verify (TYPE_WIDTH (unsigned int) == UINT_WIDTH); verify (TYPE_WIDTH (long int) == LONG_WIDTH); verify (TYPE_WIDTH (unsigned long int) == ULONG_WIDTH); #ifdef LLONG_WIDTH verify (TYPE_WIDTH (long long int) == LLONG_WIDTH); verify (TYPE_WIDTH (unsigned long long int) == ULLONG_WIDTH); #endif #endif /* INT_BITS_STRLEN_BOUND. */ VERIFY (INT_BITS_STRLEN_BOUND (1) == 1); VERIFY (INT_BITS_STRLEN_BOUND (2620) == 789); /* INT_STRLEN_BOUND, INT_BUFSIZE_BOUND. */ #ifdef INT32_MAX /* POSIX guarantees int32_t; this ports to non-POSIX. */ VERIFY (INT_STRLEN_BOUND (int32_t) == sizeof ("-2147483648") - 1); VERIFY (INT_BUFSIZE_BOUND (int32_t) == sizeof ("-2147483648")); #endif #ifdef INT64_MAX VERIFY (INT_STRLEN_BOUND (int64_t) == sizeof ("-9223372036854775808") - 1); VERIFY (INT_BUFSIZE_BOUND (int64_t) == sizeof ("-9223372036854775808")); #endif /* All the INT__RANGE_OVERFLOW tests are equally valid as INT__OVERFLOW tests, so define macros to do both. OP is the operation, OPNAME its symbolic name, A and B its operands, T the result type, V the overflow flag, and VRES the result if V and if two's complement. CHECK_BINOP is for most binary operatinos, CHECK_SBINOP for binary +, -, * when the result type is signed, and CHECK_UNOP for unary operations. */ #define CHECK_BINOP(op, opname, a, b, t, v, vres) \ VERIFY (INT_##opname##_RANGE_OVERFLOW (a, b, TYPE_MINIMUM (t), \ TYPE_MAXIMUM (t)) \ == (v)); \ VERIFY (INT_##opname##_OVERFLOW (a, b) == (v)) #define CHECK_SBINOP(op, opname, a, b, t, v, vres) \ CHECK_BINOP(op, opname, a, b, t, v, vres); \ { \ t result; \ ASSERT (INT_##opname##_WRAPV (a, b, &result) == (v)); \ ASSERT (result == ((v) ? (vres) : ((a) op (b)))); \ } #define CHECK_UNOP(op, opname, a, t, v) \ VERIFY (INT_##opname##_RANGE_OVERFLOW (a, TYPE_MINIMUM (t), \ TYPE_MAXIMUM (t)) \ == (v)); \ VERIFY (INT_##opname##_OVERFLOW (a) == (v)) /* INT__RANGE_OVERFLOW, INT__OVERFLOW. */ VERIFY (INT_ADD_RANGE_OVERFLOW (INT_MAX, 1, INT_MIN, INT_MAX)); VERIFY (INT_ADD_OVERFLOW (INT_MAX, 1)); CHECK_SBINOP (+, ADD, INT_MAX, 1, int, true, INT_MIN); CHECK_SBINOP (+, ADD, INT_MAX, -1, int, false, INT_MAX - 1); CHECK_SBINOP (+, ADD, INT_MIN, 1, int, false, INT_MIN + 1); CHECK_SBINOP (+, ADD, INT_MIN, -1, int, true, INT_MAX); CHECK_BINOP (+, ADD, UINT_MAX, 1u, unsigned int, true, 0u); CHECK_BINOP (+, ADD, 0u, 1u, unsigned int, false, 1u); CHECK_SBINOP (-, SUBTRACT, INT_MAX, 1, int, false, INT_MAX - 1); CHECK_SBINOP (-, SUBTRACT, INT_MAX, -1, int, true, INT_MIN); CHECK_SBINOP (-, SUBTRACT, INT_MIN, 1, int, true, INT_MAX); CHECK_SBINOP (-, SUBTRACT, INT_MIN, -1, int, false, INT_MIN - -1); CHECK_BINOP (-, SUBTRACT, UINT_MAX, 1u, unsigned int, false, UINT_MAX - 1u); CHECK_BINOP (-, SUBTRACT, 0u, 1u, unsigned int, true, 0u - 1u); CHECK_UNOP (-, NEGATE, INT_MIN, int, true); CHECK_UNOP (-, NEGATE, 0, int, false); CHECK_UNOP (-, NEGATE, INT_MAX, int, false); CHECK_UNOP (-, NEGATE, 0u, unsigned int, false); CHECK_UNOP (-, NEGATE, 1u, unsigned int, true); CHECK_UNOP (-, NEGATE, UINT_MAX, unsigned int, true); CHECK_SBINOP (*, MULTIPLY, INT_MAX, INT_MAX, int, true, 1); CHECK_SBINOP (*, MULTIPLY, INT_MAX, INT_MIN, int, true, INT_MIN); CHECK_SBINOP (*, MULTIPLY, INT_MIN, INT_MAX, int, true, INT_MIN); CHECK_SBINOP (*, MULTIPLY, INT_MIN, INT_MIN, int, true, 0); CHECK_SBINOP (*, MULTIPLY, -1, INT_MIN, int, INT_NEGATE_OVERFLOW (INT_MIN), INT_MIN); CHECK_SBINOP (*, MULTIPLY, LONG_MIN / INT_MAX, (long int) INT_MAX, long int, false, LONG_MIN - LONG_MIN % INT_MAX); CHECK_BINOP (/, DIVIDE, INT_MIN, -1, int, INT_NEGATE_OVERFLOW (INT_MIN), INT_MIN); CHECK_BINOP (/, DIVIDE, INT_MAX, 1, int, false, INT_MAX); CHECK_BINOP (/, DIVIDE, (unsigned int) INT_MIN, -1u, unsigned int, false, INT_MIN / -1u); CHECK_BINOP (%, REMAINDER, INT_MIN, -1, int, INT_NEGATE_OVERFLOW (INT_MIN), 0); CHECK_BINOP (%, REMAINDER, INT_MAX, 1, int, false, 0); CHECK_BINOP (%, REMAINDER, (unsigned int) INT_MIN, -1u, unsigned int, false, INT_MIN % -1u); CHECK_BINOP (<<, LEFT_SHIFT, UINT_MAX, 1, unsigned int, true, UINT_MAX << 1); CHECK_BINOP (<<, LEFT_SHIFT, UINT_MAX / 2 + 1, 1, unsigned int, true, (UINT_MAX / 2 + 1) << 1); CHECK_BINOP (<<, LEFT_SHIFT, UINT_MAX / 2, 1, unsigned int, false, (UINT_MAX / 2) << 1); /* INT__OVERFLOW and INT__WRAPV with mixed types. */ #define CHECK_SUM(a, b, t, v, vres) \ CHECK_SUM1(a, b, t, v, vres); \ CHECK_SUM1(b, a, t, v, vres) #define CHECK_SSUM(a, b, t, v, vres) \ CHECK_SSUM1(a, b, t, v, vres); \ CHECK_SSUM1(b, a, t, v, vres) #define CHECK_SUM1(a, b, t, v, vres) \ VERIFY (INT_ADD_OVERFLOW (a, b) == (v)) #define CHECK_SSUM1(a, b, t, v, vres) \ CHECK_SUM1(a, b, t, v, vres); \ { \ t result; \ ASSERT (INT_ADD_WRAPV (a, b, &result) == (v)); \ ASSERT (result == ((v) ? (vres) : ((a) + (b)))); \ } CHECK_SSUM (-1, LONG_MIN, long int, true, LONG_MAX); CHECK_SUM (-1, UINT_MAX, unsigned int, false, DONTCARE); CHECK_SSUM (-1L, INT_MIN, long int, INT_MIN == LONG_MIN, INT_MIN == LONG_MIN ? INT_MAX : DONTCARE); CHECK_SUM (0u, -1, unsigned int, true, 0u + -1); CHECK_SUM (0u, 0, unsigned int, false, DONTCARE); CHECK_SUM (0u, 1, unsigned int, false, DONTCARE); CHECK_SSUM (1, LONG_MAX, long int, true, LONG_MIN); CHECK_SUM (1, UINT_MAX, unsigned int, true, 0u); CHECK_SSUM (1L, INT_MAX, long int, INT_MAX == LONG_MAX, INT_MAX == LONG_MAX ? INT_MIN : DONTCARE); CHECK_SUM (1u, INT_MAX, unsigned int, INT_MAX == UINT_MAX, 1u + INT_MAX); CHECK_SUM (1u, INT_MIN, unsigned int, true, 1u + INT_MIN); { long int result; ASSERT (INT_ADD_WRAPV (1, INT_MAX, &result) == (INT_MAX == LONG_MAX)); ASSERT (INT_ADD_WRAPV (-1, INT_MIN, &result) == (INT_MIN == LONG_MIN)); } #define CHECK_DIFFERENCE(a, b, t, v, vres) \ VERIFY (INT_SUBTRACT_OVERFLOW (a, b) == (v)) #define CHECK_SDIFFERENCE(a, b, t, v, vres) \ CHECK_DIFFERENCE(a, b, t, v, vres); \ { \ t result; \ ASSERT (INT_SUBTRACT_WRAPV (a, b, &result) == (v)); \ ASSERT (result == ((v) ? (vres) : ((a) - (b)))); \ } CHECK_DIFFERENCE (INT_MAX, 1u, unsigned int, UINT_MAX < INT_MAX - 1, INT_MAX - 1u); CHECK_DIFFERENCE (UINT_MAX, 1, unsigned int, false, UINT_MAX - 1); CHECK_DIFFERENCE (0u, -1, unsigned int, false, 0u - -1); CHECK_DIFFERENCE (UINT_MAX, -1, unsigned int, true, UINT_MAX - -1); CHECK_DIFFERENCE (INT_MIN, 1u, unsigned int, true, INT_MIN - 1u); CHECK_DIFFERENCE (-1, 0u, unsigned int, true, -1 - 0u); CHECK_SDIFFERENCE (-1, INT_MIN, int, false, -1 - INT_MIN); CHECK_SDIFFERENCE (-1, INT_MAX, int, false, -1 - INT_MAX); CHECK_SDIFFERENCE (0, INT_MIN, int, INT_MIN < -INT_MAX, INT_MIN); CHECK_SDIFFERENCE (0, INT_MAX, int, false, 0 - INT_MAX); { long int result; ASSERT (INT_SUBTRACT_WRAPV (INT_MAX, -1, &result) == (INT_MAX == LONG_MAX)); ASSERT (INT_SUBTRACT_WRAPV (INT_MIN, 1, &result) == (INT_MAX == LONG_MAX)); } #define CHECK_PRODUCT(a, b, t, v, vres) \ CHECK_PRODUCT1(a, b, t, v, vres); \ CHECK_PRODUCT1(b, a, t, v, vres) #define CHECK_SPRODUCT(a, b, t, v, vres) \ CHECK_SPRODUCT1(a, b, t, v, vres); \ CHECK_SPRODUCT1(b, a, t, v, vres) #define CHECK_PRODUCT1(a, b, t, v, vres) \ VERIFY (INT_MULTIPLY_OVERFLOW (a, b) == (v)) #define CHECK_SPRODUCT1(a, b, t, v, vres) \ CHECK_PRODUCT1(a, b, t, v, vres); \ { \ t result; \ ASSERT (INT_MULTIPLY_WRAPV (a, b, &result) == (v)); \ ASSERT (result == ((v) ? (vres) : ((a) * (b)))); \ } CHECK_PRODUCT (-1, 1u, unsigned int, true, -1 * 1u); CHECK_SPRODUCT (-1, INT_MIN, int, INT_NEGATE_OVERFLOW (INT_MIN), INT_MIN); CHECK_PRODUCT (-1, UINT_MAX, unsigned int, true, -1 * UINT_MAX); CHECK_SPRODUCT (-32768, LONG_MAX / -32768 - 1, long int, true, LONG_MIN); CHECK_SPRODUCT (-12345, LONG_MAX / -12345, long int, false, DONTCARE); CHECK_SPRODUCT (0, -1, int, false, DONTCARE); CHECK_SPRODUCT (0, 0, int, false, DONTCARE); CHECK_PRODUCT (0, 0u, unsigned int, false, DONTCARE); CHECK_SPRODUCT (0, 1, int, false, DONTCARE); CHECK_SPRODUCT (0, INT_MAX, int, false, DONTCARE); CHECK_SPRODUCT (0, INT_MIN, int, false, DONTCARE); CHECK_PRODUCT (0, UINT_MAX, unsigned int, false, DONTCARE); CHECK_PRODUCT (0u, -1, unsigned int, false, DONTCARE); CHECK_PRODUCT (0u, 0, unsigned int, false, DONTCARE); CHECK_PRODUCT (0u, 0u, unsigned int, false, DONTCARE); CHECK_PRODUCT (0u, 1, unsigned int, false, DONTCARE); CHECK_PRODUCT (0u, INT_MAX, unsigned int, false, DONTCARE); CHECK_PRODUCT (0u, INT_MIN, unsigned int, false, DONTCARE); CHECK_PRODUCT (0u, UINT_MAX, unsigned int, false, DONTCARE); CHECK_SPRODUCT (1, INT_MAX, int, false, DONTCARE); CHECK_SPRODUCT (1, INT_MIN, int, false, DONTCARE); CHECK_PRODUCT (1, UINT_MAX, unsigned int, false, DONTCARE); CHECK_PRODUCT (1u, INT_MIN, unsigned int, true, 1u * INT_MIN); CHECK_PRODUCT (1u, INT_MAX, unsigned int, UINT_MAX < INT_MAX, 1u * INT_MAX); CHECK_PRODUCT (INT_MAX, UINT_MAX, unsigned int, true, INT_MAX * UINT_MAX); CHECK_PRODUCT (INT_MAX, ULONG_MAX, unsigned long int, true, INT_MAX * ULONG_MAX); CHECK_SPRODUCT (INT_MIN, LONG_MAX / INT_MIN - 1, long int, true, LONG_MIN); CHECK_SPRODUCT (INT_MIN, LONG_MAX / INT_MIN, long int, false, DONTCARE); CHECK_PRODUCT (INT_MIN, UINT_MAX, unsigned int, true, INT_MIN * UINT_MAX); CHECK_PRODUCT (INT_MIN, ULONG_MAX, unsigned long int, true, INT_MIN * ULONG_MAX); { long int result; ASSERT (INT_MULTIPLY_WRAPV (INT_MAX, INT_MAX, &result) == (LONG_MAX / INT_MAX < INT_MAX)); ASSERT (INT_MULTIPLY_WRAPV (INT_MAX, INT_MAX, &result) || result == INT_MAX * (long int) INT_MAX); ASSERT (INT_MULTIPLY_WRAPV (INT_MIN, INT_MIN, &result) || result == INT_MIN * (long int) INT_MIN); } # ifdef LLONG_MAX { long long int result; ASSERT (INT_MULTIPLY_WRAPV (LONG_MAX, LONG_MAX, &result) == (LLONG_MAX / LONG_MAX < LONG_MAX)); ASSERT (INT_MULTIPLY_WRAPV (LONG_MAX, LONG_MAX, &result) || result == LONG_MAX * (long long int) LONG_MAX); ASSERT (INT_MULTIPLY_WRAPV (LONG_MIN, LONG_MIN, &result) || result == LONG_MIN * (long long int) LONG_MIN); } # endif #define CHECK_QUOTIENT(a, b, v) VERIFY (INT_DIVIDE_OVERFLOW (a, b) == (v)) CHECK_QUOTIENT (INT_MIN, -1L, INT_MIN == LONG_MIN); CHECK_QUOTIENT (INT_MIN, UINT_MAX, false); CHECK_QUOTIENT (INTMAX_MIN, UINTMAX_MAX, false); CHECK_QUOTIENT (INTMAX_MIN, UINT_MAX, false); CHECK_QUOTIENT (-11, 10u, true); CHECK_QUOTIENT (-10, 10u, true); CHECK_QUOTIENT (-9, 10u, false); CHECK_QUOTIENT (11u, -10, true); CHECK_QUOTIENT (10u, -10, true); CHECK_QUOTIENT (9u, -10, false); #define CHECK_REMAINDER(a, b, v) VERIFY (INT_REMAINDER_OVERFLOW (a, b) == (v)) CHECK_REMAINDER (INT_MIN, -1L, INT_MIN == LONG_MIN); CHECK_REMAINDER (-1, UINT_MAX, true); CHECK_REMAINDER ((intmax_t) -1, UINTMAX_MAX, true); CHECK_REMAINDER (INTMAX_MIN, UINT_MAX, (INTMAX_MAX < UINT_MAX && - (unsigned int) INTMAX_MIN % UINT_MAX != 0)); CHECK_REMAINDER (INT_MIN, ULONG_MAX, INT_MIN % ULONG_MAX != 1); CHECK_REMAINDER (1u, -1, false); CHECK_REMAINDER (37*39u, -39, false); CHECK_REMAINDER (37*39u + 1, -39, true); CHECK_REMAINDER (37*39u - 1, -39, true); CHECK_REMAINDER (LONG_MAX, -INT_MAX, false); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-inttypes.c0000644000000000000000000000010713726163410023153 xustar000000000000000023 mtime=1599661832.63 24 atime=1599661832.766 24 ctime=1599661999.389 libprelude-5.2.0/libmissing/tests/test-inttypes.c0000644000000000000000000000606113726163410022153 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2006-2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include /* Tests for macros supposed to be defined in inttypes.h. */ const char *k = /* implicit string concatenation */ #ifdef INT8_MAX PRId8 PRIi8 #endif #ifdef UINT8_MAX PRIo8 PRIu8 PRIx8 PRIX8 #endif #ifdef INT16_MAX PRId16 PRIi16 #endif #ifdef UINT16_MAX PRIo16 PRIu16 PRIx16 PRIX16 #endif #ifdef INT32_MAX PRId32 PRIi32 #endif #ifdef UINT32_MAX PRIo32 PRIu32 PRIx32 PRIX32 #endif #ifdef INT64_MAX PRId64 PRIi64 #endif #ifdef UINT64_MAX PRIo64 PRIu64 PRIx64 PRIX64 #endif PRIdLEAST8 PRIiLEAST8 PRIoLEAST8 PRIuLEAST8 PRIxLEAST8 PRIXLEAST8 PRIdLEAST16 PRIiLEAST16 PRIoLEAST16 PRIuLEAST16 PRIxLEAST16 PRIXLEAST16 PRIdLEAST32 PRIiLEAST32 PRIoLEAST32 PRIuLEAST32 PRIxLEAST32 PRIXLEAST32 PRIdLEAST64 PRIiLEAST64 PRIoLEAST64 PRIuLEAST64 PRIxLEAST64 PRIXLEAST64 PRIdFAST8 PRIiFAST8 PRIoFAST8 PRIuFAST8 PRIxFAST8 PRIXFAST8 PRIdFAST16 PRIiFAST16 PRIoFAST16 PRIuFAST16 PRIxFAST16 PRIXFAST16 PRIdFAST32 PRIiFAST32 PRIoFAST32 PRIuFAST32 PRIxFAST32 PRIXFAST32 PRIdFAST64 PRIiFAST64 PRIoFAST64 PRIuFAST64 PRIxFAST64 PRIXFAST64 PRIdMAX PRIiMAX PRIoMAX PRIuMAX PRIxMAX PRIXMAX #ifdef INTPTR_MAX PRIdPTR PRIiPTR #endif #ifdef UINTPTR_MAX PRIoPTR PRIuPTR PRIxPTR PRIXPTR #endif ; const char *l = /* implicit string concatenation */ #ifdef INT8_MAX SCNd8 SCNi8 #endif #ifdef UINT8_MAX SCNo8 SCNu8 SCNx8 #endif #ifdef INT16_MAX SCNd16 SCNi16 #endif #ifdef UINT16_MAX SCNo16 SCNu16 SCNx16 #endif #ifdef INT32_MAX SCNd32 SCNi32 #endif #ifdef UINT32_MAX SCNo32 SCNu32 SCNx32 #endif #ifdef INT64_MAX SCNd64 SCNi64 #endif #ifdef UINT64_MAX SCNo64 SCNu64 SCNx64 #endif SCNdLEAST8 SCNiLEAST8 SCNoLEAST8 SCNuLEAST8 SCNxLEAST8 SCNdLEAST16 SCNiLEAST16 SCNoLEAST16 SCNuLEAST16 SCNxLEAST16 SCNdLEAST32 SCNiLEAST32 SCNoLEAST32 SCNuLEAST32 SCNxLEAST32 SCNdLEAST64 SCNiLEAST64 SCNoLEAST64 SCNuLEAST64 SCNxLEAST64 SCNdFAST8 SCNiFAST8 SCNoFAST8 SCNuFAST8 SCNxFAST8 SCNdFAST16 SCNiFAST16 SCNoFAST16 SCNuFAST16 SCNxFAST16 SCNdFAST32 SCNiFAST32 SCNoFAST32 SCNuFAST32 SCNxFAST32 SCNdFAST64 SCNiFAST64 SCNoFAST64 SCNuFAST64 SCNxFAST64 SCNdMAX SCNiMAX SCNoMAX SCNuMAX SCNxMAX #ifdef INTPTR_MAX SCNdPTR SCNiPTR #endif #ifdef UINTPTR_MAX SCNoPTR SCNuPTR SCNxPTR #endif ; int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ioctl.c0000644000000000000000000000010713726163410022406 xustar000000000000000023 mtime=1599661832.63 24 atime=1599661832.766 24 ctime=1599661999.391 libprelude-5.2.0/libmissing/tests/test-ioctl.c0000644000000000000000000000241513726163410021405 0ustar00rootroot00000000000000/* Test of ioctl() function. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include /* Specification. */ #include #include "signature.h" SIGNATURE_CHECK (ioctl, int, (int, int, ...)); #include #include #include "macros.h" int main (void) { #ifdef FIONREAD /* Test behaviour for invalid file descriptors. */ { int value; errno = 0; ASSERT (ioctl (-1, FIONREAD, &value) == -1); ASSERT (errno == EBADF); } { int value; close (99); errno = 0; ASSERT (ioctl (99, FIONREAD, &value) == -1); ASSERT (errno == EBADF); } #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-isblank.c0000644000000000000000000000010713726163410022717 xustar000000000000000023 mtime=1599661832.63 24 atime=1599661832.766 24 ctime=1599661999.392 libprelude-5.2.0/libmissing/tests/test-isblank.c0000644000000000000000000000305013726163410021712 0ustar00rootroot00000000000000/* Test of isblank() function. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (isblank, int, (int)); #include #include #include "macros.h" int main (int argc, char *argv[]) { unsigned int c; /* Verify the property in the "C" locale. POSIX specifies in that - in all locales, the blank characters include the and characters, - in the "POSIX" locale (which is usually the same as the "C" locale), the blank characters include only the ASCII and characters. */ for (c = 0; c <= UCHAR_MAX; c++) ASSERT (!isblank (c) == !(c == ' ' || c == '\t')); ASSERT (!isblank (EOF)); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-langinfo.c0000644000000000000000000000011013726163410023063 xustar000000000000000024 mtime=1599661832.631 24 atime=1599661832.766 24 ctime=1599661999.394 libprelude-5.2.0/libmissing/tests/test-langinfo.c0000644000000000000000000000357213726163410022075 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2009. */ #include #include /* Check that all the nl_item values are defined. */ int items[] = { /* nl_langinfo items of the LC_CTYPE category */ CODESET, /* nl_langinfo items of the LC_NUMERIC category */ RADIXCHAR, THOUSEP, /* nl_langinfo items of the LC_TIME category */ D_T_FMT, D_FMT, T_FMT, T_FMT_AMPM, AM_STR, PM_STR, DAY_1, DAY_2, DAY_3, DAY_4, DAY_5, DAY_6, DAY_7, ABDAY_1, ABDAY_2, ABDAY_3, ABDAY_4, ABDAY_5, ABDAY_6, ABDAY_7, MON_1, MON_2, MON_3, MON_4, MON_5, MON_6, MON_7, MON_8, MON_9, MON_10, MON_11, MON_12, ABMON_1, ABMON_2, ABMON_3, ABMON_4, ABMON_5, ABMON_6, ABMON_7, ABMON_8, ABMON_9, ABMON_10, ABMON_11, ABMON_12, ERA, ERA_D_FMT, ERA_D_T_FMT, ERA_T_FMT, ALT_DIGITS, /* nl_langinfo items of the LC_MONETARY category */ CRNCYSTR, /* nl_langinfo items of the LC_MESSAGES category */ YESEXPR, NOEXPR }; int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-limits-h.c0000644000000000000000000000011013726163410023014 xustar000000000000000024 mtime=1599661832.631 24 atime=1599661832.766 24 ctime=1599661999.396 libprelude-5.2.0/libmissing/tests/test-limits-h.c0000644000000000000000000000311313726163410022015 0ustar00rootroot00000000000000/* Test of substitute. Copyright 2016-2018 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 3 of the License, 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, see . */ /* Written by Paul Eggert. */ #include #include #include "verify.h" #if 4 < __GNUC__ + (3 <= __GNUC_MINOR__) # pragma GCC diagnostic ignored "-Woverlength-strings" #endif /* Macros specified by ISO/IEC TS 18661-1:2014. */ #define verify_width(width, min, max) \ verify ((max) >> ((width) - 1 - ((min) < 0)) == 1) verify_width (CHAR_WIDTH, CHAR_MIN, CHAR_MAX); verify_width (SCHAR_WIDTH, SCHAR_MIN, SCHAR_MAX); verify_width (UCHAR_WIDTH, 0, UCHAR_MAX); verify_width (SHRT_WIDTH, SHRT_MIN, SHRT_MAX); verify_width (USHRT_WIDTH, 0, USHRT_MAX); verify_width (INT_WIDTH, INT_MIN, INT_MAX); verify_width (UINT_WIDTH, 0, UINT_MAX); verify_width (LONG_WIDTH, LONG_MIN, LONG_MAX); verify_width (ULONG_WIDTH, 0, ULONG_MAX); verify_width (LLONG_WIDTH, LLONG_MIN, LLONG_MAX); verify_width (ULLONG_WIDTH, 0, ULLONG_MAX); int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-listen.c0000644000000000000000000000011013726163410022564 xustar000000000000000024 mtime=1599661832.631 24 atime=1599661832.766 24 ctime=1599661999.398 libprelude-5.2.0/libmissing/tests/test-listen.c0000644000000000000000000000234213726163410021570 0ustar00rootroot00000000000000/* Test listen() function. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (listen, int, (int, int)); #include #include #include "sockets.h" #include "macros.h" int main (void) { (void) gl_sockets_startup (SOCKETS_1_1); /* Test behaviour for invalid file descriptors. */ { errno = 0; ASSERT (listen (-1, 1) == -1); ASSERT (errno == EBADF); } { close (99); errno = 0; ASSERT (listen (99 ,1) == -1); ASSERT (errno == EBADF); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-localcharset.c0000644000000000000000000000011013726163410023732 xustar000000000000000024 mtime=1599661832.631 24 atime=1599661832.766 24 ctime=1599661999.399 libprelude-5.2.0/libmissing/tests/test-localcharset.c0000644000000000000000000000221713726163410022737 0ustar00rootroot00000000000000/* Manual test of localcharset() function. Copyright (C) 2018 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 3 of the License, 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, see . */ /* This program prints the result of locale_charset in the current locale. One way to use it is: $ for l in `locale -a`; do echo -n "$l "; LANG=$l ./test-localcharset; done \ | sort -k 2 */ #include #include "localcharset.h" #include #include int main (void) { setlocale (LC_ALL, ""); printf ("%s\n", locale_charset ()); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-locale.c0000644000000000000000000000011013726163410022525 xustar000000000000000024 mtime=1599661832.631 24 atime=1599661832.766 24 ctime=1599661999.401 libprelude-5.2.0/libmissing/tests/test-locale.c0000644000000000000000000000441413726163410021533 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "verify.h" int a[] = { LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME }; /* Check that the 'struct lconv' type is defined. */ struct lconv l; int ls; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); int main () { #if HAVE_NEWLOCALE /* Check that the locale_t type and the LC_GLOBAL_LOCALE macro are defined. */ locale_t b = LC_GLOBAL_LOCALE; (void) b; #endif /* Check that 'struct lconv' has the ISO C and POSIX specified members. */ ls += sizeof (*l.decimal_point); ls += sizeof (*l.thousands_sep); ls += sizeof (*l.grouping); ls += sizeof (*l.mon_decimal_point); ls += sizeof (*l.mon_thousands_sep); ls += sizeof (*l.mon_grouping); ls += sizeof (*l.positive_sign); ls += sizeof (*l.negative_sign); ls += sizeof (*l.currency_symbol); ls += sizeof (l.frac_digits); ls += sizeof (l.p_cs_precedes); ls += sizeof (l.p_sign_posn); ls += sizeof (l.p_sep_by_space); ls += sizeof (l.n_cs_precedes); ls += sizeof (l.n_sign_posn); ls += sizeof (l.n_sep_by_space); ls += sizeof (*l.int_curr_symbol); ls += sizeof (l.int_frac_digits); ls += sizeof (l.int_p_cs_precedes); ls += sizeof (l.int_p_sign_posn); ls += sizeof (l.int_p_sep_by_space); ls += sizeof (l.int_n_cs_precedes); ls += sizeof (l.int_n_sign_posn); ls += sizeof (l.int_n_sep_by_space); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-localeconv.c0000644000000000000000000000011013726163410023413 xustar000000000000000024 mtime=1599661832.631 24 atime=1599661832.766 24 ctime=1599661999.403 libprelude-5.2.0/libmissing/tests/test-localeconv.c0000644000000000000000000000442613726163410022424 0ustar00rootroot00000000000000/* Test of localeconv() function. Copyright (C) 2012-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2012. */ #include #include #include "signature.h" SIGNATURE_CHECK (localeconv, struct lconv *, (void)); #include #include #include "macros.h" int main () { /* Test localeconv() result in the "C" locale. */ { struct lconv *l = localeconv (); ASSERT (STREQ (l->decimal_point, ".")); ASSERT (STREQ (l->thousands_sep, "")); #if !((defined __FreeBSD__ || defined __DragonFly__) || defined __sun) ASSERT (STREQ (l->grouping, "")); #endif ASSERT (STREQ (l->mon_decimal_point, "")); ASSERT (STREQ (l->mon_thousands_sep, "")); #if !((defined __FreeBSD__ || defined __DragonFly__) || defined __sun) ASSERT (STREQ (l->mon_grouping, "")); #endif ASSERT (STREQ (l->positive_sign, "")); ASSERT (STREQ (l->negative_sign, "")); ASSERT (STREQ (l->currency_symbol, "")); ASSERT (l->frac_digits == CHAR_MAX); ASSERT (l->p_cs_precedes == CHAR_MAX); ASSERT (l->p_sign_posn == CHAR_MAX); ASSERT (l->p_sep_by_space == CHAR_MAX); ASSERT (l->n_cs_precedes == CHAR_MAX); ASSERT (l->n_sign_posn == CHAR_MAX); ASSERT (l->n_sep_by_space == CHAR_MAX); ASSERT (STREQ (l->int_curr_symbol, "")); ASSERT (l->int_frac_digits == CHAR_MAX); ASSERT (l->int_p_cs_precedes == CHAR_MAX); ASSERT (l->int_p_sign_posn == CHAR_MAX); ASSERT (l->int_p_sep_by_space == CHAR_MAX); ASSERT (l->int_n_cs_precedes == CHAR_MAX); ASSERT (l->int_n_sign_posn == CHAR_MAX); ASSERT (l->int_n_sep_by_space == CHAR_MAX); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-localename.c0000644000000000000000000000011013726163410023366 xustar000000000000000024 mtime=1599661832.632 24 atime=1599661832.766 24 ctime=1599661999.404 libprelude-5.2.0/libmissing/tests/test-localename.c0000644000000000000000000005566213726163410022407 0ustar00rootroot00000000000000/* Test of gl_locale_name function and its variants. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include "localename.h" #include #include #include #include "macros.h" #if HAVE_NEWLOCALE && HAVE_USELOCALE static struct { int cat; int mask; const char *string; } const categories[] = { { LC_CTYPE, LC_CTYPE_MASK, "LC_CTYPE" }, { LC_NUMERIC, LC_NUMERIC_MASK, "LC_NUMERIC" }, { LC_TIME, LC_TIME_MASK, "LC_TIME" }, { LC_COLLATE, LC_COLLATE_MASK, "LC_COLLATE" }, { LC_MONETARY, LC_MONETARY_MASK, "LC_MONETARY" }, { LC_MESSAGES, LC_MESSAGES_MASK, "LC_MESSAGES" } # ifdef LC_PAPER , { LC_PAPER, LC_PAPER_MASK, "LC_PAPER" } # endif # ifdef LC_NAME , { LC_NAME, LC_NAME_MASK, "LC_NAME" } # endif # ifdef LC_ADDRESS , { LC_ADDRESS, LC_ADDRESS_MASK, "LC_ADDRESS" } # endif # ifdef LC_TELEPHONE , { LC_TELEPHONE, LC_TELEPHONE_MASK, "LC_TELEPHONE" } # endif # ifdef LC_MEASUREMENT , { LC_MEASUREMENT, LC_MEASUREMENT_MASK, "LC_MEASUREMENT" } # endif # ifdef LC_IDENTIFICATION , { LC_IDENTIFICATION, LC_IDENTIFICATION_MASK, "LC_IDENTIFICATION" } # endif }; #endif /* Test the gl_locale_name() function. */ static void test_locale_name (void) { const char *name; /* Check that gl_locale_name returns non-NULL. */ ASSERT (gl_locale_name (LC_MESSAGES, "LC_MESSAGES") != NULL); /* Get into a defined state, */ setlocale (LC_ALL, "en_US.UTF-8"); #if HAVE_NEWLOCALE && HAVE_USELOCALE uselocale (LC_GLOBAL_LOCALE); #endif /* Check that when all environment variables are unset, gl_locale_name returns the default locale. */ unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LC_NUMERIC"); unsetenv ("LANG"); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), gl_locale_name_default ()) == 0); ASSERT (strcmp (gl_locale_name (LC_NUMERIC, "LC_NUMERIC"), gl_locale_name_default ()) == 0); /* Check that an empty environment variable is treated like an unset environment variable. */ setenv ("LC_ALL", "", 1); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), gl_locale_name_default ()) == 0); unsetenv ("LC_ALL"); setenv ("LC_CTYPE", "", 1); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), gl_locale_name_default ()) == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "", 1); unsetenv ("LANG"); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), gl_locale_name_default ()) == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "", 1); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), gl_locale_name_default ()) == 0); /* Check that LC_ALL overrides the others, and LANG is overridden by the others. */ setenv ("LC_ALL", "C", 1); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), "C") == 0); unsetenv ("LC_ALL"); setenv ("LC_CTYPE", "C", 1); setenv ("LC_MESSAGES", "C", 1); unsetenv ("LANG"); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), "C") == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "C", 1); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), "C") == 0); /* Check mixed situations. */ unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "fr_FR.UTF-8", 1); setenv ("LANG", "de_DE.UTF-8", 1); if (setlocale (LC_ALL, "") != NULL) { name = gl_locale_name (LC_CTYPE, "LC_CTYPE"); #if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, here, gl_locale_name_thread (LC_CTYPE, "LC_CTYPE") returns NULL and gl_locale_name_posix (LC_CTYPE, "LC_CTYPE") returns either "de_DE" or "de_DE.UTF-8". */ ASSERT (strcmp (name, "de_DE") == 0 || strcmp (name, "de_DE.UTF-8") == 0); #else ASSERT (strcmp (name, "de_DE.UTF-8") == 0); #endif name = gl_locale_name (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); } unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "fr_FR.UTF-8", 1); unsetenv ("LANG"); if (setlocale (LC_ALL, "") != NULL) { name = gl_locale_name (LC_CTYPE, "LC_CTYPE"); ASSERT (strcmp (name, gl_locale_name_default ()) == 0); name = gl_locale_name (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); } #if HAVE_NEWLOCALE && HAVE_USELOCALE /* Check that gl_locale_name considers the thread locale. */ { locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (locale != NULL) { uselocale (locale); name = gl_locale_name (LC_CTYPE, "LC_CTYPE"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); name = gl_locale_name (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); uselocale (LC_GLOBAL_LOCALE); freelocale (locale); } } /* Check that gl_locale_name distinguishes different categories of the thread locale, and that the name is the right one for each. */ { unsigned int i; for (i = 0; i < SIZEOF (categories); i++) { int category_mask = categories[i].mask; locale_t loc = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (loc != NULL) { locale_t locale = newlocale (category_mask, "de_DE.UTF-8", loc); if (locale == NULL) freelocale (loc); else { unsigned int j; uselocale (locale); for (j = 0; j < SIZEOF (categories); j++) { const char *name_j = gl_locale_name (categories[j].cat, categories[j].string); if (j == i) ASSERT (strcmp (name_j, "de_DE.UTF-8") == 0); else ASSERT (strcmp (name_j, "fr_FR.UTF-8") == 0); } uselocale (LC_GLOBAL_LOCALE); freelocale (locale); } } } } #endif } /* Test the gl_locale_name_thread() function. */ static void test_locale_name_thread (void) { /* Get into a defined state, */ setlocale (LC_ALL, "en_US.UTF-8"); #if HAVE_NEWLOCALE && HAVE_USELOCALE /* Check that gl_locale_name_thread returns NULL when no thread locale is set. */ uselocale (LC_GLOBAL_LOCALE); ASSERT (gl_locale_name_thread (LC_CTYPE, "LC_CTYPE") == NULL); ASSERT (gl_locale_name_thread (LC_MESSAGES, "LC_MESSAGES") == NULL); /* Check that gl_locale_name_thread considers the thread locale. */ { locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (locale != NULL) { const char *name; uselocale (locale); name = gl_locale_name_thread (LC_CTYPE, "LC_CTYPE"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); name = gl_locale_name_thread (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); uselocale (LC_GLOBAL_LOCALE); freelocale (locale); } } /* Check that gl_locale_name_thread distinguishes different categories of the thread locale, and that the name is the right one for each. */ { unsigned int i; for (i = 0; i < SIZEOF (categories); i++) { int category_mask = categories[i].mask; locale_t loc = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (loc != NULL) { locale_t locale = newlocale (category_mask, "de_DE.UTF-8", loc); if (locale == NULL) freelocale (loc); else { unsigned int j; uselocale (locale); for (j = 0; j < SIZEOF (categories); j++) { const char *name_j = gl_locale_name_thread (categories[j].cat, categories[j].string); if (j == i) ASSERT (strcmp (name_j, "de_DE.UTF-8") == 0); else ASSERT (strcmp (name_j, "fr_FR.UTF-8") == 0); } uselocale (LC_GLOBAL_LOCALE); freelocale (locale); } } } } /* Check that gl_locale_name_thread returns a string that is allocated with indefinite extent. */ { /* Try many locale names in turn, in order to defeat possible caches. */ static const char * const choices[] = { "C", "POSIX", "af_ZA", "af_ZA.UTF-8", "am_ET", "am_ET.UTF-8", "be_BY", "be_BY.UTF-8", "bg_BG", "bg_BG.UTF-8", "ca_ES", "ca_ES.UTF-8", "cs_CZ", "cs_CZ.UTF-8", "da_DK", "da_DK.UTF-8", "de_AT", "de_AT.UTF-8", "de_CH", "de_CH.UTF-8", "de_DE", "de_DE.UTF-8", "el_GR", "el_GR.UTF-8", "en_AU", "en_AU.UTF-8", "en_CA", "en_CA.UTF-8", "en_GB", "en_GB.UTF-8", "en_IE", "en_IE.UTF-8", "en_NZ", "en_NZ.UTF-8", "en_US", "en_US.UTF-8", "es_ES", "es_ES.UTF-8", "et_EE", "et_EE.UTF-8", "eu_ES", "eu_ES.UTF-8", "fi_FI", "fi_FI.UTF-8", "fr_BE", "fr_BE.UTF-8", "fr_CA", "fr_CA.UTF-8", "fr_CH", "fr_CH.UTF-8", "fr_FR", "fr_FR.UTF-8", "he_IL", "he_IL.UTF-8", "hr_HR", "hr_HR.UTF-8", "hu_HU", "hu_HU.UTF-8", "hy_AM", "is_IS", "is_IS.UTF-8", "it_CH", "it_CH.UTF-8", "it_IT", "it_IT.UTF-8", "ja_JP.UTF-8", "kk_KZ", "kk_KZ.UTF-8", "ko_KR.UTF-8", "lt_LT", "lt_LT.UTF-8", "nl_BE", "nl_BE.UTF-8", "nl_NL", "nl_NL.UTF-8", "no_NO", "no_NO.UTF-8", "pl_PL", "pl_PL.UTF-8", "pt_BR", "pt_BR.UTF-8", "pt_PT", "pt_PT.UTF-8", "ro_RO", "ro_RO.UTF-8", "ru_RU", "ru_RU.UTF-8", "sk_SK", "sk_SK.UTF-8", "sl_SI", "sl_SI.UTF-8", "sv_SE", "sv_SE.UTF-8", "tr_TR", "tr_TR.UTF-8", "uk_UA", "uk_UA.UTF-8", "zh_CN", "zh_CN.UTF-8", "zh_HK", "zh_HK.UTF-8", "zh_TW", "zh_TW.UTF-8" }; /* Remember which locales are available. */ unsigned char /* bool */ available[SIZEOF (choices)]; /* Array of remembered results of gl_locale_name_thread. */ const char *unsaved_names[SIZEOF (choices)][SIZEOF (categories)]; /* Array of remembered results of gl_locale_name_thread, stored in safe memory. */ char *saved_names[SIZEOF (choices)][SIZEOF (categories)]; unsigned int j; for (j = 0; j < SIZEOF (choices); j++) { locale_t locale = newlocale (LC_ALL_MASK, choices[j], NULL); available[j] = (locale != NULL); if (locale != NULL) { unsigned int i; uselocale (locale); for (i = 0; i < SIZEOF (categories); i++) { unsaved_names[j][i] = gl_locale_name_thread (categories[i].cat, categories[i].string); saved_names[j][i] = strdup (unsaved_names[j][i]); } uselocale (LC_GLOBAL_LOCALE); freelocale (locale); } } /* Verify the unsaved_names are still valid. */ for (j = 0; j < SIZEOF (choices); j++) if (available[j]) { unsigned int i; for (i = 0; i < SIZEOF (categories); i++) ASSERT (strcmp (unsaved_names[j][i], saved_names[j][i]) == 0); } /* Allocate many locales, without freeing them. This is an attempt at overwriting as much of the previously allocated memory as possible. */ for (j = SIZEOF (choices); j > 0; ) { j--; if (available[j]) { locale_t locale = newlocale (LC_ALL_MASK, choices[j], NULL); unsigned int i; ASSERT (locale != NULL); uselocale (locale); for (i = 0; i < SIZEOF (categories); i++) { const char *name = gl_locale_name_thread (categories[i].cat, categories[i].string); ASSERT (strcmp (unsaved_names[j][i], name) == 0); } uselocale (LC_GLOBAL_LOCALE); freelocale (locale); } } /* Verify the unsaved_names are still valid. */ for (j = 0; j < SIZEOF (choices); j++) if (available[j]) { unsigned int i; for (i = 0; i < SIZEOF (categories); i++) { ASSERT (strcmp (unsaved_names[j][i], saved_names[j][i]) == 0); free (saved_names[j][i]); } } } #else /* Check that gl_locale_name_thread always returns NULL. */ ASSERT (gl_locale_name_thread (LC_CTYPE, "LC_CTYPE") == NULL); ASSERT (gl_locale_name_thread (LC_MESSAGES, "LC_MESSAGES") == NULL); #endif } /* Test the gl_locale_name_posix() function. */ static void test_locale_name_posix (void) { const char *name; /* Get into a defined state, */ setlocale (LC_ALL, "en_US.UTF-8"); #if HAVE_NEWLOCALE && HAVE_USELOCALE uselocale (LC_GLOBAL_LOCALE); #endif /* Check that when all environment variables are unset, gl_locale_name_posix returns either NULL or the default locale. */ unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LC_NUMERIC"); unsetenv ("LANG"); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); name = gl_locale_name_posix (LC_NUMERIC, "LC_NUMERIC"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); /* Check that an empty environment variable is treated like an unset environment variable. */ setenv ("LC_ALL", "", 1); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); unsetenv ("LC_ALL"); setenv ("LC_CTYPE", "", 1); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "", 1); unsetenv ("LANG"); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "", 1); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); /* Check that LC_ALL overrides the others, and LANG is overridden by the others. */ setenv ("LC_ALL", "C", 1); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); unsetenv ("LC_ALL"); setenv ("LC_CTYPE", "C", 1); setenv ("LC_MESSAGES", "C", 1); unsetenv ("LANG"); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "C", 1); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); /* Check mixed situations. */ unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "fr_FR.UTF-8", 1); setenv ("LANG", "de_DE.UTF-8", 1); if (setlocale (LC_ALL, "") != NULL) { name = gl_locale_name_posix (LC_CTYPE, "LC_CTYPE"); #if defined _WIN32 && !defined __CYGWIN__ ASSERT (strcmp (name, "de_DE") == 0 || strcmp (name, "de_DE.UTF-8") == 0); #else ASSERT (strcmp (name, "de_DE.UTF-8") == 0); #endif name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); } unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "fr_FR.UTF-8", 1); unsetenv ("LANG"); if (setlocale (LC_ALL, "") != NULL) { name = gl_locale_name_posix (LC_CTYPE, "LC_CTYPE"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); } #if HAVE_NEWLOCALE && HAVE_USELOCALE /* Check that gl_locale_name_posix ignores the thread locale. */ { locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (locale != NULL) { unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "C", 1); setlocale (LC_ALL, ""); uselocale (locale); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); uselocale (LC_GLOBAL_LOCALE); freelocale (locale); } } #endif } /* Test the gl_locale_name_environ() function. */ static void test_locale_name_environ (void) { const char *name; /* Get into a defined state, */ setlocale (LC_ALL, "en_US.UTF-8"); #if HAVE_NEWLOCALE && HAVE_USELOCALE uselocale (LC_GLOBAL_LOCALE); #endif /* Check that when all environment variables are unset, gl_locale_name_environ returns NULL. */ unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LC_NUMERIC"); unsetenv ("LANG"); ASSERT (gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES") == NULL); ASSERT (gl_locale_name_environ (LC_NUMERIC, "LC_NUMERIC") == NULL); /* Check that an empty environment variable is treated like an unset environment variable. */ setenv ("LC_ALL", "", 1); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); ASSERT (gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES") == NULL); unsetenv ("LC_ALL"); setenv ("LC_CTYPE", "", 1); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); ASSERT (gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES") == NULL); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "", 1); unsetenv ("LANG"); ASSERT (gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES") == NULL); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "", 1); ASSERT (gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES") == NULL); /* Check that LC_ALL overrides the others, and LANG is overridden by the others. */ setenv ("LC_ALL", "C", 1); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); unsetenv ("LC_ALL"); setenv ("LC_CTYPE", "C", 1); setenv ("LC_MESSAGES", "C", 1); unsetenv ("LANG"); name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "C", 1); name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); /* Check mixed situations. */ unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "fr_FR.UTF-8", 1); setenv ("LANG", "de_DE.UTF-8", 1); name = gl_locale_name_environ (LC_CTYPE, "LC_CTYPE"); ASSERT (strcmp (name, "de_DE.UTF-8") == 0); name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "fr_FR.UTF-8", 1); unsetenv ("LANG"); name = gl_locale_name_environ (LC_CTYPE, "LC_CTYPE"); ASSERT (name == NULL); name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); #if HAVE_NEWLOCALE && HAVE_USELOCALE /* Check that gl_locale_name_environ ignores the thread locale. */ { locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (locale != NULL) { unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "C", 1); setlocale (LC_ALL, ""); uselocale (locale); name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); uselocale (LC_GLOBAL_LOCALE); freelocale (locale); } } #endif } /* Test the gl_locale_name_default() function. */ static void test_locale_name_default (void) { const char *name = gl_locale_name_default (); ASSERT (name != NULL); /* Only Mac OS X and Windows have a facility for the user to set the default locale. */ #if !((defined __APPLE__ && defined __MACH__) || (defined _WIN32 || defined __CYGWIN__)) ASSERT (strcmp (name, "C") == 0); #endif #if HAVE_NEWLOCALE && HAVE_USELOCALE /* Check that gl_locale_name_default ignores the thread locale. */ { locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (locale != NULL) { uselocale (locale); ASSERT (strcmp (gl_locale_name_default (), name) == 0); uselocale (LC_GLOBAL_LOCALE); freelocale (locale); } } #endif } int main () { test_locale_name (); test_locale_name_thread (); test_locale_name_posix (); test_locale_name_environ (); test_locale_name_default (); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-lock.c0000644000000000000000000000011013726163410022216 xustar000000000000000024 mtime=1599661832.632 24 atime=1599661832.766 24 ctime=1599661999.406 libprelude-5.2.0/libmissing/tests/test-lock.c0000644000000000000000000004675713726163410021244 0ustar00rootroot00000000000000/* Test of locking in multithreaded situations. Copyright (C) 2005, 2008-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2005. */ #include #if USE_POSIX_THREADS || USE_SOLARIS_THREADS || USE_PTH_THREADS || USE_WINDOWS_THREADS #if USE_POSIX_THREADS # define TEST_POSIX_THREADS 1 #endif #if USE_SOLARIS_THREADS # define TEST_SOLARIS_THREADS 1 #endif #if USE_PTH_THREADS # define TEST_PTH_THREADS 1 #endif #if USE_WINDOWS_THREADS # define TEST_WINDOWS_THREADS 1 #endif /* Whether to enable locking. Uncomment this to get a test program without locking, to verify that it crashes. */ #define ENABLE_LOCKING 1 /* Which tests to perform. Uncomment some of these, to verify that all tests crash if no locking is enabled. */ #define DO_TEST_LOCK 1 #define DO_TEST_RWLOCK 1 #define DO_TEST_RECURSIVE_LOCK 1 #define DO_TEST_ONCE 1 /* Whether to help the scheduler through explicit yield(). Uncomment this to see if the operating system has a fair scheduler. */ #define EXPLICIT_YIELD 1 /* Whether to use 'volatile' on some variables that communicate information between threads. If set to 0, a semaphore or a lock is used to protect these variables. If set to 1, 'volatile' is used; this is theoretically equivalent but can lead to much slower execution (e.g. 30x slower total run time on a 40-core machine), because 'volatile' does not imply any synchronization/communication between different CPUs. */ #define USE_VOLATILE 0 #if USE_POSIX_THREADS && HAVE_SEMAPHORE_H /* Whether to use a semaphore to communicate information between threads. If set to 0, a lock is used. If set to 1, a semaphore is used. Uncomment this to reduce the dependencies of this test. */ # define USE_SEMAPHORE 1 /* Mac OS X provides only named semaphores (sem_open); its facility for unnamed semaphores (sem_init) does not work. */ # if defined __APPLE__ && defined __MACH__ # define USE_NAMED_SEMAPHORE 1 # else # define USE_UNNAMED_SEMAPHORE 1 # endif #endif /* Whether to print debugging messages. */ #define ENABLE_DEBUGGING 0 /* Number of simultaneous threads. */ #define THREAD_COUNT 10 /* Number of operations performed in each thread. This is quite high, because with a smaller count, say 5000, we often get an "OK" result even without ENABLE_LOCKING (on Linux/x86). */ #define REPEAT_COUNT 50000 #include #include #include #if !ENABLE_LOCKING # undef USE_POSIX_THREADS # undef USE_SOLARIS_THREADS # undef USE_PTH_THREADS # undef USE_WINDOWS_THREADS #endif #include "glthread/lock.h" #if !ENABLE_LOCKING # if TEST_POSIX_THREADS # define USE_POSIX_THREADS 1 # endif # if TEST_SOLARIS_THREADS # define USE_SOLARIS_THREADS 1 # endif # if TEST_PTH_THREADS # define USE_PTH_THREADS 1 # endif # if TEST_WINDOWS_THREADS # define USE_WINDOWS_THREADS 1 # endif #endif #include "glthread/thread.h" #include "glthread/yield.h" #if USE_SEMAPHORE # include # include # include # include #endif #if ENABLE_DEBUGGING # define dbgprintf printf #else # define dbgprintf if (0) printf #endif #if EXPLICIT_YIELD # define yield() gl_thread_yield () #else # define yield() #endif #if USE_VOLATILE struct atomic_int { volatile int value; }; static void init_atomic_int (struct atomic_int *ai) { } static int get_atomic_int_value (struct atomic_int *ai) { return ai->value; } static void set_atomic_int_value (struct atomic_int *ai, int new_value) { ai->value = new_value; } #elif USE_SEMAPHORE /* This atomic_int implementation can only support the values 0 and 1. It is initially 0 and can be set to 1 only once. */ # if USE_UNNAMED_SEMAPHORE struct atomic_int { sem_t semaphore; }; #define atomic_int_semaphore(ai) (&(ai)->semaphore) static void init_atomic_int (struct atomic_int *ai) { sem_init (&ai->semaphore, 0, 0); } # endif # if USE_NAMED_SEMAPHORE struct atomic_int { sem_t *semaphore; }; #define atomic_int_semaphore(ai) ((ai)->semaphore) static void init_atomic_int (struct atomic_int *ai) { sem_t *s; unsigned int count; for (count = 0; ; count++) { char name[80]; /* Use getpid() in the name, so that different processes running at the same time will not interfere. Use ai in the name, so that different atomic_int in the same process will not interfere. Use a count in the name, so that even in the (unlikely) case that a semaphore with the specified name already exists, we can try a different name. */ sprintf (name, "test-lock-%lu-%p-%u", (unsigned long) getpid (), ai, count); s = sem_open (name, O_CREAT | O_EXCL, 0600, 0); if (s == SEM_FAILED) { if (errno == EEXIST) /* Retry with a different name. */ continue; else { perror ("sem_open failed"); abort (); } } else { /* Try not to leave a semaphore hanging around on the file system eternally, if we can avoid it. */ sem_unlink (name); break; } } ai->semaphore = s; } # endif static int get_atomic_int_value (struct atomic_int *ai) { if (sem_trywait (atomic_int_semaphore (ai)) == 0) { if (sem_post (atomic_int_semaphore (ai))) abort (); return 1; } else if (errno == EAGAIN) return 0; else abort (); } static void set_atomic_int_value (struct atomic_int *ai, int new_value) { if (new_value == 0) /* It's already initialized with 0. */ return; /* To set the value 1: */ if (sem_post (atomic_int_semaphore (ai))) abort (); } #else struct atomic_int { gl_lock_define (, lock) int value; }; static void init_atomic_int (struct atomic_int *ai) { gl_lock_init (ai->lock); } static int get_atomic_int_value (struct atomic_int *ai) { gl_lock_lock (ai->lock); int ret = ai->value; gl_lock_unlock (ai->lock); return ret; } static void set_atomic_int_value (struct atomic_int *ai, int new_value) { gl_lock_lock (ai->lock); ai->value = new_value; gl_lock_unlock (ai->lock); } #endif #define ACCOUNT_COUNT 4 static int account[ACCOUNT_COUNT]; static int random_account (void) { return ((unsigned int) rand () >> 3) % ACCOUNT_COUNT; } static void check_accounts (void) { int i, sum; sum = 0; for (i = 0; i < ACCOUNT_COUNT; i++) sum += account[i]; if (sum != ACCOUNT_COUNT * 1000) abort (); } /* ------------------- Test normal (non-recursive) locks ------------------- */ /* Test normal locks by having several bank accounts and several threads which shuffle around money between the accounts and another thread checking that all the money is still there. */ gl_lock_define_initialized(static, my_lock) static void * lock_mutator_thread (void *arg) { int repeat; for (repeat = REPEAT_COUNT; repeat > 0; repeat--) { int i1, i2, value; dbgprintf ("Mutator %p before lock\n", gl_thread_self_pointer ()); gl_lock_lock (my_lock); dbgprintf ("Mutator %p after lock\n", gl_thread_self_pointer ()); i1 = random_account (); i2 = random_account (); value = ((unsigned int) rand () >> 3) % 10; account[i1] += value; account[i2] -= value; dbgprintf ("Mutator %p before unlock\n", gl_thread_self_pointer ()); gl_lock_unlock (my_lock); dbgprintf ("Mutator %p after unlock\n", gl_thread_self_pointer ()); dbgprintf ("Mutator %p before check lock\n", gl_thread_self_pointer ()); gl_lock_lock (my_lock); check_accounts (); gl_lock_unlock (my_lock); dbgprintf ("Mutator %p after check unlock\n", gl_thread_self_pointer ()); yield (); } dbgprintf ("Mutator %p dying.\n", gl_thread_self_pointer ()); return NULL; } static struct atomic_int lock_checker_done; static void * lock_checker_thread (void *arg) { while (get_atomic_int_value (&lock_checker_done) == 0) { dbgprintf ("Checker %p before check lock\n", gl_thread_self_pointer ()); gl_lock_lock (my_lock); check_accounts (); gl_lock_unlock (my_lock); dbgprintf ("Checker %p after check unlock\n", gl_thread_self_pointer ()); yield (); } dbgprintf ("Checker %p dying.\n", gl_thread_self_pointer ()); return NULL; } static void test_lock (void) { int i; gl_thread_t checkerthread; gl_thread_t threads[THREAD_COUNT]; /* Initialization. */ for (i = 0; i < ACCOUNT_COUNT; i++) account[i] = 1000; init_atomic_int (&lock_checker_done); set_atomic_int_value (&lock_checker_done, 0); /* Spawn the threads. */ checkerthread = gl_thread_create (lock_checker_thread, NULL); for (i = 0; i < THREAD_COUNT; i++) threads[i] = gl_thread_create (lock_mutator_thread, NULL); /* Wait for the threads to terminate. */ for (i = 0; i < THREAD_COUNT; i++) gl_thread_join (threads[i], NULL); set_atomic_int_value (&lock_checker_done, 1); gl_thread_join (checkerthread, NULL); check_accounts (); } /* ----------------- Test read-write (non-recursive) locks ----------------- */ /* Test read-write locks by having several bank accounts and several threads which shuffle around money between the accounts and several other threads that check that all the money is still there. */ gl_rwlock_define_initialized(static, my_rwlock) static void * rwlock_mutator_thread (void *arg) { int repeat; for (repeat = REPEAT_COUNT; repeat > 0; repeat--) { int i1, i2, value; dbgprintf ("Mutator %p before wrlock\n", gl_thread_self_pointer ()); gl_rwlock_wrlock (my_rwlock); dbgprintf ("Mutator %p after wrlock\n", gl_thread_self_pointer ()); i1 = random_account (); i2 = random_account (); value = ((unsigned int) rand () >> 3) % 10; account[i1] += value; account[i2] -= value; dbgprintf ("Mutator %p before unlock\n", gl_thread_self_pointer ()); gl_rwlock_unlock (my_rwlock); dbgprintf ("Mutator %p after unlock\n", gl_thread_self_pointer ()); yield (); } dbgprintf ("Mutator %p dying.\n", gl_thread_self_pointer ()); return NULL; } static struct atomic_int rwlock_checker_done; static void * rwlock_checker_thread (void *arg) { while (get_atomic_int_value (&rwlock_checker_done) == 0) { dbgprintf ("Checker %p before check rdlock\n", gl_thread_self_pointer ()); gl_rwlock_rdlock (my_rwlock); check_accounts (); gl_rwlock_unlock (my_rwlock); dbgprintf ("Checker %p after check unlock\n", gl_thread_self_pointer ()); yield (); } dbgprintf ("Checker %p dying.\n", gl_thread_self_pointer ()); return NULL; } static void test_rwlock (void) { int i; gl_thread_t checkerthreads[THREAD_COUNT]; gl_thread_t threads[THREAD_COUNT]; /* Initialization. */ for (i = 0; i < ACCOUNT_COUNT; i++) account[i] = 1000; init_atomic_int (&rwlock_checker_done); set_atomic_int_value (&rwlock_checker_done, 0); /* Spawn the threads. */ for (i = 0; i < THREAD_COUNT; i++) checkerthreads[i] = gl_thread_create (rwlock_checker_thread, NULL); for (i = 0; i < THREAD_COUNT; i++) threads[i] = gl_thread_create (rwlock_mutator_thread, NULL); /* Wait for the threads to terminate. */ for (i = 0; i < THREAD_COUNT; i++) gl_thread_join (threads[i], NULL); set_atomic_int_value (&rwlock_checker_done, 1); for (i = 0; i < THREAD_COUNT; i++) gl_thread_join (checkerthreads[i], NULL); check_accounts (); } /* -------------------------- Test recursive locks -------------------------- */ /* Test recursive locks by having several bank accounts and several threads which shuffle around money between the accounts (recursively) and another thread checking that all the money is still there. */ gl_recursive_lock_define_initialized(static, my_reclock) static void recshuffle (void) { int i1, i2, value; dbgprintf ("Mutator %p before lock\n", gl_thread_self_pointer ()); gl_recursive_lock_lock (my_reclock); dbgprintf ("Mutator %p after lock\n", gl_thread_self_pointer ()); i1 = random_account (); i2 = random_account (); value = ((unsigned int) rand () >> 3) % 10; account[i1] += value; account[i2] -= value; /* Recursive with probability 0.5. */ if (((unsigned int) rand () >> 3) % 2) recshuffle (); dbgprintf ("Mutator %p before unlock\n", gl_thread_self_pointer ()); gl_recursive_lock_unlock (my_reclock); dbgprintf ("Mutator %p after unlock\n", gl_thread_self_pointer ()); } static void * reclock_mutator_thread (void *arg) { int repeat; for (repeat = REPEAT_COUNT; repeat > 0; repeat--) { recshuffle (); dbgprintf ("Mutator %p before check lock\n", gl_thread_self_pointer ()); gl_recursive_lock_lock (my_reclock); check_accounts (); gl_recursive_lock_unlock (my_reclock); dbgprintf ("Mutator %p after check unlock\n", gl_thread_self_pointer ()); yield (); } dbgprintf ("Mutator %p dying.\n", gl_thread_self_pointer ()); return NULL; } static struct atomic_int reclock_checker_done; static void * reclock_checker_thread (void *arg) { while (get_atomic_int_value (&reclock_checker_done) == 0) { dbgprintf ("Checker %p before check lock\n", gl_thread_self_pointer ()); gl_recursive_lock_lock (my_reclock); check_accounts (); gl_recursive_lock_unlock (my_reclock); dbgprintf ("Checker %p after check unlock\n", gl_thread_self_pointer ()); yield (); } dbgprintf ("Checker %p dying.\n", gl_thread_self_pointer ()); return NULL; } static void test_recursive_lock (void) { int i; gl_thread_t checkerthread; gl_thread_t threads[THREAD_COUNT]; /* Initialization. */ for (i = 0; i < ACCOUNT_COUNT; i++) account[i] = 1000; init_atomic_int (&reclock_checker_done); set_atomic_int_value (&reclock_checker_done, 0); /* Spawn the threads. */ checkerthread = gl_thread_create (reclock_checker_thread, NULL); for (i = 0; i < THREAD_COUNT; i++) threads[i] = gl_thread_create (reclock_mutator_thread, NULL); /* Wait for the threads to terminate. */ for (i = 0; i < THREAD_COUNT; i++) gl_thread_join (threads[i], NULL); set_atomic_int_value (&reclock_checker_done, 1); gl_thread_join (checkerthread, NULL); check_accounts (); } /* ------------------------ Test once-only execution ------------------------ */ /* Test once-only execution by having several threads attempt to grab a once-only task simultaneously (triggered by releasing a read-write lock). */ gl_once_define(static, fresh_once) static int ready[THREAD_COUNT]; static gl_lock_t ready_lock[THREAD_COUNT]; #if ENABLE_LOCKING static gl_rwlock_t fire_signal[REPEAT_COUNT]; #else static volatile int fire_signal_state; #endif static gl_once_t once_control; static int performed; gl_lock_define_initialized(static, performed_lock) static void once_execute (void) { gl_lock_lock (performed_lock); performed++; gl_lock_unlock (performed_lock); } static void * once_contender_thread (void *arg) { int id = (int) (long) arg; int repeat; for (repeat = 0; repeat <= REPEAT_COUNT; repeat++) { /* Tell the main thread that we're ready. */ gl_lock_lock (ready_lock[id]); ready[id] = 1; gl_lock_unlock (ready_lock[id]); if (repeat == REPEAT_COUNT) break; dbgprintf ("Contender %p waiting for signal for round %d\n", gl_thread_self_pointer (), repeat); #if ENABLE_LOCKING /* Wait for the signal to go. */ gl_rwlock_rdlock (fire_signal[repeat]); /* And don't hinder the others (if the scheduler is unfair). */ gl_rwlock_unlock (fire_signal[repeat]); #else /* Wait for the signal to go. */ while (fire_signal_state <= repeat) yield (); #endif dbgprintf ("Contender %p got the signal for round %d\n", gl_thread_self_pointer (), repeat); /* Contend for execution. */ gl_once (once_control, once_execute); } return NULL; } static void test_once (void) { int i, repeat; gl_thread_t threads[THREAD_COUNT]; /* Initialize all variables. */ for (i = 0; i < THREAD_COUNT; i++) { ready[i] = 0; gl_lock_init (ready_lock[i]); } #if ENABLE_LOCKING for (i = 0; i < REPEAT_COUNT; i++) gl_rwlock_init (fire_signal[i]); #else fire_signal_state = 0; #endif /* Block all fire_signals. */ for (i = REPEAT_COUNT-1; i >= 0; i--) gl_rwlock_wrlock (fire_signal[i]); /* Spawn the threads. */ for (i = 0; i < THREAD_COUNT; i++) threads[i] = gl_thread_create (once_contender_thread, (void *) (long) i); for (repeat = 0; repeat <= REPEAT_COUNT; repeat++) { /* Wait until every thread is ready. */ dbgprintf ("Main thread before synchronizing for round %d\n", repeat); for (;;) { int ready_count = 0; for (i = 0; i < THREAD_COUNT; i++) { gl_lock_lock (ready_lock[i]); ready_count += ready[i]; gl_lock_unlock (ready_lock[i]); } if (ready_count == THREAD_COUNT) break; yield (); } dbgprintf ("Main thread after synchronizing for round %d\n", repeat); if (repeat > 0) { /* Check that exactly one thread executed the once_execute() function. */ if (performed != 1) abort (); } if (repeat == REPEAT_COUNT) break; /* Preparation for the next round: Initialize once_control. */ memcpy (&once_control, &fresh_once, sizeof (gl_once_t)); /* Preparation for the next round: Reset the performed counter. */ performed = 0; /* Preparation for the next round: Reset the ready flags. */ for (i = 0; i < THREAD_COUNT; i++) { gl_lock_lock (ready_lock[i]); ready[i] = 0; gl_lock_unlock (ready_lock[i]); } /* Signal all threads simultaneously. */ dbgprintf ("Main thread giving signal for round %d\n", repeat); #if ENABLE_LOCKING gl_rwlock_unlock (fire_signal[repeat]); #else fire_signal_state = repeat + 1; #endif } /* Wait for the threads to terminate. */ for (i = 0; i < THREAD_COUNT; i++) gl_thread_join (threads[i], NULL); } /* -------------------------------------------------------------------------- */ int main () { #if TEST_PTH_THREADS if (!pth_init ()) abort (); #endif #if DO_TEST_LOCK printf ("Starting test_lock ..."); fflush (stdout); test_lock (); printf (" OK\n"); fflush (stdout); #endif #if DO_TEST_RWLOCK printf ("Starting test_rwlock ..."); fflush (stdout); test_rwlock (); printf (" OK\n"); fflush (stdout); #endif #if DO_TEST_RECURSIVE_LOCK printf ("Starting test_recursive_lock ..."); fflush (stdout); test_recursive_lock (); printf (" OK\n"); fflush (stdout); #endif #if DO_TEST_ONCE printf ("Starting test_once ..."); fflush (stdout); test_once (); printf (" OK\n"); fflush (stdout); #endif return 0; } #else /* No multithreading available. */ #include int main () { fputs ("Skipping test: multithreading not enabled\n", stderr); return 77; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-lseek.c0000644000000000000000000000011013726163410022371 xustar000000000000000024 mtime=1599661832.632 24 atime=1599661832.766 24 ctime=1599661999.408 libprelude-5.2.0/libmissing/tests/test-lseek.c0000644000000000000000000000632313726163410021400 0ustar00rootroot00000000000000/* Test of lseek() function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake, 2007. */ #include #include #include "signature.h" SIGNATURE_CHECK (lseek, off_t, (int, off_t, int)); #include #include "macros.h" /* ARGC must be 2; *ARGV[1] is '0' if stdin and stdout are files, '1' if they are pipes, and '2' if they are closed. Check for proper semantics of lseek. */ int main (int argc, char **argv) { if (argc != 2) return 2; switch (*argv[1]) { case '0': /* regular files */ ASSERT (lseek (0, (off_t)2, SEEK_SET) == 2); ASSERT (lseek (0, (off_t)-4, SEEK_CUR) == -1); ASSERT (errno == EINVAL); errno = 0; #if ! defined __BEOS__ /* POSIX says that the last lseek call, when failing, does not change the current offset. But BeOS sets it to 0. */ ASSERT (lseek (0, (off_t)0, SEEK_CUR) == 2); #endif #if 0 /* leads to SIGSYS on IRIX 6.5 */ ASSERT (lseek (0, (off_t)0, (SEEK_SET | SEEK_CUR | SEEK_END) + 1) == -1); ASSERT (errno == EINVAL); #endif ASSERT (lseek (1, (off_t)2, SEEK_SET) == 2); errno = 0; ASSERT (lseek (1, (off_t)-4, SEEK_CUR) == -1); ASSERT (errno == EINVAL); errno = 0; #if ! defined __BEOS__ /* POSIX says that the last lseek call, when failing, does not change the current offset. But BeOS sets it to 0. */ ASSERT (lseek (1, (off_t)0, SEEK_CUR) == 2); #endif #if 0 /* leads to SIGSYS on IRIX 6.5 */ ASSERT (lseek (1, (off_t)0, (SEEK_SET | SEEK_CUR | SEEK_END) + 1) == -1); ASSERT (errno == EINVAL); #endif break; case '1': /* pipes */ errno = 0; ASSERT (lseek (0, (off_t)0, SEEK_CUR) == -1); ASSERT (errno == ESPIPE); errno = 0; ASSERT (lseek (1, (off_t)0, SEEK_CUR) == -1); ASSERT (errno == ESPIPE); break; case '2': /* closed */ /* Explicitly close file descriptors 0 and 1. The <&- and >&- in the invoking shell are not enough on HP-UX. */ close (0); close (1); errno = 0; ASSERT (lseek (0, (off_t)0, SEEK_CUR) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (lseek (1, (off_t)0, SEEK_CUR) == -1); ASSERT (errno == EBADF); /* Test behaviour for invalid file descriptors. */ errno = 0; ASSERT (lseek (-1, (off_t)0, SEEK_CUR) == -1); ASSERT (errno == EBADF); close (99); errno = 0; ASSERT (lseek (99, (off_t)0, SEEK_CUR) == -1); ASSERT (errno == EBADF); break; default: return 1; } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-lstat.c0000644000000000000000000000011013726163410022415 xustar000000000000000024 mtime=1599661832.632 24 atime=1599661832.766 24 ctime=1599661999.409 libprelude-5.2.0/libmissing/tests/test-lstat.c0000644000000000000000000000340613726163410021423 0ustar00rootroot00000000000000/* Test of lstat() function. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Simon Josefsson, 2008; and Eric Blake, 2009. */ #include #include /* Caution: lstat may be a function-like macro. Although this signature check must pass, it may be the signature of the real (and broken) lstat rather than rpl_lstat. Most code should not use the address of lstat. */ #include "signature.h" SIGNATURE_CHECK (lstat, int, (char const *, struct stat *)); #include #include #include #include #include #include #include "same-inode.h" #include "ignore-value.h" #include "macros.h" #define BASE "test-lstat.t" #include "test-lstat.h" /* Wrapper around lstat, which works even if lstat is a function-like macro, where test_lstat_func(lstat) would do the wrong thing. */ static int do_lstat (char const *name, struct stat *st) { return lstat (name, st); } int main (void) { /* Remove any leftovers from a previous partial run. */ ignore_value (system ("rm -rf " BASE "*")); return test_lstat_func (do_lstat, true); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-malloca.c0000644000000000000000000000011013726163410022676 xustar000000000000000024 mtime=1599661832.633 24 atime=1599661832.766 24 ctime=1599661999.411 libprelude-5.2.0/libmissing/tests/test-malloca.c0000644000000000000000000000306113726163410021701 0ustar00rootroot00000000000000/* Test of safe automatic memory allocation. Copyright (C) 2005, 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2005. */ #include #include "malloca.h" #include static void do_allocation (int n) { void *ptr = malloca (n); freea (ptr); safe_alloca (n); } void (*func) (int) = do_allocation; int main () { int i; /* This slows down malloc a lot. */ unsetenv ("MALLOC_PERTURB_"); /* Repeat a lot of times, to make sure there's no memory leak. */ for (i = 0; i < 50000; i++) { /* Try various values. n = 0 gave a crash on Alpha with gcc-2.5.8. Some versions of Mac OS X have a stack size limit of 512 KB. */ func (34); func (134); func (399); func (510823); func (129321); func (0); func (4070); func (4095); func (1); func (16582); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbrtowc.c0000644000000000000000000000011013726163410022743 xustar000000000000000024 mtime=1599661832.634 24 atime=1599661832.767 24 ctime=1599661999.413 libprelude-5.2.0/libmissing/tests/test-mbrtowc.c0000644000000000000000000002605113726163410021752 0ustar00rootroot00000000000000/* Test of conversion of multibyte character to wide character. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2008. */ #include #include #include "signature.h" SIGNATURE_CHECK (mbrtowc, size_t, (wchar_t *, char const *, size_t, mbstate_t *)); #include #include #include #include "macros.h" int main (int argc, char *argv[]) { mbstate_t state; wchar_t wc; size_t ret; /* configure should already have checked that the locale is supported. */ if (setlocale (LC_ALL, "") == NULL) return 1; /* Test zero-length input. */ { memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "x", 0, &state); ASSERT (ret == (size_t)(-2)); ASSERT (mbsinit (&state)); } /* Test NUL byte input. */ { memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "", 1, &state); ASSERT (ret == 0); ASSERT (wc == 0); ASSERT (mbsinit (&state)); ret = mbrtowc (NULL, "", 1, &state); ASSERT (ret == 0); ASSERT (mbsinit (&state)); } /* Test single-byte input. */ { int c; char buf[1]; memset (&state, '\0', sizeof (mbstate_t)); for (c = 0; c < 0x100; c++) switch (c) { default: if (! (c && 1 < argc && argv[1][0] == '5')) break; FALLTHROUGH; case '\t': case '\v': case '\f': case ' ': case '!': case '"': case '#': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case ':': case ';': case '<': case '=': case '>': case '?': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '[': case '\\': case ']': case '^': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '{': case '|': case '}': case '~': /* c is in the ISO C "basic character set", or argv[1] starts with '5' so we are testing all nonnull bytes. */ buf[0] = c; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, buf, 1, &state); ASSERT (ret == 1); if (c < 0x80) /* c is an ASCII character. */ ASSERT (wc == c); else /* argv[1] starts with '5', that is, we are testing the C or POSIX locale. On most platforms, the bytes 0x80..0xFF map to U+0080..U+00FF. But on musl libc, the bytes 0x80..0xFF map to U+DF80..U+DFFF. */ ASSERT (wc == (btowc (c) == WEOF ? c : btowc (c))); ASSERT (mbsinit (&state)); ret = mbrtowc (NULL, buf, 1, &state); ASSERT (ret == 1); ASSERT (mbsinit (&state)); break; } } /* Test special calling convention, passing a NULL pointer. */ { memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, NULL, 5, &state); ASSERT (ret == 0); ASSERT (wc == (wchar_t) 0xBADFACE); ASSERT (mbsinit (&state)); } if (argc > 1) switch (argv[1][0]) { case '1': /* Locale encoding is ISO-8859-1 or ISO-8859-15. */ { char input[] = "B\374\337er"; /* "Büßer" */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'B'); ASSERT (mbsinit (&state)); input[0] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 1, 1, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == (unsigned char) '\374'); ASSERT (mbsinit (&state)); input[1] = '\0'; /* Test support of NULL first argument. */ ret = mbrtowc (NULL, input + 2, 3, &state); ASSERT (ret == 1); ASSERT (mbsinit (&state)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 2, 3, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == (unsigned char) '\337'); ASSERT (mbsinit (&state)); input[2] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 3, 2, &state); ASSERT (ret == 1); ASSERT (wc == 'e'); ASSERT (mbsinit (&state)); input[3] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 4, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'r'); ASSERT (mbsinit (&state)); } return 0; case '2': /* Locale encoding is UTF-8. */ { char input[] = "B\303\274\303\237er"; /* "Büßer" */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'B'); ASSERT (mbsinit (&state)); input[0] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 1, 1, &state); ASSERT (ret == (size_t)(-2)); ASSERT (wc == (wchar_t) 0xBADFACE); ASSERT (!mbsinit (&state)); input[1] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 2, 5, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == EOF); ASSERT (mbsinit (&state)); input[2] = '\0'; /* Test support of NULL first argument. */ ret = mbrtowc (NULL, input + 3, 4, &state); ASSERT (ret == 2); ASSERT (mbsinit (&state)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 3, 4, &state); ASSERT (ret == 2); ASSERT (wctob (wc) == EOF); ASSERT (mbsinit (&state)); input[3] = '\0'; input[4] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 5, 2, &state); ASSERT (ret == 1); ASSERT (wc == 'e'); ASSERT (mbsinit (&state)); input[5] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 6, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'r'); ASSERT (mbsinit (&state)); } return 0; case '3': /* Locale encoding is EUC-JP. */ { char input[] = "<\306\374\313\334\270\354>"; /* "<日本語>" */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 1, &state); ASSERT (ret == 1); ASSERT (wc == '<'); ASSERT (mbsinit (&state)); input[0] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 1, 2, &state); ASSERT (ret == 2); ASSERT (wctob (wc) == EOF); ASSERT (mbsinit (&state)); input[1] = '\0'; input[2] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 3, 1, &state); ASSERT (ret == (size_t)(-2)); ASSERT (wc == (wchar_t) 0xBADFACE); ASSERT (!mbsinit (&state)); input[3] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 4, 4, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == EOF); ASSERT (mbsinit (&state)); input[4] = '\0'; /* Test support of NULL first argument. */ ret = mbrtowc (NULL, input + 5, 3, &state); ASSERT (ret == 2); ASSERT (mbsinit (&state)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 5, 3, &state); ASSERT (ret == 2); ASSERT (wctob (wc) == EOF); ASSERT (mbsinit (&state)); input[5] = '\0'; input[6] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 7, 1, &state); ASSERT (ret == 1); ASSERT (wc == '>'); ASSERT (mbsinit (&state)); } return 0; case '4': /* Locale encoding is GB18030. */ { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'B'); ASSERT (mbsinit (&state)); input[0] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 1, 1, &state); ASSERT (ret == (size_t)(-2)); ASSERT (wc == (wchar_t) 0xBADFACE); ASSERT (!mbsinit (&state)); input[1] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 2, 7, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == EOF); ASSERT (mbsinit (&state)); input[2] = '\0'; /* Test support of NULL first argument. */ ret = mbrtowc (NULL, input + 3, 6, &state); ASSERT (ret == 4); ASSERT (mbsinit (&state)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 3, 6, &state); ASSERT (ret == 4); ASSERT (wctob (wc) == EOF); ASSERT (mbsinit (&state)); input[3] = '\0'; input[4] = '\0'; input[5] = '\0'; input[6] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 7, 2, &state); ASSERT (ret == 1); ASSERT (wc == 'e'); ASSERT (mbsinit (&state)); input[5] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 8, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'r'); ASSERT (mbsinit (&state)); } return 0; case '5': /* C locale; tested above. */ return 0; } return 1; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbrtowc-w32.c0000644000000000000000000000011013726163410023354 xustar000000000000000024 mtime=1599661832.634 24 atime=1599661832.767 24 ctime=1599661999.414 libprelude-5.2.0/libmissing/tests/test-mbrtowc-w32.c0000644000000000000000000005417413726163410022372 0ustar00rootroot00000000000000/* Test of conversion of multibyte character to wide character. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ #include #include #include #include #include #include #include #include "macros.h" #if defined _WIN32 && !defined __CYGWIN__ static int test_one_locale (const char *name, int codepage) { mbstate_t state; wchar_t wc; size_t ret; # if 1 /* Portable code to set the locale. */ { char name_with_codepage[1024]; sprintf (name_with_codepage, "%s.%d", name, codepage); /* Set the locale. */ if (setlocale (LC_ALL, name_with_codepage) == NULL) return 77; } # else /* Hacky way to set a locale.codepage combination that setlocale() refuses to set. */ { /* Codepage of the current locale, set with setlocale(). Not necessarily the same as GetACP(). */ extern __declspec(dllimport) unsigned int __lc_codepage; /* Set the locale. */ if (setlocale (LC_ALL, name) == NULL) return 77; /* Clobber the codepage and MB_CUR_MAX, both set by setlocale(). */ __lc_codepage = codepage; switch (codepage) { case 1252: case 1256: MB_CUR_MAX = 1; break; case 932: case 950: case 936: MB_CUR_MAX = 2; break; case 54936: case 65001: MB_CUR_MAX = 4; break; } /* Test whether the codepage is really available. */ memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, " ", 1, &state) == (size_t)(-1)) return 77; } # endif /* Test zero-length input. */ { memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "x", 0, &state); /* gnulib's implementation returns (size_t)(-2). The AIX 5.1 implementation returns (size_t)(-1). glibc's implementation returns 0. */ ASSERT (ret == (size_t)(-2) || ret == (size_t)(-1) || ret == 0); ASSERT (mbsinit (&state)); } /* Test NUL byte input. */ { memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "", 1, &state); ASSERT (ret == 0); ASSERT (wc == 0); ASSERT (mbsinit (&state)); ret = mbrtowc (NULL, "", 1, &state); ASSERT (ret == 0); ASSERT (mbsinit (&state)); } /* Test single-byte input. */ { int c; char buf[1]; memset (&state, '\0', sizeof (mbstate_t)); for (c = 0; c < 0x100; c++) switch (c) { case '\t': case '\v': case '\f': case ' ': case '!': case '"': case '#': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case ':': case ';': case '<': case '=': case '>': case '?': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '[': case '\\': case ']': case '^': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '{': case '|': case '}': case '~': /* c is in the ISO C "basic character set". */ buf[0] = c; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, buf, 1, &state); ASSERT (ret == 1); ASSERT (wc == c); ASSERT (mbsinit (&state)); ret = mbrtowc (NULL, buf, 1, &state); ASSERT (ret == 1); ASSERT (mbsinit (&state)); break; } } /* Test special calling convention, passing a NULL pointer. */ { memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, NULL, 5, &state); ASSERT (ret == 0); ASSERT (wc == (wchar_t) 0xBADFACE); ASSERT (mbsinit (&state)); } switch (codepage) { case 1252: /* Locale encoding is CP1252, an extension of ISO-8859-1. */ { char input[] = "B\374\337er"; /* "Büßer" */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'B'); ASSERT (mbsinit (&state)); input[0] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 1, 1, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == (unsigned char) '\374'); ASSERT (wc == 0x00FC); ASSERT (mbsinit (&state)); input[1] = '\0'; /* Test support of NULL first argument. */ ret = mbrtowc (NULL, input + 2, 3, &state); ASSERT (ret == 1); ASSERT (mbsinit (&state)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 2, 3, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == (unsigned char) '\337'); ASSERT (wc == 0x00DF); ASSERT (mbsinit (&state)); input[2] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 3, 2, &state); ASSERT (ret == 1); ASSERT (wc == 'e'); ASSERT (mbsinit (&state)); input[3] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 4, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'r'); ASSERT (mbsinit (&state)); } return 0; case 1256: /* Locale encoding is CP1256, not the same as ISO-8859-6. */ { char input[] = "x\302\341\346y"; /* "xآلوy" */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'x'); ASSERT (mbsinit (&state)); input[0] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 1, 1, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == (unsigned char) '\302'); ASSERT (wc == 0x0622); ASSERT (mbsinit (&state)); input[1] = '\0'; /* Test support of NULL first argument. */ ret = mbrtowc (NULL, input + 2, 3, &state); ASSERT (ret == 1); ASSERT (mbsinit (&state)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 2, 3, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == (unsigned char) '\341'); ASSERT (wc == 0x0644); ASSERT (mbsinit (&state)); input[2] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 3, 2, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == (unsigned char) '\346'); ASSERT (wc == 0x0648); ASSERT (mbsinit (&state)); input[3] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 4, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'y'); ASSERT (mbsinit (&state)); } return 0; case 932: /* Locale encoding is CP932, similar to Shift_JIS. */ { char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 1, &state); ASSERT (ret == 1); ASSERT (wc == '<'); ASSERT (mbsinit (&state)); input[0] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 1, 2, &state); ASSERT (ret == 2); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x65E5); ASSERT (mbsinit (&state)); input[1] = '\0'; input[2] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 3, 1, &state); ASSERT (ret == (size_t)(-2)); ASSERT (wc == (wchar_t) 0xBADFACE); ASSERT (!mbsinit (&state)); input[3] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 4, 4, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x672C); ASSERT (mbsinit (&state)); input[4] = '\0'; /* Test support of NULL first argument. */ ret = mbrtowc (NULL, input + 5, 3, &state); ASSERT (ret == 2); ASSERT (mbsinit (&state)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 5, 3, &state); ASSERT (ret == 2); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x8A9E); ASSERT (mbsinit (&state)); input[5] = '\0'; input[6] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 7, 1, &state); ASSERT (ret == 1); ASSERT (wc == '>'); ASSERT (mbsinit (&state)); /* Test some invalid input. */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */ ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || ret == (size_t)-2); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */ ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || (ret == 2 && wc == 0x30FB)); } return 0; case 950: /* Locale encoding is CP950, similar to Big5. */ { char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 1, &state); ASSERT (ret == 1); ASSERT (wc == '<'); ASSERT (mbsinit (&state)); input[0] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 1, 2, &state); ASSERT (ret == 2); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x65E5); ASSERT (mbsinit (&state)); input[1] = '\0'; input[2] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 3, 1, &state); ASSERT (ret == (size_t)(-2)); ASSERT (wc == (wchar_t) 0xBADFACE); ASSERT (!mbsinit (&state)); input[3] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 4, 4, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x672C); ASSERT (mbsinit (&state)); input[4] = '\0'; /* Test support of NULL first argument. */ ret = mbrtowc (NULL, input + 5, 3, &state); ASSERT (ret == 2); ASSERT (mbsinit (&state)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 5, 3, &state); ASSERT (ret == 2); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x8A9E); ASSERT (mbsinit (&state)); input[5] = '\0'; input[6] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 7, 1, &state); ASSERT (ret == 1); ASSERT (wc == '>'); ASSERT (mbsinit (&state)); /* Test some invalid input. */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */ ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || ret == (size_t)-2); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */ ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || (ret == 2 && wc == '?')); } return 0; case 936: /* Locale encoding is CP936 = GBK, an extension of GB2312. */ { char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 1, &state); ASSERT (ret == 1); ASSERT (wc == '<'); ASSERT (mbsinit (&state)); input[0] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 1, 2, &state); ASSERT (ret == 2); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x65E5); ASSERT (mbsinit (&state)); input[1] = '\0'; input[2] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 3, 1, &state); ASSERT (ret == (size_t)(-2)); ASSERT (wc == (wchar_t) 0xBADFACE); ASSERT (!mbsinit (&state)); input[3] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 4, 4, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x672C); ASSERT (mbsinit (&state)); input[4] = '\0'; /* Test support of NULL first argument. */ ret = mbrtowc (NULL, input + 5, 3, &state); ASSERT (ret == 2); ASSERT (mbsinit (&state)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 5, 3, &state); ASSERT (ret == 2); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x8A9E); ASSERT (mbsinit (&state)); input[5] = '\0'; input[6] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 7, 1, &state); ASSERT (ret == 1); ASSERT (wc == '>'); ASSERT (mbsinit (&state)); /* Test some invalid input. */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */ ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || ret == (size_t)-2); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */ ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || (ret == 2 && wc == '?')); } return 0; case 54936: /* Locale encoding is CP54936 = GB18030. */ { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'B'); ASSERT (mbsinit (&state)); input[0] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 1, 1, &state); ASSERT (ret == (size_t)(-2)); ASSERT (wc == (wchar_t) 0xBADFACE); ASSERT (!mbsinit (&state)); input[1] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 2, 7, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x00FC); ASSERT (mbsinit (&state)); input[2] = '\0'; /* Test support of NULL first argument. */ ret = mbrtowc (NULL, input + 3, 6, &state); ASSERT (ret == 4); ASSERT (mbsinit (&state)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 3, 6, &state); ASSERT (ret == 4); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x00DF); ASSERT (mbsinit (&state)); input[3] = '\0'; input[4] = '\0'; input[5] = '\0'; input[6] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 7, 2, &state); ASSERT (ret == 1); ASSERT (wc == 'e'); ASSERT (mbsinit (&state)); input[5] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 8, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'r'); ASSERT (mbsinit (&state)); /* Test some invalid input. */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\201\045", 2, &state); /* 0x81 0x25 */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\201\060\377", 3, &state); /* 0x81 0x30 0xFF */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\201\060\377\064", 4, &state); /* 0x81 0x30 0xFF 0x34 */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\201\060\211\072", 4, &state); /* 0x81 0x30 0x89 0x3A */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); } return 0; case 65001: /* Locale encoding is CP65001 = UTF-8. */ { char input[] = "B\303\274\303\237er"; /* "Büßer" */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'B'); ASSERT (mbsinit (&state)); input[0] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 1, 1, &state); ASSERT (ret == (size_t)(-2)); ASSERT (wc == (wchar_t) 0xBADFACE); ASSERT (!mbsinit (&state)); input[1] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 2, 5, &state); ASSERT (ret == 1); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x00FC); ASSERT (mbsinit (&state)); input[2] = '\0'; /* Test support of NULL first argument. */ ret = mbrtowc (NULL, input + 3, 4, &state); ASSERT (ret == 2); ASSERT (mbsinit (&state)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 3, 4, &state); ASSERT (ret == 2); ASSERT (wctob (wc) == EOF); ASSERT (wc == 0x00DF); ASSERT (mbsinit (&state)); input[3] = '\0'; input[4] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 5, 2, &state); ASSERT (ret == 1); ASSERT (wc == 'e'); ASSERT (mbsinit (&state)); input[5] = '\0'; wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input + 6, 1, &state); ASSERT (ret == 1); ASSERT (wc == 'r'); ASSERT (mbsinit (&state)); /* Test some invalid input. */ memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\303\300", 2, &state); /* 0xC3 0xC0 */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\343\300", 2, &state); /* 0xE3 0xC0 */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\343\300\200", 3, &state); /* 0xE3 0xC0 0x80 */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\343\200\300", 3, &state); /* 0xE3 0x80 0xC0 */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\363\300", 2, &state); /* 0xF3 0xC0 */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\363\300\200\200", 4, &state); /* 0xF3 0xC0 0x80 0x80 */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\363\200\300", 3, &state); /* 0xF3 0x80 0xC0 */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\363\200\300\200", 4, &state); /* 0xF3 0x80 0xC0 0x80 */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, "\363\200\200\300", 4, &state); /* 0xF3 0x80 0x80 0xC0 */ ASSERT (ret == (size_t)-1); ASSERT (errno == EILSEQ); } return 0; default: return 1; } } int main (int argc, char *argv[]) { int codepage = atoi (argv[argc - 1]); int result; int i; result = 77; for (i = 1; i < argc - 1; i++) { int ret = test_one_locale (argv[i], codepage); if (ret != 77) result = ret; } if (result == 77) { fprintf (stderr, "Skipping test: found no locale with codepage %d\n", codepage); } return result; } #else int main (int argc, char *argv[]) { fputs ("Skipping test: not a native Windows system\n", stderr); return 77; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbsinit.c0000644000000000000000000000011013726163410022733 xustar000000000000000024 mtime=1599661832.635 24 atime=1599661832.767 24 ctime=1599661999.416 libprelude-5.2.0/libmissing/tests/test-mbsinit.c0000644000000000000000000000267713726163410021752 0ustar00rootroot00000000000000/* Test of test for initial conversion state. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2008. */ #include #include #include "signature.h" SIGNATURE_CHECK (mbsinit, int, (const mbstate_t *)); #include #include "macros.h" int main (int argc, char *argv[]) { static mbstate_t state; ASSERT (mbsinit (NULL)); ASSERT (mbsinit (&state)); if (argc > 1) { static const char input[1] = "\303"; wchar_t wc; size_t ret; /* configure should already have checked that the locale is supported. */ if (setlocale (LC_ALL, "") == NULL) return 1; ret = mbrtowc (&wc, input, 1, &state); ASSERT (ret == (size_t)(-2)); ASSERT (!mbsinit (&state)); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-memchr.c0000644000000000000000000000011013726163410022541 xustar000000000000000024 mtime=1599661832.635 24 atime=1599661832.767 24 ctime=1599661999.418 libprelude-5.2.0/libmissing/tests/test-memchr.c0000644000000000000000000000731313726163410021550 0ustar00rootroot00000000000000/* * Copyright (C) 2008-2018 Free Software Foundation, Inc. * Written by Eric Blake and Bruno Haible * * 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (memchr, void *, (void const *, int, size_t)); #include #include "zerosize-ptr.h" #include "macros.h" /* Calculating void * + int is not portable, so this wrapper converts to char * to make the tests easier to write. */ #define MEMCHR (char *) memchr int main (void) { size_t n = 0x100000; char *input = malloc (n); ASSERT (input); input[0] = 'a'; input[1] = 'b'; memset (input + 2, 'c', 1024); memset (input + 1026, 'd', n - 1028); input[n - 2] = 'e'; input[n - 1] = 'a'; /* Basic behavior tests. */ ASSERT (MEMCHR (input, 'a', n) == input); ASSERT (MEMCHR (input, 'a', 0) == NULL); ASSERT (MEMCHR (zerosize_ptr (), 'a', 0) == NULL); ASSERT (MEMCHR (input, 'b', n) == input + 1); ASSERT (MEMCHR (input, 'c', n) == input + 2); ASSERT (MEMCHR (input, 'd', n) == input + 1026); ASSERT (MEMCHR (input + 1, 'a', n - 1) == input + n - 1); ASSERT (MEMCHR (input + 1, 'e', n - 1) == input + n - 2); ASSERT (MEMCHR (input + 1, 0x789abc00 | 'e', n - 1) == input + n - 2); ASSERT (MEMCHR (input, 'f', n) == NULL); ASSERT (MEMCHR (input, '\0', n) == NULL); /* Check that a very long haystack is handled quickly if the byte is found near the beginning. */ { size_t repeat = 10000; for (; repeat > 0; repeat--) { ASSERT (MEMCHR (input, 'c', n) == input + 2); } } /* Alignment tests. */ { int i, j; for (i = 0; i < 32; i++) { for (j = 0; j < 256; j++) input[i + j] = j; for (j = 0; j < 256; j++) { ASSERT (MEMCHR (input + i, j, 256) == input + i + j); } } } /* Check that memchr() does not read past the first occurrence of the byte being searched. See the Austin Group's clarification . Test both '\0' and something else, since some implementations special-case searching for NUL. */ { char *page_boundary = (char *) zerosize_ptr (); /* Too small, and we miss cache line boundary tests; too large, and the test takes cubically longer to complete. */ int limit = 257; if (page_boundary != NULL) { for (n = 1; n <= limit; n++) { char *mem = page_boundary - n; memset (mem, 'X', n); ASSERT (MEMCHR (mem, 'U', n) == NULL); ASSERT (MEMCHR (mem, 0, n) == NULL); { size_t i; size_t k; for (i = 0; i < n; i++) { mem[i] = 'U'; for (k = i + 1; k < n + limit; k++) ASSERT (MEMCHR (mem, 'U', k) == mem + i); mem[i] = 0; for (k = i + 1; k < n + limit; k++) ASSERT (MEMCHR (mem, 0, k) == mem + i); mem[i] = 'X'; } } } } } free (input); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-memmem.c0000644000000000000000000000010713726163410022551 xustar000000000000000024 mtime=1599661832.635 24 atime=1599661832.767 23 ctime=1599661999.42 libprelude-5.2.0/libmissing/tests/test-memmem.c0000644000000000000000000002105713726163410021553 0ustar00rootroot00000000000000/* * Copyright (C) 2004, 2007-2018 Free Software Foundation, Inc. * Written by Bruno Haible and Eric Blake * * 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (memmem, void *, (void const *, size_t, void const *, size_t)); #include #include #include #include "null-ptr.h" #include "zerosize-ptr.h" #include "macros.h" int main (int argc, char *argv[]) { #if HAVE_DECL_ALARM /* Declare failure if test takes too long, by using default abort caused by SIGALRM. All known platforms that lack alarm also lack memmem, and the replacement memmem is known to not take too long. */ int alarm_value = 100; signal (SIGALRM, SIG_DFL); alarm (alarm_value); #endif { const char input[] = "foo"; const char *result = memmem (input, strlen (input), "", 0); ASSERT (result == input); } { const char input[] = "foo"; const char *result = memmem (input, strlen (input), "o", 1); ASSERT (result == input + 1); } { const char input[] = "ABC ABCDAB ABCDABCDABDE"; const char *result = memmem (input, strlen (input), "ABCDABD", 7); ASSERT (result == input + 15); } { const char input[] = "ABC ABCDAB ABCDABCDABDE"; const char *result = memmem (input, strlen (input), "ABCDABE", 7); ASSERT (result == NULL); } { const char input[] = "ABC ABCDAB ABCDABCDABDE"; const char *result = memmem (input, strlen (input), "ABCDABCD", 8); ASSERT (result == input + 11); } /* Check that length 0 does not dereference the pointer. */ { const char *result = memmem (zerosize_ptr (), 0, "foo", 3); ASSERT (result == NULL); } { const char input[] = "foo"; const char *result = memmem (input, strlen (input), null_ptr (), 0); ASSERT (result == input); } /* Check that a long periodic needle does not cause false positives. */ { const char input[] = ("F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD" "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD" "_C3_A7_20_EF_BF_BD"); const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"; const char *result = memmem (input, strlen (input), need, strlen (need)); ASSERT (result == NULL); } { const char input[] = ("F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD" "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD" "_C3_A7_20_EF_BF_BD_DA_B5_C2_A6_20" "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"); const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"; const char *result = memmem (input, strlen (input), need, strlen (need)); ASSERT (result == input + 115); } /* Check that a very long haystack is handled quickly if the needle is short and occurs near the beginning. */ { size_t repeat = 10000; size_t m = 1000000; const char *needle = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; size_t n = strlen (needle); char *haystack = (char *) malloc (m + 1); if (haystack != NULL) { memset (haystack, 'A', m); haystack[0] = 'B'; for (; repeat > 0; repeat--) { ASSERT (memmem (haystack, m, needle, n) == haystack + 1); } free (haystack); } } /* Check that a very long needle is discarded quickly if the haystack is short. */ { size_t repeat = 10000; size_t m = 1000000; const char *haystack = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" "ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB"; size_t n = strlen (haystack); char *needle = (char *) malloc (m + 1); if (needle != NULL) { memset (needle, 'A', m); for (; repeat > 0; repeat--) { ASSERT (memmem (haystack, n, needle, m) == NULL); } free (needle); } } /* Check that the asymptotic worst-case complexity is not quadratic. */ { size_t m = 1000000; char *haystack = (char *) malloc (2 * m + 1); char *needle = (char *) malloc (m + 1); if (haystack != NULL && needle != NULL) { const char *result; memset (haystack, 'A', 2 * m); haystack[2 * m] = 'B'; memset (needle, 'A', m); needle[m] = 'B'; result = memmem (haystack, 2 * m + 1, needle, m + 1); ASSERT (result == haystack + m); } free (needle); free (haystack); } /* Check that long needles not present in a haystack can be handled with sublinear speed. */ { size_t repeat = 10000; size_t m = 1000000; size_t n = 1000; char *haystack = (char *) malloc (m); char *needle = (char *) malloc (n); if (haystack != NULL && needle != NULL) { const char *result; memset (haystack, 'A', m); memset (needle, 'B', n); for (; repeat > 0; repeat--) { result = memmem (haystack, m, needle, n); ASSERT (result == NULL); } } free (haystack); free (needle); } { /* Ensure that with a barely periodic "short" needle, memmem's search does not mistakenly skip just past the match point. This use of memmem would mistakenly return NULL before gnulib v0.0-4927. */ const char *haystack = "\n" "with_build_libsubdir\n" "with_local_prefix\n" "with_gxx_include_dir\n" "with_cpp_install_dir\n" "enable_generated_files_in_srcdir\n" "with_gnu_ld\n" "with_ld\n" "with_demangler_in_ld\n" "with_gnu_as\n" "with_as\n" "enable_largefile\n" "enable_werror_always\n" "enable_checking\n" "enable_coverage\n" "enable_gather_detailed_mem_stats\n" "enable_build_with_cxx\n" "with_stabs\n" "enable_multilib\n" "enable___cxa_atexit\n" "enable_decimal_float\n" "enable_fixed_point\n" "enable_threads\n" "enable_tls\n" "enable_objc_gc\n" "with_dwarf2\n" "enable_shared\n" "with_build_sysroot\n" "with_sysroot\n" "with_specs\n" "with_pkgversion\n" "with_bugurl\n" "enable_languages\n" "with_multilib_list\n"; const char *needle = "\n" "with_gnu_ld\n"; const char* p = memmem (haystack, strlen (haystack), needle, strlen (needle)); ASSERT (p - haystack == 114); } { /* Same bug, shorter trigger. */ const char *haystack = "..wi.d."; const char *needle = ".d."; const char* p = memmem (haystack, strlen (haystack), needle, strlen (needle)); ASSERT (p - haystack == 4); } { /* Like the above, but trigger the flaw in two_way_long_needle by using a needle of length LONG_NEEDLE_THRESHOLD (32) or greater. Rather than trying to find the right alignment manually, I've arbitrarily chosen the following needle and template for the haystack, and ensure that for each placement of the needle in that haystack, memmem finds it. */ const char *needle = "\nwith_gnu_ld-extend-to-len-32-b\n"; const char *h = "\n" "with_build_libsubdir\n" "with_local_prefix\n" "with_gxx_include_dir\n" "with_cpp_install_dir\n" "with_e_\n" "..............................\n" "with_FGHIJKLMNOPQRSTUVWXYZ\n" "with_567890123456789\n" "with_multilib_list\n"; size_t h_len = strlen (h); char *haystack = malloc (h_len + 1); size_t i; ASSERT (haystack); for (i = 0; i < h_len - strlen (needle); i++) { const char *p; memcpy (haystack, h, h_len + 1); memcpy (haystack + i, needle, strlen (needle) + 1); p = memmem (haystack, strlen (haystack), needle, strlen (needle)); ASSERT (p); ASSERT (p - haystack == i); } } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-nanosleep.c0000644000000000000000000000011013726163410023252 xustar000000000000000024 mtime=1599661832.635 24 atime=1599661832.767 24 ctime=1599661999.421 libprelude-5.2.0/libmissing/tests/test-nanosleep.c0000644000000000000000000000426313726163410022262 0ustar00rootroot00000000000000/* Test of nanosleep() function. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (nanosleep, int, (struct timespec const *, struct timespec *)); #include #include #include #include "macros.h" #if HAVE_DECL_ALARM static void handle_alarm (int sig) { if (sig != SIGALRM) _exit (1); } #endif int main (void) { struct timespec ts; ts.tv_sec = 1000; ts.tv_nsec = -1; errno = 0; ASSERT (nanosleep (&ts, NULL) == -1); ASSERT (errno == EINVAL); ts.tv_nsec = 1000000000; errno = 0; ASSERT (nanosleep (&ts, NULL) == -1); ASSERT (errno == EINVAL); ts.tv_sec = 0; ts.tv_nsec = 1; ASSERT (nanosleep (&ts, &ts) == 0); /* Remaining time is only defined on EINTR failure; but on success, it is typically either 0 or unchanged from input. At any rate, it shouldn't be randomly changed to unrelated values. */ ASSERT (ts.tv_sec == 0); ASSERT (ts.tv_nsec == 0 || ts.tv_nsec == 1); ts.tv_nsec = 0; ASSERT (nanosleep (&ts, NULL) == 0); #if HAVE_DECL_ALARM { const time_t pentecost = 50 * 24 * 60 * 60; /* 50 days. */ signal (SIGALRM, handle_alarm); alarm (1); ts.tv_sec = pentecost; ts.tv_nsec = 999999999; errno = 0; ASSERT (nanosleep (&ts, &ts) == -1); ASSERT (errno == EINTR); ASSERT (pentecost - 10 < ts.tv_sec && ts.tv_sec <= pentecost); ASSERT (0 <= ts.tv_nsec && ts.tv_nsec <= 999999999); } #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-netdb.c0000644000000000000000000000011013726163410022362 xustar000000000000000024 mtime=1599661832.636 24 atime=1599661832.767 24 ctime=1599661999.423 libprelude-5.2.0/libmissing/tests/test-netdb.c0000644000000000000000000000200513726163410021362 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007-2008, 2010-2018 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 3 of the License, 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, see . */ /* Written by Simon Josefsson , 2008. */ #include #include /* Check that the 'struct hostent' type is defined. */ struct hostent t1; /* Check that the 'socklen_t' type is defined. */ socklen_t t2; int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-netinet_in.c0000644000000000000000000000011013726163410023422 xustar000000000000000024 mtime=1599661832.636 24 atime=1599661832.767 24 ctime=1599661999.425 libprelude-5.2.0/libmissing/tests/test-netinet_in.c0000644000000000000000000000156613726163410022435 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-nl_langinfo.c0000644000000000000000000000011013726163410023554 xustar000000000000000024 mtime=1599661832.636 24 atime=1599661832.767 24 ctime=1599661999.426 libprelude-5.2.0/libmissing/tests/test-nl_langinfo.c0000644000000000000000000001406313726163410022563 0ustar00rootroot00000000000000/* Test of nl_langinfo replacement. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (nl_langinfo, char *, (nl_item)); #include #include #include #include "c-strcase.h" #include "macros.h" /* For GCC >= 4.3, silence the warnings "comparison of unsigned expression >= 0 is always true" in this file. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) # pragma GCC diagnostic ignored "-Wtype-limits" #endif int main (int argc, char *argv[]) { int pass = atoi (argv[1]); /* pass locale 0 C 1 traditional French locale 2 French UTF-8 locale */ setlocale (LC_ALL, ""); /* nl_langinfo items of the LC_CTYPE category */ ASSERT (strlen (nl_langinfo (CODESET)) > 0); if (pass == 2) { const char *codeset = nl_langinfo (CODESET); ASSERT (c_strcasecmp (codeset, "UTF-8") == 0 || c_strcasecmp (codeset, "UTF8") == 0); } /* nl_langinfo items of the LC_NUMERIC category */ ASSERT (strlen (nl_langinfo (RADIXCHAR)) > 0); ASSERT (strlen (nl_langinfo (THOUSEP)) >= 0); /* nl_langinfo items of the LC_TIME category */ ASSERT (strlen (nl_langinfo (D_T_FMT)) > 0); ASSERT (strlen (nl_langinfo (D_FMT)) > 0); ASSERT (strlen (nl_langinfo (T_FMT)) > 0); ASSERT (strlen (nl_langinfo (T_FMT_AMPM)) >= (pass == 0 ? 1 : 0)); ASSERT (strlen (nl_langinfo (AM_STR)) >= (pass == 0 ? 1 : 0)); ASSERT (strlen (nl_langinfo (PM_STR)) >= (pass == 0 ? 1 : 0)); ASSERT (strlen (nl_langinfo (DAY_1)) > 0); ASSERT (strlen (nl_langinfo (DAY_2)) > 0); ASSERT (strlen (nl_langinfo (DAY_3)) > 0); ASSERT (strlen (nl_langinfo (DAY_4)) > 0); ASSERT (strlen (nl_langinfo (DAY_5)) > 0); ASSERT (strlen (nl_langinfo (DAY_6)) > 0); ASSERT (strlen (nl_langinfo (DAY_7)) > 0); ASSERT (strlen (nl_langinfo (ABDAY_1)) > 0); ASSERT (strlen (nl_langinfo (ABDAY_2)) > 0); ASSERT (strlen (nl_langinfo (ABDAY_3)) > 0); ASSERT (strlen (nl_langinfo (ABDAY_4)) > 0); ASSERT (strlen (nl_langinfo (ABDAY_5)) > 0); ASSERT (strlen (nl_langinfo (ABDAY_6)) > 0); ASSERT (strlen (nl_langinfo (ABDAY_7)) > 0); ASSERT (strlen (nl_langinfo (MON_1)) > 0); ASSERT (strlen (nl_langinfo (MON_2)) > 0); ASSERT (strlen (nl_langinfo (MON_3)) > 0); ASSERT (strlen (nl_langinfo (MON_4)) > 0); ASSERT (strlen (nl_langinfo (MON_5)) > 0); ASSERT (strlen (nl_langinfo (MON_6)) > 0); ASSERT (strlen (nl_langinfo (MON_7)) > 0); ASSERT (strlen (nl_langinfo (MON_8)) > 0); ASSERT (strlen (nl_langinfo (MON_9)) > 0); ASSERT (strlen (nl_langinfo (MON_10)) > 0); ASSERT (strlen (nl_langinfo (MON_11)) > 0); ASSERT (strlen (nl_langinfo (MON_12)) > 0); ASSERT (strlen (nl_langinfo (ALTMON_1)) > 0); ASSERT (strlen (nl_langinfo (ALTMON_2)) > 0); ASSERT (strlen (nl_langinfo (ALTMON_3)) > 0); ASSERT (strlen (nl_langinfo (ALTMON_4)) > 0); ASSERT (strlen (nl_langinfo (ALTMON_5)) > 0); ASSERT (strlen (nl_langinfo (ALTMON_6)) > 0); ASSERT (strlen (nl_langinfo (ALTMON_7)) > 0); ASSERT (strlen (nl_langinfo (ALTMON_8)) > 0); ASSERT (strlen (nl_langinfo (ALTMON_9)) > 0); ASSERT (strlen (nl_langinfo (ALTMON_10)) > 0); ASSERT (strlen (nl_langinfo (ALTMON_11)) > 0); ASSERT (strlen (nl_langinfo (ALTMON_12)) > 0); /* In the tested locales, alternate month names and month names ought to be the same. */ ASSERT (strcmp (nl_langinfo (ALTMON_1), nl_langinfo (MON_1)) == 0); ASSERT (strcmp (nl_langinfo (ALTMON_2), nl_langinfo (MON_2)) == 0); ASSERT (strcmp (nl_langinfo (ALTMON_3), nl_langinfo (MON_3)) == 0); ASSERT (strcmp (nl_langinfo (ALTMON_4), nl_langinfo (MON_4)) == 0); ASSERT (strcmp (nl_langinfo (ALTMON_5), nl_langinfo (MON_5)) == 0); ASSERT (strcmp (nl_langinfo (ALTMON_6), nl_langinfo (MON_6)) == 0); ASSERT (strcmp (nl_langinfo (ALTMON_7), nl_langinfo (MON_7)) == 0); ASSERT (strcmp (nl_langinfo (ALTMON_8), nl_langinfo (MON_8)) == 0); ASSERT (strcmp (nl_langinfo (ALTMON_9), nl_langinfo (MON_9)) == 0); ASSERT (strcmp (nl_langinfo (ALTMON_10), nl_langinfo (MON_10)) == 0); ASSERT (strcmp (nl_langinfo (ALTMON_11), nl_langinfo (MON_11)) == 0); ASSERT (strcmp (nl_langinfo (ALTMON_12), nl_langinfo (MON_12)) == 0); ASSERT (strlen (nl_langinfo (ABMON_1)) > 0); ASSERT (strlen (nl_langinfo (ABMON_2)) > 0); ASSERT (strlen (nl_langinfo (ABMON_3)) > 0); ASSERT (strlen (nl_langinfo (ABMON_4)) > 0); ASSERT (strlen (nl_langinfo (ABMON_5)) > 0); ASSERT (strlen (nl_langinfo (ABMON_6)) > 0); ASSERT (strlen (nl_langinfo (ABMON_7)) > 0); ASSERT (strlen (nl_langinfo (ABMON_8)) > 0); ASSERT (strlen (nl_langinfo (ABMON_9)) > 0); ASSERT (strlen (nl_langinfo (ABMON_10)) > 0); ASSERT (strlen (nl_langinfo (ABMON_11)) > 0); ASSERT (strlen (nl_langinfo (ABMON_12)) > 0); ASSERT (strlen (nl_langinfo (ERA)) >= 0); ASSERT (strlen (nl_langinfo (ERA_D_FMT)) >= 0); ASSERT (strlen (nl_langinfo (ERA_D_T_FMT)) >= 0); ASSERT (strlen (nl_langinfo (ERA_T_FMT)) >= 0); ASSERT (nl_langinfo (ALT_DIGITS) != NULL); /* nl_langinfo items of the LC_MONETARY category */ { const char *currency = nl_langinfo (CRNCYSTR); ASSERT (strlen (currency) >= 0); #if !defined __NetBSD__ if (pass > 0) ASSERT (strlen (currency) >= 1); #endif } /* nl_langinfo items of the LC_MESSAGES category */ ASSERT (strlen (nl_langinfo (YESEXPR)) > 0); ASSERT (strlen (nl_langinfo (NOEXPR)) > 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-once.c0000644000000000000000000000011013726163410022212 xustar000000000000000024 mtime=1599661832.636 24 atime=1599661832.767 24 ctime=1599661999.428 libprelude-5.2.0/libmissing/tests/test-once.c0000644000000000000000000000203713726163410021217 0ustar00rootroot00000000000000/* Test of once-only execution in multithreaded situations. Copyright (C) 2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2018. */ #include #include "glthread/lock.h" #include "macros.h" gl_once_define(static, a_once) static int a; static void a_init (void) { a = 42; } int main () { gl_once (a_once, a_init); ASSERT (a == 42); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-open.c0000644000000000000000000000010713726163410022235 xustar000000000000000024 mtime=1599661832.636 24 atime=1599661832.767 23 ctime=1599661999.43 libprelude-5.2.0/libmissing/tests/test-open.c0000644000000000000000000000215013726163410021230 0ustar00rootroot00000000000000/* Test of opening a file descriptor. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "signature.h" SIGNATURE_CHECK (open, int, (char const *, int, ...)); #include #include #include #include #include "macros.h" #define BASE "test-open.t" #include "test-open.h" int main (void) { return test_open (open, true); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-pathmax.c0000644000000000000000000000011013726163410022730 xustar000000000000000024 mtime=1599661832.637 24 atime=1599661832.767 24 ctime=1599661999.431 libprelude-5.2.0/libmissing/tests/test-pathmax.c0000644000000000000000000000170413726163410021735 0ustar00rootroot00000000000000/* Test of "pathmax.h". Copyright (C) 2011-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2011. */ #include #include "pathmax.h" /* Check that PATH_MAX is a constant if it is defined. */ #ifdef PATH_MAX int a = PATH_MAX; #endif int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-perror.c0000644000000000000000000000011013726163410022577 xustar000000000000000024 mtime=1599661832.637 24 atime=1599661832.767 24 ctime=1599661999.433 libprelude-5.2.0/libmissing/tests/test-perror.c0000644000000000000000000000205713726163410021606 0ustar00rootroot00000000000000/* Test of perror() function. Copyright (C) 2008-2018 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 3, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (perror, void, (char const *)); #include int main (int argc, char **argv) { const char *prefix = (argc > 1 ? argv[1] : NULL); errno = EACCES; perror (prefix); errno = ETIMEDOUT; perror (prefix); errno = EOVERFLOW; perror (prefix); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-perror2.c0000644000000000000000000000011013726163410022661 xustar000000000000000024 mtime=1599661832.637 24 atime=1599661832.767 24 ctime=1599661999.435 libprelude-5.2.0/libmissing/tests/test-perror2.c0000644000000000000000000000675613726163410021702 0ustar00rootroot00000000000000/* Test of perror() function. Copyright (C) 2011-2018 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 3, 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, see . */ #include #include #include #include #include /* This test intentionally parses stderr. So, we arrange to have fd 10 (outside the range of interesting fd's during the test) set up to duplicate the original stderr. */ #define BACKUP_STDERR_FILENO 10 #define ASSERT_STREAM myerr #include "macros.h" static FILE *myerr; #define BASE "test-perror2" int main (void) { /* We change fd 2 later, so save it in fd 10. */ if (dup2 (STDERR_FILENO, BACKUP_STDERR_FILENO) != BACKUP_STDERR_FILENO || (myerr = fdopen (BACKUP_STDERR_FILENO, "w")) == NULL) return 2; ASSERT (freopen (BASE ".tmp", "w+", stderr) == stderr); /* Test that perror does not clobber strerror buffer. */ { const char *msg1; const char *msg2; const char *msg3; const char *msg4; char *str1; char *str2; char *str3; char *str4; msg1 = strerror (ENOENT); ASSERT (msg1); str1 = strdup (msg1); ASSERT (str1); msg2 = strerror (ERANGE); ASSERT (msg2); str2 = strdup (msg2); ASSERT (str2); msg3 = strerror (-4); ASSERT (msg3); str3 = strdup (msg3); ASSERT (str3); msg4 = strerror (1729576); ASSERT (msg4); str4 = strdup (msg4); ASSERT (str4); errno = EACCES; perror (""); errno = -5; perror (""); ASSERT (!ferror (stderr)); ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1)); ASSERT (msg2 == msg4 || STREQ (msg2, str2)); ASSERT (msg3 == msg4 || STREQ (msg3, str3)); ASSERT (STREQ (msg4, str4)); free (str1); free (str2); free (str3); free (str4); } /* Test that perror uses the same message as strerror. */ { int errs[] = { EACCES, 0, -3, }; int i; for (i = 0; i < SIZEOF (errs); i++) { char buf[256]; char *err = strerror (errs[i]); ASSERT (err); ASSERT (strlen (err) < sizeof buf); rewind (stderr); ASSERT (ftruncate (fileno (stderr), 0) == 0); errno = errs[i]; perror (NULL); ASSERT (!ferror (stderr)); rewind (stderr); ASSERT (fgets (buf, sizeof buf, stderr) == buf); ASSERT (strstr (buf, err)); } } /* Test that perror reports write failure. */ { ASSERT (freopen (BASE ".tmp", "r", stderr) == stderr); ASSERT (setvbuf (stderr, NULL, _IONBF, BUFSIZ) == 0); errno = -1; ASSERT (!ferror (stderr)); perror (NULL); #if 0 /* Commented out until cygwin behaves: https://sourceware.org/ml/newlib/2011/msg00228.html */ ASSERT (errno > 0); /* Commented out until glibc behaves: https://sourceware.org/bugzilla/show_bug.cgi?id=12792 */ ASSERT (ferror (stderr)); #endif } ASSERT (fclose (stderr) == 0); ASSERT (remove (BASE ".tmp") == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-pipe.c0000644000000000000000000000011013726163410022223 xustar000000000000000024 mtime=1599661832.637 24 atime=1599661832.768 24 ctime=1599661999.436 libprelude-5.2.0/libmissing/tests/test-pipe.c0000644000000000000000000000524313726163410021232 0ustar00rootroot00000000000000/* Test of pipe. Copyright (C) 2009-2018 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 3, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (pipe, int, (int[2])); #include #include #if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" # else # include # endif #endif #include "binary-io.h" #include "macros.h" /* Return true if FD is open. */ static bool is_open (int fd) { #if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows, the initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE, and there is no fcntl. */ return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE; #else # ifndef F_GETFL # error Please port fcntl to your platform # endif return 0 <= fcntl (fd, F_GETFL); #endif } /* Return true if FD is not inherited to child processes. */ static bool is_cloexec (int fd) { #if defined _WIN32 && ! defined __CYGWIN__ HANDLE h = (HANDLE) _get_osfhandle (fd); DWORD flags; ASSERT (GetHandleInformation (h, &flags)); return (flags & HANDLE_FLAG_INHERIT) == 0; #else int flags; ASSERT ((flags = fcntl (fd, F_GETFD)) >= 0); return (flags & FD_CLOEXEC) != 0; #endif } /* Return true if FD is in non-blocking mode. */ static bool is_nonblocking (int fd) { #if defined _WIN32 && ! defined __CYGWIN__ /* We don't use the non-blocking mode for sockets here. */ return 0; #else int flags; ASSERT ((flags = fcntl (fd, F_GETFL)) >= 0); return (flags & O_NONBLOCK) != 0; #endif } int main () { int fd[2]; fd[0] = -1; fd[1] = -1; ASSERT (pipe (fd) >= 0); ASSERT (fd[0] >= 0); ASSERT (fd[1] >= 0); ASSERT (fd[0] != fd[1]); ASSERT (is_open (fd[0])); ASSERT (is_open (fd[1])); ASSERT (!is_cloexec (fd[0])); ASSERT (!is_cloexec (fd[1])); ASSERT (!is_nonblocking (fd[0])); ASSERT (!is_nonblocking (fd[1])); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-poll.c0000644000000000000000000000011013726163410022234 xustar000000000000000024 mtime=1599661832.638 24 atime=1599661832.768 24 ctime=1599661999.438 libprelude-5.2.0/libmissing/tests/test-poll.c0000644000000000000000000002021413726163410021236 0ustar00rootroot00000000000000/* Test of poll() function. Copyright (C) 2008-2018 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 3, 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, see . */ /* Written by Paolo Bonzini. */ #include /* Specification. */ #include #include "signature.h" SIGNATURE_CHECK (poll, int, (struct pollfd[], nfds_t, int)); #include #include #include #include #include #include #include #include #include #include #include "macros.h" #if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE #endif #ifdef WINDOWS_NATIVE #include #define pipe(x) _pipe(x, 256, O_BINARY) #endif #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_SYS_WAIT_H #include #endif #define TEST_PORT 12345 /* Minimal testing infrastructure. */ static int failures; static void failed (const char *reason) { if (++failures > 1) printf (" "); printf ("failed (%s)\n", reason); } static int test (void (*fn) (void), const char *msg) { failures = 0; printf ("%s... ", msg); fflush (stdout); fn (); if (!failures) printf ("passed\n"); return failures; } /* Funny socket code. */ static int open_server_socket () { int s, x; struct sockaddr_in ia; s = socket (AF_INET, SOCK_STREAM, 0); x = 1; setsockopt (s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof (x)); memset (&ia, 0, sizeof (ia)); ia.sin_family = AF_INET; inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr); ia.sin_port = htons (TEST_PORT); if (bind (s, (struct sockaddr *) &ia, sizeof (ia)) < 0) { perror ("bind"); exit (77); } if (listen (s, 1) < 0) { perror ("listen"); exit (77); } return s; } static int connect_to_socket (int blocking) { int s; struct sockaddr_in ia; s = socket (AF_INET, SOCK_STREAM, 0); memset (&ia, 0, sizeof (ia)); ia.sin_family = AF_INET; inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr); ia.sin_port = htons (TEST_PORT); if (!blocking) { #ifdef WINDOWS_NATIVE unsigned long iMode = 1; ioctl (s, FIONBIO, (char *) &iMode); #elif defined F_GETFL int oldflags = fcntl (s, F_GETFL, NULL); if (!(oldflags & O_NONBLOCK)) fcntl (s, F_SETFL, oldflags | O_NONBLOCK); #endif } if (connect (s, (struct sockaddr *) &ia, sizeof (ia)) < 0 && (blocking || errno != EINPROGRESS)) { perror ("connect"); exit (77); } return s; } /* A slightly more convenient interface to poll(2). */ static int poll1 (int fd, int ev, int time) { struct pollfd pfd; int r; pfd.fd = fd; pfd.events = ev; pfd.revents = -1; r = poll (&pfd, 1, time); if (r < 0) return r; if (pfd.revents & ~(POLLHUP | POLLERR | POLLNVAL | ev)) failed ("invalid flag combination (unrequested events)"); return pfd.revents; } static int poll1_nowait (int fd, int ev) { return poll1 (fd, ev, 0); } static int poll1_wait (int fd, int ev) { return poll1 (fd, ev, -1); } /* Test poll(2) for TTYs. */ #ifdef INTERACTIVE static void test_tty (void) { if (poll1_nowait (0, POLLIN | POLLRDNORM) != 0) failed ("can read"); if (poll1_nowait (0, POLLOUT) == 0) failed ("cannot write"); if (poll1_wait (0, POLLIN | POLLRDNORM) == 0) failed ("return with infinite timeout"); getchar (); if (poll1_nowait (0, POLLIN | POLLRDNORM) != 0) failed ("can read after getc"); } #endif /* Test poll(2) for unconnected nonblocking sockets. */ static void test_connect_first (void) { int s = open_server_socket (); struct sockaddr_in ia; socklen_t addrlen; int c1, c2; if (poll1_nowait (s, POLLIN | POLLRDNORM | POLLRDBAND) != 0) failed ("can read, socket not connected"); c1 = connect_to_socket (false); if (poll1_wait (s, POLLIN | POLLRDNORM | POLLRDBAND) != (POLLIN | POLLRDNORM)) failed ("expecting POLLIN | POLLRDNORM on passive socket"); if (poll1_nowait (s, POLLIN | POLLRDBAND) != POLLIN) failed ("expecting POLLIN on passive socket"); if (poll1_nowait (s, POLLRDNORM | POLLRDBAND) != POLLRDNORM) failed ("expecting POLLRDNORM on passive socket"); addrlen = sizeof (ia); c2 = accept (s, (struct sockaddr *) &ia, &addrlen); close (s); close (c1); close (c2); } /* Test poll(2) for unconnected blocking sockets. */ static void test_accept_first (void) { #ifndef WINDOWS_NATIVE int s = open_server_socket (); struct sockaddr_in ia; socklen_t addrlen; char buf[3]; int c, pid; pid = fork (); if (pid < 0) return; if (pid == 0) { addrlen = sizeof (ia); c = accept (s, (struct sockaddr *) &ia, &addrlen); ASSERT (c >= 0); close (s); ASSERT (write (c, "foo", 3) == 3); ASSERT (read (c, buf, 3) == 3); shutdown (c, SHUT_RD); close (c); exit (0); } else { close (s); c = connect_to_socket (true); ASSERT (c >= 0); if (poll1_nowait (c, POLLOUT | POLLWRNORM | POLLRDBAND) != (POLLOUT | POLLWRNORM)) failed ("cannot write after blocking connect"); ASSERT (write (c, "foo", 3) == 3); wait (&pid); if (poll1_wait (c, POLLIN) != POLLIN) failed ("cannot read data left in the socket by closed process"); ASSERT (read (c, buf, 3) == 3); ASSERT (write (c, "foo", 3) == 3); if ((poll1_wait (c, POLLIN | POLLOUT) & (POLLHUP | POLLERR)) == 0) failed ("expecting POLLHUP after shutdown"); close (c); } #endif } /* Common code for pipes and connected sockets. */ static void test_pair (int rd, int wd) { char buf[3]; if (poll1_wait (wd, POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM | POLLRDBAND) != (POLLOUT | POLLWRNORM)) failed ("expecting POLLOUT | POLLWRNORM before writing"); if (poll1_nowait (wd, POLLIN | POLLRDNORM | POLLOUT | POLLRDBAND) != POLLOUT) failed ("expecting POLLOUT before writing"); if (poll1_nowait (wd, POLLIN | POLLRDNORM | POLLWRNORM | POLLRDBAND) != POLLWRNORM) failed ("expecting POLLWRNORM before writing"); ASSERT (write (wd, "foo", 3) == 3); if (poll1_wait (rd, POLLIN | POLLRDNORM) != (POLLIN | POLLRDNORM)) failed ("expecting POLLIN | POLLRDNORM after writing"); if (poll1_nowait (rd, POLLIN) != POLLIN) failed ("expecting POLLIN after writing"); if (poll1_nowait (rd, POLLRDNORM) != POLLRDNORM) failed ("expecting POLLRDNORM after writing"); ASSERT (read (rd, buf, 3) == 3); } /* Test poll(2) on connected sockets. */ static void test_socket_pair (void) { struct sockaddr_in ia; socklen_t addrlen = sizeof (ia); int s = open_server_socket (); int c1 = connect_to_socket (false); int c2 = accept (s, (struct sockaddr *) &ia, &addrlen); ASSERT (s >= 0); ASSERT (c1 >= 0); ASSERT (c2 >= 0); close (s); test_pair (c1, c2); close (c1); ASSERT (write (c2, "foo", 3) == 3); if ((poll1_nowait (c2, POLLIN | POLLOUT) & (POLLHUP | POLLERR)) == 0) failed ("expecting POLLHUP after shutdown"); close (c2); } /* Test poll(2) on pipes. */ static void test_pipe (void) { int fd[2]; ASSERT (pipe (fd) >= 0); test_pair (fd[0], fd[1]); close (fd[0]); if ((poll1_wait (fd[1], POLLIN | POLLOUT) & (POLLHUP | POLLERR)) == 0) failed ("expecting POLLHUP after shutdown"); close (fd[1]); } /* Do them all. */ int main () { int result; #ifdef INTERACTIVE printf ("Please press Enter\n"); test (test_tty, "TTY"); #endif result = test (test_connect_first, "Unconnected socket test"); result += test (test_socket_pair, "Connected sockets test"); result += test (test_accept_first, "General socket test with fork"); result += test (test_pipe, "Pipe test"); exit (result); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-poll-h.c0000644000000000000000000000010713726163410022467 xustar000000000000000024 mtime=1599661832.637 24 atime=1599661832.768 23 ctime=1599661999.44 libprelude-5.2.0/libmissing/tests/test-poll-h.c0000644000000000000000000000210313726163410021460 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2010-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible, 2010. */ #include #include /* Check that the nfds_t type is defined. */ nfds_t a; /* Check that the various POLL* macros are defined. */ int b = POLLIN | POLLPRI | POLLOUT | POLLERR | POLLHUP | POLLNVAL | POLLRDNORM | POLLRDBAND | POLLWRNORM | POLLWRBAND; int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-pthread_sigmask1.c0000644000000000000000000000011013726163410024514 xustar000000000000000024 mtime=1599661832.638 24 atime=1599661832.768 24 ctime=1599661999.442 libprelude-5.2.0/libmissing/tests/test-pthread_sigmask1.c0000644000000000000000000000467613726163410023534 0ustar00rootroot00000000000000/* Test of pthread_sigmask in a single-threaded program. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2011. */ #include #include #include "signature.h" SIGNATURE_CHECK (pthread_sigmask, int, (int, const sigset_t *, sigset_t *)); #include #include #include #include #include "macros.h" #if !(defined _WIN32 && !defined __CYGWIN__) static volatile int sigint_occurred; static void sigint_handler (int sig) { sigint_occurred++; } int main (int argc, char *argv[]) { sigset_t set; int pid = getpid (); char command[80]; signal (SIGINT, sigint_handler); sigemptyset (&set); sigaddset (&set, SIGINT); /* Check error handling. */ ASSERT (pthread_sigmask (1729, &set, NULL) == EINVAL); /* Block SIGINT. */ ASSERT (pthread_sigmask (SIG_BLOCK, &set, NULL) == 0); /* Request a SIGINT signal from outside. */ sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid); ASSERT (system (command) == 0); /* Wait. */ sleep (2); /* The signal should not have arrived yet, because it is blocked. */ ASSERT (sigint_occurred == 0); /* Unblock SIGINT. */ ASSERT (pthread_sigmask (SIG_UNBLOCK, &set, NULL) == 0); /* The signal should have arrived now, because POSIX says "If there are any pending unblocked signals after the call to pthread_sigmask(), at least one of those signals shall be delivered before the call to pthread_sigmask() returns." */ ASSERT (sigint_occurred == 1); return 0; } #else /* On native Windows, getpid() values and the arguments that are passed to the (Cygwin?) 'kill' program are not necessarily related. */ int main () { fputs ("Skipping test: native Windows platform\n", stderr); return 77; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-pthread_sigmask2.c0000644000000000000000000000011013726163410024515 xustar000000000000000024 mtime=1599661832.638 24 atime=1599661832.768 24 ctime=1599661999.443 libprelude-5.2.0/libmissing/tests/test-pthread_sigmask2.c0000644000000000000000000000453413726163410023526 0ustar00rootroot00000000000000/* Test of pthread_sigmask in a multi-threaded program. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2011. */ #include #include #include #include #include #include "glthread/thread.h" #include "macros.h" #if USE_POSIX_THREADS static gl_thread_t main_thread; static gl_thread_t killer_thread; static void * killer_thread_func (void *arg) { sleep (1); pthread_kill (main_thread, SIGINT); return NULL; } static volatile int sigint_occurred; static void sigint_handler (int sig) { sigint_occurred++; } int main (int argc, char *argv[]) { sigset_t set; signal (SIGINT, sigint_handler); sigemptyset (&set); sigaddset (&set, SIGINT); /* Check error handling. */ ASSERT (pthread_sigmask (1729, &set, NULL) == EINVAL); /* Block SIGINT. */ ASSERT (pthread_sigmask (SIG_BLOCK, &set, NULL) == 0); /* Request a SIGINT signal from another thread. */ main_thread = gl_thread_self (); ASSERT (glthread_create (&killer_thread, killer_thread_func, NULL) == 0); /* Wait. */ sleep (2); /* The signal should not have arrived yet, because it is blocked. */ ASSERT (sigint_occurred == 0); /* Unblock SIGINT. */ ASSERT (pthread_sigmask (SIG_UNBLOCK, &set, NULL) == 0); /* The signal should have arrived now, because POSIX says "If there are any pending unblocked signals after the call to pthread_sigmask(), at least one of those signals shall be delivered before the call to pthread_sigmask() returns." */ ASSERT (sigint_occurred == 1); return 0; } #else int main () { fputs ("Skipping test: POSIX threads not enabled\n", stderr); return 77; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-raise.c0000644000000000000000000000011013726163410022371 xustar000000000000000024 mtime=1599661832.638 24 atime=1599661832.768 24 ctime=1599661999.445 libprelude-5.2.0/libmissing/tests/test-raise.c0000644000000000000000000000264113726163410021377 0ustar00rootroot00000000000000/* Test raising a signal. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (raise, int, (int)); #include #include "macros.h" /* It is safe to use _Noreturn here: exit() never returns, and GCC knows that exit() is a non-returning function, even on platforms where its declaration in does not have the 'noreturn' attribute. */ static _Noreturn void handler (int sig) { exit (0); } int main (void) { /* Test behaviour for invalid argument. */ ASSERT (raise (-1) != 0); /* Test behaviour for SIGINT. */ ASSERT (signal (SIGINT, handler) != SIG_ERR); raise (SIGINT); /* We should not get here, because the handler takes away the control. */ exit (1); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-regex.c0000644000000000000000000000011013726163410022400 xustar000000000000000024 mtime=1599661832.638 24 atime=1599661832.768 24 ctime=1599661999.447 libprelude-5.2.0/libmissing/tests/test-regex.c0000644000000000000000000001700513726163410021406 0ustar00rootroot00000000000000/* Test regular expressions Copyright 1996-2001, 2003-2018 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 3 of the License, 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, see . */ #include #include "regex.h" #include #include #include #include #if HAVE_DECL_ALARM # include # include #endif #include "localcharset.h" int main (void) { int result = 0; static struct re_pattern_buffer regex; unsigned char folded_chars[UCHAR_MAX + 1]; int i; const char *s; struct re_registers regs; #if HAVE_DECL_ALARM /* Some builds of glibc go into an infinite loop on this test. */ int alarm_value = 2; signal (SIGALRM, SIG_DFL); alarm (alarm_value); #endif if (setlocale (LC_ALL, "en_US.UTF-8")) { { /* https://sourceware.org/ml/libc-hacker/2006-09/msg00008.html This test needs valgrind to catch the bug on Debian GNU/Linux 3.1 x86, but it might catch the bug better on other platforms and it shouldn't hurt to try the test here. */ static char const pat[] = "insert into"; static char const data[] = "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else { memset (®s, 0, sizeof regs); if (re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, ®s) != -1) result |= 1; regfree (®ex); free (regs.start); free (regs.end); } } /* Check whether it's really a UTF-8 locale. On mingw, the setlocale call succeeds but returns "English_United States.1252", with locale_charset() returning "CP1252". */ if (strcmp (locale_charset (), "UTF-8") == 0) { /* This test is from glibc bug 15078. The test case is from Andreas Schwab in . */ static char const pat[] = "[^x]x"; static char const data[] = /* */ "\xe1\x80\x80" "\xe1\x80\xbb" "\xe1\x80\xbd" "\xe1\x80\x94" "\xe1\x80\xba" "\xe1\x80\xaf" "\xe1\x80\x95" "\xe1\x80\xba" "x"; re_set_syntax (0); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else { memset (®s, 0, sizeof regs); i = re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, 0); if (i != 0 && i != 21) result |= 1; regfree (®ex); free (regs.start); free (regs.end); } } if (! setlocale (LC_ALL, "C")) return 1; } /* This test is from glibc bug 3957, reported by Andrew Mackey. */ re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[^x]b", 6, ®ex); if (s) result |= 2; /* This should fail, but succeeds for glibc-2.5. */ else { memset (®s, 0, sizeof regs); if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) result |= 2; regfree (®ex); free (regs.start); free (regs.end); } /* This regular expression is from Spencer ere test number 75 in grep-2.3. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP); memset (®ex, 0, sizeof regex); for (i = 0; i <= UCHAR_MAX; i++) folded_chars[i] = i; regex.translate = folded_chars; s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, ®ex); /* This should fail with _Invalid character class name_ error. */ if (!s) { result |= 4; regfree (®ex); } /* Ensure that [b-a] is diagnosed as invalid, when using RE_NO_EMPTY_RANGES. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[b-a]", 6, ®ex); if (s == 0) { result |= 8; regfree (®ex); } /* This should succeed, but does not for glibc-2.1.3. */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("{1", 2, ®ex); if (s) result |= 8; else regfree (®ex); /* The following example is derived from a problem report against gawk from Jorge Stolfi . */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[an\371]*n", 7, ®ex); if (s) result |= 8; /* This should match, but does not for glibc-2.2.1. */ else { memset (®s, 0, sizeof regs); if (re_match (®ex, "an", 2, 0, ®s) != 2) result |= 8; regfree (®ex); free (regs.start); free (regs.end); } memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 8; /* glibc-2.2.93 does not work with a negative RANGE argument. */ else { memset (®s, 0, sizeof regs); if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) result |= 8; regfree (®ex); free (regs.start); free (regs.end); } /* The version of regex.c in older versions of gnulib ignored RE_ICASE. Detect that problem too. */ re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 16; else { memset (®s, 0, sizeof regs); if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) result |= 16; regfree (®ex); free (regs.start); free (regs.end); } /* Catch a bug reported by Vin Shelton in https://lists.gnu.org/r/bug-coreutils/2007-06/msg00089.html */ re_set_syntax (RE_SYNTAX_POSIX_BASIC & ~RE_CONTEXT_INVALID_DUP & ~RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); if (s) result |= 32; else regfree (®ex); /* REG_STARTEND was added to glibc on 2004-01-15. Reject older versions. */ if (! REG_STARTEND) result |= 64; #if 0 /* It would be nice to reject hosts whose regoff_t values are too narrow (including glibc on hosts with 64-bit ptrdiff_t and 32-bit int), but we should wait until glibc implements this feature. Otherwise, support for equivalence classes and multibyte collation symbols would always be broken except when compiling --without-included-regex. */ if (sizeof (regoff_t) < sizeof (ptrdiff_t) || sizeof (regoff_t) < sizeof (ssize_t)) result |= 64; #endif return result; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-rwlock1.c0000644000000000000000000000011013726163410022650 xustar000000000000000024 mtime=1599661832.639 24 atime=1599661832.768 24 ctime=1599661999.448 libprelude-5.2.0/libmissing/tests/test-rwlock1.c0000644000000000000000000001244013726163410021654 0ustar00rootroot00000000000000/* Test of glthread_rwlock_rdlock function. Copyright (C) 2017-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2005. Inspired by https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/2-2.c by Intel Corporation. */ #include #include "glthread/lock.h" #include #include #include #include #include "glthread/thread.h" #include "glthread/yield.h" /* Verify that in a situation where - an rwlock is taken by a reader and has a writer waiting, - an additional reader requests the lock, - the waiting writer and the requesting reader threads have the same priority, the requesting reader thread gets blocked, so that at some point the waiting writer can acquire the lock. Without such a guarantee, when there a N readers and each of the readers spends more than 1/Nth of the time with the lock held, there is a high probability that the waiting writer will not get the lock in a given finite time, a phenomenon called "writer starvation". Without such a guarantee, applications have a hard time avoiding writer starvation. POSIX:2008 makes this requirement only for implementations that support TPS (Thread Priority Scheduling) and only for the scheduling policies SCHED_FIFO and SCHED_RR, see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_rdlock.html but test verifies the guarantee regardless of TPS and regardless of scheduling policy. */ #define SUCCEED() exit (0) #define FAILURE() exit (1) #define UNEXPECTED(n) (fprintf (stderr, "Unexpected outcome %d\n", n), abort ()) /* The main thread creates the waiting writer and the requesting reader threads in the default way; this guarantees that they have the same priority. We can reuse the main thread as first reader thread. */ static gl_rwlock_t lock; static gl_thread_t reader1; static gl_thread_t writer; static gl_thread_t reader2; static gl_thread_t timer; /* Used to pass control from writer to reader2 and from reader2 to timer, as in a relay race. Passing control from one running thread to another running thread is most likely faster than to create the second thread. */ static gl_lock_t baton; static void * timer_func (void *ignored) { /* Step 13 (can be before or after step 12): The timer thread takes the baton, then waits a moment to make sure it can tell whether the second reader thread is blocked at step 12. */ if (glthread_lock_lock (&baton)) UNEXPECTED (13); usleep (100000); /* By the time we get here, it's clear that the second reader thread is blocked at step 12. This is the desired behaviour. */ SUCCEED (); } static void * reader2_func (void *ignored) { int err; /* Step 8 (can be before or after step 7): The second reader thread takes the baton, then waits a moment to make sure the writer thread has reached step 7. */ if (glthread_lock_lock (&baton)) UNEXPECTED (8); usleep (100000); /* Step 9 omitted. */ /* Step 10: Launch a timer, to test whether the next call blocks. */ if (glthread_create (&timer, timer_func, NULL)) UNEXPECTED (10); /* Step 11: Release the baton. */ if (glthread_lock_unlock (&baton)) UNEXPECTED (11); /* Step 12: The second reader thread requests the lock. */ err = glthread_rwlock_rdlock (&lock); if (err == 0) FAILURE (); else UNEXPECTED (12); } static void * writer_func (void *ignored) { /* Step 4: Take the baton, so that the second reader thread does not go ahead too early. */ if (glthread_lock_lock (&baton)) UNEXPECTED (4); /* Step 5: Create the second reader thread. */ if (glthread_create (&reader2, reader2_func, NULL)) UNEXPECTED (5); /* Step 6: Release the baton. */ if (glthread_lock_unlock (&baton)) UNEXPECTED (6); /* Step 7: The writer thread requests the lock. */ if (glthread_rwlock_wrlock (&lock)) UNEXPECTED (7); return NULL; } int main () { reader1 = gl_thread_self (); /* Step 1: The main thread initializes the lock and the baton. */ if (glthread_rwlock_init (&lock)) UNEXPECTED (1); if (glthread_lock_init (&baton)) UNEXPECTED (1); /* Step 2: The main thread acquires the lock as a reader. */ if (glthread_rwlock_rdlock (&lock)) UNEXPECTED (2); /* Step 3: Create the writer thread. */ if (glthread_create (&writer, writer_func, NULL)) UNEXPECTED (3); /* Job done. Go to sleep. */ for (;;) { /* In cooperative threads implementations (Pth), give other threads a chance to run. */ gl_thread_yield (); sleep (1); } } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-select.c0000644000000000000000000000010713726163410022553 xustar000000000000000024 mtime=1599661832.639 24 atime=1599661832.768 23 ctime=1599661999.45 libprelude-5.2.0/libmissing/tests/test-select.c0000644000000000000000000000202613726163410021550 0ustar00rootroot00000000000000/* Test of select() substitute. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Paolo Bonzini, 2008. */ #include #include #include "signature.h" SIGNATURE_CHECK (select, int, (int, fd_set *, fd_set *, fd_set *, struct timeval *)); #include "test-select.h" int main (void) { return test_function (select); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-select-fd.c0000644000000000000000000000011013726163410023134 xustar000000000000000024 mtime=1599661832.639 24 atime=1599661832.768 24 ctime=1599661999.452 libprelude-5.2.0/libmissing/tests/test-select-fd.c0000644000000000000000000000442613726163410022145 0ustar00rootroot00000000000000/* Test of select() substitute, reading or writing from a given file descriptor. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2008. */ #include #include #include #include int main (int argc, char *argv[]) { if (argc == 4) { char mode = argv[1][0]; if (mode == 'r' || mode == 'w') { int fd = atoi (argv[2]); if (fd >= 0) { const char *result_file_name = argv[3]; FILE *result_file = fopen (result_file_name, "wb"); if (result_file != NULL) { fd_set fds; struct timeval timeout; int ret; FD_ZERO (&fds); FD_SET (fd, &fds); timeout.tv_sec = 0; timeout.tv_usec = 10000; ret = (mode == 'r' ? select (fd + 1, &fds, NULL, NULL, &timeout) : select (fd + 1, NULL, &fds, NULL, &timeout)); if (ret < 0) { perror ("select failed"); exit (1); } if ((ret == 0) != ! FD_ISSET (fd, &fds)) { fprintf (stderr, "incorrect return value\n"); exit (1); } fprintf (result_file, "%d\n", ret); exit (0); } } } } fprintf (stderr, "Usage: test-select-fd mode fd result-file-name\n"); exit (1); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-select-stdin.c0000644000000000000000000000011013726163410023664 xustar000000000000000024 mtime=1599661832.639 24 atime=1599661832.768 24 ctime=1599661999.453 libprelude-5.2.0/libmissing/tests/test-select-stdin.c0000644000000000000000000000433313726163410022672 0ustar00rootroot00000000000000/* Test of select() substitute, reading from stdin. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2008. */ #include #include #include #include #include #include #include "macros.h" int main (void) { printf ("Applying select() from standard input. Press Ctrl-C to abort.\n"); for (;;) { struct timeval before; struct timeval after; unsigned long spent_usec; fd_set readfds; struct timeval timeout; int ret; gettimeofday (&before, NULL); FD_ZERO (&readfds); FD_SET (0, &readfds); timeout.tv_sec = 0; timeout.tv_usec = 500000; ret = select (1, &readfds, NULL, NULL, &timeout); gettimeofday (&after, NULL); spent_usec = (after.tv_sec - before.tv_sec) * 1000000 + after.tv_usec - before.tv_usec; if (ret < 0) { perror ("select failed"); exit (1); } if ((ret == 0) != ! FD_ISSET (0, &readfds)) { fprintf (stderr, "incorrect return value\n"); exit (1); } if (ret == 0) { if (spent_usec < 250000) { fprintf (stderr, "returned too early\n"); exit (1); } /* Timeout */ printf ("."); ASSERT (fflush (stdout) == 0); } else { char c; printf ("Input available! Trying to read 1 byte...\n"); ASSERT (read (0, &c, 1) == 1); } } } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-setenv.c0000644000000000000000000000010713726163410022600 xustar000000000000000023 mtime=1599661832.64 24 atime=1599661832.768 24 ctime=1599661999.455 libprelude-5.2.0/libmissing/tests/test-setenv.c0000644000000000000000000000310713726163410021576 0ustar00rootroot00000000000000/* Tests of setenv. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (setenv, int, (char const *, char const *, int)); #include #include #include #include "macros.h" int main (void) { /* Test overwriting. */ ASSERT (setenv ("a", "==", -1) == 0); ASSERT (setenv ("a", "2", 0) == 0); ASSERT (strcmp (getenv ("a"), "==") == 0); /* Required to fail with EINVAL. */ errno = 0; ASSERT (setenv ("", "", 1) == -1); ASSERT (errno == EINVAL); errno = 0; ASSERT (setenv ("a=b", "", 0) == -1); ASSERT (errno == EINVAL); #if 0 /* glibc and gnulib's implementation guarantee this, but POSIX no longer requires it: http://austingroupbugs.net/view.php?id=185 */ errno = 0; ASSERT (setenv (NULL, "", 0) == -1); ASSERT (errno == EINVAL); #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-setlocale1.c0000644000000000000000000000010713726163410023330 xustar000000000000000023 mtime=1599661832.64 24 atime=1599661832.768 24 ctime=1599661999.457 libprelude-5.2.0/libmissing/tests/test-setlocale1.c0000644000000000000000000000334213726163410022327 0ustar00rootroot00000000000000/* Test of setting the current locale. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (setlocale, char *, (int, const char *)); #include #include #include "macros.h" int main (int argc, char *argv[]) { char *name1; char *name2; /* Try to set the locale by implicitly looking at the LC_ALL environment variable. configure should already have checked that the locale is supported. */ if (setlocale (LC_ALL, "") == NULL) return 1; name1 = strdup (setlocale (LC_ALL, NULL)); /* Reset the locale. */ if (setlocale (LC_ALL, "C") == NULL) return 1; /* Try to set the locale by explicitly looking at the LC_ALL environment variable. configure should already have checked that the locale is supported. */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL) return 1; name2 = strdup (setlocale (LC_ALL, NULL)); /* Test that the two results are the same. */ ASSERT (strcmp (name1, name2) == 0); free (name1); free (name2); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-setlocale2.c0000644000000000000000000000010713726163410023331 xustar000000000000000023 mtime=1599661832.64 24 atime=1599661832.768 24 ctime=1599661999.458 libprelude-5.2.0/libmissing/tests/test-setlocale2.c0000644000000000000000000000335013726163410022327 0ustar00rootroot00000000000000/* Test of setting the current locale. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include #include #include int main () { /* Try to set the locale by implicitly looking at the LC_ALL environment variable. */ if (setlocale (LC_ALL, "") != NULL) /* It was successful. Check whether LC_CTYPE is non-trivial. */ if (strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) { fprintf (stderr, "setlocale did not fail for implicit %s\n", getenv ("LC_ALL")); return 1; } /* Reset the locale. */ if (setlocale (LC_ALL, "C") == NULL) return 1; /* Try to set the locale by explicitly looking at the LC_ALL environment variable. */ if (setlocale (LC_ALL, getenv ("LC_ALL")) != NULL) /* It was successful. Check whether LC_CTYPE is non-trivial. */ if (strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) { fprintf (stderr, "setlocale did not fail for explicit %s\n", getenv ("LC_ALL")); return 1; } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-setsockopt.c0000644000000000000000000000010713726163410023472 xustar000000000000000024 mtime=1599661832.641 24 atime=1599661832.768 23 ctime=1599661999.46 libprelude-5.2.0/libmissing/tests/test-setsockopt.c0000644000000000000000000000265613726163410022500 0ustar00rootroot00000000000000/* Test setsockopt() function. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (setsockopt, int, (int, int, int, const void *, socklen_t)); #include #include #include "sockets.h" #include "macros.h" int main (void) { (void) gl_sockets_startup (SOCKETS_1_1); /* Test behaviour for invalid file descriptors. */ { int value = 1; errno = 0; ASSERT (setsockopt (-1, SOL_SOCKET, SO_REUSEADDR, &value, sizeof (value)) == -1); ASSERT (errno == EBADF); } { int value = 1; close (99); errno = 0; ASSERT (setsockopt (99, SOL_SOCKET, SO_REUSEADDR, &value, sizeof (value)) == -1); ASSERT (errno == EBADF); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sigaction.c0000644000000000000000000000011013726163410023246 xustar000000000000000024 mtime=1599661832.641 24 atime=1599661832.768 24 ctime=1599661999.462 libprelude-5.2.0/libmissing/tests/test-sigaction.c0000644000000000000000000000677513726163410022270 0ustar00rootroot00000000000000/* Test of sigaction() function. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2008. */ #include #include #include "signature.h" SIGNATURE_CHECK (sigaction, int, (int, struct sigaction const *, struct sigaction *)); #include #include "macros.h" #ifndef SA_NOCLDSTOP # define SA_NOCLDSTOP 0 #endif #ifndef SA_ONSTACK # define SA_ONSTACK 0 #endif #ifndef SA_RESETHAND # define SA_RESETHAND 0 #endif #ifndef SA_RESTART # define SA_RESTART 0 #endif #ifndef SA_SIGINFO # define SA_SIGINFO 0 #endif #ifndef SA_NOCLDWAIT # define SA_NOCLDWAIT 0 #endif /* Define a mask of flags required by POSIX. Some implementations provide other flags as extensions, such as SA_RESTORER, that we must ignore in this test. */ #define MASK_SA_FLAGS (SA_NOCLDSTOP | SA_ONSTACK | SA_RESETHAND | SA_RESTART \ | SA_SIGINFO | SA_NOCLDWAIT | SA_NODEFER) /* This test is unsafe in the presence of an asynchronous SIGABRT, because we install a signal-handler that is intentionally not async-safe. Hopefully, this does not lead to too many reports of false failures, since people don't generally use 'kill -s SIGABRT' to end a runaway program. */ static void handler (int sig) { static int entry_count; struct sigaction sa; ASSERT (sig == SIGABRT); ASSERT (sigaction (SIGABRT, NULL, &sa) == 0); ASSERT ((sa.sa_flags & SA_SIGINFO) == 0); switch (entry_count++) { case 0: ASSERT ((sa.sa_flags & SA_RESETHAND) == 0); ASSERT (sa.sa_handler == handler); break; case 1: /* This assertion fails on glibc-2.3.6 systems with LinuxThreads, when this program is linked with -lpthread, due to the sigaction() override in libpthread.so. */ #if !(defined __GLIBC__ || defined __UCLIBC__) ASSERT (sa.sa_handler == SIG_DFL); #endif break; default: ASSERT (0); } } int main (void) { struct sigaction sa; struct sigaction old_sa; sa.sa_handler = handler; sa.sa_flags = 0; ASSERT (sigemptyset (&sa.sa_mask) == 0); ASSERT (sigaction (SIGABRT, &sa, NULL) == 0); ASSERT (raise (SIGABRT) == 0); sa.sa_flags = SA_RESETHAND | SA_NODEFER; ASSERT (sigaction (SIGABRT, &sa, &old_sa) == 0); ASSERT ((old_sa.sa_flags & MASK_SA_FLAGS) == 0); ASSERT (old_sa.sa_handler == handler); ASSERT (raise (SIGABRT) == 0); sa.sa_handler = SIG_DFL; ASSERT (sigaction (SIGABRT, &sa, &old_sa) == 0); ASSERT ((old_sa.sa_flags & SA_SIGINFO) == 0); #if !(defined __GLIBC__ || defined __UCLIBC__) /* see above */ ASSERT (old_sa.sa_handler == SIG_DFL); #endif sa.sa_handler = SIG_IGN; ASSERT (sigaction (SIGABRT, &sa, NULL) == 0); ASSERT (raise (SIGABRT) == 0); ASSERT (sigaction (SIGABRT, NULL, &old_sa) == 0); ASSERT (old_sa.sa_handler == SIG_IGN); ASSERT (raise (SIGABRT) == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-signal-h.c0000644000000000000000000000011013726163410022770 xustar000000000000000024 mtime=1599661832.641 24 atime=1599661832.768 24 ctime=1599661999.464 libprelude-5.2.0/libmissing/tests/test-signal-h.c0000644000000000000000000000475313726163410022004 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include #include /* Check for required types. */ struct { size_t a; uid_t b; volatile sig_atomic_t c; sigset_t d; pid_t e; #if 0 /* Not guaranteed by gnulib. */ pthread_t f; struct timespec g; #endif } s; /* Check that NSIG is defined. */ int nsig = NSIG; int main (void) { switch (0) { /* The following are guaranteed by C. */ case 0: case SIGABRT: case SIGFPE: case SIGILL: case SIGINT: case SIGSEGV: case SIGTERM: /* The following is guaranteed by gnulib. */ #if GNULIB_SIGPIPE || defined SIGPIPE case SIGPIPE: #endif /* Ensure no conflict with other standardized names. */ #ifdef SIGALRM case SIGALRM: #endif /* On Haiku, SIGBUS is mistakenly equal to SIGSEGV. */ #if defined SIGBUS && SIGBUS != SIGSEGV case SIGBUS: #endif #ifdef SIGCHLD case SIGCHLD: #endif #ifdef SIGCONT case SIGCONT: #endif #ifdef SIGHUP case SIGHUP: #endif #ifdef SIGKILL case SIGKILL: #endif #ifdef SIGQUIT case SIGQUIT: #endif #ifdef SIGSTOP case SIGSTOP: #endif #ifdef SIGTSTP case SIGTSTP: #endif #ifdef SIGTTIN case SIGTTIN: #endif #ifdef SIGTTOU case SIGTTOU: #endif #ifdef SIGUSR1 case SIGUSR1: #endif #ifdef SIGUSR2 case SIGUSR2: #endif #ifdef SIGSYS case SIGSYS: #endif #ifdef SIGTRAP case SIGTRAP: #endif #ifdef SIGURG case SIGURG: #endif #ifdef SIGVTALRM case SIGVTALRM: #endif #ifdef SIGXCPU case SIGXCPU: #endif #ifdef SIGXFSZ case SIGXFSZ: #endif /* SIGRTMIN and SIGRTMAX need not be compile-time constants. */ #if 0 # ifdef SIGRTMIN case SIGRTMIN: # endif # ifdef SIGRTMAX case SIGRTMAX: # endif #endif ; } return s.a + s.b + s.c + s.e; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sigprocmask.c0000644000000000000000000000011013726163410023610 xustar000000000000000024 mtime=1599661832.641 24 atime=1599661832.768 24 ctime=1599661999.465 libprelude-5.2.0/libmissing/tests/test-sigprocmask.c0000644000000000000000000000506013726163410022614 0ustar00rootroot00000000000000/* Test of sigprocmask. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2011. */ #include #include #include "signature.h" SIGNATURE_CHECK (sigprocmask, int, (int, const sigset_t *, sigset_t *)); #include #include #include #include #include "macros.h" #if !(defined _WIN32 && !defined __CYGWIN__) static volatile int sigint_occurred; static void sigint_handler (int sig) { sigint_occurred++; } int main (int argc, char *argv[]) { sigset_t set; pid_t pid = getpid (); char command[80]; if (sizeof (int) < sizeof pid && 0x7fffffff < pid) { fputs ("Skipping test: pid too large\n", stderr); return 77; } signal (SIGINT, sigint_handler); sigemptyset (&set); sigaddset (&set, SIGINT); /* Check error handling. */ ASSERT (sigprocmask (1729, &set, NULL) == -1); ASSERT (errno == EINVAL); /* Block SIGINT. */ ASSERT (sigprocmask (SIG_BLOCK, &set, NULL) == 0); /* Request a SIGINT signal from outside. */ sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, (int) pid); ASSERT (system (command) == 0); /* Wait. */ sleep (2); /* The signal should not have arrived yet, because it is blocked. */ ASSERT (sigint_occurred == 0); /* Unblock SIGINT. */ ASSERT (sigprocmask (SIG_UNBLOCK, &set, NULL) == 0); /* The signal should have arrived now, because POSIX says "If there are any pending unblocked signals after the call to sigprocmask(), at least one of those signals shall be delivered before the call to sigprocmask() returns." */ ASSERT (sigint_occurred == 1); return 0; } #else /* On native Windows, getpid() values and the arguments that are passed to the (Cygwin?) 'kill' program are not necessarily related. */ int main () { fputs ("Skipping test: native Windows platform\n", stderr); return 77; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sleep.c0000644000000000000000000000011013726163410022376 xustar000000000000000024 mtime=1599661832.641 24 atime=1599661832.768 24 ctime=1599661999.467 libprelude-5.2.0/libmissing/tests/test-sleep.c0000644000000000000000000000263313726163410021405 0ustar00rootroot00000000000000/* Test of sleep() function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "signature.h" SIGNATURE_CHECK (sleep, unsigned int, (unsigned int)); #include #include "macros.h" #if HAVE_DECL_ALARM static void handle_alarm (int sig) { if (sig != SIGALRM) _exit (1); } #endif int main (void) { ASSERT (sleep (1) <= 1); ASSERT (sleep (0) == 0); #if HAVE_DECL_ALARM { const unsigned int pentecost = 50 * 24 * 60 * 60; /* 50 days. */ unsigned int remaining; signal (SIGALRM, handle_alarm); alarm (1); remaining = sleep (pentecost); ASSERT (pentecost - 10 < remaining && remaining <= pentecost); } #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-snprintf.c0000644000000000000000000000011013726163410023131 xustar000000000000000024 mtime=1599661832.642 24 atime=1599661832.768 24 ctime=1599661999.469 libprelude-5.2.0/libmissing/tests/test-snprintf.c0000644000000000000000000000372313726163410022141 0ustar00rootroot00000000000000/* Test of snprintf() function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "signature.h" SIGNATURE_CHECK (snprintf, int, (char *, size_t, char const *, ...)); #include #include "macros.h" int main (int argc, char *argv[]) { char buf[8]; int size; int retval; retval = snprintf (NULL, 0, "%d", 12345); ASSERT (retval == 5); for (size = 0; size <= 8; size++) { memcpy (buf, "DEADBEEF", 8); retval = snprintf (buf, size, "%d", 12345); ASSERT (retval == 5); if (size < 6) { if (size > 0) { ASSERT (memcmp (buf, "12345", size - 1) == 0); ASSERT (buf[size - 1] == '\0' || buf[size - 1] == '0' + size); } #if !CHECK_SNPRINTF_POSIX if (size > 0) #endif ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0); } else { ASSERT (memcmp (buf, "12345\0EF", 8) == 0); } } /* Test the support of the POSIX/XSI format strings with positions. */ { char result[100]; retval = snprintf (result, sizeof (result), "%2$d %1$d", 33, 55); ASSERT (strcmp (result, "55 33") == 0); ASSERT (retval == strlen (result)); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sockets.c0000644000000000000000000000010713726163410022747 xustar000000000000000024 mtime=1599661832.642 24 atime=1599661832.768 23 ctime=1599661999.47 libprelude-5.2.0/libmissing/tests/test-sockets.c0000644000000000000000000000216413726163410021747 0ustar00rootroot00000000000000/* * Copyright (C) 2008-2018 Free Software Foundation, Inc. * Written by Simon Josefsson. * * 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 3 of the License, 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, see . */ #include #include #include "sockets.h" int main (void) { int err; err = gl_sockets_startup (SOCKETS_1_1); if (err != 0) { printf ("wsastartup failed %d\n", err); return 1; } err = gl_sockets_cleanup (); if (err != 0) { printf ("wsacleanup failed %d\n", err); return 1; } (void) gl_fd_to_handle (0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-stat.c0000644000000000000000000000011013726163410022241 xustar000000000000000024 mtime=1599661832.642 24 atime=1599661832.769 24 ctime=1599661999.472 libprelude-5.2.0/libmissing/tests/test-stat.c0000644000000000000000000000313413726163410021245 0ustar00rootroot00000000000000/* Tests of stat. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include #include /* Caution: stat may be a function-like macro. Although this signature check must pass, it may be the signature of the real (and broken) stat rather than rpl_stat. Most code should not use the address of stat. */ #include "signature.h" SIGNATURE_CHECK (stat, int, (char const *, struct stat *)); #include #include #include #include #include #include #include "same-inode.h" #include "macros.h" #define BASE "test-stat.t" #include "test-stat.h" /* Wrapper around stat, which works even if stat is a function-like macro, where test_stat_func(stat) would do the wrong thing. */ static int do_stat (char const *name, struct stat *st) { return stat (name, st); } int main (void) { return test_stat_func (do_stat, true); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-stat-time.c0000644000000000000000000000011013726163410023175 xustar000000000000000024 mtime=1599661832.642 24 atime=1599661832.769 24 ctime=1599661999.474 libprelude-5.2.0/libmissing/tests/test-stat-time.c0000644000000000000000000001524113726163410022203 0ustar00rootroot00000000000000/* Test of . Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by James Youngman , 2007. */ #include #include "stat-time.h" #include #include #include #include #include #include #include "macros.h" #define BASE "test-stat-time.t" #include "nap.h" enum { NFILES = 4 }; static char filename_stamp1[50]; static char filename_testfile[50]; static char filename_stamp2[50]; static char filename_stamp3[50]; /* Use file names that are different at each run. This is necessary for test_birthtime() to pass on native Windows: On this platform, the file system apparently remembers the creation time of a file even after it is removed and created anew. See "Windows NT Contains File System Tunneling Capabilities" */ static void initialize_filenames (void) { long t = (long) time (NULL); sprintf (filename_stamp1, "t-stt-%ld-stamp1", t); sprintf (filename_testfile, "t-stt-%ld-testfile", t); sprintf (filename_stamp2, "t-stt-%ld-stamp2", t); sprintf (filename_stamp3, "t-stt-%ld-stamp3", t); } static int force_unlink (const char *filename) { /* This chmod is necessary on mingw, where unlink() of a read-only file fails with EPERM. */ chmod (filename, 0600); return unlink (filename); } static void cleanup (int sig) { /* Remove temporary files. */ force_unlink (filename_stamp1); force_unlink (filename_testfile); force_unlink (filename_stamp2); force_unlink (filename_stamp3); if (sig != 0) _exit (1); } static int open_file (const char *filename, int flags) { int fd = open (filename, flags | O_WRONLY, 0500); if (fd >= 0) { close (fd); return 1; } else { return 0; } } static void create_file (const char *filename) { ASSERT (open_file (filename, O_CREAT | O_EXCL)); } static void do_stat (const char *filename, struct stat *p) { ASSERT (stat (filename, p) == 0); } static void prepare_test (struct stat *statinfo, struct timespec *modtimes) { int i; create_file (filename_stamp1); nap (); create_file (filename_testfile); nap (); create_file (filename_stamp2); nap (); ASSERT (chmod (filename_testfile, 0400) == 0); nap (); create_file (filename_stamp3); do_stat (filename_stamp1, &statinfo[0]); do_stat (filename_testfile, &statinfo[1]); do_stat (filename_stamp2, &statinfo[2]); do_stat (filename_stamp3, &statinfo[3]); /* Now use our access functions. */ for (i = 0; i < NFILES; ++i) { modtimes[i] = get_stat_mtime (&statinfo[i]); } } static void test_mtime (const struct stat *statinfo, struct timespec *modtimes) { int i; /* Use the struct stat fields directly. */ /* mtime(stamp1) < mtime(stamp2) */ ASSERT (statinfo[0].st_mtime < statinfo[2].st_mtime || (statinfo[0].st_mtime == statinfo[2].st_mtime && (get_stat_mtime_ns (&statinfo[0]) < get_stat_mtime_ns (&statinfo[2])))); /* mtime(stamp2) < mtime(stamp3) */ ASSERT (statinfo[2].st_mtime < statinfo[3].st_mtime || (statinfo[2].st_mtime == statinfo[3].st_mtime && (get_stat_mtime_ns (&statinfo[2]) < get_stat_mtime_ns (&statinfo[3])))); /* Now check the result of the access functions. */ /* mtime(stamp1) < mtime(stamp2) */ ASSERT (modtimes[0].tv_sec < modtimes[2].tv_sec || (modtimes[0].tv_sec == modtimes[2].tv_sec && modtimes[0].tv_nsec < modtimes[2].tv_nsec)); /* mtime(stamp2) < mtime(stamp3) */ ASSERT (modtimes[2].tv_sec < modtimes[3].tv_sec || (modtimes[2].tv_sec == modtimes[3].tv_sec && modtimes[2].tv_nsec < modtimes[3].tv_nsec)); /* verify equivalence */ for (i = 0; i < NFILES; ++i) { struct timespec ts; ts = get_stat_mtime (&statinfo[i]); ASSERT (ts.tv_sec == statinfo[i].st_mtime); } } #if defined _WIN32 && !defined __CYGWIN__ /* Skip the ctime tests on native Windows platforms, because their st_ctime is either the same as st_mtime (plus or minus an offset) or set to the file _creation_ time, and is not influenced by rename or chmod. */ # define test_ctime(ignored) ((void) 0) #else static void test_ctime (const struct stat *statinfo) { /* On some buggy NFS clients, mtime and ctime are disproportionately skewed from one another. Skip this test in that case. */ if (statinfo[0].st_mtime != statinfo[0].st_ctime) return; /* mtime(stamp2) < ctime(testfile) */ ASSERT (statinfo[2].st_mtime < statinfo[1].st_ctime || (statinfo[2].st_mtime == statinfo[1].st_ctime && (get_stat_mtime_ns (&statinfo[2]) < get_stat_ctime_ns (&statinfo[1])))); } #endif static void test_birthtime (const struct stat *statinfo, const struct timespec *modtimes, struct timespec *birthtimes) { int i; /* Collect the birth times. */ for (i = 0; i < NFILES; ++i) { birthtimes[i] = get_stat_birthtime (&statinfo[i]); if (birthtimes[i].tv_nsec < 0) return; } /* mtime(stamp1) < birthtime(testfile) */ ASSERT (modtimes[0].tv_sec < birthtimes[1].tv_sec || (modtimes[0].tv_sec == birthtimes[1].tv_sec && modtimes[0].tv_nsec < birthtimes[1].tv_nsec)); /* birthtime(testfile) < mtime(stamp2) */ ASSERT (birthtimes[1].tv_sec < modtimes[2].tv_sec || (birthtimes[1].tv_sec == modtimes[2].tv_sec && birthtimes[1].tv_nsec < modtimes[2].tv_nsec)); } int main (void) { struct stat statinfo[NFILES]; struct timespec modtimes[NFILES]; struct timespec birthtimes[NFILES]; initialize_filenames (); #ifdef SIGHUP signal (SIGHUP, cleanup); #endif #ifdef SIGINT signal (SIGINT, cleanup); #endif #ifdef SIGQUIT signal (SIGQUIT, cleanup); #endif #ifdef SIGTERM signal (SIGTERM, cleanup); #endif cleanup (0); prepare_test (statinfo, modtimes); test_mtime (statinfo, modtimes); test_ctime (statinfo); test_birthtime (statinfo, modtimes, birthtimes); cleanup (0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-stdalign.c0000644000000000000000000000011013726163410023073 xustar000000000000000024 mtime=1599661832.642 24 atime=1599661832.769 24 ctime=1599661999.475 libprelude-5.2.0/libmissing/tests/test-stdalign.c0000644000000000000000000000733213726163410022103 0ustar00rootroot00000000000000/* Test of . Copyright 2009-2018 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 3 of the License, 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, see . */ /* Written by Paul Eggert, inspired by Bruno Haible's test-alignof.c. */ #include #include #include #include #include "verify.h" #include "macros.h" typedef long double longdouble; typedef struct { char a[1]; } struct1; typedef struct { char a[2]; } struct2; typedef struct { char a[3]; } struct3; typedef struct { char a[4]; } struct4; verify (__alignof_is_defined == 1); #ifndef alignof # error "alignof is not a macro" #endif #if __alignas_is_defined verify (__alignas_is_defined == 1); # ifndef alignas # error "alignas is not a macro" # endif /* mingw can go up only to 8. 8 is all that GNU Emacs needs, so let's limit the test to 8 for now. */ # define TEST_ALIGNMENT 8 #else # define _Alignas(alignment) # define alignas(alignment) # define TEST_ALIGNMENT 1 #endif #define CHECK_STATIC(type) \ typedef struct { char slot1; type slot2; } type##_helper; \ verify (alignof (type) == offsetof (type##_helper, slot2)); \ verify (_Alignof (type) == alignof (type)); \ const int type##_alignment = alignof (type); \ type alignas (TEST_ALIGNMENT) static_##type##_alignas; \ type _Alignas (TEST_ALIGNMENT) static_##type##_Alignas #define CHECK_ALIGNED(var) ASSERT ((uintptr_t) &(var) % TEST_ALIGNMENT == 0) CHECK_STATIC (char); CHECK_STATIC (short); CHECK_STATIC (int); CHECK_STATIC (long); #ifdef INT64_MAX CHECK_STATIC (int64_t); #endif CHECK_STATIC (float); CHECK_STATIC (double); /* CHECK_STATIC (longdouble); */ CHECK_STATIC (struct1); CHECK_STATIC (struct2); CHECK_STATIC (struct3); CHECK_STATIC (struct4); int main () { #if defined __SUNPRO_C /* Avoid a test failure due to Sun Studio Developer Bug Report #2125432. */ fputs ("Skipping test: known Sun C compiler bug\n", stderr); return 77; #elif defined __HP_cc && __ia64 /* Avoid a test failure due to HP-UX Itanium cc bug; see: https://lists.gnu.org/r/bug-gnulib/2017-03/msg00078.html */ fputs ("Skipping test: known HP-UX Itanium cc compiler bug\n", stderr); return 77; #else CHECK_ALIGNED (static_char_alignas); CHECK_ALIGNED (static_char_Alignas); CHECK_ALIGNED (static_short_alignas); CHECK_ALIGNED (static_short_Alignas); CHECK_ALIGNED (static_int_alignas); CHECK_ALIGNED (static_int_Alignas); CHECK_ALIGNED (static_long_alignas); CHECK_ALIGNED (static_long_Alignas); # ifdef INT64_MAX CHECK_ALIGNED (static_int64_t_alignas); CHECK_ALIGNED (static_int64_t_Alignas); # endif CHECK_ALIGNED (static_float_alignas); CHECK_ALIGNED (static_float_Alignas); CHECK_ALIGNED (static_double_alignas); CHECK_ALIGNED (static_double_Alignas); /* CHECK_ALIGNED (static_longdouble_alignas); */ /* CHECK_ALIGNED (static_longdouble_Alignas); */ CHECK_ALIGNED (static_struct1_alignas); CHECK_ALIGNED (static_struct1_Alignas); CHECK_ALIGNED (static_struct2_alignas); CHECK_ALIGNED (static_struct2_Alignas); CHECK_ALIGNED (static_struct3_alignas); CHECK_ALIGNED (static_struct3_Alignas); CHECK_ALIGNED (static_struct4_alignas); CHECK_ALIGNED (static_struct4_Alignas); return 0; #endif } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-stdbool.c0000644000000000000000000000011013726163410022734 xustar000000000000000024 mtime=1599661832.643 24 atime=1599661832.769 24 ctime=1599661999.477 libprelude-5.2.0/libmissing/tests/test-stdbool.c0000644000000000000000000000663613726163410021752 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2002-2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ /* We want this test to succeed even when using gcc's -Werror; but to do that requires a pragma that didn't exist before 4.3.0. */ #ifndef __GNUC__ # define ADDRESS_CHECK_OKAY #elif __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) /* No way to silence -Waddress. */ #else # pragma GCC diagnostic ignored "-Waddress" # define ADDRESS_CHECK_OKAY #endif #include #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif /* Several tests cannot be guaranteed with gnulib's , at least, not for all compilers and compiler options. */ #if HAVE_STDBOOL_H || 3 <= __GNUC__ struct s { _Bool s: 1; _Bool t; } s; #endif char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; #if HAVE_STDBOOL_H || 3 <= __GNUC__ /* See above. */ char d[(bool) 0.5 == true ? 1 : -1]; # ifdef ADDRESS_CHECK_OKAY /* Avoid gcc warning. */ /* C99 may plausibly be interpreted as not requiring support for a cast from a variable's address to bool in a static initializer. So treat it like a GCC extension. */ # ifdef __GNUC__ bool e = &s; # endif # endif char f[(_Bool) 0.0 == false ? 1 : -1]; #endif char g[true]; char h[sizeof (_Bool)]; #if HAVE_STDBOOL_H || 3 <= __GNUC__ /* See above. */ char i[sizeof s.t]; #endif enum { j = false, k = true, l = false * true, m = true * 256 }; _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { int error = 0; #if HAVE_STDBOOL_H || 3 <= __GNUC__ /* See above. */ # ifdef ADDRESS_CHECK_OKAY /* Avoid gcc warning. */ /* A cast from a variable's address to bool is valid in expressions. */ { bool e1 = &s; if (!e1) error = 1; } # endif #endif /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 reported by James Lemley on 2005-10-05; see https://lists.gnu.org/r/bug-coreutils/2005-10/msg00086.html This is a runtime test, since a corresponding compile-time test would rely on initializer extensions. */ { char digs[] = "0123456789"; if (&(digs + 5)[-2 + (bool) 1] != &digs[4]) error = 1; } return error; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-stddef.c0000644000000000000000000000011013726163410022537 xustar000000000000000024 mtime=1599661832.643 24 atime=1599661832.769 24 ctime=1599661999.479 libprelude-5.2.0/libmissing/tests/test-stddef.c0000644000000000000000000000540013726163410021541 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include #include #include #include #include "verify.h" /* Check that appropriate types are defined. */ wchar_t a = 'c'; ptrdiff_t b = 1; size_t c = 2; max_align_t x; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); /* Check that offsetof produces integer constants with correct type. */ struct d { char e; char f; }; /* Solaris 10 has a bug where offsetof is under-parenthesized, and cannot be used as an arbitrary expression. However, since it is unlikely to bite real code, we ignore that short-coming. */ /* verify (sizeof offsetof (struct d, e) == sizeof (size_t)); */ verify (sizeof (offsetof (struct d, e)) == sizeof (size_t)); verify (offsetof (struct d, f) == 1); /* offsetof promotes to an unsigned integer if and only if sizes do not fit in int. */ verify ((offsetof (struct d, e) < -1) == (INT_MAX < (size_t) -1)); /* Check max_align_t's alignment. */ verify (alignof (double) <= alignof (max_align_t)); verify (alignof (int) <= alignof (max_align_t)); verify (alignof (long double) <= alignof (max_align_t)); verify (alignof (long int) <= alignof (max_align_t)); verify (alignof (ptrdiff_t) <= alignof (max_align_t)); verify (alignof (size_t) <= alignof (max_align_t)); verify (alignof (wchar_t) <= alignof (max_align_t)); verify (alignof (struct d) <= alignof (max_align_t)); #if defined __GNUC__ || defined __IBM__ALIGNOF__ verify (__alignof__ (double) <= __alignof__ (max_align_t)); verify (__alignof__ (int) <= __alignof__ (max_align_t)); verify (__alignof__ (long double) <= __alignof__ (max_align_t)); verify (__alignof__ (long int) <= __alignof__ (max_align_t)); verify (__alignof__ (ptrdiff_t) <= __alignof__ (max_align_t)); verify (__alignof__ (size_t) <= __alignof__ (max_align_t)); verify (__alignof__ (wchar_t) <= __alignof__ (max_align_t)); verify (__alignof__ (struct d) <= __alignof__ (max_align_t)); #endif int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-stdint.c0000644000000000000000000000010713726163410022601 xustar000000000000000024 mtime=1599661832.643 24 atime=1599661832.769 23 ctime=1599661999.48 libprelude-5.2.0/libmissing/tests/test-stdint.c0000644000000000000000000003330613726163410021603 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2006-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2006. */ #include /* Whether to enable pedantic checks. */ #define DO_PEDANTIC 0 #include #include "verify.h" #include "intprops.h" #if __GNUC__ >= 2 && DO_PEDANTIC # define verify_same_types(expr1,expr2) \ extern void _verify_func(__LINE__) (__typeof__ (expr1) *); \ extern void _verify_func(__LINE__) (__typeof__ (expr2) *); # define _verify_func(line) _verify_func2(line) # define _verify_func2(line) verify_func_ ## line #else # define verify_same_types(expr1,expr2) extern void verify_func (int) #endif /* 7.18.1.1. Exact-width integer types */ /* 7.18.2.1. Limits of exact-width integer types */ int8_t a1[3] = { INT8_C (17), INT8_MIN, INT8_MAX }; verify (TYPE_MINIMUM (int8_t) == INT8_MIN); verify (TYPE_MAXIMUM (int8_t) == INT8_MAX); verify_same_types (INT8_MIN, (int8_t) 0 + 0); verify_same_types (INT8_MAX, (int8_t) 0 + 0); int16_t a2[3] = { INT16_C (17), INT16_MIN, INT16_MAX }; verify (TYPE_MINIMUM (int16_t) == INT16_MIN); verify (TYPE_MAXIMUM (int16_t) == INT16_MAX); verify_same_types (INT16_MIN, (int16_t) 0 + 0); verify_same_types (INT16_MAX, (int16_t) 0 + 0); int32_t a3[3] = { INT32_C (17), INT32_MIN, INT32_MAX }; verify (TYPE_MINIMUM (int32_t) == INT32_MIN); verify (TYPE_MAXIMUM (int32_t) == INT32_MAX); verify_same_types (INT32_MIN, (int32_t) 0 + 0); verify_same_types (INT32_MAX, (int32_t) 0 + 0); #ifdef INT64_MAX int64_t a4[3] = { INT64_C (17), INT64_MIN, INT64_MAX }; verify (TYPE_MINIMUM (int64_t) == INT64_MIN); verify (TYPE_MAXIMUM (int64_t) == INT64_MAX); verify_same_types (INT64_MIN, (int64_t) 0 + 0); verify_same_types (INT64_MAX, (int64_t) 0 + 0); #endif uint8_t b1[2] = { UINT8_C (17), UINT8_MAX }; verify (TYPE_MAXIMUM (uint8_t) == UINT8_MAX); verify_same_types (UINT8_MAX, (uint8_t) 0 + 0); uint16_t b2[2] = { UINT16_C (17), UINT16_MAX }; verify (TYPE_MAXIMUM (uint16_t) == UINT16_MAX); verify_same_types (UINT16_MAX, (uint16_t) 0 + 0); uint32_t b3[2] = { UINT32_C (17), UINT32_MAX }; verify (TYPE_MAXIMUM (uint32_t) == UINT32_MAX); verify_same_types (UINT32_MAX, (uint32_t) 0 + 0); #ifdef UINT64_MAX uint64_t b4[2] = { UINT64_C (17), UINT64_MAX }; verify (TYPE_MAXIMUM (uint64_t) == UINT64_MAX); verify_same_types (UINT64_MAX, (uint64_t) 0 + 0); #endif #if INT8_MIN && INT8_MAX && INT16_MIN && INT16_MAX && INT32_MIN && INT32_MAX /* ok */ #else err or; #endif #if UINT8_MAX && UINT16_MAX && UINT32_MAX /* ok */ #else err or; #endif /* 7.18.1.2. Minimum-width integer types */ /* 7.18.2.2. Limits of minimum-width integer types */ int_least8_t c1[3] = { 17, INT_LEAST8_MIN, INT_LEAST8_MAX }; verify (TYPE_MINIMUM (int_least8_t) == INT_LEAST8_MIN); verify (TYPE_MAXIMUM (int_least8_t) == INT_LEAST8_MAX); verify_same_types (INT_LEAST8_MIN, (int_least8_t) 0 + 0); verify_same_types (INT_LEAST8_MAX, (int_least8_t) 0 + 0); int_least16_t c2[3] = { 17, INT_LEAST16_MIN, INT_LEAST16_MAX }; verify (TYPE_MINIMUM (int_least16_t) == INT_LEAST16_MIN); verify (TYPE_MAXIMUM (int_least16_t) == INT_LEAST16_MAX); verify_same_types (INT_LEAST16_MIN, (int_least16_t) 0 + 0); verify_same_types (INT_LEAST16_MAX, (int_least16_t) 0 + 0); int_least32_t c3[3] = { 17, INT_LEAST32_MIN, INT_LEAST32_MAX }; verify (TYPE_MINIMUM (int_least32_t) == INT_LEAST32_MIN); verify (TYPE_MAXIMUM (int_least32_t) == INT_LEAST32_MAX); verify_same_types (INT_LEAST32_MIN, (int_least32_t) 0 + 0); verify_same_types (INT_LEAST32_MAX, (int_least32_t) 0 + 0); #ifdef INT_LEAST64_MAX int_least64_t c4[3] = { 17, INT_LEAST64_MIN, INT_LEAST64_MAX }; verify (TYPE_MINIMUM (int_least64_t) == INT_LEAST64_MIN); verify (TYPE_MAXIMUM (int_least64_t) == INT_LEAST64_MAX); verify_same_types (INT_LEAST64_MIN, (int_least64_t) 0 + 0); verify_same_types (INT_LEAST64_MAX, (int_least64_t) 0 + 0); #endif uint_least8_t d1[2] = { 17, UINT_LEAST8_MAX }; verify (TYPE_MAXIMUM (uint_least8_t) == UINT_LEAST8_MAX); verify_same_types (UINT_LEAST8_MAX, (uint_least8_t) 0 + 0); uint_least16_t d2[2] = { 17, UINT_LEAST16_MAX }; verify (TYPE_MAXIMUM (uint_least16_t) == UINT_LEAST16_MAX); verify_same_types (UINT_LEAST16_MAX, (uint_least16_t) 0 + 0); uint_least32_t d3[2] = { 17, UINT_LEAST32_MAX }; verify (TYPE_MAXIMUM (uint_least32_t) == UINT_LEAST32_MAX); verify_same_types (UINT_LEAST32_MAX, (uint_least32_t) 0 + 0); #ifdef UINT_LEAST64_MAX uint_least64_t d4[2] = { 17, UINT_LEAST64_MAX }; verify (TYPE_MAXIMUM (uint_least64_t) == UINT_LEAST64_MAX); verify_same_types (UINT_LEAST64_MAX, (uint_least64_t) 0 + 0); #endif #if INT_LEAST8_MIN && INT_LEAST8_MAX && INT_LEAST16_MIN && INT_LEAST16_MAX && INT_LEAST32_MIN && INT_LEAST32_MAX /* ok */ #else err or; #endif #if UINT_LEAST8_MAX && UINT_LEAST16_MAX && UINT_LEAST32_MAX /* ok */ #else err or; #endif /* 7.18.1.3. Fastest minimum-width integer types */ /* 7.18.2.3. Limits of fastest minimum-width integer types */ int_fast8_t e1[3] = { 17, INT_FAST8_MIN, INT_FAST8_MAX }; verify (TYPE_MINIMUM (int_fast8_t) == INT_FAST8_MIN); verify (TYPE_MAXIMUM (int_fast8_t) == INT_FAST8_MAX); verify_same_types (INT_FAST8_MIN, (int_fast8_t) 0 + 0); verify_same_types (INT_FAST8_MAX, (int_fast8_t) 0 + 0); int_fast16_t e2[3] = { 17, INT_FAST16_MIN, INT_FAST16_MAX }; verify (TYPE_MINIMUM (int_fast16_t) == INT_FAST16_MIN); verify (TYPE_MAXIMUM (int_fast16_t) == INT_FAST16_MAX); verify_same_types (INT_FAST16_MIN, (int_fast16_t) 0 + 0); verify_same_types (INT_FAST16_MAX, (int_fast16_t) 0 + 0); int_fast32_t e3[3] = { 17, INT_FAST32_MIN, INT_FAST32_MAX }; verify (TYPE_MINIMUM (int_fast32_t) == INT_FAST32_MIN); verify (TYPE_MAXIMUM (int_fast32_t) == INT_FAST32_MAX); verify_same_types (INT_FAST32_MIN, (int_fast32_t) 0 + 0); verify_same_types (INT_FAST32_MAX, (int_fast32_t) 0 + 0); #ifdef INT_FAST64_MAX int_fast64_t e4[3] = { 17, INT_FAST64_MIN, INT_FAST64_MAX }; verify (TYPE_MINIMUM (int_fast64_t) == INT_FAST64_MIN); verify (TYPE_MAXIMUM (int_fast64_t) == INT_FAST64_MAX); verify_same_types (INT_FAST64_MIN, (int_fast64_t) 0 + 0); verify_same_types (INT_FAST64_MAX, (int_fast64_t) 0 + 0); #endif uint_fast8_t f1[2] = { 17, UINT_FAST8_MAX }; verify (TYPE_MAXIMUM (uint_fast8_t) == UINT_FAST8_MAX); verify_same_types (UINT_FAST8_MAX, (uint_fast8_t) 0 + 0); uint_fast16_t f2[2] = { 17, UINT_FAST16_MAX }; verify (TYPE_MAXIMUM (uint_fast16_t) == UINT_FAST16_MAX); verify_same_types (UINT_FAST16_MAX, (uint_fast16_t) 0 + 0); uint_fast32_t f3[2] = { 17, UINT_FAST32_MAX }; verify (TYPE_MAXIMUM (uint_fast32_t) == UINT_FAST32_MAX); verify_same_types (UINT_FAST32_MAX, (uint_fast32_t) 0 + 0); #ifdef UINT_FAST64_MAX uint_fast64_t f4[2] = { 17, UINT_FAST64_MAX }; verify (TYPE_MAXIMUM (uint_fast64_t) == UINT_FAST64_MAX); verify_same_types (UINT_FAST64_MAX, (uint_fast64_t) 0 + 0); #endif #if INT_FAST8_MIN && INT_FAST8_MAX && INT_FAST16_MIN && INT_FAST16_MAX && INT_FAST32_MIN && INT_FAST32_MAX /* ok */ #else err or; #endif #if UINT_FAST8_MAX && UINT_FAST16_MAX && UINT_FAST32_MAX /* ok */ #else err or; #endif /* 7.18.1.4. Integer types capable of holding object pointers */ /* 7.18.2.4. Limits of integer types capable of holding object pointers */ intptr_t g[3] = { 17, INTPTR_MIN, INTPTR_MAX }; verify (TYPE_MINIMUM (intptr_t) == INTPTR_MIN); verify (TYPE_MAXIMUM (intptr_t) == INTPTR_MAX); verify_same_types (INTPTR_MIN, (intptr_t) 0 + 0); verify_same_types (INTPTR_MAX, (intptr_t) 0 + 0); uintptr_t h[2] = { 17, UINTPTR_MAX }; verify (TYPE_MAXIMUM (uintptr_t) == UINTPTR_MAX); verify_same_types (UINTPTR_MAX, (uintptr_t) 0 + 0); #if INTPTR_MIN && INTPTR_MAX && UINTPTR_MAX /* ok */ #else err or; #endif /* 7.18.1.5. Greatest-width integer types */ /* 7.18.2.5. Limits of greatest-width integer types */ intmax_t i[3] = { INTMAX_C (17), INTMAX_MIN, INTMAX_MAX }; verify (TYPE_MINIMUM (intmax_t) == INTMAX_MIN); verify (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX); verify_same_types (INTMAX_MIN, (intmax_t) 0 + 0); verify_same_types (INTMAX_MAX, (intmax_t) 0 + 0); uintmax_t j[2] = { UINTMAX_C (17), UINTMAX_MAX }; verify (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX); verify_same_types (UINTMAX_MAX, (uintmax_t) 0 + 0); /* As of 2007, Sun C and HP-UX 10.20 cc don't support 'long long' constants in the preprocessor. */ #if !(defined __SUNPRO_C || (defined __hpux && !defined __GNUC__)) #if INTMAX_MIN && INTMAX_MAX && UINTMAX_MAX /* ok */ #else err or; #endif #endif /* 7.18.3. Limits of other integer types */ #include verify (TYPE_MINIMUM (ptrdiff_t) == PTRDIFF_MIN); verify (TYPE_MAXIMUM (ptrdiff_t) == PTRDIFF_MAX); verify_same_types (PTRDIFF_MIN, (ptrdiff_t) 0 + 0); verify_same_types (PTRDIFF_MAX, (ptrdiff_t) 0 + 0); #if PTRDIFF_MIN && PTRDIFF_MAX /* ok */ #else err or; #endif #include verify (TYPE_MINIMUM (sig_atomic_t) == SIG_ATOMIC_MIN); verify (TYPE_MAXIMUM (sig_atomic_t) == SIG_ATOMIC_MAX); verify_same_types (SIG_ATOMIC_MIN, (sig_atomic_t) 0 + 0); verify_same_types (SIG_ATOMIC_MAX, (sig_atomic_t) 0 + 0); #if SIG_ATOMIC_MIN != 17 && SIG_ATOMIC_MAX /* ok */ #else err or; #endif verify (TYPE_MAXIMUM (size_t) == SIZE_MAX); verify_same_types (SIZE_MAX, (size_t) 0 + 0); #if SIZE_MAX /* ok */ #else err or; #endif #if HAVE_WCHAR_T verify (TYPE_MINIMUM (wchar_t) == WCHAR_MIN); verify (TYPE_MAXIMUM (wchar_t) == WCHAR_MAX); verify_same_types (WCHAR_MIN, (wchar_t) 0 + 0); verify_same_types (WCHAR_MAX, (wchar_t) 0 + 0); # if WCHAR_MIN != 17 && WCHAR_MAX /* ok */ # else err or; # endif #endif #if HAVE_WINT_T # include verify (TYPE_MINIMUM (wint_t) == WINT_MIN); verify (TYPE_MAXIMUM (wint_t) == WINT_MAX); verify_same_types (WINT_MIN, (wint_t) 0 + 0); verify_same_types (WINT_MAX, (wint_t) 0 + 0); # if WINT_MIN != 17 && WINT_MAX /* ok */ # else err or; # endif #endif /* 7.18.4. Macros for integer constants */ verify (INT8_C (17) == 17); verify_same_types (INT8_C (17), (int_least8_t)0 + 0); verify (UINT8_C (17) == 17); verify_same_types (UINT8_C (17), (uint_least8_t)0 + 0); verify (INT16_C (17) == 17); verify_same_types (INT16_C (17), (int_least16_t)0 + 0); verify (UINT16_C (17) == 17); verify_same_types (UINT16_C (17), (uint_least16_t)0 + 0); verify (INT32_C (17) == 17); verify_same_types (INT32_C (17), (int_least32_t)0 + 0); verify (UINT32_C (17) == 17); verify_same_types (UINT32_C (17), (uint_least32_t)0 + 0); #ifdef INT64_C verify (INT64_C (17) == 17); verify_same_types (INT64_C (17), (int_least64_t)0 + 0); #endif #ifdef UINT64_C verify (UINT64_C (17) == 17); verify_same_types (UINT64_C (17), (uint_least64_t)0 + 0); #endif verify (INTMAX_C (17) == 17); verify_same_types (INTMAX_C (17), (intmax_t)0 + 0); verify (UINTMAX_C (17) == 17); verify_same_types (UINTMAX_C (17), (uintmax_t)0 + 0); /* Use _GL_VERIFY (with a fixed-length diagnostic string) rather than verify, because the latter would require forming each stringified expression, and many of these would be so long as to trigger a warning/error like this: test-stdint.c:407:1: error: string length '6980' is greater than the \ length '4095' ISO C99 compilers are required to support \ [-Werror=overlength-strings] */ #define verify_width(width, min, max) \ _GL_VERIFY ((max) >> ((width) - 1 - ((min) < 0)) == 1, \ "verify_width check") /* Macros specified by ISO/IEC TS 18661-1:2014. */ #ifdef INT8_MAX verify_width (INT8_WIDTH, INT8_MIN, INT8_MAX); #endif #ifdef UINT8_MAX verify_width (UINT8_WIDTH, 0, UINT8_MAX); #endif #ifdef INT16_MAX verify_width (INT16_WIDTH, INT16_MIN, INT16_MAX); #endif #ifdef UINT16_MAX verify_width (UINT16_WIDTH, 0, UINT16_MAX); #endif #ifdef INT32_MAX verify_width (INT32_WIDTH, INT32_MIN, INT32_MAX); #endif #ifdef UINT32_MAX verify_width (UINT32_WIDTH, 0, UINT32_MAX); #endif #ifdef INT64_MAX verify_width (INT64_WIDTH, INT64_MIN, INT64_MAX); #endif #ifdef UINT64_MAX verify_width (UINT64_WIDTH, 0, UINT64_MAX); #endif verify_width (INT_LEAST8_WIDTH, INT_LEAST8_MIN, INT_LEAST8_MAX); verify_width (UINT_LEAST8_WIDTH, 0, UINT_LEAST8_MAX); verify_width (INT_LEAST16_WIDTH, INT_LEAST16_MIN, INT_LEAST16_MAX); verify_width (UINT_LEAST16_WIDTH, 0, UINT_LEAST16_MAX); verify_width (INT_LEAST32_WIDTH, INT_LEAST32_MIN, INT_LEAST32_MAX); verify_width (UINT_LEAST32_WIDTH, 0, UINT_LEAST32_MAX); verify_width (INT_LEAST64_WIDTH, INT_LEAST64_MIN, INT_LEAST64_MAX); verify_width (UINT_LEAST64_WIDTH, 0, UINT_LEAST64_MAX); verify_width (INT_FAST8_WIDTH, INT_FAST8_MIN, INT_FAST8_MAX); verify_width (UINT_FAST8_WIDTH, 0, UINT_FAST8_MAX); verify_width (INT_FAST16_WIDTH, INT_FAST16_MIN, INT_FAST16_MAX); verify_width (UINT_FAST16_WIDTH, 0, UINT_FAST16_MAX); verify_width (INT_FAST32_WIDTH, INT_FAST32_MIN, INT_FAST32_MAX); verify_width (UINT_FAST32_WIDTH, 0, UINT_FAST32_MAX); verify_width (INT_FAST64_WIDTH, INT_FAST64_MIN, INT_FAST64_MAX); verify_width (UINT_FAST64_WIDTH, 0, UINT_FAST64_MAX); verify_width (INTPTR_WIDTH, INTPTR_MIN, INTPTR_MAX); verify_width (UINTPTR_WIDTH, 0, UINTPTR_MAX); verify_width (INTMAX_WIDTH, INTMAX_MIN, INTMAX_MAX); verify_width (UINTMAX_WIDTH, 0, UINTMAX_MAX); verify_width (PTRDIFF_WIDTH, PTRDIFF_MIN, PTRDIFF_MAX); verify_width (SIZE_WIDTH, 0, SIZE_MAX); verify_width (WCHAR_WIDTH, WCHAR_MIN, WCHAR_MAX); #ifdef WINT_MAX verify_width (WINT_WIDTH, WINT_MIN, WINT_MAX); #endif #ifdef SIG_ATOMIC_MAX verify_width (SIG_ATOMIC_WIDTH, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX); #endif int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-stdio.c0000644000000000000000000000011013726163410022410 xustar000000000000000024 mtime=1599661832.643 24 atime=1599661832.769 24 ctime=1599661999.482 libprelude-5.2.0/libmissing/tests/test-stdio.c0000644000000000000000000000232313726163410021413 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "verify.h" /* Check that the various SEEK_* macros are defined. */ int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET }; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); /* Check that the types are all defined. */ fpos_t t1; off_t t2; size_t t3; ssize_t t4; va_list t5; int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-stdlib.c0000644000000000000000000000011013726163410022547 xustar000000000000000024 mtime=1599661832.643 24 atime=1599661832.769 24 ctime=1599661999.484 libprelude-5.2.0/libmissing/tests/test-stdlib.c0000644000000000000000000000262513726163410021557 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "verify.h" /* Check that EXIT_SUCCESS is 0, per POSIX. */ static int exitcode = EXIT_SUCCESS; #if EXIT_SUCCESS "oops" #endif /* Check for GNU value (not guaranteed by POSIX, but is guaranteed by gnulib). */ #if EXIT_FAILURE != 1 "oops" #endif /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); #if GNULIB_TEST_SYSTEM_POSIX # include "test-sys_wait.h" #else # define test_sys_wait_macros() 0 #endif int main (void) { if (test_sys_wait_macros ()) return 1; return exitcode; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-strcasestr.c0000644000000000000000000000011013726163410023463 xustar000000000000000024 mtime=1599661832.643 24 atime=1599661832.769 24 ctime=1599661999.486 libprelude-5.2.0/libmissing/tests/test-strcasestr.c0000644000000000000000000001674013726163410022476 0ustar00rootroot00000000000000/* Test of case-insensitive searching in a string. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "signature.h" SIGNATURE_CHECK (strcasestr, char *, (char const *, char const *)); #include #include #include #include "macros.h" int main () { #if HAVE_DECL_ALARM /* Declare failure if test takes too long, by using default abort caused by SIGALRM. All known platforms that lack alarm also lack strcasestr, and the replacement strcasestr is known to not take too long. */ int alarm_value = 50; signal (SIGALRM, SIG_DFL); alarm (alarm_value); #endif { const char input[] = "foo"; const char *result = strcasestr (input, ""); ASSERT (result == input); } { const char input[] = "foo"; const char *result = strcasestr (input, "O"); ASSERT (result == input + 1); } { const char input[] = "ABC ABCDAB ABCDABCDABDE"; const char *result = strcasestr (input, "ABCDaBD"); ASSERT (result == input + 15); } { const char input[] = "ABC ABCDAB ABCDABCDABDE"; const char *result = strcasestr (input, "ABCDaBE"); ASSERT (result == NULL); } { const char input[] = "ABC ABCDAB ABCDABCDABDE"; const char *result = strcasestr (input, "ABCDaBCD"); ASSERT (result == input + 11); } /* Check that a long periodic needle does not cause false positives. */ { const char input[] = ("F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD" "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD" "_C3_A7_20_EF_BF_BD"); const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"; const char *result = strcasestr (input, need); ASSERT (result == NULL); } { const char input[] = ("F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD" "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD" "_C3_A7_20_EF_BF_BD_DA_B5_C2_A6_20" "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"); const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"; const char *result = strcasestr (input, need); ASSERT (result == input + 115); } /* Check that a very long haystack is handled quickly if the needle is short and occurs near the beginning. */ { size_t repeat = 10000; size_t m = 1000000; const char *needle = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaaaAAAAaaaaaaa" "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; char *haystack = (char *) malloc (m + 1); if (haystack != NULL) { memset (haystack, 'A', m); haystack[0] = 'B'; haystack[m] = '\0'; for (; repeat > 0; repeat--) { ASSERT (strcasestr (haystack, needle) == haystack + 1); } free (haystack); } } /* Check that a very long needle is discarded quickly if the haystack is short. */ { size_t repeat = 10000; size_t m = 1000000; const char *haystack = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" "ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB"; char *needle = (char *) malloc (m + 1); if (needle != NULL) { memset (needle, 'A', m); needle[m] = '\0'; for (; repeat > 0; repeat--) { ASSERT (strcasestr (haystack, needle) == NULL); } free (needle); } } /* Check that the asymptotic worst-case complexity is not quadratic. */ { size_t m = 1000000; char *haystack = (char *) malloc (2 * m + 2); char *needle = (char *) malloc (m + 2); if (haystack != NULL && needle != NULL) { const char *result; memset (haystack, 'A', 2 * m); haystack[2 * m] = 'B'; haystack[2 * m + 1] = '\0'; memset (needle, 'a', m); needle[m] = 'B'; needle[m + 1] = '\0'; result = strcasestr (haystack, needle); ASSERT (result == haystack + m); } free (needle); free (haystack); } { /* Ensure that with a barely periodic "short" needle, strcasestr's search does not mistakenly skip just past the match point. This use of strcasestr would mistakenly return NULL before gnulib v0.0-4927. */ const char *haystack = "\n" "with_build_libsubdir\n" "with_local_prefix\n" "with_gxx_include_dir\n" "with_cpp_install_dir\n" "enable_generated_files_in_srcdir\n" "with_gnu_ld\n" "with_ld\n" "with_demangler_in_ld\n" "with_gnu_as\n" "with_as\n" "enable_largefile\n" "enable_werror_always\n" "enable_checking\n" "enable_coverage\n" "enable_gather_detailed_mem_stats\n" "enable_build_with_cxx\n" "with_stabs\n" "enable_multilib\n" "enable___cxa_atexit\n" "enable_decimal_float\n" "enable_fixed_point\n" "enable_threads\n" "enable_tls\n" "enable_objc_gc\n" "with_dwarf2\n" "enable_shared\n" "with_build_sysroot\n" "with_sysroot\n" "with_specs\n" "with_pkgversion\n" "with_bugurl\n" "enable_languages\n" "with_multilib_list\n"; const char *needle = "\n" "with_GNU_ld\n"; const char* p = strcasestr (haystack, needle); ASSERT (p - haystack == 114); } { /* Same bug, shorter trigger. */ const char *haystack = "..wi.D."; const char *needle = ".d."; const char* p = strcasestr (haystack, needle); ASSERT (p - haystack == 4); } { /* Like the above, but trigger the flaw in two_way_long_needle by using a needle of length LONG_NEEDLE_THRESHOLD (32) or greater. Rather than trying to find the right alignment manually, I've arbitrarily chosen the following needle and template for the haystack, and ensure that for each placement of the needle in that haystack, strcasestr finds it. */ const char *needle = "\nwith_gnu_ld-extend-to-len-32-b\n"; const char *h = "\n" "with_build_libsubdir\n" "with_local_prefix\n" "with_gxx_include_dir\n" "with_cpp_install_dir\n" "with_e_\n" "..............................\n" "with_FGHIJKLMNOPQRSTUVWXYZ\n" "with_567890123456789\n" "with_multilib_list\n"; size_t h_len = strlen (h); char *haystack = malloc (h_len + 1); size_t i; ASSERT (haystack); for (i = 0; i < h_len - strlen (needle); i++) { const char *p; memcpy (haystack, h, h_len + 1); memcpy (haystack + i, needle, strlen (needle) + 1); p = strcasestr (haystack, needle); ASSERT (p); ASSERT (p - haystack == i); } } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-strerror.c0000644000000000000000000000011013726163410023150 xustar000000000000000024 mtime=1599661832.644 24 atime=1599661832.769 24 ctime=1599661999.487 libprelude-5.2.0/libmissing/tests/test-strerror.c0000644000000000000000000000371013726163410022154 0ustar00rootroot00000000000000/* Test of strerror() function. Copyright (C) 2007-2018 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 3, 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, see . */ /* Written by Eric Blake , 2007. */ #include #include #include "signature.h" SIGNATURE_CHECK (strerror, char *, (int)); #include #include "macros.h" int main (void) { char *str; errno = 0; str = strerror (EACCES); ASSERT (str); ASSERT (*str); ASSERT (errno == 0); errno = 0; str = strerror (ETIMEDOUT); ASSERT (str); ASSERT (*str); ASSERT (errno == 0); errno = 0; str = strerror (EOVERFLOW); ASSERT (str); ASSERT (*str); ASSERT (errno == 0); /* POSIX requires strerror (0) to succeed. Reject use of "Unknown error", but allow "Success", "No error", or even Solaris' "Error 0" which are distinct patterns from true out-of-range strings. http://austingroupbugs.net/view.php?id=382 */ errno = 0; str = strerror (0); ASSERT (str); ASSERT (*str); ASSERT (errno == 0); ASSERT (strstr (str, "nknown") == NULL); ASSERT (strstr (str, "ndefined") == NULL); /* POSIX requires strerror to produce a non-NULL result for all inputs; as an extension, we also guarantee a non-empty result. Reporting EINVAL is optional. */ errno = 0; str = strerror (-3); ASSERT (str); ASSERT (*str); ASSERT (errno == 0 || errno == EINVAL); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-strerror_r.c0000644000000000000000000000011013726163410023471 xustar000000000000000024 mtime=1599661832.644 24 atime=1599661832.769 24 ctime=1599661999.489 libprelude-5.2.0/libmissing/tests/test-strerror_r.c0000644000000000000000000001172713726163410022504 0ustar00rootroot00000000000000/* Test of strerror_r() function. Copyright (C) 2007-2018 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 3, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (strerror_r, int, (int, char *, size_t)); #include #include "macros.h" int main (void) { char buf[100]; int ret; /* Test results with valid errnum and enough room. */ errno = 0; buf[0] = '\0'; ASSERT (strerror_r (EACCES, buf, sizeof buf) == 0); ASSERT (buf[0] != '\0'); ASSERT (errno == 0); ASSERT (strlen (buf) < sizeof buf); errno = 0; buf[0] = '\0'; ASSERT (strerror_r (ETIMEDOUT, buf, sizeof buf) == 0); ASSERT (buf[0] != '\0'); ASSERT (errno == 0); ASSERT (strlen (buf) < sizeof buf); errno = 0; buf[0] = '\0'; ASSERT (strerror_r (EOVERFLOW, buf, sizeof buf) == 0); ASSERT (buf[0] != '\0'); ASSERT (errno == 0); ASSERT (strlen (buf) < sizeof buf); /* POSIX requires strerror (0) to succeed. Reject use of "Unknown error", but allow "Success", "No error", or even Solaris' "Error 0" which are distinct patterns from true out-of-range strings. http://austingroupbugs.net/view.php?id=382 */ errno = 0; buf[0] = '\0'; ret = strerror_r (0, buf, sizeof buf); ASSERT (ret == 0); ASSERT (buf[0]); ASSERT (errno == 0); ASSERT (strstr (buf, "nknown") == NULL); ASSERT (strstr (buf, "ndefined") == NULL); /* Test results with out-of-range errnum and enough room. POSIX allows an empty string on success, and allows an unchanged buf on error, but these are not useful, so we guarantee contents. */ errno = 0; buf[0] = '^'; ret = strerror_r (-3, buf, sizeof buf); ASSERT (ret == 0 || ret == EINVAL); ASSERT (buf[0] != '^'); ASSERT (*buf); ASSERT (errno == 0); ASSERT (strlen (buf) < sizeof buf); /* Test results with a too small buffer. POSIX requires an error; only ERANGE for 0 and valid errors, and a choice of ERANGE or EINVAL for out-of-range values. On error, POSIX permits buf to be empty, unchanged, or unterminated, but these are not useful, so we guarantee NUL-terminated truncated contents for all but size 0. http://austingroupbugs.net/view.php?id=398. Also ensure that no out-of-bounds writes occur. */ { int errs[] = { EACCES, 0, -3, }; int j; buf[sizeof buf - 1] = '\0'; for (j = 0; j < SIZEOF (errs); j++) { int err = errs[j]; char buf2[sizeof buf] = ""; size_t len; size_t i; strerror_r (err, buf2, sizeof buf2); len = strlen (buf2); ASSERT (len < sizeof buf); for (i = 0; i <= len; i++) { memset (buf, '^', sizeof buf - 1); errno = 0; ret = strerror_r (err, buf, i); ASSERT (errno == 0); if (j == 2) ASSERT (ret == ERANGE || ret == EINVAL); else ASSERT (ret == ERANGE); if (i) { ASSERT (strncmp (buf, buf2, i - 1) == 0); ASSERT (buf[i - 1] == '\0'); } ASSERT (strspn (buf + i, "^") == sizeof buf - 1 - i); } strcpy (buf, "BADFACE"); errno = 0; ret = strerror_r (err, buf, len + 1); ASSERT (ret != ERANGE); ASSERT (errno == 0); ASSERT (strcmp (buf, buf2) == 0); } } #if GNULIB_STRERROR /* Test that strerror_r does not clobber strerror buffer. On some platforms, this test can only succeed if gnulib also replaces strerror. */ { const char *msg1; const char *msg2; const char *msg3; const char *msg4; char *str1; char *str2; char *str3; char *str4; msg1 = strerror (ENOENT); ASSERT (msg1); str1 = strdup (msg1); ASSERT (str1); msg2 = strerror (ERANGE); ASSERT (msg2); str2 = strdup (msg2); ASSERT (str2); msg3 = strerror (-4); ASSERT (msg3); str3 = strdup (msg3); ASSERT (str3); msg4 = strerror (1729576); ASSERT (msg4); str4 = strdup (msg4); ASSERT (str4); strerror_r (EACCES, buf, sizeof buf); strerror_r (-5, buf, sizeof buf); ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1)); ASSERT (msg2 == msg4 || STREQ (msg2, str2)); ASSERT (msg3 == msg4 || STREQ (msg3, str3)); ASSERT (STREQ (msg4, str4)); free (str1); free (str2); free (str3); free (str4); } #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/nap.h0000644000000000000000000000011013726163410021074 xustar000000000000000024 mtime=1599661832.615 24 atime=1599661832.763 24 ctime=1599661999.655 libprelude-5.2.0/libmissing/tests/nap.h0000644000000000000000000001022213726163410020074 0ustar00rootroot00000000000000/* Assist in file system timestamp tests. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #ifndef GLTEST_NAP_H # define GLTEST_NAP_H # include # include # include /* Name of the witness file. */ #define TEMPFILE BASE "nap.tmp" /* File descriptor used for the witness file. */ static int nap_fd = -1; /* Return A - B, in ns. Return 0 if the true result would be negative. Return INT_MAX if the true result would be greater than INT_MAX. */ static int diff_timespec (struct timespec a, struct timespec b) { time_t as = a.tv_sec; time_t bs = b.tv_sec; int ans = a.tv_nsec; int bns = b.tv_nsec; int sdiff; ASSERT (0 <= ans && ans < 2000000000); ASSERT (0 <= bns && bns < 2000000000); if (! (bs < as || (bs == as && bns < ans))) return 0; if (INT_SUBTRACT_WRAPV (as, bs, &sdiff) || INT_MULTIPLY_WRAPV (sdiff, 1000000000, &sdiff) || INT_ADD_WRAPV (sdiff, ans - bns, &sdiff)) return INT_MAX; return sdiff; } /* If DO_WRITE, bump the modification time of the file designated by NAP_FD. Then fetch the new STAT information of NAP_FD. */ static void nap_get_stat (struct stat *st, int do_write) { if (do_write) { ASSERT (write (nap_fd, "\n", 1) == 1); #if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows, the modification times are not changed until NAP_FD is closed. See https://msdn.microsoft.com/en-us/library/windows/desktop/aa365747(v=vs.85).aspx */ close (nap_fd); nap_fd = open (TEMPFILE, O_RDWR, 0600); ASSERT (nap_fd != -1); lseek (nap_fd, 0, SEEK_END); #endif } ASSERT (fstat (nap_fd, st) == 0); } /* Given a file whose descriptor is FD, see whether delaying by DELAY nanoseconds causes a change in a file's mtime. OLD_ST is the file's status, recently gotten. */ static bool nap_works (int delay, struct stat old_st) { struct stat st; struct timespec delay_spec; delay_spec.tv_sec = delay / 1000000000; delay_spec.tv_nsec = delay % 1000000000; ASSERT (nanosleep (&delay_spec, 0) == 0); nap_get_stat (&st, 1); if (diff_timespec (get_stat_mtime (&st), get_stat_mtime (&old_st))) return true; return false; } static void clear_temp_file (void) { if (0 <= nap_fd) { ASSERT (close (nap_fd) != -1); ASSERT (unlink (TEMPFILE) != -1); } } /* Sleep long enough to notice a timestamp difference on the file system in the current directory. Use an adaptive approach, trying to find the smallest delay which works on the current file system to make the timestamp difference appear. Assert a maximum delay of ~2 seconds, more precisely sum(2^n) from 0 to 30 = 2^31 - 1 = 2.1s. Assumes that BASE is defined, and requires that the test module depends on nanosleep. */ static void nap (void) { struct stat old_st; static int delay = 1; if (-1 == nap_fd) { atexit (clear_temp_file); ASSERT ((nap_fd = creat (TEMPFILE, 0600)) != -1); nap_get_stat (&old_st, 0); } else { ASSERT (0 <= nap_fd); nap_get_stat (&old_st, 1); } if (1 < delay) delay = delay / 2; /* Try half of the previous delay. */ ASSERT (0 < delay); for (;;) { if (nap_works (delay, old_st)) return; if (delay <= (2147483647 - 1) / 2) { delay = delay * 2 + 1; continue; } else break; } /* Bummer: even the highest nap delay didn't work. */ ASSERT (0); } #endif /* GLTEST_NAP_H */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-string.c0000644000000000000000000000011013726163410022574 xustar000000000000000024 mtime=1599661832.644 24 atime=1599661832.769 24 ctime=1599661999.491 libprelude-5.2.0/libmissing/tests/test-string.c0000644000000000000000000000201013726163410021570 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "verify.h" /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-strings.c0000644000000000000000000000011013726163410022757 xustar000000000000000024 mtime=1599661832.644 24 atime=1599661832.769 24 ctime=1599661999.492 libprelude-5.2.0/libmissing/tests/test-strings.c0000644000000000000000000000155413726163410021767 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include int main () { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-strnlen.c0000644000000000000000000000011013726163410022753 xustar000000000000000024 mtime=1599661832.644 24 atime=1599661832.769 24 ctime=1599661999.494 libprelude-5.2.0/libmissing/tests/test-strnlen.c0000644000000000000000000000336213726163410021762 0ustar00rootroot00000000000000/* * Copyright (C) 2010-2018 Free Software Foundation, Inc. * Written by Eric Blake * * 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (strnlen, size_t, (char const *, size_t)); #include #include "zerosize-ptr.h" #include "macros.h" int main (void) { size_t i; char *page_boundary = (char *) zerosize_ptr (); if (!page_boundary) { page_boundary = malloc (0x1000); ASSERT (page_boundary); page_boundary += 0x1000; } /* Basic behavior tests. */ ASSERT (strnlen ("a", 0) == 0); ASSERT (strnlen ("a", 1) == 1); ASSERT (strnlen ("a", 2) == 1); ASSERT (strnlen ("", 0x100000) == 0); /* Memory fence and alignment testing. */ for (i = 0; i < 512; i++) { char *start = page_boundary - i; size_t j = i; memset (start, 'x', i); do { if (i != j) { start[j] = 0; ASSERT (strnlen (start, i + j) == j); } ASSERT (strnlen (start, i) == j); ASSERT (strnlen (start, j) == j); } while (j--); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-symlink.c0000644000000000000000000000011013726163410022754 xustar000000000000000024 mtime=1599661832.645 24 atime=1599661832.769 24 ctime=1599661999.496 libprelude-5.2.0/libmissing/tests/test-symlink.c0000644000000000000000000000242313726163410021760 0ustar00rootroot00000000000000/* Tests of symlink. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (symlink, int, (char const *, char const *)); #include #include #include #include #include #include #include "ignore-value.h" #include "macros.h" #define BASE "test-symlink.t" #include "test-symlink.h" int main (void) { /* Remove any leftovers from a previous partial run. */ ignore_value (system ("rm -rf " BASE "*")); return test_symlink (symlink, true); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sys_ioctl.c0000644000000000000000000000011013726163410023276 xustar000000000000000024 mtime=1599661832.645 24 atime=1599661832.769 24 ctime=1599661999.497 libprelude-5.2.0/libmissing/tests/test-sys_ioctl.c0000644000000000000000000000155113726163410022303 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include #include int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sys_select.c0000644000000000000000000000011013726163410023443 xustar000000000000000024 mtime=1599661832.645 24 atime=1599661832.769 24 ctime=1599661999.499 libprelude-5.2.0/libmissing/tests/test-sys_select.c0000644000000000000000000000336213726163410022452 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "signature.h" /* The following may be macros without underlying functions, so only check signature if they are not macros. */ #ifndef FD_CLR SIGNATURE_CHECK (FD_CLR, void, (int, fd_set *)); #endif #ifndef FD_ISSET SIGNATURE_CHECK (FD_ISSET, void, (int, fd_set *)); #endif #ifndef FD_SET SIGNATURE_CHECK (FD_SET, int, (int, fd_set *)); #endif #ifndef FD_ZERO SIGNATURE_CHECK (FD_ZERO, void, (fd_set *)); #endif /* Check that the 'struct timeval' type is defined. */ struct timeval a; /* Check that a.tv_sec is wide enough to hold a time_t, ignoring signedness issues. */ typedef int verify_tv_sec_type[sizeof (time_t) <= sizeof (a.tv_sec) ? 1 : -1]; /* Check that sigset_t is defined. */ sigset_t t2; int main (void) { /* Check that FD_ZERO can be used. This should not yield a warning such as "warning: implicit declaration of function 'memset'". */ fd_set fds; FD_ZERO (&fds); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sys_socket.c0000644000000000000000000000011013726163410023454 xustar000000000000000024 mtime=1599661832.645 24 atime=1599661832.769 24 ctime=1599661999.501 libprelude-5.2.0/libmissing/tests/test-sys_socket.c0000644000000000000000000000330113726163410022454 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include #if HAVE_SHUTDOWN /* Check some integer constant expressions. */ int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR }; #endif /* Check that the 'socklen_t' type is defined. */ socklen_t t1; /* Check that the 'size_t' and 'ssize_t' types are defined. */ size_t t2; ssize_t t3; /* Check that 'struct iovec' is defined. */ struct iovec io; /* Check that a minimal set of 'struct msghdr' is defined. */ struct msghdr msg; int main (void) { struct sockaddr_storage x; sa_family_t i; /* Check some errno values. */ switch (ENOTSOCK) { case ENOTSOCK: case EADDRINUSE: case ENETRESET: case ECONNABORTED: case ECONNRESET: case ENOTCONN: case ESHUTDOWN: break; } x.ss_family = 42; i = 42; msg.msg_iov = &io; return (x.ss_family - i + msg.msg_namelen + msg.msg_iov->iov_len + msg.msg_iovlen); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sys_stat.c0000644000000000000000000000011013726163410023137 xustar000000000000000024 mtime=1599661832.645 24 atime=1599661832.769 24 ctime=1599661999.503 libprelude-5.2.0/libmissing/tests/test-sys_stat.c0000644000000000000000000001626613726163410022155 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "verify.h" /* Check the existence of some macros. */ int a[] = { S_IFMT, #ifdef S_IFBLK /* missing on MSVC */ S_IFBLK, #endif S_IFCHR, S_IFDIR, S_IFIFO, S_IFREG, #ifdef S_IFLNK /* missing on native Windows and DJGPP */ S_IFLNK, #endif #ifdef S_IFSOCK /* missing on native Windows and DJGPP */ S_IFSOCK, #endif S_IRWXU, S_IRUSR, S_IWUSR, S_IXUSR, S_IRWXG, S_IRGRP, S_IWGRP, S_IXGRP, S_IRWXO, S_IROTH, S_IWOTH, S_IXOTH, S_ISUID, S_ISGID, S_ISVTX, S_ISBLK (S_IFREG), S_ISCHR (S_IFREG), S_ISDIR (S_IFREG), S_ISFIFO (S_IFREG), S_ISREG (S_IFREG), S_ISLNK (S_IFREG), S_ISSOCK (S_IFREG), S_ISDOOR (S_IFREG), S_ISMPB (S_IFREG), S_ISMPX (S_IFREG), S_ISNAM (S_IFREG), S_ISNWK (S_IFREG), S_ISPORT (S_IFREG), S_ISCTG (S_IFREG), S_ISOFD (S_IFREG), S_ISOFL (S_IFREG), S_ISWHT (S_IFREG) }; /* Sanity checks. */ verify (S_IRWXU == (S_IRUSR | S_IWUSR | S_IXUSR)); verify (S_IRWXG == (S_IRGRP | S_IWGRP | S_IXGRP)); verify (S_IRWXO == (S_IROTH | S_IWOTH | S_IXOTH)); #ifdef S_IFBLK verify (S_ISBLK (S_IFBLK)); #endif verify (!S_ISBLK (S_IFCHR)); verify (!S_ISBLK (S_IFDIR)); verify (!S_ISBLK (S_IFIFO)); verify (!S_ISBLK (S_IFREG)); #ifdef S_IFLNK verify (!S_ISBLK (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISBLK (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISCHR (S_IFBLK)); #endif verify (S_ISCHR (S_IFCHR)); verify (!S_ISCHR (S_IFDIR)); verify (!S_ISCHR (S_IFIFO)); verify (!S_ISCHR (S_IFREG)); #ifdef S_IFLNK verify (!S_ISCHR (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISCHR (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISDIR (S_IFBLK)); #endif verify (!S_ISDIR (S_IFCHR)); verify (S_ISDIR (S_IFDIR)); verify (!S_ISDIR (S_IFIFO)); verify (!S_ISDIR (S_IFREG)); #ifdef S_IFLNK verify (!S_ISDIR (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISDIR (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISFIFO (S_IFBLK)); #endif verify (!S_ISFIFO (S_IFCHR)); verify (!S_ISFIFO (S_IFDIR)); verify (S_ISFIFO (S_IFIFO)); verify (!S_ISFIFO (S_IFREG)); #ifdef S_IFLNK verify (!S_ISFIFO (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISFIFO (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISREG (S_IFBLK)); #endif verify (!S_ISREG (S_IFCHR)); verify (!S_ISREG (S_IFDIR)); verify (!S_ISREG (S_IFIFO)); verify (S_ISREG (S_IFREG)); #ifdef S_IFLNK verify (!S_ISREG (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISREG (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISLNK (S_IFBLK)); #endif verify (!S_ISLNK (S_IFCHR)); verify (!S_ISLNK (S_IFDIR)); verify (!S_ISLNK (S_IFIFO)); verify (!S_ISLNK (S_IFREG)); #ifdef S_IFLNK verify (S_ISLNK (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISLNK (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISSOCK (S_IFBLK)); #endif verify (!S_ISSOCK (S_IFCHR)); verify (!S_ISSOCK (S_IFDIR)); verify (!S_ISSOCK (S_IFIFO)); verify (!S_ISSOCK (S_IFREG)); #ifdef S_IFLNK verify (!S_ISSOCK (S_IFLNK)); #endif #ifdef S_IFSOCK verify (S_ISSOCK (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISDOOR (S_IFBLK)); #endif verify (!S_ISDOOR (S_IFCHR)); verify (!S_ISDOOR (S_IFDIR)); verify (!S_ISDOOR (S_IFIFO)); verify (!S_ISDOOR (S_IFREG)); #ifdef S_IFLNK verify (!S_ISDOOR (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISDOOR (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISMPB (S_IFBLK)); #endif verify (!S_ISMPB (S_IFCHR)); verify (!S_ISMPB (S_IFDIR)); verify (!S_ISMPB (S_IFIFO)); verify (!S_ISMPB (S_IFREG)); #ifdef S_IFLNK verify (!S_ISMPB (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISMPB (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISMPX (S_IFBLK)); #endif verify (!S_ISMPX (S_IFCHR)); verify (!S_ISMPX (S_IFDIR)); verify (!S_ISMPX (S_IFIFO)); verify (!S_ISMPX (S_IFREG)); #ifdef S_IFLNK verify (!S_ISMPX (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISMPX (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISNAM (S_IFBLK)); #endif verify (!S_ISNAM (S_IFCHR)); verify (!S_ISNAM (S_IFDIR)); verify (!S_ISNAM (S_IFIFO)); verify (!S_ISNAM (S_IFREG)); #ifdef S_IFLNK verify (!S_ISNAM (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISNAM (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISNWK (S_IFBLK)); #endif verify (!S_ISNWK (S_IFCHR)); verify (!S_ISNWK (S_IFDIR)); verify (!S_ISNWK (S_IFIFO)); verify (!S_ISNWK (S_IFREG)); #ifdef S_IFLNK verify (!S_ISNWK (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISNWK (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISPORT (S_IFBLK)); #endif verify (!S_ISPORT (S_IFCHR)); verify (!S_ISPORT (S_IFDIR)); verify (!S_ISPORT (S_IFIFO)); verify (!S_ISPORT (S_IFREG)); #ifdef S_IFLNK verify (!S_ISPORT (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISPORT (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISCTG (S_IFBLK)); #endif verify (!S_ISCTG (S_IFCHR)); verify (!S_ISCTG (S_IFDIR)); verify (!S_ISCTG (S_IFIFO)); verify (!S_ISCTG (S_IFREG)); #ifdef S_IFLNK verify (!S_ISCTG (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISCTG (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISOFD (S_IFBLK)); #endif verify (!S_ISOFD (S_IFCHR)); verify (!S_ISOFD (S_IFDIR)); verify (!S_ISOFD (S_IFIFO)); verify (!S_ISOFD (S_IFREG)); #ifdef S_IFLNK verify (!S_ISOFD (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISOFD (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISOFL (S_IFBLK)); #endif verify (!S_ISOFL (S_IFCHR)); verify (!S_ISOFL (S_IFDIR)); verify (!S_ISOFL (S_IFIFO)); verify (!S_ISOFL (S_IFREG)); #ifdef S_IFLNK verify (!S_ISOFL (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISOFL (S_IFSOCK)); #endif #ifdef S_IFBLK verify (!S_ISWHT (S_IFBLK)); #endif verify (!S_ISWHT (S_IFCHR)); verify (!S_ISWHT (S_IFDIR)); verify (!S_ISWHT (S_IFIFO)); verify (!S_ISWHT (S_IFREG)); #ifdef S_IFLNK verify (!S_ISWHT (S_IFLNK)); #endif #ifdef S_IFSOCK verify (!S_ISWHT (S_IFSOCK)); #endif /* POSIX 2008 requires traditional encoding of permission constants. */ verify (S_IRWXU == 00700); verify (S_IRUSR == 00400); verify (S_IWUSR == 00200); verify (S_IXUSR == 00100); verify (S_IRWXG == 00070); verify (S_IRGRP == 00040); verify (S_IWGRP == 00020); verify (S_IXGRP == 00010); verify (S_IRWXO == 00007); verify (S_IROTH == 00004); verify (S_IWOTH == 00002); verify (S_IXOTH == 00001); verify (S_ISUID == 04000); verify (S_ISGID == 02000); verify (S_ISVTX == 01000); #if ((0 <= UTIME_NOW && UTIME_NOW < 1000000000) \ || (0 <= UTIME_OMIT && UTIME_OMIT < 1000000000) \ || UTIME_NOW == UTIME_OMIT) invalid UTIME macros #endif /* Check the existence of some types. */ nlink_t t1; off_t t2; mode_t t3; struct timespec st; int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sys_time.c0000644000000000000000000000011013726163410023122 xustar000000000000000024 mtime=1599661832.646 24 atime=1599661832.769 24 ctime=1599661999.504 libprelude-5.2.0/libmissing/tests/test-sys_time.c0000644000000000000000000000215013726163410022123 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include /* Check that the 'struct timeval' type is defined. */ struct timeval a; /* Check that a.tv_sec is wide enough to hold a time_t, ignoring signedness issues. */ typedef int verify_tv_sec_type[sizeof (time_t) <= sizeof (a.tv_sec) ? 1 : -1]; int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sys_types.c0000644000000000000000000000011013726163410023330 xustar000000000000000024 mtime=1599661832.646 24 atime=1599661832.769 24 ctime=1599661999.506 libprelude-5.2.0/libmissing/tests/test-sys_types.c0000644000000000000000000000172213726163410022335 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2011. */ #include #include /* Check that the types are all defined. */ pid_t t1; size_t t2; ssize_t t3; off_t t4; mode_t t5; int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sys_uio.c0000644000000000000000000000011013726163410022760 xustar000000000000000024 mtime=1599661832.646 24 atime=1599661832.769 24 ctime=1599661999.508 libprelude-5.2.0/libmissing/tests/test-sys_uio.c0000644000000000000000000000173613726163410021772 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2011. */ #include #include /* Check that necessary types are defined. */ size_t a; ssize_t b; struct iovec c; int main (void) { return a + b + !!c.iov_base + c.iov_len; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sys_utsname.c0000644000000000000000000000011013726163410023640 xustar000000000000000024 mtime=1599661832.646 24 atime=1599661832.769 24 ctime=1599661999.509 libprelude-5.2.0/libmissing/tests/test-sys_utsname.c0000644000000000000000000000211113726163410022636 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2009. */ #include #include #include int main () { struct utsname buf; strcpy (buf.sysname, "Linux"); strcpy (buf.nodename, "hobbybox"); strcpy (buf.release, "3.141.592"); strcpy (buf.version, "GENERIC"); strcpy (buf.machine, "i586"); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-thread_create.c0000644000000000000000000000010713726163410024066 xustar000000000000000024 mtime=1599661832.646 23 atime=1599661832.77 24 ctime=1599661999.511 libprelude-5.2.0/libmissing/tests/test-thread_create.c0000644000000000000000000000412413726163410023064 0ustar00rootroot00000000000000/* Test of gl_thread_create () macro. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2011. */ #include #include "glthread/thread.h" #include #include #include "macros.h" static gl_thread_t main_thread_before; static gl_thread_t main_thread_after; static gl_thread_t worker_thread; static int dummy; static volatile int work_done; static void * worker_thread_func (void *arg) { work_done = 1; return &dummy; } int main () { main_thread_before = gl_thread_self (); if (glthread_create (&worker_thread, worker_thread_func, NULL) == 0) { void *ret; /* Check that gl_thread_self () has the same value before than after the first call to gl_thread_create (). */ main_thread_after = gl_thread_self (); ASSERT (memcmp (&main_thread_before, &main_thread_after, sizeof (gl_thread_t)) == 0); gl_thread_join (worker_thread, &ret); /* Check the return value of the thread. */ ASSERT (ret == &dummy); /* Check that worker_thread_func () has finished executing. */ ASSERT (work_done); return 0; } else { #if USE_POSIX_THREADS || USE_SOLARIS_THREADS || USE_PTH_THREADS || USE_WINDOWS_THREADS fputs ("glthread_create failed\n", stderr); return 1; #else fputs ("Skipping test: multithreading not enabled\n", stderr); return 77; #endif } } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-thread_self.c0000644000000000000000000000010713726163410023554 xustar000000000000000024 mtime=1599661832.647 23 atime=1599661832.77 24 ctime=1599661999.513 libprelude-5.2.0/libmissing/tests/test-thread_self.c0000644000000000000000000000215113726163410022550 0ustar00rootroot00000000000000/* Test of gl_thread_self () macro. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2011. */ #include #include "glthread/thread.h" gl_thread_t main_thread; int main () { /* Check that gl_thread_self () can be used with just $(LIBTHREAD), not $(LIBMULTITHREAD), i.e. in libraries that are multithread-safe but don't create threads themselves. */ main_thread = gl_thread_self (); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-time.c0000644000000000000000000000010713726163410022232 xustar000000000000000024 mtime=1599661832.647 23 atime=1599661832.77 24 ctime=1599661999.514 libprelude-5.2.0/libmissing/tests/test-time.c0000644000000000000000000000236113726163410021231 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "verify.h" /* Check that the types are all defined. */ struct timespec t1; #if 0 /* POSIX:2008 does not require pid_t in unconditionally, and indeed it's missing on Mac OS X 10.5, FreeBSD 6.4, OpenBSD 4.9, mingw. */ pid_t t2; #endif /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-tls.c0000644000000000000000000000010713726163410022076 xustar000000000000000024 mtime=1599661832.647 23 atime=1599661832.77 24 ctime=1599661999.516 libprelude-5.2.0/libmissing/tests/test-tls.c0000644000000000000000000001274313726163410021102 0ustar00rootroot00000000000000/* Test of thread-local storage in multithreaded situations. Copyright (C) 2005, 2008-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2005. */ #include #if USE_POSIX_THREADS || USE_SOLARIS_THREADS || USE_PTH_THREADS || USE_WINDOWS_THREADS #if USE_POSIX_THREADS # define TEST_POSIX_THREADS 1 #endif #if USE_SOLARIS_THREADS # define TEST_SOLARIS_THREADS 1 #endif #if USE_PTH_THREADS # define TEST_PTH_THREADS 1 #endif #if USE_WINDOWS_THREADS # define TEST_WINDOWS_THREADS 1 #endif /* Whether to help the scheduler through explicit yield(). Uncomment this to see if the operating system has a fair scheduler. */ #define EXPLICIT_YIELD 1 /* Whether to print debugging messages. */ #define ENABLE_DEBUGGING 0 /* Number of simultaneous threads. */ #define THREAD_COUNT 16 /* Number of operations performed in each thread. */ #define REPEAT_COUNT 50000 #include #include #include #include "glthread/tls.h" #include "glthread/thread.h" #include "glthread/yield.h" #if ENABLE_DEBUGGING # define dbgprintf printf #else # define dbgprintf if (0) printf #endif #if EXPLICIT_YIELD # define yield() gl_thread_yield () #else # define yield() #endif static void perhaps_yield (void) { /* Call yield () only with a certain probability, otherwise with GNU Pth the sequence of thread activations is too predictable. */ if ((((unsigned int) rand () >> 3) % 4) == 0) yield (); } /* ----------------------- Test thread-local storage ----------------------- */ #define KEYS_COUNT 4 static gl_tls_key_t mykeys[KEYS_COUNT]; static void * worker_thread (void *arg) { unsigned int id = (unsigned int) (unsigned long) arg; int i, j, repeat; unsigned int values[KEYS_COUNT]; dbgprintf ("Worker %p started\n", gl_thread_self_pointer ()); /* Initialize the per-thread storage. */ for (i = 0; i < KEYS_COUNT; i++) { values[i] = (((unsigned int) rand () >> 3) % 1000000) * THREAD_COUNT + id; /* Hopefully no arithmetic overflow. */ if ((values[i] % THREAD_COUNT) != id) abort (); } perhaps_yield (); /* Verify that the initial value is NULL. */ dbgprintf ("Worker %p before initial verify\n", gl_thread_self_pointer ()); for (i = 0; i < KEYS_COUNT; i++) if (gl_tls_get (mykeys[i]) != NULL) abort (); dbgprintf ("Worker %p after initial verify\n", gl_thread_self_pointer ()); perhaps_yield (); /* Initialize the per-thread storage. */ dbgprintf ("Worker %p before first tls_set\n", gl_thread_self_pointer ()); for (i = 0; i < KEYS_COUNT; i++) { unsigned int *ptr = (unsigned int *) malloc (sizeof (unsigned int)); *ptr = values[i]; gl_tls_set (mykeys[i], ptr); } dbgprintf ("Worker %p after first tls_set\n", gl_thread_self_pointer ()); perhaps_yield (); /* Shuffle around the pointers. */ for (repeat = REPEAT_COUNT; repeat > 0; repeat--) { dbgprintf ("Worker %p doing value swapping\n", gl_thread_self_pointer ()); i = ((unsigned int) rand () >> 3) % KEYS_COUNT; j = ((unsigned int) rand () >> 3) % KEYS_COUNT; if (i != j) { void *vi = gl_tls_get (mykeys[i]); void *vj = gl_tls_get (mykeys[j]); gl_tls_set (mykeys[i], vj); gl_tls_set (mykeys[j], vi); } perhaps_yield (); } /* Verify that all the values are from this thread. */ dbgprintf ("Worker %p before final verify\n", gl_thread_self_pointer ()); for (i = 0; i < KEYS_COUNT; i++) if ((*(unsigned int *) gl_tls_get (mykeys[i]) % THREAD_COUNT) != id) abort (); dbgprintf ("Worker %p after final verify\n", gl_thread_self_pointer ()); perhaps_yield (); dbgprintf ("Worker %p dying.\n", gl_thread_self_pointer ()); return NULL; } static void test_tls (void) { int pass, i; for (pass = 0; pass < 2; pass++) { gl_thread_t threads[THREAD_COUNT]; if (pass == 0) for (i = 0; i < KEYS_COUNT; i++) gl_tls_key_init (mykeys[i], free); else for (i = KEYS_COUNT - 1; i >= 0; i--) gl_tls_key_init (mykeys[i], free); /* Spawn the threads. */ for (i = 0; i < THREAD_COUNT; i++) threads[i] = gl_thread_create (worker_thread, NULL); /* Wait for the threads to terminate. */ for (i = 0; i < THREAD_COUNT; i++) gl_thread_join (threads[i], NULL); for (i = 0; i < KEYS_COUNT; i++) gl_tls_key_destroy (mykeys[i]); } } /* -------------------------------------------------------------------------- */ int main () { #if TEST_PTH_THREADS if (!pth_init ()) abort (); #endif printf ("Starting test_tls ..."); fflush (stdout); test_tls (); printf (" OK\n"); fflush (stdout); return 0; } #else /* No multithreading available. */ #include int main () { fputs ("Skipping test: multithreading not enabled\n", stderr); return 77; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-uname.c0000644000000000000000000000010713726163410022401 xustar000000000000000024 mtime=1599661832.647 23 atime=1599661832.77 24 ctime=1599661999.518 libprelude-5.2.0/libmissing/tests/test-uname.c0000644000000000000000000000375113726163410021404 0ustar00rootroot00000000000000/* Test of system information. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (uname, int, (struct utsname *)); #include #include #include "macros.h" /* This program can be called with no arguments, then it performs a unit test. Or it can be called with 1 argument, then it prints the uname contents to standard output. */ int main (int argc, char *argv[]) { struct utsname buf; memset (&buf, '?', sizeof (buf)); ASSERT (uname (&buf) >= 0); /* Verify that every field's value is NUL terminated. */ ASSERT (strlen (buf.sysname) < sizeof (buf.sysname)); ASSERT (strlen (buf.nodename) < sizeof (buf.nodename)); ASSERT (strlen (buf.release) < sizeof (buf.release)); ASSERT (strlen (buf.version) < sizeof (buf.version)); ASSERT (strlen (buf.machine) < sizeof (buf.machine)); if (argc > 1) { /* Show the result. */ printf ("uname -n = nodename = %s\n", buf.nodename); printf ("uname -s = sysname = %s\n", buf.sysname); printf ("uname -r = release = %s\n", buf.release); printf ("uname -v = version = %s\n", buf.version); printf ("uname -m = machine or cpu = %s\n", buf.machine); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-unistd.c0000644000000000000000000000010613726163410022601 xustar000000000000000024 mtime=1599661832.647 23 atime=1599661832.77 23 ctime=1599661999.52 libprelude-5.2.0/libmissing/tests/test-unistd.c0000644000000000000000000000305013726163410021575 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "verify.h" /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); /* Check that the various SEEK_* macros are defined. */ int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET }; /* Check that the various *_FILENO macros are defined. */ #if ! (defined STDIN_FILENO \ && (STDIN_FILENO + STDOUT_FILENO + STDERR_FILENO == 3)) missing or broken *_FILENO macros #endif /* Check that the types are all defined. */ size_t t1; ssize_t t2; #ifdef TODO /* Not implemented in gnulib yet */ uid_t t3; gid_t t4; #endif off_t t5; pid_t t6; #ifdef TODO useconds_t t7; intptr_t t8; #endif int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-unsetenv.c0000644000000000000000000000010713726163410023143 xustar000000000000000024 mtime=1599661832.647 23 atime=1599661832.77 24 ctime=1599661999.521 libprelude-5.2.0/libmissing/tests/test-unsetenv.c0000644000000000000000000000337613726163410022151 0ustar00rootroot00000000000000/* Tests of unsetenv. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (unsetenv, int, (char const *)); #include #include #include #include "macros.h" int main (void) { char entry[] = "b=2"; /* Test removal when multiple entries present. */ ASSERT (putenv ((char *) "a=1") == 0); ASSERT (putenv (entry) == 0); entry[0] = 'a'; /* Unspecified what getenv("a") would be at this point. */ ASSERT (unsetenv ("a") == 0); /* Both entries will be removed. */ ASSERT (getenv ("a") == NULL); ASSERT (unsetenv ("a") == 0); /* Required to fail with EINVAL. */ errno = 0; ASSERT (unsetenv ("") == -1); ASSERT (errno == EINVAL); errno = 0; ASSERT (unsetenv ("a=b") == -1); ASSERT (errno == EINVAL); #if 0 /* glibc and gnulib's implementation guarantee this, but POSIX no longer requires it: http://austingroupbugs.net/view.php?id=185 */ errno = 0; ASSERT (unsetenv (NULL) == -1); ASSERT (errno == EINVAL); #endif return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-usleep.c0000644000000000000000000000010713726163410022571 xustar000000000000000024 mtime=1599661832.647 23 atime=1599661832.77 24 ctime=1599661999.523 libprelude-5.2.0/libmissing/tests/test-usleep.c0000644000000000000000000000211213726163410021562 0ustar00rootroot00000000000000/* Test of usleep() function. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (usleep, int, (useconds_t)); #include #include "macros.h" int main (void) { time_t start = time (NULL); ASSERT (usleep (1000000) == 0); ASSERT (start < time (NULL)); ASSERT (usleep (0) == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-vasnprintf.c0000644000000000000000000000010713726163410023466 xustar000000000000000024 mtime=1599661832.648 23 atime=1599661832.77 24 ctime=1599661999.525 libprelude-5.2.0/libmissing/tests/test-vasnprintf.c0000644000000000000000000000433613726163410022471 0ustar00rootroot00000000000000/* Test of vasnprintf() and asnprintf() functions. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include "vasnprintf.h" #include #include #include #include "macros.h" static void test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...)) { char buf[8]; int size; for (size = 0; size <= 8; size++) { size_t length = size; char *result = my_asnprintf (NULL, &length, "%d", 12345); ASSERT (result != NULL); ASSERT (strcmp (result, "12345") == 0); ASSERT (length == 5); free (result); } for (size = 0; size <= 8; size++) { size_t length; char *result; memcpy (buf, "DEADBEEF", 8); length = size; result = my_asnprintf (buf, &length, "%d", 12345); ASSERT (result != NULL); ASSERT (strcmp (result, "12345") == 0); ASSERT (length == 5); if (size < 6) ASSERT (result != buf); ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0); if (result != buf) free (result); } } static char * my_asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...) { va_list args; char *ret; va_start (args, format); ret = vasnprintf (resultbuf, lengthp, format, args); va_end (args); return ret; } static void test_vasnprintf () { test_function (my_asnprintf); } static void test_asnprintf () { test_function (asnprintf); } int main (int argc, char *argv[]) { test_vasnprintf (); test_asnprintf (); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-verify.c0000644000000000000000000000010713726163410022600 xustar000000000000000024 mtime=1599661832.648 23 atime=1599661832.77 24 ctime=1599661999.526 libprelude-5.2.0/libmissing/tests/test-verify.c0000644000000000000000000000350413726163410021577 0ustar00rootroot00000000000000/* Test the "verify" module. Copyright (C) 2005, 2009-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible. */ #include #include "verify.h" #ifndef EXP_FAIL # define EXP_FAIL 0 #endif int x; enum { a, b, c }; #if EXP_FAIL == 1 verify (x >= 0); /* should give ERROR: non-constant expression */ #endif verify (c == 2); /* should be ok */ #if EXP_FAIL == 2 verify (1 + 1 == 3); /* should give ERROR */ #endif verify (1 == 1); verify (1 == 1); /* should be ok */ enum { item = verify_true (1 == 1) * 0 + 17 /* should be ok */ }; static int function (int n) { #if EXP_FAIL == 3 verify (n >= 0); /* should give ERROR: non-constant expression */ #endif verify (c == 2); /* should be ok */ #if EXP_FAIL == 4 verify (1 + 1 == 3); /* should give ERROR */ #endif verify (1 == 1); verify (1 == 1); /* should be ok */ if (n) return ((void) verify_expr (1 == 1, 1), verify_expr (1 == 1, 8)); /* should be ok */ #if EXP_FAIL == 5 return verify_expr (1 == 2, 5); /* should give ERROR */ #endif return 0; } int main (void) { return !(function (0) == 0 && function (1) == 8); } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-verify-try.c0000644000000000000000000000010713726163410023414 xustar000000000000000024 mtime=1599661832.648 23 atime=1599661832.77 24 ctime=1599661999.528 libprelude-5.2.0/libmissing/tests/test-verify-try.c0000644000000000000000000000162013726163410022410 0ustar00rootroot00000000000000/* Test the "verify" module. Copyright (C) 2017-2018 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 3 of the License, 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, see . */ /* This is a separate source file, so that the execution of test-verify.sh does not interfere with the building of the 'test-verify' program. */ #include "test-verify.c" libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-vsnprintf.c0000644000000000000000000000010613726163410023324 xustar000000000000000024 mtime=1599661832.648 23 atime=1599661832.77 23 ctime=1599661999.53 libprelude-5.2.0/libmissing/tests/test-vsnprintf.c0000644000000000000000000000430513726163410022324 0ustar00rootroot00000000000000/* Test of vsnprintf() function. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "signature.h" SIGNATURE_CHECK (vsnprintf, int, (char *, size_t, char const *, va_list)); #include #include #include "macros.h" static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } int main (int argc, char *argv[]) { char buf[8]; int size; int retval; retval = my_snprintf (NULL, 0, "%d", 12345); ASSERT (retval == 5); for (size = 0; size <= 8; size++) { memcpy (buf, "DEADBEEF", 8); retval = my_snprintf (buf, size, "%d", 12345); ASSERT (retval == 5); if (size < 6) { if (size > 0) { ASSERT (memcmp (buf, "12345", size - 1) == 0); ASSERT (buf[size - 1] == '\0' || buf[size - 1] == '0' + size); } #if !CHECK_VSNPRINTF_POSIX if (size > 0) #endif ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0); } else { ASSERT (memcmp (buf, "12345\0EF", 8) == 0); } } /* Test the support of the POSIX/XSI format strings with positions. */ { char result[100]; retval = my_snprintf (result, sizeof (result), "%2$d %1$d", 33, 55); ASSERT (strcmp (result, "55 33") == 0); ASSERT (retval == strlen (result)); } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-wchar.c0000644000000000000000000000010713726163410022400 xustar000000000000000024 mtime=1599661832.648 23 atime=1599661832.77 24 ctime=1599661999.531 libprelude-5.2.0/libmissing/tests/test-wchar.c0000644000000000000000000000213613726163410021377 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "verify.h" /* Check that the types wchar_t and wint_t are defined. */ wchar_t a = 'c'; wint_t b = 'x'; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); int main (void) { return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-wcrtomb.c0000644000000000000000000000010713726163410022751 xustar000000000000000024 mtime=1599661832.649 23 atime=1599661832.77 24 ctime=1599661999.533 libprelude-5.2.0/libmissing/tests/test-wcrtomb.c0000644000000000000000000001101713726163410021746 0ustar00rootroot00000000000000/* Test of conversion of wide character to multibyte character. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2008. */ #include #include #include "signature.h" SIGNATURE_CHECK (wcrtomb, size_t, (char *, wchar_t, mbstate_t *)); #include #include #include #include "macros.h" /* Check the multibyte character s[0..n-1]. */ static void check_character (const char *s, size_t n) { wchar_t wc; char buf[64]; int iret; size_t ret; wc = (wchar_t) 0xBADFACE; iret = mbtowc (&wc, s, n); ASSERT (iret == n); ret = wcrtomb (buf, wc, NULL); ASSERT (ret == n); ASSERT (memcmp (buf, s, n) == 0); /* Test special calling convention, passing a NULL pointer. */ ret = wcrtomb (NULL, wc, NULL); ASSERT (ret == 1); } int main (int argc, char *argv[]) { char buf[64]; size_t ret; /* configure should already have checked that the locale is supported. */ if (setlocale (LC_ALL, "") == NULL) return 1; /* Test NUL character. */ { buf[0] = 'x'; ret = wcrtomb (buf, 0, NULL); ASSERT (ret == 1); ASSERT (buf[0] == '\0'); } /* Test single bytes. */ { int c; for (c = 0; c < 0x100; c++) switch (c) { case '\t': case '\v': case '\f': case ' ': case '!': case '"': case '#': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case ':': case ';': case '<': case '=': case '>': case '?': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '[': case '\\': case ']': case '^': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '{': case '|': case '}': case '~': /* c is in the ISO C "basic character set". */ ret = wcrtomb (buf, btowc (c), NULL); ASSERT (ret == 1); ASSERT (buf[0] == (char) c); break; } } /* Test special calling convention, passing a NULL pointer. */ { ret = wcrtomb (NULL, '\0', NULL); ASSERT (ret == 1); ret = wcrtomb (NULL, btowc ('x'), NULL); ASSERT (ret == 1); } if (argc > 1) switch (argv[1][0]) { case '1': /* Locale encoding is ISO-8859-1 or ISO-8859-15. */ { const char input[] = "B\374\337er"; /* "Büßer" */ check_character (input + 1, 1); check_character (input + 2, 1); } return 0; case '2': /* Locale encoding is UTF-8. */ { const char input[] = "B\303\274\303\237er"; /* "Büßer" */ check_character (input + 1, 2); check_character (input + 3, 2); } return 0; case '3': /* Locale encoding is EUC-JP. */ { const char input[] = "<\306\374\313\334\270\354>"; /* "<日本語>" */ check_character (input + 1, 2); check_character (input + 3, 2); check_character (input + 5, 2); } return 0; case '4': /* Locale encoding is GB18030. */ { const char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ check_character (input + 1, 2); check_character (input + 3, 4); } return 0; } return 1; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-wcrtomb-w32.c0000644000000000000000000000010713726163410023362 xustar000000000000000024 mtime=1599661832.649 23 atime=1599661832.77 24 ctime=1599661999.535 libprelude-5.2.0/libmissing/tests/test-wcrtomb-w32.c0000644000000000000000000002166713726163410022373 0ustar00rootroot00000000000000/* Test of conversion of wide character to multibyte character. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ #include #include #include #include #include #include #include "macros.h" #if defined _WIN32 && !defined __CYGWIN__ static int test_one_locale (const char *name, int codepage) { char buf[64]; size_t ret; # if 1 /* Portable code to set the locale. */ { char name_with_codepage[1024]; sprintf (name_with_codepage, "%s.%d", name, codepage); /* Set the locale. */ if (setlocale (LC_ALL, name_with_codepage) == NULL) return 77; } # else /* Hacky way to set a locale.codepage combination that setlocale() refuses to set. */ { /* Codepage of the current locale, set with setlocale(). Not necessarily the same as GetACP(). */ extern __declspec(dllimport) unsigned int __lc_codepage; /* Set the locale. */ if (setlocale (LC_ALL, name) == NULL) return 77; /* Clobber the codepage and MB_CUR_MAX, both set by setlocale(). */ __lc_codepage = codepage; switch (codepage) { case 1252: case 1256: MB_CUR_MAX = 1; break; case 932: case 950: case 936: MB_CUR_MAX = 2; break; case 54936: case 65001: MB_CUR_MAX = 4; break; } /* Test whether the codepage is really available. */ { mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, " ", 1, &state) == (size_t)(-1)) return 77; } } # endif /* Test NUL character. */ { buf[0] = 'x'; ret = wcrtomb (buf, 0, NULL); ASSERT (ret == 1); ASSERT (buf[0] == '\0'); } /* Test single bytes. */ { int c; for (c = 0; c < 0x100; c++) switch (c) { case '\t': case '\v': case '\f': case ' ': case '!': case '"': case '#': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case ':': case ';': case '<': case '=': case '>': case '?': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '[': case '\\': case ']': case '^': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '{': case '|': case '}': case '~': /* c is in the ISO C "basic character set". */ ret = wcrtomb (buf, btowc (c), NULL); ASSERT (ret == 1); ASSERT (buf[0] == (char) c); break; } } /* Test special calling convention, passing a NULL pointer. */ { ret = wcrtomb (NULL, '\0', NULL); ASSERT (ret == 1); ret = wcrtomb (NULL, btowc ('x'), NULL); ASSERT (ret == 1); } switch (codepage) { case 1252: /* Locale encoding is CP1252, an extension of ISO-8859-1. */ { /* Convert "B\374\337er": "Büßer" */ memset (buf, 'x', 8); ret = wcrtomb (buf, 0x00FC, NULL); ASSERT (ret == 1); ASSERT (memcmp (buf, "\374", 1) == 0); ASSERT (buf[1] == 'x'); memset (buf, 'x', 8); ret = wcrtomb (buf, 0x00DF, NULL); ASSERT (ret == 1); ASSERT (memcmp (buf, "\337", 1) == 0); ASSERT (buf[1] == 'x'); } return 0; case 1256: /* Locale encoding is CP1256, not the same as ISO-8859-6. */ { /* Convert "x\302\341\346y": "xآلوy" */ memset (buf, 'x', 8); ret = wcrtomb (buf, 0x0622, NULL); ASSERT (ret == 1); ASSERT (memcmp (buf, "\302", 1) == 0); ASSERT (buf[1] == 'x'); memset (buf, 'x', 8); ret = wcrtomb (buf, 0x0644, NULL); ASSERT (ret == 1); ASSERT (memcmp (buf, "\341", 1) == 0); ASSERT (buf[1] == 'x'); memset (buf, 'x', 8); ret = wcrtomb (buf, 0x0648, NULL); ASSERT (ret == 1); ASSERT (memcmp (buf, "\346", 1) == 0); ASSERT (buf[1] == 'x'); } return 0; case 932: /* Locale encoding is CP932, similar to Shift_JIS. */ { /* Convert "<\223\372\226\173\214\352>": "<日本語>" */ memset (buf, 'x', 8); ret = wcrtomb (buf, 0x65E5, NULL); ASSERT (ret == 2); ASSERT (memcmp (buf, "\223\372", 2) == 0); ASSERT (buf[2] == 'x'); memset (buf, 'x', 8); ret = wcrtomb (buf, 0x672C, NULL); ASSERT (ret == 2); ASSERT (memcmp (buf, "\226\173", 2) == 0); ASSERT (buf[2] == 'x'); memset (buf, 'x', 8); ret = wcrtomb (buf, 0x8A9E, NULL); ASSERT (ret == 2); ASSERT (memcmp (buf, "\214\352", 2) == 0); ASSERT (buf[2] == 'x'); } return 0; case 950: /* Locale encoding is CP950, similar to Big5. */ { /* Convert "<\244\351\245\273\273\171>": "<日本語>" */ memset (buf, 'x', 8); ret = wcrtomb (buf, 0x65E5, NULL); ASSERT (ret == 2); ASSERT (memcmp (buf, "\244\351", 2) == 0); ASSERT (buf[2] == 'x'); memset (buf, 'x', 8); ret = wcrtomb (buf, 0x672C, NULL); ASSERT (ret == 2); ASSERT (memcmp (buf, "\245\273", 2) == 0); ASSERT (buf[2] == 'x'); memset (buf, 'x', 8); ret = wcrtomb (buf, 0x8A9E, NULL); ASSERT (ret == 2); ASSERT (memcmp (buf, "\273\171", 2) == 0); ASSERT (buf[2] == 'x'); } return 0; case 936: /* Locale encoding is CP936 = GBK, an extension of GB2312. */ { /* Convert "<\310\325\261\276\325\132>": "<日本語>" */ memset (buf, 'x', 8); ret = wcrtomb (buf, 0x65E5, NULL); ASSERT (ret == 2); ASSERT (memcmp (buf, "\310\325", 2) == 0); ASSERT (buf[2] == 'x'); memset (buf, 'x', 8); ret = wcrtomb (buf, 0x672C, NULL); ASSERT (ret == 2); ASSERT (memcmp (buf, "\261\276", 2) == 0); ASSERT (buf[2] == 'x'); memset (buf, 'x', 8); ret = wcrtomb (buf, 0x8A9E, NULL); ASSERT (ret == 2); ASSERT (memcmp (buf, "\325\132", 2) == 0); ASSERT (buf[2] == 'x'); } return 0; case 54936: /* Locale encoding is CP54936 = GB18030. */ { /* Convert "B\250\271\201\060\211\070er": "Büßer" */ memset (buf, 'x', 8); ret = wcrtomb (buf, 0x00FC, NULL); ASSERT (ret == 2); ASSERT (memcmp (buf, "\250\271", 2) == 0); ASSERT (buf[2] == 'x'); memset (buf, 'x', 8); ret = wcrtomb (buf, 0x00DF, NULL); ASSERT (ret == 4); ASSERT (memcmp (buf, "\201\060\211\070", 4) == 0); ASSERT (buf[4] == 'x'); } return 0; case 65001: /* Locale encoding is CP65001 = UTF-8. */ { /* Convert "B\303\274\303\237er": "Büßer" */ memset (buf, 'x', 8); ret = wcrtomb (buf, 0x00FC, NULL); ASSERT (ret == 2); ASSERT (memcmp (buf, "\303\274", 2) == 0); ASSERT (buf[2] == 'x'); memset (buf, 'x', 8); ret = wcrtomb (buf, 0x00DF, NULL); ASSERT (ret == 2); ASSERT (memcmp (buf, "\303\237", 2) == 0); ASSERT (buf[2] == 'x'); } return 0; default: return 1; } } int main (int argc, char *argv[]) { int codepage = atoi (argv[argc - 1]); int result; int i; result = 77; for (i = 1; i < argc - 1; i++) { int ret = test_one_locale (argv[i], codepage); if (ret != 77) result = ret; } if (result == 77) { fprintf (stderr, "Skipping test: found no locale with codepage %d\n", codepage); } return result; } #else int main (int argc, char *argv[]) { fputs ("Skipping test: not a native Windows system\n", stderr); return 77; } #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-wctype-h.c0000644000000000000000000000010613726163410023033 xustar000000000000000023 mtime=1599661832.65 23 atime=1599661832.77 24 ctime=1599661999.537 libprelude-5.2.0/libmissing/tests/test-wctype-h.c0000644000000000000000000000376613726163410022045 0ustar00rootroot00000000000000/* Test of substitute. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "macros.h" /* Check that the type wint_t is defined. */ wint_t a = 'x'; /* Check that WEOF is defined. */ wint_t e = WEOF; /* Check that the type wctype_t is defined. */ wctype_t p; /* Check that the type wctrans_t is defined. */ wctrans_t q; int main (void) { /* Check that the isw* functions exist as functions or as macros. */ (void) iswalnum (0); (void) iswalpha (0); (void) iswcntrl (0); (void) iswdigit (0); (void) iswgraph (0); (void) iswlower (0); (void) iswprint (0); (void) iswpunct (0); (void) iswspace (0); (void) iswupper (0); (void) iswxdigit (0); /* Check that the isw* functions map WEOF to 0. */ ASSERT (!iswalnum (e)); ASSERT (!iswalpha (e)); ASSERT (!iswcntrl (e)); ASSERT (!iswdigit (e)); ASSERT (!iswgraph (e)); ASSERT (!iswlower (e)); ASSERT (!iswprint (e)); ASSERT (!iswpunct (e)); ASSERT (!iswspace (e)); ASSERT (!iswupper (e)); ASSERT (!iswxdigit (e)); /* Check that the tow* functions exist as functions or as macros. */ (void) towlower (0); (void) towupper (0); /* Check that the tow* functions map WEOF to WEOF. */ ASSERT (towlower (e) == e); ASSERT (towupper (e) == e); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-write.c0000644000000000000000000000010613726163410022425 xustar000000000000000023 mtime=1599661832.65 23 atime=1599661832.77 24 ctime=1599661999.538 libprelude-5.2.0/libmissing/tests/test-write.c0000644000000000000000000000400613726163410021423 0ustar00rootroot00000000000000/* Test the write() function. Copyright (C) 2011-2018 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 3 of the License, 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, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (write, ssize_t, (int, const void *, size_t)); #include #include #include #include "macros.h" int main (void) { const char *filename = "test-write.tmp"; int fd; /* Create a file with a simple contents. */ fd = open (filename, O_CREAT | O_WRONLY, 0600); ASSERT (fd >= 0); ASSERT (write (fd, "Hello World", 11) == 11); ASSERT (close (fd) == 0); /* Write into the middle of the file. */ fd = open (filename, O_WRONLY); ASSERT (fd >= 0); ASSERT (lseek (fd, 6, SEEK_SET) == 6); ASSERT (write (fd, "fascination", 11) == 11); /* Verify the contents of the file. */ { char buf[64]; int rfd = open (filename, O_RDONLY); ASSERT (rfd >= 0); ASSERT (read (rfd, buf, sizeof (buf)) == 17); ASSERT (close (rfd) == 0); ASSERT (memcmp (buf, "Hello fascination", 17) == 0); } ASSERT (close (fd) == 0); /* Test behaviour for invalid file descriptors. */ { char byte = 'x'; errno = 0; ASSERT (write (-1, &byte, 1) == -1); ASSERT (errno == EBADF); } { char byte = 'x'; close (99); errno = 0; ASSERT (write (99, &byte, 1) == -1); ASSERT (errno == EBADF); } /* Clean up. */ unlink (filename); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/signature.h0000644000000000000000000000010713726163410022325 xustar000000000000000024 mtime=1599661832.618 24 atime=1599661832.763 23 ctime=1599661999.54 libprelude-5.2.0/libmissing/tests/signature.h0000644000000000000000000000367713726163410021337 0ustar00rootroot00000000000000/* Macro for checking that a function declaration is compliant. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ #ifndef SIGNATURE_CHECK /* Check that the function FN takes the specified arguments ARGS with a return type of RET. This header is designed to be included after and the one system header that is supposed to contain the function being checked, but prior to any other system headers that are necessary for the unit test. Therefore, this file does not include any system headers, nor reference anything outside of the macro arguments. For an example, if foo.h should provide: extern int foo (char, float); then the unit test named test-foo.c would start out with: #include #include #include "signature.h" SIGNATURE_CHECK (foo, int, (char, float)); #include ... */ # define SIGNATURE_CHECK(fn, ret, args) \ SIGNATURE_CHECK1 (fn, ret, args, __LINE__) /* Necessary to allow multiple SIGNATURE_CHECK lines in a unit test. Note that the checks must not occupy the same line. */ # define SIGNATURE_CHECK1(fn, ret, args, id) \ SIGNATURE_CHECK2 (fn, ret, args, id) /* macroexpand line */ # define SIGNATURE_CHECK2(fn, ret, args, id) \ static ret (* _GL_UNUSED signature_check ## id) args = fn #endif /* SIGNATURE_CHECK */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/macros.h0000644000000000000000000000011013726163410021602 xustar000000000000000024 mtime=1599661832.615 24 atime=1599661832.762 24 ctime=1599661999.542 libprelude-5.2.0/libmissing/tests/macros.h0000644000000000000000000000673113726163410020614 0ustar00rootroot00000000000000/* Common macros used by gnulib tests. Copyright (C) 2006-2018 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 3 of the License, 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, see . */ /* This file contains macros that are used by many gnulib tests. Put here only frequently used macros, say, used by 10 tests or more. */ #include #include #ifndef FALLTHROUGH # if __GNUC__ < 7 # define FALLTHROUGH ((void) 0) # else # define FALLTHROUGH __attribute__ ((__fallthrough__)) # endif #endif /* Define ASSERT_STREAM before including this file if ASSERT must target a stream other than stderr. */ #ifndef ASSERT_STREAM # define ASSERT_STREAM stderr #endif /* ASSERT (condition); verifies that the specified condition is fulfilled. If not, a message is printed to ASSERT_STREAM if defined (defaulting to stderr if undefined) and the program is terminated with an error code. This macro has the following properties: - The programmer specifies the expected condition, not the failure condition. This simplifies thinking. - The condition is tested always, regardless of compilation flags. (Unlike the macro from .) - On Unix platforms, the tester can debug the test program with a debugger (provided core dumps are enabled: "ulimit -c unlimited"). - For the sake of platforms where no debugger is available (such as some mingw systems), an error message is printed on the error stream that includes the source location of the ASSERT invocation. */ #define ASSERT(expr) \ do \ { \ if (!(expr)) \ { \ fprintf (ASSERT_STREAM, "%s:%d: assertion '%s' failed\n", \ __FILE__, __LINE__, #expr); \ fflush (ASSERT_STREAM); \ abort (); \ } \ } \ while (0) /* SIZEOF (array) returns the number of elements of an array. It works for arrays that are declared outside functions and for local variables of array type. It does *not* work for function parameters of array type, because they are actually parameters of pointer type. */ #define SIZEOF(array) (sizeof (array) / sizeof (array[0])) /* STREQ (str1, str2) Return true if two strings compare equal. */ #define STREQ(a, b) (strcmp (a, b) == 0) /* Some numbers in the interval [0,1). */ extern const float randomf[1000]; extern const double randomd[1000]; extern const long double randoml[1000]; libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-binary-io.sh0000644000000000000000000000011013726163410023347 xustar000000000000000024 mtime=1599661832.619 24 atime=1599661832.763 24 ctime=1599661999.544 libprelude-5.2.0/libmissing/tests/test-binary-io.sh0000755000000000000000000000036513726163410022361 0ustar00rootroot00000000000000#!/bin/sh tmpfiles="" trap 'rm -fr $tmpfiles' 1 2 3 15 tmpfiles="$tmpfiles t-bin-out0.tmp t-bin-out1.tmp" ./test-binary-io${EXEEXT} 1 > t-bin-out1.tmp || exit 1 cmp t-bin-out0.tmp t-bin-out1.tmp > /dev/null || exit 1 rm -fr $tmpfiles exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-btowc1.sh0000644000000000000000000000011013726163410022655 xustar000000000000000024 mtime=1599661832.619 24 atime=1599661832.763 24 ctime=1599661999.545 libprelude-5.2.0/libmissing/tests/test-btowc1.sh0000755000000000000000000000054313726163410021665 0ustar00rootroot00000000000000#!/bin/sh # Test in an ISO-8859-1 or ISO-8859-15 locale. : ${LOCALE_FR=fr_FR} if test $LOCALE_FR = none; then if test -f /usr/bin/localedef; then echo "Skipping test: no traditional french locale is installed" else echo "Skipping test: no traditional french locale is supported" fi exit 77 fi LC_ALL=$LOCALE_FR \ ./test-btowc${EXEEXT} 1 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-btowc2.sh0000644000000000000000000000011013726163410022656 xustar000000000000000024 mtime=1599661832.619 24 atime=1599661832.763 24 ctime=1599661999.547 libprelude-5.2.0/libmissing/tests/test-btowc2.sh0000755000000000000000000000056613726163410021673 0ustar00rootroot00000000000000#!/bin/sh # Test whether a specific UTF-8 locale is installed. : ${LOCALE_FR_UTF8=fr_FR.UTF-8} if test $LOCALE_FR_UTF8 = none; then if test -f /usr/bin/localedef; then echo "Skipping test: no french Unicode locale is installed" else echo "Skipping test: no french Unicode locale is supported" fi exit 77 fi LC_ALL=$LOCALE_FR_UTF8 \ ./test-btowc${EXEEXT} 2 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-c-strcase.sh0000644000000000000000000000010713726163410023350 xustar000000000000000023 mtime=1599661832.62 24 atime=1599661832.764 24 ctime=1599661999.549 libprelude-5.2.0/libmissing/tests/test-c-strcase.sh0000755000000000000000000000114313726163410022347 0ustar00rootroot00000000000000#!/bin/sh # Test in the C locale. ./test-c-strcasecmp${EXEEXT} || exit 1 ./test-c-strncasecmp${EXEEXT} || exit 1 # Test in an ISO-8859-1 or ISO-8859-15 locale. : ${LOCALE_FR=fr_FR} if test $LOCALE_FR != none; then LC_ALL=$LOCALE_FR ./test-c-strcasecmp${EXEEXT} locale || exit 1 LC_ALL=$LOCALE_FR ./test-c-strncasecmp${EXEEXT} locale || exit 1 fi # Test in a Turkish UTF-8 locale. : ${LOCALE_TR_UTF8=tr_TR.UTF-8} if test $LOCALE_TR_UTF8 != none; then LC_ALL=$LOCALE_TR_UTF8 ./test-c-strcasecmp${EXEEXT} locale || exit 1 LC_ALL=$LOCALE_TR_UTF8 ./test-c-strncasecmp${EXEEXT} locale || exit 1 fi exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/cloexec.h0000644000000000000000000000010713726163410021746 xustar000000000000000023 mtime=1599661832.61 24 atime=1599661832.761 24 ctime=1599661999.551 libprelude-5.2.0/libmissing/tests/cloexec.h0000644000000000000000000000273413726163410020751 0ustar00rootroot00000000000000/* cloexec.c - set or clear the close-on-exec descriptor flag Copyright (C) 2004, 2009-2018 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 3 of the License, 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, see . */ #include /* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, or clear the flag if VALUE is false. Return 0 on success, or -1 on error with 'errno' set. Note that on MingW, this function does NOT protect DESC from being inherited into spawned children. Instead, either use dup_cloexec followed by closing the original DESC, or use interfaces such as open or pipe2 that accept flags like O_CLOEXEC to create DESC non-inheritable in the first place. */ int set_cloexec_flag (int desc, bool value); /* Duplicates a file handle FD, while marking the copy to be closed prior to exec or spawn. Returns -1 and sets errno if FD could not be duplicated. */ int dup_cloexec (int fd); libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/ctype.in.h0000644000000000000000000000010713726163410022055 xustar000000000000000023 mtime=1599661832.61 24 atime=1599661832.761 24 ctime=1599661999.553 libprelude-5.2.0/libmissing/tests/ctype.in.h0000644000000000000000000000342213726163410021053 0ustar00rootroot00000000000000/* A substitute for ISO C99 , for platforms on which it is incomplete. Copyright (C) 2009-2018 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 3, 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, see . */ /* Written by Bruno Haible. */ /* * ISO C 99 for platforms on which it is incomplete. * */ #ifndef _@GUARD_PREFIX@_CTYPE_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Include the original . */ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_CTYPE_H@ #ifndef _@GUARD_PREFIX@_CTYPE_H #define _@GUARD_PREFIX@_CTYPE_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Return non-zero if c is a blank, i.e. a space or tab character. */ #if @GNULIB_ISBLANK@ # if !@HAVE_ISBLANK@ _GL_EXTERN_C int isblank (int c); # endif #elif defined GNULIB_POSIXCHECK # undef isblank # if HAVE_RAW_DECL_ISBLANK _GL_WARN_ON_USE (isblank, "isblank is unportable - " "use gnulib module isblank for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_CTYPE_H */ #endif /* _@GUARD_PREFIX@_CTYPE_H */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/dosname.h0000644000000000000000000000010713726163410021752 xustar000000000000000023 mtime=1599661832.61 24 atime=1599661832.761 24 ctime=1599661999.555 libprelude-5.2.0/libmissing/tests/dosname.h0000644000000000000000000000367413726163410020761 0ustar00rootroot00000000000000/* File names on MS-DOS/Windows systems. Copyright (C) 2000-2001, 2004-2006, 2009-2018 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 3 of the License, 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, see . From Paul Eggert and Jim Meyering. */ #ifndef _DOSNAME_H #define _DOSNAME_H #if (defined _WIN32 || defined __CYGWIN__ \ || defined __EMX__ || defined __MSDOS__ || defined __DJGPP__) /* This internal macro assumes ASCII, but all hosts that support drive letters use ASCII. */ # define _IS_DRIVE_LETTER(C) (((unsigned int) (C) | ('a' - 'A')) - 'a' \ <= 'z' - 'a') # define FILE_SYSTEM_PREFIX_LEN(Filename) \ (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0) # ifndef __CYGWIN__ # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 # endif # define ISSLASH(C) ((C) == '/' || (C) == '\\') #else # define FILE_SYSTEM_PREFIX_LEN(Filename) 0 # define ISSLASH(C) ((C) == '/') #endif #ifndef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 #endif #if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE # define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)]) # else # define IS_ABSOLUTE_FILE_NAME(F) \ (ISSLASH ((F)[0]) || FILE_SYSTEM_PREFIX_LEN (F) != 0) #endif #define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F)) #endif /* DOSNAME_H_ */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/fcntl.in.h0000644000000000000000000000011013726163410022031 xustar000000000000000024 mtime=1599661832.611 24 atime=1599661832.761 24 ctime=1599661999.557 libprelude-5.2.0/libmissing/tests/fcntl.in.h0000644000000000000000000002373713726163410021050 0ustar00rootroot00000000000000/* Like , but with non-working flags defined to 0. Copyright (C) 2006-2018 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 3 of the License, 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, see . */ /* written by Paul Eggert */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_fcntl_h /* Special invocation convention. */ /* Needed before . May also define off_t to a 64-bit type on native Windows. */ #include /* On some systems other than glibc, is a prerequisite of . On glibc systems, we would like to avoid namespace pollution. But on glibc systems, includes inside an extern "C" { ... } block, which leads to errors in C++ mode with the overridden from gnulib. These errors are known to be gone with g++ version >= 4.3. */ #if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) # include #endif #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_FCNTL_H /* Needed before . May also define off_t to a 64-bit type on native Windows. */ #include /* On some systems other than glibc, is a prerequisite of . On glibc systems, we would like to avoid namespace pollution. But on glibc systems, includes inside an extern "C" { ... } block, which leads to errors in C++ mode with the overridden from gnulib. These errors are known to be gone with g++ version >= 4.3. */ #if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) # include #endif /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ #ifndef _@GUARD_PREFIX@_FCNTL_H #define _@GUARD_PREFIX@_FCNTL_H #ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ # include #endif /* Native Windows platforms declare open(), creat() in . */ #if (@GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__) # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ #if @GNULIB_FCNTL@ # if @REPLACE_FCNTL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fcntl # define fcntl rpl_fcntl # endif _GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...)); _GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...)); # else # if !@HAVE_FCNTL@ _GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...)); # endif _GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...)); # endif _GL_CXXALIASWARN (fcntl); #elif defined GNULIB_POSIXCHECK # undef fcntl # if HAVE_RAW_DECL_FCNTL _GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " "use gnulib module fcntl for portability"); # endif #endif #if @GNULIB_OPEN@ # if @REPLACE_OPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef open # define open rpl_open # endif _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); # else _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); # endif /* On HP-UX 11, in C++ mode, open() is defined as an inline function with a default argument. _GL_CXXALIASWARN does not work in this case. */ # if !defined __hpux _GL_CXXALIASWARN (open); # endif #elif defined GNULIB_POSIXCHECK # undef open /* Assume open is always declared. */ _GL_WARN_ON_USE (open, "open is not always POSIX compliant - " "use gnulib module open for portability"); #endif #if @GNULIB_OPENAT@ # if @REPLACE_OPENAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef openat # define openat rpl_openat # endif _GL_FUNCDECL_RPL (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...)); # else # if !@HAVE_OPENAT@ _GL_FUNCDECL_SYS (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...)); # endif _GL_CXXALIASWARN (openat); #elif defined GNULIB_POSIXCHECK # undef openat # if HAVE_RAW_DECL_OPENAT _GL_WARN_ON_USE (openat, "openat is not portable - " "use gnulib module openat for portability"); # endif #endif /* Fix up the FD_* macros, only known to be missing on mingw. */ #ifndef FD_CLOEXEC # define FD_CLOEXEC 1 #endif /* Fix up the supported F_* macros. Intentionally leave other F_* macros undefined. Only known to be missing on mingw. */ #ifndef F_DUPFD_CLOEXEC # define F_DUPFD_CLOEXEC 0x40000000 /* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise. */ # define GNULIB_defined_F_DUPFD_CLOEXEC 1 #else # define GNULIB_defined_F_DUPFD_CLOEXEC 0 #endif #ifndef F_DUPFD # define F_DUPFD 1 #endif #ifndef F_GETFD # define F_GETFD 2 #endif /* Fix up the O_* macros. */ /* AIX 7.1 with XL C 12.1 defines O_CLOEXEC, O_NOFOLLOW, and O_TTY_INIT to values outside 'int' range, so omit these misdefinitions. But avoid namespace pollution on non-AIX systems. */ #ifdef _AIX # include # if defined O_CLOEXEC && ! (INT_MIN <= O_CLOEXEC && O_CLOEXEC <= INT_MAX) # undef O_CLOEXEC # endif # if defined O_NOFOLLOW && ! (INT_MIN <= O_NOFOLLOW && O_NOFOLLOW <= INT_MAX) # undef O_NOFOLLOW # endif # if defined O_TTY_INIT && ! (INT_MIN <= O_TTY_INIT && O_TTY_INIT <= INT_MAX) # undef O_TTY_INIT # endif #endif #if !defined O_DIRECT && defined O_DIRECTIO /* Tru64 spells it 'O_DIRECTIO'. */ # define O_DIRECT O_DIRECTIO #endif #if !defined O_CLOEXEC && defined O_NOINHERIT /* Mingw spells it 'O_NOINHERIT'. */ # define O_CLOEXEC O_NOINHERIT #endif #ifndef O_CLOEXEC # define O_CLOEXEC 0x40000000 /* Try to not collide with system O_* flags. */ # define GNULIB_defined_O_CLOEXEC 1 #else # define GNULIB_defined_O_CLOEXEC 0 #endif #ifndef O_DIRECT # define O_DIRECT 0 #endif #ifndef O_DIRECTORY # define O_DIRECTORY 0 #endif #ifndef O_DSYNC # define O_DSYNC 0 #endif #ifndef O_EXEC # define O_EXEC O_RDONLY /* This is often close enough in older systems. */ #endif #ifndef O_IGNORE_CTTY # define O_IGNORE_CTTY 0 #endif #ifndef O_NDELAY # define O_NDELAY 0 #endif #ifndef O_NOATIME # define O_NOATIME 0 #endif #ifndef O_NONBLOCK # define O_NONBLOCK O_NDELAY #endif /* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY or to 0 as fallback. */ #if @GNULIB_NONBLOCKING@ # if O_NONBLOCK # define GNULIB_defined_O_NONBLOCK 0 # else # define GNULIB_defined_O_NONBLOCK 1 # undef O_NONBLOCK # define O_NONBLOCK 0x40000000 # endif #endif #ifndef O_NOCTTY # define O_NOCTTY 0 #endif #ifndef O_NOFOLLOW # define O_NOFOLLOW 0 #endif #ifndef O_NOLINK # define O_NOLINK 0 #endif #ifndef O_NOLINKS # define O_NOLINKS 0 #endif #ifndef O_NOTRANS # define O_NOTRANS 0 #endif #ifndef O_RSYNC # define O_RSYNC 0 #endif #ifndef O_SEARCH # define O_SEARCH O_RDONLY /* This is often close enough in older systems. */ #endif #ifndef O_SYNC # define O_SYNC 0 #endif #ifndef O_TTY_INIT # define O_TTY_INIT 0 #endif #if ~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) # undef O_ACCMODE # define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) #endif /* For systems that distinguish between text and binary I/O. O_BINARY is usually declared in fcntl.h */ #if !defined O_BINARY && defined _O_BINARY /* For MSC-compatible compilers. */ # define O_BINARY _O_BINARY # define O_TEXT _O_TEXT #endif #if defined __BEOS__ || defined __HAIKU__ /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ # undef O_BINARY # undef O_TEXT #endif #ifndef O_BINARY # define O_BINARY 0 # define O_TEXT 0 #endif /* Fix up the AT_* macros. */ /* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its value exceeds INT_MAX, so its use as an int doesn't conform to the C standard, and GCC and Sun C complain in some cases. If the bug is present, undef AT_FDCWD here, so it can be redefined below. */ #if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 # undef AT_FDCWD #endif /* Use the same bit pattern as Solaris 9, but with the proper signedness. The bit pattern is important, in case this actually is Solaris with the above workaround. */ #ifndef AT_FDCWD # define AT_FDCWD (-3041965) #endif /* Use the same values as Solaris 9. This shouldn't matter, but there's no real reason to differ. */ #ifndef AT_SYMLINK_NOFOLLOW # define AT_SYMLINK_NOFOLLOW 4096 #endif #ifndef AT_REMOVEDIR # define AT_REMOVEDIR 1 #endif /* Solaris 9 lacks these two, so just pick unique values. */ #ifndef AT_SYMLINK_FOLLOW # define AT_SYMLINK_FOLLOW 2 #endif #ifndef AT_EACCESS # define AT_EACCESS 4 #endif #endif /* _@GUARD_PREFIX@_FCNTL_H */ #endif /* _@GUARD_PREFIX@_FCNTL_H */ #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fflush2.sh0000644000000000000000000000011013726163410023027 xustar000000000000000024 mtime=1599661832.623 24 atime=1599661832.764 24 ctime=1599661999.559 libprelude-5.2.0/libmissing/tests/test-fflush2.sh0000755000000000000000000000052613726163410022040 0ustar00rootroot00000000000000#!/bin/sh # Execute the test only with seekable input stream. # The behaviour of fflush() on a non-seekable input stream is undefined. ./test-fflush2${EXEEXT} 1 < "$srcdir/test-fflush2.sh" || exit $? ./test-fflush2${EXEEXT} 2 < "$srcdir/test-fflush2.sh" || exit $? #cat "$srcdir/test-fflush2.sh" | ./test-fflush2${EXEEXT} || exit $? exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/flexmember.h0000644000000000000000000000011013726163410022444 xustar000000000000000024 mtime=1599661832.611 24 atime=1599661832.761 24 ctime=1599661999.561 libprelude-5.2.0/libmissing/tests/flexmember.h0000644000000000000000000000345113726163410021452 0ustar00rootroot00000000000000/* Sizes of structs with flexible array members. Copyright 2016-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library 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 3 of the License, or (at your option) any later version. The GNU C Library 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 the GNU C Library; if not, see . Written by Paul Eggert. */ #include /* Nonzero multiple of alignment of TYPE, suitable for FLEXSIZEOF below. On older platforms without _Alignof, use a pessimistic bound that is safe in practice even if FLEXIBLE_ARRAY_MEMBER is 1. On newer platforms, use _Alignof to get a tighter bound. */ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 # define FLEXALIGNOF(type) (sizeof (type) & ~ (sizeof (type) - 1)) #else # define FLEXALIGNOF(type) _Alignof (type) #endif /* Upper bound on the size of a struct of type TYPE with a flexible array member named MEMBER that is followed by N bytes of other data. This is not simply sizeof (TYPE) + N, since it may require alignment on unusually picky C11 platforms, and FLEXIBLE_ARRAY_MEMBER may be 1 on pre-C11 platforms. Yield a value less than N if and only if arithmetic overflow occurs. */ #define FLEXSIZEOF(type, member, n) \ ((offsetof (type, member) + FLEXALIGNOF (type) - 1 + (n)) \ & ~ (FLEXALIGNOF (type) - 1)) libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fopen.h0000644000000000000000000000011013726163410022402 xustar000000000000000024 mtime=1599661832.624 24 atime=1599661832.764 24 ctime=1599661999.563 libprelude-5.2.0/libmissing/tests/test-fopen.h0000644000000000000000000000411413726163410021405 0ustar00rootroot00000000000000/* Test of opening a file stream. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ /* Include and a form of first. */ #include #include #include "macros.h" /* Test fopen. Assumes BASE is defined. */ static int test_fopen (void) { FILE *f; /* Remove anything from prior partial run. */ unlink (BASE "file"); /* Read requires existing file. */ errno = 0; ASSERT (fopen (BASE "file", "r") == NULL); ASSERT (errno == ENOENT); /* Write can create a file. */ f = fopen (BASE "file", "w"); ASSERT (f); ASSERT (fclose (f) == 0); /* Trailing slash is invalid on non-directory. */ errno = 0; ASSERT (fopen (BASE "file/", "r") == NULL); ASSERT (errno == ENOTDIR || errno == EISDIR || errno == EINVAL); /* Cannot create a directory. */ errno = 0; ASSERT (fopen ("nonexist.ent/", "w") == NULL); ASSERT (errno == ENOTDIR || errno == EISDIR || errno == ENOENT || errno == EINVAL); /* Directories cannot be opened for writing. */ errno = 0; ASSERT (fopen (".", "w") == NULL); ASSERT (errno == EISDIR || errno == EINVAL || errno == EACCES); /* /dev/null must exist, and be writable. */ f = fopen ("/dev/null", "r"); ASSERT (f); ASSERT (fclose (f) == 0); f = fopen ("/dev/null", "w"); ASSERT (f); ASSERT (fclose (f) == 0); /* Cleanup. */ ASSERT (unlink (BASE "file") == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/fpucw.h0000644000000000000000000000011013726163410021442 xustar000000000000000024 mtime=1599661832.611 24 atime=1599661832.761 24 ctime=1599661999.565 libprelude-5.2.0/libmissing/tests/fpucw.h0000644000000000000000000001120013726163410020437 0ustar00rootroot00000000000000/* Manipulating the FPU control word. -*- coding: utf-8 -*- Copyright (C) 2007-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2007. 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 3 of the License, 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, see . */ #ifndef _FPUCW_H #define _FPUCW_H /* The i386 floating point hardware (the 387 compatible FPU, not the modern SSE/SSE2 hardware) has a controllable rounding precision. It is specified through the 'PC' bits in the FPU control word ('fctrl' register). (See the GNU libc i386 header for details.) On some platforms, such as Linux or Solaris, the default precision setting is set to "extended precision". This means that 'long double' instructions operate correctly, but 'double' computations often produce slightly different results as on strictly IEEE 754 conforming systems. On some platforms, such as NetBSD, the default precision is set to "double precision". This means that 'long double' instructions will operate only as 'double', i.e. lead to wrong results. Similarly on FreeBSD 6.4, at least for the division of 'long double' numbers. The FPU control word is under control of the application, i.e. it is not required to be set either way by the ABI. (In fact, the i386 ABI https://www.linux-mips.org/pub/linux/mips/doc/ABI/abi386-4.pdf page 3-12 = page 38 is not clear about it. But in any case, gcc treats the control word like a "preserved" register: it emits code that assumes that the control word is preserved across calls, and it restores the control word at the end of functions that modify it.) See Vincent Lefèvre's page https://www.vinc17.net/research/extended.en.html for a good explanation. See http://www.uwsg.iu.edu/hypermail/linux/kernel/0103.0/0453.html for some argumentation which setting should be the default. */ /* This header file provides the following facilities: fpucw_t integral type holding the value of 'fctrl' FPU_PC_MASK bit mask denoting the precision control FPU_PC_DOUBLE precision control for 53 bits mantissa FPU_PC_EXTENDED precision control for 64 bits mantissa GET_FPUCW () yields the current FPU control word SET_FPUCW (word) sets the FPU control word DECL_LONG_DOUBLE_ROUNDING variable declaration for BEGIN/END_LONG_DOUBLE_ROUNDING BEGIN_LONG_DOUBLE_ROUNDING () starts a sequence of instructions with 'long double' safe operation precision END_LONG_DOUBLE_ROUNDING () ends a sequence of instructions with 'long double' safe operation precision */ /* Inline assembler like this works only with GNU C. */ #if (defined __i386__ || defined __x86_64__) && defined __GNUC__ typedef unsigned short fpucw_t; /* glibc calls this fpu_control_t */ # define FPU_PC_MASK 0x0300 # define FPU_PC_DOUBLE 0x200 /* glibc calls this _FPU_DOUBLE */ # define FPU_PC_EXTENDED 0x300 /* glibc calls this _FPU_EXTENDED */ # define GET_FPUCW() \ ({ fpucw_t _cw; \ __asm__ __volatile__ ("fnstcw %0" : "=m" (*&_cw)); \ _cw; \ }) # define SET_FPUCW(word) \ (void)({ fpucw_t _ncw = (word); \ __asm__ __volatile__ ("fldcw %0" : : "m" (*&_ncw)); \ }) # define DECL_LONG_DOUBLE_ROUNDING \ fpucw_t oldcw; # define BEGIN_LONG_DOUBLE_ROUNDING() \ (void)(oldcw = GET_FPUCW (), \ SET_FPUCW ((oldcw & ~FPU_PC_MASK) | FPU_PC_EXTENDED)) # define END_LONG_DOUBLE_ROUNDING() \ SET_FPUCW (oldcw) #else typedef unsigned int fpucw_t; # define FPU_PC_MASK 0 # define FPU_PC_DOUBLE 0 # define FPU_PC_EXTENDED 0 # define GET_FPUCW() 0 # define SET_FPUCW(word) (void)(word) # define DECL_LONG_DOUBLE_ROUNDING # define BEGIN_LONG_DOUBLE_ROUNDING() # define END_LONG_DOUBLE_ROUNDING() #endif #endif /* _FPUCW_H */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fseek.sh0000644000000000000000000000011013726163410022553 xustar000000000000000024 mtime=1599661832.625 24 atime=1599661832.765 24 ctime=1599661999.567 libprelude-5.2.0/libmissing/tests/test-fseek.sh0000755000000000000000000000017013726163410021557 0ustar00rootroot00000000000000#!/bin/sh ./test-fseek${EXEEXT} 1 < "$srcdir/test-fseek.sh" || exit 1 echo hi | ./test-fseek${EXEEXT} || exit 1 exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fseek2.sh0000644000000000000000000000011013726163410022635 xustar000000000000000024 mtime=1599661832.625 24 atime=1599661832.765 24 ctime=1599661999.569 libprelude-5.2.0/libmissing/tests/test-fseek2.sh0000755000000000000000000000010513726163410021637 0ustar00rootroot00000000000000#!/bin/sh exec ./test-fseek${EXEEXT} 1 2 < "$srcdir/test-fseek2.sh" libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fseeko.sh0000644000000000000000000000010713726163410022740 xustar000000000000000024 mtime=1599661832.625 24 atime=1599661832.765 23 ctime=1599661999.57 libprelude-5.2.0/libmissing/tests/test-fseeko.sh0000755000000000000000000000017313726163410021741 0ustar00rootroot00000000000000#!/bin/sh ./test-fseeko${EXEEXT} 1 < "$srcdir/test-fseeko.sh" || exit 1 echo hi | ./test-fseeko${EXEEXT} || exit 1 exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fseeko2.sh0000644000000000000000000000011013726163410023014 xustar000000000000000024 mtime=1599661832.625 24 atime=1599661832.765 24 ctime=1599661999.572 libprelude-5.2.0/libmissing/tests/test-fseeko2.sh0000755000000000000000000000010713726163410022020 0ustar00rootroot00000000000000#!/bin/sh exec ./test-fseeko${EXEEXT} 1 2 < "$srcdir/test-fseeko2.sh" libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fseeko3.sh0000644000000000000000000000011013726163410023015 xustar000000000000000024 mtime=1599661832.625 24 atime=1599661832.765 24 ctime=1599661999.574 libprelude-5.2.0/libmissing/tests/test-fseeko3.sh0000755000000000000000000000022013726163410022015 0ustar00rootroot00000000000000#!/bin/sh ./test-fseeko3${EXEEXT} 0 "$srcdir/test-fseeko3.sh" || exit 1 ./test-fseeko3${EXEEXT} 1 "$srcdir/test-fseeko3.sh" || exit 1 exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-fseeko4.sh0000644000000000000000000000011013726163410023016 xustar000000000000000024 mtime=1599661832.626 24 atime=1599661832.765 24 ctime=1599661999.576 libprelude-5.2.0/libmissing/tests/test-fseeko4.sh0000755000000000000000000000011713726163410022023 0ustar00rootroot00000000000000#!/bin/sh ./test-fseeko4${EXEEXT} "$srcdir/test-fseeko4.sh" || exit 1 exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ftell.sh0000644000000000000000000000011013726163410022564 xustar000000000000000024 mtime=1599661832.626 24 atime=1599661832.765 24 ctime=1599661999.578 libprelude-5.2.0/libmissing/tests/test-ftell.sh0000755000000000000000000000017013726163410021570 0ustar00rootroot00000000000000#!/bin/sh ./test-ftell${EXEEXT} 1 < "$srcdir/test-ftell.sh" || exit 1 echo hi | ./test-ftell${EXEEXT} || exit 1 exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ftell2.sh0000644000000000000000000000010713726163410022654 xustar000000000000000024 mtime=1599661832.626 24 atime=1599661832.765 23 ctime=1599661999.58 libprelude-5.2.0/libmissing/tests/test-ftell2.sh0000755000000000000000000000010513726163410021650 0ustar00rootroot00000000000000#!/bin/sh exec ./test-ftell${EXEEXT} 1 2 < "$srcdir/test-ftell2.sh" libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ftello.sh0000644000000000000000000000011013726163410022743 xustar000000000000000024 mtime=1599661832.627 24 atime=1599661832.765 24 ctime=1599661999.581 libprelude-5.2.0/libmissing/tests/test-ftello.sh0000755000000000000000000000017313726163410021752 0ustar00rootroot00000000000000#!/bin/sh ./test-ftello${EXEEXT} 1 < "$srcdir/test-ftello.sh" || exit 1 echo hi | ./test-ftello${EXEEXT} || exit 1 exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ftello2.sh0000644000000000000000000000011013726163410023025 xustar000000000000000024 mtime=1599661832.627 24 atime=1599661832.765 24 ctime=1599661999.583 libprelude-5.2.0/libmissing/tests/test-ftello2.sh0000755000000000000000000000010713726163410022031 0ustar00rootroot00000000000000#!/bin/sh exec ./test-ftello${EXEEXT} 1 2 < "$srcdir/test-ftello2.sh" libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ftello4.sh0000644000000000000000000000011013726163410023027 xustar000000000000000024 mtime=1599661832.627 24 atime=1599661832.765 24 ctime=1599661999.585 libprelude-5.2.0/libmissing/tests/test-ftello4.sh0000755000000000000000000000011713726163410022034 0ustar00rootroot00000000000000#!/bin/sh ./test-ftello4${EXEEXT} "$srcdir/test-ftello4.sh" || exit 1 exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-ftruncate.sh0000644000000000000000000000011013726163410023451 xustar000000000000000024 mtime=1599661832.627 24 atime=1599661832.765 24 ctime=1599661999.587 libprelude-5.2.0/libmissing/tests/test-ftruncate.sh0000755000000000000000000000010613726163410022454 0ustar00rootroot00000000000000#!/bin/sh exec ./test-ftruncate${EXEEXT} "$srcdir/test-ftruncate.sh" libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/ignore-value.h0000644000000000000000000000011013726163410022713 xustar000000000000000024 mtime=1599661832.612 24 atime=1599661832.761 24 ctime=1599661999.591 libprelude-5.2.0/libmissing/tests/ignore-value.h0000644000000000000000000000423513726163410021722 0ustar00rootroot00000000000000/* ignore a function return without a compiler warning. -*- coding: utf-8 -*- Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Jim Meyering, Eric Blake and Pádraig Brady. */ /* Use "ignore_value" to avoid a warning when using a function declared with gcc's warn_unused_result attribute, but for which you really do want to ignore the result. Traditionally, people have used a "(void)" cast to indicate that a function's return value is deliberately unused. However, if the function is declared with __attribute__((warn_unused_result)), gcc issues a warning even with the cast. Caution: most of the time, you really should heed gcc's warning, and check the return value. However, in those exceptional cases in which you're sure you know what you're doing, use this function. For the record, here's one of the ignorable warnings: "copy.c:233: warning: ignoring return value of 'fchown', declared with attribute warn_unused_result". */ #ifndef _GL_IGNORE_VALUE_H #define _GL_IGNORE_VALUE_H /* Normally casting an expression to void discards its value, but GCC versions 3.4 and newer have __attribute__ ((__warn_unused_result__)) which may cause unwanted diagnostics in that case. Use __typeof__ and __extension__ to work around the problem, if the workaround is known to be needed. */ #if 3 < __GNUC__ + (4 <= __GNUC_MINOR__) # define ignore_value(x) \ (__extension__ ({ __typeof__ (x) __x = (x); (void) __x; })) #else # define ignore_value(x) ((void) (x)) #endif #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/inttypes.in.h0000644000000000000000000000011013726163410022602 xustar000000000000000024 mtime=1599661832.613 24 atime=1599661832.762 24 ctime=1599661999.593 libprelude-5.2.0/libmissing/tests/inttypes.in.h0000644000000000000000000006477213726163410021625 0ustar00rootroot00000000000000/* Copyright (C) 2006-2018 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Derek Price. This file is part of gnulib. 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 3 of the License, 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, see . */ /* * ISO C 99 for platforms that lack it. * */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Include the original if it exists, and if this file has not been included yet or if this file includes gnulib stdint.h which in turn includes this file. The include_next requires a split double-inclusion guard. */ #if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H # if @HAVE_INTTYPES_H@ /* Some pre-C++11 implementations need this. */ # if defined __cplusplus && ! defined __STDC_FORMAT_MACROS # define __STDC_FORMAT_MACROS 1 # endif # @INCLUDE_NEXT@ @NEXT_INTTYPES_H@ # endif #endif #if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H #define INTTYPES_H /* Include or the gnulib replacement. But avoid namespace pollution on glibc systems. */ #ifndef __GLIBC__ # include #endif /* Get CHAR_BIT. */ #include /* On mingw, __USE_MINGW_ANSI_STDIO only works if is also included */ #if defined _WIN32 && ! defined __CYGWIN__ # include #endif #if !(INT_MIN == INT32_MIN && INT_MAX == INT32_MAX) # error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to ." #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* 7.8.1 Macros for format specifiers */ #if defined _TNS_R_TARGET /* Tandem NonStop R series and compatible platforms released before July 2005 support %Ld but not %lld. */ # define _LONG_LONG_FORMAT_PREFIX "L" #else # define _LONG_LONG_FORMAT_PREFIX "ll" #endif #if !defined PRId8 || @PRI_MACROS_BROKEN@ # undef PRId8 # ifdef INT8_MAX # define PRId8 "d" # endif #endif #if !defined PRIi8 || @PRI_MACROS_BROKEN@ # undef PRIi8 # ifdef INT8_MAX # define PRIi8 "i" # endif #endif #if !defined PRIo8 || @PRI_MACROS_BROKEN@ # undef PRIo8 # ifdef UINT8_MAX # define PRIo8 "o" # endif #endif #if !defined PRIu8 || @PRI_MACROS_BROKEN@ # undef PRIu8 # ifdef UINT8_MAX # define PRIu8 "u" # endif #endif #if !defined PRIx8 || @PRI_MACROS_BROKEN@ # undef PRIx8 # ifdef UINT8_MAX # define PRIx8 "x" # endif #endif #if !defined PRIX8 || @PRI_MACROS_BROKEN@ # undef PRIX8 # ifdef UINT8_MAX # define PRIX8 "X" # endif #endif #if !defined PRId16 || @PRI_MACROS_BROKEN@ # undef PRId16 # ifdef INT16_MAX # define PRId16 "d" # endif #endif #if !defined PRIi16 || @PRI_MACROS_BROKEN@ # undef PRIi16 # ifdef INT16_MAX # define PRIi16 "i" # endif #endif #if !defined PRIo16 || @PRI_MACROS_BROKEN@ # undef PRIo16 # ifdef UINT16_MAX # define PRIo16 "o" # endif #endif #if !defined PRIu16 || @PRI_MACROS_BROKEN@ # undef PRIu16 # ifdef UINT16_MAX # define PRIu16 "u" # endif #endif #if !defined PRIx16 || @PRI_MACROS_BROKEN@ # undef PRIx16 # ifdef UINT16_MAX # define PRIx16 "x" # endif #endif #if !defined PRIX16 || @PRI_MACROS_BROKEN@ # undef PRIX16 # ifdef UINT16_MAX # define PRIX16 "X" # endif #endif #if !defined PRId32 || @PRI_MACROS_BROKEN@ # undef PRId32 # ifdef INT32_MAX # define PRId32 "d" # endif #endif #if !defined PRIi32 || @PRI_MACROS_BROKEN@ # undef PRIi32 # ifdef INT32_MAX # define PRIi32 "i" # endif #endif #if !defined PRIo32 || @PRI_MACROS_BROKEN@ # undef PRIo32 # ifdef UINT32_MAX # define PRIo32 "o" # endif #endif #if !defined PRIu32 || @PRI_MACROS_BROKEN@ # undef PRIu32 # ifdef UINT32_MAX # define PRIu32 "u" # endif #endif #if !defined PRIx32 || @PRI_MACROS_BROKEN@ # undef PRIx32 # ifdef UINT32_MAX # define PRIx32 "x" # endif #endif #if !defined PRIX32 || @PRI_MACROS_BROKEN@ # undef PRIX32 # ifdef UINT32_MAX # define PRIX32 "X" # endif #endif #ifdef INT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) # define _PRI64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _PRI64_PREFIX "I64" # elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined PRId64 || @PRI_MACROS_BROKEN@ # undef PRId64 # define PRId64 _PRI64_PREFIX "d" # endif # if !defined PRIi64 || @PRI_MACROS_BROKEN@ # undef PRIi64 # define PRIi64 _PRI64_PREFIX "i" # endif #endif #ifdef UINT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) # define _PRIu64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _PRIu64_PREFIX "I64" # elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined PRIo64 || @PRI_MACROS_BROKEN@ # undef PRIo64 # define PRIo64 _PRIu64_PREFIX "o" # endif # if !defined PRIu64 || @PRI_MACROS_BROKEN@ # undef PRIu64 # define PRIu64 _PRIu64_PREFIX "u" # endif # if !defined PRIx64 || @PRI_MACROS_BROKEN@ # undef PRIx64 # define PRIx64 _PRIu64_PREFIX "x" # endif # if !defined PRIX64 || @PRI_MACROS_BROKEN@ # undef PRIX64 # define PRIX64 _PRIu64_PREFIX "X" # endif #endif #if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIdLEAST8 # define PRIdLEAST8 "d" #endif #if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIiLEAST8 # define PRIiLEAST8 "i" #endif #if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIoLEAST8 # define PRIoLEAST8 "o" #endif #if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIuLEAST8 # define PRIuLEAST8 "u" #endif #if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIxLEAST8 # define PRIxLEAST8 "x" #endif #if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIXLEAST8 # define PRIXLEAST8 "X" #endif #if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIdLEAST16 # define PRIdLEAST16 "d" #endif #if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIiLEAST16 # define PRIiLEAST16 "i" #endif #if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIoLEAST16 # define PRIoLEAST16 "o" #endif #if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIuLEAST16 # define PRIuLEAST16 "u" #endif #if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIxLEAST16 # define PRIxLEAST16 "x" #endif #if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIXLEAST16 # define PRIXLEAST16 "X" #endif #if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIdLEAST32 # define PRIdLEAST32 "d" #endif #if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIiLEAST32 # define PRIiLEAST32 "i" #endif #if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIoLEAST32 # define PRIoLEAST32 "o" #endif #if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIuLEAST32 # define PRIuLEAST32 "u" #endif #if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIxLEAST32 # define PRIxLEAST32 "x" #endif #if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIXLEAST32 # define PRIXLEAST32 "X" #endif #ifdef INT64_MAX # if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIdLEAST64 # define PRIdLEAST64 PRId64 # endif # if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIiLEAST64 # define PRIiLEAST64 PRIi64 # endif #endif #ifdef UINT64_MAX # if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIoLEAST64 # define PRIoLEAST64 PRIo64 # endif # if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIuLEAST64 # define PRIuLEAST64 PRIu64 # endif # if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIxLEAST64 # define PRIxLEAST64 PRIx64 # endif # if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIXLEAST64 # define PRIXLEAST64 PRIX64 # endif #endif #if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@ # undef PRIdFAST8 # if INT_FAST8_MAX > INT32_MAX # define PRIdFAST8 PRId64 # else # define PRIdFAST8 "d" # endif #endif #if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@ # undef PRIiFAST8 # if INT_FAST8_MAX > INT32_MAX # define PRIiFAST8 PRIi64 # else # define PRIiFAST8 "i" # endif #endif #if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@ # undef PRIoFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIoFAST8 PRIo64 # else # define PRIoFAST8 "o" # endif #endif #if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@ # undef PRIuFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIuFAST8 PRIu64 # else # define PRIuFAST8 "u" # endif #endif #if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@ # undef PRIxFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIxFAST8 PRIx64 # else # define PRIxFAST8 "x" # endif #endif #if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@ # undef PRIXFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIXFAST8 PRIX64 # else # define PRIXFAST8 "X" # endif #endif #if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@ # undef PRIdFAST16 # if INT_FAST16_MAX > INT32_MAX # define PRIdFAST16 PRId64 # else # define PRIdFAST16 "d" # endif #endif #if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@ # undef PRIiFAST16 # if INT_FAST16_MAX > INT32_MAX # define PRIiFAST16 PRIi64 # else # define PRIiFAST16 "i" # endif #endif #if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@ # undef PRIoFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIoFAST16 PRIo64 # else # define PRIoFAST16 "o" # endif #endif #if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@ # undef PRIuFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIuFAST16 PRIu64 # else # define PRIuFAST16 "u" # endif #endif #if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@ # undef PRIxFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIxFAST16 PRIx64 # else # define PRIxFAST16 "x" # endif #endif #if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@ # undef PRIXFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIXFAST16 PRIX64 # else # define PRIXFAST16 "X" # endif #endif #if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@ # undef PRIdFAST32 # if INT_FAST32_MAX > INT32_MAX # define PRIdFAST32 PRId64 # else # define PRIdFAST32 "d" # endif #endif #if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@ # undef PRIiFAST32 # if INT_FAST32_MAX > INT32_MAX # define PRIiFAST32 PRIi64 # else # define PRIiFAST32 "i" # endif #endif #if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@ # undef PRIoFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIoFAST32 PRIo64 # else # define PRIoFAST32 "o" # endif #endif #if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@ # undef PRIuFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIuFAST32 PRIu64 # else # define PRIuFAST32 "u" # endif #endif #if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@ # undef PRIxFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIxFAST32 PRIx64 # else # define PRIxFAST32 "x" # endif #endif #if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@ # undef PRIXFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIXFAST32 PRIX64 # else # define PRIXFAST32 "X" # endif #endif #ifdef INT64_MAX # if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@ # undef PRIdFAST64 # define PRIdFAST64 PRId64 # endif # if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@ # undef PRIiFAST64 # define PRIiFAST64 PRIi64 # endif #endif #ifdef UINT64_MAX # if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@ # undef PRIoFAST64 # define PRIoFAST64 PRIo64 # endif # if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@ # undef PRIuFAST64 # define PRIuFAST64 PRIu64 # endif # if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@ # undef PRIxFAST64 # define PRIxFAST64 PRIx64 # endif # if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@ # undef PRIXFAST64 # define PRIXFAST64 PRIX64 # endif #endif #if !defined PRIdMAX || @PRI_MACROS_BROKEN@ # undef PRIdMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define PRIdMAX PRId64 # else # define PRIdMAX "ld" # endif #endif #if !defined PRIiMAX || @PRI_MACROS_BROKEN@ # undef PRIiMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define PRIiMAX PRIi64 # else # define PRIiMAX "li" # endif #endif #if !defined PRIoMAX || @PRI_MACROS_BROKEN@ # undef PRIoMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIoMAX PRIo64 # else # define PRIoMAX "lo" # endif #endif #if !defined PRIuMAX || @PRI_MACROS_BROKEN@ # undef PRIuMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIuMAX PRIu64 # else # define PRIuMAX "lu" # endif #endif #if !defined PRIxMAX || @PRI_MACROS_BROKEN@ # undef PRIxMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIxMAX PRIx64 # else # define PRIxMAX "lx" # endif #endif #if !defined PRIXMAX || @PRI_MACROS_BROKEN@ # undef PRIXMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIXMAX PRIX64 # else # define PRIXMAX "lX" # endif #endif #if !defined PRIdPTR || @PRI_MACROS_BROKEN@ # undef PRIdPTR # ifdef INTPTR_MAX # define PRIdPTR @PRIPTR_PREFIX@ "d" # endif #endif #if !defined PRIiPTR || @PRI_MACROS_BROKEN@ # undef PRIiPTR # ifdef INTPTR_MAX # define PRIiPTR @PRIPTR_PREFIX@ "i" # endif #endif #if !defined PRIoPTR || @PRI_MACROS_BROKEN@ # undef PRIoPTR # ifdef UINTPTR_MAX # define PRIoPTR @PRIPTR_PREFIX@ "o" # endif #endif #if !defined PRIuPTR || @PRI_MACROS_BROKEN@ # undef PRIuPTR # ifdef UINTPTR_MAX # define PRIuPTR @PRIPTR_PREFIX@ "u" # endif #endif #if !defined PRIxPTR || @PRI_MACROS_BROKEN@ # undef PRIxPTR # ifdef UINTPTR_MAX # define PRIxPTR @PRIPTR_PREFIX@ "x" # endif #endif #if !defined PRIXPTR || @PRI_MACROS_BROKEN@ # undef PRIXPTR # ifdef UINTPTR_MAX # define PRIXPTR @PRIPTR_PREFIX@ "X" # endif #endif #if !defined SCNd8 || @PRI_MACROS_BROKEN@ # undef SCNd8 # ifdef INT8_MAX # define SCNd8 "hhd" # endif #endif #if !defined SCNi8 || @PRI_MACROS_BROKEN@ # undef SCNi8 # ifdef INT8_MAX # define SCNi8 "hhi" # endif #endif #if !defined SCNo8 || @PRI_MACROS_BROKEN@ # undef SCNo8 # ifdef UINT8_MAX # define SCNo8 "hho" # endif #endif #if !defined SCNu8 || @PRI_MACROS_BROKEN@ # undef SCNu8 # ifdef UINT8_MAX # define SCNu8 "hhu" # endif #endif #if !defined SCNx8 || @PRI_MACROS_BROKEN@ # undef SCNx8 # ifdef UINT8_MAX # define SCNx8 "hhx" # endif #endif #if !defined SCNd16 || @PRI_MACROS_BROKEN@ # undef SCNd16 # ifdef INT16_MAX # define SCNd16 "hd" # endif #endif #if !defined SCNi16 || @PRI_MACROS_BROKEN@ # undef SCNi16 # ifdef INT16_MAX # define SCNi16 "hi" # endif #endif #if !defined SCNo16 || @PRI_MACROS_BROKEN@ # undef SCNo16 # ifdef UINT16_MAX # define SCNo16 "ho" # endif #endif #if !defined SCNu16 || @PRI_MACROS_BROKEN@ # undef SCNu16 # ifdef UINT16_MAX # define SCNu16 "hu" # endif #endif #if !defined SCNx16 || @PRI_MACROS_BROKEN@ # undef SCNx16 # ifdef UINT16_MAX # define SCNx16 "hx" # endif #endif #if !defined SCNd32 || @PRI_MACROS_BROKEN@ # undef SCNd32 # ifdef INT32_MAX # define SCNd32 "d" # endif #endif #if !defined SCNi32 || @PRI_MACROS_BROKEN@ # undef SCNi32 # ifdef INT32_MAX # define SCNi32 "i" # endif #endif #if !defined SCNo32 || @PRI_MACROS_BROKEN@ # undef SCNo32 # ifdef UINT32_MAX # define SCNo32 "o" # endif #endif #if !defined SCNu32 || @PRI_MACROS_BROKEN@ # undef SCNu32 # ifdef UINT32_MAX # define SCNu32 "u" # endif #endif #if !defined SCNx32 || @PRI_MACROS_BROKEN@ # undef SCNx32 # ifdef UINT32_MAX # define SCNx32 "x" # endif #endif #ifdef INT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) # define _SCN64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _SCN64_PREFIX "I64" # elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined SCNd64 || @PRI_MACROS_BROKEN@ # undef SCNd64 # define SCNd64 _SCN64_PREFIX "d" # endif # if !defined SCNi64 || @PRI_MACROS_BROKEN@ # undef SCNi64 # define SCNi64 _SCN64_PREFIX "i" # endif #endif #ifdef UINT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) # define _SCNu64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _SCNu64_PREFIX "I64" # elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined SCNo64 || @PRI_MACROS_BROKEN@ # undef SCNo64 # define SCNo64 _SCNu64_PREFIX "o" # endif # if !defined SCNu64 || @PRI_MACROS_BROKEN@ # undef SCNu64 # define SCNu64 _SCNu64_PREFIX "u" # endif # if !defined SCNx64 || @PRI_MACROS_BROKEN@ # undef SCNx64 # define SCNx64 _SCNu64_PREFIX "x" # endif #endif #if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNdLEAST8 # define SCNdLEAST8 "hhd" #endif #if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNiLEAST8 # define SCNiLEAST8 "hhi" #endif #if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNoLEAST8 # define SCNoLEAST8 "hho" #endif #if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNuLEAST8 # define SCNuLEAST8 "hhu" #endif #if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNxLEAST8 # define SCNxLEAST8 "hhx" #endif #if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNdLEAST16 # define SCNdLEAST16 "hd" #endif #if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNiLEAST16 # define SCNiLEAST16 "hi" #endif #if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNoLEAST16 # define SCNoLEAST16 "ho" #endif #if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNuLEAST16 # define SCNuLEAST16 "hu" #endif #if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNxLEAST16 # define SCNxLEAST16 "hx" #endif #if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNdLEAST32 # define SCNdLEAST32 "d" #endif #if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNiLEAST32 # define SCNiLEAST32 "i" #endif #if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNoLEAST32 # define SCNoLEAST32 "o" #endif #if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNuLEAST32 # define SCNuLEAST32 "u" #endif #if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNxLEAST32 # define SCNxLEAST32 "x" #endif #ifdef INT64_MAX # if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNdLEAST64 # define SCNdLEAST64 SCNd64 # endif # if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNiLEAST64 # define SCNiLEAST64 SCNi64 # endif #endif #ifdef UINT64_MAX # if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNoLEAST64 # define SCNoLEAST64 SCNo64 # endif # if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNuLEAST64 # define SCNuLEAST64 SCNu64 # endif # if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNxLEAST64 # define SCNxLEAST64 SCNx64 # endif #endif #if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@ # undef SCNdFAST8 # if INT_FAST8_MAX > INT32_MAX # define SCNdFAST8 SCNd64 # elif INT_FAST8_MAX == 0x7fff # define SCNdFAST8 "hd" # elif INT_FAST8_MAX == 0x7f # define SCNdFAST8 "hhd" # else # define SCNdFAST8 "d" # endif #endif #if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@ # undef SCNiFAST8 # if INT_FAST8_MAX > INT32_MAX # define SCNiFAST8 SCNi64 # elif INT_FAST8_MAX == 0x7fff # define SCNiFAST8 "hi" # elif INT_FAST8_MAX == 0x7f # define SCNiFAST8 "hhi" # else # define SCNiFAST8 "i" # endif #endif #if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@ # undef SCNoFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define SCNoFAST8 SCNo64 # elif UINT_FAST8_MAX == 0xffff # define SCNoFAST8 "ho" # elif UINT_FAST8_MAX == 0xff # define SCNoFAST8 "hho" # else # define SCNoFAST8 "o" # endif #endif #if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@ # undef SCNuFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define SCNuFAST8 SCNu64 # elif UINT_FAST8_MAX == 0xffff # define SCNuFAST8 "hu" # elif UINT_FAST8_MAX == 0xff # define SCNuFAST8 "hhu" # else # define SCNuFAST8 "u" # endif #endif #if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@ # undef SCNxFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define SCNxFAST8 SCNx64 # elif UINT_FAST8_MAX == 0xffff # define SCNxFAST8 "hx" # elif UINT_FAST8_MAX == 0xff # define SCNxFAST8 "hhx" # else # define SCNxFAST8 "x" # endif #endif #if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@ # undef SCNdFAST16 # if INT_FAST16_MAX > INT32_MAX # define SCNdFAST16 SCNd64 # elif INT_FAST16_MAX == 0x7fff # define SCNdFAST16 "hd" # else # define SCNdFAST16 "d" # endif #endif #if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@ # undef SCNiFAST16 # if INT_FAST16_MAX > INT32_MAX # define SCNiFAST16 SCNi64 # elif INT_FAST16_MAX == 0x7fff # define SCNiFAST16 "hi" # else # define SCNiFAST16 "i" # endif #endif #if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@ # undef SCNoFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define SCNoFAST16 SCNo64 # elif UINT_FAST16_MAX == 0xffff # define SCNoFAST16 "ho" # else # define SCNoFAST16 "o" # endif #endif #if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@ # undef SCNuFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define SCNuFAST16 SCNu64 # elif UINT_FAST16_MAX == 0xffff # define SCNuFAST16 "hu" # else # define SCNuFAST16 "u" # endif #endif #if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@ # undef SCNxFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define SCNxFAST16 SCNx64 # elif UINT_FAST16_MAX == 0xffff # define SCNxFAST16 "hx" # else # define SCNxFAST16 "x" # endif #endif #if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@ # undef SCNdFAST32 # if INT_FAST32_MAX > INT32_MAX # define SCNdFAST32 SCNd64 # else # define SCNdFAST32 "d" # endif #endif #if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@ # undef SCNiFAST32 # if INT_FAST32_MAX > INT32_MAX # define SCNiFAST32 SCNi64 # else # define SCNiFAST32 "i" # endif #endif #if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@ # undef SCNoFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define SCNoFAST32 SCNo64 # else # define SCNoFAST32 "o" # endif #endif #if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@ # undef SCNuFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define SCNuFAST32 SCNu64 # else # define SCNuFAST32 "u" # endif #endif #if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@ # undef SCNxFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define SCNxFAST32 SCNx64 # else # define SCNxFAST32 "x" # endif #endif #ifdef INT64_MAX # if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@ # undef SCNdFAST64 # define SCNdFAST64 SCNd64 # endif # if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@ # undef SCNiFAST64 # define SCNiFAST64 SCNi64 # endif #endif #ifdef UINT64_MAX # if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@ # undef SCNoFAST64 # define SCNoFAST64 SCNo64 # endif # if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@ # undef SCNuFAST64 # define SCNuFAST64 SCNu64 # endif # if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@ # undef SCNxFAST64 # define SCNxFAST64 SCNx64 # endif #endif #if !defined SCNdMAX || @PRI_MACROS_BROKEN@ # undef SCNdMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define SCNdMAX SCNd64 # else # define SCNdMAX "ld" # endif #endif #if !defined SCNiMAX || @PRI_MACROS_BROKEN@ # undef SCNiMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define SCNiMAX SCNi64 # else # define SCNiMAX "li" # endif #endif #if !defined SCNoMAX || @PRI_MACROS_BROKEN@ # undef SCNoMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define SCNoMAX SCNo64 # else # define SCNoMAX "lo" # endif #endif #if !defined SCNuMAX || @PRI_MACROS_BROKEN@ # undef SCNuMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define SCNuMAX SCNu64 # else # define SCNuMAX "lu" # endif #endif #if !defined SCNxMAX || @PRI_MACROS_BROKEN@ # undef SCNxMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define SCNxMAX SCNx64 # else # define SCNxMAX "lx" # endif #endif #if !defined SCNdPTR || @PRI_MACROS_BROKEN@ # undef SCNdPTR # ifdef INTPTR_MAX # define SCNdPTR @PRIPTR_PREFIX@ "d" # endif #endif #if !defined SCNiPTR || @PRI_MACROS_BROKEN@ # undef SCNiPTR # ifdef INTPTR_MAX # define SCNiPTR @PRIPTR_PREFIX@ "i" # endif #endif #if !defined SCNoPTR || @PRI_MACROS_BROKEN@ # undef SCNoPTR # ifdef UINTPTR_MAX # define SCNoPTR @PRIPTR_PREFIX@ "o" # endif #endif #if !defined SCNuPTR || @PRI_MACROS_BROKEN@ # undef SCNuPTR # ifdef UINTPTR_MAX # define SCNuPTR @PRIPTR_PREFIX@ "u" # endif #endif #if !defined SCNxPTR || @PRI_MACROS_BROKEN@ # undef SCNxPTR # ifdef UINTPTR_MAX # define SCNxPTR @PRIPTR_PREFIX@ "x" # endif #endif /* 7.8.2 Functions for greatest-width integer types */ #ifdef __cplusplus extern "C" { #endif #if @GNULIB_IMAXABS@ # if !@HAVE_DECL_IMAXABS@ extern intmax_t imaxabs (intmax_t); # endif #elif defined GNULIB_POSIXCHECK # undef imaxabs # if HAVE_RAW_DECL_IMAXABS _GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " "use gnulib module imaxabs for portability"); # endif #endif #if @GNULIB_IMAXDIV@ # if !@HAVE_IMAXDIV_T@ # if !GNULIB_defined_imaxdiv_t typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; # define GNULIB_defined_imaxdiv_t 1 # endif # endif # if !@HAVE_DECL_IMAXDIV@ extern imaxdiv_t imaxdiv (intmax_t, intmax_t); # endif #elif defined GNULIB_POSIXCHECK # undef imaxdiv # if HAVE_RAW_DECL_IMAXDIV _GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " "use gnulib module imaxdiv for portability"); # endif #endif #if @GNULIB_STRTOIMAX@ # if @REPLACE_STRTOIMAX@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtoimax # define strtoimax rpl_strtoimax # endif _GL_FUNCDECL_RPL (strtoimax, intmax_t, (const char *, char **, int) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int)); # else # if !@HAVE_DECL_STRTOIMAX@ # undef strtoimax _GL_FUNCDECL_SYS (strtoimax, intmax_t, (const char *, char **, int) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int)); # endif _GL_CXXALIASWARN (strtoimax); #elif defined GNULIB_POSIXCHECK # undef strtoimax # if HAVE_RAW_DECL_STRTOIMAX _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " "use gnulib module strtoimax for portability"); # endif #endif #if @GNULIB_STRTOUMAX@ # if @REPLACE_STRTOUMAX@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtoumax # define strtoumax rpl_strtoumax # endif _GL_FUNCDECL_RPL (strtoumax, uintmax_t, (const char *, char **, int) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtoumax, uintmax_t, (const char *, char **, int)); # else # if !@HAVE_DECL_STRTOUMAX@ # undef strtoumax _GL_FUNCDECL_SYS (strtoumax, uintmax_t, (const char *, char **, int) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int)); # endif _GL_CXXALIASWARN (strtoumax); #elif defined GNULIB_POSIXCHECK # undef strtoumax # if HAVE_RAW_DECL_STRTOUMAX _GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " "use gnulib module strtoumax for portability"); # endif #endif /* Don't bother defining or declaring wcstoimax and wcstoumax, since wide-character functions like this are hardly ever useful. */ #ifdef __cplusplus } #endif #endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/localename.h0000644000000000000000000000011013726163410022416 xustar000000000000000024 mtime=1599661832.615 24 atime=1599661832.762 24 ctime=1599661999.596 libprelude-5.2.0/libmissing/tests/localename.h0000644000000000000000000001100313726163410021414 0ustar00rootroot00000000000000/* Determine name of the currently selected locale. Copyright (C) 2007, 2009-2018 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 3 of the License, 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, see . */ #ifndef _GL_LOCALENAME_H #define _GL_LOCALENAME_H #ifdef __cplusplus extern "C" { #endif /* Determine the current locale's name. It considers both the POSIX notion of locale name (see functions gl_locale_name_thread and gl_locale_name_posix) and the system notion of locale name (see function gl_locale_name_default). CATEGORY is a locale category abbreviation, as defined in , but not LC_ALL. E.g. LC_MESSAGES. CATEGORYNAME is the name of CATEGORY as a string, e.g. "LC_MESSAGES". Return the locale category's name, canonicalized into XPG syntax language[_territory][.codeset][@modifier] The codeset part in the result is not reliable; the locale_charset() should be used for codeset information instead. The result must not be freed; it is statically allocated. */ extern const char * gl_locale_name (int category, const char *categoryname); /* Determine the current per-thread locale's name, as specified by uselocale() calls. CATEGORY is a locale category abbreviation, as defined in , but not LC_ALL. E.g. LC_MESSAGES. CATEGORYNAME is the name of CATEGORY as a string, e.g. "LC_MESSAGES". Return the locale category's name, canonicalized into XPG syntax language[_territory][.codeset][@modifier] or NULL if no locale has been specified for the current thread. The codeset part in the result is not reliable; the locale_charset() should be used for codeset information instead. The result must not be freed; it is statically allocated. */ extern const char * gl_locale_name_thread (int category, const char *categoryname); /* Determine the thread-independent current locale's name, as specified by setlocale() calls or by environment variables. CATEGORY is a locale category abbreviation, as defined in , but not LC_ALL. E.g. LC_MESSAGES. CATEGORYNAME is the name of CATEGORY as a string, e.g. "LC_MESSAGES". Return the locale category's name, canonicalized into XPG syntax language[_territory][.codeset][@modifier] or NULL if no locale has been specified to setlocale() or by environment variables. The codeset part in the result is not reliable; the locale_charset() should be used for codeset information instead. The result must not be freed; it is statically allocated. */ extern const char * gl_locale_name_posix (int category, const char *categoryname); /* Determine the default locale's name, as specified by environment variables. Return the locale category's name, or NULL if no locale has been specified by environment variables. The result must not be freed; it is statically allocated. */ extern const char * gl_locale_name_environ (int category, const char *categoryname); /* Determine the default locale's name. This is the current locale's name, if not specified by uselocale() calls, by setlocale() calls, or by environment variables. This locale name is usually determined by systems settings that the user can manipulate through a GUI. Quoting POSIX:2001: "All implementations shall define a locale as the default locale, to be invoked when no environment variables are set, or set to the empty string. This default locale can be the C locale or any other implementation-defined locale. Some implementations may provide facilities for local installation administrators to set the default locale, customizing it for each location. IEEE Std 1003.1-2001 does not require such a facility." The result must not be freed; it is statically allocated. */ extern const char * gl_locale_name_default (void) #if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE \ || defined _WIN32 || defined __CYGWIN__) _GL_ATTRIBUTE_CONST #endif ; #ifdef __cplusplus } #endif #endif /* _GL_LOCALENAME_H */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-lseek.sh0000644000000000000000000000011013726163410022561 xustar000000000000000024 mtime=1599661832.632 24 atime=1599661832.766 24 ctime=1599661999.598 libprelude-5.2.0/libmissing/tests/test-lseek.sh0000755000000000000000000000060713726163410021572 0ustar00rootroot00000000000000#!/bin/sh tmpfiles= trap 'rm -fr $tmpfiles' 1 2 3 15 tmpfiles=t-lseek.tmp # seekable files ./test-lseek${EXEEXT} 0 < "$srcdir/test-lseek.sh" > t-lseek.tmp || exit 1 # pipes echo hi | { ./test-lseek${EXEEXT} 1; echo $? > t-lseek.tmp; cat > /dev/null; } | cat test "`cat t-lseek.tmp`" = "0" || exit 1 # closed descriptors ./test-lseek${EXEEXT} 2 <&- >&- || exit 1 rm -rf $tmpfiles exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-lstat.h0000644000000000000000000000011013726163410022422 xustar000000000000000024 mtime=1599661832.633 24 atime=1599661832.766 24 ctime=1599661999.599 libprelude-5.2.0/libmissing/tests/test-lstat.h0000644000000000000000000000727113726163410021434 0ustar00rootroot00000000000000/* Test of lstat() function. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Simon Josefsson, 2008; and Eric Blake, 2009. */ /* This file is designed to test both lstat(n,buf) and fstatat(AT_FDCWD,n,buf,AT_SYMLINK_NOFOLLOW). FUNC is the function to test. Assumes that BASE and ASSERT are already defined, and that appropriate headers are already included. If PRINT, warn before skipping symlink tests with status 77. */ static int test_lstat_func (int (*func) (char const *, struct stat *), bool print) { struct stat st1; struct stat st2; /* Test for common directories. */ ASSERT (func (".", &st1) == 0); ASSERT (func ("./", &st2) == 0); ASSERT (SAME_INODE (st1, st2)); ASSERT (S_ISDIR (st1.st_mode)); ASSERT (S_ISDIR (st2.st_mode)); ASSERT (func ("/", &st1) == 0); ASSERT (func ("///", &st2) == 0); ASSERT (SAME_INODE (st1, st2)); ASSERT (S_ISDIR (st1.st_mode)); ASSERT (S_ISDIR (st2.st_mode)); ASSERT (func ("..", &st1) == 0); ASSERT (S_ISDIR (st1.st_mode)); /* Test for error conditions. */ errno = 0; ASSERT (func ("", &st1) == -1); ASSERT (errno == ENOENT); errno = 0; ASSERT (func ("nosuch", &st1) == -1); ASSERT (errno == ENOENT); errno = 0; ASSERT (func ("nosuch/", &st1) == -1); ASSERT (errno == ENOENT); ASSERT (close (creat (BASE "file", 0600)) == 0); ASSERT (func (BASE "file", &st1) == 0); ASSERT (S_ISREG (st1.st_mode)); errno = 0; ASSERT (func (BASE "file/", &st1) == -1); ASSERT (errno == ENOTDIR); /* Now for some symlink tests, where supported. We set up: link1 -> directory link2 -> file link3 -> dangling link4 -> loop then test behavior both with and without trailing slash. */ if (symlink (".", BASE "link1") != 0) { ASSERT (unlink (BASE "file") == 0); if (print) fputs ("skipping test: symlinks not supported on this file system\n", stderr); return 77; } ASSERT (symlink (BASE "file", BASE "link2") == 0); ASSERT (symlink (BASE "nosuch", BASE "link3") == 0); ASSERT (symlink (BASE "link4", BASE "link4") == 0); ASSERT (func (BASE "link1", &st1) == 0); ASSERT (S_ISLNK (st1.st_mode)); ASSERT (func (BASE "link1/", &st1) == 0); ASSERT (stat (BASE "link1", &st2) == 0); ASSERT (S_ISDIR (st1.st_mode)); ASSERT (S_ISDIR (st2.st_mode)); ASSERT (SAME_INODE (st1, st2)); ASSERT (func (BASE "link2", &st1) == 0); ASSERT (S_ISLNK (st1.st_mode)); errno = 0; ASSERT (func (BASE "link2/", &st1) == -1); ASSERT (errno == ENOTDIR); ASSERT (func (BASE "link3", &st1) == 0); ASSERT (S_ISLNK (st1.st_mode)); errno = 0; ASSERT (func (BASE "link3/", &st1) == -1); ASSERT (errno == ENOENT); ASSERT (func (BASE "link4", &st1) == 0); ASSERT (S_ISLNK (st1.st_mode)); errno = 0; ASSERT (func (BASE "link4/", &st1) == -1); ASSERT (errno == ELOOP); /* Cleanup. */ ASSERT (unlink (BASE "file") == 0); ASSERT (unlink (BASE "link1") == 0); ASSERT (unlink (BASE "link2") == 0); ASSERT (unlink (BASE "link3") == 0); ASSERT (unlink (BASE "link4") == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbrtowc1.sh0000644000000000000000000000011013726163410023214 xustar000000000000000024 mtime=1599661832.634 24 atime=1599661832.767 24 ctime=1599661999.601 libprelude-5.2.0/libmissing/tests/test-mbrtowc1.sh0000755000000000000000000000054513726163410022226 0ustar00rootroot00000000000000#!/bin/sh # Test in an ISO-8859-1 or ISO-8859-15 locale. : ${LOCALE_FR=fr_FR} if test $LOCALE_FR = none; then if test -f /usr/bin/localedef; then echo "Skipping test: no traditional french locale is installed" else echo "Skipping test: no traditional french locale is supported" fi exit 77 fi LC_ALL=$LOCALE_FR \ ./test-mbrtowc${EXEEXT} 1 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbrtowc2.sh0000644000000000000000000000011013726163410023215 xustar000000000000000024 mtime=1599661832.634 24 atime=1599661832.767 24 ctime=1599661999.603 libprelude-5.2.0/libmissing/tests/test-mbrtowc2.sh0000755000000000000000000000057013726163410022225 0ustar00rootroot00000000000000#!/bin/sh # Test whether a specific UTF-8 locale is installed. : ${LOCALE_FR_UTF8=fr_FR.UTF-8} if test $LOCALE_FR_UTF8 = none; then if test -f /usr/bin/localedef; then echo "Skipping test: no french Unicode locale is installed" else echo "Skipping test: no french Unicode locale is supported" fi exit 77 fi LC_ALL=$LOCALE_FR_UTF8 \ ./test-mbrtowc${EXEEXT} 2 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbrtowc3.sh0000644000000000000000000000011013726163410023216 xustar000000000000000024 mtime=1599661832.634 24 atime=1599661832.767 24 ctime=1599661999.605 libprelude-5.2.0/libmissing/tests/test-mbrtowc3.sh0000755000000000000000000000056013726163410022225 0ustar00rootroot00000000000000#!/bin/sh # Test whether a specific EUC-JP locale is installed. : ${LOCALE_JA=ja_JP} if test $LOCALE_JA = none; then if test -f /usr/bin/localedef; then echo "Skipping test: no traditional japanese locale is installed" else echo "Skipping test: no traditional japanese locale is supported" fi exit 77 fi LC_ALL=$LOCALE_JA \ ./test-mbrtowc${EXEEXT} 3 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbrtowc4.sh0000644000000000000000000000011013726163410023217 xustar000000000000000024 mtime=1599661832.634 24 atime=1599661832.767 24 ctime=1599661999.606 libprelude-5.2.0/libmissing/tests/test-mbrtowc4.sh0000755000000000000000000000060213726163410022223 0ustar00rootroot00000000000000#!/bin/sh # Test whether a specific GB18030 locale is installed. : ${LOCALE_ZH_CN=zh_CN.GB18030} if test $LOCALE_ZH_CN = none; then if test -f /usr/bin/localedef; then echo "Skipping test: no transitional chinese locale is installed" else echo "Skipping test: no transitional chinese locale is supported" fi exit 77 fi LC_ALL=$LOCALE_ZH_CN \ ./test-mbrtowc${EXEEXT} 4 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbrtowc5.sh0000644000000000000000000000011013726163410023220 xustar000000000000000024 mtime=1599661832.634 24 atime=1599661832.767 24 ctime=1599661999.608 libprelude-5.2.0/libmissing/tests/test-mbrtowc5.sh0000755000000000000000000000022513726163410022225 0ustar00rootroot00000000000000#!/bin/sh # Test whether the POSIX locale has encoding errors. LC_ALL=C \ ./test-mbrtowc${EXEEXT} 5 || exit LC_ALL=POSIX \ ./test-mbrtowc${EXEEXT} 5 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbrtowc-w32-1.sh0000644000000000000000000000010713726163410023710 xustar000000000000000024 mtime=1599661832.633 24 atime=1599661832.767 23 ctime=1599661999.61 libprelude-5.2.0/libmissing/tests/test-mbrtowc-w32-1.sh0000755000000000000000000000012213726163410022703 0ustar00rootroot00000000000000#!/bin/sh # Test a CP1252 locale. ./test-mbrtowc-w32${EXEEXT} French_France 1252 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbrtowc-w32-2.sh0000644000000000000000000000011013726163410023703 xustar000000000000000024 mtime=1599661832.633 24 atime=1599661832.767 24 ctime=1599661999.612 libprelude-5.2.0/libmissing/tests/test-mbrtowc-w32-2.sh0000755000000000000000000000013213726163410022705 0ustar00rootroot00000000000000#!/bin/sh # Test a CP1256 locale. ./test-mbrtowc-w32${EXEEXT} "Arabic_Saudi Arabia" 1256 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbrtowc-w32-3.sh0000644000000000000000000000011013726163410023704 xustar000000000000000024 mtime=1599661832.633 24 atime=1599661832.767 24 ctime=1599661999.613 libprelude-5.2.0/libmissing/tests/test-mbrtowc-w32-3.sh0000755000000000000000000000012113726163410022704 0ustar00rootroot00000000000000#!/bin/sh # Test a CP932 locale. ./test-mbrtowc-w32${EXEEXT} Japanese_Japan 932 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbrtowc-w32-4.sh0000644000000000000000000000011013726163410023705 xustar000000000000000024 mtime=1599661832.633 24 atime=1599661832.767 24 ctime=1599661999.615 libprelude-5.2.0/libmissing/tests/test-mbrtowc-w32-4.sh0000755000000000000000000000012113726163410022705 0ustar00rootroot00000000000000#!/bin/sh # Test a CP950 locale. ./test-mbrtowc-w32${EXEEXT} Chinese_Taiwan 950 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbrtowc-w32-5.sh0000644000000000000000000000011013726163410023706 xustar000000000000000024 mtime=1599661832.633 24 atime=1599661832.767 24 ctime=1599661999.617 libprelude-5.2.0/libmissing/tests/test-mbrtowc-w32-5.sh0000755000000000000000000000012013726163410022705 0ustar00rootroot00000000000000#!/bin/sh # Test a CP936 locale. ./test-mbrtowc-w32${EXEEXT} Chinese_China 936 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-mbsinit.sh0000644000000000000000000000011013726163410023123 xustar000000000000000024 mtime=1599661832.635 24 atime=1599661832.767 24 ctime=1599661999.619 libprelude-5.2.0/libmissing/tests/test-mbsinit.sh0000755000000000000000000000056613726163410022140 0ustar00rootroot00000000000000#!/bin/sh # Test whether a specific UTF-8 locale is installed. : ${LOCALE_FR_UTF8=fr_FR.UTF-8} if test $LOCALE_FR_UTF8 = none; then if test -f /usr/bin/localedef; then echo "Skipping test: no french Unicode locale is installed" else echo "Skipping test: no french Unicode locale is supported" fi exit 77 fi LC_ALL=$LOCALE_FR_UTF8 \ ./test-mbsinit${EXEEXT} libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/zerosize-ptr.h0000644000000000000000000000010713726163410023001 xustar000000000000000024 mtime=1599661832.651 24 atime=1599661832.771 23 ctime=1599661999.62 libprelude-5.2.0/libmissing/tests/zerosize-ptr.h0000644000000000000000000000572513726163410022007 0ustar00rootroot00000000000000/* Return a pointer to a zero-size object in memory. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* ISO C 99 does not allow memcmp(), memchr() etc. to be invoked with a NULL argument. Therefore this file produces a non-NULL pointer which cannot be dereferenced, if possible. */ /* On Android, when targeting Android 4.4 or older with a GCC toolchain, prevent a compilation error "error: call to 'mmap' declared with attribute error: mmap is not available with _FILE_OFFSET_BITS=64 when using GCC until android-21. Either raise your minSdkVersion, disable _FILE_OFFSET_BITS=64, or switch to Clang." The files that we access in this compilation unit are less than 2 GB large. */ #if defined __ANDROID__ # undef _FILE_OFFSET_BITS # undef __USE_FILE_OFFSET64 #endif #include /* Test whether mmap() and mprotect() are available. We don't use HAVE_MMAP, because AC_FUNC_MMAP would not define it on HP-UX. HAVE_MPROTECT is not enough, because mingw does not have mmap() but has an mprotect() function in libgcc.a. */ #if HAVE_SYS_MMAN_H && HAVE_MPROTECT # include # include # include # include /* Define MAP_FILE when it isn't otherwise. */ # ifndef MAP_FILE # define MAP_FILE 0 # endif #endif /* Return a pointer to a zero-size object in memory (that is, actually, a pointer to a page boundary where the previous page is readable and writable and the next page is neither readable not writable), if possible. Return NULL otherwise. */ static void * zerosize_ptr (void) { /* Use mmap and mprotect when they exist. Don't test HAVE_MMAP, because it is not defined on HP-UX 11 (since it does not support MAP_FIXED). */ #if HAVE_SYS_MMAN_H && HAVE_MPROTECT # if HAVE_MAP_ANONYMOUS const int flags = MAP_ANONYMOUS | MAP_PRIVATE; const int fd = -1; # else /* !HAVE_MAP_ANONYMOUS */ const int flags = MAP_FILE | MAP_PRIVATE; int fd = open ("/dev/zero", O_RDONLY, 0666); if (fd >= 0) # endif { int pagesize = getpagesize (); char *two_pages = (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, flags, fd, 0); if (two_pages != (char *)(-1) && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) return two_pages + pagesize; } #endif return NULL; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/null-ptr.h0000644000000000000000000000011013726163410022073 xustar000000000000000024 mtime=1599661832.616 24 atime=1599661832.763 24 ctime=1599661999.622 libprelude-5.2.0/libmissing/tests/null-ptr.h0000644000000000000000000000223213726163410021075 0ustar00rootroot00000000000000/* Return a NULL pointer, without letting the compiler know it. Copyright (C) 2017-2018 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 3 of the License, 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, see . */ #include /* Return NULL. Usual compilers are not able to infer something about the return value. */ static void * null_ptr (void) { unsigned int x = rand (); unsigned int y = x * x; if (y & 2) return (void *) -1; else return (void *) 0; } /* If you want to know why this always returns NULL, read https://en.wikipedia.org/wiki/Quadratic_residue#Prime_power_modulus . */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-nl_langinfo.sh0000644000000000000000000000011013726163410023744 xustar000000000000000024 mtime=1599661832.636 24 atime=1599661832.767 24 ctime=1599661999.624 libprelude-5.2.0/libmissing/tests/test-nl_langinfo.sh0000755000000000000000000000066513726163410022761 0ustar00rootroot00000000000000#!/bin/sh LC_ALL=C ./test-nl_langinfo${EXEEXT} 0 || exit 1 # Test whether a specific traditional locale is installed. : ${LOCALE_FR=fr_FR} if test $LOCALE_FR != none; then LC_ALL=$LOCALE_FR ./test-nl_langinfo${EXEEXT} 1 || exit 1 fi # Test whether a specific UTF-8 locale is installed. : ${LOCALE_FR_UTF8=fr_FR.UTF-8} if test $LOCALE_FR_UTF8 != none; then LC_ALL=$LOCALE_FR_UTF8 ./test-nl_langinfo${EXEEXT} 2 || exit 1 fi exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-open.h0000644000000000000000000000011013726163410022234 xustar000000000000000024 mtime=1599661832.637 24 atime=1599661832.767 24 ctime=1599661999.626 libprelude-5.2.0/libmissing/tests/test-open.h0000644000000000000000000000646113726163410021246 0ustar00rootroot00000000000000/* Test of opening a file descriptor. Copyright (C) 2007-2018 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 3 of the License, 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, see . */ /* Written by Bruno Haible , 2007. */ /* Make test_open always inline if we're using Fortify, which defines __always_inline to do that. Do nothing otherwise. This works around a glibc bug whereby 'open' cannot be used as a function pointer when _FORTIFY_SOURCE is positive. */ #if __GLIBC__ && defined __always_inline # define ALWAYS_INLINE __always_inline #else # define ALWAYS_INLINE #endif /* This file is designed to test both open(n,buf[,mode]) and openat(AT_FDCWD,n,buf[,mode]). FUNC is the function to test. Assumes that BASE and ASSERT are already defined, and that appropriate headers are already included. If PRINT, warn before skipping symlink tests with status 77. */ static ALWAYS_INLINE int test_open (int (*func) (char const *, int, ...), bool print) { int fd; /* Remove anything from prior partial run. */ unlink (BASE "file"); /* Cannot create directory. */ errno = 0; ASSERT (func ("nonexist.ent/", O_CREAT | O_RDONLY, 0600) == -1); ASSERT (errno == ENOTDIR || errno == EISDIR || errno == ENOENT || errno == EINVAL); /* Create a regular file. */ fd = func (BASE "file", O_CREAT | O_RDONLY, 0600); ASSERT (0 <= fd); ASSERT (close (fd) == 0); /* Trailing slash handling. */ errno = 0; ASSERT (func (BASE "file/", O_RDONLY) == -1); ASSERT (errno == ENOTDIR || errno == EISDIR || errno == EINVAL); /* Directories cannot be opened for writing. */ errno = 0; ASSERT (func (".", O_WRONLY) == -1); ASSERT (errno == EISDIR || errno == EACCES); /* /dev/null must exist, and be writable. */ fd = func ("/dev/null", O_RDONLY); ASSERT (0 <= fd); { char c; ASSERT (read (fd, &c, 1) == 0); } ASSERT (close (fd) == 0); fd = func ("/dev/null", O_WRONLY); ASSERT (0 <= fd); ASSERT (write (fd, "c", 1) == 1); ASSERT (close (fd) == 0); /* Although O_NONBLOCK on regular files can be ignored, it must not cause a failure. */ fd = func (BASE "file", O_NONBLOCK | O_RDONLY); ASSERT (0 <= fd); ASSERT (close (fd) == 0); /* Symlink handling, where supported. */ if (symlink (BASE "file", BASE "link") != 0) { ASSERT (unlink (BASE "file") == 0); if (print) fputs ("skipping test: symlinks not supported on this file system\n", stderr); return 77; } errno = 0; ASSERT (func (BASE "link/", O_RDONLY) == -1); ASSERT (errno == ENOTDIR); fd = func (BASE "link", O_RDONLY); ASSERT (0 <= fd); ASSERT (close (fd) == 0); /* Cleanup. */ ASSERT (unlink (BASE "file") == 0); ASSERT (unlink (BASE "link") == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-perror.sh0000644000000000000000000000011013726163410022767 xustar000000000000000024 mtime=1599661832.637 24 atime=1599661832.767 24 ctime=1599661999.628 libprelude-5.2.0/libmissing/tests/test-perror.sh0000755000000000000000000000170313726163410021776 0ustar00rootroot00000000000000#!/bin/sh : ${srcdir=.} . "$srcdir/init.sh"; path_prepend_ . # Test NULL prefix. Result should not contain a number, except in lines that # start with 'EDC' (IBM z/OS libc produces an error identifier before the # error message). test-perror 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror.tmp grep -v '^EDC' t-perror.tmp | grep '[0-9]' > /dev/null \ && fail_ "result should not contain a number" # Test empty prefix. Result should be the same. test-perror '' 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror1.tmp diff t-perror.tmp t-perror1.tmp \ || fail_ "empty prefix should behave like NULL argument" # Test non-empty prefix. test-perror foo 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror3.tmp sed -e 's/^/foo: /' < t-perror.tmp > t-perror2.tmp diff t-perror2.tmp t-perror3.tmp || fail_ "prefix applied incorrectly" # Test exit status. test-perror >out 2>/dev/null || fail_ "unexpected exit status" test -s out && fail_ "unexpected output" Exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/same-inode.h0000644000000000000000000000011013726163410022337 xustar000000000000000024 mtime=1599661832.616 24 atime=1599661832.763 24 ctime=1599661999.631 libprelude-5.2.0/libmissing/tests/same-inode.h0000644000000000000000000000321613726163410021344 0ustar00rootroot00000000000000/* Determine whether two stat buffers are known to refer to the same file. Copyright (C) 2006, 2009-2018 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 3 of the License, 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, see . */ #ifndef SAME_INODE_H # define SAME_INODE_H 1 # include # if defined __VMS && __CRTL_VER < 80200000 # define SAME_INODE(a, b) \ ((a).st_ino[0] == (b).st_ino[0] \ && (a).st_ino[1] == (b).st_ino[1] \ && (a).st_ino[2] == (b).st_ino[2] \ && (a).st_dev == (b).st_dev) # elif defined _WIN32 && ! defined __CYGWIN__ /* Native Windows. */ # if _GL_WINDOWS_STAT_INODES /* stat() and fstat() set st_dev and st_ino to 0 if information about the inode is not available. */ # define SAME_INODE(a, b) \ (!((a).st_ino == 0 && (a).st_dev == 0) \ && (a).st_ino == (b).st_ino && (a).st_dev == (b).st_dev) # else /* stat() and fstat() set st_ino to 0 always. */ # define SAME_INODE(a, b) 0 # endif # else # define SAME_INODE(a, b) \ ((a).st_ino == (b).st_ino \ && (a).st_dev == (b).st_dev) # endif #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-select.h0000644000000000000000000000010713726163410022560 xustar000000000000000023 mtime=1599661832.64 24 atime=1599661832.768 24 ctime=1599661999.633 libprelude-5.2.0/libmissing/tests/test-select.h0000644000000000000000000002605513726163410021565 0ustar00rootroot00000000000000/* Test of select() substitute. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* Written by Paolo Bonzini, 2008. */ #include #include #include #include #include #include #include #include #include #include #include #include "macros.h" #if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE #endif #ifdef HAVE_SYS_WAIT_H # include #endif #define TEST_PORT 12345 typedef int (*select_fn) (int, fd_set *, fd_set *, fd_set *, struct timeval *); /* Minimal testing infrastructure. */ static int failures; static void failed (const char *reason) { if (++failures > 1) printf (" "); printf ("failed (%s)\n", reason); } static int test (void (*fn) (select_fn), select_fn my_select, const char *msg) { failures = 0; printf ("%s... ", msg); fflush (stdout); fn (my_select); if (!failures) printf ("passed\n"); return failures; } /* Funny socket code. */ static int open_server_socket (void) { int s, x; struct sockaddr_in ia; s = socket (AF_INET, SOCK_STREAM, 0); x = 1; setsockopt (s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof (x)); memset (&ia, 0, sizeof (ia)); ia.sin_family = AF_INET; inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr); ia.sin_port = htons (TEST_PORT); if (bind (s, (struct sockaddr *) &ia, sizeof (ia)) < 0) { perror ("bind"); exit (77); } if (listen (s, 1) < 0) { perror ("listen"); exit (77); } return s; } static int connect_to_socket (bool blocking) { int s; struct sockaddr_in ia; s = socket (AF_INET, SOCK_STREAM, 0); memset (&ia, 0, sizeof (ia)); ia.sin_family = AF_INET; inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr); ia.sin_port = htons (TEST_PORT); if (!blocking) { #ifdef WINDOWS_NATIVE unsigned long iMode = 1; ioctl (s, FIONBIO, (char *) &iMode); #elif defined F_GETFL int oldflags = fcntl (s, F_GETFL, NULL); if (!(oldflags & O_NONBLOCK)) fcntl (s, F_SETFL, oldflags | O_NONBLOCK); #endif } if (connect (s, (struct sockaddr *) &ia, sizeof (ia)) < 0 && (blocking || errno != EINPROGRESS)) { perror ("connect"); exit (77); } return s; } /* A slightly more convenient interface to select(2). Waits until a specific event occurs on a file descriptor FD. EV is a bit mask of events to look for: SEL_IN - input can be polled without blocking, SEL_OUT - output can be provided without blocking, SEL_EXC - an exception occurred, A maximum wait time is specified by TIMEOUT. *TIMEOUT = { 0, 0 } means to return immediately, TIMEOUT = NULL means to wait indefinitely. */ enum { SEL_IN = 1, SEL_OUT = 2, SEL_EXC = 4 }; static int do_select (int fd, int ev, struct timeval *timeout, select_fn my_select) { fd_set rfds, wfds, xfds; int r, rev; FD_ZERO (&rfds); FD_ZERO (&wfds); FD_ZERO (&xfds); if (ev & SEL_IN) FD_SET (fd, &rfds); if (ev & SEL_OUT) FD_SET (fd, &wfds); if (ev & SEL_EXC) FD_SET (fd, &xfds); r = my_select (fd + 1, &rfds, &wfds, &xfds, timeout); if (r < 0) return r; rev = 0; if (FD_ISSET (fd, &rfds)) rev |= SEL_IN; if (FD_ISSET (fd, &wfds)) rev |= SEL_OUT; if (FD_ISSET (fd, &xfds)) rev |= SEL_EXC; if (rev && r == 0) failed ("select returned 0"); if (rev & ~ev) failed ("select returned unrequested events"); return rev; } static int do_select_nowait (int fd, int ev, select_fn my_select) { struct timeval tv0; tv0.tv_sec = 0; tv0.tv_usec = 0; return do_select (fd, ev, &tv0, my_select); } static int do_select_wait (int fd, int ev, select_fn my_select) { return do_select (fd, ev, NULL, my_select); } /* Test select(2) for TTYs. */ #ifdef INTERACTIVE static void test_tty (select_fn my_select) { if (do_select_nowait (0, SEL_IN, my_select) != 0) failed ("can read"); if (do_select_nowait (0, SEL_OUT, my_select) == 0) failed ("cannot write"); if (do_select_wait (0, SEL_IN, my_select) == 0) failed ("return with infinite timeout"); getchar (); if (do_select_nowait (0, SEL_IN, my_select) != 0) failed ("can read after getc"); } #endif static int do_select_bad_nfd_nowait (int nfd, select_fn my_select) { struct timeval tv0; tv0.tv_sec = 0; tv0.tv_usec = 0; errno = 0; return my_select (nfd, NULL, NULL, NULL, &tv0); } static void test_bad_nfd (select_fn my_select) { if (do_select_bad_nfd_nowait (-1, my_select) != -1 || errno != EINVAL) failed ("invalid errno after negative nfds"); /* Can't test FD_SETSIZE + 1 for EINVAL, since some systems allow dynamically larger set size by redefining FD_SETSIZE anywhere up to the actual maximum fd. */ /* if (do_select_bad_nfd_nowait (FD_SETSIZE + 1, my_select) != -1 */ /* || errno != EINVAL) */ /* failed ("invalid errno after bogus nfds"); */ } /* Test select(2) on invalid file descriptors. */ static int do_select_bad_fd (int fd, int ev, struct timeval *timeout, select_fn my_select) { fd_set rfds, wfds, xfds; FD_ZERO (&rfds); FD_ZERO (&wfds); FD_ZERO (&xfds); if (ev & SEL_IN) FD_SET (fd, &rfds); if (ev & SEL_OUT) FD_SET (fd, &wfds); if (ev & SEL_EXC) FD_SET (fd, &xfds); errno = 0; return my_select (fd + 1, &rfds, &wfds, &xfds, timeout); /* In this case, when fd is invalid, on some platforms, the bit for fd is left alone in the fd_set, whereas on other platforms it is cleared. So, don't check the bit for fd here. */ } static int do_select_bad_fd_nowait (int fd, int ev, select_fn my_select) { struct timeval tv0; tv0.tv_sec = 0; tv0.tv_usec = 0; return do_select_bad_fd (fd, ev, &tv0, my_select); } static void test_bad_fd (select_fn my_select) { /* This tests fails on OSF/1 and native Windows, even with fd = 16. */ #if !(defined __osf__ || defined WINDOWS_NATIVE) int fd; /* On Linux, Mac OS X, *BSD, values of fd like 99 or 399 are discarded by the kernel early and therefore do *not* lead to EBADF, as required by POSIX. */ # if defined __linux__ || (defined __APPLE__ && defined __MACH__) || (defined __FreeBSD__ || defined __DragonFly__) || defined __OpenBSD__ || defined __NetBSD__ fd = 14; # else fd = 99; # endif close (fd); if (do_select_bad_fd_nowait (fd, SEL_IN, my_select) == 0 || errno != EBADF) failed ("invalid fd among rfds"); if (do_select_bad_fd_nowait (fd, SEL_OUT, my_select) == 0 || errno != EBADF) failed ("invalid fd among wfds"); if (do_select_bad_fd_nowait (fd, SEL_EXC, my_select) == 0 || errno != EBADF) failed ("invalid fd among xfds"); #endif } /* Test select(2) for unconnected nonblocking sockets. */ static void test_connect_first (select_fn my_select) { int s = open_server_socket (); struct sockaddr_in ia; socklen_t addrlen; int c1, c2; if (do_select_nowait (s, SEL_IN | SEL_EXC, my_select) != 0) failed ("can read, socket not connected"); c1 = connect_to_socket (false); if (do_select_wait (s, SEL_IN | SEL_EXC, my_select) != SEL_IN) failed ("expecting readability on passive socket"); if (do_select_nowait (s, SEL_IN | SEL_EXC, my_select) != SEL_IN) failed ("expecting readability on passive socket"); addrlen = sizeof (ia); c2 = accept (s, (struct sockaddr *) &ia, &addrlen); ASSERT (close (s) == 0); ASSERT (close (c1) == 0); ASSERT (close (c2) == 0); } /* Test select(2) for unconnected blocking sockets. */ static void test_accept_first (select_fn my_select) { #ifndef WINDOWS_NATIVE int s = open_server_socket (); struct sockaddr_in ia; socklen_t addrlen; char buf[3]; int c, pid; pid = fork (); if (pid < 0) return; if (pid == 0) { addrlen = sizeof (ia); c = accept (s, (struct sockaddr *) &ia, &addrlen); ASSERT (close (s) == 0); ASSERT (write (c, "foo", 3) == 3); ASSERT (read (c, buf, 3) == 3); shutdown (c, SHUT_RD); ASSERT (close (c) == 0); exit (0); } else { ASSERT (close (s) == 0); c = connect_to_socket (true); if (do_select_nowait (c, SEL_OUT, my_select) != SEL_OUT) failed ("cannot write after blocking connect"); ASSERT (write (c, "foo", 3) == 3); wait (&pid); if (do_select_wait (c, SEL_IN, my_select) != SEL_IN) failed ("cannot read data left in the socket by closed process"); ASSERT (read (c, buf, 3) == 3); ASSERT (write (c, "foo", 3) == 3); (void) close (c); /* may fail with errno = ECONNRESET */ } #endif } /* Common code for pipes and connected sockets. */ static void test_pair (int rd, int wd, select_fn my_select) { char buf[3]; if (do_select_wait (wd, SEL_IN | SEL_OUT | SEL_EXC, my_select) != SEL_OUT) failed ("expecting writability before writing"); if (do_select_nowait (wd, SEL_IN | SEL_OUT | SEL_EXC, my_select) != SEL_OUT) failed ("expecting writability before writing"); ASSERT (write (wd, "foo", 3) == 3); if (do_select_wait (rd, SEL_IN, my_select) != SEL_IN) failed ("expecting readability after writing"); if (do_select_nowait (rd, SEL_IN, my_select) != SEL_IN) failed ("expecting readability after writing"); ASSERT (read (rd, buf, 3) == 3); } /* Test select(2) on connected sockets. */ static void test_socket_pair (select_fn my_select) { struct sockaddr_in ia; socklen_t addrlen = sizeof (ia); int s = open_server_socket (); int c1 = connect_to_socket (false); int c2 = accept (s, (struct sockaddr *) &ia, &addrlen); ASSERT (close (s) == 0); test_pair (c1, c2, my_select); ASSERT (close (c1) == 0); ASSERT (write (c2, "foo", 3) == 3); (void) close (c2); /* may fail with errno = ECONNRESET */ } /* Test select(2) on pipes. */ static void test_pipe (select_fn my_select) { int fd[2]; ASSERT (pipe (fd) == 0); test_pair (fd[0], fd[1], my_select); ASSERT (close (fd[0]) == 0); ASSERT (close (fd[1]) == 0); } /* Do them all. */ static int test_function (select_fn my_select) { int result = 0; #ifdef INTERACTIVE printf ("Please press Enter\n"); test (test_tty, "TTY", my_select); #endif result += test (test_bad_nfd, my_select, "Invalid nfd test"); result += test (test_bad_fd, my_select, "Invalid fd test"); result += test (test_connect_first, my_select, "Unconnected socket test"); result += test (test_socket_pair, my_select, "Connected sockets test"); result += test (test_accept_first, my_select, "General socket test with fork"); result += test (test_pipe, my_select, "Pipe test"); return result; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-select-in.sh0000644000000000000000000000011013726163410023341 xustar000000000000000024 mtime=1599661832.639 24 atime=1599661832.768 24 ctime=1599661999.635 libprelude-5.2.0/libmissing/tests/test-select-in.sh0000755000000000000000000000166113726163410022353 0ustar00rootroot00000000000000#!/bin/sh # Test select() on file descriptors opened for reading. # This test is known to fail on Solaris 2.6 and older, due to its handling # of /dev/null. tmpfiles="" trap 'rm -fr $tmpfiles' 1 2 3 15 tmpfiles="$tmpfiles t-select-in.tmp" # Regular files. rm -f t-select-in.tmp ./test-select-fd${EXEEXT} r 0 t-select-in.tmp < ./test-select-fd${EXEEXT} test `cat t-select-in.tmp` = "1" || exit 1 # Pipes. rm -f t-select-in.tmp { sleep 1; echo abc; } | \ { ./test-select-fd${EXEEXT} r 0 t-select-in.tmp; cat > /dev/null; } test `cat t-select-in.tmp` = "0" || exit 1 rm -f t-select-in.tmp echo abc | { sleep 1; ./test-select-fd${EXEEXT} r 0 t-select-in.tmp; } test `cat t-select-in.tmp` = "1" || exit 1 # Special files. # This part of the test is known to fail on Solaris 2.6 and older. rm -f t-select-in.tmp ./test-select-fd${EXEEXT} r 0 t-select-in.tmp < /dev/null test `cat t-select-in.tmp` = "1" || exit 1 rm -fr $tmpfiles exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-select-out.sh0000644000000000000000000000011013726163410023542 xustar000000000000000024 mtime=1599661832.639 24 atime=1599661832.768 24 ctime=1599661999.636 libprelude-5.2.0/libmissing/tests/test-select-out.sh0000755000000000000000000000157013726163410022553 0ustar00rootroot00000000000000#!/bin/sh # Test select() on file descriptors opened for writing. tmpfiles="" trap 'rm -fr $tmpfiles' 1 2 3 15 tmpfiles="$tmpfiles t-select-out.out t-select-out.tmp" # Regular files. rm -f t-select-out.tmp ./test-select-fd${EXEEXT} w 1 t-select-out.tmp > t-select-out.out test `cat t-select-out.tmp` = "1" || exit 1 # Pipes. if false; then # This test fails on some platforms. rm -f t-select-out.tmp ( { echo abc; ./test-select-fd${EXEEXT} w 1 t-select-out.tmp; } | { sleep 1; cat; } ) > /dev/null test `cat t-select-out.tmp` = "0" || exit 1 fi rm -f t-select-out.tmp ( { sleep 1; echo abc; ./test-select-fd${EXEEXT} w 1 t-select-out.tmp; } | cat) > /dev/null test `cat t-select-out.tmp` = "1" || exit 1 # Special files. rm -f t-select-out.tmp ./test-select-fd${EXEEXT} w 1 t-select-out.tmp > /dev/null test `cat t-select-out.tmp` = "1" || exit 1 rm -fr $tmpfiles exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-setlocale1.sh0000644000000000000000000000010713726163410023520 xustar000000000000000023 mtime=1599661832.64 24 atime=1599661832.768 24 ctime=1599661999.638 libprelude-5.2.0/libmissing/tests/test-setlocale1.sh0000755000000000000000000000150613726163410022522 0ustar00rootroot00000000000000#!/bin/sh : ${LOCALE_FR=fr_FR} : ${LOCALE_FR_UTF8=fr_FR.UTF-8} : ${LOCALE_JA=ja_JP} : ${LOCALE_ZH_CN=zh_CN.GB18030} if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none \ && test $LOCALE_JA = none && test $LOCALE_ZH_CN = none; then if test -f /usr/bin/localedef; then echo "Skipping test: no locale for testing is installed" else echo "Skipping test: no locale for testing is supported" fi exit 77 fi if test $LOCALE_FR != none; then LC_ALL=$LOCALE_FR ./test-setlocale1${EXEEXT} || exit 1 fi if test $LOCALE_FR_UTF8 != none; then LC_ALL=$LOCALE_FR_UTF8 ./test-setlocale1${EXEEXT} || exit 1 fi if test $LOCALE_JA != none; then LC_ALL=$LOCALE_JA ./test-setlocale1${EXEEXT} || exit 1 fi if test $LOCALE_ZH_CN != none; then LC_ALL=$LOCALE_ZH_CN ./test-setlocale1${EXEEXT} || exit 1 fi exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-setlocale2.sh0000644000000000000000000000010613726163410023520 xustar000000000000000023 mtime=1599661832.64 24 atime=1599661832.768 23 ctime=1599661999.64 libprelude-5.2.0/libmissing/tests/test-setlocale2.sh0000755000000000000000000000133713726163410022525 0ustar00rootroot00000000000000#!/bin/sh # Test locale names with likely unsupported encoding in Unix syntax. for name in ar_SA.ISO-8859-1 fr_FR.CP1251 zh_TW.GB18030 zh_CN.BIG5; do env LC_ALL=$name ./test-setlocale2${EXEEXT} 1 || exit 1 done # Test locale names with likely unsupported encoding in native Windows syntax. for name in "Arabic_Saudi Arabia.1252" "Arabic_Saudi Arabia.65001" \ French_France.65001 Japanese_Japan.65001 Turkish_Turkey.65001 \ Chinese_Taiwan.65001 Chinese_China.54936 Chinese_China.65001; do # Here we use 'env' to set the LC_ALL environment variable, because on # Solaris 11.0, the /bin/sh refuses to do it for Turkish_Turkey.65001. env LC_ALL="$name" ./test-setlocale2${EXEEXT} 1 || exit 1 done exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/sig-handler.h0000644000000000000000000000011013726163410022513 xustar000000000000000024 mtime=1599661832.617 24 atime=1599661832.763 24 ctime=1599661999.642 libprelude-5.2.0/libmissing/tests/sig-handler.h0000644000000000000000000000354213726163410021522 0ustar00rootroot00000000000000/* Convenience declarations when working with . Copyright (C) 2008-2018 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 3 of the License, 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, see . */ #ifndef _GL_SIG_HANDLER_H #define _GL_SIG_HANDLER_H #include #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef SIG_HANDLER_INLINE # define SIG_HANDLER_INLINE _GL_INLINE #endif /* Convenience type when working with signal handlers. */ typedef void (*sa_handler_t) (int); /* Return the handler of a signal, as a sa_handler_t value regardless of its true type. The resulting function can be compared to special values like SIG_IGN but it is not portable to call it. */ SIG_HANDLER_INLINE sa_handler_t _GL_ATTRIBUTE_PURE get_handler (struct sigaction const *a) { /* POSIX says that special values like SIG_IGN can only occur when action.sa_flags does not contain SA_SIGINFO. But in Linux 2.4, for example, sa_sigaction and sa_handler are aliases and a signal is ignored if sa_sigaction (after casting) equals SIG_IGN. In this case, this implementation relies on the fact that the two are aliases, and simply returns sa_handler. */ return a->sa_handler; } _GL_INLINE_HEADER_END #endif /* _GL_SIG_HANDLER_H */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/_Noreturn.h0000644000000000000000000000010713726163410022277 xustar000000000000000024 mtime=1599661832.608 23 atime=1599661832.76 24 ctime=1599661999.644 libprelude-5.2.0/libmissing/tests/_Noreturn.h0000644000000000000000000000046213726163410021276 0ustar00rootroot00000000000000#if !defined _Noreturn && __STDC_VERSION__ < 201112 # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/arg-nonnull.h0000644000000000000000000000010713726163410022560 xustar000000000000000024 mtime=1599661832.608 23 atime=1599661832.76 24 ctime=1599661999.646 libprelude-5.2.0/libmissing/tests/arg-nonnull.h0000644000000000000000000000230113726163410021551 0ustar00rootroot00000000000000/* A C macro for declaring that specific arguments must not be NULL. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools that the values passed as arguments n, ..., m must be non-NULL pointers. n = 1 stands for the first argument, n = 2 for the second argument etc. */ #ifndef _GL_ARG_NONNULL # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) # else # define _GL_ARG_NONNULL(params) # endif #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/c++defs.h0000644000000000000000000000011013726163410021530 xustar000000000000000024 mtime=1599661832.609 24 atime=1599661832.761 24 ctime=1599661999.648 libprelude-5.2.0/libmissing/tests/c++defs.h0000644000000000000000000003413013726163410020534 0ustar00rootroot00000000000000/* C++ compatible function declaration macros. Copyright (C) 2010-2018 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 3 of the License, 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, see . */ #ifndef _GL_CXXDEFS_H #define _GL_CXXDEFS_H /* Begin/end the GNULIB_NAMESPACE namespace. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { # define _GL_END_NAMESPACE } #else # define _GL_BEGIN_NAMESPACE # define _GL_END_NAMESPACE #endif /* The three most frequent use cases of these macros are: * For providing a substitute for a function that is missing on some platforms, but is declared and works fine on the platforms on which it exists: #if @GNULIB_FOO@ # if !@HAVE_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on all platforms, but is broken/insufficient and needs to be replaced on some platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on some platforms but is broken/insufficient and needs to be replaced on some of them and is additionally either missing or undeclared on some other platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif */ /* _GL_EXTERN_C declaration; performs the declaration with C linkage. */ #if defined __cplusplus # define _GL_EXTERN_C extern "C" #else # define _GL_EXTERN_C extern #endif /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); declares a replacement function, named rpl_func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype rpl_func parameters_and_attributes /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); declares the system function, named func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype func parameters_and_attributes /* _GL_CXXALIAS_RPL (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to rpl_func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); Wrapping rpl_func in an object with an inline conversion operator avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is actually used in the program. */ #define _GL_CXXALIAS_RPL(func,rettype,parameters) \ _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return ::rpl_func; \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); except that the C function rpl_func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast(::rpl_func); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to the system provided function func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); Wrapping func in an object with an inline conversion operator avoids a reference to func unless GNULIB_NAMESPACE::func is actually used in the program. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return ::func; \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast(::func); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function is picked among a set of overloaded functions, namely the one with rettype2 and parameters2. Two consecutive casts are used to silence the "cannot find a match" and "invalid conversion" errors that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE /* The outer cast must be a reinterpret_cast. The inner cast: When the function is defined as a set of overloaded functions, it works as a static_cast<>, choosing the designated variant. When the function is defined as a single variant, it works as a reinterpret_cast<>. The parenthesized cast syntax works both ways. */ # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN (func); causes a warning to be emitted when ::func is used but not when GNULIB_NAMESPACE::func is used. func must be defined without overloaded variants. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN(func) \ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) # define _GL_CXXALIASWARN_1(func,namespace) \ _GL_CXXALIASWARN_2 (func, namespace) /* To work around GCC bug , we enable the warning only when not optimizing. */ # if !__OPTIMIZE__ # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_WARN_ON_USE (func, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN_2(func,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN(func) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); causes a warning to be emitted when the given overloaded variant of ::func is used but not when GNULIB_NAMESPACE::func is used. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ GNULIB_NAMESPACE) # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) /* To work around GCC bug , we enable the warning only when not optimizing. */ # if !__OPTIMIZE__ # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif #endif /* _GL_CXXDEFS_H */ libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/unused-parameter.h0000644000000000000000000000010513726163410023603 xustar000000000000000023 mtime=1599661832.65 23 atime=1599661832.77 23 ctime=1599661999.65 libprelude-5.2.0/libmissing/tests/unused-parameter.h0000644000000000000000000000304313726163410022602 0ustar00rootroot00000000000000/* A C macro for declaring that specific function parameters are not used. Copyright (C) 2008-2018 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 3 of the License, 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, see . */ /* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter declarations for parameters that are not used. This helps to reduce warnings, such as from GCC -Wunused-parameter. The syntax is as follows: type param _GL_UNUSED_PARAMETER or more generally param_decl _GL_UNUSED_PARAMETER For example: int param _GL_UNUSED_PARAMETER int *(*param)(void) _GL_UNUSED_PARAMETER Other possible, but obscure and discouraged syntaxes: int _GL_UNUSED_PARAMETER *(*param)(void) _GL_UNUSED_PARAMETER int *(*param)(void) */ #ifndef _GL_UNUSED_PARAMETER # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_UNUSED_PARAMETER __attribute__ ((__unused__)) # else # define _GL_UNUSED_PARAMETER # endif #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/warn-on-use.h0000644000000000000000000000010713726163410022477 xustar000000000000000024 mtime=1599661832.651 23 atime=1599661832.77 24 ctime=1599661999.651 libprelude-5.2.0/libmissing/tests/warn-on-use.h0000644000000000000000000001351113726163410021475 0ustar00rootroot00000000000000/* A C macro for emitting warnings if a function is used. Copyright (C) 2010-2018 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 3 of the License, 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, see . */ /* _GL_WARN_ON_USE (function, "literal string") issues a declaration for FUNCTION which will then trigger a compiler warning containing the text of "literal string" anywhere that function is called, if supported by the compiler. If the compiler does not support this feature, the macro expands to an unused extern declaration. _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the attribute used in _GL_WARN_ON_USE. If the compiler does not support this feature, it expands to empty. These macros are useful for marking a function as a potential portability trap, with the intent that "literal string" include instructions on the replacement function that should be used instead. _GL_WARN_ON_USE is for functions with 'extern' linkage. _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' linkage. However, one of the reasons that a function is a portability trap is if it has the wrong signature. Declaring FUNCTION with a different signature in C is a compilation error, so this macro must use the same type as any existing declaration so that programs that avoid the problematic FUNCTION do not fail to compile merely because they included a header that poisoned the function. But this implies that _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already have a declaration. Use of this macro implies that there must not be any other macro hiding the declaration of FUNCTION; but undefining FUNCTION first is part of the poisoning process anyway (although for symbols that are provided only via a macro, the result is a compilation error rather than a warning containing "literal string"). Also note that in C++, it is only safe to use if FUNCTION has no overloads. For an example, it is possible to poison 'getline' by: - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], [getline]) in configure.ac, which potentially defines HAVE_RAW_DECL_GETLINE - adding this code to a header that wraps the system : #undef getline #if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" "not universally present; use the gnulib module getline"); #endif It is not possible to directly poison global variables. But it is possible to write a wrapper accessor function, and poison that (less common usage, like &environ, will cause a compilation error rather than issue the nice warning, but the end result of informing the developer about their portability problem is still achieved): #if HAVE_RAW_DECL_ENVIRON static char *** rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); # undef environ # define environ (*rpl_environ ()) #endif or better (avoiding contradictory use of 'static' and 'extern'): #if HAVE_RAW_DECL_ENVIRON static char *** _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") rpl_environ (void) { return &environ; } # undef environ # define environ (*rpl_environ ()) #endif */ #ifndef _GL_WARN_ON_USE # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) /* A compiler attribute is available in gcc versions 4.3.0 and later. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function __attribute__ ((__warning__ (message))) # define _GL_WARN_ON_USE_ATTRIBUTE(message) \ __attribute__ ((__warning__ (message))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function # define _GL_WARN_ON_USE_ATTRIBUTE(message) # else /* Unsupported. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # define _GL_WARN_ON_USE_ATTRIBUTE(message) # endif #endif /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string") is like _GL_WARN_ON_USE (function, "string"), except that the function is declared with the given prototype, consisting of return type, parameters, and attributes. This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does not work in this case. */ #ifndef _GL_WARN_ON_USE_CXX # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ extern rettype function parameters_and_attributes \ __attribute__ ((__warning__ (msg))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ extern rettype function parameters_and_attributes # else /* Unsupported. */ # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # endif #endif /* _GL_WARN_EXTERN_C declaration; performs the declaration with C linkage. */ #ifndef _GL_WARN_EXTERN_C # if defined __cplusplus # define _GL_WARN_EXTERN_C extern "C" # else # define _GL_WARN_EXTERN_C extern # endif #endif libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-stat.h0000644000000000000000000000011013726163410022246 xustar000000000000000024 mtime=1599661832.642 24 atime=1599661832.769 24 ctime=1599661999.653 libprelude-5.2.0/libmissing/tests/test-stat.h0000644000000000000000000000604313726163410021254 0ustar00rootroot00000000000000/* Tests of stat. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ /* This file is designed to test both stat(n,buf) and fstatat(AT_FDCWD,n,buf,0). FUNC is the function to test. Assumes that BASE and ASSERT are already defined, and that appropriate headers are already included. If PRINT, warn before skipping symlink tests with status 77. */ static int test_stat_func (int (*func) (char const *, struct stat *), bool print) { struct stat st1; struct stat st2; char *cwd = getcwd (NULL, 0); ASSERT (cwd); ASSERT (func (".", &st1) == 0); ASSERT (func ("./", &st2) == 0); ASSERT (SAME_INODE (st1, st2)); ASSERT (func (cwd, &st2) == 0); ASSERT (SAME_INODE (st1, st2)); ASSERT (func ("/", &st1) == 0); ASSERT (func ("///", &st2) == 0); ASSERT (SAME_INODE (st1, st2)); errno = 0; ASSERT (func ("", &st1) == -1); ASSERT (errno == ENOENT); errno = 0; ASSERT (func ("nosuch", &st1) == -1); ASSERT (errno == ENOENT); errno = 0; ASSERT (func ("nosuch/", &st1) == -1); ASSERT (errno == ENOENT); ASSERT (close (creat (BASE "file", 0600)) == 0); ASSERT (func (BASE "file", &st1) == 0); errno = 0; ASSERT (func (BASE "file/", &st1) == -1); ASSERT (errno == ENOTDIR); /* Now for some symlink tests, where supported. We set up: link1 -> directory link2 -> file link3 -> dangling link4 -> loop then test behavior with trailing slash. */ if (symlink (".", BASE "link1") != 0) { ASSERT (unlink (BASE "file") == 0); if (print) fputs ("skipping test: symlinks not supported on this file system\n", stderr); return 77; } ASSERT (symlink (BASE "file", BASE "link2") == 0); ASSERT (symlink (BASE "nosuch", BASE "link3") == 0); ASSERT (symlink (BASE "link4", BASE "link4") == 0); ASSERT (func (BASE "link1/", &st1) == 0); ASSERT (S_ISDIR (st1.st_mode)); errno = 0; ASSERT (func (BASE "link2/", &st1) == -1); ASSERT (errno == ENOTDIR); errno = 0; ASSERT (func (BASE "link3/", &st1) == -1); ASSERT (errno == ENOENT); errno = 0; ASSERT (func (BASE "link4/", &st1) == -1); ASSERT (errno == ELOOP); /* Cleanup. */ ASSERT (unlink (BASE "file") == 0); ASSERT (unlink (BASE "link1") == 0); ASSERT (unlink (BASE "link2") == 0); ASSERT (unlink (BASE "link3") == 0); ASSERT (unlink (BASE "link4") == 0); free (cwd); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-sys_wait.h0000644000000000000000000000011013726163410023135 xustar000000000000000024 mtime=1599661832.646 24 atime=1599661832.769 24 ctime=1599661999.657 libprelude-5.2.0/libmissing/tests/test-sys_wait.h0000644000000000000000000000361613726163410022146 0ustar00rootroot00000000000000/* Test of macros shared between and . Copyright (C) 2010-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2010. */ static int test_sys_wait_macros (void) { /* Check subset of macros that must be visible here. Note that some of these macros are only portable when operating on an lvalue. */ int i; for (i = 0; i < 0x8000; i = (i ? i << 1 : 1)) { /* POSIX requires that for all valid process statuses, that exactly one of these three macros is true. But not all possible 16-bit values map to valid process status. Traditionally, 8 of the bits are for WIFEXITED, 7 of the bits to tell between WIFSIGNALED and WIFSTOPPED, and either 0x80 or 0x8000 to flag that core was also dumped. Since we don't know which byte is WIFEXITED, we skip the both possible bits that can signal core dump. */ if (i == 0x80) continue; if (!!WIFSIGNALED (i) + !!WIFEXITED (i) + !!WIFSTOPPED (i) != 1) return 1; } i = WEXITSTATUS (i) + WSTOPSIG (i) + WTERMSIG (i); switch (i) { #if 0 /* Gnulib doesn't guarantee these, yet. */ case WNOHANG: case WUNTRACED: #endif break; } return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-symlink.h0000644000000000000000000000010713726163410022767 xustar000000000000000024 mtime=1599661832.645 24 atime=1599661832.769 23 ctime=1599661999.66 libprelude-5.2.0/libmissing/tests/test-symlink.h0000644000000000000000000000607113726163410021770 0ustar00rootroot00000000000000/* Tests of symlink. Copyright (C) 2009-2018 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 3 of the License, 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, see . */ /* Written by Eric Blake , 2009. */ /* This file is designed to test both symlink(a,b) and symlinkat(a,AT_FDCWD,b). FUNC is the function to test. Assumes that BASE and ASSERT are already defined, and that appropriate headers are already included. If PRINT, warn before skipping symlink tests with status 77. */ static int test_symlink (int (*func) (char const *, char const *), bool print) { if (func ("nowhere", BASE "link1")) { if (print) fputs ("skipping test: symlinks not supported on this file system\n", stderr); return 77; } /* Some systems allow the creation of 0-length symlinks as a synonym for "."; but most reject it. */ { int status; errno = 0; status = func ("", BASE "link2"); if (status == -1) ASSERT (errno == ENOENT || errno == EINVAL); else { ASSERT (status == 0); ASSERT (unlink (BASE "link2") == 0); } } /* Sanity checks of failures. */ errno = 0; ASSERT (func ("nowhere", "") == -1); ASSERT (errno == ENOENT); errno = 0; ASSERT (func ("nowhere", ".") == -1); ASSERT (errno == EEXIST || errno == EINVAL); errno = 0; ASSERT (func ("somewhere", BASE "link1") == -1); ASSERT (errno == EEXIST); errno = 0; ASSERT (func ("nowhere", BASE "link2/") == -1); ASSERT (errno == ENOTDIR || errno == ENOENT); ASSERT (mkdir (BASE "dir", 0700) == 0); errno = 0; ASSERT (func ("nowhere", BASE "dir") == -1); ASSERT (errno == EEXIST); errno = 0; ASSERT (func ("nowhere", BASE "dir/") == -1); ASSERT (errno == EEXIST || errno == EINVAL); ASSERT (close (creat (BASE "file", 0600)) == 0); errno = 0; ASSERT (func ("nowhere", BASE "file") == -1); ASSERT (errno == EEXIST); errno = 0; ASSERT (func ("nowhere", BASE "file/") == -1); ASSERT (errno == EEXIST || errno == ENOTDIR || errno == ENOENT); /* Trailing slash must always be rejected. */ ASSERT (unlink (BASE "link1") == 0); ASSERT (func (BASE "link2", BASE "link1") == 0); errno = 0; ASSERT (func (BASE "nowhere", BASE "link1/") == -1); ASSERT (errno == EEXIST || errno == ENOTDIR || errno == ENOENT); errno = 0; ASSERT (unlink (BASE "link2") == -1); ASSERT (errno == ENOENT); /* Cleanup. */ ASSERT (rmdir (BASE "dir") == 0); ASSERT (unlink (BASE "file") == 0); ASSERT (unlink (BASE "link1") == 0); return 0; } libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/init.sh0000644000000000000000000000011013726163410021444 xustar000000000000000024 mtime=1599661832.613 24 atime=1599661832.761 24 ctime=1599661999.662 libprelude-5.2.0/libmissing/tests/init.sh0000644000000000000000000005021213726163410020447 0ustar00rootroot00000000000000# source this file; set up for tests # Copyright (C) 2009-2018 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 3 of the License, 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, see . # Using this file in a test # ========================= # # The typical skeleton of a test looks like this: # # #!/bin/sh # . "${srcdir=.}/init.sh"; path_prepend_ . # Execute some commands. # Note that these commands are executed in a subdirectory, therefore you # need to prepend "../" to relative filenames in the build directory. # Note that the "path_prepend_ ." is useful only if the body of your # test invokes programs residing in the initial directory. # For example, if the programs you want to test are in src/, and this test # script is named tests/test-1, then you would use "path_prepend_ ../src", # or perhaps export PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH" # to all tests via automake's TESTS_ENVIRONMENT. # Set the exit code 0 for success, 77 for skipped, or 1 or other for failure. # Use the skip_ and fail_ functions to print a diagnostic and then exit # with the corresponding exit code. # Exit $? # Executing a test that uses this file # ==================================== # # Running a single test: # $ make check TESTS=test-foo.sh # # Running a single test, with verbose output: # $ make check TESTS=test-foo.sh VERBOSE=yes # # Running a single test, keeping the temporary directory: # $ make check TESTS=test-foo.sh KEEP=yes # # Running a single test, with single-stepping: # 1. Go into a sub-shell: # $ bash # 2. Set relevant environment variables from TESTS_ENVIRONMENT in the # Makefile: # $ export srcdir=../../tests # this is an example # 3. Execute the commands from the test, copy&pasting them one by one: # $ . "$srcdir/init.sh"; path_prepend_ . # ... # 4. Finally # $ exit ME_=`expr "./$0" : '.*/\(.*\)$'` # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # We use a trap below for cleanup. This requires us to go through # hoops to get the right exit status transported through the handler. # So use 'Exit STATUS' instead of 'exit STATUS' inside of the tests. # Turn off errexit here so that we don't trip the bug with OSF1/Tru64 # sh inside this function. Exit () { set +e; (exit $1); exit $1; } # Print warnings (e.g., about skipped and failed tests) to this file number. # Override by defining to say, 9, in init.cfg, and putting say, # export ...ENVVAR_SETTINGS...; $(SHELL) 9>&2 # in the definition of TESTS_ENVIRONMENT in your tests/Makefile.am file. # This is useful when using automake's parallel tests mode, to print # the reason for skip/failure to console, rather than to the .log files. : ${stderr_fileno_=2} # Note that correct expansion of "$*" depends on IFS starting with ' '. # Always write the full diagnostic to stderr. # When stderr_fileno_ is not 2, also emit the first line of the # diagnostic to that file descriptor. warn_ () { # If IFS does not start with ' ', set it and emit the warning in a subshell. case $IFS in ' '*) printf '%s\n' "$*" >&2 test $stderr_fileno_ = 2 \ || { printf '%s\n' "$*" | sed 1q >&$stderr_fileno_ ; } ;; *) (IFS=' '; warn_ "$@");; esac } fail_ () { warn_ "$ME_: failed test: $@"; Exit 1; } skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; } fatal_ () { warn_ "$ME_: hard error: $@"; Exit 99; } framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; } # This is used to simplify checking of the return value # which is useful when ensuring a command fails as desired. # I.e., just doing `command ... &&fail=1` will not catch # a segfault in command for example. With this helper you # instead check an explicit exit code like # returns_ 1 command ... || fail returns_ () { # Disable tracing so it doesn't interfere with stderr of the wrapped command { set +x; } 2>/dev/null local exp_exit="$1" shift "$@" test $? -eq $exp_exit && ret_=0 || ret_=1 if test "$VERBOSE" = yes && test "$gl_set_x_corrupts_stderr_" = false; then set -x fi { return $ret_; } 2>/dev/null } # Sanitize this shell to POSIX mode, if possible. DUALCASE=1; export DUALCASE if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # We require $(...) support unconditionally. # We require non-surprising "local" semantics (this eliminates dash). # This takes the admittedly draconian step of eliminating dash, because the # assignment tab=$(printf '\t') works fine, yet preceding it with "local " # transforms it into an assignment that sets the variable to the empty string. # That is too counter-intuitive, and can lead to subtle run-time malfunction. # The example below is less subtle in that with dash, it evokes the run-time # exception "dash: 1: local: 1: bad variable name". # We require a few additional shell features only when $EXEEXT is nonempty, # in order to support automatic $EXEEXT emulation: # - hyphen-containing alias names # - we prefer to use ${var#...} substitution, rather than having # to work around lack of support for that feature. # The following code attempts to find a shell with support for these features. # If the current shell passes the test, we're done. Otherwise, test other # shells until we find one that passes. If one is found, re-exec it. # If no acceptable shell is found, skip the current test. # # The "...set -x; P=1 true 2>err..." test is to disqualify any shell that # emits "P=1" into err, as /bin/sh from SunOS 5.11 and OpenBSD 4.7 do. # # Use "9" to indicate success (rather than 0), in case some shell acts # like Solaris 10's /bin/sh but exits successfully instead of with status 2. # Eval this code in a subshell to determine a shell's suitability. # 10 - passes all tests; ok to use # 9 - ok, but enabling "set -x" corrupts app stderr; prefer higher score # ? - not ok gl_shell_test_script_=' test $(echo y) = y || exit 1 f_local_() { local v=1; }; f_local_ || exit 1 f_dash_local_fail_() { local t=$(printf " 1"); }; f_dash_local_fail_ score_=10 if test "$VERBOSE" = yes; then test -n "$( (exec 3>&1; set -x; P=1 true 2>&3) 2> /dev/null)" && score_=9 fi test -z "$EXEEXT" && exit $score_ shopt -s expand_aliases alias a-b="echo zoo" v=abx test ${v%x} = ab \ && test ${v#a} = bx \ && test $(a-b) = zoo \ && exit $score_ ' if test "x$1" = "x--no-reexec"; then shift else # Assume a working shell. Export to subshells (setup_ needs this). gl_set_x_corrupts_stderr_=false export gl_set_x_corrupts_stderr_ # Record the first marginally acceptable shell. marginal_= # Search for a shell that meets our requirements. for re_shell_ in __current__ "${CONFIG_SHELL:-no_shell}" \ /bin/sh bash dash zsh pdksh fail do test "$re_shell_" = no_shell && continue # If we've made it all the way to the sentinel, "fail" without # finding even a marginal shell, skip this test. if test "$re_shell_" = fail; then test -z "$marginal_" && skip_ failed to find an adequate shell re_shell_=$marginal_ break fi # When testing the current shell, simply "eval" the test code. # Otherwise, run it via $re_shell_ -c ... if test "$re_shell_" = __current__; then # 'eval'ing this code makes Solaris 10's /bin/sh exit with # $? set to 2. It does not evaluate any of the code after the # "unexpected" first '('. Thus, we must run it in a subshell. ( eval "$gl_shell_test_script_" ) > /dev/null 2>&1 else "$re_shell_" -c "$gl_shell_test_script_" 2>/dev/null fi st_=$? # $re_shell_ works just fine. Use it. if test $st_ = 10; then gl_set_x_corrupts_stderr_=false break fi # If this is our first marginally acceptable shell, remember it. if test "$st_:$marginal_" = 9: ; then marginal_="$re_shell_" gl_set_x_corrupts_stderr_=true fi done if test "$re_shell_" != __current__; then # Found a usable shell. Preserve -v and -x. case $- in *v*x* | *x*v*) opts_=-vx ;; *v*) opts_=-v ;; *x*) opts_=-x ;; *) opts_= ;; esac re_shell=$re_shell_ export re_shell exec "$re_shell_" $opts_ "$0" --no-reexec "$@" echo "$ME_: exec failed" 1>&2 exit 127 fi fi # If this is bash, turn off all aliases. test -n "$BASH_VERSION" && unalias -a # Note that when supporting $EXEEXT (transparently mapping from PROG_NAME to # PROG_NAME.exe), we want to support hyphen-containing names like test-acos. # That is part of the shell-selection test above. Why use aliases rather # than functions? Because support for hyphen-containing aliases is more # widespread than that for hyphen-containing function names. test -n "$EXEEXT" && test -n "$BASH_VERSION" && shopt -s expand_aliases # Enable glibc's malloc-perturbing option. # This is useful for exposing code that depends on the fact that # malloc-related functions often return memory that is mostly zeroed. # If you have the time and cycles, use valgrind to do an even better job. : ${MALLOC_PERTURB_=87} export MALLOC_PERTURB_ # This is a stub function that is run upon trap (upon regular exit and # interrupt). Override it with a per-test function, e.g., to unmount # a partition, or to undo any other global state changes. cleanup_ () { :; } # Emit a header similar to that from diff -u; Print the simulated "diff" # command so that the order of arguments is clear. Don't bother with @@ lines. emit_diff_u_header_ () { printf '%s\n' "diff -u $*" \ "--- $1 1970-01-01" \ "+++ $2 1970-01-01" } # Arrange not to let diff or cmp operate on /dev/null, # since on some systems (at least OSF/1 5.1), that doesn't work. # When there are not two arguments, or no argument is /dev/null, return 2. # When one argument is /dev/null and the other is not empty, # cat the nonempty file to stderr and return 1. # Otherwise, return 0. compare_dev_null_ () { test $# = 2 || return 2 if test "x$1" = x/dev/null; then test -s "$2" || return 0 emit_diff_u_header_ "$@"; sed 's/^/+/' "$2" return 1 fi if test "x$2" = x/dev/null; then test -s "$1" || return 0 emit_diff_u_header_ "$@"; sed 's/^/-/' "$1" return 1 fi return 2 } for diff_opt_ in -u -U3 -c '' no; do test "$diff_opt_" != no && diff_out_=`exec 2>/dev/null; diff $diff_opt_ "$0" "$0" < /dev/null` && break done if test "$diff_opt_" != no; then if test -z "$diff_out_"; then compare_ () { diff $diff_opt_ "$@"; } else compare_ () { # If no differences were found, AIX and HP-UX 'diff' produce output # like "No differences encountered". Hide this output. diff $diff_opt_ "$@" > diff.out diff_status_=$? test $diff_status_ -eq 0 || cat diff.out || diff_status_=2 rm -f diff.out || diff_status_=2 return $diff_status_ } fi elif cmp -s /dev/null /dev/null 2>/dev/null; then compare_ () { cmp -s "$@"; } else compare_ () { cmp "$@"; } fi # Usage: compare EXPECTED ACTUAL # # Given compare_dev_null_'s preprocessing, defer to compare_ if 2 or more. # Otherwise, propagate $? to caller: any diffs have already been printed. compare () { # This looks like it can be factored to use a simple "case $?" # after unchecked compare_dev_null_ invocation, but that would # fail in a "set -e" environment. if compare_dev_null_ "$@"; then return 0 else case $? in 1) return 1;; *) compare_ "$@";; esac fi } # An arbitrary prefix to help distinguish test directories. testdir_prefix_ () { printf gt; } # Run the user-overridable cleanup_ function, remove the temporary # directory and exit with the incoming value of $?. remove_tmp_ () { __st=$? cleanup_ if test "$KEEP" = yes; then echo "Not removing temporary directory $test_dir_" else # cd out of the directory we're about to remove cd "$initial_cwd_" || cd / || cd /tmp chmod -R u+rwx "$test_dir_" # If removal fails and exit status was to be 0, then change it to 1. rm -rf "$test_dir_" || { test $__st = 0 && __st=1; } fi exit $__st } # Given a directory name, DIR, if every entry in it that matches *.exe # contains only the specified bytes (see the case stmt below), then print # a space-separated list of those names and return 0. Otherwise, don't # print anything and return 1. Naming constraints apply also to DIR. find_exe_basenames_ () { feb_dir_=$1 feb_fail_=0 feb_result_= feb_sp_= for feb_file_ in $feb_dir_/*.exe; do # If there was no *.exe file, or there existed a file named "*.exe" that # was deleted between the above glob expansion and the existence test # below, just skip it. test "x$feb_file_" = "x$feb_dir_/*.exe" && test ! -f "$feb_file_" \ && continue # Exempt [.exe, since we can't create a function by that name, yet # we can't invoke [ by PATH search anyways due to shell builtins. test "x$feb_file_" = "x$feb_dir_/[.exe" && continue case $feb_file_ in *[!-a-zA-Z/0-9_.+]*) feb_fail_=1; break;; *) # Remove leading file name components as well as the .exe suffix. feb_file_=${feb_file_##*/} feb_file_=${feb_file_%.exe} feb_result_="$feb_result_$feb_sp_$feb_file_";; esac feb_sp_=' ' done test $feb_fail_ = 0 && printf %s "$feb_result_" return $feb_fail_ } # Consider the files in directory, $1. # For each file name of the form PROG.exe, create an alias named # PROG that simply invokes PROG.exe, then return 0. If any selected # file name or the directory name, $1, contains an unexpected character, # define no alias and return 1. create_exe_shims_ () { case $EXEEXT in '') return 0 ;; .exe) ;; *) echo "$0: unexpected \$EXEEXT value: $EXEEXT" 1>&2; return 1 ;; esac base_names_=`find_exe_basenames_ $1` \ || { echo "$0 (exe_shim): skipping directory: $1" 1>&2; return 0; } if test -n "$base_names_"; then for base_ in $base_names_; do alias "$base_"="$base_$EXEEXT" done fi return 0 } # Use this function to prepend to PATH an absolute name for each # specified, possibly-$initial_cwd_-relative, directory. path_prepend_ () { while test $# != 0; do path_dir_=$1 case $path_dir_ in '') fail_ "invalid path dir: '$1'";; /* | ?:*) abs_path_dir_=$path_dir_;; *) abs_path_dir_=$initial_cwd_/$path_dir_;; esac case $abs_path_dir_ in *$PATH_SEPARATOR*) fail_ "invalid path dir: '$abs_path_dir_'";; esac PATH="$abs_path_dir_$PATH_SEPARATOR$PATH" # Create an alias, FOO, for each FOO.exe in this directory. create_exe_shims_ "$abs_path_dir_" \ || fail_ "something failed (above): $abs_path_dir_" shift done export PATH } setup_ () { if test "$VERBOSE" = yes; then # Test whether set -x may cause the selected shell to corrupt an # application's stderr. Many do, including zsh-4.3.10 and the /bin/sh # from SunOS 5.11, OpenBSD 4.7 and Irix 5.x and 6.5. # If enabling verbose output this way would cause trouble, simply # issue a warning and refrain. if $gl_set_x_corrupts_stderr_; then warn_ "using SHELL=$SHELL with 'set -x' corrupts stderr" else set -x fi fi initial_cwd_=$PWD pfx_=`testdir_prefix_` test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \ || fail_ "failed to create temporary directory in $initial_cwd_" cd "$test_dir_" || fail_ "failed to cd to temporary directory" # As autoconf-generated configure scripts do, ensure that IFS # is defined initially, so that saving and restoring $IFS works. gl_init_sh_nl_=' ' IFS=" "" $gl_init_sh_nl_" # This trap statement, along with a trap on 0 below, ensure that the # temporary directory, $test_dir_, is removed upon exit as well as # upon receipt of any of the listed signals. for sig_ in 1 2 3 13 15; do eval "trap 'Exit $(expr $sig_ + 128)' $sig_" done } # Create a temporary directory, much like mktemp -d does. # Written by Jim Meyering. # # Usage: mktempd_ /tmp phoey.XXXXXXXXXX # # First, try to use the mktemp program. # Failing that, we'll roll our own mktemp-like function: # - try to get random bytes from /dev/urandom # - failing that, generate output from a combination of quickly-varying # sources and gzip. Ignore non-varying gzip header, and extract # "random" bits from there. # - given those bits, map to file-name bytes using tr, and try to create # the desired directory. # - make only $MAX_TRIES_ attempts # Helper function. Print $N pseudo-random bytes from a-zA-Z0-9. rand_bytes_ () { n_=$1 # Maybe try openssl rand -base64 $n_prime_|tr '+/=\012' abcd first? # But if they have openssl, they probably have mktemp, too. chars_=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 dev_rand_=/dev/urandom if test -r "$dev_rand_"; then # Note: 256-length($chars_) == 194; 3 copies of $chars_ is 186 + 8 = 194. dd ibs=$n_ count=1 if=$dev_rand_ 2>/dev/null \ | LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_ return fi n_plus_50_=`expr $n_ + 50` cmds_='date; date +%N; free; who -a; w; ps auxww; ps -ef' data_=` (eval "$cmds_") 2>&1 | gzip ` # Ensure that $data_ has length at least 50+$n_ while :; do len_=`echo "$data_"|wc -c` test $n_plus_50_ -le $len_ && break; data_=` (echo "$data_"; eval "$cmds_") 2>&1 | gzip ` done echo "$data_" \ | dd bs=1 skip=50 count=$n_ 2>/dev/null \ | LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_ } mktempd_ () { case $# in 2);; *) fail_ "Usage: mktempd_ DIR TEMPLATE";; esac destdir_=$1 template_=$2 MAX_TRIES_=4 # Disallow any trailing slash on specified destdir: # it would subvert the post-mktemp "case"-based destdir test. case $destdir_ in / | //) destdir_slash_=$destdir;; */) fail_ "invalid destination dir: remove trailing slash(es)";; *) destdir_slash_=$destdir_/;; esac case $template_ in *XXXX) ;; *) fail_ \ "invalid template: $template_ (must have a suffix of at least 4 X's)";; esac # First, try to use mktemp. d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` && # The resulting name must be in the specified directory. case $d in "$destdir_slash_"*) :;; *) false;; esac && # It must have created the directory. test -d "$d" && # It must have 0700 permissions. Handle sticky "S" bits. perms=`ls -dgo "$d" 2>/dev/null` && case $perms in drwx--[-S]---*) :;; *) false;; esac && { echo "$d" return } # If we reach this point, we'll have to create a directory manually. # Get a copy of the template without its suffix of X's. base_template_=`echo "$template_"|sed 's/XX*$//'` # Calculate how many X's we've just removed. template_length_=`echo "$template_" | wc -c` nx_=`echo "$base_template_" | wc -c` nx_=`expr $template_length_ - $nx_` err_= i_=1 while :; do X_=`rand_bytes_ $nx_` candidate_dir_="$destdir_slash_$base_template_$X_" err_=`mkdir -m 0700 "$candidate_dir_" 2>&1` \ && { echo "$candidate_dir_"; return; } test $MAX_TRIES_ -le $i_ && break; i_=`expr $i_ + 1` done fail_ "$err_" } # If you want to override the testdir_prefix_ function, # or to add more utility functions, use this file. test -f "$srcdir/init.cfg" \ && . "$srcdir/init.cfg" setup_ "$@" # This trap is here, rather than in the setup_ function, because some # shells run the exit trap at shell function exit, rather than script exit. trap remove_tmp_ 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-init.sh0000644000000000000000000000010713726163410022427 xustar000000000000000023 mtime=1599661832.63 24 atime=1599661832.766 24 ctime=1599661999.664 libprelude-5.2.0/libmissing/tests/test-init.sh0000755000000000000000000000463413726163410021436 0ustar00rootroot00000000000000#!/bin/sh # Unit tests for init.sh # Copyright (C) 2011-2018 Free Software Foundation, Inc. # This file is part of the GNUlib Library. # # 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 3 of the License, 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, see . */ : ${srcdir=.} . "$srcdir/init.sh"; path_prepend_ . fail=0 test_compare() { touch empty || fail=1 echo xyz > in || fail=1 compare /dev/null /dev/null >out 2>err || fail=1 test -s out && fail_ "out not empty: $(cat out)" # "err" should be empty, too, but has "set -x" output when VERBOSE=yes case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac compare /dev/null empty >out 2>err || fail=1 test -s out && fail_ "out not empty: $(cat out)" case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac compare in in >out 2>err || fail=1 test -s out && fail_ "out not empty: $(cat out)" case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac compare /dev/null in >out 2>err && fail=1 cat <<\EOF > exp diff -u /dev/null in --- /dev/null 1970-01-01 +++ in 1970-01-01 +xyz EOF compare exp out || fail=1 case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac compare empty in >out 2>err && fail=1 # Compare against expected output only if compare is using diff -u. if grep @ out >/dev/null; then # Remove the TAB-date suffix on each --- and +++ line, # for both the expected and the actual output files. # Also remove the @@ line, since Solaris 5.10 and GNU diff formats differ: # -@@ -0,0 +1 @@ # +@@ -1,0 +1,1 @@ # Also, remove space after leading '+', since AIX 7.1 diff outputs a space. sed 's/ .*//;/^@@/d;s/^+ /+/' out > k && mv k out cat <<\EOF > exp --- empty +++ in +xyz EOF compare exp out || fail=1 fi case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac } test_compare Exit $fail libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-verify.sh0000644000000000000000000000010713726163410022770 xustar000000000000000024 mtime=1599661832.648 23 atime=1599661832.77 24 ctime=1599661999.667 libprelude-5.2.0/libmissing/tests/test-verify.sh0000755000000000000000000000132513726163410021771 0ustar00rootroot00000000000000#!/bin/sh . "${srcdir=.}/init.sh" # We are not interested in triggering bugs in the compilers and tools # (such as gcc 4.3.1 on openSUSE 11.0). unset MALLOC_PERTURB_ # Rather than figure out how to invoke the compiler with the right # include path ourselves, we let make do it: (cd "$initial_cwd_" \ && rm -f test-verify-try.o \ && $MAKE test-verify-try.o >/dev/null 2>&1) \ || skip_ "cannot compile error-free" # Now, prove that we encounter all expected compilation failures: : >out : >err for i in 1 2 3 4 5; do (cd "$initial_cwd_" rm -f test-verify-try.o $MAKE CFLAGS=-DEXP_FAIL=$i test-verify-try.o) >>out 2>>err \ && { warn_ "compiler didn't detect verification failure $i"; fail=1; } done Exit $fail libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-wcrtomb.sh0000644000000000000000000000010713726163410023141 xustar000000000000000024 mtime=1599661832.649 23 atime=1599661832.77 24 ctime=1599661999.669 libprelude-5.2.0/libmissing/tests/test-wcrtomb.sh0000755000000000000000000000136113726163410022142 0ustar00rootroot00000000000000#!/bin/sh # Test in an ISO-8859-1 or ISO-8859-15 locale. : ${LOCALE_FR=fr_FR} if test $LOCALE_FR != none; then LC_ALL=$LOCALE_FR \ ./test-wcrtomb${EXEEXT} 1 \ || exit 1 fi # Test whether a specific UTF-8 locale is installed. : ${LOCALE_FR_UTF8=fr_FR.UTF-8} if test $LOCALE_FR_UTF8 != none; then LC_ALL=$LOCALE_FR_UTF8 \ ./test-wcrtomb${EXEEXT} 2 \ || exit 1 fi # Test whether a specific EUC-JP locale is installed. : ${LOCALE_JA=ja_JP} if test $LOCALE_JA != none; then LC_ALL=$LOCALE_JA \ ./test-wcrtomb${EXEEXT} 3 \ || exit 1 fi # Test whether a specific GB18030 locale is installed. : ${LOCALE_ZH_CN=zh_CN.GB18030} if test $LOCALE_ZH_CN != none; then LC_ALL=$LOCALE_ZH_CN \ ./test-wcrtomb${EXEEXT} 4 \ || exit 1 fi exit 0 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-wcrtomb-w32-1.sh0000644000000000000000000000010613726163410023707 xustar000000000000000024 mtime=1599661832.648 23 atime=1599661832.77 23 ctime=1599661999.67 libprelude-5.2.0/libmissing/tests/test-wcrtomb-w32-1.sh0000755000000000000000000000012213726163410022703 0ustar00rootroot00000000000000#!/bin/sh # Test a CP1252 locale. ./test-wcrtomb-w32${EXEEXT} French_France 1252 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-wcrtomb-w32-2.sh0000644000000000000000000000010713726163410023711 xustar000000000000000024 mtime=1599661832.649 23 atime=1599661832.77 24 ctime=1599661999.672 libprelude-5.2.0/libmissing/tests/test-wcrtomb-w32-2.sh0000755000000000000000000000013213726163410022705 0ustar00rootroot00000000000000#!/bin/sh # Test a CP1256 locale. ./test-wcrtomb-w32${EXEEXT} "Arabic_Saudi Arabia" 1256 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-wcrtomb-w32-3.sh0000644000000000000000000000010713726163410023712 xustar000000000000000024 mtime=1599661832.649 23 atime=1599661832.77 24 ctime=1599661999.674 libprelude-5.2.0/libmissing/tests/test-wcrtomb-w32-3.sh0000755000000000000000000000012113726163410022704 0ustar00rootroot00000000000000#!/bin/sh # Test a CP932 locale. ./test-wcrtomb-w32${EXEEXT} Japanese_Japan 932 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-wcrtomb-w32-4.sh0000644000000000000000000000010713726163410023713 xustar000000000000000024 mtime=1599661832.649 23 atime=1599661832.77 24 ctime=1599661999.675 libprelude-5.2.0/libmissing/tests/test-wcrtomb-w32-4.sh0000755000000000000000000000012113726163410022705 0ustar00rootroot00000000000000#!/bin/sh # Test a CP950 locale. ./test-wcrtomb-w32${EXEEXT} Chinese_Taiwan 950 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/test-wcrtomb-w32-5.sh0000644000000000000000000000010713726163410023714 xustar000000000000000024 mtime=1599661832.649 23 atime=1599661832.77 24 ctime=1599661999.677 libprelude-5.2.0/libmissing/tests/test-wcrtomb-w32-5.sh0000755000000000000000000000012013726163410022705 0ustar00rootroot00000000000000#!/bin/sh # Test a CP936 locale. ./test-wcrtomb-w32${EXEEXT} Chinese_China 936 libprelude-5.2.0/libmissing/tests/PaxHeaders.14770/wctomb-impl.h0000644000000000000000000000011013726163410022550 xustar000000000000000024 mtime=1599661832.651 24 atime=1599661832.771 24 ctime=1599661999.679 libprelude-5.2.0/libmissing/tests/wctomb-impl.h0000644000000000000000000000211313726163410021550 0ustar00rootroot00000000000000/* Convert wide character to multibyte character. Copyright (C) 2011-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2011. 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 3 of the License, 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, see . */ int wctomb (char *s, wchar_t wc) { if (s == NULL) return 0; else { mbstate_t state; size_t result; memset (&state, 0, sizeof (mbstate_t)); result = wcrtomb (s, wc, &state); if (result == (size_t)-1) return -1; return result; } } libprelude-5.2.0/libmissing/PaxHeaders.14770/sys_types.in.h0000644000000000000000000000010613726163410021630 xustar000000000000000024 mtime=1599661832.607 23 atime=1599661832.76 23 ctime=1599661999.14 libprelude-5.2.0/libmissing/sys_types.in.h0000644000000000000000000000615713726163410020637 0ustar00rootroot00000000000000/* Provide a more complete sys/types.h. Copyright (C) 2011-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _WIN32 && !defined __CYGWIN__ \ && (defined __need_off_t || defined __need___off64_t \ || defined __need_ssize_t || defined __need_time_t) /* Special invocation convention inside mingw header files. */ #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_TYPES_H /* The include_next requires a split double-inclusion guard. */ # define _GL_INCLUDING_SYS_TYPES_H #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ # undef _GL_INCLUDING_SYS_TYPES_H #ifndef _@GUARD_PREFIX@_SYS_TYPES_H #define _@GUARD_PREFIX@_SYS_TYPES_H /* Override off_t if Large File Support is requested on native Windows. */ #if @WINDOWS_64_BIT_OFF_T@ /* Same as int64_t in . */ # if defined _MSC_VER # define off_t __int64 # else # define off_t long long int # endif /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_64_BIT_OFF_T 1 #endif /* Override dev_t and ino_t if distinguishable inodes support is requested on native Windows. */ #if @WINDOWS_STAT_INODES@ # if @WINDOWS_STAT_INODES@ == 2 /* Experimental, not useful in Windows 10. */ /* Define dev_t to a 64-bit type. */ # if !defined GNULIB_defined_dev_t typedef unsigned long long int rpl_dev_t; # undef dev_t # define dev_t rpl_dev_t # define GNULIB_defined_dev_t 1 # endif /* Define ino_t to a 128-bit type. */ # if !defined GNULIB_defined_ino_t /* MSVC does not have a 128-bit integer type. GCC has a 128-bit integer type __int128, but only on 64-bit targets. */ typedef struct { unsigned long long int _gl_ino[2]; } rpl_ino_t; # undef ino_t # define ino_t rpl_ino_t # define GNULIB_defined_ino_t 1 # endif # else /* @WINDOWS_STAT_INODES@ == 1 */ /* Define ino_t to a 64-bit type. */ # if !defined GNULIB_defined_ino_t typedef unsigned long long int rpl_ino_t; # undef ino_t # define ino_t rpl_ino_t # define GNULIB_defined_ino_t 1 # endif # endif /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_STAT_INODES @WINDOWS_STAT_INODES@ #endif /* MSVC 9 defines size_t in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__ # include #endif #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* __need_XXX */ libprelude-5.2.0/libmissing/PaxHeaders.14770/sys_uio.in.h0000644000000000000000000000010713726163410021261 xustar000000000000000024 mtime=1599661832.607 23 atime=1599661832.76 24 ctime=1599661999.142 libprelude-5.2.0/libmissing/sys_uio.in.h0000644000000000000000000000322413726163410020257 0ustar00rootroot00000000000000/* Substitute for . Copyright (C) 2011-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ # if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ # endif @PRAGMA_COLUMNS@ #ifndef _@GUARD_PREFIX@_SYS_UIO_H #if @HAVE_SYS_UIO_H@ /* On OpenBSD 4.4, assumes prior inclusion of . */ # include /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_SYS_UIO_H@ #endif #ifndef _@GUARD_PREFIX@_SYS_UIO_H #define _@GUARD_PREFIX@_SYS_UIO_H #if !@HAVE_SYS_UIO_H@ /* A platform that lacks . */ /* Get 'size_t' and 'ssize_t'. */ # include # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_struct_iovec /* All known platforms that lack also lack any declaration of struct iovec in any other header. */ struct iovec { void *iov_base; size_t iov_len; }; # define GNULIB_defined_struct_iovec 1 # endif # ifdef __cplusplus } # endif #endif #endif /* _@GUARD_PREFIX@_SYS_UIO_H */ #endif /* _@GUARD_PREFIX@_SYS_UIO_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/sys_utsname.in.h0000644000000000000000000000010713726163410022141 xustar000000000000000024 mtime=1599661832.607 23 atime=1599661832.76 24 ctime=1599661999.143 libprelude-5.2.0/libmissing/sys_utsname.in.h0000644000000000000000000000564313726163410021146 0ustar00rootroot00000000000000/* Substitute for . Copyright (C) 2009-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_SYS_UTSNAME_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if @HAVE_SYS_UTSNAME_H@ /* Minix 3.1.8 has a bug: must be included before . But avoid namespace pollution on glibc systems. */ # if defined __minix && !defined __GLIBC__ # include # endif # @INCLUDE_NEXT@ @NEXT_SYS_UTSNAME_H@ #endif #define _@GUARD_PREFIX@_SYS_UTSNAME_H /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #ifdef __cplusplus extern "C" { #endif #if !@HAVE_STRUCT_UTSNAME@ /* Length of the entries in 'struct utsname' is 256. */ # define _UTSNAME_LENGTH 256 # ifndef _UTSNAME_NODENAME_LENGTH # define _UTSNAME_NODENAME_LENGTH _UTSNAME_LENGTH # endif # ifndef _UTSNAME_SYSNAME_LENGTH # define _UTSNAME_SYSNAME_LENGTH _UTSNAME_LENGTH # endif # ifndef _UTSNAME_RELEASE_LENGTH # define _UTSNAME_RELEASE_LENGTH _UTSNAME_LENGTH # endif # ifndef _UTSNAME_VERSION_LENGTH # define _UTSNAME_VERSION_LENGTH _UTSNAME_LENGTH # endif # ifndef _UTSNAME_MACHINE_LENGTH # define _UTSNAME_MACHINE_LENGTH _UTSNAME_LENGTH # endif # if !GNULIB_defined_struct_utsname /* Structure describing the system and machine. */ struct utsname { /* Name of this node on the network. */ char nodename[_UTSNAME_NODENAME_LENGTH]; /* Name of the implementation of the operating system. */ char sysname[_UTSNAME_SYSNAME_LENGTH]; /* Current release level of this implementation. */ char release[_UTSNAME_RELEASE_LENGTH]; /* Current version level of this release. */ char version[_UTSNAME_VERSION_LENGTH]; /* Name of the hardware type the system is running on. */ char machine[_UTSNAME_MACHINE_LENGTH]; }; # define GNULIB_defined_struct_utsname 1 # endif #endif /* !@HAVE_STRUCT_UTSNAME@ */ #if @GNULIB_UNAME@ # if !@HAVE_UNAME@ extern int uname (struct utsname *buf) _GL_ARG_NONNULL ((1)); # endif #elif defined GNULIB_POSIXCHECK # undef uname # if HAVE_RAW_DECL_UNAME _GL_WARN_ON_USE (uname, "uname is unportable - " "use gnulib module uname for portability"); # endif #endif #ifdef __cplusplus } #endif #endif /* _@GUARD_PREFIX@_SYS_UTSNAME_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/time.in.h0000644000000000000000000000011013726163410020517 xustar000000000000000024 mtime=1599661832.652 24 atime=1599661832.771 24 ctime=1599661999.145 libprelude-5.2.0/libmissing/time.in.h0000644000000000000000000003140513726163410017525 0ustar00rootroot00000000000000/* A more-standard . Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Don't get in the way of glibc when it includes time.h merely to declare a few standard symbols, rather than to declare all the symbols. (However, skip this for MinGW as it treats __need_time_t incompatibly.) Also, Solaris 8 eventually includes itself recursively; if that is happening, just include the system without adding our own declarations. */ #if (((defined __need_time_t || defined __need_clock_t \ || defined __need_timespec) \ && !defined __MINGW32__) \ || defined _@GUARD_PREFIX@_TIME_H) # @INCLUDE_NEXT@ @NEXT_TIME_H@ #else # define _@GUARD_PREFIX@_TIME_H # @INCLUDE_NEXT@ @NEXT_TIME_H@ /* NetBSD 5.0 mis-defines NULL. */ # include /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3). Or they define it with the wrong member names or define it in (e.g., FreeBSD circa 1997). Stock Mingw prior to 3.0 does not define it, but the pthreads-win32 library defines it in . */ # if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ # if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ # include # elif @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ # include # elif @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ # include # else # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_struct_timespec # undef timespec # define timespec rpl_timespec struct timespec { time_t tv_sec; long int tv_nsec; }; # define GNULIB_defined_struct_timespec 1 # endif # ifdef __cplusplus } # endif # endif # endif # if !GNULIB_defined_struct_time_t_must_be_integral /* Per http://austingroupbugs.net/view.php?id=327, POSIX requires time_t to be an integer type, even though C99 permits floating point. We don't know of any implementation that uses floating point, and it is much easier to write code that doesn't have to worry about that corner case, so we force the issue. */ struct __time_t_must_be_integral { unsigned int __floating_time_t_unsupported : (time_t) 1; }; # define GNULIB_defined_struct_time_t_must_be_integral 1 # endif /* Sleep for at least RQTP seconds unless interrupted, If interrupted, return -1 and store the remaining time into RMTP. See . */ # if @GNULIB_NANOSLEEP@ # if @REPLACE_NANOSLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define nanosleep rpl_nanosleep # endif _GL_FUNCDECL_RPL (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp)); # else # if ! @HAVE_NANOSLEEP@ _GL_FUNCDECL_SYS (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp)); # endif _GL_CXXALIASWARN (nanosleep); # endif /* Initialize time conversion information. */ # if @GNULIB_TZSET@ # if @REPLACE_TZSET@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef tzset # define tzset rpl_tzset # endif _GL_FUNCDECL_RPL (tzset, void, (void)); _GL_CXXALIAS_RPL (tzset, void, (void)); # else # if ! @HAVE_TZSET@ _GL_FUNCDECL_SYS (tzset, void, (void)); # endif _GL_CXXALIAS_SYS (tzset, void, (void)); # endif _GL_CXXALIASWARN (tzset); # endif /* Return the 'time_t' representation of TP and normalize TP. */ # if @GNULIB_MKTIME@ # if @REPLACE_MKTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mktime rpl_mktime # endif _GL_FUNCDECL_RPL (mktime, time_t, (struct tm *__tp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mktime, time_t, (struct tm *__tp)); # else _GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp)); # endif _GL_CXXALIASWARN (mktime); # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See and . */ # if @GNULIB_TIME_R@ # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localtime_r # define localtime_r rpl_localtime_r # endif _GL_FUNCDECL_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else # if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif # if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (localtime_r); # endif # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gmtime_r # define gmtime_r rpl_gmtime_r # endif _GL_FUNCDECL_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else # if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif # if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (gmtime_r); # endif # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See and . */ # if @GNULIB_LOCALTIME@ || @REPLACE_LOCALTIME@ # if @REPLACE_LOCALTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localtime # define localtime rpl_localtime # endif _GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer)); # else _GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer)); # endif _GL_CXXALIASWARN (localtime); # endif # if 0 || @REPLACE_GMTIME@ # if @REPLACE_GMTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gmtime # define gmtime rpl_gmtime # endif _GL_FUNCDECL_RPL (gmtime, struct tm *, (time_t const *__timer) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gmtime, struct tm *, (time_t const *__timer)); # else _GL_CXXALIAS_SYS (gmtime, struct tm *, (time_t const *__timer)); # endif _GL_CXXALIASWARN (gmtime); # endif /* Parse BUF as a timestamp, assuming FORMAT specifies its layout, and store the resulting broken-down time into TM. See . */ # if @GNULIB_STRPTIME@ # if ! @HAVE_STRPTIME@ _GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm)); _GL_CXXALIASWARN (strptime); # endif /* Convert *TP to a date and time string. See . */ # if @GNULIB_CTIME@ # if @REPLACE_CTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define ctime rpl_ctime # endif _GL_FUNCDECL_RPL (ctime, char *, (time_t const *__tp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ctime, char *, (time_t const *__tp)); # else _GL_CXXALIAS_SYS (ctime, char *, (time_t const *__tp)); # endif _GL_CXXALIASWARN (ctime); # endif /* Convert *TP to a date and time string. See . */ # if @GNULIB_STRFTIME@ # if @REPLACE_STRFTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strftime rpl_strftime # endif _GL_FUNCDECL_RPL (strftime, size_t, (char *__buf, size_t __bufsize, const char *__fmt, const struct tm *__tp) _GL_ARG_NONNULL ((1, 3, 4))); _GL_CXXALIAS_RPL (strftime, size_t, (char *__buf, size_t __bufsize, const char *__fmt, const struct tm *__tp)); # else _GL_CXXALIAS_SYS (strftime, size_t, (char *__buf, size_t __bufsize, const char *__fmt, const struct tm *__tp)); # endif _GL_CXXALIASWARN (strftime); # endif # if defined _GNU_SOURCE && @GNULIB_TIME_RZ@ && ! @HAVE_TIMEZONE_T@ typedef struct tm_zone *timezone_t; _GL_FUNCDECL_SYS (tzalloc, timezone_t, (char const *__name)); _GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name)); _GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz)); _GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz)); _GL_FUNCDECL_SYS (localtime_rz, struct tm *, (timezone_t __tz, time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_SYS (localtime_rz, struct tm *, (timezone_t __tz, time_t const *restrict __timer, struct tm *restrict __result)); _GL_FUNCDECL_SYS (mktime_z, time_t, (timezone_t __tz, struct tm *restrict __result) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_SYS (mktime_z, time_t, (timezone_t __tz, struct tm *restrict __result)); # endif /* Convert TM to a time_t value, assuming UTC. */ # if @GNULIB_TIMEGM@ # if @REPLACE_TIMEGM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef timegm # define timegm rpl_timegm # endif _GL_FUNCDECL_RPL (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (timegm, time_t, (struct tm *__tm)); # else # if ! @HAVE_TIMEGM@ _GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm)); # endif _GL_CXXALIASWARN (timegm); # endif /* Encourage applications to avoid unsafe functions that can overrun buffers when given outlandish struct tm values. Portable applications should use strftime (or even sprintf) instead. */ # if defined GNULIB_POSIXCHECK # undef asctime _GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef asctime_r _GL_WARN_ON_USE (asctime, "asctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef ctime _GL_WARN_ON_USE (asctime, "ctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef ctime_r _GL_WARN_ON_USE (asctime, "ctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/unistd.in.h0000644000000000000000000000011013726163410021067 xustar000000000000000024 mtime=1599661832.653 24 atime=1599661832.771 24 ctime=1599661999.147 libprelude-5.2.0/libmissing/unistd.in.h0000644000000000000000000015677013726163410020112 0ustar00rootroot00000000000000/* Substitute for and wrapper around . Copyright (C) 2003-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_UNISTD_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #ifdef _GL_INCLUDING_UNISTD_H /* Special invocation convention: - On Mac OS X 10.3.9 we have a sequence of nested includes -> -> -> In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_UNISTD_H@ #else /* Normal invocation convention. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ # define _GL_INCLUDING_UNISTD_H # @INCLUDE_NEXT@ @NEXT_UNISTD_H@ # undef _GL_INCLUDING_UNISTD_H #endif /* Get all possible declarations of gethostname(). */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \ && !defined _GL_INCLUDING_WINSOCK2_H # define _GL_INCLUDING_WINSOCK2_H # include # undef _GL_INCLUDING_WINSOCK2_H #endif #if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H #define _@GUARD_PREFIX@_UNISTD_H /* NetBSD 5.0 mis-defines NULL. Also get size_t. */ #include /* mingw doesn't define the SEEK_* or *_FILENO macros in . */ /* MSVC declares 'unlink' in , not in . We must include it before we #define unlink rpl_unlink. */ /* Cygwin 1.7.1 declares symlinkat in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ || ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__)) \ || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ && defined __CYGWIN__)) \ && ! defined __GLIBC__ # include #endif /* Cygwin 1.7.1 declares unlinkat in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && defined __CYGWIN__ \ && ! defined __GLIBC__ # include #endif /* mingw fails to declare _exit in . */ /* mingw, MSVC, BeOS, Haiku declare environ in , not in . */ /* Solaris declares getcwd not only in but also in . */ /* OSF Tru64 Unix cannot see gnulib rpl_strtod when system is included here. */ /* But avoid namespace pollution on glibc systems. */ #if !defined __GLIBC__ && !defined __osf__ # define __need_system_stdlib_h # include # undef __need_system_stdlib_h #endif /* Native Windows platforms declare chdir, getcwd, rmdir in and/or , not in . They also declare access(), chmod(), close(), dup(), dup2(), isatty(), lseek(), read(), unlink(), write() in . */ #if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__)) # include /* mingw32, mingw64 */ # include /* mingw64, MSVC 9 */ #elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \ || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \ || defined GNULIB_POSIXCHECK) \ && (defined _WIN32 && ! defined __CYGWIN__) # include #endif /* AIX and OSF/1 5.1 declare getdomainname in , not in . NonStop Kernel declares gethostname in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \ || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \ && !defined __GLIBC__ # include #endif /* MSVC defines off_t in . May also define off_t to a 64-bit type on native Windows. */ #if !@HAVE_UNISTD_H@ || @WINDOWS_64_BIT_OFF_T@ /* Get off_t. */ # include #endif #if (@GNULIB_READ@ || @GNULIB_WRITE@ \ || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \ || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK) /* Get ssize_t. */ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Get getopt(), optarg, optind, opterr, optopt. */ #if @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT # include # include #endif #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_UNISTD_INLINE # define _GL_UNISTD_INLINE _GL_INLINE #endif /* Hide some function declarations from . */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h # undef connect # define connect connect_used_without_including_sys_socket_h # undef accept # define accept accept_used_without_including_sys_socket_h # undef bind # define bind bind_used_without_including_sys_socket_h # undef getpeername # define getpeername getpeername_used_without_including_sys_socket_h # undef getsockname # define getsockname getsockname_used_without_including_sys_socket_h # undef getsockopt # define getsockopt getsockopt_used_without_including_sys_socket_h # undef listen # define listen listen_used_without_including_sys_socket_h # undef recv # define recv recv_used_without_including_sys_socket_h # undef send # define send send_used_without_including_sys_socket_h # undef recvfrom # define recvfrom recvfrom_used_without_including_sys_socket_h # undef sendto # define sendto sendto_used_without_including_sys_socket_h # undef setsockopt # define setsockopt setsockopt_used_without_including_sys_socket_h # undef shutdown # define shutdown shutdown_used_without_including_sys_socket_h # else _GL_WARN_ON_USE (socket, "socket() used without including "); _GL_WARN_ON_USE (connect, "connect() used without including "); _GL_WARN_ON_USE (accept, "accept() used without including "); _GL_WARN_ON_USE (bind, "bind() used without including "); _GL_WARN_ON_USE (getpeername, "getpeername() used without including "); _GL_WARN_ON_USE (getsockname, "getsockname() used without including "); _GL_WARN_ON_USE (getsockopt, "getsockopt() used without including "); _GL_WARN_ON_USE (listen, "listen() used without including "); _GL_WARN_ON_USE (recv, "recv() used without including "); _GL_WARN_ON_USE (send, "send() used without including "); _GL_WARN_ON_USE (recvfrom, "recvfrom() used without including "); _GL_WARN_ON_USE (sendto, "sendto() used without including "); _GL_WARN_ON_USE (setsockopt, "setsockopt() used without including "); _GL_WARN_ON_USE (shutdown, "shutdown() used without including "); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including "); # endif # endif #endif /* OS/2 EMX lacks these macros. */ #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif /* Ensure *_OK macros exist. */ #ifndef F_OK # define F_OK 0 # define X_OK 1 # define W_OK 2 # define R_OK 4 #endif /* Declare overridden functions. */ #if defined GNULIB_POSIXCHECK /* The access() function is a security risk. */ _GL_WARN_ON_USE (access, "the access function is a security risk - " "use the gnulib module faccessat instead"); #endif #if @GNULIB_CHDIR@ _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIASWARN (chdir); #elif defined GNULIB_POSIXCHECK # undef chdir # if HAVE_RAW_DECL_CHDIR _GL_WARN_ON_USE (chown, "chdir is not always in - " "use gnulib module chdir for portability"); # endif #endif #if @GNULIB_CHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_DUP2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup2 rpl_dup2 # endif _GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd)); _GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); # else # if !@HAVE_DUP2@ _GL_FUNCDECL_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIASWARN (dup2); #elif defined GNULIB_POSIXCHECK # undef dup2 # if HAVE_RAW_DECL_DUP2 _GL_WARN_ON_USE (dup2, "dup2 is unportable - " "use gnulib module dup2 for portability"); # endif #endif #if @GNULIB_DUP3@ /* Copy the file descriptor OLDFD into file descriptor NEWFD, with the specified flags. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). Close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the Linux man page at . */ # if @HAVE_DUP3@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup3 rpl_dup3 # endif _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); # else _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); # endif _GL_CXXALIASWARN (dup3); #elif defined GNULIB_POSIXCHECK # undef dup3 # if HAVE_RAW_DECL_DUP3 _GL_WARN_ON_USE (dup3, "dup3 is unportable - " "use gnulib module dup3 for portability"); # endif #endif #if @GNULIB_ENVIRON@ # if defined __CYGWIN__ && !defined __i386__ /* The 'environ' variable is defined in a DLL. Therefore its declaration needs the '__declspec(dllimport)' attribute, but the system's lacks it. This leads to a link error on 64-bit Cygwin when the option -Wl,--disable-auto-import is in use. */ _GL_EXTERN_C __declspec(dllimport) char **environ; # endif # if !@HAVE_DECL_ENVIRON@ /* Set of environment variables and values. An array of strings of the form "VARIABLE=VALUE", terminated with a NULL. */ # if defined __APPLE__ && defined __MACH__ # include # if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR # define _GL_USE_CRT_EXTERNS # endif # endif # ifdef _GL_USE_CRT_EXTERNS # include # define environ (*_NSGetEnviron ()) # else # ifdef __cplusplus extern "C" { # endif extern char **environ; # ifdef __cplusplus } # endif # endif # endif #elif defined GNULIB_POSIXCHECK # if HAVE_RAW_DECL_ENVIRON _GL_UNISTD_INLINE char *** _GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - " "use gnulib module environ for portability") rpl_environ (void) { return &environ; } # undef environ # define environ (*rpl_environ ()) # endif #endif #if @GNULIB_EUIDACCESS@ /* Like access(), except that it uses the effective user id and group id of the current process. */ # if !@HAVE_EUIDACCESS@ _GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode)); _GL_CXXALIASWARN (euidaccess); # if defined GNULIB_POSIXCHECK /* Like access(), this function is a security risk. */ _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - " "use the gnulib module faccessat instead"); # endif #elif defined GNULIB_POSIXCHECK # undef euidaccess # if HAVE_RAW_DECL_EUIDACCESS _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " "use gnulib module euidaccess for portability"); # endif #endif #if @GNULIB_FACCESSAT@ # if @REPLACE_FACCESSAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef faccessat # define faccessat rpl_faccessat # endif _GL_FUNCDECL_RPL (faccessat, int, (int fd, char const *name, int mode, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (faccessat, int, (int fd, char const *name, int mode, int flag)); # else # if !@HAVE_FACCESSAT@ _GL_FUNCDECL_SYS (faccessat, int, (int fd, char const *file, int mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (faccessat, int, (int fd, char const *file, int mode, int flag)); # endif _GL_CXXALIASWARN (faccessat); #elif defined GNULIB_POSIXCHECK # undef faccessat # if HAVE_RAW_DECL_FACCESSAT _GL_WARN_ON_USE (faccessat, "faccessat is not portable - " "use gnulib module faccessat for portability"); # endif #endif #if @GNULIB_FCHDIR@ /* Change the process' current working directory to the directory on which the given file descriptor is open. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if ! @HAVE_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); /* Gnulib internal hooks needed to maintain the fchdir metadata. */ _GL_EXTERN_C int _gl_register_fd (int fd, const char *filename) _GL_ARG_NONNULL ((2)); _GL_EXTERN_C void _gl_unregister_fd (int fd); _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd); _GL_EXTERN_C const char *_gl_directory_name (int fd); # else # if !@HAVE_DECL_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); # endif # endif _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); _GL_CXXALIASWARN (fchdir); #elif defined GNULIB_POSIXCHECK # undef fchdir # if HAVE_RAW_DECL_FCHDIR _GL_WARN_ON_USE (fchdir, "fchdir is unportable - " "use gnulib module fchdir for portability"); # endif #endif #if @GNULIB_FCHOWNAT@ # if @REPLACE_FCHOWNAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fchownat # define fchownat rpl_fchownat # endif _GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # else # if !@HAVE_FCHOWNAT@ _GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # endif _GL_CXXALIASWARN (fchownat); #elif defined GNULIB_POSIXCHECK # undef fchownat # if HAVE_RAW_DECL_FCHOWNAT _GL_WARN_ON_USE (fchownat, "fchownat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FDATASYNC@ /* Synchronize changes to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@ _GL_FUNCDECL_SYS (fdatasync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fdatasync, int, (int fd)); _GL_CXXALIASWARN (fdatasync); #elif defined GNULIB_POSIXCHECK # undef fdatasync # if HAVE_RAW_DECL_FDATASYNC _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " "use gnulib module fdatasync for portability"); # endif #endif #if @GNULIB_FSYNC@ /* Synchronize changes, including metadata, to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if !@HAVE_FSYNC@ _GL_FUNCDECL_SYS (fsync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fsync, int, (int fd)); _GL_CXXALIASWARN (fsync); #elif defined GNULIB_POSIXCHECK # undef fsync # if HAVE_RAW_DECL_FSYNC _GL_WARN_ON_USE (fsync, "fsync is unportable - " "use gnulib module fsync for portability"); # endif #endif #if @GNULIB_FTRUNCATE@ /* Change the size of the file to which FD is opened to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_FTRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftruncate # define ftruncate rpl_ftruncate # endif _GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length)); _GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length)); # else # if !@HAVE_FTRUNCATE@ _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIASWARN (ftruncate); #elif defined GNULIB_POSIXCHECK # undef ftruncate # if HAVE_RAW_DECL_FTRUNCATE _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " "use gnulib module ftruncate for portability"); # endif #endif #if @GNULIB_GETCWD@ /* Get the name of the current working directory, and put it in SIZE bytes of BUF. Return BUF if successful, or NULL if the directory couldn't be determined or SIZE was too small. See the POSIX:2008 specification . Additionally, the gnulib module 'getcwd' guarantees the following GNU extension: If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ # if @REPLACE_GETCWD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getcwd rpl_getcwd # endif _GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); # else /* Need to cast, because on mingw, the second parameter is int size. */ _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); # endif _GL_CXXALIASWARN (getcwd); #elif defined GNULIB_POSIXCHECK # undef getcwd # if HAVE_RAW_DECL_GETCWD _GL_WARN_ON_USE (getcwd, "getcwd is unportable - " "use gnulib module getcwd for portability"); # endif #endif #if @GNULIB_GETDOMAINNAME@ /* Return the NIS domain name of the machine. WARNING! The NIS domain name is unrelated to the fully qualified host name of the machine. It is also unrelated to email addresses. WARNING! The NIS domain name is usually the empty string or "(none)" when not using NIS. Put up to LEN bytes of the NIS domain name into NAME. Null terminate it if the name is shorter than LEN. If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @REPLACE_GETDOMAINNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdomainname # define getdomainname rpl_getdomainname # endif _GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len)); # else # if !@HAVE_DECL_GETDOMAINNAME@ _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (getdomainname); #elif defined GNULIB_POSIXCHECK # undef getdomainname # if HAVE_RAW_DECL_GETDOMAINNAME _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " "use gnulib module getdomainname for portability"); # endif #endif #if @GNULIB_GETDTABLESIZE@ /* Return the maximum number of file descriptors in the current process. In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ # if @REPLACE_GETDTABLESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdtablesize # define getdtablesize rpl_getdtablesize # endif _GL_FUNCDECL_RPL (getdtablesize, int, (void)); _GL_CXXALIAS_RPL (getdtablesize, int, (void)); # else # if !@HAVE_GETDTABLESIZE@ _GL_FUNCDECL_SYS (getdtablesize, int, (void)); # endif _GL_CXXALIAS_SYS (getdtablesize, int, (void)); # endif _GL_CXXALIASWARN (getdtablesize); #elif defined GNULIB_POSIXCHECK # undef getdtablesize # if HAVE_RAW_DECL_GETDTABLESIZE _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " "use gnulib module getdtablesize for portability"); # endif #endif #if @GNULIB_GETGROUPS@ /* Return the supplemental groups that the current process belongs to. It is unspecified whether the effective group id is in the list. If N is 0, return the group count; otherwise, N describes how many entries are available in GROUPS. Return -1 and set errno if N is not 0 and not large enough. Fails with ENOSYS on some systems. */ # if @REPLACE_GETGROUPS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getgroups # define getgroups rpl_getgroups # endif _GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups)); _GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups)); # else # if !@HAVE_GETGROUPS@ _GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIASWARN (getgroups); #elif defined GNULIB_POSIXCHECK # undef getgroups # if HAVE_RAW_DECL_GETGROUPS _GL_WARN_ON_USE (getgroups, "getgroups is unportable - " "use gnulib module getgroups for portability"); # endif #endif #if @GNULIB_GETHOSTNAME@ /* Return the standard host name of the machine. WARNING! The host name may or may not be fully qualified. Put up to LEN bytes of the host name into NAME. Null terminate it if the name is shorter than LEN. If the host name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @UNISTD_H_HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname rpl_gethostname # endif _GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len)); # else # if !@HAVE_GETHOSTNAME@ _GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second parameter is int len. */ _GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (gethostname); #elif @UNISTD_H_HAVE_WINSOCK2_H@ # undef gethostname # define gethostname gethostname_used_without_requesting_gnulib_module_gethostname #elif defined GNULIB_POSIXCHECK # undef gethostname # if HAVE_RAW_DECL_GETHOSTNAME _GL_WARN_ON_USE (gethostname, "gethostname is unportable - " "use gnulib module gethostname for portability"); # endif #endif #if @GNULIB_GETLOGIN@ /* Returns the user's login name, or NULL if it cannot be found. Upon error, returns NULL with errno set. See . Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if !@HAVE_DECL_GETLOGIN@ _GL_FUNCDECL_SYS (getlogin, char *, (void)); # endif _GL_CXXALIAS_SYS (getlogin, char *, (void)); _GL_CXXALIASWARN (getlogin); #elif defined GNULIB_POSIXCHECK # undef getlogin # if HAVE_RAW_DECL_GETLOGIN _GL_WARN_ON_USE (getlogin, "getlogin is unportable - " "use gnulib module getlogin for portability"); # endif #endif #if @GNULIB_GETLOGIN_R@ /* Copies the user's login name to NAME. The array pointed to by NAME has room for SIZE bytes. Returns 0 if successful. Upon error, an error number is returned, or -1 in the case that the login name cannot be found but no specific error is provided (this case is hopefully rare but is left open by the POSIX spec). See . Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if @REPLACE_GETLOGIN_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getlogin_r rpl_getlogin_r # endif _GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size)); # else # if !@HAVE_DECL_GETLOGIN_R@ _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 systems, the second argument is int size. */ _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); # endif _GL_CXXALIASWARN (getlogin_r); #elif defined GNULIB_POSIXCHECK # undef getlogin_r # if HAVE_RAW_DECL_GETLOGIN_R _GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " "use gnulib module getlogin_r for portability"); # endif #endif #if @GNULIB_GETPAGESIZE@ # if @REPLACE_GETPAGESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize rpl_getpagesize # endif _GL_FUNCDECL_RPL (getpagesize, int, (void)); _GL_CXXALIAS_RPL (getpagesize, int, (void)); # else # if !@HAVE_GETPAGESIZE@ # if !defined getpagesize /* This is for POSIX systems. */ # if !defined _gl_getpagesize && defined _SC_PAGESIZE # if ! (defined __VMS && __VMS_VER < 70000000) # define _gl_getpagesize() sysconf (_SC_PAGESIZE) # endif # endif /* This is for older VMS. */ # if !defined _gl_getpagesize && defined __VMS # ifdef __ALPHA # define _gl_getpagesize() 8192 # else # define _gl_getpagesize() 512 # endif # endif /* This is for BeOS. */ # if !defined _gl_getpagesize && @HAVE_OS_H@ # include # if defined B_PAGE_SIZE # define _gl_getpagesize() B_PAGE_SIZE # endif # endif /* This is for AmigaOS4.0. */ # if !defined _gl_getpagesize && defined __amigaos4__ # define _gl_getpagesize() 2048 # endif /* This is for older Unix systems. */ # if !defined _gl_getpagesize && @HAVE_SYS_PARAM_H@ # include # ifdef EXEC_PAGESIZE # define _gl_getpagesize() EXEC_PAGESIZE # else # ifdef NBPG # ifndef CLSIZE # define CLSIZE 1 # endif # define _gl_getpagesize() (NBPG * CLSIZE) # else # ifdef NBPC # define _gl_getpagesize() NBPC # endif # endif # endif # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize() _gl_getpagesize () # else # if !GNULIB_defined_getpagesize_function _GL_UNISTD_INLINE int getpagesize () { return _gl_getpagesize (); } # define GNULIB_defined_getpagesize_function 1 # endif # endif # endif # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t. */ _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void)); # endif # if @HAVE_DECL_GETPAGESIZE@ _GL_CXXALIASWARN (getpagesize); # endif #elif defined GNULIB_POSIXCHECK # undef getpagesize # if HAVE_RAW_DECL_GETPAGESIZE _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " "use gnulib module getpagesize for portability"); # endif #endif #if @GNULIB_GETPASS@ /* Function getpass() from module 'getpass': Read a password from /dev/tty or stdin. Function getpass() from module 'getpass-gnu': Read a password of arbitrary length from /dev/tty or stdin. */ # if @REPLACE_GETPASS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getpass # define getpass rpl_getpass # endif _GL_FUNCDECL_RPL (getpass, char *, (const char *prompt) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getpass, char *, (const char *prompt)); # else # if !@HAVE_GETPASS@ _GL_FUNCDECL_SYS (getpass, char *, (const char *prompt) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getpass, char *, (const char *prompt)); # endif _GL_CXXALIASWARN (getpass); #elif defined GNULIB_POSIXCHECK # undef getpass # if HAVE_RAW_DECL_GETPASS _GL_WARN_ON_USE (getpass, "getpass is unportable - " "use gnulib module getpass or getpass-gnu for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Return the next valid login shell on the system, or NULL when the end of the list has been reached. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (getusershell, char *, (void)); # endif _GL_CXXALIAS_SYS (getusershell, char *, (void)); _GL_CXXALIASWARN (getusershell); #elif defined GNULIB_POSIXCHECK # undef getusershell # if HAVE_RAW_DECL_GETUSERSHELL _GL_WARN_ON_USE (getusershell, "getusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Rewind to pointer that is advanced at each getusershell() call. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (setusershell, void, (void)); # endif _GL_CXXALIAS_SYS (setusershell, void, (void)); _GL_CXXALIASWARN (setusershell); #elif defined GNULIB_POSIXCHECK # undef setusershell # if HAVE_RAW_DECL_SETUSERSHELL _GL_WARN_ON_USE (setusershell, "setusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Free the pointer that is advanced at each getusershell() call and associated resources. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (endusershell, void, (void)); # endif _GL_CXXALIAS_SYS (endusershell, void, (void)); _GL_CXXALIASWARN (endusershell); #elif defined GNULIB_POSIXCHECK # undef endusershell # if HAVE_RAW_DECL_ENDUSERSHELL _GL_WARN_ON_USE (endusershell, "endusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GROUP_MEMBER@ /* Determine whether group id is in calling user's group list. */ # if !@HAVE_GROUP_MEMBER@ _GL_FUNCDECL_SYS (group_member, int, (gid_t gid)); # endif _GL_CXXALIAS_SYS (group_member, int, (gid_t gid)); _GL_CXXALIASWARN (group_member); #elif defined GNULIB_POSIXCHECK # undef group_member # if HAVE_RAW_DECL_GROUP_MEMBER _GL_WARN_ON_USE (group_member, "group_member is unportable - " "use gnulib module group-member for portability"); # endif #endif #if @GNULIB_ISATTY@ # if @REPLACE_ISATTY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty rpl_isatty # endif _GL_FUNCDECL_RPL (isatty, int, (int fd)); _GL_CXXALIAS_RPL (isatty, int, (int fd)); # else _GL_CXXALIAS_SYS (isatty, int, (int fd)); # endif _GL_CXXALIASWARN (isatty); #elif defined GNULIB_POSIXCHECK # undef isatty # if HAVE_RAW_DECL_ISATTY _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " "use gnulib module isatty for portability"); # endif #endif #if @GNULIB_LCHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Do not follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_LCHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lchown # define lchown rpl_lchown # endif _GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); # else # if !@HAVE_LCHOWN@ _GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); # endif _GL_CXXALIASWARN (lchown); #elif defined GNULIB_POSIXCHECK # undef lchown # if HAVE_RAW_DECL_LCHOWN _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " "use gnulib module lchown for portability"); # endif #endif #if @GNULIB_LINK@ /* Create a new hard link for an existing file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if @REPLACE_LINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define link rpl_link # endif _GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); # else # if !@HAVE_LINK@ _GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); # endif _GL_CXXALIASWARN (link); #elif defined GNULIB_POSIXCHECK # undef link # if HAVE_RAW_DECL_LINK _GL_WARN_ON_USE (link, "link is unportable - " "use gnulib module link for portability"); # endif #endif #if @GNULIB_LINKAT@ /* Create a new hard link for an existing file, relative to two directories. FLAG controls whether symlinks are followed. Return 0 if successful, otherwise -1 and errno set. */ # if @REPLACE_LINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef linkat # define linkat rpl_linkat # endif _GL_FUNCDECL_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # else # if !@HAVE_LINKAT@ _GL_FUNCDECL_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # endif _GL_CXXALIASWARN (linkat); #elif defined GNULIB_POSIXCHECK # undef linkat # if HAVE_RAW_DECL_LINKAT _GL_WARN_ON_USE (linkat, "linkat is unportable - " "use gnulib module linkat for portability"); # endif #endif #if @GNULIB_LSEEK@ /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. Return the new offset if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_LSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lseek rpl_lseek # endif _GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence)); _GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); # else _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); # endif _GL_CXXALIASWARN (lseek); #elif defined GNULIB_POSIXCHECK # undef lseek # if HAVE_RAW_DECL_LSEEK _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " "systems - use gnulib module lseek for portability"); # endif #endif #if @GNULIB_PIPE@ /* Create a pipe, defaulting to O_BINARY mode. Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. */ # if !@HAVE_PIPE@ _GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pipe, int, (int fd[2])); _GL_CXXALIASWARN (pipe); #elif defined GNULIB_POSIXCHECK # undef pipe # if HAVE_RAW_DECL_PIPE _GL_WARN_ON_USE (pipe, "pipe is unportable - " "use gnulib module pipe-posix for portability"); # endif #endif #if @GNULIB_PIPE2@ /* Create a pipe, applying the given flags when opening the read-end of the pipe and the write-end of the pipe. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. See also the Linux man page at . */ # if @HAVE_PIPE2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define pipe2 rpl_pipe2 # endif _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); # else _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); # endif _GL_CXXALIASWARN (pipe2); #elif defined GNULIB_POSIXCHECK # undef pipe2 # if HAVE_RAW_DECL_PIPE2 _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " "use gnulib module pipe2 for portability"); # endif #endif #if @GNULIB_PREAD@ /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET. Return the number of bytes placed into BUF if successful, otherwise set errno and return -1. 0 indicates EOF. See the POSIX:2008 specification . */ # if @REPLACE_PREAD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pread # define pread rpl_pread # endif _GL_FUNCDECL_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PREAD@ _GL_FUNCDECL_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pread); #elif defined GNULIB_POSIXCHECK # undef pread # if HAVE_RAW_DECL_PREAD _GL_WARN_ON_USE (pread, "pread is unportable - " "use gnulib module pread for portability"); # endif #endif #if @GNULIB_PWRITE@ /* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET. Return the number of bytes written if successful, otherwise set errno and return -1. 0 indicates nothing written. See the POSIX:2008 specification . */ # if @REPLACE_PWRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pwrite # define pwrite rpl_pwrite # endif _GL_FUNCDECL_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PWRITE@ _GL_FUNCDECL_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pwrite); #elif defined GNULIB_POSIXCHECK # undef pwrite # if HAVE_RAW_DECL_PWRITE _GL_WARN_ON_USE (pwrite, "pwrite is unportable - " "use gnulib module pwrite for portability"); # endif #endif #if @GNULIB_READ@ /* Read up to COUNT bytes from file descriptor FD into the buffer starting at BUF. See the POSIX:2008 specification . */ # if @REPLACE_READ@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read rpl_read # endif _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); # else /* Need to cast, because on mingw, the third parameter is unsigned int count and the return type is 'int'. */ _GL_CXXALIAS_SYS_CAST (read, ssize_t, (int fd, void *buf, size_t count)); # endif _GL_CXXALIASWARN (read); #endif #if @GNULIB_READLINK@ /* Read the contents of the symbolic link FILE and place the first BUFSIZE bytes of it into BUF. Return the number of bytes placed into BUF if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_READLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlink rpl_readlink # endif _GL_FUNCDECL_RPL (readlink, ssize_t, (const char *file, char *buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (readlink, ssize_t, (const char *file, char *buf, size_t bufsize)); # else # if !@HAVE_READLINK@ _GL_FUNCDECL_SYS (readlink, ssize_t, (const char *file, char *buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (readlink, ssize_t, (const char *file, char *buf, size_t bufsize)); # endif _GL_CXXALIASWARN (readlink); #elif defined GNULIB_POSIXCHECK # undef readlink # if HAVE_RAW_DECL_READLINK _GL_WARN_ON_USE (readlink, "readlink is unportable - " "use gnulib module readlink for portability"); # endif #endif #if @GNULIB_READLINKAT@ # if @REPLACE_READLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlinkat rpl_readlinkat # endif _GL_FUNCDECL_RPL (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len)); # else # if !@HAVE_READLINKAT@ _GL_FUNCDECL_SYS (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len)); # endif _GL_CXXALIASWARN (readlinkat); #elif defined GNULIB_POSIXCHECK # undef readlinkat # if HAVE_RAW_DECL_READLINKAT _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " "use gnulib module readlinkat for portability"); # endif #endif #if @GNULIB_RMDIR@ /* Remove the directory DIR. */ # if @REPLACE_RMDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define rmdir rpl_rmdir # endif _GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (rmdir, int, (char const *name)); # else _GL_CXXALIAS_SYS (rmdir, int, (char const *name)); # endif _GL_CXXALIASWARN (rmdir); #elif defined GNULIB_POSIXCHECK # undef rmdir # if HAVE_RAW_DECL_RMDIR _GL_WARN_ON_USE (rmdir, "rmdir is unportable - " "use gnulib module rmdir for portability"); # endif #endif #if @GNULIB_SETHOSTNAME@ /* Set the host name of the machine. The host name may or may not be fully qualified. Put LEN bytes of NAME into the host name. Return 0 if successful, otherwise, set errno and return -1. Platforms with no ability to set the hostname return -1 and set errno = ENOSYS. */ # if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@ _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 and FreeBSD 6.4 the second parameter is int. On Solaris 11 2011-10, the first parameter is not const. */ _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); _GL_CXXALIASWARN (sethostname); #elif defined GNULIB_POSIXCHECK # undef sethostname # if HAVE_RAW_DECL_SETHOSTNAME _GL_WARN_ON_USE (sethostname, "sethostname is unportable - " "use gnulib module sethostname for portability"); # endif #endif #if @GNULIB_SLEEP@ /* Pause the execution of the current thread for N seconds. Returns the number of seconds left to sleep. See the POSIX:2008 specification . */ # if @REPLACE_SLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sleep # define sleep rpl_sleep # endif _GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n)); _GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n)); # else # if !@HAVE_SLEEP@ _GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIASWARN (sleep); #elif defined GNULIB_POSIXCHECK # undef sleep # if HAVE_RAW_DECL_SLEEP _GL_WARN_ON_USE (sleep, "sleep is unportable - " "use gnulib module sleep for portability"); # endif #endif #if @GNULIB_SYMLINK@ # if @REPLACE_SYMLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlink # define symlink rpl_symlink # endif _GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file)); # else # if !@HAVE_SYMLINK@ _GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file)); # endif _GL_CXXALIASWARN (symlink); #elif defined GNULIB_POSIXCHECK # undef symlink # if HAVE_RAW_DECL_SYMLINK _GL_WARN_ON_USE (symlink, "symlink is not portable - " "use gnulib module symlink for portability"); # endif #endif #if @GNULIB_SYMLINKAT@ # if @REPLACE_SYMLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlinkat # define symlinkat rpl_symlinkat # endif _GL_FUNCDECL_RPL (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (symlinkat, int, (char const *contents, int fd, char const *file)); # else # if !@HAVE_SYMLINKAT@ _GL_FUNCDECL_SYS (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (symlinkat, int, (char const *contents, int fd, char const *file)); # endif _GL_CXXALIASWARN (symlinkat); #elif defined GNULIB_POSIXCHECK # undef symlinkat # if HAVE_RAW_DECL_SYMLINKAT _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " "use gnulib module symlinkat for portability"); # endif #endif #if @GNULIB_TRUNCATE@ /* Change the size of the file designated by FILENAME to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_TRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef truncate # define truncate rpl_truncate # endif _GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length)); # else # if !@HAVE_DECL_TRUNCATE@ _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length)); # endif _GL_CXXALIASWARN (truncate); #elif defined GNULIB_POSIXCHECK # undef truncate # if HAVE_RAW_DECL_TRUNCATE _GL_WARN_ON_USE (truncate, "truncate is unportable - " "use gnulib module truncate for portability"); # endif #endif #if @GNULIB_TTYNAME_R@ /* Store at most BUFLEN characters of the pathname of the terminal FD is open on in BUF. Return 0 on success, otherwise an error number. */ # if @REPLACE_TTYNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ttyname_r # define ttyname_r rpl_ttyname_r # endif _GL_FUNCDECL_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen)); # else # if !@HAVE_DECL_TTYNAME_R@ _GL_FUNCDECL_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen)); # endif _GL_CXXALIASWARN (ttyname_r); #elif defined GNULIB_POSIXCHECK # undef ttyname_r # if HAVE_RAW_DECL_TTYNAME_R _GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - " "use gnulib module ttyname_r for portability"); # endif #endif #if @GNULIB_UNLINK@ # if @REPLACE_UNLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink rpl_unlink # endif _GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unlink, int, (char const *file)); # else _GL_CXXALIAS_SYS (unlink, int, (char const *file)); # endif _GL_CXXALIASWARN (unlink); #elif defined GNULIB_POSIXCHECK # undef unlink # if HAVE_RAW_DECL_UNLINK _GL_WARN_ON_USE (unlink, "unlink is not portable - " "use gnulib module unlink for portability"); # endif #endif #if @GNULIB_UNLINKAT@ # if @REPLACE_UNLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlinkat # define unlinkat rpl_unlinkat # endif _GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag)); # else # if !@HAVE_UNLINKAT@ _GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag)); # endif _GL_CXXALIASWARN (unlinkat); #elif defined GNULIB_POSIXCHECK # undef unlinkat # if HAVE_RAW_DECL_UNLINKAT _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_USLEEP@ /* Pause the execution of the current thread for N microseconds. Returns 0 on completion, or -1 on range error. See the POSIX:2001 specification . */ # if @REPLACE_USLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef usleep # define usleep rpl_usleep # endif _GL_FUNCDECL_RPL (usleep, int, (useconds_t n)); _GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); # else # if !@HAVE_USLEEP@ _GL_FUNCDECL_SYS (usleep, int, (useconds_t n)); # endif _GL_CXXALIAS_SYS (usleep, int, (useconds_t n)); # endif _GL_CXXALIASWARN (usleep); #elif defined GNULIB_POSIXCHECK # undef usleep # if HAVE_RAW_DECL_USLEEP _GL_WARN_ON_USE (usleep, "usleep is unportable - " "use gnulib module usleep for portability"); # endif #endif #if @GNULIB_WRITE@ /* Write up to COUNT bytes starting at BUF to file descriptor FD. See the POSIX:2008 specification . */ # if @REPLACE_WRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write rpl_write # endif _GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); # else /* Need to cast, because on mingw, the third parameter is unsigned int count and the return type is 'int'. */ _GL_CXXALIAS_SYS_CAST (write, ssize_t, (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_UNISTD_H */ #endif /* _GL_INCLUDING_UNISTD_H */ #endif /* _@GUARD_PREFIX@_UNISTD_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/float+.h0000644000000000000000000000011013726163410020334 xustar000000000000000024 mtime=1599661832.537 24 atime=1599661832.741 24 ctime=1599661999.149 libprelude-5.2.0/libmissing/float+.h0000644000000000000000000001277513726163410017353 0ustar00rootroot00000000000000/* Supplemental information about the floating-point formats. Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc. Written by Bruno Haible , 2007. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _FLOATPLUS_H #define _FLOATPLUS_H #include #include /* Number of bits in the mantissa of a floating-point number, including the "hidden bit". */ #if FLT_RADIX == 2 # define FLT_MANT_BIT FLT_MANT_DIG # define DBL_MANT_BIT DBL_MANT_DIG # define LDBL_MANT_BIT LDBL_MANT_DIG #elif FLT_RADIX == 4 # define FLT_MANT_BIT (FLT_MANT_DIG * 2) # define DBL_MANT_BIT (DBL_MANT_DIG * 2) # define LDBL_MANT_BIT (LDBL_MANT_DIG * 2) #elif FLT_RADIX == 16 # define FLT_MANT_BIT (FLT_MANT_DIG * 4) # define DBL_MANT_BIT (DBL_MANT_DIG * 4) # define LDBL_MANT_BIT (LDBL_MANT_DIG * 4) #endif /* Bit mask that can be used to mask the exponent, as an unsigned number. */ #define FLT_EXP_MASK ((FLT_MAX_EXP - FLT_MIN_EXP) | 7) #define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7) #define LDBL_EXP_MASK ((LDBL_MAX_EXP - LDBL_MIN_EXP) | 7) /* Number of bits used for the exponent of a floating-point number, including the exponent's sign. */ #define FLT_EXP_BIT \ (FLT_EXP_MASK < 0x100 ? 8 : \ FLT_EXP_MASK < 0x200 ? 9 : \ FLT_EXP_MASK < 0x400 ? 10 : \ FLT_EXP_MASK < 0x800 ? 11 : \ FLT_EXP_MASK < 0x1000 ? 12 : \ FLT_EXP_MASK < 0x2000 ? 13 : \ FLT_EXP_MASK < 0x4000 ? 14 : \ FLT_EXP_MASK < 0x8000 ? 15 : \ FLT_EXP_MASK < 0x10000 ? 16 : \ FLT_EXP_MASK < 0x20000 ? 17 : \ FLT_EXP_MASK < 0x40000 ? 18 : \ FLT_EXP_MASK < 0x80000 ? 19 : \ FLT_EXP_MASK < 0x100000 ? 20 : \ FLT_EXP_MASK < 0x200000 ? 21 : \ FLT_EXP_MASK < 0x400000 ? 22 : \ FLT_EXP_MASK < 0x800000 ? 23 : \ FLT_EXP_MASK < 0x1000000 ? 24 : \ FLT_EXP_MASK < 0x2000000 ? 25 : \ FLT_EXP_MASK < 0x4000000 ? 26 : \ FLT_EXP_MASK < 0x8000000 ? 27 : \ FLT_EXP_MASK < 0x10000000 ? 28 : \ FLT_EXP_MASK < 0x20000000 ? 29 : \ FLT_EXP_MASK < 0x40000000 ? 30 : \ FLT_EXP_MASK <= 0x7fffffff ? 31 : \ 32) #define DBL_EXP_BIT \ (DBL_EXP_MASK < 0x100 ? 8 : \ DBL_EXP_MASK < 0x200 ? 9 : \ DBL_EXP_MASK < 0x400 ? 10 : \ DBL_EXP_MASK < 0x800 ? 11 : \ DBL_EXP_MASK < 0x1000 ? 12 : \ DBL_EXP_MASK < 0x2000 ? 13 : \ DBL_EXP_MASK < 0x4000 ? 14 : \ DBL_EXP_MASK < 0x8000 ? 15 : \ DBL_EXP_MASK < 0x10000 ? 16 : \ DBL_EXP_MASK < 0x20000 ? 17 : \ DBL_EXP_MASK < 0x40000 ? 18 : \ DBL_EXP_MASK < 0x80000 ? 19 : \ DBL_EXP_MASK < 0x100000 ? 20 : \ DBL_EXP_MASK < 0x200000 ? 21 : \ DBL_EXP_MASK < 0x400000 ? 22 : \ DBL_EXP_MASK < 0x800000 ? 23 : \ DBL_EXP_MASK < 0x1000000 ? 24 : \ DBL_EXP_MASK < 0x2000000 ? 25 : \ DBL_EXP_MASK < 0x4000000 ? 26 : \ DBL_EXP_MASK < 0x8000000 ? 27 : \ DBL_EXP_MASK < 0x10000000 ? 28 : \ DBL_EXP_MASK < 0x20000000 ? 29 : \ DBL_EXP_MASK < 0x40000000 ? 30 : \ DBL_EXP_MASK <= 0x7fffffff ? 31 : \ 32) #define LDBL_EXP_BIT \ (LDBL_EXP_MASK < 0x100 ? 8 : \ LDBL_EXP_MASK < 0x200 ? 9 : \ LDBL_EXP_MASK < 0x400 ? 10 : \ LDBL_EXP_MASK < 0x800 ? 11 : \ LDBL_EXP_MASK < 0x1000 ? 12 : \ LDBL_EXP_MASK < 0x2000 ? 13 : \ LDBL_EXP_MASK < 0x4000 ? 14 : \ LDBL_EXP_MASK < 0x8000 ? 15 : \ LDBL_EXP_MASK < 0x10000 ? 16 : \ LDBL_EXP_MASK < 0x20000 ? 17 : \ LDBL_EXP_MASK < 0x40000 ? 18 : \ LDBL_EXP_MASK < 0x80000 ? 19 : \ LDBL_EXP_MASK < 0x100000 ? 20 : \ LDBL_EXP_MASK < 0x200000 ? 21 : \ LDBL_EXP_MASK < 0x400000 ? 22 : \ LDBL_EXP_MASK < 0x800000 ? 23 : \ LDBL_EXP_MASK < 0x1000000 ? 24 : \ LDBL_EXP_MASK < 0x2000000 ? 25 : \ LDBL_EXP_MASK < 0x4000000 ? 26 : \ LDBL_EXP_MASK < 0x8000000 ? 27 : \ LDBL_EXP_MASK < 0x10000000 ? 28 : \ LDBL_EXP_MASK < 0x20000000 ? 29 : \ LDBL_EXP_MASK < 0x40000000 ? 30 : \ LDBL_EXP_MASK <= 0x7fffffff ? 31 : \ 32) /* Number of bits used for a floating-point number: the mantissa (not counting the "hidden bit", since it may or may not be explicit), the exponent, and the sign. */ #define FLT_TOTAL_BIT ((FLT_MANT_BIT - 1) + FLT_EXP_BIT + 1) #define DBL_TOTAL_BIT ((DBL_MANT_BIT - 1) + DBL_EXP_BIT + 1) #define LDBL_TOTAL_BIT ((LDBL_MANT_BIT - 1) + LDBL_EXP_BIT + 1) /* Number of bytes used for a floating-point number. This can be smaller than the 'sizeof'. For example, on i386 systems, 'long double' most often have LDBL_MANT_BIT = 64, LDBL_EXP_BIT = 16, hence LDBL_TOTAL_BIT = 80 bits, i.e. 10 bytes of consecutive memory, but sizeof (long double) = 12 or = 16. */ #define SIZEOF_FLT ((FLT_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) #define SIZEOF_DBL ((DBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) #define SIZEOF_LDBL ((LDBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) /* Verify that SIZEOF_FLT <= sizeof (float) etc. */ typedef int verify_sizeof_flt[SIZEOF_FLT <= sizeof (float) ? 1 : -1]; typedef int verify_sizeof_dbl[SIZEOF_DBL <= sizeof (double) ? 1 : - 1]; typedef int verify_sizeof_ldbl[SIZEOF_LDBL <= sizeof (long double) ? 1 : - 1]; #endif /* _FLOATPLUS_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/printf-args.h0000644000000000000000000000010613726163410021415 xustar000000000000000023 mtime=1599661832.59 24 atime=1599661832.754 23 ctime=1599661999.15 libprelude-5.2.0/libmissing/printf-args.h0000644000000000000000000000756313726163410020426 0ustar00rootroot00000000000000/* Decomposed printf argument list. Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _PRINTF_ARGS_H #define _PRINTF_ARGS_H /* This file can be parametrized with the following macros: ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. PRINTF_FETCHARGS Name of the function to be declared. STATIC Set to 'static' to declare the function static. */ /* Default parameters. */ #ifndef PRINTF_FETCHARGS # define PRINTF_FETCHARGS printf_fetchargs #endif /* Get size_t. */ #include /* Get wchar_t. */ #if HAVE_WCHAR_T # include #endif /* Get wint_t. */ #if HAVE_WINT_T # include #endif /* Get va_list. */ #include /* Argument types */ typedef enum { TYPE_NONE, TYPE_SCHAR, TYPE_UCHAR, TYPE_SHORT, TYPE_USHORT, TYPE_INT, TYPE_UINT, TYPE_LONGINT, TYPE_ULONGINT, #if HAVE_LONG_LONG_INT TYPE_LONGLONGINT, TYPE_ULONGLONGINT, #endif TYPE_DOUBLE, TYPE_LONGDOUBLE, TYPE_CHAR, #if HAVE_WINT_T TYPE_WIDE_CHAR, #endif TYPE_STRING, #if HAVE_WCHAR_T TYPE_WIDE_STRING, #endif TYPE_POINTER, TYPE_COUNT_SCHAR_POINTER, TYPE_COUNT_SHORT_POINTER, TYPE_COUNT_INT_POINTER, TYPE_COUNT_LONGINT_POINTER #if HAVE_LONG_LONG_INT , TYPE_COUNT_LONGLONGINT_POINTER #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ , TYPE_U8_STRING , TYPE_U16_STRING , TYPE_U32_STRING #endif } arg_type; /* Polymorphic argument */ typedef struct { arg_type type; union { signed char a_schar; unsigned char a_uchar; short a_short; unsigned short a_ushort; int a_int; unsigned int a_uint; long int a_longint; unsigned long int a_ulongint; #if HAVE_LONG_LONG_INT long long int a_longlongint; unsigned long long int a_ulonglongint; #endif float a_float; double a_double; long double a_longdouble; int a_char; #if HAVE_WINT_T wint_t a_wide_char; #endif const char* a_string; #if HAVE_WCHAR_T const wchar_t* a_wide_string; #endif void* a_pointer; signed char * a_count_schar_pointer; short * a_count_short_pointer; int * a_count_int_pointer; long int * a_count_longint_pointer; #if HAVE_LONG_LONG_INT long long int * a_count_longlongint_pointer; #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ const uint8_t * a_u8_string; const uint16_t * a_u16_string; const uint32_t * a_u32_string; #endif } a; } argument; /* Number of directly allocated arguments (no malloc() needed). */ #define N_DIRECT_ALLOC_ARGUMENTS 7 typedef struct { size_t count; argument *arg; argument direct_alloc_arg[N_DIRECT_ALLOC_ARGUMENTS]; } arguments; /* Fetch the arguments, putting them into a. */ #ifdef STATIC STATIC #else extern #endif int PRINTF_FETCHARGS (va_list args, arguments *a); #endif /* _PRINTF_ARGS_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/printf-parse.h0000644000000000000000000000010713726163410021574 xustar000000000000000023 mtime=1599661832.59 24 atime=1599661832.754 24 ctime=1599661999.152 libprelude-5.2.0/libmissing/printf-parse.h0000644000000000000000000001221313726163410020570 0ustar00rootroot00000000000000/* Parse printf format string. Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _PRINTF_PARSE_H #define _PRINTF_PARSE_H /* This file can be parametrized with the following macros: ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. STATIC Set to 'static' to declare the function static. */ #if HAVE_FEATURES_H # include /* for __GLIBC__, __UCLIBC__ */ #endif #include "printf-args.h" /* Flags */ #define FLAG_GROUP 1 /* ' flag */ #define FLAG_LEFT 2 /* - flag */ #define FLAG_SHOWSIGN 4 /* + flag */ #define FLAG_SPACE 8 /* space flag */ #define FLAG_ALT 16 /* # flag */ #define FLAG_ZERO 32 #if __GLIBC__ >= 2 && !defined __UCLIBC__ # define FLAG_LOCALIZED 64 /* I flag, uses localized digits */ #endif /* arg_index value indicating that no argument is consumed. */ #define ARG_NONE (~(size_t)0) /* xxx_directive: A parsed directive. xxx_directives: A parsed format string. */ /* Number of directly allocated directives (no malloc() needed). */ #define N_DIRECT_ALLOC_DIRECTIVES 7 /* A parsed directive. */ typedef struct { const char* dir_start; const char* dir_end; int flags; const char* width_start; const char* width_end; size_t width_arg_index; const char* precision_start; const char* precision_end; size_t precision_arg_index; char conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } char_directive; /* A parsed format string. */ typedef struct { size_t count; char_directive *dir; size_t max_width_length; size_t max_precision_length; char_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; } char_directives; #if ENABLE_UNISTDIO /* A parsed directive. */ typedef struct { const uint8_t* dir_start; const uint8_t* dir_end; int flags; const uint8_t* width_start; const uint8_t* width_end; size_t width_arg_index; const uint8_t* precision_start; const uint8_t* precision_end; size_t precision_arg_index; uint8_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } u8_directive; /* A parsed format string. */ typedef struct { size_t count; u8_directive *dir; size_t max_width_length; size_t max_precision_length; u8_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; } u8_directives; /* A parsed directive. */ typedef struct { const uint16_t* dir_start; const uint16_t* dir_end; int flags; const uint16_t* width_start; const uint16_t* width_end; size_t width_arg_index; const uint16_t* precision_start; const uint16_t* precision_end; size_t precision_arg_index; uint16_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } u16_directive; /* A parsed format string. */ typedef struct { size_t count; u16_directive *dir; size_t max_width_length; size_t max_precision_length; u16_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; } u16_directives; /* A parsed directive. */ typedef struct { const uint32_t* dir_start; const uint32_t* dir_end; int flags; const uint32_t* width_start; const uint32_t* width_end; size_t width_arg_index; const uint32_t* precision_start; const uint32_t* precision_end; size_t precision_arg_index; uint32_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */ size_t arg_index; } u32_directive; /* A parsed format string. */ typedef struct { size_t count; u32_directive *dir; size_t max_width_length; size_t max_precision_length; u32_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; } u32_directives; #endif /* Parses the format string. Fills in the number N of directives, and fills in directives[0], ..., directives[N-1], and sets directives[N].dir_start to the end of the format string. Also fills in the arg_type fields of the arguments and the needed count of arguments. */ #if ENABLE_UNISTDIO extern int ulc_printf_parse (const char *format, char_directives *d, arguments *a); extern int u8_printf_parse (const uint8_t *format, u8_directives *d, arguments *a); extern int u16_printf_parse (const uint16_t *format, u16_directives *d, arguments *a); extern int u32_printf_parse (const uint32_t *format, u32_directives *d, arguments *a); #else # ifdef STATIC STATIC # else extern # endif int printf_parse (const char *format, char_directives *d, arguments *a); #endif #endif /* _PRINTF_PARSE_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/vasnprintf.h0000644000000000000000000000011013726163410021346 xustar000000000000000024 mtime=1599661832.655 24 atime=1599661832.773 24 ctime=1599661999.154 libprelude-5.2.0/libmissing/vasnprintf.h0000644000000000000000000000563013726163410020355 0ustar00rootroot00000000000000/* vsprintf with automatic memory allocation. Copyright (C) 2002-2004, 2007-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _VASNPRINTF_H #define _VASNPRINTF_H /* Get va_list. */ #include /* Get size_t. */ #include /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) #else # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ #endif #ifdef __cplusplus extern "C" { #endif /* Write formatted output to a string dynamically allocated with malloc(). You can pass a preallocated buffer for the result in RESULTBUF and its size in *LENGTHP; otherwise you pass RESULTBUF = NULL. If successful, return the address of the string (this may be = RESULTBUF if no dynamic memory allocation was necessary) and set *LENGTHP to the number of resulting bytes, excluding the trailing NUL. Upon error, set errno and return NULL. When dynamic memory allocation occurs, the preallocated buffer is left alone (with possibly modified contents). This makes it possible to use a statically allocated or stack-allocated buffer, like this: char buf[100]; size_t len = sizeof (buf); char *output = vasnprintf (buf, &len, format, args); if (output == NULL) ... error handling ...; else { ... use the output string ...; if (output != buf) free (output); } */ #if REPLACE_VASNPRINTF # define asnprintf rpl_asnprintf # define vasnprintf rpl_vasnprintf #endif extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...) _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4)); extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 0)); #ifdef __cplusplus } #endif #endif /* _VASNPRINTF_H */ libprelude-5.2.0/libmissing/PaxHeaders.14770/verify.h0000644000000000000000000000011013726163410020460 xustar000000000000000024 mtime=1599661832.656 24 atime=1599661832.773 24 ctime=1599661999.156 libprelude-5.2.0/libmissing/verify.h0000644000000000000000000002576613726163410017503 0ustar00rootroot00000000000000/* Compile-time assert-like macros. Copyright (C) 2005-2006, 2009-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ #ifndef _GL_VERIFY_H #define _GL_VERIFY_H /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11. This is supported by GCC 4.6.0 and later, in C mode, and its use here generates easier-to-read diagnostics when verify (R) fails. Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11. This will likely be supported by future GCC versions, in C++ mode. Use this only with GCC. If we were willing to slow 'configure' down we could also use it with other compilers, but since this affects only the quality of diagnostics, why bother? */ #if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \ && (201112L <= __STDC_VERSION__ || !defined __STRICT_ANSI__) \ && !defined __cplusplus) # define _GL_HAVE__STATIC_ASSERT 1 #endif /* The condition (99 < __GNUC__) is temporary, until we know about the first G++ release that supports static_assert. */ #if (99 < __GNUC__) && defined __cplusplus # define _GL_HAVE_STATIC_ASSERT 1 #endif /* FreeBSD 9.1 , included by and lots of other system headers, defines a conflicting _Static_assert that is no better than ours; override it. */ #ifndef _GL_HAVE_STATIC_ASSERT # include # undef _Static_assert #endif /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. If _Static_assert works, verify (R) uses it directly. Similarly, _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct that is an operand of sizeof. The code below uses several ideas for C++ compilers, and for C compilers that do not support _Static_assert: * The first step is ((R) ? 1 : -1). Given an expression R, of integral or boolean or floating-point type, this yields an expression of integral type, whose value is later verified to be constant and nonnegative. * Next this expression W is wrapped in a type struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: W; }. If W is negative, this yields a compile-time error. No compiler can deal with a bit-field of negative size. One might think that an array size check would have the same effect, that is, that the type struct { unsigned int dummy[W]; } would work as well. However, inside a function, some compilers (such as C++ compilers and GNU C) allow local parameters and variables inside array size expressions. With these compilers, an array size check would not properly diagnose this misuse of the verify macro: void function (int n) { verify (n < 0); } * For the verify macro, the struct _gl_verify_type will need to somehow be embedded into a declaration. To be portable, this declaration must declare an object, a constant, a function, or a typedef name. If the declared entity uses the type directly, such as in struct dummy {...}; typedef struct {...} dummy; extern struct {...} *dummy; extern void dummy (struct {...} *); extern struct {...} *dummy (void); two uses of the verify macro would yield colliding declarations if the entity names are not disambiguated. A workaround is to attach the current line number to the entity name: #define _GL_CONCAT0(x, y) x##y #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) extern struct {...} * _GL_CONCAT (dummy, __LINE__); But this has the problem that two invocations of verify from within the same macro would collide, since the __LINE__ value would be the same for both invocations. (The GCC __COUNTER__ macro solves this problem, but is not portable.) A solution is to use the sizeof operator. It yields a number, getting rid of the identity of the type. Declarations like extern int dummy [sizeof (struct {...})]; extern void dummy (int [sizeof (struct {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; can be repeated. * Should the implementation use a named struct or an unnamed struct? Which of the following alternatives can be used? extern int dummy [sizeof (struct {...})]; extern int dummy [sizeof (struct _gl_verify_type {...})]; extern void dummy (int [sizeof (struct {...})]); extern void dummy (int [sizeof (struct _gl_verify_type {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})]; In the second and sixth case, the struct type is exported to the outer scope; two such declarations therefore collide. GCC warns about the first, third, and fourth cases. So the only remaining possibility is the fifth case: extern int (*dummy (void)) [sizeof (struct {...})]; * GCC warns about duplicate declarations of the dummy function if -Wredundant-decls is used. GCC 4.3 and later have a builtin __COUNTER__ macro that can let us generate unique identifiers for each dummy function, to suppress this warning. * This implementation exploits the fact that older versions of GCC, which do not support _Static_assert, also do not warn about the last declaration mentioned above. * GCC warns if -Wnested-externs is enabled and verify() is used within a function body; but inside a function, you can always arrange to use verify_expr() instead. * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ /* Concatenate two preprocessor tokens. */ #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) #define _GL_CONCAT0(x, y) x##y /* _GL_COUNTER is an integer, preferably one that changes each time we use it. Use __COUNTER__ if it works, falling back on __LINE__ otherwise. __LINE__ isn't perfect, but it's better than a constant. */ #if defined __COUNTER__ && __COUNTER__ != __COUNTER__ # define _GL_COUNTER __COUNTER__ #else # define _GL_COUNTER __LINE__ #endif /* Generate a symbol with the given prefix, making it unique if possible. */ #define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) /* Verify requirement R at compile-time, as an integer constant expression that returns 1. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. */ #define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \ (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC))) #ifdef __cplusplus # if !GNULIB_defined_struct__gl_verify_type template struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: w; }; # define GNULIB_defined_struct__gl_verify_type 1 # endif # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ _gl_verify_type<(R) ? 1 : -1> #elif defined _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { \ _Static_assert (R, DIAGNOSTIC); \ int _gl_dummy; \ } #else # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; } #endif /* Verify requirement R at compile-time, as a declaration without a trailing ';'. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. Unfortunately, unlike C11, this implementation must appear as an ordinary declaration, and cannot appear inside struct { ... }. */ #ifdef _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY _Static_assert #else # define _GL_VERIFY(R, DIAGNOSTIC) \ extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] #endif /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ #ifdef _GL_STATIC_ASSERT_H # if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert # define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC) # endif # if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert # define static_assert _Static_assert /* C11 requires this #define. */ # endif #endif /* @assert.h omit start@ */ /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. There are two macros, since no single macro can be used in all contexts in C. verify_true (R) is for scalar contexts, including integer constant expression contexts. verify (R) is for declaration contexts, e.g., the top level. */ /* Verify requirement R at compile-time, as an integer constant expression. Return 1. This is equivalent to verify_expr (R, 1). verify_true is obsolescent; please use verify_expr instead. */ #define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")") /* Verify requirement R at compile-time. Return the value of the expression E. */ #define verify_expr(R, E) \ (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) /* Verify requirement R at compile-time, as a declaration without a trailing ';'. */ #ifdef __GNUC__ # define verify(R) _GL_VERIFY (R, "verify (" #R ")") #else /* PGI barfs if R is long. Play it safe. */ # define verify(R) _GL_VERIFY (R, "verify (...)") #endif #ifndef __has_builtin # define __has_builtin(x) 0 #endif /* Assume that R always holds. This lets the compiler optimize accordingly. R should not have side-effects; it may or may not be evaluated. Behavior is undefined if R is false. */ #if (__has_builtin (__builtin_unreachable) \ || 4 < __GNUC__ + (5 <= __GNUC_MINOR__)) # define assume(R) ((R) ? (void) 0 : __builtin_unreachable ()) #elif 1200 <= _MSC_VER # define assume(R) __assume (R) #elif ((defined GCC_LINT || defined lint) \ && (__has_builtin (__builtin_trap) \ || 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__)))) /* Doing it this way helps various packages when configured with --enable-gcc-warnings, which compiles with -Dlint. It's nicer when 'assume' silences warnings even with older GCCs. */ # define assume(R) ((R) ? (void) 0 : __builtin_trap ()) #else /* Some tools grok NOTREACHED, e.g., Oracle Studio 12.6. */ # define assume(R) ((R) ? (void) 0 : /*NOTREACHED*/ (void) 0) #endif /* @assert.h omit end@ */ #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/wchar.in.h0000644000000000000000000000011013726163410020665 xustar000000000000000024 mtime=1599661832.657 24 atime=1599661832.773 24 ctime=1599661999.157 libprelude-5.2.0/libmissing/wchar.in.h0000644000000000000000000010545513726163410017702 0ustar00rootroot00000000000000/* A substitute for ISO C99 , for platforms that have issues. Copyright (C) 2007-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Eric Blake. */ /* * ISO C 99 for platforms that have issues. * * * For now, this just ensures proper prerequisite inclusion order and * the declaration of wcwidth(). */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if (((defined __need_mbstate_t || defined __need_wint_t) \ && !defined __MINGW32__) \ || (defined __hpux \ && ((defined _INTTYPES_INCLUDED && !defined strtoimax) \ || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) \ || (defined __MINGW32__ && defined __STRING_H_SOURCED__) \ || defined _GL_ALREADY_INCLUDING_WCHAR_H) /* Special invocation convention: - Inside glibc and uClibc header files, but not MinGW. - On HP-UX 11.00 we have a sequence of nested includes -> -> , and the latter includes , once indirectly -> -> -> and once directly. In both situations 'wint_t' is not yet defined, therefore we cannot provide the function overrides; instead include only the system's . - With MinGW 3.22, when includes , only some part of is actually processed, and that doesn't include 'mbstate_t'. - On IRIX 6.5, similarly, we have an include -> , and the latter includes . But here, we have no way to detect whether is completely included or is still being included. */ #@INCLUDE_NEXT@ @NEXT_WCHAR_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_WCHAR_H #define _GL_ALREADY_INCLUDING_WCHAR_H #if @HAVE_FEATURES_H@ # include /* for __GLIBC__ */ #endif /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . In some builds of uClibc, is nonexistent and wchar_t is defined by . But avoid namespace pollution on glibc systems. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include #endif #ifndef __GLIBC__ # include # include #endif /* Include the original if it exists. Some builds of uClibc lack it. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_WCHAR_H@ # @INCLUDE_NEXT@ @NEXT_WCHAR_H@ #endif #undef _GL_ALREADY_INCLUDING_WCHAR_H #ifndef _@GUARD_PREFIX@_WCHAR_H #define _@GUARD_PREFIX@_WCHAR_H /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Define wint_t and WEOF. (Also done in wctype.in.h.) */ #if !@HAVE_WINT_T@ && !defined wint_t # define wint_t int # ifndef WEOF # define WEOF -1 # endif #else /* mingw and MSVC define wint_t as 'unsigned short' in or . This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be "unchanged by default argument promotions". Override it. */ # if @GNULIB_OVERRIDES_WINT_T@ # if !GNULIB_defined_wint_t # if @HAVE_CRTDEFS_H@ # include # else # include # endif typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t # define GNULIB_defined_wint_t 1 # endif # endif # ifndef WEOF # define WEOF ((wint_t) -1) # endif #endif /* Override mbstate_t if it is too small. On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for implementing mbrtowc for encodings like UTF-8. */ #if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@ # if !GNULIB_defined_mbstate_t typedef int rpl_mbstate_t; # undef mbstate_t # define mbstate_t rpl_mbstate_t # define GNULIB_defined_mbstate_t 1 # endif #endif /* Convert a single-byte character to a wide character. */ #if @GNULIB_BTOWC@ # if @REPLACE_BTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef btowc # define btowc rpl_btowc # endif _GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (btowc, wint_t, (int c)); # else # if !@HAVE_BTOWC@ _GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (btowc, wint_t, (int c)); # endif _GL_CXXALIASWARN (btowc); #elif defined GNULIB_POSIXCHECK # undef btowc # if HAVE_RAW_DECL_BTOWC _GL_WARN_ON_USE (btowc, "btowc is unportable - " "use gnulib module btowc for portability"); # endif #endif /* Convert a wide character to a single-byte character. */ #if @GNULIB_WCTOB@ # if @REPLACE_WCTOB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctob # define wctob rpl_wctob # endif _GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wctob, int, (wint_t wc)); # else # if !defined wctob && !@HAVE_DECL_WCTOB@ /* wctob is provided by gnulib, or wctob exists but is not declared. */ _GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wctob, int, (wint_t wc)); # endif _GL_CXXALIASWARN (wctob); #elif defined GNULIB_POSIXCHECK # undef wctob # if HAVE_RAW_DECL_WCTOB _GL_WARN_ON_USE (wctob, "wctob is unportable - " "use gnulib module wctob for portability"); # endif #endif /* Test whether *PS is in the initial state. */ #if @GNULIB_MBSINIT@ # if @REPLACE_MBSINIT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsinit # define mbsinit rpl_mbsinit # endif _GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps)); _GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps)); # else # if !@HAVE_MBSINIT@ _GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsinit); #elif defined GNULIB_POSIXCHECK # undef mbsinit # if HAVE_RAW_DECL_MBSINIT _GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - " "use gnulib module mbsinit for portability"); # endif #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBRTOWC@ # if @REPLACE_MBRTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbrtowc # define mbrtowc rpl_mbrtowc # endif _GL_FUNCDECL_RPL (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); _GL_CXXALIAS_RPL (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # else # if !@HAVE_MBRTOWC@ _GL_FUNCDECL_SYS (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbrtowc); #elif defined GNULIB_POSIXCHECK # undef mbrtowc # if HAVE_RAW_DECL_MBRTOWC _GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - " "use gnulib module mbrtowc for portability"); # endif #endif /* Recognize a multibyte character. */ #if @GNULIB_MBRLEN@ # if @REPLACE_MBRLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbrlen # define mbrlen rpl_mbrlen # endif _GL_FUNCDECL_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); _GL_CXXALIAS_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # else # if !@HAVE_MBRLEN@ _GL_FUNCDECL_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbrlen); #elif defined GNULIB_POSIXCHECK # undef mbrlen # if HAVE_RAW_DECL_MBRLEN _GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - " "use gnulib module mbrlen for portability"); # endif #endif /* Convert a string to a wide string. */ #if @GNULIB_MBSRTOWCS@ # if @REPLACE_MBSRTOWCS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsrtowcs # define mbsrtowcs rpl_mbsrtowcs # endif _GL_FUNCDECL_RPL (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)); # else # if !@HAVE_MBSRTOWCS@ _GL_FUNCDECL_SYS (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsrtowcs); #elif defined GNULIB_POSIXCHECK # undef mbsrtowcs # if HAVE_RAW_DECL_MBSRTOWCS _GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - " "use gnulib module mbsrtowcs for portability"); # endif #endif /* Convert a string to a wide string. */ #if @GNULIB_MBSNRTOWCS@ # if @REPLACE_MBSNRTOWCS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsnrtowcs # define mbsnrtowcs rpl_mbsnrtowcs # endif _GL_FUNCDECL_RPL (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)); # else # if !@HAVE_MBSNRTOWCS@ _GL_FUNCDECL_SYS (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsnrtowcs); #elif defined GNULIB_POSIXCHECK # undef mbsnrtowcs # if HAVE_RAW_DECL_MBSNRTOWCS _GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - " "use gnulib module mbsnrtowcs for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCRTOMB@ # if @REPLACE_WCRTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcrtomb # define wcrtomb rpl_wcrtomb # endif _GL_FUNCDECL_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); _GL_CXXALIAS_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # else # if !@HAVE_WCRTOMB@ _GL_FUNCDECL_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcrtomb); #elif defined GNULIB_POSIXCHECK # undef wcrtomb # if HAVE_RAW_DECL_WCRTOMB _GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - " "use gnulib module wcrtomb for portability"); # endif #endif /* Convert a wide string to a string. */ #if @GNULIB_WCSRTOMBS@ # if @REPLACE_WCSRTOMBS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsrtombs # define wcsrtombs rpl_wcsrtombs # endif _GL_FUNCDECL_RPL (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)); # else # if !@HAVE_WCSRTOMBS@ _GL_FUNCDECL_SYS (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcsrtombs); #elif defined GNULIB_POSIXCHECK # undef wcsrtombs # if HAVE_RAW_DECL_WCSRTOMBS _GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - " "use gnulib module wcsrtombs for portability"); # endif #endif /* Convert a wide string to a string. */ #if @GNULIB_WCSNRTOMBS@ # if @REPLACE_WCSNRTOMBS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsnrtombs # define wcsnrtombs rpl_wcsnrtombs # endif _GL_FUNCDECL_RPL (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps)); # else # if !@HAVE_WCSNRTOMBS@ _GL_FUNCDECL_SYS (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcsnrtombs); #elif defined GNULIB_POSIXCHECK # undef wcsnrtombs # if HAVE_RAW_DECL_WCSNRTOMBS _GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - " "use gnulib module wcsnrtombs for portability"); # endif #endif /* Return the number of screen columns needed for WC. */ #if @GNULIB_WCWIDTH@ # if @REPLACE_WCWIDTH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcwidth # define wcwidth rpl_wcwidth # endif _GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); # else # if !@HAVE_DECL_WCWIDTH@ /* wcwidth exists but is not declared. */ _GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); # endif _GL_CXXALIASWARN (wcwidth); #elif defined GNULIB_POSIXCHECK # undef wcwidth # if HAVE_RAW_DECL_WCWIDTH _GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - " "use gnulib module wcwidth for portability"); # endif #endif /* Search N wide characters of S for C. */ #if @GNULIB_WMEMCHR@ # if !@HAVE_WMEMCHR@ _GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t); wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (wmemchr, wchar_t *, (const wchar_t *, wchar_t, size_t), const wchar_t *, (const wchar_t *, wchar_t, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN1 (wmemchr, const wchar_t *, (const wchar_t *s, wchar_t c, size_t n)); # else _GL_CXXALIASWARN (wmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef wmemchr # if HAVE_RAW_DECL_WMEMCHR _GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - " "use gnulib module wmemchr for portability"); # endif #endif /* Compare N wide characters of S1 and S2. */ #if @GNULIB_WMEMCMP@ # if !@HAVE_WMEMCMP@ _GL_FUNCDECL_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wmemcmp); #elif defined GNULIB_POSIXCHECK # undef wmemcmp # if HAVE_RAW_DECL_WMEMCMP _GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - " "use gnulib module wmemcmp for portability"); # endif #endif /* Copy N wide characters of SRC to DEST. */ #if @GNULIB_WMEMCPY@ # if !@HAVE_WMEMCPY@ _GL_FUNCDECL_SYS (wmemcpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemcpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wmemcpy); #elif defined GNULIB_POSIXCHECK # undef wmemcpy # if HAVE_RAW_DECL_WMEMCPY _GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - " "use gnulib module wmemcpy for portability"); # endif #endif /* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for overlapping memory areas. */ #if @GNULIB_WMEMMOVE@ # if !@HAVE_WMEMMOVE@ _GL_FUNCDECL_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wmemmove); #elif defined GNULIB_POSIXCHECK # undef wmemmove # if HAVE_RAW_DECL_WMEMMOVE _GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - " "use gnulib module wmemmove for portability"); # endif #endif /* Set N wide characters of S to C. */ #if @GNULIB_WMEMSET@ # if !@HAVE_WMEMSET@ _GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); # endif _GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN (wmemset); #elif defined GNULIB_POSIXCHECK # undef wmemset # if HAVE_RAW_DECL_WMEMSET _GL_WARN_ON_USE (wmemset, "wmemset is unportable - " "use gnulib module wmemset for portability"); # endif #endif /* Return the number of wide characters in S. */ #if @GNULIB_WCSLEN@ # if !@HAVE_WCSLEN@ _GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s)); _GL_CXXALIASWARN (wcslen); #elif defined GNULIB_POSIXCHECK # undef wcslen # if HAVE_RAW_DECL_WCSLEN _GL_WARN_ON_USE (wcslen, "wcslen is unportable - " "use gnulib module wcslen for portability"); # endif #endif /* Return the number of wide characters in S, but at most MAXLEN. */ #if @GNULIB_WCSNLEN@ # if !@HAVE_WCSNLEN@ _GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)); _GL_CXXALIASWARN (wcsnlen); #elif defined GNULIB_POSIXCHECK # undef wcsnlen # if HAVE_RAW_DECL_WCSNLEN _GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - " "use gnulib module wcsnlen for portability"); # endif #endif /* Copy SRC to DEST. */ #if @GNULIB_WCSCPY@ # if !@HAVE_WCSCPY@ _GL_FUNCDECL_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcscpy); #elif defined GNULIB_POSIXCHECK # undef wcscpy # if HAVE_RAW_DECL_WCSCPY _GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - " "use gnulib module wcscpy for portability"); # endif #endif /* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */ #if @GNULIB_WCPCPY@ # if !@HAVE_WCPCPY@ _GL_FUNCDECL_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcpcpy); #elif defined GNULIB_POSIXCHECK # undef wcpcpy # if HAVE_RAW_DECL_WCPCPY _GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - " "use gnulib module wcpcpy for portability"); # endif #endif /* Copy no more than N wide characters of SRC to DEST. */ #if @GNULIB_WCSNCPY@ # if !@HAVE_WCSNCPY@ _GL_FUNCDECL_SYS (wcsncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcsncpy); #elif defined GNULIB_POSIXCHECK # undef wcsncpy # if HAVE_RAW_DECL_WCSNCPY _GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - " "use gnulib module wcsncpy for portability"); # endif #endif /* Copy no more than N characters of SRC to DEST, returning the address of the last character written into DEST. */ #if @GNULIB_WCPNCPY@ # if !@HAVE_WCPNCPY@ _GL_FUNCDECL_SYS (wcpncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcpncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcpncpy); #elif defined GNULIB_POSIXCHECK # undef wcpncpy # if HAVE_RAW_DECL_WCPNCPY _GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - " "use gnulib module wcpncpy for portability"); # endif #endif /* Append SRC onto DEST. */ #if @GNULIB_WCSCAT@ # if !@HAVE_WCSCAT@ _GL_FUNCDECL_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcscat); #elif defined GNULIB_POSIXCHECK # undef wcscat # if HAVE_RAW_DECL_WCSCAT _GL_WARN_ON_USE (wcscat, "wcscat is unportable - " "use gnulib module wcscat for portability"); # endif #endif /* Append no more than N wide characters of SRC onto DEST. */ #if @GNULIB_WCSNCAT@ # if !@HAVE_WCSNCAT@ _GL_FUNCDECL_SYS (wcsncat, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncat, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcsncat); #elif defined GNULIB_POSIXCHECK # undef wcsncat # if HAVE_RAW_DECL_WCSNCAT _GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - " "use gnulib module wcsncat for portability"); # endif #endif /* Compare S1 and S2. */ #if @GNULIB_WCSCMP@ # if !@HAVE_WCSCMP@ _GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscmp); #elif defined GNULIB_POSIXCHECK # undef wcscmp # if HAVE_RAW_DECL_WCSCMP _GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - " "use gnulib module wcscmp for portability"); # endif #endif /* Compare no more than N wide characters of S1 and S2. */ #if @GNULIB_WCSNCMP@ # if !@HAVE_WCSNCMP@ _GL_FUNCDECL_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsncmp); #elif defined GNULIB_POSIXCHECK # undef wcsncmp # if HAVE_RAW_DECL_WCSNCMP _GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - " "use gnulib module wcsncmp for portability"); # endif #endif /* Compare S1 and S2, ignoring case. */ #if @GNULIB_WCSCASECMP@ # if !@HAVE_WCSCASECMP@ _GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscasecmp); #elif defined GNULIB_POSIXCHECK # undef wcscasecmp # if HAVE_RAW_DECL_WCSCASECMP _GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - " "use gnulib module wcscasecmp for portability"); # endif #endif /* Compare no more than N chars of S1 and S2, ignoring case. */ #if @GNULIB_WCSNCASECMP@ # if !@HAVE_WCSNCASECMP@ _GL_FUNCDECL_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsncasecmp); #elif defined GNULIB_POSIXCHECK # undef wcsncasecmp # if HAVE_RAW_DECL_WCSNCASECMP _GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - " "use gnulib module wcsncasecmp for portability"); # endif #endif /* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE category of the current locale. */ #if @GNULIB_WCSCOLL@ # if !@HAVE_WCSCOLL@ _GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); # endif _GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscoll); #elif defined GNULIB_POSIXCHECK # undef wcscoll # if HAVE_RAW_DECL_WCSCOLL _GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - " "use gnulib module wcscoll for portability"); # endif #endif /* Transform S2 into array pointed to by S1 such that if wcscmp is applied to two transformed strings the result is the as applying 'wcscoll' to the original strings. */ #if @GNULIB_WCSXFRM@ # if !@HAVE_WCSXFRM@ _GL_FUNCDECL_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); # endif _GL_CXXALIAS_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsxfrm); #elif defined GNULIB_POSIXCHECK # undef wcsxfrm # if HAVE_RAW_DECL_WCSXFRM _GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - " "use gnulib module wcsxfrm for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_WCSDUP@ # if !@HAVE_WCSDUP@ _GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s)); # endif _GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); _GL_CXXALIASWARN (wcsdup); #elif defined GNULIB_POSIXCHECK # undef wcsdup # if HAVE_RAW_DECL_WCSDUP _GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - " "use gnulib module wcsdup for portability"); # endif #endif /* Find the first occurrence of WC in WCS. */ #if @GNULIB_WCSCHR@ # if !@HAVE_WCSCHR@ _GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcschr (const wchar_t *, wchar_t); wchar_t * std::wcschr (wchar_t *, wchar_t); } */ _GL_CXXALIAS_SYS_CAST2 (wcschr, wchar_t *, (const wchar_t *, wchar_t), const wchar_t *, (const wchar_t *, wchar_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); # else _GL_CXXALIASWARN (wcschr); # endif #elif defined GNULIB_POSIXCHECK # undef wcschr # if HAVE_RAW_DECL_WCSCHR _GL_WARN_ON_USE (wcschr, "wcschr is unportable - " "use gnulib module wcschr for portability"); # endif #endif /* Find the last occurrence of WC in WCS. */ #if @GNULIB_WCSRCHR@ # if !@HAVE_WCSRCHR@ _GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcsrchr (const wchar_t *, wchar_t); wchar_t * std::wcsrchr (wchar_t *, wchar_t); } */ _GL_CXXALIAS_SYS_CAST2 (wcsrchr, wchar_t *, (const wchar_t *, wchar_t), const wchar_t *, (const wchar_t *, wchar_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); # else _GL_CXXALIASWARN (wcsrchr); # endif #elif defined GNULIB_POSIXCHECK # undef wcsrchr # if HAVE_RAW_DECL_WCSRCHR _GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - " "use gnulib module wcsrchr for portability"); # endif #endif /* Return the length of the initial segmet of WCS which consists entirely of wide characters not in REJECT. */ #if @GNULIB_WCSCSPN@ # if !@HAVE_WCSCSPN@ _GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)); _GL_CXXALIASWARN (wcscspn); #elif defined GNULIB_POSIXCHECK # undef wcscspn # if HAVE_RAW_DECL_WCSCSPN _GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - " "use gnulib module wcscspn for portability"); # endif #endif /* Return the length of the initial segmet of WCS which consists entirely of wide characters in ACCEPT. */ #if @GNULIB_WCSSPN@ # if !@HAVE_WCSSPN@ _GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN (wcsspn); #elif defined GNULIB_POSIXCHECK # undef wcsspn # if HAVE_RAW_DECL_WCSSPN _GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - " "use gnulib module wcsspn for portability"); # endif #endif /* Find the first occurrence in WCS of any character in ACCEPT. */ #if @GNULIB_WCSPBRK@ # if !@HAVE_WCSPBRK@ _GL_FUNCDECL_SYS (wcspbrk, wchar_t *, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *); wchar_t * std::wcspbrk (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcspbrk, wchar_t *, (const wchar_t *, const wchar_t *), const wchar_t *, (const wchar_t *, const wchar_t *)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcspbrk, wchar_t *, (wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN1 (wcspbrk, const wchar_t *, (const wchar_t *wcs, const wchar_t *accept)); # else _GL_CXXALIASWARN (wcspbrk); # endif #elif defined GNULIB_POSIXCHECK # undef wcspbrk # if HAVE_RAW_DECL_WCSPBRK _GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - " "use gnulib module wcspbrk for portability"); # endif #endif /* Find the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_WCSSTR@ # if !@HAVE_WCSSTR@ _GL_FUNCDECL_SYS (wcsstr, wchar_t *, (const wchar_t *haystack, const wchar_t *needle) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *); wchar_t * std::wcsstr (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcsstr, wchar_t *, (const wchar_t *, const wchar_t *), const wchar_t *, (const wchar_t *, const wchar_t *)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsstr, wchar_t *, (wchar_t *haystack, const wchar_t *needle)); _GL_CXXALIASWARN1 (wcsstr, const wchar_t *, (const wchar_t *haystack, const wchar_t *needle)); # else _GL_CXXALIASWARN (wcsstr); # endif #elif defined GNULIB_POSIXCHECK # undef wcsstr # if HAVE_RAW_DECL_WCSSTR _GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - " "use gnulib module wcsstr for portability"); # endif #endif /* Divide WCS into tokens separated by characters in DELIM. */ #if @GNULIB_WCSTOK@ # if !@HAVE_WCSTOK@ _GL_FUNCDECL_SYS (wcstok, wchar_t *, (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); # endif _GL_CXXALIAS_SYS (wcstok, wchar_t *, (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); _GL_CXXALIASWARN (wcstok); #elif defined GNULIB_POSIXCHECK # undef wcstok # if HAVE_RAW_DECL_WCSTOK _GL_WARN_ON_USE (wcstok, "wcstok is unportable - " "use gnulib module wcstok for portability"); # endif #endif /* Determine number of column positions required for first N wide characters (or fewer if S ends before this) in S. */ #if @GNULIB_WCSWIDTH@ # if @REPLACE_WCSWIDTH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcswidth # define wcswidth rpl_wcswidth # endif _GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n)); # else # if !@HAVE_WCSWIDTH@ _GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n)); # endif _GL_CXXALIASWARN (wcswidth); #elif defined GNULIB_POSIXCHECK # undef wcswidth # if HAVE_RAW_DECL_WCSWIDTH _GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - " "use gnulib module wcswidth for portability"); # endif #endif /* Convert *TP to a date and time wide string. See . */ #if @GNULIB_WCSFTIME@ # if @REPLACE_WCSFTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsftime # define wcsftime rpl_wcsftime # endif _GL_FUNCDECL_RPL (wcsftime, size_t, (wchar_t *__buf, size_t __bufsize, const wchar_t *__fmt, const struct tm *__tp) _GL_ARG_NONNULL ((1, 3, 4))); _GL_CXXALIAS_RPL (wcsftime, size_t, (wchar_t *__buf, size_t __bufsize, const wchar_t *__fmt, const struct tm *__tp)); # else # if !@HAVE_WCSFTIME@ _GL_FUNCDECL_SYS (wcsftime, size_t, (wchar_t *__buf, size_t __bufsize, const wchar_t *__fmt, const struct tm *__tp) _GL_ARG_NONNULL ((1, 3, 4))); # endif _GL_CXXALIAS_SYS (wcsftime, size_t, (wchar_t *__buf, size_t __bufsize, const wchar_t *__fmt, const struct tm *__tp)); # endif _GL_CXXALIASWARN (wcsftime); #elif defined GNULIB_POSIXCHECK # undef wcsftime # if HAVE_RAW_DECL_WCSFTIME _GL_WARN_ON_USE (wcsftime, "wcsftime is unportable - " "use gnulib module wcsftime for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/wctype.in.h0000644000000000000000000000011013726163410021074 xustar000000000000000024 mtime=1599661832.657 24 atime=1599661832.773 24 ctime=1599661999.159 libprelude-5.2.0/libmissing/wctype.in.h0000644000000000000000000003321313726163410020101 0ustar00rootroot00000000000000/* A substitute for ISO C99 , for platforms that lack it. Copyright (C) 2006-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Bruno Haible and Paul Eggert. */ /* * ISO C 99 for platforms that lack it. * * * iswctype, towctrans, towlower, towupper, wctrans, wctype, * wctrans_t, and wctype_t are not yet implemented. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if (defined __MINGW32__ && defined __CTYPE_H_SOURCED__) /* Special invocation convention: - With MinGW 3.22, when includes , only some part of is being processed, which doesn't include the idempotency guard. */ #@INCLUDE_NEXT@ @NEXT_WCTYPE_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_WCTYPE_H #if @HAVE_WINT_T@ /* Solaris 2.5 has a bug: must be included before . Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ # include # include # include # include #endif /* Native Windows (mingw, MSVC) have declarations of towupper, towlower, and isw* functions in , as well as in . Include , in advance to avoid rpl_ prefix being added to the declarations. */ #if defined _WIN32 && ! defined __CYGWIN__ # include # include #endif /* Include the original if it exists. BeOS 5 has the functions but no . */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_WCTYPE_H@ # @INCLUDE_NEXT@ @NEXT_WCTYPE_H@ #endif #ifndef _@GUARD_PREFIX@_WCTYPE_H #define _@GUARD_PREFIX@_WCTYPE_H #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_WCTYPE_INLINE # define _GL_WCTYPE_INLINE _GL_INLINE #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Solaris 2.6 includes which includes which #defines a number of identifiers in the application namespace. Revert these #defines. */ #ifdef __sun # undef multibyte # undef eucw1 # undef eucw2 # undef eucw3 # undef scrw1 # undef scrw2 # undef scrw3 #endif /* Define wint_t and WEOF. (Also done in wchar.in.h.) */ #if !@HAVE_WINT_T@ && !defined wint_t # define wint_t int # ifndef WEOF # define WEOF -1 # endif #else /* mingw and MSVC define wint_t as 'unsigned short' in or . This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be "unchanged by default argument promotions". Override it. */ # if @GNULIB_OVERRIDES_WINT_T@ # if !GNULIB_defined_wint_t # if @HAVE_CRTDEFS_H@ # include # else # include # endif typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t # define GNULIB_defined_wint_t 1 # endif # endif # ifndef WEOF # define WEOF ((wint_t) -1) # endif #endif #if !GNULIB_defined_wctype_functions /* FreeBSD 4.4 to 4.11 has but lacks the functions. Linux libc5 has and the functions but they are broken. Assume all 11 functions (all isw* except iswblank) are implemented the same way, or not at all. */ # if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@ /* IRIX 5.3 has macros but no functions, its isw* macros refer to an undefined variable _ctmp_ and to macros like _P, and they refer to system functions like _iswctype that are not in the standard C library. Rather than try to get ancient buggy implementations like this to work, just disable them. */ # undef iswalnum # undef iswalpha # undef iswblank # undef iswcntrl # undef iswdigit # undef iswgraph # undef iswlower # undef iswprint # undef iswpunct # undef iswspace # undef iswupper # undef iswxdigit # undef towlower # undef towupper /* Linux libc5 has and the functions but they are broken. */ # if @REPLACE_ISWCNTRL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iswalnum rpl_iswalnum # define iswalpha rpl_iswalpha # define iswblank rpl_iswblank # define iswcntrl rpl_iswcntrl # define iswdigit rpl_iswdigit # define iswgraph rpl_iswgraph # define iswlower rpl_iswlower # define iswprint rpl_iswprint # define iswpunct rpl_iswpunct # define iswspace rpl_iswspace # define iswupper rpl_iswupper # define iswxdigit rpl_iswxdigit # endif # endif # if @REPLACE_TOWLOWER@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towlower rpl_towlower # define towupper rpl_towupper # endif # endif _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswalnum # else iswalnum # endif (wint_t wc) { return ((wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')); } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswalpha # else iswalpha # endif (wint_t wc) { return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswblank # else iswblank # endif (wint_t wc) { return wc == ' ' || wc == '\t'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswcntrl # else iswcntrl # endif (wint_t wc) { return (wc & ~0x1f) == 0 || wc == 0x7f; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswdigit # else iswdigit # endif (wint_t wc) { return wc >= '0' && wc <= '9'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswgraph # else iswgraph # endif (wint_t wc) { return wc >= '!' && wc <= '~'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswlower # else iswlower # endif (wint_t wc) { return wc >= 'a' && wc <= 'z'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswprint # else iswprint # endif (wint_t wc) { return wc >= ' ' && wc <= '~'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswpunct # else iswpunct # endif (wint_t wc) { return (wc >= '!' && wc <= '~' && !((wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'))); } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswspace # else iswspace # endif (wint_t wc) { return (wc == ' ' || wc == '\t' || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r'); } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswupper # else iswupper # endif (wint_t wc) { return wc >= 'A' && wc <= 'Z'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswxdigit # else iswxdigit # endif (wint_t wc) { return ((wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F')); } _GL_WCTYPE_INLINE wint_t # if @REPLACE_TOWLOWER@ rpl_towlower # else towlower # endif (wint_t wc) { return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc); } _GL_WCTYPE_INLINE wint_t # if @REPLACE_TOWLOWER@ rpl_towupper # else towupper # endif (wint_t wc) { return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc); } # elif @GNULIB_ISWBLANK@ && (! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@) /* Only the iswblank function is missing. */ # if @REPLACE_ISWBLANK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iswblank rpl_iswblank # endif _GL_FUNCDECL_RPL (iswblank, int, (wint_t wc)); # else _GL_FUNCDECL_SYS (iswblank, int, (wint_t wc)); # endif # endif # if defined __MINGW32__ /* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t. The functions towlower and towupper are implemented in the MSVCRT library to take a wchar_t argument and return a wchar_t result. mingw declares these functions to take a wint_t argument and return a wint_t result. This means that: 1. When the user passes an argument outside the range 0x0000..0xFFFF, the function will look only at the lower 16 bits. This is allowed according to POSIX. 2. The return value is returned in the lower 16 bits of the result register. The upper 16 bits are random: whatever happened to be in that part of the result register. We need to fix this by adding a zero-extend from wchar_t to wint_t after the call. */ _GL_WCTYPE_INLINE wint_t rpl_towlower (wint_t wc) { return (wint_t) (wchar_t) towlower (wc); } # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towlower rpl_towlower # endif _GL_WCTYPE_INLINE wint_t rpl_towupper (wint_t wc) { return (wint_t) (wchar_t) towupper (wc); } # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towupper rpl_towupper # endif # endif /* __MINGW32__ */ # define GNULIB_defined_wctype_functions 1 #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswlower, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswprint, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswpunct, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswspace, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswupper, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswlower, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswprint, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswpunct, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswspace, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswupper, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswxdigit, int, (wint_t wc)); #endif _GL_CXXALIASWARN (iswalnum); _GL_CXXALIASWARN (iswalpha); _GL_CXXALIASWARN (iswcntrl); _GL_CXXALIASWARN (iswdigit); _GL_CXXALIASWARN (iswgraph); _GL_CXXALIASWARN (iswlower); _GL_CXXALIASWARN (iswprint); _GL_CXXALIASWARN (iswpunct); _GL_CXXALIASWARN (iswspace); _GL_CXXALIASWARN (iswupper); _GL_CXXALIASWARN (iswxdigit); #if @GNULIB_ISWBLANK@ # if @REPLACE_ISWCNTRL@ || @REPLACE_ISWBLANK@ _GL_CXXALIAS_RPL (iswblank, int, (wint_t wc)); # else _GL_CXXALIAS_SYS (iswblank, int, (wint_t wc)); # endif _GL_CXXALIASWARN (iswblank); #endif #if !@HAVE_WCTYPE_T@ # if !GNULIB_defined_wctype_t typedef void * wctype_t; # define GNULIB_defined_wctype_t 1 # endif #endif /* Get a descriptor for a wide character property. */ #if @GNULIB_WCTYPE@ # if !@HAVE_WCTYPE_T@ _GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name)); # endif _GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name)); _GL_CXXALIASWARN (wctype); #elif defined GNULIB_POSIXCHECK # undef wctype # if HAVE_RAW_DECL_WCTYPE _GL_WARN_ON_USE (wctype, "wctype is unportable - " "use gnulib module wctype for portability"); # endif #endif /* Test whether a wide character has a given property. The argument WC must be either a wchar_t value or WEOF. The argument DESC must have been returned by the wctype() function. */ #if @GNULIB_ISWCTYPE@ # if !@HAVE_WCTYPE_T@ _GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc)); # endif _GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc)); _GL_CXXALIASWARN (iswctype); #elif defined GNULIB_POSIXCHECK # undef iswctype # if HAVE_RAW_DECL_ISWCTYPE _GL_WARN_ON_USE (iswctype, "iswctype is unportable - " "use gnulib module iswctype for portability"); # endif #endif #if @REPLACE_TOWLOWER@ || defined __MINGW32__ _GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc)); _GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc)); #else _GL_CXXALIAS_SYS (towlower, wint_t, (wint_t wc)); _GL_CXXALIAS_SYS (towupper, wint_t, (wint_t wc)); #endif _GL_CXXALIASWARN (towlower); _GL_CXXALIASWARN (towupper); #if !@HAVE_WCTRANS_T@ # if !GNULIB_defined_wctrans_t typedef void * wctrans_t; # define GNULIB_defined_wctrans_t 1 # endif #endif /* Get a descriptor for a wide character case conversion. */ #if @GNULIB_WCTRANS@ # if !@HAVE_WCTRANS_T@ _GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name)); # endif _GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name)); _GL_CXXALIASWARN (wctrans); #elif defined GNULIB_POSIXCHECK # undef wctrans # if HAVE_RAW_DECL_WCTRANS _GL_WARN_ON_USE (wctrans, "wctrans is unportable - " "use gnulib module wctrans for portability"); # endif #endif /* Perform a given case conversion on a wide character. The argument WC must be either a wchar_t value or WEOF. The argument DESC must have been returned by the wctrans() function. */ #if @GNULIB_TOWCTRANS@ # if !@HAVE_WCTRANS_T@ _GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); # endif _GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); _GL_CXXALIASWARN (towctrans); #elif defined GNULIB_POSIXCHECK # undef towctrans # if HAVE_RAW_DECL_TOWCTRANS _GL_WARN_ON_USE (towctrans, "towctrans is unportable - " "use gnulib module towctrans for portability"); # endif #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_WCTYPE_H */ #endif /* _@GUARD_PREFIX@_WCTYPE_H */ #endif libprelude-5.2.0/libmissing/PaxHeaders.14770/xalloc-oversized.h0000644000000000000000000000011013726163410022446 xustar000000000000000024 mtime=1599661832.658 24 atime=1599661832.773 24 ctime=1599661999.161 libprelude-5.2.0/libmissing/xalloc-oversized.h0000644000000000000000000000445413726163410021460 0ustar00rootroot00000000000000/* xalloc-oversized.h -- memory allocation size checking Copyright (C) 1990-2000, 2003-2004, 2006-2018 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef XALLOC_OVERSIZED_H_ #define XALLOC_OVERSIZED_H_ #include #include /* True if N * S would overflow in a size_t calculation, or would generate a value larger than PTRDIFF_MAX. This expands to a constant expression if N and S are both constants. By gnulib convention, SIZE_MAX represents overflow in size calculations, so the conservative size_t-based dividend to use here is SIZE_MAX - 1. */ #define __xalloc_oversized(n, s) \ ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) < (n)) #if PTRDIFF_MAX < SIZE_MAX typedef ptrdiff_t __xalloc_count_type; #else typedef size_t __xalloc_count_type; #endif /* Return 1 if an array of N objects, each of size S, cannot exist reliably due to size or ptrdiff_t arithmetic overflow. S must be positive and N must be nonnegative. This is a macro, not a function, so that it works correctly even when SIZE_MAX < N. */ #if 7 <= __GNUC__ # define xalloc_oversized(n, s) \ __builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1) #elif 5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ # define xalloc_oversized(n, s) \ (__builtin_constant_p (n) && __builtin_constant_p (s) \ ? __xalloc_oversized (n, s) \ : ({ __xalloc_count_type __xalloc_count; \ __builtin_mul_overflow (n, s, &__xalloc_count); })) /* Other compilers use integer division; this may be slower but is more portable. */ #else # define xalloc_oversized(n, s) __xalloc_oversized (n, s) #endif #endif /* !XALLOC_OVERSIZED_H_ */ libprelude-5.2.0/PaxHeaders.14770/m40000644000000000000000000000011013726163657015123 xustar000000000000000024 mtime=1599661999.722 24 atime=1599662006.649 24 ctime=1599661999.722 libprelude-5.2.0/m4/0000755000000000000000000000000013726163657014203 5ustar00rootroot00000000000000libprelude-5.2.0/m4/PaxHeaders.14770/am_path_ruby.m40000644000000000000000000000011013726163410020077 xustar000000000000000024 mtime=1599661832.658 24 atime=1599661832.773 24 ctime=1599661998.469 libprelude-5.2.0/m4/am_path_ruby.m40000644000000000000000000001256213726163410017110 0ustar00rootroot00000000000000# AM_PATH_RUBY([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], [PATH]) # --------------------------------------------------------------------------- # Adds support for distributing Ruby modules and packages. To # install modules, copy them to $(rubydir), using the ruby_RUBY # automake variable. To install a package with the same name as the # automake package, install to $(pkgrubydir), or use the # pkgruby_RUBY automake variable. # # The variables $(rbexecdir) and $(pkgrbexecdir) are provided as # locations to install ruby extension modules (shared libraries). # Another macro is required to find the appropriate flags to compile # extension modules. # AC_DEFUN([AM_PATH_RUBY], [ dnl Find a Ruby interpreter. m4_define_default([_AM_RUBY_INTERPRETER_LIST], [ruby ruby1.8 ruby1.7 ruby1.6]) m4_if([$1],[],[ dnl No version check is needed. # Find any Ruby interpreter. if test -z "$RUBY"; then AC_PATH_PROGS([RUBY], _AM_RUBY_INTERPRETER_LIST, :, $4) fi am_display_RUBY=ruby ], [ dnl A version check is needed. if test -n "$RUBY"; then # If the user set $RUBY, use it and don't search something else. #AC_MSG_CHECKING([whether $RUBY version >= $1]) #AM_RUBY_CHECK_VERSION([$RUBY], [$1], # [AC_MSG_RESULT(yes)], # [AC_MSG_ERROR(too old)]) am_display_RUBY=$RUBY else # Otherwise, try each interpreter until we find one that satisfies # VERSION. AC_CACHE_CHECK([for a Ruby interpreter with version >= $1], [am_cv_pathless_RUBY],[ for am_cv_pathless_RUBY in _AM_RUBY_INTERPRETER_LIST none; do test "$am_cv_pathless_RUBY" = none && break #AM_RUBY_CHECK_VERSION([$am_cv_pathless_RUBY], [$1], [break]) done]) # Set $RUBY to the absolute path of $am_cv_pathless_RUBY. if test "$am_cv_pathless_RUBY" = none; then RUBY=: else AC_PATH_PROG([RUBY], [$am_cv_pathless_RUBY], , $4) fi am_display_RUBY=$am_cv_pathless_RUBY fi ]) if test "$RUBY" = :; then dnl Run any user-specified action, or abort. m4_default([$3], [AC_MSG_ERROR([no suitable Ruby interpreter found])]) else dnl Query Ruby for its version number. Getting [:3] seems to be dnl the best way to do this; it's what "site.py" does in the standard dnl library. AC_CACHE_CHECK([for $am_display_RUBY version], [am_cv_ruby_version], [am_cv_ruby_version=`$RUBY -e "print RUBY_VERSION"`]) AC_SUBST([RUBY_VERSION], [$am_cv_ruby_version]) dnl Use the values of $prefix and $exec_prefix for the corresponding dnl values of RUBY_PREFIX and RUBY_EXEC_PREFIX. These are made dnl distinct variables so they can be overridden if need be. However, dnl general consensus is that you shouldn't need this ability. AC_SUBST([RUBY_PREFIX], ['${prefix}']) AC_SUBST([RUBY_EXEC_PREFIX], ['${exec_prefix}']) dnl At times (like when building shared libraries) you may want dnl to know which OS platform Ruby thinks this is. AC_CACHE_CHECK([for $am_display_RUBY platform], [am_cv_ruby_platform], [am_cv_ruby_platform=`$RUBY -e "print RUBY_PLATFORM"`]) AC_SUBST([RUBY_PLATFORM], [$am_cv_ruby_platform]) dnl Set up 4 directories: dnl rubydir -- where to install ruby scripts. AC_CACHE_CHECK([for $am_display_RUBY script directory], [am_cv_ruby_rubydir], [am_cv_ruby_rubydir=`$RUBY -rrbconfig -e "drive = File::PATH_SEPARATOR == ';' ? /\A\w:/ : /\A/; prefix = Regexp.new('\\A' + Regexp.quote(RbConfig::CONFIG[['prefix']])); \\$prefix = RbConfig::CONFIG[['prefix']].sub(drive, ''); \\$archdir = RbConfig::CONFIG[['archdir']].sub(prefix, '\\$(prefix)').sub(drive, ''); print \\$archdir;"`]) AC_SUBST([rubydir], [$am_cv_ruby_rubydir]) dnl pkgrubydir -- $PACKAGE directory under rubydir. AC_SUBST([pkgrubydir], [\${rubydir}/$PACKAGE]) dnl rbexecdir -- directory for installing ruby extension modules dnl (shared libraries) AC_CACHE_CHECK([for $am_display_RUBY extension module directory], [am_cv_ruby_rbexecdir], [am_cv_ruby_rbexecdir=`$RUBY -rrbconfig -e "drive = File::PATH_SEPARATOR == ';' ? /\A\w:/ : /\A/; prefix = Regexp.new('\\A' + Regexp.quote(RbConfig::CONFIG[['prefix']])); \\$prefix = RbConfig::CONFIG[['prefix']].sub(drive, ''); \\$sitearchdir = RbConfig::CONFIG[['sitearchdir']].sub(prefix, '\\$(prefix)').sub(drive, ''); print \\$sitearchdir;" 2>/dev/null || echo "${RUBY_EXEC_PREFIX}/local/lib/site_ruby/${RUBY_VERSION}/${RUBY_PLATFORM}"`]) AC_SUBST([rbexecdir], [$am_cv_ruby_rbexecdir]) dnl if PKG-CONFIG is available, we use it. Else, we try to dectect RUBY_INCLUDES manually RUBY_VER=`$RUBY -rrbconfig -e "print RbConfig::CONFIG[['ruby_pc']]" | sed 's/.pc//g'` PKG_CHECK_MODULES(RUBY_PKG_CONFIG, $RUBY_VER, [RUBY_INCLUDES=`pkg-config $RUBY_VER --cflags`], [RUBY_INCLUDES=`$RUBY -r rbconfig -e ' if RbConfig::CONFIG[["archdir"]] then print " -I" + RbConfig::CONFIG[["archdir"]] end if RbConfig::CONFIG[["rubyhdrdir"]] then print " -I" + RbConfig::CONFIG[["rubyhdrdir"]] end if RbConfig::CONFIG[["rubyhdrdir"]] and RbConfig::CONFIG[["sitearch"]] then print " -I" + RbConfig::CONFIG[["rubyhdrdir"]] + "/" + RbConfig::CONFIG[["sitearch"]] end'`] ) AC_SUBST([RUBY_INCLUDES]) dnl pkgrbexecdir -- $(rbexecdir)/$(PACKAGE) AC_SUBST([pkgrbexecdir], [\${rbexecdir}/$PACKAGE]) dnl Run any user-specified action. $2 fi ]) libprelude-5.2.0/m4/PaxHeaders.14770/argz.m40000644000000000000000000000010713726163444016405 xustar000000000000000023 mtime=1599661860.88 24 atime=1599661861.521 24 ctime=1599661998.471 libprelude-5.2.0/m4/argz.m40000644000000000000000000000507113726163444015405 0ustar00rootroot00000000000000# Portability macros for glibc argz. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. # Written by Gary V. Vaughan # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 argz.m4 AC_DEFUN([gl_FUNC_ARGZ], [gl_PREREQ_ARGZ AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT]) AC_CHECK_TYPES([error_t], [], [AC_DEFINE([error_t], [int], [Define to a type to use for `error_t' if it is not otherwise available.]) AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h does not typedef error_t.])], [#if defined(HAVE_ARGZ_H) # include #endif]) ARGZ_H= AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \ argz_next argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])]) dnl if have system argz functions, allow forced use of dnl libltdl-supplied implementation (and default to do so dnl on "known bad" systems). Could use a runtime check, but dnl (a) detecting malloc issues is notoriously unreliable dnl (b) only known system that declares argz functions, dnl provides them, yet they are broken, is cygwin dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) dnl So, it's more straightforward simply to special case dnl this for known bad systems. AS_IF([test -z "$ARGZ_H"], [AC_CACHE_CHECK( [if argz actually works], [lt_cv_sys_argz_works], [[case $host_os in #( *cygwin*) lt_cv_sys_argz_works=no if test "$cross_compiling" != no; then lt_cv_sys_argz_works="guessing no" else lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' save_IFS=$IFS IFS=-. set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` IFS=$save_IFS lt_os_major=${2-0} lt_os_minor=${3-0} lt_os_micro=${4-0} if test "$lt_os_major" -gt 1 \ || { test "$lt_os_major" -eq 1 \ && { test "$lt_os_minor" -gt 5 \ || { test "$lt_os_minor" -eq 5 \ && test "$lt_os_micro" -gt 24; }; }; }; then lt_cv_sys_argz_works=yes fi fi ;; #( *) lt_cv_sys_argz_works=yes ;; esac]]) AS_IF([test "$lt_cv_sys_argz_works" = yes], [AC_DEFINE([HAVE_WORKING_ARGZ], 1, [This value is set to 1 to indicate that the system argz facility works])], [ARGZ_H=argz.h AC_LIBOBJ([argz])])]) AC_SUBST([ARGZ_H]) ]) # Prerequisites of lib/argz.c. AC_DEFUN([gl_PREREQ_ARGZ], [:]) libprelude-5.2.0/m4/PaxHeaders.14770/as-ac-expand.m40000644000000000000000000000011013726163410017666 xustar000000000000000024 mtime=1599661832.659 24 atime=1599661832.773 24 ctime=1599661998.473 libprelude-5.2.0/m4/as-ac-expand.m40000644000000000000000000000210513726163410016667 0ustar00rootroot00000000000000dnl as-ac-expand.m4 0.2.0 dnl autostars m4 macro for expanding directories using configure's prefix dnl thomas@apestaart.org dnl AS_AC_EXPAND(VAR, CONFIGURE_VAR) dnl example dnl AS_AC_EXPAND(SYSCONFDIR, $sysconfdir) dnl will set SYSCONFDIR to /usr/local/etc if prefix=/usr/local AC_DEFUN([AS_AC_EXPAND], [ EXP_VAR=[$1] FROM_VAR=[$2] dnl first expand prefix and exec_prefix if necessary prefix_save=$prefix exec_prefix_save=$exec_prefix dnl if no prefix given, then use /usr/local, the default prefix if test "x$prefix" = "xNONE"; then prefix="$ac_default_prefix" fi dnl if no exec_prefix given, then use prefix if test "x$exec_prefix" = "xNONE"; then exec_prefix=$prefix fi full_var="$FROM_VAR" dnl loop until it doesn't change anymore while true; do new_full_var="`eval echo $full_var`" if test "x$new_full_var" = "x$full_var"; then break; fi full_var=$new_full_var done dnl clean up full_var=$new_full_var AC_SUBST([$1], "$full_var") dnl restore prefix and exec_prefix prefix=$prefix_save exec_prefix=$exec_prefix_save ]) libprelude-5.2.0/m4/PaxHeaders.14770/ax_check_aligned_access_required.m40000644000000000000000000000011013726163410024076 xustar000000000000000024 mtime=1599661832.659 24 atime=1599661832.773 24 ctime=1599661998.474 libprelude-5.2.0/m4/ax_check_aligned_access_required.m40000644000000000000000000000623713726163410023111 0ustar00rootroot00000000000000# ==================================================================================== # http://www.gnu.org/software/autoconf-archive/ax_check_aligned_access_required.html # ==================================================================================== # # SYNOPSIS # # AC_CHECK_ALIGNED_ACCESS_REQUIRED # # DESCRIPTION # # While the x86 CPUs allow access to memory objects to be unaligned it # happens that most of the modern designs require objects to be aligned - # or they will fail with a buserror. That mode is quite known by # big-endian machines (sparc, etc) however the alpha cpu is little- # endian. # # The following function will test for aligned access to be required and # set a config.h define HAVE_ALIGNED_ACCESS_REQUIRED (name derived by # standard usage). Structures loaded from a file (or mmapped to memory) # should be accessed per-byte in that case to avoid segfault type errors. # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # # 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 3 of the License, 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, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 7 AC_DEFUN([AX_CHECK_ALIGNED_ACCESS_REQUIRED], [AC_CACHE_CHECK([if pointers to integers require aligned access], [ax_cv_have_aligned_access_required], [AC_TRY_RUN([ #include #include int main() { char* string = malloc(40); int i; for (i=0; i < 40; i++) string[[i]] = i; { void* s = string; int* p = s+1; int* q = s+2; if (*p == *q) { return 1; } } return 0; } ], [ax_cv_have_aligned_access_required=yes], [ax_cv_have_aligned_access_required=no], [ax_cv_have_aligned_access_required=no]) ]) if test "$ax_cv_have_aligned_access_required" = yes ; then AC_DEFINE([HAVE_ALIGNED_ACCESS_REQUIRED], [1], [Define if pointers to integers require aligned access]) fi ]) libprelude-5.2.0/m4/PaxHeaders.14770/ax_check_compile_flag.m40000644000000000000000000000011013726163410021673 xustar000000000000000024 mtime=1599661832.659 24 atime=1599661832.774 24 ctime=1599661998.476 libprelude-5.2.0/m4/ax_check_compile_flag.m40000644000000000000000000000641113726163410020700 0ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html # =========================================================================== # # SYNOPSIS # # AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) # # DESCRIPTION # # Check whether the given FLAG works with the current language's compiler # or gives an error. (Warnings, however, are ignored) # # ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on # success/failure. # # If EXTRA-FLAGS is defined, it is added to the current language's default # flags (e.g. CFLAGS) when the check is done. The check is thus made with # the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to # force the compiler to issue an error when a bad flag is given. # # INPUT gives an alternative input source to AC_COMPILE_IFELSE. # # NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this # macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2011 Maarten Bosmans # # 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 3 of the License, 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, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 3 AC_DEFUN([AX_CHECK_COMPILE_FLAG], [AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], [AS_VAR_SET(CACHEVAR,[yes])], [AS_VAR_SET(CACHEVAR,[no])]) _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes], [m4_default([$2], :)], [m4_default([$3], :)]) AS_VAR_POPDEF([CACHEVAR])dnl ])dnl AX_CHECK_COMPILE_FLAGS libprelude-5.2.0/m4/PaxHeaders.14770/ax_check_link_flag.m40000644000000000000000000000011013726163410021200 xustar000000000000000024 mtime=1599661832.659 24 atime=1599661832.774 24 ctime=1599661998.478 libprelude-5.2.0/m4/ax_check_link_flag.m40000644000000000000000000000611513726163410020206 0ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html # =========================================================================== # # SYNOPSIS # # AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) # # DESCRIPTION # # Check whether the given FLAG works with the linker or gives an error. # (Warnings, however, are ignored) # # ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on # success/failure. # # If EXTRA-FLAGS is defined, it is added to the linker's default flags # when the check is done. The check is thus made with the flags: "LDFLAGS # EXTRA-FLAGS FLAG". This can for example be used to force the linker to # issue an error when a bad flag is given. # # INPUT gives an alternative input source to AC_LINK_IFELSE. # # NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this # macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG. # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2011 Maarten Bosmans # # 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 3 of the License, 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, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 3 AC_DEFUN([AX_CHECK_LINK_FLAG], [AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [ ax_check_save_flags=$LDFLAGS LDFLAGS="$LDFLAGS $4 $1" AC_LINK_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], [AS_VAR_SET(CACHEVAR,[yes])], [AS_VAR_SET(CACHEVAR,[no])]) LDFLAGS=$ax_check_save_flags]) AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes], [m4_default([$2], :)], [m4_default([$3], :)]) AS_VAR_POPDEF([CACHEVAR])dnl ])dnl AX_CHECK_LINK_FLAGS libprelude-5.2.0/m4/PaxHeaders.14770/ax_create_prelude_inttypes_h.m40000644000000000000000000000011013726163410023346 xustar000000000000000024 mtime=1599661832.659 24 atime=1599661832.774 24 ctime=1599661998.479 libprelude-5.2.0/m4/ax_create_prelude_inttypes_h.m40000644000000000000000000000451013726163410022351 0ustar00rootroot00000000000000AC_DEFUN([AX_CREATE_PRELUDE_INTTYPES_H],[ ac_prelude_inttypes_h="$1" ac_prelude_inttypes_h_temp="$1_" AC_SUBST(__PRELUDE_HAVE_STDINT_H) AC_SUBST(__PRELUDE_HAVE_INTTYPES_H) AC_SUBST(__PRELUDE_HAVE_64BIT_LONG) AC_SUBST(__PRELUDE_STDINT_HAVE_UINT8) AC_SUBST(__PRELUDE_STDINT_HAVE_UINT16) AC_SUBST(__PRELUDE_STDINT_HAVE_UINT32) AC_SUBST(__PRELUDE_STDINT_HAVE_UINT64) AC_SUBST(__PRELUDE_64BIT_FORMAT_PREFIX) ac_cv_have_stdint_h= AC_CHECK_HEADER(stdint.h, ac_cv_have_stdint_h=yes, ac_cv_have_stdint_h=no) if test "$ac_cv_have_stdint_h" = "yes" ; then __PRELUDE_HAVE_STDINT_H="#define __PRELUDE_HAVE_STDINT_H" else __PRELUDE_HAVE_STDINT_H="/* #define __PRELUDE_HAVE_STDINT_H */" fi ac_cv_have_inttypes_h= AC_CHECK_HEADER(inttypes.h, ac_cv_have_inttypes_h=yes, ac_cv_have_inttypes_h=no) if test "$ac_cv_have_inttypes_h" = "yes" ; then __PRELUDE_HAVE_INTTYPES_H="#define __PRELUDE_HAVE_INTTYPES_H" else __PRELUDE_HAVE_INTTYPES_H="/* #define __PRELUDE_HAVE_INTTYPES_H */" fi AC_CHECK_SIZEOF(long) if test "$ac_cv_sizeof_long" = "8" ; then __PRELUDE_HAVE_64BIT_LONG="#define __PRELUDE_HAVE_64BIT_LONG" else __PRELUDE_HAVE_64BIT_LONG="/* #define __PRELUDE_HAVE_64BIT_LONG */" fi ac_cv_have_uint8_t= AC_CHECK_TYPE([uint8_t], ac_cv_have_uint8_t=yes, ac_cv_have_uint8_t=no) if test "$ac_cv_have_uint8_t" = "yes" ; then __PRELUDE_STDINT_HAVE_UINT8="#define __PRELUDE_STDINT_HAVE_UINT8" else __PRELUDE_STDINT_HAVE_UINT8="/* #define __PRELUDE_STDINT_HAVE_UINT8 */" fi ac_cv_have_uint16_t= AC_CHECK_TYPE([uint16_t], ac_cv_have_uint16_t=yes, ac_cv_have_uint16_t=no) if test "$ac_cv_have_uint16_t" = "yes" ; then __PRELUDE_STDINT_HAVE_UINT16="#define __PRELUDE_STDINT_HAVE_UINT16" else __PRELUDE_STDINT_HAVE_UINT16="/* #define __PRELUDE_STDINT_HAVE_UINT16 */" fi ac_cv_have_uint32_t= AC_CHECK_TYPE([uint32_t], ac_cv_have_uint32_t=yes, ac_cv_have_uint32_t=no) if test "$ac_cv_have_uint32_t" = "yes" ; then __PRELUDE_STDINT_HAVE_UINT32="#define __PRELUDE_STDINT_HAVE_UINT32" else __PRELUDE_STDINT_HAVE_UINT32="/* #define __PRELUDE_STDINT_HAVE_UINT32 */" fi ac_cv_have_uint64_t= AC_CHECK_TYPE([uint64_t], ac_cv_have_uint64_t=yes, ac_cv_have_uint64_t=no) if test "$ac_cv_have_uint64_t" = "yes" ; then __PRELUDE_STDINT_HAVE_UINT64="#define __PRELUDE_STDINT_HAVE_UINT64" else __PRELUDE_STDINT_HAVE_UINT64="/* #define __PRELUDE_STDINT_HAVE_UINT64 */" fi ]) libprelude-5.2.0/m4/PaxHeaders.14770/ax_reset_headers_cache.m40000644000000000000000000000010713726163410022063 xustar000000000000000023 mtime=1599661832.66 24 atime=1599661832.774 24 ctime=1599661998.481 libprelude-5.2.0/m4/ax_reset_headers_cache.m40000644000000000000000000000141013726163410021054 0ustar00rootroot00000000000000# SYNOPSIS # AX_RESET_HEADERS_CACHE(headers ...) # # DESCRIPTION # This macro invalidates the headers cache variables created by previous AC_CHECK_HEADER/AC_CHECK_HEADERS checks. # m4_defun([AS_FOR], [m4_pushdef([$1], m4_if(m4_translit([$3], ]dnl m4_dquote(_m4_defn([m4_cr_symbols2]))[[%+=:,./-]), [], [[$3]], [[$$2]]))]dnl [for $2[]m4_ifval([$3], [ in $3]) do m4_default([$4], [:]) done[]_m4_popdef([$1])]) AC_DEFUN([AX_RESET_HEADERS_CACHE], [ AS_FOR([AX_var], [ax_var], [$1], [ dnl You can replace "ac_cv_header_" with any prefix from http://www.gnu.org/software/autoconf/manual/html_node/Cache-Variable-Index.html AS_VAR_PUSHDEF([ax_Var], [ac_cv_header_${ax_var}]) AS_UNSET([ax_Var]) AS_VAR_POPDEF([ax_Var]) ]) ]) # AX_RESET_HEADERS_CACHE libprelude-5.2.0/m4/PaxHeaders.14770/gtk-doc.m40000644000000000000000000000011013726163411016756 xustar000000000000000024 mtime=1599661833.313 24 atime=1599661835.768 24 ctime=1599661998.483 libprelude-5.2.0/m4/gtk-doc.m40000644000000000000000000001066013726163411015764 0ustar00rootroot00000000000000# -*- mode: autoconf -*- # # gtk-doc.m4 - configure macro to check for gtk-doc # Copyright (C) 2003 James Henstridge # 2007-2017 Stefan Sauer # # 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 3 of the License, 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, see . # # As a special exception, the above copyright owner gives unlimited # permission to copy, distribute and modify the configure scripts that # are the output of Autoconf when processing the Macro. You need not # follow the terms of the GNU General Public License when using or # distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # serial 2 dnl Usage: dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) AC_DEFUN([GTK_DOC_CHECK], [ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"]) AC_MSG_CHECKING([for gtk-doc]) PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no]) AC_MSG_RESULT($have_gtk_doc) if test "$have_gtk_doc" = "no"; then AC_MSG_WARN([ You will not be able to create source packages with 'make dist' because $gtk_doc_requires is not found.]) fi dnl check for tools we added during development dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that dnl may not be writable by the user. Currently, automake requires that the dnl test name must end in '.test'. dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638 AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test]) AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check]) AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) dnl for overriding the documentation installation directory AC_ARG_WITH([html-dir], AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, [with_html_dir='${datadir}/gtk-doc/html']) HTML_DIR="$with_html_dir" AC_SUBST([HTML_DIR]) dnl enable/disable documentation building AC_ARG_ENABLE([gtk-doc], AS_HELP_STRING([--enable-gtk-doc], [use gtk-doc to build documentation [[default=no]]]),, [enable_gtk_doc=no]) AC_MSG_CHECKING([whether to build gtk-doc documentation]) AC_MSG_RESULT($enable_gtk_doc) if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then AC_MSG_ERROR([ You must have $gtk_doc_requires installed to build documentation for $PACKAGE_NAME. Please install gtk-doc or disable building the documentation by adding '--disable-gtk-doc' to '[$]0'.]) fi dnl don't check for glib if we build glib if test "x$PACKAGE_NAME" != "xglib"; then dnl don't fail if someone does not have glib PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:]) fi dnl enable/disable output formats AC_ARG_ENABLE([gtk-doc-html], AS_HELP_STRING([--enable-gtk-doc-html], [build documentation in html format [[default=yes]]]),, [enable_gtk_doc_html=yes]) AC_ARG_ENABLE([gtk-doc-pdf], AS_HELP_STRING([--enable-gtk-doc-pdf], [build documentation in pdf format [[default=no]]]),, [enable_gtk_doc_pdf=no]) if test -z "$GTKDOC_MKPDF"; then enable_gtk_doc_pdf=no fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_DEFAULT_VERBOSITY]) AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes]) AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) ]) libprelude-5.2.0/m4/PaxHeaders.14770/libgnutls-extra.m40000644000000000000000000000010713726163410020557 xustar000000000000000023 mtime=1599661832.66 24 atime=1599661832.774 24 ctime=1599661998.484 libprelude-5.2.0/m4/libgnutls-extra.m40000644000000000000000000001611313726163410017556 0ustar00rootroot00000000000000dnl Autoconf macros for libgnutls-extra dnl $id$ # Modified for LIBGNUTLS_EXTRA -- nmav # Configure paths for LIBGCRYPT # Shamelessly stolen from the one of XDELTA by Owen Taylor # Werner Koch 99-12-09 dnl AM_PATH_LIBGNUTLS_EXTRA([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) dnl Test for libgnutls-extra, and define LIBGNUTLS_EXTRA_CFLAGS and LIBGNUTLS_EXTRA_LIBS dnl AC_DEFUN([AM_PATH_LIBGNUTLS_EXTRA], [dnl dnl Get the cflags and libraries from the libgnutls-extra-config script dnl AC_ARG_WITH(libgnutls-extra-prefix, AC_HELP_STRING(--with-libgnutls-extra-prefix=PFX, [Prefix where libgnutls-extra is installed (optional)]), libgnutls_extra_config_prefix="$withval", libgnutls_extra_config_prefix="") if test x$libgnutls_extra_config_prefix != x ; then if test x${LIBGNUTLS_EXTRA_CONFIG+set} != xset ; then LIBGNUTLS_EXTRA_CONFIG=$libgnutls_extra_config_prefix/bin/libgnutls-extra-config fi fi AC_PATH_PROG(LIBGNUTLS_EXTRA_CONFIG, libgnutls-extra-config, no) min_libgnutls_version=ifelse([$1], ,0.1.0,$1) AC_MSG_CHECKING(for libgnutls - version >= $min_libgnutls_version) no_libgnutls="" if test "$LIBGNUTLS_EXTRA_CONFIG" = "no" ; then no_libgnutls=yes else LIBGNUTLS_EXTRA_CFLAGS=`$LIBGNUTLS_EXTRA_CONFIG $libgnutls_extra_config_args --cflags` LIBGNUTLS_EXTRA_LIBS=`$LIBGNUTLS_EXTRA_CONFIG $libgnutls_extra_config_args --libs` libgnutls_extra_config_version=`$LIBGNUTLS_EXTRA_CONFIG $libgnutls_extra_config_args --version` ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $LIBGNUTLS_EXTRA_CFLAGS" LIBS="$LIBS $LIBGNUTLS_EXTRA_LIBS" dnl dnl Now check if the installed libgnutls is sufficiently new. Also sanity dnl checks the results of libgnutls-extra-config to some extent dnl rm -f conf.libgnutlstest AC_TRY_RUN([ #include #include #include #include int main () { system ("touch conf.libgnutlstest"); if( strcmp( gnutls_extra_check_version(NULL), "$libgnutls_extra_config_version" ) ) { printf("\n*** 'libgnutls-extra-config --version' returned %s, but LIBGNUTLS_EXTRA (%s)\n", "$libgnutls_extra_config_version", gnutls_extra_check_version(NULL) ); printf("*** was found! If libgnutls-extra-config was correct, then it is best\n"); printf("*** to remove the old version of LIBGNUTLS_EXTRA. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If libgnutls-extra-config was wrong, set the environment variable LIBGNUTLS_EXTRA_CONFIG\n"); printf("*** to point to the correct copy of libgnutls-extra-config, and remove the file config.cache\n"); printf("*** before re-running configure\n"); } else if ( strcmp(gnutls_extra_check_version(NULL), LIBGNUTLS_EXTRA_VERSION ) ) { printf("\n*** LIBGNUTLS_EXTRA header file (version %s) does not match\n", LIBGNUTLS_EXTRA_VERSION); printf("*** library (version %s). This is may be due to a different version of gnutls\n", gnutls_extra_check_version(NULL) ); printf("*** and gnutls-extra.\n"); } else { if ( gnutls_extra_check_version( "$min_libgnutls_version" ) ) { return 0; } else { printf("no\n*** An old version of LIBGNUTLS_EXTRA (%s) was found.\n", gnutls_extra_check_version(NULL) ); printf("*** You need a version of LIBGNUTLS_EXTRA newer than %s. The latest version of\n", "$min_libgnutls_version" ); printf("*** LIBGNUTLS_EXTRA is always available from ftp://gnutls.hellug.gr/pub/gnutls.\n"); printf("*** \n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the libgnutls-extra-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBGNUTLS_EXTRA, but you can also set the LIBGNUTLS_EXTRA_CONFIG environment to point to the\n"); printf("*** correct copy of libgnutls-extra-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_libgnutls=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi if test "x$no_libgnutls" = x ; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else if test -f conf.libgnutlstest ; then : else AC_MSG_RESULT(no) fi if test "$LIBGNUTLS_EXTRA_CONFIG" = "no" ; then echo "*** The libgnutls-extra-config script installed by LIBGNUTLS_EXTRA could not be found" echo "*** If LIBGNUTLS_EXTRA was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the LIBGNUTLS_EXTRA_CONFIG environment variable to the" echo "*** full path to libgnutls-extra-config." else if test -f conf.libgnutlstest ; then : else echo "*** Could not run libgnutls test program, checking why..." CFLAGS="$CFLAGS $LIBGNUTLS_EXTRA_CFLAGS" LIBS="$LIBS $LIBGNUTLS_EXTRA_LIBS" AC_TRY_LINK([ #include #include #include #include ], [ return !!gnutls_extra_check_version(NULL); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBGNUTLS_EXTRA or finding the wrong" echo "*** version of LIBGNUTLS_EXTRA. If it is not finding LIBGNUTLS_EXTRA, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" echo "***" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBGNUTLS_EXTRA was incorrectly installed" echo "*** or that you have moved LIBGNUTLS_EXTRA since it was installed. In the latter case, you" echo "*** may want to edit the libgnutls-extra-config script: $LIBGNUTLS_EXTRA_CONFIG" ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi LIBGNUTLS_EXTRA_CFLAGS="" LIBGNUTLS_EXTRA_LIBS="" ifelse([$3], , :, [$3]) fi rm -f conf.libgnutlstest AC_SUBST(LIBGNUTLS_EXTRA_CFLAGS) AC_SUBST(LIBGNUTLS_EXTRA_LIBS) ]) dnl *-*wedit:notab*-* Please keep this as the last line. libprelude-5.2.0/m4/PaxHeaders.14770/libgnutls.m40000644000000000000000000000010713726163410017436 xustar000000000000000023 mtime=1599661832.66 24 atime=1599661832.774 24 ctime=1599661998.486 libprelude-5.2.0/m4/libgnutls.m40000644000000000000000000001504213726163410016435 0ustar00rootroot00000000000000dnl Autoconf macros for libgnutls dnl $id$ # Modified for LIBGNUTLS -- nmav # Configure paths for LIBGCRYPT # Shamelessly stolen from the one of XDELTA by Owen Taylor # Werner Koch 99-12-09 dnl AM_PATH_LIBGNUTLS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) dnl Test for libgnutls, and define LIBGNUTLS_CFLAGS and LIBGNUTLS_LIBS dnl AC_DEFUN([AM_PATH_LIBGNUTLS], [dnl dnl Get the cflags and libraries from the libgnutls-config script dnl AC_ARG_WITH(libgnutls-prefix, AC_HELP_STRING(--with-libgnutls-prefix=PFX, [Prefix where libgnutls is installed (optional)]), libgnutls_config_prefix="$withval", libgnutls_config_prefix="") if test x$libgnutls_config_prefix != x ; then if test x${LIBGNUTLS_CONFIG+set} != xset ; then LIBGNUTLS_CONFIG=$libgnutls_config_prefix/bin/libgnutls-config fi fi AC_PATH_PROG(LIBGNUTLS_CONFIG, libgnutls-config, no) min_libgnutls_version=ifelse([$1], ,0.1.0,$1) AC_MSG_CHECKING(for libgnutls - version >= $min_libgnutls_version) no_libgnutls="" if test "$LIBGNUTLS_CONFIG" = "no" ; then no_libgnutls=yes else LIBGNUTLS_CFLAGS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --cflags` LIBGNUTLS_LIBS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --libs` libgnutls_config_version=`$LIBGNUTLS_CONFIG $libgnutls_config_args --version` ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" LIBS="$LIBS $LIBGNUTLS_LIBS" dnl dnl Now check if the installed libgnutls is sufficiently new. Also sanity dnl checks the results of libgnutls-config to some extent dnl rm -f conf.libgnutlstest AC_TRY_RUN([ #include #include #include #include int main () { system ("touch conf.libgnutlstest"); if( strcmp( gnutls_check_version(NULL), "$libgnutls_config_version" ) ) { printf("\n*** 'libgnutls-config --version' returned %s, but LIBGNUTLS (%s)\n", "$libgnutls_config_version", gnutls_check_version(NULL) ); printf("*** was found! If libgnutls-config was correct, then it is best\n"); printf("*** to remove the old version of LIBGNUTLS. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If libgnutls-config was wrong, set the environment variable LIBGNUTLS_CONFIG\n"); printf("*** to point to the correct copy of libgnutls-config, and remove the file config.cache\n"); printf("*** before re-running configure\n"); } else if ( strcmp(gnutls_check_version(NULL), LIBGNUTLS_VERSION ) ) { printf("\n*** LIBGNUTLS header file (version %s) does not match\n", LIBGNUTLS_VERSION); printf("*** library (version %s)\n", gnutls_check_version(NULL) ); } else { if ( gnutls_check_version( "$min_libgnutls_version" ) ) { return 0; } else { printf("no\n*** An old version of LIBGNUTLS (%s) was found.\n", gnutls_check_version(NULL) ); printf("*** You need a version of LIBGNUTLS newer than %s. The latest version of\n", "$min_libgnutls_version" ); printf("*** LIBGNUTLS is always available from ftp://gnutls.hellug.gr/pub/gnutls.\n"); printf("*** \n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the libgnutls-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBGNUTLS, but you can also set the LIBGNUTLS_CONFIG environment to point to the\n"); printf("*** correct copy of libgnutls-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_libgnutls=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi if test "x$no_libgnutls" = x ; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else if test -f conf.libgnutlstest ; then : else AC_MSG_RESULT(no) fi if test "$LIBGNUTLS_CONFIG" = "no" ; then echo "*** The libgnutls-config script installed by LIBGNUTLS could not be found" echo "*** If LIBGNUTLS was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the LIBGNUTLS_CONFIG environment variable to the" echo "*** full path to libgnutls-config." else if test -f conf.libgnutlstest ; then : else echo "*** Could not run libgnutls test program, checking why..." CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" LIBS="$LIBS $LIBGNUTLS_LIBS" AC_TRY_LINK([ #include #include #include #include ], [ return !!gnutls_check_version(NULL); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBGNUTLS or finding the wrong" echo "*** version of LIBGNUTLS. If it is not finding LIBGNUTLS, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" echo "***" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBGNUTLS was incorrectly installed" echo "*** or that you have moved LIBGNUTLS since it was installed. In the latter case, you" echo "*** may want to edit the libgnutls-config script: $LIBGNUTLS_CONFIG" ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi LIBGNUTLS_CFLAGS="" LIBGNUTLS_LIBS="" ifelse([$3], , :, [$3]) fi rm -f conf.libgnutlstest AC_SUBST(LIBGNUTLS_CFLAGS) AC_SUBST(LIBGNUTLS_LIBS) ]) dnl *-*wedit:notab*-* Please keep this as the last line. libprelude-5.2.0/m4/PaxHeaders.14770/libtool.m40000644000000000000000000000011013726163445017101 xustar000000000000000024 mtime=1599661861.598 24 atime=1599661862.034 24 ctime=1599661998.488 libprelude-5.2.0/m4/libtool.m40000644000000000000000000105743213726163445016120 0ustar00rootroot00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS libprelude-5.2.0/m4/PaxHeaders.14770/ltdl.m40000644000000000000000000000010713726163446016403 xustar000000000000000024 mtime=1599661862.072 24 atime=1599661862.516 23 ctime=1599661998.49 libprelude-5.2.0/m4/ltdl.m40000644000000000000000000006466313726163446015417 0ustar00rootroot00000000000000# ltdl.m4 - Configure ltdl for the target system. -*-Autoconf-*- # # Copyright (C) 1999-2006, 2007, 2008, 2011 Free Software Foundation, Inc. # Written by Thomas Tanner, 1999 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 18 LTDL_INIT # LT_CONFIG_LTDL_DIR(DIRECTORY, [LTDL-MODE]) # ------------------------------------------ # DIRECTORY contains the libltdl sources. It is okay to call this # function multiple times, as long as the same DIRECTORY is always given. AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT]) _$0($*) ])# LT_CONFIG_LTDL_DIR # We break this out into a separate macro, so that we can call it safely # internally without being caught accidentally by the sed scan in libtoolize. m4_defun([_LT_CONFIG_LTDL_DIR], [dnl remove trailing slashes m4_pushdef([_ARG_DIR], m4_bpatsubst([$1], [/*$])) m4_case(_LTDL_DIR, [], [dnl only set lt_ltdl_dir if _ARG_DIR is not simply `.' m4_if(_ARG_DIR, [.], [], [m4_define([_LTDL_DIR], _ARG_DIR) _LT_SHELL_INIT([lt_ltdl_dir=']_ARG_DIR['])])], [m4_if(_ARG_DIR, _LTDL_DIR, [], [m4_fatal([multiple libltdl directories: `]_LTDL_DIR[', `]_ARG_DIR['])])]) m4_popdef([_ARG_DIR]) ])# _LT_CONFIG_LTDL_DIR # Initialise: m4_define([_LTDL_DIR], []) # _LT_BUILD_PREFIX # ---------------- # If Autoconf is new enough, expand to `${top_build_prefix}', otherwise # to `${top_builddir}/'. m4_define([_LT_BUILD_PREFIX], [m4_ifdef([AC_AUTOCONF_VERSION], [m4_if(m4_version_compare(m4_defn([AC_AUTOCONF_VERSION]), [2.62]), [-1], [m4_ifdef([_AC_HAVE_TOP_BUILD_PREFIX], [${top_build_prefix}], [${top_builddir}/])], [${top_build_prefix}])], [${top_builddir}/])[]dnl ]) # LTDL_CONVENIENCE # ---------------- # sets LIBLTDL to the link flags for the libltdl convenience library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-convenience to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called here. LIBLTDL will be prefixed with # '${top_build_prefix}' if available, otherwise with '${top_builddir}/', # and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single # quotes!). If your package is not flat and you're not using automake, # define top_build_prefix, top_builddir, and top_srcdir appropriately # in your Makefiles. AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl dnl Although the argument is deprecated and no longer documented, dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one dnl here make sure it is the same as any other declaration of libltdl's dnl location! This also ensures lt_ltdl_dir is set when configure.ac is dnl not yet using an explicit LT_CONFIG_LTDL_DIR. m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl _$0() ])# LTDL_CONVENIENCE # AC_LIBLTDL_CONVENIENCE accepted a directory argument in older libtools, # now we have LT_CONFIG_LTDL_DIR: AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_CONVENIENCE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBLTDL_CONVENIENCE], []) # _LTDL_CONVENIENCE # ----------------- # Code shared by LTDL_CONVENIENCE and LTDL_INIT([convenience]). m4_defun([_LTDL_CONVENIENCE], [case $enable_ltdl_convenience in no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='_LT_BUILD_PREFIX'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdlc.la" LTDLDEPS=$LIBLTDL LTDLINCL='-I${top_srcdir}'"${lt_ltdl_dir+/$lt_ltdl_dir}" AC_SUBST([LIBLTDL]) AC_SUBST([LTDLDEPS]) AC_SUBST([LTDLINCL]) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" AC_SUBST([INCLTDL]) ])# _LTDL_CONVENIENCE # LTDL_INSTALLABLE # ---------------- # sets LIBLTDL to the link flags for the libltdl installable library # and LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-install to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called from here. If an installed libltdl # is not found, LIBLTDL will be prefixed with '${top_build_prefix}' if # available, otherwise with '${top_builddir}/', and LTDLINCL will be # prefixed with '${top_srcdir}/' (note the single quotes!). If your # package is not flat and you're not using automake, define top_build_prefix, # top_builddir, and top_srcdir appropriately in your Makefiles. # In the future, this macro may have to be called after LT_INIT. AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl dnl Although the argument is deprecated and no longer documented, dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one dnl here make sure it is the same as any other declaration of libltdl's dnl location! This also ensures lt_ltdl_dir is set when configure.ac is dnl not yet using an explicit LT_CONFIG_LTDL_DIR. m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl _$0() ])# LTDL_INSTALLABLE # AC_LIBLTDL_INSTALLABLE accepted a directory argument in older libtools, # now we have LT_CONFIG_LTDL_DIR: AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_INSTALLABLE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBLTDL_INSTALLABLE], []) # _LTDL_INSTALLABLE # ----------------- # Code shared by LTDL_INSTALLABLE and LTDL_INIT([installable]). m4_defun([_LTDL_INSTALLABLE], [if test -f $prefix/lib/libltdl.la; then lt_save_LDFLAGS="$LDFLAGS" LDFLAGS="-L$prefix/lib $LDFLAGS" AC_CHECK_LIB([ltdl], [lt_dlinit], [lt_lib_ltdl=yes]) LDFLAGS="$lt_save_LDFLAGS" if test x"${lt_lib_ltdl-no}" = xyes; then if test x"$enable_ltdl_install" != xyes; then # Don't overwrite $prefix/lib/libltdl.la without --enable-ltdl-install AC_MSG_WARN([not overwriting libltdl at $prefix, force with `--enable-ltdl-install']) enable_ltdl_install=no fi elif test x"$enable_ltdl_install" = xno; then AC_MSG_WARN([libltdl not installed, but installation disabled]) fi fi # If configure.ac declared an installable ltdl, and the user didn't override # with --disable-ltdl-install, we will install the shipped libltdl. case $enable_ltdl_install in no) ac_configure_args="$ac_configure_args --enable-ltdl-install=no" LIBLTDL="-lltdl" LTDLDEPS= LTDLINCL= ;; *) enable_ltdl_install=yes ac_configure_args="$ac_configure_args --enable-ltdl-install" LIBLTDL='_LT_BUILD_PREFIX'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdl.la" LTDLDEPS=$LIBLTDL LTDLINCL='-I${top_srcdir}'"${lt_ltdl_dir+/$lt_ltdl_dir}" ;; esac AC_SUBST([LIBLTDL]) AC_SUBST([LTDLDEPS]) AC_SUBST([LTDLINCL]) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" AC_SUBST([INCLTDL]) ])# LTDL_INSTALLABLE # _LTDL_MODE_DISPATCH # ------------------- m4_define([_LTDL_MODE_DISPATCH], [dnl If _LTDL_DIR is `.', then we are configuring libltdl itself: m4_if(_LTDL_DIR, [], [], dnl if _LTDL_MODE was not set already, the default value is `subproject': [m4_case(m4_default(_LTDL_MODE, [subproject]), [subproject], [AC_CONFIG_SUBDIRS(_LTDL_DIR) _LT_SHELL_INIT([lt_dlopen_dir="$lt_ltdl_dir"])], [nonrecursive], [_LT_SHELL_INIT([lt_dlopen_dir="$lt_ltdl_dir"; lt_libobj_prefix="$lt_ltdl_dir/"])], [recursive], [], [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])])dnl dnl Be careful not to expand twice: m4_define([$0], []) ])# _LTDL_MODE_DISPATCH # _LT_LIBOBJ(MODULE_NAME) # ----------------------- # Like AC_LIBOBJ, except that MODULE_NAME goes into _LT_LIBOBJS instead # of into LIBOBJS. AC_DEFUN([_LT_LIBOBJ], [ m4_pattern_allow([^_LT_LIBOBJS$]) _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext" ])# _LT_LIBOBJS # LTDL_INIT([OPTIONS]) # -------------------- # Clients of libltdl can use this macro to allow the installer to # choose between a shipped copy of the ltdl sources or a preinstalled # version of the library. If the shipped ltdl sources are not in a # subdirectory named libltdl, the directory name must be given by # LT_CONFIG_LTDL_DIR. AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) dnl We need to keep our own list of libobjs separate from our parent project, dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while dnl we look for our own LIBOBJs. m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ])) m4_pushdef([AC_LIBSOURCES]) dnl If not otherwise defined, default to the 1.5.x compatible subproject mode: m4_if(_LTDL_MODE, [], [m4_define([_LTDL_MODE], m4_default([$2], [subproject])) m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])], [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])]) AC_ARG_WITH([included_ltdl], [AS_HELP_STRING([--with-included-ltdl], [use the GNU ltdl sources included here])]) if test "x$with_included_ltdl" != xyes; then # We are not being forced to use the included libltdl sources, so # decide whether there is a useful installed version we can use. AC_CHECK_HEADER([ltdl.h], [AC_CHECK_DECL([lt_dlinterface_register], [AC_CHECK_LIB([ltdl], [lt_dladvise_preload], [with_included_ltdl=no], [with_included_ltdl=yes])], [with_included_ltdl=yes], [AC_INCLUDES_DEFAULT #include ])], [with_included_ltdl=yes], [AC_INCLUDES_DEFAULT] ) fi dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE dnl was called yet, then for old times' sake, we assume libltdl is in an dnl eponymous directory: AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])]) AC_ARG_WITH([ltdl_include], [AS_HELP_STRING([--with-ltdl-include=DIR], [use the ltdl headers installed in DIR])]) if test -n "$with_ltdl_include"; then if test -f "$with_ltdl_include/ltdl.h"; then : else AC_MSG_ERROR([invalid ltdl include directory: `$with_ltdl_include']) fi else with_ltdl_include=no fi AC_ARG_WITH([ltdl_lib], [AS_HELP_STRING([--with-ltdl-lib=DIR], [use the libltdl.la installed in DIR])]) if test -n "$with_ltdl_lib"; then if test -f "$with_ltdl_lib/libltdl.la"; then : else AC_MSG_ERROR([invalid ltdl library directory: `$with_ltdl_lib']) fi else with_ltdl_lib=no fi case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in ,yes,no,no,) m4_case(m4_default(_LTDL_TYPE, [convenience]), [convenience], [_LTDL_CONVENIENCE], [installable], [_LTDL_INSTALLABLE], [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)]) ;; ,no,no,no,) # If the included ltdl is not to be used, then use the # preinstalled libltdl we found. AC_DEFINE([HAVE_LTDL], [1], [Define this if a modern libltdl is already installed]) LIBLTDL=-lltdl LTDLDEPS= LTDLINCL= ;; ,no*,no,*) AC_MSG_ERROR([`--with-ltdl-include' and `--with-ltdl-lib' options must be used together]) ;; *) with_included_ltdl=no LIBLTDL="-L$with_ltdl_lib -lltdl" LTDLDEPS= LTDLINCL="-I$with_ltdl_include" ;; esac INCLTDL="$LTDLINCL" # Report our decision... AC_MSG_CHECKING([where to find libltdl headers]) AC_MSG_RESULT([$LTDLINCL]) AC_MSG_CHECKING([where to find libltdl library]) AC_MSG_RESULT([$LIBLTDL]) _LTDL_SETUP dnl restore autoconf definition. m4_popdef([AC_LIBOBJ]) m4_popdef([AC_LIBSOURCES]) AC_CONFIG_COMMANDS_PRE([ _ltdl_libobjs= _ltdl_ltlibobjs= if test -n "$_LT_LIBOBJS"; then # Remove the extension. _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" done fi AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs]) AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs]) ]) # Only expand once: m4_define([LTDL_INIT]) ])# LTDL_INIT # Old names: AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)]) AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)]) AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIB_LTDL], []) dnl AC_DEFUN([AC_WITH_LTDL], []) dnl AC_DEFUN([LT_WITH_LTDL], []) # _LTDL_SETUP # ----------- # Perform all the checks necessary for compilation of the ltdl objects # -- including compiler checks and header checks. This is a public # interface mainly for the benefit of libltdl's own configure.ac, most # other users should call LTDL_INIT instead. AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_SYS_MODULE_EXT])dnl AC_REQUIRE([LT_SYS_MODULE_PATH])dnl AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl AC_REQUIRE([LT_LIB_DLLOAD])dnl AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl AC_REQUIRE([gl_FUNC_ARGZ])dnl m4_require([_LT_CHECK_OBJDIR])dnl m4_require([_LT_HEADER_DLFCN])dnl m4_require([_LT_CHECK_DLPREOPEN])dnl m4_require([_LT_DECL_SED])dnl dnl Don't require this, or it will be expanded earlier than the code dnl that sets the variables it relies on: _LT_ENABLE_INSTALL dnl _LTDL_MODE specific code must be called at least once: _LTDL_MODE_DISPATCH # In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS # the user used. This is so that ltdl.h can pick up the parent projects # config.h file, The first file in AC_CONFIG_HEADERS must contain the # definitions required by ltdl.c. # FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). AC_CONFIG_COMMANDS_PRE([dnl m4_pattern_allow([^LT_CONFIG_H$])dnl m4_ifset([AH_HEADER], [LT_CONFIG_H=AH_HEADER], [m4_ifset([AC_LIST_HEADERS], [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's,^[[ ]]*,,;s,[[ :]].*$,,'`], [])])]) AC_SUBST([LT_CONFIG_H]) AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h], [], [], [AC_INCLUDES_DEFAULT]) AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])]) AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])]) m4_pattern_allow([LT_LIBEXT])dnl AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension]) name= eval "lt_libprefix=\"$libname_spec\"" m4_pattern_allow([LT_LIBPREFIX])dnl AC_DEFINE_UNQUOTED([LT_LIBPREFIX],["$lt_libprefix"],[The archive prefix]) name=ltdl eval "LTDLOPEN=\"$libname_spec\"" AC_SUBST([LTDLOPEN]) ])# _LTDL_SETUP # _LT_ENABLE_INSTALL # ------------------ m4_define([_LT_ENABLE_INSTALL], [AC_ARG_ENABLE([ltdl-install], [AS_HELP_STRING([--enable-ltdl-install], [install libltdl])]) case ,${enable_ltdl_install},${enable_ltdl_convenience} in *yes*) ;; *) enable_ltdl_convenience=yes ;; esac m4_ifdef([AM_CONDITIONAL], [AM_CONDITIONAL(INSTALL_LTDL, test x"${enable_ltdl_install-no}" != xno) AM_CONDITIONAL(CONVENIENCE_LTDL, test x"${enable_ltdl_convenience-no}" != xno)]) ])# _LT_ENABLE_INSTALL # LT_SYS_DLOPEN_DEPLIBS # --------------------- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_CACHE_CHECK([whether deplibs are loaded by dlopen], [lt_cv_sys_dlopen_deplibs], [# PORTME does your system automatically load deplibs for dlopen? # or its logical equivalent (e.g. shl_load for HP-UX < 11) # For now, we just catch OSes we know something about -- in the # future, we'll try test this programmatically. lt_cv_sys_dlopen_deplibs=unknown case $host_os in aix3*|aix4.1.*|aix4.2.*) # Unknown whether this is true for these versions of AIX, but # we want this `case' here to explicitly catch those versions. lt_cv_sys_dlopen_deplibs=unknown ;; aix[[4-9]]*) lt_cv_sys_dlopen_deplibs=yes ;; amigaos*) case $host_cpu in powerpc) lt_cv_sys_dlopen_deplibs=no ;; esac ;; darwin*) # Assuming the user has installed a libdl from somewhere, this is true # If you are looking for one http://www.opendarwin.org/projects/dlcompat lt_cv_sys_dlopen_deplibs=yes ;; freebsd* | dragonfly*) lt_cv_sys_dlopen_deplibs=yes ;; gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) # GNU and its variants, using gnu ld.so (Glibc) lt_cv_sys_dlopen_deplibs=yes ;; hpux10*|hpux11*) lt_cv_sys_dlopen_deplibs=yes ;; interix*) lt_cv_sys_dlopen_deplibs=yes ;; irix[[12345]]*|irix6.[[01]]*) # Catch all versions of IRIX before 6.2, and indicate that we don't # know how it worked for any of those versions. lt_cv_sys_dlopen_deplibs=unknown ;; irix*) # The case above catches anything before 6.2, and it's known that # at 6.2 and later dlopen does load deplibs. lt_cv_sys_dlopen_deplibs=yes ;; netbsd*) lt_cv_sys_dlopen_deplibs=yes ;; openbsd*) lt_cv_sys_dlopen_deplibs=yes ;; osf[[1234]]*) # dlopen did load deplibs (at least at 4.x), but until the 5.x series, # it did *not* use an RPATH in a shared library to find objects the # library depends on, so we explicitly say `no'. lt_cv_sys_dlopen_deplibs=no ;; osf5.0|osf5.0a|osf5.1) # dlopen *does* load deplibs and with the right loader patch applied # it even uses RPATH in a shared library to search for shared objects # that the library depends on, but there's no easy way to know if that # patch is installed. Since this is the case, all we can really # say is unknown -- it depends on the patch being installed. If # it is, this changes to `yes'. Without it, it would be `no'. lt_cv_sys_dlopen_deplibs=unknown ;; osf*) # the two cases above should catch all versions of osf <= 5.1. Read # the comments above for what we know about them. # At > 5.1, deplibs are loaded *and* any RPATH in a shared library # is used to find them so we can finally say `yes'. lt_cv_sys_dlopen_deplibs=yes ;; qnx*) lt_cv_sys_dlopen_deplibs=yes ;; solaris*) lt_cv_sys_dlopen_deplibs=yes ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) libltdl_cv_sys_dlopen_deplibs=yes ;; esac ]) if test "$lt_cv_sys_dlopen_deplibs" != yes; then AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1], [Define if the OS needs help to load dependent libraries for dlopen().]) fi ])# LT_SYS_DLOPEN_DEPLIBS # Old name: AU_ALIAS([AC_LTDL_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], []) # LT_SYS_MODULE_EXT # ----------------- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([which extension is used for runtime loadable modules], [libltdl_cv_shlibext], [ module=yes eval libltdl_cv_shlibext=$shrext_cmds module=no eval libltdl_cv_shrext=$shrext_cmds ]) if test -n "$libltdl_cv_shlibext"; then m4_pattern_allow([LT_MODULE_EXT])dnl AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"], [Define to the extension used for runtime loadable modules, say, ".so".]) fi if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then m4_pattern_allow([LT_SHARED_EXT])dnl AC_DEFINE_UNQUOTED([LT_SHARED_EXT], ["$libltdl_cv_shrext"], [Define to the shared library suffix, say, ".dylib".]) fi ])# LT_SYS_MODULE_EXT # Old name: AU_ALIAS([AC_LTDL_SHLIBEXT], [LT_SYS_MODULE_EXT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SHLIBEXT], []) # LT_SYS_MODULE_PATH # ------------------ AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([which variable specifies run-time module search path], [lt_cv_module_path_var], [lt_cv_module_path_var="$shlibpath_var"]) if test -n "$lt_cv_module_path_var"; then m4_pattern_allow([LT_MODULE_PATH_VAR])dnl AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"], [Define to the name of the environment variable that determines the run-time module search path.]) fi ])# LT_SYS_MODULE_PATH # Old name: AU_ALIAS([AC_LTDL_SHLIBPATH], [LT_SYS_MODULE_PATH]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SHLIBPATH], []) # LT_SYS_DLSEARCH_PATH # -------------------- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([for the default library search path], [lt_cv_sys_dlsearch_path], [lt_cv_sys_dlsearch_path="$sys_lib_dlsearch_path_spec"]) if test -n "$lt_cv_sys_dlsearch_path"; then sys_dlsearch_path= for dir in $lt_cv_sys_dlsearch_path; do if test -z "$sys_dlsearch_path"; then sys_dlsearch_path="$dir" else sys_dlsearch_path="$sys_dlsearch_path$PATH_SEPARATOR$dir" fi done m4_pattern_allow([LT_DLSEARCH_PATH])dnl AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"], [Define to the system default library search path.]) fi ])# LT_SYS_DLSEARCH_PATH # Old name: AU_ALIAS([AC_LTDL_SYSSEARCHPATH], [LT_SYS_DLSEARCH_PATH]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SYSSEARCHPATH], []) # _LT_CHECK_DLPREOPEN # ------------------- m4_defun([_LT_CHECK_DLPREOPEN], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen], [libltdl_cv_preloaded_symbols], [if test -n "$lt_cv_sys_global_symbol_pipe"; then libltdl_cv_preloaded_symbols=yes else libltdl_cv_preloaded_symbols=no fi ]) if test x"$libltdl_cv_preloaded_symbols" = xyes; then AC_DEFINE([HAVE_PRELOADED_SYMBOLS], [1], [Define if libtool can extract symbol lists from object files.]) fi ])# _LT_CHECK_DLPREOPEN # LT_LIB_DLLOAD # ------------- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$]) LT_DLLOADERS= AC_SUBST([LT_DLLOADERS]) AC_LANG_PUSH([C]) LIBADD_DLOPEN= AC_SEARCH_LIBS([dlopen], [dl], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) if test "$ac_cv_search_dlopen" != "none required" ; then LIBADD_DLOPEN="-ldl" fi libltdl_cv_lib_dl_dlopen="yes" LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H # include #endif ]], [[dlopen(0, 0);]])], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) libltdl_cv_func_dlopen="yes" LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], [AC_CHECK_LIB([svld], [dlopen], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) LIBADD_DLOPEN="-lsvld" libltdl_cv_func_dlopen="yes" LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])]) if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes then lt_save_LIBS="$LIBS" LIBS="$LIBS $LIBADD_DLOPEN" AC_CHECK_FUNCS([dlerror]) LIBS="$lt_save_LIBS" fi AC_SUBST([LIBADD_DLOPEN]) LIBADD_SHL_LOAD= AC_CHECK_FUNC([shl_load], [AC_DEFINE([HAVE_SHL_LOAD], [1], [Define if you have the shl_load function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"], [AC_CHECK_LIB([dld], [shl_load], [AC_DEFINE([HAVE_SHL_LOAD], [1], [Define if you have the shl_load function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" LIBADD_SHL_LOAD="-ldld"])]) AC_SUBST([LIBADD_SHL_LOAD]) case $host_os in darwin[[1567]].*) # We only want this for pre-Mac OS X 10.4. AC_CHECK_FUNC([_dyld_func_lookup], [AC_DEFINE([HAVE_DYLD], [1], [Define if you have the _dyld_func_lookup function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"]) ;; beos*) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" ;; cygwin* | mingw* | os2* | pw32*) AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include ]]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" ;; esac AC_CHECK_LIB([dld], [dld_link], [AC_DEFINE([HAVE_DLD], [1], [Define if you have the GNU dld library.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"]) AC_SUBST([LIBADD_DLD_LINK]) m4_pattern_allow([^LT_DLPREOPEN$]) LT_DLPREOPEN= if test -n "$LT_DLLOADERS" then for lt_loader in $LT_DLLOADERS; do LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " done AC_DEFINE([HAVE_LIBDLLOADER], [1], [Define if libdlloader will be built on this platform]) fi AC_SUBST([LT_DLPREOPEN]) dnl This isn't used anymore, but set it for backwards compatibility LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" AC_SUBST([LIBADD_DL]) AC_LANG_POP ])# LT_LIB_DLLOAD # Old name: AU_ALIAS([AC_LTDL_DLLIB], [LT_LIB_DLLOAD]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_DLLIB], []) # LT_SYS_SYMBOL_USCORE # -------------------- # does the compiler prefix global symbols with an underscore? AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl AC_CACHE_CHECK([for _ prefix in compiled symbols], [lt_cv_sys_symbol_underscore], [lt_cv_sys_symbol_underscore=no cat > conftest.$ac_ext <<_LT_EOF void nm_test_func(){} int main(){nm_test_func;return 0;} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. ac_nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then # See whether the symbols have a leading underscore. if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then lt_cv_sys_symbol_underscore=yes else if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then : else echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD fi fi else echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.c >&AS_MESSAGE_LOG_FD fi rm -rf conftest* ]) sys_symbol_underscore=$lt_cv_sys_symbol_underscore AC_SUBST([sys_symbol_underscore]) ])# LT_SYS_SYMBOL_USCORE # Old name: AU_ALIAS([AC_LTDL_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SYMBOL_USCORE], []) # LT_FUNC_DLSYM_USCORE # -------------------- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl if test x"$lt_cv_sys_symbol_underscore" = xyes; then if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then AC_CACHE_CHECK([whether we have to add an underscore for dlsym], [libltdl_cv_need_uscore], [libltdl_cv_need_uscore=unknown save_LIBS="$LIBS" LIBS="$LIBS $LIBADD_DLOPEN" _LT_TRY_DLOPEN_SELF( [libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes], [], [libltdl_cv_need_uscore=cross]) LIBS="$save_LIBS" ]) fi fi if test x"$libltdl_cv_need_uscore" = xyes; then AC_DEFINE([NEED_USCORE], [1], [Define if dlsym() requires a leading underscore in symbol names.]) fi ])# LT_FUNC_DLSYM_USCORE # Old name: AU_ALIAS([AC_LTDL_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_DLSYM_USCORE], []) libprelude-5.2.0/m4/PaxHeaders.14770/ltoptions.m40000644000000000000000000000011013726163446017471 xustar000000000000000024 mtime=1599661862.552 24 atime=1599661863.001 24 ctime=1599661998.491 libprelude-5.2.0/m4/ltoptions.m40000644000000000000000000003007313726163446016477 0ustar00rootroot00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) libprelude-5.2.0/m4/PaxHeaders.14770/ltsugar.m40000644000000000000000000000011013726163447017120 xustar000000000000000024 mtime=1599661863.037 24 atime=1599661863.509 24 ctime=1599661998.493 libprelude-5.2.0/m4/ltsugar.m40000644000000000000000000001042413726163447016124 0ustar00rootroot00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) libprelude-5.2.0/m4/PaxHeaders.14770/ltversion.m40000644000000000000000000000011013726163447017464 xustar000000000000000024 mtime=1599661863.546 24 atime=1599661864.005 24 ctime=1599661998.495 libprelude-5.2.0/m4/ltversion.m40000644000000000000000000000126213726163447016470 0ustar00rootroot00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) libprelude-5.2.0/m4/PaxHeaders.14770/lt~obsolete.m40000644000000000000000000000010613726163450020010 xustar000000000000000024 mtime=1599661864.041 22 atime=1599661864.5 24 ctime=1599661998.496 libprelude-5.2.0/m4/lt~obsolete.m40000644000000000000000000001375613726163450017022 0ustar00rootroot00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) libprelude-5.2.0/m4/PaxHeaders.14770/pkg.m40000644000000000000000000000011013726163410016206 xustar000000000000000024 mtime=1599661832.661 24 atime=1599661832.774 24 ctime=1599661998.498 libprelude-5.2.0/m4/pkg.m40000644000000000000000000001623113726163410015214 0ustar00rootroot00000000000000# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # 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 of the License, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # PKG_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable pkgconfigdir as the location where a module # should install pkg-config .pc files. By default the directory is # $libdir/pkgconfig, but the default can be changed by passing # DIRECTORY. The user can override through the --with-pkgconfigdir # parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_INSTALLDIR # PKG_NOARCH_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable noarch_pkgconfigdir as the location where a # module should install arch-independent pkg-config .pc files. By # default the directory is $datadir/pkgconfig, but the default can be # changed by passing DIRECTORY. The user can override through the # --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_NOARCH_INSTALLDIR libprelude-5.2.0/m4/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163515017236 xustar000000000000000024 mtime=1599661901.842 24 atime=1599661945.384 24 ctime=1599661999.719 libprelude-5.2.0/m4/Makefile.in0000644000000000000000000016124013726163515016245 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = m4 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(dist_m4data_DATA) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(m4datadir)" DATA = $(dist_m4data_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ m4datadir = $(datadir)/aclocal dist_m4data_DATA = libprelude.m4 GITIGNOREFILES = argz.m4 \ ltdl.m4 \ libtool.m4 \ ltoptions.m4 \ ltsugar.m4 \ ltversion.m4 \ lt~obsolete.m4 all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu m4/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_m4dataDATA: $(dist_m4data_DATA) @$(NORMAL_INSTALL) @list='$(dist_m4data_DATA)'; test -n "$(m4datadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(m4datadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(m4datadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(m4datadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(m4datadir)" || exit $$?; \ done uninstall-dist_m4dataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_m4data_DATA)'; test -n "$(m4datadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(m4datadir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(m4datadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_m4dataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_m4dataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_m4dataDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-dist_m4dataDATA -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/m4/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163410017225 xustar000000000000000024 mtime=1599661832.658 24 atime=1599661832.773 23 ctime=1599661999.72 libprelude-5.2.0/m4/Makefile.am0000644000000000000000000000034513726163410016224 0ustar00rootroot00000000000000m4datadir = $(datadir)/aclocal dist_m4data_DATA = libprelude.m4 GITIGNOREFILES = argz.m4 \ ltdl.m4 \ libtool.m4 \ ltoptions.m4 \ ltsugar.m4 \ ltversion.m4 \ lt~obsolete.m4 -include $(top_srcdir)/git.mk libprelude-5.2.0/m4/PaxHeaders.14770/libprelude.m40000644000000000000000000000010713726163410017562 xustar000000000000000023 mtime=1599661832.66 24 atime=1599661832.774 24 ctime=1599661999.722 libprelude-5.2.0/m4/libprelude.m40000644000000000000000000001765213726163410016572 0ustar00rootroot00000000000000dnl Autoconf macros for libprelude dnl $id$ # Modified for LIBPRELUDE -- Yoann Vandoorselaere # Modified for LIBGNUTLS -- nmav # Shamelessly stolen from the one of XDELTA by Owen Taylor # Werner Koch 99-12-09 dnl AM_PATH_LIBPRELUDE([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]], THREAD_SUPPORT) dnl Test for libprelude, and define LIBPRELUDE_PREFIX, LIBPRELUDE_CFLAGS, LIBPRELUDE_PTHREAD_CFLAGS, dnl LIBPRELUDE_LDFLAGS, and LIBPRELUDE_LIBS dnl AC_DEFUN([AM_PATH_LIBPRELUDE], [dnl dnl Get the cflags and libraries from the libprelude-config script dnl AC_ARG_WITH(libprelude-prefix, AC_HELP_STRING(--with-libprelude-prefix=PFX, Prefix where libprelude is installed (optional)), libprelude_config_prefix="$withval", libprelude_config_prefix="") if test x$libprelude_config_prefix != x ; then if test x${LIBPRELUDE_CONFIG+set} != xset ; then LIBPRELUDE_CONFIG=$libprelude_config_prefix/bin/libprelude-config fi fi AC_PATH_PROG(LIBPRELUDE_CONFIG, libprelude-config, no) if test "$LIBPRELUDE_CONFIG" != "no"; then if $($LIBPRELUDE_CONFIG --thread > /dev/null 2>&1); then LIBPRELUDE_PTHREAD_CFLAGS=`$LIBPRELUDE_CONFIG --thread --cflags` if test x$4 = xtrue || test x$4 = xyes; then libprelude_config_args="--thread" else libprelude_config_args="--no-thread" fi else LIBPRELUDE_PTHREAD_CFLAGS=`$LIBPRELUDE_CONFIG --pthread-cflags` fi fi min_libprelude_version=ifelse([$1], ,0.1.0,$1) AC_MSG_CHECKING(for libprelude - version >= $min_libprelude_version) no_libprelude="" if test "$LIBPRELUDE_CONFIG" = "no" ; then no_libprelude=yes else LIBPRELUDE_CFLAGS=`$LIBPRELUDE_CONFIG $libprelude_config_args --cflags` LIBPRELUDE_LDFLAGS=`$LIBPRELUDE_CONFIG $libprelude_config_args --ldflags` LIBPRELUDE_LIBS=`$LIBPRELUDE_CONFIG $libprelude_config_args --libs` LIBPRELUDE_PREFIX=`$LIBPRELUDE_CONFIG $libprelude_config_args --prefix` LIBPRELUDE_CONFIG_PREFIX=`$LIBPRELUDE_CONFIG $libprelude_config_args --config-prefix` libprelude_config_version=`$LIBPRELUDE_CONFIG $libprelude_config_args --version` ac_save_CFLAGS="$CFLAGS" ac_save_LDFLAGS="$LDFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $LIBPRELUDE_CFLAGS" LDFLAGS="$LDFLAGS $LIBPRELUDE_LDFLAGS" LIBS="$LIBS $LIBPRELUDE_LIBS" dnl dnl Now check if the installed libprelude is sufficiently new. Also sanity dnl checks the results of libprelude-config to some extent dnl rm -f conf.libpreludetest AC_TRY_RUN([ #include #include #include #include int main () { system ("touch conf.libpreludetest"); if( strcmp( prelude_check_version(NULL), "$libprelude_config_version" ) ) { printf("\n*** 'libprelude-config --version' returned %s, but LIBPRELUDE (%s)\n", "$libprelude_config_version", prelude_check_version(NULL) ); printf("*** was found! If libprelude-config was correct, then it is best\n"); printf("*** to remove the old version of LIBPRELUDE. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If libprelude-config was wrong, set the environment variable LIBPRELUDE_CONFIG\n"); printf("*** to point to the correct copy of libprelude-config, and remove the file config.cache\n"); printf("*** before re-running configure\n"); } else if ( strcmp(prelude_check_version(NULL), LIBPRELUDE_VERSION ) ) { printf("\n*** LIBPRELUDE header file (version %s) does not match\n", LIBPRELUDE_VERSION); printf("*** library (version %s)\n", prelude_check_version(NULL) ); } else { if ( prelude_check_version( "$min_libprelude_version" ) ) return 0; else { printf("no\n*** An old version of LIBPRELUDE (%s) was found.\n", prelude_check_version(NULL) ); printf("*** You need a version of LIBPRELUDE newer than %s. The latest version of\n", "$min_libprelude_version" ); printf("*** LIBPRELUDE is always available from https://www.prelude-siem.org/project/prelude/files\n"); printf("*** \n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the libprelude-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBPRELUDE, but you can also set the LIBPRELUDE_CONFIG environment to point to the\n"); printf("*** correct copy of libprelude-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_libprelude=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" LDFLAGS="$ac_save_LDFLAGS" fi if test "x$no_libprelude" = x ; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else if test -f conf.libpreludetest ; then : else AC_MSG_RESULT(no) fi if test "$LIBPRELUDE_CONFIG" = "no" ; then echo "*** The libprelude-config script installed by LIBPRELUDE could not be found" echo "*** If LIBPRELUDE was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the LIBPRELUDE_CONFIG environment variable to the" echo "*** full path to libprelude-config." else if test -f conf.libpreludetest ; then : else echo "*** Could not run libprelude test program, checking why..." CFLAGS="$CFLAGS $LIBPRELUDE_CFLAGS" LDFLAGS="$LDFLAGS $LIBPRELUDE_LDFLAGS" LIBS="$LIBS $LIBPRELUDE_LIBS" AC_TRY_LINK([ #include #include #include #include ], [ return !!prelude_check_version(NULL); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBPRELUDE or finding the wrong" echo "*** version of LIBPRELUDE. If it is not finding LIBPRELUDE, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" echo "***" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBPRELUDE was incorrectly installed" echo "*** or that you have moved LIBPRELUDE since it was installed. In the latter case, you" echo "*** may want to edit the libprelude-config script: $LIBPRELUDE_CONFIG" ]) CFLAGS="$ac_save_CFLAGS" LDFLAGS="$ac_save_LDFLAGS" LIBS="$ac_save_LIBS" fi fi LIBPRELUDE_CFLAGS="" LIBPRELUDE_LDFLAGS="" LIBPRELUDE_LIBS="" ifelse([$3], , :, [$3]) fi rm -f conf.libpreludetest AC_SUBST(LIBPRELUDE_CFLAGS) AC_SUBST(LIBPRELUDE_PTHREAD_CFLAGS) AC_SUBST(LIBPRELUDE_LDFLAGS) AC_SUBST(LIBPRELUDE_LIBS) AC_SUBST(LIBPRELUDE_PREFIX) AC_SUBST(LIBPRELUDE_CONFIG_PREFIX) m4_ifdef([LT_INIT], [AC_DEFINE([PRELUDE_APPLICATION_USE_LIBTOOL2], [], [Define whether application use libtool >= 2.0])], []) ]) dnl *-*wedit:notab*-* Please keep this as the last line. libprelude-5.2.0/PaxHeaders.14770/INSTALL0000644000000000000000000000011013726163512015677 xustar000000000000000024 mtime=1599661898.783 24 atime=1599661898.783 24 ctime=1599661998.138 libprelude-5.2.0/INSTALL0000644000000000000000000003660513726163512014714 0ustar00rootroot00000000000000Installation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. HP-UX `make' updates targets which have the same time stamps as their prerequisites, which makes it generally unusable when shipped generated files such as `configure' are involved. Use GNU `make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. libprelude-5.2.0/PaxHeaders.14770/NEWS0000644000000000000000000000010713726163410015350 xustar000000000000000024 mtime=1599661832.486 23 atime=1599661832.72 24 ctime=1599661998.139 libprelude-5.2.0/NEWS0000644000000000000000000017263113726163410014357 0ustar00rootroot00000000000000* 2020-09-09, libprelude-5.2.0: Author: Antoine Luong - Change company name * 2020-07-23, libprelude-5.2.0rc1: No new changes. * 2020-06-30, libprelude-5.2.0beta2: Author: Yoann Vandoorselaere - Proper escaping of substr/regex criterion * 2020-06-19, libprelude-5.2.0beta1: Author: Antoine Luong - Switch license to LGPL - Add Python 3.7/3.8 support - Update to SWIG 4.0.1 - Fix LIBPRELUDECPP_SONAME Author: Yoann Vandoorselaere - Implement prelude_msg_clone() - Properly check for EINTR - Update libprelude-error for GAWK 5.0 - Fix for system that does not implement PATH_MAX - Various IDMEF criteria improvements - Fix substring unit tests - Raw string support - Fix regexp comparison with NULL IDMEF value - Proper escaping of IDMEF criteria - Use PCRE when available for criteria matching - Substring match is now handled using fnmatch - Prefix Flex/Yacc public symbol Author: Francois Poirotte - Remove superfluous brackets in AC_INIT * 2019-09-13, libprelude-5.1.0: * 2019-09-04, libprelude-5.1.0rc1: No new changes. * 2019-08-16, libprelude-5.1.0beta3: Author: Yoann Vandoorselaere - Update to SWIG 4 - Fix possible crash on invalid unicode string * 2019-07-17, libprelude-5.1.0beta1: Author: Yoann Vandoorselaere - Fix various JSON parser errors - Add optional IDMEFPath argument to IDMEFValue() constructor - Fix incorrect string export of IDMEFTime microseconds * 2019-03-15, libprelude-5.1.0alpha1: Author: Yoann Vandoorselaere - Fix py3 pickle error - Properly implement Criterion NOT operator, fix operator precedence - More environment variable to ease debugging * 2018-09-07, libprelude-5.0.0: Author: Antoine Luong - Fix docstring typos - Update GnuLib code * 2018-08-17, libprelude-5.0.0rc1: Author: Yoann Vandoorselaere - Change the structure of IDMEF criteria - Make IDMEFPath and IDMEFCriteria pickle compatible Author: Antoine Luong - Fix IDMEF_MSG_REFERENCE_NAME value * 2018-05-04, libprelude-5.0.0beta2: No new changes. * 2018-04-13, libprelude-5.0.0beta1: Author: Antoine Luong - Update GnuLib code Author: Thomas Andrejak - Add python 3.6 support - Fix spelling in Perl bindings - Fix server_confirm type * 2018-02-09, libprelude-4.2.0rc1: Author: Yoann Vandoorselaere - Ability to specify attributes for IDMEF path Author: Antoine Luong - Fix the encoding error handler for Python 2 Author: Thomas Andrejak - Use SHA256 signature with GnuTLS instead of default SHA1 * 2017-07-21, libprelude-4.1.0: No new changes. * 2017-07-13, libprelude-4.1.0rc2: Author: Yoann Vandoorselaere - Update GnuLib code * 2017-06-30, libprelude-4.1.0rc1: Author: Yoann Vandoorselaere - Copy prelude-client analyzer object instead of referencing it * 2017-06-23, libprelude-4.1.0beta2: Author: Yoann Vandoorselaere - Prevent sending TLS alert on fatal error * 2017-06-16, libprelude-4.1.0beta1: Author: Thomas Andrejak - Manpage spelling check - Correct the format of the year in date error message * 2017-02-16, libprelude-4.0.0: * 2017-02-12, libprelude-4.0.0rc3: * 2017-02-03, libprelude-4.0.0rc2: No new changes. * 2017-01-27, libprelude-4.0.0rc1: Author: Yoann Vandoorselaere - Fix crash when retrieving listed value * 2017-01-12, libprelude-4.0.0beta2: Author: Yoann Vandoorselaere - Update GnuLib and SWIG generated code - Get rid of libgcrypt Nowadays, libgcrypt functions that we used are now available directly from GnuTLS, which uses libnettle. * 2016-12-23, libprelude-4.0.0beta1: Author: Yoann Vandoorselaere - Implement idmef_criteria_get_class() This function can be used to retrieve the idmef_class_id_t of the root paths elements used for a given criteria. - Implement prelude.return_unicode(flags) When enabled, string returned from SWIG wrapped function will be converted to unicode. - Fix possible IDMEFValue 'out of range' error * 2016-09-14, libprelude-3.1.0: Author: Thomas Andrejak - Fix idmef_path_(get|set) docstring * 2016-09-01, libprelude-3.1.0rc3: No new changes. * 2016-08-19, libprelude-3.1.0rc2: Author: Thomas Andrejak - Fix configure --with-ruby * 2016-08-05, libprelude-3.1.0rc1: Author: Thomas Andrejak - Various autotools fixes - Fix detection of lua 5.2 - Fix python uninstall with /usr and /usr/local - Fix perl binding cleaning - Make the perl binding use LDFLAGS - Enable configure to detect ruby with pkg-config - Fix cleaning of lex and yacc files - Make libprelude-error take CFLAGS into account - Rename configure.in to configure.ac - Missing dependencies in README - Update FSF address and copyrights Author: Yoann Vandoorselaere - Add a JSON export/import module - Update SWIG and GnuLib code - Various code fixes - idmef_data_to_string() can output binary string stored as "char-string" - Handle EAGAIN even if it's not supposed to happen - Implement prelude_msg_get_data() - API for atomic message write - Improved message handling Author: Sélim Menouar - Add libprelude-config man page * 2016-04-22, libprelude-3.0.0: Author: Antoine Luong - Fix make distcheck with LUA and Ruby bindings Author: Yoann Vandoorselaere - Fix idmef-criteria valgrind unit test (memory leak) * 2016-04-15, libprelude-3.0.0rc4: No new changes. * 2016-04-08, libprelude-1.3.0rc3: Author: Yoann Vandoorselaere - Fix assertions / wrong object matching behavior on list - Broken-down time comparison worked only once - Fix multiple idmef-path cloning issue * 2016-04-01, libprelude-1.3.0rc2: No new changes. * 2016-03-25, libprelude-1.3.0rc1: Author: Louis-David Gabet - Update README * 2016-03-18, libprelude-1.3.0beta2: Author: Yoann Vandoorselaere - Properly set top class when using idmef_path_new_from_root_fast() * 2016-03-01, libprelude-1.3.0beta1: Author: Thomas Andrejak - Change c-s.fr to prelude-siem.com Author: Abdel Elmili - Fix typos Author: Antoine Luong - Fix depth comparison in IDMEFClass() * 2016-01-11, libprelude-1.3.0alpha1: Author: Yoann Vandoorselaere - Implement utility functions for IDMEF union - idmef_class_is_child_union_member() - idmef_class_get_child_union_id() - Implement idmef_object_get_class() - Improve string allocation algorithm - Fix crash on listed value retrieval - Fix IDMEF object copy - Improve error reporting - Remove IDMEF SNMP community field * 2015-07-31, libprelude-1.2.6: No new changes. * 2015-07-27, libprelude-1.2.6rc5: Author: Yoann Vandoorselaere - Low-level bindings are now deprecated - AdditionalData fixes - [#446] Automatic AdditionalData typing - [#447] Handle negative AdditionalData - Support IDMEFTime() object within AdditionalData, as required per the IDMEF RFC - SWIG update to 3.0.6 - SWIG Python now use builtin mode (massive performance improvements) - Fix lua/perl code generation - [#522, #503] Prevent instance attribute to be reset on __init__() - Reset all object data when calling idmef_time_set_from_string() on an already initialized time - IDMEFCriteria time comparison fixes - Make sure we listen on all interfaces (IPv4+IPv6 dual stack fixes) - Proper implementation of Prelude::IDMEF __(get|set)state__ - Fix GCC5 libprelude-error compilation failure * 2014-10-27, libprelude-1.2.6rc4: Author: Yoann Vandoorselaere - Add self argument to IDMEFValue_to_SWIG for future builtin compatibility - Correctly throw PreludeError exception in Python - Minor fixes * 2014-10-15, libprelude-1.2.6rc3: Author: Yoann Vandoorselaere - Fix #410: gnutls priority error on system with SRP support - Implement simple, locale independant strtod() function - Fix #390: Correct library ordering for prelude-admin - Use --lgpl=2 when invoking GnuLib, remove obsolete GnuLib files - Handle NULL on IDMEFValue() for IDMEF object constructor - Introduce support for the IDMEFClass class - Enable SWIG support for keywords arguments Author: Thomas Andrejak - Force definition of LUA_VERSION - Missing files while generating dist * 2014-09-23, libprelude-1.2.6rc2: Author: Yoann Vandoorselaere - Massive high/low level bindings renaming - Low-level perl bindings are deleted - Low-level python bindings renamed to "preludeold" - High-level perl bindings renamed to "Prelude" - High-level python bindings renamed to "prelude" - High-level ruby bindings renamed to "Prelude" - High-level lua bindings renamed to "prelude" - Python 3 build, and compatibility fixes, Unicode support for Python 2 - Provide more version number information (major, minor, micro, level, serial) - Use std::string over const char * - Update GnuLib code - Add missing SWIG update - Revert "Verify ABI compatibility in prelude_init()" - Define __setitem__ for Python bindings, disable internal code when used from the outside world. - Various fixes * 2014-09-16, libprelude-1.2.6rc1: Author: Yoann Vandoorselaere - Various improvements - Fix valgrind memory leak warnings - Allow creation of IDMEFPath relative to a root Example: idmef_path_new_from_root_fast(&path, IDMEF_CLASS_ID_ANALYZER, "name"); will create an IDMEFPath that references the 'name' attribute of an idmef_analyzer_t object. - Introduce the idmef_object_t datatype IDMEF datatype now contain their own ID, so that it is possible for API using them anonymously to know which object they are currently being dealing with. - Ability to cast from IDMEFCriteria to idmef_criteria_t - Implement idmef_class_print() function It is now possible to generically convert any IDMEF object to string. - IDMEFPath support for key as index Example: idmef.Set("alert.additional_data('My Key').data", "data"); will create a new AdditionalData object whose key is 'My Key', and data is 'data' (the object "meaning" field will thus contain the key). - Verify ABI compatibility in prelude_init() - Support for IDMEF object in Set() - Corrections - Newly added timer did not expire when expected - Add missing IDMEF equal operator - prelude-linked-object members ordering fixes, so that the members are synchronized with listed idmef_object_t. - Fix asynchronous stack / high level bindings callback deadlock - Compilation fixes - Various SWIG fixes - Use Prelude namespace explicitely, prevent error when included from other project - Include high- and low-level bindings generated code in the repository A reference version avoids using buggy or too old SWIG versions, do not automatically regenerate bindings by default. Warning : not compatible with lua 5.0 on Debian 7 and maybe other Linux - Enable Python 2.x Unicode coercion (include a SWIG patch from Brian Cole) - From now on, SWIG interface files are now installed This will be useful in order to generate libpreludedb bindings. - Fix make distcheck - Fix compilation with recent Flex version, update C code. * 2014-07-07, libprelude-1.2.5: - Various improvements - Improved error handling - In high level language, return an empty list if the path is ambiguous - Allow NULL idmef_value_t in list When retrieving value from a path, like alert.source(*).node.address(*).address, we also want to return undefined values, so that the returned list conforms to the number of item/index in the retrieved path. - Improved idmef_path_set() implementation It is now possible to set undefined elements, or override them. Additionally, append and prepend operation is now much faster. - Map idmef_value_type_id_t to a C++ enumeration - Provide __hash__ function for IDMEFValue class This allow Python sets() operation on IDMEFValue instance. - Explicitly activate thread support - Comparison operator support for IDMEFValue() Allow to directly compare two values together, without calling the IDMEFValue.Match() method. Add support of the Python "in" operator (item in valuelist). - New prelude_list_splice() / prelude_list_splice_tail() function - Add missing PRELUDE_SCN* definition - Improve AdditionalData type checking - Prelude-Timer optimisation - Corrections - Various string conversion fixes - Fix leak for all methods returning an idmef_value_type_id_t - Fix float value corruption when writing to a prelude_message - Fix high level bindings ambiguity on IDMEFPath.Set() and IDMEF.Set() methods - NTP timestamps were not correctly printed - Corrected IDMEF Clone() method - Fix idmef-message-helper units tests - Compilation fixes - Various compilation warning fixes - Ruby high level bindings compilation fixes Fixed #513: make the Ruby binding code compatible with Ruby 1.9 - Update to latest GnuTLS API Fix compilation if GnuTLS-Extra is not available - Fix Perl high level bindings compilation - Fixed #386: build failure with libtool 2.4 - Fix configure script generation, and update GnuLib code * 2012-06-04, libprelude-1.0.1: - Fixed typo in setup.py.in - Added packaging for rhel6 - Changed copyright - Prevent freeing IDMEF message value on idmef_message_get_string() idmef_message_get_string() used to free the value within the IDMEF message, because prelude_string_get_string_released() was used. As a result, further idmef_message_get_string() on the same IDMEF path where returning null value. - C++ compilation fixes Include idmef-data.h, required for idmef_data_t declaration. * 2010-03-16, libprelude-1.0.0: - C99 specifics formats are now available for public function using string formatting. * 2010-01-29, libprelude-1.0.0rc1: - Libprelude EasyBindings are now enabled by default - Default to generating 2048 bits TLS keys - Fix a potential IDMEF object copy/clone error return that could occur if the caller had freed a required children from the copied object. - Prevent unsafe modification of the Libprelude returned Analyzer object - When retrieving a list of IDMEF object, return a Python list containing one IDMEFValue for each object. This behavior is more consistant than retrieving a single IDMEFValue carrying the whole list, and might permit the user to play with the object directly if we extand the API in the future. - Fix argv memory leak on bindings initialization - Fixes some warnings uncovered by GCC -Wextra - Thanks to Steve Grubb for reporting Flexelint output! This allowed fixing the following issues: [prelude-admin]: fix possible leak on getpass() failure. [idmef-data]: fix potential invalid read on architecture where sizeof(char) > 1. [idmef-path]: idmef_path_set_index() would accept an off by one depth, protect the caller. [prelude-connection]: fix invalid pointer dereference in case of malloc() failure. * 2009-01-11, libprelude-0.9.25: - Sent message priority will now be correctly assigned depending on the input IDMEF message. - Fix critical warnings on destroy when assigning NULL value to IDMEF union. - Fix Ruby include path detection on certain systems - Fix idmef_data_t (type CHAR_STRING) mapping to high level language string, this prevent enclosing the terminating \0 when mapping an idmef_data_t of carrying a string to an high level language string (example: Python, Perl). - Prevent a possible double free when a C++ IDMEFTime object was referenced from multiples place. - Increase maximum protocol message size, the old size (1mb) could be a problem for systems sending very large alerts (example: CorrelationAlert with a lot of sources/targets). In the future, this limitation might be completly removed. * 2009-07-08, libprelude-0.9.24.1: - Use SWIG 1.3.39 to generate bindings code, fixes Prewikka compatibility problem because of SWIG version mismatch between libprelude/libpreludedb modules. * 2009-07-08, libprelude-0.9.24: - Initial prelude-log C++/Python/Ruby/Perl/Lua bindings support. This implement language bindings for the PreludeLog interface. - Make the created profile permission fully respect required ownership. The analyzerid file within the created profile was incorrectly created with current ownership, rather than using specified uid/gid. - Ruby and Python bindings were not properly checking whether the argument was a file descriptor in case the left/right shift IDMEF operator were used. - Fix prelude-client initialization problem with empty argv[0], which sometime happen when called from certain high level language. - Fix error in case of multiple initialization. - Fix possible Lua module crash on initialization. - Various bug fixes * 2009-06-08, libprelude-0.9.23: - New API functions to retrieve operators applicable to a given idmef_path_t, idmef_value_t or idmef_value_type_t. - Return an error when a character are provided as input for a 8 bit integer value. - Make it possible to compare an enumeration path with a string by using the standard substring operator (<> or <>*). - Automatically set IDMEFAnalyzer before sending IDMEF messages. - Various bug fixes. * 2009-04-22, libprelude-0.9.22: - Fix C++ headers installation. - Automatic, detailed ChangeLog generation (from http://live.gnome.org/Git/ChangeLog). - Prefix C++ enumeration, implement IDMEFValue::Match() method, and provide IDMEFCriterion operator to be used by this method. - Old behavior when returning an IDMEFValue was to map it's internal type to a type understood by the target language. Preserve this behavior unless the value contain an IDMEF class, in which case we now return the raw IDMEFValue (IDMEF class object are not handled by higher level language, but the value containing the class can be useful). - Use pkg-config for GnuTLS and GnuTLS extra detection, and provide our own libprelude pkg-config file. - Various bug fixes. * 2008-11-14, libprelude-0.9.21.3: - Update to libtool / libltdl 2.2.x - Workaround libtool/libltdl 1.5 -> 2.x ABI compatibility issues. This introduce two fixes: Fix a crash when an application use a different libtool version than the libtool/libltdl version used to compile libprelude. In order to prevent this problem, we automatically rewrite the symbol table provided by libtool 1.5 applications, and make it compatible with libltdl 2.2 (we will now ship libtool/ltdl 2.2 as the default with libprelude). Automatic handling of symbol renaming between libtool 1.5 -> 2.x, which solve application linking problem. (fix #294). - Cygwin compilation fixes. - Fix compilation when IPv6 is not available. - Fix possible compilation problem with some GCC version (fix #325). * 2008-10-13, libprelude-0.9.21.2: - Fix regression introduced in 0.9.21.1, that would lead to a 'prelude-admin list' crash (#320). * 2008-10-06, libprelude-0.9.21.1: - Fix an assertion warning upon sensor start in case the address for the local machine could not be found. - Consistency rework of EasyBindings IDMEFCriteria API. - Add refcount support for prelude_client_t and prelude_client_profile_t, and update EasyBindings destructor to use them. - Fix a bug where EasyBindings would be built although they were not enabled. - Fix path issue in case libprelude was configured with specific path outside of $prefix (fix #319). * 2008-09-19, libprelude-0.9.21: - libprelude now compile and run under Win32 native! - Fix file descriptor closure problem after daemonizing (#311). - New API functions allowing to specify the libprelude working prefix, the prefix can be set using the LIBPRELUDE_PREFIX environment variable as well (#255). - libprelude is now relocatable (use --enable-relocatable configure option). - libgcrypt initialization fixes. - Complete WIN32 glthread backend. - Various bug fixes. * 2008-09-09, libprelude-0.9.20.2: - Fix possible invalid read when looking up IDMEF path. - Fix error handling before library initialization. * 2008-09-05, libprelude-0.9.20.1: - Fix endless loop in prelude-async, due to the glthread API changes. - Fix libtool usage for unit-testing. * 2008-09-03, libprelude-0.9.20: - Multithreading API independance: support for posix, solaris, pth, and win32 backend. - Automatic Node name and address detection, if the user did not provides custom parameters. - When copying the value prior doing the cast, set the copy to not own the value data. - When casting an IDMEF-Value fail, return the un-modified IDMEF-Value. - Fixed non working uint32 and uint64 to time cast. - Honor 'own_data' boolean when casting from/to a string (possible double free). - Include unit tests. - Correct C++ headers installation path. - Fix Perl EasyBindings IDMEF->Read() method infinite loop. - Handle new IDMEF value as new IDMEF object: return the old value if one already exist. * 2008-08-04, libprelude-0.9.19: - EasyBindings inclusion! EasyBindings provide simple C++, Python, Perl, Ruby, and Lua bindings for using libprelude. They are still considered experimental, thus you need to use (--enable-easy-bindings) to activate them. Thanks to Sebastien Tricaud and Pierre Chifflier for their contribution to this project! - Use automake/autoconf for building/installing Python extension. - Fix 0.9.18 regression (alert created with empty CreateTime). - Implement reference counting for the idmef-criteria and prelude-connection API. - Automatic casting when setting IDMEF Value to a field that is of different type. Until now, if an user tried to set a path of a specific type with an idmef_value_t object containing another type, idmef_path_set() would return an error. - Various bug fixes. * 2008-07-21, libprelude-0.9.18.1: - Temporarily disable mutex locking while calling event handler, since we really need recursive mutex support for this task. - Fix possible application compilation breakage when including prelude-timer.h: include time.h for time_t definition, fix #301. - Fix compilation error with GnuTLS < 2.2.0 (fix #302). * 2008-07-18, libprelude-0.9.18: - Add support for newer GnuTLS 2.2.0 session priority functions. When the option is available, the user might specify TLS settings through the "tls-options" configuration entry. - Workaround a GnuTLS issue where the client wouldn't be able to negotiate a supported compression protocol with the server (#299). - Implement variable substitution in Prelude configuration files. - Allow IDMEF criteria with multiples values for a single path, as can be seen in the following example: alert.classification.text = (A || B || C || D) This will be internally translated to the original criteria language: alert.classification.text = A || alert.classification.text = B || alert.classification.text = C || alert.classification.text = D - Implement negation of idmef-criteria, allowing to write criteria like: ! (alert.classification.text = A || alert.classification.text = B) - Fix an IDMEF-Criteria matching problem, where the match function would not attempt to match a OR after multiple consecutive AND that failed. Thanks Alexander Afonyashin for pointing out the problem. - Never use non-pointer field, always use the "required" keyword. Fix API consistency issue, that could lead to unexpected behavior. - Fix multiples problem with prelude_read_multiline / prelude_read_multiline2, (fix a problem with prelude-manager idmef-criteria that wouldn't read external ruleset). - Error out if GnuTLS initialization fail. * 2008-05-06, libprelude-0.9.17.2: - Fix unresolved symbols on some architecture, thanks Robin Gruyters for pointing out this issue. * 2008-04-28, libprelude-0.9.17.1: - Remove debug spew, thanks Pierre Chifflier for pointing that out. * 2008-04-24, libprelude-0.9.17: - Implement RFC 4122 UUIDv1 identifier generation, more resistant to duplicate than our previous implementation in case of clock skew, or multiple client with the same analyzerid sending alert in parallel. - You can now provide NULL value to idmef_path_set() in order to destroy existing value within an IDMEF message. - Unify memory handling of value retrieval through idmef_path_t. This allow the user to retrieve and keep any values, even through the associated IDMEF message is freed. - Build system cleanup, enable RELRO when possible. - Implement PRELUDE_CLIENT_FLAGS_AUTOCONFIG, which is set by default, but that applications might unset in order for their client not to read the default profile/global configuration. - Fix possible assertion when destroying un-started prelude-client. - Improvement to the prelude-io API, the user might now hook its own handling function. - Fix dumping of (not) NULL criteria operator to string. Remove gratuitous space insertion when dumping criteria. - Headers fixes for C++ build. - Fix printing and cloning of empty IDMEF string. - In IDMEF to string convertion code, print in place of NULL on invalid enumeration value. - Bindings fixes for optional integer retrieval, by Pierre Chifflier - Various bug fixes. * 2008-01-23, libprelude-0.9.16.2: - Fix bindings for IDMEF 'get_next' functions. - Make sure we use no additional GnuLib compiler flags when building bindings, this fix bindings compilation failure on some architecture (Solaris). - FreeBSD compilation fixes. - Solaris compilation fixes. * 2007-11-22, libprelude-0.9.16.1: - Heartbeat are now sent as high priority messages. - Fix compilation issue on system with old GnuTLS version (close #268). - Propagate the CC environment variable for bindings compilation (fix #264), by Pierre Chifflier . - More explicit assertion on invalid API usage, thanks to Sebastien Tricaud . - Appropriatly set the process umask before creating analyzer profile / failover files and directories (Fix possible loading problem with certain umask). - Various bug fixes and minor enhancements. * 2007-10-01, libprelude-0.9.16: - Implement prelude-admin list [-l] command, which provide the ability to list existing profile name, permission, registration permission, analyzerID, and Issuer analyzerid. - Implement multiple analyzer deletion in prelude-admin. - Correct printing of IDMEF time field using non local GMT offset. - Patch to avoid struct typespec redefinition, due to variable mispelling. This fixes a compilation problem on OpenBSD 3.8. - Various bug fixes. * 2007-09-04, libprelude-0.9.15.2: - Write the children PID into specified pidfile (fixes #257). - Fix double free on idmef_criterion_value_t cloned regexp object (thanks to Helmut Azbest ). - Allow Python thread to run, while entering libprelude C function. - Return PRELUDE_ERROR_ASSERTION when API check fail, in place of PRELUDE_ERROR_GENERIC. - Make prelude_plugin_unsubcribe() work as expected (call the plugin instance destroy function). - Various bug fixes, minor enhancements. * 2007-08-29, libprelude-0.9.15.1: - Fix build error on system that use native awk implementation in place of GNU awk (Pierre Chifflier ), fix #256. - Avoid a prelude-string fatal assertion, by denying copy/cloning of an empty prelude-string. - Correction to the 'prelude-admin send' help message. - Convert prelude-string to use prelude_return_if_fail() in place of prelude_log(). * 2007-08-23, libprelude-0.9.15: - prelude-adduser has been renamed to prelude-admin, and now include command to print or send files containing binary IDMEF data. - Brand new failover implementation, Feature a real 'journaling' log, allowing to restart where we were interupted. Allow multiple process to write to the same failover, and is chroot safe. - prelude-admin manpage, thanks to Frederic Motte . - Use SHA1 in place of MD5 for Analyzer checksum. - Do not set TCP option on UNIX socket, avoid un-necessary warning. - New measure all over the public interface to protect against bad API usage, when a function is not used correctly, a critical warning is triggered. - [logging]: New PRELUDE_LOG_CRIT logging priority. - [logging]: Correctly map Prelude log level to Syslog priority. - [logging]: Improved logging format (include timestamp, level, process pid). - [logging]: New LIBPRELUDE_ABORT variable, useful if you'd like libprelude to abord on critical assertion. - [logging]: Automatically switch to syslog mode if we detect stdout/stderr closure. - [IDMEF-Criteria]: When we try to match a value against a path that is not part of a message using a 'not' operator, the match should succeed (Example: alert.classification.text != 'stuff' should match if the message has no classification object). - [IDMEF-Criteria]: When matching multiple listed values within the same path using a 'not' operator, return an explicit 'no match' if the provided comparison value was found at least once. - [IDMEF-Path] (fix #251): Fixes NULL pointer dereference when the last element of an IDMEF path to an enumeration is not the enumeration itself (Sébastien Tricaud - Fix a possible race condition with the internal libprelude reference to the program idmef_analyzer_t when asynchronous timer were used. - Workaround possible deadlock at exit on OpenBSD, Linux Glibc. - Only configure libltdl if it is required. - Various bug fixes, minor enhancements. * 2007-05-15, libprelude-0.9.14: - Implement TCP keepalive settings on platform that support it, check client.conf for details. - When reading prelude-adduser password from a file, remove newline at the end of the string (fix #221). - When we fail to read an IDMEF message, provide more information about the place where the error happened. - Fix an issue with idmef_path_get() on empty path (pointing to the root message). - Various bug fixes and minor API improvements. * 2007-03-30, libprelude-0.9.13.2: - Improve error reporting with the central option interface. - Fix a bug when comparing IDMEF object with optional fields. - Fix a problem with the logger, where large log entry wouldn't be logged. - Fix distclean target. * 2007-03-15, libprelude-0.9.13.1: - Implement substring and regexp matching for IDMEF AdditionalData type. - When the compiler support it, add format string check capability to variable number of arguments function declaration. - Fix prelude-adduser regression introduced in libprelude-0.9.13. - Fix a regression introduced in [8381] preventing broken down time and regex match to work. - Fix a bug when manually setting an IDMEF path index. - Prevent invalid pointer dereference when passed invalid enumeration class. - Initialize GMT offset when setting a time from an NTP string. - Various bug fixes. * 2007-02-20, libprelude-0.9.13: - Fix a crash with Python bindings upon signal reception (Fix #200). - New --with-system-ltdl configure switch. The default is now to use the system wide ltdl library if it is available, unless specified otherwise (Fix #199). - Prevent NULL pointer dereference if no permission is specified after the permission type (Fix #197). - Upon IDMEFCriteria parsing error, recover from broken parser stater (Fix #195). - Detailed error reporting on IDMEFCriteria parsing error. - Fix string and possible criteria leak on IDMEFCriteria syntax error. - Prefer anonymous authentication rather than SRP. We do this because there are compatibility issue with SRP between different GnuTLS version (Should fix #187). - When dumping AdditionalData of type byte-string to string, encode the data using base64. - Win32 compatibility fixes. - Cross compilation fixes. * 2007-01-08, libprelude-0.9.12.2: - Fix make installation error when Perl bindings are disabled. * 2007-01-05, libprelude-0.9.12.1: - Ability to debug TLS communication through a new LIBPRELUDE_TLS_DEBUG environment variable. - Prevent binding generation error when using old SWIG version. - Generate bindings for the error handling API. - Small Perl/Python detection improvement. Fix #182. - Fix bindings compilation when using make -j. - New configure --with-perl-installdirs flags: might be used to override default site perl installation. * 2006-12-20, libprelude-0.9.12: - Correctly pack and unpack float value when sending/receiving. - More error checking on IDMEF object copy. - Fix a crash that occured when destroying a copied object. - Correct registration warning when using AF_UNIX socket. - Compile on systems lacking poll(). - IpV6 compatibility fixes. - Fix OS X compilation issues. - Various portability fixes. * 2006-10-10, libprelude-0.9.11: - Hook class comparison function. Accept NULL, equal, not equal operator. - Introduce better error checking in the idmef-class API, which is now considered public and might be used by external application. Rename error code to reflect the API. - Change to the way IDMEF listed element are handled. Specifying negative number as the position of the element from the low level API now allow to position the element at the specified (reversed) index. Using the high level API a negative index permit to address a list of element backward (replace an element). - Build fixes for SWIG > 1.3.27. - Modify idmef_value_match() so that it always unroll listed value (do it for both val1 and val2. Remove assertion, and let idmef_value_type_compare() return an error code in case there is an issue. - Handle path using IDMEF_LIST_APPEND or IDMEF_LIST_PREPEND as path using an undefined list index on idmef_path_get() call. - Make criteria parser accept (*) list index. - Implement comparison function for all IDMEF object. * 2006-07-28, libprelude-0.9.10.2: - Fix undefined assert() reference. - Fix FreeBSD warnings. - Fix possible bindings compilation warnings/problem. * 2006-07-25, libprelude-0.9.10.1: - Fix checking for swig/perl/python when full path to the application is specified. - Fix OpenBSD getaddrinfo() AI_ADDRCONFIG issue (apply to some other system as well). - Fix workaround for system with broken libtool, that prevented the use of plugin (#168). * 2006-07-12, libprelude-0.9.10: - Fix memory leak with some specific criteria. - Fix IDMEF path integrity problem when using listed (*) path. - Multiple error reporting improvement. - API improvement: implement copy and clone function for all IDMEF object. - API improvement: allow overwriting/prepending/appending list of value through IDMEF path. - API improvement: allow refcounting IDMEF Alert and Heartbeat object. - API improvement: Make idmef-value memory handling more intuitive by automating IDMEF object refcounting. * 2006-06-06, libprelude-0.9.9: - Correct IDMEF v16 checksum algorithms letter case. - Fix FreeBSD build. - Detailed, verbose error reporting when failing to read IDMEF message. - Detailed, verbose error reporting for unsupported value operation. * 2006-05-03, libprelude-0.9.8: - Improve idmef-path error reporting. - Rework configure script so that it use --with[out] in place of --(en|dis)able where we deal with external dependencies. - Rework configure script so that --with[out] work as expected (enabling and disabling the feature, explicit error if "with" feature is explicitly specified but the feature it is unavailable, etc). - Rework SNMPService class for IDMEF draft 16 compliance. - Make sure we set alert CreateTime if the caller did not do it for us. - Fix handling of \r\n terminated line. - Ignore character that are part of the option value when comparing option specified using --option=value. Fix handling of parent option. (#150). * 2006-03-24, libprelude-0.9.7.2: - Fix regression introduced in prelude-msgbuf. * 2006-03-21, libprelude-0.9.7.1: - Fix Perl/Python bindings uint64 handling on 32 bits machine. - Handle EAGAIN error from the asynchronous callback. - Better prelude-message buffer allocation scheme, which might prevent some memory fragmentation problem. * 2006-03-09, libprelude-0.9.7: - Fix an issue with system using both IP v4 and v6 interfaces which doesn't allow binding both 0.0.0.0 and :: . - Add autoconf detection for libgcrypt: this fix a build issue for distribution shipping with broken libgnutls-config script. - Generate Perl and Python bindings for the prelude-timer API. - Fix for upcoming plugin that doesn't provide an activation option. - Various bug fixes. * 2006-03-03, libprelude-0.9.6.1: - Flex generated file build fix for FreeBSD / NetBSD. * 2006-03-02, libprelude-0.9.6: - Implement workaround for buggy libtool that will fail looking up symbol with preopening enabled in case the libtool archive is missing. Lot of distribution package seem to suffer from this. - idmef-path API improvement, allow user to specify negative index to address the list in reverse. Developer are now supposed to use IDMEF_LIST_APPEND (in place of index -1) and IDMEF_LIST_PREPEND (in place of 0) on listed object operation. - idmef-path API improvement: support for (<<) and (>>) listed object index, meaning to prepend the object / to append it, as well as (*) meaning to retrieve all object from a list. This deprecate the usage of (-1) previously used for appending. - Fix deconnection problem in client reading mode. - Improve option parsing: option value can now be provided using --option=value. This format is now a requirement for option that use an optional argument. Provide arguments information in the option help. - Fix deadlock on asynchronous prelude-client destruction. - Definitely fix the problem where prelude-adduser will, on some system, listen to Ipv6 IP address as the default: we now bind every address returned by getaddrinfo(). - Fix crash in case of successive call to prelude_init(), prelude_deinit(), then prelude_init() again. - Introduce --passwd and --passwd-file option for prelude-adduser register and registration-server mode, allowing to specify one shot password on the command line, from a file, or from stdin. - Verbose error handling for prelude-adduser. - Fix perl bindings, make them more robust by adding type checking, and fix memory leak. - Fix parsing of string based broken down time criterion. - Handle configuration file containing \r. - Fix prelude_read_multiline2() return value (fix Prelude-Manager idmef-criteria-filter plugin). - Fix a bug in per thread error handling code which resulted in NULL error to be returned in case an application thread exited. - Various bug fixes. * 2006-02-06, libprelude-0.9.5: - More TLS cleanup. - Application can now report error without using specific prelude_client error reporting function. - More work and improved verbose error reporting. - Fix compilation problem with prelude_error_is_verbose() (#130). - Fix OpenBSD compilation problem. * 2006-01-30, libprelude-0.9.4: - Some useful API addition. - Much improved, verbose error reporting. - Cleaned up TLS handling, various bugfix. - In case an error occur when verifying the peer certificate, notify the peer about the failure. * 2005-01-09, libprelude-0.9.3: - Implement analyzer revocation in prelude-adduser. This will require an upcoming prelude-manager update so that revoked analyzer are denied to connect. - Make prelude-adduser use GnuTLS anonymous authentication in case SRP is not available. This is becoming a requirement since some distribution disable SRP support because of patent issue. We keep using SRP by default if both prelude-adduser instance has it. - Fix 0.9.2 regression, with a crash when providing prelude-adduser with option. - Fix potential OpenBSD compilation issue due to a missing dependencie in the GnuLib inet_ntop module. * 2005-01-06, libprelude-0.9.2: - Fix FreeBSD and OpenBSD build. - Avoid modifying the argv array, move unhandled option at the end (#116). - Handle special '--' option code. - Fix license notice, stating clearly that linking from a program using a GPL compatible license is allowed. Required for Debian package inclusion. - Various bugfix. * 2005-12-13, libprelude-0.9.1: - Take care of assigning a default CreateTime field if the caller did not already take care of it. - Workaround invalid library run path added through MakeMaker generated Makefile. - Fix Perl bindings Makefile generated with DESTDIR appended twice. - When compiling against recent GnuTLS version, don't link prelude-adduser to libgnutls-extra since, SRP symbols were moved to libgnutls. - If the user is running a modified GnuTLS version with the SRP API removed (namely, this happen on Fedora), warn the user that he should install GnuTLS from source, and that he might want to open a ticket on RedHat bug tracker about it. - Fix a problem where "MissingFunctionMacros" was reported instead of the function name on error. - Set keepalive option for the Prelude client socket. - Make option printing buffered. - Various bugfix. * 2005-09-20, libprelude-0.9.0: - 0.9.0 final. - Make Perl/Python bindings more fault tolerant. * 2005-09-15, libprelude-0.9.0-rc16: - Fix compilation issue on system where __FUNCTION__ is missing (Example: Solaris 9). - Perl bindings would fail to compile if perl was compiled using the platform (non gcc) compiler. - Fix a lot of bugs with Perl bindings. - Fix compilation failure on Solaris 9 (#99) - Fix warnings. * 2005-09-08, libprelude-0.9.0-rc15: - Fix OpenBSD compilation issue. - Fix crash when using connection pool with no failover. - Fix libprelude-error source generation issue under some locale. - Make IDMEF AdditionalData helper available from the SWIG bindings. - Filter out prelude-config.h exported definition. * 2005-08-25, libprelude-0.9.0-rc14: - Fix Python exception on NULL data. - Only use pthread when needed (Example: avoid Perl interpreter failure). * 2005-08-17, libprelude-0.9.0-rc13: - Fix compilation problem on system where ferror/clearerror are declared as macro. * 2005-08-17, libprelude-0.9.0-rc12: - Workaround for system without variadic macros. - 64 bit conversion specifier detection: fix integer truncation issue on system that did not support %llu. - Fix compilation issue on system without va_copy(). - Change connection port number (5554) to IANA reserved Prelude port number (4690). - Record full analyzer process path, as per IDMEFv14 recommandation. - More IDMEF Criteria operator. Allow case insensitive match. * 2005-08-01, libprelude-0.9.0-rc11: - Better TLS error reporting. - SWIG API usage correction for portability. - Fix crash on destroy in case no failover was created. - Fix memory issue with prelude_string_vprintf() on some platform with specific va_list handling. - prelude-adduser --gid did not lookup the group name GID correctly. * 2005-07-14, libprelude-0.9.0-rc10: - Fix a typo that could lead to 100% application CPU usage on Linux that was introduced in rc9 when using the monotonic clock. - Avoid failing if we can not lookup the path of the calling program. - Better path resolution for the calling program. - Fix compilation failure on system without pthread_atfork introduced in rc9. * 2005-07-07, libprelude-0.9.0-rc9: - Improve prelude-async and prelude-timer thread safety. Use a monotonic clock if available. Fix pthread problem due to broken behavior with fork handler on FreeBSD. - Ability for the user to set the LIBPRELUDE_LOGFILE environment variable, defining a place where all prelude log goes. - Add the prelude-adduser "chown" command, allowing to change an existing analyzer UID/GID. - Make prelude-adduser not reset the profile UID/GID when used on an existing profile (example: you are not required to specify --uid and --gid anymore for each call to registration-server). - Fix a timer assertion in case we reconnected fine, but we failed flushing the failover pool. Only flush the global failover when all connection are up. - Include missing Prelude.pm in the distributed tarball. - Introduce broken down time criteria. - GCC4 warning fixes, 64 bits warnings fix, distcheck fix on 64 bits platform using lib64. More C89 friendlyness. - Fix printing of usecond. - Various bugfix. * 2005-05-27, libprelude-0.9.0-rc8: - Avoid AI family mixup on prelude-adduser connection registration. - Fix some bug in the configuration parser. * 2005-05-26, libprelude-0.9.0-rc7: - Correct IDMEF criteria value escaping. Criteria containing single or double quote should now behave as expected. - Make it possible to unset implicitly embedded IDMEF structure. - Fix GnuLib FTW module for architecture lacking it. - Fix some memory leak. - Various bugfix. * 2005-05-18, libprelude-0.9.0-rc6: - Fix compilation problem on system lacking the FTS interface. - Fix compilation problem on some MacOSX system. - Move generation of the Prelude configuration template from sensor first launch to prelude-adduser. More intuitive to the user. - You can now use the LIBPRELUDE_DEBUG environment variable to specify a libprelude debug level. - Fix problem with prelude-adduser register/registration-server on machine where ipv6 is enabled but no interface actually use it. It happened that prelude-adduser would use an incorrect address family. - Make idmef_message_print report GMT offset. - Avoid unportable convertion specifier, this was causing issue mainly on Solaris system. - Fix handling of GMT time. Stop messing with environment variable. People who has been experiencing issue with GMT offset or time should try this release. - Fix parsing time on Solaris. This resulted in wrong database query from Prewikka. - Various bugfix * 2005-05-01, libprelude-0.9.0-rc5: - Make permission parser more tolerant. - Make prelude-adduser dump an error when permission can not be parsed. - Allow address formated using [address]:port, this is especially usefull for people on IPv6 network. - Make prelude-adduser's registration server provide a --listen option so that the user can specify where to listen for registration. - Fix a potential deadlock for sensor using asynchronous heartbeat without asynchronous message. - Map value returned by idmef_value_get_object() so that they can be accessed directly by the perl/python binding. - Add missing file->file_type IDMEFv14 field. - Various bugfix. * 2005-04-17, libprelude-0.9.0-rc4: - Fix an issue with the prelude-adduser 'add' command not creating all files needed for a Manager. Resulting in later client authentication failure. - Don't treat negative GMT offset as an error in Python bindings. - Better socklen_t datatype check. Fix compilation on NetBSD system. - Use fts in place of ftw for portability (Fix prelude-adduser on MacOSX). - Fix possible double free on recursive message read error (fragmented message). - Fix GMT offset issue on OpenBSD machine. Include compatibility code for machine that does not support setenv/unsetenv. - Fix compilation problem on system where libprelude-0.8 is installed due to the library inclusion path. - IDMEF text output beautification. * 2005-04-09, libprelude-0.9.0-rc3: - Change to the plugin infrastructure to check the API version a given plugin was compiled with. - Make analyzer deletion work on all architecture. - Fix bindings Makefile so that they can be used with BSD make. - Stop using pcreposix for IDMEF criteria matching, always rely on POSIX regex. The way pcreposix define it's symbol make it impossible to use it from a library if the final program isn't linked against libpcreposix (example: python / perl program using libprelude bindings). - Better incorrect IDMEF criteria detection. - Fix some compilation warnings. - Fix OpenBSD/MacOSX/Irix compilation. - Fix compilation on system that lack pthread_atfork(). - Correct IDMEF value operator check. - Better IDMEF criteria error return value. * 2005-03-31, libprelude-0.9.0-rc2: - Fix Python/Perl bindings linking order. Was linking to old version of the library on system where old libprelude-0.8 was installed. - Fix an issue with the Perl bindings on make clean. * 2005-03-29, libprelude-0.9.0-rc1: Note: due to several years of work and the habit of working with the new version, it is hard to remind all the enhancement made in this release. Please bear with us and try it for yourself :-) - The Prelude framework has been stabilized, and a lot of consistency work has been going on. The C API should remain mostly stable at this point, and we now offer Python and Perl bindings for interacting with Prelude. - C++ applications should now be able to compile with the library. New and powerful API like idmef-path (defining a path within an IDMEF message tree, assigning / retrieving it) and IDMEF criteria filtering has been introduced. - IDMEF draft 14 compliance. - Support for IDMEF optionnal integer in events. - A lot of work happened with the the IDWG to fix known IDMEF issue. - Message routing across distributed Manager for remote sensors administration. - The failover subsystem, used when the communication with a Prelude-Manager goes down, now support transaction and quota. - Message unique identity generation now done on the sensor side, and fully optional per IDMEF specifications. - Support Ipv6 for client/manager connectivity. - Use GnuTLS instead of OpenSSL. Authentication is now always done through TLS, and the encryption later can be dropped if the connection is local. - Usage of a single tool for sensor registration using SRP (Secure Remote Passwor protocol). - Allow multiple analyzer instance through the use of profiles. - Clean error handling. Application can now check the return value using prelude_perror(), prelude_strerror(), and prelude_strsource(). - It is now possible to remotely query and set sensors options. - Make the plugin API allow different instance of one plugin to be loaded. - Allow recursive configuration file inclusion. - You can now define filesystem quota for failover. - Changed the way AND of manager work: When using {{ manager_addr = x.x.x.x && y.y.y.y }}, the emission used to stop if emission to x.x.x.x failed. However, from a practical point of view, people who use AND of manager for redondancy want both manager to receive exactly the same messages, even if one of the Manager fail. Thus, in case emission x.x.x.x fail, we still want to emit the message to y.y.y.y, and save the failed message associating them to x.x.x.x manager, for later emission. - Heartbeat now carry a status and an interval. - Use GnuLib for enhenced portability. * 2003-12-09, libprelude-0.8.10: - Yoann Vandoorselaere : use a newer libtool version (fix an OpenBSD) problem. * 2003-12-05, libprelude-0.8.9: - Yoann Vandoorselaere : Use version-info to set library soname to something meaningful. - Yoann Vandoorselaere : Implement prelude_io_pending() function that return wether there are byte waiting to be read or not. Take care of the OpenSSL internal buffer. - Nicolas Delon : Add a new prelude-io type dedicated to socket operation. Enable checking of connection state with theses. This fix a bug where a connection breakage would only be noticed on the second alert send. - Yoann Vandoorselaere : Make sensor-adduser work if not called by root. - Yoann Vandoorselaere : Allow sensor-adduser to be called without the --uid option, but print a big warning telling that sensor added without a provided UID will have to be run using the registration UID. - Yoann Vandoorselaere : Set generated certificate to start being valid one day before of the current time. This can avoid problem in case one of the machine involved in the communication doesn't have it's time set right. - Yoann Vandoorselaere : Allow a children option to access it's parent option through a new function in the prelude-getopt API. - Yoann Vandoorselaere : Fix yet another plugin loading problem on OpenBSD. * 2003-10-21, libprelude-0.8.8: - Yoann Vandoorselaere : Work around problem with desynchronized ident that people were getting in case of machine or manager crash. - Nicolas Delon : Fix a memory leak affecting prelude-lml. - Yoann Vandoorselaere : Fix a bug that could result in linking to the wrong version of libprelude being linked when dual libprelude version were installed. - Stephane Loeuillet : README update. * 2003-09-30, libprelude-0.8.7: - Yoann Vandoorselaere Fix a crash on system without getaddrinfo(). * 2003-09-21, libprelude-0.8.6: - Yoann Vandoorselaere Re-establish post 0.8.5 behavior of defaulting to enable asynchronous timer. - Yoann Vandoorselaere Handle tool, overflow, and correlation alert. - Yoann Vandoorselaere Make the operation of gathering/executing a timer atomic. Merge part of the HEAD code and avoid locking in case asynchronous timer aren't used. - Krzysztof Zaraska Add AC_PROG_CPP so the preprocessor is detected before the OpenSSL presence test, so the OpenSSL detection works correctly. - Yoann Vandoorselaere Use pthread_join() instead of pthread_cancel(). The behavior of pthread_cancel too much depend on the architecture. - Yoann Vandoorselaere Add a --pthread-cflags option to libprelude-config in order to avoid non threaded program to compile with pthread related option which might slow down program execution due to extra locking used by libc. - Sylvain Gil Fix libprelude compilation under MacOSX. - Yoann Vandoorselaere Forbid multiline comment. (Fix #0000078). - Yoann Vandoorselaere Fix GCC strict-aliasing warning. - Yoann Vandoorselaere Provide the ability for a prelude-client to connect using both IPv4 and IPv6. Also, the prelude-client code has been reworked so that connection using UNIX and TCP socket share more code. - Yoann Vandoorselaere Implementation of the prelude_inet API providing IPv4/IPv6 lookup function, as well as their fallback if IPv6 support is not present. * 2003-04-28, libprelude-0.8.5: - Yoann Vandoorselaere Explicitly permit linking with OpenSSL so that Debian package might be distributed. - Yoann Vandoorselaere Fix AC_DATATYPE_GENERIC so that it can find valid socklen_t replacement. - Yoann Vandoorselaere Fix a possible SIGSEGV on client that doesn't use prelude-getopt. - Yoann Vandoorselaere Fix a priority problem when assigning a variable, that could lead to a SIGSEGV. - Yoann Vandoorselaere Fix compilation with OpenSSL 0.9.7. - Yoann Vandoorselaere prelude-getopt doesn't need to modify the argv array anymore. The application might want to still use it. - Yoann Vandoorselaere Fix a bug where option would not be printed if option flags was set to zero. - Yoann Vandoorselaere Fix a possible NULL strcmp that would result in a SIGSEGV for option without longname. - Yoann Vandoorselaere Fix a possible NULL pointer dereference in the Prelude configuration engine. - Yoann Vandoorselaere When starting as a deamon close stdin, stdout, and stderr. - Krzysztof Zaraska Make arbitrary length certificate work correctly, and fix a possible sensor-adduser SIGSEGV. * 2002-09-23, libprelude-0.8.4: - Correct the way we enable/disable OpenSSL support. (Yoann Vandoorselaere). - Workaround system that doesn't define socklen_t. This make libprelude compile on Solaris. (Yoann Vandoorselaere). - Fix a possible NULL free in case the manager client creation fail. (Yoann Vandoorselaere). - Fix potential signed/unsigned integer problems. (Guillaume Pelat). * 2002-09-10, libprelude-0.8.3: - Make sensor-adduser do exact compareason on sensor name, so that two sensor with the same prefix can't be confused. (Yoann Vandoorselaere). - If we're running on a big endian system, don't send uninitialized 64bits value. (Yoann Vandoorselaere). - Handle error correctly when processing option from the config file. Assorted cleanup. (Yoann Vandoorselaere) - Fix possible file descriptor leak when handling error. (Guillaume Pelat). * 2002-08-29, libprelude-0.8.2: - Correct check for OpenSSL, and profiling, so that you won't end up disabling OpenSSL with --enable-ssl=yes. (Yoann Vandoorselaere). - Fix an infinite loop when asking for SSL setup confirmation. (Sebastien Guilbaud). - Don't provide an empty string to option callback when there is no argument. (Yoann Vandoorselaere). * 2002-08-26, libprelude-0.8.1: - Act as a LIFO when subscribing a plugin, so that a plugin loading another, both subscribing from plugin_init() won't end up with undefined result (Yoann Vandoorselaere). - Delete plugin entry on plugin loading error. Fix a possible SIGSEGV. (Yoann Vandoorselaere). - Fix possible NULL pointer dereference when searching for a plugin. (Yoann Vandoorselaere). - Remove some unused function (Guillaume Pelat). - Fix possible recursive loop when asking information to the user in sensor-adduser. (Guillaume Pelat). - Free username on error when authenticating. (Guillaume Pelat). - Always nul terminate socket filename (handle case where the filename is too long). (Guillaume Pelat). libprelude-5.2.0/PaxHeaders.14770/README0000644000000000000000000000010713726163410015531 xustar000000000000000024 mtime=1599661832.486 23 atime=1599661832.72 24 ctime=1599661998.141 libprelude-5.2.0/README0000644000000000000000000001422113726163410014526 0ustar00rootroot00000000000000Prelude Library (https://www.prelude-siem.org) The Prelude Library is brought to you by CS GROUP (http://www.csgroup.eu). Prelude Library Overview ======================== The Prelude Library is used to make sensor developers' life better by providing features used by every sensor: - Manager(s) Connection management (with fallback in case all configured Managers are down, and automatic reconnection). - Interface to communicate with the Prelude Manager. - Asynchronous Message interface (allowing sensor to emit message without blocking, even if there is latency on the wire). - Asynchronous timer interface. - Generic configuration API, providing a generic abstraction for command-line, configuration file option, and wide option support. - Wide option managment allowing sensor-exported options to be directly accessible from the Manager administrative console. - Generic plugin API. Prelude Communication ===================== Prelude SIEM uses unique optimized implementation of the XML based IDMEF message format to transmit alerts between the sensors and the manager and between managers. Using IDMEF, Prelude provides a generic method for virtually any type of sensors to describe precisely the content of an alert. Dependencies ============ For Redhat based systems (CentOS, Fedora, etc.) Minimal : groupinstall "Development tools" gnutls-devel libtool-ltdl-devel Autogenerated files: swig bison flex Documentation : gtk-doc Perl Binding : perl perl-devel Python 2 Binding : python-devel Python 3 Bindings : python34-devel LUA Binding : lua lua-devel Ruby Binding : ruby ruby-devel PCRE support : pcre-devel For Debian systems Minimal : build-essential libtool autoconf gnutls-dev pkg-config Autogenerated files: swig bison flex Documentation : gtk-doc-tools libglib2.0-dev Perl Binding : perl Python 2 Binding : python-dev Python 3 Binding : python3-dev Ruby Binding : ruby ruby-dev LUA 5.1 Binding : lua5.1 liblua5.1-dev LUA 5.2 Binding : lua5.2 liblua5.2-dev PCRE support : libpcre3-dev IRC === If there's something you just can't find out elsewhere, you want to give feedback directly to the authors or you're just bored, visit #prelude on irc.freenode.net Get Support =========== Prelude-user forums can be accessed at: https://www.prelude-siem.org/projects/prelude/boards Old mailing lists can be accessed at: http://news.gmane.org/gmane.comp.security.ids.prelude.user news://news.gmane.org/gmane.comp.security.ids.prelude.user Commercial Support is available through the CS company: https://www.prelude-siem.com, contact.prelude@csgroup.eu Help development ================ 1. SUBMITTING PATCHES The Prelude source is constantly changing. If you want to submit a patch, please do so from the most recent GIT source tree, subscribe to the prelude-devel forum and post your patch with a description of functionality. You can also attach patches to bugs on https://www.prelude-siem.org 2. BUGS If you find any bugs, please report them to: https://www.prelude-siem.org Please make sure that what you're reporting is actually a BUG and not a problem on your side. 3. SUGGESTIONS Subscribe to prelude-devel and give us your suggestions. How to install the Prelude Library ================================== 1. Prelude Library installation If you don't want to build the Prelude Library yourself, you can get prebuild rpm and debian packages at https://www.prelude-siem.org. If you want to build Prelude, unpack the tarball and cd into the newly created directory. Then type : ./configure make If everything works, su to root and type: make install 2. Generic sensor installation First, all sensors get some generic configuration files, installed in: - $prefix/etc/prelude/default/idmef-client.conf [specific to sensor] - $prefix/etc/prelude/default/global.conf [used by sensor and manager] These files contain entries that *may* be shared between several sensors. If a sensor provides the same entry in its own configuration file, then the sensor will by default use its own entry. Example of a shared entry (in the default provided generic sensor configuration file) is : server-addr = 127.0.0.1:4690 || x.x.x.x; Which tells the sensor to try to connect to both 127.0.0.1:4690 and x.x.x.x:4690. If both connections work, only the first will be used, but the contrary would happen if you were to use : server-addr = 127.0.0.1:4690 && x.x.x.x; Which mean that both connections should be okay for a sensor message to be considered to be successfully sent. When linked against the Prelude Library, the sensors should be registered in order to setup the sensor for the first time. If you start a sensor without registering it, it'll print out a message like : " Profile 'prelude-lml' does not exist. In order to create it, please run: prelude-admin register "prelude-lml" "idmef:w" --uid 0 --gid 0 " Starting this program with the sensor provided arguments will start the registration procedure for this sensor. The prelude-admin program will ask you to start the prelude-admin program on the Manager host: " You now need to start "prelude-admin" on the server host where you need to register to: use: "prelude-admin registration-server " " "analyzer-name" should be substituted by the name of your Manager (prelude-manager is the default, unless you provided a customized analyzer-name option on the prelude-manager command line, or in its configuration file). The manager host prelude-admin program will provide you a randomly generated password to be used when sensor side prelude-admin requests it. The prelude-admin program will then ask you several questions, and it will connect to the manager prelude-admin program. If authentication is okay, the sensors and the Manager will be able to exchange their certificates. libprelude-5.2.0/PaxHeaders.14770/AUTHORS0000644000000000000000000000011013726163410015713 xustar000000000000000024 mtime=1599661832.484 24 atime=1599661832.719 24 ctime=1599661998.142 libprelude-5.2.0/AUTHORS0000644000000000000000000000025413726163410014717 0ustar00rootroot00000000000000The Prelude Library is brought to you by CS GROUP (http://www.csgroup.eu). Original authors - Yoann VANDOORSELAERE - Nicolas DELON - Sebastien TRICAUD - Krzysztof ZARASKA libprelude-5.2.0/PaxHeaders.14770/ChangeLog0000644000000000000000000000011013726163666016432 xustar000000000000000024 mtime=1599662006.637 24 atime=1599662000.973 24 ctime=1599662006.641 libprelude-5.2.0/ChangeLog0000644000000000000000000760674313726163666015464 0ustar00rootroot00000000000000# Generated by Makefile. Do not edit. commit 9b9756c32ff90b4791db453344cbf089940206c6 Author: Antoine LUONG Date: Wed Sep 9 13:11:05 2020 +0200 Update NEWS, bump version Change-Id: I80f4d9fc6ad65b740b62827e747006b1c788e84f NEWS | 8 ++++++++ configure.ac | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit cd2d20e2b7bc988638b599474aaa4bf9de35b3b9 Author: Antoine LUONG Date: Thu Jul 30 19:55:16 2020 +0200 [#4084] Change company name Change-Id: I1f717d7ed653bd48ba6ffa3089be7e7543a07a63 AUTHORS | 4 ++-- HACKING.README | 4 ++-- LICENSE.README | 2 +- README | 4 ++-- bindings/c++/idmef-class.cxx | 2 +- bindings/c++/idmef-criteria.cxx | 2 +- bindings/c++/idmef-path.cxx | 2 +- bindings/c++/idmef-time.cxx | 2 +- bindings/c++/idmef-value.cxx | 2 +- bindings/c++/idmef.cxx | 2 +- bindings/c++/include/idmef-class.hxx | 2 +- bindings/c++/include/idmef-criteria.hxx | 2 +- bindings/c++/include/idmef-path.hxx | 2 +- bindings/c++/include/idmef-time.hxx | 2 +- bindings/c++/include/idmef-value.hxx | 2 +- bindings/c++/include/idmef.hxx | 2 +- bindings/c++/include/prelude-client-easy.hxx | 2 +- bindings/c++/include/prelude-client-profile.hxx | 2 +- bindings/c++/include/prelude-client.hxx | 2 +- bindings/c++/include/prelude-connection-pool.hxx | 2 +- bindings/c++/include/prelude-connection.hxx | 2 +- bindings/c++/include/prelude-error.hxx | 2 +- bindings/c++/include/prelude-log.hxx | 2 +- bindings/c++/include/prelude.hxx | 2 +- bindings/c++/prelude-client-easy.cxx | 2 +- bindings/c++/prelude-client-profile.cxx | 2 +- bindings/c++/prelude-client.cxx | 2 +- bindings/c++/prelude-connection-pool.cxx | 2 +- bindings/c++/prelude-connection.cxx | 2 +- bindings/c++/prelude-error.cxx | 2 +- bindings/c++/prelude-log.cxx | 2 +- bindings/c++/prelude.cxx | 2 +- bindings/libpreludecpp.i | 2 +- bindings/lua/libpreludecpp-lua.i | 2 +- bindings/perl/Makefile.PL.in | 2 +- bindings/perl/libpreludecpp-perl.i | 2 +- bindings/python/libpreludecpp-python.i | 2 +- bindings/python/setup.py.in | 4 ++-- bindings/ruby/libpreludecpp-ruby.i | 2 +- docs/manpages/libprelude-config.1 | 2 +- prelude-admin/prelude-admin.c | 2 +- prelude-admin/server.c | 2 +- prelude-admin/server.h | 2 +- prelude-admin/tls-register.c | 2 +- prelude-admin/tls-register.h | 2 +- src/common.c | 2 +- src/config-engine.c | 2 +- src/daemonize.c | 2 +- src/idmef-additional-data.c | 2 +- src/idmef-class.c | 2 +- src/idmef-criteria-string.lex.c | 2 +- src/idmef-criteria-string.lex.l | 2 +- src/idmef-criteria-string.yac.y | 2 +- src/idmef-criteria.c | 2 +- src/idmef-criterion-value.c | 2 +- src/idmef-data.c | 2 +- src/idmef-message-helpers.c | 2 +- src/idmef-message-print-json.c | 2 +- src/idmef-message-print.c | 2 +- src/idmef-message-read-json.c | 2 +- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-object.c | 2 +- src/idmef-path.c | 2 +- src/idmef-time.c | 2 +- src/idmef-tree-wrap.c | 2 +- src/idmef-value-type.c | 2 +- src/idmef-value.c | 2 +- src/idmef-wrappers-gen/Generate.pm | 2 +- src/idmef-wrappers-gen/GenerateDebug.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintJSONC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintJSONH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadJSONC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapHxx.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFValueClassSwigMapping.pm | 4 ++-- src/idmef-wrappers-gen/IDMEFTree.pm | 2 +- src/idmef-wrappers-gen/generator.pl | 2 +- src/idmef-wrappers-gen/idmef-tree.h | 2 +- src/include/common.h | 2 +- src/include/config-engine.h | 2 +- src/include/daemonize.h | 2 +- src/include/idmef-additional-data.h | 2 +- src/include/idmef-class.h | 2 +- src/include/idmef-criteria.h | 2 +- src/include/idmef-criterion-value.h | 2 +- src/include/idmef-data.h | 2 +- src/include/idmef-message-helpers.h | 2 +- src/include/idmef-message-print-json.h | 2 +- src/include/idmef-message-print.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-object-prv.h | 2 +- src/include/idmef-object.h | 2 +- src/include/idmef-path.h | 2 +- src/include/idmef-time.h | 2 +- src/include/idmef-tree-wrap.h | 2 +- src/include/idmef-value-type.h | 2 +- src/include/idmef-value.h | 2 +- src/include/idmef.h | 2 +- src/include/libmissing.h | 2 +- src/include/prelude-async.h | 2 +- src/include/prelude-client-profile.h | 2 +- src/include/prelude-client.h | 2 +- src/include/prelude-connection-pool.h | 2 +- src/include/prelude-connection.h | 2 +- src/include/prelude-extract.h | 2 +- src/include/prelude-failover.h | 2 +- src/include/prelude-hash.h | 2 +- src/include/prelude-ident.h | 2 +- src/include/prelude-inttypes.h.in | 2 +- src/include/prelude-io.h | 2 +- src/include/prelude-linked-object.h | 2 +- src/include/prelude-list.h | 2 +- src/include/prelude-log.h | 2 +- src/include/prelude-macros.h | 2 +- src/include/prelude-message-id.h | 2 +- src/include/prelude-msg.h | 2 +- src/include/prelude-msgbuf.h | 2 +- src/include/prelude-option-wide.h | 2 +- src/include/prelude-option.h | 2 +- src/include/prelude-plugin.h | 2 +- src/include/prelude-string.h | 2 +- src/include/prelude-thread.h | 2 +- src/include/prelude-timer.h | 2 +- src/include/prelude.h.in | 2 +- src/include/tls-auth.h | 2 +- src/include/tls-util.h | 2 +- src/include/variable.h | 2 +- src/libprelude-error/prelude-error.h.in | 2 +- src/prelude-async.c | 2 +- src/prelude-client-profile.c | 2 +- src/prelude-client.c | 2 +- src/prelude-connection-pool.c | 2 +- src/prelude-connection.c | 2 +- src/prelude-failover.c | 2 +- src/prelude-hash.c | 2 +- src/prelude-ident.c | 2 +- src/prelude-io.c | 2 +- src/prelude-log.c | 2 +- src/prelude-msg.c | 2 +- src/prelude-msgbuf.c | 2 +- src/prelude-option-wide.c | 2 +- src/prelude-option.c | 2 +- src/prelude-plugin.c | 2 +- src/prelude-string.c | 2 +- src/prelude-thread.c | 2 +- src/prelude-timer.c | 2 +- src/prelude.c | 2 +- src/tls-auth.c | 2 +- src/tls-util.c | 2 +- src/variable.c | 2 +- 161 files changed, 178 insertions(+), 178 deletions(-) commit 64d908beb32e87a22e737e73c60386aa61f185b8 Author: Antoine LUONG Date: Thu Jul 23 15:05:40 2020 +0200 Update NEWS, bump version Change-Id: Id95686f0602f750a44b62db00639fe529c6e0b4b NEWS | 6 ++++++ configure.ac | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit a771c9b66b59391b723d351ffa249b419e11cdab Author: Antoine LUONG Date: Tue Jun 30 16:50:16 2020 +0200 Update NEWS, bump version Change-Id: Ie498559ed52b7ea66aeeee9a686f6380b7ddc277 NEWS | 8 ++++++++ configure.ac | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) commit c061e5e617261c198ff52bc17bfb6c6bb242115b Author: Yoann Vandoorselaere Date: Sun Jun 14 13:46:44 2020 +0700 [#3655] Proper escaping of substr/regex criterion Change-Id: I86f504115b177ca555ef23878ed46e06262385bc src/idmef-criteria-string.yac.c | 737 +++++++++++++++++++++++----------------- src/idmef-criteria-string.yac.h | 15 +- src/idmef-criteria-string.yac.y | 2 +- 3 files changed, 427 insertions(+), 327 deletions(-) commit dfaa9b147198bc72ccfdd86ddc6118178837f812 Author: Antoine LUONG Date: Fri Jun 19 18:08:22 2020 +0200 Update NEWS, bump version Change-Id: Idb21651876d57e091a68883597fef94d94a2416a NEWS | 39 +++++++++++++++++++++++++++++++++++++++ configure.ac | 14 +++++++------- 2 files changed, 46 insertions(+), 7 deletions(-) commit 55f478f4ae5aa8b30372e7a0e3cf20ebe52df889 Author: Antoine LUONG Date: Mon May 25 18:12:27 2020 +0200 [#4025] Switch to LGPL Change-Id: I97330efbead278fc4c0301283e0a171777c34ecf COPYING | 657 +++++++++++++-------- LICENSE.README | 4 +- bindings/c++/idmef-class.cxx | 8 +- bindings/c++/idmef-criteria.cxx | 8 +- bindings/c++/idmef-path.cxx | 8 +- bindings/c++/idmef-time.cxx | 8 +- bindings/c++/idmef-value.cxx | 8 +- bindings/c++/idmef.cxx | 8 +- bindings/c++/include/idmef-class.hxx | 8 +- bindings/c++/include/idmef-criteria.hxx | 8 +- bindings/c++/include/idmef-path.hxx | 8 +- bindings/c++/include/idmef-time.hxx | 8 +- bindings/c++/include/idmef-value.hxx | 8 +- bindings/c++/include/idmef.hxx | 8 +- bindings/c++/include/prelude-client-easy.hxx | 8 +- bindings/c++/include/prelude-client-profile.hxx | 8 +- bindings/c++/include/prelude-client.hxx | 8 +- bindings/c++/include/prelude-connection-pool.hxx | 8 +- bindings/c++/include/prelude-connection.hxx | 8 +- bindings/c++/include/prelude-error.hxx | 8 +- bindings/c++/include/prelude-log.hxx | 8 +- bindings/c++/include/prelude.hxx | 8 +- bindings/c++/prelude-client-easy.cxx | 8 +- bindings/c++/prelude-client-profile.cxx | 8 +- bindings/c++/prelude-client.cxx | 8 +- bindings/c++/prelude-connection-pool.cxx | 8 +- bindings/c++/prelude-connection.cxx | 8 +- bindings/c++/prelude-error.cxx | 8 +- bindings/c++/prelude-log.cxx | 8 +- bindings/c++/prelude.cxx | 8 +- bindings/libpreludecpp.i | 8 +- bindings/lua/libpreludecpp-lua.i | 8 +- bindings/perl/Makefile.PL.in | 8 +- bindings/perl/libpreludecpp-perl.i | 8 +- bindings/python/libpreludecpp-python.i | 8 +- bindings/python/setup.py.in | 10 +- bindings/ruby/libpreludecpp-ruby.i | 8 +- prelude-admin/prelude-admin.c | 8 +- prelude-admin/server.c | 8 +- prelude-admin/server.h | 8 +- prelude-admin/tls-register.c | 8 +- prelude-admin/tls-register.h | 8 +- src/common.c | 8 +- src/config-engine.c | 8 +- src/daemonize.c | 8 +- src/idmef-additional-data.c | 8 +- src/idmef-class.c | 8 +- src/idmef-criteria-string.lex.c | 8 +- src/idmef-criteria-string.lex.l | 8 +- src/idmef-criteria-string.yac.y | 8 +- src/idmef-criteria.c | 8 +- src/idmef-criterion-value.c | 8 +- src/idmef-data.c | 8 +- src/idmef-message-helpers.c | 8 +- src/idmef-message-print-json.c | 8 +- src/idmef-message-print.c | 8 +- src/idmef-message-read-json.c | 8 +- src/idmef-message-read.c | 8 +- src/idmef-message-write.c | 8 +- src/idmef-object.c | 8 +- src/idmef-path.c | 8 +- src/idmef-time.c | 8 +- src/idmef-tree-wrap.c | 8 +- src/idmef-value-type.c | 8 +- src/idmef-value.c | 8 +- src/idmef-wrappers-gen/Generate.pm | 8 +- src/idmef-wrappers-gen/GenerateDebug.pm | 8 +- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 8 +- .../GenerateIDMEFMessagePrintC.pm | 16 +- .../GenerateIDMEFMessagePrintH.pm | 16 +- .../GenerateIDMEFMessagePrintJSONC.pm | 16 +- .../GenerateIDMEFMessagePrintJSONH.pm | 16 +- .../GenerateIDMEFMessageReadC.pm | 16 +- .../GenerateIDMEFMessageReadH.pm | 16 +- .../GenerateIDMEFMessageReadJSONC.pm | 16 +- .../GenerateIDMEFMessageWriteC.pm | 16 +- .../GenerateIDMEFMessageWriteH.pm | 16 +- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 8 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 16 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 16 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapHxx.pm | 16 +- .../GenerateIDMEFValueClassSwigMapping.pm | 16 +- src/idmef-wrappers-gen/IDMEFTree.pm | 8 +- src/idmef-wrappers-gen/generator.pl | 8 +- src/idmef-wrappers-gen/idmef-tree.h | 8 +- src/include/common.h | 8 +- src/include/config-engine.h | 8 +- src/include/daemonize.h | 8 +- src/include/idmef-additional-data.h | 8 +- src/include/idmef-class.h | 8 +- src/include/idmef-criteria.h | 8 +- src/include/idmef-criterion-value.h | 8 +- src/include/idmef-data.h | 8 +- src/include/idmef-message-helpers.h | 8 +- src/include/idmef-message-print-json.h | 8 +- src/include/idmef-message-print.h | 8 +- src/include/idmef-message-read.h | 8 +- src/include/idmef-message-write.h | 8 +- src/include/idmef-object-prv.h | 8 +- src/include/idmef-object.h | 8 +- src/include/idmef-path.h | 8 +- src/include/idmef-time.h | 8 +- src/include/idmef-tree-wrap.h | 8 +- src/include/idmef-value-type.h | 8 +- src/include/idmef-value.h | 8 +- src/include/idmef.h | 8 +- src/include/libmissing.h | 8 +- src/include/prelude-async.h | 8 +- src/include/prelude-client-profile.h | 8 +- src/include/prelude-client.h | 8 +- src/include/prelude-connection-pool.h | 8 +- src/include/prelude-connection.h | 8 +- src/include/prelude-extract.h | 8 +- src/include/prelude-failover.h | 8 +- src/include/prelude-hash.h | 8 +- src/include/prelude-ident.h | 8 +- src/include/prelude-inttypes.h.in | 8 +- src/include/prelude-io.h | 8 +- src/include/prelude-linked-object.h | 8 +- src/include/prelude-list.h | 8 +- src/include/prelude-log.h | 8 +- src/include/prelude-macros.h | 8 +- src/include/prelude-message-id.h | 8 +- src/include/prelude-msg.h | 8 +- src/include/prelude-msgbuf.h | 8 +- src/include/prelude-option-wide.h | 8 +- src/include/prelude-option.h | 8 +- src/include/prelude-plugin.h | 8 +- src/include/prelude-string.h | 8 +- src/include/prelude-thread.h | 8 +- src/include/prelude-timer.h | 8 +- src/include/prelude.h.in | 8 +- src/include/tls-auth.h | 8 +- src/include/tls-util.h | 8 +- src/include/variable.h | 8 +- src/libprelude-error/prelude-error.h.in | 8 +- src/prelude-async.c | 8 +- src/prelude-client-profile.c | 8 +- src/prelude-client.c | 8 +- src/prelude-connection-pool.c | 8 +- src/prelude-connection.c | 8 +- src/prelude-failover.c | 8 +- src/prelude-hash.c | 8 +- src/prelude-ident.c | 8 +- src/prelude-io.c | 8 +- src/prelude-log.c | 8 +- src/prelude-msg.c | 8 +- src/prelude-msgbuf.c | 8 +- src/prelude-option-wide.c | 8 +- src/prelude-option.c | 8 +- src/prelude-plugin.c | 8 +- src/prelude-string.c | 8 +- src/prelude-thread.c | 8 +- src/prelude-timer.c | 8 +- src/prelude.c | 8 +- src/tls-auth.c | 8 +- src/tls-util.c | 8 +- src/variable.c | 8 +- 158 files changed, 1089 insertions(+), 926 deletions(-) commit c4f527b431262c4d98610a91bb22aeed9f43a57f Author: Yoann Vandoorselaere Date: Tue Jan 14 17:08:17 2020 +0700 [#rel3881] Implement prelude_msg_clone() Change-Id: Iec7861e449ec2405a33e5a970267e0ad8840f4b0 src/include/prelude-msg.h | 2 ++ src/prelude-msg.c | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) commit 88b81427542d83d9d67d1e5deaa01ee595616594 Author: Yoann Vandoorselaere Date: Wed Feb 19 14:39:57 2020 +0700 [#rel3881] Properly check for EINTR Change-Id: I73ba36d2939a27c539ad9146e6d9ef595579a03e src/prelude-failover.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c7cc37a752b2a586cc28196db9b8aa78d2cd5776 Author: Antoine LUONG Date: Wed Jan 15 12:07:34 2020 +0100 [#rel3743] Fix PCRE configure check Change-Id: I0bf94386b1c09924457db1043e60c9c5841b801a configure.ac | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 955d923b2002ad73df53e288251ad0277acc7793 Author: Francois POIROTTE Date: Wed Jan 8 10:54:32 2020 +0100 [#3874] Remove superfluous brackets in AC_INIT Change-Id: I8176f8c71ebb315b39338a58215b2ed75dbedef4 configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fb6d2ece06c62c65f3037b0b650904366af4e89b Author: Yoann Vandoorselaere Date: Sun Dec 15 11:51:38 2019 +0700 [#3871] Update libprelude-error for GAWK 5.0 Backport latest libgpg-error changes Change-Id: I800bf1e09462e6dfffec8e8f2a5e3edfd149432d src/libprelude-error/Makefile.am | 2 +- src/libprelude-error/mkerrcodes.awk | 2 +- src/libprelude-error/mkerrcodes1.awk | 2 +- src/libprelude-error/mkerrcodes2.awk | 2 +- src/libprelude-error/mkerrnos.awk | 2 +- src/libprelude-error/mkstrtable.awk | 10 +++++----- 6 files changed, 10 insertions(+), 10 deletions(-) commit 568af1378ef61069c2036d94fb0ea2d5343526a0 Author: Yoann Vandoorselaere Date: Fri Nov 15 12:23:40 2019 +0700 [#3884] Fix for system that does not implement PATH_MAX Change-Id: Id99d2ec14f577e37badb8cc520304c5e23fa9b78 src/include/libmissing.h | 7 +++++++ 1 file changed, 7 insertions(+) commit 9f26d89f0b237115ce5e65819435098ff173e4a0 Author: Antoine LUONG Date: Wed Jan 15 12:04:47 2020 +0100 [#3878] Copyright year update Change-Id: I3efbec4a59c7a198a8eb2a77b41a9b11e167b615 LICENSE.README | 2 +- bindings/c++/idmef-class.cxx | 2 +- bindings/c++/idmef-criteria.cxx | 2 +- bindings/c++/idmef-path.cxx | 2 +- bindings/c++/idmef-time.cxx | 2 +- bindings/c++/idmef-value.cxx | 2 +- bindings/c++/idmef.cxx | 2 +- bindings/c++/include/idmef-class.hxx | 2 +- bindings/c++/include/idmef-criteria.hxx | 2 +- bindings/c++/include/idmef-path.hxx | 2 +- bindings/c++/include/idmef-time.hxx | 2 +- bindings/c++/include/idmef-value.hxx | 2 +- bindings/c++/include/idmef.hxx | 2 +- bindings/c++/include/prelude-client-easy.hxx | 2 +- bindings/c++/include/prelude-client-profile.hxx | 2 +- bindings/c++/include/prelude-client.hxx | 2 +- bindings/c++/include/prelude-connection-pool.hxx | 2 +- bindings/c++/include/prelude-connection.hxx | 2 +- bindings/c++/include/prelude-error.hxx | 2 +- bindings/c++/include/prelude-log.hxx | 2 +- bindings/c++/include/prelude.hxx | 2 +- bindings/c++/prelude-client-easy.cxx | 2 +- bindings/c++/prelude-client-profile.cxx | 2 +- bindings/c++/prelude-client.cxx | 2 +- bindings/c++/prelude-connection-pool.cxx | 2 +- bindings/c++/prelude-connection.cxx | 2 +- bindings/c++/prelude-error.cxx | 2 +- bindings/c++/prelude-log.cxx | 2 +- bindings/c++/prelude.cxx | 2 +- bindings/libpreludecpp.i | 2 +- bindings/lua/libpreludecpp-lua.i | 2 +- bindings/perl/Makefile.PL.in | 2 +- bindings/perl/libpreludecpp-perl.i | 2 +- bindings/python/libpreludecpp-python.i | 2 +- bindings/python/setup.py.in | 2 +- bindings/ruby/libpreludecpp-ruby.i | 2 +- prelude-admin/prelude-admin.c | 2 +- prelude-admin/server.c | 2 +- prelude-admin/server.h | 2 +- prelude-admin/tls-register.c | 2 +- prelude-admin/tls-register.h | 2 +- src/common.c | 2 +- src/config-engine.c | 2 +- src/daemonize.c | 2 +- src/idmef-additional-data.c | 2 +- src/idmef-class.c | 2 +- src/idmef-criteria-string.lex.c | 2 +- src/idmef-criteria-string.lex.l | 2 +- src/idmef-criteria-string.yac.y | 2 +- src/idmef-criteria.c | 2 +- src/idmef-criterion-value.c | 2 +- src/idmef-data.c | 2 +- src/idmef-message-helpers.c | 2 +- src/idmef-message-print-json.c | 2 +- src/idmef-message-print.c | 2 +- src/idmef-message-read-json.c | 2 +- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-object.c | 2 +- src/idmef-path.c | 2 +- src/idmef-time.c | 2 +- src/idmef-tree-wrap.c | 2 +- src/idmef-value-type.c | 2 +- src/idmef-value.c | 2 +- src/idmef-wrappers-gen/Generate.pm | 2 +- src/idmef-wrappers-gen/GenerateDebug.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintJSONC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintJSONH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadJSONC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapHxx.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFValueClassSwigMapping.pm | 4 ++-- src/idmef-wrappers-gen/IDMEFTree.pm | 2 +- src/idmef-wrappers-gen/generator.pl | 2 +- src/idmef-wrappers-gen/idmef-tree.h | 2 +- src/include/common.h | 2 +- src/include/config-engine.h | 2 +- src/include/daemonize.h | 2 +- src/include/idmef-additional-data.h | 2 +- src/include/idmef-class.h | 2 +- src/include/idmef-criteria.h | 2 +- src/include/idmef-criterion-value.h | 2 +- src/include/idmef-data.h | 2 +- src/include/idmef-message-helpers.h | 2 +- src/include/idmef-message-print-json.h | 2 +- src/include/idmef-message-print.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-object-prv.h | 2 +- src/include/idmef-object.h | 2 +- src/include/idmef-path.h | 2 +- src/include/idmef-time.h | 2 +- src/include/idmef-tree-wrap.h | 2 +- src/include/idmef-value-type.h | 2 +- src/include/idmef-value.h | 2 +- src/include/idmef.h | 2 +- src/include/libmissing.h | 2 +- src/include/prelude-async.h | 2 +- src/include/prelude-client-profile.h | 2 +- src/include/prelude-client.h | 2 +- src/include/prelude-connection-pool.h | 2 +- src/include/prelude-connection.h | 2 +- src/include/prelude-extract.h | 2 +- src/include/prelude-failover.h | 2 +- src/include/prelude-hash.h | 2 +- src/include/prelude-ident.h | 2 +- src/include/prelude-inttypes.h.in | 2 +- src/include/prelude-io.h | 2 +- src/include/prelude-linked-object.h | 2 +- src/include/prelude-list.h | 2 +- src/include/prelude-log.h | 2 +- src/include/prelude-macros.h | 2 +- src/include/prelude-message-id.h | 2 +- src/include/prelude-msg.h | 2 +- src/include/prelude-msgbuf.h | 2 +- src/include/prelude-option-wide.h | 2 +- src/include/prelude-option.h | 2 +- src/include/prelude-plugin.h | 2 +- src/include/prelude-string.h | 2 +- src/include/prelude-thread.h | 2 +- src/include/prelude-timer.h | 2 +- src/include/prelude.h.in | 2 +- src/include/tls-auth.h | 2 +- src/include/tls-util.h | 2 +- src/include/variable.h | 2 +- src/libprelude-error/prelude-error.h.in | 2 +- src/prelude-async.c | 2 +- src/prelude-client-profile.c | 2 +- src/prelude-client.c | 2 +- src/prelude-connection-pool.c | 2 +- src/prelude-connection.c | 2 +- src/prelude-failover.c | 2 +- src/prelude-hash.c | 2 +- src/prelude-ident.c | 2 +- src/prelude-io.c | 2 +- src/prelude-log.c | 2 +- src/prelude-msg.c | 2 +- src/prelude-msgbuf.c | 2 +- src/prelude-option-wide.c | 2 +- src/prelude-option.c | 2 +- src/prelude-plugin.c | 2 +- src/prelude-string.c | 2 +- src/prelude-thread.c | 2 +- src/prelude-timer.c | 2 +- src/prelude.c | 2 +- src/tls-auth.c | 2 +- src/tls-util.c | 2 +- src/variable.c | 2 +- 157 files changed, 170 insertions(+), 170 deletions(-) commit 6d12bb29b4db8427bc6c52be700e44226c022675 Author: Yoann Vandoorselaere Date: Wed Oct 23 13:08:24 2019 +0700 [#rel3743] PCRE regex fixes Change-Id: If7e66e160ae45755e69c42a00a1ef67b6a1dfe74 src/idmef-criterion-value.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) commit b0a48e160040cde9e7d5da060ec1e1e805e96516 Author: Yoann Vandoorselaere Date: Wed Oct 23 12:57:15 2019 +0700 [#rel3743] Fix substring unit tests Change-Id: Ie60848c13b783ec8ea24a66762f7a9d156686756 tests/idmef-criteria.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6b60ffbefa70ac8ca7837b2e62c583b4671612aa Author: Antoine LUONG Date: Tue Oct 15 14:21:34 2019 +0200 [#3809] Add Python 3.7/3.8 support Change-Id: Icd1b9dc05ac987f06b4e55b1ca42e4cc0d411139 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6979eb05d00a26e0b341f4718ac7ab455e763053 Author: Antoine LUONG Date: Fri Oct 18 12:01:02 2019 +0200 [#3809] Update to SWIG 4.0.1 Change-Id: I745928c5ff30f5a5a3c9f0628a5cc4f4aa204f44 bindings/lua/prelude.cxx | 194 ++++++++++++---------- bindings/perl/Prelude.cxx | 384 ++++++++++++++++++++++--------------------- bindings/perl/Prelude.pm | 2 +- bindings/python/_prelude.cxx | 18 +- bindings/python/prelude.py | 35 +--- bindings/ruby/Prelude.cxx | 252 ++++++++++++---------------- 6 files changed, 425 insertions(+), 460 deletions(-) commit c2e69b44046fcc8056f7bbc7a60a2e573d5877ef Author: Yoann Vandoorselaere Date: Fri Oct 4 16:00:48 2019 +0700 [#rel3655] Raw string support Change-Id: Ie6f42e2ac2c5ed607e0d30fb020f636011238485 src/idmef-criteria-string.lex.c | 375 +++++++++++++++++++-------------- src/idmef-criteria-string.lex.l | 20 ++ src/idmef-criteria-string.yac.c | 447 ++++++++++++++++++++++------------------ src/idmef-criteria-string.yac.h | 92 +++++---- src/idmef-criteria-string.yac.y | 22 +- 5 files changed, 546 insertions(+), 410 deletions(-) commit 59d64e7fc8786644bff2819b89e72ac4af3142b2 Author: Antoine LUONG Date: Mon Oct 14 19:04:12 2019 +0200 [#3828] Fix LIBPRELUDECPP_SONAME The commit a17a3152390695a1d8cfb839ad87c75ad5de7b02 introduced an ABI-breaking change. Change-Id: Ib68189771fdc86d0cf494226b2d342d787b8ac0e configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 779694c7f2c3f771875fa7eccb938d6a39068c6d Author: Yoann Vandoorselaere Date: Thu Oct 3 15:59:55 2019 +0700 [#2570] Fix regexp comparison with NULL idmef value Change-Id: I12b4417530ce7cde9dc0eddba03d30e1d7677ad1 src/idmef-criterion-value.c | 3 +++ 1 file changed, 3 insertions(+) commit 4f206c22689495d8f6057f5d92f535f056ac7434 Author: Yoann Vandoorselaere Date: Thu Sep 5 09:50:32 2019 +0200 [#3655] Proper escaping of IDMEF Criteria Change-Id: I6e9bf15026b8d1cde5f1b6c21655630833d11c4c src/common.c | 129 +++ src/idmef-criteria-string.lex.c | 875 +++++++++++++-------- src/idmef-criteria-string.lex.l | 28 +- src/idmef-criteria-string.yac.c | 271 ++++--- src/idmef-criteria-string.yac.h | 8 +- src/idmef-criteria-string.yac.y | 88 ++- src/idmef-message-read-json.c | 100 +-- .../GenerateIDMEFMessageReadJSONC.pm | 100 +-- src/include/common.h | 3 + 9 files changed, 955 insertions(+), 647 deletions(-) commit d743bf98f1191693f0d476bb8cefc68af69a2c1a Author: Yoann Vandoorselaere Date: Thu Sep 12 10:04:39 2019 +0200 [#rel3743] Use PCRE when available for criteria matching Change-Id: I0128a59b7dcce810547955b78dde114a081fc8ea README | 2 ++ configure.ac | 20 ++++++++++++++++++++ src/idmef-criterion-value.c | 30 ++++++++++++++++++++++++++---- 3 files changed, 48 insertions(+), 4 deletions(-) commit 49985096d0770e67c0ab7dfc9b11179d353f19f1 Author: Yoann Vandoorselaere Date: Thu Sep 12 09:49:45 2019 +0200 [#3743] Substring match is now handled using fnmatch This make it much more comparable to the database substring matching, with the ability to use wildcard and interrogation mark in query. Change-Id: I80402543a17c2240fe694922f0e9c27d1eae14b9 src/idmef-value-type.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 8964b35d640537c0bafad1d88cc43fc5fa9129fa Author: Yoann Vandoorselaere Date: Tue Oct 2 11:48:37 2018 +0800 [#rel1888] Prefix Flex/Yacc public symbol Prevent potential compilation error due to conflicting symbols when linking other library using flex. Change-Id: Ie9fe07a34285f5e9fd01a4e0608466899e637cea src/Makefile.am | 2 +- src/idmef-criteria-string.lex.c | 503 +++++++++++++++++++++------------------- src/idmef-criteria-string.lex.l | 11 +- src/idmef-criteria-string.yac.c | 171 +++++++------- src/idmef-criteria-string.yac.h | 44 ++-- src/idmef-criteria-string.yac.y | 16 +- 6 files changed, 395 insertions(+), 352 deletions(-) commit 547dfcf0d20fb156fbc0604a5bea8f3e57cac624 Author: Antoine LUONG Date: Fri Sep 13 09:23:21 2019 +0200 Update NEWS, bump version Change-Id: I0e1d26f92abfb032f4f3f28325e6ba4ec99fed6b NEWS | 1 + configure.ac | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) commit 3625f79a08d82f3896a52c0c436f0a8f9d4e834c Author: Antoine LUONG Date: Wed Sep 4 15:54:59 2019 +0200 Update NEWS, bump version Change-Id: I5da69882b107ac07ac6f6a0a84346e57a9076aaf NEWS | 6 ++++++ configure.ac | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit d2446b50396518fa7f1a1add05c3e99dabdd83e2 Author: Antoine LUONG Date: Fri Aug 16 18:06:34 2019 +0200 Update NEWS, bump version Change-Id: Ia19a1edf7f247c12c4bdbbcf0f952bcf73684888 NEWS | 10 ++++++++++ configure.ac | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) commit 417f8e1d058f7f4c48b87649e037593ad5d76f87 Author: Yoann Vandoorselaere Date: Thu Aug 1 12:13:58 2019 +0200 [#3723] Update to SWIG 4 Change-Id: I3d41563791f0879134040beeec7cb779eef5402a bindings/perl/Prelude.pm | 2 +- bindings/python/_prelude.cxx | 2713 ++++++++++++++------------------ bindings/python/libpreludecpp-python.i | 2 +- bindings/python/prelude.py | 99 +- 4 files changed, 1259 insertions(+), 1557 deletions(-) commit 98ed6a7a420f66d653699503d1e7ce68feb407a8 Author: Yoann Vandoorselaere Date: Wed Jun 26 14:45:03 2019 +0200 [#3647] Pull update from SWIG repository: fix possible crash on invalid unicode string Change-Id: Ic2f327421d863fd4d9d20821021388846b27c8d3 bindings/python/_prelude.cxx | 64 ++++++++++++++++++----------------------- bindings/python/pystrings.swg | 66 ++++++++++++++++++------------------------- 2 files changed, 55 insertions(+), 75 deletions(-) commit 183b37c170e5bb3aac72ebcea6c2ffd5a2d696a4 Author: Antoine LUONG Date: Wed Jul 17 17:13:50 2019 +0200 Update NEWS, bump version Change-Id: Ieeef9643c6f0cf5816997e0c5570ebf020b84e4a NEWS | 12 ++++++++++++ configure.ac | 8 ++++---- 2 files changed, 16 insertions(+), 4 deletions(-) commit 1dab63ef553fb8b8a91d5972e620e2f53872eec7 Author: Yoann Vandoorselaere Date: Wed Jun 26 14:44:09 2019 +0200 [#3647] Fix various JSON parser errors Change-Id: I242a3407201e0f23beb137ac3dafbb4e88a24cb0 src/idmef-message-read-json.c | 235 ++++++++++++--------- .../GenerateIDMEFMessageReadJSONC.pm | 65 ++++-- 2 files changed, 177 insertions(+), 123 deletions(-) commit a17a3152390695a1d8cfb839ad87c75ad5de7b02 Author: Yoann Vandoorselaere Date: Mon Jun 10 10:41:36 2019 +0800 [#rel3614] Add optional IDMEFPath argument to IDMEFValue() constructor Change-Id: Ia407e59927c95424405ccb7db23e3fb999390909 bindings/c++/idmef-value.cxx | 27 ++++- bindings/c++/include/idmef-value.hxx | 5 +- bindings/lua/prelude.cxx | 123 +++++++++++++++++++++-- bindings/perl/Prelude.cxx | 184 ++++++++++++++++++++++++++++++++--- bindings/python/_prelude.cxx | 132 ++++++++++++++++++++++--- bindings/ruby/Prelude.cxx | 154 ++++++++++++++++++++++++++--- 6 files changed, 568 insertions(+), 57 deletions(-) commit 16e91033c196b3b348166f919969513a6b07863d Author: Yoann Vandoorselaere Date: Fri Apr 5 15:54:41 2019 +0800 [#rel3490] Fix incorrect string export of IDMEFTime microseconds This was also causing an assertion in upcoming unit tests when exporting object to JSON then reimporting them. Change-Id: I9d12532ae92fdf03f5abef61dd96de1b3da59f6d src/idmef-time.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ba5ec641645dd145380dd521b930a0576b41c654 Author: Antoine LUONG Date: Fri Mar 15 14:11:27 2019 +0100 Update NEWS, bump version Change-Id: I5d652514c7770e7c31e04c28f9006beafed2d149 NEWS | 12 ++++++++++++ configure.ac | 10 +++++----- 2 files changed, 17 insertions(+), 5 deletions(-) commit 9633d0be5b3f6821d1139d4eaffeb5503254cce8 Author: Yoann Vandoorselaere Date: Fri Dec 14 16:04:06 2018 +0800 [#2060] Fix py3 pickle error Change-Id: I71dab49ccaa55a24b2a94bda576f904502e6dee3 bindings/python/_prelude.cxx | 6 +++--- bindings/python/libpreludecpp-python.i | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit 475b65bda4cbfac525e0de6a9fe05339f952da12 Author: Antoine LUONG Date: Thu Jan 3 13:40:42 2019 +0100 [#3381] Copyright year update Change-Id: I8b9e506f972451140d373578c71b6e711d9d3584 LICENSE.README | 2 +- bindings/c++/idmef-class.cxx | 2 +- bindings/c++/idmef-criteria.cxx | 2 +- bindings/c++/idmef-path.cxx | 2 +- bindings/c++/idmef-time.cxx | 2 +- bindings/c++/idmef-value.cxx | 2 +- bindings/c++/idmef.cxx | 2 +- bindings/c++/include/idmef-class.hxx | 2 +- bindings/c++/include/idmef-criteria.hxx | 2 +- bindings/c++/include/idmef-path.hxx | 2 +- bindings/c++/include/idmef-time.hxx | 2 +- bindings/c++/include/idmef-value.hxx | 2 +- bindings/c++/include/idmef.hxx | 2 +- bindings/c++/include/prelude-client-easy.hxx | 2 +- bindings/c++/include/prelude-client-profile.hxx | 2 +- bindings/c++/include/prelude-client.hxx | 2 +- bindings/c++/include/prelude-connection-pool.hxx | 2 +- bindings/c++/include/prelude-connection.hxx | 2 +- bindings/c++/include/prelude-error.hxx | 2 +- bindings/c++/include/prelude-log.hxx | 2 +- bindings/c++/include/prelude.hxx | 2 +- bindings/c++/prelude-client-easy.cxx | 2 +- bindings/c++/prelude-client-profile.cxx | 2 +- bindings/c++/prelude-client.cxx | 2 +- bindings/c++/prelude-connection-pool.cxx | 2 +- bindings/c++/prelude-connection.cxx | 2 +- bindings/c++/prelude-error.cxx | 2 +- bindings/c++/prelude-log.cxx | 2 +- bindings/c++/prelude.cxx | 2 +- bindings/libpreludecpp.i | 2 +- bindings/lua/libpreludecpp-lua.i | 2 +- bindings/perl/Makefile.PL.in | 2 +- bindings/perl/libpreludecpp-perl.i | 2 +- bindings/python/libpreludecpp-python.i | 2 +- bindings/python/setup.py.in | 2 +- bindings/ruby/libpreludecpp-ruby.i | 2 +- prelude-admin/prelude-admin.c | 2 +- prelude-admin/server.c | 2 +- prelude-admin/server.h | 2 +- prelude-admin/tls-register.c | 2 +- prelude-admin/tls-register.h | 2 +- src/common.c | 2 +- src/config-engine.c | 2 +- src/daemonize.c | 2 +- src/idmef-additional-data.c | 2 +- src/idmef-class.c | 2 +- src/idmef-criteria-string.lex.c | 2 +- src/idmef-criteria-string.lex.l | 2 +- src/idmef-criteria-string.yac.y | 2 +- src/idmef-criteria.c | 2 +- src/idmef-criterion-value.c | 2 +- src/idmef-data.c | 2 +- src/idmef-message-helpers.c | 2 +- src/idmef-message-print-json.c | 2 +- src/idmef-message-print.c | 2 +- src/idmef-message-read-json.c | 2 +- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-object.c | 2 +- src/idmef-path.c | 2 +- src/idmef-time.c | 2 +- src/idmef-tree-wrap.c | 2 +- src/idmef-value-type.c | 2 +- src/idmef-value.c | 2 +- src/idmef-wrappers-gen/Generate.pm | 2 +- src/idmef-wrappers-gen/GenerateDebug.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintJSONC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintJSONH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadJSONC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapHxx.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFValueClassSwigMapping.pm | 4 ++-- src/idmef-wrappers-gen/IDMEFTree.pm | 2 +- src/idmef-wrappers-gen/generator.pl | 2 +- src/idmef-wrappers-gen/idmef-tree.h | 2 +- src/include/common.h | 2 +- src/include/config-engine.h | 2 +- src/include/daemonize.h | 2 +- src/include/idmef-additional-data.h | 2 +- src/include/idmef-class.h | 2 +- src/include/idmef-criteria.h | 2 +- src/include/idmef-criterion-value.h | 2 +- src/include/idmef-data.h | 2 +- src/include/idmef-message-helpers.h | 2 +- src/include/idmef-message-print-json.h | 2 +- src/include/idmef-message-print.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-object-prv.h | 2 +- src/include/idmef-object.h | 2 +- src/include/idmef-path.h | 2 +- src/include/idmef-time.h | 2 +- src/include/idmef-tree-wrap.h | 2 +- src/include/idmef-value-type.h | 2 +- src/include/idmef-value.h | 2 +- src/include/idmef.h | 2 +- src/include/libmissing.h | 2 +- src/include/prelude-async.h | 2 +- src/include/prelude-client-profile.h | 2 +- src/include/prelude-client.h | 2 +- src/include/prelude-connection-pool.h | 2 +- src/include/prelude-connection.h | 2 +- src/include/prelude-extract.h | 2 +- src/include/prelude-failover.h | 2 +- src/include/prelude-hash.h | 2 +- src/include/prelude-ident.h | 2 +- src/include/prelude-inttypes.h.in | 2 +- src/include/prelude-io.h | 2 +- src/include/prelude-linked-object.h | 2 +- src/include/prelude-list.h | 2 +- src/include/prelude-log.h | 2 +- src/include/prelude-macros.h | 2 +- src/include/prelude-message-id.h | 2 +- src/include/prelude-msg.h | 2 +- src/include/prelude-msgbuf.h | 2 +- src/include/prelude-option-wide.h | 2 +- src/include/prelude-option.h | 2 +- src/include/prelude-plugin.h | 2 +- src/include/prelude-string.h | 2 +- src/include/prelude-thread.h | 2 +- src/include/prelude-timer.h | 2 +- src/include/prelude.h.in | 2 +- src/include/tls-auth.h | 2 +- src/include/tls-util.h | 2 +- src/include/variable.h | 2 +- src/libprelude-error/prelude-error.h.in | 2 +- src/prelude-async.c | 2 +- src/prelude-client-profile.c | 2 +- src/prelude-client.c | 2 +- src/prelude-connection-pool.c | 2 +- src/prelude-connection.c | 2 +- src/prelude-failover.c | 2 +- src/prelude-hash.c | 2 +- src/prelude-ident.c | 2 +- src/prelude-io.c | 2 +- src/prelude-log.c | 2 +- src/prelude-msg.c | 2 +- src/prelude-msgbuf.c | 2 +- src/prelude-option-wide.c | 2 +- src/prelude-option.c | 2 +- src/prelude-plugin.c | 2 +- src/prelude-string.c | 2 +- src/prelude-thread.c | 2 +- src/prelude-timer.c | 2 +- src/prelude.c | 2 +- src/tls-auth.c | 2 +- src/tls-util.c | 2 +- src/variable.c | 2 +- 157 files changed, 170 insertions(+), 170 deletions(-) commit fce21c5c40f82d7841971a829fff6fb2e2243ce4 Author: Yoann Vandoorselaere Date: Tue Oct 2 11:04:16 2018 +0800 [#3296,#3297] Properly implement Criterion NOT operator, fix operator precedence alert.messageid==A || alert.messageid==B && alert.messageid==C OLD: ((alert.messageid = A || alert.messageid = B) && alert.messageid = C) NEW: alert.messageid = A || (alert.messageid = B && alert.messageid = C) alert.messageid==A && alert.messageid==B || alert.messageid==C && alert.messageid==D OLD: (((alert.messageid = A && alert.messageid = B) || alert.messageid = C) && alert.messageid = D) NEW: (alert.messageid = A && alert.messageid = B) || (alert.messageid = C && alert.messageid = D) alert.messageid==A && alert.messageid==B && alert.messageid==C || alert.messageid==D OLD: (((alert.messageid = A && alert.messageid = B) && alert.messageid = C) || alert.messageid = D) NEW: ((alert.messageid = A && alert.messageid = B) && alert.messageid = C) || alert.messageid = D !alert.messageid==A && alert.messageid==B || alert.messageid==C OLD: PARSER ERROR NEW: ((! alert.messageid = A) && alert.messageid = B) || alert.messageid = C !(alert.messageid==A) && alert.messageid==B || alert.messageid==C OLD: ((alert.messageid != A && alert.messageid = B) || alert.messageid = C) NEW: ((! alert.messageid = A) && alert.messageid = B) || alert.messageid = C Change-Id: I1e3b5fb5edfab100af7360c4968fcb640116b55f src/idmef-criteria-string.lex.c | 4 +- src/idmef-criteria-string.lex.l | 2 +- src/idmef-criteria-string.yac.c | 347 ++++++++++++++++++++-------------------- src/idmef-criteria-string.yac.h | 4 +- src/idmef-criteria-string.yac.y | 60 ++++--- src/idmef-criteria.c | 55 +++++-- tests/idmef-criteria.c | 32 ++++ 7 files changed, 289 insertions(+), 215 deletions(-) commit 4ee6774228964e398000708df13bf7938ef8fecb Author: Yoann Vandoorselaere Date: Tue Sep 11 13:10:53 2018 +0800 [#rel214] More environment variable to ease debugging When LIBPRELUDE_PLUGIN_UNLOAD environment variable is set to 0, plugins are not unloaded when the library is deinitialized. Change-Id: I9aae4b2b3a56e502e70f670fc7780b931a323592 src/prelude.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 081c112ac084b372a5b65dbdb602d3fb8efee0a2 Author: Antoine LUONG Date: Thu Sep 6 15:20:33 2018 +0200 Update NEWS, bump version Change-Id: I45088bbd1f776fa09a06dd385d8a4306e10731a5 NEWS | 10 ++++++++++ configure.ac | 6 +++--- 2 files changed, 13 insertions(+), 3 deletions(-) commit 2b6a31ec062034ca0269374e635c7afc3decbc7c Author: Antoine LUONG Date: Thu Jun 7 14:53:20 2018 +0200 [#rel3103] Fix docstring typos Change-Id: Ie3bde4a74bcdd7cc4a57a89de3fb1fcc9980001c src/prelude-string.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 1a762afb9bbdffb7ffd8689c7db4a0ae1bb73745 Author: Antoine LUONG Date: Tue Sep 4 14:37:54 2018 +0200 [#3220] Update GnuLib code Based on commit 8b1d4a63e34f3893036d82f39c5680e845de5ddf (2018-09-03) Change-Id: I77015d9693b9b0f8cbc4482996aa74d3264cb4a5 libmissing/Makefile.am | 185 ++--- libmissing/config.charset | 682 ------------------- libmissing/dup2.c | 2 +- libmissing/errno.in.h | 4 +- libmissing/fflush.c | 9 +- libmissing/filename.h | 2 +- libmissing/fopen.c | 2 +- libmissing/fpurge.c | 7 +- libmissing/freading.c | 3 +- libmissing/freading.h | 2 +- libmissing/fseeko.c | 10 +- libmissing/fstat.c | 2 +- libmissing/getaddrinfo.c | 7 +- libmissing/getdelim.c | 2 +- libmissing/gethostname.c | 2 +- libmissing/getpass.c | 2 +- libmissing/getpass.h | 30 +- libmissing/gettimeofday.c | 8 +- libmissing/glthread/cond.h | 4 +- libmissing/glthread/lock.h | 10 +- libmissing/glthread/thread.h | 19 +- libmissing/glthread/tls.h | 4 +- libmissing/intprops.h | 16 +- libmissing/localcharset.c | 1083 ++++++++++++++++++++---------- libmissing/localcharset.h | 96 ++- libmissing/locale.in.h | 11 +- libmissing/lseek.c | 4 +- libmissing/m4/configmake.m4 | 55 -- libmissing/m4/extern-inline.m4 | 16 +- libmissing/m4/fseeko.m4 | 9 +- libmissing/m4/getcwd.m4 | 4 +- libmissing/m4/getpagesize.m4 | 23 +- libmissing/m4/getpass.m4 | 90 ++- libmissing/m4/gnulib-cache.m4 | 62 +- libmissing/m4/gnulib-common.m4 | 29 +- libmissing/m4/gnulib-comp.m4 | 17 +- libmissing/m4/hard-locale.m4 | 11 - libmissing/m4/host-cpu-c-abi.m4 | 89 ++- libmissing/m4/inttypes.m4 | 3 +- libmissing/m4/lib-link.m4 | 2 +- libmissing/m4/limits-h.m4 | 8 + libmissing/m4/localcharset.m4 | 8 +- libmissing/m4/locale-fr.m4 | 6 +- libmissing/m4/locale-ja.m4 | 4 +- libmissing/m4/locale-tr.m4 | 4 +- libmissing/m4/locale-zh.m4 | 4 +- libmissing/m4/localename.m4 | 3 +- libmissing/m4/lstat.m4 | 5 +- libmissing/m4/malloc.m4 | 4 +- libmissing/m4/mbrtowc.m4 | 3 +- libmissing/m4/nanosleep.m4 | 45 +- libmissing/m4/pathmax.m4 | 4 +- libmissing/m4/pthread_rwlock_rdlock.m4 | 8 +- libmissing/m4/pthread_sigmask.m4 | 70 +- libmissing/m4/select.m4 | 12 +- libmissing/m4/stat.m4 | 12 +- libmissing/m4/stdint.m4 | 5 +- libmissing/m4/stdio_h.m4 | 4 +- libmissing/m4/symlink.m4 | 12 +- libmissing/m4/threadlib.m4 | 82 ++- libmissing/m4/unistd_h.m4 | 11 +- libmissing/m4/warn-on-use.m4 | 40 +- libmissing/m4/wchar_h.m4 | 10 +- libmissing/malloca.h | 8 +- libmissing/mbrtowc.c | 94 ++- libmissing/mbsinit.c | 2 +- libmissing/mktime-internal.h | 16 + libmissing/mktime.c | 126 ++-- libmissing/msvc-nothrow.h | 2 +- libmissing/nl_langinfo.c | 12 +- libmissing/pathmax.h | 2 +- libmissing/poll.c | 6 +- libmissing/printf-parse.c | 2 +- libmissing/ref-add.sin | 29 - libmissing/ref-del.sin | 24 - libmissing/regcomp.c | 31 +- libmissing/regex.h | 25 +- libmissing/regex_internal.c | 16 +- libmissing/regex_internal.h | 52 +- libmissing/regexec.c | 43 +- libmissing/relocatable.c | 13 +- libmissing/select.c | 6 +- libmissing/sigprocmask.c | 2 +- libmissing/sleep.c | 2 +- libmissing/stat-time.h | 2 +- libmissing/stat-w32.c | 6 +- libmissing/stat.c | 2 +- libmissing/stdio-impl.h | 68 +- libmissing/stdio.in.h | 4 +- libmissing/stdlib.in.h | 4 +- libmissing/strerror_r.c | 6 +- libmissing/sys_socket.in.h | 9 + libmissing/sys_stat.in.h | 6 +- libmissing/sys_types.in.h | 15 +- libmissing/tests/Makefile.am | 18 +- libmissing/tests/binary-io.h | 6 +- libmissing/tests/dosname.h | 5 +- libmissing/tests/fcntl.c | 4 +- libmissing/tests/fcntl.in.h | 2 +- libmissing/tests/getdtablesize.c | 2 +- libmissing/tests/getpagesize.c | 2 +- libmissing/tests/inttypes.in.h | 6 +- libmissing/tests/localename.c | 53 +- libmissing/tests/localename.h | 2 +- libmissing/tests/nanosleep.c | 2 +- libmissing/tests/nap.h | 2 +- libmissing/tests/open.c | 2 +- libmissing/tests/pipe.c | 2 +- libmissing/tests/putenv.c | 4 +- libmissing/tests/same-inode.h | 2 +- libmissing/tests/setlocale.c | 8 +- libmissing/tests/sig-handler.h | 9 +- libmissing/tests/sigaction.c | 2 +- libmissing/tests/test-cloexec.c | 6 +- libmissing/tests/test-cond.c | 2 +- libmissing/tests/test-dup2.c | 6 +- libmissing/tests/test-fcntl-h.c | 4 +- libmissing/tests/test-fcntl.c | 6 +- libmissing/tests/test-getaddrinfo.c | 2 +- libmissing/tests/test-localcharset.c | 39 ++ libmissing/tests/test-localename.c | 15 +- libmissing/tests/test-mbrtowc-w32.c | 2 +- libmissing/tests/test-mbrtowc.c | 10 +- libmissing/tests/test-once.c | 43 ++ libmissing/tests/test-pipe.c | 8 +- libmissing/tests/test-poll.c | 6 +- libmissing/tests/test-pthread_sigmask1.c | 2 +- libmissing/tests/test-select.h | 7 +- libmissing/tests/test-sigprocmask.c | 2 +- libmissing/tests/test-stat-time.c | 2 +- libmissing/tests/test-wcrtomb-w32.c | 2 +- libmissing/tests/warn-on-use.h | 64 +- libmissing/tests/zerosize-ptr.h | 13 + libmissing/time.in.h | 2 +- libmissing/timegm.c | 28 +- libmissing/uname.c | 2 +- libmissing/unistd.in.h | 44 +- libmissing/vasnprintf.c | 14 +- libmissing/verify.h | 3 +- libmissing/warn-on-use.h | 64 +- libmissing/wctype.in.h | 2 +- libmissing/write.c | 2 +- 142 files changed, 2244 insertions(+), 1908 deletions(-) commit c90f293eb901d92a1b1797502d528e28c99d6837 Author: Antoine LUONG Date: Fri Aug 17 10:04:51 2018 +0200 Update NEWS, bump version Change-Id: I90d1555d50057f05a13ebded67f8713ee4f809ea NEWS | 14 ++++++++++++++ configure.ac | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) commit 1449c73985e22065bda8003bb9755e957d45b56e Author: Antoine LUONG Date: Mon Aug 13 10:41:13 2018 +0200 [#rel3169] Fix failure when deleting messages Change-Id: I89766282b9836c64d631871cfffa40bc52dd93b7 src/idmef-criteria.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 10eddc73c7a73a80f09c7eafb9a30eedd082dae8 Author: Yoann Vandoorselaere Date: Tue Aug 7 17:32:41 2018 +0200 [#3188] Fix string conversion error with boolean NOT criteria Change-Id: Ic5ce676580897ed3f371621d2b4d9393295c57e4 src/idmef-criteria.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 3cebd99db2fd19a50e4e12a870359b939b5639e6 Author: Yoann Vandoorselaere Date: Mon Jul 23 12:14:59 2018 +0200 [#3103] Change the structure of IDMEF criteria Criteria now provide a left child, a right child and an operator. Change-Id: I0900b1c83317d6f9d0edec39b9bba19631e52bbc bindings/c++/include/idmef-criteria.hxx | 46 ++-- bindings/lua/prelude.cxx | 6 + bindings/perl/Prelude.cxx | 15 ++ bindings/perl/Prelude.pm | 3 + bindings/python/_prelude.cxx | 32 +-- bindings/ruby/Prelude.cxx | 3 + src/idmef-criteria-string.yac.c | 189 +++++++-------- src/idmef-criteria-string.yac.h | 4 +- src/idmef-criteria-string.yac.y | 17 +- src/idmef-criteria.c | 404 ++++++++++++-------------------- src/idmef-value-type.c | 4 +- src/include/idmef-criteria.h | 46 ++-- src/include/idmef-criterion-value.h | 10 +- tests/idmef-criteria.c | 3 + 14 files changed, 347 insertions(+), 435 deletions(-) commit 9f14da53f723ae9b0f3bb7b7ea929ad35567af8d Author: Yoann Vandoorselaere Date: Mon Jul 23 12:09:53 2018 +0200 [#rel3103] Update Bison/Flex generated code Change-Id: I8200b2496852ab402d30d69a95b24c8884996fce src/idmef-criteria-string.lex.c | 252 +++++----- src/idmef-criteria-string.yac.c | 1014 +++++++++++++++++---------------------- src/idmef-criteria-string.yac.h | 98 ++-- 3 files changed, 610 insertions(+), 754 deletions(-) commit b65534b045c0a5c6e2a40c118d83144c7f6e1309 Author: Antoine LUONG Date: Mon Jun 4 12:33:53 2018 +0200 [#3098] Fix IDMEF_MSG_REFERENCE_NAME value This value seems to have been changed by mistake in commit 5850046c3de9b9d3016034314747145dc1693f91. Additionally, fix some names in the IDMEF wrapper generation script. Change-Id: I842d803471da97ec6c2ce763600fc207b76cf6cc src/idmef-wrappers-gen/GenerateIDMEFMessagePrintJSONH.pm | 6 +++--- src/idmef-wrappers-gen/generator.pl | 4 ++-- src/include/idmef-message-id.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit 490f1c68c49ba212060c315d83238fc4b9f0e43e Author: Yoann Vandoorselaere Date: Wed May 16 15:12:03 2018 +0700 [#rel1411] Make IDMEFPath and IDMEFCriteria pickle compatible Change-Id: Ib5be893f89639ae0bd46ba141c362e558a355b16 bindings/python/_prelude.cxx | 104 ++++++++++++++++++++++++++++++++- bindings/python/libpreludecpp-python.i | 46 ++++++++++++++- 2 files changed, 148 insertions(+), 2 deletions(-) commit e86d18405ac78bed7c7d3a2e84383fab2699b2ea Author: Antoine LUONG Date: Fri May 4 10:08:37 2018 +0200 Update NEWS, bump version Change-Id: I67988853cf4404deb0843eb1a96b7b53cba347ad NEWS | 6 ++++++ configure.ac | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) commit 4271da42721aba20841635a0a09f4cdee76fb193 Author: Antoine LUONG Date: Thu Apr 12 16:20:41 2018 +0200 Update NEWS, bump version Change-Id: Idd73ec65b93eefdfb85c3cd64dcbae08d6a22aa7 NEWS | 16 ++++++++++++++++ configure.ac | 6 +++--- 2 files changed, 19 insertions(+), 3 deletions(-) commit 12eb3dc6ea15209c7c0cc48fe55107d87d8cd203 Author: Antoine LUONG Date: Fri Feb 9 09:55:34 2018 +0100 Update GnuLib code Based on commit 646a44e1b190c4a7f6a9f32c63230c619e38d251 (2018-02-04) Change-Id: Ic22588d70f599b6cee57e767598fb6a8147abea5 config.rpath | 2 +- libmissing/Makefile.am | 54 ++-- libmissing/accept.c | 4 +- libmissing/alloca.in.h | 4 +- libmissing/arg-nonnull.h | 4 +- libmissing/arpa_inet.in.h | 4 +- libmissing/asnprintf.c | 4 +- libmissing/assure.h | 4 +- libmissing/bind.c | 4 +- libmissing/btowc.c | 4 +- libmissing/c++defs.h | 8 +- libmissing/c-ctype.h | 4 +- libmissing/close.c | 4 +- libmissing/config.charset | 4 +- libmissing/connect.c | 4 +- libmissing/dup2.c | 6 +- libmissing/errno.in.h | 4 +- libmissing/fclose.c | 4 +- libmissing/fd-hook.c | 4 +- libmissing/fd-hook.h | 4 +- libmissing/fflush.c | 4 +- libmissing/filename.h | 4 +- libmissing/float+.h | 4 +- libmissing/float.c | 4 +- libmissing/float.in.h | 8 +- libmissing/fopen.c | 4 +- libmissing/fpurge.c | 4 +- libmissing/freading.c | 6 +- libmissing/freading.h | 4 +- libmissing/fseek.c | 4 +- libmissing/fseeko.c | 4 +- libmissing/fstat.c | 10 +- libmissing/ftell.c | 4 +- libmissing/ftello.c | 4 +- libmissing/gai_strerror.c | 4 +- libmissing/getaddrinfo.c | 4 +- libmissing/getdelim.c | 6 +- libmissing/gethostname.c | 4 +- libmissing/getline.c | 4 +- libmissing/getpass.c | 4 +- libmissing/getpass.h | 4 +- libmissing/getsockname.c | 4 +- libmissing/gettext.h | 4 +- libmissing/gettimeofday.c | 4 +- libmissing/glthread/cond.c | 4 +- libmissing/glthread/cond.h | 4 +- libmissing/glthread/lock.c | 4 +- libmissing/glthread/lock.h | 4 +- libmissing/glthread/thread.c | 4 +- libmissing/glthread/thread.h | 12 +- libmissing/glthread/threadlib.c | 4 +- libmissing/glthread/tls.c | 4 +- libmissing/glthread/tls.h | 4 +- libmissing/hard-locale.c | 4 +- libmissing/hard-locale.h | 4 +- libmissing/inet_ntop.c | 4 +- libmissing/inet_pton.c | 4 +- libmissing/intprops.h | 10 +- libmissing/ioctl.c | 4 +- libmissing/itold.c | 4 +- libmissing/langinfo.in.h | 32 ++- libmissing/limits.in.h | 4 +- libmissing/listen.c | 4 +- libmissing/localcharset.c | 6 +- libmissing/localcharset.h | 4 +- libmissing/locale.in.h | 4 +- libmissing/localeconv.c | 4 +- libmissing/localtime-buffer.c | 4 +- libmissing/localtime-buffer.h | 4 +- libmissing/lseek.c | 4 +- libmissing/m4/00gnulib.m4 | 2 +- libmissing/m4/absolute-header.m4 | 2 +- libmissing/m4/alloca.m4 | 6 +- libmissing/m4/arpa_inet_h.m4 | 2 +- libmissing/m4/asm-underscore.m4 | 72 ++++++ libmissing/m4/btowc.m4 | 18 +- libmissing/m4/builtin-expect.m4 | 2 +- libmissing/m4/close.m4 | 2 +- libmissing/m4/cond.m4 | 2 +- libmissing/m4/configmake.m4 | 2 +- libmissing/m4/ctype.m4 | 2 +- libmissing/m4/dup2.m4 | 2 +- libmissing/m4/eealloc.m4 | 2 +- libmissing/m4/environ.m4 | 2 +- libmissing/m4/errno_h.m4 | 2 +- libmissing/m4/exponentd.m4 | 2 +- libmissing/m4/extensions.m4 | 20 +- libmissing/m4/extern-inline.m4 | 10 +- libmissing/m4/fclose.m4 | 11 +- libmissing/m4/fcntl-o.m4 | 13 +- libmissing/m4/fcntl.m4 | 126 ++++++++++ libmissing/m4/fcntl_h.m4 | 2 +- libmissing/m4/fdopen.m4 | 2 +- libmissing/m4/fflush.m4 | 31 ++- libmissing/m4/flexmember.m4 | 2 +- libmissing/m4/float_h.m4 | 32 ++- libmissing/m4/fopen.m4 | 2 +- libmissing/m4/fpieee.m4 | 4 +- libmissing/m4/fpurge.m4 | 2 +- libmissing/m4/freading.m4 | 2 +- libmissing/m4/fseek.m4 | 2 +- libmissing/m4/fseeko.m4 | 11 +- libmissing/m4/fstat.m4 | 9 +- libmissing/m4/ftell.m4 | 2 +- libmissing/m4/ftello.m4 | 6 +- libmissing/m4/ftruncate.m4 | 2 +- libmissing/m4/getaddrinfo.m4 | 2 +- libmissing/m4/getcwd.m4 | 16 +- libmissing/m4/getdelim.m4 | 2 +- libmissing/m4/getdtablesize.m4 | 56 +++-- libmissing/m4/gethostname.m4 | 4 +- libmissing/m4/getline.m4 | 2 +- libmissing/m4/getpagesize.m4 | 2 +- libmissing/m4/getpass.m4 | 2 +- libmissing/m4/gettimeofday.m4 | 14 +- libmissing/m4/glibc21.m4 | 2 +- libmissing/m4/gnulib-cache.m4 | 4 +- libmissing/m4/gnulib-common.m4 | 8 +- libmissing/m4/gnulib-comp.m4 | 73 +++++- libmissing/m4/gnulib-tool.m4 | 2 +- libmissing/m4/hard-locale.m4 | 2 +- libmissing/m4/host-cpu-c-abi.m4 | 369 +++++++++++++++++++++++++++ libmissing/m4/hostent.m4 | 2 +- libmissing/m4/include_next.m4 | 2 +- libmissing/m4/inet_ntop.m4 | 7 +- libmissing/m4/inet_pton.m4 | 7 +- libmissing/m4/intmax_t.m4 | 2 +- libmissing/m4/inttypes-pri.m4 | 2 +- libmissing/m4/inttypes.m4 | 2 +- libmissing/m4/inttypes_h.m4 | 2 +- libmissing/m4/ioctl.m4 | 9 +- libmissing/m4/isblank.m4 | 2 +- libmissing/m4/langinfo_h.m4 | 19 +- libmissing/m4/largefile.m4 | 2 +- libmissing/m4/lib-ld.m4 | 35 ++- libmissing/m4/lib-link.m4 | 2 +- libmissing/m4/lib-prefix.m4 | 84 ++++--- libmissing/m4/limits-h.m4 | 2 +- libmissing/m4/localcharset.m4 | 2 +- libmissing/m4/locale-fr.m4 | 29 ++- libmissing/m4/locale-ja.m4 | 39 +-- libmissing/m4/locale-tr.m4 | 2 +- libmissing/m4/locale-zh.m4 | 39 +-- libmissing/m4/locale_h.m4 | 6 +- libmissing/m4/localeconv.m4 | 2 +- libmissing/m4/localename.m4 | 2 +- libmissing/m4/localtime-buffer.m4 | 2 +- libmissing/m4/lock.m4 | 2 +- libmissing/m4/longlong.m4 | 2 +- libmissing/m4/lseek.m4 | 2 +- libmissing/m4/lstat.m4 | 14 +- libmissing/m4/malloc.m4 | 8 +- libmissing/m4/malloca.m4 | 2 +- libmissing/m4/math_h.m4 | 5 +- libmissing/m4/mbrtowc.m4 | 27 +- libmissing/m4/mbsinit.m4 | 2 +- libmissing/m4/mbstate_t.m4 | 2 +- libmissing/m4/mbtowc.m4 | 2 +- libmissing/m4/memchr.m4 | 33 ++- libmissing/m4/memmem.m4 | 4 +- libmissing/m4/minmax.m4 | 2 +- libmissing/m4/mktime.m4 | 16 +- libmissing/m4/mmap-anon.m4 | 2 +- libmissing/m4/mode_t.m4 | 2 +- libmissing/m4/msvc-inval.m4 | 2 +- libmissing/m4/msvc-nothrow.m4 | 2 +- libmissing/m4/multiarch.m4 | 2 +- libmissing/m4/nanosleep.m4 | 150 +++++++++++ libmissing/m4/netdb_h.m4 | 2 +- libmissing/m4/netinet_in_h.m4 | 2 +- libmissing/m4/nl_langinfo.m4 | 11 +- libmissing/m4/off_t.m4 | 2 +- libmissing/m4/onceonly.m4 | 4 +- libmissing/m4/open-cloexec.m4 | 21 ++ libmissing/m4/open.m4 | 8 +- libmissing/m4/pathmax.m4 | 2 +- libmissing/m4/perror.m4 | 20 +- libmissing/m4/pipe.m4 | 2 +- libmissing/m4/poll.m4 | 2 +- libmissing/m4/poll_h.m4 | 2 +- libmissing/m4/printf.m4 | 219 ++++++++++------ libmissing/m4/pthread_rwlock_rdlock.m4 | 2 +- libmissing/m4/pthread_sigmask.m4 | 279 +++++++++++++++++++++ libmissing/m4/putenv.m4 | 14 +- libmissing/m4/raise.m4 | 2 +- libmissing/m4/regex.m4 | 31 ++- libmissing/m4/relocatable-lib.m4 | 2 +- libmissing/m4/select.m4 | 12 +- libmissing/m4/servent.m4 | 2 +- libmissing/m4/setenv.m4 | 12 +- libmissing/m4/setlocale.m4 | 2 +- libmissing/m4/sigaction.m4 | 40 +++ libmissing/m4/signal_h.m4 | 2 +- libmissing/m4/signalblocking.m4 | 2 +- libmissing/m4/size_max.m4 | 2 +- libmissing/m4/sleep.m4 | 14 +- libmissing/m4/snprintf.m4 | 2 +- libmissing/m4/socketlib.m4 | 8 +- libmissing/m4/sockets.m4 | 2 +- libmissing/m4/socklen.m4 | 2 +- libmissing/m4/sockpfaf.m4 | 2 +- libmissing/m4/ssize_t.m4 | 2 +- libmissing/m4/stat-time.m4 | 83 ++++++ libmissing/m4/stat.m4 | 17 +- libmissing/m4/stdalign.m4 | 4 +- libmissing/m4/stdbool.m4 | 6 +- libmissing/m4/stddef_h.m4 | 2 +- libmissing/m4/stdint.m4 | 110 ++++---- libmissing/m4/stdint_h.m4 | 2 +- libmissing/m4/stdio_h.m4 | 2 +- libmissing/m4/stdlib_h.m4 | 17 +- libmissing/m4/strcase.m4 | 2 +- libmissing/m4/strcasestr.m4 | 8 +- libmissing/m4/strdup.m4 | 2 +- libmissing/m4/strerror.m4 | 22 +- libmissing/m4/strerror_r.m4 | 2 +- libmissing/m4/string_h.m4 | 16 +- libmissing/m4/strings_h.m4 | 2 +- libmissing/m4/strndup.m4 | 2 +- libmissing/m4/strnlen.m4 | 2 +- libmissing/m4/strptime.m4 | 2 +- libmissing/m4/strsep.m4 | 2 +- libmissing/m4/symlink.m4 | 12 +- libmissing/m4/sys_ioctl_h.m4 | 2 +- libmissing/m4/sys_select_h.m4 | 2 +- libmissing/m4/sys_socket_h.m4 | 2 +- libmissing/m4/sys_stat_h.m4 | 2 +- libmissing/m4/sys_time_h.m4 | 2 +- libmissing/m4/sys_types_h.m4 | 8 +- libmissing/m4/sys_uio_h.m4 | 2 +- libmissing/m4/sys_utsname_h.m4 | 2 +- libmissing/m4/thread.m4 | 2 +- libmissing/m4/threadlib.m4 | 12 +- libmissing/m4/time_h.m4 | 2 +- libmissing/m4/time_r.m4 | 2 +- libmissing/m4/timegm.m4 | 2 +- libmissing/m4/tls.m4 | 2 +- libmissing/m4/tm_gmtoff.m4 | 2 +- libmissing/m4/uname.m4 | 2 +- libmissing/m4/ungetc.m4 | 15 +- libmissing/m4/unistd_h.m4 | 5 +- libmissing/m4/usleep.m4 | 14 +- libmissing/m4/vasnprintf.m4 | 2 +- libmissing/m4/vsnprintf.m4 | 2 +- libmissing/m4/warn-on-use.m4 | 2 +- libmissing/m4/wchar_h.m4 | 8 +- libmissing/m4/wchar_t.m4 | 2 +- libmissing/m4/wcrtomb.m4 | 6 +- libmissing/m4/wctob.m4 | 9 +- libmissing/m4/wctomb.m4 | 2 +- libmissing/m4/wctype_h.m4 | 7 +- libmissing/m4/wint_t.m4 | 2 +- libmissing/m4/write.m4 | 2 +- libmissing/m4/xsize.m4 | 2 +- libmissing/m4/yield.m4 | 2 +- libmissing/malloc.c | 4 +- libmissing/malloca.c | 140 ++++------- libmissing/malloca.h | 15 +- libmissing/malloca.valgrind | 7 - libmissing/mbrtowc.c | 6 +- libmissing/mbsinit.c | 4 +- libmissing/mbtowc-impl.h | 4 +- libmissing/mbtowc.c | 4 +- libmissing/memchr.c | 4 +- libmissing/memmem.c | 4 +- libmissing/minmax.h | 4 +- libmissing/mktime-internal.h | 4 +- libmissing/mktime.c | 4 +- libmissing/msvc-inval.c | 4 +- libmissing/msvc-inval.h | 8 +- libmissing/msvc-nothrow.c | 4 +- libmissing/msvc-nothrow.h | 4 +- libmissing/netdb.in.h | 4 +- libmissing/netinet_in.in.h | 4 +- libmissing/nl_langinfo.c | 79 ++++-- libmissing/pathmax.h | 6 +- libmissing/perror.c | 4 +- libmissing/poll.c | 4 +- libmissing/poll.in.h | 4 +- libmissing/printf-args.c | 4 +- libmissing/printf-args.h | 4 +- libmissing/printf-parse.c | 4 +- libmissing/printf-parse.h | 4 +- libmissing/pthread_sigmask.c | 92 +++++++ libmissing/raise.c | 4 +- libmissing/ref-add.sin | 4 +- libmissing/ref-del.sin | 4 +- libmissing/regcomp.c | 43 ++-- libmissing/regex.c | 4 +- libmissing/regex.h | 4 +- libmissing/regex_internal.c | 63 ++--- libmissing/regex_internal.h | 34 +-- libmissing/regexec.c | 234 +++++++---------- libmissing/relocatable.c | 6 +- libmissing/relocatable.h | 4 +- libmissing/relocatable.valgrind | 8 + libmissing/select.c | 4 +- libmissing/setsockopt.c | 4 +- libmissing/signal.in.h | 8 +- libmissing/sigprocmask.c | 4 +- libmissing/size_max.h | 4 +- libmissing/sleep.c | 4 +- libmissing/snprintf.c | 4 +- libmissing/socket.c | 4 +- libmissing/sockets.c | 4 +- libmissing/sockets.h | 4 +- libmissing/stat-time.c | 3 + libmissing/stat-time.h | 252 +++++++++++++++++++ libmissing/stat-w32.c | 4 +- libmissing/stat-w32.h | 4 +- libmissing/stat.c | 30 ++- libmissing/stdalign.in.h | 6 +- libmissing/stdbool.in.h | 10 +- libmissing/stddef.in.h | 22 +- libmissing/stdint.in.h | 4 +- libmissing/stdio-impl.h | 14 +- libmissing/stdio.in.h | 12 +- libmissing/stdlib.in.h | 28 ++- libmissing/str-two-way.h | 8 +- libmissing/strcasecmp.c | 4 +- libmissing/strcasestr.c | 4 +- libmissing/strdup.c | 4 +- libmissing/streq.h | 4 +- libmissing/strerror-override.c | 4 +- libmissing/strerror-override.h | 4 +- libmissing/strerror.c | 4 +- libmissing/strerror_r.c | 22 +- libmissing/string.in.h | 21 +- libmissing/strings.in.h | 4 +- libmissing/strncasecmp.c | 4 +- libmissing/strndup.c | 4 +- libmissing/strnlen.c | 4 +- libmissing/strptime.c | 4 +- libmissing/strsep.c | 4 +- libmissing/sys_ioctl.in.h | 5 +- libmissing/sys_select.in.h | 4 +- libmissing/sys_socket.in.h | 17 +- libmissing/sys_stat.in.h | 4 +- libmissing/sys_time.in.h | 4 +- libmissing/sys_types.in.h | 4 +- libmissing/sys_uio.in.h | 4 +- libmissing/sys_utsname.in.h | 4 +- libmissing/tests/Makefile.am | 94 ++++++- libmissing/tests/arg-nonnull.h | 4 +- libmissing/tests/binary-io.c | 4 +- libmissing/tests/binary-io.h | 4 +- libmissing/tests/c++defs.h | 8 +- libmissing/tests/c-strcase.h | 4 +- libmissing/tests/c-strcasecmp.c | 4 +- libmissing/tests/c-strncasecmp.c | 4 +- libmissing/tests/cloexec.c | 83 ++++++ libmissing/tests/cloexec.h | 38 +++ libmissing/tests/ctype.in.h | 4 +- libmissing/tests/dosname.h | 4 +- libmissing/tests/fcntl.c | 418 +++++++++++++++++++++++++++++++ libmissing/tests/fcntl.in.h | 9 +- libmissing/tests/fdopen.c | 4 +- libmissing/tests/flexmember.h | 23 +- libmissing/tests/fpucw.h | 8 +- libmissing/tests/ftruncate.c | 4 +- libmissing/tests/getcwd-lgpl.c | 4 +- libmissing/tests/getdtablesize.c | 6 +- libmissing/tests/getpagesize.c | 4 +- libmissing/tests/glthread/yield.h | 4 +- libmissing/tests/ignore-value.h | 4 +- libmissing/tests/init.sh | 27 +- libmissing/tests/inttypes.in.h | 4 +- libmissing/tests/isblank.c | 4 +- libmissing/tests/localename.c | 42 +++- libmissing/tests/localename.h | 4 +- libmissing/tests/lstat.c | 43 ++-- libmissing/tests/macros.h | 4 +- libmissing/tests/nanosleep.c | 276 ++++++++++++++++++++ libmissing/tests/nap.h | 155 ++++++++++++ libmissing/tests/null-ptr.h | 4 +- libmissing/tests/open.c | 33 ++- libmissing/tests/pipe.c | 4 +- libmissing/tests/putenv.c | 4 +- libmissing/tests/same-inode.h | 4 +- libmissing/tests/setenv.c | 4 +- libmissing/tests/setlocale.c | 4 +- libmissing/tests/sig-handler.c | 3 + libmissing/tests/sig-handler.h | 54 ++++ libmissing/tests/sigaction.c | 204 +++++++++++++++ libmissing/tests/signature.h | 4 +- libmissing/tests/symlink.c | 4 +- libmissing/tests/test-accept.c | 4 +- libmissing/tests/test-alloca-opt.c | 4 +- libmissing/tests/test-arpa_inet.c | 4 +- libmissing/tests/test-binary-io.c | 4 +- libmissing/tests/test-bind.c | 4 +- libmissing/tests/test-btowc.c | 4 +- libmissing/tests/test-c-ctype.c | 4 +- libmissing/tests/test-c-strcasecmp.c | 4 +- libmissing/tests/test-c-strncasecmp.c | 4 +- libmissing/tests/test-cloexec.c | 148 +++++++++++ libmissing/tests/test-close.c | 4 +- libmissing/tests/test-cond.c | 4 +- libmissing/tests/test-connect.c | 4 +- libmissing/tests/test-ctype.c | 4 +- libmissing/tests/test-dup2.c | 4 +- libmissing/tests/test-environ.c | 4 +- libmissing/tests/test-errno.c | 4 +- libmissing/tests/test-fclose.c | 4 +- libmissing/tests/test-fcntl-h.c | 4 +- libmissing/tests/test-fcntl.c | 414 ++++++++++++++++++++++++++++++ libmissing/tests/test-fdopen.c | 4 +- libmissing/tests/test-fflush.c | 4 +- libmissing/tests/test-fflush2.c | 8 +- libmissing/tests/test-fgetc.c | 4 +- libmissing/tests/test-float.c | 4 +- libmissing/tests/test-fopen.c | 4 +- libmissing/tests/test-fopen.h | 4 +- libmissing/tests/test-fpurge.c | 4 +- libmissing/tests/test-fputc.c | 4 +- libmissing/tests/test-fread.c | 4 +- libmissing/tests/test-freading.c | 4 +- libmissing/tests/test-fseek.c | 4 +- libmissing/tests/test-fseeko.c | 4 +- libmissing/tests/test-fseeko3.c | 4 +- libmissing/tests/test-fseeko4.c | 4 +- libmissing/tests/test-fstat.c | 4 +- libmissing/tests/test-ftell.c | 4 +- libmissing/tests/test-ftell3.c | 4 +- libmissing/tests/test-ftello.c | 4 +- libmissing/tests/test-ftello3.c | 4 +- libmissing/tests/test-ftello4.c | 4 +- libmissing/tests/test-ftruncate.c | 4 +- libmissing/tests/test-fwrite.c | 4 +- libmissing/tests/test-getaddrinfo.c | 4 +- libmissing/tests/test-getcwd-lgpl.c | 4 +- libmissing/tests/test-getdelim.c | 4 +- libmissing/tests/test-getdtablesize.c | 4 +- libmissing/tests/test-gethostname.c | 4 +- libmissing/tests/test-getline.c | 4 +- libmissing/tests/test-getsockname.c | 52 +++- libmissing/tests/test-gettimeofday.c | 4 +- libmissing/tests/test-ignore-value.c | 4 +- libmissing/tests/test-inet_ntop.c | 4 +- libmissing/tests/test-inet_pton.c | 4 +- libmissing/tests/test-init.sh | 4 +- libmissing/tests/test-intprops.c | 6 +- libmissing/tests/test-inttypes.c | 4 +- libmissing/tests/test-ioctl.c | 4 +- libmissing/tests/test-isblank.c | 4 +- libmissing/tests/test-langinfo.c | 4 +- libmissing/tests/test-limits-h.c | 4 +- libmissing/tests/test-listen.c | 4 +- libmissing/tests/test-locale.c | 4 +- libmissing/tests/test-localeconv.c | 4 +- libmissing/tests/test-localename.c | 4 +- libmissing/tests/test-lock.c | 4 +- libmissing/tests/test-lseek.c | 4 +- libmissing/tests/test-lstat.c | 4 +- libmissing/tests/test-lstat.h | 4 +- libmissing/tests/test-malloca.c | 4 +- libmissing/tests/test-mbrtowc-w32.c | 4 +- libmissing/tests/test-mbrtowc.c | 4 +- libmissing/tests/test-mbsinit.c | 4 +- libmissing/tests/test-memchr.c | 4 +- libmissing/tests/test-memmem.c | 4 +- libmissing/tests/test-nanosleep.c | 83 ++++++ libmissing/tests/test-netdb.c | 4 +- libmissing/tests/test-netinet_in.c | 4 +- libmissing/tests/test-nl_langinfo.c | 30 ++- libmissing/tests/test-open.c | 4 +- libmissing/tests/test-open.h | 4 +- libmissing/tests/test-pathmax.c | 4 +- libmissing/tests/test-perror.c | 4 +- libmissing/tests/test-perror2.c | 8 +- libmissing/tests/test-pipe.c | 4 +- libmissing/tests/test-poll-h.c | 4 +- libmissing/tests/test-poll.c | 4 +- libmissing/tests/test-pthread_sigmask1.c | 95 +++++++ libmissing/tests/test-pthread_sigmask2.c | 99 ++++++++ libmissing/tests/test-raise.c | 4 +- libmissing/tests/test-regex.c | 10 +- libmissing/tests/test-rwlock1.c | 4 +- libmissing/tests/test-select-fd.c | 4 +- libmissing/tests/test-select-stdin.c | 4 +- libmissing/tests/test-select.c | 4 +- libmissing/tests/test-select.h | 4 +- libmissing/tests/test-setenv.c | 4 +- libmissing/tests/test-setlocale1.c | 4 +- libmissing/tests/test-setlocale2.c | 4 +- libmissing/tests/test-setlocale2.sh | 2 +- libmissing/tests/test-setsockopt.c | 4 +- libmissing/tests/test-sigaction.c | 122 +++++++++ libmissing/tests/test-signal-h.c | 4 +- libmissing/tests/test-sigprocmask.c | 4 +- libmissing/tests/test-sleep.c | 4 +- libmissing/tests/test-snprintf.c | 4 +- libmissing/tests/test-sockets.c | 4 +- libmissing/tests/test-stat-time.c | 248 ++++++++++++++++++ libmissing/tests/test-stat.c | 4 +- libmissing/tests/test-stat.h | 4 +- libmissing/tests/test-stdalign.c | 6 +- libmissing/tests/test-stdbool.c | 10 +- libmissing/tests/test-stddef.c | 4 +- libmissing/tests/test-stdint.c | 4 +- libmissing/tests/test-stdio.c | 4 +- libmissing/tests/test-stdlib.c | 4 +- libmissing/tests/test-strcasestr.c | 4 +- libmissing/tests/test-strerror.c | 4 +- libmissing/tests/test-strerror_r.c | 6 +- libmissing/tests/test-string.c | 4 +- libmissing/tests/test-strings.c | 4 +- libmissing/tests/test-strnlen.c | 4 +- libmissing/tests/test-symlink.c | 4 +- libmissing/tests/test-symlink.h | 4 +- libmissing/tests/test-sys_ioctl.c | 4 +- libmissing/tests/test-sys_select.c | 4 +- libmissing/tests/test-sys_socket.c | 4 +- libmissing/tests/test-sys_stat.c | 4 +- libmissing/tests/test-sys_time.c | 4 +- libmissing/tests/test-sys_types.c | 4 +- libmissing/tests/test-sys_uio.c | 4 +- libmissing/tests/test-sys_utsname.c | 4 +- libmissing/tests/test-sys_wait.h | 4 +- libmissing/tests/test-thread_create.c | 4 +- libmissing/tests/test-thread_self.c | 4 +- libmissing/tests/test-time.c | 4 +- libmissing/tests/test-tls.c | 4 +- libmissing/tests/test-uname.c | 4 +- libmissing/tests/test-unistd.c | 4 +- libmissing/tests/test-unsetenv.c | 4 +- libmissing/tests/test-usleep.c | 4 +- libmissing/tests/test-vasnprintf.c | 4 +- libmissing/tests/test-verify-try.c | 4 +- libmissing/tests/test-verify.c | 4 +- libmissing/tests/test-vsnprintf.c | 4 +- libmissing/tests/test-wchar.c | 4 +- libmissing/tests/test-wcrtomb-w32.c | 4 +- libmissing/tests/test-wcrtomb.c | 4 +- libmissing/tests/test-wctype-h.c | 4 +- libmissing/tests/test-write.c | 4 +- libmissing/tests/unsetenv.c | 4 +- libmissing/tests/unused-parameter.h | 4 +- libmissing/tests/usleep.c | 4 +- libmissing/tests/warn-on-use.h | 4 +- libmissing/tests/wctob.c | 4 +- libmissing/tests/wctomb-impl.h | 4 +- libmissing/tests/wctomb.c | 4 +- libmissing/tests/zerosize-ptr.h | 4 +- libmissing/time.in.h | 4 +- libmissing/time_r.c | 4 +- libmissing/timegm.c | 4 +- libmissing/uname.c | 4 +- libmissing/unistd.in.h | 36 ++- libmissing/unused-parameter.h | 4 +- libmissing/vasnprintf.c | 8 +- libmissing/vasnprintf.h | 4 +- libmissing/verify.h | 4 +- libmissing/vsnprintf.c | 4 +- libmissing/w32sock.h | 4 +- libmissing/warn-on-use.h | 4 +- libmissing/wchar.in.h | 11 +- libmissing/wcrtomb.c | 4 +- libmissing/wctype.in.h | 4 +- libmissing/write.c | 4 +- libmissing/xalloc-oversized.h | 4 +- libmissing/xsize.h | 4 +- src/Makefile.am | 2 +- 563 files changed, 6412 insertions(+), 1807 deletions(-) commit 0731ddc71cc333367cda422ea955159d3c8d1af2 Author: Thomas Andrejak Date: Sat Mar 10 13:53:42 2018 +0100 [#2938] Add python 3.6 support Change-Id: I0d4a004dac83bf75ef5c050595ea4cbbfcf812da configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 465ffaa5d8d9670d3244ea44ef362bd92e3dd4b5 Author: Thomas Andrejak Date: Tue Feb 27 23:19:48 2018 +0100 [#2913] Fix spelling in Perl bindings Change-Id: Icd8c27a697a59cec8b9f9725e9cb7cf0c046499d bindings/perl/Prelude.cxx | 2 +- bindings/perl/libpreludecpp-perl.i | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 88d4843077379302be4ff02b72e1e4edfa2b6775 Author: Thomas Andrejak Date: Tue Feb 27 23:17:29 2018 +0100 [#2912] Fix server_confirm type in prelude-admin/tls-register.c and prelude-admin/prelude-admin.c Change-Id: Ibaa08f8f68d1e5007d304f9ffa7abff1a734817b prelude-admin/tls-register.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 37357fdaaefaf5c9d14838351055c5672093d57f Author: Antoine LUONG Date: Fri Feb 9 10:38:53 2018 +0100 Update NEWS, bump version Change-Id: I5839581cc24488627ebe36639089820af1dd9ca6 NEWS | 16 ++++++++++++++++ configure.ac | 18 +++++++++--------- 2 files changed, 25 insertions(+), 9 deletions(-) commit 5850046c3de9b9d3016034314747145dc1693f91 Author: Yoann Vandoorselaere Date: Wed Nov 22 14:06:42 2017 +0100 [#rel2694] Ability to specify attributes for IDMEF path Change-Id: I99d695183596e9c06379b7278190f11663342192 bindings/c++/idmef-class.cxx | 21 ++ bindings/c++/include/idmef-class.hxx | 3 + bindings/libpreludecpp.i | 2 + bindings/lua/prelude.cxx | 123 +++++-- bindings/perl/Prelude.cxx | 246 ++++++++----- bindings/perl/Prelude.pm | 3 +- bindings/python/_prelude.cxx | 420 +++++++++++++++++++++-- bindings/python/prelude.py | 2 +- bindings/ruby/Prelude.cxx | 402 ++++++++++++++++++++-- src/idmef-class.c | 14 + src/idmef-message-print-json.c | 8 +- src/idmef-message-print.c | 8 +- src/idmef-message-read-json.c | 8 +- src/idmef-message-read.c | 8 +- src/idmef-message-write.c | 4 +- src/idmef-tree-wrap.c | 196 +++++------ src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 18 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 +- src/idmef-wrappers-gen/IDMEFTree.pm | 35 +- src/idmef-wrappers-gen/generator.pl | 5 +- src/idmef-wrappers-gen/idmef-tree.h | 66 ++-- src/include/idmef-class.h | 3 + src/include/idmef-message-id.h | 4 +- src/include/idmef-message-print-json.h | 4 +- src/include/idmef-tree-data.h | 343 +++++++++--------- src/include/idmef-tree-wrap.h | 72 ++-- 26 files changed, 1486 insertions(+), 536 deletions(-) commit 0431358016726431406c0e35b78b5ff075419d4b Author: Antoine LUONG Date: Wed Jan 3 11:55:18 2018 +0100 [#2795] Copyright year update Change-Id: I7bb4b987334695f0285b091ee151af3d34d5361d LICENSE.README | 2 +- bindings/c++/idmef-class.cxx | 2 +- bindings/c++/idmef-criteria.cxx | 2 +- bindings/c++/idmef-path.cxx | 2 +- bindings/c++/idmef-time.cxx | 2 +- bindings/c++/idmef-value.cxx | 2 +- bindings/c++/idmef.cxx | 2 +- bindings/c++/include/idmef-class.hxx | 2 +- bindings/c++/include/idmef-criteria.hxx | 2 +- bindings/c++/include/idmef-path.hxx | 2 +- bindings/c++/include/idmef-time.hxx | 2 +- bindings/c++/include/idmef-value.hxx | 2 +- bindings/c++/include/idmef.hxx | 2 +- bindings/c++/include/prelude-client-easy.hxx | 2 +- bindings/c++/include/prelude-client-profile.hxx | 2 +- bindings/c++/include/prelude-client.hxx | 2 +- bindings/c++/include/prelude-connection-pool.hxx | 2 +- bindings/c++/include/prelude-connection.hxx | 2 +- bindings/c++/include/prelude-error.hxx | 2 +- bindings/c++/include/prelude-log.hxx | 2 +- bindings/c++/include/prelude.hxx | 2 +- bindings/c++/prelude-client-easy.cxx | 2 +- bindings/c++/prelude-client-profile.cxx | 2 +- bindings/c++/prelude-client.cxx | 2 +- bindings/c++/prelude-connection-pool.cxx | 2 +- bindings/c++/prelude-connection.cxx | 2 +- bindings/c++/prelude-error.cxx | 2 +- bindings/c++/prelude-log.cxx | 2 +- bindings/c++/prelude.cxx | 2 +- bindings/libpreludecpp.i | 2 +- bindings/lua/libpreludecpp-lua.i | 2 +- bindings/perl/Makefile.PL.in | 2 +- bindings/perl/libpreludecpp-perl.i | 2 +- bindings/python/libpreludecpp-python.i | 2 +- bindings/python/setup.py.in | 2 +- bindings/ruby/libpreludecpp-ruby.i | 2 +- prelude-admin/prelude-admin.c | 2 +- prelude-admin/server.c | 2 +- prelude-admin/server.h | 2 +- prelude-admin/tls-register.c | 2 +- prelude-admin/tls-register.h | 2 +- src/common.c | 2 +- src/config-engine.c | 2 +- src/daemonize.c | 2 +- src/idmef-additional-data.c | 2 +- src/idmef-class.c | 2 +- src/idmef-criteria-string.lex.c | 2 +- src/idmef-criteria-string.lex.l | 2 +- src/idmef-criteria-string.yac.y | 2 +- src/idmef-criteria.c | 2 +- src/idmef-criterion-value.c | 2 +- src/idmef-data.c | 2 +- src/idmef-message-helpers.c | 2 +- src/idmef-message-print-json.c | 2 +- src/idmef-message-print.c | 2 +- src/idmef-message-read-json.c | 2 +- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-object.c | 2 +- src/idmef-path.c | 2 +- src/idmef-time.c | 2 +- src/idmef-tree-wrap.c | 2 +- src/idmef-value-type.c | 2 +- src/idmef-value.c | 2 +- src/idmef-wrappers-gen/Generate.pm | 2 +- src/idmef-wrappers-gen/GenerateDebug.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintJSONC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintJSONH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadJSONC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapHxx.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFValueClassSwigMapping.pm | 4 ++-- src/idmef-wrappers-gen/IDMEFTree.pm | 2 +- src/idmef-wrappers-gen/generator.pl | 2 +- src/idmef-wrappers-gen/idmef-tree.h | 2 +- src/include/common.h | 2 +- src/include/config-engine.h | 2 +- src/include/daemonize.h | 2 +- src/include/idmef-additional-data.h | 2 +- src/include/idmef-class.h | 4 ++-- src/include/idmef-criteria.h | 2 +- src/include/idmef-criterion-value.h | 2 +- src/include/idmef-data.h | 2 +- src/include/idmef-message-helpers.h | 2 +- src/include/idmef-message-print-json.h | 2 +- src/include/idmef-message-print.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-object-prv.h | 2 +- src/include/idmef-object.h | 2 +- src/include/idmef-path.h | 2 +- src/include/idmef-time.h | 2 +- src/include/idmef-tree-wrap.h | 2 +- src/include/idmef-value-type.h | 2 +- src/include/idmef-value.h | 2 +- src/include/idmef.h | 2 +- src/include/libmissing.h | 2 +- src/include/prelude-async.h | 2 +- src/include/prelude-client-profile.h | 2 +- src/include/prelude-client.h | 2 +- src/include/prelude-connection-pool.h | 2 +- src/include/prelude-connection.h | 2 +- src/include/prelude-extract.h | 2 +- src/include/prelude-failover.h | 2 +- src/include/prelude-hash.h | 2 +- src/include/prelude-ident.h | 2 +- src/include/prelude-inttypes.h.in | 2 +- src/include/prelude-io.h | 2 +- src/include/prelude-linked-object.h | 2 +- src/include/prelude-list.h | 2 +- src/include/prelude-log.h | 2 +- src/include/prelude-macros.h | 2 +- src/include/prelude-message-id.h | 2 +- src/include/prelude-msg.h | 2 +- src/include/prelude-msgbuf.h | 2 +- src/include/prelude-option-wide.h | 2 +- src/include/prelude-option.h | 2 +- src/include/prelude-plugin.h | 2 +- src/include/prelude-string.h | 2 +- src/include/prelude-thread.h | 2 +- src/include/prelude-timer.h | 2 +- src/include/prelude.h.in | 2 +- src/include/tls-auth.h | 2 +- src/include/tls-util.h | 2 +- src/include/variable.h | 2 +- src/libprelude-error/prelude-error.h.in | 2 +- src/prelude-async.c | 2 +- src/prelude-client-profile.c | 2 +- src/prelude-client.c | 2 +- src/prelude-connection-pool.c | 2 +- src/prelude-connection.c | 2 +- src/prelude-failover.c | 2 +- src/prelude-hash.c | 2 +- src/prelude-ident.c | 2 +- src/prelude-io.c | 2 +- src/prelude-log.c | 2 +- src/prelude-msg.c | 2 +- src/prelude-msgbuf.c | 2 +- src/prelude-option-wide.c | 2 +- src/prelude-option.c | 2 +- src/prelude-plugin.c | 2 +- src/prelude-string.c | 2 +- src/prelude-thread.c | 2 +- src/prelude-timer.c | 2 +- src/prelude.c | 2 +- src/tls-auth.c | 2 +- src/tls-util.c | 2 +- src/variable.c | 2 +- 157 files changed, 171 insertions(+), 171 deletions(-) commit e7bc4695f21164f00e89c019a9b5e271a9b1683a Author: Antoine LUONG Date: Mon Dec 11 16:30:42 2017 +0100 [#2755] Fix the encoding error handler for Python 2 Change-Id: I3749ec4e586c77e739ac7062f65d9bf5bae586ca bindings/python/_prelude.cxx | 2 +- bindings/python/pystrings.swg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 14753b894600d527dec58666c007073b497e6aed Author: Thomas Andrejak Date: Mon Oct 9 09:51:50 2017 +0200 [#2729] Use SHA256 signature with GnuTLS instead of default SHA1 This is for GnuTLS 3.6 compatibility Change-Id: Icc86e88d8d2f7dc8dc75fe96f99a7367727e3449 prelude-admin/tls-register.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e435f0f8fc1aa4d1f4ff661d8d17d1a33e4bbbbb Author: Antoine LUONG Date: Fri Jul 21 17:52:35 2017 +0200 Update NEWS, bump version Change-Id: I236c21f0a433d2b8badc4ab307301194189aac0f NEWS | 6 ++++++ configure.ac | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit 70f57c3a45037eb639a0454a293a2e1a216da199 Author: Antoine LUONG Date: Thu Jul 13 10:37:02 2017 +0200 Update NEWS, bump version Change-Id: Ic9f0c8e8c77c6b9c1c48e59c1d6d3013aafa3423 NEWS | 8 ++++++++ configure.ac | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) commit b92479ee99d77d181ab6dc2e8b6f3f2606079532 Author: Yoann Vandoorselaere Date: Mon Jul 10 15:06:57 2017 +0200 [#2632] Update GnuLib code Change-Id: I2efdf309f599b8ac61811200e9db8c980a3ceb28 libmissing/Makefile.am | 159 ++++++------- libmissing/_Noreturn.h | 10 + libmissing/arg-nonnull.h | 26 ++ libmissing/c++defs.h | 316 +++++++++++++++++++++++++ libmissing/c-ctype.h | 20 +- libmissing/close.c | 4 +- libmissing/dosname.h | 53 ----- libmissing/dup2.c | 44 +++- libmissing/fclose.c | 4 +- libmissing/fd-hook.c | 2 +- libmissing/fd-hook.h | 2 +- libmissing/fflush.c | 10 +- libmissing/filename.h | 54 +++++ libmissing/float.in.h | 2 +- libmissing/fpurge.c | 6 +- libmissing/freading.c | 4 +- libmissing/fseeko.c | 12 +- libmissing/fstat.c | 66 +++--- libmissing/getaddrinfo.c | 2 +- libmissing/gettext.h | 8 +- libmissing/gettimeofday.c | 154 ++++++------ libmissing/glthread/lock.c | 182 +++++++++++++- libmissing/glthread/lock.h | 62 ++++- libmissing/glthread/thread.h | 11 +- libmissing/intprops.h | 81 +++---- libmissing/ioctl.c | 6 +- libmissing/limits.in.h | 11 + libmissing/localcharset.c | 8 +- libmissing/localtime-buffer.c | 58 +++++ libmissing/localtime-buffer.h | 27 +++ libmissing/lseek.c | 6 +- libmissing/m4/close.m4 | 12 +- libmissing/m4/fdopen.m4 | 13 +- libmissing/m4/fflush.m4 | 15 +- libmissing/m4/flexmember.m4 | 7 +- libmissing/m4/float_h.m4 | 6 +- libmissing/m4/fopen.m4 | 8 +- libmissing/m4/fpurge.m4 | 53 +++-- libmissing/m4/fstat.m4 | 26 +- libmissing/m4/ftello.m4 | 22 +- libmissing/m4/getcwd.m4 | 6 +- libmissing/m4/getdelim.m4 | 6 +- libmissing/m4/getline.m4 | 6 +- libmissing/m4/gettimeofday.m4 | 36 +-- libmissing/m4/gnulib-common.m4 | 13 +- libmissing/m4/gnulib-comp.m4 | 72 +++++- libmissing/m4/include_next.m4 | 5 +- libmissing/m4/largefile.m4 | 21 +- libmissing/m4/lib-ld.m4 | 140 ++++++----- libmissing/m4/lib-prefix.m4 | 107 +++++---- libmissing/m4/localtime-buffer.m4 | 21 ++ libmissing/m4/lock.m4 | 9 +- libmissing/m4/lstat.m4 | 3 +- libmissing/m4/memmem.m4 | 5 +- libmissing/m4/mktime.m4 | 59 +++-- libmissing/m4/poll.m4 | 3 +- libmissing/m4/printf.m4 | 13 +- libmissing/m4/pthread_rwlock_rdlock.m4 | 163 +++++++++++++ libmissing/m4/raise.m4 | 12 +- libmissing/m4/stat.m4 | 104 ++++---- libmissing/m4/stdalign.m4 | 4 +- libmissing/m4/strcasestr.m4 | 5 +- libmissing/m4/strerror_r.m4 | 26 +- libmissing/m4/sys_stat_h.m4 | 18 +- libmissing/m4/sys_time_h.m4 | 3 +- libmissing/m4/sys_types_h.m4 | 13 +- libmissing/m4/time_h.m4 | 12 +- libmissing/m4/timegm.m4 | 6 +- libmissing/m4/ungetc.m4 | 38 ++- libmissing/m4/unistd_h.m4 | 9 +- libmissing/m4/usleep.m4 | 45 ++++ libmissing/m4/wchar_h.m4 | 9 +- libmissing/m4/wctype_h.m4 | 4 +- libmissing/m4/wint_t.m4 | 14 +- libmissing/m4/write.m4 | 12 +- libmissing/malloca.c | 149 ++++++++++++ libmissing/malloca.h | 128 ++++++++++ libmissing/malloca.valgrind | 7 + libmissing/mbrtowc.c | 11 +- libmissing/mbsinit.c | 34 ++- libmissing/mktime.c | 68 +++++- libmissing/msvc-nothrow.c | 4 +- libmissing/poll.c | 22 +- libmissing/raise.c | 4 +- libmissing/regex_internal.h | 1 + libmissing/relocatable.c | 24 +- libmissing/relocatable.h | 24 +- libmissing/select.c | 6 +- libmissing/sockets.c | 6 +- libmissing/sockets.h | 18 +- libmissing/stat-w32.c | 421 +++++++++++++++++++++++++++++++++ libmissing/stat-w32.h | 37 +++ libmissing/stat.c | 415 +++++++++++++++++++++++++++----- libmissing/stdalign.in.h | 2 +- libmissing/stdint.in.h | 43 +++- libmissing/stdio-impl.h | 6 +- libmissing/strerror_r.c | 114 ++++++++- libmissing/sys_stat.in.h | 178 ++++++++++---- libmissing/sys_types.in.h | 42 ++++ libmissing/tests/Makefile.am | 150 +++++------- libmissing/tests/_Noreturn.h | 10 + libmissing/tests/arg-nonnull.h | 26 ++ libmissing/tests/binary-io.c | 35 ++- libmissing/tests/binary-io.h | 36 +-- libmissing/tests/c++defs.h | 316 +++++++++++++++++++++++++ libmissing/tests/dosname.h | 53 +++++ libmissing/tests/ftruncate.c | 13 +- libmissing/tests/getdtablesize.c | 11 +- libmissing/tests/localename.c | 19 +- libmissing/tests/macros.h | 8 + libmissing/tests/malloca.c | 149 ------------ libmissing/tests/malloca.h | 128 ---------- libmissing/tests/malloca.valgrind | 7 - libmissing/tests/null-ptr.h | 33 +++ libmissing/tests/same-inode.h | 18 +- libmissing/tests/setlocale.c | 7 + libmissing/tests/test-binary-io.c | 6 - libmissing/tests/test-binary-io.sh | 4 +- libmissing/tests/test-dup2.c | 6 +- libmissing/tests/test-fflush2.c | 2 +- libmissing/tests/test-fgetc.c | 4 +- libmissing/tests/test-fputc.c | 4 +- libmissing/tests/test-fread.c | 4 +- libmissing/tests/test-ftell.c | 2 +- libmissing/tests/test-ftello.c | 2 +- libmissing/tests/test-fwrite.c | 4 +- libmissing/tests/test-intprops.c | 21 ++ libmissing/tests/test-localeconv.c | 4 +- libmissing/tests/test-localename.c | 18 +- libmissing/tests/test-lock.c | 110 ++++++++- libmissing/tests/test-mbrtowc-w32.c | 18 +- libmissing/tests/test-mbrtowc.c | 2 +- libmissing/tests/test-memmem.c | 7 +- libmissing/tests/test-perror.sh | 6 +- libmissing/tests/test-pipe.c | 6 +- libmissing/tests/test-rwlock1.c | 157 ++++++++++++ libmissing/tests/test-select.h | 4 +- libmissing/tests/test-stdalign.c | 5 + libmissing/tests/test-stddef.c | 6 +- libmissing/tests/test-usleep.c | 40 ++++ libmissing/tests/test-verify-try.c | 21 ++ libmissing/tests/test-verify.sh | 9 +- libmissing/tests/unused-parameter.h | 36 +++ libmissing/tests/usleep.c | 58 +++++ libmissing/tests/warn-on-use.h | 109 +++++++++ libmissing/tests/xalloc-oversized.h | 68 ------ libmissing/time.in.h | 59 ++++- libmissing/unistd.in.h | 48 +++- libmissing/unused-parameter.h | 36 +++ libmissing/vasnprintf.c | 45 +++- libmissing/verify.h | 7 +- libmissing/w32sock.h | 6 +- libmissing/warn-on-use.h | 109 +++++++++ libmissing/wchar.in.h | 44 +++- libmissing/wctype.in.h | 22 +- libmissing/write.c | 10 +- libmissing/xalloc-oversized.h | 60 +++++ 157 files changed, 5089 insertions(+), 1477 deletions(-) commit 23619948a2e4d17abd683e40381e7cc7448802a4 Author: Antoine LUONG Date: Fri Jun 30 15:31:06 2017 +0200 Update NEWS, bump version Change-Id: I0f294356a782ac15086245f023b085b9cc16aff5 NEWS | 8 ++++++++ configure.ac | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit 855888af18f38433322e24589bc254bc2ea9ec85 Author: Yoann Vandoorselaere Date: Fri Jun 30 15:44:11 2017 +0200 [#2556] Copy prelude-client analyzer object instead of referencing it We cannot use a reference for programs who keep the generated IDMEF object in memory while sending other alerts. Change-Id: I6d8739a73a853f44ddfa67617c86e1be33eb2fde src/common.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 092f53e6d03c75640bee25a79d62afc15d275746 Author: Antoine LUONG Date: Fri Jun 23 19:08:19 2017 +0200 Update NEWS, bump version Change-Id: I7374371ef7645f4ae892eb28ecf40d33f2d42f61 NEWS | 8 ++++++++ configure.ac | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) commit 88200fd5e559f1b9566e68d9e56154f857497db9 Author: Yoann Vandoorselaere Date: Tue Jun 20 16:57:41 2017 +0200 [#2055] prevent sending TLS alert on fatal error Change-Id: Ia4c7ae69967c089e299200b67de353f3f9dd1577 src/tls-auth.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 5a499e214593af1e0bd25b8fa3a1c019ba6de5b2 Author: Antoine LUONG Date: Fri Jun 16 12:34:12 2017 +0200 Update NEWS, bump version Change-Id: I175a10f3f89d75979e683d12f4400320f07eddc9 NEWS | 10 ++++++++++ configure.ac | 10 +++++----- 2 files changed, 15 insertions(+), 5 deletions(-) commit bcd1567bab84d1886fd12cdb9be32c166cfce8fe Author: Thomas Andrejak Date: Tue Jun 6 10:56:17 2017 +0200 [#2558] Manpage spelling check Change-Id: I330ead04de1aa98c858002d78b5340201c4c4a9f docs/manpages/prelude-admin.1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a7c9f2c4756430a3ac4d358fc0a6cf5a39f6733c Author: Thomas Andrejak Date: Tue May 30 15:46:32 2017 +0200 [#2546] Correct the format of the year in date error message Change-Id: Ib4884605ca862508b9e0d2075efc3ea196035853 src/idmef-time.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 09dcd3ca4f162bd87e2ef0baa64ff43fcb535364 Author: Antoine LUONG Date: Wed Feb 15 15:43:38 2017 +0100 Update NEWS, bump version Change-Id: I84b03c34201a1ee5737ecec4bd166182a9b6d4be NEWS | 1 + configure.ac | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) commit f088a9dc7ab6523dc263269a5181bb4df3f18183 Author: Antoine LUONG Date: Fri Feb 10 20:17:14 2017 +0100 Update NEWS, bump version Change-Id: I367f36ebbf050709de7f63e5714364ab983649bd NEWS | 1 + configure.ac | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 74a4f0ada15d995ae54f2941ad29c8b94dd7c1c4 Author: Antoine LUONG Date: Fri Feb 3 19:19:05 2017 +0100 Update NEWS, bump version Change-Id: Ie1f0e00bd8ea5e158a872e3fd90e6e3121d29538 NEWS | 6 ++++++ configure.ac | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) commit 543889741276641376adee6c296a2b9804081c59 Author: Antoine LUONG Date: Thu Jan 26 18:27:02 2017 +0100 Update NEWS, bump version Change-Id: Iafdd1e7ec0b06e8f2d17c21baa82d90852d9511f NEWS | 8 ++++++++ configure.ac | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit 58bc31eb86da86f837799addce0ac2ac114a8523 Author: Yoann Vandoorselaere Date: Thu Jan 26 17:46:58 2017 +0700 [#2138] Fix crash when retrieving listed value idmef_path_get_nth_internal() has been fixed to properly handle listed value. Code cleanup. Change-Id: I66dbf3689d88306d7cb64789209ab0f3f99b1d5a src/idmef-path.c | 86 ++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 31 deletions(-) commit 74990af6306aaac8923ec88f858af223e2d47918 Author: Antoine LUONG Date: Thu Jan 12 11:06:19 2017 +0100 Copyright year update Change-Id: I8fdeb1bb560d7ecb78766a11228d310154f08d82 LICENSE.README | 2 +- bindings/c++/idmef-class.cxx | 2 +- bindings/c++/idmef-criteria.cxx | 2 +- bindings/c++/idmef-path.cxx | 2 +- bindings/c++/idmef-time.cxx | 2 +- bindings/c++/idmef-value.cxx | 2 +- bindings/c++/idmef.cxx | 2 +- bindings/c++/include/idmef-class.hxx | 2 +- bindings/c++/include/idmef-criteria.hxx | 2 +- bindings/c++/include/idmef-path.hxx | 2 +- bindings/c++/include/idmef-time.hxx | 2 +- bindings/c++/include/idmef-value.hxx | 2 +- bindings/c++/include/idmef.hxx | 2 +- bindings/c++/include/prelude-client-easy.hxx | 2 +- bindings/c++/include/prelude-client-profile.hxx | 2 +- bindings/c++/include/prelude-client.hxx | 2 +- bindings/c++/include/prelude-connection-pool.hxx | 2 +- bindings/c++/include/prelude-connection.hxx | 2 +- bindings/c++/include/prelude-error.hxx | 2 +- bindings/c++/include/prelude-log.hxx | 2 +- bindings/c++/include/prelude.hxx | 2 +- bindings/c++/prelude-client-easy.cxx | 2 +- bindings/c++/prelude-client-profile.cxx | 2 +- bindings/c++/prelude-client.cxx | 2 +- bindings/c++/prelude-connection-pool.cxx | 2 +- bindings/c++/prelude-connection.cxx | 2 +- bindings/c++/prelude-error.cxx | 2 +- bindings/c++/prelude-log.cxx | 2 +- bindings/c++/prelude.cxx | 2 +- bindings/libpreludecpp.i | 2 +- bindings/lua/libpreludecpp-lua.i | 2 +- bindings/perl/Makefile.PL.in | 2 +- bindings/perl/libpreludecpp-perl.i | 2 +- bindings/python/libpreludecpp-python.i | 2 +- bindings/python/setup.py.in | 2 +- bindings/ruby/libpreludecpp-ruby.i | 2 +- prelude-admin/prelude-admin.c | 2 +- prelude-admin/server.c | 2 +- prelude-admin/server.h | 2 +- prelude-admin/tls-register.c | 2 +- prelude-admin/tls-register.h | 2 +- src/common.c | 2 +- src/config-engine.c | 2 +- src/daemonize.c | 2 +- src/idmef-additional-data.c | 2 +- src/idmef-class.c | 2 +- src/idmef-criteria-string.lex.c | 2 +- src/idmef-criteria-string.lex.l | 2 +- src/idmef-criteria-string.yac.y | 2 +- src/idmef-criteria.c | 2 +- src/idmef-criterion-value.c | 2 +- src/idmef-data.c | 2 +- src/idmef-message-helpers.c | 2 +- src/idmef-message-print-json.c | 2 +- src/idmef-message-print.c | 2 +- src/idmef-message-read-json.c | 2 +- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-object.c | 2 +- src/idmef-path.c | 2 +- src/idmef-time.c | 2 +- src/idmef-tree-wrap.c | 2 +- src/idmef-value-type.c | 2 +- src/idmef-value.c | 2 +- src/idmef-wrappers-gen/Generate.pm | 2 +- src/idmef-wrappers-gen/GenerateDebug.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintJSONC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintJSONH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadJSONC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapHxx.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFValueClassSwigMapping.pm | 4 ++-- src/idmef-wrappers-gen/IDMEFTree.pm | 2 +- src/idmef-wrappers-gen/generator.pl | 2 +- src/idmef-wrappers-gen/idmef-tree.h | 2 +- src/include/common.h | 2 +- src/include/config-engine.h | 2 +- src/include/daemonize.h | 2 +- src/include/idmef-additional-data.h | 2 +- src/include/idmef-criteria.h | 2 +- src/include/idmef-criterion-value.h | 2 +- src/include/idmef-data.h | 2 +- src/include/idmef-message-helpers.h | 2 +- src/include/idmef-message-print-json.h | 2 +- src/include/idmef-message-print.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-object-prv.h | 2 +- src/include/idmef-object.h | 2 +- src/include/idmef-path.h | 2 +- src/include/idmef-time.h | 2 +- src/include/idmef-tree-wrap.h | 2 +- src/include/idmef-value-type.h | 2 +- src/include/idmef-value.h | 2 +- src/include/idmef.h | 2 +- src/include/libmissing.h | 2 +- src/include/prelude-async.h | 2 +- src/include/prelude-client-profile.h | 2 +- src/include/prelude-client.h | 2 +- src/include/prelude-connection-pool.h | 2 +- src/include/prelude-connection.h | 2 +- src/include/prelude-extract.h | 2 +- src/include/prelude-failover.h | 2 +- src/include/prelude-hash.h | 2 +- src/include/prelude-ident.h | 2 +- src/include/prelude-inttypes.h.in | 2 +- src/include/prelude-io.h | 2 +- src/include/prelude-linked-object.h | 2 +- src/include/prelude-list.h | 2 +- src/include/prelude-log.h | 2 +- src/include/prelude-macros.h | 2 +- src/include/prelude-message-id.h | 2 +- src/include/prelude-msg.h | 2 +- src/include/prelude-msgbuf.h | 2 +- src/include/prelude-option-wide.h | 2 +- src/include/prelude-option.h | 2 +- src/include/prelude-plugin.h | 2 +- src/include/prelude-string.h | 2 +- src/include/prelude-thread.h | 2 +- src/include/prelude-timer.h | 2 +- src/include/prelude.h.in | 2 +- src/include/tls-auth.h | 2 +- src/include/tls-util.h | 2 +- src/include/variable.h | 2 +- src/libprelude-error/prelude-error.h.in | 2 +- src/prelude-async.c | 2 +- src/prelude-client-profile.c | 2 +- src/prelude-client.c | 2 +- src/prelude-connection-pool.c | 2 +- src/prelude-connection.c | 2 +- src/prelude-failover.c | 2 +- src/prelude-hash.c | 2 +- src/prelude-ident.c | 2 +- src/prelude-io.c | 2 +- src/prelude-log.c | 2 +- src/prelude-msg.c | 2 +- src/prelude-msgbuf.c | 2 +- src/prelude-option-wide.c | 2 +- src/prelude-option.c | 2 +- src/prelude-plugin.c | 2 +- src/prelude-string.c | 2 +- src/prelude-thread.c | 2 +- src/prelude-timer.c | 2 +- src/prelude.c | 2 +- src/tls-auth.c | 2 +- src/tls-util.c | 2 +- src/variable.c | 2 +- 156 files changed, 169 insertions(+), 169 deletions(-) commit 39f8000fcde23a3e627388292e8dcd49ceb14591 Author: Antoine LUONG Date: Thu Jan 12 11:02:45 2017 +0100 Update NEWS, bump version Change-Id: I06270078e18d47e9d6dd73cfffc56af36653b921 NEWS | 13 +++++++++++++ configure.ac | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) commit c4fdbd59e8040ecc07b48ce793e452f6ac0c32bd Author: Yoann Vandoorselaere Date: Wed Jan 4 16:54:45 2017 +0700 [#2113] Update GnuLib and SWIG generated code Change-Id: I81477159584834894d313bcb02aeb14ca7487f33 INSTALL | 4 +- bindings/lua/prelude.cxx | 4 +- bindings/perl/Prelude.cxx | 147 +-- bindings/perl/Prelude.pm | 2 +- bindings/python/_prelude.cxx | 2074 ++++++++++++++++++--------------- bindings/python/prelude.py | 17 +- bindings/ruby/Prelude.cxx | 63 +- config.rpath | 2 +- gtk-doc.make | 100 +- libmissing/Makefile.am | 46 +- libmissing/accept.c | 2 +- libmissing/alloca.in.h | 4 +- libmissing/arpa_inet.in.h | 2 +- libmissing/asnprintf.c | 2 +- libmissing/assure.h | 2 +- libmissing/bind.c | 2 +- libmissing/btowc.c | 2 +- libmissing/c-ctype.h | 2 +- libmissing/close.c | 2 +- libmissing/config.charset | 2 +- libmissing/connect.c | 2 +- libmissing/dosname.h | 2 +- libmissing/dup2.c | 2 +- libmissing/errno.in.h | 2 +- libmissing/fclose.c | 2 +- libmissing/fd-hook.c | 2 +- libmissing/fd-hook.h | 2 +- libmissing/fflush.c | 4 +- libmissing/float+.h | 2 +- libmissing/float.c | 2 +- libmissing/float.in.h | 2 +- libmissing/fopen.c | 2 +- libmissing/fpurge.c | 10 +- libmissing/freading.c | 8 +- libmissing/freading.h | 2 +- libmissing/fseek.c | 2 +- libmissing/fseeko.c | 8 +- libmissing/fstat.c | 2 +- libmissing/ftell.c | 2 +- libmissing/ftello.c | 2 +- libmissing/gai_strerror.c | 2 +- libmissing/getaddrinfo.c | 2 +- libmissing/getdelim.c | 14 +- libmissing/gethostname.c | 2 +- libmissing/getline.c | 2 +- libmissing/getpass.c | 2 +- libmissing/getpass.h | 2 +- libmissing/getsockname.c | 2 +- libmissing/gettext.h | 2 +- libmissing/gettimeofday.c | 2 +- libmissing/glthread/cond.c | 2 +- libmissing/glthread/cond.h | 2 +- libmissing/glthread/lock.c | 2 +- libmissing/glthread/lock.h | 2 +- libmissing/glthread/thread.c | 4 +- libmissing/glthread/thread.h | 11 +- libmissing/glthread/threadlib.c | 2 +- libmissing/glthread/tls.c | 2 +- libmissing/glthread/tls.h | 2 +- libmissing/hard-locale.c | 2 +- libmissing/hard-locale.h | 2 +- libmissing/inet_ntop.c | 2 +- libmissing/inet_pton.c | 2 +- libmissing/intprops.h | 100 +- libmissing/ioctl.c | 2 +- libmissing/itold.c | 2 +- libmissing/langinfo.in.h | 2 +- libmissing/limits.in.h | 63 + libmissing/listen.c | 2 +- libmissing/localcharset.c | 4 +- libmissing/localcharset.h | 2 +- libmissing/locale.in.h | 2 +- libmissing/localeconv.c | 2 +- libmissing/lseek.c | 2 +- libmissing/m4/00gnulib.m4 | 2 +- libmissing/m4/absolute-header.m4 | 2 +- libmissing/m4/alloca.m4 | 2 +- libmissing/m4/arpa_inet_h.m4 | 2 +- libmissing/m4/btowc.m4 | 2 +- libmissing/m4/builtin-expect.m4 | 49 + libmissing/m4/close.m4 | 2 +- libmissing/m4/cond.m4 | 2 +- libmissing/m4/configmake.m4 | 2 +- libmissing/m4/ctype.m4 | 2 +- libmissing/m4/dup2.m4 | 2 +- libmissing/m4/eealloc.m4 | 2 +- libmissing/m4/environ.m4 | 2 +- libmissing/m4/errno_h.m4 | 2 +- libmissing/m4/exponentd.m4 | 2 +- libmissing/m4/extensions.m4 | 46 +- libmissing/m4/extern-inline.m4 | 2 +- libmissing/m4/fclose.m4 | 9 +- libmissing/m4/fcntl-o.m4 | 2 +- libmissing/m4/fcntl_h.m4 | 2 +- libmissing/m4/fdopen.m4 | 2 +- libmissing/m4/fflush.m4 | 2 +- libmissing/m4/flexmember.m4 | 43 + libmissing/m4/float_h.m4 | 2 +- libmissing/m4/fopen.m4 | 2 +- libmissing/m4/fpieee.m4 | 2 +- libmissing/m4/fpurge.m4 | 2 +- libmissing/m4/freading.m4 | 2 +- libmissing/m4/fseek.m4 | 2 +- libmissing/m4/fseeko.m4 | 2 +- libmissing/m4/fstat.m4 | 2 +- libmissing/m4/ftell.m4 | 2 +- libmissing/m4/ftello.m4 | 2 +- libmissing/m4/ftruncate.m4 | 2 +- libmissing/m4/getaddrinfo.m4 | 6 +- libmissing/m4/getcwd.m4 | 2 +- libmissing/m4/getdelim.m4 | 2 +- libmissing/m4/getdtablesize.m4 | 2 +- libmissing/m4/gethostname.m4 | 2 +- libmissing/m4/getline.m4 | 2 +- libmissing/m4/getpagesize.m4 | 2 +- libmissing/m4/getpass.m4 | 2 +- libmissing/m4/gettimeofday.m4 | 2 +- libmissing/m4/glibc21.m4 | 2 +- libmissing/m4/gnulib-cache.m4 | 2 +- libmissing/m4/gnulib-common.m4 | 2 +- libmissing/m4/gnulib-comp.m4 | 39 +- libmissing/m4/gnulib-tool.m4 | 2 +- libmissing/m4/hard-locale.m4 | 2 +- libmissing/m4/hostent.m4 | 2 +- libmissing/m4/include_next.m4 | 2 +- libmissing/m4/inet_ntop.m4 | 2 +- libmissing/m4/inet_pton.m4 | 2 +- libmissing/m4/intmax_t.m4 | 2 +- libmissing/m4/inttypes-pri.m4 | 2 +- libmissing/m4/inttypes.m4 | 2 +- libmissing/m4/inttypes_h.m4 | 2 +- libmissing/m4/ioctl.m4 | 2 +- libmissing/m4/isblank.m4 | 17 + libmissing/m4/langinfo_h.m4 | 2 +- libmissing/m4/largefile.m4 | 2 +- libmissing/m4/lib-ld.m4 | 2 +- libmissing/m4/lib-link.m4 | 2 +- libmissing/m4/lib-prefix.m4 | 2 +- libmissing/m4/limits-h.m4 | 31 + libmissing/m4/localcharset.m4 | 2 +- libmissing/m4/locale-fr.m4 | 2 +- libmissing/m4/locale-ja.m4 | 2 +- libmissing/m4/locale-tr.m4 | 2 +- libmissing/m4/locale-zh.m4 | 2 +- libmissing/m4/locale_h.m4 | 2 +- libmissing/m4/localeconv.m4 | 2 +- libmissing/m4/localename.m4 | 2 +- libmissing/m4/lock.m4 | 2 +- libmissing/m4/longlong.m4 | 2 +- libmissing/m4/lseek.m4 | 2 +- libmissing/m4/lstat.m4 | 2 +- libmissing/m4/malloc.m4 | 2 +- libmissing/m4/malloca.m4 | 2 +- libmissing/m4/math_h.m4 | 16 +- libmissing/m4/mbrtowc.m4 | 14 +- libmissing/m4/mbsinit.m4 | 2 +- libmissing/m4/mbstate_t.m4 | 2 +- libmissing/m4/mbtowc.m4 | 2 +- libmissing/m4/memchr.m4 | 2 +- libmissing/m4/memmem.m4 | 2 +- libmissing/m4/minmax.m4 | 2 +- libmissing/m4/mktime.m4 | 5 +- libmissing/m4/mmap-anon.m4 | 2 +- libmissing/m4/mode_t.m4 | 2 +- libmissing/m4/msvc-inval.m4 | 2 +- libmissing/m4/msvc-nothrow.m4 | 2 +- libmissing/m4/multiarch.m4 | 2 +- libmissing/m4/netdb_h.m4 | 2 +- libmissing/m4/netinet_in_h.m4 | 2 +- libmissing/m4/nl_langinfo.m4 | 2 +- libmissing/m4/off_t.m4 | 2 +- libmissing/m4/onceonly.m4 | 2 +- libmissing/m4/open.m4 | 2 +- libmissing/m4/pathmax.m4 | 2 +- libmissing/m4/perror.m4 | 2 +- libmissing/m4/pipe.m4 | 2 +- libmissing/m4/poll.m4 | 2 +- libmissing/m4/poll_h.m4 | 2 +- libmissing/m4/printf.m4 | 4 +- libmissing/m4/putenv.m4 | 2 +- libmissing/m4/raise.m4 | 2 +- libmissing/m4/realloc.m4 | 79 -- libmissing/m4/regex.m4 | 2 +- libmissing/m4/relocatable-lib.m4 | 2 +- libmissing/m4/select.m4 | 2 +- libmissing/m4/servent.m4 | 2 +- libmissing/m4/setenv.m4 | 2 +- libmissing/m4/setlocale.m4 | 2 +- libmissing/m4/signal_h.m4 | 2 +- libmissing/m4/signalblocking.m4 | 2 +- libmissing/m4/size_max.m4 | 2 +- libmissing/m4/sleep.m4 | 2 +- libmissing/m4/snprintf.m4 | 12 +- libmissing/m4/socketlib.m4 | 2 +- libmissing/m4/sockets.m4 | 2 +- libmissing/m4/socklen.m4 | 2 +- libmissing/m4/sockpfaf.m4 | 2 +- libmissing/m4/ssize_t.m4 | 2 +- libmissing/m4/stat.m4 | 2 +- libmissing/m4/stdalign.m4 | 2 +- libmissing/m4/stdbool.m4 | 30 +- libmissing/m4/stddef_h.m4 | 2 +- libmissing/m4/stdint.m4 | 66 +- libmissing/m4/stdint_h.m4 | 2 +- libmissing/m4/stdio_h.m4 | 14 +- libmissing/m4/stdlib_h.m4 | 7 +- libmissing/m4/strcase.m4 | 2 +- libmissing/m4/strcasestr.m4 | 2 +- libmissing/m4/strdup.m4 | 2 +- libmissing/m4/strerror.m4 | 2 +- libmissing/m4/strerror_r.m4 | 28 +- libmissing/m4/string_h.m4 | 2 +- libmissing/m4/strings_h.m4 | 2 +- libmissing/m4/strndup.m4 | 2 +- libmissing/m4/strnlen.m4 | 2 +- libmissing/m4/strptime.m4 | 2 +- libmissing/m4/strsep.m4 | 2 +- libmissing/m4/symlink.m4 | 2 +- libmissing/m4/sys_ioctl_h.m4 | 2 +- libmissing/m4/sys_select_h.m4 | 2 +- libmissing/m4/sys_socket_h.m4 | 2 +- libmissing/m4/sys_stat_h.m4 | 2 +- libmissing/m4/sys_time_h.m4 | 2 +- libmissing/m4/sys_types_h.m4 | 29 +- libmissing/m4/sys_uio_h.m4 | 2 +- libmissing/m4/sys_utsname_h.m4 | 2 +- libmissing/m4/thread.m4 | 2 +- libmissing/m4/threadlib.m4 | 8 +- libmissing/m4/time_h.m4 | 2 +- libmissing/m4/time_r.m4 | 2 +- libmissing/m4/timegm.m4 | 2 +- libmissing/m4/tls.m4 | 2 +- libmissing/m4/tm_gmtoff.m4 | 2 +- libmissing/m4/uname.m4 | 2 +- libmissing/m4/ungetc.m4 | 2 +- libmissing/m4/unistd_h.m4 | 5 +- libmissing/m4/vasnprintf.m4 | 2 +- libmissing/m4/vsnprintf.m4 | 12 +- libmissing/m4/warn-on-use.m4 | 2 +- libmissing/m4/wchar_h.m4 | 16 +- libmissing/m4/wchar_t.m4 | 2 +- libmissing/m4/wcrtomb.m4 | 2 +- libmissing/m4/wctob.m4 | 2 +- libmissing/m4/wctomb.m4 | 2 +- libmissing/m4/wctype_h.m4 | 2 +- libmissing/m4/wint_t.m4 | 36 +- libmissing/m4/write.m4 | 2 +- libmissing/m4/xsize.m4 | 2 +- libmissing/m4/yield.m4 | 2 +- libmissing/malloc.c | 2 +- libmissing/mbrtowc.c | 2 +- libmissing/mbsinit.c | 2 +- libmissing/mbtowc-impl.h | 2 +- libmissing/mbtowc.c | 2 +- libmissing/memchr.c | 2 +- libmissing/memmem.c | 6 +- libmissing/minmax.h | 2 +- libmissing/mktime-internal.h | 2 +- libmissing/mktime.c | 4 +- libmissing/msvc-inval.c | 2 +- libmissing/msvc-inval.h | 2 +- libmissing/msvc-nothrow.c | 2 +- libmissing/msvc-nothrow.h | 2 +- libmissing/netdb.in.h | 2 +- libmissing/netinet_in.in.h | 2 +- libmissing/nl_langinfo.c | 39 +- libmissing/pathmax.h | 2 +- libmissing/perror.c | 2 +- libmissing/poll.c | 2 +- libmissing/poll.in.h | 2 +- libmissing/printf-args.c | 2 +- libmissing/printf-args.h | 2 +- libmissing/printf-parse.c | 2 +- libmissing/printf-parse.h | 2 +- libmissing/raise.c | 2 +- libmissing/realloc.c | 79 -- libmissing/ref-add.sin | 2 +- libmissing/ref-del.sin | 2 +- libmissing/regcomp.c | 2 +- libmissing/regex.c | 2 +- libmissing/regex.h | 8 +- libmissing/regex_internal.c | 2 +- libmissing/regex_internal.h | 10 +- libmissing/regexec.c | 8 +- libmissing/relocatable.c | 14 +- libmissing/relocatable.h | 2 +- libmissing/select.c | 2 +- libmissing/setsockopt.c | 2 +- libmissing/signal.in.h | 2 +- libmissing/sigprocmask.c | 2 +- libmissing/size_max.h | 2 +- libmissing/sleep.c | 2 +- libmissing/snprintf.c | 2 +- libmissing/socket.c | 2 +- libmissing/sockets.c | 2 +- libmissing/sockets.h | 2 +- libmissing/stat.c | 2 +- libmissing/stdalign.in.h | 2 +- libmissing/stdbool.in.h | 2 +- libmissing/stddef.in.h | 2 +- libmissing/stdint.in.h | 758 ++++++------ libmissing/stdio-impl.h | 29 +- libmissing/stdio.in.h | 22 +- libmissing/stdlib.in.h | 17 +- libmissing/str-two-way.h | 2 +- libmissing/strcasecmp.c | 2 +- libmissing/strcasestr.c | 2 +- libmissing/strdup.c | 2 +- libmissing/streq.h | 2 +- libmissing/strerror-override.c | 2 +- libmissing/strerror-override.h | 2 +- libmissing/strerror.c | 5 +- libmissing/strerror_r.c | 4 +- libmissing/string.in.h | 18 +- libmissing/strings.in.h | 2 +- libmissing/strncasecmp.c | 2 +- libmissing/strndup.c | 2 +- libmissing/strnlen.c | 2 +- libmissing/strptime.c | 20 +- libmissing/strsep.c | 2 +- libmissing/sys_ioctl.in.h | 2 +- libmissing/sys_select.in.h | 2 +- libmissing/sys_socket.in.h | 7 +- libmissing/sys_stat.in.h | 2 +- libmissing/sys_time.in.h | 9 +- libmissing/sys_types.in.h | 2 +- libmissing/sys_uio.in.h | 2 +- libmissing/sys_utsname.in.h | 2 +- libmissing/tests/Makefile.am | 41 +- libmissing/tests/binary-io.h | 2 +- libmissing/tests/c-strcase.h | 2 +- libmissing/tests/c-strcasecmp.c | 2 +- libmissing/tests/c-strncasecmp.c | 2 +- libmissing/tests/ctype.in.h | 2 +- libmissing/tests/fcntl.in.h | 2 +- libmissing/tests/fdopen.c | 2 +- libmissing/tests/flexmember.h | 42 + libmissing/tests/fpucw.h | 2 +- libmissing/tests/ftruncate.c | 2 +- libmissing/tests/getcwd-lgpl.c | 2 +- libmissing/tests/getdtablesize.c | 2 +- libmissing/tests/getpagesize.c | 2 +- libmissing/tests/glthread/yield.h | 2 +- libmissing/tests/ignore-value.h | 2 +- libmissing/tests/init.sh | 79 +- libmissing/tests/inttypes.in.h | 2 +- libmissing/tests/isblank.c | 33 + libmissing/tests/localename.c | 8 +- libmissing/tests/localename.h | 2 +- libmissing/tests/lstat.c | 2 +- libmissing/tests/macros.h | 2 +- libmissing/tests/malloca.c | 2 +- libmissing/tests/malloca.h | 15 +- libmissing/tests/open.c | 2 +- libmissing/tests/pipe.c | 2 +- libmissing/tests/putenv.c | 2 +- libmissing/tests/same-inode.h | 8 +- libmissing/tests/setenv.c | 2 +- libmissing/tests/setlocale.c | 2 +- libmissing/tests/signature.h | 2 +- libmissing/tests/symlink.c | 2 +- libmissing/tests/test-accept.c | 2 +- libmissing/tests/test-alloca-opt.c | 2 +- libmissing/tests/test-arpa_inet.c | 2 +- libmissing/tests/test-binary-io.c | 2 +- libmissing/tests/test-bind.c | 2 +- libmissing/tests/test-btowc.c | 2 +- libmissing/tests/test-c-ctype.c | 2 +- libmissing/tests/test-c-strcasecmp.c | 5 +- libmissing/tests/test-c-strncasecmp.c | 5 +- libmissing/tests/test-close.c | 2 +- libmissing/tests/test-cond.c | 2 +- libmissing/tests/test-connect.c | 2 +- libmissing/tests/test-ctype.c | 2 +- libmissing/tests/test-dup2.c | 2 +- libmissing/tests/test-environ.c | 2 +- libmissing/tests/test-errno.c | 2 +- libmissing/tests/test-fclose.c | 2 +- libmissing/tests/test-fcntl-h.c | 2 +- libmissing/tests/test-fdopen.c | 2 +- libmissing/tests/test-fflush.c | 2 +- libmissing/tests/test-fflush2.c | 2 +- libmissing/tests/test-fgetc.c | 2 +- libmissing/tests/test-float.c | 2 +- libmissing/tests/test-fopen.c | 2 +- libmissing/tests/test-fopen.h | 2 +- libmissing/tests/test-fpurge.c | 2 +- libmissing/tests/test-fputc.c | 2 +- libmissing/tests/test-fread.c | 2 +- libmissing/tests/test-freading.c | 2 +- libmissing/tests/test-fseek.c | 2 +- libmissing/tests/test-fseeko.c | 2 +- libmissing/tests/test-fseeko3.c | 2 +- libmissing/tests/test-fseeko4.c | 2 +- libmissing/tests/test-fstat.c | 2 +- libmissing/tests/test-ftell.c | 2 +- libmissing/tests/test-ftell3.c | 2 +- libmissing/tests/test-ftello.c | 2 +- libmissing/tests/test-ftello3.c | 2 +- libmissing/tests/test-ftello4.c | 2 +- libmissing/tests/test-ftruncate.c | 2 +- libmissing/tests/test-fwrite.c | 2 +- libmissing/tests/test-getaddrinfo.c | 9 +- libmissing/tests/test-getcwd-lgpl.c | 2 +- libmissing/tests/test-getdelim.c | 2 +- libmissing/tests/test-getdtablesize.c | 2 +- libmissing/tests/test-gethostname.c | 2 +- libmissing/tests/test-getline.c | 2 +- libmissing/tests/test-getsockname.c | 2 +- libmissing/tests/test-gettimeofday.c | 2 +- libmissing/tests/test-ignore-value.c | 2 +- libmissing/tests/test-inet_ntop.c | 2 +- libmissing/tests/test-inet_pton.c | 2 +- libmissing/tests/test-init.sh | 5 +- libmissing/tests/test-intprops.c | 11 +- libmissing/tests/test-inttypes.c | 2 +- libmissing/tests/test-ioctl.c | 2 +- libmissing/tests/test-isblank.c | 50 + libmissing/tests/test-langinfo.c | 2 +- libmissing/tests/test-limits-h.c | 50 + libmissing/tests/test-listen.c | 2 +- libmissing/tests/test-locale.c | 2 +- libmissing/tests/test-localeconv.c | 2 +- libmissing/tests/test-localename.c | 2 +- libmissing/tests/test-lock.c | 81 +- libmissing/tests/test-lseek.c | 2 +- libmissing/tests/test-lstat.c | 2 +- libmissing/tests/test-lstat.h | 2 +- libmissing/tests/test-malloca.c | 2 +- libmissing/tests/test-mbrtowc-w32.c | 2 +- libmissing/tests/test-mbrtowc.c | 2 +- libmissing/tests/test-mbsinit.c | 2 +- libmissing/tests/test-memchr.c | 2 +- libmissing/tests/test-memmem.c | 2 +- libmissing/tests/test-netdb.c | 2 +- libmissing/tests/test-netinet_in.c | 2 +- libmissing/tests/test-nl_langinfo.c | 2 +- libmissing/tests/test-open.c | 2 +- libmissing/tests/test-open.h | 2 +- libmissing/tests/test-pathmax.c | 2 +- libmissing/tests/test-perror.c | 2 +- libmissing/tests/test-perror2.c | 2 +- libmissing/tests/test-pipe.c | 2 +- libmissing/tests/test-poll-h.c | 2 +- libmissing/tests/test-poll.c | 2 +- libmissing/tests/test-raise.c | 2 +- libmissing/tests/test-regex.c | 2 +- libmissing/tests/test-select-fd.c | 2 +- libmissing/tests/test-select-stdin.c | 2 +- libmissing/tests/test-select.c | 2 +- libmissing/tests/test-select.h | 2 +- libmissing/tests/test-setenv.c | 2 +- libmissing/tests/test-setlocale1.c | 2 +- libmissing/tests/test-setlocale2.c | 2 +- libmissing/tests/test-setsockopt.c | 2 +- libmissing/tests/test-signal-h.c | 2 +- libmissing/tests/test-sigprocmask.c | 2 +- libmissing/tests/test-sleep.c | 2 +- libmissing/tests/test-snprintf.c | 2 +- libmissing/tests/test-sockets.c | 2 +- libmissing/tests/test-stat.c | 2 +- libmissing/tests/test-stat.h | 2 +- libmissing/tests/test-stdalign.c | 2 +- libmissing/tests/test-stdbool.c | 2 +- libmissing/tests/test-stddef.c | 2 +- libmissing/tests/test-stdint.c | 69 +- libmissing/tests/test-stdio.c | 2 +- libmissing/tests/test-stdlib.c | 2 +- libmissing/tests/test-strcasestr.c | 2 +- libmissing/tests/test-strerror.c | 2 +- libmissing/tests/test-strerror_r.c | 2 +- libmissing/tests/test-string.c | 2 +- libmissing/tests/test-strings.c | 2 +- libmissing/tests/test-strnlen.c | 2 +- libmissing/tests/test-symlink.c | 2 +- libmissing/tests/test-symlink.h | 2 +- libmissing/tests/test-sys_ioctl.c | 2 +- libmissing/tests/test-sys_select.c | 2 +- libmissing/tests/test-sys_socket.c | 2 +- libmissing/tests/test-sys_stat.c | 2 +- libmissing/tests/test-sys_time.c | 2 +- libmissing/tests/test-sys_types.c | 2 +- libmissing/tests/test-sys_uio.c | 2 +- libmissing/tests/test-sys_utsname.c | 2 +- libmissing/tests/test-sys_wait.h | 2 +- libmissing/tests/test-thread_create.c | 2 +- libmissing/tests/test-thread_self.c | 2 +- libmissing/tests/test-time.c | 2 +- libmissing/tests/test-tls.c | 2 +- libmissing/tests/test-uname.c | 2 +- libmissing/tests/test-unistd.c | 2 +- libmissing/tests/test-unsetenv.c | 2 +- libmissing/tests/test-vasnprintf.c | 2 +- libmissing/tests/test-verify.c | 2 +- libmissing/tests/test-vsnprintf.c | 2 +- libmissing/tests/test-wchar.c | 2 +- libmissing/tests/test-wcrtomb-w32.c | 2 +- libmissing/tests/test-wcrtomb.c | 2 +- libmissing/tests/test-wctype-h.c | 2 +- libmissing/tests/test-write.c | 2 +- libmissing/tests/unsetenv.c | 2 +- libmissing/tests/wctob.c | 2 +- libmissing/tests/wctomb-impl.h | 2 +- libmissing/tests/wctomb.c | 2 +- libmissing/tests/xalloc-oversized.h | 68 ++ libmissing/tests/zerosize-ptr.h | 2 +- libmissing/time.in.h | 2 +- libmissing/time_r.c | 2 +- libmissing/timegm.c | 2 +- libmissing/uname.c | 2 +- libmissing/unistd.in.h | 8 +- libmissing/vasnprintf.c | 4 +- libmissing/vasnprintf.h | 2 +- libmissing/verify.h | 2 +- libmissing/vsnprintf.c | 2 +- libmissing/w32sock.h | 2 +- libmissing/wchar.in.h | 9 +- libmissing/wcrtomb.c | 2 +- libmissing/wctype.in.h | 23 +- libmissing/write.c | 2 +- libmissing/xsize.h | 2 +- m4/gtk-doc.m4 | 47 +- snippet/arg-nonnull.h | 2 +- snippet/c++defs.h | 89 +- snippet/unused-parameter.h | 2 +- snippet/warn-on-use.h | 2 +- 526 files changed, 3640 insertions(+), 2364 deletions(-) commit 6ab05c5c1e4cec8534c3e093ea942ff8e9b12050 Author: Yoann Vandoorselaere Date: Wed Sep 21 15:47:29 2016 +0200 [#1939] Get rid of libgcrypt Nowaydays, libgcrypt functions that we used are now available directly from GnuTLS, which use libnettle. Change-Id: I2ca9b61437193efa29868aaff8e8117a23778296 README | 4 +- configure.ac | 21 ++------ m4/libgcrypt.m4 | 123 ------------------------------------------- m4/libprelude.m4 | 1 - prelude-admin/server.c | 12 +++-- prelude-admin/tls-register.c | 14 ----- src/Makefile.am | 2 +- src/common.c | 109 ++++++++++++++++++++++++++++++++++++++ src/include/common.h | 2 + src/prelude-client.c | 14 +++-- src/prelude-failover.c | 17 +++--- src/prelude-ident.c | 9 ++-- src/prelude.c | 60 +-------------------- 13 files changed, 150 insertions(+), 238 deletions(-) commit 974c884325403df970581e8a4435f93a2733a3d6 Author: Antoine LUONG Date: Fri Dec 23 10:59:22 2016 +0100 Update NEWS, bump version Change-Id: Id452d8820f4769c7e7c34425d86be6da7628889c NEWS | 18 ++++++++++++++++++ configure.ac | 16 ++++++++-------- 2 files changed, 26 insertions(+), 8 deletions(-) commit af4d61f763210e1a4dd9b3da0abcea3bc7a2280f Author: Yoann Vandoorselaere Date: Tue Dec 6 17:42:18 2016 +0800 [#2091] Implement idmef_criteria_get_class() This function can be used to retrieve the idmef_class_id_t of the root paths elements used for a given criteria. Change-Id: Id1a7e43e71b09064cf4d0d7ca3364859939a46dc src/idmef-criteria.c | 27 +++++++++++++++++++++++++++ src/include/idmef-criteria.h | 2 ++ 2 files changed, 29 insertions(+) commit 5293b3b06ab9792480a83f65817fc879aec87db3 Author: Yoann Vandoorselaere Date: Mon Nov 21 22:31:09 2016 +0800 [#rel2047] Implement prelude.return_unicode(flags) When enabled, string returned from SWIG wrapped function will be converted to unicode. Change-Id: I7cd2e29d22c7490780cc8e90f4dc1143e825d5cf bindings/python/_prelude.cxx | 215 +++++++++++++++++++++++---------- bindings/python/libpreludecpp-python.i | 9 ++ bindings/python/pystrings.swg | 146 ++++++++++++++-------- 3 files changed, 252 insertions(+), 118 deletions(-) commit 73747412859478908ef2d54df5a3362ccb1aa75c Author: Yoann Vandoorselaere Date: Mon Oct 24 17:24:50 2016 +0800 [#1940] Fix possible IDMEFValue 'out of range' error If errno is set to ERANGE before the convertion function are called, an error will be returned even tought the convertion was successful. Initialize errno before the calls. Change-Id: Icc267d5461b0132c2c32b175cf4a2ab494a99af9 src/idmef-value-type.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 25a14f0a8e7ffa089246ff7d833eb52f1c986b2d Author: Thomas ANDREJAK Date: Wed Sep 14 00:46:24 2016 +0200 Update NEWS, bump version Change-Id: I3522946865b4b6375508d778dffb77eff9f5db6a NEWS | 8 ++++++++ configure.ac | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit 784240e25c18ed7cfe00ab74dbbf8ee082daa979 Author: Thomas ANDREJAK Date: Sat Sep 10 16:23:04 2016 +0200 [#1654] Fix idmef_path_(get|set) docstring Change-Id: I919f851d9f649015c704db93c7164f70c7144b65 src/idmef-path.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9e499ea12bf327a7cd2aadcd44f00fc0f5c0ca3f Author: Antoine LUONG Date: Thu Sep 1 08:35:04 2016 +0200 Update NEWS, bump version Change-Id: I6e90fc1c3be35bd30e1e9c2d4d0a0d65ac4d6afd NEWS | 6 ++++++ configure.ac | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) commit 01c57f045fe90836c9a3131369ce1b54e4d00a0c Author: Antoine LUONG Date: Fri Aug 19 16:20:00 2016 +0200 Update NEWS, bump version Change-Id: I1df8a33dbea4b943ae75935f5483a9e025e39257 NEWS | 8 ++++++++ configure.ac | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) commit 6783faf6270212b5f8c9db1705a09dae3d028f47 Author: Thomas ANDREJAK Date: Fri Jul 15 23:14:56 2016 +0200 [#1770] Fix configure and --with-ruby Change-Id: Ic29adcfac37260b3ce2cf766a84d4912efc39bf8 configure.ac | 7 ++++++- m4/am_path_ruby.m4 | 7 +++---- 2 files changed, 9 insertions(+), 5 deletions(-) commit 0c051aac910511882f3b87ef1078a2b6cf820fac Author: Antoine LUONG Date: Fri Aug 5 16:11:21 2016 +0200 Update NEWS, bump version Change-Id: I3ae37c7ad95ee108f34e402c9f418d76ae4e2535 NEWS | 39 +++++++++++++++++++++++++++++++++++++++ configure.ac | 14 +++++++------- 2 files changed, 46 insertions(+), 7 deletions(-) commit bcdf6fa8b989c83bd7cb0b94ee918fac7fde5824 Merge: 55c81f0 ad39b1d Author: Thomas Andrejak Date: Fri Aug 5 16:06:29 2016 +0200 Merge "[#1804] Fix detection of lua 5.2" commit ad39b1d0ccb8c1b08a32e7723ce0fe7f92460406 Author: Thomas ANDREJAK Date: Mon Aug 1 19:32:50 2016 +0200 [#1804] Fix detection of lua 5.2 Change-Id: I0de13f433492d08ccdaad2cb5dcb5119f230e0a3 configure.ac | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) commit 55c81f0ad1bedaa233cb0b4f036b0970f957eae1 Author: Thomas ANDREJAK Date: Mon Jul 25 00:38:37 2016 +0200 [#1785] Fix python uninstall with /usr and /usr/local Change-Id: Iadea7533a051bb79418dd17f642910c5c35c123c bindings/python/Makefile.am | 8 ++++---- bindings/python/setup.py.in | 11 +++++++++-- 2 files changed, 13 insertions(+), 6 deletions(-) commit e6fa1df68edb9f6b0099e5632f1934ca45044ac9 Author: Thomas ANDREJAK Date: Mon Jul 25 00:40:13 2016 +0200 [#1785] Fix perl binding cleaning When running "make distcheck", if one command fails, the whole directive fails. So if "test -f", the whole clean-local fail. Change-Id: I60c3ba6e0f8539b7bbe08b3612880d1be6ed5161 bindings/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bd6f118e4c3b070004d34a9738cbedb2256ea824 Author: Thomas ANDREJAK Date: Mon Jul 25 00:42:32 2016 +0200 [#rel1785] Missing dependencies in README Change-Id: Ia590bb518e74356bc9753d6451256c36b4ac6e51 README | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit 422b0865bd08cd5016a6a8876821a1632cf7dc3b Author: Thomas ANDREJAK Date: Tue Aug 2 17:14:11 2016 +0200 [#1806] Make the perl binding use LDFLAGS Change-Id: I8a3e857bde3a2abbde6e33351f6b5db127068c8e bindings/perl/Makefile.PL.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2e9994dba42dd6b3a29033ae3b1c107acf622fdb Author: Thomas ANDREJAK Date: Tue Aug 2 11:06:14 2016 +0200 [#1806] Enable configure to detect ruby with pkg-config Change-Id: Id2e07e4654021f43af02db717b8a75f8f066f62a m4/am_path_ruby.m4 | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 15121a419976098ec87a61d56aaa56c74205c6b8 Author: Thomas ANDREJAK Date: Mon Jul 25 00:36:20 2016 +0200 [#1785] Fix cleanning of lex and yacc files Change-Id: I3750d604abb061102774c49df6bb599d564a4951 src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 22361f9d57d37c11839a2069734dee1ff42a77b9 Author: Thomas ANDREJAK Date: Mon Jul 25 00:25:51 2016 +0200 [#1784] Rename configure.in to configure.ac Change-Id: Ic8d031e17c21556436a1b640e5c64c86b6f7bc63 configure.ac | 853 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 853 ----------------------------------------------------------- 2 files changed, 853 insertions(+), 853 deletions(-) commit b7482747267d1f4201e08e53a952e5f6a3580f6b Author: Thomas ANDREJAK Date: Thu Jul 7 23:25:03 2016 +0200 [#1761] Fix man page entry for RPMLint Change-Id: Ic13a9ac964362df23272533e42c3554ec07eac8b docs/manpages/prelude-admin.1 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 9920fa40f3e89de36f806c1fd0616aebdaefeee5 Author: Thomas ANDREJAK Date: Mon Jul 4 10:44:29 2016 +0200 [#1751] Update FSF address Change-Id: Ia3edb1f04671b3d054943f230da4eece973036b3 bindings/python/setup.py.in | 6 +++--- src/libprelude-error/prelude-error.h.in | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit bdac8d618ecb4347e0851d7586b9d19bfc5b8298 Author: Thomas ANDREJAK Date: Mon Jul 4 10:39:49 2016 +0200 [#1750] Make libprelude-error take CFLAGS into account Change-Id: I4648fc25e49a012505a1b388afbdbda7794ce0d8 src/libprelude-error/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 64924a46a0c1c4a5f41ab708af0a52a6b69274ac Author: Yoann Vandoorselaere Date: Wed Jul 6 16:01:08 2016 +0200 [#1686] Add a JSON export/import module Export a IDMEF object: void idmef_message_print_json(idmef_message_t *ptr, prelude_io_t *fd); Import a IDMEF JSON: int idmef_message_read_json(idmef_message_t *message, const char * json_message); Change-Id: Ifaae7dc1117e86b6bdb1c953d75351bf08414901 bindings/c++/idmef.cxx | 62 +- bindings/c++/include/idmef.hxx | 3 + bindings/libpreludecpp.i | 1 + bindings/lua/prelude.cxx | 75 +- bindings/perl/Prelude.cxx | 100 +- bindings/perl/Prelude.pm | 1 + bindings/python/_prelude.cxx | 245 +- bindings/python/libpreludecpp-python.i | 34 +- bindings/ruby/Prelude.cxx | 88 +- configure.in | 1 + src/Makefile.am | 6 +- src/idmef-class.c | 14 + src/idmef-message-print-json.c | 3556 ++++++++++++++++ src/idmef-message-read-json.c | 4334 ++++++++++++++++++++ src/idmef-object.c | 6 + .../GenerateIDMEFMessagePrintJSONC.pm | 466 +++ .../GenerateIDMEFMessagePrintJSONH.pm | 96 + .../GenerateIDMEFMessageReadJSONC.pm | 846 ++++ src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 + src/idmef-wrappers-gen/generator.pl | 15 + src/include/Makefile.am | 1 + src/include/idmef-class.h | 2 + src/include/idmef-message-print-json.h | 72 + src/include/idmef-object.h | 4 + src/include/idmef-tree-data.h | 61 +- src/jsmn/Makefile.am | 1 + src/jsmn/jsmn.c | 311 ++ src/jsmn/jsmn.h | 76 + 28 files changed, 10364 insertions(+), 115 deletions(-) commit 30ee157aee18f795b53fee9411e8ba78b80f9283 Author: Yoann Vandoorselaere Date: Wed Jul 6 15:53:00 2016 +0200 Update SWIG code Change-Id: I7ba88f3d0c15a9057e673ebde35254eade9c1c29 bindings/lua/prelude.cxx | 77 +++- bindings/perl/Prelude.cxx | 250 +++++----- bindings/perl/Prelude.pm | 2 +- bindings/python/_prelude.cxx | 1048 ++++++++++++++++++++++++++++++++---------- bindings/python/prelude.py | 56 ++- bindings/ruby/Prelude.cxx | 908 ++++++++++++++++++------------------ 6 files changed, 1499 insertions(+), 842 deletions(-) commit e3118bfd546ef03fbe9bb742674787e48c4c26d9 Author: Yoann Vandoorselaere Date: Sun May 1 17:56:29 2016 +0700 [#rel1686] idmef_data_to_string() can output binary string stored as "char-string" Change-Id: I082fb52e6deaf38c02e1af7deaa480935a2d8972 src/idmef-data.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2142ecd75b9d97c5d022deeb5d189463a45a8078 Author: Sélim Menouar Date: Mon May 2 10:52:08 2016 +0200 [#1684] Add libprelude-config man page Change-Id: I59c3e375ace219620e3c21fed5c14872a1508b7c docs/manpages/Makefile.am | 2 +- docs/manpages/libprelude-config.1 | 60 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) commit e792e440d55dd849bd21c1b75dfe1085ec2a7837 Author: Yoann Vandoorselaere Date: Thu Jun 16 15:52:36 2016 +0800 Update GnuLib code Change-Id: I6307dc3a7208fc4fb54480770c864c0482d396f0 config.rpath | 2 +- libmissing/Makefile.am | 34 ++- libmissing/accept.c | 2 +- libmissing/alloca.in.h | 2 +- libmissing/arpa_inet.in.h | 2 +- libmissing/asnprintf.c | 2 +- libmissing/assure.h | 37 +++ libmissing/bind.c | 2 +- libmissing/btowc.c | 2 +- libmissing/c-ctype.c | 394 +--------------------------- libmissing/c-ctype.h | 453 +++++++++++++++++++-------------- libmissing/close.c | 2 +- libmissing/config.charset | 6 +- libmissing/connect.c | 2 +- libmissing/dosname.h | 2 +- libmissing/dup2.c | 53 +++- libmissing/errno.in.h | 2 +- libmissing/fclose.c | 2 +- libmissing/fd-hook.c | 2 +- libmissing/fd-hook.h | 2 +- libmissing/fflush.c | 14 +- libmissing/float+.h | 2 +- libmissing/float.c | 2 +- libmissing/float.in.h | 2 +- libmissing/fopen.c | 2 +- libmissing/fpurge.c | 8 +- libmissing/freading.c | 5 +- libmissing/freading.h | 2 +- libmissing/fseek.c | 2 +- libmissing/fseeko.c | 13 +- libmissing/fstat.c | 2 +- libmissing/ftell.c | 2 +- libmissing/ftello.c | 2 +- libmissing/gai_strerror.c | 2 +- libmissing/getaddrinfo.c | 2 +- libmissing/getdelim.c | 2 +- libmissing/gethostname.c | 2 +- libmissing/getline.c | 2 +- libmissing/getpass.c | 2 +- libmissing/getpass.h | 2 +- libmissing/getsockname.c | 2 +- libmissing/gettext.h | 10 +- libmissing/gettimeofday.c | 2 +- libmissing/glthread/cond.c | 2 +- libmissing/glthread/cond.h | 2 +- libmissing/glthread/lock.c | 2 +- libmissing/glthread/lock.h | 2 +- libmissing/glthread/thread.c | 2 +- libmissing/glthread/thread.h | 2 +- libmissing/glthread/threadlib.c | 2 +- libmissing/glthread/tls.c | 2 +- libmissing/glthread/tls.h | 2 +- libmissing/hard-locale.c | 72 ++++++ libmissing/hard-locale.h | 25 ++ libmissing/inet_ntop.c | 4 +- libmissing/inet_pton.c | 2 +- libmissing/intprops.h | 196 ++++++++++---- libmissing/ioctl.c | 2 +- libmissing/itold.c | 2 +- libmissing/langinfo.in.h | 2 +- libmissing/listen.c | 2 +- libmissing/localcharset.c | 44 +++- libmissing/localcharset.h | 2 +- libmissing/locale.in.h | 2 +- libmissing/localeconv.c | 2 +- libmissing/lseek.c | 2 +- libmissing/m4/00gnulib.m4 | 2 +- libmissing/m4/absolute-header.m4 | 2 +- libmissing/m4/alloca.m4 | 2 +- libmissing/m4/arpa_inet_h.m4 | 2 +- libmissing/m4/btowc.m4 | 2 +- libmissing/m4/close.m4 | 2 +- libmissing/m4/codeset.m4 | 3 +- libmissing/m4/cond.m4 | 2 +- libmissing/m4/configmake.m4 | 2 +- libmissing/m4/ctype.m4 | 32 +++ libmissing/m4/dup2.m4 | 98 ++++--- libmissing/m4/eealloc.m4 | 2 +- libmissing/m4/environ.m4 | 2 +- libmissing/m4/errno_h.m4 | 2 +- libmissing/m4/exponentd.m4 | 2 +- libmissing/m4/extensions.m4 | 7 +- libmissing/m4/extern-inline.m4 | 15 +- libmissing/m4/fclose.m4 | 2 +- libmissing/m4/fcntl-o.m4 | 2 +- libmissing/m4/fcntl_h.m4 | 2 +- libmissing/m4/fdopen.m4 | 2 +- libmissing/m4/fflush.m4 | 2 +- libmissing/m4/float_h.m4 | 2 +- libmissing/m4/fopen.m4 | 2 +- libmissing/m4/fpieee.m4 | 4 +- libmissing/m4/fpurge.m4 | 2 +- libmissing/m4/freading.m4 | 2 +- libmissing/m4/fseek.m4 | 2 +- libmissing/m4/fseeko.m4 | 2 +- libmissing/m4/fstat.m4 | 2 +- libmissing/m4/ftell.m4 | 2 +- libmissing/m4/ftello.m4 | 2 +- libmissing/m4/ftruncate.m4 | 2 +- libmissing/m4/getaddrinfo.m4 | 2 +- libmissing/m4/getcwd.m4 | 13 +- libmissing/m4/getdelim.m4 | 6 +- libmissing/m4/getdtablesize.m4 | 8 +- libmissing/m4/gethostname.m4 | 2 +- libmissing/m4/getline.m4 | 7 +- libmissing/m4/getpagesize.m4 | 2 +- libmissing/m4/getpass.m4 | 2 +- libmissing/m4/gettimeofday.m4 | 2 +- libmissing/m4/glibc21.m4 | 2 +- libmissing/m4/gnulib-cache.m4 | 6 +- libmissing/m4/gnulib-common.m4 | 45 ++-- libmissing/m4/gnulib-comp.m4 | 38 ++- libmissing/m4/gnulib-tool.m4 | 2 +- libmissing/m4/hard-locale.m4 | 11 + libmissing/m4/hostent.m4 | 2 +- libmissing/m4/include_next.m4 | 2 +- libmissing/m4/inet_ntop.m4 | 2 +- libmissing/m4/inet_pton.m4 | 2 +- libmissing/m4/intlmacosx.m4 | 6 +- libmissing/m4/intmax_t.m4 | 2 +- libmissing/m4/inttypes-pri.m4 | 2 +- libmissing/m4/inttypes.m4 | 2 +- libmissing/m4/inttypes_h.m4 | 2 +- libmissing/m4/ioctl.m4 | 2 +- libmissing/m4/langinfo_h.m4 | 2 +- libmissing/m4/largefile.m4 | 2 +- libmissing/m4/lcmessage.m4 | 8 +- libmissing/m4/lib-ld.m4 | 2 +- libmissing/m4/lib-link.m4 | 2 +- libmissing/m4/lib-prefix.m4 | 2 +- libmissing/m4/localcharset.m4 | 2 +- libmissing/m4/locale-fr.m4 | 2 +- libmissing/m4/locale-ja.m4 | 2 +- libmissing/m4/locale-tr.m4 | 2 +- libmissing/m4/locale-zh.m4 | 2 +- libmissing/m4/locale_h.m4 | 2 +- libmissing/m4/localeconv.m4 | 2 +- libmissing/m4/localename.m4 | 7 +- libmissing/m4/lock.m4 | 2 +- libmissing/m4/longlong.m4 | 2 +- libmissing/m4/lseek.m4 | 2 +- libmissing/m4/lstat.m4 | 50 ++-- libmissing/m4/malloc.m4 | 13 +- libmissing/m4/malloca.m4 | 2 +- libmissing/m4/math_h.m4 | 2 +- libmissing/m4/mbrtowc.m4 | 56 +++- libmissing/m4/mbsinit.m4 | 2 +- libmissing/m4/mbstate_t.m4 | 2 +- libmissing/m4/mbtowc.m4 | 2 +- libmissing/m4/memchr.m4 | 2 +- libmissing/m4/memmem.m4 | 4 +- libmissing/m4/minmax.m4 | 2 +- libmissing/m4/mktime.m4 | 24 +- libmissing/m4/mmap-anon.m4 | 2 +- libmissing/m4/mode_t.m4 | 2 +- libmissing/m4/msvc-inval.m4 | 2 +- libmissing/m4/msvc-nothrow.m4 | 2 +- libmissing/m4/multiarch.m4 | 2 +- libmissing/m4/netdb_h.m4 | 2 +- libmissing/m4/netinet_in_h.m4 | 2 +- libmissing/m4/nl_langinfo.m4 | 2 +- libmissing/m4/off_t.m4 | 2 +- libmissing/m4/onceonly.m4 | 2 +- libmissing/m4/open.m4 | 2 +- libmissing/m4/pathmax.m4 | 2 +- libmissing/m4/perror.m4 | 2 +- libmissing/m4/pipe.m4 | 2 +- libmissing/m4/poll.m4 | 2 +- libmissing/m4/poll_h.m4 | 2 +- libmissing/m4/printf.m4 | 51 ++-- libmissing/m4/putenv.m4 | 2 +- libmissing/m4/raise.m4 | 2 +- libmissing/m4/realloc.m4 | 13 +- libmissing/m4/regex.m4 | 6 +- libmissing/m4/relocatable-lib.m4 | 2 +- libmissing/m4/select.m4 | 5 +- libmissing/m4/servent.m4 | 2 +- libmissing/m4/setenv.m4 | 2 +- libmissing/m4/setlocale.m4 | 2 +- libmissing/m4/signal_h.m4 | 2 +- libmissing/m4/signalblocking.m4 | 2 +- libmissing/m4/size_max.m4 | 2 +- libmissing/m4/sleep.m4 | 2 +- libmissing/m4/snprintf.m4 | 2 +- libmissing/m4/socketlib.m4 | 2 +- libmissing/m4/sockets.m4 | 2 +- libmissing/m4/socklen.m4 | 2 +- libmissing/m4/sockpfaf.m4 | 2 +- libmissing/m4/ssize_t.m4 | 2 +- libmissing/m4/stat.m4 | 2 +- libmissing/m4/stdalign.m4 | 10 +- libmissing/m4/stdbool.m4 | 36 +-- libmissing/m4/stddef_h.m4 | 10 +- libmissing/m4/stdint.m4 | 31 ++- libmissing/m4/stdint_h.m4 | 2 +- libmissing/m4/stdio_h.m4 | 31 ++- libmissing/m4/stdlib_h.m4 | 2 +- libmissing/m4/strcase.m4 | 2 +- libmissing/m4/strcasestr.m4 | 4 +- libmissing/m4/strdup.m4 | 2 +- libmissing/m4/strerror.m4 | 2 +- libmissing/m4/strerror_r.m4 | 2 +- libmissing/m4/string_h.m4 | 2 +- libmissing/m4/strings_h.m4 | 2 +- libmissing/m4/strndup.m4 | 9 +- libmissing/m4/strnlen.m4 | 2 +- libmissing/m4/strptime.m4 | 2 +- libmissing/m4/strsep.m4 | 2 +- libmissing/m4/symlink.m4 | 2 +- libmissing/m4/sys_ioctl_h.m4 | 2 +- libmissing/m4/sys_select_h.m4 | 2 +- libmissing/m4/sys_socket_h.m4 | 2 +- libmissing/m4/sys_stat_h.m4 | 2 +- libmissing/m4/sys_time_h.m4 | 3 +- libmissing/m4/sys_types_h.m4 | 2 +- libmissing/m4/sys_uio_h.m4 | 2 +- libmissing/m4/sys_utsname_h.m4 | 2 +- libmissing/m4/thread.m4 | 2 +- libmissing/m4/threadlib.m4 | 2 +- libmissing/m4/time_h.m4 | 22 +- libmissing/m4/time_r.m4 | 2 +- libmissing/m4/timegm.m4 | 2 +- libmissing/m4/tls.m4 | 2 +- libmissing/m4/tm_gmtoff.m4 | 2 +- libmissing/m4/uname.m4 | 2 +- libmissing/m4/ungetc.m4 | 7 +- libmissing/m4/unistd_h.m4 | 6 +- libmissing/m4/vasnprintf.m4 | 2 +- libmissing/m4/vsnprintf.m4 | 2 +- libmissing/m4/warn-on-use.m4 | 2 +- libmissing/m4/wchar_h.m4 | 2 +- libmissing/m4/wchar_t.m4 | 2 +- libmissing/m4/wcrtomb.m4 | 2 +- libmissing/m4/wctob.m4 | 2 +- libmissing/m4/wctomb.m4 | 2 +- libmissing/m4/wctype_h.m4 | 2 +- libmissing/m4/wint_t.m4 | 2 +- libmissing/m4/write.m4 | 2 +- libmissing/m4/xsize.m4 | 2 +- libmissing/m4/yield.m4 | 2 +- libmissing/malloc.c | 2 +- libmissing/mbrtowc.c | 56 ++-- libmissing/mbsinit.c | 2 +- libmissing/mbtowc-impl.h | 2 +- libmissing/mbtowc.c | 2 +- libmissing/memchr.c | 2 +- libmissing/memmem.c | 2 +- libmissing/minmax.h | 2 +- libmissing/mktime-internal.h | 35 ++- libmissing/mktime.c | 467 +++++++++++++--------------------- libmissing/msvc-inval.c | 2 +- libmissing/msvc-inval.h | 2 +- libmissing/msvc-nothrow.c | 2 +- libmissing/msvc-nothrow.h | 2 +- libmissing/netdb.in.h | 2 +- libmissing/netinet_in.in.h | 2 +- libmissing/nl_langinfo.c | 2 +- libmissing/pathmax.h | 2 +- libmissing/perror.c | 2 +- libmissing/poll.c | 75 ++---- libmissing/poll.in.h | 2 +- libmissing/printf-args.c | 2 +- libmissing/printf-args.h | 2 +- libmissing/printf-parse.c | 2 +- libmissing/printf-parse.h | 2 +- libmissing/raise.c | 2 +- libmissing/realloc.c | 2 +- libmissing/ref-add.sin | 2 +- libmissing/ref-del.sin | 2 +- libmissing/regcomp.c | 179 ++++++------- libmissing/regex.c | 2 +- libmissing/regex.h | 52 ++-- libmissing/regex_internal.c | 59 +++-- libmissing/regex_internal.h | 64 +++-- libmissing/regexec.c | 179 ++++++------- libmissing/relocatable.c | 77 +++++- libmissing/relocatable.h | 2 +- libmissing/select.c | 2 +- libmissing/setsockopt.c | 2 +- libmissing/signal.in.h | 10 +- libmissing/sigprocmask.c | 2 +- libmissing/size_max.h | 2 +- libmissing/sleep.c | 2 +- libmissing/snprintf.c | 2 +- libmissing/socket.c | 2 +- libmissing/sockets.c | 9 +- libmissing/sockets.h | 12 +- libmissing/stat.c | 2 +- libmissing/stdalign.in.h | 23 +- libmissing/stdbool.in.h | 2 +- libmissing/stddef.in.h | 56 ++-- libmissing/stdint.in.h | 16 +- libmissing/stdio-impl.h | 7 +- libmissing/stdio.in.h | 12 +- libmissing/stdlib.in.h | 2 +- libmissing/str-two-way.h | 2 +- libmissing/strcasecmp.c | 2 +- libmissing/strcasestr.c | 2 +- libmissing/strdup.c | 2 +- libmissing/streq.h | 2 +- libmissing/strerror-override.c | 2 +- libmissing/strerror-override.h | 2 +- libmissing/strerror.c | 2 +- libmissing/strerror_r.c | 2 +- libmissing/string.in.h | 23 +- libmissing/strings.in.h | 2 +- libmissing/strncasecmp.c | 2 +- libmissing/strndup.c | 2 +- libmissing/strnlen.c | 2 +- libmissing/strptime.c | 2 +- libmissing/strsep.c | 2 +- libmissing/sys_ioctl.in.h | 2 +- libmissing/sys_select.in.h | 21 +- libmissing/sys_socket.c | 1 + libmissing/sys_socket.in.h | 2 +- libmissing/sys_stat.in.h | 2 +- libmissing/sys_time.in.h | 2 +- libmissing/sys_types.in.h | 2 +- libmissing/sys_uio.in.h | 2 +- libmissing/sys_utsname.in.h | 2 +- libmissing/tests/Makefile.am | 47 +++- libmissing/tests/binary-io.c | 1 + libmissing/tests/binary-io.h | 4 +- libmissing/tests/c-strcase.h | 2 +- libmissing/tests/c-strcasecmp.c | 2 +- libmissing/tests/c-strncasecmp.c | 2 +- libmissing/tests/ctype.in.h | 57 +++++ libmissing/tests/fcntl.in.h | 2 +- libmissing/tests/fdopen.c | 2 +- libmissing/tests/fpucw.h | 4 +- libmissing/tests/ftruncate.c | 2 +- libmissing/tests/getcwd-lgpl.c | 2 +- libmissing/tests/getdtablesize.c | 44 ++-- libmissing/tests/getpagesize.c | 2 +- libmissing/tests/glthread/yield.h | 2 +- libmissing/tests/ignore-value.h | 4 +- libmissing/tests/init.sh | 57 +++-- libmissing/tests/inttypes.in.h | 6 +- libmissing/tests/localename.c | 17 +- libmissing/tests/localename.h | 2 +- libmissing/tests/lstat.c | 2 +- libmissing/tests/macros.h | 2 +- libmissing/tests/malloca.c | 2 +- libmissing/tests/malloca.h | 2 +- libmissing/tests/open.c | 2 +- libmissing/tests/pipe.c | 2 +- libmissing/tests/putenv.c | 2 +- libmissing/tests/same-inode.h | 2 +- libmissing/tests/setenv.c | 2 +- libmissing/tests/setlocale.c | 5 +- libmissing/tests/signature.h | 2 +- libmissing/tests/symlink.c | 2 +- libmissing/tests/test-accept.c | 2 +- libmissing/tests/test-alloca-opt.c | 2 +- libmissing/tests/test-arpa_inet.c | 2 +- libmissing/tests/test-binary-io.c | 2 +- libmissing/tests/test-bind.c | 2 +- libmissing/tests/test-btowc.c | 2 +- libmissing/tests/test-c-ctype.c | 354 +++++++------------------- libmissing/tests/test-c-strcasecmp.c | 2 +- libmissing/tests/test-c-strncasecmp.c | 2 +- libmissing/tests/test-close.c | 2 +- libmissing/tests/test-cond.c | 2 +- libmissing/tests/test-connect.c | 2 +- libmissing/tests/test-ctype.c | 27 ++ libmissing/tests/test-dup2.c | 2 +- libmissing/tests/test-environ.c | 2 +- libmissing/tests/test-errno.c | 2 +- libmissing/tests/test-fclose.c | 2 +- libmissing/tests/test-fcntl-h.c | 4 +- libmissing/tests/test-fdopen.c | 2 +- libmissing/tests/test-fflush.c | 2 +- libmissing/tests/test-fflush2.c | 2 +- libmissing/tests/test-fgetc.c | 2 +- libmissing/tests/test-float.c | 2 +- libmissing/tests/test-fopen.c | 2 +- libmissing/tests/test-fopen.h | 2 +- libmissing/tests/test-fpurge.c | 2 +- libmissing/tests/test-fputc.c | 2 +- libmissing/tests/test-fread.c | 2 +- libmissing/tests/test-freading.c | 2 +- libmissing/tests/test-fseek.c | 2 +- libmissing/tests/test-fseeko.c | 2 +- libmissing/tests/test-fseeko3.c | 2 +- libmissing/tests/test-fseeko4.c | 2 +- libmissing/tests/test-fstat.c | 2 +- libmissing/tests/test-ftell.c | 2 +- libmissing/tests/test-ftell3.c | 2 +- libmissing/tests/test-ftello.c | 2 +- libmissing/tests/test-ftello3.c | 2 +- libmissing/tests/test-ftello4.c | 2 +- libmissing/tests/test-ftruncate.c | 2 +- libmissing/tests/test-fwrite.c | 2 +- libmissing/tests/test-getaddrinfo.c | 12 +- libmissing/tests/test-getcwd-lgpl.c | 2 +- libmissing/tests/test-getdelim.c | 2 +- libmissing/tests/test-getdtablesize.c | 2 +- libmissing/tests/test-gethostname.c | 2 +- libmissing/tests/test-getline.c | 6 +- libmissing/tests/test-getsockname.c | 2 +- libmissing/tests/test-gettimeofday.c | 2 +- libmissing/tests/test-ignore-value.c | 2 +- libmissing/tests/test-inet_ntop.c | 2 +- libmissing/tests/test-inet_pton.c | 2 +- libmissing/tests/test-init.sh | 2 +- libmissing/tests/test-intprops.c | 394 +++++++++++++++++----------- libmissing/tests/test-inttypes.c | 2 +- libmissing/tests/test-ioctl.c | 2 +- libmissing/tests/test-langinfo.c | 2 +- libmissing/tests/test-listen.c | 2 +- libmissing/tests/test-locale.c | 13 +- libmissing/tests/test-localeconv.c | 2 +- libmissing/tests/test-localename.c | 42 ++- libmissing/tests/test-lock.c | 2 +- libmissing/tests/test-lseek.c | 2 +- libmissing/tests/test-lstat.c | 2 +- libmissing/tests/test-lstat.h | 2 +- libmissing/tests/test-malloca.c | 2 +- libmissing/tests/test-mbrtowc-w32.c | 2 +- libmissing/tests/test-mbrtowc.c | 13 +- libmissing/tests/test-mbrtowc5.sh | 6 + libmissing/tests/test-mbsinit.c | 2 +- libmissing/tests/test-memchr.c | 2 +- libmissing/tests/test-memmem.c | 2 +- libmissing/tests/test-netdb.c | 2 +- libmissing/tests/test-netinet_in.c | 2 +- libmissing/tests/test-nl_langinfo.c | 2 +- libmissing/tests/test-open.c | 2 +- libmissing/tests/test-open.h | 2 +- libmissing/tests/test-pathmax.c | 2 +- libmissing/tests/test-perror.c | 2 +- libmissing/tests/test-perror2.c | 2 +- libmissing/tests/test-pipe.c | 2 +- libmissing/tests/test-poll-h.c | 2 +- libmissing/tests/test-poll.c | 4 +- libmissing/tests/test-raise.c | 2 +- libmissing/tests/test-regex.c | 80 ++++-- libmissing/tests/test-select-fd.c | 2 +- libmissing/tests/test-select-stdin.c | 2 +- libmissing/tests/test-select.c | 2 +- libmissing/tests/test-select.h | 2 +- libmissing/tests/test-setenv.c | 2 +- libmissing/tests/test-setlocale1.c | 4 +- libmissing/tests/test-setlocale2.c | 2 +- libmissing/tests/test-setsockopt.c | 2 +- libmissing/tests/test-signal-h.c | 2 +- libmissing/tests/test-sigprocmask.c | 2 +- libmissing/tests/test-sleep.c | 2 +- libmissing/tests/test-snprintf.c | 2 +- libmissing/tests/test-sockets.c | 2 +- libmissing/tests/test-stat.c | 3 +- libmissing/tests/test-stat.h | 3 +- libmissing/tests/test-stdalign.c | 2 +- libmissing/tests/test-stdbool.c | 2 +- libmissing/tests/test-stddef.c | 25 +- libmissing/tests/test-stdint.c | 2 +- libmissing/tests/test-stdio.c | 2 +- libmissing/tests/test-stdlib.c | 2 +- libmissing/tests/test-strcasestr.c | 2 +- libmissing/tests/test-strerror.c | 2 +- libmissing/tests/test-strerror_r.c | 2 +- libmissing/tests/test-string.c | 2 +- libmissing/tests/test-strings.c | 2 +- libmissing/tests/test-strnlen.c | 2 +- libmissing/tests/test-symlink.c | 2 +- libmissing/tests/test-symlink.h | 2 +- libmissing/tests/test-sys_ioctl.c | 2 +- libmissing/tests/test-sys_select.c | 2 +- libmissing/tests/test-sys_socket.c | 2 +- libmissing/tests/test-sys_stat.c | 2 +- libmissing/tests/test-sys_time.c | 2 +- libmissing/tests/test-sys_types.c | 2 +- libmissing/tests/test-sys_uio.c | 2 +- libmissing/tests/test-sys_utsname.c | 2 +- libmissing/tests/test-sys_wait.h | 2 +- libmissing/tests/test-thread_create.c | 2 +- libmissing/tests/test-thread_self.c | 2 +- libmissing/tests/test-time.c | 2 +- libmissing/tests/test-tls.c | 2 +- libmissing/tests/test-uname.c | 2 +- libmissing/tests/test-unistd.c | 2 +- libmissing/tests/test-unsetenv.c | 2 +- libmissing/tests/test-vasnprintf.c | 2 +- libmissing/tests/test-verify.c | 2 +- libmissing/tests/test-vsnprintf.c | 2 +- libmissing/tests/test-wchar.c | 2 +- libmissing/tests/test-wcrtomb-w32.c | 2 +- libmissing/tests/test-wcrtomb.c | 2 +- libmissing/tests/test-wctype-h.c | 2 +- libmissing/tests/test-write.c | 2 +- libmissing/tests/unsetenv.c | 2 +- libmissing/tests/wctob.c | 2 +- libmissing/tests/wctomb-impl.h | 2 +- libmissing/tests/wctomb.c | 2 +- libmissing/tests/zerosize-ptr.h | 2 +- libmissing/time.in.h | 31 ++- libmissing/time_r.c | 2 +- libmissing/timegm.c | 8 +- libmissing/uname.c | 2 +- libmissing/unistd.c | 1 + libmissing/unistd.in.h | 39 ++- libmissing/vasnprintf.c | 27 +- libmissing/vasnprintf.h | 2 +- libmissing/verify.h | 4 +- libmissing/vsnprintf.c | 2 +- libmissing/w32sock.h | 2 +- libmissing/wchar.in.h | 16 +- libmissing/wcrtomb.c | 2 +- libmissing/wctype.in.h | 2 +- libmissing/write.c | 2 +- libmissing/xsize.h | 2 +- snippet/arg-nonnull.h | 2 +- snippet/c++defs.h | 2 +- snippet/unused-parameter.h | 2 +- snippet/warn-on-use.h | 2 +- 515 files changed, 3137 insertions(+), 2545 deletions(-) commit 604ff90e28cf59b70ebba7a188034f60fd574f83 Author: Yoann Vandoorselaere Date: Tue May 3 09:05:59 2016 +0700 [#1643] Handle EAGAIN even if it's not supposed to happen Change-Id: Ia9f12cea4dd48057bf4c3da2c85556b42643fe25 src/prelude-connection-pool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fad1c4815d8481328da3400f0209d65ba06506a2 Author: Yoann Vandoorselaere Date: Thu May 12 07:52:57 2016 +0700 [#rel1641] Implement prelude_msg_get_data() Change-Id: Ia8bbe78bdd1a1392598f9b4ac22d31fc57d97f0c src/include/prelude-msg.h | 2 ++ src/prelude-msg.c | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) commit 7cf827a5c3f4a1d35af712d279371e0ac8f29fd1 Author: Yoann Vandoorselaere Date: Tue May 3 09:23:20 2016 +0700 [#rel1641] API for atomic message write Change-Id: I875ea5aa30ac74583a59b06b88f539b357a4cdba src/include/prelude-msg.h | 2 ++ src/prelude-msg.c | 39 +++++++++++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 8 deletions(-) commit 27be22e1c711f2bb6f3766184ee3c0b775473485 Author: Yoann Vandoorselaere Date: Tue May 3 09:06:07 2016 +0700 [#rel1643] Improved message handling Change-Id: Ibf03d2acbb0a062a1c0bb636d69896e55a2860e5 src/prelude-client.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 54b42918223ca2ea6868bcec688e96c94a37d455 Author: Antoine LUONG Date: Thu Apr 21 18:03:33 2016 +0200 Update NEWS, bump version Change-Id: I6f250be70b4f6f643418d4346a460ad56befec75 NEWS | 12 ++++++++++++ configure.in | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) commit a2d67ab4001b1213dd5c0644418b3a1049a410e2 Author: Antoine LUONG Date: Tue Apr 19 16:22:50 2016 +0200 [#376] Fix make distcheck with LUA and Ruby bindings Change-Id: Ie5139cc1009c359e732066688ae56299837a73a3 bindings/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 35e7c41bf7be24635917f690c244f589bf762ded Author: Yoann Vandoorselaere Date: Tue Apr 19 16:54:07 2016 +0700 Fix idmef-criteria valgrind unit test (memory leak) Change-Id: I544313fc3f593289c0c74c88e051cc3a324984b8 tests/idmef-criteria.c | 1 + 1 file changed, 1 insertion(+) commit a11725962f96dc87b2d178b873e501a884959825 Author: Antoine LUONG Date: Fri Apr 15 17:24:48 2016 +0200 Update NEWS, bump version Change-Id: Ia0be97d3e582fc9a651ba142b57a8d8585e3b322 NEWS | 8 ++++++++ configure.in | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) commit 64d15a511f7467593c95fee45075dfc9f4a7ccfc Author: Antoine LUONG Date: Fri Apr 8 12:31:02 2016 +0200 Update NEWS, bump version Change-Id: I5935e4b208c987e6e92a5751ac5073afe61b8fa6 NEWS | 10 ++++++++++ configure.in | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) commit 9c513d1cc76813fb65010ba0c9240caea80adee6 Author: Yoann Vandoorselaere Date: Fri Apr 8 10:50:02 2016 +0700 [#1574] fix assertions / wrong object matching behavior on list - idmef_value_type implementation is modified so that matching NULL operand is allowed. This is a requirement since list of idmef_value_t might contain NULL object. - Fix idmef_value_match() / idmef_value_iterate() assertion when the matched value was a list containing NULL elements. - (not)? NULL operator matching on list of result containing NULL value was not working properly. Change-Id: I3fd946b51574ceb375a88cf43a8f606cbe151f21 src/idmef-criteria.c | 17 +++------------- src/idmef-criterion-value.c | 43 ++++++++++++++++++++++++++--------------- src/idmef-value-type.c | 47 ++++++++++++++++++++++++++++++--------------- src/idmef-value.c | 13 ++++++++----- tests/idmef-criteria.c | 43 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 114 insertions(+), 49 deletions(-) commit efa6f0f24f131ecdcea749e0e4fbf12a723ffe93 Author: Yoann Vandoorselaere Date: Fri Apr 8 09:51:49 2016 +0700 [#rel1574] broken-down time comparison worked only once The first call to idmef_criteria_match() on a broken-down time criteria was working, but subsequent call where not. The reason is that we used timegm() on the internal TM structure used to hold the comparison value. We need to perform a copy of this structure since timegm() will modify it. Change-Id: I5a4c5ffded185458be8694f4ceef4a864331775f src/idmef-criterion-value.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit f2e9217eebea07588823d185a321ad05de2b3114 Author: Yoann Vandoorselaere Date: Wed Apr 6 09:40:30 2016 +0700 [#1565] Fix multiple idmef-path cloning issue - copy was not properly done, resulting in invalid path->top_class - path element with index_key were not properly copied Change-Id: I58296e29d93c75a9c74edb7a68d78728b55a462f src/idmef-path.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit 03a2ad15a12252cdc398fc48686a31c1bf491157 Author: Antoine LUONG Date: Fri Apr 1 17:46:20 2016 +0200 Update NEWS, bump version Change-Id: If748ea1d30bcb377cbe0f30875d15c172f475c05 NEWS | 6 ++++++ configure.in | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) commit 2d26b55f87b4aaa335bf8a16bf53d3c4c23342c0 Author: Antoine LUONG Date: Wed Mar 23 16:56:03 2016 +0100 Update NEWS, bump version Change-Id: I5b13ab0a86b609f036ff835ba9448e17f7d7b05c NEWS | 8 ++++++++ configure.in | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit fa4172667e9712c941e75c1a699f8a405221e56a Author: Louis-David GABET Date: Mon Mar 21 14:22:17 2016 +0100 [#1135] Add ltdl deps to README Change-Id: Ic986844d8fdd9244c3a28ae6d45c03de6a8b472d README | 2 ++ 1 file changed, 2 insertions(+) commit 7556ee1d9f3cbbc0c0f4550212409f6813a6d597 Author: Louis-David GABET Date: Mon Mar 21 14:14:51 2016 +0100 [#1137] Fix README Changes prelude-adduser to prelude-admin in README file. Change-Id: Iac1697bec507f178cc6c9c12321ea34b21fb3060 README | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit 1d2f767ce9e2f24c70f5be96b017928155fb51ae Author: Antoine LUONG Date: Thu Mar 17 15:53:00 2016 +0100 Update NEWS, bump version Change-Id: I28c6408219e9a1327ce7a6728a5df49057518103 NEWS | 8 ++++++++ configure.in | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) commit 9c44adaaa7dbbc4a6b8ed80c5fda07e90e81309c Author: Yoann Vandoorselaere Date: Fri Feb 26 10:51:12 2016 +0100 [#1214] Properly set top class when using idmef_path_new_from_root_fast() - properly return root class for relative path in idmef_path_get_class() Change-Id: I6dff7412e9f36629736b7d93d645319e82ac81e2 src/idmef-path.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b6af61c52d02ac2f0fac2184fcea13ec2d4283ea Author: Antoine LUONG Date: Fri Feb 26 10:43:38 2016 +0100 Update NEWS, bump version Change-Id: Ifbc23413f461f098d8b9e5bb01eb3e9b31cb1b25 NEWS | 16 ++++++++++++++++ configure.in | 6 +++--- 2 files changed, 19 insertions(+), 3 deletions(-) commit 529353ad468fe361d018dc1352d12c98d7bd4e8f Author: Thomas ANDREJAK Date: Fri Feb 12 19:22:03 2016 +0100 [#rel548] Change c-s.fr to prelude-siem.com Change-Id: I0a5960874380e1e15bbd071cc79474c09aad62b9 README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71e3030128002b2739e5b73cf74c5eaa40971e30 Author: Abdel ELMILI Date: Fri Feb 5 18:47:47 2016 +0100 [#1095] Fix typos Change-Id: I68c267545c6220cef84b68fef80a091e40920ea7 README | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit e795902fc84329aa5465bf4043021af1f41b1ff6 Author: Antoine LUONG Date: Wed Feb 3 13:18:06 2016 +0100 [#837] Fix depth comparison in IDMEFClass() Change-Id: Ic74f4061a11c2b30237552bc308190b800c3aa78 bindings/c++/idmef-class.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 73c7eef40513fc771ee650e175179a95a755d33d Author: Antoine LUONG Date: Mon Jan 11 10:36:33 2016 +0100 Update NEWS, bump version Change-Id: Ibeeb617eb74c90e25ff6b31528f7a51b4548ec51 NEWS | 23 +++++++++++++++++++++++ configure.in | 12 ++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) commit 78d2053be7a354c5d3259b48bdb2e5b2f0631406 Author: Antoine LUONG Date: Tue Jan 12 14:34:04 2016 +0100 [#1007] Copyright year update Change-Id: I286e473aff9c6c2e86b164a97041094f69a5797a LICENSE.README | 2 +- bindings/c++/idmef-class.cxx | 2 +- bindings/c++/idmef-criteria.cxx | 2 +- bindings/c++/idmef-path.cxx | 2 +- bindings/c++/idmef-time.cxx | 2 +- bindings/c++/idmef-value.cxx | 2 +- bindings/c++/idmef.cxx | 2 +- bindings/c++/include/idmef-class.hxx | 2 +- bindings/c++/include/idmef-criteria.hxx | 2 +- bindings/c++/include/idmef-path.hxx | 2 +- bindings/c++/include/idmef-time.hxx | 2 +- bindings/c++/include/idmef-value.hxx | 2 +- bindings/c++/include/idmef.hxx | 2 +- bindings/c++/include/prelude-client-easy.hxx | 2 +- bindings/c++/include/prelude-client-profile.hxx | 2 +- bindings/c++/include/prelude-client.hxx | 2 +- bindings/c++/include/prelude-connection-pool.hxx | 2 +- bindings/c++/include/prelude-connection.hxx | 2 +- bindings/c++/include/prelude-error.hxx | 2 +- bindings/c++/include/prelude-log.hxx | 2 +- bindings/c++/include/prelude.hxx | 2 +- bindings/c++/prelude-client-easy.cxx | 2 +- bindings/c++/prelude-client-profile.cxx | 2 +- bindings/c++/prelude-client.cxx | 2 +- bindings/c++/prelude-connection-pool.cxx | 2 +- bindings/c++/prelude-connection.cxx | 2 +- bindings/c++/prelude-error.cxx | 2 +- bindings/c++/prelude-log.cxx | 2 +- bindings/c++/prelude.cxx | 2 +- bindings/libpreludecpp.i | 2 +- bindings/lua/libpreludecpp-lua.i | 2 +- bindings/perl/Makefile.PL.in | 2 +- bindings/perl/libpreludecpp-perl.i | 2 +- bindings/python/libpreludecpp-python.i | 2 +- bindings/python/setup.py.in | 2 +- bindings/ruby/libpreludecpp-ruby.i | 2 +- prelude-admin/prelude-admin.c | 2 +- prelude-admin/server.c | 2 +- prelude-admin/server.h | 2 +- prelude-admin/tls-register.c | 2 +- prelude-admin/tls-register.h | 2 +- src/common.c | 2 +- src/config-engine.c | 2 +- src/daemonize.c | 2 +- src/idmef-additional-data.c | 2 +- src/idmef-class.c | 2 +- src/idmef-criteria-string.lex.c | 2 +- src/idmef-criteria-string.lex.l | 2 +- src/idmef-criteria-string.yac.y | 2 +- src/idmef-criteria.c | 2 +- src/idmef-criterion-value.c | 2 +- src/idmef-data.c | 2 +- src/idmef-message-helpers.c | 2 +- src/idmef-message-print.c | 2 +- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-object.c | 2 +- src/idmef-path.c | 2 +- src/idmef-time.c | 2 +- src/idmef-tree-wrap.c | 2 +- src/idmef-value-type.c | 2 +- src/idmef-value.c | 2 +- src/idmef-wrappers-gen/Generate.pm | 2 +- src/idmef-wrappers-gen/GenerateDebug.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapHxx.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFValueClassSwigMapping.pm | 4 ++-- src/idmef-wrappers-gen/IDMEFTree.pm | 2 +- src/idmef-wrappers-gen/generator.pl | 2 +- src/idmef-wrappers-gen/idmef-tree.h | 2 +- src/include/common.h | 2 +- src/include/config-engine.h | 2 +- src/include/daemonize.h | 2 +- src/include/idmef-additional-data.h | 2 +- src/include/idmef-criteria.h | 2 +- src/include/idmef-criterion-value.h | 2 +- src/include/idmef-data.h | 2 +- src/include/idmef-message-helpers.h | 2 +- src/include/idmef-message-print.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-object-prv.h | 2 +- src/include/idmef-object.h | 2 +- src/include/idmef-path.h | 2 +- src/include/idmef-time.h | 2 +- src/include/idmef-tree-wrap.h | 2 +- src/include/idmef-value-type.h | 2 +- src/include/idmef-value.h | 2 +- src/include/idmef.h | 2 +- src/include/libmissing.h | 2 +- src/include/prelude-async.h | 2 +- src/include/prelude-client-profile.h | 2 +- src/include/prelude-client.h | 2 +- src/include/prelude-connection-pool.h | 2 +- src/include/prelude-connection.h | 2 +- src/include/prelude-extract.h | 2 +- src/include/prelude-failover.h | 2 +- src/include/prelude-hash.h | 2 +- src/include/prelude-ident.h | 2 +- src/include/prelude-inttypes.h.in | 2 +- src/include/prelude-io.h | 2 +- src/include/prelude-linked-object.h | 2 +- src/include/prelude-list.h | 2 +- src/include/prelude-log.h | 2 +- src/include/prelude-macros.h | 2 +- src/include/prelude-message-id.h | 2 +- src/include/prelude-msg.h | 2 +- src/include/prelude-msgbuf.h | 2 +- src/include/prelude-option-wide.h | 2 +- src/include/prelude-option.h | 2 +- src/include/prelude-plugin.h | 2 +- src/include/prelude-string.h | 2 +- src/include/prelude-thread.h | 2 +- src/include/prelude-timer.h | 2 +- src/include/prelude.h.in | 2 +- src/include/tls-auth.h | 2 +- src/include/tls-util.h | 2 +- src/include/variable.h | 2 +- src/libprelude-error/prelude-error.h.in | 2 +- src/prelude-async.c | 2 +- src/prelude-client-profile.c | 2 +- src/prelude-client.c | 2 +- src/prelude-connection-pool.c | 2 +- src/prelude-connection.c | 2 +- src/prelude-failover.c | 2 +- src/prelude-hash.c | 2 +- src/prelude-ident.c | 2 +- src/prelude-io.c | 2 +- src/prelude-log.c | 2 +- src/prelude-msg.c | 2 +- src/prelude-msgbuf.c | 2 +- src/prelude-option-wide.c | 2 +- src/prelude-option.c | 2 +- src/prelude-plugin.c | 2 +- src/prelude-string.c | 2 +- src/prelude-thread.c | 2 +- src/prelude-timer.c | 2 +- src/prelude.c | 2 +- src/tls-auth.c | 2 +- src/tls-util.c | 2 +- src/variable.c | 2 +- 150 files changed, 160 insertions(+), 160 deletions(-) commit 84f397e3383d84f284bb575b123ca3df604076e9 Author: Yoann Vandoorselaere Date: Tue Dec 15 12:44:08 2015 +0100 [#rel866] Implement utility function for IDMEF union This implement: - idmef_class_is_child_union_member(), which let you know if a given child is part of an union. - idmef_class_get_child_union_id(), which return an unique identifier (within the current IDMEF class scope) for the union the child is part of. Change-Id: Ifcc651386ad054e1c99593ef5bb4d7a4b2132970 src/idmef-class.c | 32 +++ src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 7 +- src/include/idmef-class.h | 4 + src/include/idmef-tree-data.h | 311 ++++++++++++------------ src/libprelude-error/err-codes.h.in | 2 + 5 files changed, 199 insertions(+), 157 deletions(-) commit 3e3a7b43d4524e1b51fb34ce5a290c3c98e3be62 Author: Yoann Vandoorselaere Date: Mon Dec 14 17:53:53 2015 +0100 [#rel866] Fix crash on listed value retrieval Change-Id: Id7a0d0b3aa973a17c3510f86ef9fc28339667406 src/idmef-path.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b96e56f31cdb21cd2d3ffb2ec09f30e21b31aa90 Author: Yoann Vandoorselaere Date: Mon Dec 14 15:47:26 2015 +0100 [#rel866] Fix IDMEF object copy When copying an IDMEF object to another object, we should free the target object content first. Change-Id: Ie4474a030f9220d0821a68eb7c5433fa9d3d2fbf src/idmef-tree-wrap.c | 496 +++++++++++++++++++++++ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 30 ++ 2 files changed, 526 insertions(+) commit 30236ae65f6927d0b22362c912fc7fdc774c4dd2 Author: Yoann Vandoorselaere Date: Mon Dec 14 14:27:38 2015 +0100 [#rel866] Improved error reporting Change-Id: I50705b648b2664477bc4dfc343323e0349de5bdf src/prelude-plugin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 04f4f40477ab63882e511983af0f67f9a69677ce Author: Yoann Vandoorselaere Date: Sat Dec 5 04:46:31 2015 +0700 [#rel866] Remove IDMEF SNMP community field This field was not kept in IDMEF final RFC version. Change-Id: I7f01ac2ca193165677348d3bbd27b909433dfd1a src/idmef-message-print.c | 14 ------ src/idmef-message-read.c | 11 ----- src/idmef-message-write.c | 4 -- src/idmef-tree-wrap.c | 94 ------------------------------------- src/idmef-wrappers-gen/idmef-tree.h | 5 -- src/include/idmef-message-id.h | 1 - src/include/idmef-tree-data.h | 1 - src/include/idmef-tree-wrap.h | 9 ---- 8 files changed, 139 deletions(-) commit 0d9f95933c89d755e8edf86a400254e2461bae10 Author: Yoann Vandoorselaere Date: Fri Dec 4 22:32:05 2015 +0700 [#rel866] implement idmef_object_get_class() Return idmef_object_t class identifier. Change-Id: I54ddce13c1d8e552d4472c97ea8446ecb12e7320 src/idmef-object.c | 8 ++++++++ src/include/idmef-object.h | 2 ++ 2 files changed, 10 insertions(+) commit dae2327865e51812ecb3871f4fdbbf6667fec407 Author: Yoann Vandoorselaere Date: Fri Nov 13 07:59:13 2015 +0700 [#rel866] Code simplification, remove un-needed flags Change-Id: Ife02f32702d518f98ddda6b9cec4df1b0d2b4df5 src/prelude-string.c | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) commit fc7d161d434ca126f5f8defa3bb1f71e4abf699b Author: Yoann Vandoorselaere Date: Fri Nov 13 07:50:24 2015 +0700 [#rel866] Implement prelude_string_truncate() Change-Id: I6aba500c75c4bee8917ddbbce2c706f48ea70889 src/include/prelude-string.h | 2 ++ src/prelude-string.c | 80 +++++++++++++++++++++++++++++++++----------- 2 files changed, 62 insertions(+), 20 deletions(-) commit 2f8516901f72c1653422ff89eb1d00506a2fe2dc Author: Yoann Vandoorselaere Date: Thu Nov 12 13:11:36 2015 +0700 [#rel866] Improve string allocation algorithm Change-Id: Id0a933d072cde55d042a3e6a1844236622a26ff9 src/prelude-string.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 382ee1c0f822b2e3395c2c5cabc1cea2de107bd4 Author: Antoine LUONG Date: Fri Jul 31 09:42:29 2015 +0200 Update NEWS, bump version Change-Id: Ib4f70a49598679b8899aced6e4306c2a32bb1cd3 NEWS | 6 ++++++ configure.in | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit c50a40f68339f5b8dfde141d0f10ecaebdb28caa Author: Antoine LUONG Date: Mon Jul 27 10:03:24 2015 +0200 Update NEWS, bump version Change-Id: I2dfde886e80e8ad23f44665a1b45434320a052e3 NEWS | 36 ++++++++++++++++++++++++++++++++++++ configure.in | 10 +++++----- 2 files changed, 41 insertions(+), 5 deletions(-) commit eccd6ee9192e88d9b2f4768b8c292190b6f4a58d Author: Antoine LUONG Date: Wed Jul 29 15:07:53 2015 +0200 [#720] Update from prelude-ids.org to prelude-siem.org Change mailing lists to forums. Change-Id: I6f32411692aae92777d1060a6fc48d14e2b94400 README | 22 ++++++++-------------- bindings/python/setup.py.in | 2 +- m4/libprelude.m4 | 2 +- 3 files changed, 10 insertions(+), 16 deletions(-) commit 9916f31ae665b6547dfc457b7f24b7ea81d51eaf Author: Yoann Vandoorselaere Date: Fri Jul 24 09:14:53 2015 +0200 [#723] Implement prelude_parse_version() Parse the given version string to an integer. Used by prelude_check_version() Change-Id: Id83b21ddf53331c9707fddcc8d19aaf6df071724 src/include/prelude.h.in | 2 ++ src/prelude.c | 58 +++++++++++++++++++++++++++++++++++------------- 2 files changed, 45 insertions(+), 15 deletions(-) commit 4d03948ced94b135186b68f571c4439421f599d3 Author: Yoann Vandoorselaere Date: Fri Jul 24 09:14:03 2015 +0200 [#rel723] fix GCC5 libprelude-error compilation failure Change-Id: Ia02fc5b3a060e1ec1b9cc7e915bf6561c1a82eeb src/libprelude-error/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac42a0f605fb075e9610be6dd49fd021f2c415bc Author: Yoann Vandoorselaere Date: Tue Jul 21 07:52:08 2015 +0200 Update code to SWIG 3.0.6, fix lua/perl code generation Latest SWIG version would not properly generate the bindings, due to some invalid format being used in the interface files. Change-Id: I98bb1baaf577b35cbf15cdbe728b3ebdac975fae bindings/lua/libpreludecpp-lua.i | 8 +- bindings/lua/prelude.cxx | 2093 +++++++++-- bindings/perl/Prelude.cxx | 6896 +++++++++++++++++++++++------------- bindings/perl/Prelude.pm | 2 +- bindings/perl/libpreludecpp-perl.i | 4 +- bindings/python/_prelude.cxx | 6 +- bindings/ruby/Prelude.cxx | 68 +- 7 files changed, 6244 insertions(+), 2833 deletions(-) commit 230ec9e2e6f637d6105614a4265130f47baa8423 Author: Yoann Vandoorselaere Date: Sun Jul 19 15:46:41 2015 +0200 [#586] Fix crash when unpickling IDMEF object The crash was due to an invalid free which is now corrected. Additionally, return a newly created dictionary for the object state, to prevent the main object dictionnary from carrying an unused __idmef_data__ key/data pair after the call. Fix #586. Change-Id: Ia5ec0c068cdfaa0938d3d946946eb473c337cc97 bindings/python/_prelude.cxx | 25 ++++++++++++++++--------- bindings/python/libpreludecpp-python.i | 25 ++++++++++++++++--------- 2 files changed, 32 insertions(+), 18 deletions(-) commit da801dcca987f80f0a1a11f1d2ce618f9937b30a Author: Antoine LUONG Date: Mon Jun 29 17:21:51 2015 +0200 [#516] Copyright year update Change-Id: Ic3b3b0611c834f07d8811ba353ace0709418021b LICENSE.README | 2 +- bindings/c++/idmef-class.cxx | 2 +- bindings/c++/idmef-criteria.cxx | 2 +- bindings/c++/idmef-path.cxx | 2 +- bindings/c++/idmef-time.cxx | 2 +- bindings/c++/idmef-value.cxx | 2 +- bindings/c++/idmef.cxx | 2 +- bindings/c++/include/idmef-class.hxx | 2 +- bindings/c++/include/idmef-criteria.hxx | 2 +- bindings/c++/include/idmef-path.hxx | 2 +- bindings/c++/include/idmef-time.hxx | 2 +- bindings/c++/include/idmef-value.hxx | 2 +- bindings/c++/include/idmef.hxx | 2 +- bindings/c++/include/prelude-client-easy.hxx | 2 +- bindings/c++/include/prelude-client-profile.hxx | 2 +- bindings/c++/include/prelude-client.hxx | 2 +- bindings/c++/include/prelude-connection-pool.hxx | 2 +- bindings/c++/include/prelude-connection.hxx | 2 +- bindings/c++/include/prelude-error.hxx | 2 +- bindings/c++/include/prelude-log.hxx | 2 +- bindings/c++/include/prelude.hxx | 2 +- bindings/c++/prelude-client-easy.cxx | 2 +- bindings/c++/prelude-client-profile.cxx | 2 +- bindings/c++/prelude-client.cxx | 2 +- bindings/c++/prelude-connection-pool.cxx | 2 +- bindings/c++/prelude-connection.cxx | 2 +- bindings/c++/prelude-error.cxx | 2 +- bindings/c++/prelude-log.cxx | 2 +- bindings/c++/prelude.cxx | 2 +- bindings/libpreludecpp.i | 2 +- bindings/lua/libpreludecpp-lua.i | 2 +- bindings/perl/Makefile.PL.in | 2 +- bindings/perl/libpreludecpp-perl.i | 2 +- bindings/python/libpreludecpp-python.i | 2 +- bindings/python/setup.py.in | 2 +- bindings/ruby/libpreludecpp-ruby.i | 2 +- prelude-admin/prelude-admin.c | 4 ++-- prelude-admin/server.c | 2 +- prelude-admin/server.h | 2 +- prelude-admin/tls-register.c | 2 +- prelude-admin/tls-register.h | 2 +- src/common.c | 2 +- src/config-engine.c | 2 +- src/daemonize.c | 2 +- src/idmef-additional-data.c | 2 +- src/idmef-class.c | 2 +- src/idmef-criteria-string.lex.c | 2 +- src/idmef-criteria-string.lex.l | 2 +- src/idmef-criteria-string.yac.y | 2 +- src/idmef-criteria.c | 2 +- src/idmef-criterion-value.c | 2 +- src/idmef-data.c | 2 +- src/idmef-message-helpers.c | 2 +- src/idmef-message-print.c | 2 +- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-object.c | 2 +- src/idmef-path.c | 2 +- src/idmef-time.c | 2 +- src/idmef-tree-wrap.c | 2 +- src/idmef-value-type.c | 2 +- src/idmef-value.c | 2 +- src/idmef-wrappers-gen/Generate.pm | 2 +- src/idmef-wrappers-gen/GenerateDebug.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapHxx.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFValueClassSwigMapping.pm | 4 ++-- src/idmef-wrappers-gen/IDMEFTree.pm | 2 +- src/idmef-wrappers-gen/generator.pl | 2 +- src/idmef-wrappers-gen/idmef-tree.h | 2 +- src/include/common.h | 2 +- src/include/config-engine.h | 2 +- src/include/daemonize.h | 2 +- src/include/idmef-additional-data.h | 2 +- src/include/idmef-criteria.h | 2 +- src/include/idmef-criterion-value.h | 2 +- src/include/idmef-data.h | 2 +- src/include/idmef-message-helpers.h | 2 +- src/include/idmef-message-print.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-object-prv.h | 2 +- src/include/idmef-object.h | 2 +- src/include/idmef-path.h | 2 +- src/include/idmef-time.h | 2 +- src/include/idmef-tree-wrap.h | 2 +- src/include/idmef-value-type.h | 2 +- src/include/idmef-value.h | 2 +- src/include/idmef.h | 2 +- src/include/libmissing.h | 2 +- src/include/prelude-async.h | 2 +- src/include/prelude-client-profile.h | 2 +- src/include/prelude-client.h | 2 +- src/include/prelude-connection-pool.h | 2 +- src/include/prelude-connection.h | 2 +- src/include/prelude-extract.h | 2 +- src/include/prelude-failover.h | 2 +- src/include/prelude-hash.h | 2 +- src/include/prelude-ident.h | 2 +- src/include/prelude-inttypes.h.in | 2 +- src/include/prelude-io.h | 2 +- src/include/prelude-linked-object.h | 2 +- src/include/prelude-list.h | 2 +- src/include/prelude-log.h | 2 +- src/include/prelude-macros.h | 2 +- src/include/prelude-message-id.h | 2 +- src/include/prelude-msg.h | 2 +- src/include/prelude-msgbuf.h | 2 +- src/include/prelude-option-wide.h | 2 +- src/include/prelude-option.h | 2 +- src/include/prelude-plugin.h | 2 +- src/include/prelude-string.h | 2 +- src/include/prelude-thread.h | 2 +- src/include/prelude-timer.h | 2 +- src/include/prelude.h.in | 2 +- src/include/tls-auth.h | 2 +- src/include/tls-util.h | 2 +- src/include/variable.h | 2 +- src/libprelude-error/prelude-error.h.in | 2 +- src/prelude-async.c | 2 +- src/prelude-client-profile.c | 2 +- src/prelude-client.c | 2 +- src/prelude-connection-pool.c | 2 +- src/prelude-connection.c | 2 +- src/prelude-failover.c | 2 +- src/prelude-hash.c | 2 +- src/prelude-ident.c | 2 +- src/prelude-io.c | 2 +- src/prelude-log.c | 2 +- src/prelude-msg.c | 2 +- src/prelude-msgbuf.c | 2 +- src/prelude-option-wide.c | 2 +- src/prelude-option.c | 2 +- src/prelude-plugin.c | 2 +- src/prelude-string.c | 2 +- src/prelude-thread.c | 2 +- src/prelude-timer.c | 2 +- src/prelude.c | 2 +- src/tls-auth.c | 2 +- src/tls-util.c | 2 +- src/variable.c | 2 +- 150 files changed, 161 insertions(+), 161 deletions(-) commit 6fd4107950b6df7289fae0378c3b09cdd7cc9099 Author: Yoann Vandoorselaere Date: Tue May 5 16:37:38 2015 +0700 IDMEFCriteria broken down time matching fixes Lesser than and greater than operator were not working in combination with wday/yday relative matching as soon as other fields were involded. For example, this would always return false in case the current day was monday : alert.create_time < 'wday:monday hour:10' Additionally, there was plenty of matching problem with the lesser and greater operator. Include time/broken-down time unit test in tests/idmef-criteria.c. Change-Id: I5aefbb336a1ff6bf8d3d4eb185cc89a3dbd53d7a src/idmef-criterion-value.c | 22 +++++++++++-- tests/idmef-criteria.c | 80 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 3 deletions(-) commit ec0153e45e15bb02d40d8e40a282d972f5691f55 Author: Yoann Vandoorselaere Date: Tue May 5 16:55:25 2015 +0700 When idmef_time_set_from_string() is called on an already initialized time, reset the microsecond and GMT offset member so that the object doesn't carry old information. Change-Id: I1335923b84a35d2ee9aeb785059c68aefd40d4b7 src/idmef-time.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit d93f7bad2bbcd314d860820d0a367d006758df0a Author: Yoann Vandoorselaere Date: Mon Apr 13 09:13:32 2015 +0700 [#522, #503]: Integrate latest SWIG update to prevent instance attribute to be reset on __init__() Use SWIG 3.0.6 pre-release for Python bindings generation, to integrate the following bug fixes: - Make __dict__ accessible for Python builtin classes - Fix SwigPyObject->dict memory leak - Attribute of SWIG wrapped classes instances were overwritten on __init__() Change-Id: I8708167a0b373c0ac0b6d605f596af4522208179 bindings/python/_prelude.cxx | 112 ++++++++++++++++++++++++++++++++++++++----- bindings/python/prelude.py | 64 ++++++++++++++++--------- 2 files changed, 141 insertions(+), 35 deletions(-) commit b6a6a01aafa678a167d829763a6012d5603cc015 Author: Yoann Vandoorselaere Date: Fri Feb 13 13:27:21 2015 +0100 Prevent exception when IDMEFTime comparison operator is called with an incompatible datatype By returning Py_NotImplemented, the python code might provide its own comparison method within the compared operand class Change-Id: I49e2c3d0c1c03ff2d85753eee923f4d0ef1ab7c5 bindings/python/_prelude.cxx | 120 ++++++++++++++++++--------------- bindings/python/libpreludecpp-python.i | 22 ++++++ 2 files changed, 88 insertions(+), 54 deletions(-) commit 1ea449941f55704d485d1c7d404c42218ee5db1b Author: Yoann Vandoorselaere Date: Tue Feb 10 17:53:46 2015 +0100 Fix broken down time yday and wday matching tm_wday' and 'tm_yday' fields are not used when computing the returned time_t, so we need to perform the comparison independantly. Change-Id: I1e9dcac1f92983744f3c90c8406f4766b427195a src/idmef-criterion-value.c | 46 +++++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 12 deletions(-) commit e3369eda16c37d5b7ea421bfb03608deeeedd06d Author: Yoann Vandoorselaere Date: Tue Feb 3 08:46:52 2015 +0100 Proper implementation of Prelude::IDMEF __(get|set)state__ Change-Id: Ib3176183d3c8967bf03c6d8eec8d8e84da926147 bindings/python/_prelude.cxx | 171 +++++++++++++++++++++++++++++++++ bindings/python/libpreludecpp-python.i | 142 +++++++++++++++++++++++++++ 2 files changed, 313 insertions(+) commit eb2c6d87689c4d5bd4e7511269ff3b4fd4a6493b Author: Yoann Vandoorselaere Date: Wed Feb 4 16:13:36 2015 +0100 Make sure we listen on all interface (IPv4+IPv6 dual stack fixes) There is a problem on Linux system where getaddrinfo() return address in the wrong sort order (IPv4 first, IPv6 next): As a result we used to first bind IPv4 addresses, but then we were getting an error for dual-stacked addresses, when the IPv6 addresses came second. When an address is dual-stacked, we thus ended-up listening only to the IPv4 instance. The error happened on dual-stack Linux system, because mapping the IPv6 address will actually attempt to bind both the IPv4 and IPv6 address. In order to prevent this problem, set the IPV6_V6ONLY option so that only the IPv6 address is bound. Additionally, The prelude-admin server code used to report success for binding an interface even thought the operation failed. We now only report successful bind. Change-Id: I0c39d71174e958dd3d5836d78f2dbb32a16cf0c0 prelude-admin/prelude-admin.c | 2 +- prelude-admin/server.c | 44 +++++++++++++++++++++++++++---------------- 2 files changed, 29 insertions(+), 17 deletions(-) commit d735b09c69acb292924c030e625410292ad125ad Author: Yoann Vandoorselaere Date: Mon Jan 5 16:20:27 2015 +0100 Parsing an IDMEFTime fraction was incorrect When parsing an IDMEFTime string, fraction of second were not correctly handled, leading to incorrect time when translating from IDMEFTime to another type through a float() convertion. *** Code : x = prelude.IDMEFTime("2015-01-05T16:28:32.81313+01:00") print(x.toString()) print time.localtime(float(x)) *** Before: 2015-01-05T16:28:32.813130000+01:00 time.struct_time(tm_year=2015, tm_mon=1, tm_mday=5, tm_hour=16, tm_min=42, tm_sec=5, tm_wday=0, tm_yday=5, tm_isdst=0) *** After: 2015-01-05T16:28:32.813130+01:00 # x.toString() time.struct_time(tm_year=2015, tm_mon=1, tm_mday=5, tm_hour=16, tm_min=28, tm_sec=32, tm_wday=0, tm_yday=5, tm_isdst=0) Change-Id: I84e5854a7e8148cf52771bf9611ca16f5f78b30f src/idmef-time.c | 56 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 17 deletions(-) commit 0231833ac3786812e73755a8d1b3c947298e66ea Author: Yoann Vandoorselaere Date: Fri Nov 28 02:26:22 2014 +0100 IDMEFTime() properly handle time_t input Change-Id: If1c3ecf85e7f8343e51884b81082586b3619a1fe bindings/c++/idmef-time.cxx | 4 +-- bindings/c++/include/idmef-time.hxx | 2 +- bindings/libpreludecpp.i | 2 ++ bindings/lua/prelude.cxx | 60 +++++++++++++-------------------- bindings/perl/Prelude.cxx | 64 +++++++++++++++++------------------ bindings/python/_prelude.cxx | 66 +++++++++++++++++-------------------- bindings/ruby/Prelude.cxx | 66 +++++++++++++++++-------------------- 7 files changed, 120 insertions(+), 144 deletions(-) commit 12bdf094babdacb4e73cfe1c35fcaaf43c3a579b Author: Yoann Vandoorselaere Date: Wed Nov 5 10:36:21 2014 +0100 C++ building integer handling cleanup No need to map all available integer type Change-Id: I4a162728a1edd10dc164d1b3f05ae3dbf070284b bindings/c++/idmef-path.cxx | 47 -- bindings/c++/idmef-value.cxx | 40 -- bindings/c++/idmef.cxx | 30 -- bindings/c++/include/idmef-path.hxx | 5 - bindings/c++/include/idmef-value.hxx | 5 - bindings/c++/include/idmef.hxx | 5 - bindings/lua/prelude.cxx | 145 +----- bindings/perl/Prelude.cxx | 976 +++++++---------------------------- bindings/python/_prelude.cxx | 578 +++------------------ bindings/ruby/Prelude.cxx | 564 ++------------------ 10 files changed, 326 insertions(+), 2069 deletions(-) commit 68da90cc8d4edb395a520b5c0c148a4a5f663e19 Author: Yoann Vandoorselaere Date: Wed Oct 22 16:47:55 2014 +0200 SWIG Python now use builtin mode (massive performance improvements) Change-Id: I28cb9b830c9ca2dbee7eb457240d9ae62b890268 bindings/c++/idmef-class.cxx | 30 +- bindings/c++/include/idmef-class.hxx | 9 +- bindings/c++/include/idmef-time.hxx | 1 + bindings/libpreludecpp.i | 10 +- bindings/lua/prelude.cxx | 202 +- bindings/perl/Prelude.cxx | 232 +- bindings/perl/Prelude.pm | 4 +- bindings/python/Makefile.am | 2 +- bindings/python/_prelude.cxx | 12002 ++++++++++++++++++------------- bindings/python/libpreludecpp-python.i | 185 +- bindings/python/prelude.py | 531 +- bindings/ruby/Prelude.cxx | 193 +- src/idmef-class.c | 11 + src/include/idmef-class.h | 2 + 14 files changed, 7356 insertions(+), 6058 deletions(-) commit a9d092c0a2ed2119f7f4b4a30172c9c3fd5bb8d1 Author: Yoann Vandoorselaere Date: Thu Oct 30 09:51:49 2014 +0100 Support IDMEFTime() object within AdditionalData, as required per the IDMEF RFC Change-Id: I1b55d5729ff5425b28086d94f9246015ba863269 src/idmef-data.c | 53 ++++++++++++++++++++-- src/idmef-message-read.c | 11 +++++ src/idmef-message-write.c | 9 +++- src/idmef-value.c | 8 ++++ .../GenerateIDMEFMessageReadC.pm | 11 +++++ .../GenerateIDMEFMessageWriteC.pm | 9 +++- src/include/idmef-data.h | 6 ++- 7 files changed, 97 insertions(+), 10 deletions(-) commit 7adbc45cd7889f56f829a7767cc343999189196a Author: Yoann Vandoorselaere Date: Thu Oct 30 09:35:40 2014 +0100 Whitespace police Change-Id: I411f4eb1640b94b5ebf5429ddf72fea8a2ef92cd src/idmef-message-read.c | 2600 ++++++++++---------- .../GenerateIDMEFMessageReadC.pm | 266 +- 2 files changed, 1433 insertions(+), 1433 deletions(-) commit 81df49a39a19d37a7283fe19a9e4c53411c548c4 Author: Yoann Vandoorselaere Date: Wed Oct 29 15:12:43 2014 +0100 Handle negative AdditionalData Store any AdditionalData integer within an int64_t, in order to simplify the code. All the specialized (u)int* function remain compatible, but shouldn't be used anymore : use idmef_data_set_int() as the replacement. Fix #447. Change-Id: Iba45552879dd6a757f788c0a29cb91a54cbc1cf9 bindings/c++/idmef-value.cxx | 9 ++------ bindings/libpreludecpp.i | 7 ++---- bindings/lua/prelude.cxx | 7 ++---- bindings/perl/Prelude.cxx | 7 ++---- bindings/python/_prelude.cxx | 7 ++---- bindings/ruby/Prelude.cxx | 7 ++---- src/idmef-additional-data.c | 12 +++++----- src/idmef-data.c | 26 ++++++++++------------ src/idmef-message-print.c | 2 +- src/idmef-message-read.c | 6 ++--- src/idmef-message-write.c | 6 ++--- src/idmef-value.c | 20 ++++++++--------- .../GenerateIDMEFMessagePrintC.pm | 2 +- .../GenerateIDMEFMessageReadC.pm | 6 ++--- .../GenerateIDMEFMessageWriteC.pm | 6 ++--- src/include/idmef-data.h | 20 ++++++++++------- 16 files changed, 66 insertions(+), 84 deletions(-) commit 928f3f9bdf46db9bbbba1f816426c641f6f8447c Author: Yoann Vandoorselaere Date: Wed Oct 29 14:44:29 2014 +0100 Whitespace police Change-Id: I0c3ed4a00cf16b01724ebd9774140ddc0ebccaf2 src/include/idmef-data.h | 50 ++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 25 deletions(-) commit e00a64f09161bcdb72de1a1e87f727d0741c4794 Author: Yoann Vandoorselaere Date: Wed Oct 29 14:26:10 2014 +0100 Update bindings code Change-Id: I58a169b354e2f2cfbadd409c0d3366ae3868fe5f bindings/lua/prelude.cxx | 1 - bindings/perl/Prelude.cxx | 1 - bindings/python/_prelude.cxx | 1 - bindings/ruby/Prelude.cxx | 1 - 4 files changed, 4 deletions(-) commit 241bd715b3654540e2854563ab5db1e159e55fdd Author: Yoann Vandoorselaere Date: Wed Oct 29 14:23:37 2014 +0100 Low-level bindings are now deprecated (yeah!) Change-Id: Ied061a348bb343a5e828b15b71e0314016d20e02 bindings/Makefile.am | 2 +- bindings/low-level/Makefile.am | 8 - bindings/low-level/idmef-value-class-mapping.i | 80 - bindings/low-level/libprelude.i | 261 - bindings/low-level/python/Makefile.am | 26 - bindings/low-level/python/_preludeold.c | 58967 ----------------------- bindings/low-level/python/libprelude-python.i | 509 - bindings/low-level/python/preludeold.py | 31 - bindings/low-level/python/setup.py.in | 110 - configure.in | 4 - 10 files changed, 1 insertion(+), 59997 deletions(-) commit bcd36b8428cc68908b1e29278f00b7748a0bec25 Author: Yoann Vandoorselaere Date: Wed Oct 29 13:33:22 2014 +0100 Automatic AdditionalData typing Fix #446. Change-Id: I9920df77993b6d776c479aa459b952a37d8bce03 src/idmef-path.c | 40 ++++++++++++++++++++++++ src/idmef-tree-wrap.c | 13 +++++++- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 22 ++++++++++++- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 2 ++ src/idmef-wrappers-gen/IDMEFTree.pm | 4 ++- src/idmef-wrappers-gen/idmef-tree.h | 1 + src/include/idmef-tree-wrap.h | 3 ++ 7 files changed, 82 insertions(+), 3 deletions(-) commit 1048d5f661a455813d887d647c9c044a68d7a4f3 Author: Antoine LUONG Date: Mon Oct 27 10:33:57 2014 +0100 Update NEWS, bump version Change-Id: Ib3b65467cd21d742a2fd3c7513ef633a0d755635 NEWS | 12 ++++++++++++ bindings/low-level/python/_preludeold.c | 6 +++--- configure.in | 8 ++++---- 3 files changed, 19 insertions(+), 7 deletions(-) commit 18c265c477a2b31607ebce84c341411cc798aa00 Author: Antoine LUONG Date: Fri Oct 24 10:30:07 2014 +0200 Fix #436: allow serial_version to be 0 when level_version is final Change-Id: Ie4154941482eb163f5ce4396ff70eae7ee0c3cd1 configure.in | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 1bd711137e7b122e12e79d09d78d2b342ba388db Author: Antoine LUONG Date: Thu Oct 23 11:52:29 2014 +0200 Complete build dependencies in README Change-Id: I458fe06d3261c22794a7d7066687702eab049b29 README | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 103c5f676d93d9fbfa0a91621753e14d7ffc7ebc Author: Yoann Vandoorselaere Date: Thu Oct 23 11:41:15 2014 +0200 Remove unused Change-Id: Icf548cf8b7d4db2361893313048cac1c1f1abb1c bindings/libpreludecpp.i | 1 - 1 file changed, 1 deletion(-) commit 2e04c3edff57878e96e6828d5d5fe39a86b0ab49 Author: Yoann Vandoorselaere Date: Tue Oct 21 18:17:49 2014 +0200 Add self argument to IDMEFValue_to_SWIG for future builtin compatibility Change-Id: I819109fe915ef0d01afebeded19f04d968650845 bindings/libpreludecpp.i | 4 ++-- bindings/lua/libpreludecpp-lua.i | 9 +++++---- bindings/lua/prelude.cxx | 17 +++++++++-------- bindings/perl/Prelude.cxx | 17 +++++++++-------- bindings/perl/libpreludecpp-perl.i | 9 +++++---- bindings/python/_prelude.cxx | 32 ++++++++++++++++++-------------- bindings/python/libpreludecpp-python.i | 27 ++++++++++++++++----------- bindings/ruby/Prelude.cxx | 17 +++++++++-------- bindings/ruby/libpreludecpp-ruby.i | 9 +++++---- 9 files changed, 78 insertions(+), 63 deletions(-) commit b6f1c0f5411a91feb7fbb842344a49bd49254c1a Author: Yoann Vandoorselaere Date: Fri Oct 17 15:46:24 2014 +0200 Correctly throw PreludeError exception in Python Throw PreludeError exception object rather than generic Python exception. Make sure PreludeError inherit from Python Exception class. Change-Id: Idcf12f45b2d6a44e5434bbc042f6869dc2d85b2f bindings/libpreludecpp.i | 1 + bindings/python/_prelude.cxx | 2032 ++++++++++++++++++++------------ bindings/python/libpreludecpp-python.i | 8 +- bindings/python/prelude.py | 2 +- bindings/ruby/Prelude.cxx | 2 +- 5 files changed, 1278 insertions(+), 767 deletions(-) commit 9ac29f951b14649781937ce97464350e1187ac43 Author: Yoann Vandoorselaere Date: Fri Oct 17 00:14:54 2014 +0200 Minor fixes Remove deprecated low-level perl bindings Makefile entry. Correct inclusion path. Update low-level Python bindings Change-Id: Ic5f5b55f19f48731aa8ae30fd1b6d6aba76c7e9e bindings/low-level/libprelude.i | 4 ---- bindings/low-level/python/Makefile.am | 2 +- bindings/low-level/python/_preludeold.c | 4 ++-- 3 files changed, 3 insertions(+), 7 deletions(-) commit 6adeaf0e5803d29f508e0cf25f0374fd7fbb7956 Author: Antoine LUONG Date: Wed Oct 15 18:02:06 2014 +0200 Update NEWS, bump version Change-Id: Ie9c775f0dd0f119ab4b593565d0b9262a40ebd2d NEWS | 30 ++++++++++++++++++++++++++++-- bindings/low-level/python/_preludeold.c | 2 +- configure.in | 8 ++++---- 3 files changed, 33 insertions(+), 7 deletions(-) commit c9c6c646b9009d05c4263d866abb01607e68483f Author: Camille GARDET Date: Wed Oct 15 09:36:48 2014 +0200 Fix #412 - Move dependencies in README file Change-Id: I319ba348b0850c7f899c3737a768c395e3aed56a INSTALL | 23 -------------------- README | 77 +++++++++++++++++++++++++++++++++++++++++++---------------------- 2 files changed, 51 insertions(+), 49 deletions(-) commit 6268d4470b11526f4baf881b2cef93c60b6bcf48 Author: Yoann Vandoorselaere Date: Tue Oct 14 22:38:38 2014 +0200 Fix gnutls priority error on system with SRP support Fix #410. Change-Id: Ifa56a4159301869392afcc1732e4580b45dbd269 prelude-admin/prelude-admin.c | 2 +- prelude-admin/server.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 97a136993bf7a6e08d6014bfacd1d2c7ed480c3b Author: Yoann Vandoorselaere Date: Thu Oct 9 00:01:40 2014 +0200 Implement simple, locale independant strtod() function Change-Id: Ic915f8d8b457d4cc160eba1b836ebc6021634c54 src/common.c | 36 ++++++++++++++++++++++++++++++++++++ src/include/common.h | 2 ++ 2 files changed, 38 insertions(+) commit 02e4f3112e5a60238e46fd4f18515c35d7ebe5a1 Author: Yoann Vandoorselaere Date: Mon Oct 6 18:11:10 2014 +0200 Correct library ordering for prelude-admin Fix #390 Change-Id: Iaf65a983adc61a396e37d5fc70e1eea481f06bae configure.in | 45 ++++++++++++++++++++++++++------------------- prelude-admin/Makefile.am | 2 +- 2 files changed, 27 insertions(+), 20 deletions(-) commit 039681b677890ea0aafac0ab76f046aff06cfaab Author: Yoann Vandoorselaere Date: Fri Oct 3 14:59:59 2014 +0200 Use --lgpl=2 when invoking GnuLib, remove obsolete GnuLib files Change-Id: I9730af354916e9ac2a1f2d726a5af0dd1bef64aa libmissing/Makefile.am | 365 +--- libmissing/accept.c | 2 +- libmissing/alloca.in.h | 2 +- libmissing/arpa_inet.in.h | 2 +- libmissing/asnprintf.c | 2 +- libmissing/bind.c | 2 +- libmissing/btowc.c | 2 +- libmissing/c-ctype.c | 2 +- libmissing/c-ctype.h | 2 +- libmissing/close.c | 2 +- libmissing/config.charset | 2 +- libmissing/connect.c | 2 +- libmissing/dosname.h | 2 +- libmissing/dup2.c | 2 +- libmissing/errno.in.h | 2 +- libmissing/fclose.c | 2 +- libmissing/fd-hook.c | 2 +- libmissing/fd-hook.h | 2 +- libmissing/fflush.c | 2 +- libmissing/float+.h | 2 +- libmissing/float.c | 2 +- libmissing/float.in.h | 2 +- libmissing/fopen.c | 2 +- libmissing/fpucw.h | 108 -- libmissing/fpurge.c | 2 +- libmissing/freading.c | 2 +- libmissing/freading.h | 2 +- libmissing/frexp.c | 168 -- libmissing/frexpl.c | 35 - libmissing/fseek.c | 2 +- libmissing/fseeko.c | 2 +- libmissing/fstat.c | 2 +- libmissing/ftell.c | 2 +- libmissing/ftello.c | 2 +- libmissing/gai_strerror.c | 2 +- libmissing/getaddrinfo.c | 2 +- libmissing/getdelim.c | 2 +- libmissing/gethostname.c | 2 +- libmissing/getline.c | 2 +- libmissing/getpass.c | 2 +- libmissing/getpass.h | 2 +- libmissing/getsockname.c | 2 +- libmissing/gettext.h | 2 +- libmissing/gettimeofday.c | 2 +- libmissing/glthread/cond.c | 2 +- libmissing/glthread/cond.h | 2 +- libmissing/glthread/lock.c | 2 +- libmissing/glthread/lock.h | 2 +- libmissing/glthread/thread.c | 2 +- libmissing/glthread/thread.h | 2 +- libmissing/glthread/threadlib.c | 2 +- libmissing/glthread/tls.c | 2 +- libmissing/glthread/tls.h | 2 +- libmissing/inet_ntop.c | 2 +- libmissing/inet_pton.c | 2 +- libmissing/intprops.h | 2 +- libmissing/ioctl.c | 2 +- libmissing/isnan.c | 189 -- libmissing/isnand-nolibm.h | 33 - libmissing/isnand.c | 19 - libmissing/isnanf-nolibm.h | 40 - libmissing/isnanf.c | 20 - libmissing/isnanl-nolibm.h | 33 - libmissing/isnanl.c | 20 - libmissing/itold.c | 2 +- libmissing/langinfo.in.h | 2 +- libmissing/listen.c | 2 +- libmissing/localcharset.c | 2 +- libmissing/localcharset.h | 2 +- libmissing/locale.in.h | 2 +- libmissing/localeconv.c | 2 +- libmissing/lseek.c | 2 +- libmissing/m4/exponentf.m4 | 92 - libmissing/m4/exponentl.m4 | 98 - libmissing/m4/frexp.m4 | 172 -- libmissing/m4/frexpl.m4 | 231 --- libmissing/m4/gnulib-cache.m4 | 8 +- libmissing/m4/gnulib-comp.m4 | 130 +- libmissing/m4/isnand.m4 | 96 - libmissing/m4/isnanf.m4 | 188 -- libmissing/m4/isnanl.m4 | 255 --- libmissing/m4/ldexpl.m4 | 133 -- libmissing/m4/nocrash.m4 | 130 -- libmissing/m4/printf-frexp.m4 | 38 - libmissing/m4/printf-frexpl.m4 | 48 - libmissing/m4/signbit.m4 | 365 ---- libmissing/m4/snprintf-posix.m4 | 126 -- libmissing/m4/vsnprintf-posix.m4 | 127 -- libmissing/malloc.c | 2 +- libmissing/math.c | 3 - libmissing/math.in.h | 2278 ---------------------- libmissing/mbrtowc.c | 2 +- libmissing/mbsinit.c | 2 +- libmissing/mbtowc-impl.h | 2 +- libmissing/mbtowc.c | 2 +- libmissing/memchr.c | 2 +- libmissing/memmem.c | 2 +- libmissing/minmax.h | 2 +- libmissing/msvc-inval.c | 2 +- libmissing/msvc-inval.h | 2 +- libmissing/msvc-nothrow.c | 2 +- libmissing/msvc-nothrow.h | 2 +- libmissing/netdb.in.h | 2 +- libmissing/netinet_in.in.h | 2 +- libmissing/nl_langinfo.c | 2 +- libmissing/pathmax.h | 2 +- libmissing/perror.c | 2 +- libmissing/poll.c | 2 +- libmissing/poll.in.h | 2 +- libmissing/printf-args.c | 2 +- libmissing/printf-args.h | 2 +- libmissing/printf-frexp.c | 190 -- libmissing/printf-frexp.h | 23 - libmissing/printf-frexpl.c | 37 - libmissing/printf-frexpl.h | 23 - libmissing/printf-parse.c | 2 +- libmissing/printf-parse.h | 2 +- libmissing/raise.c | 2 +- libmissing/realloc.c | 2 +- libmissing/ref-add.sin | 2 +- libmissing/ref-del.sin | 2 +- libmissing/select.c | 2 +- libmissing/setsockopt.c | 2 +- libmissing/signal.in.h | 2 +- libmissing/signbitd.c | 64 - libmissing/signbitf.c | 64 - libmissing/signbitl.c | 64 - libmissing/sigprocmask.c | 2 +- libmissing/size_max.h | 2 +- libmissing/sleep.c | 2 +- libmissing/snprintf.c | 2 +- libmissing/socket.c | 2 +- libmissing/sockets.c | 2 +- libmissing/sockets.h | 2 +- libmissing/stat.c | 2 +- libmissing/stdalign.in.h | 2 +- libmissing/stdbool.in.h | 2 +- libmissing/stddef.in.h | 2 +- libmissing/stdint.in.h | 2 +- libmissing/stdio-impl.h | 2 +- libmissing/stdio.in.h | 2 +- libmissing/stdlib.in.h | 2 +- libmissing/str-two-way.h | 2 +- libmissing/strcasecmp.c | 2 +- libmissing/strcasestr.c | 2 +- libmissing/strdup.c | 2 +- libmissing/streq.h | 2 +- libmissing/strerror-override.c | 2 +- libmissing/strerror-override.h | 2 +- libmissing/strerror.c | 2 +- libmissing/strerror_r.c | 2 +- libmissing/string.in.h | 2 +- libmissing/strings.in.h | 2 +- libmissing/strncasecmp.c | 2 +- libmissing/strndup.c | 2 +- libmissing/strnlen.c | 2 +- libmissing/strptime.c | 2 +- libmissing/strsep.c | 2 +- libmissing/sys_ioctl.in.h | 2 +- libmissing/sys_select.in.h | 2 +- libmissing/sys_socket.in.h | 2 +- libmissing/sys_stat.in.h | 2 +- libmissing/sys_time.in.h | 2 +- libmissing/sys_types.in.h | 2 +- libmissing/sys_uio.in.h | 2 +- libmissing/sys_utsname.in.h | 2 +- libmissing/tests/Makefile.am | 103 +- libmissing/tests/fpucw.h | 108 ++ libmissing/tests/infinity.h | 60 - libmissing/tests/minus-zero.h | 74 - libmissing/tests/nan.h | 70 - libmissing/tests/randomd.c | 1028 ---------- libmissing/tests/randoml.c | 1028 ---------- libmissing/tests/test-frexp.c | 67 - libmissing/tests/test-frexp.h | 179 -- libmissing/tests/test-frexpl.c | 78 - libmissing/tests/test-isnand-nolibm.c | 21 - libmissing/tests/test-isnand.h | 63 - libmissing/tests/test-isnanf-nolibm.c | 21 - libmissing/tests/test-isnanf.h | 65 - libmissing/tests/test-isnanl-nolibm.c | 23 - libmissing/tests/test-isnanl.h | 136 -- libmissing/tests/test-math.c | 104 - libmissing/tests/test-printf-frexp.c | 119 -- libmissing/tests/test-printf-frexpl.c | 134 -- libmissing/tests/test-signbit.c | 187 -- libmissing/tests/test-snprintf-posix.c | 38 - libmissing/tests/test-snprintf-posix.h | 3121 ------------------------------- libmissing/tests/test-vsnprintf-posix.c | 51 - libmissing/time.in.h | 2 +- libmissing/time_r.c | 2 +- libmissing/timegm.c | 2 +- libmissing/uname.c | 2 +- libmissing/unistd.in.h | 2 +- libmissing/vasnprintf.c | 2 +- libmissing/vasnprintf.h | 2 +- libmissing/verify.h | 2 +- libmissing/vsnprintf.c | 2 +- libmissing/w32sock.h | 2 +- libmissing/wchar.in.h | 2 +- libmissing/wcrtomb.c | 2 +- libmissing/wctype.in.h | 2 +- libmissing/write.c | 2 +- libmissing/xsize.h | 2 +- link-warning.h | 45 - 205 files changed, 266 insertions(+), 12960 deletions(-) commit f9d1bf148d0d381c1c9c9e2e04588979c54e7548 Author: Yoann Vandoorselaere Date: Thu Oct 2 23:10:06 2014 +0200 Handle NULL on IDMEFValue() for IDMEF object constructor Change-Id: Id9f3a7ec321707e5306964f14eb6aa33dbbbdf94 bindings/c++/idmef-value.cxx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 7d39524f7ba85394b3c44c750b5bb3d8792bf3f4 Author: Yoann Vandoorselaere Date: Thu Sep 25 18:00:45 2014 +0200 Introduce support for the IDMEFClass class Change-Id: Ieb3dc7c3af4ed0d232222401779e20a5a845099c bindings/c++/Makefile.am | 1 + bindings/c++/idmef-class.cxx | 206 +++++ bindings/c++/idmef-path.cxx | 5 +- bindings/c++/include/Makefile.am | 1 + bindings/c++/include/idmef-class.hxx | 69 ++ bindings/c++/include/idmef-path.hxx | 4 +- bindings/c++/include/prelude.hxx | 1 + bindings/libpreludecpp.i | 6 + bindings/lua/prelude.cxx | 1185 ++++++++++++++++++++++------ bindings/perl/Prelude.cxx | 1326 ++++++++++++++++++++++++++------ bindings/perl/Prelude.pm | 47 ++ bindings/python/_prelude.cxx | 1244 +++++++++++++++++++++++++----- bindings/python/libpreludecpp-python.i | 20 + bindings/python/prelude.py | 42 +- bindings/ruby/Prelude.cxx | 1211 ++++++++++++++++++++++++----- 15 files changed, 4494 insertions(+), 874 deletions(-) commit 2559943b7a4cfabcf7730f2fb37647c22ef0e7f1 Author: Yoann Vandoorselaere Date: Thu Sep 25 17:52:14 2014 +0200 Enable SWIG support for keywords arguments Change-Id: Ifb3b237d36b67d40380f4054aaeea232e0fc49c0 bindings/libpreludecpp.i | 14 +- bindings/lua/prelude.cxx | 1730 ++++-------------- bindings/perl/Prelude.cxx | 3149 +++++++++----------------------- bindings/python/_prelude.cxx | 1835 ++++--------------- bindings/python/libpreludecpp-python.i | 2 + bindings/python/prelude.py | 20 +- bindings/ruby/Prelude.cxx | 2789 +++++++++------------------- 7 files changed, 2471 insertions(+), 7068 deletions(-) commit 61b4f29b0b7a553479bb8846cc1fda4d9b65dcba Author: Yoann Vandoorselaere Date: Thu Sep 25 17:42:47 2014 +0200 Add missing copyright notice Change-Id: I1663d07008e7e36dcec8930d645e0017e0f701b3 bindings/c++/idmef.cxx | 23 ++++++++++++++++++ bindings/c++/include/idmef.hxx | 23 ++++++++++++++++++ bindings/c++/include/prelude-client-easy.hxx | 31 +++++++++++++++++++++---- bindings/c++/include/prelude-client-profile.hxx | 23 ++++++++++++++++++ bindings/c++/include/prelude-client.hxx | 23 ++++++++++++++++++ bindings/c++/prelude-client-easy.cxx | 23 ++++++++++++++++++ bindings/c++/prelude-client-profile.cxx | 23 ++++++++++++++++++ bindings/c++/prelude-client.cxx | 23 ++++++++++++++++++ bindings/c++/prelude-log.cxx | 23 ++++++++++++++++++ 9 files changed, 211 insertions(+), 4 deletions(-) commit 5ece52c41bd32cacc59a1854d4825e2e1ffe5e29 Author: Thomas ANDREJAK Date: Wed Sep 24 19:46:24 2014 +0200 Force definition of LUA_VERSION Change-Id: I02209e22c88243983c8e0c1ad82d8c961c32b7e3 configure.in | 8 ++++++++ 1 file changed, 8 insertions(+) commit 7ff6e2f2330e026e7fd044d1b8afc8dbbdf8fac4 Author: Thomas ANDREJAK Date: Wed Sep 24 18:42:58 2014 +0200 Fix PreludeEasy references in bindings/Makefile.am Change-Id: If61781251fe43f0a914ea48f2d2c7103c1344f17 bindings/Makefile.am | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit a5ad167dd302c8196c2ace3d98e813e83cf85f83 Author: Thomas ANDREJAK Date: Wed Sep 24 18:29:51 2014 +0200 Missing files while generating dist Change-Id: I9e9093695b51883ce361269dfd53acd2521b37dc bindings/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2eedfb3345522ec220e55b57c9124f84d2dffd1d Author: Antoine LUONG Date: Tue Sep 23 14:55:51 2014 +0200 Update NEWS, bump version Change-Id: Ib8e9932bc4393e79cdb925ddbac96165431b24f1 NEWS | 32 ++++++++++++++++++++++++++++++++ bindings/low-level/python/_preludeold.c | 2 +- configure.in | 6 +++--- 3 files changed, 36 insertions(+), 4 deletions(-) commit af533f86052c85c0b66f11f9559e51c8ad4b87d3 Author: Camille GARDET Date: Tue Sep 16 11:40:31 2014 +0200 Add dependencies in INSTALL file Change-Id: I3d9d0343555893b05e08d6bdf079bb30a70159e9 INSTALL | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit b8ad7f97f0f324500ef3869749e76b5d1dee5e64 Author: Yoann Vandoorselaere Date: Tue Sep 23 11:09:10 2014 +0200 Fix import of the "preludeold" module Change-Id: I5c504a992703d9fb1d9e5d983bb6d68594bb4890 bindings/low-level/python/_preludeold.c | 2 +- bindings/low-level/python/libprelude-python.i | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 24a8d351c460c2e94f6e2cec8501e76306f6a49c Author: Yoann Vandoorselaere Date: Mon Sep 22 11:32:03 2014 +0200 Fixes compilation issue with Ruby bindings Change-Id: I2a047dd576a36a89c96240847222e60ff1357a13 bindings/ruby/Prelude.cxx | 470 ++++++++++++++++++------------------- bindings/ruby/libpreludecpp-ruby.i | 2 +- 2 files changed, 236 insertions(+), 236 deletions(-) commit 02c7fe199f13ccfe0169bf8471876f724a53866d Author: Yoann Vandoorselaere Date: Mon Sep 22 09:24:50 2014 +0200 Correct autogen.sh output Change-Id: I59914e80c61a1e4be3514a55bc43be9fba57538f autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 76810ddf722781b8168b6c08b3926aa4e402b8ef Author: Yoann Vandoorselaere Date: Mon Sep 22 01:40:37 2014 +0200 Use std::string over const char * Use std::string in place of const char *, this allow, for one, to set binary string data into IDMEF object. Change-Id: Ib4c04a4509074eb7f309a902badcc73ba366b11b bindings/c++/idmef-path.cxx | 13 +- bindings/c++/idmef-value.cxx | 15 +- bindings/c++/idmef.cxx | 6 +- bindings/c++/include/idmef-path.hxx | 8 +- bindings/c++/include/idmef-value.hxx | 8 +- bindings/c++/include/idmef.hxx | 6 +- bindings/libpreludecpp.i | 17 +- bindings/lua/prelude.cxx | 842 +++---------------- bindings/perl/Prelude.cxx | 1499 +++++++--------------------------- bindings/python/_prelude.cxx | 1309 ++++++++--------------------- bindings/ruby/Prelude.cxx | 1234 +++++++--------------------- 11 files changed, 1063 insertions(+), 3894 deletions(-) commit 029e8c4966bdceaac3553e2b7ec8e0288ba47c52 Author: Yoann Vandoorselaere Date: Sun Sep 21 18:54:25 2014 +0200 C++ bindings constness fixes Change-Id: I1eeb1a42743c48323c29c6ee9b899f8fa3333286 bindings/c++/idmef-criteria.cxx | 4 +- bindings/c++/idmef-path.cxx | 62 +- bindings/c++/idmef-time.cxx | 14 +- bindings/c++/idmef-value.cxx | 16 +- bindings/c++/include/idmef-criteria.hxx | 4 +- bindings/c++/include/idmef-path.hxx | 62 +- bindings/c++/include/idmef-time.hxx | 14 +- bindings/c++/include/idmef-value.hxx | 16 +- bindings/c++/include/prelude-client.hxx | 8 +- bindings/c++/include/prelude-connection-pool.hxx | 8 +- bindings/c++/include/prelude-connection.hxx | 22 +- bindings/c++/include/prelude-error.hxx | 2 +- bindings/c++/prelude-client.cxx | 8 +- bindings/c++/prelude-connection-pool.cxx | 8 +- bindings/c++/prelude-connection.cxx | 22 +- bindings/c++/prelude-error.cxx | 2 +- bindings/lua/prelude.cxx | 576 +++++++++++++------ bindings/perl/Makefile.PL.in | 2 +- bindings/perl/Prelude.cxx | 683 ++++++++++++++++------- bindings/perl/libpreludecpp-perl.i | 4 +- bindings/python/_prelude.cxx | 608 +++++++++++++------- bindings/python/prelude.py | 15 +- bindings/ruby/Prelude.cxx | 540 ++++++++++++------ 23 files changed, 1826 insertions(+), 874 deletions(-) commit eb7efceed4405b2e4ebc9d749d5152b021a2664f Author: Yoann Vandoorselaere Date: Sat Sep 20 09:25:17 2014 +0200 Massive high/low level bindings renaming - Low-level perl bindings are deleted - Low-level python bindings renamed to "preludeold" - High-level perl bindings renamed to "Prelude" - High-level python bindings renamed to "prelude" - High-level ruby bindings renamed to "Prelude" - High-level lua bindings renamed to "prelude" Change-Id: Ic9a2f17140899642e028fc8bfc4726b885cd5a95 bindings/Makefile.am | 4 +- bindings/c++/idmef-criteria.cxx | 12 +- bindings/c++/idmef-path.cxx | 76 +- bindings/c++/idmef-time.cxx | 32 +- bindings/c++/idmef-value.cxx | 58 +- bindings/c++/idmef.cxx | 84 +- bindings/c++/include/idmef-criteria.hxx | 10 +- bindings/c++/include/idmef-path.hxx | 70 +- bindings/c++/include/idmef-time.hxx | 24 +- bindings/c++/include/idmef-value.hxx | 10 +- bindings/c++/include/idmef.hxx | 44 +- bindings/c++/include/prelude-client-profile.hxx | 36 +- bindings/c++/include/prelude-client.hxx | 28 +- bindings/c++/include/prelude-connection-pool.hxx | 26 +- bindings/c++/include/prelude-connection.hxx | 34 +- bindings/c++/include/prelude-error.hxx | 2 +- bindings/c++/include/prelude-log.hxx | 12 +- bindings/c++/include/prelude.hxx | 2 +- bindings/c++/prelude-client-easy.cxx | 6 +- bindings/c++/prelude-client-profile.cxx | 24 +- bindings/c++/prelude-client.cxx | 34 +- bindings/c++/prelude-connection-pool.cxx | 26 +- bindings/c++/prelude-connection.cxx | 34 +- bindings/c++/prelude-error.cxx | 2 +- bindings/c++/prelude-log.cxx | 12 +- bindings/c++/prelude.cxx | 2 +- bindings/libpreludecpp.i | 37 +- bindings/low-level/Makefile.am | 59 +- bindings/low-level/perl/Makefile.PL.in | 65 - bindings/low-level/perl/Prelude.c | 68414 --------------------- bindings/low-level/perl/Prelude.pm | 21 - bindings/low-level/perl/libprelude_perl.i | 376 - bindings/low-level/python/Makefile.am | 8 +- bindings/low-level/python/_prelude.c | 58930 ------------------ bindings/low-level/python/_preludeold.c | 58967 ++++++++++++++++++ bindings/low-level/python/prelude.py | 31 - bindings/low-level/python/preludeold.py | 31 + bindings/low-level/python/setup.py.in | 14 +- bindings/lua/Makefile.am | 14 +- bindings/lua/PreludeEasy.cxx | 13469 ---- bindings/lua/libpreludecpp-lua.i | 22 +- bindings/lua/prelude.cxx | 14521 +++++ bindings/perl/Makefile.PL.in | 10 +- bindings/perl/Prelude.cxx | 18034 ++++++ bindings/perl/Prelude.pm | 752 + bindings/perl/PreludeEasy.cxx | 18034 ------ bindings/perl/PreludeEasy.pm | 752 - bindings/perl/libpreludecpp-perl.i | 14 +- bindings/python/Makefile.am | 6 +- bindings/python/PreludeEasy.py | 581 - bindings/python/_PreludeEasy.cxx | 19937 ------ bindings/python/_prelude.cxx | 19937 ++++++ bindings/python/libpreludecpp-python.i | 26 +- bindings/python/prelude.py | 581 + bindings/python/setup.py.in | 14 +- bindings/ruby/Makefile.am | 14 +- bindings/ruby/Prelude.cxx | 19062 ++++++ bindings/ruby/PreludeEasy.cxx | 19017 ------ bindings/ruby/libpreludecpp-ruby.i | 16 +- bindings/tests/test.lua | 40 +- bindings/tests/test.pl | 46 +- bindings/tests/test.py | 38 +- bindings/tests/test.rb | 38 +- configure.in | 1 - 64 files changed, 132421 insertions(+), 200212 deletions(-) commit 1aec7b06313caf5385bff02ec31f90e802377f3b Author: Yoann Vandoorselaere Date: Fri Sep 19 15:51:08 2014 +0200 Make it possible to inherit PreludeError Change-Id: I12d889c62814b351549f1a10de513334670316dc bindings/c++/include/prelude-error.hxx | 5 ++- bindings/c++/prelude-error.cxx | 10 ++++- bindings/lua/PreludeEasy.cxx | 45 ++++++++++++++++++---- bindings/perl/PreludeEasy.cxx | 70 ++++++++++++++++++++++++++-------- bindings/python/_PreludeEasy.cxx | 55 ++++++++++++++++++++------ bindings/ruby/PreludeEasy.cxx | 57 +++++++++++++++++++++------ 6 files changed, 192 insertions(+), 50 deletions(-) commit f5d6db9afc1ee18e09c54dfa81338d2a94d00958 Author: Yoann Vandoorselaere Date: Sat Sep 13 02:22:19 2014 +0200 Update GnuLib code Change-Id: Ie120f21dc67bd6d1f4d6e1ae2be3d992ce3dc5a8 config.rpath | 18 +-- libmissing/Makefile.am | 16 +- libmissing/accept.c | 2 +- libmissing/alloca.in.h | 2 +- libmissing/arpa_inet.in.h | 2 +- libmissing/asnprintf.c | 2 +- libmissing/bind.c | 2 +- libmissing/btowc.c | 2 +- libmissing/c-ctype.c | 2 +- libmissing/c-ctype.h | 2 +- libmissing/close.c | 2 +- libmissing/config.charset | 2 +- libmissing/connect.c | 2 +- libmissing/dosname.h | 2 +- libmissing/dup2.c | 2 +- libmissing/errno.in.h | 2 +- libmissing/fclose.c | 2 +- libmissing/fd-hook.c | 2 +- libmissing/fd-hook.h | 2 +- libmissing/fflush.c | 2 +- libmissing/float+.h | 2 +- libmissing/float.c | 2 +- libmissing/float.in.h | 2 +- libmissing/fopen.c | 2 +- libmissing/fpucw.h | 2 +- libmissing/fpurge.c | 2 +- libmissing/freading.c | 2 +- libmissing/freading.h | 4 +- libmissing/frexp.c | 2 +- libmissing/frexpl.c | 2 +- libmissing/fseek.c | 2 +- libmissing/fseeko.c | 2 +- libmissing/fstat.c | 2 +- libmissing/ftell.c | 2 +- libmissing/ftello.c | 2 +- libmissing/gai_strerror.c | 2 +- libmissing/getaddrinfo.c | 2 +- libmissing/getdelim.c | 2 +- libmissing/gethostname.c | 2 +- libmissing/getline.c | 2 +- libmissing/getpass.c | 4 +- libmissing/getpass.h | 2 +- libmissing/getsockname.c | 2 +- libmissing/gettext.h | 2 +- libmissing/gettimeofday.c | 2 +- libmissing/glthread/cond.c | 2 +- libmissing/glthread/cond.h | 2 +- libmissing/glthread/lock.c | 2 +- libmissing/glthread/lock.h | 2 +- libmissing/glthread/thread.c | 2 +- libmissing/glthread/thread.h | 2 +- libmissing/glthread/threadlib.c | 2 +- libmissing/glthread/tls.c | 2 +- libmissing/glthread/tls.h | 2 +- libmissing/inet_ntop.c | 2 +- libmissing/inet_pton.c | 2 +- libmissing/intprops.h | 2 +- libmissing/ioctl.c | 2 +- libmissing/isnan.c | 2 +- libmissing/isnand-nolibm.h | 2 +- libmissing/isnand.c | 2 +- libmissing/isnanf-nolibm.h | 2 +- libmissing/isnanf.c | 2 +- libmissing/isnanl-nolibm.h | 2 +- libmissing/isnanl.c | 2 +- libmissing/itold.c | 2 +- libmissing/langinfo.in.h | 20 ++- libmissing/listen.c | 2 +- libmissing/localcharset.c | 39 +++-- libmissing/localcharset.h | 2 +- libmissing/locale.in.h | 2 +- libmissing/localeconv.c | 2 +- libmissing/lseek.c | 2 +- libmissing/m4/00gnulib.m4 | 22 ++- libmissing/m4/absolute-header.m4 | 2 +- libmissing/m4/alloca.m4 | 2 +- libmissing/m4/arpa_inet_h.m4 | 2 +- libmissing/m4/btowc.m4 | 2 +- libmissing/m4/close.m4 | 2 +- libmissing/m4/codeset.m4 | 2 +- libmissing/m4/cond.m4 | 2 +- libmissing/m4/configmake.m4 | 2 +- libmissing/m4/dup2.m4 | 14 +- libmissing/m4/eealloc.m4 | 2 +- libmissing/m4/environ.m4 | 2 +- libmissing/m4/errno_h.m4 | 2 +- libmissing/m4/exponentd.m4 | 2 +- libmissing/m4/exponentf.m4 | 2 +- libmissing/m4/exponentl.m4 | 2 +- libmissing/m4/extensions.m4 | 2 +- libmissing/m4/extern-inline.m4 | 33 +++-- libmissing/m4/fclose.m4 | 2 +- libmissing/m4/fcntl-o.m4 | 2 +- libmissing/m4/fcntl_h.m4 | 2 +- libmissing/m4/fdopen.m4 | 2 +- libmissing/m4/fflush.m4 | 2 +- libmissing/m4/float_h.m4 | 2 +- libmissing/m4/fopen.m4 | 2 +- libmissing/m4/fpieee.m4 | 2 +- libmissing/m4/fpurge.m4 | 2 +- libmissing/m4/freading.m4 | 2 +- libmissing/m4/frexp.m4 | 2 +- libmissing/m4/frexpl.m4 | 2 +- libmissing/m4/fseek.m4 | 2 +- libmissing/m4/fseeko.m4 | 2 +- libmissing/m4/fstat.m4 | 2 +- libmissing/m4/ftell.m4 | 2 +- libmissing/m4/ftello.m4 | 2 +- libmissing/m4/ftruncate.m4 | 2 +- libmissing/m4/getaddrinfo.m4 | 2 +- libmissing/m4/getcwd.m4 | 2 +- libmissing/m4/getdelim.m4 | 2 +- libmissing/m4/getdtablesize.m4 | 2 +- libmissing/m4/gethostname.m4 | 2 +- libmissing/m4/getline.m4 | 2 +- libmissing/m4/getpagesize.m4 | 2 +- libmissing/m4/getpass.m4 | 2 +- libmissing/m4/gettimeofday.m4 | 10 +- libmissing/m4/glibc21.m4 | 2 +- libmissing/m4/gnulib-cache.m4 | 2 +- libmissing/m4/gnulib-common.m4 | 120 ++++++++++++--- libmissing/m4/gnulib-comp.m4 | 10 +- libmissing/m4/gnulib-tool.m4 | 2 +- libmissing/m4/hostent.m4 | 2 +- libmissing/m4/include_next.m4 | 2 +- libmissing/m4/inet_ntop.m4 | 2 +- libmissing/m4/inet_pton.m4 | 2 +- libmissing/m4/intlmacosx.m4 | 2 +- libmissing/m4/intmax_t.m4 | 2 +- libmissing/m4/inttypes-pri.m4 | 2 +- libmissing/m4/inttypes.m4 | 2 +- libmissing/m4/inttypes_h.m4 | 2 +- libmissing/m4/ioctl.m4 | 2 +- libmissing/m4/isnand.m4 | 2 +- libmissing/m4/isnanf.m4 | 2 +- libmissing/m4/isnanl.m4 | 2 +- libmissing/m4/langinfo_h.m4 | 2 +- libmissing/m4/largefile.m4 | 2 +- libmissing/m4/lcmessage.m4 | 2 +- libmissing/m4/ldexpl.m4 | 2 +- libmissing/m4/lib-ld.m4 | 2 +- libmissing/m4/lib-link.m4 | 2 +- libmissing/m4/lib-prefix.m4 | 2 +- libmissing/m4/localcharset.m4 | 2 +- libmissing/m4/locale-fr.m4 | 2 +- libmissing/m4/locale-ja.m4 | 2 +- libmissing/m4/locale-tr.m4 | 2 +- libmissing/m4/locale-zh.m4 | 2 +- libmissing/m4/locale_h.m4 | 2 +- libmissing/m4/localeconv.m4 | 2 +- libmissing/m4/localename.m4 | 2 +- libmissing/m4/lock.m4 | 2 +- libmissing/m4/longlong.m4 | 2 +- libmissing/m4/lseek.m4 | 2 +- libmissing/m4/lstat.m4 | 2 +- libmissing/m4/malloc.m4 | 2 +- libmissing/m4/malloca.m4 | 2 +- libmissing/m4/math_h.m4 | 2 +- libmissing/m4/mbrtowc.m4 | 48 +++++- libmissing/m4/mbsinit.m4 | 2 +- libmissing/m4/mbstate_t.m4 | 2 +- libmissing/m4/mbtowc.m4 | 2 +- libmissing/m4/memchr.m4 | 2 +- libmissing/m4/memmem.m4 | 2 +- libmissing/m4/minmax.m4 | 2 +- libmissing/m4/mktime.m4 | 2 +- libmissing/m4/mmap-anon.m4 | 2 +- libmissing/m4/mode_t.m4 | 2 +- libmissing/m4/msvc-inval.m4 | 2 +- libmissing/m4/msvc-nothrow.m4 | 2 +- libmissing/m4/multiarch.m4 | 2 +- libmissing/m4/netdb_h.m4 | 2 +- libmissing/m4/netinet_in_h.m4 | 2 +- libmissing/m4/nl_langinfo.m4 | 2 +- libmissing/m4/nocrash.m4 | 2 +- libmissing/m4/off_t.m4 | 2 +- libmissing/m4/onceonly.m4 | 2 +- libmissing/m4/open.m4 | 2 +- libmissing/m4/pathmax.m4 | 2 +- libmissing/m4/perror.m4 | 2 +- libmissing/m4/pipe.m4 | 2 +- libmissing/m4/poll.m4 | 2 +- libmissing/m4/poll_h.m4 | 2 +- libmissing/m4/printf-frexp.m4 | 2 +- libmissing/m4/printf-frexpl.m4 | 2 +- libmissing/m4/printf.m4 | 20 +-- libmissing/m4/putenv.m4 | 2 +- libmissing/m4/raise.m4 | 2 +- libmissing/m4/realloc.m4 | 2 +- libmissing/m4/regex.m4 | 2 +- libmissing/m4/relocatable-lib.m4 | 2 +- libmissing/m4/select.m4 | 2 +- libmissing/m4/servent.m4 | 2 +- libmissing/m4/setenv.m4 | 2 +- libmissing/m4/setlocale.m4 | 2 +- libmissing/m4/signal_h.m4 | 2 +- libmissing/m4/signalblocking.m4 | 2 +- libmissing/m4/signbit.m4 | 2 +- libmissing/m4/size_max.m4 | 2 +- libmissing/m4/sleep.m4 | 2 +- libmissing/m4/snprintf-posix.m4 | 2 +- libmissing/m4/snprintf.m4 | 2 +- libmissing/m4/socketlib.m4 | 2 +- libmissing/m4/sockets.m4 | 2 +- libmissing/m4/socklen.m4 | 2 +- libmissing/m4/sockpfaf.m4 | 2 +- libmissing/m4/ssize_t.m4 | 2 +- libmissing/m4/stat.m4 | 2 +- libmissing/m4/stdalign.m4 | 2 +- libmissing/m4/stdbool.m4 | 2 +- libmissing/m4/stddef_h.m4 | 2 +- libmissing/m4/stdint.m4 | 2 +- libmissing/m4/stdint_h.m4 | 2 +- libmissing/m4/stdio_h.m4 | 2 +- libmissing/m4/stdlib_h.m4 | 4 +- libmissing/m4/strcase.m4 | 2 +- libmissing/m4/strcasestr.m4 | 2 +- libmissing/m4/strdup.m4 | 2 +- libmissing/m4/strerror.m4 | 2 +- libmissing/m4/strerror_r.m4 | 2 +- libmissing/m4/string_h.m4 | 2 +- libmissing/m4/strings_h.m4 | 2 +- libmissing/m4/strndup.m4 | 2 +- libmissing/m4/strnlen.m4 | 2 +- libmissing/m4/strptime.m4 | 2 +- libmissing/m4/strsep.m4 | 2 +- libmissing/m4/symlink.m4 | 2 +- libmissing/m4/sys_ioctl_h.m4 | 2 +- libmissing/m4/sys_select_h.m4 | 2 +- libmissing/m4/sys_socket_h.m4 | 2 +- libmissing/m4/sys_stat_h.m4 | 2 +- libmissing/m4/sys_time_h.m4 | 2 +- libmissing/m4/sys_types_h.m4 | 2 +- libmissing/m4/sys_uio_h.m4 | 2 +- libmissing/m4/sys_utsname_h.m4 | 2 +- libmissing/m4/thread.m4 | 2 +- libmissing/m4/threadlib.m4 | 40 +++-- libmissing/m4/time_h.m4 | 13 +- libmissing/m4/time_r.m4 | 2 +- libmissing/m4/timegm.m4 | 2 +- libmissing/m4/tls.m4 | 2 +- libmissing/m4/tm_gmtoff.m4 | 2 +- libmissing/m4/uname.m4 | 2 +- libmissing/m4/ungetc.m4 | 2 +- libmissing/m4/unistd_h.m4 | 2 +- libmissing/m4/vasnprintf.m4 | 2 +- libmissing/m4/vsnprintf-posix.m4 | 2 +- libmissing/m4/vsnprintf.m4 | 2 +- libmissing/m4/warn-on-use.m4 | 2 +- libmissing/m4/wchar_h.m4 | 2 +- libmissing/m4/wchar_t.m4 | 2 +- libmissing/m4/wcrtomb.m4 | 2 +- libmissing/m4/wctob.m4 | 2 +- libmissing/m4/wctomb.m4 | 2 +- libmissing/m4/wctype_h.m4 | 2 +- libmissing/m4/wint_t.m4 | 2 +- libmissing/m4/write.m4 | 2 +- libmissing/m4/xsize.m4 | 2 +- libmissing/m4/yield.m4 | 2 +- libmissing/malloc.c | 2 +- libmissing/math.in.h | 2 +- libmissing/mbrtowc.c | 9 +- libmissing/mbsinit.c | 2 +- libmissing/mbtowc-impl.h | 2 +- libmissing/mbtowc.c | 2 +- libmissing/memchr.c | 2 +- libmissing/memmem.c | 2 +- libmissing/minmax.h | 2 +- libmissing/mktime.c | 6 +- libmissing/msvc-inval.c | 2 +- libmissing/msvc-inval.h | 2 +- libmissing/msvc-nothrow.c | 2 +- libmissing/msvc-nothrow.h | 2 +- libmissing/netdb.in.h | 2 +- libmissing/netinet_in.in.h | 2 +- libmissing/nl_langinfo.c | 255 +++++++++++++++++++------------- libmissing/pathmax.h | 2 +- libmissing/perror.c | 2 +- libmissing/poll.c | 10 +- libmissing/poll.in.h | 2 +- libmissing/printf-args.c | 2 +- libmissing/printf-args.h | 2 +- libmissing/printf-frexp.c | 2 +- libmissing/printf-frexp.h | 2 +- libmissing/printf-frexpl.c | 2 +- libmissing/printf-frexpl.h | 2 +- libmissing/printf-parse.c | 2 +- libmissing/printf-parse.h | 2 +- libmissing/raise.c | 2 +- libmissing/realloc.c | 2 +- libmissing/ref-add.sin | 2 +- libmissing/ref-del.sin | 2 +- libmissing/regcomp.c | 24 ++- libmissing/regex.c | 2 +- libmissing/regex.h | 4 +- libmissing/regex_internal.c | 21 +-- libmissing/regex_internal.h | 6 +- libmissing/regexec.c | 2 +- libmissing/relocatable.c | 2 +- libmissing/relocatable.h | 2 +- libmissing/select.c | 38 ++++- libmissing/setsockopt.c | 2 +- libmissing/signal.in.h | 2 +- libmissing/signbitd.c | 2 +- libmissing/signbitf.c | 2 +- libmissing/signbitl.c | 2 +- libmissing/sigprocmask.c | 2 +- libmissing/size_max.h | 2 +- libmissing/sleep.c | 2 +- libmissing/snprintf.c | 2 +- libmissing/socket.c | 2 +- libmissing/sockets.c | 2 +- libmissing/sockets.h | 2 +- libmissing/stat.c | 2 +- libmissing/stdalign.in.h | 5 +- libmissing/stdbool.in.h | 2 +- libmissing/stddef.in.h | 2 +- libmissing/stdint.in.h | 5 +- libmissing/stdio-impl.h | 2 +- libmissing/stdio.in.h | 2 +- libmissing/stdlib.in.h | 25 +++- libmissing/str-two-way.h | 2 +- libmissing/strcasecmp.c | 2 +- libmissing/strcasestr.c | 2 +- libmissing/strdup.c | 2 +- libmissing/streq.h | 2 +- libmissing/strerror-override.c | 2 +- libmissing/strerror-override.h | 2 +- libmissing/strerror.c | 2 +- libmissing/strerror_r.c | 16 +- libmissing/string.in.h | 2 +- libmissing/strings.in.h | 2 +- libmissing/strncasecmp.c | 2 +- libmissing/strndup.c | 2 +- libmissing/strnlen.c | 2 +- libmissing/strptime.c | 2 +- libmissing/strsep.c | 2 +- libmissing/sys_ioctl.in.h | 2 +- libmissing/sys_select.in.h | 17 ++- libmissing/sys_socket.in.h | 2 +- libmissing/sys_stat.in.h | 2 +- libmissing/sys_time.in.h | 2 +- libmissing/sys_types.in.h | 4 +- libmissing/sys_uio.in.h | 2 +- libmissing/sys_utsname.in.h | 2 +- libmissing/tests/Makefile.am | 10 +- libmissing/tests/binary-io.h | 2 +- libmissing/tests/c-strcase.h | 2 +- libmissing/tests/c-strcasecmp.c | 2 +- libmissing/tests/c-strncasecmp.c | 2 +- libmissing/tests/fcntl.in.h | 22 ++- libmissing/tests/fdopen.c | 2 +- libmissing/tests/ftruncate.c | 2 +- libmissing/tests/getcwd-lgpl.c | 2 +- libmissing/tests/getdtablesize.c | 10 +- libmissing/tests/getpagesize.c | 2 +- libmissing/tests/glthread/yield.h | 2 +- libmissing/tests/ignore-value.h | 2 +- libmissing/tests/infinity.h | 2 +- libmissing/tests/init.sh | 4 +- libmissing/tests/inttypes.in.h | 2 +- libmissing/tests/localename.c | 104 ++++++++++++- libmissing/tests/localename.h | 10 +- libmissing/tests/lstat.c | 2 +- libmissing/tests/macros.h | 2 +- libmissing/tests/malloca.c | 2 +- libmissing/tests/malloca.h | 2 +- libmissing/tests/minus-zero.h | 2 +- libmissing/tests/nan.h | 2 +- libmissing/tests/open.c | 2 +- libmissing/tests/pipe.c | 2 +- libmissing/tests/putenv.c | 2 +- libmissing/tests/randomd.c | 2 +- libmissing/tests/randoml.c | 2 +- libmissing/tests/same-inode.h | 2 +- libmissing/tests/setenv.c | 2 +- libmissing/tests/setlocale.c | 2 +- libmissing/tests/signature.h | 2 +- libmissing/tests/symlink.c | 2 +- libmissing/tests/test-accept.c | 2 +- libmissing/tests/test-alloca-opt.c | 2 +- libmissing/tests/test-arpa_inet.c | 2 +- libmissing/tests/test-binary-io.c | 2 +- libmissing/tests/test-bind.c | 2 +- libmissing/tests/test-btowc.c | 2 +- libmissing/tests/test-c-ctype.c | 2 +- libmissing/tests/test-c-strcasecmp.c | 2 +- libmissing/tests/test-c-strncasecmp.c | 2 +- libmissing/tests/test-close.c | 2 +- libmissing/tests/test-cond.c | 2 +- libmissing/tests/test-connect.c | 2 +- libmissing/tests/test-dup2.c | 2 +- libmissing/tests/test-environ.c | 2 +- libmissing/tests/test-errno.c | 2 +- libmissing/tests/test-fclose.c | 2 +- libmissing/tests/test-fcntl-h.c | 2 +- libmissing/tests/test-fdopen.c | 39 ++--- libmissing/tests/test-fflush.c | 2 +- libmissing/tests/test-fflush2.c | 2 +- libmissing/tests/test-fgetc.c | 2 +- libmissing/tests/test-float.c | 2 +- libmissing/tests/test-fopen.c | 2 +- libmissing/tests/test-fopen.h | 2 +- libmissing/tests/test-fpurge.c | 2 +- libmissing/tests/test-fputc.c | 2 +- libmissing/tests/test-fread.c | 2 +- libmissing/tests/test-freading.c | 2 +- libmissing/tests/test-frexp.c | 2 +- libmissing/tests/test-frexp.h | 2 +- libmissing/tests/test-frexpl.c | 2 +- libmissing/tests/test-fseek.c | 2 +- libmissing/tests/test-fseeko.c | 2 +- libmissing/tests/test-fseeko3.c | 2 +- libmissing/tests/test-fseeko4.c | 2 +- libmissing/tests/test-fstat.c | 2 +- libmissing/tests/test-ftell.c | 2 +- libmissing/tests/test-ftell3.c | 2 +- libmissing/tests/test-ftello.c | 2 +- libmissing/tests/test-ftello3.c | 2 +- libmissing/tests/test-ftello4.c | 2 +- libmissing/tests/test-ftruncate.c | 2 +- libmissing/tests/test-fwrite.c | 2 +- libmissing/tests/test-getaddrinfo.c | 2 +- libmissing/tests/test-getcwd-lgpl.c | 2 +- libmissing/tests/test-getdelim.c | 2 +- libmissing/tests/test-getdtablesize.c | 2 +- libmissing/tests/test-gethostname.c | 2 +- libmissing/tests/test-getline.c | 2 +- libmissing/tests/test-getsockname.c | 2 +- libmissing/tests/test-gettimeofday.c | 2 +- libmissing/tests/test-ignore-value.c | 2 +- libmissing/tests/test-inet_ntop.c | 2 +- libmissing/tests/test-inet_pton.c | 2 +- libmissing/tests/test-init.sh | 2 +- libmissing/tests/test-intprops.c | 2 +- libmissing/tests/test-inttypes.c | 2 +- libmissing/tests/test-ioctl.c | 2 +- libmissing/tests/test-isnand-nolibm.c | 2 +- libmissing/tests/test-isnand.h | 2 +- libmissing/tests/test-isnanf-nolibm.c | 2 +- libmissing/tests/test-isnanf.h | 2 +- libmissing/tests/test-isnanl-nolibm.c | 2 +- libmissing/tests/test-isnanl.h | 11 +- libmissing/tests/test-langinfo.c | 2 +- libmissing/tests/test-listen.c | 2 +- libmissing/tests/test-locale.c | 2 +- libmissing/tests/test-localeconv.c | 2 +- libmissing/tests/test-localename.c | 2 +- libmissing/tests/test-lock.c | 2 +- libmissing/tests/test-lseek.c | 2 +- libmissing/tests/test-lstat.c | 2 +- libmissing/tests/test-lstat.h | 2 +- libmissing/tests/test-malloc-gnu.c | 29 ---- libmissing/tests/test-malloca.c | 2 +- libmissing/tests/test-math.c | 2 +- libmissing/tests/test-mbrtowc-w32.c | 2 +- libmissing/tests/test-mbrtowc.c | 7 +- libmissing/tests/test-mbsinit.c | 2 +- libmissing/tests/test-memchr.c | 2 +- libmissing/tests/test-memmem.c | 2 +- libmissing/tests/test-netdb.c | 2 +- libmissing/tests/test-netinet_in.c | 2 +- libmissing/tests/test-nl_langinfo.c | 2 +- libmissing/tests/test-open.c | 2 +- libmissing/tests/test-open.h | 10 +- libmissing/tests/test-pathmax.c | 2 +- libmissing/tests/test-perror.c | 2 +- libmissing/tests/test-perror2.c | 2 +- libmissing/tests/test-pipe.c | 2 +- libmissing/tests/test-poll-h.c | 2 +- libmissing/tests/test-poll.c | 2 +- libmissing/tests/test-printf-frexp.c | 2 +- libmissing/tests/test-printf-frexpl.c | 2 +- libmissing/tests/test-raise.c | 2 +- libmissing/tests/test-regex.c | 2 +- libmissing/tests/test-select-fd.c | 2 +- libmissing/tests/test-select-stdin.c | 2 +- libmissing/tests/test-select.c | 2 +- libmissing/tests/test-select.h | 2 +- libmissing/tests/test-setenv.c | 2 +- libmissing/tests/test-setlocale1.c | 2 +- libmissing/tests/test-setlocale2.c | 2 +- libmissing/tests/test-setsockopt.c | 2 +- libmissing/tests/test-signal-h.c | 2 +- libmissing/tests/test-signbit.c | 12 +- libmissing/tests/test-sigprocmask.c | 2 +- libmissing/tests/test-sleep.c | 2 +- libmissing/tests/test-snprintf-posix.c | 2 +- libmissing/tests/test-snprintf-posix.h | 2 +- libmissing/tests/test-snprintf.c | 2 +- libmissing/tests/test-sockets.c | 2 +- libmissing/tests/test-stat.c | 2 +- libmissing/tests/test-stat.h | 2 +- libmissing/tests/test-stdalign.c | 2 +- libmissing/tests/test-stdbool.c | 2 +- libmissing/tests/test-stddef.c | 2 +- libmissing/tests/test-stdint.c | 2 +- libmissing/tests/test-stdio.c | 2 +- libmissing/tests/test-stdlib.c | 2 +- libmissing/tests/test-strcasestr.c | 2 +- libmissing/tests/test-strerror.c | 2 +- libmissing/tests/test-strerror_r.c | 2 +- libmissing/tests/test-string.c | 2 +- libmissing/tests/test-strings.c | 2 +- libmissing/tests/test-strnlen.c | 2 +- libmissing/tests/test-symlink.c | 2 +- libmissing/tests/test-symlink.h | 2 +- libmissing/tests/test-sys_ioctl.c | 2 +- libmissing/tests/test-sys_select.c | 2 +- libmissing/tests/test-sys_socket.c | 2 +- libmissing/tests/test-sys_stat.c | 2 +- libmissing/tests/test-sys_time.c | 2 +- libmissing/tests/test-sys_types.c | 2 +- libmissing/tests/test-sys_uio.c | 2 +- libmissing/tests/test-sys_utsname.c | 2 +- libmissing/tests/test-sys_wait.h | 2 +- libmissing/tests/test-thread_create.c | 2 +- libmissing/tests/test-thread_self.c | 2 +- libmissing/tests/test-time.c | 2 +- libmissing/tests/test-tls.c | 2 +- libmissing/tests/test-uname.c | 2 +- libmissing/tests/test-unistd.c | 2 +- libmissing/tests/test-unsetenv.c | 2 +- libmissing/tests/test-vasnprintf.c | 2 +- libmissing/tests/test-verify.c | 2 +- libmissing/tests/test-vsnprintf-posix.c | 2 +- libmissing/tests/test-vsnprintf.c | 2 +- libmissing/tests/test-wchar.c | 2 +- libmissing/tests/test-wcrtomb-w32.c | 2 +- libmissing/tests/test-wcrtomb.c | 2 +- libmissing/tests/test-wctype-h.c | 2 +- libmissing/tests/test-write.c | 2 +- libmissing/tests/unsetenv.c | 2 +- libmissing/tests/wctob.c | 2 +- libmissing/tests/wctomb-impl.h | 2 +- libmissing/tests/wctomb.c | 2 +- libmissing/tests/zerosize-ptr.h | 2 +- libmissing/time.in.h | 46 ++++-- libmissing/time_r.c | 2 +- libmissing/timegm.c | 2 +- libmissing/uname.c | 2 +- libmissing/unistd.in.h | 17 ++- libmissing/vasnprintf.c | 176 ++++++++++------------ libmissing/vasnprintf.h | 2 +- libmissing/verify.h | 2 +- libmissing/vsnprintf.c | 2 +- libmissing/w32sock.h | 2 +- libmissing/wchar.in.h | 2 +- libmissing/wcrtomb.c | 2 +- libmissing/wctype.in.h | 2 +- libmissing/write.c | 2 +- libmissing/xsize.h | 2 +- libprelude-config.in | 2 +- prelude-admin/Makefile.am | 2 +- snippet/arg-nonnull.h | 2 +- snippet/c++defs.h | 2 +- snippet/unused-parameter.h | 2 +- snippet/warn-on-use.h | 2 +- src/Makefile.am | 2 +- 559 files changed, 1441 insertions(+), 970 deletions(-) commit 5cfcd2cf95ded4647cf0b72ab44081c90b69731c Author: Yoann Vandoorselaere Date: Mon Sep 15 18:13:18 2014 +0200 Revert "Verify ABI compatibility in prelude_init()" Turn out this was a bad idea : we will rely on library soname change instead. This reverts commit 5e65820f7d3903d076f922b28dcac62447056c99. Change-Id: I0bcb562ba9a3b4e7d1651f743d9e93605e8a4ea7 bindings/low-level/perl/Prelude.c | 101 ---------------------------------- bindings/low-level/python/_prelude.c | 103 ----------------------------------- src/include/prelude.h.in | 4 -- src/prelude.c | 61 +++++---------------- 4 files changed, 13 insertions(+), 256 deletions(-) commit fc9af04cda8d62a1f6c0b0889c66fd264b53c70b Author: Yoann Vandoorselaere Date: Mon Sep 15 17:58:24 2014 +0200 Add missing SWIG update Change-Id: I1cbd143c27601be8610e733c4d4bfa929a3780fb bindings/low-level/python/_prelude.c | 513 ++++++++++------------------------- 1 file changed, 139 insertions(+), 374 deletions(-) commit b69695a6cc3e889f2bb3663c806777c0ccf83a68 Author: Yoann Vandoorselaere Date: Fri Sep 12 23:54:28 2014 +0200 Define __setitem__ for Python bindings, disable internal code when used from the outside world. Change-Id: Ib71e23dd1ab84e27d94d0be1fa23a7ba0b15601a bindings/libpreludecpp.i | 2 ++ bindings/python/PreludeEasy.py | 3 +++ bindings/python/libpreludecpp-python.i | 7 +++++++ 3 files changed, 12 insertions(+) commit 8dbba8d7faebe9a0e2561fce504a9b8a01c07402 Author: Yoann Vandoorselaere Date: Tue Sep 9 11:02:50 2014 +0200 Python 3 build, and compatibility fixes, Unicode support for Python 2 This add support for Python3 into the build system, and use the new Python3 API for IO and arguments handling. Our SWIG implementation convert returned string data to Unicode when Python3 is used. If Python2 is used, then the returned string data is UTF8. As a result, all classes providing a __str__ method will return Unicode under Python3, and UTF-8 under Python2. Under Python2, classes providing a __str__ method are additionaly patched so that they provide a __unicode__ function, returning Unicode data. Change-Id: Ieaa75d0e3a63d3aca94b070987729d53e35a8189 Makefile.am | 2 +- bindings/libpreludecpp.i | 23 ++++- bindings/low-level/python/Makefile.am | 10 +- bindings/low-level/python/setup.py.in | 2 +- bindings/lua/PreludeEasy.cxx | 9 +- bindings/lua/libpreludecpp-lua.i | 4 + bindings/perl/PreludeEasy.cxx | 11 ++- bindings/python/Makefile.am | 30 ++++-- bindings/python/PreludeEasy.py | 28 +++++- bindings/python/_PreludeEasy.cxx | 173 ++++++++++++++++++++++++--------- bindings/python/libpreludecpp-python.i | 74 ++++++++++++-- bindings/python/setup.py.in | 2 +- bindings/ruby/PreludeEasy.cxx | 11 ++- bindings/tests/test.py | 37 +++---- configure.in | 50 +++++++--- m4/ax_reset_headers_cache.m4 | 23 +++++ 16 files changed, 374 insertions(+), 115 deletions(-) commit 2197ba2d4d1274e3e87a6db36212adb3dcaaf77c Author: Yoann Vandoorselaere Date: Mon Sep 15 18:19:33 2014 +0200 Provide more version number information (major, minor, micro, level, serial) Generated prelude.h header file now include separate major, minor, micro, serial, and level (read ahead), definition. The level information is used to tag a release as alpha, beta, rc, or final. We also provide a LIBPRELUDE_HEXVERSION definition, making it easy to add version checking in the code. For example, checking for libprelude higher than libprelude 1.2.5 would look like: if LIBPRELUDE_HEXVERSION > 0x01020500 Change-Id: Ibeb2239dabbebb8a5f6b7d180c054ded54fa95d0 configure.in | 30 +++++++++++++++++++++++++++++- src/include/prelude.h.in | 19 +++++++++++++++++++ src/prelude.c | 47 ++++++++++++++++++++++++++++++++++------------- 3 files changed, 82 insertions(+), 14 deletions(-) commit 559cdf35c2a0485feac9f34e5fa079311f263dd6 Author: Antoine LUONG Date: Tue Sep 16 16:36:16 2014 +0200 Update NEWS, bump version Change-Id: I3330f944a6993a48fe8a1bab58aea5e45d089adf NEWS | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 10 ++++----- 2 files changed, 74 insertions(+), 5 deletions(-) commit 96e97e7cc280aebdf297afff73070da2030638f7 Author: Yoann Vandoorselaere Date: Mon Sep 15 17:39:25 2014 +0200 Fix valgrind memory leak warnings Change-Id: I82db4717be77023693dd89dc4d5aa8600926b77c tests/async-timer.c | 1 + tests/prelude-timer.c | 1 + 2 files changed, 2 insertions(+) commit 5dac9f475ce7f2f2dadff81b00edad37c88613bf Author: Yoann Vandoorselaere Date: Mon Sep 15 17:35:59 2014 +0200 Newly added timer did not expire when expected When a new timer is added, we need to recompute the next_wakeup variable, depending on the added timer expiration time. This fix a bug with added timer not waking up when they should. Fix #367. Change-Id: Iaecfca46d087143f79915fb2b16b858098fd7c5f src/prelude-timer.c | 4 ++++ 1 file changed, 4 insertions(+) commit 0fa1099a2c4f5761c98c00d4dc20f7bf41f1b264 Author: Yoann Vandoorselaere Date: Mon Sep 15 17:30:21 2014 +0200 Duplicate analyzer information string We cannot efficiently rely on the string to be kept around by the caller. Change-Id: Ia57fdf2c999165c589aa58a9f03b2ce5a8f67980 bindings/c++/prelude-client-easy.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 31f65007bcbe222428ba7fd7190239566e590a69 Author: Yoann Vandoorselaere Date: Sun Sep 14 19:39:34 2014 +0200 Add missing IDMEF equal operator Change-Id: Ibb7933a479db7bdc0840de6b21921e99666bf1df bindings/c++/idmef.cxx | 12 +++++++++ bindings/c++/include/idmef.hxx | 1 + bindings/lua/PreludeEasy.cxx | 40 ++++++++++++++++++++++++++++++ bindings/perl/PreludeEasy.cxx | 46 ++++++++++++++++++++++++++++++++++ bindings/perl/PreludeEasy.pm | 5 ++++ bindings/python/PreludeEasy.py | 1 + bindings/python/_PreludeEasy.cxx | 43 ++++++++++++++++++++++++++++++++ bindings/ruby/PreludeEasy.cxx | 53 ++++++++++++++++++++++++++++++++++++++++ 8 files changed, 201 insertions(+) commit 5e65820f7d3903d076f922b28dcac62447056c99 Author: Yoann Vandoorselaere Date: Fri Sep 12 19:13:24 2014 +0200 Verify ABI compatibility in prelude_init() Change-Id: I4e79b0ac1bd857eedda7a93ecc089c382f5450cd bindings/low-level/perl/Prelude.c | 101 ++++++++++++++++++++++++++++++++++ bindings/low-level/python/_prelude.c | 103 +++++++++++++++++++++++++++++++++++ src/include/prelude.h.in | 4 ++ src/prelude.c | 61 ++++++++++++++++----- 4 files changed, 256 insertions(+), 13 deletions(-) commit 227f319e817587a6f6c51b64c5ffbd6ae1844a0f Author: Yoann Vandoorselaere Date: Fri Sep 12 17:29:15 2014 +0200 prelude-linked-object members ordering fixes, so that the members are synchronized with listed idmef_object_t. Implement idmef_class_is_listed(), to check whether a given IDMEF class is a list element. IDMEFTreeData is modified as to include the information about whether a given class is listed. Implement list operation to the idmef_object_t abstraction. The functions will print an assertion warning it case they are called on an idmef_object_t element that isn't listed. Make the prelude_string structure private, as it is supposed to be. Additionally, the prelude_string_t object was using a regular list declaration, in place of PRELUDE_LINKED_OBJECT. Nobody could notice until now, because the list member was first in both place, but it would now result in a bug since we changed the PRELUDE_LINKED_OBJECT members order. Modify idmef-tree-wrap generation so that it use prelude_linked_object_t abstraction, since prelude-string structure is now private. Change-Id: I78f64eb3ee202c7702bc31eb913565853a7d2f99 bindings/low-level/perl/Prelude.c | 513 +++++----------- src/idmef-class.c | 13 + src/idmef-object.c | 39 ++ src/idmef-tree-wrap.c | 718 +++++++++++------------ src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 7 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 40 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 13 - src/include/Makefile.am | 1 + src/include/idmef-class.h | 2 + src/include/idmef-object-prv.h | 4 +- src/include/idmef-object.h | 66 +++ src/include/idmef-tree-data.h | 101 ++-- src/include/idmef-tree-wrap.h | 13 - src/include/idmef.h | 1 + src/include/prelude-linked-object.h | 6 +- src/include/prelude-string.h | 17 +- src/prelude-string.c | 23 +- 17 files changed, 722 insertions(+), 855 deletions(-) commit 6bb7e684eba0f4a6dff80a84fc1863359dc7d679 Author: Yoann Vandoorselaere Date: Wed Sep 10 12:36:35 2014 +0200 Fix crash with new pystrings.swg The previous patch to pystrings.swg, applied in 6cbac7c124a23009ca9d209c6cd44a03412cf579, was not safe in certain circumstance. This one is a patch by James Yonan, that cover all the necessary case. It was published on the SWIG mailing list: http://permalink.gmane.org/gmane.comp.programming.swig.devel/22622 Additionally, I corrected the patch for correct Python3 compilation. Change-Id: Icec33c8bf2c50514e7ef59e1c5a94ddb86a79095 bindings/python/_PreludeEasy.cxx | 104 +++++++++++++++++---------------------- bindings/python/pystrings.swg | 102 +++++++++++++++++--------------------- 2 files changed, 89 insertions(+), 117 deletions(-) commit 3435081e9597405253330ffd8283e8de9056457a Author: Yoann Vandoorselaere Date: Tue Sep 9 17:15:02 2014 +0200 Support for IDMEF object in Set() Change-Id: Id796ba686e4e0d34fafe6e8cfa8a0f417fc16461 bindings/c++/idmef-path.cxx | 26 + bindings/c++/idmef-value.cxx | 30 + bindings/c++/idmef.cxx | 17 + bindings/c++/include/idmef-path.hxx | 2 + bindings/c++/include/idmef-value.hxx | 7 + bindings/c++/include/idmef.hxx | 3 + bindings/libpreludecpp.i | 1 + bindings/lua/PreludeEasy.cxx | 512 ++++++++++++++-- bindings/perl/PreludeEasy.cxx | 1069 ++++++++++++++++++++++++++++------ bindings/perl/PreludeEasy.pm | 1 + bindings/python/PreludeEasy.py | 1 + bindings/python/_PreludeEasy.cxx | 689 ++++++++++++++++++---- bindings/ruby/PreludeEasy.cxx | 683 ++++++++++++++++++---- 13 files changed, 2555 insertions(+), 486 deletions(-) commit 0e90c223abf46ddb3579b825e837f1aa871424fe Author: Yoann Vandoorselaere Date: Wed Sep 3 17:52:26 2014 +0200 Fix a typo, GetAnalyzerId -> SetAnalyzerId Change-Id: Ic381c8488c08e623b456fc37dcbfd84760631633 bindings/c++/include/prelude-client-profile.hxx | 2 +- bindings/lua/PreludeEasy.cxx | 64 +++---------------- bindings/perl/PreludeEasy.cxx | 85 ++----------------------- bindings/perl/PreludeEasy.pm | 1 + bindings/python/PreludeEasy.py | 3 +- bindings/python/_PreludeEasy.cxx | 57 ++--------------- bindings/ruby/PreludeEasy.cxx | 56 ++-------------- 7 files changed, 32 insertions(+), 236 deletions(-) commit dca2ed51be080188b32d1d823191a1d3e1d86658 Author: Yoann Vandoorselaere Date: Mon Sep 1 10:21:59 2014 +0200 Make IDMEFValue_to_SWIG() completly generic We used to fork the IDMEFValue_to_SWIG function for the Lua language because of some specificity of the SWIG Lua generic function. Found a workaround, which now allow us to share IDMEFValue_to_SWIG for every language. Additionally, update the bindings test suite. Change-Id: I53d3c5f98f788e5d53444f31eb4a2bdd87d73369 bindings/libpreludecpp.i | 15 +- bindings/low-level/python/_prelude.c | 72 ++++----- bindings/lua/PreludeEasy.cxx | 257 +++++++++++++++++++-------------- bindings/lua/libpreludecpp-lua.i | 184 ++++++++++------------- bindings/perl/PreludeEasy.cxx | 48 +++--- bindings/perl/libpreludecpp-perl.i | 9 +- bindings/pystrings.swg | 125 ---------------- bindings/python/Makefile.am | 2 +- bindings/python/_PreludeEasy.cxx | 46 +++--- bindings/python/libpreludecpp-python.i | 14 +- bindings/python/pystrings.swg | 125 ++++++++++++++++ bindings/ruby/PreludeEasy.cxx | 40 ++--- bindings/ruby/libpreludecpp-ruby.i | 9 +- bindings/tests/test.lua | 40 +++-- bindings/tests/test.pl | 46 +++--- bindings/tests/test.py | 10 +- bindings/tests/test.rb | 14 +- 17 files changed, 552 insertions(+), 504 deletions(-) commit 767f5df3ea850fb31d78bbd4696b0df0c4a6859a Author: Yoann Vandoorselaere Date: Sun Aug 31 18:58:25 2014 +0200 SWIG warnings fixes Change-Id: I4fffbe1be4fce0ed389c0fecf4a5e1bb6791b152 bindings/c++/include/idmef-value.hxx | 1 - bindings/c++/include/prelude-error.hxx | 3 +-- bindings/c++/prelude-error.cxx | 8 +------- bindings/libpreludecpp.i | 3 +++ bindings/lua/PreludeEasy.cxx | 33 +++++++++++++++++++++++++++++++++ bindings/python/_PreludeEasy.cxx | 6 +++--- bindings/ruby/PreludeEasy.cxx | 8 ++++---- 7 files changed, 45 insertions(+), 17 deletions(-) commit b2d3de9d5344826ec27ca66a3be80f9765feab3f Author: Yoann Vandoorselaere Date: Sun Aug 31 18:00:22 2014 +0200 Provide common macros in prelude-macros.h New header, prelude-macros.h, defining common macro for use within the Prelude project. Change-Id: I4b5143b684c63b6bf5178cef50ac595582cd6598 bindings/low-level/libprelude.i | 1 + src/include/Makefile.am | 1 + src/include/idmef-path.h | 21 ++----------- src/include/prelude-log.h | 24 +++----------- src/include/prelude-macros.h | 55 +++++++++++++++++++++++++++++++++ src/include/prelude-string.h | 19 ++---------- src/include/prelude.h.in | 1 + src/libprelude-error/prelude-error.h.in | 25 ++++----------- 8 files changed, 75 insertions(+), 72 deletions(-) commit e0e8cbf348475a0c994e491fbdb779213120e112 Author: Yoann Vandoorselaere Date: Fri Aug 29 11:39:39 2014 +0200 Modify IDMEF and IDMEFPath C++ API to understand relative path The IDMEF() object used to represent the root of an IDMEF message (idmef_message_t), and is modified so that it now abstract any IDMEF low level object. When used to access an object rather than a value, the IDMEFPath.Get() and IDMEF.Get() methods now directly return an IDMEF() object in place of an IDMEFValue() representing the object. Since relative path are now supported, it is now possible write : - idmef.Get("alert").Get("analyzer(0)").Get("name") - idmef.Get("alert").Get("source(0)").Get("node.address.address") For the Python language, __getitem__ is implemented for IDMEF object, so that it is possible to write the above as: - idmef["alert"]["analyzer(0)"]["name"] - idmef["alert"]["source(0)"]["node.adress.address"] Change-Id: I8768cd78bc444f4fb580bf9432d70782fc6518da bindings/c++/idmef-path.cxx | 15 +++++ bindings/c++/idmef.cxx | 80 ++++++++++++----------- bindings/c++/include/idmef-path.hxx | 2 + bindings/c++/include/idmef.hxx | 6 +- bindings/c++/prelude-client.cxx | 4 +- bindings/c++/prelude-connection.cxx | 2 +- bindings/libpreludecpp.i | 8 ++- bindings/lua/PreludeEasy.cxx | 88 ++++++++++++++++++++----- bindings/perl/PreludeEasy.cxx | 114 ++++++++++++++++++++++++++++----- bindings/python/PreludeEasy.py | 7 ++ bindings/python/_PreludeEasy.cxx | 102 +++++++++++++++++++++++------ bindings/python/libpreludecpp-python.i | 11 ++++ bindings/ruby/PreludeEasy.cxx | 104 ++++++++++++++++++++++++------ 13 files changed, 425 insertions(+), 118 deletions(-) commit 7e000c2f9dac72ffbe18c0355abc660b9ff3fd4e Author: Yoann Vandoorselaere Date: Fri Aug 29 11:21:07 2014 +0200 Allow creation of IDMEFPath relative to a root This introduce the idmef_path_new_from_root_fast() function, which allow creating IDMEFPath relative to a specific root (rather than IDMEFMessage). As an example : idmef_path_new_from_root_fast(&path, IDMEF_CLASS_ID_ANALYZER, "name"); Will create an IDMEFPath that reference the 'nam'e attribute of an idmef_analyzer_t object. The idmef_path_set() and idmef_path_get() function are modified so that they can be called with any root IDMEF object as parameter (rather than idmef_message_t). The idmef_criteri(a|on) API is also modified so that it can be passed any root object (since it use the idmef_path_t API internally). Change-Id: I1bcacca83f8b4d9141c0455ee6c6d19ba0c218dd bindings/low-level/perl/Prelude.c | 137 +++++++++++++++++++++++------------ bindings/low-level/python/_prelude.c | 104 +++++++++++++++++++------- src/idmef-criteria.c | 23 +++--- src/idmef-path.c | 129 ++++++++++++++++++++++++++------- src/include/idmef-criteria.h | 4 +- src/include/idmef-path.h | 7 +- 6 files changed, 285 insertions(+), 119 deletions(-) commit 84b017fb757da3553c96e4bef685b12ed89d7fce Author: Yoann Vandoorselaere Date: Fri Aug 29 08:48:07 2014 +0200 Introduce the idmef_object_t datatype IDMEF datatype now contain their own ID, so that it is possible for API using them anonymously to know which object they are currently being dealing with. Any IDMEF datatype can now be casted to the new idmef_object_t datatype. Change-Id: Ida1d076dace76c39763ca3221e8572907c45db7d bindings/low-level/perl/Prelude.c | 513 +++++++++++++++++------ bindings/low-level/python/_prelude.c | 513 +++++++++++++++++------ src/Makefile.am | 1 + src/idmef-object.c | 75 ++++ src/idmef-path.c | 15 +- src/idmef-tree-wrap.c | 195 +++++++-- src/idmef-value-type.c | 9 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 11 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 13 + src/idmef-wrappers-gen/IDMEFTree.pm | 2 +- src/idmef-wrappers-gen/idmef-tree.h | 128 +++--- src/include/Makefile.am | 2 +- src/include/idmef-object-prv.h | 42 ++ src/include/idmef-tree-wrap.h | 54 ++- 14 files changed, 1169 insertions(+), 404 deletions(-) commit 163b6149ad039a06dfeb205b93d90025d193aa64 Author: Yoann Vandoorselaere Date: Mon Sep 1 15:37:59 2014 +0200 Include low-level bindings by default, for buildbot to perform correctly Change-Id: I71bfbc6381ceabdbb2fa4d04718464020a8f06f0 bindings/low-level/perl/Prelude.c | 68373 +++++++++++++++++++++++++++++++++ bindings/low-level/python/_prelude.c | 58900 ++++++++++++++++++++++++++++ 2 files changed, 127273 insertions(+) commit f29ccea2ad2399ef947898e5317e5234f4ef2d95 Author: Yoann Vandoorselaere Date: Mon Sep 1 15:27:28 2014 +0200 Prevent HAVE_SWIG from being set if $SWIG is uninitialized Change-Id: I8bcf3756f04789d57971b46158dc5515bec31803 configure.in | 1 + 1 file changed, 1 insertion(+) commit 4ed036476319eeabd47dbbe0b928b0bcff2cfd60 Author: Yoann Vandoorselaere Date: Mon Sep 1 14:45:29 2014 +0200 Do not automatically regenerate SWIG bindings by default Prevent error on distribution using old SWIG version. Now that the SWIG generated code is included in the repository, we will only re-generate the bindings if the user request it. Change-Id: Ib0c54697f84d7074d3c79b43e2e1240c7c38765c Makefile.am | 2 +- configure.in | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 0bbdcdf825784c317755eaffa1ad42a2356d1e18 Author: Yoann Vandoorselaere Date: Sun Aug 31 14:42:49 2014 +0200 Use Prelude namespace explicitely, prevent error when included from other project Change-Id: I1890abca60c38f24eba91c7a6eddc9b24aec3a99 bindings/libpreludecpp.i | 36 ++++++++++++++++++------------------ bindings/perl/PreludeEasy.cxx | 36 ++++++++++++++++++------------------ bindings/python/_PreludeEasy.cxx | 36 ++++++++++++++++++------------------ bindings/ruby/PreludeEasy.cxx | 36 ++++++++++++++++++------------------ 4 files changed, 72 insertions(+), 72 deletions(-) commit 55ff978b0763b2e4617ad545bc3d7dedd5038a3e Author: Yoann Vandoorselaere Date: Sun Aug 31 14:41:38 2014 +0200 Move CheckVersion in the Prelude namespace, trigger exception on error Move the CheckVersion function in the Prelude namespace, to avoid conflict with the PreludeDB CheckVersion equivalent. Additionally, trigger an exception on version error. Change-Id: Ica8cb9ac54592cd22b61d42e6c1b6bd7b5492baf bindings/c++/include/prelude.hxx | 4 +++- bindings/c++/prelude.cxx | 16 ++++++++++++++-- bindings/lua/PreludeEasy.cxx | 14 +++++++------- bindings/perl/PreludeEasy.cxx | 4 ++-- bindings/python/_PreludeEasy.cxx | 8 ++++---- bindings/ruby/PreludeEasy.cxx | 6 +++--- 6 files changed, 33 insertions(+), 19 deletions(-) commit 81695a1443a8bea4c5645fab2f3991a1e85965f7 Author: Yoann Vandoorselaere Date: Fri Aug 29 11:45:59 2014 +0200 Remove debug spew Change-Id: I5a74da0de3df38ed9405a7fa8404a2def2b47223 bindings/pystrings.swg | 2 -- 1 file changed, 2 deletions(-) commit 133b1522ec271b91779d27a3020ea74175500881 Author: Yoann Vandoorselaere Date: Mon Sep 1 12:22:14 2014 +0200 Fix valgrind reported leak in idmef_path_t unit tests. Change-Id: I4f50fff5d336fea277c6ffeee1bc1641f2c84c5d tests/idmef-path.c | 2 ++ 1 file changed, 2 insertions(+) commit 0bddae90fbddf40090d464c740b88d2fb19c0173 Author: Yoann Vandoorselaere Date: Thu Aug 28 15:16:16 2014 +0200 Implement prelude_hash_add() The prelude_hash_set() function destroy any previously element with the same key already in the hash. We now additionally implement prelude_hash_add(), which add the new element even if another element with the same key exist. This is a micro-optimisation for case where the user never add element that are already in the hash. Change-Id: Ifc092a4e9f9698bf9ba936870e7665f98020e9da src/idmef-path.c | 2 +- src/include/prelude-hash.h | 10 ++++++---- src/prelude-hash.c | 29 ++++++++++++++++++----------- 3 files changed, 25 insertions(+), 16 deletions(-) commit ce881e483d3dc527e08fd0a6bbd5ae9a25bddf67 Author: Yoann Vandoorselaere Date: Thu Aug 28 15:08:37 2014 +0200 Implement idmef_class_print() function Using this framework, it is now possible to generically convert any IDMEF object to string. Change-Id: I01d8a6635d95d31c3f74c4d5fde2feae06b596f9 src/idmef-class.c | 14 ++++++ src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 + src/include/idmef-class.h | 2 + src/include/idmef-tree-data.h | 61 +++++++++++++------------ 4 files changed, 49 insertions(+), 30 deletions(-) commit a922833573e1ef408d26c69935c9c3e8abaef889 Author: Yoann Vandoorselaere Date: Thu Aug 28 15:06:33 2014 +0200 Improved error message Change-Id: I3ca1d5787b77e18b2c4b81114b04310b5dd56a43 src/idmef-class.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 54447c18a4b32263e12fa221f2b8598b84b7d6ca Author: Yoann Vandoorselaere Date: Fri Aug 8 08:31:04 2014 +0200 Include high level bindings generated code in the repository Sometime, the version of SWIG used on the build system is buggy, or too old to handle correct bindings generation : include a reference version. Warning : not compatible with lua 5.0 on Debian 7 and maybe other Linux Fix #327. Change-Id: Ie1a6bcfb7096474344a182cf08879a51f5d4d7cb bindings/lua/PreludeEasy.cxx | 12873 ++++++++++++++++++++++++ bindings/perl/PreludeEasy.cxx | 17245 +++++++++++++++++++++++++++++++++ bindings/perl/PreludeEasy.pm | 745 ++ bindings/python/PreludeEasy.py | 548 ++ bindings/python/_PreludeEasy.cxx | 19346 +++++++++++++++++++++++++++++++++++++ bindings/ruby/PreludeEasy.cxx | 18475 +++++++++++++++++++++++++++++++++++ 6 files changed, 69232 insertions(+) commit 08d7d8f6ed7585d22baa9292f425af870e7a94f4 Author: Yoann Vandoorselaere Date: Fri Aug 8 08:25:02 2014 +0200 Fix asynchronous stack / high level bindings callback deadlock We need to unlock the interpreter lock before calling certain methods because they might acquire internal libprelude mutex that may also be acquired undirectly through the libprelude asynchronous stack. [Thread 2]: Libprelude async stack -> Lock internal mutexX -> prelude_log() -> SWIG/C log callback -> Wait on Interpreter lock [DEADLOCK] -> Python logging callback (never called) [Thread 1] ConnectionPool::Recv() -> Acquire Interpreter lock *** At this time, thread 2 lock internal mutexX -> Wait on internal mutexX [DEADLOCK] In this situation, [Thread 1] hold the Interpreter lock and is waiting on mutexX, which itself cannot be released by [Thread 2] until [Thread 1] unlock the Interpreter lock. One rule to prevent deadlock is to always acquire mutex in the same order. We thus need to make sure the interpreter lock is released before calling C++ method that are susceptible to lock a mutex that is also triggered from the asynchronous interface. Note that we are not releasing the Interpreter lock in all C++ call, because it come at a performance cost, so we only try to do it when needed. Fix #331. Change-Id: Iafd6d24145cf0281871b170701effcfe49c23af1 bindings/libpreludecpp.i | 49 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 7 deletions(-) commit 12d0f12a6155328ca0f026295aa8cf25fed9d862 Author: Yoann Vandoorselaere Date: Tue Aug 5 16:33:32 2014 +0200 Use complete namespace in IDMEFValue_to_SWIG() This will allow for future libpreludedb high level bindings to import libpreludecpp.i template. Change-Id: I05a01c26c2c32fdccfa102e22c3c8c155c805f74 bindings/libpreludecpp.i | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6cbac7c124a23009ca9d209c6cd44a03412cf579 Author: Yoann Vandoorselaere Date: Tue Aug 5 19:26:03 2014 +0200 Python 2.x Unicode coercion Include a SWIG patch from Brian Cole, enabling Python 2.x Unicode coercion in pystrings.swg. Before this change, we had to manually encode all unicode string to UTF8 before passing them to a C or C++ function. This require a recent SWIG version. http://comments.gmane.org/gmane.comp.programming.swig.devel/23268 Change-Id: Icc9a44c04881c313979bc1e40f8805839f45089f bindings/libpreludecpp.i | 1 + bindings/pystrings.swg | 127 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 128 insertions(+) commit 9b2a15aafe1567a3170a6847bf69edb7cc03a32e Author: Yoann Vandoorselaere Date: Mon Aug 4 09:30:34 2014 +0200 From now on, SWIG interface file are now installed This will be useful in order to generate libpreludedb bindings. Change-Id: I84836992b956990bfd9b57ab1651af727dfcfcdb bindings/Makefile.am | 6 ++++++ bindings/lua/Makefile.am | 3 +++ bindings/python/Makefile.am | 3 +++ bindings/ruby/Makefile.am | 3 +++ configure.in | 3 +++ 5 files changed, 18 insertions(+) commit 985dabd98f07735816e236ae76ce09d08a482572 Author: Yoann Vandoorselaere Date: Tue Aug 5 16:38:44 2014 +0200 Use SWIG_COMPILE_LIBPRELUDE to enable conditionnal of part of the SWIG template Change-Id: Ic76dfc76ee968eeab72f87321598e698bf4b2827 bindings/Makefile.am | 2 +- bindings/libpreludecpp.i | 8 +++++--- bindings/lua/Makefile.am | 2 +- bindings/python/Makefile.am | 2 +- bindings/ruby/Makefile.am | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) commit 2b37626784d18106cc2ca74fe7b59ce2587ee0cc Author: Yoann Vandoorselaere Date: Tue Aug 5 16:40:12 2014 +0200 Ability to cast from IDMEFCriteria to idmef_criteria_t Change-Id: I768fd80995980bf2dae4c05dc8c8e41050851d99 bindings/c++/idmef-criteria.cxx | 8 ++++++++ bindings/c++/include/idmef-criteria.hxx | 1 + 2 files changed, 9 insertions(+) commit de8477da3ab4bfa9a80ca31a6d02c6b3472384ae Author: Yoann Vandoorselaere Date: Mon Aug 4 09:20:45 2014 +0200 Use absolute path, prevent possible make failure Change-Id: I20a6bc00915b723175e6221acc6488f156413013 bindings/lua/Makefile.am | 2 +- bindings/python/Makefile.am | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit d14325949ba0034cc3a517d5ebce5e9fba2f1483 Author: Yoann Vandoorselaere Date: Thu Jul 31 11:54:26 2014 +0200 IDMEFPath support for key as index commit 4bc3d746d85d1be35cef0358694b0dcc0c6aef45 Author: Yoann Vandoorselaere Date: Thu Jul 3 17:10:57 2014 +0200 IDMEFPath support for key as index IDMEFPath now support using a string as an index (for specific path supporting the feature : only additionalData at the moment). The string is assigned to a specific field in the IDMEF tree (for AdditionalData, the key is set as the meaning field). idmef.Set("alert.additional_data('My Key').data", "data"); Will create a new AdditionalData object whose key is 'My Key', and data is 'data' (the object "meaning" field will thus contain the key). idmef.Get("alert.additional_data('My Key').data"), will return a list of data for each additionalData object with a 'My Key' key. Warning: the return value for Get when using a key is always a list, since we don't know whether there is only one object with this key. Change-Id: Ice0784122215b7debc96f72a6a95b9ab000a0510 commit e0a05bcb6d777ca5639b4ad18e73b5c6f0c60857 Author: Yoann Vandoorselaere Date: Wed Jul 2 00:03:45 2014 +0200 Low-level API support for keyed list This allow to declare listed object of a specific type as having a key that might be used to identify the object. Right now this is only used for AdditionalData object with the meaning field as the key. GenerateIDMEFMessageIdH.pm is modified as to reuse existing object ID, to prevent backward compatibility problem. Right now the key-listed object API is only supposed to be used through idmef-path, so there is no public declaration of the generic key-listed object structure which should be : struct idmef_key_listed_object { prelude_list_t list; prelude_string_t *keyobj; }; Change-Id: I5d4300be0e1fbd3e3ed9dc2fef02bff091f24c2e commit 18544a3f99888d763937cb2379dfc1792c34cc18 Author: Yoann Vandoorselaere Date: Thu Jun 26 18:00:56 2014 +0200 Update lexer to support key in parsed idmef-path index. Exemple: alert.object('my index') Change-Id: I9b215a1f0ef378dac83ce4fc76d0a8e9bc77dd72 Change-Id: I9b2e7ff309c88b557254830102f39320b5150b0d src/idmef-class.c | 12 + src/idmef-criteria-string.lex.c | 169 ++++++------ src/idmef-criteria-string.lex.l | 2 +- src/idmef-message-print.c | 22 +- src/idmef-message-read.c | 16 +- src/idmef-message-write.c | 4 +- src/idmef-path.c | 147 ++++++++-- src/idmef-tree-wrap.c | 131 ++++----- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 91 +++++-- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 11 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 2 + src/idmef-wrappers-gen/IDMEFTree.pm | 55 +++- src/idmef-wrappers-gen/idmef-tree.h | 9 +- src/include/idmef-class.h | 2 + src/include/idmef-message-id.h | 2 +- src/include/idmef-path.h | 2 + src/include/idmef-tree-data.h | 313 +++++++++++----------- src/include/idmef-tree-wrap.h | 15 +- 18 files changed, 615 insertions(+), 390 deletions(-) commit 4a36f65f72d1f5b20600ffdb87cad1c5068375ee Author: Yoann Vandoorselaere Date: Tue Jul 15 15:25:36 2014 +0200 Fix make distcheck The old method used to include libmissing on top of the lex/yacc generated files was breaking 'make distcheck'. Use %top{} for Lex file. Nothing particular seems necessary for Yacc. Change-Id: I0fed448f2009d5fb1b1238016b4e74f782679662 src/Makefile.am | 18 - src/idmef-criteria-string.lex.c | 105 ++-- src/idmef-criteria-string.lex.l | 4 + src/idmef-criteria-string.yac.c | 1051 +++++++++++++++++++++------------------ src/idmef-criteria-string.yac.h | 68 ++- src/idmef-criteria-string.yac.y | 4 + 6 files changed, 679 insertions(+), 571 deletions(-) commit b9d333c4b22372d5240dbe796fd8f1c17cd678fd Author: Yoann Vandoorselaere Date: Tue Jul 15 14:04:09 2014 +0200 Fix perl bindings compilation with 'make distcheck' Change-Id: I94dfc66ca6a458fc22aa783de6bd952545aa5e51 bindings/perl/Makefile.PL.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 61be1ef3d9c3a90b87a32c3504bbbf16cd7fc122 Author: Yoann Vandoorselaere Date: Thu Jun 26 17:59:15 2014 +0200 Fix compilation with recent Flex version, update C code. Change-Id: Iad4f6398c506217fd450b2b58aa470a27b89abaa src/idmef-criteria-string.lex.c | 245 +++++++++++++++++----------------------- src/idmef-criteria-string.lex.l | 16 +-- 2 files changed, 108 insertions(+), 153 deletions(-) commit 818dd64c04a9fa41090110e334778ac906f53b6d Author: Antoine LUONG Date: Mon Jun 30 15:45:48 2014 +0200 Fixed wrong numbering of checksum algorithms Value of IDMEF_CHECKSUM_ALGORITHM_GOST changed from 11 to 10. Change-Id: I7700f371b84d800aa7bb1aa63d0196cd1bbf58e3 src/idmef-wrappers-gen/idmef-tree.h | 4 ++-- src/include/idmef-tree-wrap.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit ecf034584011ee4d30139d77c48a35eb1c66744e Author: Yoann Vandoorselaere Date: Thu Jul 3 13:04:07 2014 +0200 Do not leak memory in case of idmef-value cast to (string, data, time) When casting a value to a string, data, or time object, the newly created (casted) object was never destroyed. Change-Id: I49bfb983a95a5cc6fefb648d5d63faeb5a3f3089 src/idmef-value.c | 2 ++ 1 file changed, 2 insertions(+) commit a798c34676a4aafb8a6f8845bac078297e20d530 Author: Yoann Vandoorselaere Date: Fri Jun 27 12:59:13 2014 +0200 Error information in case a cast to data fail Change-Id: Ieb59abfa634527d3691beba59290154e8367c9dc src/idmef-value.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9d1b484a36a45cb3bc33b5dc70459d9d3edd08d5 Author: Antoine LUONG Date: Tue Jul 15 09:12:10 2014 +0200 Update configure.in Change-Id: I29a9304eb1ba0f4a2e3f5d7cc72406ffdb0c286c configure.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c1c4bfabf346962939a2bb6597e0c075cba91c03 Author: Antoine LUONG Date: Mon Jul 7 15:25:49 2014 +0200 Update NEWS, bump version Change-Id: I0c229d27c9ad7a61532ba316f22d5664af45f99f NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 2 +- 2 files changed, 75 insertions(+), 1 deletion(-) commit 4552361cc2b5dda4885cea7367db5dbd1ec8f671 Author: Yoann Vandoorselaere Date: Tue Jun 24 15:45:11 2014 +0200 Improved error handling, fix 8 bits unsigned integer conversion to string Converting a 8 bits unsigned integer to a string could result in an invalid value, because of an invalid unsigned to signed cast. Additionally, when parsing integer, some error were not correctly detected (for example left over character in the input string). This change fixes the problem, and should also improve performance by making use of strto* functions in place of sscanf(). This fixes an issue in libpreludedb/Prewikka, where invalid IDMEFCriteria were not correctly reported, leading to a later libpreludedb error. Fix #546. Change-Id: I07b800b48687f511fb629c4fe8f00584b46d170b src/idmef-value-type.c | 118 ++++++++++++++++++------------------------------- 1 file changed, 44 insertions(+), 74 deletions(-) commit d677b5c8c34686fd916efab595784d63b9ffbec2 Author: Yoann Vandoorselaere Date: Thu May 22 16:55:03 2014 +0200 Properly handle conversion to string for direct list of string There are a few specific case where we directly store a list of string rather than a list of object, for idmef_process (arg, env), idmef_web_service (arg), and idmef_file_access (permission_list). The code implemented in 26e1f1e1fb60ce6cb131c89f07e5599fe49a2d94 was not handling this special case, which could lead to an invalid pointer dereference when printing an idmef_value_t carrying a process, a web service or a file access. Change-Id: Ie5facfaf5d1178c4ae153dbf01774496dfe9748b src/idmef-value-type.c | 94 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 67 insertions(+), 27 deletions(-) commit c5bff84827980381f48c2585616516e0267981a6 Author: Yoann Vandoorselaere Date: Thu May 22 11:19:40 2014 +0200 Fix issues with IDMEF path listed element containing NULL value Commit 7ecf913a6df8ff41bdb9779a8e27e0d0b1c148fc implemented the ability to retrieve NULL value within path containing listed element, but the implementation was not handling properly some specific case : idmef.Set("alert.source(0).process.name", "p0") idmef.Set("alert.source(1).user.user_id(0).name", "test") idmef.Set("alert.source(2).process.name", "p2") idmef.Get("alert.source(*).process.name") was returning: ("p0", "p2") When it should have returned: ("p0", NULL, "p2") This is now fixed. Change-Id: I18971f4a45c9be029d9848e66890ca33f43c54a1 src/idmef-path.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 3a5f44d8b8901cd4d150ffc8829325ef4ddb4159 Author: Yoann Vandoorselaere Date: Mon May 19 18:07:09 2014 +0200 Align IDMEFPath.Get() behavior on IDMEF.Get() In case the returned value is NULL, but the path is ambiguous, return an empty list. Change-Id: Ie8ae24591ae7da3ab945e2612c57943ed59873b7 bindings/libpreludecpp.i | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 6c7850e014132aa9f52db3204dd8d59d0da830ac Author: Yoann Vandoorselaere Date: Mon May 19 18:05:16 2014 +0200 Map idmef_value_type_id_t to a C++ enumeration Change-Id: I7248d7b122519cf99817424d96ba2a078806cc73 bindings/c++/idmef-path.cxx | 4 +- bindings/c++/idmef-value.cxx | 67 ++++++++++++++-------------------- bindings/c++/include/idmef-path.hxx | 2 +- bindings/c++/include/idmef-value.hxx | 22 ++++++++++- bindings/libpreludecpp.i | 38 +++++++++---------- bindings/lua/libpreludecpp-lua.i | 38 +++++++++---------- bindings/perl/libpreludecpp-perl.i | 2 +- bindings/python/libpreludecpp-python.i | 2 +- bindings/ruby/libpreludecpp-ruby.i | 2 +- 9 files changed, 90 insertions(+), 87 deletions(-) commit 26e1f1e1fb60ce6cb131c89f07e5599fe49a2d94 Author: Yoann Vandoorselaere Date: Thu May 8 12:18:08 2014 -0400 Support dumping an idmef_value_t containing a class to string Change-Id: I5e82a30493fb64f6d519b400ace084ce576e1573 src/idmef-value-type.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 86 insertions(+), 3 deletions(-) commit 60644a02f0e4c001f117e50272dd19ef6a3c11dd Author: Yoann Vandoorselaere Date: Wed May 7 19:40:51 2014 -0400 Handle conversion to string for listed idmef_value_t, this is usefull for debugging Change-Id: Ie04910947ca63d243fa6f1ab46ca1adc742f1c13 bindings/c++/idmef-value.cxx | 23 +++++++++++++++++ bindings/c++/include/idmef-value.hxx | 1 + src/idmef-value.c | 49 +++++++++++++++++++++++++++++++++--- src/include/idmef-value.h | 2 +- 4 files changed, 71 insertions(+), 4 deletions(-) commit 4ff7fcc64065cbe3bf8c82f060ad8fd1ab1d507a Author: Yoann Vandoorselaere Date: Tue May 6 15:00:49 2014 -0400 In high level language, return an empty list if the path is ambiguous Change-Id: Ifbdd6b3e147ab414a516c5c7e2b226dd88475541 bindings/libpreludecpp.i | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 7ecf913a6df8ff41bdb9779a8e27e0d0b1c148fc Author: Yoann Vandoorselaere Date: Mon May 5 12:57:02 2014 -0400 Allow NULL idmef_value_t in list When retrieving value from a path, like alert.source(*).node.address(*).address, we also want to return undefined value, so that the returned list conform to the number of item/index in the retrieved path. - src/idmef-value.c, src/include/idmef-value.h: Allow NULL member in idmef_value_t of type list, and implement idmef_value_get_nth2() which return 1 until item are available, 0, if there is no more item, and -1, in case of invalid index. - src/idmef-path.c: Return NULL value on get(), correctly handle shortage of listed idmef_value_t on set. - bindings/*: Update bindings to correctly handle NULL idmef_value_t members. Change-Id: I3371d19be3335d744cc146c78a4c8cb8f36822b3 bindings/c++/idmef-value.cxx | 5 ++- bindings/lua/libpreludecpp-lua.i | 27 +++++++++------- bindings/perl/libpreludecpp-perl.i | 11 +++++-- bindings/python/libpreludecpp-python.i | 11 +++++-- bindings/ruby/libpreludecpp-ruby.i | 10 ++++-- bindings/tests/test.lua | 35 +++++++++++++-------- bindings/tests/test.pl | 33 +++++++++++++------- bindings/tests/test.py | 20 +++++------- bindings/tests/test.rb | 22 +++++-------- src/idmef-path.c | 14 ++++++--- src/idmef-value.c | 57 +++++++++++++++++++++++++++------- src/include/idmef-value.h | 2 ++ 12 files changed, 157 insertions(+), 90 deletions(-) commit 25e19cb5e410f0e77fd0015dbcf6995a8b170edc Author: Yoann Vandoorselaere Date: Fri May 2 19:40:21 2014 -0400 prelude_string_compare() should always return a negative value in case of mismatch Change-Id: Ib5a54b9534ce45d592604609f7f1a951c2a15bca src/prelude-string.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit c621c4a508b197e8269e36c7c2aa7ec5691184d6 Author: Yoann Vandoorselaere Date: Fri May 2 18:20:08 2014 -0400 Improved idmef_path_set() implementation It is now possible to set undefined element, or override them, in the following way : - alert.source(0).node.address(*).address = [ "a", "b" ] -> address(0) = a, address(1) = b - alert.source(0).node.address(*).address = [ "1", "2", "3" ] -> address(0) = 1, address(1) = 2, address(2) = 3 - alert.source(0).node.address(*).address = NULL -> address(0) = NULL, address(1) = NULL, address(2) = NULL Support for setting nested value : - alert.source(*).node.address(*).address = [ "a", "b" ] -> Error : an index is undefined, or a list of value is missing - alert.source(*).node.address(*).address = [["1", "2], ["3", "4"]] -> source(0).address(0) = 1, source(0).address(1) = 2, source(1).address(0) = 3, source(1).address(1) = 4, The same goes for object: - alert.source(0).node.address(*) = - alert.source(0).node.address(*) = [>) or (<<)) is now much faster. Change-Id: I5eaa8a732931445448b51850b478c22dbd5d7274 src/idmef-path.c | 154 ++++++++++++++++++++++++++----------------------------- 1 file changed, 72 insertions(+), 82 deletions(-) commit f930214f2df3466a7440982cd1b7e26e8e367cb6 Author: Yoann Vandoorselaere Date: Wed Apr 30 19:14:08 2014 -0400 Fix leak for all method returning an idmef_value_type_id_t Change-Id: I2059bd8ac3d58afad837d3ce9801d6418f4c43e4 bindings/libpreludecpp.i | 3 +++ 1 file changed, 3 insertions(+) commit 5b1b07bf516f959e32d2d44d79168422032d9776 Author: Yoann Vandoorselaere Date: Wed Apr 30 19:04:34 2014 -0400 Provide __hash__ function for IDMEFValue class This allow Python sets() operation on IDMEFValue instance. Note that this support for hash is suboptimal, we return the value type, which is not an unique identifier. Python will then resort to __eq__ comparison. Change-Id: I8cc637ffa3562144a156403b5fd1c0ee847e8612 bindings/python/libpreludecpp-python.i | 7 +++++++ 1 file changed, 7 insertions(+) commit 7f20c7f9ab025e3a3eac81106e0d2678ee1a2785 Author: Yoann Vandoorselaere Date: Tue Apr 29 20:00:15 2014 -0400 Explicitely activate thread support It seems that recent version of Swig completely disable thread support unless the -threads command line option is provided. As a result, we use the command line option, but disable thread globaly in libprelude.cpp, since we don't need thread support except for the Python -> C log callback, where threads lock are used., Fix possible crash with latest Swig version. Change-Id: I492c48d8cf4593c9d807a3cc0d28af4160dcd9af bindings/libpreludecpp.i | 2 ++ bindings/python/Makefile.am | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit 0ca7248e311293a53118ae5f9ee0ce2289df9478 Author: Yoann Vandoorselaere Date: Mon Apr 28 23:12:36 2014 -0400 Comparison operator support for IDMEFValue() Provide equal, not equal, lesser than, greater than operator so that it is possible to directly compare two value together, without calling the IDMEFValue.Match() method. Additionally, make it possible to call the equal operator with a Vector of IDMEFValue() as argument, which make it possible to support Python "in" operator (item in valuelist). Change-Id: Ic5dcb1372183f580b431cd21a25ce38d695d63c1 bindings/c++/idmef-value.cxx | 43 ++++++++++++++++++++++++++++++++++++ bindings/c++/include/idmef-value.hxx | 8 +++++++ 2 files changed, 51 insertions(+) commit 82f7b1e14955f9ceb036dab7ff6f6b150eb9c328 Author: Yoann Vandoorselaere Date: Mon Apr 28 21:04:10 2014 -0400 Prevent assertion in case of unapplicable operator In place of triggering an assertion, return an error if the idmef_value_match() function is called with an operator that is unsupported by the matched values. Update C++ bindings Match() method so that it trigger an exception in case the low-level idmef_value_match() function fail. Change-Id: Iaa32900f2afe069a22aa70580d6cdd27d799bf8f bindings/c++/idmef-value.cxx | 8 +++++++- src/idmef-value-type.c | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) commit 8947621c4a98aa1bf50a790de507ca7e55ac46b7 Author: Yoann Vandoorselaere Date: Wed Apr 16 13:02:34 2014 +0200 New prelude_list_splice() / prelude_list_splice_tail() function src/include/prelude-list.h | 47 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) commit 7d86d12e0d3199ad8a0fddbf2f6cffffa78eac8b Author: Yoann Vandoorselaere Date: Tue Apr 15 09:50:20 2014 +0200 Add missing PRELUDE_SCN* definition. src/include/prelude-inttypes.h.in | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) commit e8c16954182840bf439e20f40369128c1dc07643 Author: Yoann Vandoorselaere Date: Fri Apr 4 15:49:01 2014 +0200 Improve AdditionalData type checking src/idmef-additional-data.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit ef46310e18ea490c1319266f00956d40162324fd Author: Yoann Vandoorselaere Date: Fri Apr 4 14:22:53 2014 +0200 Fix high level bindings ambiguity on IDMEFPath.Set() and IDMEF.Set() methods The dispatch function generated by SWIG is not capable of distinguishing between a string consisting of a single character, and a int8/uint8 integer. As a result, when setting an IDMEFPath to a value containing a single character (example: idmef.Set("alert.additionnal_data(0).data", "c")), the generated path value was configured as carrying an integer, rather than a string. As a result, we ignore the C++ overloaded function for int8/uint8 type. If bigger integer are passed to IDMEF path that only support 8 bits integers, libprelude will perform value checking and cast the value if required. bindings/libpreludecpp.i | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit a6485646fd241848235dff74d364844f199bb133 Author: Yoann Vandoorselaere Date: Thu Apr 3 14:24:09 2014 +0200 NTP timestamp were not correctly printed. src/idmef-additional-data.c | 2 +- src/idmef-message-print.c | 24 ++++++++++++++- .../GenerateIDMEFMessagePrintC.pm | 34 ++++++++++++++++++++-- 3 files changed, 56 insertions(+), 4 deletions(-) commit 7063db6f678eeb25e63b88a55f349f23ee3f1366 Author: Yoann Vandoorselaere Date: Thu Apr 3 14:22:21 2014 +0200 Fix float value corruption when writing to a prelude_message. idmef_data_get_uint64() was incorrectly called in place of idmef_data_get_float(). src/idmef-message-write.c | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 2eaec4fd9649902367c8498e1c8c201be2c71b20 Author: Yoann Vandoorselaere Date: Fri Mar 21 14:57:52 2014 +0100 Prelude-Timer optimisation prelude_timer_wake_up() now return the number of second before the next required wakeup. The caller doesn't have to call this function every second anymore. Changing return type from void to int shouldn't break ABI compatibility. src/include/prelude-timer.h | 2 +- src/prelude-timer.c | 22 ++++++++--- tests/Makefile.am | 2 +- tests/prelude-timer.c | 95 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 113 insertions(+), 8 deletions(-) commit 446dce1235b6290729116f8bf9f640a9af08c70e Author: Yoann Vandoorselaere Date: Fri Mar 21 14:34:17 2014 +0100 Improved EOF error handling Most IDMEF->Read() function return 0 or 1, depending if an IDMEF message was read. For Ruby and Python, properly handle EOF exception. bindings/c++/include/prelude-error.hxx | 3 +++ bindings/c++/prelude-error.cxx | 12 ++++++++++++ bindings/libpreludecpp.i | 11 ++++++++++- bindings/lua/libpreludecpp-lua.i | 31 +++++++++++++++++++++++++------ bindings/perl/libpreludecpp-perl.i | 22 +++++++++++++++------- bindings/python/libpreludecpp-python.i | 29 ++++++++++++++++++++++++++++- bindings/ruby/libpreludecpp-ruby.i | 28 +++++++++++++++++++++++++++- bindings/tests/test.lua | 6 ++++-- bindings/tests/test.pl | 9 +++++---- bindings/tests/test.py | 20 +++++++++++++++++--- bindings/tests/test.rb | 20 +++++++++++++++++--- 11 files changed, 163 insertions(+), 28 deletions(-) commit ea87f4943a78f21707486fcfd88b9ff0e8d29be9 Author: Yoann Vandoorselaere Date: Fri Mar 21 14:33:41 2014 +0100 Perl Makefile fixes bindings/perl/Makefile.PL.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1beeaa32ea42380f34fd23bb08c76bc68b85ee96 Author: Yoann Vandoorselaere Date: Fri Mar 21 10:37:15 2014 +0100 Fix idmef-message-helper units tests idmef_message_get_number() return a positive value on success. The incorrect return check was making the unit test fail. tests/idmef-message-helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a46de9f21161a5e5129de2ba9caecfeca41f17cb Author: Yoann Vandoorselaere Date: Fri Mar 21 10:34:44 2014 +0100 Wrap Clone() method using __deepcopy__ This should prevent SWIG exception when using copy.deepcopy() on one of the SWIG wrapped class. bindings/python/libpreludecpp-python.i | 6 ++++++ 1 file changed, 6 insertions(+) commit a206eb1ed9e29349a8fa6cad73ac6877a7ce7a13 Author: Yoann Vandoorselaere Date: Fri Mar 21 10:32:35 2014 +0100 IDMEF Clone() method wasn't correct bindings/c++/idmef.cxx | 4 ++-- bindings/c++/include/idmef.hxx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit c9e303e3a3153707ebd1f51dc816c03fec880c92 Author: Yoann Vandoorselaere Date: Wed Feb 12 16:42:44 2014 +0100 Fix TLS algorithm priority string error on early GnuTLS version. Early GnuTLS version didn't support the KX-ALL keyword, stop using it. Additionally, if supported, enable the ECDH algorithm. prelude-admin/prelude-admin.c | 13 ++++++++++--- prelude-admin/server.c | 13 ++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) commit 9065d7d1b7b9fd6b3284c83a05f8a56e90c6112c Author: Antoine LUONG Date: Wed Jan 8 15:26:02 2014 +0100 Removed rhel6 packaging pkg/rhel6/libprelude.spec | 298 ---------------------------------------------- 1 file changed, 298 deletions(-) commit 6ba062e25b4346108f181c0339565980b3a4e289 Author: Antoine LUONG Date: Wed Jan 8 15:25:14 2014 +0100 Updated README README | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 304a3f1aa4e76cf624e3443b9fd996ba7bd780f9 Author: Yoann Vandoorselaere Date: Mon Jan 6 11:55:02 2014 +0100 Remove libmissing include path, the glthread header is included from the Ruby SWIG interface file with a direct, relative path. Avoid triggering other GnuLib replacement headers inclusion, which make the compilation fail. bindings/ruby/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7dcd3950c50bea1f3f6a26898255f624c05e3048 Author: Yoann Vandoorselaere Date: Fri Dec 27 19:48:58 2013 +0100 Provide AS_VAR_COPY, for system lacking it configure.in | 4 ++++ 1 file changed, 4 insertions(+) commit e6094a34518929f28e7577e836018e5192bdd3bb Author: Yoann Vandoorselaere Date: Fri Dec 27 11:01:12 2013 +0100 Revert to old glthread method for Ruby bindings Revert "Use ruby thread implementation rather than relying on glthread". The implementation was not working correctly when using async libprelude threads. This reverts commit 0b2f68e4a1acaba9e739e75da04fbfea823ffea2. bindings/ruby/Makefile.am | 2 +- bindings/ruby/libpreludecpp-ruby.i | 28 ++++++++++++++++++---------- 2 files changed, 19 insertions(+), 11 deletions(-) commit bfc1d1698d6e8ca1d9f981f410a9173d855f4700 Author: Yoann Vandoorselaere Date: Fri Dec 20 15:24:04 2013 +0100 Fix compilation on older GnuTLS system configure.in | 3 ++ prelude-admin/tls-register.c | 73 +++++++++++++++++++++++++++----------------- 2 files changed, 48 insertions(+), 28 deletions(-) commit 165af8255cf10758c109ba0b62c866c75565685b Author: Yoann Vandoorselaere Date: Thu Dec 19 17:52:02 2013 +0100 No need to include libprelude-decl.txt docs/api/libprelude-decl.txt | 8523 ------------------------------------------ 1 file changed, 8523 deletions(-) commit 7d85d11af787d6ff9ee20e7eb8ba3541db4e8bec Author: Yoann Vandoorselaere Date: Thu Dec 19 17:51:13 2013 +0100 Documentation update docs/api/libprelude-decl.txt | 11247 +++++++++++++++++++++-------------------- 1 file changed, 5757 insertions(+), 5490 deletions(-) commit 39d08afbdc1385aa9b51d086da250036f4549d09 Author: Yoann Vandoorselaere Date: Thu Dec 19 17:46:52 2013 +0100 libprelude-config should include libltdl link information When using the system installed libltdl, libprelude-config should output libltdl link information (fixes static compilation of external program). configure.in | 5 +++++ libprelude-config.in | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) commit c74a7f9af3dc2c1f46f15fee76c96fb1cd279df0 Author: Yoann Vandoorselaere Date: Tue Dec 17 12:34:25 2013 +0100 Update URL bindings/low-level/python/setup.py.in | 2 +- bindings/python/setup.py.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7650c712d99397b280df8e89f7d556dd2c5e460a Author: Yoann Vandoorselaere Date: Mon Dec 16 14:36:39 2013 +0100 Various compilation warning fixes src/idmef-path.c | 4 +--- src/idmef-time.c | 3 +-- src/prelude-timer.c | 2 -- 3 files changed, 2 insertions(+), 7 deletions(-) commit 21014aa487b6c66db0e1d93a05202151dc9ec00d Author: Yoann Vandoorselaere Date: Mon Dec 16 14:25:03 2013 +0100 Ruby high level bindings compilation fixes Make the Ruby binding code compatible with Ruby 1.9 bindings/ruby/libpreludecpp-ruby.i | 62 +++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 21 deletions(-) commit 877ffcdaa00af3914819328bb9d4c60538701dd4 Author: Yoann Vandoorselaere Date: Mon Dec 16 10:40:29 2013 +0100 Ruby detection warning fixes configure.in | 6 +++--- m4/am_path_ruby.m4 | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) commit 507a8ce0074461a692c1c8864f957c3ed3e8eaa3 Author: Yoann Vandoorselaere Date: Sun Dec 15 16:38:11 2013 +0100 Update to latest GnuTLS API prelude-admin/prelude-admin.c | 66 ++++++++++----------- prelude-admin/server.c | 54 +++++++++-------- prelude-admin/server.h | 4 +- prelude-admin/tls-register.c | 131 ++++++++++++++++++++++++++---------------- prelude-admin/tls-register.h | 18 +++--- src/include/tls-auth.h | 2 +- src/include/tls-util.h | 14 ++--- src/prelude-client-profile.c | 2 +- src/tls-auth.c | 26 ++++----- src/tls-util.c | 28 ++++----- 10 files changed, 191 insertions(+), 154 deletions(-) commit 0b2f68e4a1acaba9e739e75da04fbfea823ffea2 Author: Yoann Vandoorselaere Date: Fri Dec 13 14:28:20 2013 +0100 Use ruby thread implementation rather than relying on glthread bindings/ruby/Makefile.am | 2 +- bindings/ruby/libpreludecpp-ruby.i | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) commit e06f2dc6d628ea54e6c0792713d1261b1265e28e Author: Yoann Vandoorselaere Date: Fri Dec 13 14:07:32 2013 +0100 Fix Perl high level bindings compilation Bindings that require glthread should manually include config.h and glthread.h in their respective SWIG template. They can then use %begin declaration, which make sure config.h will be included before anything else, which prevent further compilation error in some case. The previous implementation used to always include config.h and glthread.h except for Python (which already has it's own thread layer), but we couldn't use %begin then since config.h was included before SWIGPYTHON (used as a conditionnal) got defined. bindings/libpreludecpp.i | 5 ----- bindings/lua/libpreludecpp-lua.i | 5 +++++ bindings/perl/libpreludecpp-perl.i | 5 +++++ 3 files changed, 10 insertions(+), 5 deletions(-) commit cd72c76d6c547ac0615cab3005102a8b3d215b82 Author: Yoann Vandoorselaere Date: Fri Dec 13 14:02:26 2013 +0100 Fix conflicting lt_preloaded_symbol type compilation error. LT_DLSYM_CONST has been defined during the libtool 2.2.10 -> 2.4 transition. Use it to guess whether lt_preloaded_symbols is already defined by ltdl.h as a different kind of symbol. As a reminder, we use void * for lt_preloaded_symbol so that application requiring plugin preloading doesn't depend on libltdl headers and lib. In case the application doesn't use libltdl, plugin preloading can still be used throught libprelude preloading function. src/include/prelude-plugin.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 609a3c241a0d0fda561e9931488ec530aa3c2948 Author: Yoann Vandoorselaere Date: Fri Dec 13 13:29:13 2013 +0100 Fix idmef-message-helper units tests idmef_message_get_string() return a positive value on success. The incorrect return check was making the unit test fail. tests/idmef-message-helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2bc9f6ba56da2bad77d29a6195f72288ba27b933 Author: Yoann Vandoorselaere Date: Fri Dec 13 13:27:46 2013 +0100 idmef_message_get_number() shall return a positive value on success idmef_message_get_number() is supposed to return a positive value in case of success. This fixes one of the idmef-message-helper unit test failure. src/idmef-message-helpers.c | 1 + 1 file changed, 1 insertion(+) commit bc59cc508b5bca061571b2b62d87bc83a436b1a2 Author: Yoann Vandoorselaere Date: Fri Nov 8 08:17:43 2013 +0100 Fix compilation if GnuTLS-Extra is not available Only include gnutls/extra.h conditionally prelude-admin/prelude-admin.c | 5 ++++- prelude-admin/server.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) commit 1b97cccfa56268734e0d8cc9257a785d8da13efa Author: Yoann Vandoorselaere Date: Fri Dec 13 09:55:08 2013 +0100 Fix configure script generation, and update GnuLib code Modify configure.in to fit latest autoconf changes. Update GnuLib code. Fix link error due to unsubstitued variable when invoking libtool by moving shell variable declaration after AC_INIT, to prevent them from remaining undefined. Update various autoconf macros, and gtk-doc build files. INSTALL | 15 +- arg-nonnull.h | 26 - config.rpath | 106 +- configure.in | 53 +- docs/api/Makefile.am | 59 +- docs/api/libprelude-docs.xml | 68 + docs/api/tmpl/idmef-additional-data.sgml | 3 + docs/api/tmpl/idmef-criteria.sgml | 3 + docs/api/tmpl/idmef-criterion-value.sgml | 3 + docs/api/tmpl/idmef-data.sgml | 13 +- docs/api/tmpl/idmef-message-print.sgml | 3 + docs/api/tmpl/idmef-message-read.sgml | 3 + docs/api/tmpl/idmef-message-write.sgml | 3 + docs/api/tmpl/idmef-path.sgml | 5 +- docs/api/tmpl/idmef-time.sgml | 3 + docs/api/tmpl/idmef-tree-wrap.sgml | 3 + docs/api/tmpl/idmef-value.sgml | 3 + docs/api/tmpl/idmef.sgml | 3 + docs/api/tmpl/prelude-async.sgml | 6 + docs/api/tmpl/prelude-client-profile.sgml | 3 + docs/api/tmpl/prelude-client.sgml | 3 + docs/api/tmpl/prelude-connection-pool.sgml | 3 + docs/api/tmpl/prelude-connection.sgml | 4 + docs/api/tmpl/prelude-error.sgml | 366 +++ docs/api/tmpl/prelude-failover.sgml | 3 + docs/api/tmpl/prelude-hash.sgml | 3 + docs/api/tmpl/prelude-ident.sgml | 3 + docs/api/tmpl/prelude-inttypes.sgml | 3 + docs/api/tmpl/prelude-io.sgml | 3 + docs/api/tmpl/prelude-linked-object.sgml | 3 + docs/api/tmpl/prelude-list.sgml | 3 + docs/api/tmpl/prelude-log.sgml | 15 +- docs/api/tmpl/prelude-msg.sgml | 3 + docs/api/tmpl/prelude-msgbuf.sgml | 3 + docs/api/tmpl/prelude-option-wide.sgml | 3 + docs/api/tmpl/prelude-option.sgml | 3 + docs/api/tmpl/prelude-plugin.sgml | 3 + docs/api/tmpl/prelude-string.sgml | 5 +- docs/api/tmpl/prelude-timer.sgml | 7 + docs/api/tmpl/prelude.sgml | 7 + gtk-doc.make | 250 +- libmissing/Makefile.am | 1625 +++++++++--- libmissing/accept.c | 22 +- libmissing/alignof.h | 53 - libmissing/alloca.c | 31 +- libmissing/alloca.in.h | 17 +- libmissing/arpa_inet.in.h | 97 +- libmissing/asnprintf.c | 5 +- libmissing/bind.c | 21 +- libmissing/btowc.c | 3 +- libmissing/c-ctype.c | 5 +- libmissing/c-ctype.h | 38 +- libmissing/close-hook.c | 91 - libmissing/close-hook.h | 72 - libmissing/close.c | 37 +- libmissing/config.charset | 49 +- libmissing/connect.c | 33 +- libmissing/dosname.h | 53 + libmissing/dup2.c | 76 +- libmissing/errno.in.h | 195 +- libmissing/fclose.c | 79 +- libmissing/fd-hook.c | 116 + libmissing/fd-hook.h | 119 + libmissing/fflush.c | 225 ++ libmissing/float+.h | 11 +- libmissing/float.c | 33 + libmissing/float.in.h | 138 +- libmissing/fopen.c | 13 +- libmissing/fpucw.h | 5 +- libmissing/fpurge.c | 145 ++ libmissing/freading.c | 74 + libmissing/freading.h | 53 + libmissing/frexp.c | 6 +- libmissing/frexpl.c | 23 +- libmissing/fseek.c | 30 + libmissing/fseeko.c | 62 +- libmissing/fstat.c | 88 + libmissing/ftell.c | 37 + libmissing/ftello.c | 85 + libmissing/gai_strerror.c | 28 +- libmissing/getaddrinfo.c | 37 +- libmissing/getdelim.c | 14 +- libmissing/gethostname.c | 3 +- libmissing/getline.c | 8 +- libmissing/getpass.c | 97 +- libmissing/getpass.h | 7 +- libmissing/getsockname.c | 21 +- libmissing/gettext.h | 24 +- libmissing/gettimeofday.c | 24 +- libmissing/glthread/cond.c | 16 +- libmissing/glthread/cond.h | 22 +- libmissing/glthread/lock.c | 13 +- libmissing/glthread/lock.h | 40 +- libmissing/glthread/thread.c | 24 +- libmissing/glthread/thread.h | 64 +- libmissing/glthread/threadlib.c | 5 +- libmissing/glthread/tls.c | 4 +- libmissing/glthread/tls.h | 7 +- libmissing/inet_ntop.c | 62 +- libmissing/inet_pton.c | 51 +- libmissing/intprops.h | 319 ++- libmissing/ioctl.c | 69 +- libmissing/isnan.c | 46 +- libmissing/isnand-nolibm.h | 2 +- libmissing/isnand.c | 2 +- libmissing/isnanf-nolibm.h | 9 +- libmissing/isnanf.c | 2 +- libmissing/isnanl-nolibm.h | 2 +- libmissing/isnanl.c | 2 +- libmissing/itold.c | 28 + libmissing/langinfo.in.h | 58 +- libmissing/listen.c | 19 +- libmissing/localcharset.c | 57 +- libmissing/localcharset.h | 5 +- libmissing/locale.in.h | 216 ++ libmissing/localeconv.c | 103 + libmissing/lseek.c | 11 +- libmissing/m4/00gnulib.m4 | 2 +- libmissing/m4/absolute-header.m4 | 102 + libmissing/m4/alloca.m4 | 86 +- libmissing/m4/arpa_inet_h.m4 | 22 +- libmissing/m4/btowc.m4 | 65 +- libmissing/m4/close.m4 | 29 +- libmissing/m4/codeset.m4 | 14 +- libmissing/m4/cond.m4 | 5 +- libmissing/m4/configmake.m4 | 55 + libmissing/m4/dos.m4 | 71 - libmissing/m4/dup2.m4 | 87 +- libmissing/m4/eealloc.m4 | 31 + libmissing/m4/environ.m4 | 47 + libmissing/m4/errno_h.m4 | 28 +- libmissing/m4/exponentd.m4 | 12 +- libmissing/m4/exponentf.m4 | 9 +- libmissing/m4/exponentl.m4 | 9 +- libmissing/m4/extensions.m4 | 56 +- libmissing/m4/extern-inline.m4 | 84 + libmissing/m4/fclose.m4 | 20 +- libmissing/m4/fcntl-o.m4 | 95 +- libmissing/m4/fcntl_h.m4 | 33 +- libmissing/m4/fdopen.m4 | 47 + libmissing/m4/fflush.m4 | 89 + libmissing/m4/float_h.m4 | 87 +- libmissing/m4/fopen.m4 | 27 +- libmissing/m4/fpieee.m4 | 8 +- libmissing/m4/fpurge.m4 | 45 + libmissing/m4/freading.m4 | 10 + libmissing/m4/frexp.m4 | 112 +- libmissing/m4/frexpl.m4 | 227 +- libmissing/m4/fseek.m4 | 15 + libmissing/m4/fseeko.m4 | 62 +- libmissing/m4/fstat.m4 | 36 + libmissing/m4/ftell.m4 | 15 + libmissing/m4/ftello.m4 | 140 ++ libmissing/m4/ftruncate.m4 | 40 + libmissing/m4/getaddrinfo.m4 | 68 +- libmissing/m4/getcwd.m4 | 155 ++ libmissing/m4/getdelim.m4 | 30 +- libmissing/m4/getdtablesize.m4 | 44 + libmissing/m4/gethostname.m4 | 20 +- libmissing/m4/getline.m4 | 33 +- libmissing/m4/getpagesize.m4 | 8 +- libmissing/m4/getpass.m4 | 42 +- libmissing/m4/gettimeofday.m4 | 54 +- libmissing/m4/glibc21.m4 | 14 +- libmissing/m4/gnulib-cache.m4 | 29 +- libmissing/m4/gnulib-common.m4 | 260 +- libmissing/m4/gnulib-comp.m4 | 993 +++++++- libmissing/m4/gnulib-tool.m4 | 2 +- libmissing/m4/hostent.m4 | 12 +- libmissing/m4/include_next.m4 | 120 +- libmissing/m4/inet_ntop.m4 | 66 +- libmissing/m4/inet_pton.m4 | 66 +- libmissing/m4/intlmacosx.m4 | 56 + libmissing/m4/intmax_t.m4 | 15 +- libmissing/m4/inttypes-pri.m4 | 42 + libmissing/m4/inttypes.m4 | 158 ++ libmissing/m4/inttypes_h.m4 | 19 +- libmissing/m4/ioctl.m4 | 41 + libmissing/m4/isnand.m4 | 59 +- libmissing/m4/isnanf.m4 | 77 +- libmissing/m4/isnanl.m4 | 136 +- libmissing/m4/langinfo_h.m4 | 39 +- libmissing/m4/largefile.m4 | 146 ++ libmissing/m4/lcmessage.m4 | 35 + libmissing/m4/ldexpl.m4 | 165 +- libmissing/m4/lib-ld.m4 | 77 +- libmissing/m4/lib-link.m4 | 55 +- libmissing/m4/lib-prefix.m4 | 2 +- libmissing/m4/localcharset.m4 | 2 +- libmissing/m4/locale-fr.m4 | 161 +- libmissing/m4/locale-ja.m4 | 97 +- libmissing/m4/locale-tr.m4 | 70 +- libmissing/m4/locale-zh.m4 | 80 +- libmissing/m4/locale_h.m4 | 122 + libmissing/m4/localeconv.m4 | 22 + libmissing/m4/localename.m4 | 12 + libmissing/m4/lock.m4 | 25 +- libmissing/m4/longlong.m4 | 87 +- libmissing/m4/lseek.m4 | 85 +- libmissing/m4/lstat.m4 | 63 +- libmissing/m4/malloc.m4 | 79 +- libmissing/m4/malloca.m4 | 15 + libmissing/m4/math_h.m4 | 297 ++- libmissing/m4/mbrtowc.m4 | 334 ++- libmissing/m4/mbsinit.m4 | 41 +- libmissing/m4/mbstate_t.m4 | 13 +- libmissing/m4/mbtowc.m4 | 19 + libmissing/m4/memchr.m4 | 32 +- libmissing/m4/memmem.m4 | 115 +- libmissing/m4/minmax.m4 | 13 +- libmissing/m4/mktime.m4 | 145 +- libmissing/m4/mmap-anon.m4 | 18 +- libmissing/m4/mode_t.m4 | 2 +- libmissing/m4/msvc-inval.m4 | 19 + libmissing/m4/msvc-nothrow.m4 | 10 + libmissing/m4/multiarch.m4 | 11 +- libmissing/m4/netdb_h.m4 | 25 +- libmissing/m4/netinet_in_h.m4 | 5 +- libmissing/m4/nl_langinfo.m4 | 35 +- libmissing/m4/nocrash.m4 | 34 +- libmissing/m4/off_t.m4 | 18 + libmissing/m4/onceonly.m4 | 33 +- libmissing/m4/open.m4 | 59 +- libmissing/m4/pathmax.m4 | 35 +- libmissing/m4/perror.m4 | 56 +- libmissing/m4/pipe.m4 | 15 + libmissing/m4/poll.m4 | 93 +- libmissing/m4/poll_h.m4 | 47 + libmissing/m4/printf-frexp.m4 | 25 +- libmissing/m4/printf-frexpl.m4 | 36 +- libmissing/m4/printf.m4 | 1046 ++++---- libmissing/m4/putenv.m4 | 56 + libmissing/m4/raise.m4 | 34 + libmissing/m4/realloc.m4 | 65 +- libmissing/m4/regex.m4 | 182 +- libmissing/m4/relocatable-lib.m4 | 15 +- libmissing/m4/select.m4 | 72 +- libmissing/m4/servent.m4 | 12 +- libmissing/m4/setenv.m4 | 160 ++ libmissing/m4/setlocale.m4 | 29 + libmissing/m4/signal_h.m4 | 46 +- libmissing/m4/signalblocking.m4 | 29 +- libmissing/m4/signbit.m4 | 274 ++- libmissing/m4/size_max.m4 | 16 +- libmissing/m4/sleep.m4 | 33 +- libmissing/m4/snprintf-posix.m4 | 2 +- libmissing/m4/snprintf.m4 | 20 +- libmissing/m4/socketlib.m4 | 86 + libmissing/m4/sockets.m4 | 79 +- libmissing/m4/socklen.m4 | 55 +- libmissing/m4/sockpfaf.m4 | 33 +- libmissing/m4/ssize_t.m4 | 12 +- libmissing/m4/stat.m4 | 36 +- libmissing/m4/stdalign.m4 | 53 + libmissing/m4/stdbool.m4 | 137 +- libmissing/m4/stddef_h.m4 | 12 +- libmissing/m4/stdint.m4 | 52 +- libmissing/m4/stdint_h.m4 | 17 +- libmissing/m4/stdio_h.m4 | 104 +- libmissing/m4/stdlib_h.m4 | 67 +- libmissing/m4/strcase.m4 | 15 +- libmissing/m4/strcasestr.m4 | 89 +- libmissing/m4/strdup.m4 | 18 +- libmissing/m4/strerror.m4 | 116 +- libmissing/m4/strerror_r.m4 | 173 ++ libmissing/m4/string_h.m4 | 30 +- libmissing/m4/strings_h.m4 | 25 +- libmissing/m4/strndup.m4 | 32 +- libmissing/m4/strnlen.m4 | 26 +- libmissing/m4/strptime.m4 | 20 +- libmissing/m4/strsep.m4 | 8 +- libmissing/m4/symlink.m4 | 41 +- libmissing/m4/sys_ioctl_h.m4 | 18 +- libmissing/m4/sys_select_h.m4 | 35 +- libmissing/m4/sys_socket_h.m4 | 59 +- libmissing/m4/sys_stat_h.m4 | 30 +- libmissing/m4/sys_time_h.m4 | 49 +- libmissing/m4/sys_types_h.m4 | 24 + libmissing/m4/sys_uio_h.m4 | 31 + libmissing/m4/sys_utsname_h.m4 | 17 +- libmissing/m4/thread.m4 | 5 +- libmissing/m4/threadlib.m4 | 167 +- libmissing/m4/time_h.m4 | 67 +- libmissing/m4/time_r.m4 | 58 +- libmissing/m4/timegm.m4 | 36 +- libmissing/m4/tls.m4 | 2 +- libmissing/m4/tm_gmtoff.m4 | 2 +- libmissing/m4/uname.m4 | 7 +- libmissing/m4/ungetc.m4 | 24 +- libmissing/m4/unistd_h.m4 | 150 +- libmissing/m4/vasnprintf.m4 | 25 +- libmissing/m4/vsnprintf-posix.m4 | 6 +- libmissing/m4/vsnprintf.m4 | 20 +- libmissing/m4/warn-on-use.m4 | 18 +- libmissing/m4/wchar.m4 | 150 -- libmissing/m4/wchar_h.m4 | 225 ++ libmissing/m4/wchar_t.m4 | 14 +- libmissing/m4/wcrtomb.m4 | 118 +- libmissing/m4/wctob.m4 | 72 +- libmissing/m4/wctomb.m4 | 19 + libmissing/m4/wctype.m4 | 84 - libmissing/m4/wctype_h.m4 | 209 ++ libmissing/m4/wint_t.m4 | 14 +- libmissing/m4/write.m4 | 18 +- libmissing/m4/xsize.m4 | 5 +- libmissing/m4/yield.m4 | 2 +- libmissing/malloc.c | 17 +- libmissing/math.c | 3 + libmissing/math.in.h | 2083 ++++++++++++++-- libmissing/mbrtowc.c | 48 +- libmissing/mbsinit.c | 18 +- libmissing/mbtowc-impl.h | 44 + libmissing/mbtowc.c | 26 + libmissing/memchr.c | 2 +- libmissing/memmem.c | 7 +- libmissing/minmax.h | 5 +- libmissing/mktime.c | 544 ++-- libmissing/msvc-inval.c | 129 + libmissing/msvc-inval.h | 222 ++ libmissing/msvc-nothrow.c | 49 + libmissing/msvc-nothrow.h | 43 + libmissing/netdb.in.h | 173 +- libmissing/netinet_in.in.h | 24 +- libmissing/nl_langinfo.c | 15 +- libmissing/pathmax.h | 55 +- libmissing/perror.c | 22 +- libmissing/poll.c | 70 +- libmissing/poll.in.h | 88 +- libmissing/printf-args.c | 5 +- libmissing/printf-args.h | 9 +- libmissing/printf-frexp.c | 6 +- libmissing/printf-frexp.h | 2 +- libmissing/printf-frexpl.c | 25 +- libmissing/printf-frexpl.h | 2 +- libmissing/printf-parse.c | 55 +- libmissing/printf-parse.h | 19 +- libmissing/raise.c | 79 + libmissing/realloc.c | 23 +- libmissing/ref-add.sin | 5 +- libmissing/ref-del.sin | 5 +- libmissing/regcomp.c | 375 +-- libmissing/regex.c | 37 +- libmissing/regex.h | 259 +- libmissing/regex_internal.c | 95 +- libmissing/regex_internal.h | 196 +- libmissing/regexec.c | 214 +- libmissing/relocatable.c | 91 +- libmissing/relocatable.h | 20 +- libmissing/select.c | 130 +- libmissing/setsockopt.c | 33 +- libmissing/signal.in.h | 304 ++- libmissing/signbitd.c | 2 +- libmissing/signbitf.c | 2 +- libmissing/signbitl.c | 2 +- libmissing/sigprocmask.c | 60 +- libmissing/size_max.h | 5 +- libmissing/sleep.c | 11 +- libmissing/snprintf.c | 5 +- libmissing/socket.c | 2 +- libmissing/sockets.c | 50 +- libmissing/sockets.h | 17 +- libmissing/stat.c | 42 +- libmissing/stdalign.in.h | 109 + libmissing/stdbool.in.h | 59 +- libmissing/stddef.in.h | 20 +- libmissing/stdint.in.h | 293 ++- libmissing/stdio-impl.h | 26 +- libmissing/stdio-write.c | 150 -- libmissing/stdio.in.h | 1200 +++++++-- libmissing/stdlib.in.h | 673 ++++- libmissing/str-two-way.h | 65 +- libmissing/strcasecmp.c | 5 +- libmissing/strcasestr.c | 5 +- libmissing/strdup.c | 7 +- libmissing/streq.h | 10 +- libmissing/strerror-override.c | 302 +++ libmissing/strerror-override.h | 56 + libmissing/strerror.c | 353 +-- libmissing/strerror_r.c | 326 +++ libmissing/string.in.h | 615 ++++- libmissing/strings.in.h | 47 +- libmissing/strncasecmp.c | 5 +- libmissing/strndup.c | 7 +- libmissing/strnlen.c | 5 +- libmissing/strptime.c | 32 +- libmissing/strsep.c | 5 +- libmissing/sys_ioctl.in.h | 49 +- libmissing/sys_select.in.h | 284 ++- libmissing/sys_socket.c | 3 + libmissing/sys_socket.in.h | 660 +++-- libmissing/sys_stat.in.h | 346 ++- libmissing/sys_time.in.h | 192 +- libmissing/sys_types.in.h | 51 + libmissing/sys_uio.in.h | 63 + libmissing/sys_utsname.in.h | 24 +- libmissing/tests/Makefile.am | 879 ++++++- libmissing/tests/binary-io.c | 3 + libmissing/tests/binary-io.h | 63 +- libmissing/tests/c-strcase.h | 10 +- libmissing/tests/c-strcasecmp.c | 5 +- libmissing/tests/c-strncasecmp.c | 5 +- libmissing/tests/fcntl.in.h | 153 +- libmissing/tests/fdopen.c | 69 + libmissing/tests/ftruncate.c | 188 ++ libmissing/tests/getcwd-lgpl.c | 126 + libmissing/tests/getdtablesize.c | 107 + libmissing/tests/getpagesize.c | 4 +- libmissing/tests/glthread/yield.h | 10 +- libmissing/tests/ignore-value.h | 25 +- libmissing/tests/infinity.h | 60 + libmissing/tests/init.sh | 589 +++++ libmissing/tests/inttypes.in.h | 1140 +++++++++ libmissing/tests/localename.c | 2858 ++++++++++++++++++++++ libmissing/tests/localename.h | 95 + libmissing/tests/lstat.c | 20 +- libmissing/tests/macros.h | 15 +- libmissing/tests/malloca.c | 149 ++ libmissing/tests/malloca.h | 133 + libmissing/tests/malloca.valgrind | 7 + libmissing/tests/minus-zero.h | 74 + libmissing/tests/nan.h | 22 +- libmissing/tests/open.c | 27 +- libmissing/tests/pipe.c | 50 + libmissing/tests/putenv.c | 194 ++ libmissing/tests/randomd.c | 1028 ++++++++ libmissing/tests/randoml.c | 1028 ++++++++ libmissing/tests/same-inode.h | 16 +- libmissing/tests/setenv.c | 390 +++ libmissing/tests/setlocale.c | 938 +++++++ libmissing/tests/signature.h | 2 +- libmissing/tests/symlink.c | 2 +- libmissing/tests/test-accept.c | 56 + libmissing/tests/test-alignof.c | 59 - libmissing/tests/test-alloca-opt.c | 4 +- libmissing/tests/test-arpa_inet.c | 2 +- libmissing/tests/test-binary-io.c | 37 +- libmissing/tests/test-binary-io.sh | 7 +- libmissing/tests/test-bind.c | 58 + libmissing/tests/test-btowc.c | 2 +- libmissing/tests/test-c-ctype.c | 2 +- libmissing/tests/test-c-strcasecmp.c | 2 +- libmissing/tests/test-c-strncasecmp.c | 2 +- libmissing/tests/test-close.c | 45 + libmissing/tests/test-cond.c | 6 +- libmissing/tests/test-connect.c | 60 + libmissing/tests/test-dup2.c | 43 +- libmissing/tests/test-environ.c | 44 + libmissing/tests/test-errno.c | 4 +- libmissing/tests/test-fclose.c | 114 + libmissing/tests/test-fcntl-h.c | 104 +- libmissing/tests/test-fdopen.c | 56 + libmissing/tests/test-fflush.c | 191 ++ libmissing/tests/test-fflush2.c | 108 + libmissing/tests/test-fflush2.sh | 9 + libmissing/tests/test-fgetc.c | 97 + libmissing/tests/test-float.c | 384 +++ libmissing/tests/test-fopen.c | 2 +- libmissing/tests/test-fopen.h | 2 +- libmissing/tests/test-fpurge.c | 134 + libmissing/tests/test-fputc.c | 91 + libmissing/tests/test-fread.c | 100 + libmissing/tests/test-freading.c | 130 + libmissing/tests/test-frexp.c | 182 +- libmissing/tests/test-frexp.h | 179 ++ libmissing/tests/test-frexpl.c | 183 +- libmissing/tests/test-fseek.c | 70 + libmissing/tests/test-fseek.sh | 5 + libmissing/tests/test-fseek2.sh | 3 + libmissing/tests/test-fseeko.c | 2 +- libmissing/tests/test-fseeko3.c | 51 + libmissing/tests/test-fseeko3.sh | 7 + libmissing/tests/test-fseeko4.c | 73 + libmissing/tests/test-fseeko4.sh | 5 + libmissing/tests/test-fstat.c | 50 + libmissing/tests/test-ftell.c | 107 + libmissing/tests/test-ftell.sh | 5 + libmissing/tests/test-ftell2.sh | 3 + libmissing/tests/test-ftell3.c | 78 + libmissing/tests/test-ftello.c | 118 + libmissing/tests/test-ftello.sh | 5 + libmissing/tests/test-ftello2.sh | 3 + libmissing/tests/test-ftello3.c | 78 + libmissing/tests/test-ftello4.c | 70 + libmissing/tests/test-ftello4.sh | 5 + libmissing/tests/test-ftruncate.c | 60 + libmissing/tests/test-ftruncate.sh | 3 + libmissing/tests/test-fwrite.c | 94 + libmissing/tests/test-getaddrinfo.c | 28 +- libmissing/tests/test-getcwd-lgpl.c | 102 + libmissing/tests/test-getdelim.c | 5 +- libmissing/tests/test-getdtablesize.c | 36 + libmissing/tests/test-gethostname.c | 2 +- libmissing/tests/test-getline.c | 5 +- libmissing/tests/test-getsockname.c | 56 + libmissing/tests/test-gettimeofday.c | 2 +- libmissing/tests/test-ignore-value.c | 84 + libmissing/tests/test-inet_ntop.c | 2 +- libmissing/tests/test-inet_pton.c | 2 +- libmissing/tests/test-init.sh | 73 + libmissing/tests/test-intprops.c | 275 +++ libmissing/tests/test-inttypes.c | 118 + libmissing/tests/test-ioctl.c | 51 + libmissing/tests/test-isnand-nolibm.c | 3 +- libmissing/tests/test-isnand.h | 14 +- libmissing/tests/test-isnanf-nolibm.c | 2 +- libmissing/tests/test-isnanf.h | 14 +- libmissing/tests/test-isnanl-nolibm.c | 2 +- libmissing/tests/test-isnanl.h | 28 +- libmissing/tests/test-langinfo.c | 2 +- libmissing/tests/test-listen.c | 49 + libmissing/tests/test-locale.c | 79 + libmissing/tests/test-localeconv.c | 72 + libmissing/tests/test-localename.c | 747 ++++++ libmissing/tests/test-lock.c | 88 +- libmissing/tests/test-lseek.c | 15 +- libmissing/tests/test-lseek.sh | 3 +- libmissing/tests/test-lstat.c | 2 +- libmissing/tests/test-lstat.h | 2 +- libmissing/tests/test-malloc-gnu.c | 29 + libmissing/tests/test-malloca.c | 62 + libmissing/tests/test-math.c | 63 +- libmissing/tests/test-mbrtowc-w32-1.sh | 4 + libmissing/tests/test-mbrtowc-w32-2.sh | 4 + libmissing/tests/test-mbrtowc-w32-3.sh | 4 + libmissing/tests/test-mbrtowc-w32-4.sh | 4 + libmissing/tests/test-mbrtowc-w32-5.sh | 4 + libmissing/tests/test-mbrtowc-w32.c | 735 ++++++ libmissing/tests/test-mbrtowc.c | 22 +- libmissing/tests/test-mbsinit.c | 4 +- libmissing/tests/test-memchr.c | 21 +- libmissing/tests/test-memmem.c | 118 +- libmissing/tests/test-netdb.c | 5 +- libmissing/tests/test-netinet_in.c | 2 +- libmissing/tests/test-nl_langinfo.c | 15 +- libmissing/tests/test-open.c | 2 +- libmissing/tests/test-open.h | 19 +- libmissing/tests/test-pathmax.c | 32 + libmissing/tests/test-perror.c | 5 +- libmissing/tests/test-perror.sh | 33 +- libmissing/tests/test-perror2.c | 136 + libmissing/tests/test-pipe.c | 104 + libmissing/tests/test-poll-h.c | 34 + libmissing/tests/test-poll.c | 45 +- libmissing/tests/test-printf-frexp.c | 2 +- libmissing/tests/test-printf-frexpl.c | 2 +- libmissing/tests/test-raise.c | 50 + libmissing/tests/test-regex.c | 203 ++ libmissing/tests/test-select-fd.c | 2 +- libmissing/tests/test-select-in.sh | 3 +- libmissing/tests/test-select-stdin.c | 9 +- libmissing/tests/test-select.c | 365 +-- libmissing/tests/test-select.h | 462 ++++ libmissing/tests/test-setenv.c | 56 + libmissing/tests/test-setlocale1.c | 59 + libmissing/tests/test-setlocale1.sh | 34 + libmissing/tests/test-setlocale2.c | 55 + libmissing/tests/test-setlocale2.sh | 17 + libmissing/tests/test-setsockopt.c | 55 + libmissing/tests/test-signal-h.c | 129 + libmissing/tests/test-signal.c | 125 - libmissing/tests/test-signbit.c | 50 +- libmissing/tests/test-sigprocmask.c | 102 + libmissing/tests/test-sleep.c | 2 +- libmissing/tests/test-snprintf-posix.c | 2 +- libmissing/tests/test-snprintf-posix.h | 136 +- libmissing/tests/test-snprintf.c | 20 +- libmissing/tests/test-sockets.c | 2 +- libmissing/tests/test-stat.c | 3 +- libmissing/tests/test-stat.h | 6 +- libmissing/tests/test-stdalign.c | 116 + libmissing/tests/test-stdbool.c | 77 +- libmissing/tests/test-stddef.c | 16 +- libmissing/tests/test-stdint.c | 3 +- libmissing/tests/test-stdio.c | 2 +- libmissing/tests/test-stdlib.c | 33 +- libmissing/tests/test-strcasestr.c | 116 +- libmissing/tests/test-strerror.c | 26 +- libmissing/tests/test-strerror_r.c | 181 ++ libmissing/tests/test-string.c | 2 +- libmissing/tests/test-strings.c | 2 +- libmissing/tests/test-strnlen.c | 68 + libmissing/tests/test-symlink.c | 2 +- libmissing/tests/test-symlink.h | 2 +- libmissing/tests/test-sys_ioctl.c | 2 +- libmissing/tests/test-sys_select.c | 28 +- libmissing/tests/test-sys_socket.c | 21 +- libmissing/tests/test-sys_stat.c | 62 +- libmissing/tests/test-sys_time.c | 7 +- libmissing/tests/test-sys_types.c | 34 + libmissing/tests/test-sys_uio.c | 32 + libmissing/tests/test-sys_utsname.c | 2 +- libmissing/tests/test-sys_wait.h | 53 + libmissing/tests/test-thread_create.c | 78 + libmissing/tests/test-thread_self.c | 34 + libmissing/tests/test-time.c | 10 +- libmissing/tests/test-tls.c | 34 +- libmissing/tests/test-uname.c | 2 +- libmissing/tests/test-unistd.c | 2 +- libmissing/tests/test-unsetenv.c | 61 + libmissing/tests/test-vasnprintf.c | 65 +- libmissing/tests/test-verify.c | 69 + libmissing/tests/test-verify.sh | 24 + libmissing/tests/test-vsnprintf-posix.c | 2 +- libmissing/tests/test-vsnprintf.c | 20 +- libmissing/tests/test-wchar.c | 2 +- libmissing/tests/test-wcrtomb-w32-1.sh | 4 + libmissing/tests/test-wcrtomb-w32-2.sh | 4 + libmissing/tests/test-wcrtomb-w32-3.sh | 4 + libmissing/tests/test-wcrtomb-w32-4.sh | 4 + libmissing/tests/test-wcrtomb-w32-5.sh | 4 + libmissing/tests/test-wcrtomb-w32.c | 332 +++ libmissing/tests/test-wcrtomb.c | 10 +- libmissing/tests/test-wctype-h.c | 74 + libmissing/tests/test-wctype.c | 74 - libmissing/tests/test-write.c | 79 + libmissing/tests/unsetenv.c | 127 + libmissing/tests/wctob.c | 11 +- libmissing/tests/wctomb-impl.h | 34 + libmissing/tests/wctomb.c | 25 + libmissing/tests/zerosize-ptr.h | 2 +- libmissing/time.in.h | 214 +- libmissing/time_r.c | 7 +- libmissing/timegm.c | 5 +- libmissing/uname.c | 2 +- libmissing/unistd.c | 3 + libmissing/unistd.in.h | 1133 +++++++-- libmissing/vasnprintf.c | 737 +++--- libmissing/vasnprintf.h | 19 +- libmissing/verify.h | 217 +- libmissing/vsnprintf.c | 5 +- libmissing/w32sock.h | 89 +- libmissing/wchar.in.h | 865 ++++++- libmissing/wcrtomb.c | 2 +- libmissing/wctype-h.c | 4 + libmissing/wctype.in.h | 439 +++- libmissing/write.c | 129 +- libmissing/xsize.c | 3 + libmissing/xsize.h | 25 +- m4/ac_compile_check_sizeof.m4 | 28 - m4/am_check_python_headers.m4 | 24 - m4/ax_c_check_flag.m4 | 89 - m4/ax_check_aligned_access_required.m4 | 81 +- m4/ax_check_compile_flag.m4 | 74 + m4/ax_check_link_flag.m4 | 73 + m4/ax_create_prelude_inttypes_h.m4 | 2 +- m4/ax_ld_check_flag.m4 | 97 - m4/gtk-doc.m4 | 36 +- m4/libgcrypt.m4 | 27 +- m4/pkg.m4 | 92 +- snippet/_Noreturn.h | 10 + snippet/arg-nonnull.h | 26 + snippet/c++defs.h | 271 ++ snippet/unused-parameter.h | 36 + snippet/warn-on-use.h | 109 + src/idmef-tree-wrap.c | 228 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 2 +- warn-on-use.h | 75 - 657 files changed, 47203 insertions(+), 10610 deletions(-) commit 679398615b9c5d04b23453f5a93f93542feb9a15 Author: Antoine LUONG Date: Mon Aug 13 16:04:00 2012 +0200 Updated Free Software Foundation headers COPYING | 41 +++++++++++----------- bindings/c++/idmef-criteria.cxx | 6 ++-- bindings/c++/idmef-path.cxx | 6 ++-- bindings/c++/idmef-time.cxx | 6 ++-- bindings/c++/idmef-value.cxx | 6 ++-- bindings/c++/include/idmef-criteria.hxx | 6 ++-- bindings/c++/include/idmef-path.hxx | 6 ++-- bindings/c++/include/idmef-time.hxx | 6 ++-- bindings/c++/include/idmef-value.hxx | 6 ++-- bindings/c++/include/prelude-connection-pool.hxx | 6 ++-- bindings/c++/include/prelude-connection.hxx | 6 ++-- bindings/c++/include/prelude-error.hxx | 6 ++-- bindings/c++/include/prelude-log.hxx | 6 ++-- bindings/c++/include/prelude.hxx | 6 ++-- bindings/c++/prelude-connection-pool.cxx | 6 ++-- bindings/c++/prelude-connection.cxx | 6 ++-- bindings/c++/prelude-error.cxx | 6 ++-- bindings/c++/prelude.cxx | 6 ++-- bindings/libpreludecpp.i | 6 ++-- bindings/low-level/idmef-value-class-mapping.i | 6 ++-- bindings/low-level/libprelude.i | 6 ++-- bindings/low-level/perl/Makefile.PL.in | 6 ++-- bindings/low-level/perl/Prelude.pm | 6 ++-- bindings/low-level/perl/libprelude_perl.i | 6 ++-- bindings/low-level/python/libprelude-python.i | 6 ++-- bindings/low-level/python/prelude.py | 6 ++-- bindings/lua/libpreludecpp-lua.i | 6 ++-- bindings/perl/Makefile.PL.in | 6 ++-- bindings/perl/libpreludecpp-perl.i | 6 ++-- bindings/python/libpreludecpp-python.i | 6 ++-- bindings/ruby/libpreludecpp-ruby.i | 6 ++-- m4/ax_c_check_flag.m4 | 7 ++-- m4/ax_check_aligned_access_required.m4 | 7 ++-- m4/ax_ld_check_flag.m4 | 7 ++-- m4/pkg.m4 | 6 ++-- prelude-admin/prelude-admin.c | 6 ++-- prelude-admin/server.c | 6 ++-- prelude-admin/server.h | 6 ++-- prelude-admin/tls-register.c | 6 ++-- prelude-admin/tls-register.h | 6 ++-- src/common.c | 6 ++-- src/config-engine.c | 6 ++-- src/daemonize.c | 6 ++-- src/idmef-additional-data.c | 6 ++-- src/idmef-class.c | 6 ++-- src/idmef-criteria-string.lex.c | 6 ++-- src/idmef-criteria-string.lex.l | 6 ++-- src/idmef-criteria-string.yac.y | 6 ++-- src/idmef-criteria.c | 6 ++-- src/idmef-criterion-value.c | 6 ++-- src/idmef-data.c | 6 ++-- src/idmef-message-helpers.c | 6 ++-- src/idmef-message-print.c | 6 ++-- src/idmef-message-read.c | 6 ++-- src/idmef-message-write.c | 6 ++-- src/idmef-path.c | 6 ++-- src/idmef-time.c | 6 ++-- src/idmef-tree-wrap.c | 6 ++-- src/idmef-value-type.c | 6 ++-- src/idmef-value.c | 6 ++-- src/idmef-wrappers-gen/Generate.pm | 6 ++-- src/idmef-wrappers-gen/GenerateDebug.pm | 6 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 6 ++-- .../GenerateIDMEFMessagePrintC.pm | 12 +++---- .../GenerateIDMEFMessagePrintH.pm | 12 +++---- .../GenerateIDMEFMessageReadC.pm | 12 +++---- .../GenerateIDMEFMessageReadH.pm | 12 +++---- .../GenerateIDMEFMessageWriteC.pm | 12 +++---- .../GenerateIDMEFMessageWriteH.pm | 12 +++---- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 6 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 12 +++---- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapCxx.pm | 12 +++---- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 12 +++---- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapHxx.pm | 12 +++---- .../GenerateIDMEFValueClassSwigMapping.pm | 12 +++---- src/idmef-wrappers-gen/IDMEFTree.pm | 6 ++-- src/idmef-wrappers-gen/generator.pl | 6 ++-- src/idmef-wrappers-gen/idmef-tree.h | 6 ++-- src/include/common.h | 6 ++-- src/include/config-engine.h | 6 ++-- src/include/daemonize.h | 6 ++-- src/include/idmef-additional-data.h | 6 ++-- src/include/idmef-class.h | 6 ++-- src/include/idmef-criteria.h | 6 ++-- src/include/idmef-criterion-value.h | 6 ++-- src/include/idmef-data.h | 6 ++-- src/include/idmef-message-helpers.h | 6 ++-- src/include/idmef-message-print.h | 6 ++-- src/include/idmef-message-read.h | 6 ++-- src/include/idmef-message-write.h | 6 ++-- src/include/idmef-path.h | 6 ++-- src/include/idmef-time.h | 6 ++-- src/include/idmef-tree-wrap.h | 6 ++-- src/include/idmef-value-type.h | 6 ++-- src/include/idmef-value.h | 6 ++-- src/include/idmef.h | 6 ++-- src/include/libmissing.h | 6 ++-- src/include/prelude-async.h | 6 ++-- src/include/prelude-client-profile.h | 6 ++-- src/include/prelude-client.h | 6 ++-- src/include/prelude-connection-pool.h | 6 ++-- src/include/prelude-connection.h | 6 ++-- src/include/prelude-extract.h | 6 ++-- src/include/prelude-failover.h | 6 ++-- src/include/prelude-hash.h | 6 ++-- src/include/prelude-ident.h | 6 ++-- src/include/prelude-inttypes.h.in | 6 ++-- src/include/prelude-io.h | 6 ++-- src/include/prelude-linked-object.h | 6 ++-- src/include/prelude-list.h | 6 ++-- src/include/prelude-log.h | 6 ++-- src/include/prelude-message-id.h | 6 ++-- src/include/prelude-msg.h | 6 ++-- src/include/prelude-msgbuf.h | 6 ++-- src/include/prelude-option-wide.h | 6 ++-- src/include/prelude-option.h | 6 ++-- src/include/prelude-plugin.h | 6 ++-- src/include/prelude-string.h | 6 ++-- src/include/prelude-thread.h | 6 ++-- src/include/prelude-timer.h | 6 ++-- src/include/prelude.h.in | 6 ++-- src/include/tls-auth.h | 6 ++-- src/include/tls-util.h | 6 ++-- src/include/variable.h | 6 ++-- src/prelude-async.c | 6 ++-- src/prelude-client-profile.c | 6 ++-- src/prelude-client.c | 6 ++-- src/prelude-connection-pool.c | 6 ++-- src/prelude-connection.c | 6 ++-- src/prelude-failover.c | 6 ++-- src/prelude-hash.c | 6 ++-- src/prelude-ident.c | 6 ++-- src/prelude-io.c | 6 ++-- src/prelude-log.c | 6 ++-- src/prelude-msg.c | 6 ++-- src/prelude-msgbuf.c | 6 ++-- src/prelude-option-wide.c | 6 ++-- src/prelude-option.c | 6 ++-- src/prelude-plugin.c | 6 ++-- src/prelude-string.c | 6 ++-- src/prelude-thread.c | 6 ++-- src/prelude-timer.c | 6 ++-- src/prelude.c | 6 ++-- src/tls-auth.c | 6 ++-- src/tls-util.c | 6 ++-- src/variable.c | 6 ++-- 146 files changed, 488 insertions(+), 492 deletions(-) commit 5758d6a4f98eba2330c4814f61bcb983fa26acb5 Author: Antoine LUONG Date: Mon Aug 13 15:50:06 2012 +0200 Fixed some typos README | 8 ++++---- client.conf.in | 6 +++--- global.conf.in | 8 ++++---- tls.conf | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) commit bbd2e5f998243de062d18ea8cf999c4f43dc037e Author: Jean-Charles ROGEZ Date: Tue Jun 12 18:13:56 2012 +0200 New mailing lists - Updated docs README | 6 +- docs/api/libprelude-decl.txt | 6540 ++++++++++++++++++-------------------- docs/api/tmpl/prelude-error.sgml | 363 --- 3 files changed, 3122 insertions(+), 3787 deletions(-) commit 5bc0d260bf4232accbafcf89b871796571742cb3 Author: Jean-Charles ROGEZ Date: Mon Jun 4 16:29:21 2012 +0200 Update NEWS, bump version number NEWS | 18 ++++++++++++++++++ configure.in | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) commit f03b2f5e779e6caa5dc6b6b2f73a62e00c37211e Author: Jean-Charles ROGEZ Date: Mon Apr 2 15:50:29 2012 +0200 Added packaging for rhel6 pkg/rhel6/libprelude.spec | 298 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 298 insertions(+) commit e60c194846b63b404eb3f5378479d8406af86972 Author: Jean-Charles ROGEZ Date: Mon Apr 2 12:02:20 2012 +0200 Copyright / URL changes AUTHORS | 9 ++++++-- HACKING.README | 8 +++---- LICENSE.README | 18 ++++----------- README | 18 +++++++-------- bindings/c++/idmef-criteria.cxx | 2 +- bindings/c++/idmef-path.cxx | 2 +- bindings/c++/idmef-time.cxx | 2 +- bindings/c++/idmef-value.cxx | 2 +- bindings/c++/include/idmef-criteria.hxx | 2 +- bindings/c++/include/idmef-path.hxx | 2 +- bindings/c++/include/idmef-time.hxx | 2 +- bindings/c++/include/idmef-value.hxx | 2 +- bindings/c++/include/prelude-connection-pool.hxx | 2 +- bindings/c++/include/prelude-connection.hxx | 2 +- bindings/c++/include/prelude-error.hxx | 2 +- bindings/c++/include/prelude-log.hxx | 2 +- bindings/c++/include/prelude.hxx | 2 +- bindings/c++/prelude-connection-pool.cxx | 2 +- bindings/c++/prelude-connection.cxx | 2 +- bindings/c++/prelude-error.cxx | 2 +- bindings/c++/prelude.cxx | 2 +- bindings/libpreludecpp.i | 23 +++++++++++++++++++ bindings/low-level/idmef-value-class-mapping.i | 2 +- bindings/low-level/libprelude.i | 2 +- bindings/low-level/perl/Makefile.PL.in | 20 +++++++++++++++++ bindings/low-level/perl/Prelude.pm | 2 +- bindings/low-level/perl/libprelude_perl.i | 2 +- bindings/low-level/python/libprelude-python.i | 2 +- bindings/low-level/python/prelude.py | 20 +++++++++++++++++ bindings/low-level/python/setup.py.in | 25 +++++++++++++++++++-- bindings/lua/libpreludecpp-lua.i | 23 +++++++++++++++++++ bindings/perl/Makefile.PL.in | 20 +++++++++++++++++ bindings/perl/libpreludecpp-perl.i | 23 +++++++++++++++++++ bindings/python/libpreludecpp-python.i | 23 +++++++++++++++++++ bindings/python/setup.py.in | 26 ++++++++++++++++++++-- bindings/ruby/libpreludecpp-ruby.i | 23 +++++++++++++++++++ prelude-admin/prelude-admin.c | 2 +- prelude-admin/server.c | 2 +- prelude-admin/server.h | 2 +- prelude-admin/tls-register.c | 2 +- prelude-admin/tls-register.h | 2 +- src/common.c | 2 +- src/config-engine.c | 2 +- src/daemonize.c | 2 +- src/idmef-additional-data.c | 2 +- src/idmef-class.c | 2 +- src/idmef-criteria-string.lex.c | 2 +- src/idmef-criteria-string.lex.l | 2 +- src/idmef-criteria-string.yac.y | 2 +- src/idmef-criteria.c | 2 +- src/idmef-criterion-value.c | 2 +- src/idmef-data.c | 2 +- src/idmef-message-helpers.c | 2 +- src/idmef-message-print.c | 2 +- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-path.c | 2 +- src/idmef-time.c | 2 +- src/idmef-tree-wrap.c | 2 +- src/idmef-value-type.c | 2 +- src/idmef-value.c | 2 +- src/idmef-wrappers-gen/Generate.pm | 2 +- src/idmef-wrappers-gen/GenerateDebug.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 2 +- .../GenerateIDMEFMessagePrintC.pm | 4 ++-- .../GenerateIDMEFMessagePrintH.pm | 4 ++-- .../GenerateIDMEFMessageReadC.pm | 4 ++-- .../GenerateIDMEFMessageReadH.pm | 4 ++-- .../GenerateIDMEFMessageWriteC.pm | 4 ++-- .../GenerateIDMEFMessageWriteH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapHxx.pm | 4 ++-- .../GenerateIDMEFValueClassSwigMapping.pm | 4 ++-- src/idmef-wrappers-gen/IDMEFTree.pm | 2 +- src/idmef-wrappers-gen/generator.pl | 2 +- src/idmef-wrappers-gen/idmef-tree.h | 2 +- src/include/common.h | 2 +- src/include/config-engine.h | 2 +- src/include/daemonize.h | 2 +- src/include/idmef-additional-data.h | 2 +- src/include/idmef-criteria.h | 2 +- src/include/idmef-criterion-value.h | 2 +- src/include/idmef-data.h | 2 +- src/include/idmef-message-helpers.h | 2 +- src/include/idmef-message-print.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-path.h | 2 +- src/include/idmef-time.h | 2 +- src/include/idmef-tree-wrap.h | 2 +- src/include/idmef-value-type.h | 2 +- src/include/idmef-value.h | 2 +- src/include/idmef.h | 2 +- src/include/libmissing.h | 2 +- src/include/prelude-async.h | 2 +- src/include/prelude-client-profile.h | 2 +- src/include/prelude-client.h | 2 +- src/include/prelude-connection-pool.h | 2 +- src/include/prelude-connection.h | 2 +- src/include/prelude-extract.h | 2 +- src/include/prelude-failover.h | 2 +- src/include/prelude-hash.h | 2 +- src/include/prelude-ident.h | 2 +- src/include/prelude-inttypes.h.in | 2 +- src/include/prelude-io.h | 2 +- src/include/prelude-linked-object.h | 2 +- src/include/prelude-list.h | 2 +- src/include/prelude-log.h | 2 +- src/include/prelude-message-id.h | 2 +- src/include/prelude-msg.h | 2 +- src/include/prelude-msgbuf.h | 2 +- src/include/prelude-option-wide.h | 2 +- src/include/prelude-option.h | 2 +- src/include/prelude-plugin.h | 2 +- src/include/prelude-string.h | 2 +- src/include/prelude-thread.h | 2 +- src/include/prelude-timer.h | 2 +- src/include/prelude.h.in | 2 +- src/include/tls-auth.h | 2 +- src/include/tls-util.h | 2 +- src/include/variable.h | 2 +- src/libprelude-error/prelude-error.h.in | 2 +- src/prelude-async.c | 2 +- src/prelude-client-profile.c | 2 +- src/prelude-client.c | 2 +- src/prelude-connection-pool.c | 2 +- src/prelude-connection.c | 2 +- src/prelude-failover.c | 2 +- src/prelude-hash.c | 2 +- src/prelude-ident.c | 2 +- src/prelude-io.c | 2 +- src/prelude-log.c | 2 +- src/prelude-msg.c | 2 +- src/prelude-msgbuf.c | 2 +- src/prelude-option-wide.c | 2 +- src/prelude-option.c | 2 +- src/prelude-plugin.c | 2 +- src/prelude-string.c | 2 +- src/prelude-thread.c | 2 +- src/prelude-timer.c | 2 +- src/prelude.c | 2 +- src/tls-auth.c | 2 +- src/tls-util.c | 2 +- src/variable.c | 2 +- 146 files changed, 388 insertions(+), 175 deletions(-) commit 0e0b915fef733b27c0559417f31b64721a24c7a8 Author: Yoann Vandoorselaere Date: Wed Dec 8 13:59:25 2010 +0100 Prevent freeing IDMEF message value on idmef_message_get_string() idmef_message_get_string() used to free the value within the IDMEF message, because prelude_string_get_string_released() was used. As a result, further idmef_message_get_string() on the same IDMEF path where returning null value. src/idmef-message-helpers.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 60bc43bffefc2f1878ce97dbb7fba6fc51d304a6 Author: Yoann Vandoorselaere Date: Tue Jun 22 12:10:57 2010 +0200 C++ compilation fixes Include idmef-data.h, required for idmef_data_t declaration. src/include/idmef-value-type.h | 1 + 1 file changed, 1 insertion(+) commit 78ca8ac53f9c0f9071fcc9a8e975342bea40c641 Author: Yoann Vandoorselaere Date: Tue Mar 16 15:46:51 2010 +0100 Update NEWS, bump version number NEWS | 6 ++++++ configure.in | 4 ++-- docs/api/libprelude-decl.txt | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) commit 5245209e041a9f3e51b844ec91ece07a1c608190 Author: Yoann Vandoorselaere Date: Mon Feb 8 11:18:30 2010 +0100 Use posix version of GnuLib snprintf/vsnprintf module Prelude user can now rely on C99 format definition when using prelude-string. libmissing/Makefile.am | 185 +- libmissing/fpucw.h | 107 ++ libmissing/frexp.c | 166 ++ libmissing/frexpl.c | 18 + libmissing/isnan.c | 173 ++ libmissing/isnand-nolibm.h | 33 + libmissing/isnand.c | 19 + libmissing/isnanf-nolibm.h | 33 + libmissing/isnanf.c | 20 + libmissing/isnanl-nolibm.h | 33 + libmissing/isnanl.c | 20 + libmissing/m4/exponentd.m4 | 114 ++ libmissing/m4/exponentf.m4 | 91 + libmissing/m4/exponentl.m4 | 97 + libmissing/m4/fpieee.m4 | 52 + libmissing/m4/frexp.m4 | 146 ++ libmissing/m4/frexpl.m4 | 186 ++ libmissing/m4/getdelim.m4 | 65 +- libmissing/m4/getline.m4 | 38 +- libmissing/m4/gettimeofday.m4 | 61 +- libmissing/m4/gnulib-cache.m4 | 6 +- libmissing/m4/gnulib-comp.m4 | 80 + libmissing/m4/isnand.m4 | 95 + libmissing/m4/isnanf.m4 | 179 ++ libmissing/m4/isnanl.m4 | 245 +++ libmissing/m4/ldexpl.m4 | 88 + libmissing/m4/math_h.m4 | 128 ++ libmissing/m4/nocrash.m4 | 102 + libmissing/m4/printf-frexp.m4 | 45 + libmissing/m4/printf-frexpl.m4 | 64 + libmissing/m4/regex.m4 | 7 + libmissing/m4/signbit.m4 | 287 +++ libmissing/m4/snprintf-posix.m4 | 126 ++ libmissing/m4/stdio_h.m4 | 3 +- libmissing/m4/sys_time_h.m4 | 44 +- libmissing/m4/vsnprintf-posix.m4 | 127 ++ libmissing/math.in.h | 633 +++++++ libmissing/printf-frexp.c | 188 ++ libmissing/printf-frexp.h | 23 + libmissing/printf-frexpl.c | 18 + libmissing/printf-frexpl.h | 23 + libmissing/regcomp.c | 15 +- libmissing/signbitd.c | 64 + libmissing/signbitf.c | 64 + libmissing/signbitl.c | 64 + libmissing/stdio.in.h | 6 +- libmissing/sys_time.in.h | 16 +- libmissing/tests/Makefile.am | 102 + libmissing/tests/ignore-value.h | 37 + libmissing/tests/nan.h | 60 + libmissing/tests/test-frexp.c | 199 ++ libmissing/tests/test-frexpl.c | 223 +++ libmissing/tests/test-getdelim.c | 19 +- libmissing/tests/test-getline.c | 19 +- libmissing/tests/test-gettimeofday.c | 8 +- libmissing/tests/test-isnand-nolibm.c | 22 + libmissing/tests/test-isnand.h | 65 + libmissing/tests/test-isnanf-nolibm.c | 21 + libmissing/tests/test-isnanf.h | 67 + libmissing/tests/test-isnanl-nolibm.c | 23 + libmissing/tests/test-isnanl.h | 141 ++ libmissing/tests/test-lstat.c | 3 +- libmissing/tests/test-math.c | 53 + libmissing/tests/test-poll.c | 2 +- libmissing/tests/test-printf-frexp.c | 119 ++ libmissing/tests/test-printf-frexpl.c | 134 ++ libmissing/tests/test-signbit.c | 197 ++ libmissing/tests/test-snprintf-posix.c | 38 + libmissing/tests/test-snprintf-posix.h | 3113 +++++++++++++++++++++++++++++++ libmissing/tests/test-symlink.c | 3 +- libmissing/tests/test-vsnprintf-posix.c | 51 + 71 files changed, 9026 insertions(+), 90 deletions(-) commit 7e5d8ca799e0ad4d9b10dc160b22ba6b35c03082 Author: Yoann Vandoorselaere Date: Fri Jan 29 17:16:44 2010 +0100 Update NEWS, bump version NEWS | 38 ++++++++++++++++++++++++++++++++++++++ configure.in | 16 ++++++++-------- docs/api/libprelude-decl.txt | 16 +++++++++++++--- docs/api/libprelude-sections.txt | 2 ++ docs/api/tmpl/prelude-option.sgml | 18 ++++++++++++++++++ 5 files changed, 79 insertions(+), 11 deletions(-) commit 4c93305382bbb0ac632637b150202b3b9f0d9d4a Author: Yoann Vandoorselaere Date: Fri Jan 29 17:14:51 2010 +0100 Compilation fixes for WIN32 Python bindings bindings/libpreludecpp.i | 6 ++++-- bindings/python/libpreludecpp-python.i | 3 --- bindings/python/setup.py.in | 2 +- configure.in | 33 ++++++++++++++++++--------------- 4 files changed, 23 insertions(+), 21 deletions(-) commit 590610e9de158ab518dd887e66413e3f8aaf9eee Author: Yoann Vandoorselaere Date: Fri Jan 29 11:18:36 2010 +0100 Move libprelude_perl.i to the Perl bindings directory bindings/low-level/Makefile.am | 4 +- bindings/low-level/libprelude.i | 2 +- bindings/low-level/libprelude_perl.i | 376 ------------------------------ bindings/low-level/perl/libprelude_perl.i | 376 ++++++++++++++++++++++++++++++ 4 files changed, 379 insertions(+), 379 deletions(-) commit d496681bd7449d284b845c8f67b220a02804ae96 Author: Yoann Vandoorselaere Date: Thu Jan 21 21:45:14 2010 +0100 Workaround Win32 compilation error bindings/c++/include/prelude-log.hxx | 3 +++ 1 file changed, 3 insertions(+) commit d07c76e008a486d3e2accffefeb4a646f5181763 Author: Yoann Vandoorselaere Date: Thu Jan 21 21:43:26 2010 +0100 Fix Win32 compatibility breakage dues to a GnuTLS change GnuTLS seems to use internal send/recv function that are incompatible with the way we manage socket on Win32 system. This change introduce our own push/pull function callback, used by GnuTLS, and restore Win32 compatibility. prelude-admin/prelude-admin.c | 48 ++++++++++++++++++++++++++++++++++++------- prelude-admin/server.c | 47 ++++++++++++++++++++++++++++++++++++------ src/tls-auth.c | 32 +++++++++++++++++++++++++++-- 3 files changed, 112 insertions(+), 15 deletions(-) commit 62ce31ccfbb1d55cafbc6d6432cf2967825f7552 Author: Yoann Vandoorselaere Date: Wed Jan 20 18:15:17 2010 +0100 Update GnuLib code libmissing/Makefile.am | 110 +++++------ libmissing/arpa_inet.in.h | 20 +- libmissing/langinfo.in.h | 10 +- libmissing/m4/arpa_inet_h.m4 | 12 +- libmissing/m4/fcntl_h.m4 | 8 +- libmissing/m4/gnulib-common.m4 | 10 +- libmissing/m4/gnulib-comp.m4 | 3 +- libmissing/m4/langinfo_h.m4 | 7 +- libmissing/m4/signal_h.m4 | 8 +- libmissing/m4/stdio_h.m4 | 10 +- libmissing/m4/stdlib_h.m4 | 16 +- libmissing/m4/string_h.m4 | 9 +- libmissing/m4/strings_h.m4 | 6 + libmissing/m4/sys_ioctl_h.m4 | 11 +- libmissing/m4/sys_select_h.m4 | 13 +- libmissing/m4/sys_socket_h.m4 | 14 +- libmissing/m4/sys_stat_h.m4 | 7 +- libmissing/m4/sys_utsname_h.m4 | 7 +- libmissing/m4/unistd_h.m4 | 21 +- libmissing/m4/warn-on-use.m4 | 45 +++++ libmissing/m4/wchar.m4 | 15 +- libmissing/regcomp.c | 111 ++++++----- libmissing/regex_internal.c | 97 ++++----- libmissing/regex_internal.h | 17 ++ libmissing/regexec.c | 146 +++++++------- libmissing/signal.in.h | 68 +++---- libmissing/stdio.in.h | 374 +++++++++++++++++++---------------- libmissing/stdlib.in.h | 185 +++++++++-------- libmissing/string.in.h | 230 ++++++++++----------- libmissing/strings.in.h | 35 ++-- libmissing/sys_ioctl.in.h | 10 +- libmissing/sys_select.in.h | 10 +- libmissing/sys_socket.in.h | 122 ++++++------ libmissing/sys_stat.in.h | 100 +++++----- libmissing/sys_utsname.in.h | 12 +- libmissing/tests/Makefile.am | 66 +++---- libmissing/tests/fcntl.in.h | 31 +-- libmissing/tests/test-cond.c | 1 + libmissing/tests/test-fseeko.c | 6 +- libmissing/tests/test-gethostname.c | 2 +- libmissing/tests/test-gettimeofday.c | 2 +- libmissing/tests/test-memchr.c | 2 +- libmissing/tests/test-memmem.c | 2 +- libmissing/tests/test-poll.c | 2 +- libmissing/tests/test-sockets.c | 2 +- libmissing/unistd.in.h | 309 +++++++++++++++-------------- libmissing/vasnprintf.h | 15 +- libmissing/wchar.in.h | 92 ++++----- warn-on-use.h | 75 +++++++ 49 files changed, 1393 insertions(+), 1093 deletions(-) commit 889abf08214e13cc37141b6623f3398f88ffdfdc Author: Yoann Vandoorselaere Date: Wed Jan 20 18:11:28 2010 +0100 Fix warning prelude-admin/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 863032806d52c96ad222f6a255387b2046be3d81 Author: Yoann Vandoorselaere Date: Wed Jan 20 17:31:36 2010 +0100 Remove --enable-easy-bindings from DISTCHECK_CONFIGURE_FLAGS This is now enabled by default. Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 171ce0faf72efc2ec156ca51d104aa80c570b51a Author: Yoann Vandoorselaere Date: Wed Jan 20 17:30:24 2010 +0100 Cleanup PKG_CHECK_MODULES Remove not needed PKG_CHECK_EXISTS() call, fixes gnutls-extra header check. configure.in | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 6d43c53505a3071d4b66e4d2a4aa13a56bb80934 Author: Yoann Vandoorselaere Date: Wed Jan 20 15:51:54 2010 +0100 Prevent unsafe modification of Libprelude provided Analyzer object Modifying the idmef_node_t or idmef_address_t object within an idmef_analyzer_t retrieved through prelude_client_get_analyzer() could result in undefined behavior when the analyzer was later accessed through the administrative console. src/include/prelude-option.h | 15 +++-- src/prelude-client.c | 136 ++++++++++++++++++++++++++++++++++++------- src/prelude-option.c | 13 +++++ 3 files changed, 137 insertions(+), 27 deletions(-) commit e5144093e11a987116175a073fb1c44572caeb42 Author: Yoann Vandoorselaere Date: Wed Jan 20 15:40:29 2010 +0100 Default to 2048 bits TLS keys http://www.rsa.com/rsalabs/node.asp?id=2007 tls.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2a5c07f93ca963760b303b383e3adec0304443c9 Author: Yoann Vandoorselaere Date: Wed Jan 20 15:37:43 2010 +0100 Prevent IDMEF copy from failing if a required children is unavailable The previous behavior when copying an IDMEF object was to fail if one of the children to be copied was required but unavailable. Since we don't want to make assumption in the API (the caller could temporarily destroy a required children, to recreate it later), carry on with the copy if one of the required children is not available. src/idmef-tree-wrap.c | 176 ++++++++++++++--------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 8 +- 2 files changed, 115 insertions(+), 69 deletions(-) commit b8187d69561efca533697fd976b5f8597f923c4a Author: Yoann Vandoorselaere Date: Mon Jan 18 17:46:37 2010 +0100 Fixes some warnings uncovered by -Wextra prelude-admin/prelude-admin.c | 27 ++++---- prelude-admin/server.c | 22 ++++--- prelude-admin/tls-register.c | 12 ++-- src/common.c | 4 +- src/config-engine.c | 27 ++++---- src/idmef-additional-data.c | 4 +- src/idmef-class.c | 6 +- src/idmef-criterion-value.c | 7 ++- src/idmef-message-helpers.c | 1 + src/idmef-path.c | 18 +++--- src/idmef-tree-wrap.c | 80 ++++++++++++------------ src/idmef-value-type.c | 10 ++- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 7 ++- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 +- src/include/idmef-path.h | 4 +- src/include/idmef-tree-data.h | 50 +++++++-------- src/libprelude-error/strerror.c | 2 +- src/libprelude-error/strsource.c | 2 +- src/prelude-connection.c | 24 ++++--- src/prelude-failover.c | 10 +-- src/prelude-io.c | 7 ++- src/prelude-log.c | 8 +-- src/prelude-option-wide.c | 2 +- src/prelude-string.c | 2 +- src/prelude.c | 12 +++- 25 files changed, 190 insertions(+), 162 deletions(-) commit 0226b50f6ea31f8b81144d4c792d944d51ba5ccc Author: Yoann Vandoorselaere Date: Mon Jan 18 19:19:57 2010 +0100 Whitespace police src/prelude-hash.c | 154 ++++++++++++++++++++++++++--------------------------- 1 file changed, 77 insertions(+), 77 deletions(-) commit 31c57aa4b5bdb9e57392f37d39b0330c854cab0f Author: Yoann Vandoorselaere Date: Sun Jan 17 01:58:45 2010 +0100 EasyBindings are now enabled by default configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5c0053dd8ac606040e10a9a489e0d36e3ea52e44 Author: Yoann Vandoorselaere Date: Wed Jan 13 17:37:51 2010 +0100 Improve retrieval of list of IDMEF object When retrieving a list of IDMEF object, return a Python list containing one IDMEFValue for each object. This behavior is more consistant than retrieving a single IDMEFValue carrying the whole list, and might permit the user to play with the object directly if we extand the API in the future. Compatibility with the old implementation for setting whole list is achived by converting back the list of IDMEFValue to an IDMEFValue of the list type on Set(). bindings/c++/idmef-path.cxx | 11 +++++++++++ bindings/c++/idmef-value.cxx | 13 +++++++++++++ bindings/c++/idmef.cxx | 6 ++++++ bindings/c++/include/idmef-path.hxx | 1 + bindings/c++/include/idmef-value.hxx | 1 + bindings/c++/include/idmef.hxx | 1 + bindings/libpreludecpp.i | 24 ++---------------------- 7 files changed, 35 insertions(+), 22 deletions(-) commit afdcdd91567e15dadacea31e5f6f35d2d6549ace Author: Yoann Vandoorselaere Date: Tue Jan 12 09:15:23 2010 +0100 Fix argv memory leak on bindings initialization bindings/perl/libpreludecpp-perl.i | 2 ++ bindings/python/libpreludecpp-python.i | 2 ++ bindings/ruby/libpreludecpp-ruby.i | 2 ++ 3 files changed, 6 insertions(+) commit 0b18f29122de8795f1b1a2d826e6c4738220da9c Author: Yoann Vandoorselaere Date: Tue Jan 12 09:13:54 2010 +0100 Move libpreludecpp-perl.i to perl subdirectory bindings/Makefile.am | 4 +- bindings/libpreludecpp-perl.i | 192 ------------------------------------- bindings/libpreludecpp.i | 2 +- bindings/perl/libpreludecpp-perl.i | 192 +++++++++++++++++++++++++++++++++++++ 4 files changed, 195 insertions(+), 195 deletions(-) commit 49fa1982d8c79e520ce63ab774c05d86672be52a Author: Yoann Vandoorselaere Date: Tue Jan 12 05:44:30 2010 +0100 Oops: fix invalid prelude_return_val_if_fail() usage I wasn't on drug yesterday, I swear ;). Fix 8af3e5fd98cd2b92146b1f433344d44e8ce9372e regression. src/idmef-path.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 8af3e5fd98cd2b92146b1f433344d44e8ce9372e Author: Yoann Vandoorselaere Date: Mon Jan 11 17:00:26 2010 +0100 Flexelint warnings fixes Thanks Steve Grubb for reporting these! prelude-admin/prelude-admin.c: fix possible leak on getpass() error. src/idmef-data.c: fix potential invalid read if sizeof(char) > 1. src/idmef-path.c: idmef_path_set_index() would accept an off by one depth. src/prelude-connection.c: fix invalid pointer dereference in case malloc fail and we are using UNIX socket. prelude-admin/prelude-admin.c | 5 ++++- src/idmef-data.c | 6 +++--- src/idmef-path.c | 11 ++++------- src/prelude-connection.c | 6 ++++-- 4 files changed, 15 insertions(+), 13 deletions(-) commit 59fa51c48f539a856b760d93a67f042cddc78e4b Author: Yoann Vandoorselaere Date: Mon Jan 11 13:07:53 2010 +0100 Update GnuLib code (fixes stat module inclusion) libmissing/stat.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) commit f4315ae81a779f222b916924cafc4acf43d6e141 Author: Yoann Vandoorselaere Date: Mon Jan 11 12:54:55 2010 +0100 Update GnuLib code (fixes stat module inclusion) libmissing/Makefile.am | 9 ++++ libmissing/ftw.c | 1 + libmissing/m4/gnulib-comp.m4 | 6 +-- libmissing/tests/Makefile.am | 9 ---- libmissing/tests/stat.c | 104 ------------------------------------------- 5 files changed, 13 insertions(+), 116 deletions(-) commit 91f57a99833310a1f543af0dc385bd32c1c7bdbb Author: Yoann Vandoorselaere Date: Mon Jan 11 12:23:35 2010 +0100 Update NEWS, bump version number INSTALL | 97 +++++++++++++++++++++++++++++++++++++++++++++++++----------- NEWS | 25 +++++++++++++++- configure.in | 6 ++-- 3 files changed, 107 insertions(+), 21 deletions(-) commit 221687634bfc646d7e2bbd1083d7cdc8e4113a46 Author: Yoann Vandoorselaere Date: Tue Dec 1 14:09:44 2009 +0100 Update GnuLib code arg-nonnull.h | 26 + config.rpath | 2 +- libmissing/Makefile.am | 545 ++- libmissing/accept.c | 2 +- libmissing/alignof.h | 2 +- libmissing/alloca.c | 154 +- libmissing/alloca.in.h | 4 +- libmissing/arpa_inet.in.h | 19 +- libmissing/asnprintf.c | 2 +- libmissing/bind.c | 2 +- libmissing/btowc.c | 4 +- libmissing/c-ctype.c | 2 +- libmissing/c-ctype.h | 2 +- libmissing/close-hook.c | 4 +- libmissing/close-hook.h | 2 +- libmissing/close.c | 4 +- libmissing/config.charset | 1116 ++--- libmissing/connect.c | 6 +- libmissing/doc/relocatable.texi | 2 +- libmissing/dup2.c | 91 +- libmissing/errno.in.h | 2 +- libmissing/fclose.c | 2 +- libmissing/float+.h | 2 +- libmissing/float.in.h | 2 +- libmissing/fopen.c | 60 +- libmissing/fseeko.c | 55 +- libmissing/gai_strerror.c | 3 +- libmissing/getaddrinfo.c | 171 +- libmissing/getdelim.c | 82 +- libmissing/gethostname.c | 105 + libmissing/getline.c | 2 +- libmissing/getpagesize.c | 39 - libmissing/getpass.c | 47 +- libmissing/getpass.h | 2 +- libmissing/getsockname.c | 2 +- libmissing/gettext.h | 31 +- libmissing/gettimeofday.c | 5 +- libmissing/glthread/cond.c | 302 +- libmissing/glthread/cond.h | 2 +- libmissing/glthread/lock.c | 436 +- libmissing/glthread/lock.h | 2 +- libmissing/glthread/thread.c | 34 +- libmissing/glthread/thread.h | 2 +- libmissing/glthread/threadlib.c | 20 +- libmissing/glthread/tls.c | 2 +- libmissing/glthread/tls.h | 2 +- libmissing/inet_ntop.c | 92 +- libmissing/inet_pton.c | 166 +- libmissing/intprops.h | 50 +- libmissing/ioctl.c | 2 +- libmissing/langinfo.in.h | 162 + libmissing/listen.c | 2 +- libmissing/localcharset.c | 482 +- libmissing/localcharset.h | 2 +- libmissing/lseek.c | 2 +- libmissing/m4/00gnulib.m4 | 2 +- libmissing/m4/alloca.m4 | 3 +- libmissing/m4/arpa_inet_h.m4 | 13 +- libmissing/m4/btowc.m4 | 9 +- libmissing/m4/close.m4 | 11 +- libmissing/m4/codeset.m4 | 2 +- libmissing/m4/cond.m4 | 2 +- libmissing/m4/dos.m4 | 71 + libmissing/m4/dup2.m4 | 47 +- libmissing/m4/errno_h.m4 | 2 +- libmissing/m4/extensions.m4 | 22 +- libmissing/m4/fclose.m4 | 8 +- libmissing/m4/fcntl-o.m4 | 81 + libmissing/m4/fcntl_h.m4 | 35 + libmissing/m4/float_h.m4 | 2 +- libmissing/m4/fopen.m4 | 2 +- libmissing/m4/fseeko.m4 | 17 +- libmissing/m4/getaddrinfo.m4 | 25 +- libmissing/m4/getdelim.m4 | 2 +- libmissing/m4/gethostname.m4 | 101 + libmissing/m4/getline.m4 | 19 +- libmissing/m4/getpagesize.m4 | 3 +- libmissing/m4/getpass.m4 | 3 +- libmissing/m4/gettimeofday.m4 | 52 +- libmissing/m4/glibc21.m4 | 10 +- libmissing/m4/gnulib-cache.m4 | 2 +- libmissing/m4/gnulib-common.m4 | 25 +- libmissing/m4/gnulib-comp.m4 | 121 +- libmissing/m4/gnulib-tool.m4 | 2 +- libmissing/m4/hostent.m4 | 2 +- libmissing/m4/include_next.m4 | 80 +- libmissing/m4/inet_ntop.m4 | 19 +- libmissing/m4/inet_pton.m4 | 18 +- libmissing/m4/intmax_t.m4 | 3 +- libmissing/m4/inttypes_h.m4 | 2 +- libmissing/m4/langinfo_h.m4 | 69 + libmissing/m4/lib-ld.m4 | 8 +- libmissing/m4/lib-link.m4 | 2 +- libmissing/m4/lib-prefix.m4 | 2 +- libmissing/m4/localcharset.m4 | 5 +- libmissing/m4/locale-fr.m4 | 2 +- libmissing/m4/locale-ja.m4 | 2 +- libmissing/m4/locale-tr.m4 | 97 + libmissing/m4/locale-zh.m4 | 2 +- libmissing/m4/lock.m4 | 2 +- libmissing/m4/longlong.m4 | 66 +- libmissing/m4/lseek.m4 | 22 +- libmissing/m4/lstat.m4 | 28 + libmissing/m4/malloc.m4 | 2 +- libmissing/m4/mbrtowc.m4 | 3 +- libmissing/m4/mbsinit.m4 | 2 +- libmissing/m4/mbstate_t.m4 | 18 +- libmissing/m4/memchr.m4 | 10 +- libmissing/m4/memmem.m4 | 31 +- libmissing/m4/minmax.m4 | 2 +- libmissing/m4/mktime.m4 | 67 +- libmissing/m4/mmap-anon.m4 | 2 +- libmissing/m4/mode_t.m4 | 26 + libmissing/m4/multiarch.m4 | 2 +- libmissing/m4/netdb_h.m4 | 5 +- libmissing/m4/netinet_in_h.m4 | 2 +- libmissing/m4/nl_langinfo.m4 | 25 + libmissing/m4/onceonly.m4 | 3 +- libmissing/m4/open.m4 | 74 + libmissing/m4/pathmax.m4 | 3 +- libmissing/m4/perror.m4 | 2 +- libmissing/m4/poll.m4 | 9 +- libmissing/m4/printf.m4 | 2 +- libmissing/m4/realloc.m4 | 2 +- libmissing/m4/regex.m4 | 267 +- libmissing/m4/relocatable-lib.m4 | 10 +- libmissing/m4/select.m4 | 9 +- libmissing/m4/servent.m4 | 2 +- libmissing/m4/signal_h.m4 | 5 +- libmissing/m4/signalblocking.m4 | 2 +- libmissing/m4/size_max.m4 | 2 +- libmissing/m4/sleep.m4 | 37 +- libmissing/m4/snprintf.m4 | 2 +- libmissing/m4/sockets.m4 | 32 +- libmissing/m4/socklen.m4 | 40 +- libmissing/m4/sockpfaf.m4 | 20 +- libmissing/m4/ssize_t.m4 | 2 +- libmissing/m4/stat.m4 | 63 + libmissing/m4/stdbool.m4 | 140 +- libmissing/m4/stddef_h.m4 | 45 + libmissing/m4/stdint.m4 | 14 +- libmissing/m4/stdint_h.m4 | 2 +- libmissing/m4/stdio_h.m4 | 113 +- libmissing/m4/stdlib_h.m4 | 29 +- libmissing/m4/strcase.m4 | 2 +- libmissing/m4/strcasestr.m4 | 30 +- libmissing/m4/strdup.m4 | 2 +- libmissing/m4/strerror.m4 | 2 +- libmissing/m4/string_h.m4 | 59 +- libmissing/m4/strings_h.m4 | 2 +- libmissing/m4/strndup.m4 | 48 +- libmissing/m4/strnlen.m4 | 3 +- libmissing/m4/strptime.m4 | 2 +- libmissing/m4/strsep.m4 | 3 +- libmissing/m4/symlink.m4 | 38 + libmissing/m4/sys_ioctl_h.m4 | 18 +- libmissing/m4/sys_select_h.m4 | 54 +- libmissing/m4/sys_socket_h.m4 | 8 +- libmissing/m4/sys_stat_h.m4 | 56 +- libmissing/m4/sys_time_h.m4 | 16 +- libmissing/m4/sys_utsname_h.m4 | 42 + libmissing/m4/thread.m4 | 2 +- libmissing/m4/threadlib.m4 | 15 +- libmissing/m4/time_h.m4 | 22 +- libmissing/m4/time_r.m4 | 21 +- libmissing/m4/timegm.m4 | 4 +- libmissing/m4/tls.m4 | 2 +- libmissing/m4/tm_gmtoff.m4 | 2 +- libmissing/m4/uname.m4 | 12 +- libmissing/m4/ungetc.m4 | 36 +- libmissing/m4/unistd_h.m4 | 51 +- libmissing/m4/vasnprintf.m4 | 2 +- libmissing/m4/vsnprintf.m4 | 2 +- libmissing/m4/wchar.m4 | 89 +- libmissing/m4/wchar_t.m4 | 2 +- libmissing/m4/wcrtomb.m4 | 2 +- libmissing/m4/wctob.m4 | 2 +- libmissing/m4/wctype.m4 | 32 +- libmissing/m4/wint_t.m4 | 2 +- libmissing/m4/write.m4 | 2 +- libmissing/m4/xsize.m4 | 2 +- libmissing/m4/yield.m4 | 2 +- libmissing/malloc.c | 2 +- libmissing/mbrtowc.c | 474 +- libmissing/mbsinit.c | 2 +- libmissing/memchr.c | 26 +- libmissing/memmem.c | 10 +- libmissing/minmax.h | 3 +- libmissing/mktime-internal.h | 4 + libmissing/mktime.c | 378 +- libmissing/netdb.in.h | 88 +- libmissing/netinet_in.in.h | 2 +- libmissing/nl_langinfo.c | 260 ++ libmissing/pathmax.h | 5 +- libmissing/perror.c | 2 +- libmissing/poll.c | 275 +- libmissing/poll.in.h | 20 +- libmissing/printf-args.c | 211 +- libmissing/printf-args.h | 55 +- libmissing/printf-parse.c | 940 ++-- libmissing/printf-parse.h | 21 +- libmissing/realloc.c | 5 +- libmissing/ref-add.sin | 2 +- libmissing/ref-del.sin | 2 +- libmissing/regcomp.c | 34 +- libmissing/regex.c | 3 +- libmissing/regex.h | 5 +- libmissing/regex_internal.c | 4 +- libmissing/regex_internal.h | 9 +- libmissing/regexec.c | 15 +- libmissing/relocatable.c | 276 +- libmissing/relocatable.h | 8 +- libmissing/select.c | 231 +- libmissing/setsockopt.c | 5 +- libmissing/signal.in.h | 129 +- libmissing/sigprocmask.c | 158 +- libmissing/size_max.h | 2 +- libmissing/sleep.c | 33 +- libmissing/snprintf.c | 12 +- libmissing/socket.c | 10 +- libmissing/sockets.c | 118 + libmissing/sockets.h | 51 + libmissing/stdbool.in.h | 2 +- libmissing/stddef.in.h | 86 + libmissing/stdint.in.h | 10 +- libmissing/stdio-impl.h | 44 +- libmissing/stdio-write.c | 48 +- libmissing/stdio.in.h | 735 +-- libmissing/stdlib.in.h | 299 +- libmissing/str-two-way.h | 362 +- libmissing/strcasecmp.c | 4 +- libmissing/strcasestr.c | 20 +- libmissing/strdup.c | 4 +- libmissing/streq.h | 2 +- libmissing/strerror.c | 10 +- libmissing/string.in.h | 134 +- libmissing/strings.in.h | 10 +- libmissing/strncasecmp.c | 4 +- libmissing/strndup.c | 4 +- libmissing/strnlen.c | 2 +- libmissing/strptime.c | 1617 +++---- libmissing/strsep.c | 2 +- libmissing/sys_ioctl.in.h | 15 +- libmissing/sys_select.in.h | 16 +- libmissing/sys_socket.in.h | 95 +- libmissing/sys_stat.in.h | 239 +- libmissing/sys_time.in.h | 7 +- libmissing/sys_utsname.in.h | 96 + libmissing/tests/Makefile.am | 369 +- libmissing/tests/binary-io.h | 66 + libmissing/tests/c-strcase.h | 56 + libmissing/tests/c-strcasecmp.c | 57 + libmissing/tests/c-strncasecmp.c | 57 + libmissing/tests/fcntl.in.h | 257 ++ libmissing/tests/getpagesize.c | 39 + libmissing/tests/glthread/yield.h | 2 +- libmissing/tests/lstat.c | 91 + libmissing/tests/macros.h | 64 + libmissing/tests/open.c | 166 + libmissing/tests/same-inode.h | 25 + libmissing/tests/signature.h | 48 + libmissing/tests/sockets.c | 108 - libmissing/tests/sockets.h | 51 - libmissing/tests/stat.c | 104 + libmissing/tests/symlink.c | 57 + libmissing/tests/test-alignof.c | 2 +- libmissing/tests/test-alloca-opt.c | 2 +- libmissing/tests/test-arpa_inet.c | 4 +- libmissing/tests/test-binary-io.c | 64 + libmissing/tests/test-binary-io.sh | 11 + libmissing/tests/test-btowc.c | 42 +- libmissing/tests/test-c-ctype.c | 636 ++- libmissing/tests/test-c-strcase.sh | 21 + libmissing/tests/test-c-strcasecmp.c | 65 + libmissing/tests/test-c-strncasecmp.c | 79 + libmissing/tests/test-cond.c | 2 +- libmissing/tests/test-dup2.c | 193 + libmissing/tests/test-errno.c | 2 +- libmissing/tests/test-fcntl-h.c | 38 + libmissing/tests/test-fopen.c | 31 +- libmissing/tests/test-fopen.h | 73 + libmissing/tests/test-fseeko.c | 28 +- libmissing/tests/test-getaddrinfo.c | 83 +- libmissing/tests/test-getdelim.c | 20 +- libmissing/tests/test-gethostname.c | 67 + libmissing/tests/test-getline.c | 20 +- libmissing/tests/test-gettimeofday.c | 8 +- libmissing/tests/test-inet_ntop.c | 56 + libmissing/tests/test-inet_pton.c | 58 + libmissing/tests/test-langinfo.c | 92 + libmissing/tests/test-lock.c | 58 +- libmissing/tests/test-lseek.c | 25 +- libmissing/tests/test-lstat.c | 59 + libmissing/tests/test-lstat.h | 116 + libmissing/tests/test-mbrtowc.c | 461 +- libmissing/tests/test-mbsinit.c | 23 +- libmissing/tests/test-memchr.c | 69 +- libmissing/tests/test-memmem.c | 79 +- libmissing/tests/test-netdb.c | 2 +- libmissing/tests/test-netinet_in.c | 4 +- libmissing/tests/test-nl_langinfo.c | 115 + libmissing/tests/test-nl_langinfo.sh | 17 + libmissing/tests/test-open.c | 41 + libmissing/tests/test-open.h | 87 + libmissing/tests/test-perror.c | 5 +- libmissing/tests/test-poll.c | 15 +- libmissing/tests/test-select-fd.c | 68 +- libmissing/tests/test-select-stdin.c | 50 +- libmissing/tests/test-select.c | 29 +- libmissing/tests/test-signal.c | 105 +- libmissing/tests/test-sleep.c | 45 +- libmissing/tests/test-snprintf.c | 46 +- libmissing/tests/test-sockets.c | 2 +- libmissing/tests/test-stat.c | 56 + libmissing/tests/test-stat.h | 100 + libmissing/tests/test-stdbool.c | 2 +- libmissing/tests/test-stddef.c | 38 + libmissing/tests/test-stdint.c | 4 +- libmissing/tests/test-stdio.c | 11 +- libmissing/tests/test-stdlib.c | 4 +- libmissing/tests/test-strcasestr.c | 66 +- libmissing/tests/test-strerror.c | 24 +- libmissing/tests/test-string.c | 4 +- libmissing/tests/test-strings.c | 2 +- libmissing/tests/test-symlink.c | 46 + libmissing/tests/test-symlink.h | 95 + libmissing/tests/test-sys_ioctl.c | 27 + libmissing/tests/test-sys_select.c | 9 +- libmissing/tests/test-sys_socket.c | 6 +- libmissing/tests/test-sys_stat.c | 29 +- libmissing/tests/test-sys_time.c | 4 +- libmissing/tests/test-sys_utsname.c | 37 + libmissing/tests/test-time.c | 10 +- libmissing/tests/test-tls.c | 30 +- libmissing/tests/test-uname.c | 64 + libmissing/tests/test-unistd.c | 4 +- libmissing/tests/test-vasnprintf.c | 23 +- libmissing/tests/test-vsnprintf.c | 46 +- libmissing/tests/test-wchar.c | 10 +- libmissing/tests/test-wcrtomb.c | 134 +- libmissing/tests/test-wctype.c | 32 +- libmissing/tests/w32sock.h | 62 - libmissing/tests/wctob.c | 2 +- libmissing/tests/zerosize-ptr.h | 10 +- libmissing/time.in.h | 34 +- libmissing/time_r.c | 2 +- libmissing/timegm.c | 6 +- libmissing/uname.c | 349 +- libmissing/uname.h | 51 - libmissing/unistd.in.h | 456 +- libmissing/vasnprintf.c | 8063 +++++++++++++++++---------------- libmissing/vasnprintf.h | 2 +- libmissing/verify.h | 6 +- libmissing/vsnprintf.c | 12 +- libmissing/w32sock.h | 3 +- libmissing/wchar.in.h | 31 +- libmissing/wcrtomb.c | 12 +- libmissing/wctype.in.h | 121 +- libmissing/write.c | 18 +- libmissing/xsize.h | 2 +- libprelude-config.in | 2 +- link-warning.h | 29 +- src/Makefile.am | 2 +- src/prelude-client.c | 2 +- 364 files changed, 18330 insertions(+), 11765 deletions(-) commit e79c7e6e16d8e17e7e947b738c042842316634a3 Author: Yoann Vandoorselaere Date: Mon Jan 11 10:57:02 2010 +0100 Increase maximum message size The old message size (1mb) could be a problem for systems sending very large alerts (example: CorrelationAlert with a lot of sources and target). This increase the maximum message size to 100mb. src/prelude-msg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1c88fd5c9dc34256d0d11c9fb262195b77c03603 Author: Yoann Vandoorselaere Date: Wed Jan 6 09:13:23 2010 +0100 Increase reference count when using IDMEFTime from within an IDMEFValue Referencing the idmef_time_t object is necessary to prevent a double free when the object are destroyed. bindings/c++/idmef-value.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 76f52dce9f11a7658f7f96945d006693e63962c2 Author: Yoann Vandoorselaere Date: Thu Dec 10 13:34:14 2009 +0100 Fix idmef_data_t (type CHAR_STRING) mapping to high level language string We used to enclose the terminating \0 when mapping an idmef_data_t of type IDMEF_DATA_TYPE_CHAR_STRING to an high level language string. bindings/libpreludecpp.i | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 93b78633b9aa94bd5dd5bfe43bb6a40ac5c392bd Author: Yoann Vandoorselaere Date: Mon Dec 7 09:51:59 2009 +0100 Fix typo src/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 041082281eb7a17e2d2c319b02ef1154595b7e8c Author: Yoann Vandoorselaere Date: Tue Dec 1 14:22:34 2009 +0100 Fix Ruby include path detection on certain systems Thanks to Dominik Elsbroek for reporting the issue, as well as the proper fix. Close #366. m4/am_path_ruby.m4 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit a626cbec816ddb6bab001aa650d8dae0d3aed6eb Author: Yoann Vandoorselaere Date: Fri Dec 4 10:21:45 2009 +0100 Fix critical warnings on destroy when assigning NULL value to IDMEF union When setting an IDMEF union member to NULL, make sure we reset the variable holding the object type to zero, so that we do not get a critical warning when the parent object is destroyed. src/idmef-tree-wrap.c | 14 +++++++------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) commit be3b52247cb0cf91a16b2e2f14e5a6f1c8853245 Author: Yoann Vandoorselaere Date: Fri Dec 4 10:17:44 2009 +0100 Whitespace police src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 3db6454e524636fc7f90b24bc54059caf9eb02a1 Author: Yoann Vandoorselaere Date: Thu Dec 3 12:39:28 2009 +0100 Fix IDMEF severity to message priority mapping Fix regression introduced in commit 8cbf9e7b, due to informational severity remapping. Message priority will now be correctly assigned depending on the source IDMEF message. src/common.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit abf647815028603cfd8889275715ef02dd8a4652 Author: Yoann Vandoorselaere Date: Tue Aug 11 17:26:28 2009 +0200 Update NEWS, bump version NEWS | 8 ++++++++ configure.in | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) commit 979d9c750075f820b250e9b54a6354b09384f44f Author: Yoann Vandoorselaere Date: Wed Jul 8 16:45:57 2009 +0200 Update NEWS, bump version NEWS | 23 +++++++++++++++++++++++ configure.in | 12 ++++++------ docs/api/libprelude-decl.txt | 2 +- 3 files changed, 30 insertions(+), 7 deletions(-) commit 6a1064b9dc3446b0b7bfead9881e8c2e49a76764 Author: Yoann Vandoorselaere Date: Wed Jul 8 15:53:17 2009 +0200 Fixes idmef_time_set_from_string() implementation The previous version would often yield in incorrect GMT offset / time calculation. Fix the documentation, since this function was always meant to assume localtime as input. Verbose error reporting. src/idmef-time.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) commit faf9667a6e449e7d876ea1bf37b3e62e171e69bf Author: Yoann Vandoorselaere Date: Wed Jul 8 15:52:50 2009 +0200 Update GnuLib code libmissing/Makefile.am | 23 ++++++ libmissing/errno.in.h | 7 +- libmissing/getpagesize.c | 39 ++++++++++ libmissing/m4/errno_h.m4 | 5 +- libmissing/m4/gnulib-comp.m4 | 12 ++- libmissing/m4/lib-link.m4 | 7 +- libmissing/m4/mbrtowc.m4 | 3 +- libmissing/m4/memchr.m4 | 86 +++++++++++++++++++++ libmissing/m4/stdio_h.m4 | 5 +- libmissing/m4/strcasestr.m4 | 22 ++++-- libmissing/m4/string_h.m4 | 6 +- libmissing/memchr.c | 172 +++++++++++++++++++++++++++++++++++++++++ libmissing/memchr.valgrind | 14 ++++ libmissing/stdio.in.h | 20 ++++- libmissing/strerror.c | 8 +- libmissing/string.in.h | 17 +++- libmissing/tests/Makefile.am | 17 ++-- libmissing/tests/getpagesize.c | 39 ---------- libmissing/tests/test-memchr.c | 130 +++++++++++++++++++++++++++++++ libmissing/tests/test-stdio.c | 8 +- libmissing/tests/test-stdlib.c | 8 +- libmissing/tests/test-string.c | 8 +- libmissing/tests/test-unistd.c | 6 ++ 23 files changed, 591 insertions(+), 71 deletions(-) commit eb3e7df1826ffb5d6b4b5ddc693a2cb5db5a13ca Author: Yoann Vandoorselaere Date: Wed Jul 1 16:43:27 2009 +0200 Update autoconf generated file INSTALL | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 86 insertions(+), 21 deletions(-) commit fc379897a6e0ed2f424b0f1c1322de6069f53109 Author: Yoann Vandoorselaere Date: Thu Jun 25 10:36:14 2009 +0200 Fix Lua module crash. Do not attempt to walk through the Lua argument table if it is not a table. bindings/lua/libpreludecpp-lua.i | 3 +++ 1 file changed, 3 insertions(+) commit e824ff3d94472fed6bb5d9c8562f2f14e4405ce3 Author: Yoann Vandoorselaere Date: Thu Jun 25 09:39:19 2009 +0200 Fix prelude-client initialization problem with empty argv[0] prelude_client_init() could return an error if argc was 1 but argv[0] was empty. Make sure to not call _prelude_get_file_name_and_path() in this specific case. src/prelude-client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dc525fd6e6e22f52a785fb6c69c5cec6e8cb42d4 Author: Yoann Vandoorselaere Date: Wed Jun 24 17:35:34 2009 +0200 Fix error in case of multiple initialization. Avoid running the initialization code twice since it would result in a fill_client_infos() error (due to idmef_analyzer_t object reuse, and string concatenation). src/prelude-client.c | 7 +++++++ 1 file changed, 7 insertions(+) commit dfed1bc7fb7dbb3eaeac20b36f7738ea582378d2 Author: Yoann Vandoorselaere Date: Fri Jun 19 00:33:19 2009 +0200 Initial prelude-log C++/Python/Ruby/Perl/Lua bindings support. This implement language bindings for the PreludeLog interface. High level language use a specific check so that the log callback is not called from a different thread than the initialisation thread, since we cannot efficiently protect SWIG generated object. bindings/c++/Makefile.am | 3 +- bindings/c++/include/Makefile.am | 3 +- bindings/c++/include/prelude-log.hxx | 56 ++++++++++++++++++++++++++++++++++ bindings/c++/prelude-log.cxx | 42 +++++++++++++++++++++++++ bindings/libpreludecpp-perl.i | 41 +++++++++++++++++++++++-- bindings/libpreludecpp.i | 5 +++ bindings/lua/Makefile.am | 2 +- bindings/lua/libpreludecpp-lua.i | 35 +++++++++++++++++++-- bindings/perl/Makefile.PL.in | 2 +- bindings/python/libpreludecpp-python.i | 34 +++++++++++++++++++++ bindings/python/setup.py.in | 2 +- bindings/ruby/Makefile.am | 2 +- bindings/ruby/libpreludecpp-ruby.i | 31 ++++++++++++++++++- bindings/tests/test.lua | 5 +++ bindings/tests/test.pl | 9 ++++++ bindings/tests/test.py | 6 ++++ bindings/tests/test.rb | 1 + 17 files changed, 268 insertions(+), 11 deletions(-) commit 80b869e15f0e53224922be8eff302a700639c019 Author: Yoann Vandoorselaere Date: Thu Jun 18 09:28:01 2009 +0200 Documentation update and fixes. Update gtk-doc.make to a newer version. Use PRELUDE_DISABLED_DEPRECATED to properly mark function as deprecated (avoid a gtk-doc warning). Various gtk-doc warnings fixes. Document prelude_async_flags_t directly within the header file. docs/api/Makefile.am | 2 +- docs/api/libprelude-decl.txt | 5196 +++++++++++++++++++------------------- docs/api/tmpl/prelude-async.sgml | 3 +- gtk-doc.make | 47 +- src/idmef-path.c | 8 +- src/include/prelude-async.h | 11 + src/include/prelude-client.h | 9 +- src/prelude-client.c | 3 +- src/prelude-option.c | 2 +- 9 files changed, 2658 insertions(+), 2623 deletions(-) commit 40c09ef78f4f27c4d86944cac30441e7da405f44 Author: Yoann Vandoorselaere Date: Thu Jun 18 08:58:39 2009 +0200 Whitespace police src/prelude-option.c | 536 +++++++++++++++++++++++++-------------------------- 1 file changed, 268 insertions(+), 268 deletions(-) commit fc16f0a86a4655e8835d47699d40244a6b635233 Author: Yoann Vandoorselaere Date: Wed Jun 17 15:41:38 2009 +0200 Make the profile permission respect required ownership. The analyzerid file within the prelude-admin created profile would be created with default ownership, without following --uid / --gid option requirement. Thanks to Pierre Chifflier for pointing this out. prelude-admin/prelude-admin.c | 4 ++++ 1 file changed, 4 insertions(+) commit dcf5f25fc100e9831b959f2af47fd7a7a974166b Author: Yoann Vandoorselaere Date: Tue Jun 16 13:24:19 2009 +0200 Proper argument checking on Python and Ruby left/right IDMEF shift. Ruby and Python bindings were not properly checking whether the argument was a file descriptor in case the left/right shift IDMEF operator were used. bindings/python/libpreludecpp-python.i | 8 ++++---- bindings/ruby/libpreludecpp-ruby.i | 9 ++++----- 2 files changed, 8 insertions(+), 9 deletions(-) commit 49f5c052d772f3e3c7e57ac0e4563800d4bd9951 Author: Yoann Vandoorselaere Date: Mon Jun 8 14:26:12 2009 +0200 Update NEWS, documentation, bump version number. NEWS | 16 ++++++++++++++++ configure.in | 8 ++++---- docs/api/libprelude-decl.txt | 17 ++++++++++++++++- docs/api/libprelude-sections.txt | 3 +++ docs/api/tmpl/idmef-path.sgml | 20 ++++++++++++++++++++ docs/api/tmpl/idmef-value.sgml | 10 ++++++++++ 6 files changed, 69 insertions(+), 5 deletions(-) commit 562e8a51177875b5990eb6244fcb4a7b622c73bc Author: Yoann Vandoorselaere Date: Mon Jun 8 13:19:36 2009 +0200 Update GnuLib code. libmissing/alignof.h | 32 ++++++++++++++++++++++++++------ libmissing/tests/test-alignof.c | 10 +++++++++- libmissing/tests/zerosize-ptr.h | 4 +++- 3 files changed, 38 insertions(+), 8 deletions(-) commit f103c651c1520c97257388521248cea1c1cf0acb Author: Yoann Vandoorselaere Date: Mon Jun 8 12:58:39 2009 +0200 Fix potential problem with recent libtool version. configure.in | 2 ++ 1 file changed, 2 insertions(+) commit e09481fc975151a096b249cf40188105d2b30156 Author: Yoann Vandoorselaere Date: Mon Jun 8 12:57:10 2009 +0200 Workaround distcheck problem. bindings/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit ffb878593face4f782147a44e46724d8a3f757b3 Author: Yoann Vandoorselaere Date: Fri Jun 5 17:34:57 2009 +0200 Add C++ bindings for prelude_check_version(). bindings/c++/Makefile.am | 1 + bindings/c++/include/prelude.hxx | 4 ++++ bindings/c++/prelude.cxx | 31 +++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+) commit 711ede8041785d7efa918885ee17ade79c5ed77c Author: Yoann Vandoorselaere Date: Fri Jun 5 17:33:40 2009 +0200 Use std::vector in place of std::list for improved SWIG portability. bindings/c++/idmef-value.cxx | 6 +++--- bindings/c++/include/idmef-value.hxx | 4 ++-- bindings/c++/include/prelude-connection-pool.hxx | 2 +- bindings/c++/prelude-connection-pool.cxx | 6 +++--- bindings/libpreludecpp-perl.i | 9 ++------- bindings/libpreludecpp.i | 9 ++++++++- bindings/lua/libpreludecpp-lua.i | 5 ++--- bindings/python/libpreludecpp-python.i | 6 ++---- bindings/ruby/libpreludecpp-ruby.i | 8 ++------ 9 files changed, 25 insertions(+), 30 deletions(-) commit c46c54eb5ca49b9970d5c32b6eb915d9ce3c4366 Author: Yoann Vandoorselaere Date: Fri Jun 5 17:29:33 2009 +0200 Modify prelude_check_version() so that it verify the patch level. src/prelude.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 57cae28ffef8532a7b615ea135a61a0a28bacea6 Author: Yoann Vandoorselaere Date: Fri Jun 5 09:50:46 2009 +0200 Whitespace police. m4/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e79e55a1c4c749885ae77d303abb328de9299050 Author: Yoann Vandoorselaere Date: Thu Jun 4 15:48:59 2009 +0200 Set analyzer before sending IDMEF messages. Prior to this change, it was the responsability of the user to set the IDMEFAnalyzer object in an IDMEF message to be sent. In order to make it easier to write sensors, this is now automated as part of the sending process. src/common.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 7d53cc678e04594cf4d1809e86c29c7fb6189a49 Author: Yoann Vandoorselaere Date: Thu Jun 4 15:38:09 2009 +0200 Fix NULL pointer dereference with empty value. Previously config-engine would not handle setting configuration key to empty value. Thanks Jérôme Soyer for pointing out this. src/config-engine.c | 6 +++++- src/variable.c | 21 ++++++++++++++------- 2 files changed, 19 insertions(+), 8 deletions(-) commit 1790a0a63829f17431362fad8d081ee4bfd9e3a9 Author: Yoann Vandoorselaere Date: Tue Jun 2 13:28:04 2009 +0200 GnuLib code update. libmissing/Makefile.am | 1 + libmissing/alignof.h | 8 ----- libmissing/getdelim.c | 8 ++--- libmissing/m4/getpagesize.m4 | 29 +++++++++++++++++ libmissing/m4/gnulib-comp.m4 | 10 ++++++ libmissing/m4/include_next.m4 | 32 +++++++++++++----- libmissing/m4/mmap-anon.m4 | 59 ++++++++++++++++++++++++++++++++++ libmissing/m4/size_max.m4 | 17 +++++++--- libmissing/m4/sys_socket_h.m4 | 7 +++- libmissing/sys_socket.in.h | 4 +++ libmissing/tests/Makefile.am | 20 +++++++++++- libmissing/tests/getpagesize.c | 39 ++++++++++++++++++++++ libmissing/tests/test-alignof.c | 51 +++++++++++++++++++++++++++++ libmissing/tests/test-memmem.c | 8 +++-- libmissing/tests/test-sys_socket.c | 2 ++ libmissing/tests/zerosize-ptr.h | 66 ++++++++++++++++++++++++++++++++++++++ 16 files changed, 330 insertions(+), 31 deletions(-) commit 78255a19a0bfbb8b1a748d7d42a75e241d1d5f6c Author: Yoann Vandoorselaere Date: Tue May 19 16:56:33 2009 +0200 Implement functions to retrieve applicable operators. This implement function to retrieve applicable operatoris for a given idmef_path_t, idmef_value_t or idmef_value_type_t. It also add the idmef_path_check_operator() function that was previously missing. New functions: - idmef_path_check_operator() - idmef_path_get_applicable_operators() - idmef_value_get_applicable_operators() - idmef_value_type_get_applicable_operators() bindings/c++/idmef-path.cxx | 19 +++++++++++++++++++ bindings/c++/include/idmef-path.hxx | 3 +++ src/idmef-path.c | 35 +++++++++++++++++++++++++++++++++++ src/idmef-value-type.c | 15 +++++++++++++++ src/idmef-value.c | 19 +++++++++++++++++++ src/include/idmef-path.h | 14 +++++++++----- src/include/idmef-value-type.h | 2 ++ src/include/idmef-value.h | 2 ++ 8 files changed, 104 insertions(+), 5 deletions(-) commit 5b946fa8902d9a976eca0cc12997010c6e07e79b Author: Yoann Vandoorselaere Date: Tue May 19 16:46:55 2009 +0200 Minor API fixes The idmef_value_type_check_operator() function should take an idmef_value_type_id_t argument. There is no API breakage since idmef-value-type API is considered private. src/idmef-criterion-value.c | 12 ++++++------ src/idmef-value-type.c | 8 ++++---- src/idmef-value.c | 3 +-- src/include/idmef-value-type.h | 2 +- 4 files changed, 12 insertions(+), 13 deletions(-) commit deb88fd0e0b7205580899dfec5f50fdd059a106d Author: Yoann Vandoorselaere Date: Tue May 19 10:55:47 2009 +0200 Return an error when string character are provided for a 8 bit integer. Previously, using a string as value for an IDMEF path which type was (u)int8 would not generate an error. src/idmef-value-type.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9d76d323ae1d317ef486e21fc57e5d4ab3c5ef81 Author: Yoann Vandoorselaere Date: Fri May 15 17:10:20 2009 +0200 Allow substring comparions of enumeration value Make it possible to compare an enumeration path with a string by using the standard substring operator (<> or <>*). src/idmef-criterion-value.c | 6 +++- src/idmef-value-type.c | 68 +++++++++++++++++++++++++++++++-------------- 2 files changed, 52 insertions(+), 22 deletions(-) commit b8bd6a3ffad39a646d2601d638405ebc0d5f22ad Author: Yoann Vandoorselaere Date: Fri May 15 17:07:54 2009 +0200 Minor optimisation Fetch the value type only once. src/idmef-criterion-value.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 16d15738c29743b82d5392b2a5c131d6bd557214 Author: Yoann Vandoorselaere Date: Tue May 12 18:33:30 2009 +0200 Update GnuLib code. libmissing/Makefile.am | 17 +++++++--- libmissing/alignof.h | 41 +++++++++++++++++++++++ libmissing/gettext.h | 11 ++++++- libmissing/m4/btowc.m4 | 6 ++-- libmissing/m4/errno_h.m4 | 3 +- libmissing/m4/gnulib-comp.m4 | 5 +-- libmissing/m4/lib-link.m4 | 17 ++++++---- libmissing/m4/lib-prefix.m4 | 7 ++-- libmissing/m4/mbrtowc.m4 | 12 +++---- libmissing/m4/multiarch.m4 | 3 +- libmissing/m4/sys_socket_h.m4 | 65 +++++++++++++++++++++++++------------ libmissing/m4/vasnprintf.m4 | 6 ++-- libmissing/m4/wchar.m4 | 51 ++++++++++++++--------------- libmissing/m4/wcrtomb.m4 | 24 ++++++++------ libmissing/m4/wctob.m4 | 6 ++-- libmissing/sys_socket.in.h | 20 ++++++++++++ libmissing/tests/Makefile.am | 2 -- libmissing/tests/test-sys_socket.c | 6 +++- libmissing/vasnprintf.c | 66 ++++++++++++++++++-------------------- libmissing/wchar.in.h | 6 +++- 20 files changed, 245 insertions(+), 129 deletions(-) commit ae1001bf490b34dbecac47c699918495b363131e Author: Yoann Vandoorselaere Date: Tue May 12 18:03:40 2009 +0200 Automatic .gitignores generation. Makefile.am | 23 ++ bindings/Makefile.am | 16 +- bindings/c++/Makefile.am | 2 + bindings/c++/include/Makefile.am | 2 + bindings/low-level/Makefile.am | 10 + bindings/low-level/python/Makefile.am | 2 + bindings/lua/Makefile.am | 2 + bindings/python/Makefile.am | 2 + bindings/ruby/Makefile.am | 2 + docs/Makefile.am | 2 + docs/api/Makefile.am | 2 + docs/api/libprelude-overrides.txt | 0 docs/api/tmpl/prelude-client-profile.sgml | 277 ++++++++++++++ docs/api/tmpl/prelude-error.sgml | 382 +++++++++++++++++++ docs/api/tmpl/prelude-option-wide.sgml | 93 +++++ docs/api/tmpl/prelude-option.sgml | 609 ++++++++++++++++++++++++++++++ docs/api/tmpl/prelude-timer.sgml | 141 +++++++ docs/manpages/Makefile.am | 2 + git.mk | 183 +++++++++ libmissing/Makefile.am | 2 + libmissing/tests/Makefile.am | 2 + m4/Makefile.am | 12 +- prelude-admin/Makefile.am | 2 + src/Makefile.am | 2 + src/include/Makefile.am | 2 + src/libprelude-error/Makefile.am | 2 + tests/Makefile.am | 2 + 27 files changed, 1775 insertions(+), 3 deletions(-) commit b47048bdf873de3feb0f50095e4b50466964f718 Author: Yoann Vandoorselaere Date: Tue May 12 14:19:59 2009 +0200 Add dummy ChangeLog file, prevent autoconf failure. ChangeLog | 4 ++++ 1 file changed, 4 insertions(+) commit 2e5c2630016b5814e15afb77c56160f2bf525c72 Author: Yoann Vandoorselaere Date: Wed Apr 22 14:54:25 2009 +0000 Tags 0.9.22 git-svn-id: file:///home/yoann/SVN/libprelude/tags/libprelude-0.9.22@11164 09c5ec92-17d4-0310-903a-819935f44dba commit 501c8e20f6895009da67bd45745d5a2133104c07 Author: Yoann Vandoorselaere Date: Wed Apr 22 14:53:55 2009 +0000 Update docs, news, bump version. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11163 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 22 ++++++++++++++++++++++ configure.in | 12 ++++++------ docs/api/libprelude-sections.txt | 1 + docs/api/tmpl/prelude-plugin.sgml | 7 +++++++ 4 files changed, 36 insertions(+), 6 deletions(-) commit f6ba14700c1a1e6547efbe0574711920e06d3d97 Author: Yoann Vandoorselaere Date: Wed Apr 22 14:53:49 2009 +0000 Add libprelude.pc.in, not generated libprelude.pc git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11162 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude.pc | 14 -------------- src/libprelude.pc.in | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 14 deletions(-) commit 13bce7e566363a3d1d65a69aeb284d916a8eefaf Author: Yoann Vandoorselaere Date: Wed Apr 22 11:54:52 2009 +0000 Distribute a pkgconfig file. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11161 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 1 + src/Makefile.am | 4 ++++ src/libprelude.pc | 14 ++++++++++++++ 3 files changed, 19 insertions(+) commit 9e0aab68b5f5646c92630f127c8d193fcb6dd000 Author: Yoann Vandoorselaere Date: Wed Apr 22 09:43:24 2009 +0000 Remove COMMON_LIBS, since GnuLib is now used to detect theses library. When available, use pkg-config for GnuTLS/Gnutls-Extra checking. Check for Gnutls-Extra SRP support have been modified to be more flexible, this simplify the SRP support code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11160 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 59 +++++++--------- m4/pkg.m4 | 155 ++++++++++++++++++++++++++++++++++++++++++ prelude-admin/prelude-admin.c | 4 +- prelude-admin/server.c | 12 ++-- 4 files changed, 186 insertions(+), 44 deletions(-) commit 53f30cda84362dff336b5dc902500c5457a87e34 Author: Yoann Vandoorselaere Date: Wed Apr 22 09:43:21 2009 +0000 Use $(GETADDRINFO_LIB) $(HOSTENT_LIB) $(LTLIBINTL) $(LTLIBTHREAD) $(SERVENT_LIB) when linking, as specified by the GnuLib documentation (fix a WIN32 build issue). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11159 09c5ec92-17d4-0310-903a-819935f44dba libprelude-config.in | 2 +- prelude-admin/Makefile.am | 2 +- src/Makefile.am | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) commit 041f45497218b224823b1daf44d9659820dc53ce Author: Yoann Vandoorselaere Date: Wed Apr 22 09:43:18 2009 +0000 Improved GnuLib fixes, use AC_TRY_RUN support. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11158 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/btowc.m4 | 4 ++-- libmissing/m4/mbrtowc.m4 | 20 ++++++++++---------- libmissing/m4/wcrtomb.m4 | 4 ++-- libmissing/m4/wctob.m4 | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) commit fe914c2239450e46887e00f3de802f1757e1a84a Author: Yoann Vandoorselaere Date: Wed Apr 22 09:43:14 2009 +0000 Cross compilation fixes. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11157 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/btowc.m4 | 2 +- libmissing/m4/mbrtowc.m4 | 10 +++++----- libmissing/m4/wcrtomb.m4 | 2 +- libmissing/m4/wctob.m4 | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) commit 59f04b436acb15b34a0d3800d819c59fe2ae11e0 Author: Yoann Vandoorselaere Date: Wed Apr 22 09:43:10 2009 +0000 ChangeLog is now autogenerated. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11156 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3222 ------------------------------------------------------------- 1 file changed, 3222 deletions(-) commit 016a7a6dddef6d0afa4f19db6787bc5699410f38 Author: Yoann Vandoorselaere Date: Mon Apr 20 15:05:37 2009 +0000 Install C++ headers in the standard libprelude headers directory, avoid adding another include path. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11155 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad09ab687d518dce428a1e2df05db00960e27722 Author: Yoann Vandoorselaere Date: Mon Apr 20 15:05:34 2009 +0000 Update documentation. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11154 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 10486 ++++++++++++++++++++--------------------- 1 file changed, 5243 insertions(+), 5243 deletions(-) commit 364cc96dbd5ebaa34e6f271ca1dcf6942e3c3a94 Author: Yoann Vandoorselaere Date: Mon Apr 20 15:05:30 2009 +0000 Automatic ChangeLog generation (from http://live.gnome.org/Git/ChangeLog). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11153 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 158a8d05c810a4a159cedc076951db2e7956d691 Author: Yoann Vandoorselaere Date: Mon Apr 20 14:25:26 2009 +0000 Remove '--without-system-ltdl', deprecated by libtool 2.x git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11152 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a698b05b1f696fff1609f0b4d42d57bf4ce37a93 Author: Yoann Vandoorselaere Date: Mon Apr 20 14:25:22 2009 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11151 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 11 ++++++++--- libmissing/m4/inet_ntop.m4 | 15 +++++++++++++-- 2 files changed, 21 insertions(+), 5 deletions(-) commit 889ddcec7e43b45a985ba8f7814d9a30edbe7f00 Author: Yoann Vandoorselaere Date: Mon Apr 20 14:25:18 2009 +0000 Add GnuLib autogenerated file. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11150 09c5ec92-17d4-0310-903a-819935f44dba config.rpath | 672 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 672 insertions(+) commit 9b35985f3df8d19c6dd5e2647fce94e73c42c395 Author: Yoann Vandoorselaere Date: Mon Apr 20 14:25:14 2009 +0000 Implement IDMEFCriterionOperatorEnum enumeration. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11149 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/idmef-criteria.hxx | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) commit d2d55a6864fdd994802e91f2878bd948cc125c64 Author: Yoann Vandoorselaere Date: Mon Apr 20 14:25:09 2009 +0000 Update to fit enumeration prefix change. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11148 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/prelude-client-easy.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95aec83fefb596202cc70c99acb6307b5c360736 Author: Yoann Vandoorselaere Date: Mon Apr 20 14:25:05 2009 +0000 Prefix enumeration to avoid conflict. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11147 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/prelude-client.hxx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 6aa0daa7c6afc7d2648843f8e07e3d1127153d3e Author: Yoann Vandoorselaere Date: Mon Apr 20 13:21:43 2009 +0000 Bind IDMEFValue::Match() method to idmef_value_match(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11146 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/idmef-value.cxx | 6 ++++++ bindings/c++/include/idmef-value.hxx | 1 + 2 files changed, 7 insertions(+) commit 6e1ed024e0a408b03d3480a54dad01b2ca824463 Author: Yoann Vandoorselaere Date: Wed Apr 15 13:34:05 2009 +0000 Old behavior when returning an IDMEFValue was to map it's internal type to a type understood by the target language. We preserve this behavior unless the IDMEFValue is a list of "class" value (class value can't be mapped back to the target language). In this case we return the raw IDMEFValue object, which can be used directly from the target language. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11145 09c5ec92-17d4-0310-903a-819935f44dba bindings/libpreludecpp.i | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) commit c53d59fe14de1eae29ea096c64303934d6f3d563 Author: Yoann Vandoorselaere Date: Tue Apr 14 16:18:39 2009 +0000 When an IDMEF value carry a class, return the IDMEFValue proxy to the caller since we currently cannot map it to the real IDMEF datatype. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11144 09c5ec92-17d4-0310-903a-819935f44dba bindings/libpreludecpp.i | 3 +++ 1 file changed, 3 insertions(+) commit 02824099d6597a8becbf7974fe9505aa667ad785 Author: Yoann Vandoorselaere Date: Wed Apr 8 13:09:27 2009 +0000 Fix float comparison issue reported by Steve Grubb . The fix introduce a new float_compare() function which subtract the integer representations of two floats to check how close they are. If the difference is zero, they are identical. If the difference is one, they are adjacent floats. In general, if the difference is n then there are n-1 floats between them. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11127 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 39 +++++++++++++++++++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 44 +++++++++++++++++++++++- 2 files changed, 80 insertions(+), 3 deletions(-) commit 05cb4d10f27c30d11e548cf549cb792e5d40c39a Author: Yoann Vandoorselaere Date: Wed Apr 8 13:09:21 2009 +0000 Checking float for equality isn't reliable. Thanks to Steve Grubb for pointing this out. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11126 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit d6e203f20c93985531be0d78cc8cc50106d610fe Author: Yoann Vandoorselaere Date: Tue Apr 7 08:10:31 2009 +0000 Fix NULL pointer dereference if search_entry() is called with a NULL index (although that never happen in the current code base). Thanks Steve Grubb for pointing that out. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11125 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 50851ab9478fb198565a5cc1803cf1e43a526878 Author: Yoann Vandoorselaere Date: Tue Apr 7 08:10:28 2009 +0000 Fix off by one when checking the type array size. Thanks Steve Grubb for reporting this issue. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11124 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-additional-data.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1eec3f44ccad537cebf0885be6d4c56df05b1799 Author: Yoann Vandoorselaere Date: Tue Apr 7 07:51:35 2009 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11123 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 130 ++++++- libmissing/arpa_inet.in.h | 8 + libmissing/btowc.c | 38 +++ libmissing/close-hook.c | 91 +++++ libmissing/close-hook.h | 72 ++++ libmissing/close.c | 48 +-- libmissing/config.charset | 46 ++- libmissing/doc/relocatable.texi | 62 ++++ libmissing/fopen.c | 4 +- libmissing/fseeko.c | 45 ++- libmissing/gai_strerror.c | 4 +- libmissing/gettimeofday.c | 17 +- libmissing/glthread/threadlib.c | 7 +- libmissing/ioctl.c | 4 +- libmissing/localcharset.c | 41 ++- libmissing/m4/00gnulib.m4 | 30 ++ libmissing/m4/alloca.m4 | 6 +- libmissing/m4/btowc.m4 | 68 ++++ libmissing/m4/close.m4 | 4 +- libmissing/m4/codeset.m4 | 12 +- libmissing/m4/errno_h.m4 | 28 +- libmissing/m4/extensions.m4 | 32 +- libmissing/m4/fopen.m4 | 28 +- libmissing/m4/getaddrinfo.m4 | 70 ++-- libmissing/m4/getline.m4 | 11 +- libmissing/m4/getpass.m4 | 16 +- libmissing/m4/gettimeofday.m4 | 10 +- libmissing/m4/glibc21.m4 | 14 +- libmissing/m4/gnulib-cache.m4 | 2 +- libmissing/m4/gnulib-common.m4 | 31 +- libmissing/m4/gnulib-comp.m4 | 77 ++++- libmissing/m4/hostent.m4 | 45 +++ libmissing/m4/include_next.m4 | 59 +++- libmissing/m4/inet_ntop.m4 | 6 +- libmissing/m4/inet_pton.m4 | 6 +- libmissing/m4/intmax_t.m4 | 16 +- libmissing/m4/inttypes_h.m4 | 12 +- libmissing/m4/lib-ld.m4 | 14 +- libmissing/m4/lib-link.m4 | 18 +- libmissing/m4/localcharset.m4 | 6 +- libmissing/m4/locale-fr.m4 | 185 ++++++++++ libmissing/m4/locale-ja.m4 | 107 ++++++ libmissing/m4/locale-zh.m4 | 92 +++++ libmissing/m4/lock.m4 | 8 +- libmissing/m4/longlong.m4 | 8 +- libmissing/m4/malloc.m4 | 6 +- libmissing/m4/mbrtowc.m4 | 382 +++++++++++++++++++++ libmissing/m4/mbsinit.m4 | 30 ++ libmissing/m4/mbstate_t.m4 | 16 +- libmissing/m4/memmem.m4 | 8 +- libmissing/m4/minmax.m4 | 6 +- libmissing/m4/mktime.m4 | 30 +- libmissing/m4/multiarch.m4 | 66 ++++ libmissing/m4/netdb_h.m4 | 12 +- libmissing/m4/pathmax.m4 | 7 +- libmissing/m4/poll.m4 | 16 +- libmissing/m4/printf.m4 | 244 +++++++++---- libmissing/m4/realloc.m4 | 6 +- libmissing/m4/regex.m4 | 17 +- libmissing/m4/relocatable-lib.m4 | 10 +- libmissing/m4/select.m4 | 52 +++ libmissing/m4/servent.m4 | 47 +++ libmissing/m4/signal_h.m4 | 12 +- libmissing/m4/signalblocking.m4 | 8 +- libmissing/m4/size_max.m4 | 14 +- libmissing/m4/sockets.m4 | 43 ++- libmissing/m4/sockpfaf.m4 | 20 +- libmissing/m4/stdbool.m4 | 4 +- libmissing/m4/stdint.m4 | 95 +++++- libmissing/m4/stdint_h.m4 | 12 +- libmissing/m4/stdio_h.m4 | 10 +- libmissing/m4/stdlib_h.m4 | 17 +- libmissing/m4/strcase.m4 | 10 +- libmissing/m4/strdup.m4 | 12 +- libmissing/m4/strndup.m4 | 8 +- libmissing/m4/strnlen.m4 | 8 +- libmissing/m4/strptime.m4 | 6 +- libmissing/m4/strsep.m4 | 6 +- libmissing/m4/sys_select_h.m4 | 6 +- libmissing/m4/threadlib.m4 | 43 +-- libmissing/m4/timegm.m4 | 8 +- libmissing/m4/tm_gmtoff.m4 | 6 +- libmissing/m4/ungetc.m4 | 36 ++ libmissing/m4/unistd_h.m4 | 6 +- libmissing/m4/vasnprintf.m4 | 52 ++- libmissing/m4/wchar.m4 | 34 +- libmissing/m4/wchar_t.m4 | 10 +- libmissing/m4/wcrtomb.m4 | 88 +++++ libmissing/m4/wctob.m4 | 91 +++++ libmissing/m4/wint_t.m4 | 10 +- libmissing/m4/xsize.m4 | 6 +- libmissing/m4/yield.m4 | 8 +- libmissing/mbrtowc.c | 386 +++++++++++++++++++++ libmissing/mbsinit.c | 47 +++ libmissing/netdb.in.h | 10 +- libmissing/pathmax.h | 4 +- libmissing/poll.c | 61 ++-- libmissing/regcomp.c | 81 +++-- libmissing/regex_internal.c | 24 +- libmissing/regex_internal.h | 10 +- libmissing/regexec.c | 11 +- libmissing/select.c | 446 ++++++++++++++++++++++++ libmissing/setsockopt.c | 21 +- libmissing/signal.in.h | 11 +- libmissing/stdint.in.h | 120 ++++--- libmissing/stdio.in.h | 32 ++ libmissing/stdlib.in.h | 12 +- libmissing/streq.h | 176 ++++++++++ libmissing/strerror.c | 204 +++++++---- libmissing/sys_select.in.h | 27 +- libmissing/sys_socket.in.h | 6 +- libmissing/sys_stat.in.h | 5 +- libmissing/sys_time.in.h | 8 + libmissing/tests/Makefile.am | 84 ++++- libmissing/tests/sockets.c | 55 ++- libmissing/tests/sockets.h | 23 +- libmissing/tests/test-btowc.c | 71 ++++ libmissing/tests/test-btowc1.sh | 15 + libmissing/tests/test-btowc2.sh | 15 + libmissing/tests/test-fseeko.c | 19 +- libmissing/tests/test-fseeko2.sh | 3 + libmissing/tests/test-getaddrinfo.c | 25 +- libmissing/tests/test-lock.c | 23 +- libmissing/tests/test-mbrtowc.c | 330 ++++++++++++++++++ libmissing/tests/test-mbrtowc1.sh | 15 + libmissing/tests/test-mbrtowc2.sh | 15 + libmissing/tests/test-mbrtowc3.sh | 15 + libmissing/tests/test-mbrtowc4.sh | 15 + libmissing/tests/test-mbsinit.c | 62 ++++ libmissing/tests/test-mbsinit.sh | 15 + libmissing/tests/test-poll.c | 2 - libmissing/tests/test-select-in.sh | 4 + libmissing/tests/test-select-out.sh | 14 +- libmissing/tests/test-signal.c | 28 ++ libmissing/tests/test-sockets.c | 4 +- libmissing/tests/test-tls.c | 8 +- libmissing/tests/test-unistd.c | 8 +- libmissing/tests/test-wcrtomb.c | 162 +++++++++ libmissing/tests/test-wcrtomb.sh | 35 ++ libmissing/tests/verify.h | 140 -------- libmissing/tests/w32sock.h | 62 ++++ libmissing/tests/wctob.c | 37 ++ libmissing/unistd.in.h | 37 +- libmissing/vasnprintf.c | 664 ++++++++++++++++++++++++++++++++++-- libmissing/verify.h | 140 ++++++++ libmissing/wchar.in.h | 211 +++++++++++- libmissing/wcrtomb.c | 53 +++ libmissing/wctype.in.h | 3 + libmissing/winsock-select.c | 423 ----------------------- 149 files changed, 6432 insertions(+), 1387 deletions(-) commit 5585d3c7e76eb97bc9f0d1ec80d012f4cf0d77dc Author: Yoann Vandoorselaere Date: Fri Nov 14 16:22:12 2008 +0000 Update NEWS, bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11101 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 31 +++++++++++++++++++++++++++++-- configure.in | 5 ++--- docs/api/libprelude-decl.txt | 8 ++++++-- 3 files changed, 37 insertions(+), 7 deletions(-) commit 3769080e2b1f5f1fd858d7d620b109ee1272d41d Author: Yoann Vandoorselaere Date: Fri Nov 14 16:22:07 2008 +0000 Correct libmissing path. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11100 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9578b79a1ac1df3601ab14b5c851e7f33cc8d4ef Author: Yoann Vandoorselaere Date: Fri Nov 14 16:22:05 2008 +0000 Update. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11099 09c5ec92-17d4-0310-903a-819935f44dba INSTALL | 53 +++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 26 deletions(-) commit e903e662e83d3bed17c4aa75eb628811ca4deb96 Author: Yoann Vandoorselaere Date: Fri Nov 14 16:22:02 2008 +0000 Workaround broken GnuLib select test. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11098 09c5ec92-17d4-0310-903a-819935f44dba libmissing/tests/test-select-out.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 34ebbc486c46100d0a5d06370086f217e2d856ac Author: Yoann Vandoorselaere Date: Fri Nov 14 16:21:58 2008 +0000 Make the lock static, fix compile failure due to multiple declaration. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11097 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 2 +- tests/async-timer.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit d6a2caed819ae84e3b42a54eb3c18b3a8347e794 Author: Yoann Vandoorselaere Date: Fri Nov 14 16:21:54 2008 +0000 Use idmef_path_new_fast(), kill warning. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11096 09c5ec92-17d4-0310-903a-819935f44dba tests/idmef-path.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c715d06406603217fe9776cc37c246184a07c0a6 Author: Yoann Vandoorselaere Date: Fri Nov 14 16:21:52 2008 +0000 Fix warning. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11095 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7fb4720b9e8cc3b2e812400634adc0825789fa1e Author: Yoann Vandoorselaere Date: Fri Nov 14 16:21:49 2008 +0000 Remove check for ioctl.h, this is already handled by GnuLib. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11094 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 +- src/prelude-io.c | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) commit 7c1e7b28a9ca9551da7dc958cea46d05acdd4aa7 Author: Yoann Vandoorselaere Date: Fri Nov 14 16:21:43 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11093 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 83 ++++++++++++++++++++++++++++++++++++++++- libmissing/accept.c | 42 +++++++++++++++++++++ libmissing/bind.c | 40 ++++++++++++++++++++ libmissing/close.c | 82 ++++++++++++++++++++++++++++++++++++++++ libmissing/fclose.c | 47 +++++++++++++++++++++++ libmissing/ioctl.c | 49 ++++++++++++++++++++++++ libmissing/listen.c | 40 ++++++++++++++++++++ libmissing/m4/gnulib-cache.m4 | 8 +++- libmissing/m4/gnulib-comp.m4 | 71 +++++++++++++++++------------------ libmissing/sys_ioctl.in.h | 70 ++++++++++++++++++++++++++++++++++ libmissing/tests/Makefile.am | 81 ---------------------------------------- libmissing/tests/accept.c | 42 --------------------- libmissing/tests/bind.c | 40 -------------------- libmissing/tests/close.c | 82 ---------------------------------------- libmissing/tests/fclose.c | 47 ----------------------- libmissing/tests/ioctl.c | 49 ------------------------ libmissing/tests/listen.c | 40 -------------------- libmissing/tests/sys_ioctl.in.h | 70 ---------------------------------- libmissing/tests/w32sock.h | 62 ------------------------------ 19 files changed, 494 insertions(+), 551 deletions(-) commit 307557c1d03a7c5f5dddf6f904d6446a907dd65b Author: Yoann Vandoorselaere Date: Wed Nov 12 14:21:59 2008 +0000 Attempt to fix automatic build for buildbot using earlier libtool version. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11092 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 1 + 1 file changed, 1 insertion(+) commit db4407d4bdca5d4b358a1a73a31f40468b6b15d0 Author: Yoann Vandoorselaere Date: Wed Nov 12 13:59:44 2008 +0000 Update LTDL requirements. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11091 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 5c1b03ded8b86b77ba9ffc41c045107696207e24 Author: Yoann Vandoorselaere Date: Wed Nov 12 13:59:41 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11090 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 5 +++ libmissing/config.charset | 6 +-- libmissing/fseeko.c | 2 +- libmissing/m4/getaddrinfo.m4 | 22 +++++++++- libmissing/m4/gnulib-comp.m4 | 5 +++ libmissing/m4/netdb_h.m4 | 8 +++- libmissing/m4/printf.m4 | 9 +++- libmissing/m4/sys_ioctl_h.m4 | 11 +++-- libmissing/netdb.in.h | 12 +++--- libmissing/sys_stat.in.h | 12 ++++++ libmissing/tests/Makefile.am | 12 ++++-- libmissing/tests/sockets.h | 4 +- libmissing/tests/test-select-fd.c | 72 ++++++++++++++++++++++++++++++++ libmissing/tests/test-select-in.sh | 33 +++++++++++++++ libmissing/tests/test-select-out.sh | 33 +++++++++++++++ libmissing/tests/test-select-stdin.c | 80 ++++++++++++++++++++++++++++++++++++ 16 files changed, 301 insertions(+), 25 deletions(-) commit f3a4dd62ad17aee6094e7ada65d59c366fa09e78 Author: Yoann Vandoorselaere Date: Wed Nov 12 13:59:37 2008 +0000 Update GtkDoc detection code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11089 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 5 ----- m4/gtk-doc.m4 | 52 +++++++++++++++++++--------------------------------- 2 files changed, 19 insertions(+), 38 deletions(-) commit 4b6cdcab02534f626a5c5d8b23b0edf027fb70c4 Author: Yoann Vandoorselaere Date: Wed Nov 12 13:59:34 2008 +0000 Remove deprecated. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11088 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 52 ++++++---------------------------------------------- 1 file changed, 6 insertions(+), 46 deletions(-) commit 0d2213435c0e4e61e118108c2e194a74411bfd67 Author: Yoann Vandoorselaere Date: Wed Nov 12 13:59:29 2008 +0000 Increase symbol table size. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11087 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f671c7e5e2bcc327abcbbbfbc7b9e997acdaeb50 Author: Yoann Vandoorselaere Date: Wed Nov 12 09:36:53 2008 +0000 Workaround libtool/libltdl 1.5 -> 2.x ABI compatibility issues. This introduce two fixes: - Fix a crash when an application use a different libtool version than the libltdl version used to compile libprelude. In order to prevent this problem, we automatically rewrite symbol table provided by libtool 1.5 application, and make it compatible with libltdl 2.2 (we will now ship libtool/ltdl 2.2 as the default with libprelude). - Automatic handling of symbol renaming between libtool 1.5 -> 2.x, which solve application linking problem. This fix #294. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11086 09c5ec92-17d4-0310-903a-819935f44dba m4/libprelude.m4 | 5 +++++ src/include/prelude-plugin.h | 17 ++++++++++++----- src/prelude-plugin.c | 33 ++++++++++++++++++++++++++++++--- 3 files changed, 47 insertions(+), 8 deletions(-) commit 366e0eb50ac80cdb822eb0ca708ee36cdaa7af31 Author: Yoann Vandoorselaere Date: Wed Nov 12 09:36:48 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11085 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 63 ++----- libmissing/connect.c | 47 ++++++ libmissing/getsockname.c | 40 +++++ libmissing/glthread/thread.c | 1 + libmissing/m4/gnulib-comp.m4 | 50 +++--- libmissing/m4/include_next.m4 | 18 +- libmissing/m4/memchr.m4 | 18 -- libmissing/m4/memcmp.m4 | 31 ---- libmissing/m4/netdb_h.m4 | 5 +- libmissing/m4/stdlib_h.m4 | 44 ++--- libmissing/m4/strpbrk.m4 | 18 -- libmissing/m4/sys_socket_h.m4 | 8 +- libmissing/m4/unistd_h.m4 | 4 +- libmissing/memchr.c | 172 ------------------- libmissing/memcmp.c | 361 ---------------------------------------- libmissing/netdb.in.h | 5 +- libmissing/raise.c | 30 ---- libmissing/setsockopt.c | 40 +++++ libmissing/signal.in.h | 6 + libmissing/socket.c | 43 +++++ libmissing/stdlib.in.h | 54 ++++++ libmissing/strpbrk.c | 42 ----- libmissing/sys_socket.in.h | 15 +- libmissing/sys_stat.in.h | 19 ++- libmissing/tests/Makefile.am | 64 ++++--- libmissing/tests/accept.c | 42 +++++ libmissing/tests/bind.c | 40 +++++ libmissing/tests/close.c | 37 ++++ libmissing/tests/ioctl.c | 49 ++++++ libmissing/tests/listen.c | 40 +++++ libmissing/tests/sys_ioctl.in.h | 70 ++++++++ libmissing/tests/test-memchr.c | 100 ----------- libmissing/tests/test-memcmp.c | 82 --------- libmissing/tests/w32sock.h | 62 +++++++ libmissing/tests/winsock.c | 348 -------------------------------------- libmissing/unistd.in.h | 72 ++++++++ libmissing/w32sock.h | 62 +++++++ libmissing/winsock.c | 348 -------------------------------------- 38 files changed, 861 insertions(+), 1689 deletions(-) commit bd07d181a5657ea26d12519a2898b505210d3fa4 Author: Yoann Vandoorselaere Date: Wed Nov 5 08:54:54 2008 +0000 Cygwin compilation fixes. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11082 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 37b792f7ee4700feec3dd8bfcb182ff57ce835c4 Author: Yoann Vandoorselaere Date: Tue Nov 4 13:42:34 2008 +0000 Fix compilation when IPv6 is not available. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11080 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 4 ++++ 1 file changed, 4 insertions(+) commit 228e9175868d80fc9f3373d11adceebcb4e5ffa4 Author: Yoann Vandoorselaere Date: Tue Nov 4 13:42:27 2008 +0000 Fix error with recent autotools version. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11079 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa55bd8381db0e5fdc2a11b5f1192e36eb149360 Author: Yoann Vandoorselaere Date: Tue Oct 21 13:46:37 2008 +0000 Fix OpenBSD poll unit-test. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11077 09c5ec92-17d4-0310-903a-819935f44dba libmissing/tests/test-poll.c | 2 ++ 1 file changed, 2 insertions(+) commit 3dcb823325f24539dfe55a263a0cd646a741ad87 Author: Yoann Vandoorselaere Date: Tue Oct 21 08:58:54 2008 +0000 Include GnuLib replacement headers directly. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11076 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 1 + prelude-admin/server.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) commit bb2fe592955a1e7c33d54eec93ee491f77db0455 Author: Yoann Vandoorselaere Date: Tue Oct 21 08:58:52 2008 +0000 Include GnuLib replacement headers directly. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11075 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 2 +- src/include/libmissing.h | 10 ---------- src/prelude-client.c | 2 ++ src/prelude-connection.c | 3 +++ src/prelude-io.c | 2 +- 5 files changed, 7 insertions(+), 12 deletions(-) commit ca377fa43ebac9782e2f493b93d9aab3cb67e82a Author: Yoann Vandoorselaere Date: Tue Oct 21 08:58:44 2008 +0000 Gnulib code update. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11074 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 52 +++- libmissing/arpa_inet.in.h | 2 + libmissing/errno.in.h | 2 + libmissing/float.in.h | 2 + libmissing/gai_strerror.c | 7 +- libmissing/getaddrinfo.c | 18 +- libmissing/getaddrinfo.h | 163 ----------- libmissing/glthread/cond.c | 540 +++++++++++++++++++++++++----------- libmissing/glthread/cond.h | 44 +-- libmissing/glthread/lock.c | 5 + libmissing/glthread/lock.h | 6 +- libmissing/glthread/thread.c | 13 +- libmissing/glthread/thread.h | 3 + libmissing/m4/close.m4 | 25 ++ libmissing/m4/fclose.m4 | 18 ++ libmissing/m4/getaddrinfo.m4 | 16 +- libmissing/m4/gnulib-common.m4 | 12 +- libmissing/m4/gnulib-comp.m4 | 16 +- libmissing/m4/netdb_h.m4 | 32 +++ libmissing/m4/sleep.m4 | 13 +- libmissing/m4/stdio_h.m4 | 4 +- libmissing/m4/stdlib_h.m4 | 11 +- libmissing/m4/sys_ioctl_h.m4 | 60 ++++ libmissing/m4/sys_socket_h.m4 | 11 +- libmissing/m4/sys_stat_h.m4 | 6 +- libmissing/m4/unistd_h.m4 | 11 +- libmissing/netdb.in.h | 189 +++++++++++++ libmissing/netinet_in.in.h | 2 + libmissing/signal.in.h | 2 + libmissing/sigprocmask.c | 40 ++- libmissing/stdint.in.h | 2 + libmissing/stdio.in.h | 17 ++ libmissing/stdlib.in.h | 81 ++++++ libmissing/string.in.h | 2 + libmissing/strings.in.h | 2 + libmissing/sys_select.in.h | 2 + libmissing/sys_socket.in.h | 36 ++- libmissing/sys_stat.in.h | 52 +++- libmissing/sys_time.in.h | 2 + libmissing/tests/Makefile.am | 27 ++ libmissing/tests/close.c | 45 +++ libmissing/tests/fclose.c | 47 ++++ libmissing/tests/test-getaddrinfo.c | 2 +- libmissing/tests/test-lock.c | 13 + libmissing/tests/test-netdb.c | 29 ++ libmissing/tests/test-poll.c | 3 +- libmissing/tests/test-select.c | 1 + libmissing/tests/winsock.c | 106 ++++--- libmissing/time.in.h | 2 + libmissing/unistd.in.h | 99 ++++++- libmissing/wchar.in.h | 2 + libmissing/wctype.in.h | 2 + libmissing/winsock.c | 106 ++++--- 53 files changed, 1533 insertions(+), 472 deletions(-) commit 6e6f277d4f16d6c7c4ce12dc6d6bcf89fc339343 Author: Yoann Vandoorselaere Date: Fri Oct 17 13:10:13 2008 +0000 Add debug message on heartbeat. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11073 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 ++ 1 file changed, 2 insertions(+) commit ae22a12d7bde27e7e2f9a929ac4c607e3da079c7 Author: Yoann Vandoorselaere Date: Fri Oct 17 08:47:24 2008 +0000 Fix possible compilation problem with some GCC version (fix #325). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11068 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 522 ++++++++--------------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 23 +- 2 files changed, 205 insertions(+), 340 deletions(-) commit cfd0b89da054f09ce82b63a8da559cfe1654aaa7 Author: Yoann Vandoorselaere Date: Mon Oct 13 13:23:48 2008 +0000 Update NEWS, bump version. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11062 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 7 +++++++ configure.in | 4 ++-- docs/api/libprelude-decl.txt | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) commit 37f733357950b784fc65183a25dedd1c366fc658 Author: Yoann Vandoorselaere Date: Wed Oct 8 12:52:35 2008 +0000 Fix NULL pointer dereference in case of NULL client profile (fix #320). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11061 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 79560ec60f748fefeb846a6b61b75b5160f5f574 Author: Yoann Vandoorselaere Date: Mon Oct 6 15:23:16 2008 +0000 Late fix C++ build problem: this will be part of the 0.9.21.1 release. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11058 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/prelude-client-profile.hxx | 1 + 1 file changed, 1 insertion(+) commit 7e902046ec3e5b069cc716b30f380fff60a317d7 Author: Yoann Vandoorselaere Date: Mon Oct 6 14:01:19 2008 +0000 Update NEWS, documentation, bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11056 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 17 +++++++++++++++++ configure.in | 8 ++++---- docs/api/libprelude-decl.txt | 12 +++++++++++- docs/api/libprelude-sections.txt | 2 ++ docs/api/tmpl/prelude-client.sgml | 9 +++++++++ 5 files changed, 43 insertions(+), 5 deletions(-) commit 5a8390c5569730cfee819c45b547628c3e1eed84 Author: Yoann Vandoorselaere Date: Mon Oct 6 14:01:16 2008 +0000 Remove WIN32 specific workaround, now handled by GnuLib. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11055 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 4 ---- 1 file changed, 4 deletions(-) commit 0382b38f87ff02b60f69ae3376f3eb4fbb869b02 Author: Yoann Vandoorselaere Date: Mon Oct 6 14:01:13 2008 +0000 Remove THREADCPPFLAGS usage until they are proven required. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11054 09c5ec92-17d4-0310-903a-819935f44dba libprelude-config.in | 2 +- src/Makefile.am | 2 +- src/libprelude-error/Makefile.am | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 5f4c3602b6a6c011a7cd958950e3fd7716d219b3 Author: Yoann Vandoorselaere Date: Mon Oct 6 14:01:07 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11053 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 143 +++++++++++- libmissing/arpa_inet.in.h | 2 + libmissing/c-ctype.h | 17 +- libmissing/errno.in.h | 4 +- libmissing/fopen.c | 68 ++++-- libmissing/glthread/cond.h | 14 +- libmissing/glthread/thread.c | 244 ++++++++++---------- libmissing/glthread/thread.h | 20 +- libmissing/intprops.h | 77 +++++++ libmissing/m4/arpa_inet_h.m4 | 9 +- libmissing/m4/fopen.m4 | 9 +- libmissing/m4/gnulib-cache.m4 | 10 +- libmissing/m4/gnulib-comp.m4 | 64 +++++- libmissing/m4/inet_ntop.m4 | 5 +- libmissing/m4/inet_pton.m4 | 5 +- libmissing/m4/memcmp.m4 | 2 +- libmissing/m4/perror.m4 | 17 ++ libmissing/m4/signal_h.m4 | 3 +- libmissing/m4/sockets.m4 | 64 ++++-- libmissing/m4/stdio_h.m4 | 36 ++- libmissing/m4/strdup.m4 | 22 +- libmissing/m4/strerror.m4 | 68 ++++++ libmissing/m4/string_h.m4 | 9 +- libmissing/m4/sys_select_h.m4 | 20 +- libmissing/m4/sys_socket_h.m4 | 62 +++++- libmissing/m4/thread.m4 | 6 +- libmissing/m4/threadlib.m4 | 8 +- libmissing/m4/unistd_h.m4 | 33 +-- libmissing/m4/wchar.m4 | 25 ++- libmissing/m4/write.m4 | 20 ++ libmissing/perror.c | 35 +++ libmissing/poll.c | 445 ++++++++++++++++++++++++++++++++----- libmissing/signal.in.h | 21 ++ libmissing/sigprocmask.c | 51 +++++ libmissing/stdio-write.c | 148 ++++++++++++ libmissing/stdio.in.h | 55 +++++ libmissing/strerror.c | 273 +++++++++++++++++++++++ libmissing/string.in.h | 6 +- libmissing/sys_select.in.h | 31 +++ libmissing/sys_socket.in.h | 286 +++++++++++++++++++++++- libmissing/tests/Makefile.am | 57 ++++- libmissing/tests/intprops.h | 77 ------- libmissing/tests/test-cond.c | 111 +++++---- libmissing/tests/test-fopen.c | 1 + libmissing/tests/test-lock.c | 20 +- libmissing/tests/test-perror.c | 34 +++ libmissing/tests/test-perror.sh | 27 +++ libmissing/tests/test-poll.c | 10 +- libmissing/tests/test-select.c | 375 +++++++++++++++++++++++++++++++ libmissing/tests/test-strerror.c | 65 ++++++ libmissing/tests/test-sys_select.c | 5 +- libmissing/tests/test-tls.c | 4 +- libmissing/tests/test-wchar.c | 6 +- libmissing/tests/test-wctype.c | 3 + libmissing/tests/winsock.c | 308 +++++++++++++++++++++++++ libmissing/unistd.in.h | 46 ++++ libmissing/vasnprintf.c | 29 ++- libmissing/wchar.in.h | 6 + libmissing/wctype.in.h | 31 ++- libmissing/winsock-select.c | 423 +++++++++++++++++++++++++++++++++++ libmissing/winsock.c | 308 +++++++++++++++++++++++++ libmissing/write.c | 62 ++++++ 62 files changed, 3985 insertions(+), 460 deletions(-) commit 24d0f1e1b251f6f84c20c9f39949f5e225da68a1 Author: Yoann Vandoorselaere Date: Fri Oct 3 15:20:09 2008 +0000 Fix path issue in case libprelude was configured with specific path outside of $prefix (fix #319). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11052 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 111 ++++++++++++++++++++++++++++--------------- 1 file changed, 74 insertions(+), 37 deletions(-) commit 174186a6e232bcb4a098e6eb7a744610e90690cc Author: Yoann Vandoorselaere Date: Fri Oct 3 15:20:07 2008 +0000 Fix a bug where building EasyBindings would be done although they are not enabled. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11051 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) commit 5070260e92f8c9925e1dab24737b64a2c5e86fff Author: Yoann Vandoorselaere Date: Fri Oct 3 15:20:05 2008 +0000 Remove dependency on perror(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11050 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c236970011fee646444ab996d73107605ad62fe Author: Yoann Vandoorselaere Date: Fri Oct 3 15:20:01 2008 +0000 Add missing sys/select.h git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11049 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 1 + 1 file changed, 1 insertion(+) commit 31bf45ec783d6cccf2190208ae80294b48fad0a3 Author: Yoann Vandoorselaere Date: Wed Sep 24 11:23:20 2008 +0000 Add refcount support. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11048 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/prelude-client-profile.hxx | 24 +++++----- bindings/c++/include/prelude-client.hxx | 9 +--- bindings/c++/prelude-client-profile.cxx | 62 ++++++++++++++++--------- bindings/c++/prelude-client.cxx | 23 +++++++-- bindings/libpreludecpp.i | 12 ----- 5 files changed, 74 insertions(+), 56 deletions(-) commit c21aa01c4ad057a9539113b000531047183f2c74 Author: Yoann Vandoorselaere Date: Wed Sep 24 10:53:48 2008 +0000 Add refcount to prelude_client_t object. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11047 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 2 ++ src/prelude-client.c | 15 +++++++++++++++ 2 files changed, 17 insertions(+) commit 91ca09c721adbe5535a24f5af2847777df5daec8 Author: Yoann Vandoorselaere Date: Wed Sep 24 10:49:40 2008 +0000 Add refcount support to the prelude_client_profile_t object. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11046 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client-profile.h | 2 ++ src/prelude-client-profile.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+) commit e787c06e61ea3212ea7cd0072d039ba441f46210 Author: Yoann Vandoorselaere Date: Wed Sep 24 09:05:44 2008 +0000 Update README. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11042 09c5ec92-17d4-0310-903a-819935f44dba README | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 4d684747391b1a11bbc91c4524affd6023fc54c8 Author: Yoann Vandoorselaere Date: Wed Sep 24 08:54:24 2008 +0000 No pointer usage. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11039 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/idmef-criteria.cxx | 12 ++++++------ bindings/c++/include/idmef-criteria.hxx | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) commit 5ace60285a720b49ac33e830920597f78a4df4ed Author: Yoann Vandoorselaere Date: Wed Sep 24 08:54:23 2008 +0000 Fix assertion warning if no address can be found. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11038 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) commit 1d1e24a1e69f9d5e9c285b6c6cd1034d04f3994c Author: Yoann Vandoorselaere Date: Fri Sep 19 15:16:03 2008 +0000 Update NEWS, bump version. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11029 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 20 ++++++++++++++++++++ configure.in | 13 +++++++------ docs/api/libprelude-decl.txt | 31 ++++++++++++++++++++++++++----- docs/api/libprelude-sections.txt | 2 ++ 4 files changed, 55 insertions(+), 11 deletions(-) commit 48041184b4a0a84de24468acce812e0cc78c2b74 Author: Yoann Vandoorselaere Date: Fri Sep 19 15:16:00 2008 +0000 Add SetPrefix() and GetPrefix() function. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11028 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/prelude-client-profile.hxx | 3 +++ bindings/c++/prelude-client-profile.cxx | 15 +++++++++++++++ 2 files changed, 18 insertions(+) commit 05b56f0fdd64f7aca096654578359e41e9a3a625 Author: Yoann Vandoorselaere Date: Fri Sep 19 11:40:20 2008 +0000 Ignore test-poll error on OpenBSD. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11027 09c5ec92-17d4-0310-903a-819935f44dba libmissing/tests/test-poll.c | 2 ++ 1 file changed, 2 insertions(+) commit 0f626dd248fd5deb2ee09db2fa35f5996cfdec19 Author: Yoann Vandoorselaere Date: Fri Sep 19 11:38:19 2008 +0000 Make prelude-client-profile self contained: use prelude_uid_t / prelude_gid_t. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11026 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 12 +++++++++++- configure.in | 2 +- src/include/prelude-client-profile.h | 22 ++++++++++++++++++---- src/prelude-client-profile.c | 12 ++++++------ 4 files changed, 36 insertions(+), 12 deletions(-) commit c7f757258c09ee2b041c3c7e773770c2d34f7c51 Author: Yoann Vandoorselaere Date: Fri Sep 19 11:11:25 2008 +0000 Add Python package description, author, url, and version. Do not use config.h, since we are not using libmissing. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11025 09c5ec92-17d4-0310-903a-819935f44dba bindings/low-level/python/setup.py.in | 6 +++++- bindings/python/setup.py.in | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) commit 7bbba611f043a8d693132d59b53ad0c406e50f21 Author: Yoann Vandoorselaere Date: Fri Sep 19 11:11:23 2008 +0000 Remove deprecated check. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11024 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 7 ------- 1 file changed, 7 deletions(-) commit ea686ed2527c8ae6472701fb0b337a5ebaea4892 Author: Yoann Vandoorselaere Date: Fri Sep 19 11:11:20 2008 +0000 Update documentation. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11023 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 12 +++++++++++- docs/api/libprelude-sections.txt | 3 +++ 2 files changed, 14 insertions(+), 1 deletion(-) commit e9b44330190fb10eaffc308c191b5c5d736af7e0 Author: Yoann Vandoorselaere Date: Fri Sep 19 11:11:17 2008 +0000 Fix use of uninitialized condition. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11022 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 3610e2f5db3e1968f6ea7565bbf532cdafa55410 Author: Yoann Vandoorselaere Date: Fri Sep 19 11:11:13 2008 +0000 Add prelude_client_profile_get_prefix(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11021 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client-profile.h | 3 +++ src/prelude-client-profile.c | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+) commit 5aff3a4f48b857b02ee8f35ac19e036612c6e384 Author: Yoann Vandoorselaere Date: Thu Sep 18 13:16:48 2008 +0000 User can now set the working prefix using the LIBPRELUDE_PREFIX environment variable. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11020 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 3 ++- src/prelude.c | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) commit cce34609592666d1331a1c840d59127eac8853fd Author: Yoann Vandoorselaere Date: Thu Sep 18 13:16:45 2008 +0000 Use PATH_MAX. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11019 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 02195b99889876f04f5d49c22237c87647c8ca8d Author: Yoann Vandoorselaere Date: Thu Sep 18 11:00:21 2008 +0000 Fix WIN32 compile warnings. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11017 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ca5138da473a07595bb1cb511ec5e5061623c6c5 Author: Yoann Vandoorselaere Date: Thu Sep 18 10:53:30 2008 +0000 Special case Cygwin. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11016 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 24 ++++++++++++------------ prelude-admin/tls-register.c | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) commit d29cf15fe32dea68824e94d32878cf2058219185 Author: Yoann Vandoorselaere Date: Thu Sep 18 10:46:53 2008 +0000 Update GNuLib code, include fopen and uname module. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11015 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 20 +++++- libmissing/fopen.c | 65 +++++++++++++++++++ libmissing/m4/fopen.m4 | 50 ++++++++++++++ libmissing/m4/gnulib-cache.m4 | 4 +- libmissing/m4/gnulib-comp.m4 | 9 +++ libmissing/m4/uname.m4 | 18 ++++++ libmissing/tests/Makefile.am | 9 +++ libmissing/tests/test-fopen.c | 44 +++++++++++++ libmissing/uname.c | 147 ++++++++++++++++++++++++++++++++++++++++++ libmissing/uname.h | 51 +++++++++++++++ src/prelude-client.c | 22 +------ 11 files changed, 416 insertions(+), 23 deletions(-) commit bb99d0f84dacc4999cd2660dbfe48a25b7142cea Author: Yoann Vandoorselaere Date: Thu Sep 18 10:46:49 2008 +0000 Include config.h git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11014 09c5ec92-17d4-0310-903a-819935f44dba tests/async-timer.c | 2 ++ tests/idmef-criteria.c | 2 ++ tests/idmef-message-helper.c | 2 ++ tests/idmef-path.c | 2 ++ tests/idmef-value.c | 2 ++ tests/idmef.c | 2 ++ tests/prelude-client.c | 2 ++ tests/prelude-string.c | 2 ++ 8 files changed, 16 insertions(+) commit fc0a95e6a62fe6c9088661e0f24b1aedaf0d7e25 Author: Yoann Vandoorselaere Date: Thu Sep 18 10:46:46 2008 +0000 Link with libmissing. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11013 09c5ec92-17d4-0310-903a-819935f44dba tests/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4eb86c32be8a9efe320ef81dfa3c9881220b043f Author: Yoann Vandoorselaere Date: Thu Sep 18 10:46:44 2008 +0000 Update GnuLib code, WIN32 compatibility for gl_cond_t. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11012 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 12 ++- libmissing/glthread/cond.c | 189 ++++++++++++++++++++++++++++++++++++++++++ libmissing/glthread/cond.h | 57 ++++++++++++- libmissing/m4/gnulib-cache.m4 | 3 +- libmissing/m4/gnulib-comp.m4 | 5 ++ libmissing/m4/sleep.m4 | 19 +++++ libmissing/sleep.c | 46 ++++++++++ libmissing/tests/Makefile.am | 9 ++ libmissing/tests/test-cond.c | 1 + libmissing/tests/test-sleep.c | 47 +++++++++++ libmissing/vasnprintf.c | 61 ++++++++++++-- 11 files changed, 439 insertions(+), 10 deletions(-) commit 7a806cceeb7ccacaf373c193a4415aa928d7abf8 Author: Yoann Vandoorselaere Date: Thu Sep 18 10:46:40 2008 +0000 Make variable.h private. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11011 09c5ec92-17d4-0310-903a-819935f44dba src/include/Makefile.am | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit aecc46099912efd6f791ff7f18c2b44fc676347c Author: Yoann Vandoorselaere Date: Thu Sep 18 10:46:38 2008 +0000 Make a difference between WIN32 and Cygwin. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11010 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 6 +++--- src/daemonize.c | 8 ++++---- src/prelude-client-profile.c | 2 +- src/prelude-connection-pool.c | 2 +- src/prelude-connection.c | 14 +++++++------- src/prelude-failover.c | 10 +++++----- src/prelude-io.c | 2 +- src/prelude-log.c | 6 +++--- 8 files changed, 25 insertions(+), 25 deletions(-) commit 3f2a8a55f9961735f3a69fb7216604cc9b31481b Author: Yoann Vandoorselaere Date: Thu Sep 18 10:46:34 2008 +0000 Fix documentation header. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11009 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 1 + 1 file changed, 1 insertion(+) commit e4c508deb03ca8a504f32a08a5319d775f5801f9 Author: Yoann Vandoorselaere Date: Thu Sep 18 10:46:31 2008 +0000 No permission warning on WIN32. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11008 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 2 ++ 1 file changed, 2 insertions(+) commit f1c7f343c2592d968a5ff0f415724d6c93581850 Author: Yoann Vandoorselaere Date: Thu Sep 18 10:46:29 2008 +0000 Fix include ordering to workaround an issue with certain C++ compiler triggered by config.h redefinition. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11007 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/prelude-client.hxx | 1 - bindings/c++/prelude-client-easy.cxx | 7 +------ bindings/c++/prelude-client.cxx | 12 ++++-------- bindings/c++/prelude-error.cxx | 3 ++- 4 files changed, 7 insertions(+), 16 deletions(-) commit 67e1f675d72ef4719fc55557d271f1c7e426e2fe Author: Yoann Vandoorselaere Date: Thu Sep 18 10:46:26 2008 +0000 Fix INSTALLDIR definition on WIN32, this is necessary since libtool install generated DLL in bindir. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11006 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 6f48651aaf2eec8f5cb432ce7106324840fb113d Author: Yoann Vandoorselaere Date: Thu Sep 18 10:46:23 2008 +0000 Error handling improvement. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11005 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit a7aabe6a8adc77f7a7a13f8fd8d0d0ee3f8309b2 Author: Yoann Vandoorselaere Date: Tue Sep 16 14:38:58 2008 +0000 Remove superfluous close() statement. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11004 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit e62a42598e3289bedafd3b5e549aac2e3f60b36e Author: Yoann Vandoorselaere Date: Tue Sep 16 14:38:21 2008 +0000 Add the dup2 module. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11003 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 11 ++++++++- libmissing/dup2.c | 57 +++++++++++++++++++++++++++++++++++++++++++ libmissing/m4/dup2.m4 | 15 ++++++++++++ libmissing/m4/gnulib-cache.m4 | 3 ++- libmissing/m4/gnulib-comp.m4 | 4 +++ 5 files changed, 88 insertions(+), 2 deletions(-) commit 37f28df55ea6c748bc746844110093c91068bb1f Author: Yoann Vandoorselaere Date: Tue Sep 16 14:14:12 2008 +0000 Bind stdin, stdout, and stderr to '/dev/null'. Correctly fixes #311. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11002 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) commit f6e5df50f8bb6301dd2f603aa632fb3d6740650e Author: Yoann Vandoorselaere Date: Tue Sep 16 09:20:19 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11001 09c5ec92-17d4-0310-903a-819935f44dba libmissing/tests/test-memchr.c | 4 +++- libmissing/tests/test-poll.c | 12 ++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) commit eefab48232f4f6e3ab1046920533b7f8ec4dde1e Author: Yoann Vandoorselaere Date: Tue Sep 16 09:17:33 2008 +0000 Remove old email addresses. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@11000 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 68533541b0963ecf16ac4a43a2eddb7f78637313 Author: Yoann Vandoorselaere Date: Mon Sep 15 12:56:54 2008 +0000 Only close stdin/stdout/stderr if they are connected to a terminal. This prevent closing invalid descriptor. (fix #311). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10998 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit 6e141f34898d09401a4c90733c78db43c837b081 Author: Yoann Vandoorselaere Date: Mon Sep 15 11:48:09 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10997 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/errno_h.m4 | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit 248136c54e847681368770626b4c22f3159f92da Author: Yoann Vandoorselaere Date: Mon Sep 15 10:35:10 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10996 09c5ec92-17d4-0310-903a-819935f44dba libmissing/errno.in.h | 21 +++++++++++---------- libmissing/m4/errno_h.m4 | 4 ++-- 2 files changed, 13 insertions(+), 12 deletions(-) commit 059c77ef75b250e1ffbd9a9c84f4ae3b68852a36 Author: Yoann Vandoorselaere Date: Mon Sep 15 10:31:47 2008 +0000 Implement prelude_client_profile_get_default_config_dirname(), and prelude_client_profile_set_prefix(). Modify prelude-admin so that it always use prelude-client-profile function in order to retrieve libprelude specific path. Use the relocatable module from prelude-client-profile in order to relocate path when needed. This fix #255. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10995 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 + prelude-admin/prelude-admin.c | 60 +++++++---- src/include/prelude-client-profile.h | 8 +- src/prelude-client-profile.c | 190 ++++++++++++++++++++++++++++++++--- 4 files changed, 227 insertions(+), 33 deletions(-) commit 7444aac598b4338a9cce3984a032954ff0ea3947 Author: Yoann Vandoorselaere Date: Mon Sep 15 09:24:30 2008 +0000 Add test target git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10994 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 8469e48e62b01ba45994b0d3cc9ab3e197be2a06 Author: Yoann Vandoorselaere Date: Mon Sep 15 09:21:25 2008 +0000 GnuLib update, fixes a number of Win32 compilation error, include the relocatable module. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10993 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 50 +++- libmissing/errno.in.h | 150 ++++++++++++ libmissing/glthread/cond.c | 21 ++ libmissing/glthread/cond.h | 7 +- libmissing/m4/eoverflow.m4 | 70 ------ libmissing/m4/errno_h.m4 | 89 +++++++ libmissing/m4/gnulib-cache.m4 | 3 +- libmissing/m4/gnulib-comp.m4 | 30 +-- libmissing/m4/relocatable-lib.m4 | 56 +++++ libmissing/m4/sockets.m4 | 35 +++ libmissing/m4/stdio_h.m4 | 96 ++++---- libmissing/poll.c | 6 + libmissing/relocatable.c | 493 ++++++++++++++++++++++++++++++++++++++ libmissing/relocatable.h | 83 +++++++ libmissing/stdio.in.h | 16 ++ libmissing/sys_socket.in.h | 10 - libmissing/tests/Makefile.am | 47 ++-- libmissing/tests/dummy.c | 42 ---- libmissing/tests/sockets.c | 57 +++++ libmissing/tests/sockets.h | 32 +++ libmissing/tests/test-EOVERFLOW.c | 32 --- libmissing/tests/test-errno.c | 117 +++++++++ libmissing/tests/test-poll.c | 379 +++++++++++++++++++++++++++++ libmissing/tests/test-sockets.c | 44 ++++ libmissing/tests/test-tls.c | 126 +--------- 25 files changed, 1727 insertions(+), 364 deletions(-) commit f43b91f2ae441b2f915f261575edfc814d687c2c Author: Yoann Vandoorselaere Date: Mon Sep 15 09:21:20 2008 +0000 Move libgcrypt and gnutls initialization upon start. This is required since gcrypt is now used for operation outside authentication. Solve a WIN32 problem. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10992 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 56 +++++++++++++++++++++++++++++++++++++- src/tls-auth.c | 86 ++-------------------------------------------------------- 2 files changed, 58 insertions(+), 84 deletions(-) commit c62393c7394875cb6b7e117c44ac9cb9a38db758 Author: Yoann Vandoorselaere Date: Fri Sep 12 14:52:03 2008 +0000 Set CLOEXEC on opened fd. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10991 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 8183e28ae6accac6fbf302d3e1a33427d815089d Author: Yoann Vandoorselaere Date: Fri Sep 12 14:52:00 2008 +0000 Fix win32 return value. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10990 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99fee34abcc26682cfa6480d5853046da5c93079 Author: Yoann Vandoorselaere Date: Fri Sep 12 14:51:57 2008 +0000 Increase FD_SETSIZE to a decent value on WIN32. We can easily go higher than the default size due to failover. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10989 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 5 +++++ 1 file changed, 5 insertions(+) commit 1e0c85762d0b6c0b29b02295ff96e0b3f1fbdd34 Author: Yoann Vandoorselaere Date: Fri Sep 12 14:51:54 2008 +0000 Remove invalid mail address. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10988 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 2 +- src/idmef-criteria-string.lex.l | 4 ++-- src/idmef-path.c | 2 +- src/prelude-string.c | 3 +-- 4 files changed, 5 insertions(+), 6 deletions(-) commit 941358502dff744083527fdff6aa45e0771bf67f Author: Yoann Vandoorselaere Date: Fri Sep 12 14:51:51 2008 +0000 Win32 compatibility fixes. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10987 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit fc223900dcacb06c4ef5583ce7744b646f80bea3 Author: Yoann Vandoorselaere Date: Fri Sep 12 14:51:47 2008 +0000 Remove obsolete. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10986 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-write.c | 6 ------ src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 6 ------ 2 files changed, 12 deletions(-) commit c77210e1facc6df8a80fa5cfdf8044dd4158136a Author: Yoann Vandoorselaere Date: Wed Sep 10 14:28:08 2008 +0000 Win32 compatibility fixes. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10978 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 6c6c1b00e2ba8c036af17c6139acd9a47fdfb839 Author: Yoann Vandoorselaere Date: Wed Sep 10 14:27:07 2008 +0000 Win32 compatibility fixes. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10977 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 171abd3035594b13c919f3643233c82035ed45bc Author: Yoann Vandoorselaere Date: Wed Sep 10 14:20:58 2008 +0000 Win32 compatibility. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10976 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit e4f51e5f7d23b7b808ea06df56ffa16ea70c1c4f Author: Yoann Vandoorselaere Date: Wed Sep 10 14:18:32 2008 +0000 Add inet_pton module. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10975 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 17 +- libmissing/c-ctype.c | 396 +++++++++++++++++++++++++++++++++++++++ libmissing/c-ctype.h | 280 ++++++++++++++++++++++++++++ libmissing/inet_pton.c | 257 ++++++++++++++++++++++++++ libmissing/m4/gnulib-cache.m4 | 3 +- libmissing/m4/gnulib-comp.m4 | 7 + libmissing/m4/inet_pton.m4 | 27 +++ libmissing/tests/Makefile.am | 9 + libmissing/tests/test-c-ctype.c | 398 ++++++++++++++++++++++++++++++++++++++++ 9 files changed, 1392 insertions(+), 2 deletions(-) commit 8a7c1cd64336d0f740e66ef27e3781f417c2c345 Author: Yoann Vandoorselaere Date: Wed Sep 10 14:15:51 2008 +0000 Add sys_stat module. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10974 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 27 +++- libmissing/m4/gnulib-cache.m4 | 3 +- libmissing/m4/gnulib-comp.m4 | 5 + libmissing/m4/include_next.m4 | 6 +- libmissing/m4/sys_stat_h.m4 | 55 ++++++++ libmissing/sys_stat.in.h | 293 +++++++++++++++++++++++++++++++++++++++ libmissing/tests/Makefile.am | 9 ++ libmissing/tests/test-sys_stat.c | 263 +++++++++++++++++++++++++++++++++++ 8 files changed, 658 insertions(+), 3 deletions(-) commit 19bdeb82eca51f33060799996eb3606ebb45448d Author: Yoann Vandoorselaere Date: Wed Sep 10 14:15:24 2008 +0000 Fix possible configure warning. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10973 09c5ec92-17d4-0310-903a-819935f44dba m4/libprelude.m4 | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit c43b0fa95532bfd4b74ffe19637e51c5114fdae2 Author: Yoann Vandoorselaere Date: Tue Sep 9 08:54:01 2008 +0000 Update NEWS, bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10963 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 8 ++++++++ configure.in | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit 38632b3f4910bd4a0b7b93c416706a72c14b9260 Author: Yoann Vandoorselaere Date: Tue Sep 9 08:52:42 2008 +0000 Make sure thread storage is initialized before any call to prelude_error (fix #312). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10962 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-thread.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) commit c2b110c92be68e151acd41b0f8a81335b0f05f15 Author: Yoann Vandoorselaere Date: Sat Sep 6 17:15:21 2008 +0000 Fix invalid read. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10961 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3919095103619ada26c5edf9b903c9c526f5ddd3 Author: Yoann Vandoorselaere Date: Fri Sep 5 16:20:16 2008 +0000 Update NEWS, bump version. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10959 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 8 ++++++++ configure.in | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit 9abf180927264c22f5e718dd14a5b75e96f7c5a0 Author: Yoann Vandoorselaere Date: Fri Sep 5 16:20:13 2008 +0000 Correct libtool usage. Unit-test improvement. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10958 09c5ec92-17d4-0310-903a-819935f44dba tests/Makefile.am | 2 +- tests/async-timer.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) commit ca4328044a0ed7bcdffe1c299407d3e8c662aec5 Author: Yoann Vandoorselaere Date: Fri Sep 5 16:20:09 2008 +0000 Add asynchronous stack unit-tests. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10957 09c5ec92-17d4-0310-903a-819935f44dba tests/Makefile.am | 5 +++-- tests/async-timer.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 2 deletions(-) commit 31e6ba96f1271110ef24f107fade7a57aaf5b989 Author: Yoann Vandoorselaere Date: Fri Sep 5 10:50:05 2008 +0000 Fix for wrong gl_cond_timedwait() usage. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10956 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b5f9d35597012f7bc5bbae951e976779a9ad2713 Author: Yoann Vandoorselaere Date: Fri Sep 5 10:50:01 2008 +0000 Warning fixes. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10955 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/idmef-path.cxx | 2 ++ bindings/c++/idmef-value.cxx | 11 ++--------- bindings/c++/prelude-client.cxx | 3 +++ bindings/c++/prelude-connection-pool.cxx | 2 -- 4 files changed, 7 insertions(+), 11 deletions(-) commit a300f45d31d0b91049ea6e0f525ebd114ca70fdf Author: Yoann Vandoorselaere Date: Wed Sep 3 15:07:41 2008 +0000 Update NEWS, bump version. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10953 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 29 +++++++++++++++++++++++++++++ configure.in | 8 ++++---- libmissing/Makefile.am | 1 + 3 files changed, 34 insertions(+), 4 deletions(-) commit c61c21a2d21926013369eadcbaae4ee49b80b9a8 Author: Yoann Vandoorselaere Date: Wed Sep 3 15:07:38 2008 +0000 Automatic node name/address detection. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10952 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) commit a5bf69e427ee106a4baabc92fcdd2f9bfe63a357 Author: Yoann Vandoorselaere Date: Wed Sep 3 14:22:20 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10951 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 49 ++++-- libmissing/arpa_inet.in.h | 2 + libmissing/float.in.h | 4 +- libmissing/getdelim.c | 15 +- libmissing/m4/getdelim.m4 | 1 + libmissing/m4/include_next.m4 | 28 ++- libmissing/m4/lib-link.m4 | 27 ++- libmissing/m4/lib-prefix.m4 | 88 +++++++--- libmissing/netinet_in.in.h | 4 +- libmissing/poll.c | 390 +++++------------------------------------- libmissing/signal.in.h | 2 + libmissing/stdint.in.h | 3 +- libmissing/stdio.in.h | 2 + libmissing/stdlib.in.h | 2 + libmissing/string.in.h | 2 + libmissing/strings.in.h | 4 +- libmissing/sys_select.in.h | 4 +- libmissing/sys_socket.in.h | 2 + libmissing/sys_time.in.h | 4 +- libmissing/time.in.h | 4 +- libmissing/unistd.in.h | 2 + libmissing/vasnprintf.c | 2 +- libmissing/wchar.in.h | 2 + libmissing/wctype.in.h | 2 + 24 files changed, 226 insertions(+), 419 deletions(-) commit 1f3909a5c65f900c9bc7b9a7273476830ab2ab03 Author: Yoann Vandoorselaere Date: Wed Sep 3 14:22:12 2008 +0000 Consistency fixes: return the old value instead of creating a new one, this is the same as with raw IDMEF object. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10950 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 836 +++++++++++------------ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 26 +- 2 files changed, 385 insertions(+), 477 deletions(-) commit a2ebb274434423411fd40f7c77fca72d93e4deb1 Author: Yoann Vandoorselaere Date: Tue Sep 2 10:02:39 2008 +0000 Use SendIDMEF() method. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10949 09c5ec92-17d4-0310-903a-819935f44dba bindings/tests/test.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c32e14a702629ae5380ece48f97888ee498db1ba Author: Yoann Vandoorselaere Date: Tue Sep 2 09:04:11 2008 +0000 Update documentation. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10948 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 98 ++++------------ docs/api/libprelude-sections.txt | 55 +++++---- docs/api/tmpl/idmef-criteria.sgml | 9 ++ docs/api/tmpl/idmef-tree-wrap.sgml | 90 +++++++++++++++ docs/api/tmpl/idmef-value.sgml | 174 +++++++++++++++++++++++++++++ docs/api/tmpl/prelude-client.sgml | 22 ++++ docs/api/tmpl/prelude-connection-pool.sgml | 10 ++ docs/api/tmpl/prelude-connection.sgml | 19 ++++ docs/api/tmpl/prelude-msg.sgml | 9 ++ docs/api/tmpl/prelude.sgml | 23 +++- 10 files changed, 409 insertions(+), 100 deletions(-) commit 97f8effcba893b02c39e5c41c12f6da99c4eb303 Author: Yoann Vandoorselaere Date: Tue Sep 2 09:04:06 2008 +0000 Only call valgrind target if HAVE_VALGRIND is defined. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10947 09c5ec92-17d4-0310-903a-819935f44dba tests/Makefile.am | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 15e359eeb8ade7fb71c82ab711f75a329343f532 Author: Yoann Vandoorselaere Date: Tue Sep 2 09:04:03 2008 +0000 Fix API doc generation. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10946 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-helpers.c | 4 ++-- src/include/idmef-message-helpers.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit dbb87342306d438d7f3f634e6f2d294c4d813c8b Author: Yoann Vandoorselaere Date: Tue Sep 2 09:04:00 2008 +0000 Fix Perl PreludeEasy bindings IDMEF->Read(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10945 09c5ec92-17d4-0310-903a-819935f44dba bindings/libpreludecpp-perl.i | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0fef7eb7e45e6903bc30257b4c050f964a11f19b Author: Yoann Vandoorselaere Date: Thu Aug 28 10:30:04 2008 +0000 Call glthread_atfork() from a single place in prelude.c, introduce prelude_fork_prepare(), prelude_fork_parent() and prelude_fork_child() for system that doesn't have an 'atfork' function. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10942 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-async.h | 12 ++++++-- src/include/prelude-timer.h | 15 ++++++---- src/include/prelude.h.in | 7 +++++ src/prelude-async.c | 56 +++++++++++++++--------------------- src/prelude-timer.c | 32 ++++++++++----------- src/prelude.c | 69 +++++++++++++++++++++++++++++---------------- 6 files changed, 109 insertions(+), 82 deletions(-) commit 5a81af325f07615332baca927c783e9fc0103a4a Author: Yoann Vandoorselaere Date: Wed Aug 27 12:43:05 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10932 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 3 + libmissing/m4/string_h.m4 | 4 +- libmissing/poll.c | 390 ++++++++++++++++++++++++++++++++++---- libmissing/string.in.h | 12 ++ libmissing/tests/glthread/yield.h | 121 ++++++++++++ libmissing/tests/test-lock.c | 3 + libmissing/tests/test-tls.c | 3 + 7 files changed, 495 insertions(+), 41 deletions(-) commit 8c3cce2c1536f6f9d1cba31fd3ec6c3c4085a5fe Author: Yoann Vandoorselaere Date: Wed Aug 27 12:15:01 2008 +0000 Update. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10931 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/thread.m4 | 3 +++ 1 file changed, 3 insertions(+) commit 0fb62507f5b6be84fd49fb69283095679329755d Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:59 2008 +0000 Add new --thread and --no-thread option to libprelude-config. Update m4/libprelude.m4 to use them. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10930 09c5ec92-17d4-0310-903a-819935f44dba libprelude-config.in | 61 ++++++++++++++++++++++++++++++++++++++-------------- m4/libprelude.m4 | 42 ++++++++++++++++++++---------------- 2 files changed, 69 insertions(+), 34 deletions(-) commit 74552caa16f5a9845d8d5b55c5539a63332273fc Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:56 2008 +0000 Use glthread. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10929 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 6 +++--- src/libprelude-error/Makefile.am | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit 6618b7e32152fe2f66eb3f6c040953caceb60ad3 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:53 2008 +0000 Only rely on glthread API. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10928 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 36 +++--------------------------------- 1 file changed, 3 insertions(+), 33 deletions(-) commit 838cd970111a1689f43887e8fa6d7f8e46e3017e Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:49 2008 +0000 Remove any direct pthread dependencies. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10927 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 21 --------------------- 1 file changed, 21 deletions(-) commit 57378c98bc0916474ef5a017941fd96c308adae2 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:40 2008 +0000 Use glthead. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10926 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.c | 2 +- src/idmef-criteria-string.yac.y | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e481ec6328c5dcbdca3a7cfc04ff9ff8724778b9 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:37 2008 +0000 Add necessary thread dependency. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10925 09c5ec92-17d4-0310-903a-819935f44dba bindings/low-level/perl/Makefile.PL.in | 6 +++--- bindings/low-level/python/setup.py.in | 4 ++-- bindings/perl/Makefile.PL.in | 6 +++--- bindings/python/setup.py.in | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) commit 725e1534287bdb788c1f3d4df4d8b95e6aefdc8c Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:34 2008 +0000 Update to glthread git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10924 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 45 ++------- m4/acx_pthread.m4 | 280 ------------------------------------------------------ 2 files changed, 8 insertions(+), 317 deletions(-) commit 23410ebc199b5ae75ccbc89dfd874ef859f6d6f3 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:31 2008 +0000 Cleanup. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10923 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-thread.c | 2 -- 1 file changed, 2 deletions(-) commit 5493d81311f2a7f91ec4383a31bd1e5602e772ad Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:28 2008 +0000 Add sigprocmask module. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10922 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 48 +++++++- libmissing/m4/gnulib-cache.m4 | 3 +- libmissing/m4/gnulib-comp.m4 | 9 ++ libmissing/m4/signal_h.m4 | 31 +++++ libmissing/m4/signalblocking.m4 | 42 +++++++ libmissing/raise.c | 30 +++++ libmissing/signal.in.h | 162 +++++++++++++++++++++++++++ libmissing/sigprocmask.c | 242 ++++++++++++++++++++++++++++++++++++++++ 8 files changed, 565 insertions(+), 2 deletions(-) commit f67468df8b5e512b2123cbf301725683ddfe0999 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:25 2008 +0000 Remove deprecated. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10921 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-thread.h | 55 +------- src/prelude-thread.c | 304 ++----------------------------------------- 2 files changed, 15 insertions(+), 344 deletions(-) commit e621a51379c2d8f3bce4d45f2ce8217e02ff0c46 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:23 2008 +0000 Update to glthread API, use sigprocmask GnuLib module. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10920 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 145 +++++++++++++++------------------------------------- 1 file changed, 41 insertions(+), 104 deletions(-) commit 650f466b3633d11cdeac025302519b5bc7bb745c Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:20 2008 +0000 Update to glthread API. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10919 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.c | 107 ++++++++++++++++++++-------------------- src/idmef-criteria-string.yac.h | 2 +- 2 files changed, 55 insertions(+), 54 deletions(-) commit 83804bf0d0c6de48d0aed946a0e1494ab5ff57e0 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:17 2008 +0000 Update to glthread API. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10918 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 90443918685b4bb70c2864a660fd281bc6f6bd70 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:14 2008 +0000 Update to glthread API. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10917 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 05f449d09bf9ea1ed4e76d0b1008d5aa63fe6c2d Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:11 2008 +0000 Add missing signal.h git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10916 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 1 + 1 file changed, 1 insertion(+) commit 6bdc4a392e15e019866b259b0ba3bf373e3d3d96 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:08 2008 +0000 Add missing signal.h git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10915 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 1 + 1 file changed, 1 insertion(+) commit 54eeeab0d61cb729f81945aeae11ce82ba8b4ccd Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:05 2008 +0000 Include missing glthread code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10914 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/cond.m4 | 11 + libmissing/m4/lib-ld.m4 | 110 +++++++ libmissing/m4/lib-link.m4 | 739 +++++++++++++++++++++++++++++++++++++++++++ libmissing/m4/lib-prefix.m4 | 185 +++++++++++ libmissing/m4/lock.m4 | 37 +++ libmissing/tests/test-cond.c | 211 ++++++++++++ libmissing/tests/test-lock.c | 554 ++++++++++++++++++++++++++++++++ libmissing/tests/test-tls.c | 323 +++++++++++++++++++ 8 files changed, 2170 insertions(+) commit e9044df67983f5476ea8dd6e25788121f08ac3c7 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:14:02 2008 +0000 Include glthread modules. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10913 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 43 +- libmissing/glthread/cond.c | 52 ++ libmissing/glthread/cond.h | 348 +++++++++++++ libmissing/glthread/lock.c | 1053 +++++++++++++++++++++++++++++++++++++++ libmissing/glthread/lock.h | 927 ++++++++++++++++++++++++++++++++++ libmissing/glthread/thread.c | 206 ++++++++ libmissing/glthread/thread.h | 369 ++++++++++++++ libmissing/glthread/threadlib.c | 69 +++ libmissing/glthread/tls.c | 61 +++ libmissing/glthread/tls.h | 298 +++++++++++ libmissing/m4/gnulib-cache.m4 | 6 +- libmissing/m4/gnulib-comp.m4 | 42 ++ libmissing/m4/thread.m4 | 15 + libmissing/m4/threadlib.m4 | 314 ++++++++++++ libmissing/m4/tls.m4 | 12 + libmissing/m4/yield.m4 | 19 + libmissing/tests/Makefile.am | 34 ++ 17 files changed, 3865 insertions(+), 3 deletions(-) commit ef19560d66eb8f057fc932bf61ec9f9c24e91233 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:13:58 2008 +0000 Update to glthread API. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10912 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 7 deletions(-) commit 2b81008c6142a2c730fd2fdbfec41f01a315cf28 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:13:56 2008 +0000 Update to glthread API. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10911 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-timer.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit f9db56de35dc6205dc3840139833905626874222 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:13:52 2008 +0000 Update to glthread API. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10910 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit e60f8c2a8a03258d22031dbc8625bddce66dddcc Author: Yoann Vandoorselaere Date: Wed Aug 27 12:13:49 2008 +0000 Update to glthread API. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10909 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 67 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 34 insertions(+), 33 deletions(-) commit f90689683ae96879058e5cb7788af20ccf159537 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:13:46 2008 +0000 Update to glthread API. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10908 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 6f8f417cc96b27710b1a60fbd762b25a3e5f7ef3 Author: Yoann Vandoorselaere Date: Wed Aug 27 12:13:39 2008 +0000 Update to glthread API. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10907 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 58 ++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 28 deletions(-) commit 390a6c6741f9bec50e566f43c3d162215d5f5ac1 Author: Yoann Vandoorselaere Date: Mon Aug 18 15:31:23 2008 +0000 Support for valgrind when running unit-test. The code was adapted from gstreamer Makefile. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10874 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 26 ++++++++++++++++++++++++++ tests/Makefile.am | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) commit 20499172fbbda63513d0b4b528864ba66e945c53 Author: Yoann Vandoorselaere Date: Mon Aug 18 12:34:48 2008 +0000 Prevent memory leak. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10873 09c5ec92-17d4-0310-903a-819935f44dba tests/prelude-client.c | 3 +++ 1 file changed, 3 insertions(+) commit 0b741d648e0ade91d53651f53c66abaed1876959 Author: Yoann Vandoorselaere Date: Mon Aug 18 12:34:46 2008 +0000 Handle potential lags between command (prevent failure when running under valgrind). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10872 09c5ec92-17d4-0310-903a-819935f44dba tests/idmef.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ceda121ae6e70e98ccfa4de281dcd3a857645e76 Author: Yoann Vandoorselaere Date: Mon Aug 18 12:34:42 2008 +0000 Update Yacc generated code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10871 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.c | 84 ++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 42 deletions(-) commit 50f015926aa8bf3b78bafcc387caf4702c579c64 Author: Yoann Vandoorselaere Date: Mon Aug 18 12:34:37 2008 +0000 Revert [10864]. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10870 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 492f5b26412af70d6bc73d41dbbc446ed1adf90e Author: Yoann Vandoorselaere Date: Mon Aug 18 09:23:31 2008 +0000 Add missing. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10866 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.h | 112 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) commit 1117206cb7cb73ac5da45220a04febf3323f8e85 Author: Yoann Vandoorselaere Date: Mon Aug 18 09:14:47 2008 +0000 Add flex/yacc generated file, help build bots. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10865 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.c | 2182 +++++++++++++++++++++++++++++++++++++++ src/idmef-criteria-string.yac.c | 1990 +++++++++++++++++++++++++++++++++++ 2 files changed, 4172 insertions(+) commit 2ab95682174866a668e611971624eb319da9a643 Author: Yoann Vandoorselaere Date: Mon Aug 18 09:01:27 2008 +0000 Should fix an OpenBSD yacc generation problem. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10864 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 385cf8742c859c8aedf744bd954d940c6a9ec619 Author: Yoann Vandoorselaere Date: Thu Aug 14 14:01:40 2008 +0000 When copying the value prior doing the cast, set the copy to not own the value data. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10846 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f9fe9918ab705035d87fe58bb5422dd986e5e4ef Author: Yoann Vandoorselaere Date: Thu Aug 14 14:01:38 2008 +0000 New idmef-message-helper unit-test git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10845 09c5ec92-17d4-0310-903a-819935f44dba tests/Makefile.am | 2 +- tests/idmef-message-helper.c | 53 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) commit 9829d690ef860172cd9018ad6a989d4463e0f4c6 Author: Yoann Vandoorselaere Date: Thu Aug 14 14:01:35 2008 +0000 Fix idmef-path unit-test. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10844 09c5ec92-17d4-0310-903a-819935f44dba tests/idmef-path.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit d8529f66e1ef6ccb60c85bdd70ec211e29d900dc Author: Yoann Vandoorselaere Date: Thu Aug 14 08:35:41 2008 +0000 Include GnuLib tests directory. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10841 09c5ec92-17d4-0310-903a-819935f44dba libmissing/tests/Makefile.am | 342 +++++++++++++++++++++++++++++++++ libmissing/tests/dummy.c | 42 ++++ libmissing/tests/intprops.h | 77 ++++++++ libmissing/tests/test-EOVERFLOW.c | 32 ++++ libmissing/tests/test-alloca-opt.c | 62 ++++++ libmissing/tests/test-arpa_inet.c | 27 +++ libmissing/tests/test-fseeko.c | 65 +++++++ libmissing/tests/test-fseeko.sh | 5 + libmissing/tests/test-getaddrinfo.c | 155 +++++++++++++++ libmissing/tests/test-getdelim.c | 90 +++++++++ libmissing/tests/test-getline.c | 90 +++++++++ libmissing/tests/test-gettimeofday.c | 45 +++++ libmissing/tests/test-lseek.c | 103 ++++++++++ libmissing/tests/test-lseek.sh | 17 ++ libmissing/tests/test-memchr.c | 98 ++++++++++ libmissing/tests/test-memcmp.c | 82 ++++++++ libmissing/tests/test-memmem.c | 188 ++++++++++++++++++ libmissing/tests/test-netinet_in.c | 27 +++ libmissing/tests/test-snprintf.c | 72 +++++++ libmissing/tests/test-stdbool.c | 95 +++++++++ libmissing/tests/test-stdint.c | 360 +++++++++++++++++++++++++++++++++++ libmissing/tests/test-stdio.c | 30 +++ libmissing/tests/test-stdlib.c | 37 ++++ libmissing/tests/test-strcasestr.c | 155 +++++++++++++++ libmissing/tests/test-string.c | 27 +++ libmissing/tests/test-strings.c | 27 +++ libmissing/tests/test-sys_select.c | 27 +++ libmissing/tests/test-sys_socket.c | 47 +++++ libmissing/tests/test-sys_time.c | 29 +++ libmissing/tests/test-time.c | 29 +++ libmissing/tests/test-unistd.c | 44 +++++ libmissing/tests/test-vasnprintf.c | 128 +++++++++++++ libmissing/tests/test-vsnprintf.c | 85 +++++++++ libmissing/tests/test-wchar.c | 27 +++ libmissing/tests/test-wctype.c | 43 +++++ libmissing/tests/verify.h | 140 ++++++++++++++ 36 files changed, 2949 insertions(+) commit f0fa1e5206e9c907f0b8b4e3144f49d770925c05 Author: Yoann Vandoorselaere Date: Thu Aug 14 08:30:01 2008 +0000 On profile error, make sure the code is always PRELUDE_ERROR_PROFILE. More error checking. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10840 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 7f7ec6c04bb7063e7d47de354805ab43f3b30478 Author: Yoann Vandoorselaere Date: Thu Aug 14 08:29:58 2008 +0000 If casting the value fail, return unmodified idmef-value. Fixed non working uint32 and uint64 to time cast. Honor 'own_data' boolean when casting from/to a string (possible double free). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10839 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 78 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 28 deletions(-) commit 88343263540fcbd8033ff141740ccee6c332860c Author: Yoann Vandoorselaere Date: Thu Aug 14 08:29:55 2008 +0000 Update GnuLib options. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10838 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 2 +- libmissing/m4/gnulib-cache.m4 | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) commit ad78303831c28fd29cadd3ac108f298bf5b3d634 Author: Yoann Vandoorselaere Date: Thu Aug 14 08:29:53 2008 +0000 Start implementing libprelude unit tests. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10837 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 4 +- configure.in | 2 + tests/Makefile.am | 9 +++ tests/idmef-criteria.c | 57 ++++++++++++++ tests/idmef-path.c | 97 +++++++++++++++++++++++ tests/idmef-value.c | 208 +++++++++++++++++++++++++++++++++++++++++++++++++ tests/idmef.c | 25 ++++++ tests/prelude-client.c | 18 +++++ tests/prelude-string.c | 39 ++++++++++ 9 files changed, 457 insertions(+), 2 deletions(-) commit 7d021186bd7a7d413c9ebaab0d1b64901b6b77c9 Author: Yoann Vandoorselaere Date: Thu Aug 14 08:29:49 2008 +0000 Update GnuLib code, include unit tests. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10836 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 2 +- libmissing/m4/gnulib-cache.m4 | 5 +++-- libmissing/m4/gnulib-comp.m4 | 46 +++++++++++++++++++++++++++++++++++++++++-- libmissing/mktime.c | 4 +++- libmissing/poll.c | 34 ++++++++++++++++++++++---------- libmissing/regex_internal.h | 4 ++-- 6 files changed, 77 insertions(+), 18 deletions(-) commit b7333774d0f185baff8cc09135d233b964cd8372 Author: Yoann Vandoorselaere Date: Mon Aug 11 12:43:49 2008 +0000 Add missing autogenerated files. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10833 09c5ec92-17d4-0310-903a-819935f44dba bindings/low-level/python/setup.py.in | 85 +++++++++++++++++++++++++++++++++++ bindings/python/setup.py.in | 85 +++++++++++++++++++++++++++++++++++ 2 files changed, 170 insertions(+) commit d85a288a076ee5f1d91720133112fb8b83866386 Author: Yoann Vandoorselaere Date: Mon Aug 11 12:39:30 2008 +0000 Exit in case of command failure. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10832 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8e026033f3043d0d380bcc99b04a97c03f1058ba Author: Yoann Vandoorselaere Date: Mon Aug 11 12:39:12 2008 +0000 Correct C++ include installation path. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10831 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c43ffb1df74b62a8c95dc3493aef2b6ba5474eba Author: Yoann Vandoorselaere Date: Tue Aug 5 13:28:32 2008 +0000 Update NEWS, version bump. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10828 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 41 +++++++++++++++++++++++++++++++++-------- configure.in | 10 +++++----- 2 files changed, 38 insertions(+), 13 deletions(-) commit 0323ce6faab7249eb1bff902090aa26dbecd1584 Author: Yoann Vandoorselaere Date: Tue Aug 5 13:26:24 2008 +0000 Remove unstable API. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10827 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/prelude-error.hxx | 2 -- bindings/c++/prelude-error.cxx | 7 ------- 2 files changed, 9 deletions(-) commit a18538915f05b6403d83d7ee00e2541fbca578a0 Author: Yoann Vandoorselaere Date: Tue Aug 5 11:13:30 2008 +0000 Revert to Python distutils for installing language bindings. Using autoconf would work, but wouldn't install in the correct prefix in case the user running make install was root. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10826 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 +- bindings/low-level/python/Makefile.am | 26 +++++++++++++++----------- bindings/python/Makefile.am | 24 +++++++++++++++--------- bindings/ruby/Makefile.am | 1 - configure.in | 20 ++++++++++++++++++-- 5 files changed, 49 insertions(+), 24 deletions(-) commit 50a26db16200ba5d20ad4519c733f439b53a5b4d Author: Yoann Vandoorselaere Date: Tue Aug 5 08:32:38 2008 +0000 Fix typo. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10825 09c5ec92-17d4-0310-903a-819935f44dba bindings/low-level/python/Makefile.am | 2 +- bindings/python/Makefile.am | 2 +- bindings/ruby/Makefile.am | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 8456bac87db74fc2fb0bdc94d5fa1fc6455861ba Author: Yoann Vandoorselaere Date: Mon Aug 4 16:07:40 2008 +0000 Set library soname, link to libprelude.la. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10824 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d4601bfc667f5b94e2db1e26a184957ab9cd53df Author: Yoann Vandoorselaere Date: Mon Aug 4 16:07:36 2008 +0000 Error out if EasyBindings are enabled, but not C++ compiler is available. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10823 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 44daf32ecc94a5dc2fb3dbaef56a9ee8dabceadd Author: Yoann Vandoorselaere Date: Mon Aug 4 16:07:33 2008 +0000 Correct variable name. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10822 09c5ec92-17d4-0310-903a-819935f44dba bindings/low-level/python/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a916c8f86baf73f5f88a815f66516c732313edeb Author: Yoann Vandoorselaere Date: Mon Aug 4 14:30:23 2008 +0000 Set error, when creating a PreludeError() from string. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10821 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/prelude-error.cxx | 2 ++ 1 file changed, 2 insertions(+) commit aea94b5fe1d9c21a19b162c11609fff0b74c60df Author: Yoann Vandoorselaere Date: Mon Aug 4 14:30:18 2008 +0000 Handle more Ruby version. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10820 09c5ec92-17d4-0310-903a-819935f44dba m4/am_path_ruby.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f97c988c2b739eb398c0253cfdf1fef8634d5ac Author: Yoann Vandoorselaere Date: Mon Aug 4 14:30:16 2008 +0000 Add RUBY_CFLAGS, RUBY_LIBS where appropriate. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10819 09c5ec92-17d4-0310-903a-819935f44dba bindings/ruby/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dd8646ffa437878f85d00d8df9adcfa615f945d7 Author: Yoann Vandoorselaere Date: Mon Aug 4 14:30:13 2008 +0000 Complete Python/Ruby check. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10818 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) commit 8c5b040ddcaf2709c48872f5360db5f22994b144 Author: Yoann Vandoorselaere Date: Mon Aug 4 14:30:11 2008 +0000 Add missing link to libprelude. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10817 09c5ec92-17d4-0310-903a-819935f44dba bindings/low-level/python/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit c31e75a3e796d0e79844d7460bd579d7088e3f8e Author: Pierre Chifflier Date: Thu Jul 31 09:30:48 2008 +0000 Fix ruby detection: check if we can actually build extensions, not only if the interpreter is present. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10799 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 9 +++++++++ 1 file changed, 9 insertions(+) commit 5b019fe8c8b2f87f0deeda89d1f8a3e3e23b558f Author: Pierre Chifflier Date: Thu Jul 31 09:07:55 2008 +0000 Fix build without easy bindings. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10798 09c5ec92-17d4-0310-903a-819935f44dba bindings/lua/Makefile.am | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit b623587b66b64a1e281e4cff5b21f3f5de7251c6 Author: Yoann Vandoorselaere Date: Tue Jul 29 12:56:02 2008 +0000 Do not include generated script in the distribution. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10782 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/Makefile.am | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7bc07af23ab070962a1ee78d4ecf3a79060f5409 Author: Yoann Vandoorselaere Date: Tue Jul 29 12:55:58 2008 +0000 Really fix regression introduced in [10653], alert created with empty CreateTime. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10781 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 8 ++++---- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 13 +++++++------ 2 files changed, 11 insertions(+), 10 deletions(-) commit 477f9836482d1bcafe4396f3eb866ffc21356bce Author: Yoann Vandoorselaere Date: Mon Jul 28 15:50:08 2008 +0000 Update. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10773 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 171 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 168 insertions(+), 3 deletions(-) commit c016c4def354b64183a8d02ee60c7c14f02a8872 Author: Yoann Vandoorselaere Date: Mon Jul 28 15:50:02 2008 +0000 Remove unused. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10772 09c5ec92-17d4-0310-903a-819935f44dba bindings/libpreludecpp.i | 2 -- 1 file changed, 2 deletions(-) commit d4c82a89ed3bc8cb5b291c8060e7bebc02f00ca0 Author: Yoann Vandoorselaere Date: Mon Jul 28 15:49:59 2008 +0000 Fix regression introduced in [10653], alert created with empty CreateTime. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10771 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 4 ++++ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) commit 718ffbeb61bf6e99bef2eddaf838b94f28bc3280 Author: Yoann Vandoorselaere Date: Fri Jul 25 15:10:54 2008 +0000 Implement prelude_connection_recv_idmef(). Implement Connection::RecvIDMEF() and Connection::GetFd(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10757 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/prelude-connection.hxx | 6 +++++ bindings/c++/prelude-connection.cxx | 26 ++++++++++++++++++-- src/include/prelude-connection.h | 4 ++- src/prelude-connection.c | 38 +++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 3 deletions(-) commit 9ccc8d77720bf7d9b264165400807b5c051d4f7e Author: Yoann Vandoorselaere Date: Fri Jul 25 15:08:34 2008 +0000 Consistancy fixes. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10756 09c5ec92-17d4-0310-903a-819935f44dba bindings/ruby/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 01f29871249155166cdb488ac4f33c8d054e13fb Author: Yoann Vandoorselaere Date: Fri Jul 25 15:05:30 2008 +0000 API style fixes. Implement std::string operator for PreludeError. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10755 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/prelude-error.hxx | 3 ++- bindings/c++/prelude-error.cxx | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) commit c3f11f3379224056aae7b2326bcb2f18a07016e6 Author: Yoann Vandoorselaere Date: Fri Jul 25 13:09:40 2008 +0000 Remove un-needed dependency. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10752 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/idmef.hxx | 1 - 1 file changed, 1 deletion(-) commit 268ecdb16ed8a1be3666516b1da9a64c19f66916 Author: Yoann Vandoorselaere Date: Fri Jul 25 13:07:59 2008 +0000 Fix Ruby detection. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10751 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e1537694fae02bf188264f5a876b3cb13b77b705 Author: Yoann Vandoorselaere Date: Fri Jul 25 13:07:56 2008 +0000 When language support exception, return the native exception object (not only a string, excepted for Perl and LUA, which does not support exception). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10750 09c5ec92-17d4-0310-903a-819935f44dba bindings/libpreludecpp-perl.i | 6 ++++++ bindings/libpreludecpp.i | 6 ++---- bindings/lua/libpreludecpp-lua.i | 5 +++++ 3 files changed, 13 insertions(+), 4 deletions(-) commit 1039c917c3a505bf1ed23bba3a3302cf7545f215 Author: Yoann Vandoorselaere Date: Fri Jul 25 08:01:14 2008 +0000 Make Python bindings generation depend on all .hxx files. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10744 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 81296623afd0c077e05130be9d26fd541ed7bce1 Author: Yoann Vandoorselaere Date: Fri Jul 25 08:00:16 2008 +0000 Implement prelude_connection_pool_del_connection(), map to ConnectionPool::DelConnection(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10743 09c5ec92-17d4-0310-903a-819935f44dba bindings/c++/include/prelude-connection-pool.hxx | 2 + bindings/c++/prelude-connection-pool.cxx | 6 +++ src/include/prelude-connection-pool.h | 2 + src/prelude-connection-pool.c | 55 ++++++++++++++++++++---- 4 files changed, 57 insertions(+), 8 deletions(-) commit 7e3d29c9e213de82d3ed7cac6cfe04ed70a54f35 Author: Yoann Vandoorselaere Date: Fri Jul 25 07:27:41 2008 +0000 Make bindings generation depend on all .hxx files. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10742 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 15 +-------------- bindings/lua/Makefile.am | 2 +- bindings/ruby/Makefile.am | 2 +- 3 files changed, 3 insertions(+), 16 deletions(-) commit 0e57ac3c1b62859a2546e7a0bd4e0f8f96c069bc Author: Yoann Vandoorselaere Date: Thu Jul 24 12:50:56 2008 +0000 Remove deprecated, fix libpreludecpp-lua.i path. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10739 09c5ec92-17d4-0310-903a-819935f44dba bindings/low-level/python/setup.py.in | 85 ----------------------------------- bindings/lua/Makefile.am | 2 +- bindings/python/setup.py.in | 85 ----------------------------------- bindings/ruby/extconf.rb.in | 14 ------ 4 files changed, 1 insertion(+), 185 deletions(-) commit 8b6a368f42f39229aa1f8b14adb67a58b123f7e6 Author: Yoann Vandoorselaere Date: Thu Jul 24 12:19:48 2008 +0000 Squashed commit of the following: commit 876984d7209d99a4fca597d443fd5e1e02fdfc27 Author: yoann Date: Thu Jul 24 11:58:25 2008 +0000 Add missing git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10736 09c5ec92-17d4-0310-903a-819935f44dba commit 08de6d98ea57671ad2223fefc58ddb8c82922e14 Author: yoann Date: Thu Jul 24 11:58:21 2008 +0000 Add missing git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10735 09c5ec92-17d4-0310-903a-819935f44dba commit d5735641eb9efe4a3d26ed2a458dcf98cebcfe82 Author: yoann Date: Thu Jul 24 08:00:04 2008 +0000 Use autoconf AM_PATH_PYTHON(), implement AM_PATH_RUBY, based on AM_PATH_PYTHON(). Build Python/Ruby modules using the automake build system. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10731 09c5ec92-17d4-0310-903a-819935f44dba commit 939c55d77dd3717de3c71b9e25038260352b7bd1 Author: yoann Date: Tue Jul 22 16:44:27 2008 +0000 Disable ruby support for now, since we haven't been able to find a way to install these binding cleanly. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10726 09c5ec92-17d4-0310-903a-819935f44dba commit fbb5d38873825af8315faa4e5c058bfd88944ef9 Author: yoann Date: Tue Jul 22 13:45:11 2008 +0000 Fix reference to an inexisting variable. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10712 09c5ec92-17d4-0310-903a-819935f44dba commit 26f9ee544d8e8746690a5813d653200bfe6d7c4d Author: yoann Date: Wed Jun 25 14:48:25 2008 +0000 Fix the profile name git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10607 09c5ec92-17d4-0310-903a-819935f44dba commit 10aa052077d33b3ceec87fc23c8c6c39cb6ee308 Author: yoann Date: Wed Jun 25 14:45:30 2008 +0000 Update pooling test to fit latest RecvIDMEF API changes. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10606 09c5ec92-17d4-0310-903a-819935f44dba commit c1464ce1ffc35b4a1c04d237d5cc2ed654bbbe1d Author: yoann Date: Mon May 26 15:01:49 2008 +0000 Modify RecvIDMEF prototype so that it might return information about whether or not a message was received. Update alert_saver.py example. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10593 09c5ec92-17d4-0310-903a-819935f44dba commit 053d3f33f1c92d0a06755ec25cf63e360c9d6bd9 Author: yoann Date: Mon May 26 15:01:42 2008 +0000 Remove confusing operator. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10592 09c5ec92-17d4-0310-903a-819935f44dba commit 116c684f4ce43e411b858afbf3162a03b7031a55 Author: toady Date: Sun May 25 22:17:59 2008 +0000 uninstall target to remove ruby PreludeEasy library git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10591 09c5ec92-17d4-0310-903a-819935f44dba commit 4282aa16a50f2b509656c804fa292c00bab6b605 Author: toady Date: Mon May 19 21:12:51 2008 +0000 remove my dirty hack away from svn git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10590 09c5ec92-17d4-0310-903a-819935f44dba commit e69c1b357d4be2dbf50814000692b08e4a56e7bb Author: pollux Date: Mon May 12 15:00:42 2008 +0000 Update comments in ruby and lua examples git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10589 09c5ec92-17d4-0310-903a-819935f44dba commit b2c876c6da0b07e2ffdce482d805eeba2f45f0df Author: pollux Date: Mon May 12 14:54:24 2008 +0000 Lua bindings: check if argument for Read/Write is a file, and throw an exception if not. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10588 09c5ec92-17d4-0310-903a-819935f44dba commit f834fe45a7c9762bdf4c80c3fb07de2aceee1ad2 Author: pollux Date: Mon May 12 14:40:55 2008 +0000 Fix Lua >= 5.1 detection git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10587 09c5ec92-17d4-0310-903a-819935f44dba commit ed1400545f14274d5f98f09489093fdfa0b60dd4 Author: pollux Date: Mon May 12 14:05:32 2008 +0000 Python bindings: check if argument for Read/Write is a file, and throw an exception if not. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10586 09c5ec92-17d4-0310-903a-819935f44dba commit 858b1604c6c2fdd4ac524594d7795780f1e93a2f Author: pollux Date: Wed May 7 13:00:44 2008 +0000 Update examples for alert saving/replaying to current Easy bindings API. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10580 09c5ec92-17d4-0310-903a-819935f44dba commit dcb45dbbc823d61963d69887b99db546fda4ac41 Author: yoann Date: Wed May 7 09:19:51 2008 +0000 Include idmef-message-helpers.h, not idmef-message-helper.h git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10579 09c5ec92-17d4-0310-903a-819935f44dba commit 52fd7b2ce1d1f3daabefa8cb7aa041a427fc027d Author: yoann Date: Wed May 7 08:55:50 2008 +0000 Cleanup. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10578 09c5ec92-17d4-0310-903a-819935f44dba commit e0486b17d2174ca7a9995a1a4f1fdd26363c69fb Author: yoann Date: Wed May 7 07:51:44 2008 +0000 Rename readIDMEF / writeIDMEF to Read() / Write(). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10576 09c5ec92-17d4-0310-903a-819935f44dba commit 26367d3ab6daae49a4ff95e6efc48bbcddb56f3d Author: yoann Date: Wed May 7 07:51:40 2008 +0000 Helper is plural... git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10575 09c5ec92-17d4-0310-903a-819935f44dba commit bd4bd43e827dc5b8d4a3d1b2a2873e5045017372 Author: yoann Date: Wed May 7 07:43:14 2008 +0000 Implement a bunch of C IDMEF messages helpers functions: idmef_message_set_value(); idmef_message_get_value(); idmef_message_set_string(); idmef_message_get_string(); idmef_message_set_number(); idmef_message_get_number(); idmef_message_set_data(); idmef_message_get_data(); git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10574 09c5ec92-17d4-0310-903a-819935f44dba commit 5e78cfb2d64e5ad3244c5650c3fddbd050b30cff Author: yoann Date: Wed May 7 07:43:06 2008 +0000 Ability to cast IDMEF value to string. Move casting to/from string to separate functions. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10573 09c5ec92-17d4-0310-903a-819935f44dba commit 5f39a7e60f87ad0df7c1ecad787f2142b4e8ddad Author: yoann Date: Wed Apr 30 15:28:02 2008 +0000 Implement _idmef_value_copy_internal(), that is able to make use of _idmef_value_cast() without modifying the input value. Modify idmef_path_set() to use _idmef_value_copy_internal() in place of _idmef_value_cast(): avoid modifying the input value. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10563 09c5ec92-17d4-0310-903a-819935f44dba commit 0dd89971d2a8c42818155d2e5e35deed7bf039e4 Author: toady Date: Tue Apr 29 12:56:42 2008 +0000 use the sed variable from autotools git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10560 09c5ec92-17d4-0310-903a-819935f44dba commit efe2d5ea8f3072908fe11c1287133f7f9bcf410b Author: yoann Date: Tue Apr 29 12:40:49 2008 +0000 Add missing. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10559 09c5ec92-17d4-0310-903a-819935f44dba commit 46ae22f69b7a557869d5c0861dc88728e85146bc Author: toady Date: Tue Apr 29 12:39:26 2008 +0000 handling ruby mkmf crap to have a clean install that respects the prefix git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10558 09c5ec92-17d4-0310-903a-819935f44dba commit 2b0be608b049893f2140250534ea606bf57829aa Author: yoann Date: Tue Apr 29 12:36:53 2008 +0000 More prelude-easy -> preludecpp renaming. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10557 09c5ec92-17d4-0310-903a-819935f44dba commit abcd6d931831c09ff28f15188cd5e8b489a2e5d6 Author: yoann Date: Tue Apr 29 12:36:20 2008 +0000 Start renaming prelude-easy to preludecpp git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10556 09c5ec92-17d4-0310-903a-819935f44dba commit be1823ef3160a675f08e4754a25097218410be26 Author: yoann Date: Fri Apr 25 12:47:19 2008 +0000 Remove unused PreludeIO wrapper. Start fixing distcheck. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10544 09c5ec92-17d4-0310-903a-819935f44dba commit 4e9c45ce1cd7a932ee42bcac8f72fe56fa0320b3 Author: yoann Date: Fri Apr 25 09:23:05 2008 +0000 Handle redirection operator. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10543 09c5ec92-17d4-0310-903a-819935f44dba commit fbf996fe3086fa657edc8b0e74ed3353d165c702 Author: yoann Date: Thu Apr 24 08:14:50 2008 +0000 Remove debugging spew, fix coding style. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10533 09c5ec92-17d4-0310-903a-819935f44dba commit 86477c68ee5f246badc53b49e6a49900e2ec3f4a Author: yoann Date: Thu Apr 24 08:14:20 2008 +0000 Handle read/write error correctly. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10532 09c5ec92-17d4-0310-903a-819935f44dba commit 5365c57bde7ab9c3f62bf0955712d486683df485 Author: pollux Date: Wed Apr 23 12:22:00 2008 +0000 Implement basic stream operator to set timeout when reading idmef object. Example: client >> SetRecvTimeout(10) >> idmef; git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10518 09c5ec92-17d4-0310-903a-819935f44dba commit 17fdd2177974759c902ebcf6dacf4c5da7d806a6 Author: pollux Date: Mon Apr 21 13:19:44 2008 +0000 Test code for read/write IDMEF in lua, ruby, perl and python git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10508 09c5ec92-17d4-0310-903a-819935f44dba commit 4334a0fb491ee15830790278630ab553f1e0bf33 Author: pollux Date: Mon Apr 21 13:13:06 2008 +0000 Fix installation of ruby bindings (now respect ) git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10507 09c5ec92-17d4-0310-903a-819935f44dba commit 652426c44525fd64377ae0ccc211e7a454610356 Author: pollux Date: Mon Apr 21 12:06:31 2008 +0000 Fix read/write functions: extract PerlIO object from SV git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10506 09c5ec92-17d4-0310-903a-819935f44dba commit 24cdee039978d0baa49205753865d73023d60a3e Author: yoann Date: Mon Apr 21 09:33:38 2008 +0000 Fix invalid member function declaration. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10505 09c5ec92-17d4-0310-903a-819935f44dba commit c064630ed223fb749b4d99a6af9963678abf06db Author: yoann Date: Mon Apr 21 08:54:53 2008 +0000 Start modularizing of IDMEF read/write code. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10504 09c5ec92-17d4-0310-903a-819935f44dba commit 19d3d1d6225def9c62d476d9195d32a8ebaa159e Author: pollux Date: Sun Apr 20 13:55:36 2008 +0000 Ruby bindings: add functions to read/write IDMEF files from/to Ruby IO objects. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10503 09c5ec92-17d4-0310-903a-819935f44dba commit 4dc6df114573099fff46be8b43ef9de29edbaf60 Author: pollux Date: Sun Apr 20 12:52:47 2008 +0000 LUA bindings: add functions to read/write IDMEF files from/to LUA IO objects. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10502 09c5ec92-17d4-0310-903a-819935f44dba commit 7ba9bd72b1e9107fd8ece944f78a2a9accf03e8c Author: toady Date: Thu Apr 17 09:54:18 2008 +0000 ruby workaround to cleanly install lib git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10496 09c5ec92-17d4-0310-903a-819935f44dba commit 1e95b4c2252b50f1dc16ac5af8bf38619e5c1fc1 Author: pollux Date: Thu Apr 17 08:03:34 2008 +0000 Fix lua detection to work with version 5.0 git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10492 09c5ec92-17d4-0310-903a-819935f44dba commit 9b4df0521d1b97b5a8c04687d9be50db1a8b8661 Author: pollux Date: Wed Apr 16 19:26:59 2008 +0000 Recent versions of lua (>= 5.1) use pkg-config (and not the previous tool lua-config). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10491 09c5ec92-17d4-0310-903a-819935f44dba commit 11b70c8b9950c119f61627a7ac111cd6aa600db9 Author: pollux Date: Wed Apr 16 18:51:01 2008 +0000 Python bindings: add functions to read/write IDMEF files from/to Python IO objects. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10490 09c5ec92-17d4-0310-903a-819935f44dba commit 15649e060be4813f162ebf9707d6d76e9244c707 Author: pollux Date: Wed Apr 16 18:50:07 2008 +0000 Perl bindings: add functions to read/write IDMEF files from/to perl IO objects. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10489 09c5ec92-17d4-0310-903a-819935f44dba commit d1da1a34feb08a5c307c77b67320adda02d3e560 Author: yoann Date: Thu Apr 3 14:45:07 2008 +0000 Fix a harmless race in the way we checked for global async_flags change. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10471 09c5ec92-17d4-0310-903a-819935f44dba commit b3a86091420706ac99ead0ea0e5ec2fe49b0d75a Author: yoann Date: Thu Apr 3 14:45:03 2008 +0000 Remove old cross bindings initialization code, replaced with language specific call to prelude_init(). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10470 09c5ec92-17d4-0310-903a-819935f44dba commit 42b4b45b05505baec2f1383cbd38e1b7f2a73b71 Author: yoann Date: Thu Mar 27 16:59:55 2008 +0000 When the module initialize, retrieve argc/argv from lua/perl/ruby/python, and use the result to call prelude_init(). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10446 09c5ec92-17d4-0310-903a-819935f44dba commit f0eaef2e7b1c3afc50c9d92ce2f81481c066f936 Author: yoann Date: Thu Mar 13 18:01:02 2008 +0000 Add idmef << client, and client >> idmef operator for reading IDMEF messages. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10404 09c5ec92-17d4-0310-903a-819935f44dba commit 183ece0cb35a3c5773b04f461930e9fdeb95fde7 Author: yoann Date: Thu Mar 13 18:00:52 2008 +0000 When casting a double/float to idmef_data_t, make sure we're not dealing with an integer value. If we are, set the resulting idmef_data_t to integer. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10403 09c5ec92-17d4-0310-903a-819935f44dba commit 1a835e13d8f04c6a2ec547de7bb3947170bf336d Author: yoann Date: Thu Mar 13 18:00:48 2008 +0000 data / time and enum are special types. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10402 09c5ec92-17d4-0310-903a-819935f44dba commit d0c5607fd704f2341ff84fa76c48f07acec23f20 Author: yoann Date: Thu Mar 13 12:27:37 2008 +0000 Fix check when casting double and float value. Compute the relative difference between the two values and then error out if it exceed a certain threshold. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10398 09c5ec92-17d4-0310-903a-819935f44dba commit 083ba414d1123e0b50e5ea519ff5a4d940928d75 Author: yoann Date: Wed Mar 12 17:21:53 2008 +0000 Remove home made implementation of RecvIDMEF(), and wrap the new prelude_client_recv_idmef() API function as a Client class method. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10397 09c5ec92-17d4-0310-903a-819935f44dba commit b942e0a32026ebea69815d4551966fd8dbc01a88 Author: yoann Date: Wed Mar 12 17:21:43 2008 +0000 Implement prelude_client_recv_msg() and prelude_client_recv_idmef(). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10396 09c5ec92-17d4-0310-903a-819935f44dba commit f0b780d086f04267b3597d34f763bc7bd449ec32 Author: yoann Date: Wed Mar 12 17:21:35 2008 +0000 Use the provided timeout parameter. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10395 09c5ec92-17d4-0310-903a-819935f44dba commit a4020b390583b98da854085dcb6e7f8f4d5aefbf Author: yoann Date: Tue Mar 11 15:32:37 2008 +0000 Return an empty list if _value is NULL. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10391 09c5ec92-17d4-0310-903a-819935f44dba commit eab69d13e655acc4cf2ab93f33d7b311c6b21c95 Author: yoann Date: Tue Mar 11 14:08:07 2008 +0000 Return _idmef_value_cast() error if any. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10389 09c5ec92-17d4-0310-903a-819935f44dba commit 8b52caf9f02d1fafda6a947cc869f926756f3130 Author: yoann Date: Tue Mar 11 14:08:00 2008 +0000 When casting a value, appropriatly detect target value overflow and issue the appropriate error. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10388 09c5ec92-17d4-0310-903a-819935f44dba commit f0943248cfe5804ca96cc613befa4eef1f465970 Author: yoann Date: Mon Mar 10 11:44:37 2008 +0000 Some cleanup, update for latest code. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10384 09c5ec92-17d4-0310-903a-819935f44dba commit 3791a4cd50884034e41826b778bffaba0cf80aab Author: yoann Date: Mon Mar 10 11:44:32 2008 +0000 Pass IDMEF message by value, allow using pointer to an IDMEFValue instead of a reference (allow for NULL value). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10383 09c5ec92-17d4-0310-903a-819935f44dba commit 76e0081d51f6773f5ad659a198d144b09ad8c236 Author: yoann Date: Mon Mar 10 11:44:25 2008 +0000 Fix double declaration. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10382 09c5ec92-17d4-0310-903a-819935f44dba commit 30fceea065952bae2ba4f27add86f7664d01f61a Author: Yoann Vandoorselaere Date: Fri Mar 7 12:11:28 2008 +0100 When we encounter a TLS fatal error on close, close the connection fd immediatly. commit afc21d31c516d33f956173ed852da85a10b3bfbc Author: yoann Date: Thu Mar 6 16:24:24 2008 +0000 Adapt to trunk build system modification. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10353 09c5ec92-17d4-0310-903a-819935f44dba commit 600d68b534f25612e6923659a3e51d6e2c599723 Author: yoann Date: Thu Mar 6 16:24:20 2008 +0000 Adapt to trunk latest build fixes. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10352 09c5ec92-17d4-0310-903a-819935f44dba commit d5a7144fac43a79b3a466b81f35a61b735b145fc Author: yoann Date: Thu Mar 6 11:57:15 2008 +0000 Revert "Revert "Merge ../libprelude"" This reverts commit 649250f27acfefab2271f2bddfabd024951e7c2e. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10345 09c5ec92-17d4-0310-903a-819935f44dba commit a684d07ec9cbe604a18c94c7243a7b9a9376664c Author: yoann Date: Thu Mar 6 11:57:01 2008 +0000 Revert "Merge ../libprelude" This reverts commit 396e763eb281266e37a7501f4f2ea084656435d0. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10344 09c5ec92-17d4-0310-903a-819935f44dba commit 21a42c7aba965cb5808b4e2c8f6cc626b557a207 Author: yoann Date: Thu Mar 6 11:56:52 2008 +0000 Revert "Fix conflict." This reverts commit 120920f7947aa65e739cd01a3eeb97684c26e465. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10343 09c5ec92-17d4-0310-903a-819935f44dba commit 14b9cfac90a19ea8f696b28c3939eb7786d99e22 Author: yoann Date: Thu Mar 6 11:56:38 2008 +0000 Fix conflict. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10342 09c5ec92-17d4-0310-903a-819935f44dba commit 821f6be190aee6e4f7b0ceba996bd833482dec51 Author: yoann Date: Thu Mar 6 11:56:21 2008 +0000 Fix retrieval of IDMEFTime (this actually will break retrieval of static IDMEF time within the tree - work in progress). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10340 09c5ec92-17d4-0310-903a-819935f44dba commit 0b7337ae8d229c2ac455fab40c1550b9ee66822d Author: yoann Date: Thu Mar 6 11:56:15 2008 +0000 Reference connection before pushing it into the list. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10339 09c5ec92-17d4-0310-903a-819935f44dba commit 0ad844c2c7c24fce04afc788e7234709d69a8136 Author: yoann Date: Thu Mar 6 11:56:10 2008 +0000 Use reference on object copy. Implement Clone() method. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10338 09c5ec92-17d4-0310-903a-819935f44dba commit b87c8f2b71553c6a6dd5bffb940a3ca80da233b2 Author: yoann Date: Wed Mar 5 16:32:11 2008 +0000 Use reference to object, and Clone() method to copy. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10335 09c5ec92-17d4-0310-903a-819935f44dba commit d533456bb82fc47a48f5e3fb625c345ca09dd128 Author: yoann Date: Tue Mar 4 15:24:25 2008 +0000 Fix possible ClientProfile leak. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10333 09c5ec92-17d4-0310-903a-819935f44dba commit 55f17201fd04b1cc3ac7b0a3e9b2ffe3e469f30b Author: yoann Date: Tue Mar 4 14:56:13 2008 +0000 Proper handling of ConnectionPool copy/reference. Reference connection before calling prelude_connection_pool_add_connection(), since it's not owned by prelude_connection_pool. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10332 09c5ec92-17d4-0310-903a-819935f44dba commit 4fbbcb84b67ddb5709d5baa2ce28ac0f6e4cd35a Author: yoann Date: Tue Mar 4 14:56:09 2008 +0000 Implement prelude_connection_pool_ref(), necessary for proper handling of ConnectionPool class. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10331 09c5ec92-17d4-0310-903a-819935f44dba commit 47147c9690571099ed45c0fcec2e7608695c496c Author: yoann Date: Tue Mar 4 14:56:05 2008 +0000 Reference the connection where needed. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10330 09c5ec92-17d4-0310-903a-819935f44dba commit a1d461e86066ec29a3d089831bda5bd6f22d2324 Author: yoann Date: Tue Mar 4 14:55:58 2008 +0000 Handle AUTOCONFIG Client flags. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10329 09c5ec92-17d4-0310-903a-819935f44dba commit 3fbe98dc80b47a4f2edd1178729eadd18b866e0b Author: yoann Date: Tue Mar 4 12:35:01 2008 +0000 Add refcount support to prelude_connection_t API. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10323 09c5ec92-17d4-0310-903a-819935f44dba commit 7a446f171e73d73d5a05035ccc27110e80bf1df0 Author: yoann Date: Tue Mar 4 12:34:55 2008 +0000 Add refcount support to idmef_criteria_t API. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10322 09c5ec92-17d4-0310-903a-819935f44dba commit 75e43a10d4ba339258ffbd2df1906c6ca273604d Author: yoann Date: Mon Mar 3 17:57:04 2008 +0000 Link to libpelude.la, should fix build breakage experienced by certain users. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10319 09c5ec92-17d4-0310-903a-819935f44dba commit bb06cfeecf3885b54909b1512789dee62699921d Author: yoann Date: Mon Mar 3 17:14:16 2008 +0000 Add support for --c++ command line option. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10318 09c5ec92-17d4-0310-903a-819935f44dba commit 323072028d109db690a58bdc7be3d120c60dbbb8 Author: yoann Date: Mon Mar 3 16:56:05 2008 +0000 Correct include path, and include install directory. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10317 09c5ec92-17d4-0310-903a-819935f44dba commit 6048e941d0c3f0315a5b79b1785307cf0d9a7955 Author: yoann Date: Wed Feb 27 11:42:18 2008 +0000 Pass IDMEFTime() and IDMEFValue() by reference. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10296 09c5ec92-17d4-0310-903a-819935f44dba commit de95b4535f3b06a1634c5afe47e7a4a77db06f39 Author: yoann Date: Tue Feb 26 13:50:09 2008 +0000 New sample test for LUA, Perl, Ruby, Python. Each test program demonstrate how to set and retrieved IDMEF fields, creating a client and sending the created IDMEF message to this client. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10295 09c5ec92-17d4-0310-903a-819935f44dba commit 0ed5547ccd9d339d7fb416e81d5ad0e08d041e0e Author: yoann Date: Tue Feb 26 13:45:35 2008 +0000 Remove debugging code, use in-class ToString() declaration in place of renaming un-handled std::string operator. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10294 09c5ec92-17d4-0310-903a-819935f44dba commit e13bc89763a70ed89e1931614d1c1fea3c3e43a8 Author: yoann Date: Tue Feb 26 13:45:32 2008 +0000 Correctly automate printing of class with LUA. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10293 09c5ec92-17d4-0310-903a-819935f44dba commit 4b37406eb41b24e437e9c8a16c5104757c606be4 Author: yoann Date: Tue Feb 26 13:45:28 2008 +0000 Implement ToString() method, used by operator std::string(). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10292 09c5ec92-17d4-0310-903a-819935f44dba commit 8bbcc0691574d01b2c0db26ea7471de30e04e72a Author: yoann Date: Tue Feb 26 12:33:47 2008 +0000 Move language specific stuff to language specific typemaps. Kill most Swig warnings. Corrected implementation of Perl listed IDMEFValue retrieval. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10291 09c5ec92-17d4-0310-903a-819935f44dba commit dc4588699f60a213283fadc021dfbc9b4c4009b2 Author: yoann Date: Tue Feb 26 12:33:32 2008 +0000 Consistency work on 'const' keyword use. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10290 09c5ec92-17d4-0310-903a-819935f44dba commit 7b0e628b079c9034fd95437837ddb968b9ca397a Author: yoann Date: Tue Feb 26 12:33:23 2008 +0000 Fix a bug that prevented generation of Python swig generated code to be triggered in case easy_python.i changed. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10289 09c5ec92-17d4-0310-903a-819935f44dba commit 66a091afbdf721614b319e944d725c5c67682b80 Author: yoann Date: Mon Feb 25 17:11:35 2008 +0000 Update connection list on GetConnectionList(), since the list might have been updated in the backend. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10288 09c5ec92-17d4-0310-903a-819935f44dba commit fb24d374a0931a4a7e68bfad858526af334077d7 Author: yoann Date: Mon Feb 25 17:11:22 2008 +0000 Fix compilation error with certain GCC version. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10287 09c5ec92-17d4-0310-903a-819935f44dba commit a76483c397db41e2dae266f3aa357d7449392712 Author: yoann Date: Mon Feb 25 17:11:13 2008 +0000 Make _profile member accessible from the Client class. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10286 09c5ec92-17d4-0310-903a-819935f44dba commit beb77a02331b4fb2e59c45e731dc49cd8f3e22c1 Author: yoann Date: Mon Feb 25 17:11:10 2008 +0000 Make the Client class inherit from ClientProfile. Additionally, update the profile on Init() method call. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10285 09c5ec92-17d4-0310-903a-819935f44dba commit 79012e82948129655c6576472924542737048018 Author: yoann Date: Mon Feb 25 17:11:04 2008 +0000 Add missing include file dependencies. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10284 09c5ec92-17d4-0310-903a-819935f44dba commit c7fe144077b04b26a4d553ba3a4f64026774e99a Author: yoann Date: Mon Feb 25 16:29:55 2008 +0000 Use redirection operator. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10283 09c5ec92-17d4-0310-903a-819935f44dba commit 2636216438a99c3b2f571a2cacdd49d15d848d63 Author: yoann Date: Mon Feb 25 16:07:44 2008 +0000 Implement LUA and Ruby bindings. All bindings now feature retrieval of listed IDMEFValue (except Perl, still having problem). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10282 09c5ec92-17d4-0310-903a-819935f44dba commit ae2579b5e2f8841eeb6a261e42cf158927773d2d Author: yoann Date: Sat Feb 23 10:32:21 2008 +0000 Fix undefined reference. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10281 09c5ec92-17d4-0310-903a-819935f44dba commit 35218bd73c529383676045cce0edadf13e5426d5 Author: yoann Date: Sat Feb 23 10:28:30 2008 +0000 More work on automatic cast, remove old accessors. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10280 09c5ec92-17d4-0310-903a-819935f44dba commit 7b9da50d9cc76d18881e05a79f3e2559b2c9f2a9 Author: yoann Date: Sat Feb 23 10:28:24 2008 +0000 More automatic cast. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10279 09c5ec92-17d4-0310-903a-819935f44dba commit 85dbe62ffee478c8de6f244c54a38d88ccf980f1 Author: yoann Date: Sat Feb 23 10:28:20 2008 +0000 Fix broken overload for AddConnection() method. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10278 09c5ec92-17d4-0310-903a-819935f44dba commit 5f0e8157dfad4af4a36d36b290b6789603dea083 Author: yoann Date: Sat Feb 23 10:28:16 2008 +0000 Implement some missing methods. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10277 09c5ec92-17d4-0310-903a-819935f44dba commit 5423ff98e93d229285a2bd97ee87045ea02d6774 Author: yoann Date: Sat Feb 23 10:28:12 2008 +0000 Rewrite bindings for prelude-connection-pool. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10276 09c5ec92-17d4-0310-903a-819935f44dba commit 2a6ea017255b68ccdaa718a8081400f1b2f39463 Author: yoann Date: Sat Feb 23 10:28:08 2008 +0000 Automatic cast to prelude_connection_t. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10275 09c5ec92-17d4-0310-903a-819935f44dba commit a2a2b6f90cf2a4cfb039658aa6a24825efbd7a02 Author: yoann Date: Sat Feb 23 10:28:04 2008 +0000 Add the Connection class, bindings for prelude-connection. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10274 09c5ec92-17d4-0310-903a-819935f44dba commit 432449b32b55ea0122f4d25bab53697b6fc6177d Author: yoann Date: Sat Feb 23 10:27:59 2008 +0000 Code cleanup, Start() has to be called by the user. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10273 09c5ec92-17d4-0310-903a-819935f44dba commit 5443ae8805123934e64b428da8ac4cd0b9385734 Author: yoann Date: Sat Feb 23 10:27:27 2008 +0000 Support copying of IDMEF object. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10272 09c5ec92-17d4-0310-903a-819935f44dba commit 589c766e6377a494580922c0694f19381847940c Author: yoann Date: Fri Feb 22 15:10:34 2008 +0000 Minor cleanup, add << and >> operator to IDMEF and Client class: - client << idmef - idmef >> client git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10271 09c5ec92-17d4-0310-903a-819935f44dba commit 1b9eb6a1e4aa742d4aa4b58ea5f13466290a9bd7 Author: yoann Date: Fri Feb 22 15:10:11 2008 +0000 Publicly inherit Prelude::Client, remove SendIDMEF method, use the parent method. Add code to handle option message on RecvIDMEF(). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10270 09c5ec92-17d4-0310-903a-819935f44dba commit 6e95a8d968aefa2bcc3120abf879a97fff70b031 Author: yoann Date: Fri Feb 22 15:09:35 2008 +0000 Add a new constructor, taking the profile name as argument, and a GetClientProfile() method. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10269 09c5ec92-17d4-0310-903a-819935f44dba commit 19b9975ca0d09fc37d668fbc8ed4528593d8f8bf Author: yoann Date: Thu Feb 21 16:19:39 2008 +0000 Encapsulate every class into the Prelude namespace. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10268 09c5ec92-17d4-0310-903a-819935f44dba commit ae97c8a59c9f5e747e111e9c3f55eafd9ab7be48 Author: yoann Date: Thu Feb 21 14:20:44 2008 +0000 Exception class improvements. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10267 09c5ec92-17d4-0310-903a-819935f44dba commit 6a7f345af76fa53b4d4d5b2f8ea43ea311292b89 Author: yoann Date: Thu Feb 21 13:44:22 2008 +0000 Update test. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10266 09c5ec92-17d4-0310-903a-819935f44dba commit 4c73f94695f1ec4071848491080a155ff66d5be6 Author: yoann Date: Thu Feb 21 13:44:18 2008 +0000 Update.. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10265 09c5ec92-17d4-0310-903a-819935f44dba commit 9ba90b2f7f721894ab6b08e786426e6f4917aa1b Author: yoann Date: Thu Feb 21 13:40:42 2008 +0000 Do not try to send a final heartbeat on prelude_client_destroy() if the client object was not at least at the starting status (fix possible assertion on destroy). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10264 09c5ec92-17d4-0310-903a-819935f44dba commit bed1239acff5e297006a9cc690da276e0eff77a4 Author: yoann Date: Thu Feb 21 13:10:24 2008 +0000 Implement ClientEasy() class, inheriting from the Client() class, and allowing easy implementation of a Prelude client. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10262 09c5ec92-17d4-0310-903a-819935f44dba commit f458c885e6fb501431f9353bdf9759814240b9e5 Author: yoann Date: Thu Feb 21 13:10:19 2008 +0000 Don't provide any helper in Client() bindings to PreludeClient, wrap the interface in a strict fashion. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10261 09c5ec92-17d4-0310-903a-819935f44dba commit 1e318df2e70939c2ddf73d4a31589accebd41868 Author: yoann Date: Thu Feb 21 11:41:19 2008 +0000 Introduce prelude_msg_get_message_data(), that provide access to the whole message buffer. Modify IDMEF class so that it make use of this function in order to write a message to an ofstream. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10260 09c5ec92-17d4-0310-903a-819935f44dba commit 1e519edf7fe0cb83680b826c39e9373d13d6dc55 Author: yoann Date: Wed Feb 20 17:58:37 2008 +0000 Major rework, IDMEFValue is not returned as a pointer anymore. Reference to low level idmef_value_t are handled cleanly. The C++ code for retrieving listed idmef-value is in place. Major IDMEF class rework, implement << and >> operator on ofstream and ifstream. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10259 09c5ec92-17d4-0310-903a-819935f44dba commit 3d55ee0345ff115b436b658de49bbd95addc4ffa Author: yoann Date: Wed Feb 20 17:39:18 2008 +0000 Cleanup. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10258 09c5ec92-17d4-0310-903a-819935f44dba commit aca082c7b81cdea41ba0e5b3567391c6aab88f8f Author: yoann Date: Wed Feb 20 16:32:45 2008 +0000 Whitespace police. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10257 09c5ec92-17d4-0310-903a-819935f44dba commit 9976f32f03a6db186a5ef502e40cfaa16381bc8a Author: yoann Date: Wed Feb 20 09:39:09 2008 +0000 [PATCH] Allow user to associate it's own callback function to a prelude_io_t object. Implement: - prelude_io_set_write_callback() - prelude_io_set_read_callback() - prelude_io_set_pending_callback() - prelude_io_set_fdptr(). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10255 09c5ec92-17d4-0310-903a-819935f44dba commit d53df1f86ca276041adcdf5c6cc0556b4bd32ace Author: yoann Date: Wed Feb 20 09:20:32 2008 +0000 Fix string translation of IDMEF_CRITERION_OPERATOR_(NOT_)NULL to string. Remove gratuitous space insertion when dumping criteria. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10253 09c5ec92-17d4-0310-903a-819935f44dba commit 1543baddabb6e2eb65fdfe63914d67ef355b503d Author: yoann Date: Wed Feb 20 09:20:23 2008 +0000 Whitespace police. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10252 09c5ec92-17d4-0310-903a-819935f44dba commit ecbfde59ff580c6499405c090d4f3b6547a6175c Author: yoann Date: Wed Feb 20 09:20:18 2008 +0000 In case of invalid enumeration value, print . git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10251 09c5ec92-17d4-0310-903a-819935f44dba commit bb0db770a8b3c044490ebdd2336dde7e9333c859 Author: yoann Date: Wed Feb 20 09:20:14 2008 +0000 (bindings): for functions returning pointers to integers, dereference the pointer and return either the integer, or the native equivalent to NULL (None for Python, undef for Perl). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10250 09c5ec92-17d4-0310-903a-819935f44dba commit 302083efd0879aff28d62b3dfcd519480de1c718 Author: yoann Date: Wed Feb 20 09:19:59 2008 +0000 Update NEWS, bump version number. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10249 09c5ec92-17d4-0310-903a-819935f44dba commit db00d5721d4b26dd62a25340c3c6706605f1bbee Author: yoann Date: Wed Feb 20 09:19:46 2008 +0000 Update GnuLib code. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10248 09c5ec92-17d4-0310-903a-819935f44dba commit 70d612feda3534fa40a15ce359b9305c284ded2a Author: yoann Date: Wed Feb 20 09:19:17 2008 +0000 SWIG bindings: add typemaps to arguments of *_get_next* functions, to allow NULL arguments, which are forbidden by default by SWIG (Fix #269) git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10247 09c5ec92-17d4-0310-903a-819935f44dba commit 7fdec558ecc252a3421922f9cced4cbe9f3cd92a Author: yoann Date: Wed Feb 20 09:19:12 2008 +0000 FreeBSD compilation fix. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10246 09c5ec92-17d4-0310-903a-819935f44dba commit 62473da95bddc6916a0ecb8a26354d2e32968b05 Author: yoann Date: Wed Feb 20 09:18:57 2008 +0000 Whitespace police. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10245 09c5ec92-17d4-0310-903a-819935f44dba commit 0acb1e511dacc9e0e46083184ab3bd4125f7b2ef Author: yoann Date: Wed Feb 20 09:18:52 2008 +0000 Update to newer acx_pthread.m4 git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10244 09c5ec92-17d4-0310-903a-819935f44dba commit f6fde960b5dc523763084cc32f549d0a9d908d1c Author: yoann Date: Wed Feb 20 09:18:41 2008 +0000 Solaris warnings fixes. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10243 09c5ec92-17d4-0310-903a-819935f44dba commit 5925b970e442bf769c7821e2a1ff294d38c2daa6 Author: yoann Date: Wed Feb 20 09:18:29 2008 +0000 Update NEWS, bump version number. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10242 09c5ec92-17d4-0310-903a-819935f44dba commit d15000d45ebf673bb7eda8fb0d79f764f3a6cc70 Author: yoann Date: Wed Feb 20 09:18:10 2008 +0000 Avoid warning while generating the documentation due to change in the way we named function argument for auto generated IDMEF functions. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10241 09c5ec92-17d4-0310-903a-819935f44dba commit 1d887995620714dc70e29c09fd9da027d78a49c2 Author: yoann Date: Wed Feb 20 09:17:39 2008 +0000 Update GnuLib code. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10240 09c5ec92-17d4-0310-903a-819935f44dba commit 5629a11e5cc932eb9c4acea90f3967fb2f96eade Author: yoann Date: Wed Feb 20 09:16:52 2008 +0000 Improve error message in case of locking error. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10239 09c5ec92-17d4-0310-903a-819935f44dba commit f3c4b7f5ab1828f4249d0db60efd762e95a39609 Author: yoann Date: Wed Feb 20 09:16:36 2008 +0000 Fix invalid use of 'GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED' with early GnuTLS version (close #268). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10238 09c5ec92-17d4-0310-903a-819935f44dba commit 1c508db0b07346390bd7b75bfce6a3c0e646b467 Author: yoann Date: Wed Feb 20 09:16:18 2008 +0000 Small improvement to the way pthread_cond_timedwait() absolute time is computed. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10237 09c5ec92-17d4-0310-903a-819935f44dba commit 23601dc70afb42daebf2e021314046804a18bc70 Author: yoann Date: Wed Feb 20 09:15:56 2008 +0000 Send heartbeat as high priority message. It is important that heartbeat are delivred in time, since they give indication about the health of the system. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10236 09c5ec92-17d4-0310-903a-819935f44dba commit 05a8c3c98aca5d4c8f104a37fe076fc21849541b Author: yoann Date: Wed Feb 20 09:15:44 2008 +0000 Whitespace police. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10235 09c5ec92-17d4-0310-903a-819935f44dba commit 22c91712a43a79df5c4687cdd62777f86d8f7270 Author: yoann Date: Wed Feb 20 09:15:22 2008 +0000 Patch from Pierre Chifflier to propagate CC variable when building bindings (fix #264). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10234 09c5ec92-17d4-0310-903a-819935f44dba commit e8dca7863e99cd34e677b1b4ca71a249c7b52bef Author: yoann Date: Wed Feb 20 09:15:17 2008 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10233 09c5ec92-17d4-0310-903a-819935f44dba commit 07fb53105b257b616fe24ca35776bfb9170794eb Author: yoann Date: Wed Feb 20 09:15:06 2008 +0000 (bugfix): This assert should check the two values git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10232 09c5ec92-17d4-0310-903a-819935f44dba commit e05e1058d8b0790c031b2cd779d94389f3f9feb4 Author: yoann Date: Wed Feb 20 09:14:55 2008 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10231 09c5ec92-17d4-0310-903a-819935f44dba commit 0ec128392085e0fc39f2a899b443aebf54f6e5ec Author: yoann Date: Wed Feb 20 09:14:38 2008 +0000 Directory creation permissions fixes. Specify our own umask() before creating any profile with prelude-admin, so that the created group will always have the correct permissions. Make the profile backup directory group writable. The profile directory itself remain group readable. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10230 09c5ec92-17d4-0310-903a-819935f44dba commit 56d3f8ac32591f21ab3f2f63fa4624bf2a656e3f Author: yoann Date: Wed Feb 20 09:14:31 2008 +0000 Revert "Mask group write / other all permissions before creating any files." This reverts commit b0ce0a5e2a7604c9062fd463a37e4999a375994e. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10229 09c5ec92-17d4-0310-903a-819935f44dba commit 83dfab83c76cc63bfdfcee4fd18e523f098fb027 Author: yoann Date: Wed Feb 20 09:14:23 2008 +0000 Mask group write / other all permissions before creating any files. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10228 09c5ec92-17d4-0310-903a-819935f44dba commit 1f908d3d52e5fd0003787fa498fe9fecaf6bec08 Author: yoann Date: Wed Feb 20 08:56:40 2008 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10227 09c5ec92-17d4-0310-903a-819935f44dba commit 7140f4558b9bfc42a5acba83e806dc465c08a223 Author: yoann Date: Wed Feb 20 08:56:30 2008 +0000 Set appropriate umask() before creating failover files. Additionally set the failover file group writable. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10226 09c5ec92-17d4-0310-903a-819935f44dba commit e209631acf282f618a0dadf9f3b7b7d35ef8c74a Author: yoann Date: Wed Feb 20 08:56:21 2008 +0000 Directory creation permissions fixes. Specify our own umask() before creating any profile with prelude-admin, so that the created group will always have the correct permissions. Make the profile backup directory group writable. The profile directory itself remain group readable. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10225 09c5ec92-17d4-0310-903a-819935f44dba commit 82d36bbaa70c7b6c0df59f4f92d5efd51c95a34b Author: yoann Date: Wed Feb 20 08:56:12 2008 +0000 Revert "Mask group write / other all permissions before creating any files." This reverts commit b0ce0a5e2a7604c9062fd463a37e4999a375994e. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10224 09c5ec92-17d4-0310-903a-819935f44dba commit c60ad49214494877d0bb601aa002aeaace4b5924 Author: yoann Date: Wed Feb 20 08:56:07 2008 +0000 Mask group write / other all permissions before creating any files. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10223 09c5ec92-17d4-0310-903a-819935f44dba commit 559eafb13ac1e1f2eab83d5be4d2c6f15bd6b2cb Author: yoann Date: Wed Feb 20 08:55:57 2008 +0000 Correctly format "send" command help output. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10222 09c5ec92-17d4-0310-903a-819935f44dba commit 766913b62ab9f1ca00e89b924e7af56f36b44b01 Author: yoann Date: Wed Feb 20 08:52:43 2008 +0000 (fix): when the analyzer has a white space in its name git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10221 09c5ec92-17d4-0310-903a-819935f44dba commit 0417cf36fd9a9a4e4121a576ac675c9f8a919061 Author: yoann Date: Wed Feb 20 08:50:09 2008 +0000 Constructor taking the native C type as argument now take an optional own_data integer (default to FALSE). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10220 09c5ec92-17d4-0310-903a-819935f44dba commit 7df8222ee5e4154ca00123c645bf2b6985bbd5f6 Author: yoann Date: Wed Feb 20 08:50:04 2008 +0000 Remove Clone() and Copy() method, that are now handled by specialized operator. Add the necessary operator for time comparison. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10219 09c5ec92-17d4-0310-903a-819935f44dba commit bf5ce9a85f1d86cdd26df7e82d9f1643e61258ac Author: yoann Date: Wed Feb 20 08:49:59 2008 +0000 Implement ToString() method, add std::string operator. Copy/clone the criteria on object copy. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10218 09c5ec92-17d4-0310-903a-819935f44dba commit a100f1dbaad6c7c8469d64a93a126d39078e8073 Author: yoann Date: Wed Feb 20 08:49:16 2008 +0000 Avoid undefined reference with bindings. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10217 09c5ec92-17d4-0310-903a-819935f44dba commit c6f0d771e9c17d5eadeaed936926a96f0df9f5c0 Author: yoann Date: Sat Feb 16 17:37:56 2008 +0000 More idmef-value to 'data' cast fixes. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10213 09c5ec92-17d4-0310-903a-819935f44dba commit 40450c24c7f1f893287c6046ce3166aaa7f1ec1f Author: yoann Date: Sat Feb 16 14:07:55 2008 +0000 Fix double idmef_time_t free. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10212 09c5ec92-17d4-0310-903a-819935f44dba commit e61cef469800e50f1e6d369943dc13d6b73a76d2 Author: yoann Date: Sat Feb 16 13:58:48 2008 +0000 Missing idmef-value update for 'data' type cast. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10211 09c5ec92-17d4-0310-903a-819935f44dba commit 0f16531bfdcfa910f3c0efe6eaa4f5278b193fd5 Author: yoann Date: Sat Feb 16 13:58:44 2008 +0000 Move operator definition where they belong, and properly handle most contained idmef_value_t. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10210 09c5ec92-17d4-0310-903a-819935f44dba commit 18b14783855ec7c1fa2dcee70faaedf7a296bfbd Author: yoann Date: Sat Feb 16 13:58:39 2008 +0000 Implement prelude_except_if_fail(), improve PreludeError class. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10209 09c5ec92-17d4-0310-903a-819935f44dba commit 25c9594a8278beebdd746ba96da5b0d0dba16b48 Author: yoann Date: Sat Feb 16 13:58:04 2008 +0000 Attempt to cast the provided value if it not compatible with the path. Until now, if an user tried to set a path of a specific type with an idmef_value_t object containing another type, idmef_path_set() would return an error. We now attempt to cast the user provided idmef_value_t to the path defined value. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10208 09c5ec92-17d4-0310-903a-819935f44dba commit bef23efc49d837da13d06694d89693fab59d34be Author: yoann Date: Sat Feb 16 13:25:45 2008 +0000 Allow casting idmef_value_t to an idmef_value_t of another type. This provide a set of enhancements to the idmef-value interface: - idmef_value_set() function for every idmef-value type. - _idmef_value_cast() to convert the given idmef_value_t, to the provided idmef_value_type_id_t argument. - Refactor some code. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10207 09c5ec92-17d4-0310-903a-819935f44dba commit 8264ef2b9bd6b977e5be8c6b0de6a7976da9d557 Author: yoann Date: Fri Feb 15 09:07:21 2008 +0000 Improved error message, in case no compatible data is found. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10206 09c5ec92-17d4-0310-903a-819935f44dba commit e528bca7469b7b0c32830bdce4cd629fd4532d91 Author: yoann Date: Fri Feb 15 09:07:13 2008 +0000 Declare optional arguments in the IDMEFPath header. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10205 09c5ec92-17d4-0310-903a-819935f44dba commit e2a0ea9ab1054aaaeafce89a10d0c3aa1e2cb59e Author: yoann Date: Fri Feb 15 09:07:04 2008 +0000 Ability to set IDMEFTime object. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10204 09c5ec92-17d4-0310-903a-819935f44dba commit b1b140076356c3aa708ff3adb607810b5a24a5b1 Author: yoann Date: Fri Feb 15 09:06:59 2008 +0000 Handle Get() for value of type data. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10203 09c5ec92-17d4-0310-903a-819935f44dba commit b1771660acfd3436f0f74a4a6a5e4cc4609d715e Author: yoann Date: Fri Feb 15 09:06:52 2008 +0000 Detailled error message in case of unsupported value. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10202 09c5ec92-17d4-0310-903a-819935f44dba commit 459907eb014bc1678dfd74824ef3724cbfd12d18 Author: yoann Date: Thu Feb 14 17:00:31 2008 +0000 Provide the ability to specify our own PreludeError() message. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10201 09c5ec92-17d4-0310-903a-819935f44dba commit dfae951a38633c4efd5925ee0460042dddcd7920 Author: yoann Date: Thu Feb 14 17:00:18 2008 +0000 Compile c++ before low-level bindings. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10200 09c5ec92-17d4-0310-903a-819935f44dba commit c6f130d24a4446941ffc4744426d6709eef7d949 Author: yoann Date: Thu Feb 14 17:00:11 2008 +0000 More detailed error messages, bind IDMEFTime operator. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10199 09c5ec92-17d4-0310-903a-819935f44dba commit 67ac54e4dd487738026e7ee5d8e29a9976a643db Author: yoann Date: Thu Feb 14 16:58:42 2008 +0000 Implement int, long, double, and std::string operator for IDMEFTime. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10198 09c5ec92-17d4-0310-903a-819935f44dba commit 03b385ddeebb4cd05083e980aa1d2f0449a4f79c Author: yoann Date: Thu Feb 14 10:00:16 2008 +0000 Handle IDMEFTime * return from Get() method. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10197 09c5ec92-17d4-0310-903a-819935f44dba commit 896776f2788d09fea9602de86887f3c5777be24b Author: yoann Date: Thu Feb 14 08:54:09 2008 +0000 Return undef/None when required, and handle a Perl specific issue where returned values would always be undef. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10196 09c5ec92-17d4-0310-903a-819935f44dba commit c90879076c4371cbfb2453a7990c57326fbf058e Author: yoann Date: Thu Feb 14 08:49:03 2008 +0000 Continued work on idmef-tree-wrap.hxx auto-generation. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10195 09c5ec92-17d4-0310-903a-819935f44dba commit 5fbf3c51a350e0e78e192e665ad3765fcfd9ab97 Author: yoann Date: Thu Feb 14 08:16:31 2008 +0000 Map prelude low-level datatype to type understood by Swig. Additionally, check that IDMEFValue pointer is not NULL in the IDMEFValue * typemap. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10194 09c5ec92-17d4-0310-903a-819935f44dba commit b3b93701d598c8b214e5191e99a611bb6bc11763 Author: yoann Date: Thu Feb 14 08:16:27 2008 +0000 Perl headers define a Copy() macro that conflict with our Copy methods, this should fix the compilation problem. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10193 09c5ec92-17d4-0310-903a-819935f44dba commit 0a7a09766235043aafa4e311e845bb9dff701fbd Author: yoann Date: Thu Feb 14 08:16:23 2008 +0000 Avoid undefined reference in perl/python bindings. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10192 09c5ec92-17d4-0310-903a-819935f44dba commit 5c0cc2d05ed70948703a6e60f38aa903222a9ff2 Author: yoann Date: Thu Feb 14 08:16:01 2008 +0000 Returned IDMEFValue are a pointer again, so we can handle NULL value, which is not an error. Implement missing Set() operator. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10191 09c5ec92-17d4-0310-903a-819935f44dba commit 6eceff3af6b21dc608fb7e6168854ab75dac1c73 Author: yoann Date: Thu Feb 14 08:15:55 2008 +0000 Implement language independant exception handling. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10190 09c5ec92-17d4-0310-903a-819935f44dba commit d58032eeb74a85c787ed1f2ba9f6bd98c62e43d1 Author: yoann Date: Thu Feb 14 08:15:50 2008 +0000 Further work on generic exception handling. Implement GetMessage() and GetError() methods. Declare a const char* operator. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10189 09c5ec92-17d4-0310-903a-819935f44dba commit 1a76e40aa6c706dac7cc44f5f815b5e769c6dfa7 Author: yoann Date: Thu Feb 14 08:13:46 2008 +0000 Do not use prelude_string_get_string_released, since it modify the source string. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10188 09c5ec92-17d4-0310-903a-819935f44dba commit 21fed04533be391e0cc3117aae7f66f1db0510f4 Author: yoann Date: Mon Feb 11 20:53:39 2008 +0000 New IDMEFTime C++ wrapper, requirement for wrapping IDMEF tree. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10187 09c5ec92-17d4-0310-903a-819935f44dba commit c7da494c6b0a84cc398c0dec386febe3475b45c9 Author: yoann Date: Mon Feb 11 18:03:47 2008 +0000 More work on wrapping the whole IDMEF tree. Still not functional throught. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10186 09c5ec92-17d4-0310-903a-819935f44dba commit 60bf274de1de4f9933bea538eafd095db55be2dd Author: yoann Date: Mon Feb 11 16:43:57 2008 +0000 Update low-level bindings directory. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10185 09c5ec92-17d4-0310-903a-819935f44dba commit e5960c18de5e495e5b5962f814b457211b21e69f Author: yoann Date: Mon Feb 11 16:36:27 2008 +0000 Remove debug spew. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10184 09c5ec92-17d4-0310-903a-819935f44dba commit 429f1035f437ca3730e1c7274ced41e4ed37e713 Author: yoann Date: Mon Feb 11 16:35:29 2008 +0000 make distcheck fixes. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10183 09c5ec92-17d4-0310-903a-819935f44dba commit 05a376171f87f57e1aa783d34f583db7fb9b2ab7 Author: yoann Date: Mon Feb 11 15:40:56 2008 +0000 Generate SWIG bindings for idmef-criteria. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10182 09c5ec92-17d4-0310-903a-819935f44dba commit ceb7792e59ae5ca02f486a1628edfec24e524092 Author: yoann Date: Mon Feb 11 15:30:44 2008 +0000 Add missing copyright notice. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10181 09c5ec92-17d4-0310-903a-819935f44dba commit 5ab5c174b41cab6dd7754dc60fadaca05dfb9511 Author: yoann Date: Mon Feb 11 15:24:32 2008 +0000 Add idmef-criteria.cxx to the build. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10180 09c5ec92-17d4-0310-903a-819935f44dba commit 9c7871d2fd27c593bb40f036cda366d587d3cfb2 Author: yoann Date: Mon Feb 11 15:24:28 2008 +0000 C++ bindings for idmef-criteria API. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10179 09c5ec92-17d4-0310-903a-819935f44dba commit d1cf3fbe828498b5f181b31b9e12e695d84f03d6 Author: yoann Date: Mon Feb 11 15:23:06 2008 +0000 Add missing. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10178 09c5ec92-17d4-0310-903a-819935f44dba commit 92579fa7afaed39274d58970be79720fe1a7008d Author: yoann Date: Mon Feb 11 15:21:53 2008 +0000 Fix include filename. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10177 09c5ec92-17d4-0310-903a-819935f44dba commit 03b049598c98fe73e79d1833a0c87ed05eaa6001 Author: yoann Date: Mon Feb 11 14:49:00 2008 +0000 Generate idmef-tree-wrap.hxx within 'bindings/c++/include'. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10176 09c5ec92-17d4-0310-903a-819935f44dba commit f73f14bd6d8a67956d4876eaa932d9d7e704df92 Author: yoann Date: Mon Feb 11 14:47:12 2008 +0000 Normalize C++ bindings filename, move headers to 'include' subdirectory. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10175 09c5ec92-17d4-0310-903a-819935f44dba commit eba4e4c4b592635b041e7c6974b8934b0ac8af35 Author: yoann Date: Mon Feb 11 09:24:09 2008 +0000 Apply IDMEFValue typemap to IDMEF::Get(). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10174 09c5ec92-17d4-0310-903a-819935f44dba commit 5c6ccd058ad4070f377d985606edff2b4715ce77 Author: yoann Date: Mon Feb 11 09:24:00 2008 +0000 Multiple input datatype for IDMEF::Set() git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10173 09c5ec92-17d4-0310-903a-819935f44dba commit 00818054eea2f13e48d2f5c597c4d426437a04ab Author: yoann Date: Mon Feb 11 09:05:07 2008 +0000 Modify IDMEF::Set() and IDMEF::Get() so that they use IDMEFValue. Simplify the code by using the IDMEFPath() API. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10172 09c5ec92-17d4-0310-903a-819935f44dba commit c91490528bfaaa1859b87b7ec186f00de3d0ab11 Author: yoann Date: Sun Feb 10 18:59:58 2008 +0000 Make IDMEFPath::Get() return a copy of the IDMEFValue object git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10171 09c5ec92-17d4-0310-903a-819935f44dba commit 0a58a8fb88daa10b466baabf8f21d940b3e9c19b Author: pollux Date: Sun Feb 10 18:41:17 2008 +0000 Bindings: set dependencies on c++ headers git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10170 09c5ec92-17d4-0310-903a-819935f44dba commit 83707b695b46fba9a1afb04ed1ecf1021c1fd961 Author: yoann Date: Sun Feb 10 18:33:35 2008 +0000 IDMEFValue::Get() typemap, convert to native language type. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10169 09c5ec92-17d4-0310-903a-819935f44dba commit d58d1b77f7b4fee7a43643c213ec5e6362055055 Author: yoann Date: Sun Feb 10 18:33:26 2008 +0000 Header update. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10168 09c5ec92-17d4-0310-903a-819935f44dba commit d7b915743ea758846f4fbe158f7c93feab6a143d Author: yoann Date: Sun Feb 10 18:33:07 2008 +0000 Handle Set() for std::string, char string, and integer. More input type to come (specific integer size, etc). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10167 09c5ec92-17d4-0310-903a-819935f44dba commit f1a42b6d90ed0ab398acf3fabe259457aa62998a Author: yoann Date: Sun Feb 10 18:32:58 2008 +0000 Implement IDMEFValue->GetType(). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10166 09c5ec92-17d4-0310-903a-819935f44dba commit 386e2aac6eaa609df5a88ad6610b8c6b5108acc7 Author: pollux Date: Sun Feb 10 18:32:30 2008 +0000 Bindings: do not build easy bindings if the flag was not specified when calling configure. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10165 09c5ec92-17d4-0310-903a-819935f44dba commit a37cace8b1719d53fd244394f4e16be1d68f6fe0 Author: pollux Date: Sun Feb 10 15:35:12 2008 +0000 Bindings: fix build flags to link perl and python modules to the C++ lib. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10164 09c5ec92-17d4-0310-903a-819935f44dba commit 342295177a586259f8fad2b7436d66c7045ec898 Author: pollux Date: Sun Feb 10 14:23:39 2008 +0000 Bindings: - include generated files in dist target - remove -noproxy option from swig, this prevent generating the .py file - fix names in python module git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10163 09c5ec92-17d4-0310-903a-819935f44dba commit 0707bdb92f9cf57a15956c6159e239efc4b48ce5 Author: pollux Date: Sun Feb 10 14:12:56 2008 +0000 Bindings: use similar method than low-level bindings to install: - ask autotools to generate a Makefile.PL and setup.py - move swig files to the bindings/ directory, and generate files in proper subdirectory - use perl and python native system to build extensions - make install also uses native system This makes installation work to Prelude Easy bindings. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10162 09c5ec92-17d4-0310-903a-819935f44dba commit df7120fea947709b51bdce52820a86dc6c93d65f Author: yoann Date: Sat Feb 9 18:05:47 2008 +0000 Generate low-level typemap in the correct bindings directory. Start implementing GenerateIDMEFTreeWrapHxx.pm. Some renaming. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10161 09c5ec92-17d4-0310-903a-819935f44dba commit e7dc9144db84caa56cf4e1ed748a7595a3ba2d78 Author: yoann Date: Sat Feb 9 17:38:49 2008 +0000 Update Makefile.am and libprelude-easy.i Completly wrap the idmef_path_t API. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10160 09c5ec92-17d4-0310-903a-819935f44dba commit f321364a5883f04738e3e2852c158dafda38d577 Author: yoann Date: Sat Feb 9 17:36:01 2008 +0000 Start wrapping idmef_value_t interface. Start of PreludeError exception class. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10159 09c5ec92-17d4-0310-903a-819935f44dba commit ee2765a6e425921aa56ddf0414fe935f7c842b32 Author: yoann Date: Sat Feb 9 17:34:28 2008 +0000 Missing 'extern C' for C++ build. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10158 09c5ec92-17d4-0310-903a-819935f44dba commit 23dc9b24459a02adc6055d7548e08ac25b111849 Author: yoann Date: Fri Feb 8 12:54:40 2008 +0000 More fixes. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10156 09c5ec92-17d4-0310-903a-819935f44dba commit bc11cbd77355a63a0a268e642af4a45cf3a00fd7 Author: yoann Date: Fri Feb 8 09:25:42 2008 +0000 More IDMEFTreeWrap C++ bindings work. - Each IDMEF object should get it's own class. - Remove extra code. - Call underlying C function. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10155 09c5ec92-17d4-0310-903a-819935f44dba commit 832f4b10f4b018340b0b72d55d01558589bd7aaf Author: toady Date: Thu Feb 7 23:31:48 2008 +0000 Start wrapping idmef tree git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10154 09c5ec92-17d4-0310-903a-819935f44dba commit 164445798d393fbc779cfa684527084a81ceb1a9 Author: pollux Date: Tue Feb 5 19:59:09 2008 +0000 Bindings: move swig files into proper directories, and delete swig subdirectory git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10145 09c5ec92-17d4-0310-903a-819935f44dba commit c64d47649390151f05ef7dfa1f041d3dd2fd1211 Author: pollux Date: Fri Feb 1 20:19:54 2008 +0000 (bindings) Add function to get unique message ID git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10139 09c5ec92-17d4-0310-903a-819935f44dba commit 04174e2265c1f2962a7c87f5fbba6181b4135e09 Author: pollux Date: Fri Feb 1 15:54:46 2008 +0000 Remove perl and python code from C++ library. Remove test code from bindings (Fix #276) git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10138 09c5ec92-17d4-0310-903a-819935f44dba commit 4d142ddffbf2f98bbe4bd94a3e4031e9527858d2 Author: pollux Date: Fri Feb 1 11:07:16 2008 +0000 Add configure flag to enable Easy bindings (disabled by default). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10137 09c5ec92-17d4-0310-903a-819935f44dba commit c4964bf05e65116aade731020255ca6ea83b4514 Author: pollux Date: Fri Feb 1 10:28:01 2008 +0000 Bindings: new directory hierarchy - move traditional bindings to "low-level" - build c++ code as a standalone library (which can be used as a c++ interface to libprelude) - split perl and python code for high-level bindings git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10136 09c5ec92-17d4-0310-903a-819935f44dba commit 57d40e6524d2abecfb81b34e8e5f767ea5c873a0 Author: pollux Date: Wed Jan 30 12:20:33 2008 +0000 Create directories for now bindings tree git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10135 09c5ec92-17d4-0310-903a-819935f44dba commit fb65fedb52c5d623a2a1b4eb7ae06ae874877604 Author: pollux Date: Sat Jan 26 12:45:47 2008 +0000 (bindings): for functions returning pointers to integers, dereference the pointer and return either the integer, or the native equivalent to NULL (None for Python, undef for Perl). (Fix #274) git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10132 09c5ec92-17d4-0310-903a-819935f44dba commit 2f9ce0f14ded7203346551c91642b8e73e72dc45 Author: pollux Date: Tue Jan 22 13:29:41 2008 +0000 Backport r10125 to PreludeEasy branch. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10126 09c5ec92-17d4-0310-903a-819935f44dba commit fd2eaaf38578d20d7ea026db16ef07259499ef52 Author: pollux Date: Mon Jan 21 19:27:07 2008 +0000 Backport r10123 from trunk: Improve prototype for get_next functions, use _cur as a suffix for the iterative argument (shall be used to special case get_next code using swig typemap, without breaking others functions - refs #269). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10124 09c5ec92-17d4-0310-903a-819935f44dba commit ccd360b9b2b4bcbe1dee886d2d26cce71a8d3239 Author: toady Date: Mon Jan 14 10:47:54 2008 +0000 Use GvGen to produce nice graphs git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10122 09c5ec92-17d4-0310-903a-819935f44dba commit bb0f7c7a84ba10a65caa7456ec7f408791480f3d Author: toady Date: Thu Jan 3 16:35:45 2008 +0000 Graph alerts using rtg git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10119 09c5ec92-17d4-0310-903a-819935f44dba commit 20b431b84958ccf3968ea6012d7386ecd9e0c459 Author: pollux Date: Wed Nov 28 21:32:42 2007 +0000 Enhancement: allow user to specify alerts directory on command line git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10076 09c5ec92-17d4-0310-903a-819935f44dba commit f146120a0d75d70bb134837718f4f5b593ceb7ad Author: pollux Date: Wed Nov 28 21:27:47 2007 +0000 Small tool to replay alerts git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10075 09c5ec92-17d4-0310-903a-819935f44dba commit 0f027e9c471e2033831c0b3bd6e2d2ab3dbdb585 Author: pollux Date: Wed Nov 28 21:13:16 2007 +0000 New utility to connect to a prelude manager, and save all alerts in files (for replay) git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10074 09c5ec92-17d4-0310-903a-819935f44dba commit ba0cc62057fb910eb42b4a9ff7fff767a6af9572 Author: pollux Date: Sun Nov 25 15:44:46 2007 +0000 Add extern "C" to generators for files idmef-message-{read,write}, so they can be included in C++ files. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10070 09c5ec92-17d4-0310-903a-819935f44dba commit 213ee9e2392822ff0d32dbfaf3c3187b2ef9e3f8 Author: pollux Date: Sun Nov 25 15:19:55 2007 +0000 Add functions to read/write IDMEF messages to files. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10069 09c5ec92-17d4-0310-903a-819935f44dba commit 36f877ed8c2243b0fe6d0e46cf7b3c2945253b9a Author: pollux Date: Sun Nov 25 15:17:22 2007 +0000 Export header functions as C (using extern "C") for idmef-message-{read,write} headers, so they can be used in C++ files. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10068 09c5ec92-17d4-0310-903a-819935f44dba commit 579f7b349baa6d156ae2773c3fe629875a4e2b77 Author: toady Date: Tue Nov 20 16:28:33 2007 +0000 Graph uniques alerts from classification.text git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10063 09c5ec92-17d4-0310-903a-819935f44dba commit e23d1fc48f07f4e0df6121874c2ffbbaad30ac63 Author: toady Date: Tue Nov 20 14:01:54 2007 +0000 Multi-dimensional IDMEF messages plotting using gd git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10062 09c5ec92-17d4-0310-903a-819935f44dba commit eee584c50c3ec244cfe94d2f0162f2c64469bc37 Author: pollux Date: Mon Nov 19 15:19:25 2007 +0000 Better error handling: tell swig to catch exceptions of type (const char*) and use them in constructors and functions. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10057 09c5ec92-17d4-0310-903a-819935f44dba commit 6971a44d98c897f48ae49ce5a77d0752816a4827 Author: pollux Date: Mon Nov 19 13:34:01 2007 +0000 Suppress CR when waiting for alert git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10056 09c5ec92-17d4-0310-903a-819935f44dba commit 327553459bb94d5a20cab7a5c6c2c200c42c19dc Author: pollux Date: Mon Nov 19 13:28:00 2007 +0000 Dot not try to convert IDMEF value if we do not have one git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10055 09c5ec92-17d4-0310-903a-819935f44dba commit faa412135e33af5ad65de869c07952015df10b63 Author: pollux Date: Mon Nov 19 12:15:58 2007 +0000 Use idmef_value_to_string to convert values git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10054 09c5ec92-17d4-0310-903a-819935f44dba commit 4f7f5994ea44a3d42984cb202e413aeb327c778e Author: toady Date: Mon Nov 19 08:58:33 2007 +0000 ÂGraph IDMEF messages tool git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10053 09c5ec92-17d4-0310-903a-819935f44dba commit 1f213322a64ce9633e538cfb9e48104caf63261f Author: pollux Date: Sat Nov 17 16:02:14 2007 +0000 Remove debug code git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10052 09c5ec92-17d4-0310-903a-819935f44dba commit 7856d807e488bdf9f9ea4bc05b9e4b38d3c1e371 Author: pollux Date: Sat Nov 17 15:58:58 2007 +0000 Add function Get to IDMEF object. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10051 09c5ec92-17d4-0310-903a-819935f44dba commit a2b117c47218db2c1319c7deed34977eb5145f8c Author: pollux Date: Sat Nov 17 15:25:24 2007 +0000 Implement read of IDMEF messages using polling (and a pool ;) git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10050 09c5ec92-17d4-0310-903a-819935f44dba commit a1d50d8a1958fc6f49654bf661168151d1427b56 Author: pollux Date: Sat Nov 17 13:53:44 2007 +0000 mark file as executable git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10049 09c5ec92-17d4-0310-903a-819935f44dba commit fec825ab328ec7dfad8d49661cdd70ca74b5abce Author: pollux Date: Sat Nov 17 13:42:29 2007 +0000 all paths to test file, and show error when importing if any git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10048 09c5ec92-17d4-0310-903a-819935f44dba commit c0a35c2f063b62e0f277cd7c24f5f87483edc670 Author: toady Date: Fri Nov 16 15:55:02 2007 +0000 Test stuff git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10047 09c5ec92-17d4-0310-903a-819935f44dba commit 62ac443d5a404198ac4dd503a3c2d19c6a3346ff Author: pollux Date: Fri Nov 16 09:18:12 2007 +0000 Display python error if import fails git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10046 09c5ec92-17d4-0310-903a-819935f44dba commit 8c4d94601f19115a3dea030028a90d956a0a7be0 Author: toady Date: Thu Nov 15 16:49:00 2007 +0000 C++ stuff git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10045 09c5ec92-17d4-0310-903a-819935f44dba commit be99e5e0e2f7ce8408efaf66a3922c807fdfdaea Author: toady Date: Thu Nov 15 09:24:46 2007 +0000 Removed useless code (used to print on strerr the idmef message only) git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10044 09c5ec92-17d4-0310-903a-819935f44dba commit c904ad7de41a43628345fabec728e80ea158b88e Author: pollux Date: Wed Nov 14 16:49:06 2007 +0000 Create IDMEF object from prelude alert. Now all we have to do is to run the callback. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10043 09c5ec92-17d4-0310-903a-819935f44dba commit 6172b059269d23736ce19c78af1367c30804b870 Author: toady Date: Wed Nov 14 16:30:07 2007 +0000 Code to manage pooling git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10042 09c5ec92-17d4-0310-903a-819935f44dba commit db6bdb8efb24742fc37fa1fce0b1dc596c7f51cc Author: pollux Date: Wed Nov 14 15:05:59 2007 +0000 Add support functions to send an IDMEF object to the callback. Trying to build and send the object directly is quite impossible, due to the way SWIG generates and wraps its objects. This problem was solved in a tricky way, by (temporarily) storing the object in memory, and passing a unique id to the callback. The callback can then use it to get the object (which is removed from the array after). git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10041 09c5ec92-17d4-0310-903a-819935f44dba commit da77683d874567fd09bbe29142d6a0477f1e8406 Author: pollux Date: Tue Nov 13 14:59:11 2007 +0000 Tests for callbacks git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10040 09c5ec92-17d4-0310-903a-819935f44dba commit 88dbf76653d56186db78bfa6a5cd3f1e29a29e2a Author: pollux Date: Sun Nov 11 13:18:33 2007 +0000 Proof-of-concept code for calling Perl callbacks from SWIG. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10038 09c5ec92-17d4-0310-903a-819935f44dba commit 51f6fcbdee9973d07e4951da1132f709768c5c77 Author: pollux Date: Fri Nov 9 10:04:21 2007 +0000 Proof-of-concept code for registering and calling Python callbacks from SWIG code. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10035 09c5ec92-17d4-0310-903a-819935f44dba commit 921ec9059f783db476af24a4b52adb548ced2246 Author: toady Date: Tue Oct 23 15:00:19 2007 +0000 Preliminary support for prelude connection pool git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10021 09c5ec92-17d4-0310-903a-819935f44dba commit 002dff8cc340ad8d0981e76c63222ebdf3328a87 Author: toady Date: Tue Oct 23 08:35:20 2007 +0000 Python test for easy bindings git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10020 09c5ec92-17d4-0310-903a-819935f44dba commit f02871549cc21fc4b2bf32426e2210c382efb6ff Author: pollux Date: Mon Oct 22 20:02:49 2007 +0000 Move initialization code to module init. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10019 09c5ec92-17d4-0310-903a-819935f44dba commit 1b1d9dc8c93d80aefd61698f1acc7f413aff1634 Author: toady Date: Mon Oct 22 15:58:15 2007 +0000 (bugfix): Missing initialization and more verbose error messages git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10018 09c5ec92-17d4-0310-903a-819935f44dba commit fe6911eb42e61334cd83c35e077dda185ffab53d Author: pollux Date: Mon Oct 22 14:25:57 2007 +0000 Merge trunk modifications 10014 to 10016 git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10017 09c5ec92-17d4-0310-903a-819935f44dba commit 0288c8737c4e521e773d68cabfce37f522a9498a Author: pollux Date: Sat Oct 20 09:22:36 2007 +0000 * Use local headers (to allow build even if other headers are installed in system paths) * Set default arguments for Client constructor, and allow swig to wrap them * Use prelude_string_set_ref_fast instead of prelude_string_set_constant git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10014 09c5ec92-17d4-0310-903a-819935f44dba commit c3d3552efdb7ebe0db7b36f91c9fa477cdb8b568 Author: pollux Date: Fri Oct 19 14:52:50 2007 +0000 Merge trunk modifications 10006 to 10012 git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10013 09c5ec92-17d4-0310-903a-819935f44dba commit 1452ff2c667fe05bacb9c792a802c2c68d60683e Author: pollux Date: Fri Oct 19 14:02:45 2007 +0000 Merge patches 9998 to 10004 from trunk git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@10005 09c5ec92-17d4-0310-903a-819935f44dba commit 9634ab885480c1a863042183764229fd86e36c33 Author: pollux Date: Fri Oct 19 12:10:17 2007 +0000 Add code to setup analyzer informations when creating client git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9997 09c5ec92-17d4-0310-903a-819935f44dba commit b0cd57a74459811f5000ccb8fa7aa3d4c4e3c613 Author: pollux Date: Thu Oct 18 10:10:45 2007 +0000 Fix Makefile for swig generation git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9987 09c5ec92-17d4-0310-903a-819935f44dba commit 4afd50b056ca408749ff7ef61bd2cfb011a58b45 Author: pollux Date: Thu Oct 18 09:58:43 2007 +0000 Remove generated swig files from svn, and ask configure to generate swig makefile git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9986 09c5ec92-17d4-0310-903a-819935f44dba commit f06aa230f18e5725ed641cde08d1d31268efb704 Author: pollux Date: Tue Oct 16 17:30:33 2007 +0000 Prelude::Easy bindings (autotools conf) git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9985 09c5ec92-17d4-0310-903a-819935f44dba commit 3175ff08eecff7f88abe42bb23f168e9598458dd Author: pollux Date: Tue Oct 16 17:29:50 2007 +0000 Prelude::Easy bindings (c++ code) git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9984 09c5ec92-17d4-0310-903a-819935f44dba commit ac462139fa0f448773dd4eda4aba6d6779cbf77e Author: pollux Date: Tue Oct 16 17:28:51 2007 +0000 Prelude::Easy bindings (swig) git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9983 09c5ec92-17d4-0310-903a-819935f44dba commit b9d87377fa44729b6ae3a3184791d2ce57967f46 Author: pollux Date: Mon Oct 8 18:16:35 2007 +0000 Doh ! const char* *is* the correct type ! git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9979 09c5ec92-17d4-0310-903a-819935f44dba commit c0fa12d1abff23c7cd34633ed85d18b47245634b Author: pollux Date: Mon Oct 8 18:11:46 2007 +0000 Change cast from char* to unsigned char*, to be stricter on the conversion git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9978 09c5ec92-17d4-0310-903a-819935f44dba commit 5c689149401a00071cf2025d4159cc268c04ab36 Author: pollux Date: Sun Oct 7 20:30:30 2007 +0000 Conversion from void * to char * needs an explicit cast in c++ git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9974 09c5ec92-17d4-0310-903a-819935f44dba commit 073d0319ccfa6a2b51cfc66a61c988b6ea3103b7 Author: pollux Date: Sun Oct 7 20:16:15 2007 +0000 Conversion from void * to char * needs a cast in c++ git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9973 09c5ec92-17d4-0310-903a-819935f44dba commit d1522aa8ab60310baf7bfedede906ef1ee52df67 Author: pollux Date: Sun Oct 7 20:03:00 2007 +0000 Fix use of c++ keywords in swig wrappers git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9972 09c5ec92-17d4-0310-903a-819935f44dba commit e614b42e00339aaa6651d1e479e1039a3cc208ff Author: pollux Date: Sun Oct 7 19:41:24 2007 +0000 * Allow perl and python bindings to use $CC variable when building This makes build of bindings work correctly when using ccache * Move cleaning of targets in clean-local This does not override standard clean command, and allows building other targets in the same Makefile.am git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9971 09c5ec92-17d4-0310-903a-819935f44dba commit 43aa071d90bc5f01ab08b95dbb202041acb4f400 Author: yoann Date: Fri Oct 5 14:46:53 2007 +0000 Branche libprelude for Pierre Chifflier bindings work: easy libprelude bindings for more languages. git-svn-id: https://svn.prelude-ids.org/libprelude/branches/libprelude-easy-bindings@9969 09c5ec92-17d4-0310-903a-819935f44dba git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10737 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 +- bindings/Makefile.am | 76 +-- bindings/c++/Makefile.am | 23 + bindings/c++/idmef-criteria.cxx | 155 ++++++ bindings/c++/idmef-path.cxx | 351 ++++++++++++ bindings/c++/idmef-time.cxx | 275 ++++++++++ bindings/c++/idmef-value.cxx | 443 +++++++++++++++ bindings/c++/idmef.cxx | 286 ++++++++++ bindings/c++/include/Makefile.am | 16 + bindings/c++/include/idmef-criteria.hxx | 57 ++ bindings/c++/include/idmef-path.hxx | 84 +++ bindings/c++/include/idmef-time.hxx | 75 +++ bindings/c++/include/idmef-value.hxx | 80 +++ bindings/c++/include/idmef.hxx | 65 +++ bindings/c++/include/prelude-client-easy.hxx | 28 + bindings/c++/include/prelude-client-profile.hxx | 47 ++ bindings/c++/include/prelude-client.hxx | 74 +++ bindings/c++/include/prelude-connection-pool.hxx | 65 +++ bindings/c++/include/prelude-connection.hxx | 70 +++ bindings/c++/include/prelude-error.hxx | 54 ++ bindings/c++/include/prelude.hxx | 37 ++ bindings/c++/prelude-client-easy.cxx | 53 ++ bindings/c++/prelude-client-profile.cxx | 106 ++++ bindings/c++/prelude-client.cxx | 167 ++++++ bindings/c++/prelude-connection-pool.cxx | 181 +++++++ bindings/c++/prelude-connection.cxx | 177 ++++++ bindings/c++/prelude-error.cxx | 61 +++ bindings/idmef-value-class-mapping.i | 80 --- bindings/libprelude.i | 264 --------- bindings/libprelude_perl.i | 376 ------------- bindings/libprelude_python.i | 509 ------------------ bindings/libpreludecpp-perl.i | 154 ++++++ bindings/libpreludecpp.i | 203 +++++++ bindings/low-level/Makefile.am | 51 ++ bindings/low-level/idmef-value-class-mapping.i | 80 +++ bindings/low-level/libprelude.i | 264 +++++++++ bindings/low-level/libprelude_perl.i | 376 +++++++++++++ bindings/low-level/perl/Makefile.PL.in | 45 ++ bindings/low-level/perl/Prelude.pm | 21 + bindings/low-level/python/Makefile.am | 19 + bindings/low-level/python/libprelude-python.i | 509 ++++++++++++++++++ bindings/low-level/python/prelude.py | 11 + bindings/low-level/python/setup.py.in | 85 +++ bindings/lua/Makefile.am | 18 + bindings/lua/libpreludecpp-lua.i | 319 +++++++++++ bindings/perl/Makefile.PL.in | 14 +- bindings/perl/Prelude.pm | 21 - bindings/python/Makefile.am | 21 + bindings/python/libpreludecpp-python.i | 159 ++++++ bindings/python/prelude.py | 11 - bindings/python/setup.py.in | 20 +- bindings/ruby/Makefile.am | 19 + bindings/ruby/extconf.rb.in | 14 + bindings/ruby/libpreludecpp-ruby.i | 167 ++++++ bindings/tests/alert_replay.py | 40 ++ bindings/tests/alert_saver.py | 56 ++ bindings/tests/callback.pl | 20 + bindings/tests/callback.py | 23 + bindings/tests/load.py | 16 + bindings/tests/pooling.py | 13 + bindings/tests/save.py | 16 + bindings/tests/send_alert.py | 11 + bindings/tests/test.lua | 45 ++ bindings/tests/test.pl | 45 ++ bindings/tests/test.py | 44 ++ bindings/tests/test.rb | 46 ++ bindings/tools/idmef-path-gd.py | 193 +++++++ bindings/tools/idmef-path-graph.py | 58 ++ bindings/tools/idmef-path-gvgen.py | 89 +++ bindings/tools/idmef-path-rtg.py | 103 ++++ configure.in | 110 +++- libprelude-config.in | 14 +- m4/am_check_python_headers.m4 | 24 + m4/am_path_ruby.m4 | 113 ++++ prelude-admin/prelude-admin.c | 2 +- src/Makefile.am | 1 + src/idmef-criteria.c | 25 + src/idmef-message-helpers.c | 300 +++++++++++ src/idmef-path.c | 8 +- src/idmef-value.c | 508 ++++++++++++++++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapCxx.pm | 596 +++++++++++++++++++++ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapHxx.pm | 323 +++++++++++ src/idmef-wrappers-gen/generator.pl | 16 +- src/include/Makefile.am | 1 + src/include/idmef-criteria.h | 1 + src/include/idmef-message-helpers.h | 39 ++ src/include/idmef-value.h | 26 + src/include/idmef.h | 1 + src/include/prelude-client.h | 4 + src/include/prelude-connection.h | 4 + src/include/prelude-msg.h | 6 +- src/include/prelude-string.h | 4 +- src/prelude-client.c | 89 +++ src/prelude-connection.c | 25 + src/prelude-msg.c | 16 + 95 files changed, 8593 insertions(+), 1419 deletions(-) commit 52df3657e1c102307865dcf85c05b9f8368d3b9c Author: Yoann Vandoorselaere Date: Thu Jul 24 08:28:37 2008 +0000 If a possible invalid pointer dereference if new_connection() failed in case of unavailable profile. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10732 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) commit 41b6176bb68ddc54e3ff7ffe263cbf12733e16e8 Author: Yoann Vandoorselaere Date: Mon Jul 21 08:56:23 2008 +0000 Update NEWS, bump version. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10692 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 12 ++++++++++++ configure.in | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) commit c7aa1dbaa1c62128aedbce55c2e56f579282b61e Author: Yoann Vandoorselaere Date: Mon Jul 21 08:56:19 2008 +0000 Temporarily disable mutex locking while calling event handler, since we really need recursive mutex support for this task. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10691 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit de4d5edeee487383366116d92ecf7a14de1b847a Author: Yoann Vandoorselaere Date: Mon Jul 21 08:14:59 2008 +0000 Include time.h for time_t definition, fix #301. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10690 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-timer.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit dcd351799a9ad54d4bd1119c0d00c17ff346beb3 Author: Yoann Vandoorselaere Date: Mon Jul 21 08:14:55 2008 +0000 Fix compilation error with GnuTLS < 2.2.0 (fix #302). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10689 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0e440257013d4f8e5fd2966242942f75deeba02b Author: Yoann Vandoorselaere Date: Fri Jul 18 15:49:36 2008 +0000 Update News, documentation, bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10686 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 36 ++++++++++++++++++++++++++++++++++++ configure.in | 10 +++++----- docs/api/libprelude-decl.txt | 18 ++++++++++++++---- docs/api/libprelude-sections.txt | 2 ++ docs/api/tmpl/idmef-criteria.sgml | 18 ++++++++++++++++++ 5 files changed, 75 insertions(+), 9 deletions(-) commit bfb8b27819565ad91b0a348ad1b408139fbdca1c Author: Yoann Vandoorselaere Date: Fri Jul 18 15:49:32 2008 +0000 Missing include file. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10685 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 1 + 1 file changed, 1 insertion(+) commit 4a48338b8912b16e8a92b7a8ebd634d45ff595d2 Author: Yoann Vandoorselaere Date: Fri Jul 18 15:49:29 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10684 09c5ec92-17d4-0310-903a-819935f44dba libmissing/vasnprintf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit af9082d65e2ae3775a4ce1910ce7650a15735ad9 Author: Yoann Vandoorselaere Date: Fri Jul 18 15:16:40 2008 +0000 Unset all variable on exit. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10683 09c5ec92-17d4-0310-903a-819935f44dba src/include/variable.h | 1 + src/prelude.c | 4 ++++ src/variable.c | 24 ++++++++++++++++++------ 3 files changed, 23 insertions(+), 6 deletions(-) commit 8f59c9d37b428206d54fb2dcfd8d3dd571ac47f8 Author: Yoann Vandoorselaere Date: Fri Jul 18 15:13:45 2008 +0000 Add support for newer GnuTLS 2.2.0 session priority functions. When the option is available, the user might specify TLS settings through the "tls-options" configuration entry. This additionally fix #299 (problem negotiating compression method when connecting to Prelude-Manager). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10682 09c5ec92-17d4-0310-903a-819935f44dba client.conf.in | 55 +++++++++++++++++------ configure.in | 6 +++ src/include/tls-auth.h | 4 ++ src/prelude-client.c | 11 +++++ src/tls-auth.c | 115 ++++++++++++++++++++++++++++++++++++++++++++++--- 5 files changed, 172 insertions(+), 19 deletions(-) commit 159c2ecba63f7d64cc68267ff98bca186985ca16 Author: Yoann Vandoorselaere Date: Wed Jul 16 16:14:57 2008 +0000 Temporarily prevent libprelude from settings the version, since it trigger a Prelude-Manager warning when reading the message. Will fix Prelude-Manager before re-enabling this code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10664 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 3 ++- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) commit 29257ecb96c7fa66994770386fea2b6d5333882e Author: Yoann Vandoorselaere Date: Wed Jul 16 08:22:33 2008 +0000 Remove change that prevented TOK_NOT to be taken into account as an idmef-criteria operator. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10663 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 5 ----- 1 file changed, 5 deletions(-) commit 88875c0394d376711033d784d388f743d83bea27 Author: Yoann Vandoorselaere Date: Tue Jul 15 08:04:09 2008 +0000 Implement negation of idmef-criteria, allowing to write criteria like: ! (alert.classification.text = A || alert.classification.text = B) git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10658 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 2 +- src/idmef-criteria-string.yac.y | 63 +++++++++++++++++++++++------------------ 2 files changed, 37 insertions(+), 28 deletions(-) commit 13c068ff4187987f8bce69009edda72586fd0fc6 Author: Yoann Vandoorselaere Date: Tue Jul 15 08:04:07 2008 +0000 Revert changeset [10626], since the workaround break on libtool 1.5.x installation. This reopen #294. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10657 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-plugin.h | 2 -- 1 file changed, 2 deletions(-) commit 459d43a6087625d8f758275e03f6439dc347046c Author: Yoann Vandoorselaere Date: Tue Jul 15 08:04:04 2008 +0000 Implement idmef_criteria_set_negation() / idmef_criteria_get_negation(), allowing to mark a given criteria as 'negated'. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10656 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 28 ++++++++++++++++++++++------ src/include/idmef-criteria.h | 4 ++++ 2 files changed, 26 insertions(+), 6 deletions(-) commit 8333426100cdcba5da778552826744a6da76118d Author: Yoann Vandoorselaere Date: Tue Jul 15 08:04:02 2008 +0000 Fix multiples problem with prelude_read_multiline / prelude_read_multiline2. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10655 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 87 +++++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 60 insertions(+), 27 deletions(-) commit 99f94eeb8c59821df12539196d8534262181f180 Author: Yoann Vandoorselaere Date: Tue Jul 15 08:03:58 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10654 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 8 +++++- libmissing/arpa_inet.in.h | 27 ++++++++++++++------ libmissing/getaddrinfo.c | 7 ++--- libmissing/getaddrinfo.h | 10 +++++++- libmissing/m4/arpa_inet_h.m4 | 13 +++++++--- libmissing/m4/gnulib-cache.m4 | 25 +++++++++++++++++- libmissing/m4/gnulib-common.m4 | 9 ++++++- libmissing/m4/gnulib-comp.m4 | 58 ++++++++++++++++++++++++++---------------- libmissing/m4/gnulib-tool.m4 | 28 ++++++++++++++++++-- libmissing/m4/inet_ntop.m4 | 11 +++++++- libmissing/m4/memcmp.m4 | 16 ++++++++++-- libmissing/m4/memmem.m4 | 28 +++++++++++++++++--- libmissing/m4/onceonly.m4 | 15 ++++++----- libmissing/m4/stdio_h.m4 | 6 ++++- libmissing/m4/strcasestr.m4 | 30 ++++++++++++++++++---- libmissing/m4/wctype.m4 | 13 +++++----- libmissing/regcomp.c | 52 ++++++++++++++++++------------------- libmissing/regex_internal.c | 6 +---- libmissing/regexec.c | 7 ++--- libmissing/stdbool.in.h | 6 ++--- libmissing/stdio-impl.h | 4 +-- libmissing/stdio.in.h | 20 +++++++++++++++ libmissing/str-two-way.h | 4 ++- libmissing/vasnprintf.c | 21 ++++++++++++--- 24 files changed, 312 insertions(+), 112 deletions(-) commit 956c2b4c49605d4351cc32276cb13164be7f450d Author: Yoann Vandoorselaere Date: Tue Jul 15 08:03:49 2008 +0000 Never use non-pointer field, always use the "required" keyword. Fix API consistency issue, that could lead to unexpected behavior. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10653 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 978 ++++++++++++++++++++++++++---------- src/idmef-wrappers-gen/idmef-tree.h | 38 +- src/include/idmef-tree-wrap.h | 38 +- 3 files changed, 743 insertions(+), 311 deletions(-) commit 755a62c0ec5146b027e31a9b392ff80a84c7dbac Author: Yoann Vandoorselaere Date: Thu Jul 10 14:27:15 2008 +0000 Fix an IDMEF-Criteria matching problem, where the match function would not attempt to match a OR after multiple consecutive failed AND. Thanks Alexander Afonyashin for pointing out the problem. A rule that triggered the problem was: (alert.target.user.user_id.name != 'whatever' && alert.classification.text == 'anything') || heartbeat When this version worked correctly: heartbeat || (alert.target.user.user_id.name != 'whatever' && alert.classification.text == 'anything') git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10638 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 3d359f9b24f39b55e0d1398ceab7f2820e1d335e Author: Yoann Vandoorselaere Date: Thu Jul 10 08:59:11 2008 +0000 Update. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10637 09c5ec92-17d4-0310-903a-819935f44dba src/include/variable.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 28fa7a2e9e184fc223759b927890b65cf1eb06b8 Author: Yoann Vandoorselaere Date: Thu Jul 10 08:59:08 2008 +0000 Implement variable substitution in Prelude configuration files. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10636 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++--- src/variable.c | 42 +++++++++++++++++++++----------- 2 files changed, 95 insertions(+), 17 deletions(-) commit 99b12c10caa3e5f8958e037370e8eb5ee4b1c213 Author: Yoann Vandoorselaere Date: Thu Jul 10 07:00:46 2008 +0000 Handle correctly multiples opening parenthesis within multiples value. idmef.path = ((A && B) || (C && D)). Thanks to Sebastien Tricaud for helping with the yacc part. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10635 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 18 +++++++++++------- src/idmef-criteria-string.yac.y | 8 ++++++-- 2 files changed, 17 insertions(+), 9 deletions(-) commit 3a50047d16ba526c962dcdeb63726a4bf0d95213 Author: Yoann Vandoorselaere Date: Wed Jul 9 16:37:31 2008 +0000 Fixes some lexer regression, simpler scheme for multiples values. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10634 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 146 ++++++++++++++++++++-------------------- 1 file changed, 73 insertions(+), 73 deletions(-) commit f92b2a6cef0ea388029a9dc18cd4039ecbbb78e5 Author: Yoann Vandoorselaere Date: Wed Jul 9 16:37:22 2008 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10633 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 296 ++++++++++++++++++++++++++-------------------------- 1 file changed, 148 insertions(+), 148 deletions(-) commit cfe72e9afafda1ae26bdb17a762d84a700f00bcf Author: Yoann Vandoorselaere Date: Mon Jul 7 16:38:04 2008 +0000 Allow IDMEF criteria with multiples values for a single path, as can be seen in the following example: alert.classification.text = (A || B || C || D) This will be internally translated to the original criteria language: alert.classification.text = A || alert.classification.text = B || alert.classification.text = C || alert.classification.text = D git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10632 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 134 +++++++++++------- src/idmef-criteria-string.yac.y | 291 ++++++++++++++++++++++------------------ 2 files changed, 244 insertions(+), 181 deletions(-) commit 60c84339afb612c021ed75b5827ee5b242c19ed6 Author: Yoann Vandoorselaere Date: Tue Jul 1 08:28:21 2008 +0000 Transparently handle libtool 2.2 ABI change. Fix #294. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10626 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-plugin.h | 2 ++ 1 file changed, 2 insertions(+) commit e39238c456eeaedb94bd2b63f4c6876f65a3f3fe Author: Yoann Vandoorselaere Date: Tue Jul 1 08:28:13 2008 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10625 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 156 ++++++++++++++++++++-------------------- 1 file changed, 78 insertions(+), 78 deletions(-) commit 6aaf119c66b45e3844acc90a72e469d2ead528fc Author: Yoann Vandoorselaere Date: Sun Jun 15 10:03:30 2008 +0000 Error out if GnuTLS initialization fail. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10594 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 1374085862aca98dbfc636d7051904c97eafeae8 Author: Yoann Vandoorselaere Date: Tue May 6 16:34:01 2008 +0000 Update NEWS, bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10571 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 6 ++++++ configure.in | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit 4cfcd26b864dbd94cf4214ca67a4e210c55eb909 Author: Yoann Vandoorselaere Date: Tue May 6 16:33:55 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10570 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 15 ++++----- libmissing/arpa_inet.in.h | 24 ++++++++++++-- libmissing/inet_ntop.c | 4 +-- libmissing/inet_ntop.h | 42 ----------------------- libmissing/intprops.h | 77 ------------------------------------------- libmissing/m4/arpa_inet_h.m4 | 3 ++ libmissing/m4/gnulib-comp.m4 | 2 -- libmissing/m4/inet_ntop.m4 | 7 ++-- libmissing/m4/stdlib_h.m4 | 4 ++- libmissing/m4/string_h.m4 | 2 ++ libmissing/m4/sys_socket_h.m4 | 2 ++ libmissing/memchr.c | 6 ++-- libmissing/stdlib.in.h | 15 +++++++++ libmissing/string.in.h | 16 +++++++++ libmissing/sys_socket.in.h | 2 +- src/include/libmissing.h | 2 +- 16 files changed, 79 insertions(+), 144 deletions(-) commit 579da05d9db9ada7f5a1d88699b3b992dd8faab7 Author: Yoann Vandoorselaere Date: Tue May 6 15:34:05 2008 +0000 Define pthread weak symbols when support. Fix unresolved symbols on some architecture (fix #287). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10569 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 24 ++++++++++++++++++++++++ src/prelude-thread.c | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) commit f734a79c16fde267b21e93b9e66a3f4739aa7491 Author: Yoann Vandoorselaere Date: Tue May 6 15:33:56 2008 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10568 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-thread.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit fb742912a1a7cdffc41536c3a75c235203b0f079 Author: Yoann Vandoorselaere Date: Wed Apr 30 11:57:11 2008 +0000 Make idmef_value_iterate(), idmef_value_iterate_reversed(), idmef_value_get_nth() idmef_value_t argument const. The callback argument remain non const, if the user wish to modify the value. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10561 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 28 ++++++++++++++++++++-------- src/include/idmef-value.h | 8 ++++---- 2 files changed, 24 insertions(+), 12 deletions(-) commit 622c2040afb9f8d2e647c57f3fd64e3db120e182 Author: Yoann Vandoorselaere Date: Mon Apr 28 11:40:35 2008 +0000 Update NEWS, bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10549 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 6 ++++++ configure.in | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit d27107e1eb588c175a3d14045b73c6b9a23c5935 Author: Yoann Vandoorselaere Date: Mon Apr 28 11:29:33 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10548 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 9 +- libmissing/fseeko.c | 53 +++-------- libmissing/intprops.h | 77 ++++++++++++++++ libmissing/m4/gnulib-comp.m4 | 2 + libmissing/memchr.c | 210 +++++++++++++++++++------------------------ libmissing/stdio-impl.h | 94 +++++++++++++++++++ 6 files changed, 287 insertions(+), 158 deletions(-) commit 618cc0cd84d24f7b2ad12ccef55f79f6fd61adc3 Author: Yoann Vandoorselaere Date: Fri Apr 25 16:07:32 2008 +0000 Remove debug spew, thanks Pierre Chifflier for pointing this out. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10547 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 1 - 1 file changed, 1 deletion(-) commit 5fddb72580c2e8f87eac8910b479e18a9f6bbedc Author: Yoann Vandoorselaere Date: Fri Apr 25 13:14:57 2008 +0000 Missing GnuLib file. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10545 09c5ec92-17d4-0310-903a-819935f44dba link-warning.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 2864ad4232a4a3ee1ec1d094dd44145619747d1e Author: Yoann Vandoorselaere Date: Thu Apr 24 11:43:47 2008 +0000 Update NEWS, bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10537 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 41 +++++++++++++++++++++++++++++++++++++++++ configure.in | 10 +++++----- 2 files changed, 46 insertions(+), 5 deletions(-) commit 94e820c47801e7301b72cb19d4bcf2719330d19d Author: Yoann Vandoorselaere Date: Thu Apr 24 11:43:35 2008 +0000 Update API documentation. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10536 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 144 ++++++++++++++++++----------- docs/api/libprelude-sections.txt | 18 +++- docs/api/tmpl/idmef-time.sgml | 6 -- docs/api/tmpl/idmef-tree-wrap.sgml | 80 ++++++++-------- docs/api/tmpl/prelude-client.sgml | 1 + docs/api/tmpl/prelude-connection-pool.sgml | 11 ++- docs/api/tmpl/prelude-ident.sgml | 3 +- docs/api/tmpl/prelude-io.sgml | 36 ++++++++ docs/api/tmpl/prelude-msg.sgml | 63 +++++++++++++ docs/api/tmpl/prelude-string.sgml | 9 -- gtk-doc.make | 19 ++-- 11 files changed, 265 insertions(+), 125 deletions(-) commit 49a46977b777164bb03373e1644fc9d8cd4fb9fd Author: Yoann Vandoorselaere Date: Thu Apr 24 11:43:20 2008 +0000 Fixes for API doc generation. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10535 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 2 -- src/include/prelude-connection-pool.h | 2 +- src/prelude-io.c | 4 ++-- 3 files changed, 3 insertions(+), 5 deletions(-) commit 7e1a5335c415b60b22153d20ba37e566f81b18d6 Author: Yoann Vandoorselaere Date: Thu Apr 24 11:43:04 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10534 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 24 +- libmissing/alloca.in.h | 4 +- libmissing/arpa_inet.in.h | 45 ++ libmissing/fseeko.c | 23 +- libmissing/getaddrinfo.c | 2 +- libmissing/getdelim.c | 13 +- libmissing/localcharset.c | 6 +- libmissing/m4/absolute-header.m4 | 49 -- libmissing/m4/arpa_inet_h.m4 | 21 +- libmissing/m4/extensions.m4 | 6 +- libmissing/m4/fseeko.m4 | 8 +- libmissing/m4/gnulib-cache.m4 | 2 +- libmissing/m4/gnulib-common.m4 | 23 +- libmissing/m4/gnulib-comp.m4 | 12 +- libmissing/m4/include_next.m4 | 9 +- libmissing/m4/mbstate_t.m4 | 30 + libmissing/m4/memmem.m4 | 6 +- libmissing/m4/netinet_in_h.m4 | 6 +- libmissing/m4/onceonly.m4 | 87 +++ libmissing/m4/onceonly_2_57.m4 | 86 --- libmissing/m4/printf.m4 | 1309 ++++++++++++++++++++++++++++++++++++++ libmissing/m4/regex.m4 | 12 +- libmissing/m4/snprintf.m4 | 15 +- libmissing/m4/stdint.m4 | 20 +- libmissing/m4/stdio_h.m4 | 10 +- libmissing/m4/stdlib_h.m4 | 7 +- libmissing/m4/strcasestr.m4 | 6 +- libmissing/m4/strndup.m4 | 8 +- libmissing/m4/sys_select_h.m4 | 6 +- libmissing/m4/sys_socket_h.m4 | 27 +- libmissing/m4/time_r.m4 | 6 +- libmissing/m4/unistd_h.m4 | 6 +- libmissing/m4/vasnprintf.m4 | 21 +- libmissing/m4/vsnprintf.m4 | 15 +- libmissing/m4/wctype.m4 | 33 +- libmissing/poll.c | 10 +- libmissing/regex_internal.h | 4 +- libmissing/snprintf.c | 7 +- libmissing/stdlib.in.h | 19 +- libmissing/sys_socket.in.h | 37 +- libmissing/unistd.in.h | 22 +- libmissing/vasnprintf.c | 305 ++++++--- libmissing/vsnprintf.c | 7 +- libmissing/wchar.in.h | 11 +- libmissing/wctype.in.h | 21 +- libmissing/xsize.h | 4 +- 46 files changed, 2050 insertions(+), 360 deletions(-) commit e6243d48ff624a0c18f9789804e3a90238b4fe9a Author: Yoann Vandoorselaere Date: Thu Apr 17 17:29:19 2008 +0000 Check for empty profile name on all prelude-admin commands. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10501 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) commit 686868cf0f4bb88d7d724b023993031d0318f26c Author: Yoann Vandoorselaere Date: Thu Apr 17 17:04:53 2008 +0000 Fix possible profile directory deletion in case prelude-admin del is called with an empty profile name argument. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10500 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 5 +++++ 1 file changed, 5 insertions(+) commit 4a03f8c87c18d6060cbc2058ff71bd81dbbef4dc Author: Yoann Vandoorselaere Date: Thu Apr 17 17:04:49 2008 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10499 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 1036 +++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 518 insertions(+), 518 deletions(-) commit dfacce061e04316bed3f531ee9da8a72dc95dac7 Author: Yoann Vandoorselaere Date: Thu Apr 3 15:06:47 2008 +0000 Missing declaration. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10479 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection-pool.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit c6b6b1568e31652ec913cc5363767e0bbfbf49a1 Author: Yoann Vandoorselaere Date: Thu Apr 3 14:43:20 2008 +0000 Revert "Fix more possible race in prelude-async, code cleanup." This reverts commit 1686567933707626e4f2a80e9208e97e7444e814. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10469 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 139 ++++++++++++++++++++++++++-------------------------- 1 file changed, 70 insertions(+), 69 deletions(-) commit 19cc5ca8e68396738cb6551c39da4eef2206e467 Author: Yoann Vandoorselaere Date: Thu Apr 3 14:42:53 2008 +0000 Revert "Fix typo." This reverts commit 16a78872939a283fc8922649e9f4a32396e041b1. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10468 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit 1aff5a5f1d9284be291278fab787bddc0ade8a6e Author: Yoann Vandoorselaere Date: Thu Apr 3 14:40:37 2008 +0000 Cleanup, thread safety work. Make prelude_connection_pool_add_connection() work on regular pool (handle before/after init, un-connected connection). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10467 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 850 ++++++++++++++++++++++++------------------ 1 file changed, 477 insertions(+), 373 deletions(-) commit f8093bc4fcc35e76000cd758e1d15a82e42de62f Author: Yoann Vandoorselaere Date: Tue Apr 1 10:01:02 2008 +0000 Make sure we always remove the PRELUDE_CONNECTION_STATE_ESTABLISHED bit, even if the connection closure fail. This also fix a possible memory leak. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10457 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit a164a044ecb8533623e5691f31397c15a2f04fed Author: Yoann Vandoorselaere Date: Mon Mar 31 13:45:09 2008 +0000 Fix typo. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10455 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit 64bedc59d3dd29dfa86ac9faafcbbebedf8faf20 Author: Yoann Vandoorselaere Date: Mon Mar 31 13:00:34 2008 +0000 Use the initial analyzer object when triggering the first heartbeat, then make the copy (to be used by the asynchronous thread) and initialize the heartbeat timer. This make sure we have correct _analyzer_copy visibility from the asynchronous thread. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10454 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) commit 202d7dc726b85a6f1583cde93d24f6cc0240696f Author: Yoann Vandoorselaere Date: Mon Mar 31 11:57:47 2008 +0000 Fix more possible race in prelude-async, code cleanup. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10453 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 139 ++++++++++++++++++++++++++-------------------------- 1 file changed, 69 insertions(+), 70 deletions(-) commit 141af110726b5f9ebb2f401ea29d4da94bd9664c Author: Yoann Vandoorselaere Date: Fri Mar 28 10:05:05 2008 +0000 Set async flags before starting the asynchronous thread: fix another possible harmless race. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10452 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 40157d4852f2ef277e9a3ffa0029240378970d08 Author: Yoann Vandoorselaere Date: Fri Mar 28 09:59:15 2008 +0000 Fix a harmless race in the way we checked for global async_flags change. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10451 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit a89b484b23d077ba5d2e879caa6e02371675672c Author: Yoann Vandoorselaere Date: Fri Mar 28 09:59:09 2008 +0000 Always lock timer mutex, without relying on the async stack state (fix a possible race condition). Remove global count variable, that was used only for debugging but not mutex protected. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10450 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-timer.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit 08d3f94d44784b716ae422bb00256943c69c2a24 Author: Yoann Vandoorselaere Date: Fri Mar 28 09:58:58 2008 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10449 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-timer.c | 82 ++++++++++++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 41 deletions(-) commit 1ade2a700efca7323d3c624944e5d8c5fde7509b Author: Yoann Vandoorselaere Date: Thu Mar 27 15:17:44 2008 +0000 More build fixes. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10442 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e74eb47355d689438729742d59882617dfcf2207 Author: Yoann Vandoorselaere Date: Thu Mar 27 15:11:45 2008 +0000 Fix build breakage. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10441 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 56 ++++++++++++++++++++++++++-------------------------- configure.in | 9 +++++++-- gtk-doc.make | 33 ++++++++++++++++++++++++------- idmef-client.conf.in | 4 ++-- libprelude-config.in | 2 +- 5 files changed, 64 insertions(+), 40 deletions(-) commit ff9195585beed3cf5f53cab0a6f5cb6e04ded145 Author: Yoann Vandoorselaere Date: Wed Mar 19 08:57:57 2008 +0000 Remove invalid '\n'. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10405 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-ident.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9b475c97f8e073734090ba97516a6d1ebe7d690f Author: Yoann Vandoorselaere Date: Tue Mar 11 15:37:23 2008 +0000 Oops. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10393 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f6ddc40a938de8c7930436b3ac7e0813fb7239c3 Author: Yoann Vandoorselaere Date: Tue Mar 11 15:31:47 2008 +0000 Fix broken substitution. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10390 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f57997f3ff854553a145c228d218aadb61aafaa6 Author: Yoann Vandoorselaere Date: Tue Mar 11 08:58:50 2008 +0000 Build system cleanup, enable RELRO when possible. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10386 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 447 ++++++++++++++------------------- libprelude-config.in | 4 +- m4/as-ac-expand.m4 | 43 ++++ m4/ax_c_check_flag.m4 | 90 +++++++ m4/ax_cflags_gcc_option.m4 | 183 -------------- m4/ax_check_aligned_access_required.m4 | 96 +++++++ m4/ax_ld_check_flag.m4 | 98 ++++++++ prelude-admin/Makefile.am | 3 +- src/Makefile.am | 5 +- 9 files changed, 521 insertions(+), 448 deletions(-) commit d7fb42399485b71f6b3fba812dc27dd2ffae83a0 Author: Yoann Vandoorselaere Date: Tue Mar 11 08:54:29 2008 +0000 Implement RFC 4122 UUIDv1 identifier generation, safer than our previous implementation in case of clock skew, or multiple client with the same analyzerid sending alert in parallel. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10385 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 2 +- src/include/prelude-ident.h | 9 +-- src/prelude-ident.c | 168 +++++++++++++++++++++++++++++++++++++------- 3 files changed, 148 insertions(+), 31 deletions(-) commit b7732d1638dacc6bd450256b9b579b98c00f893d Author: Yoann Vandoorselaere Date: Mon Mar 10 10:47:57 2008 +0000 Allow C++ compilation. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10379 09c5ec92-17d4-0310-903a-819935f44dba .../GenerateIDMEFMessageReadH.pm | 25 +++++++++++++++------- .../GenerateIDMEFMessageWriteH.pm | 25 +++++++++++++++------- src/include/common.h | 6 ++++++ src/include/idmef-message-read.h | 9 ++++++++ src/include/idmef-message-write.h | 9 ++++++++ src/include/prelude-extract.h | 8 +++++++ 6 files changed, 66 insertions(+), 16 deletions(-) commit 605e614faeec17d758cd95c29c270353373120f2 Author: Yoann Vandoorselaere Date: Mon Mar 10 10:47:37 2008 +0000 Remove unused. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10378 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 2 -- 1 file changed, 2 deletions(-) commit fe2b56d83b9f7bd5273fbd6dec283007064bbaca Author: Yoann Vandoorselaere Date: Mon Mar 10 10:21:31 2008 +0000 Do not allow setting a path which depth is 0 (root message), since it make no sense. When deleting listed element, make sure we call prelude_list_del_init(), since the destroy function won't do it for us if the element is referenced somewhere else. Additionally, idmef_path_set() now allow NULL value in order to destroy an existing path value (this use the new idmef_class_child_destroy() stuff). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10377 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 53 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 17 deletions(-) commit d4f4602b25de4473b4dccd37a12c13be26bcad2c Author: Yoann Vandoorselaere Date: Mon Mar 10 10:21:17 2008 +0000 New idmef_class_destroy_child() function, calling the low-level _idmef__destroy_child() function for the required class. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10376 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 14 +++++++++++++- src/include/idmef-class.h | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) commit ba46138624cdd77a2b7a9b1cb457a0d4bca7c011 Author: Yoann Vandoorselaere Date: Mon Mar 10 10:21:01 2008 +0000 Whitespace police git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10375 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit d9c0a49eaf1ef00d37283b9117082ed82b013947 Author: Yoann Vandoorselaere Date: Mon Mar 10 10:20:51 2008 +0000 Generate _idmef__destroy_child() function, to be used from the idmef-path API in order to generically destroy a class child. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10374 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | 1 + src/idmef-tree-wrap.c | 2294 ++++++++++++++++++++-- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 185 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 153 ++ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 199 +- src/include/idmef-tree-data.h | 121 +- src/include/idmef-tree-wrap.h | 30 + 7 files changed, 2535 insertions(+), 448 deletions(-) commit c4e93fa7367062bac0a60bbcb5c67199a366ddee Author: Yoann Vandoorselaere Date: Mon Mar 10 10:20:35 2008 +0000 When we encounter a TLS fatal error on close, close the connection fd immediatly. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10373 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 19 ------------------- src/prelude-io.c | 9 +++++++-- 2 files changed, 7 insertions(+), 21 deletions(-) commit 8a746936cbf7a8ccb6004656e4389e831187f0f5 Author: Yoann Vandoorselaere Date: Thu Mar 6 17:38:18 2008 +0000 Allow cloning of empty prelude-string. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10362 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 1 - 1 file changed, 1 deletion(-) commit 071d2c23125b46459ef2cfeab5caab2b05c934bf Author: Yoann Vandoorselaere Date: Thu Mar 6 17:35:59 2008 +0000 Fix invalid if condition in auto generated code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10361 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 4 +-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 36 ++++++++++++------------ 2 files changed, 20 insertions(+), 20 deletions(-) commit 82af17ab569ad723b44dd582169ee0c51cb65163 Author: Yoann Vandoorselaere Date: Thu Mar 6 17:23:02 2008 +0000 Destroy previous connection pool if any. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10359 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 3 +++ 1 file changed, 3 insertions(+) commit 72d390756188efe543bc60bf93b242ee345802e6 Author: Yoann Vandoorselaere Date: Thu Mar 6 17:19:20 2008 +0000 Work toward unifying memory handling of class value retrieval through idmef_path_t. All class are now dynamically allocated, and class required within their parent are automatically allocated at parent initialization. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10356 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 171 +++++++++++++++++------ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 56 +++++++- src/idmef-wrappers-gen/IDMEFTree.pm | 43 +++++- src/idmef-wrappers-gen/idmef-tree.h | 6 +- src/include/idmef-tree-wrap.h | 6 +- 5 files changed, 232 insertions(+), 50 deletions(-) commit 860b6b0e0503bf389e4ce8152d01e289ec9c65ed Author: Yoann Vandoorselaere Date: Thu Mar 6 16:59:40 2008 +0000 Work toward unifying memory handling of value retrieval through idmef_path_t. This change allow the user to retrieve and keep a static value (not dynamically allocated), even through it's associated IDMEF message is freed. When an user retrieve a static IDMEF value, we now automatically perform a copy. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10355 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 42 +++++++++++++++++------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 42 +++++++++++++++++------- 2 files changed, 60 insertions(+), 24 deletions(-) commit b51b82bac50b0330139f93b4e8f1ac9dcbc5f318 Author: Yoann Vandoorselaere Date: Thu Mar 6 16:22:31 2008 +0000 Work toward unifying memory handling of value retrieval through idmef_path_t. This change allow the user to keep a listed value around even through the idmef_message_t it was retrieved from has been destroyed. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10350 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit 38d40e286449ae5bf64af5c9713739bea83e4443 Author: Yoann Vandoorselaere Date: Thu Mar 6 15:41:13 2008 +0000 Implement idmef_value_type_ref(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10349 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 83 +++++++++++++++++++++++++++---------- src/include/idmef-value-type.h | 1 + src/libprelude-error/err-codes.h.in | 4 +- 3 files changed, 66 insertions(+), 22 deletions(-) commit 84ef4babc28781095b079f5e55899cc6cf01f4de Author: Yoann Vandoorselaere Date: Thu Mar 6 15:41:08 2008 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10348 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 142 ++++++++++++++++++++--------------------- src/include/idmef-value-type.h | 20 +++--- 2 files changed, 81 insertions(+), 81 deletions(-) commit 345c58e5f4877e17a20c2fe711fd33520999954d Author: Yoann Vandoorselaere Date: Thu Mar 6 15:40:57 2008 +0000 Forgot this part. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10347 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) commit d2057b8515c31136a1df3794a9ad803b6bd1b21f Author: Yoann Vandoorselaere Date: Thu Mar 6 15:40:50 2008 +0000 Build system cleanup. Use default system CFLAGS for GnuLib / bindings build. Make it impossible for the user to overwrite the -pthread CFLAGS. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10346 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 14 +++++++------- bindings/perl/Makefile.PL.in | 2 +- bindings/python/setup.py.in | 2 +- libprelude-config.in | 2 +- prelude-admin/Makefile.am | 5 ++--- src/Makefile.am | 9 ++++----- src/libprelude-error/Makefile.am | 5 +++-- 7 files changed, 19 insertions(+), 20 deletions(-) commit e9db93980af0e65a2b501ccf91f3f1a9e526ebe0 Author: Yoann Vandoorselaere Date: Thu Mar 6 11:18:32 2008 +0000 Allow copy/clone of empty prelude_string_t. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10337 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) commit d132e52157e29ebe96234a6e36c193c1c52626c4 Author: Yoann Vandoorselaere Date: Thu Mar 6 11:18:24 2008 +0000 Fix printing of empty IDMEF string (print ). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10336 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 11 ++++------- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 11 ++++------- 2 files changed, 8 insertions(+), 14 deletions(-) commit 05ca2b76feddb23212e532a9b2705a708cd8f09f Author: Yoann Vandoorselaere Date: Tue Mar 4 14:09:45 2008 +0000 Implement PRELUDE_CLIENT_FLAGS_AUTOCONFIG, which is set by default, but that applications might unset in order for their client not to read the default profile/global configuration. Might be triggered by: - prelude_client_set_flags(client, flags) - prelude_client_set_config_filename(client, NULL); git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10327 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 11 ++++++----- src/prelude-client.c | 27 +++++++++++++++++---------- 2 files changed, 23 insertions(+), 15 deletions(-) commit 3a3b9a6274ff4abc14da68852ce2bd078b7f53ca Author: Yoann Vandoorselaere Date: Tue Mar 4 12:48:30 2008 +0000 Duplicate close_connction_fd_block() check in close_connection_fd(), since we assume error from close_connection_fd to be IO error. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10325 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 3 +++ 1 file changed, 3 insertions(+) commit 16fc5a4a75f57d41e19b0a070c93b601b8260d39 Author: Yoann Vandoorselaere Date: Thu Feb 21 13:39:19 2008 +0000 Do not try to send a final heartbeat on prelude_client_destroy() if the client object was not at least at the starting status (fix possible assertion on destroy). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10263 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 1601518aeeb1ea33c10e1a4999d31e45e5fe0c99 Author: Yoann Vandoorselaere Date: Wed Feb 20 16:31:14 2008 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10256 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 198 +++++++++++++++++++++++++++--------------------------- 1 file changed, 99 insertions(+), 99 deletions(-) commit 65a36bdbb69fa991df83d730751c944e08d55091 Author: Yoann Vandoorselaere Date: Wed Feb 20 09:35:26 2008 +0000 Allow user to associate it's own callback function to a prelude_io_t object. Implement: - prelude_io_set_write_callback() - prelude_io_set_read_callback() - prelude_io_set_pending_callback() - prelude_io_set_fdptr(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10254 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-io.h | 15 ++++++++--- src/prelude-io.c | 65 +++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 74 insertions(+), 6 deletions(-) commit de0cfcf268390827a647e5a9e098cccdb7db839b Author: Yoann Vandoorselaere Date: Wed Feb 20 08:36:43 2008 +0000 Fix string translation of IDMEF_CRITERION_OPERATOR_(NOT_)NULL to string. Remove gratuitous space insertion when dumping criteria. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10216 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 919787bc612c1811f59d43944deeeef7ea210832 Author: Yoann Vandoorselaere Date: Wed Feb 20 08:36:19 2008 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10215 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 584b0b6babbbbbe912293fd36a21c386583c715b Author: Yoann Vandoorselaere Date: Sat Feb 9 17:32:55 2008 +0000 Missing 'extern C' for C++ build. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10157 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-class.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit 2af15ed6267b9a5f70bdfdeb95d7067ec0a99577 Author: Yoann Vandoorselaere Date: Tue Feb 5 08:22:28 2008 +0000 In case of invalid enumeration value, print . git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10140 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 3 +++ src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 3 +++ 2 files changed, 6 insertions(+) commit 73b0316a0722e3bb705baa82394597376658d906 Author: Pierre Chifflier Date: Sat Jan 26 12:40:33 2008 +0000 (bindings): for functions returning pointers to integers, dereference the pointer and return either the integer, or the native equivalent to NULL (None for Python, undef for Perl). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10131 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 23 +++++++++++++++++++++++ bindings/libprelude_perl.i | 36 ++++++++++++++++++++++++++++++++++++ bindings/libprelude_python.i | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+) commit 8678c7764d60fe7e9cebefc476517f8a7e614d63 Author: Yoann Vandoorselaere Date: Wed Jan 23 14:57:34 2008 +0000 Update NEWS, bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10128 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 13 +++++++++++++ configure.in | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) commit b61f271faf401a65a1ae9d0f990bfaff5cd2696b Author: Yoann Vandoorselaere Date: Wed Jan 23 14:41:43 2008 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10127 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 72 ++++++-- libmissing/float.in.h | 2 +- libmissing/fseeko.c | 3 + libmissing/m4/alloca.m4 | 8 +- libmissing/m4/eealloc.m4 | 32 ---- libmissing/m4/float_h.m4 | 4 +- libmissing/m4/getdelim.m4 | 4 +- libmissing/m4/getline.m4 | 4 +- libmissing/m4/gnulib-comp.m4 | 89 ++++++++- libmissing/m4/malloca.m4 | 14 -- libmissing/m4/memchr.m4 | 18 ++ libmissing/m4/memcmp.m4 | 19 ++ libmissing/m4/memmem.m4 | 49 ++++- libmissing/m4/stdio_h.m4 | 15 +- libmissing/m4/stdlib_h.m4 | 7 +- libmissing/m4/strcase.m4 | 8 +- libmissing/m4/strcasestr.m4 | 55 +++++- libmissing/m4/string_h.m4 | 13 +- libmissing/m4/strings_h.m4 | 33 ++++ libmissing/m4/unistd_h.m4 | 7 +- libmissing/malloca.c | 137 -------------- libmissing/malloca.h | 124 ------------- libmissing/malloca.valgrind | 7 - libmissing/memchr.c | 200 ++++++++++++++++++++ libmissing/memcmp.c | 361 ++++++++++++++++++++++++++++++++++++ libmissing/memmem.c | 55 ++++-- libmissing/printf-parse.c | 40 +++- libmissing/regcomp.c | 2 +- libmissing/stdint.in.h | 10 +- libmissing/stdio.in.h | 4 +- libmissing/stdlib.in.h | 25 ++- libmissing/str-two-way.h | 427 +++++++++++++++++++++++++++++++++++++++++++ libmissing/strcasestr.c | 233 +++++------------------ libmissing/string.in.h | 128 ++++++------- libmissing/strings.in.h | 86 +++++++++ libmissing/unistd.in.h | 58 ++++++ libmissing/vasnprintf.c | 3 + libmissing/vasnprintf.h | 4 +- 38 files changed, 1714 insertions(+), 646 deletions(-) commit a9eb56c80500efce19b885270a725808d68541ca Author: Pierre Chifflier Date: Tue Jan 22 13:26:16 2008 +0000 SWIG bindings: add typemaps to arguments of *_get_next* functions, to allow NULL arguments, which are forbidden by default by SWIG (Fix #269) git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10125 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 22 +++++++++++++++++++++- bindings/libprelude_perl.i | 15 +++++++++++++++ bindings/libprelude_python.i | 12 ++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) commit ee99926a56a15fbed752aa55838a79e2d1aed14b Author: Yoann Vandoorselaere Date: Thu Jan 17 17:07:25 2008 +0000 Improve prototype for get_next functions, use _cur as a suffix for the iterative argument (shall be used to special case get_next code using swig typemap, without breaking others functions - refs #269). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10123 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 240 +++++++++++------------ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 12 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 2 +- src/include/idmef-tree-wrap.h | 40 ++-- 4 files changed, 147 insertions(+), 147 deletions(-) commit 7f0826e3dd65496c80c66c92707cc58ccf6b892d Author: Yoann Vandoorselaere Date: Tue Jan 8 11:20:01 2008 +0000 FreeBSD compilation fix. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10121 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-extract.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2149665f4090fc090d45ed8840afff4a238d6a0d Author: Yoann Vandoorselaere Date: Tue Jan 8 11:17:45 2008 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10120 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-extract.h | 52 +++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 26 deletions(-) commit 33d7cc04f694d5bfe5b047e39420daab094d79b2 Author: Yoann Vandoorselaere Date: Thu Dec 6 11:04:25 2007 +0000 Make sure we use no additional GnuLib compiler flags when build bindings. This fix bindings compilation failure on some architecture (Solaris). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10084 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 4 ++-- configure.in | 21 +++++++++++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) commit b5240392a9c4383a100777fa970e09f8f5ffb789 Author: Yoann Vandoorselaere Date: Thu Dec 6 11:04:12 2007 +0000 Update to newer acx_pthread.m4 git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10083 09c5ec92-17d4-0310-903a-819935f44dba m4/acx_pthread.m4 | 178 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 109 insertions(+), 69 deletions(-) commit 20c5f5f52f29d7b3041fe30ca44628ab0b5f48a3 Author: Yoann Vandoorselaere Date: Thu Dec 6 08:50:16 2007 +0000 Solaris warnings fixes. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10082 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 4 ++-- src/prelude-client.c | 8 ++++---- src/prelude-connection.c | 4 ++-- src/prelude-log.c | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) commit 1ec0a23b344f72433841648bd7cf723a9094c752 Author: Yoann Vandoorselaere Date: Fri Nov 23 11:08:29 2007 +0000 Update NEWS, bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10067 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 20 ++++++++++++++++++++ configure.in | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) commit f56e8264717b2105f9ad1a901a962a32dd20765a Author: Yoann Vandoorselaere Date: Fri Nov 23 11:08:22 2007 +0000 Avoid warning while generating the documentation due to change in the way we named function argument for auto generated IDMEF functions. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10066 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 66 +++++++++++++----------- docs/api/tmpl/idmef-tree-wrap.sgml | 60 ++++++++++----------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 2 +- src/include/idmef-tree-wrap.h | 60 ++++++++++----------- 4 files changed, 96 insertions(+), 92 deletions(-) commit 2d3f1c9f05ae53a92b0438cd1289390aed566557 Author: Yoann Vandoorselaere Date: Fri Nov 23 11:08:08 2007 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10065 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 102 ++--- libmissing/alloca.c | 2 +- libmissing/alloca.in.h | 54 +++ libmissing/alloca_.h | 54 --- libmissing/asnprintf.c | 2 +- libmissing/config.charset | 36 +- libmissing/float+.h | 2 +- libmissing/float.in.h | 58 +++ libmissing/float_.h | 59 --- libmissing/fseeko.c | 6 +- libmissing/gai_strerror.c | 2 +- libmissing/getaddrinfo.c | 2 +- libmissing/getaddrinfo.h | 2 +- libmissing/getdelim.c | 2 +- libmissing/getline.c | 2 +- libmissing/getpass.c | 2 +- libmissing/getpass.h | 2 +- libmissing/gettext.h | 2 +- libmissing/gettimeofday.c | 8 +- libmissing/inet_ntop.c | 2 +- libmissing/inet_ntop.h | 2 +- libmissing/localcharset.c | 2 +- libmissing/localcharset.h | 2 +- libmissing/lseek.c | 2 +- libmissing/m4/getaddrinfo.m4 | 31 +- libmissing/m4/gnulib-common.m4 | 45 +- libmissing/m4/gnulib-comp.m4 | 48 ++- libmissing/m4/intmax_t.m4 | 12 +- libmissing/m4/longlong.m4 | 78 +++- libmissing/m4/socklen.m4 | 4 +- libmissing/m4/stdint.m4 | 4 +- libmissing/m4/stdio_h.m4 | 6 +- libmissing/m4/stdlib_h.m4 | 4 +- libmissing/m4/strsep.m4 | 4 +- libmissing/m4/ulonglong.m4 | 48 --- libmissing/m4/vasnprintf.m4 | 52 ++- libmissing/m4/wint_t.m4 | 2 +- libmissing/malloc.c | 2 +- libmissing/malloca.c | 2 +- libmissing/malloca.h | 2 +- libmissing/memmem.c | 2 +- libmissing/minmax.h | 2 +- libmissing/mktime.c | 2 +- libmissing/netinet_in.in.h | 43 ++ libmissing/netinet_in_.h | 43 -- libmissing/pathmax.h | 2 +- libmissing/poll.c | 2 +- libmissing/poll.in.h | 53 +++ libmissing/poll_.h | 53 --- libmissing/printf-args.c | 2 +- libmissing/printf-args.h | 2 +- libmissing/printf-parse.c | 27 +- libmissing/printf-parse.h | 2 +- libmissing/realloc.c | 42 +- libmissing/ref-add.sin | 2 +- libmissing/ref-del.sin | 2 +- libmissing/regcomp.c | 2 +- libmissing/regex.c | 2 +- libmissing/regex.h | 2 +- libmissing/regex_internal.c | 2 +- libmissing/regex_internal.h | 2 +- libmissing/regexec.c | 2 +- libmissing/size_max.h | 2 +- libmissing/snprintf.c | 2 +- libmissing/stdbool.in.h | 119 ++++++ libmissing/stdbool_.h | 118 ------ libmissing/stdint.in.h | 516 ++++++++++++++++++++++ libmissing/stdint_.h | 508 ---------------------- libmissing/stdio.in.h | 382 +++++++++++++++++ libmissing/stdio_.h | 356 ---------------- libmissing/stdlib.in.h | 185 ++++++++ libmissing/stdlib_.h | 177 -------- libmissing/strcasecmp.c | 2 +- libmissing/strcasestr.c | 2 +- libmissing/strdup.c | 2 +- libmissing/string.in.h | 563 ++++++++++++++++++++++++ libmissing/string_.h | 565 ------------------------- libmissing/strncasecmp.c | 2 +- libmissing/strndup.c | 2 +- libmissing/strnlen.c | 2 +- libmissing/strpbrk.c | 2 +- libmissing/strptime.c | 2 +- libmissing/strsep.c | 2 +- libmissing/sys_select.in.h | 43 ++ libmissing/sys_select_.h | 43 -- libmissing/sys_socket.in.h | 91 ++++ libmissing/sys_socket_.h | 91 ---- libmissing/sys_time.in.h | 52 +++ libmissing/sys_time_.h | 52 --- libmissing/time.in.h | 114 +++++ libmissing/time_.h | 114 ----- libmissing/time_r.c | 2 +- libmissing/timegm.c | 2 +- libmissing/unistd.in.h | 262 ++++++++++++ libmissing/unistd_.h | 262 ------------ libmissing/vasnprintf.c | 940 ++++++++++++++++++++++++++++++++++++----- libmissing/vasnprintf.h | 2 +- libmissing/vsnprintf.c | 2 +- libmissing/wchar.in.h | 82 ++++ libmissing/wchar_.h | 82 ---- libmissing/wctype.in.h | 161 +++++++ libmissing/wctype_.h | 161 ------- libmissing/xsize.h | 2 +- 103 files changed, 4018 insertions(+), 3099 deletions(-) commit 461c3933a8ff6ccf39c955f46e3c890eee491e12 Author: Yoann Vandoorselaere Date: Wed Nov 21 16:32:37 2007 +0000 Improve error message in case of locking error. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10064 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit dcce18cd0e9090ea8a7436d45744b31b2db1f33e Author: Yoann Vandoorselaere Date: Tue Nov 20 09:01:39 2007 +0000 Fix invalid use of 'GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED' with early GnuTLS version (close #268). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10061 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 2 +- src/include/tls-util.h | 2 +- src/tls-util.c | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) commit f3d82a62c9d94f4080d3616368fd86d4a13d5078 Author: Yoann Vandoorselaere Date: Mon Nov 12 16:34:52 2007 +0000 Small improvement to the way pthread_cond_timedwait() absolute time is computed. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10039 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) commit 0cbfdf6adc90edefecf0c5ca8e3b0bd39a31a307 Author: Yoann Vandoorselaere Date: Wed Nov 7 15:44:28 2007 +0000 Send heartbeat as high priority message. It is important that heartbeat are delivred in time, since they give indication about the health of the system. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10032 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-write.c | 2 ++ src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 4 ++++ 2 files changed, 6 insertions(+) commit 72e5baa595b095481dbb39722b45a90278e2b760 Author: Yoann Vandoorselaere Date: Wed Nov 7 15:43:21 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10031 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-write.c | 524 +++++++++++---------- .../GenerateIDMEFMessageWriteC.pm | 234 ++++----- 2 files changed, 394 insertions(+), 364 deletions(-) commit 0bdf2719200bd949bdc05539875f28ccd9a8668b Author: Yoann Vandoorselaere Date: Fri Nov 2 12:57:48 2007 +0000 Patch from Pierre Chifflier to propagate CC variable when building bindings (fix #264). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10024 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 07858866d5361becff471197558148152afeefcf Author: Sebastien Tricaud Date: Mon Oct 22 14:23:18 2007 +0000 (enhancement): More explicit data type assertions with idmef_foobar_ref() functions git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10016 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 420 +++++++++++------------ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 14 +- 2 files changed, 217 insertions(+), 217 deletions(-) commit 56ad3082186d79bf323fd00ab06edcd39c706eb0 Author: Sebastien Tricaud Date: Mon Oct 22 14:20:09 2007 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10015 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 153 +++++++++++++++-------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 9 +- 2 files changed, 108 insertions(+), 54 deletions(-) commit 7cded7ea64409242fc699c118316abb2294b577a Author: Sebastien Tricaud Date: Fri Oct 19 14:46:45 2007 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10012 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) commit 12c24fd1776356ca2cfcb2e55b83f4179fb735c0 Author: Sebastien Tricaud Date: Fri Oct 19 14:41:49 2007 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10011 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) commit 6732fc49d8ffd3cdddb1418026c93d677289a83c Author: Sebastien Tricaud Date: Fri Oct 19 14:38:59 2007 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10010 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 4b2e8f558e3716bd1011128cba4f2af4b961d774 Author: Sebastien Tricaud Date: Fri Oct 19 14:36:54 2007 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10009 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit c432971f3ad1c48cbae6775f140f5ea1ce1aaba3 Author: Sebastien Tricaud Date: Fri Oct 19 14:33:47 2007 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10008 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) commit b4db2c0d8e63ee040794fe014678233b88790ec2 Author: Sebastien Tricaud Date: Fri Oct 19 14:31:06 2007 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10007 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit 9e999a98ae5a950798aa04b6a783ca8b2ca43a91 Author: Sebastien Tricaud Date: Fri Oct 19 14:26:15 2007 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10006 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 8862ff79fc5b71929a6e223517743a116c6adb02 Author: Sebastien Tricaud Date: Fri Oct 19 13:49:00 2007 +0000 (fix): whitespace police git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10004 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit c54107c0c14d869d598f49031f330702f52e2daf Author: Sebastien Tricaud Date: Fri Oct 19 13:47:20 2007 +0000 (bugfix): This assert should check the two values git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10003 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4541253ba9d5914d881f9f4fa5578091c4cab169 Author: Sebastien Tricaud Date: Fri Oct 19 13:38:55 2007 +0000 (fix): whitespace police git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10002 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 8ef528ef3820de007b433d957fb181c7a6eae01d Author: Sebastien Tricaud Date: Fri Oct 19 13:35:45 2007 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10001 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit adb44e3f732e35df25e1351541c33ac8e0b84bad Author: Sebastien Tricaud Date: Fri Oct 19 13:24:21 2007 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: file:///home/yoann/SVN/libprelude/trunk@10000 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) commit 099d6e7620c4837f93f1a4cd6268b77694a145b5 Author: Sebastien Tricaud Date: Fri Oct 19 13:24:00 2007 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9999 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) commit 7d1919c119de13a9e3f3f4fe7e0eb987f1dae4af Author: Sebastien Tricaud Date: Fri Oct 19 13:23:30 2007 +0000 (enhancement): Improving assertion messages by separating variables check git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9998 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) commit ca429a5642e449b972c6d4ae891621916e9d4ce1 Author: Yoann Vandoorselaere Date: Thu Oct 18 10:43:24 2007 +0000 Set appropriate umask() before creating failover files. Additionally set the failover file group writable. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9992 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) commit 3c4441d7fc1eefeb38612bbdbc9b340916f8764c Author: Yoann Vandoorselaere Date: Thu Oct 18 10:43:12 2007 +0000 Directory creation permissions fixes. Specify our own umask() before creating any profile with prelude-admin, so that the created group will always have the correct permissions. Make the profile backup directory group writable. The profile directory itself remain group readable. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9991 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) commit 7f57844b5a95048f1803bef6f505b86401cc87cc Author: Yoann Vandoorselaere Date: Thu Oct 18 10:42:59 2007 +0000 Revert "Mask group write / other all permissions before creating any files." This reverts commit b0ce0a5e2a7604c9062fd463a37e4999a375994e. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9990 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 105eee067d7ab29e3d02f711d3060611b817d734 Author: Yoann Vandoorselaere Date: Thu Oct 18 10:42:48 2007 +0000 Mask group write / other all permissions before creating any files. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9989 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit 1b6e03a253f1787f6ea29409e98202548e727023 Author: Yoann Vandoorselaere Date: Thu Oct 18 10:40:22 2007 +0000 Correctly format "send" command help output. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9988 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 0ae005f6c37c8870abbd695f735e86416ad026d0 Author: Sebastien Tricaud Date: Mon Oct 8 12:51:28 2007 +0000 (fix): when the analyzer has a white space in its name git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9976 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d412fb7d5a2a1ecd999c3a883ac37e8d41f7ddb9 Author: Yoann Vandoorselaere Date: Mon Oct 1 12:47:35 2007 +0000 Update NEWS, documentation. Bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9959 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 18 +++++++++++++++++- configure.in | 6 +++--- docs/api/libprelude-decl.txt | 2 +- 3 files changed, 21 insertions(+), 5 deletions(-) commit 71b33913b1f05cc2c9f7ab9b8bb641a657c86ee0 Author: Yoann Vandoorselaere Date: Mon Oct 1 12:47:24 2007 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9958 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 63 ++++++++++++++ libmissing/m4/absolute-header.m4 | 49 +++++++++++ libmissing/m4/extensions.m4 | 52 ++++++++---- libmissing/m4/getaddrinfo.m4 | 4 +- libmissing/m4/getdelim.m4 | 4 +- libmissing/m4/getline.m4 | 4 +- libmissing/m4/gnulib-comp.m4 | 35 ++++++-- libmissing/m4/malloc.m4 | 41 +++++++++ libmissing/m4/memmem.m4 | 4 +- libmissing/m4/realloc.m4 | 23 +++++ libmissing/m4/regex.m4 | 4 +- libmissing/m4/stdlib_h.m4 | 35 ++++++++ libmissing/m4/string_h.m4 | 3 + libmissing/m4/strndup.m4 | 6 +- libmissing/m4/strnlen.m4 | 6 +- libmissing/m4/strsep.m4 | 4 +- libmissing/malloc.c | 30 ++++++- libmissing/realloc.c | 65 ++++++++++++++ libmissing/stdio_.h | 27 +++--- libmissing/stdlib_.h | 177 +++++++++++++++++++++++++++++++++++++++ libmissing/string_.h | 17 ++++ 21 files changed, 597 insertions(+), 56 deletions(-) commit 9d92f2e8f60d4fe9982c032370b7d81fe5818e86 Author: Yoann Vandoorselaere Date: Mon Oct 1 10:49:53 2007 +0000 Correct prelude-admin "list" command help. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9957 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 04fdc1ca32e49aca8b155fd1bd4c26ee7ba88877 Author: Yoann Vandoorselaere Date: Mon Oct 1 10:41:31 2007 +0000 Correct printing of IDMEF time field when they use a different GMT offset than local. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9956 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit e7d30b68ed18aef5329248b094311a18530ddcd5 Author: Yoann Vandoorselaere Date: Mon Oct 1 10:41:22 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9955 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 3120 ++++++++++---------- .../GenerateIDMEFMessagePrintC.pm | 274 +- 2 files changed, 1697 insertions(+), 1697 deletions(-) commit 76c19a33138ac9261748cada8ae2eeea4dfd0166 Author: Yoann Vandoorselaere Date: Fri Sep 7 16:04:14 2007 +0000 Implement multiple analyzer deletion. Correct error reporting in case we get FTW_DNR. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9899 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit 68b8ec43838cfb19ce766d24c8161bb891e371f3 Author: Yoann Vandoorselaere Date: Fri Sep 7 15:51:24 2007 +0000 Implement prelude-admin (list [-l]). Multiple improvement to the utility, including handling of the --help command line option, and other bug fixes. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9898 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 515 +++++++++++++++++++++++++++++++++--------- 1 file changed, 408 insertions(+), 107 deletions(-) commit 0f7ab7d305f8b65075e14bb3d706b24a05aef7ad Author: Yoann Vandoorselaere Date: Fri Sep 7 13:21:58 2007 +0000 Implement _prelude_tls_crt_list_import() function, which use gnutls_x509_crt_list_import() if available, or it's own implementation (which deprecate load_individual_cert). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9897 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 + src/include/tls-util.h | 5 +- src/tls-auth.c | 58 +++++++++++++++--- src/tls-util.c | 163 ++++++++++++++++++++++++++++--------------------- 4 files changed, 150 insertions(+), 78 deletions(-) commit e5ea34619379a84dad4bbf58185f846add4d5049 Author: Yoann Vandoorselaere Date: Fri Sep 7 09:45:00 2007 +0000 Patch to avoid struct typespec redefinition, due to variable mispelling. This fixes a compilation problem on OpenBSD 3.8. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9896 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/time_h.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 77305a4722e450067569ad1cf4964e9be2be0807 Author: Yoann Vandoorselaere Date: Tue Sep 4 14:40:17 2007 +0000 Update NEWS, documentation, bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9882 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 17 +++++++++ configure.in | 4 +-- docs/api/libprelude-decl.txt | 74 +++++++++++++++++++++++----------------- docs/api/libprelude-sections.txt | 17 +++++---- 4 files changed, 70 insertions(+), 42 deletions(-) commit 023b80cb7e7fc8e11b99b8bd3938c085a0972ad4 Author: Yoann Vandoorselaere Date: Tue Sep 4 14:40:10 2007 +0000 prelude-error API documentation. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9881 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/prelude-error.c | 87 +++++++++++++++++++++++++++++++-- src/libprelude-error/prelude-error.h.in | 4 +- 2 files changed, 86 insertions(+), 5 deletions(-) commit fbb840d0ba9f045f6424a207e982c0af1d99e559 Author: Yoann Vandoorselaere Date: Tue Sep 4 13:57:11 2007 +0000 Write the forked PID to the specified pidfile (0.9.15 regression) (fix #257). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9880 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8cf3c1d969838734bae72c174f663a7fbebfb6bc Author: Yoann Vandoorselaere Date: Tue Sep 4 13:57:05 2007 +0000 Minor code cleanup. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9879 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 1a88706127db18c2371734e9f9d52ca8bb26dee5 Author: Yoann Vandoorselaere Date: Tue Sep 4 12:58:21 2007 +0000 Fix double free on idmef_criterion_value_t cloned regexp object. (thanks to Helmut Azbest for pointing out the issue). Additionally, we don't clone the backend value anymore since the caller has no way of modyfing it after it is compiled. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9876 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) commit 8e35bde7a1b14f3a36e215a2097ffb4bd54cf917 Author: Yoann Vandoorselaere Date: Tue Sep 4 12:58:12 2007 +0000 Remove unused list member, and avoid copying when it is not needed. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9875 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 7b0cd57e21a86283cbbf9ea294b08334846265cd Author: Yoann Vandoorselaere Date: Tue Sep 4 12:57:58 2007 +0000 Fix warning due to earlier prelude-error un-inlining. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9874 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1887245508627e45df50a7197cce55ecac591e99 Author: Yoann Vandoorselaere Date: Tue Sep 4 12:57:54 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9873 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 168 +++++++++++++++++++++++----------------------- 1 file changed, 84 insertions(+), 84 deletions(-) commit b5e1f8b48381f310118b589ddf924e74361a159b Author: Yoann Vandoorselaere Date: Tue Sep 4 12:57:49 2007 +0000 Allow Python thread to run, while entering libprelude C function. Avoid Python thread from stalling while blocking libprelude function are waiting. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9872 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_python.i | 6 ++++++ 1 file changed, 6 insertions(+) commit 3b0f1cbf7d02e7f183db8745fedca52907834aeb Author: Yoann Vandoorselaere Date: Fri Aug 31 07:15:59 2007 +0000 Prevent possible NULL pointer dereference on destroy() error. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9871 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) commit dec6f66261cbb6954a40d3176d70766ce1983951 Author: Yoann Vandoorselaere Date: Thu Aug 30 15:26:18 2007 +0000 Return PRELUDE_ERROR_ASSERTION when API check fail. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9870 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 24 +- src/idmef-data.c | 28 +- src/idmef-path.c | 26 +- src/idmef-time.c | 24 +- src/idmef-tree-wrap.c | 600 +++++++++++------------ src/idmef-value.c | 48 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 20 +- src/libprelude-error/err-codes.h.in | 1 + src/prelude-client-profile.c | 8 +- src/prelude-client.c | 18 +- src/prelude-connection-pool.c | 18 +- src/prelude-connection.c | 20 +- src/prelude-io.c | 26 +- src/prelude-log.c | 2 +- src/prelude-string.c | 40 +- 15 files changed, 452 insertions(+), 451 deletions(-) commit 60d0b63469216657c64bf54962d595bd3dcb4785 Author: Yoann Vandoorselaere Date: Thu Aug 30 13:00:35 2007 +0000 Call the instance destroy() function on unsubscribe. Simplify plugin_desactivate() code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9869 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) commit 3f21331f1b80b513ec114c1cbf38bf9ddbdcf3ed Author: Yoann Vandoorselaere Date: Thu Aug 30 11:29:53 2007 +0000 Do not inline prelude-error function when possible. This is done in order to prevent future change to the internal error handling from breaking ABI. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9868 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/Makefile.am | 2 +- src/libprelude-error/code-from-errno.c | 37 -------- src/libprelude-error/code-to-errno.c | 39 --------- src/libprelude-error/prelude-error.c | 150 ++++++++++++++++++++++++++++++++ src/libprelude-error/prelude-error.h.in | 131 ++++++---------------------- 5 files changed, 179 insertions(+), 180 deletions(-) commit a61ea9a46801bac3400a4274f7b62a5a2fc924fd Author: Yoann Vandoorselaere Date: Wed Aug 29 10:39:58 2007 +0000 Update NEWS, bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9864 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 13 +++++++++++++ configure.in | 4 ++-- docs/api/libprelude-decl.txt | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) commit 3cdbb8626620ad0bc0a3aa59ccd518208d4479aa Author: Yoann Vandoorselaere Date: Tue Aug 28 15:09:45 2007 +0000 Use prelude_return_if_fail() in place of prelude_log(). Emit a critical warning when trying to copy or clone an empty prelude-string. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9863 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 64 ++++++++++++++-------------------------------------- 1 file changed, 17 insertions(+), 47 deletions(-) commit a8683373383bef02b10e23ef8830fee9ed7f339b Author: Yoann Vandoorselaere Date: Tue Aug 28 11:05:52 2007 +0000 Fix for native awk limitation (fix #256). Include patch by Pierre Chifflier , to fix build error on system that use native awk implementation in place of GNU awk. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9862 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/mkerrcodes.awk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2bb4c1213efa70a8ba808bffcb2107959230b0f5 Author: Yoann Vandoorselaere Date: Fri Aug 24 09:05:13 2007 +0000 Correction to the 'prelude-admin send' help message. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9860 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8de68bfb029fcd477141534f363070f629f38d05 Author: Yoann Vandoorselaere Date: Thu Aug 23 16:23:15 2007 +0000 Bump version number, update documentation, update NEWS. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9851 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 53 +++++++++++++++++++++++++++++++++++++ configure.in | 6 ++--- docs/api/libprelude-decl.txt | 22 ++++++++++++++- docs/api/libprelude-sections.txt | 4 +++ docs/api/tmpl/prelude-failover.sgml | 36 +++++++++++++++++++++++++ 5 files changed, 117 insertions(+), 4 deletions(-) commit 048a2fbb23c4b6743b3ee19aba9c5383ab81d7b4 Author: Yoann Vandoorselaere Date: Thu Aug 23 16:06:40 2007 +0000 Fix warnings. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9850 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 748a59f5f731b4d6864bbaac889c9339e340bed1 Author: Yoann Vandoorselaere Date: Thu Aug 23 16:05:55 2007 +0000 Fix make distcheck. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9849 09c5ec92-17d4-0310-903a-819935f44dba docs/manpages/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d928a4edfc66db9be564e971eea4c8ce6405660a Author: Yoann Vandoorselaere Date: Thu Aug 23 16:05:45 2007 +0000 Improved failover reporting. Check FD_SETSIZE in connection_pool_check_event(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9848 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 0bfd82f938f69c4fb431de127f6e6480bc87c010 Author: Yoann Vandoorselaere Date: Thu Aug 23 16:05:18 2007 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9847 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 11 ++++++++--- libmissing/getdelim.c | 15 +++++++++++---- libmissing/getdelim.h | 28 --------------------------- libmissing/getline.c | 5 ++--- libmissing/getline.h | 28 --------------------------- libmissing/getpass.c | 2 -- libmissing/m4/getdelim.m4 | 15 ++++++++++----- libmissing/m4/getline.m4 | 24 ++++++++++++----------- libmissing/m4/gnulib-cache.m4 | 4 ++-- libmissing/m4/gnulib-comp.m4 | 4 ++-- libmissing/m4/stdio_h.m4 | 5 +++++ libmissing/stdio_.h | 45 +++++++++++++++++++++++++++++++++++++++++-- 12 files changed, 96 insertions(+), 90 deletions(-) commit fcd8f933a4e8bc1a37c556e4d9884dd5c29e7f31 Author: Yoann Vandoorselaere Date: Thu Aug 23 15:10:24 2007 +0000 New Failover implementation. Feature a real 'journaling' log, allowing to restart where we were interupted. Doesn't spew file all over the failover like the older implementation. Allow multiple process to write to the same failover. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9846 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-failover.h | 10 +- src/prelude-failover.c | 624 +++++++++++++++++++++++++++++------------ 2 files changed, 449 insertions(+), 185 deletions(-) commit 919801b3dc7c00acc39bf14fdc97c4be98d7b065 Author: Yoann Vandoorselaere Date: Wed Aug 22 14:46:06 2007 +0000 Continued prelude-async fixes. Avoid deadlock due to a Linux+Glibc bug, when calling pthread_exit() while joining from an atexit() callback (from a shared library). Seems related to: http://sources.redhat.com/bugzilla/show_bug.cgi?id=654 Don't use the atexit() callback at all on OpenBSD since it trigger a deadlock in the OpenBSD pthread code for which no workaround has been found. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9838 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 51 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 15 deletions(-) commit 3e55d069e2bca85077b2c45512aecdc8036fec28 Author: Yoann Vandoorselaere Date: Wed Aug 22 14:41:33 2007 +0000 Make spool and profile directory use mode 711 rather than 755. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9837 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4ad931a41260c7c14f12007972e8e95d56faa568 Author: Yoann Vandoorselaere Date: Wed Aug 22 10:28:53 2007 +0000 Handle getcwd() error more friendly. getcwd() could return an error in case of permission problem, leading to prelude_init() returning an error. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9836 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 15 ++++++++++++--- src/prelude.c | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) commit 46a68613ce533b2ab0e0184618bbaa41b8ad312e Author: Yoann Vandoorselaere Date: Wed Aug 22 10:26:13 2007 +0000 Fix a long time issue where all files permission wouldn't be updated in case the user is registering an existing profile with new permission. Fix a possible crash introduced in an earlier commit, because of a va_list being reused. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9835 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 167 +++++++++++++++++++++--------------------- 1 file changed, 82 insertions(+), 85 deletions(-) commit 976632c35a95b4529e91a952d90a02e1272cdd6d Author: Yoann Vandoorselaere Date: Wed Aug 22 10:25:59 2007 +0000 Coding style fix. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9834 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/tls-register.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 12b7f8559756496e8a84ccfb4bdf32ab3c94f788 Author: Yoann Vandoorselaere Date: Mon Aug 20 15:16:20 2007 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9826 09c5ec92-17d4-0310-903a-819935f44dba libmissing/fseeko.c | 4 +++- libmissing/lseek.c | 22 +++++++++++++++++++--- libmissing/m4/lseek.m4 | 6 +++--- 3 files changed, 25 insertions(+), 7 deletions(-) commit d67c5258a274df13704c958518969aea324904c6 Author: Yoann Vandoorselaere Date: Mon Aug 20 15:03:05 2007 +0000 Fix gcry_set_progress_handler() warnings. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9825 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/tls-register.c | 1 + 1 file changed, 1 insertion(+) commit b03d46efe6368d012fb6c8ae20305fc96d5476ee Author: Yoann Vandoorselaere Date: Mon Aug 20 14:25:19 2007 +0000 Theses files shouldn't have been commited. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9824 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/Makefile | 815 ------------------------------------------ prelude-admin/Makefile.in | 815 ------------------------------------------ prelude-admin/prelude-adduser | 17 - prelude-admin/prelude-admin | 117 ------ 4 files changed, 1764 deletions(-) commit 54a9d356987cffbdb76fa9b61f62d3ad7df15dfc Author: Yoann Vandoorselaere Date: Mon Aug 20 14:24:32 2007 +0000 Update print/send documentation. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9823 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit bda6cd5f41ad2e61c365c5a2a8611a617efe039c Author: Yoann Vandoorselaere Date: Mon Aug 20 14:24:19 2007 +0000 Improvement to Prelude-Admin: - Make the help text simpler. Output less text, and try to provide the user with obvious guideline. - Add a print/send command, to print or send a file containing binary IDMEF data. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9822 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/Makefile | 815 +++++++++++++++++++++++++++++++ prelude-admin/Makefile.in | 815 +++++++++++++++++++++++++++++++ prelude-admin/prelude-adduser | 17 + prelude-admin/prelude-admin | 117 +++++ prelude-admin/prelude-admin.c | 1066 +++++++++++++++++++++++++++-------------- prelude-admin/server.c | 138 +++--- prelude-admin/tls-register.c | 165 ++++--- prelude-admin/tls-register.h | 2 +- 8 files changed, 2620 insertions(+), 515 deletions(-) commit 368176b5e458956fabe050dabc462fd333826348 Author: Yoann Vandoorselaere Date: Mon Aug 20 08:35:56 2007 +0000 Add new status flags to check whether the client was initialized or not, rather than relying on the checksum which might remain NULL in some case. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9821 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit b62001759cd270c6b4a4c6e97251a96571adb401 Author: Yoann Vandoorselaere Date: Sun Aug 19 16:10:09 2007 +0000 Fix negative match of listed value. When matching multiple values within the same path using a negative operator, return an explicit 'no match' if the provided value was found at least once. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9820 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) commit 9c4421155dd1c3dcb7405d151b45158226c65021 Author: Yoann Vandoorselaere Date: Sun Aug 19 16:09:50 2007 +0000 Ability to use string representation of log priority to set abort level. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9819 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 2 ++ src/prelude-log.c | 37 +++++++++++++++++++++++++++++++++++++ src/prelude.c | 9 ++++++--- 3 files changed, 45 insertions(+), 3 deletions(-) commit 2727b3058cc3f8b21edf1be8f3a9311e30f1315c Author: Yoann Vandoorselaere Date: Fri Aug 17 16:59:21 2007 +0000 Protect against bad prelude-io usage. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9818 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 5a0cf85b41866415b43ab5c0c69ae07cd2b8c0d4 Author: Yoann Vandoorselaere Date: Fri Aug 17 16:54:22 2007 +0000 Only class element might not be the last element of a path. This is an additional fix for ticket #251, which should trigger prior to the [9809] error handling due to a NULL children list, but with a more descriptive error message (refs #251). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9817 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e518709e9741d8309b0406ec2c51423184d1244 Author: Yoann Vandoorselaere Date: Fri Aug 17 16:54:13 2007 +0000 Fix typo in function documentation. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9816 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e7ceabbd034725f8625eae36b5f50225de5ed263 Author: Yoann Vandoorselaere Date: Fri Aug 17 16:54:04 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9815 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 170 ++++++++++++++++++++++---------------------- 1 file changed, 85 insertions(+), 85 deletions(-) commit fc8de4cddc38628dfddc127bdc66bf9e258c71d3 Author: Yoann Vandoorselaere Date: Fri Aug 17 16:53:43 2007 +0000 Improved error message. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9814 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 4ea3961b0c06e6390314dbd1a5ffc9d467f7dfe5 Author: Yoann Vandoorselaere Date: Fri Aug 17 16:53:37 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9813 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/tls-register.c | 238 +++++++++++++++++++++---------------------- 1 file changed, 119 insertions(+), 119 deletions(-) commit b799059d46e481cb8ce6ace845c1f3498733c1b3 Author: Sebastien Tricaud Date: Fri Aug 17 13:52:31 2007 +0000 (bugfix,#251): Fixes segmentation fault when setting an invalid idmef child in the first place git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9809 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 87698dad872932df0e087ae33880c79520a61566 Author: Yoann Vandoorselaere Date: Thu Aug 9 08:56:53 2007 +0000 GnuLib code update. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9784 09c5ec92-17d4-0310-903a-819935f44dba libmissing/float+.h | 148 ++++++++++++++++++++++++ libmissing/float_.h | 59 ++++++++++ libmissing/fseeko.c | 114 ++++++++++++++++++ libmissing/lseek.c | 46 ++++++++ libmissing/m4/float_h.m4 | 19 +++ libmissing/m4/include_next.m4 | 107 +++++++++++++++++ libmissing/m4/lseek.m4 | 50 ++++++++ libmissing/m4/malloca.m4 | 14 +++ libmissing/m4/unistd_h.m4 | 56 +++++++++ libmissing/malloca.c | 137 ++++++++++++++++++++++ libmissing/malloca.h | 124 ++++++++++++++++++++ libmissing/malloca.valgrind | 7 ++ libmissing/unistd_.h | 262 ++++++++++++++++++++++++++++++++++++++++++ 13 files changed, 1143 insertions(+) commit 628d6741b16c4da2f6c2c85eec9228c58c7949cb Author: Yoann Vandoorselaere Date: Thu Aug 9 08:56:27 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9783 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-admin.c | 424 +++++++++++++++++++++--------------------- 1 file changed, 212 insertions(+), 212 deletions(-) commit 139aa41dd16337b2576fd4b90dfa585179a2121a Author: Yoann Vandoorselaere Date: Wed Aug 8 13:50:02 2007 +0000 Add missing IDMEF_CRITERION_OPERATOR_EQUAL_NOCASE and IDMEF_CRITERION_OPERATOR_NOT_EQUAL_NOCASE to idmef_criterion_operator_to_string(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9778 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 3 +++ 1 file changed, 3 insertions(+) commit 26b5883f33b25203220f887cb2f67d126ff52460 Author: Yoann Vandoorselaere Date: Wed Aug 8 13:49:52 2007 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9777 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 146 +- libmissing/allocsa.c | 137 -- libmissing/allocsa.h | 124 -- libmissing/allocsa.valgrind | 7 - libmissing/m4/absolute-header.m4 | 44 - libmissing/m4/allocsa.m4 | 14 - libmissing/m4/fseeko.m4 | 15 +- libmissing/m4/getaddrinfo.m4 | 31 +- libmissing/m4/gnulib-cache.m4 | 2 + libmissing/m4/gnulib-comp.m4 | 24 +- libmissing/m4/netinet_in_h.m4 | 6 +- libmissing/m4/regex.m4 | 15 +- libmissing/m4/stdint.m4 | 70 +- libmissing/m4/stdio_h.m4 | 33 +- libmissing/m4/string_h.m4 | 5 +- libmissing/m4/sys_select_h.m4 | 7 +- libmissing/m4/sys_socket_h.m4 | 7 +- libmissing/m4/sys_time_h.m4 | 6 +- libmissing/m4/time_h.m4 | 4 +- libmissing/m4/vasnprintf.m4 | 73 +- libmissing/m4/wchar.m4 | 39 +- libmissing/m4/wctype.m4 | 7 +- libmissing/m4/wint_t.m4 | 2 +- libmissing/netinet_in_.h | 14 +- libmissing/printf-args.c | 54 +- libmissing/printf-args.h | 24 +- libmissing/printf-parse.c | 65 +- libmissing/printf-parse.h | 115 +- libmissing/regex_internal.h | 2 +- libmissing/stdint_.h | 20 +- libmissing/stdio_.h | 77 +- libmissing/strcasestr.c | 6 +- libmissing/string_.h | 26 +- libmissing/sys_select_.h | 14 +- libmissing/sys_socket_.h | 18 +- libmissing/sys_time_.h | 32 +- libmissing/time_.h | 100 +- libmissing/vasnprintf.c | 2991 ++++++++++++++++++++++++++++++++++---- libmissing/wchar_.h | 53 +- libmissing/wctype_.h | 18 +- 40 files changed, 3560 insertions(+), 887 deletions(-) commit 2b6c91393e13a6d7e44f14201c66ee4f6ccb7c58 Author: Yoann Vandoorselaere Date: Wed Aug 8 13:49:17 2007 +0000 Automatically switch to syslog mode if we detect stdout or stderr closure. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9776 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 98 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 72 insertions(+), 26 deletions(-) commit f428c5b1b35551f8cab75469c09f25b827431f38 Author: Yoann Vandoorselaere Date: Wed Aug 8 10:32:47 2007 +0000 Lock pidfile in the children, since advisory lock aren't shared accross fork(). Improved error reporting in case the lock is already held. Don't try to delete the lockfile on exit() (there is no problem with leaving it here since it is protected by the advisory lock) (fix #223). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9775 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 41 +++++++++++------------------------------ 1 file changed, 11 insertions(+), 30 deletions(-) commit 0beca151fe08078d1ce186eb0653c5e99e9dd2a6 Author: Yoann Vandoorselaere Date: Wed Aug 8 10:32:22 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9774 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 62 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) commit f41b263b15975be2af07f980647bf1260617243b Author: Sebastien Tricaud Date: Thu Aug 2 12:57:41 2007 +0000 moved man directory to manpages just as in libpreludedb git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9768 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 +- docs/Makefile.am | 2 +- docs/man/Makefile.am | 2 - docs/man/prelude-admin.1 | 153 ------------------------------------------ docs/manpages/Makefile.am | 2 + docs/manpages/prelude-admin.1 | 153 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 157 insertions(+), 157 deletions(-) commit d99023520af11320b54fabc5db0662b4c8f25015 Author: Sebastien Tricaud Date: Thu Aug 2 12:51:43 2007 +0000 autotools: remove datarootdir setting warning git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9767 09c5ec92-17d4-0310-903a-819935f44dba prelude-admin/prelude-adduser.in | 1 + 1 file changed, 1 insertion(+) commit 4f4bc8dadf0c0b3bca2fc6e58999d33506549905 Author: Sebastien Tricaud Date: Wed Aug 1 19:59:09 2007 +0000 documentation: prelude-admin manpage included, thanks to Frederic Motte git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9763 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 1 + docs/Makefile.am | 2 +- docs/man/Makefile.am | 2 + docs/man/prelude-admin.1 | 153 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 157 insertions(+), 1 deletion(-) commit ccd3a70144e1f9e8ced166165581568750ecfca0 Author: Sebastien Tricaud Date: Tue Jul 31 13:52:04 2007 +0000 prelude-admin: Add full path into shell script; move prelude-adduser.c into prelude-admin.c git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9743 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 1 + prelude-admin/prelude-adduser | 10 - prelude-admin/prelude-adduser.c | 1514 -------------------------------------- prelude-admin/prelude-adduser.in | 16 + prelude-admin/prelude-admin.c | 1514 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 1531 insertions(+), 1524 deletions(-) commit a5664f33ef0c93dd46a1990cfadd984fdc38f864 Author: Sebastien Tricaud Date: Tue Jul 31 12:58:00 2007 +0000 s/prelude-adduser/prelude-admin/g git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9742 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 4 +- configure.in | 12 +- prelude-adduser/Makefile.am | 18 - prelude-adduser/prelude-adduser.c | 1514 ------------------------------------- prelude-adduser/server.c | 422 ----------- prelude-adduser/server.h | 27 - prelude-adduser/tls-register.c | 1002 ------------------------ prelude-adduser/tls-register.h | 44 -- prelude-admin/Makefile.am | 21 + prelude-admin/prelude-adduser | 10 + prelude-admin/prelude-adduser.c | 1514 +++++++++++++++++++++++++++++++++++++ prelude-admin/server.c | 422 +++++++++++ prelude-admin/server.h | 27 + prelude-admin/tls-register.c | 1002 ++++++++++++++++++++++++ prelude-admin/tls-register.h | 44 ++ src/prelude-client.c | 4 +- src/prelude-connection.c | 2 +- 17 files changed, 3051 insertions(+), 3038 deletions(-) commit 82237b70b2cfc72412e2f4a4307249e7c90af385 Author: Yoann Vandoorselaere Date: Mon Jul 9 13:04:07 2007 +0000 Always re-initialize _prelude_internal_(argc|argv) on prelude_init(). Additionally, handle the case where argc is 0. Fix #242. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9671 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit ebb82d5cb011304e6caa622e9383f4f569154e1a Author: Yoann Vandoorselaere Date: Fri Jul 6 12:28:03 2007 +0000 Better handle the case where we try to match a value against an object that is not set (alert.classification.text != 'anything' should match if alert.classification.text is NULL). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9662 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 5edd0e21a52416b501b681a93da9e3fd42fd7e52 Author: Yoann Vandoorselaere Date: Sat Jun 16 09:04:34 2007 +0000 Don't call prelude_async_exit() from the atexit() callback. Since it seem to fail on some pthread implementation (although this should be valid). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9658 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit 21c38e63e6225a74d69b140511b0d4bd0e200d35 Author: Yoann Vandoorselaere Date: Sat Jun 16 09:04:27 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9657 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 180 +++++++++++++++++++++++++-------------------------- 1 file changed, 90 insertions(+), 90 deletions(-) commit 55bd5d7d42457e6b1db084a4b26aca66e9f72741 Author: Yoann Vandoorselaere Date: Sat Jun 16 08:48:21 2007 +0000 Use SHA1 in place of MD5 for Analyzer checksum. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9656 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 8e77bea1ed0b72d2faa2f61a6d348659e615695d Author: Yoann Vandoorselaere Date: Sat Jun 16 08:20:30 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage. Fix a possible race condition with prelude_client_t reference to idmef_analyzer_t. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9655 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 5 deletions(-) commit 56c8462b629fdd5c7c689ecf9f5c2619d37b78e8 Author: Yoann Vandoorselaere Date: Sat Jun 16 07:47:18 2007 +0000 New LIBPRELUDE_ABORT variable, useful if you want libprelude to abort on critical assertion. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9654 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 55 +++++++++++++++++++++--------------------- docs/api/tmpl/prelude-log.sgml | 1 + src/include/prelude-log.h | 2 ++ src/prelude-log.c | 13 ++++++++++ src/prelude.c | 5 ++++ 5 files changed, 49 insertions(+), 27 deletions(-) commit f44d5f562f64e12b20582e5607076d28924ce718 Author: Yoann Vandoorselaere Date: Sat Jun 16 07:47:05 2007 +0000 Remove duplicated NULL check. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9653 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fd5060e828f1a6f6fce1b3d111daaecdd5923e53 Author: Yoann Vandoorselaere Date: Fri Jun 15 16:28:36 2007 +0000 Event callback is optional. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9644 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9dfac3706df276fa059f103e13f740846793e372 Author: Yoann Vandoorselaere Date: Fri Jun 15 16:24:53 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9643 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 2 ++ 1 file changed, 2 insertions(+) commit 90ff9dc94d4f4f24865da8d52b43da4595644e94 Author: Yoann Vandoorselaere Date: Fri Jun 15 15:52:28 2007 +0000 Fix warning. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9642 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 026968177410ac8b45a3a77f8b90a750ce2abc26 Author: Yoann Vandoorselaere Date: Fri Jun 15 15:48:29 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage. Remove log prefix. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9641 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) commit c69d88cf3e39579fc37bb106511c4576a4d67584 Author: Yoann Vandoorselaere Date: Fri Jun 15 15:44:43 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage. Remove log prefix. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9640 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) commit 976d958d89fbeecdcc7b7d30cba876fd79f1907d Author: Yoann Vandoorselaere Date: Fri Jun 15 15:41:46 2007 +0000 Remove log prefix. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9639 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d98a75c0654a812566babff69ca9436a60a623ac Author: Yoann Vandoorselaere Date: Fri Jun 15 15:38:30 2007 +0000 Brand new logging format. Include a timestamp, log level, and process name. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9638 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 54 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 18 deletions(-) commit 9371cbc2d6e67e8167ff13da8f4a776fd68bc762 Author: Yoann Vandoorselaere Date: Fri Jun 15 15:34:58 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9637 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 20edeeaad1634aa81fd615b15356f151a8ae194d Author: Yoann Vandoorselaere Date: Fri Jun 15 15:32:38 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9636 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 78 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 65 insertions(+), 13 deletions(-) commit 63a899f9e499bb56ef68765f987e363c64e8e154 Author: Yoann Vandoorselaere Date: Fri Jun 15 15:28:15 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9635 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-value.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit db9057696638314228e84b1b595fb13470e5068e Author: Yoann Vandoorselaere Date: Fri Jun 15 15:24:33 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage. Make some arguments const. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9634 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 73 +++++++++++++++++++++++++++++--------------- src/include/idmef-criteria.h | 24 +++++++-------- 2 files changed, 61 insertions(+), 36 deletions(-) commit 64cc349f0ed15f790133160dcaa83ba215253dc6 Author: Yoann Vandoorselaere Date: Fri Jun 15 15:21:41 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9633 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 88 +++++++++++++++++++++++++++---------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) commit 29d98eab549ab8a11f7fcf3712bccb79e934efc2 Author: Yoann Vandoorselaere Date: Fri Jun 15 15:17:35 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9632 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-criteria.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit d0fa20348e6e42d0f351223f6471ab8b34229649 Author: Yoann Vandoorselaere Date: Fri Jun 15 15:14:23 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9631 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 214 +++++++++++++++++++++++++-------------------------- 1 file changed, 107 insertions(+), 107 deletions(-) commit 8ef93cb018d85c695f8a2efd590b4789a1e37e45 Author: Yoann Vandoorselaere Date: Fri Jun 15 15:11:48 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9630 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 186 +++++++++++++++++++++++++++---------------------------- 1 file changed, 93 insertions(+), 93 deletions(-) commit d9f4d7b9bcf2d35a9210c395ecc6ff08225f92fc Author: Yoann Vandoorselaere Date: Fri Jun 15 15:07:11 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9629 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) commit 1e1e6860327f6038b658ca366ee5ab8f1114db53 Author: Yoann Vandoorselaere Date: Fri Jun 15 15:03:24 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9628 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 70 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) commit 7b1f53bdc54d6698ab51ce840ffb9ebc4259c1dd Author: Yoann Vandoorselaere Date: Fri Jun 15 15:00:33 2007 +0000 Fix build break. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9627 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e42c86b53fd64e6d5996c88d84f2a1042cf2fc59 Author: Yoann Vandoorselaere Date: Fri Jun 15 14:57:16 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9626 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 2 ++ 1 file changed, 2 insertions(+) commit f322f19ca5984f9dc10eb612d2311ade36c0b474 Author: Yoann Vandoorselaere Date: Fri Jun 15 14:54:13 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9625 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 246 ++++++++++++++++++++-------------------- 1 file changed, 123 insertions(+), 123 deletions(-) commit 29c1e445eb2d048e6f4ae252bfbfb02d69f8b42e Author: Yoann Vandoorselaere Date: Fri Jun 15 14:51:48 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9624 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 322 +++++++++++++++++++++++++++--------------------------- 1 file changed, 161 insertions(+), 161 deletions(-) commit a83d214a729b090abe64c08a2db9e6b8e07fdd55 Author: Yoann Vandoorselaere Date: Fri Jun 15 14:48:14 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9623 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 696a5d79df6e92112a1e2e61d616ebe9b0580677 Author: Yoann Vandoorselaere Date: Fri Jun 15 14:45:18 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9622 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 64 ++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 32 deletions(-) commit 2935cb9994d8ef645fa70c8e9715d605f6b4e7e7 Author: Yoann Vandoorselaere Date: Fri Jun 15 14:42:33 2007 +0000 Fix build breakage introduced when adding prelude_return_val_if_fail() support. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9621 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6cd32bca36ed9ab8af3634e8d18be9d8f10c3c42 Author: Yoann Vandoorselaere Date: Fri Jun 15 14:38:46 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9620 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 318 +++++++++++++++++++++--------------------- 1 file changed, 159 insertions(+), 159 deletions(-) commit be15aa678ff8a676217eefe3415ef514dd4f7f71 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:28:24 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9612 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 28c7b228a2e81ba8208b588cd23a95638b2b59b5 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:28:15 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9611 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 212 +++++++++++++++++++++++++++---------------------------- 1 file changed, 106 insertions(+), 106 deletions(-) commit edcd682b37202d187768068c302278dc55f58c5e Author: Yoann Vandoorselaere Date: Wed Jun 13 13:28:09 2007 +0000 Change fatal alert logging to priority warning. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9610 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e454312b4298964d491d3867c948be714d6e2a5 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:27:46 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9609 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 78 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 39 insertions(+), 39 deletions(-) commit 934a9bb77baffba311b8206ac3ea685fd3ef93ef Author: Yoann Vandoorselaere Date: Wed Jun 13 13:27:37 2007 +0000 In case we can't map to a specific syslog priority, revert to LOG_INFO. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9608 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14de8abfb2766f31d9af5112048fddf73ae3c10e Author: Yoann Vandoorselaere Date: Wed Jun 13 13:27:05 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9607 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) commit ce49471d246bf676379a5162e286a4c7125c1099 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:26:56 2007 +0000 Fix build breakage introduced with prelude_return_if_fail() addition. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9606 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f702525d946e027520544c753a5967e3ccc477ee Author: Yoann Vandoorselaere Date: Wed Jun 13 13:26:44 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9605 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-string.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 216c428178dafa14cda293b515bf577adcec45df Author: Yoann Vandoorselaere Date: Wed Jun 13 13:26:30 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9604 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 270 +++++++++++++++++++++++++++---------------------------- 1 file changed, 135 insertions(+), 135 deletions(-) commit 38d007febb83d48d77313ee587acf5f2a34a2583 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:26:15 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9603 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-additional-data.c | 170 ++++++++++++++++++++++---------------------- 1 file changed, 85 insertions(+), 85 deletions(-) commit ce70290b0712f6be2b0fb57c819ba39920b9464b Author: Yoann Vandoorselaere Date: Wed Jun 13 13:25:59 2007 +0000 Make use of prelude_return_if_fail() to protect against bad API usage git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9602 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) commit 11988e0efff85d789d44f5a9a61abffb570538f9 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:25:39 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9601 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 138 +++++++++++++++++++++++++-------------------------- 1 file changed, 69 insertions(+), 69 deletions(-) commit 5ebe531d7f5201c0fceb347cee5f95498a004704 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:25:13 2007 +0000 Use prelude_return_if_fail / prelude_return_val_if_fail macros. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9600 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 1421 ++++++++++++++++++++++ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 54 +- 2 files changed, 1473 insertions(+), 2 deletions(-) commit ad8d1e0f869cbe927728a878af6a7a7f4e262df5 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:24:56 2007 +0000 New macro: prelude_return_val_if_fail() and prelude_return_if_fail(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9599 09c5ec92-17d4-0310-903a-819935f44dba src/include/common.h | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) commit 4ffa7fb337c6227a992db6c3c9b0907f17bf00b5 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:24:47 2007 +0000 Improve logging subsystem. New PRELUDE_LOG_CRIT level. Correctly map Prelude level to Syslog priority. Improved logging (include process PID and priority). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9598 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 10 ++++++---- src/prelude-log.c | 49 +++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 49 insertions(+), 10 deletions(-) commit df3da4a423038d8eb0a112953391cda63c0ec6d4 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:24:12 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9597 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 31 +++++++++++++++---------------- src/prelude-log.c | 38 +++++++++++++++++++------------------- 2 files changed, 34 insertions(+), 35 deletions(-) commit 7302323ab07277de9d86b611b371941fbbb3cb1b Author: Yoann Vandoorselaere Date: Wed Jun 13 13:23:58 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9596 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 148 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 74 insertions(+), 74 deletions(-) commit c9362908ee2c598510610707ab2cbcb73d40cf7e Author: Yoann Vandoorselaere Date: Wed Jun 13 13:23:49 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9595 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 1150 +++++++++++----------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 238 ++--- 2 files changed, 694 insertions(+), 694 deletions(-) commit a3d87923d7c5d0a9cf062d8af029d6245222c0f8 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:23:37 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9594 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 362 +++++++++++++++++++++++++-------------------------- 1 file changed, 181 insertions(+), 181 deletions(-) commit 2afa9c34b8f0a983d29a663245472bf925dbe8ab Author: Yoann Vandoorselaere Date: Wed Jun 13 13:23:28 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9593 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 96 ++++++++++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) commit 0aa67980b5bce6e776ef6f6218ea757d371115d6 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:23:14 2007 +0000 Cleanup. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9592 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ef779d5121c4291d5b6abeae948f594893ca37ae Author: Yoann Vandoorselaere Date: Wed Jun 13 13:22:55 2007 +0000 TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_KEEPCNT are only supported on inet socket. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9591 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 49 +++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) commit 575958914e7995e8130fb1a89aff827e7125a4c2 Author: Yoann Vandoorselaere Date: Wed Jun 13 13:22:45 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9590 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 298 +++++++++++++++++++++++------------------------ 1 file changed, 149 insertions(+), 149 deletions(-) commit 988cbbab3679cec36e2e731118a42740f07eb07c Author: Yoann Vandoorselaere Date: Wed Jun 13 13:22:39 2007 +0000 Whitespace police. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9589 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) commit e3d4decf0ae1793d05fedcacd4b4d4eaa5153b26 Author: Yoann Vandoorselaere Date: Sat Jun 9 15:10:50 2007 +0000 Conditionally call AC_CONFIG_SUBDIR() for libltdl. Use DIST_SUBDIR to prevent 'distclean' problem. Close #235. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9571 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 ++ configure.in | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit eb216e85dd859a82261d34346ad7f2034652a0ad Author: Yoann Vandoorselaere Date: Tue May 15 21:20:23 2007 +0000 Update NEWS, documentation, bump version number. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9460 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 17 +++++++++++++++++ configure.in | 10 +++++----- docs/api/libprelude-decl.txt | 7 ++++++- docs/api/libprelude-sections.txt | 1 + docs/api/tmpl/prelude-hash.sgml | 14 ++++++++++++++ 5 files changed, 43 insertions(+), 6 deletions(-) commit ed2f8f7adf64166afeedb7b81cf003c37e83336a Author: Yoann Vandoorselaere Date: Tue May 15 21:17:06 2007 +0000 Set SO_KEEPALIVE via set_socket_option(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9459 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit 69ac2a9a191f3bfe0bdeb2921447b367c0ef9aab Author: Yoann Vandoorselaere Date: Tue May 15 21:13:53 2007 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9458 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/strsep.m4 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0199e0ef55904aa5b942881589009a1348734e0c Author: Yoann Vandoorselaere Date: Tue May 15 21:10:39 2007 +0000 When the thread subsystem is used, free the data from the current thread on deinit(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9457 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-thread.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 126d30e5e9b15a3524ba84f36002620d8578c159 Author: Yoann Vandoorselaere Date: Tue May 15 21:07:27 2007 +0000 Use prelude_hash_new2(). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9456 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 9efd604ca89f6d86fdffc100efd54dcaacad1df2 Author: Yoann Vandoorselaere Date: Tue May 15 21:04:08 2007 +0000 Implement prelude_hash_new2() The prelude_hash_new() function provided no way to set the hash table size. This new function fix this problem. Also, increase the default number of bucket from 16 to 128. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9455 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-hash.h | 6 ++++++ src/prelude-hash.c | 27 +++++++++++++++++++-------- 2 files changed, 25 insertions(+), 8 deletions(-) commit a71b4eaa4780e358f67d2d1e8283b8976f4d4136 Author: Yoann Vandoorselaere Date: Tue May 15 10:07:43 2007 +0000 Some rewording. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9454 09c5ec92-17d4-0310-903a-819935f44dba client.conf.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c1f151bcbb4f88e35d605876d1a8b220ca057c04 Author: Yoann Vandoorselaere Date: Tue May 15 10:07:30 2007 +0000 Implement TCP keepalive settings. On operating systems that support it, allow the users to specify connection keepalive settings. Available arameters are: - tcp-keepalive-time: The number of seconds the connection needs to be idle before TCP begins sending out keep-alive probes. - tcp-keepalive-probes: the number of not acknowledged probes to send before considering the connection dead. - tcp-keepalive-intvl: the interval between subsequent keepalive probes. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9453 09c5ec92-17d4-0310-903a-819935f44dba client.conf.in | 35 +++++++++++++++++++++++++- configure.in | 2 +- src/prelude-client.c | 46 ++++++++++++++++++++++++++++++++-- src/prelude-connection.c | 64 ++++++++++++++++++++++++++++++++++++++++++++---- 4 files changed, 138 insertions(+), 9 deletions(-) commit dcda32574783a13c70c209b3510618c46a0c1ef9 Author: Yoann Vandoorselaere Date: Tue May 15 10:07:21 2007 +0000 Fix: Destroying listed idmef_value_t lead to modification of the referenced IDMEF message. When retrieving members from a listed idmef_value_t, idmef_value_dont_have_own_data() shall be used to prevent the listed values from being destroyed when idmef_value_destroy() is called. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9452 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d101a2fc16639605451ba7d4f35f4dd4d6d1e13f Author: Yoann Vandoorselaere Date: Tue May 15 10:07:16 2007 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9451 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 16 ++- libmissing/alloca_.h | 8 +- libmissing/allocsa.h | 4 - libmissing/float+.h | 150 ---------------------- libmissing/getaddrinfo.h | 7 +- libmissing/getpass.c | 4 +- libmissing/m4/allocsa.m4 | 5 +- libmissing/m4/fseeko.m4 | 19 +++ libmissing/m4/gnulib-comp.m4 | 10 +- libmissing/m4/longdouble.m4 | 31 ----- libmissing/m4/socklen.m4 | 2 +- libmissing/m4/stdint.m4 | 16 +-- libmissing/m4/stdio_h.m4 | 8 +- libmissing/m4/vasnprintf.m4 | 50 +++++++- libmissing/m4/wctype.m4 | 8 +- libmissing/poll_.h | 8 +- libmissing/printf-args.c | 2 - libmissing/printf-args.h | 4 - libmissing/printf-parse.c | 4 +- libmissing/socket_.h | 85 ------------ libmissing/stdbool_.h | 6 +- libmissing/stdio_.h | 83 +++++++++++- libmissing/string_.h | 8 +- libmissing/sys_socket_.h | 85 ++++++++++++ libmissing/sys_time_.h | 6 +- libmissing/time_.h | 93 ++++++++------ libmissing/vasnprintf.c | 298 ++++++++++++++++++++++++++++--------------- libmissing/wchar_.h | 9 +- libmissing/wctype_.h | 27 ++-- 29 files changed, 577 insertions(+), 479 deletions(-) commit 66d890b4cfea26aec33015fd2929f4ac80117774 Author: Yoann Vandoorselaere Date: Thu May 10 07:39:38 2007 +0000 Fix reading from passwd-file with newline (fix #221). When reading password from a file, remove newline at the end of the string. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9449 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 2dd8aab1fead37be28f470eb9b8feae244bd956b Author: Yoann Vandoorselaere Date: Thu May 10 07:39:29 2007 +0000 When we fail to read an IDMEF message, provide more information about the place where the error happened. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9448 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | Bin 81714 -> 81940 bytes src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 11 ++++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) commit 67df8250598086d1074d43a2f23164e813f576c8 Author: Yoann Vandoorselaere Date: Thu May 10 07:39:23 2007 +0000 More format string warning/fixes. git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9447 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 3 +++ src/prelude-option.c | 2 +- src/prelude.c | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) commit da012936b1b17ea46b71114dd77cd598671440cf Author: Yoann Vandoorselaere Date: Sat Apr 28 07:11:52 2007 +0000 Fix an issue with idmef_path_get() on empty path (pointing to the root message). git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9390 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea0f65d9ea5fc39dd408fce63c817b6d2819cf74 Author: Yoann Vandoorselaere Date: Sat Apr 14 10:26:27 2007 +0000 Module path migration: move /trunk/libprelude /libprelude/trunk git-svn-id: file:///home/yoann/SVN/libprelude/trunk@9119 09c5ec92-17d4-0310-903a-819935f44dba commit 0ab914fbaddb59c501ef545e10e8d1420c391c98 Author: Yoann Vandoorselaere Date: Fri Mar 30 14:33:53 2007 +0000 GnuLib code update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@9008 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 11 ++++++++ configure.in | 4 +-- docs/api/libprelude-decl.txt | 2 +- docs/api/tmpl/prelude-log.sgml | 2 -- docs/api/tmpl/prelude-plugin.sgml | 42 ------------------------------- gtk-doc.make | 8 +++--- libmissing/Makefile.am | 3 +++ libmissing/m4/stdio_h.m4 | 5 +++- libmissing/stdio_.h | 16 ++++++++++++ libmissing/vasnprintf.c | 53 +++++++++++++++++++++------------------ 10 files changed, 70 insertions(+), 76 deletions(-) commit a9dfd9094e5c0430a8d93670d619b17ac535de4f Author: Yoann Vandoorselaere Date: Tue Mar 27 10:21:09 2007 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8951 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 14 ++-- libmissing/float+.h | 150 +++++++++++++++++++++++++++++++++++++++++++ libmissing/getaddrinfo.c | 2 +- libmissing/m4/gnulib-comp.m4 | 1 + libmissing/m4/vasnprintf.m4 | 18 +++++- libmissing/poll.c | 5 ++ libmissing/printf-parse.c | 14 ++-- libmissing/regexec.c | 5 +- libmissing/string_.h | 4 +- libmissing/strptime.c | 7 +- libmissing/vasnprintf.c | 57 +++++++++++++--- 11 files changed, 248 insertions(+), 29 deletions(-) commit dae95310f0a6ae5a8354e1ba743e039ec4544bdc Author: Yoann Vandoorselaere Date: Tue Mar 27 10:10:49 2007 +0000 Unconditionally call AC_CONFIG_SUBDIRS(libltdl), distclean is broken otherwise. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8950 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 4 ++-- configure.in | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 06754ff3cb13a7817bb6e66b827a3b87ce246d7f Author: Yoann Vandoorselaere Date: Tue Mar 27 09:41:30 2007 +0000 Improve error message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8949 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 99cea06b009bc4d7e263c09f3183360e048c185f Author: Yoann Vandoorselaere Date: Mon Mar 26 08:13:09 2007 +0000 Remove unused. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8942 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bacea1567e3420b08c4519cc967022b1182295d2 Author: Yoann Vandoorselaere Date: Mon Mar 26 07:54:57 2007 +0000 Handle verbose error reporting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8941 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit da33dc9824fb04deac9fcd4f4f2b87019e218e84 Author: Yoann Vandoorselaere Date: Mon Mar 26 07:53:30 2007 +0000 Log the entry even if it is truncated because the buffer is too small. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8940 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit c5419478c60aea5c57e68dfacfefa513edc7e8eb Author: Yoann Vandoorselaere Date: Mon Mar 26 07:50:49 2007 +0000 Fix optional integer comparison. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8939 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 84 ++++++++++++------------ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 8 ++- 2 files changed, 48 insertions(+), 44 deletions(-) commit b5c02295901a2d954ab5bb1c81be657b6f6c7517 Author: Yoann Vandoorselaere Date: Thu Mar 15 17:13:55 2007 +0000 Update NEWS, bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8856 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 20 ++++++++++++++++++++ configure.in | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) commit 99d950c3c2316a31aa90b3775a07c465439f1f2b Author: Yoann Vandoorselaere Date: Thu Mar 15 12:14:06 2007 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8855 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 8 ++++---- docs/api/tmpl/prelude-plugin.sgml | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) commit 9b21ec22055bbc586d4ba217f7ca192507320abd Author: Yoann Vandoorselaere Date: Thu Mar 15 10:44:17 2007 +0000 Fix format string warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8854 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c8f2fc860bad1a97d52673febed84b4bfa01aae1 Author: Yoann Vandoorselaere Date: Thu Mar 15 10:41:49 2007 +0000 Fix warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8853 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit faedd5754faef15493d1b1b4589cab33a991f062 Author: Yoann Vandoorselaere Date: Thu Mar 15 10:04:12 2007 +0000 Fix a typo. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8852 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1e2c15a6645a4855b948bf8a4940ff402516e921 Author: Yoann Vandoorselaere Date: Thu Mar 15 10:02:46 2007 +0000 Allow regular expression on AdditionalData (the match will fail if the data is not of type char-string). Fix a regression introduced in [8381] that prevented broken down time and regex match to work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8851 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 56 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) commit a8d0db8531ae6ab1076ee423940e7b669bb869b5 Author: Yoann Vandoorselaere Date: Wed Mar 14 17:53:08 2007 +0000 Update GnuLib code, import memmem module. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8850 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 73 +++++- libmissing/getaddrinfo.c | 4 +- libmissing/gettimeofday.c | 2 - libmissing/m4/gettimeofday.m4 | 4 +- libmissing/m4/gnulib-cache.m4 | 4 +- libmissing/m4/gnulib-comp.m4 | 13 +- libmissing/m4/memmem.m4 | 22 ++ libmissing/m4/mktime.m4 | 7 +- libmissing/m4/netinet_in_h.m4 | 28 ++- libmissing/m4/regex.m4 | 9 +- libmissing/m4/snprintf.m4 | 24 +- libmissing/m4/stdio_h.m4 | 43 ++++ libmissing/m4/strptime.m4 | 3 +- libmissing/m4/sys_select_h.m4 | 28 ++- libmissing/m4/sys_socket_h.m4 | 51 ++++- libmissing/m4/sys_time_h.m4 | 8 +- libmissing/m4/time_r.m4 | 3 + libmissing/m4/timegm.m4 | 3 +- libmissing/m4/vasnprintf.m4 | 31 ++- libmissing/m4/vsnprintf.m4 | 24 +- libmissing/memmem.c | 61 +++++ libmissing/netinet_in_.h | 37 +++ libmissing/snprintf.c | 7 +- libmissing/snprintf.h | 29 --- libmissing/socket_.h | 81 ++++--- libmissing/stdint_.h | 51 +++-- libmissing/stdio_.h | 192 ++++++++++++++++ libmissing/string_.h | 46 ++-- libmissing/sys_select_.h | 37 +++ libmissing/sys_time_.h | 2 +- libmissing/time_.h | 2 +- libmissing/vasnprintf.c | 512 +++++++++++++++++++++++++++++++++++++++++- libmissing/vasnprintf.h | 10 +- libmissing/vsnprintf.c | 7 +- libmissing/vsnprintf.h | 31 --- src/include/libmissing.h | 7 +- 36 files changed, 1276 insertions(+), 220 deletions(-) commit 09ca882fd1b6dbdd250f64136dddc1aae75e9143 Author: Yoann Vandoorselaere Date: Wed Mar 14 17:49:42 2007 +0000 Cast size_t to uint64_t, and use the appropriate format string to avoid warnings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8849 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 4 ++-- src/prelude-msg.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit a7706112c6492020ee95ec2ee536981ce5084c8a Author: Yoann Vandoorselaere Date: Wed Mar 14 17:45:02 2007 +0000 Implement substring search for idmef_data_t (AdditionalData type). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8848 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit 49ea9ce3bc79b0220dbe43c7df856c5854d3ad16 Author: Yoann Vandoorselaere Date: Wed Mar 14 15:07:36 2007 +0000 Initialize the GMT offset in case we set the time from an NTP string. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8847 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 1 + 1 file changed, 1 insertion(+) commit dcebd15a87f9f560fa012d6e72a0acecd574a677 Author: Yoann Vandoorselaere Date: Tue Mar 13 11:45:38 2007 +0000 Format string fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8846 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-additional-data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b8bfc90c8951e4872ea690f3565b449cf878eea2 Author: Yoann Vandoorselaere Date: Tue Mar 13 11:44:54 2007 +0000 Add format string checking capability if supported. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8845 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-path.h | 21 ++++++++++++++++++-- src/include/prelude-log.h | 35 +++++++++++++++++++++++++-------- src/include/prelude-string.h | 21 ++++++++++++++++++-- src/libprelude-error/prelude-error.h.in | 27 +++++++++++++++++++++++-- 4 files changed, 90 insertions(+), 14 deletions(-) commit edbd07b465efdca3a3750a608af7fdfb8367828f Author: Yoann Vandoorselaere Date: Tue Mar 13 10:46:33 2007 +0000 Verbose error on _prelude_load_file() negative return value. Correctly handle ENOENT in remove_old_certificate(). Thanks to Helmut Azbest for pointing this out. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8844 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/tls-register.c | 50 ++++++++++++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 14 deletions(-) commit dcb0ddae7becfdc61c04cb4cdb4171be73de13c3 Author: Yoann Vandoorselaere Date: Tue Mar 13 10:26:40 2007 +0000 Slight format string fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8843 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 4 ++-- src/prelude-failover.c | 2 +- src/prelude-msg.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit ab23433dfd3d6ee84f73aaa3820378e664330a67 Author: Yoann Vandoorselaere Date: Tue Mar 13 09:52:31 2007 +0000 Consistently return an error if file size is zero. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8842 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 7f742950ae206b175db0af13a18a9c458cb9ce77 Author: Yoann Vandoorselaere Date: Fri Mar 9 18:03:29 2007 +0000 Prevent NULL pointer dereference on invalid enumeration class. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8840 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit cc67f2f184a79822731a5ab87d5e6ee3bc0be110 Author: Yoann Vandoorselaere Date: Fri Mar 9 17:58:53 2007 +0000 Prevent NULL pointer dereference on invalid enumeration class. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8839 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit c8f95b882ed2cc32f380d73f5ee555a456f0955b Author: Yoann Vandoorselaere Date: Tue Mar 6 11:06:36 2007 +0000 Make the path argument const in idmef_path_is_list(), idmef_path_has_lists() and idmef_path_is_ambiguous(). Fix an issue in idmef_path_set_index() where the path name wouldn't be updated correctly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8827 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 12 ++++++------ src/include/idmef-path.h | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) commit 187642f0828a05b6a4302f4cb4c13eecf842408e Author: Yoann Vandoorselaere Date: Tue Feb 20 13:46:41 2007 +0000 Update NEWS, documentation. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8825 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 28 ++++++++++++++++++++++++++++ configure.in | 6 +++--- docs/api/libprelude-decl.txt | 2 +- docs/api/tmpl/prelude-plugin.sgml | 4 ++++ 4 files changed, 36 insertions(+), 4 deletions(-) commit ee41188915eab35c9fa268f65a5e4edc49a9de0e Author: Yoann Vandoorselaere Date: Tue Feb 20 13:46:06 2007 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8824 09c5ec92-17d4-0310-903a-819935f44dba libmissing/string_.h | 6 ++++++ 1 file changed, 6 insertions(+) commit daa49f3f4ba943adad8937f34df1278424df26ff Author: Yoann Vandoorselaere Date: Tue Feb 20 10:10:27 2007 +0000 Force --without-system-ltdl for make dist. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8823 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fc0d5eea09db3e6f362fd5020ba48c8596473726 Author: Yoann Vandoorselaere Date: Tue Feb 20 10:09:19 2007 +0000 Small inclusion fix, for system wide libltdl. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8822 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a82b555edd41bcb182ca18fd325d03e6d5af6e59 Author: Yoann Vandoorselaere Date: Mon Feb 19 16:55:16 2007 +0000 Update gnulib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8821 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 169 ++++++++++- libmissing/allocsa.c | 137 +++++++++ libmissing/allocsa.h | 128 +++++++++ libmissing/allocsa.valgrind | 7 + libmissing/config.charset | 639 ++++++++++++++++++++++++++++++++++++++++++ libmissing/dummy.c | 30 -- libmissing/localcharset.c | 460 ++++++++++++++++++++++++++++++ libmissing/localcharset.h | 41 +++ libmissing/m4/allocsa.m4 | 15 + libmissing/m4/eealloc.m4 | 32 +++ libmissing/m4/glibc21.m4 | 30 ++ libmissing/m4/gnulib-comp.m4 | 22 +- libmissing/m4/localcharset.m4 | 16 ++ libmissing/m4/regex.m4 | 3 +- libmissing/m4/string_h.m4 | 46 ++- libmissing/m4/strptime.m4 | 7 +- libmissing/m4/time_h.m4 | 76 +++++ libmissing/m4/time_r.m4 | 7 +- libmissing/m4/timegm.m4 | 12 +- libmissing/mktime.c | 8 +- libmissing/ref-add.sin | 30 ++ libmissing/ref-del.sin | 25 ++ libmissing/regcomp.c | 20 +- libmissing/regex_internal.h | 4 +- libmissing/strcasestr.c | 144 ++++++++++ libmissing/string_.h | 177 ++++++++---- libmissing/strptime.c | 5 +- libmissing/strptime.h | 30 -- libmissing/time_.h | 107 +++++++ libmissing/time_r.c | 4 +- libmissing/time_r.h | 52 ---- libmissing/timegm.c | 13 +- libmissing/timegm.h | 23 -- src/include/libmissing.h | 3 - 34 files changed, 2246 insertions(+), 276 deletions(-) commit 9937af9cd17c7b6d6c70984a2efcc7e23c64c5b1 Author: Yoann Vandoorselaere Date: Mon Feb 19 10:27:33 2007 +0000 Make sure we have an exception to process. This fix a crash with Python bindings upon signal reception. Fix #200. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8819 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_python.i | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2580ac7f03df9836d0ae799501c63b4287f5c421 Author: Yoann Vandoorselaere Date: Thu Feb 15 21:10:03 2007 +0000 Forgot to commit part of #199 fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8818 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 6537034e49cc915be3ba831dda03c2a42ad09f62 Author: Yoann Vandoorselaere Date: Thu Feb 15 21:05:30 2007 +0000 Win32 compilation fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8817 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) commit f8ce57c97b8658df169b486e48600cd8363f3a3f Author: Yoann Vandoorselaere Date: Thu Feb 15 21:03:40 2007 +0000 Correct error message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8816 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6e84c88bde7d707445be97d37c89f8a047a366a8 Author: Yoann Vandoorselaere Date: Thu Feb 15 21:01:51 2007 +0000 Implement --with-system-ltdl configure switch. The default is now to use the system wide ltdl library if it is available, unless specified otherwise. Modified patch from Victor Stinner . Fix #199. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8815 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 55 ++++++++++++++++++++++++++++++++++++++++++++----------- src/Makefile.am | 2 +- 2 files changed, 45 insertions(+), 12 deletions(-) commit a557a0c28f82ed360925f28a53cfbfcf092bd5a0 Author: Yoann Vandoorselaere Date: Thu Feb 15 20:57:43 2007 +0000 Add libmissing build directory to include path. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8814 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/Makefile.am | 2 +- src/Makefile.am | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) commit f70ba9a224c28713f46186cf9d2528f71a1e8959 Author: Yoann Vandoorselaere Date: Thu Feb 15 20:53:20 2007 +0000 Prevent NULL pointer dereference if no permission is specified after the permission type. Fix #197. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8813 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2cf24597868dccf11560e9bdfd21f0aa7e84a02c Author: Yoann Vandoorselaere Date: Fri Feb 9 10:49:44 2007 +0000 This work has been done by Sebastien Tricaud and myself: - Reset Yacc status before parsing, fix #195. - Enable YYERROR_VERBOSE for detailed error messages. - Fix string memory leak on criteria syntax error. - Fix possible criteria leak on criteria syntax error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8808 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 12 ++++++++++++ src/idmef-criteria-string.yac.y | 21 ++++++++++++++++----- 2 files changed, 28 insertions(+), 5 deletions(-) commit 867000b9bd28ce4e1baf54d1723eafbb2f74aef3 Author: Yoann Vandoorselaere Date: Wed Feb 7 13:55:57 2007 +0000 Prefer anonymous authentication rather than SRP. We do this because there are compatibility issue with SRP between different GnuTLS version. Should fix #187. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8800 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 13 ++++++++++++- prelude-adduser/server.c | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) commit 79e71dd3c1aad6f338f98d53f1624c6b8f8c2384 Author: Yoann Vandoorselaere Date: Wed Feb 7 12:57:57 2007 +0000 Gnulib tool update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8799 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 73 ++++----- libmissing/dummy.c | 30 ++++ libmissing/gai_strerror.c | 1 + libmissing/m4/gnulib-comp.m4 | 27 ++-- libmissing/m4/mbchar.m4 | 13 -- libmissing/m4/mbiter.m4 | 17 -- libmissing/m4/mbrtowc.m4 | 31 ---- libmissing/m4/memchr.m4 | 18 --- libmissing/m4/regex.m4 | 59 ++++--- libmissing/m4/socklen.m4 | 6 +- libmissing/m4/strcase.m4 | 13 +- libmissing/m4/strcasestr.m4 | 13 +- libmissing/m4/string_h.m4 | 40 ++++- libmissing/m4/strptime.m4 | 6 +- libmissing/m4/tm_gmtoff.m4 | 14 ++ libmissing/m4/wcwidth.m4 | 30 ---- libmissing/mbchar.c | 36 ----- libmissing/mbchar.h | 353 ----------------------------------------- libmissing/mbuiter.h | 203 ------------------------ libmissing/memchr.c | 201 ------------------------ libmissing/printf-args.c | 12 +- libmissing/printf-args.h | 26 +-- libmissing/printf-parse.c | 20 +-- libmissing/regcomp.c | 20 +-- libmissing/regex_internal.h | 3 - libmissing/stdbool_.h | 5 +- libmissing/strcasecmp.c | 84 +++------- libmissing/strcasestr.c | 123 +++------------ libmissing/string_.h | 365 ++++++++++++++++++++++++++++++++++++++----- libmissing/strncasecmp.c | 8 +- libmissing/strnlen1.c | 36 ----- libmissing/strnlen1.h | 40 ----- libmissing/strptime.c | 75 ++++----- libmissing/strptime.h | 17 +- libmissing/strsep.c | 25 +-- libmissing/vasnprintf.c | 36 ++--- libmissing/wcwidth.h | 57 ------- 37 files changed, 670 insertions(+), 1466 deletions(-) commit 1728ef888c07efee32a88b394cbabc2e91b7c90c Author: Yoann Vandoorselaere Date: Sat Feb 3 09:19:56 2007 +0000 Remove deprecated strndup.h inclusion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8781 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 1 - 1 file changed, 1 deletion(-) commit ae6b80c6bfeaf2ce5c207e0e4e55af2ce3d580d1 Author: Yoann Vandoorselaere Date: Wed Jan 31 18:04:20 2007 +0000 Cleanup remove_old_certificate(). Make it work under Win32. Improved error handling. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8780 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/tls-register.c | 85 ++++++++++++++++++++++++------------------ 1 file changed, 48 insertions(+), 37 deletions(-) commit 50256cb12687625c7ae3ad5709acdd52fe221522 Author: Yoann Vandoorselaere Date: Wed Jan 31 13:36:11 2007 +0000 GnuLib code update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8779 09c5ec92-17d4-0310-903a-819935f44dba libmissing/getdelim.c | 126 +++++ libmissing/getdelim.h | 28 + libmissing/getline.c | 30 ++ libmissing/getline.h | 28 + libmissing/getpass.c | 233 ++++++++ libmissing/getpass.h | 31 ++ libmissing/gettimeofday.c | 144 +++++ libmissing/m4/getdelim.m4 | 29 + libmissing/m4/getline.m4 | 79 +++ libmissing/m4/getpass.m4 | 47 ++ libmissing/m4/gettimeofday.m4 | 101 ++++ libmissing/m4/gnulib-common.m4 | 22 + libmissing/m4/string_h.m4 | 46 ++ libmissing/m4/strptime.m4 | 10 + libmissing/m4/sys_select_h.m4 | 18 + libmissing/m4/sys_time_h.m4 | 61 +++ libmissing/m4/wchar.m4 | 29 + libmissing/strcase.h | 56 -- libmissing/strcasestr.h | 30 -- libmissing/strdup.h | 39 -- libmissing/string_.h | 182 +++++++ libmissing/strndup.h | 32 -- libmissing/strnlen.h | 32 -- libmissing/strpbrk.h | 28 - libmissing/strptime.c | 1147 ++++++++++++++++++++++++++++++++++++++++ libmissing/strptime.h | 27 + libmissing/strsep.h | 52 -- libmissing/sys_time_.h | 44 ++ libmissing/wchar_.h | 42 ++ 29 files changed, 2504 insertions(+), 269 deletions(-) commit 03d39734e6d83e8d0b3bfda5e6d3bb37f1930c55 Author: Yoann Vandoorselaere Date: Wed Jan 31 13:32:29 2007 +0000 GnuLib code update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8778 09c5ec92-17d4-0310-903a-819935f44dba src/include/libmissing.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit a8895602b13f8903c6311f11f9c470891a971675 Author: Yoann Vandoorselaere Date: Wed Jan 31 13:31:52 2007 +0000 GnuLib code update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8777 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 167 ++++++++++++++++++++++++++++++++++++++---- libmissing/ftw.c | 4 +- libmissing/getaddrinfo.c | 5 +- libmissing/getaddrinfo.h | 7 +- libmissing/m4/gnulib-cache.m4 | 4 +- libmissing/m4/gnulib-comp.m4 | 123 +++++++++---------------------- libmissing/m4/mbchar.m4 | 11 +-- libmissing/m4/mktime.m4 | 22 ++---- libmissing/m4/poll.m4 | 7 +- libmissing/m4/regex.m4 | 5 +- libmissing/m4/stdint.m4 | 80 ++++++++++---------- libmissing/m4/strcase.m4 | 12 ++- libmissing/m4/strcasestr.m4 | 7 +- libmissing/m4/strdup.m4 | 11 ++- libmissing/m4/strndup.m4 | 9 ++- libmissing/m4/strnlen.m4 | 14 ++-- libmissing/m4/strpbrk.m4 | 6 +- libmissing/m4/strsep.m4 | 10 ++- libmissing/m4/wctype.m4 | 15 ++-- libmissing/m4/wcwidth.m4 | 17 ++--- libmissing/m4/wint_t.m4 | 14 +++- libmissing/poll.c | 31 ++++---- libmissing/regcomp.c | 12 +-- libmissing/regex.h | 50 +++++++------ libmissing/regex_internal.c | 7 +- libmissing/regex_internal.h | 13 +--- libmissing/regexec.c | 10 +-- libmissing/socket_.h | 10 +++ libmissing/stdint_.h | 8 +- libmissing/strcasecmp.c | 4 +- libmissing/strcasestr.c | 6 +- libmissing/strdup.c | 8 +- libmissing/strncasecmp.c | 4 +- libmissing/strndup.c | 8 +- libmissing/strnlen.c | 4 +- libmissing/strsep.c | 6 +- libmissing/wctype_.h | 9 ++- libmissing/wcwidth.h | 14 +--- 38 files changed, 424 insertions(+), 330 deletions(-) commit b115a9e592942f2cff4cdcadbbf896a2e5eba45a Author: Yoann Vandoorselaere Date: Wed Jan 31 11:26:04 2007 +0000 Include limits.h for LONG_MAX (fix #194). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8776 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-inttypes.h.in | 1 + 1 file changed, 1 insertion(+) commit e1295a46af65afed43df35774113cc5c2e535944 Author: Yoann Vandoorselaere Date: Fri Jan 26 16:47:03 2007 +0000 When dumping AdditionalData of type byte-string to string, encode the data using base64. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8772 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 62 ++++++++++++++++++++++++-------------------------------- 1 file changed, 26 insertions(+), 36 deletions(-) commit 1dec3c6b8925bb2b08df1ce5c73c40125eb2a52f Author: Yoann Vandoorselaere Date: Fri Jan 19 13:53:16 2007 +0000 Use -no-undefined. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8769 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit febd17a55ac7c4b6d81b084155fb8c9930e5d7ed Author: Yoann Vandoorselaere Date: Fri Jan 19 13:49:56 2007 +0000 Win32 compilation warning fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8768 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7a7af15ab01485cbe92faaa3c3dc52cd9696a42e Author: Yoann Vandoorselaere Date: Fri Jan 19 13:49:06 2007 +0000 Use prelude_error_from_errno(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8767 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ced1f926a3ee029302153a5442a32d797b3ab31 Author: Yoann Vandoorselaere Date: Thu Jan 18 08:41:27 2007 +0000 Fix Win32 prelude_load_file(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8766 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) commit 1245d693714ad90914eb63f5ca4eaa2fcfed5107 Author: Yoann Vandoorselaere Date: Thu Jan 18 08:39:47 2007 +0000 Include libmissing.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8765 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 1 + src/prelude-msg.c | 1 + 2 files changed, 2 insertions(+) commit 175029b3cecb7d29097dfb3c089635c721459416 Author: Yoann Vandoorselaere Date: Tue Jan 16 15:35:28 2007 +0000 Avoid runtime checking for printf() and scanf() 64 bits conversion specifier. Find out correct conversion specifier using CPP macros instead. This fixes cross-compilation issues. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8763 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 1 + m4/ax_create_prelude_inttypes_h.m4 | 63 -------------------------------------- src/include/prelude-inttypes.h.in | 19 ++++++++++++ 3 files changed, 20 insertions(+), 63 deletions(-) commit 709505a9ba0c9895b097f7449386ee9df9c1b454 Author: Yoann Vandoorselaere Date: Tue Jan 16 15:31:03 2007 +0000 Define CC_FOR_BUILD, to be used when cross-compiling. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8762 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 13 ++++++++++++- src/libprelude-error/Makefile.am | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) commit fd6ccd975d5d7b0e53c8da5e51ec8b548cb7c064 Author: Yoann Vandoorselaere Date: Tue Jan 16 15:21:09 2007 +0000 Win32 compatibility fixes: use _prelude_load_file() and _prelude_unload_file(). Don't try to retrieve system information through uname() under Win32. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8761 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 95 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 56 insertions(+), 39 deletions(-) commit a51029e9f0f29ea71cad18715308ace77105837d Author: Yoann Vandoorselaere Date: Tue Jan 16 15:14:00 2007 +0000 Win32 compatibility fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8760 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/Makefile.am | 1 - prelude-adduser/prelude-adduser.c | 23 ++++++++++++++++++--- prelude-adduser/server.c | 2 +- prelude-adduser/tls-register.c | 43 ++++++++++++++++++++++++++------------- 4 files changed, 50 insertions(+), 19 deletions(-) commit 3a0e4c0fb426da6b67b46c74dc3ceb834f40a720 Author: Yoann Vandoorselaere Date: Tue Jan 16 15:11:21 2007 +0000 Win32 compatibility fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8759 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 3 +-- src/prelude-connection.c | 54 ++++++++++++++++++++++++++++++++---------------- 2 files changed, 37 insertions(+), 20 deletions(-) commit 684849b6c4f57378d7048ec488bab043a0c29e4d Author: Yoann Vandoorselaere Date: Tue Jan 16 14:30:22 2007 +0000 Include libmissing.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8758 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-ident.c | 1 + 1 file changed, 1 insertion(+) commit efa9b849736a586998081e0a2f37e02040e44b5d Author: Yoann Vandoorselaere Date: Tue Jan 16 13:53:33 2007 +0000 Close fd, remove debugging code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8757 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit d6ce64d6bb6a5662f25e38edcc27622c316c69e2 Author: Yoann Vandoorselaere Date: Tue Jan 16 13:52:30 2007 +0000 Support Win32 ReportEvent(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8756 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) commit e0020cad901fac7916ced1195883568c2d692b79 Author: Yoann Vandoorselaere Date: Mon Jan 15 14:23:16 2007 +0000 Use _prelude_load_file() / _prelude_unload_file(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8755 09c5ec92-17d4-0310-903a-819935f44dba src/tls-util.c | 48 ++++++------------------------------------------ 1 file changed, 6 insertions(+), 42 deletions(-) commit 6f5c7038018f30ca6734c90ec09a09921abb976c Author: Yoann Vandoorselaere Date: Mon Jan 15 14:18:23 2007 +0000 Lower case winsock2.h for cross compilation on case sensitive system. Implement _prelude_load_file() and _prelude_unload_file(). Workaround mmap() use under WIN32. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8754 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/include/common.h | 6 +++++- 2 files changed, 55 insertions(+), 1 deletion(-) commit b389b6cdc138cec009369f36e6071651cf6ae617 Author: Yoann Vandoorselaere Date: Mon Jan 15 13:47:56 2007 +0000 Fix for pthread_sigmask() and sigfillset() not available under Win32. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8753 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 9 ++++++--- src/prelude-thread.c | 4 ++++ 2 files changed, 10 insertions(+), 3 deletions(-) commit 253c3d388e0a3cde19af080a1ae12b9e4898aec0 Author: Yoann Vandoorselaere Date: Mon Jan 15 13:45:18 2007 +0000 Update IDMEF code generator. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8752 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 5 +++++ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) commit 196e56f9d8b3690a699926f7984e39f514790b40 Author: Yoann Vandoorselaere Date: Mon Jan 15 13:44:17 2007 +0000 Lower case winsock2.h for cross compilation on case sensitive system. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8751 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-write.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c98a808af080197e7b5a4b484891dc5340feaa88 Author: Yoann Vandoorselaere Date: Mon Jan 15 13:42:55 2007 +0000 Fix compilation error under MinGW. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8750 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 5 +++++ src/include/idmef-tree-wrap.h | 3 +++ 2 files changed, 8 insertions(+) commit 85d5c4da127de965cb92ef7fa028574cf8cab71e Author: Yoann Vandoorselaere Date: Mon Jan 15 11:09:12 2007 +0000 Win32 portability fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8749 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 4 ++++ 1 file changed, 4 insertions(+) commit dce037e4589ac5a91929cf8f475ccac270651b43 Author: Yoann Vandoorselaere Date: Mon Jan 15 10:57:17 2007 +0000 Win32 portability fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8748 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 6 ++++++ 1 file changed, 6 insertions(+) commit ea4376021b943b2bc4408d80448c18564b7ef448 Author: Yoann Vandoorselaere Date: Mon Jan 15 10:53:47 2007 +0000 Win32 portability fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8747 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 1 + src/prelude-io.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit fff5906807fb1af369130132951105633515c47e Author: Yoann Vandoorselaere Date: Mon Jan 8 13:23:00 2007 +0000 Version bump. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8742 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 5 ++ configure.in | 2 +- docs/api/libprelude-decl.txt | 2 +- docs/api/tmpl/prelude-plugin.sgml | 1 + libmissing/m4/wctype.m4 | 36 +++++++++ libmissing/wctype_.h | 153 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 197 insertions(+), 2 deletions(-) commit 10abcd1d06c752a3ee1020e4c92d83a62bb88425 Author: Yoann Vandoorselaere Date: Mon Jan 8 13:22:40 2007 +0000 Fix make installation error when Perl bindings are disabled. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8741 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e8a71b3ad17bc87f78124cad2053214ec87ffb6 Author: Yoann Vandoorselaere Date: Fri Jan 5 17:06:58 2007 +0000 Update NEWS, documentation, Gnulib code. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8733 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 17 +++++ configure.in | 4 +- docs/api/libprelude-decl.txt | 2 +- docs/api/tmpl/prelude-plugin.sgml | 4 ++ libmissing/Makefile.am | 24 ++++++- libmissing/m4/gnulib-cache.m4 | 2 +- libmissing/m4/gnulib-comp.m4 | 87 +++++++++++++++++++++++++- libmissing/m4/mbchar.m4 | 3 - libmissing/m4/mktime.m4 | 28 +++++---- libmissing/m4/regex.m4 | 2 +- libmissing/m4/wcwidth.m4 | 4 +- libmissing/mbchar.h | 127 +------------------------------------- libmissing/poll.c | 105 +++++++++++++++---------------- libmissing/regex_internal.h | 4 +- libmissing/wcwidth.h | 18 +----- 15 files changed, 210 insertions(+), 221 deletions(-) commit fa905917e25342f428830ccade745bde2a313927 Author: Yoann Vandoorselaere Date: Fri Jan 5 16:53:16 2007 +0000 New configure --with-perl-installdirs flags: might be used to override default site perl installation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8732 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- configure.in | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) commit 63e2232425e1f15651f78abe03520258a2a81a22 Author: Yoann Vandoorselaere Date: Fri Jan 5 15:27:55 2007 +0000 Fix make -j compilation. Ability for packagers to provide an INSTALLDIRS variable git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8731 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) commit 2289289ae21b5b177da6d193101794c1d63d6067 Author: Yoann Vandoorselaere Date: Fri Jan 5 14:48:27 2007 +0000 Fix incorrect initialization warnings with old gcc version. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8730 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | Bin 80699 -> 81714 bytes src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 19 ++++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) commit 165f2a04ddbefd4cf3261f25dc32f48723628969 Author: Yoann Vandoorselaere Date: Wed Jan 3 10:47:26 2007 +0000 Call prelude_init() so LIBPRELUDE_TLS_DEBUG can be used with prelude-adduser. Correct analyzer registration message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8728 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit c58b838aa03596a2b92c2ba27526acaa0b600750 Author: Yoann Vandoorselaere Date: Wed Jan 3 10:42:29 2007 +0000 Optional TLS debugging through LIBPRELUDE_TLS_DEBUG environment variable. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8727 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 8f5a48a4d6b9750a3eb942f197d61f928e6084c7 Author: Yoann Vandoorselaere Date: Sat Dec 30 14:56:46 2006 +0000 Ignore inline keyword to prevent error with old SWIG version. Map prelude_error_t. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8724 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 5 +++++ 1 file changed, 5 insertions(+) commit b9f22c6e803fc6eb87c2774076d56892ecfb17a6 Author: Yoann Vandoorselaere Date: Fri Dec 29 12:43:59 2006 +0000 Generate bindings for the error handling API. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8721 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 00a8996b99a5f87dff837420a58ab304c819792d Author: Yoann Vandoorselaere Date: Thu Dec 21 09:06:38 2006 +0000 Small Perl/Python detection improvement. Fix #182. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8708 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit ef7a1524ce7f93669e8a8a5a315126783d00614b Author: Yoann Vandoorselaere Date: Wed Dec 20 20:35:01 2006 +0000 Update GnuLib code, NEWS, documentation. Version bump. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8706 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 20 +++ configure.in | 6 +- docs/api/libprelude-decl.txt | 62 +------ docs/api/libprelude-sections.txt | 33 ++++ docs/api/tmpl/idmef-tree-wrap.sgml | 320 +++++++++++++++++++++++++++++++++++++ docs/api/tmpl/prelude-plugin.sgml | 6 + docs/api/tmpl/prelude-string.sgml | 10 ++ 7 files changed, 393 insertions(+), 64 deletions(-) commit a051f2312ed4dc0150a5f81e6de661b458dfe7e8 Author: Yoann Vandoorselaere Date: Wed Dec 20 17:30:26 2006 +0000 Improve error checking. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8701 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 8e2e7197053b6ed611bb9dce17373833420f8322 Author: Yoann Vandoorselaere Date: Wed Dec 20 17:26:21 2006 +0000 Compile with -no-cpp-precomp under Darwin. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8700 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit 05948f4ee46d70fcf014b57c0d78ffdceff9be2b Author: Yoann Vandoorselaere Date: Wed Dec 20 17:21:42 2006 +0000 Remove unused. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8699 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 5d810a9da8c930e5ba812b2e98b1cec0237f71d7 Author: Yoann Vandoorselaere Date: Wed Dec 20 17:17:05 2006 +0000 Improve error checking. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8698 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 47 ++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 13 deletions(-) commit 2ed466fdbf3b6f031dc533687a85333d3dabc225 Author: Yoann Vandoorselaere Date: Wed Dec 20 17:08:54 2006 +0000 Improve error checking. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8697 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 13a04a5d117143e54e03ddb1965ac0f6ce342036 Author: Yoann Vandoorselaere Date: Wed Dec 20 09:04:00 2006 +0000 Remove unused. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8684 09c5ec92-17d4-0310-903a-819935f44dba m4/ac_prototype.m4 | 192 ---------------------------------------------- m4/ac_prototype_accept.m4 | 35 --------- 2 files changed, 227 deletions(-) commit fad066c84f77dfaf95ef5d0b2b0985ac1c30041f Author: Yoann Vandoorselaere Date: Wed Dec 20 09:03:31 2006 +0000 Remove deprecated check (most now operated through GnuLib). Check for clock_gettime in libposix4 as well as librt. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8683 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 83 ++++++++---------------------------------------------------- 1 file changed, 11 insertions(+), 72 deletions(-) commit 83f511978d870ca6131d6dc44f8adc21d6db5aba Author: Yoann Vandoorselaere Date: Wed Dec 20 08:57:49 2006 +0000 Remove un-necessary time.h inclusion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8682 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 1 - 1 file changed, 1 deletion(-) commit 4217525e98b4f5119fc9394c2f8dc63b79a848b0 Author: Yoann Vandoorselaere Date: Wed Dec 20 08:55:51 2006 +0000 Remove un-necessary time.h inclusion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8681 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 1 - src/include/idmef-criterion-value.h | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) commit f944d3a835f2ec02ee5d2c672433189cd37f69ad Author: Yoann Vandoorselaere Date: Wed Dec 20 08:52:37 2006 +0000 time.h inclusion fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8680 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 1 - src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 1 - 2 files changed, 2 deletions(-) commit ec45abc628ef2e427467e7424c8db89ad56cd0cc Author: Yoann Vandoorselaere Date: Wed Dec 20 08:51:48 2006 +0000 time.h inclusion fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8679 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 12 +++++++++++- src/prelude-async.c | 12 +++++++++++- src/prelude-ident.c | 12 +++++++++++- src/prelude-msg.c | 12 +++++++++++- src/prelude-plugin.c | 12 +++++++++++- src/prelude-timer.c | 2 +- 6 files changed, 56 insertions(+), 6 deletions(-) commit 6426d866ddd9427811b0cbe2b88ab29c85952947 Author: Yoann Vandoorselaere Date: Wed Dec 20 08:50:03 2006 +0000 Remove unnecessary sys/time.h inclusion. Use GnuLib poll module. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8678 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 2 -- 1 file changed, 2 deletions(-) commit d937b7b8b3f86cd2bdbcca3d95b14fd135073bed Author: Yoann Vandoorselaere Date: Wed Dec 20 08:48:40 2006 +0000 Use GnuLib poll module. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8677 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 786ac01dc2516f00859ba46bfae7ed1e400c47da Author: Yoann Vandoorselaere Date: Wed Dec 20 08:47:56 2006 +0000 Use GnuLib poll module. Ipv6 compatibility fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8676 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit a27eab8225cd90dcd78beb8af1e683d5e0b05efe Author: Yoann Vandoorselaere Date: Wed Dec 20 08:45:25 2006 +0000 Update GnuLib code. Implement the poll() module. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8675 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 177 +++++++++++++++++++++++++++++------- libmissing/getaddrinfo.c | 17 ++-- libmissing/gettext.h | 52 ++++++++--- libmissing/m4/alloca.m4 | 28 +++--- libmissing/m4/codeset.m4 | 2 +- libmissing/m4/eoverflow.m4 | 12 ++- libmissing/m4/extensions.m4 | 64 +++++++------ libmissing/m4/gnulib-cache.m4 | 4 +- libmissing/m4/gnulib-comp.m4 | 43 ++++++++- libmissing/m4/longlong.m4 | 32 ++++++- libmissing/m4/poll.m4 | 72 +++++++++++++++ libmissing/m4/regex.m4 | 4 +- libmissing/m4/signed.m4 | 18 ---- libmissing/m4/size_max.m4 | 76 +++++++++------- libmissing/m4/stdint.m4 | 24 +++-- libmissing/m4/strcase.m4 | 6 +- libmissing/m4/ulonglong.m4 | 48 ++++++++++ libmissing/m4/vasnprintf.m4 | 11 ++- libmissing/m4/wcwidth.m4 | 3 +- libmissing/mbchar.c | 2 +- libmissing/mbchar.h | 18 ++-- libmissing/poll.c | 203 ++++++++++++++++++++++++++++++++++++++++++ libmissing/poll_.h | 53 +++++++++++ libmissing/printf-args.c | 4 +- libmissing/printf-args.h | 10 +-- libmissing/printf-parse.c | 25 ++++-- libmissing/regcomp.c | 14 +-- libmissing/regex.h | 19 ++-- libmissing/regex_internal.h | 4 +- libmissing/regexec.c | 2 +- libmissing/stdint_.h | 71 +++++++++++---- libmissing/strcase.h | 12 ++- libmissing/strdup.c | 4 +- libmissing/strdup.h | 12 ++- libmissing/strnlen1.c | 2 +- libmissing/vasnprintf.c | 12 +-- libmissing/wcwidth.h | 4 + src/include/libmissing.h | 20 +---- 38 files changed, 930 insertions(+), 254 deletions(-) commit 2bf4c2a298ad939369115e17a4b80819689a6ded Author: Yoann Vandoorselaere Date: Thu Nov 23 12:15:41 2006 +0000 In case we use an AF_UNIX socket, don't use the socket path for the registration warning, since registration-server doesn't handle UNIX socket connection. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8604 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3a02dfd76b31d714df910b3e8e2c55142d62a1aa Author: Yoann Vandoorselaere Date: Thu Nov 23 11:57:27 2006 +0000 No backslash return on prelude_error_verbose(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8603 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2896b69798e3bfe226f83ab711746cb74c0de942 Author: Yoann Vandoorselaere Date: Tue Nov 14 09:33:45 2006 +0000 Remove unused. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8573 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 1 - 1 file changed, 1 deletion(-) commit de97fdafb4b1949f4c62ae84fba4f229e9dec226 Author: Yoann Vandoorselaere Date: Thu Nov 9 12:29:09 2006 +0000 Remove unused variable. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8563 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 1 - 1 file changed, 1 deletion(-) commit 0259b708172f7bab74050fc037470aa5cb7066ac Author: Yoann Vandoorselaere Date: Mon Nov 6 12:52:53 2006 +0000 More error checking on IDMEF object copy. Copy the union enumeration qualifier. Avoid SEGV on destroy of a copied object. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8549 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 721 +++++++++++++++++------ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 32 +- 2 files changed, 574 insertions(+), 179 deletions(-) commit 8767da15315e66dab8a385e3c680fa79bc789d24 Author: Yoann Vandoorselaere Date: Sat Nov 4 10:51:21 2006 +0000 Use correct alignement function git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8548 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-extract.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f56006489f1f94f639fde5d434d936021ff2328d Author: Yoann Vandoorselaere Date: Wed Nov 1 10:43:05 2006 +0000 Make it clear that we pack float as an uint32_t git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8541 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-extract.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4a50b6bed34ad00df482d36c2d91b3169e9fcdab Author: Yoann Vandoorselaere Date: Tue Oct 31 14:44:14 2006 +0000 Implement prelude_htonf() to pack float value to network byte order. Fix the float extraction function: prelude_extract_float(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8540 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 12 ++++++++++++ src/idmef-message-write.c | 6 ++---- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 6 ++---- src/include/common.h | 2 ++ src/include/prelude-extract.h | 9 ++++++++- 5 files changed, 26 insertions(+), 9 deletions(-) commit e7febcf65424513d79f1465e9497c6055cb81aef Author: Yoann Vandoorselaere Date: Tue Oct 10 16:12:49 2006 +0000 Bump version number, update GnuLib code, NEWS, documentation git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8526 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 28 +++++ configure.in | 10 +- docs/api/libprelude-decl.txt | 240 ++++++++++++++++++++++++++++++++++++-- docs/api/tmpl/prelude-plugin.sgml | 2 + libmissing/Makefile.am | 69 ++++++----- libmissing/asnprintf.c | 6 +- libmissing/getaddrinfo.c | 2 +- libmissing/m4/extensions.m4 | 42 ++++--- libmissing/m4/gnulib-comp.m4 | 2 + libmissing/m4/regex.m4 | 36 +++++- libmissing/m4/signed.m4 | 7 +- libmissing/m4/sockpfaf.m4 | 8 +- libmissing/m4/strndup.m4 | 7 +- libmissing/m4/time_r.m4 | 3 +- libmissing/mbchar.c | 6 +- libmissing/printf-args.c | 4 +- libmissing/printf-parse.c | 6 +- libmissing/regex_internal.c | 112 ++++++++++++++---- libmissing/strcasecmp.c | 6 +- libmissing/strcasestr.c | 6 +- libmissing/strncasecmp.c | 6 +- libmissing/strndup.c | 41 ++----- libmissing/strndup.h | 20 ++-- libmissing/strnlen1.c | 6 +- libmissing/vasnprintf.c | 4 +- 25 files changed, 507 insertions(+), 172 deletions(-) commit 4cf2154f906f923e9a7d5d6e43f38f6bc65655b2 Author: Yoann Vandoorselaere Date: Thu Sep 14 11:34:16 2006 +0000 GnuLib code update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8504 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 2 +- libmissing/alloca.c | 4 +--- libmissing/gai_strerror.c | 5 +---- libmissing/inet_ntop.c | 7 +++---- libmissing/malloc.c | 7 +++---- libmissing/memchr.c | 4 ++-- libmissing/regex.c | 4 +--- libmissing/snprintf.c | 4 +--- libmissing/strdup.c | 9 +++------ libmissing/strndup.c | 4 +--- libmissing/strnlen.c | 4 +--- libmissing/strpbrk.c | 8 ++++---- libmissing/time_r.c | 4 +--- libmissing/timegm.c | 9 +++------ 14 files changed, 26 insertions(+), 49 deletions(-) commit 3df81891d0f280b08828c88c27dd8a8b536243ce Author: Yoann Vandoorselaere Date: Thu Sep 14 11:32:55 2006 +0000 Only export symbol starting with idmef_ or _?prelude. Fix prelude-adduser so that it reference directly needed object file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8503 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/Makefile.am | 9 +++++++-- src/Makefile.am | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) commit ae09bcf6620f9e91f2f9628f017a2d27137a9250 Author: Yoann Vandoorselaere Date: Thu Sep 14 11:31:50 2006 +0000 #ifndef SWIG around unexported symbols. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8502 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 6 -- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 5 +- src/include/idmef-path.h | 12 +++- src/include/idmef-tree-wrap.h | 90 ++++++++++++++++++++++++ 4 files changed, 105 insertions(+), 8 deletions(-) commit a1b804522f7ef367916f92ef7427ff859bf08e98 Author: Yoann Vandoorselaere Date: Wed Sep 13 15:13:24 2006 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8501 09c5ec92-17d4-0310-903a-819935f44dba gtk-doc.make | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 31f18ea8fb5610c54be23bb0c5655e81c84f0298 Author: Yoann Vandoorselaere Date: Wed Sep 13 14:57:15 2006 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8500 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 17 ++++--- libmissing/getaddrinfo.c | 9 ++++ libmissing/m4/codeset.m4 | 6 +-- libmissing/m4/gnulib-cache.m4 | 2 + libmissing/m4/gnulib-comp.m4 | 1 + libmissing/m4/mktime.m4 | 103 ++++++++++++++++++++++++++++-------------- libmissing/mktime.c | 11 +++-- libmissing/stdint_.h | 2 + libmissing/vasnprintf.c | 22 ++------- libmissing/vsnprintf.c | 35 ++++++++++---- src/include/libmissing.h | 11 +---- 11 files changed, 134 insertions(+), 85 deletions(-) commit 8a95c52944087a599c48c7effb1d7f82a124c0a9 Author: Yoann Vandoorselaere Date: Wed Sep 13 14:53:16 2006 +0000 Remove declaration for private function. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8499 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 5 +++++ src/include/idmef-path.h | 8 -------- 2 files changed, 5 insertions(+), 8 deletions(-) commit 26eb6ca9d12b9cf185ab6ceee8de45721c65b289 Author: Yoann Vandoorselaere Date: Wed Sep 6 14:21:08 2006 +0000 Prefix the config_* API with a dash, since it is supposed to be private. Avoid possible symbol conflict. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8488 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 10 +++++----- src/config-engine.c | 28 ++++++++++++++-------------- src/include/config-engine.h | 16 ++++++++-------- src/prelude-option-wide.c | 12 ++++++------ src/prelude-option.c | 6 +++--- 5 files changed, 36 insertions(+), 36 deletions(-) commit d3ba538d742a732f5a817f50488023bf4d000bce Author: Yoann Vandoorselaere Date: Wed Aug 23 15:12:04 2006 +0000 GnuLib update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8479 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 +- libmissing/Makefile.am | 77 ++++++- libmissing/m4/absolute-header.m4 | 44 ++++ libmissing/m4/getaddrinfo.m4 | 4 +- libmissing/m4/gnulib-cache.m4 | 3 +- libmissing/m4/gnulib-comp.m4 | 8 +- libmissing/m4/inet_ntop.m4 | 3 +- libmissing/m4/intmax_t.m4 | 6 +- libmissing/m4/inttypes_h.m4 | 6 +- libmissing/m4/longlong.m4 | 6 +- libmissing/m4/mbchar.m4 | 13 +- libmissing/m4/pathmax.m4 | 6 +- libmissing/m4/regex.m4 | 8 +- libmissing/m4/restrict.m4 | 38 ---- libmissing/m4/stdint.m4 | 361 +++++++++++++++++++++++++++++++ libmissing/m4/stdint_h.m4 | 6 +- libmissing/m4/strdup.m4 | 6 +- libmissing/m4/strndup.m4 | 4 +- libmissing/m4/strnlen.m4 | 6 +- libmissing/m4/time_r.m4 | 3 +- libmissing/m4/wcwidth.m4 | 12 +- libmissing/mbchar.h | 5 +- libmissing/regex.h | 11 +- libmissing/regex_internal.c | 33 ++- libmissing/regex_internal.h | 7 +- libmissing/snprintf.c | 38 +++- libmissing/stdint_.h | 454 +++++++++++++++++++++++++++++++++++++++ libmissing/strnlen1.c | 17 +- libmissing/strnlen1.h | 17 +- src/include/libmissing.h | 8 +- 30 files changed, 1064 insertions(+), 148 deletions(-) commit c4463081b1c557e1e14d8f18b9ba2e0f17f1ab06 Author: Yoann Vandoorselaere Date: Wed Aug 23 13:51:23 2006 +0000 New GnuLib files... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8477 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/arpa_inet_h.m4 | 18 ++++++++++++++++++ libmissing/m4/netinet_in_h.m4 | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) commit 06d69460d79bbbdf77fab362e89588d2fb45b51b Author: Yoann Vandoorselaere Date: Sun Aug 13 18:36:04 2006 +0000 Fix const warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8431 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f6323e864971850075b6dc4adc25e9eab9ce6736 Author: Yoann Vandoorselaere Date: Sun Aug 13 17:44:46 2006 +0000 Change to the way IDMEF listed element are handled. Specifying negative number as the position of the element from the low level API now allow to position the element at the specified (reversed) index. Using the high level API a negative index permit to address a list of element backward (replace an element). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8430 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 46 ++++++++++++------------ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 8 ++--- 2 files changed, 27 insertions(+), 27 deletions(-) commit ad418a60dfccf5763371130be0a7bfa4c0d9d2c7 Author: Yoann Vandoorselaere Date: Sun Aug 13 13:57:29 2006 +0000 Update idmef-tree-data.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8429 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-tree-data.h | 141 +++++++++++++++++------------------------- 1 file changed, 56 insertions(+), 85 deletions(-) commit b5e36ae33ac7df332d2fb1fca7341908edc79e83 Author: Yoann Vandoorselaere Date: Sun Aug 13 13:35:09 2006 +0000 Introduce better error checking in the idmef-class API, which is now considered public and might be used by external application. Rename error code to reflect the API. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8428 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 149 +++++++++++++++++------ src/idmef-tree-wrap.c | 120 +++++++++--------- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 9 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 +- src/libprelude-error/err-codes.h.in | 11 +- 5 files changed, 185 insertions(+), 108 deletions(-) commit df8ffa4343b2f44ac0ec6d0ec7e2736cf893b577 Author: Yoann Vandoorselaere Date: Sun Aug 13 13:30:00 2006 +0000 Simplify idmef_path_parse_new(). Don't check for exact -1 returned value in path->class since idmef-class will be updated to return correct error code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8427 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) commit 88171d6a27de023b1c5a8e05eb7a8c62bfd3500f Author: Yoann Vandoorselaere Date: Fri Aug 11 16:59:16 2006 +0000 Build fixes for SWIG > 1.3.27. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8426 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_python.i | 1 + 1 file changed, 1 insertion(+) commit 801840605f8704acef7cb51cbf1ab95e4706e3c4 Author: Yoann Vandoorselaere Date: Mon Aug 7 12:11:13 2006 +0000 Handle NULL string value. Make idmef_value_type_compare() only return a negative value on error (not on mismatch). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8387 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit bc3766b9ae4acf9080b172bed9ad1750ad5c56d9 Author: Yoann Vandoorselaere Date: Mon Aug 7 11:51:40 2006 +0000 Use idmef_data_compare() directly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8386 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit 7d1056767e697e73a9ebd5257b7fcdb1b33e77ee Author: Yoann Vandoorselaere Date: Mon Aug 7 11:47:23 2006 +0000 Use idmef_time_compare() directly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8385 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit f26fadda548cfe165e8983cd588d43b99f838378 Author: Yoann Vandoorselaere Date: Mon Aug 7 11:45:18 2006 +0000 Hook class comparison function. Accept NULL, equal, not equal operator. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8384 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit c2f0e51b180436aea541bfc5084ceb6594624fad Author: Yoann Vandoorselaere Date: Mon Aug 7 11:39:15 2006 +0000 Avoid throwing an exception on idmef_*_compare() negative return value, which is not an error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8383 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_python.i | 49 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) commit e3f83939908e313d2dfc41abdcaff9f5f766b1be Author: Yoann Vandoorselaere Date: Mon Aug 7 11:37:54 2006 +0000 Implement idmef_class_compare(). Hook IDMEF object compare function to the idmef-tree-data table. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8382 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 10 +++++++ src/include/idmef-class.h | 2 ++ src/include/idmef-tree-data.h | 69 ++++++++++++++++++++++--------------------- 3 files changed, 47 insertions(+), 34 deletions(-) commit d52c06a2ef9b39c62623557fc4788a461b7a3b80 Author: Yoann Vandoorselaere Date: Mon Aug 7 11:36:09 2006 +0000 No need to unroll listed value here anymore, since this is now automatically handled by the upper idmef_value_match() layer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8381 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 41 +---------------------------------------- 1 file changed, 1 insertion(+), 40 deletions(-) commit 1eed1bb479bc462f43053b786844b1c35f2cba60 Author: Yoann Vandoorselaere Date: Mon Aug 7 11:34:47 2006 +0000 Modify idmef_value_match() so that it always unroll listed value (do it for both val1 and val2. Remove assertion, and let idmef_value_type_compare() return an error code in case there is an issue. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8380 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) commit ee5115892ac1f4653cd3a92320833581f670a285 Author: Yoann Vandoorselaere Date: Mon Aug 7 11:07:55 2006 +0000 Remove gratuitous newline. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8379 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-criteria.h | 2 -- 1 file changed, 2 deletions(-) commit 393d51e5f50f7dc43d33810f53d3e31abe22f8e5 Author: Yoann Vandoorselaere Date: Mon Aug 7 11:07:13 2006 +0000 consistency fix git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8378 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e545121fd9948c27d805347a5fe1a78fe67a6d81 Author: Yoann Vandoorselaere Date: Mon Aug 7 11:06:13 2006 +0000 consistency fix git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8377 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit fcb7b7829b3ac887583c0a16b4674b030f38cd56 Author: Yoann Vandoorselaere Date: Mon Aug 7 11:02:59 2006 +0000 Make idmef_time_compare() return -1 if t1 is lesser than t2, 0 if they match, 1 if greater git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8376 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit dc1f62628526e89860eb1f56997e61a7dbc0ab8a Author: Yoann Vandoorselaere Date: Fri Aug 4 06:05:12 2006 +0000 Make idmef_path_set() / idmef_path_get() path argument const. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8372 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 18 +++++++++--------- src/include/idmef-path.h | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) commit 658d6cebe9335f763b5e10f6f24ccc0426ad974f Author: Yoann Vandoorselaere Date: Thu Aug 3 15:08:40 2006 +0000 Handle path using IDMEF_LIST_APPEND / IDMEF_LIST_PREPEND as path using an undefined list index on idmef_path_get() call. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8371 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 43ec650db16641032b90caf4dc745042623cca95 Author: Yoann Vandoorselaere Date: Thu Aug 3 12:48:17 2006 +0000 Make criteria parser accept (*) list index. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8370 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be006ae0c567627b4ecdeeedd03353354eb2e1cd Author: Yoann Vandoorselaere Date: Tue Aug 1 17:31:30 2006 +0000 Remove debugging spew. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8362 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 303b31ec9c8859f76b648451777b76e01ccf3721 Author: Yoann Vandoorselaere Date: Tue Aug 1 17:28:55 2006 +0000 Implement comparison function for idmef_data_t, idmef_time_t and prelude_string_t. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8361 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 22 ++++++++++++++++++++++ src/idmef-time.c | 27 +++++++++++++++++++++++++++ src/include/idmef-data.h | 2 ++ src/include/idmef-time.h | 2 ++ src/include/prelude-string.h | 2 +- src/prelude-string.c | 26 ++++++++++++++++++++++++++ 6 files changed, 80 insertions(+), 1 deletion(-) commit 42c33a0ae7a3eaa059b5aac58d610fa5d0d8659b Author: Yoann Vandoorselaere Date: Tue Aug 1 17:27:27 2006 +0000 Implement comparison function for all IDMEF object. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8360 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 1820 +++++++++++++++++++++- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 4 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 120 ++ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 1 + src/include/idmef-tree-wrap.h | 30 + 5 files changed, 1944 insertions(+), 31 deletions(-) commit af56d284b061c89f3585ebefa61a6034acaebfad Author: Yoann Vandoorselaere Date: Fri Jul 28 18:06:36 2006 +0000 Release 0.9.10.2 for real git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8353 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 2 +- docs/api/tmpl/prelude-plugin.sgml | 1 + libmissing/Makefile.am | 30 ++++++++++++++++++++++++++++++ libmissing/inet_ntop.h | 10 ++-------- libmissing/m4/gnulib-comp.m4 | 4 ++++ libmissing/m4/inet_ntop.m4 | 3 +-- libmissing/mbchar.h | 36 ++++++++++++++++++++++++------------ libmissing/wcwidth.h | 9 ++++++++- 8 files changed, 71 insertions(+), 24 deletions(-) commit c905dc394dff8f9692eae44f860f01eb5ee3da39 Author: Yoann Vandoorselaere Date: Fri Jul 28 15:38:51 2006 +0000 Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8350 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 9 +++++++++ configure.in | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) commit 8bcae0f3c3c7bf078341d693eda55f0f42c0053c Author: Yoann Vandoorselaere Date: Fri Jul 28 15:35:05 2006 +0000 Update GnuLib code including FreeBSD warnings fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8349 09c5ec92-17d4-0310-903a-819935f44dba libmissing/inet_ntop.h | 7 ++- libmissing/m4/inet_ntop.m4 | 1 + libmissing/m4/mbchar.m4 | 6 ++- libmissing/mbchar.h | 109 +++++++++++++++++++++++++++++++++++++++++++++ src/include/libmissing.h | 1 + 5 files changed, 121 insertions(+), 3 deletions(-) commit 17a24f5cc0cc6afc8511c0ba2a24bf9be89d6597 Author: Yoann Vandoorselaere Date: Thu Jul 27 10:28:22 2006 +0000 Since we don't generate binding for prelude-inttypes, bind prelude_bool_t manually. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8340 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 4 ++++ 1 file changed, 4 insertions(+) commit e37a32c108ca65aaf010545ef9708223e6fc2eee Author: Yoann Vandoorselaere Date: Thu Jul 27 09:22:34 2006 +0000 Don't create binding for prelude-inttypes constant. These are system dependant. Fix possible bindings compilation warnings/problem. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8339 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b424a3b4f35505e6f5189d902dde9ec6d10a1fa7 Author: Yoann Vandoorselaere Date: Thu Jul 27 08:25:54 2006 +0000 Missing inclusion. Fix undefined reference. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8338 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 1 + 1 file changed, 1 insertion(+) commit 1dba678e6f9cf8731d4290fab0a085d1c9e84f1d Author: Yoann Vandoorselaere Date: Tue Jul 25 14:00:09 2006 +0000 Update GnuLib code, documentation, NEWS. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8335 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 12 +++ configure.in | 3 +- docs/api/libprelude-decl.txt | 2 +- docs/api/tmpl/prelude-plugin.sgml | 2 + libmissing/gettext.h | 166 +++++++++++++++++++++++++++++++++++++- libmissing/printf-args.c | 10 ++- 6 files changed, 190 insertions(+), 5 deletions(-) commit 2fe3a01dfb5c8c145de5d57f85a82466fed5d295 Author: Yoann Vandoorselaere Date: Mon Jul 24 13:41:41 2006 +0000 Fix path ordering when checking for swig/perl/python git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8332 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 30b0c40aa7220163bf3dbf2bcbb4027864294cbd Author: Yoann Vandoorselaere Date: Sat Jul 22 10:32:51 2006 +0000 Update GnuLib code. Should fix OpenBSD getaddrinfo() problem. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8328 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 2 +- libmissing/getaddrinfo.c | 23 ++++--- libmissing/getaddrinfo.h | 134 +++++++++++++++++++++-------------------- libmissing/m4/gnulib-cache.m4 | 3 +- libmissing/m4/gnulib-comp.m4 | 1 + libmissing/m4/onceonly_2_57.m4 | 12 ++-- 6 files changed, 93 insertions(+), 82 deletions(-) commit 4d44c4a4a5c9c3a913d9a4dca25d86097aadbb83 Author: Yoann Vandoorselaere Date: Mon Jul 17 17:06:53 2006 +0000 Include fix reported in #168 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8326 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 59c6fca46c60bf02372b7daa7cadf1f84f06d994 Author: Yoann Vandoorselaere Date: Wed Jul 12 15:45:36 2006 +0000 Update documentation, Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8313 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 19 + configure.in | 8 +- docs/api/libprelude-decl.txt | 676 +++++++++++------------------ docs/api/libprelude-docs.sgml | 1 - docs/api/libprelude-sections.txt | 212 ++++----- docs/api/tmpl/idmef-additional-data.sgml | 10 - docs/api/tmpl/idmef-data.sgml | 12 +- docs/api/tmpl/idmef-tree-wrap.sgml | 676 +++++++++++++---------------- docs/api/tmpl/idmef-value.sgml | 11 + docs/api/tmpl/prelude-client.sgml | 24 +- docs/api/tmpl/prelude-connection-pool.sgml | 12 +- docs/api/tmpl/prelude-plugin.sgml | 13 + 12 files changed, 707 insertions(+), 967 deletions(-) commit f768edebf0f076193a90673a57ba82f7eab0291d Author: Yoann Vandoorselaere Date: Wed Jul 12 14:00:42 2006 +0000 Prefix some private function with _ git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8312 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 120 +++++++++++------------ src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 4 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 +- src/include/idmef-tree-data.h | 60 ++++++------ src/include/idmef-tree-wrap.h | 120 +++++++++++------------ 6 files changed, 156 insertions(+), 156 deletions(-) commit fa08194a0259b12c4ad23ce97a4823b89b5a9e11 Author: Yoann Vandoorselaere Date: Wed Jul 12 13:59:21 2006 +0000 Fix GCC4 warning git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8311 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/tls-register.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ef5fc55edeea495a8ecae07526b039f0d2fcf72d Author: Yoann Vandoorselaere Date: Wed Jul 12 13:58:55 2006 +0000 Update GnuLib code git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8310 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 2 +- libmissing/getaddrinfo.c | 21 +++++++++++++-------- libmissing/getaddrinfo.h | 8 ++++++++ libmissing/m4/gnulib-cache.m4 | 3 ++- libmissing/m4/gnulib-comp.m4 | 1 - libmissing/m4/regex.m4 | 7 ++++--- libmissing/m4/sockpfaf.m4 | 5 +++-- libmissing/m4/strndup.m4 | 14 ++++++++------ libmissing/regex_internal.h | 2 +- 9 files changed, 40 insertions(+), 23 deletions(-) commit 4abba22fd00cb05d05310be46c9525f57aadc561 Author: Yoann Vandoorselaere Date: Mon Jul 3 13:53:37 2006 +0000 Avoid refcounting object from idmef-value since this unfortunately result in memory leak for application that aren't prepared to this change. Instead we refcount on idmef_path_get() returned value, so that object might be shared and used freely. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8303 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 8 ++++++-- src/idmef-tree-wrap.c | 6 ++++++ src/idmef-value.c | 9 ++++----- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 6 ++++++ 4 files changed, 22 insertions(+), 7 deletions(-) commit 12e9bdf2901b0e70dd07180273fbc03649424938 Author: Yoann Vandoorselaere Date: Mon Jul 3 07:33:10 2006 +0000 Fix IDMEF object table initialization. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8302 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 5 ++- src/include/idmef-tree-data.h | 50 ++++++++++++------------- 2 files changed, 28 insertions(+), 27 deletions(-) commit 4df7d7e6e006ee3a0d50c70462e8a88166c314ea Author: Yoann Vandoorselaere Date: Mon Jul 3 07:32:42 2006 +0000 Fix enumeration cloning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8301 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f88c4a8bf9cb9e719ab6ab825a715ce293d6be02 Author: Yoann Vandoorselaere Date: Mon Jul 3 05:43:11 2006 +0000 Update GnuLib code git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8296 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 19 ++++- libmissing/alloca_.h | 26 ++++--- libmissing/getaddrinfo.c | 175 ++++++++++++++++++++++++++++++++++++++++--- libmissing/getaddrinfo.h | 43 ++++++++--- libmissing/inet_ntop.c | 8 +- libmissing/m4/getaddrinfo.m4 | 25 +++++-- libmissing/m4/gnulib-comp.m4 | 3 + libmissing/m4/inet_ntop.m4 | 6 +- libmissing/m4/longlong.m4 | 39 +++++++--- libmissing/m4/size_max.m4 | 45 +++++------ libmissing/m4/sockpfaf.m4 | 24 +++++- libmissing/m4/ssize_t.m4 | 13 ++-- libmissing/m4/wcwidth.m4 | 26 +++++++ libmissing/mbchar.h | 4 +- libmissing/size_max.h | 6 +- libmissing/socket_.h | 36 ++++----- libmissing/wcwidth.h | 70 +++++++++++++++++ 17 files changed, 456 insertions(+), 112 deletions(-) commit 7151c14debd2a302ba6f6c5dfa3a2ebbb3a521cd Author: Yoann Vandoorselaere Date: Mon Jul 3 05:31:47 2006 +0000 Fix warning git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8292 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 162c568f87b82bf19b2ab6ecab6ce75e86352b0c Author: Yoann Vandoorselaere Date: Thu Jun 29 07:12:33 2006 +0000 Invalid enumeration error reporting improvement git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8279 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 40 ++++++++++++------------ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) commit 695392fd54e8eec182b0b22939d2d2c3adc7bd68 Author: Yoann Vandoorselaere Date: Wed Jun 28 16:49:47 2006 +0000 No need to use idmef_value_dont_have_own_data() here anymore git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8278 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 5dafa3bcd1bdac5000f0858af7897c214e7fe608 Author: Yoann Vandoorselaere Date: Wed Jun 28 16:49:23 2006 +0000 Refcount support for idmef_alert_t and idmef_heartbeat_t object. Call idmef_value_dont_have_own_data() when retrieving class that are static part of another object. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8277 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 216 ++++++++++++++--------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 26 +-- src/idmef-wrappers-gen/idmef-tree.h | 3 + src/include/idmef-tree-wrap.h | 5 + 4 files changed, 156 insertions(+), 94 deletions(-) commit ba3a03d78e6e04f452b8d45735b30e8b6b2544c4 Author: Yoann Vandoorselaere Date: Wed Jun 28 16:47:57 2006 +0000 Handle enum/class operation directly from idmef-value-type. Reference class when we use them, so that the class is automatically freed if we are the last reference. This ease the use of the idmef-value system. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8276 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 140 +++++++++++++++++++----------------------------------- 1 file changed, 50 insertions(+), 90 deletions(-) commit ed5acd708f45df5564ea9e563c42101c520f6829 Author: Yoann Vandoorselaere Date: Wed Jun 28 16:42:56 2006 +0000 Support enum / class operation directly from idmef-value-type. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8275 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 58 +++++++++++++++++++++++++++++++++++++++--- src/include/idmef-value-type.h | 14 ++++++++-- 2 files changed, 67 insertions(+), 5 deletions(-) commit 5cdfa7116b10e0e373c0c1dd67868d2fbb0f5df7 Author: Yoann Vandoorselaere Date: Wed Jun 28 16:40:18 2006 +0000 Support reference function from idmef-class git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8274 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 11 +++++++++++ src/include/idmef-class.h | 2 ++ 2 files changed, 13 insertions(+) commit e27bf635a0b622cc5f3f4e07a486e89c92824d1c Author: Yoann Vandoorselaere Date: Wed Jun 28 16:18:16 2006 +0000 Generate pointer to IDMEF object refcounting function. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8273 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 3 + src/include/idmef-tree-data.h | 101 ++++++++++++------------ 2 files changed, 54 insertions(+), 50 deletions(-) commit 6a617e838294fc67de7d97f3bec7fde427bee258 Author: Yoann Vandoorselaere Date: Wed Jun 28 13:33:16 2006 +0000 Fix IDMEF value leak on certain criteria. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8272 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit ef9bb022003def59e667fef56c1855b0383b8be7 Author: Yoann Vandoorselaere Date: Tue Jun 27 17:57:35 2006 +0000 Fix list deletion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8271 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 49 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 16 deletions(-) commit 2ae676e3f8b9bd95f05751986d1536608df4cdeb Author: Yoann Vandoorselaere Date: Sat Jun 24 08:04:57 2006 +0000 Destroy child class, not parent git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8269 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 103b89905048d157ad7f19f6aa7e34d875d24800 Author: Yoann Vandoorselaere Date: Sat Jun 24 07:49:25 2006 +0000 Fix possible path integrity problem (name vs path object content) when using (*) list operator. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8268 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 899dfd9b5baf6276cdfb2deee502cba000757615 Author: Yoann Vandoorselaere Date: Fri Jun 23 12:31:19 2006 +0000 remove unused. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8267 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 1 - 1 file changed, 1 deletion(-) commit ca8217dbad7a87e0a7e3376d0f53706c25fbdd03 Author: Yoann Vandoorselaere Date: Fri Jun 23 12:28:19 2006 +0000 Allow using idmef_path_set() on listed value. The following operation are now permitted: listed_object = listed_object2 -> will overwrite listed_object with listed_object2. listed_object(>>) = listed_object2 -> will append listed_object2 to listed_object. listed_object(<<) = listed_object2 -> will prepend listed_object2 to listed_object. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8266 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 117 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 98 insertions(+), 19 deletions(-) commit 0d2989810a05ef9bd02a486fa47d048e70b1ffce Author: Yoann Vandoorselaere Date: Wed Jun 21 08:59:40 2006 +0000 Fix warnings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8264 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 2 ++ src/include/idmef-class.h | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) commit 1b02a23dc2c5ba7274d758affaf37cbf247fe4de Author: Yoann Vandoorselaere Date: Wed Jun 21 08:19:47 2006 +0000 Implement idmef_class_destroy() git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8263 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 11 +++++++++++ src/include/idmef-class.h | 2 ++ 2 files changed, 13 insertions(+) commit b01794eb9838d542ef5cda56e4ab8dee1bb8c84c Author: Yoann Vandoorselaere Date: Wed Jun 21 08:19:10 2006 +0000 Make the object table contain a pointer to the object destroy method git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8262 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 4 +- src/include/idmef-tree-data.h | 61 +++++++++++++------------ 2 files changed, 34 insertions(+), 31 deletions(-) commit eb5c5992b3c0d8626df2b90434ff6c6ac3c8cb70 Author: Yoann Vandoorselaere Date: Wed Jun 21 08:16:50 2006 +0000 Implement public idmef_value_type_to_string(). Fix duplicate return. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8261 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 18 ++++++++---------- src/include/idmef-value-type.h | 2 ++ 2 files changed, 10 insertions(+), 10 deletions(-) commit 5c11f1637c2649f1734a05420fe57b0564a0c15c Author: Yoann Vandoorselaere Date: Tue Jun 20 11:32:21 2006 +0000 Implement idmef_value_iterate_reversed(). Propagate error return in idmef_value_iterate() as well. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8260 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 24 ++++++++++++++++++++++-- src/include/idmef-value.h | 2 ++ 2 files changed, 24 insertions(+), 2 deletions(-) commit 622021c15d79d5ddb730b83c117d41b12c44a704 Author: Yoann Vandoorselaere Date: Mon Jun 12 14:51:02 2006 +0000 Fix build git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8252 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 506 +++++++++++------------ src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 8 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 16 +- src/include/idmef-tree-data.h | 100 ++--- 4 files changed, 315 insertions(+), 315 deletions(-) commit 72ae3e17b50c68dec1b52d259dbfe1edea0f340e Author: Yoann Vandoorselaere Date: Mon Jun 12 14:43:44 2006 +0000 Remove newly autogenerated function. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8251 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-additional-data.c | 20 -------------------- src/include/idmef-additional-data.h | 1 - 2 files changed, 21 deletions(-) commit 878ae7b55a153081a0c418556b62b34f739fadbc Author: Yoann Vandoorselaere Date: Mon Jun 12 14:41:51 2006 +0000 Handle class copy/cloning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8250 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit 5be44fa6d08d5e69a131a87383fcb332857cd54f Author: Yoann Vandoorselaere Date: Mon Jun 12 14:41:19 2006 +0000 Implement idmef_class_copy() / idmef_class_clone(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8249 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 18 ++++++++++++++++++ src/include/idmef-class.h | 8 ++++++++ 2 files changed, 26 insertions(+) commit 799305cc57fdc5b89ff9398f753b3d17dc8a0efd Author: Yoann Vandoorselaere Date: Mon Jun 12 14:40:21 2006 +0000 Generate _copy and _clone function for the whole IDMEF API. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8248 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 1792 +++++++++++++++++++++- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 10 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 130 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 2 + src/include/idmef-tree-data.h | 102 +- src/include/idmef-tree-wrap.h | 60 + 6 files changed, 1993 insertions(+), 103 deletions(-) commit abef445d568617c6ae7d27658c196e7db6c1fe14 Author: Yoann Vandoorselaere Date: Tue Jun 6 08:27:33 2006 +0000 Update GnuLib stuff, NEWS, documentation. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8233 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 11 +++++++++ configure.in | 4 ++-- docs/api/libprelude-decl.txt | 2 +- docs/api/tmpl/idmef-criteria.sgml | 4 ---- docs/api/tmpl/idmef-criterion-value.sgml | 6 ----- docs/api/tmpl/idmef-data.sgml | 25 --------------------- docs/api/tmpl/idmef-path.sgml | 10 --------- docs/api/tmpl/idmef-tree-wrap.sgml | 2 -- docs/api/tmpl/idmef-value.sgml | 6 ----- docs/api/tmpl/prelude-client.sgml | 3 --- docs/api/tmpl/prelude-connection-pool.sgml | 8 ------- docs/api/tmpl/prelude-connection.sgml | 2 -- docs/api/tmpl/prelude-log.sgml | 4 ---- docs/api/tmpl/prelude-msg.sgml | 3 --- docs/api/tmpl/prelude-plugin.sgml | 4 ++-- docs/api/tmpl/prelude.sgml | 2 -- libmissing/Makefile.am | 4 ++-- libmissing/m4/gnulib-cache.m4 | 3 ++- libmissing/m4/gnulib-comp.m4 | 3 ++- libmissing/m4/stdbool.m4 | 4 ++-- libmissing/m4/strndup.m4 | 36 ++++++++++++++++++++++++++---- libmissing/printf-args.c | 21 ++++++++++++++++- libmissing/regexec.c | 4 ++-- libmissing/strndup.c | 4 +++- 24 files changed, 81 insertions(+), 94 deletions(-) commit 6f2e57790c8f5630cede0475becef505081be779 Author: Yoann Vandoorselaere Date: Thu Jun 1 14:01:10 2006 +0000 Enumeration generation fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8222 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 20 ++++++++++---------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 16 +++++++++++----- 2 files changed, 21 insertions(+), 15 deletions(-) commit 31fb7c169ce010a68123ffe56c7d542d9074847b Author: Yoann Vandoorselaere Date: Wed May 31 15:11:27 2006 +0000 Detailed, verbose error reporting for unsupported value operation git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8221 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) commit e80d48bf03d53b282f14227ae38097f5f0b707fd Author: Yoann Vandoorselaere Date: Wed May 31 15:10:01 2006 +0000 Detailed, verbose error reporting when failing to read IDMEF message git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8220 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | Bin 78733 -> 80699 bytes src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) commit 8bce55a50533cc01a3b64980c923581610b6393e Author: Yoann Vandoorselaere Date: Thu May 18 10:08:31 2006 +0000 Fix idmef-tree-wrap.h generation due to latest enumeration handling change git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8208 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 5 ++++- src/include/idmef-tree-wrap.h | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) commit a42bbe06b09c9670cc255023169b77d6c707e2e0 Author: Yoann Vandoorselaere Date: Wed May 17 10:03:51 2006 +0000 Ability to provide specific enumeration text value instead of the default translation scheme. Used by the Checksum Algorithm enumeration for now. This is needed since certain IDMEF enumeration make special use of lower/upper case. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8201 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 20 ++++++++++---------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 20 ++++++++++++++------ src/idmef-wrappers-gen/IDMEFTree.pm | 10 +++++++--- src/idmef-wrappers-gen/idmef-tree.h | 20 ++++++++++---------- src/include/idmef-tree-wrap.h | 20 ++++++++++---------- 5 files changed, 51 insertions(+), 39 deletions(-) commit 6db8ec6b7fba8993ca17f06b7614c348bb88fd8e Author: Yoann Vandoorselaere Date: Wed May 17 08:29:44 2006 +0000 Fix FreeBSD compilation problem git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8200 09c5ec92-17d4-0310-903a-819935f44dba src/include/libmissing.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ce7a89e782c46420b53859e6f4625639caa5442 Author: Yoann Vandoorselaere Date: Wed May 3 11:07:13 2006 +0000 Bump version number, Update documentation git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8178 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 22 ++++++++ configure.in | 11 ++-- docs/api/libprelude-decl.txt | 102 +++++++++++++++++++++++++++-------- docs/api/libprelude-sections.txt | 12 +++++ docs/api/tmpl/idmef-tree-wrap.sgml | 108 +++++++++++++++++++++++++++++++++++++ docs/api/tmpl/prelude-plugin.sgml | 3 ++ 6 files changed, 231 insertions(+), 27 deletions(-) commit d304af94a841dbabb5153bf9e50bb802d7fbf924 Author: Yoann Vandoorselaere Date: Wed May 3 09:46:23 2006 +0000 GCC 4 warning fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8176 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_python.i | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 7317702c0a25063fa7ab0c12feff75fce601dd7a Author: Yoann Vandoorselaere Date: Wed May 3 06:40:12 2006 +0000 Update Gnulib code git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8175 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/ssize_t.m4 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 3dc830f3180940e022f15d0fa6c6faa9617b15ec Author: Yoann Vandoorselaere Date: Wed May 3 06:39:30 2006 +0000 Update Gnulib code git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8174 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 8 +- libmissing/m4/extensions.m4 | 3 + libmissing/m4/gnulib-comp.m4 | 2 + libmissing/m4/longdouble.m4 | 7 +- libmissing/m4/regex.m4 | 42 +-- libmissing/m4/time_r.m4 | 3 +- libmissing/regcomp.c | 629 ++++++++++++++++++++++------------------ libmissing/regex.c | 7 +- libmissing/regex.h | 500 +++++++++++++------------------- libmissing/regex_internal.c | 271 +++++++++--------- libmissing/regex_internal.h | 195 +++++-------- libmissing/regexec.c | 667 ++++++++++++++++++++++++------------------- libmissing/time_r.c | 8 - src/include/libmissing.h | 19 +- 14 files changed, 1192 insertions(+), 1169 deletions(-) commit bf878fbc5ae05d0ebb741dd771e263950866aec7 Author: Yoann Vandoorselaere Date: Wed May 3 06:14:31 2006 +0000 Fix GCC 4 warning git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8173 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 121aaed570fa8801010d3444c1f610dec93cf84b Author: Yoann Vandoorselaere Date: Mon May 1 12:09:13 2006 +0000 Ignore character that are part of the option value when comparing option specified using --option=value. Fix handling of parent option. Should fix #150. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8171 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) commit 7e0bf9141df521b2768672568a95bebb4305e729 Author: Yoann Vandoorselaere Date: Fri Apr 28 08:56:50 2006 +0000 More multiline reading fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8162 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit f1c5592941b54e14a115128a2cc4d082f163ada2 Author: Yoann Vandoorselaere Date: Fri Apr 28 08:22:04 2006 +0000 Fix handling of \r\n terminated line. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8161 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f4372ddf467d1a8eeb7df60da344b1bb3b2837a7 Author: Yoann Vandoorselaere Date: Thu Apr 27 13:17:47 2006 +0000 Create time is a required object, thus idmef_*_get_create_time() will never return NULL. Check the sec member and fill create_time if needed git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8156 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit d2ea8fdea2c5ff292665a8a89ff26cc17a5abc52 Author: Yoann Vandoorselaere Date: Wed Apr 26 09:44:40 2006 +0000 Function constification git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8153 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client-profile.h | 28 ++++++++++++++-------------- src/prelude-client-profile.c | 28 ++++++++++++++-------------- 2 files changed, 28 insertions(+), 28 deletions(-) commit 26d09806bf09a166f302145d9f2512d926b8d0e9 Author: Yoann Vandoorselaere Date: Wed Apr 26 09:44:05 2006 +0000 GCC 4 warning fix git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8152 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6228aa16c04f0eae58c434f3ebb113b4496ceb99 Author: Yoann Vandoorselaere Date: Fri Apr 21 09:11:47 2006 +0000 Keep deprecated community member for backward compatibility. Will be removed in future release. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8147 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 14 +++++++ src/idmef-message-read.c | Bin 78371 -> 78733 bytes src/idmef-message-write.c | 4 ++ src/idmef-tree-wrap.c | 73 +++++++++++++++++++++++++++++++++++- src/idmef-wrappers-gen/idmef-tree.h | 5 +++ src/include/idmef-message-id.h | 1 + src/include/idmef-tree-data.h | 1 + src/include/idmef-tree-wrap.h | 9 +++++ 8 files changed, 106 insertions(+), 1 deletion(-) commit 2c6d6b773d205cc6c0fdf111fde3e45812a958d0 Author: Yoann Vandoorselaere Date: Fri Apr 21 08:18:25 2006 +0000 Rework SNMPService class for IDMEFv16 compliance: - Add message_processing_model member - Add security_model member - Add security_level member - Remove deprecated community member git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8146 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 36 ++++++- src/idmef-message-read.c | Bin 77639 -> 78371 bytes src/idmef-message-write.c | 35 ++++++- src/idmef-tree-wrap.c | 200 ++++++++++++++++++++++++++++-------- src/idmef-wrappers-gen/idmef-tree.h | 4 +- src/include/idmef-message-id.h | 12 ++- src/include/idmef-tree-data.h | 4 +- src/include/idmef-tree-wrap.h | 21 +++- 8 files changed, 252 insertions(+), 60 deletions(-) commit af601812f62a6805420c586a774a85ed9ffe6c51 Author: Yoann Vandoorselaere Date: Wed Apr 19 10:00:47 2006 +0000 Correct call to prelude_error_from_errno(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8143 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0378c8420ee6ff423fa0af8ad7521e62a40b013b Author: Yoann Vandoorselaere Date: Mon Apr 17 14:38:08 2006 +0000 --enable-(perl|python) become --with-(perl|python). We are supposed to use AC_ARG_WITH rather than AC_ARG_ENABLE when it require external dependencies. You can also provide a direct path to the perl/python/swig binary if you wish. --without-(swig|perl|python) behave as expected. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8140 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 57 ++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 17 deletions(-) commit d610c4f57ebe167ec635df94b81823b82cd0b090 Author: Yoann Vandoorselaere Date: Mon Apr 17 14:35:09 2006 +0000 Use AC_HELP_STRING() for readability. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8139 09c5ec92-17d4-0310-903a-819935f44dba m4/libgnutls-extra.m4 | 2 +- m4/libgnutls.m4 | 2 +- m4/libprelude.m4 | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) commit 5a417d148dca799a822060d7513643689bf44aa3 Author: Yoann Vandoorselaere Date: Fri Apr 7 11:10:16 2006 +0000 untabify git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8128 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 174 +++++++++++++++++++++++++++---------------------------- 1 file changed, 87 insertions(+), 87 deletions(-) commit f76c0077599bbd4759ba21eea2ce40e460f98b8f Author: Yoann Vandoorselaere Date: Fri Apr 7 11:09:14 2006 +0000 Improve error reporting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8127 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 33b8d031cdbbfde35b839b9671e56d8a14ade3ab Author: Yoann Vandoorselaere Date: Tue Mar 28 17:16:18 2006 +0000 Forgot to commit latest 0.9.7.1 changes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8100 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 5 +++++ configure.in | 4 ++-- docs/api/libprelude-decl.txt | 2 +- docs/api/tmpl/prelude-log.sgml | 6 ++---- docs/api/tmpl/prelude-plugin.sgml | 4 ++-- 5 files changed, 12 insertions(+), 9 deletions(-) commit 14421b5461b7eb5576c924b2783911c50c921fad Author: Yoann Vandoorselaere Date: Thu Mar 23 18:53:21 2006 +0000 Fix regression introduced in 8066 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8080 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msgbuf.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit b624ddee527749529fbaa1dfbeca38e5643a720d Author: Yoann Vandoorselaere Date: Tue Mar 21 16:15:42 2006 +0000 Update GnuLib code, NEWS, bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8069 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 10 ++++++++++ configure.in | 2 +- gtk-doc.make | 12 ++++++------ libmissing/m4/regex.m4 | 41 +++++++++-------------------------------- libmissing/regex.h | 14 ++++++++------ libmissing/time_r.c | 14 +------------- libmissing/time_r.h | 21 ++++++++------------- 7 files changed, 43 insertions(+), 71 deletions(-) commit ca436b17b8e935fcdd852a408eba78a1854b3eaf Author: Yoann Vandoorselaere Date: Tue Mar 21 16:15:04 2006 +0000 We can't conditionally define the size of uint64_t since the typedef are directly handled by swig when generating the resulting source code. Thus revert to statically mapping int64_t to long long since it seem to work for everyone. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8068 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 4846a9b0a2bb7af0f2f785e3dc2dfcd2d9d8735a Author: Yoann Vandoorselaere Date: Wed Mar 15 09:26:15 2006 +0000 Asynchronous callback don't error out on PRELUDE_ERROR_EAGAIN. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8042 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msgbuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 91db0a16e94bd7a2ac7813f819addecf8c078149 Author: Yoann Vandoorselaere Date: Tue Mar 14 19:04:38 2006 +0000 In asynchronous mode, only allocate the buffer when needed, rather than always keeping a buffer ready. This might avoid all kind of memory fragmentation problem on async message burst. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8039 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msgbuf.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit a8e81a886523317652347a08471f069aea62469c Author: Yoann Vandoorselaere Date: Thu Mar 9 13:20:29 2006 +0000 Update documentation, NEWS. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8035 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 15 +++++++++++++++ configure.in | 8 ++++---- docs/api/libprelude-decl.txt | 7 +------ docs/api/libprelude-sections.txt | 1 - 4 files changed, 20 insertions(+), 11 deletions(-) commit b438e845c16551a581e89163b440d0d0d4a91503 Author: Yoann Vandoorselaere Date: Thu Mar 9 12:58:47 2006 +0000 Only print 'Waiting for asynchronous operation to complete' message if there are operation in the queue. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8034 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 374b901300bec0f1cf4a978bf8ed8d62da1769ce Author: Yoann Vandoorselaere Date: Thu Mar 9 10:48:32 2006 +0000 Fix an issue with system with both v4 and v6 interface, but which doesn't allow binding both 0.0.0.0 and :: . Since the behavior is hard to predict, we handle bind() EADDRINUSE failure quietly if another address of different family was already bound. Details: http://lists.debian.org/debian-ipv6/2001/01/msg00031.html git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8030 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) commit 711c5910d4d274bb3c2f40d4d6b485958a1833c7 Author: Yoann Vandoorselaere Date: Wed Mar 8 09:48:23 2006 +0000 Fix small option leak. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8023 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e96bba26985bd61edf3e84390b01f981f758e908 Author: Yoann Vandoorselaere Date: Wed Mar 8 09:38:03 2006 +0000 Fix for plugin without activation option git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8022 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) commit 12897bfabc632b8b76399fd3b9b81d3d58c01c1e Author: Yoann Vandoorselaere Date: Mon Mar 6 10:20:00 2006 +0000 Add configure magic for libgcrypt, since libprelude happen to directly call one gcrypt function to ensure thread safety. Note that this should not be needed due to the GnuTLS hard-wired gcrypt dependencies, but some distribution (Ubuntu/Debian) seem to come with a broken libgnutls-config script missing the gcrypt dependencies. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8011 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 19 ++++++++-- m4/libgcrypt.m4 | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/Makefile.am | 2 +- 3 files changed, 126 insertions(+), 3 deletions(-) commit 8783b5191bd0f276e597638a916c3bd047775a07 Author: Yoann Vandoorselaere Date: Sun Mar 5 11:34:50 2006 +0000 Bind prelude-timer API. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8004 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 1 + 1 file changed, 1 insertion(+) commit 646cd7d1756afb4c9ca9b1a1e4c29d812ba93690 Author: Yoann Vandoorselaere Date: Sun Mar 5 11:34:25 2006 +0000 Remove old declaration. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@8003 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-timer.h | 9 --------- 1 file changed, 9 deletions(-) commit e59a445270f381d8bfd971c6e76fd2c263b57b32 Author: Yoann Vandoorselaere Date: Fri Mar 3 14:36:33 2006 +0000 Include flex build fix for *BSD. Update NEWS, documentation, bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7997 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 5 +++++ configure.in | 5 +++-- docs/api/libprelude-decl.txt | 2 +- src/Makefile.am | 8 ++++---- src/idmef-criteria-string.lex.l | 20 +++----------------- 5 files changed, 16 insertions(+), 24 deletions(-) commit 42a6c61f4b5831c8d0c05124ac21677408531748 Author: Yoann Vandoorselaere Date: Thu Mar 2 23:55:20 2006 +0000 No need to manuallym ap prelude_bool_t. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7996 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 2 -- 1 file changed, 2 deletions(-) commit ef8cc46ac92277cee272445decda0c900a6f6e43 Author: Yoann Vandoorselaere Date: Thu Mar 2 11:22:42 2006 +0000 Update gnulib code, documentation, NEWS. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7991 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 55 ++++++++++++++++++++++++++++++ configure.in | 6 ++-- docs/api/libprelude-decl.txt | 29 ++++++++++++++-- docs/api/libprelude-sections.txt | 5 +++ docs/api/tmpl/idmef-tree-wrap.sgml | 14 ++++++++ docs/api/tmpl/prelude-client.sgml | 21 ++++++++++++ docs/api/tmpl/prelude-connection-pool.sgml | 12 +++++++ libmissing/getaddrinfo.c | 9 +++-- libmissing/m4/extensions.m4 | 2 +- libmissing/m4/getaddrinfo.m4 | 16 ++++----- 10 files changed, 152 insertions(+), 17 deletions(-) commit 50d70f5a6e69e141710030981604b5be2662869d Author: Yoann Vandoorselaere Date: Thu Mar 2 02:26:08 2006 +0000 Oops git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7990 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-inttypes.h.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8cfd19a09e742d8d1733c28deda1018503a1bdc3 Author: Yoann Vandoorselaere Date: Thu Mar 2 02:05:00 2006 +0000 Declare __PRELUDE_UINT64_SUFFIX to fix INT64_MIN/MAX decl. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7989 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-inttypes.h.in | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 3d9b8f1d97726af77e07c0b213504a6cb2d6944d Author: Yoann Vandoorselaere Date: Thu Mar 2 02:04:12 2006 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7988 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-tree-wrap.h | 1 + 1 file changed, 1 insertion(+) commit 45fdef3cd8b6cf884ebf5636dacd714270d1b874 Author: Yoann Vandoorselaere Date: Thu Mar 2 02:03:27 2006 +0000 Include git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7987 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 1 + 1 file changed, 1 insertion(+) commit 03e5f37fd3621c8f3b7149d0ecc0b0d011cd402e Author: Yoann Vandoorselaere Date: Thu Mar 2 01:52:28 2006 +0000 Declare typemap for int64_t depending on prelude-inttypes own definition. This avoid having bindings using long long on architecture where 64 bits integer is a long. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7986 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) commit bf31c6beb54ebb70c5d3469f06419fb0dcf5263f Author: Yoann Vandoorselaere Date: Wed Mar 1 15:41:38 2006 +0000 Extend idmef-path to handle usage of (*) as a meaning of retrieving all listed element (currently being done using '.'). You can now use: - object(*).value as well as: - object.value git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7984 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e3579255fd10a8ac98e90db18777d2821839c5ae Author: Yoann Vandoorselaere Date: Wed Mar 1 12:52:41 2006 +0000 Revert broken prelude-error bindings change. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7983 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 1 - src/libprelude-error/prelude-error.h.in | 3 --- 2 files changed, 4 deletions(-) commit ba267f57124b3013a6b1c16a8798681d1f7f746d Author: Yoann Vandoorselaere Date: Wed Mar 1 02:13:57 2006 +0000 Use IDMEF_LIST_PREPEND in place of 0. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7976 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dc2e26ffac7e03e828e1c825533b4116ff2f3ba4 Author: Yoann Vandoorselaere Date: Wed Mar 1 01:41:36 2006 +0000 Support for (<<) and (>>) listed object index, meaning to prepend the object, or to append it. This deprecate the usage of (-1) previously used for appending. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7973 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit d52bee9e340c0035ebc17949fbd5466a5e4a55db Author: Yoann Vandoorselaere Date: Wed Mar 1 01:40:07 2006 +0000 Untabify. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7972 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 5328 +++++++++++----------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 662 +-- 2 files changed, 2995 insertions(+), 2995 deletions(-) commit e0b01b6f9f5cd7b2347b052e17760434479cc126 Author: Yoann Vandoorselaere Date: Wed Mar 1 01:39:23 2006 +0000 Ability to use negative index on listed object insertion, to specify the index backward. For compatibility purpose, insearting at the head (pos=0) and inserting at the tail (pos=-1) are still supported, but user should update to use IDMEF_LIST_PREPEND and IDMEF_LIST_APPEND. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7971 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 747 ++++++++++++++++------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 63 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 5 + src/include/idmef-tree-wrap.h | 5 + 4 files changed, 594 insertions(+), 226 deletions(-) commit ff121b2d89d07b4eaf39364a774dc6ced357ba88 Author: Yoann Vandoorselaere Date: Wed Mar 1 01:23:37 2006 +0000 Implement workaround for buggy libtool that will fail looking up symbol with preopening enabled in case the libtool archive is missing. Lot of distribution package seem to suffer from this. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7970 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) commit 3ad959868c5b237e36a0c8eadc9439cc43861c97 Author: Yoann Vandoorselaere Date: Mon Feb 27 14:09:23 2006 +0000 Fix leak on idmef_value_to_string() error. Handle outconn param. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7945 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_perl.i | 34 +++++++++++++++++++++------------- bindings/libprelude_python.i | 21 +++++++++++++++------ 2 files changed, 36 insertions(+), 19 deletions(-) commit bd4299fcc4ee91a449da3d61c0c9097a2b1ab37c Author: Yoann Vandoorselaere Date: Mon Feb 27 12:03:29 2006 +0000 - Implement prelude_client_new_msgbuf(). - Implement prelude_client_handle_msg_default(), supposed to be called by a Prelude client getting a message we don't know how to handle. - Make the new prelude_connection_pool_recv() function take a prelude_connection_t address to store a pointer to the connection where an event is happening. Using outmsg is now optional. (Was required so that client can handle reading in a non blocking manner). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7936 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 4 ++ src/include/prelude-connection-pool.h | 2 +- src/prelude-client.c | 123 +++++++++++++++++----------------- src/prelude-connection-pool.c | 59 +++++++--------- 4 files changed, 89 insertions(+), 99 deletions(-) commit 3023214c1cae2f2063be09451859a6ede48c69ac Author: Yoann Vandoorselaere Date: Mon Feb 27 11:56:54 2006 +0000 Handle EAGAIN. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7935 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msgbuf.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 63df5ba32568763693a7423de4b81d841549fa73 Author: Yoann Vandoorselaere Date: Sun Feb 26 12:04:40 2006 +0000 Remove unused variable. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7915 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99e821496e05bef9a87c55c622490758a1947525 Author: Yoann Vandoorselaere Date: Sun Feb 26 12:03:14 2006 +0000 Originally, -1 as the index of a listed value meant last element in the list. Make this more powerful by allowing other negative index to address the list in reverse. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7914 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) commit 58ccd811cbb29eaa3879343ee7fbd5982c033d73 Author: Yoann Vandoorselaere Date: Fri Feb 24 00:51:09 2006 +0000 Reset event handler in case the client request IDMEF_READ, since the client is then responsible for reading incoming events. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7896 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 3 +++ 1 file changed, 3 insertions(+) commit 328465707f7c665d0af7a0c4903db2d906708bec Author: Yoann Vandoorselaere Date: Fri Feb 24 00:48:29 2006 +0000 On prelude_connection_pool_recv(), in case reading the message fail, don't return a successful read, but instead, continue looping through our fd set. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7895 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 63ff4508d5b0f4ea69d2224b40a8af081c219715 Author: Yoann Vandoorselaere Date: Thu Feb 23 17:24:23 2006 +0000 Initialize ioctl() storage, seem that we get a false positive from valgrind otherwise. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7891 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4d552f962ed1b8d1af2ce99b914670c99fe0f3a0 Author: Yoann Vandoorselaere Date: Thu Feb 23 17:08:26 2006 +0000 Always include configuration file + error line on configuration file error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7890 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) commit 5dcf10643fc9b8f879c31c3e4f02fc876396548c Author: Yoann Vandoorselaere Date: Thu Feb 23 09:46:25 2006 +0000 Section value handling work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7889 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 16 ++++++++-------- src/prelude-option-wide.c | 7 +++++-- 2 files changed, 13 insertions(+), 10 deletions(-) commit a5ad5c6a5cfb4a1441c106a912bf1f1fb80d6e02 Author: Yoann Vandoorselaere Date: Thu Feb 23 08:49:04 2006 +0000 Improve option parsing: option value can now be provided using --option=value. This format is now a requirement for option that use an optional argument. Provide arguments information in the option help. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7888 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 11 +-- src/prelude-option.c | 204 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 126 insertions(+), 89 deletions(-) commit 80b840472184216569eb47bd57761d28eac3c1bb Author: Yoann Vandoorselaere Date: Thu Feb 23 08:44:04 2006 +0000 Include prelude-timer.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7887 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude.h.in | 1 + 1 file changed, 1 insertion(+) commit 1c8c78afd90424b86e73b0b8b72e0eb661af5eb8 Author: Yoann Vandoorselaere Date: Thu Feb 23 08:40:20 2006 +0000 cosmetic change. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7886 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msgbuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 327f98a2282d415fef9ae7baf300db1b780580b3 Author: Yoann Vandoorselaere Date: Wed Feb 22 15:53:13 2006 +0000 Fix prelude_client_destroy() deadlock issue. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7867 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit d15a30f1e52eb4c2e5034ec6faaa830ff4869518 Author: Yoann Vandoorselaere Date: Wed Feb 22 13:21:39 2006 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7864 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 71b66e558e292ef0d7b35c969745d5c7ee6c5713 Author: Yoann Vandoorselaere Date: Wed Feb 22 13:17:35 2006 +0000 Implement prelude_connection_pool_recv(), based on initial patch from Chet Luther . git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7863 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection-pool.h | 2 + src/prelude-connection-pool.c | 92 ++++++++++++++++++++++++++++++----- 2 files changed, 83 insertions(+), 11 deletions(-) commit c50ea33cd5b9e05d958f67bb9308697f3527cae9 Author: Yoann Vandoorselaere Date: Wed Feb 22 12:40:11 2006 +0000 Error handling improvement. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7862 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 49 +++++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 22 deletions(-) commit c402fc3567eedd14038915736407a80e0703f9b2 Author: Yoann Vandoorselaere Date: Wed Feb 22 02:52:25 2006 +0000 Correct prelude_msg_t typemap again. No default parameter. Correctly initialize msg. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7861 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_perl.i | 10 ++-------- bindings/libprelude_python.i | 10 ++-------- 2 files changed, 4 insertions(+), 16 deletions(-) commit 821061612662319d525b5240786878cd3279d460 Author: Yoann Vandoorselaere Date: Wed Feb 22 00:54:24 2006 +0000 Add prelude-error, prelude-connection-pool, idmef-message-read for bindings generation. Disable inline function in prelude-error in case we're reading from SWIG. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7860 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 3 +++ src/libprelude-error/prelude-error.h.in | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) commit d306fb71ba642d71d07c861c317d3851aabf7058 Author: Yoann Vandoorselaere Date: Tue Feb 21 13:55:41 2006 +0000 More typemap fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7849 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 3 ++- bindings/libprelude_perl.i | 2 +- bindings/libprelude_python.i | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) commit e97d68690dde928e4d7990fb61d4c4b963da3511 Author: Yoann Vandoorselaere Date: Tue Feb 21 08:29:08 2006 +0000 Definitely fix the problem where prelude-adduser will, on some system, listen to Ipv6 IP address as the default. We now bind every address returned by getaddrinfo(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7846 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 217 +++++++++++++++++++++++------------------------ prelude-adduser/server.h | 2 - 2 files changed, 104 insertions(+), 115 deletions(-) commit caf5c7e731876947bbde62a8c02a8210354c1e37 Author: Yoann Vandoorselaere Date: Mon Feb 20 16:58:00 2006 +0000 Fix NULL pointer dereference introduced in latest prelude-adduser work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7845 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 993af3023a8c18c4502008d45cf93ca33bf04af5 Author: Yoann Vandoorselaere Date: Mon Feb 20 13:01:15 2006 +0000 Fix indentation, return bool. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7844 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-thread.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit a55544385048d28ada3b9d2b019cba99c87630ae Author: Yoann Vandoorselaere Date: Mon Feb 20 12:59:43 2006 +0000 Documentation update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7843 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 118 --------------------------------------- docs/api/libprelude-sections.txt | 14 ----- docs/api/tmpl/prelude-msg.sgml | 9 --- 3 files changed, 141 deletions(-) commit 1a8ac85596a3d9bdc18fcec9e8cab94a52c805bc Author: Yoann Vandoorselaere Date: Mon Feb 20 12:58:01 2006 +0000 More warning fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7842 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 15 +++++++++++---- src/idmef-criteria-string.yac.y | 2 -- 2 files changed, 11 insertions(+), 6 deletions(-) commit 82f0c106f40ced3c098d8256542d34bcf7c09f5b Author: Yoann Vandoorselaere Date: Mon Feb 20 12:57:35 2006 +0000 Force inclusion of libmissing.h by using -include compile time option for lex/yacc generated file, since there is no way to force an header to be included at the top of the these file, by overriding their target. Fix documentation generation warnings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7841 09c5ec92-17d4-0310-903a-819935f44dba docs/api/Makefile.am | 4 ++-- src/Makefile.am | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) commit 538c8c30035075dacb7bd275d7ce6b0169fea1d2 Author: Yoann Vandoorselaere Date: Mon Feb 20 12:22:26 2006 +0000 Fix compile warning on some architecture. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7840 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit b248443bb22794cbc46f13fedc9949c0eb00dade Author: Yoann Vandoorselaere Date: Mon Feb 20 02:59:04 2006 +0000 Update gnulib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7839 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/getaddrinfo.m4 | 13 ++++++++----- libmissing/m4/socklen.m4 | 30 +++++++++++++++--------------- libmissing/m4/sys_socket_h.m4 | 8 ++++++-- 3 files changed, 29 insertions(+), 22 deletions(-) commit 312e695a11516d3f12408743c24b626037fe8b65 Author: Yoann Vandoorselaere Date: Mon Feb 20 00:36:20 2006 +0000 Fix crash in case of successive call to prelude_init(), prelude_deinit(), then prelude_init() again. Always reinitialize prelude-options. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7837 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 3 --- src/prelude-option.c | 22 +++++++++++----------- 2 files changed, 11 insertions(+), 14 deletions(-) commit 63ba6f82dd2f5b6a0a1d0ad73d19e49fc0812272 Author: Yoann Vandoorselaere Date: Mon Feb 20 00:32:25 2006 +0000 Avoid using pthread_once_t since we can't re-initialize it in a portable way (fix solaris compilation problem). Create the key upon initialization. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7836 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-thread.h | 2 +- src/prelude-thread.c | 29 +++++++++++++++-------------- src/prelude.c | 2 +- 3 files changed, 17 insertions(+), 16 deletions(-) commit f1235e6dd1161e33141a089d48a1bd75d3617b3e Author: Yoann Vandoorselaere Date: Sun Feb 19 22:14:12 2006 +0000 Introduce --passwd and --passwd-file option for register and registration-server mode. Allow to specify one shot password on the command line, from a file, or from stdin. In case the site administrator deny the request, send a TLS alert to the requesting peer so that the user requesting registration get a "canceled" error. Improve error reporting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7833 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 284 +++++++++++++++++++++++++++----------- prelude-adduser/server.c | 97 +------------ prelude-adduser/server.h | 4 +- prelude-adduser/tls-register.c | 8 +- 4 files changed, 220 insertions(+), 173 deletions(-) commit 88cab767b2f007ecaa8312dffc497c3aaf0652b3 Author: Yoann Vandoorselaere Date: Sun Feb 19 17:03:51 2006 +0000 Show detailed error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7832 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/tls-register.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit c1f02fd5e1ef583b494fcfca70a13ead7aa1daa3 Author: Yoann Vandoorselaere Date: Sun Feb 19 12:56:46 2006 +0000 If appropriate, send an alert in handle_gnutls_error(), so that the peer get the reason why the communication failed (handshake error for example). Use handle_gnutls_error() for gnutls_bye() error handling. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7830 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 06e1dea406e25f9cb561de9bd55d78af8bcea58c Author: Yoann Vandoorselaere Date: Sun Feb 19 11:58:47 2006 +0000 Propagate prelude_io_read() error instead of defining our own. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7829 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2ddefb419704920d2e66bde7c1b66ea3e67dee53 Author: Yoann Vandoorselaere Date: Sat Feb 18 12:59:37 2006 +0000 Remove deprecated language keyword. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7828 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_perl.i | 2 +- bindings/libprelude_python.i | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) commit a661fcad8b13b00bd7fae1ca5f3e27cb9069fe01 Author: Yoann Vandoorselaere Date: Fri Feb 17 14:55:24 2006 +0000 Make perl bindings more robust. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7826 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_perl.i | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) commit d920a649bff4b80dfd4036b562876ebc88e51224 Author: Yoann Vandoorselaere Date: Thu Feb 16 23:27:08 2006 +0000 Fix idmef_path_get() typemap. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7825 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_perl.i | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 56db4f78586541ea888db2919ce871f2561e53a4 Author: Yoann Vandoorselaere Date: Thu Feb 16 16:29:20 2006 +0000 Fix parsing of string based broken down time. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7824 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 474c0024435db2f1b91055cb046485d439f96eb7 Author: Yoann Vandoorselaere Date: Wed Feb 15 09:33:10 2006 +0000 Only print 'Failover enabled:' header when the client did not disable failover. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7812 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 085e2ad317c4115a839b140bc2129ec843920746 Author: Yoann Vandoorselaere Date: Tue Feb 14 15:57:19 2006 +0000 Handle configuration file containing \r. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7806 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit c5b2454b5f550eb7bf7d87405f2e48432155e3f5 Author: Yoann Vandoorselaere Date: Mon Feb 13 21:02:26 2006 +0000 Remove obsolete declaration. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7797 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-msg.h | 4 ---- 1 file changed, 4 deletions(-) commit 8f2049d047b1aed95312a0c41c0bb2340e197e7c Author: Yoann Vandoorselaere Date: Mon Feb 13 15:35:31 2006 +0000 Return EOF once reading is finished. Return 0 otherwise, as advertised in the API doc. Thanks to Chet Luther for pointing out this. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7796 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 041021690680f96b58f956a962b2d99b2e5f4fd1 Author: Yoann Vandoorselaere Date: Sat Feb 11 08:22:59 2006 +0000 Make prelude_read_multiline2 return 0 on success, as advertised in the function documentation. Thanks to Chet Luther for pointing this out. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7780 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d544a26b70ee865feb0414ae189eb6812cff9595 Author: Yoann Vandoorselaere Date: Tue Feb 7 14:53:24 2006 +0000 Fix pthread_key usage bug. The key should not be destroyed from the key destruction callback, only the value should. Destroy the key from _prelude_thread_exit(), and reset thread_error_key_once so that the key is re-initialized if needed. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7762 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-thread.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 3fc09b72824e3a1b9f23b39329e7c73794bc4d02 Author: Yoann Vandoorselaere Date: Mon Feb 6 17:58:17 2006 +0000 Update documentation, NEWS, bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7749 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 14 ++ configure.in | 6 +- docs/api/libprelude-decl.txt | 489 +------------------------------------- docs/api/libprelude-sections.txt | 6 + docs/api/tmpl/prelude-client.sgml | 9 + docs/api/tmpl/prelude-io.sgml | 10 + libmissing/m4/extensions.m4 | 13 +- 7 files changed, 64 insertions(+), 483 deletions(-) commit 43f77f5013a9191338d474935f01d4866a0de1ce Author: Yoann Vandoorselaere Date: Mon Feb 6 16:12:58 2006 +0000 Fix typo. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7732 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a172e6a2f3efc595025ecf314b6845c5cd53e95d Author: Yoann Vandoorselaere Date: Mon Feb 6 16:07:23 2006 +0000 Avoid dup error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7731 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 8373a575948b283ee50786de03e4816f982bc07a Author: Yoann Vandoorselaere Date: Mon Feb 6 15:27:52 2006 +0000 Fix error source check. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7727 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 1cf89e747a835bdad83b1bf55524706806e5e87c Author: Yoann Vandoorselaere Date: Mon Feb 6 15:15:18 2006 +0000 Remove deprecated internal error code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7726 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/err-codes.h.in | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit 513a9143237c402662fc554be929573a387fa827 Author: Yoann Vandoorselaere Date: Mon Feb 6 15:14:52 2006 +0000 Mark prelude_client_is_setup_needed(), prelude_client_print_setup_error(), prelude_client_get_setup_error() as deprecated. Error reporting is now handled through the standard verbose error code. Simplified profile errors. In order to avoid duplicate error output for application currently using prelude_client_is_setup_needed() in combination with prelude_client_print_setup_error(), make sure prelude_client_is_setup_needed() always return FALSE. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7725 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 12 +++++--- src/prelude-client.c | 68 +++++++++++++++++++++----------------------- 2 files changed, 41 insertions(+), 39 deletions(-) commit 1910c0e1400815b130ef8b5597880b4e6f96dfea Author: Yoann Vandoorselaere Date: Mon Feb 6 15:08:30 2006 +0000 Fix config_open() error handling. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7724 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 77e221d12baf68b63b283b4df3032da708aa33eb Author: Yoann Vandoorselaere Date: Mon Feb 6 15:07:22 2006 +0000 Verbose error reporting. Use PRELUDE_ERROR_PROFILE error code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7723 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit be3ec59be8fdb6b9cbea88e4e6b40992bea70189 Author: Yoann Vandoorselaere Date: Mon Feb 6 15:06:21 2006 +0000 Verbose error reporting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7722 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) commit 6f13bf4c8cb15bec7f92ae69b2e033eeb86df2ac Author: Yoann Vandoorselaere Date: Mon Feb 6 15:05:06 2006 +0000 Handle profile error properly, now only through the PRELUDE_ERROR_PROFILE error code. Log a warning in case of failover failure. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7721 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) commit 20504ad27e614b8ef23c9b223975ab29b8e0eb8f Author: Yoann Vandoorselaere Date: Mon Feb 6 15:04:03 2006 +0000 More verbose error reporting. TLS error code cleanup. Make sure we return PRELUDE_ERROR_PROFILE for profile specific error, so that it can be handled by the upper layer. Fix call to prelude_io_is_error_fatal(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7720 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit dc3a54d00ae49752b6f114e21b4aa0ed2d71ec9a Author: Yoann Vandoorselaere Date: Mon Feb 6 15:03:09 2006 +0000 More verbose error reporting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7719 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c2db73f04814160f0ed54a52dc7a074a8507f366 Author: Yoann Vandoorselaere Date: Mon Feb 6 15:02:46 2006 +0000 Verbose error reporting. TLS error code cleanup. Make sure we return PRELUDE_ERROR_PROFILE for profile specific error, so that it can be handled by the upper layer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7718 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit c4cb3606b5e2bab96686cbabcaf8d333a463c519 Author: Yoann Vandoorselaere Date: Mon Feb 6 15:01:42 2006 +0000 Verbose error reporting. TLS error code cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7717 09c5ec92-17d4-0310-903a-819935f44dba src/tls-util.c | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) commit ee48efc64abac1604689dfcfdf56523b3641f493 Author: Yoann Vandoorselaere Date: Mon Feb 6 15:00:19 2006 +0000 More error handling work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7716 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 48 ++++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 20 deletions(-) commit 07baa73b18bd83d14e00ca9b019f43300009c722 Author: Yoann Vandoorselaere Date: Mon Feb 6 02:21:28 2006 +0000 Make distinction between real EOF, and gnutls EOF on read. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7708 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 7947cb465bfd86de816fa345e86afca43164ecee Author: Yoann Vandoorselaere Date: Mon Feb 6 02:14:52 2006 +0000 Library failure if we are at init time and get PRELUDE_ERROR_INSUFFICIENT_CREDENTIALS. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7707 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit b973931ded9355d630742d646e2ab4ddb92b62c9 Author: Yoann Vandoorselaere Date: Mon Feb 6 01:21:02 2006 +0000 Use newer verbose error reporting capability. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7706 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 86 +++++++++++++++++++++++++++------------------------- 1 file changed, 44 insertions(+), 42 deletions(-) commit 1add16e21fc741b7a1c8f6294d01bd4fdd8ff54b Author: Yoann Vandoorselaere Date: Mon Feb 6 01:18:30 2006 +0000 Return PRELUDE_BOOL_TRUE / PRELUDE_BOOL_FALSE in place of TRUE / FALSE. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7705 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/prelude-error.h.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f2bfbaf21d58fe3c3e21c2196ce3bb5cff49e801 Author: Yoann Vandoorselaere Date: Mon Feb 6 01:15:38 2006 +0000 Rename _prelude_error_verbose_common() to prelude_error_verbose_make_v(). Fix invalid conversion from int to prelude_bool_t (#130). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7704 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/prelude-error.h.in | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 44bc6b420aa503a6a006f390caf7a16a841e8f48 Author: Yoann Vandoorselaere Date: Wed Feb 1 14:34:07 2006 +0000 Fix OpenBSD build error due to ENOTSUP not being defined. Thanks to Raúl Collantes for pointing this out. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7668 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 4 ++++ 1 file changed, 4 insertions(+) commit 8628fe29ffaaf8e45c44c132d150c1ec1e91cd0d Author: Yoann Vandoorselaere Date: Mon Jan 30 13:35:10 2006 +0000 Ooops s/2005/2006. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7655 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f054f2e1e0ca49b99f55528c013449354825ee43 Author: Yoann Vandoorselaere Date: Mon Jan 30 13:18:20 2006 +0000 Update NEWS, documentation. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7652 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 12 ++++++++++++ configure.in | 8 ++++---- docs/api/libprelude-decl.txt | 22 +++++++++++++++++++++- docs/api/libprelude-docs.sgml | 1 - 4 files changed, 37 insertions(+), 6 deletions(-) commit eca0a76e89141750440cb6ff271806baaa9af026 Author: Yoann Vandoorselaere Date: Mon Jan 30 13:12:11 2006 +0000 Update gnulib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7651 09c5ec92-17d4-0310-903a-819935f44dba libmissing/gai_strerror.c | 6 ++++-- libmissing/getaddrinfo.h | 16 ++++++++++++--- libmissing/m4/getaddrinfo.m4 | 46 +++++++++++++++++++++++++++++++++++++++----- libmissing/m4/stdbool.m4 | 11 ++++++++--- libmissing/socket_.h | 16 +++++++++++++++ libmissing/stdbool_.h | 36 +++++++++++++++++++--------------- 6 files changed, 103 insertions(+), 28 deletions(-) commit 4cb141655fee14c6fe0018c59acadfc54d50d803 Author: Yoann Vandoorselaere Date: Mon Jan 30 12:50:31 2006 +0000 Introduce prelude_client_get_setup_error(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7650 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 2 + src/prelude-client.c | 90 ++++++++++++++++++++++++++++---------------- 2 files changed, 59 insertions(+), 33 deletions(-) commit 8277880612636cce7aad2ab417869d947f524a99 Author: Yoann Vandoorselaere Date: Mon Jan 30 11:36:55 2006 +0000 Keep using ECONNRESET in case of GNUTLS_E_UNEXPECTED_PACKET_LENGTH git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7649 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 88c1f8dde14a7bfbd6fca87bcb8fa8698646218e Author: Yoann Vandoorselaere Date: Mon Jan 30 11:33:49 2006 +0000 Verbose error reporting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7648 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit e28307f6bd42d16ca4abbf2b148f04267dce6961 Author: Yoann Vandoorselaere Date: Sun Jan 29 19:09:12 2006 +0000 Variable mixup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7647 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit c67a9287b3b6a0087595360406677890b2a020d0 Author: Yoann Vandoorselaere Date: Sun Jan 29 13:05:22 2006 +0000 Fix distcheck. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7646 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4927f482b7b0440f4708a61daa8f87aa797e4313 Author: Yoann Vandoorselaere Date: Sat Jan 28 14:53:58 2006 +0000 More prelude-io error handling work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7642 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) commit 94fab024a328f1e369132da3efccafa4c73ebdbd Author: Yoann Vandoorselaere Date: Sat Jan 28 14:52:17 2006 +0000 Implement prelude_io_is_error_fatal(). More error handling work. Return verbose error. Make sure the caller get TLS alert. Deinitialize TLS on fatal error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7641 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-io.h | 1 + src/libprelude-error/err-codes.h.in | 5 +- src/prelude-io.c | 140 +++++++++++++++++++++++------------- 3 files changed, 95 insertions(+), 51 deletions(-) commit cd67990b087c06604b7672438008ccd4f23a08f0 Author: Yoann Vandoorselaere Date: Sat Jan 28 01:44:03 2006 +0000 Formatting trick. Only print the setup message in case we're not going to return the error to the upper layer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7640 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 01af637f4e39a93788031066a8f3318a1c849472 Author: Yoann Vandoorselaere Date: Sat Jan 28 01:33:50 2006 +0000 Use gnutls_certificate_verify_peers2() instead of deprecated gnutls_certificate_verify_peers(). More certificate validation. Send a fatal TLS alert to the peer on failure in order to notify it of the failure reason. Verbose error reporting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7639 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 78 ++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 26 deletions(-) commit 52f1b0055b8c33172e72c2cd8e30d6e76b8f447b Author: Yoann Vandoorselaere Date: Sat Jan 28 00:24:05 2006 +0000 Error beautification. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7638 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99fc5e8263c96721b38348a2505220c90a5ca5ee Author: Yoann Vandoorselaere Date: Sat Jan 28 00:22:56 2006 +0000 Verbose error reporting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7637 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 1f4f4d07b678d9e067a3c15d8f8b347bd7b41bc0 Author: Yoann Vandoorselaere Date: Fri Jan 27 01:58:31 2006 +0000 Free error ressource on prelude_deinit(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7633 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-thread.h | 2 ++ src/prelude-thread.c | 12 ++++++++++++ src/prelude.c | 2 ++ 3 files changed, 16 insertions(+) commit 6d96d372d7b588d61daaf84bb8dfb00b0b2d56d2 Author: Yoann Vandoorselaere Date: Wed Jan 25 15:16:00 2006 +0000 Use prelude_error_verbose(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7632 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit a7e8a1bf7fa2774d112b0b3a78d9e7b3257f2b53 Author: Yoann Vandoorselaere Date: Wed Jan 25 14:02:42 2006 +0000 Error reporting is propagated, and reported by prelude-connection-pool. Much improved error message. Avoid un-necessary noise. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7631 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 11 ++++++----- src/prelude-connection.c | 42 ++++++++++++++++++++++++------------------ src/tls-auth.c | 41 +++++++++++++++-------------------------- 3 files changed, 45 insertions(+), 49 deletions(-) commit cc8653c218dd58d9ab0c855c090e33d3c14bf7e6 Author: Yoann Vandoorselaere Date: Wed Jan 25 12:00:55 2006 +0000 Install prelude-thread.h, no required by prelude-error.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7628 09c5ec92-17d4-0310-903a-819935f44dba src/include/Makefile.am | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 190907250ca3ecf3af66023174ee5fff3af790b5 Author: Yoann Vandoorselaere Date: Wed Jan 25 11:52:41 2006 +0000 Update gnulib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7627 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 19 +++++++++++++++++ libmissing/inet_ntop.h | 6 ++---- libmissing/m4/gnulib-comp.m4 | 6 +++++- libmissing/m4/socklen.m4 | 22 ++++++++++++++------ libmissing/m4/stdbool.m4 | 24 +++++++++++++++++++++- libmissing/m4/sys_socket_h.m4 | 19 +++++++++++++++++ libmissing/regex_internal.h | 6 +++++- libmissing/socket_.h | 48 +++++++++++++++++++++++++++++++++++++++++++ libmissing/stdbool_.h | 24 ++++++++++++++++++---- libmissing/strndup.c | 23 ++++++++++++++++----- libmissing/strnlen.c | 27 ++++++------------------ libmissing/vasnprintf.c | 46 +++++++++++++++++++++-------------------- 12 files changed, 205 insertions(+), 65 deletions(-) commit bff77d341a249fb40a653e1177d1a5a9181da352 Author: Yoann Vandoorselaere Date: Wed Jan 25 11:03:11 2006 +0000 Verbose error reporting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7626 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) commit a6ab7222194c344cf9ceaff26e6cff7182d65fa7 Author: Yoann Vandoorselaere Date: Wed Jan 25 11:01:43 2006 +0000 Take care of verbose error, even when code is PRELUDE_ERROR_SYSTEM_ERROR. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7625 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/strerror.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 03ec5c8c969648c3a2d8e4320eb2a4237701e08c Author: Yoann Vandoorselaere Date: Wed Jan 25 10:54:43 2006 +0000 Better error formatting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7624 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 34027424af867f1fe05026873bf8c0807eabd830 Author: Yoann Vandoorselaere Date: Wed Jan 25 10:49:46 2006 +0000 Don't waste usefull screen space when there is no source defined. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7623 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/perror.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit b1333fcbb790f9207f658e603533be4dc308ab74 Author: Yoann Vandoorselaere Date: Wed Jan 25 10:12:22 2006 +0000 Remove old warning, that is now reported through prelude_error_verbose(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7622 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 2 -- 1 file changed, 2 deletions(-) commit aa04f29d3f3c99c7bcac79a702ea7000560a75f3 Author: Yoann Vandoorselaere Date: Wed Jan 25 00:12:51 2006 +0000 Improve error reporting. Really thread GNUTLS_E_UNEXPECTED_PACKET_LENGTH as EOF. Use GNUTLS_SHUT_WR instead of GNUTLS_SHUT_RDWR since we don't need peer confirmation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7621 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit 30862d5958a44578d97feda6f94c89ae27f8c488 Author: Yoann Vandoorselaere Date: Tue Jan 24 19:49:29 2006 +0000 Verbose REGEXP compilation error reporting. Early criterion operator check. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7620 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) commit d752e264758ad8495e0d1e832de7bdf81e99c586 Author: Yoann Vandoorselaere Date: Tue Jan 24 19:37:20 2006 +0000 Verbose operator mismatch error reporting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7619 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 52 +++++++++++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 20 deletions(-) commit a23305c5ea7893788db761e6674292ae512942b8 Author: Yoann Vandoorselaere Date: Tue Jan 24 12:37:06 2006 +0000 Report verbose parser error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7618 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2ba8895c80a9bf8d1f90126d59bf96cef479334c Author: Yoann Vandoorselaere Date: Tue Jan 24 11:43:58 2006 +0000 Verbose error messages. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7617 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 90108f17ee9179f4f19a265b9ace15b774bc1834 Author: Yoann Vandoorselaere Date: Tue Jan 24 11:35:40 2006 +0000 Verbose error message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7616 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) commit 0655c7081c8d8b144b63acc0a0a6e109cf7a8a37 Author: Yoann Vandoorselaere Date: Tue Jan 24 11:05:34 2006 +0000 Improve error message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7615 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ae0d4b3d7d59d9ed89789d8c3c90da8a839688ec Author: Yoann Vandoorselaere Date: Tue Jan 24 11:05:09 2006 +0000 Use prelude_error_verbose() to point out the errornous element name. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7614 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb6722df8a16d0e2f11f58148133c39930000e4e Author: Yoann Vandoorselaere Date: Tue Jan 24 11:01:50 2006 +0000 Introduce prelude_error_verbose() and prelude_error_verbose_make() allowing to set verbose error message containing more details. Add prelude_error_is_verbose() to check whether a detailed explaination for the error is available. We use one of the error code reserved bit to define whether the error is verbose or not. prelude_strerror() is modified to return the verbose error, if available. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7613 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/prelude-error.h.in | 76 ++++++++++++++++++++++++++++++++- src/libprelude-error/strerror.c | 5 ++- 2 files changed, 79 insertions(+), 2 deletions(-) commit 8085c8c849acfa3da108aed18e6d835b1f9d08e0 Author: Yoann Vandoorselaere Date: Mon Jan 23 15:47:53 2006 +0000 Implement _prelude_thread_set_error() and _prelude_thread_get_error(). These might be used internally to set per thread detailed error message. prelude_strerror() will gather the detailed message if available. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7612 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-thread.h | 3 +++ src/prelude-thread.c | 60 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) commit b7cb7a02d518e7c675f6ade2127623cdb13c9270 Author: Yoann Vandoorselaere Date: Mon Jan 16 09:49:37 2006 +0000 Implement prelude_read_multiline2(), using a variable length prelude_string_t object as the output buffer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7602 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 36 ++++++++++++++++++++++++++++++++++++ src/include/common.h | 2 ++ 2 files changed, 38 insertions(+) commit 00415d17cb534eccc99010f2d8af5e11782fa6ee Author: Yoann Vandoorselaere Date: Mon Jan 9 11:45:29 2006 +0000 Version bump. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7581 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 18 +- configure.in | 4 +- docs/api/libprelude-decl.txt | 455 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 473 insertions(+), 4 deletions(-) commit cdd0acca2c4cd1e2fc23e93dd8d23bf7b9b1c17d Author: Yoann Vandoorselaere Date: Sun Jan 8 18:04:23 2006 +0000 Fix libgnutls-extra SRP check. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7578 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6ee0da5532abf858f0c0651f7ff36e5ad94db018 Author: Yoann Vandoorselaere Date: Sun Jan 8 13:45:23 2006 +0000 Make prelude-adduser use GnuTLS anonymous authentication in case SRP is not available. This is less secure than SRP since it is vulnerable to a man in the middle attack (although mitigated by the use of the one-shot password), but is becoming a requirement since some distribution disable SRP support because of patent issue. We keep using SRP by default if both prelude-adduser instance has it. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7576 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 24 +++------ prelude-adduser/prelude-adduser.c | 62 +++++++++++++++++++--- prelude-adduser/server.c | 107 +++++++++++++++++++++++++++++++------- 3 files changed, 151 insertions(+), 42 deletions(-) commit 1c271411aebb5a961cfbe24b0fbb9e7a9f1109d0 Author: Yoann Vandoorselaere Date: Sun Jan 8 12:42:34 2006 +0000 Fix a crash if _prelude_generic_optlist is NULL. Happen when specifying, for example, prelude-adduser option. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7575 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 3 +++ 1 file changed, 3 insertions(+) commit 6614bd1b4b89e1b482f1eda834f0c0f31849cb6b Author: Yoann Vandoorselaere Date: Sat Jan 7 16:18:26 2006 +0000 Implement analyzer revocation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7574 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 52 ++++++++++++++++++ prelude-adduser/tls-register.c | 109 ++++++++++++++++++++++++++++++++------ prelude-adduser/tls-register.h | 3 ++ 3 files changed, 149 insertions(+), 15 deletions(-) commit 98e121a37453c6639f2960e7a0dbc0ccf1a36546 Author: Yoann Vandoorselaere Date: Fri Jan 6 18:50:10 2006 +0000 Version bump. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7572 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 15 +++++++++++++++ configure.in | 6 +++--- docs/api/libprelude-decl.txt | 2 +- 3 files changed, 19 insertions(+), 4 deletions(-) commit 885cff64540648fc5bd0213c1e6322f8309cd242 Author: Yoann Vandoorselaere Date: Fri Jan 6 17:48:35 2006 +0000 Gnulib addition. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7571 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/socklen.m4 | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit adaa6cccc6786c2c0561e09a5c98873d96522a4c Author: Yoann Vandoorselaere Date: Fri Jan 6 17:47:41 2006 +0000 GnuLib code update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7570 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 2 +- libmissing/m4/gettext.m4 | 549 ----------------------------------------- libmissing/m4/glibc2.m4 | 30 --- libmissing/m4/glibc21.m4 | 30 --- libmissing/m4/gnulib-cache.m4 | 6 +- libmissing/m4/gnulib-comp.m4 | 21 -- libmissing/m4/iconv.m4 | 101 -------- libmissing/m4/intdiv0.m4 | 70 ------ libmissing/m4/intmax.m4 | 30 --- libmissing/m4/inttypes-pri.m4 | 30 --- libmissing/m4/inttypes.m4 | 25 -- libmissing/m4/isc-posix.m4 | 24 -- libmissing/m4/lcmessage.m4 | 30 --- libmissing/m4/lib-ld.m4 | 110 --------- libmissing/m4/lib-link.m4 | 554 ------------------------------------------ libmissing/m4/lib-prefix.m4 | 185 -------------- libmissing/m4/nls.m4 | 51 ---- libmissing/m4/po.m4 | 429 -------------------------------- libmissing/m4/printf-posix.m4 | 44 ---- libmissing/m4/progtest.m4 | 92 ------- libmissing/m4/uintmax_t.m4 | 30 --- libmissing/m4/ulonglong.m4 | 23 -- 22 files changed, 4 insertions(+), 2462 deletions(-) commit da7b3f3a84bc012331a36d2079ba1ac1edb54ad8 Author: Yoann Vandoorselaere Date: Fri Jan 6 17:46:51 2006 +0000 Revert yesterday change, which had the side effect of creating another warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7569 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a888052344b28c5c7bebd401615972dff3ccda2e Author: Yoann Vandoorselaere Date: Thu Jan 5 15:11:12 2006 +0000 Fix possible warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7566 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 00cb02ccf1bf8f48bdcae70e0dfe475ddb607dce Author: Yoann Vandoorselaere Date: Thu Jan 5 14:01:16 2006 +0000 Correct reading of source_id on option reply. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7565 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1e7ad4662d3aa9fc6b4d5ac4d0a41edaefad8a19 Author: Yoann Vandoorselaere Date: Thu Jan 5 13:22:36 2006 +0000 warning fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7564 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-thread.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 276f93116a92409796fb5c5b26d39a1b0dab8380 Author: Yoann Vandoorselaere Date: Thu Jan 5 13:04:25 2006 +0000 Unsigned. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7563 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9f2c31c6212ce00a642529cc60a24f8c2e545ccf Author: Yoann Vandoorselaere Date: Thu Jan 5 00:39:36 2006 +0000 Avoid modifying argv array, move unhandled option at the end, return the index to the first unhandled parameter. This should fix #116. Avoid the use of C99 specific code, when possible. Handle special -- option character. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7562 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 134 +++++++++++++++++++++++++++++++-------------------- src/prelude.c | 15 ------ 2 files changed, 83 insertions(+), 66 deletions(-) commit 61d1f4709c3263b053b2e4f7608cf6066969a9b3 Author: Yoann Vandoorselaere Date: Tue Jan 3 23:41:04 2006 +0000 Clearly state that linking from a GPL compatible program is okay. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7548 09c5ec92-17d4-0310-903a-819935f44dba LICENSE.README | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit b3b0413c0ac73d55fb19093783e616e8b89d2d2a Author: Yoann Vandoorselaere Date: Fri Dec 16 16:42:40 2005 +0000 Include netinet/in.h to fix OpenBSD / FreeBSD build. Thanks John R. Shannon for pointing out this. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7528 09c5ec92-17d4-0310-903a-819935f44dba src/include/common.h | 1 + 1 file changed, 1 insertion(+) commit 14e7b0268d4d52ca6c8683cc0ab731f56ca6c754 Author: Yoann Vandoorselaere Date: Tue Dec 13 19:50:08 2005 +0000 Update documentation, NEWS. Bump soname. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7519 09c5ec92-17d4-0310-903a-819935f44dba INSTALL | 69 ++++++++++++++++++++++++-------------------- NEWS | 27 +++++++++++++++++ configure.in | 6 ++-- docs/api/libprelude-decl.txt | 25 ++++++++++++---- libmissing/m4/gnulib-comp.m4 | 2 +- 5 files changed, 89 insertions(+), 40 deletions(-) commit 2cfff05c5aeeeb7e308e02cf72d644e77a414391 Author: Yoann Vandoorselaere Date: Sat Dec 10 11:23:59 2005 +0000 Return if context already exist. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7507 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 3 +++ 1 file changed, 3 insertions(+) commit 1eb6ef8951e192eabf3c6e892d653cb70fdb31ec Author: Yoann Vandoorselaere Date: Sat Dec 10 11:06:43 2005 +0000 Buffer output for prelude_option_print(), this shall make it faster. Implement prelude_option_search_context(). No automated context creation on set. The caller might be to lookup it's own context by using prelude_option_search_context(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7506 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-option.h | 2 + src/prelude-option.c | 124 ++++++++++++++++++++++--------------------- 2 files changed, 66 insertions(+), 60 deletions(-) commit 535bc12940bdab4af3ccffdb8f83030e1505085d Author: Yoann Vandoorselaere Date: Thu Dec 8 12:11:44 2005 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7504 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 18 ++- libmissing/getaddrinfo.c | 62 +++++++---- libmissing/getaddrinfo.h | 73 +++++++----- libmissing/inet_ntop.c | 258 ++++++++++++++++++++++++------------------- libmissing/inet_ntop.h | 14 ++- libmissing/m4/getaddrinfo.m4 | 23 +++- libmissing/m4/gnulib-comp.m4 | 25 +++-- libmissing/m4/inet_ntop.m4 | 2 + libmissing/m4/mbchar.m4 | 15 ++- libmissing/m4/mbiter.m4 | 5 +- libmissing/m4/mktime.m4 | 17 +-- libmissing/m4/pathmax.m4 | 4 +- libmissing/m4/regex.m4 | 57 +++++++++- libmissing/m4/stdbool.m4 | 11 +- libmissing/m4/strcase.m4 | 5 +- libmissing/m4/strcasestr.m4 | 5 +- libmissing/pathmax.h | 4 +- libmissing/regcomp.c | 10 +- libmissing/regex_internal.c | 8 +- libmissing/regex_internal.h | 32 ++---- libmissing/regexec.c | 2 +- libmissing/strcasecmp.c | 9 +- libmissing/strncasecmp.c | 11 +- 23 files changed, 415 insertions(+), 255 deletions(-) commit a0e34ae98541620e7dd242d04fbf6521a1c51958 Author: Yoann Vandoorselaere Date: Sun Nov 27 12:40:05 2005 +0000 Trying to make automated build work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7454 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 2 ++ 1 file changed, 2 insertions(+) commit 25f8e09271565c78526350cbe941343202d0ae3d Author: Yoann Vandoorselaere Date: Wed Nov 9 13:56:57 2005 +0000 Rename internal _idmef_message_assign_messageid() to _idmef_message_assign_missing(). Modify _idmef_message_assign_missing() so that it take care of setting IDMEF CreateTime in case it was not set. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7396 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 22 +++++++++++++++++++++- src/include/common.h | 2 +- src/prelude-client.c | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) commit 58b2f090411b64135b2890dabe5fead2fad7456d Author: Yoann Vandoorselaere Date: Fri Nov 4 14:06:06 2005 +0000 Implement prelude_client_profile_get_tls_server_crl_filename() for future CRL handling. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7393 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client-profile.h | 2 ++ src/prelude-client-profile.c | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) commit 69477aeb8c9f8f34d5590bf8195d11e9288571d8 Author: Yoann Vandoorselaere Date: Sat Oct 29 11:01:31 2005 +0000 Fix a python assertion in case a SWIG returned analyzerID (C 64 bits) is converted to Python int in place of Python long, which can happen since SWIG will return a Python integer if the converted value is smaller than ULONG_MIN. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7387 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_python.i | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 2c7e957df150e4b25c1e38bfdb5cb9ad4b313508 Author: Yoann Vandoorselaere Date: Sat Oct 29 10:08:25 2005 +0000 When separating option path into elements, make sure we don't handle dot in option context name as a valid option separator. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7386 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 52 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 9 deletions(-) commit 36ead377bc9cb94bb6e35c56b4d5b5f1daaf5710 Author: Yoann Vandoorselaere Date: Fri Oct 7 13:53:00 2005 +0000 Patch from Daniel Black to fix Perl bindings Makefile generated with DESTDIR appended twice. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7360 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Makefile.PL.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c9cf5aede9223af8d148e7c7caa2c981017e863f Author: Yoann Vandoorselaere Date: Mon Oct 3 09:17:08 2005 +0000 Oops. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7349 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5eeb657ab877acbd55c9023d1d1d40f2fa2b3b74 Author: Yoann Vandoorselaere Date: Mon Oct 3 09:08:04 2005 +0000 Patch from Daniel Black to workaround invalid library run path added through MakeMaker generated Makefile. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7347 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit de0f51fa476d476897f2c50112e04f9cd0407713 Author: Yoann Vandoorselaere Date: Sat Oct 1 17:34:08 2005 +0000 When compiling against recent GnuTLS version, don't link prelude-adduser to libgnutls-extra since, SRP symbols were moved to libgnutls. If no SRP symbol can be found in either gnutls or gnutls-extra, abort with an error explaining the user what's going on: "Your operating system distribution provides the GnuTLS library. Unfortunately, the provided binary lacks support for the SRP protocol. If you are seeing this message, it probably mean you're running on Redhat Fedora, which distributes a stripped down version of the GnuTLS library. Unfortunately, removing part of a library's API break certain applications relying on the library. Solutions: - Install GnuTLS from http://www.gnutls.org - File a Redhat ticket on https://bugzilla.redhat.com/" git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7345 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 58 +++++++++++++++++++++++++++++---------- prelude-adduser/Makefile.am | 4 +-- prelude-adduser/prelude-adduser.c | 3 ++ 3 files changed, 49 insertions(+), 16 deletions(-) commit 16cff1ae27175ea067c97e8f96e46c00157eb375 Author: Yoann Vandoorselaere Date: Thu Sep 29 16:06:41 2005 +0000 Set SO_KEEPALIVE. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7343 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit d947799d8d96b4825f95170e5e3893b72d723c2e Author: Yoann Vandoorselaere Date: Mon Sep 26 00:27:29 2005 +0000 We can't handle __FUNCTION__ as a macro and check conditionally whether it is available. Thus revert, to an autoconf check to handle __FUNCTION__ / __func__. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7330 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 1 + configure.in | 30 ++++++++++++++++++++++++++++++ src/include/prelude-log.h | 15 ++++----------- 3 files changed, 35 insertions(+), 11 deletions(-) commit 76428cb6e63bb02c1df0dc14262b7863cc884198 Author: Yoann Vandoorselaere Date: Tue Sep 20 20:08:58 2005 +0000 Bump to 0.9.0. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7225 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 7 +++++++ configure.in | 2 +- docs/api/libprelude-decl.txt | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) commit fd484a81df1e2dcc60b80c3f077fcfe5b3a09548 Author: Yoann Vandoorselaere Date: Tue Sep 20 01:15:33 2005 +0000 Better GnuLib fix for GCC compiler problem with regex_internal. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7224 09c5ec92-17d4-0310-903a-819935f44dba libmissing/regcomp.c | 10 +++++----- libmissing/regex_internal.c | 8 ++++---- libmissing/regex_internal.h | 17 ++++++++++++----- libmissing/regexec.c | 2 +- 4 files changed, 22 insertions(+), 15 deletions(-) commit 3127bf8ace4bafc33ad7f1ece193ae8bd0584b57 Author: Yoann Vandoorselaere Date: Tue Sep 20 00:22:08 2005 +0000 Workaround GCC 2.9.4 crash. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7223 09c5ec92-17d4-0310-903a-819935f44dba libmissing/regex_internal.h | 4 ---- 1 file changed, 4 deletions(-) commit 779ac89863b629a6b3349bf6c4b8b2164b0c7f6c Author: Yoann Vandoorselaere Date: Mon Sep 19 20:19:55 2005 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7219 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 2 +- libmissing/ftw.c | 7 +------ libmissing/getaddrinfo.c | 2 +- libmissing/inet_ntop.c | 2 +- libmissing/m4/gnulib-cache.m4 | 7 +++---- libmissing/m4/gnulib-comp.m4 | 5 +++-- libmissing/m4/pathmax.m4 | 13 ++++++++++++ libmissing/malloc.c | 2 +- libmissing/mktime.c | 3 +-- libmissing/pathmax.h | 49 +++++++++++++++++++++++++++++++++++++++++++ libmissing/regex.c | 2 +- libmissing/regex_internal.h | 14 +++++++++++++ libmissing/strncasecmp.c | 2 +- libmissing/strndup.c | 2 +- libmissing/strnlen.c | 2 +- libmissing/strnlen1.c | 2 +- libmissing/strsep.c | 2 +- libmissing/time_r.c | 2 +- src/include/libmissing.h | 11 +--------- 19 files changed, 96 insertions(+), 35 deletions(-) commit 6536cfa0be91663c42083ff8ff43b98183ae6b39 Author: Yoann Vandoorselaere Date: Sat Sep 17 16:43:34 2005 +0000 Argument checking for bindings. Cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7206 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 98 ++++++++++++++++++++++++++++++++++++++++++++ bindings/libprelude_perl.i | 54 ++++-------------------- bindings/libprelude_python.i | 52 +++-------------------- 3 files changed, 112 insertions(+), 92 deletions(-) commit 75f2bee2675c41e5ff9db8f6157fe57ffe581882 Author: Yoann Vandoorselaere Date: Thu Sep 15 17:11:45 2005 +0000 Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7201 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 15 +++++++++++++++ configure.in | 2 +- docs/api/libprelude-decl.txt | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) commit 353099aa2191387ad60d43fd3fd0fd085764252f Author: Yoann Vandoorselaere Date: Thu Sep 15 17:09:34 2005 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7200 09c5ec92-17d4-0310-903a-819935f44dba libmissing/gai_strerror.c | 9 ++++++++- libmissing/getaddrinfo.c | 30 +++++++++++++++++++++++------- libmissing/getaddrinfo.h | 4 ++-- libmissing/m4/getaddrinfo.m4 | 4 ++-- 4 files changed, 35 insertions(+), 12 deletions(-) commit f32374a4d80ea3b2bd9bb89b3fbb2fd215182af0 Author: Yoann Vandoorselaere Date: Thu Sep 15 13:28:19 2005 +0000 Fix warning. Implement swig_perl_raise_error(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7195 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_perl.i | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit d9c640d8fed26aafbe44966cc781eb2862ea0240 Author: Yoann Vandoorselaere Date: Thu Sep 15 11:57:44 2005 +0000 Fix for system where __FUNCTION__ is not available. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7189 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit c6e8b87244af3a5b77dfa7d9b8c8ef6eaaf11661 Author: Yoann Vandoorselaere Date: Thu Sep 15 11:57:05 2005 +0000 Fix warnings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7188 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_perl.i | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0bb2ffb25a1a84cf66b5c2ea5d5fdbdafd84fc45 Author: Yoann Vandoorselaere Date: Thu Sep 15 11:56:33 2005 +0000 Compiler used to build Perl module might be different than compiler used to build libprelude. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7187 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit af520cab12f2be014d48d1bea21c7eb88426fef8 Author: Yoann Vandoorselaere Date: Thu Sep 15 11:37:39 2005 +0000 Missing config.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7186 09c5ec92-17d4-0310-903a-819935f44dba src/ntp.c | 2 ++ 1 file changed, 2 insertions(+) commit 0abb88fc2e6197625c482e25965edc96c0f69864 Author: Yoann Vandoorselaere Date: Thu Sep 15 11:35:43 2005 +0000 Include config.h where missing. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7185 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | Bin 77619 -> 77639 bytes src/idmef-message-write.c | 2 ++ src/idmef-value.c | 2 ++ src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 1 + .../GenerateIDMEFMessageWriteC.pm | 2 ++ src/prelude-hash.c | 2 ++ src/prelude-ident.c | 2 ++ src/prelude-msg.c | 2 ++ src/prelude-msgbuf.c | 2 ++ src/prelude-timer.c | 2 ++ src/tls-auth.c | 2 ++ src/tls-util.c | 2 ++ 12 files changed, 21 insertions(+) commit d865ac5cd299d09159cdb439cc4170ffcd9d1404 Author: Yoann Vandoorselaere Date: Thu Sep 15 11:34:33 2005 +0000 Add some cast to avoid platform dependant warnings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7184 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 97a55b891da76324af031cace0dd2cbb0fd7a1a5 Author: Yoann Vandoorselaere Date: Thu Sep 15 11:34:09 2005 +0000 Add some cast to avoid platform dependant warnings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7183 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 4f8895deb74d5c4dec22d12f6a167b1cd8333db4 Author: Yoann Vandoorselaere Date: Wed Sep 14 23:22:38 2005 +0000 Handle idmef_additional_data_byte_string_*() correctly. Fix prelude_string_t to perl string conversion problem with the Perl bindings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7182 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_perl.i | 23 ++++++++++++++++ bindings/libprelude_python.i | 63 +++++++++++++++++++++++++++++++++++++++----- 2 files changed, 79 insertions(+), 7 deletions(-) commit a03caf0380d338df8d0d6d71d12fe4b73c77db4b Author: Yoann Vandoorselaere Date: Wed Sep 14 23:10:34 2005 +0000 Stop generating bindings for prelude-string. String operation are supposed to be handled by the target language. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7181 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 918d0ea76b05793b10de8bc3e795d1b8d2490d7b Author: Yoann Vandoorselaere Date: Wed Sep 14 14:58:20 2005 +0000 Build fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7179 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Makefile.PL.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 43dacaafbc660be915d03e151fe3f01d8c165ee8 Author: Yoann Vandoorselaere Date: Mon Sep 12 14:41:26 2005 +0000 Slight improvement. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7168 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit 3ab32c71f65d55ec05d716b17635a14391c2a18b Author: Yoann Vandoorselaere Date: Mon Sep 12 00:49:06 2005 +0000 Enforce a 1mb limit on input message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7165 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit af943e2c6e7597355bceca135b37965338994bdf Author: Yoann Vandoorselaere Date: Mon Sep 12 00:47:25 2005 +0000 Add some FD_SETSIZE assertion(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7164 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 436bbebb26dc06b435142be63861461a7ddf8a14 Author: Yoann Vandoorselaere Date: Sun Sep 11 22:23:50 2005 +0000 Pro-Active security work from Frank van Vliet and myself. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7163 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) commit b9a64758856f9c52a4921fedf0d667be928a4d84 Author: Yoann Vandoorselaere Date: Sun Sep 11 18:10:53 2005 +0000 Include signal.h. Should fix #99. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7162 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-thread.h | 1 + 1 file changed, 1 insertion(+) commit f2617d9d6712a4d062beb13e9534d62fe6b5c6d9 Author: Yoann Vandoorselaere Date: Sun Sep 11 18:10:25 2005 +0000 Prevent redefinition warnings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7161 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 3 --- 1 file changed, 3 deletions(-) commit a883f001c7494cce6e5a453ec5718ad67e6d2ee4 Author: Yoann Vandoorselaere Date: Thu Sep 8 18:48:13 2005 +0000 Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7154 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 13 +++++++++++++ configure.in | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) commit 47ed5b9d9fc5635c3b1bece64a3cd9236f1d6663 Author: Yoann Vandoorselaere Date: Thu Sep 8 18:35:18 2005 +0000 Minor reformatting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7153 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 0b340266e7c2b55b6d56adc186d915e3339f6a85 Author: Yoann Vandoorselaere Date: Thu Sep 8 17:33:41 2005 +0000 Update docs. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7152 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 540 ++++------------------ docs/api/libprelude-sections.txt | 153 ++++--- docs/api/tmpl/idmef-additional-data.sgml | 701 +---------------------------- docs/api/tmpl/idmef-criterion-value.sgml | 29 ++ docs/api/tmpl/idmef-data.sgml | 109 +++-- docs/api/tmpl/idmef-path.sgml | 10 + docs/api/tmpl/idmef-tree-wrap.sgml | 28 ++ docs/api/tmpl/prelude-connection-pool.sgml | 9 + docs/api/tmpl/prelude-log.sgml | 51 ++- docs/api/tmpl/prelude.sgml | 9 + 10 files changed, 401 insertions(+), 1238 deletions(-) commit 8ba05f14cd39f0afd630f14e6d89a29fcbf4f1d9 Author: Yoann Vandoorselaere Date: Thu Sep 8 17:29:18 2005 +0000 restore idmef_data_set_char_string_constant() macro. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7151 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-data.h | 3 +++ 1 file changed, 3 insertions(+) commit c479cf52039dc26a64d111bad7db0534d76984b5 Author: Yoann Vandoorselaere Date: Thu Sep 8 12:03:13 2005 +0000 Only export necessary definition to prelude-config.h. Avoid GnuLib conflicts. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7150 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 8 +++++--- configure.in | 5 +++-- src/include/prelude-extract.h | 1 + 3 files changed, 9 insertions(+), 5 deletions(-) commit 179c9021d56af6913cf248eb27b0fe971ee3f9d9 Author: Yoann Vandoorselaere Date: Thu Sep 8 11:02:57 2005 +0000 Replace idmef_data define by function. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7147 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 130 ++++++++++++++++++++++++++++++++++++----------- src/include/idmef-data.h | 89 ++++++++++---------------------- 2 files changed, 128 insertions(+), 91 deletions(-) commit a511ac6ecb0c2b18ebcfe2246569271b197cf543 Author: Yoann Vandoorselaere Date: Wed Sep 7 18:57:02 2005 +0000 let _ptr_ function public for backward compatibility reason. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7144 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-additional-data.c | 57 +++++++++++++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 15 deletions(-) commit ab26feecb1078c7cd8aab2bdfbb2004600eb8709 Author: Yoann Vandoorselaere Date: Wed Sep 7 12:48:49 2005 +0000 Missing. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7141 09c5ec92-17d4-0310-903a-819935f44dba src/include/libmissing.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 3ffb2fd06925e5a95f32e6d4df1b7596f071b69b Author: Yoann Vandoorselaere Date: Wed Sep 7 12:48:12 2005 +0000 Make sure we use --lgpl when invoking gnulib-tool. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7140 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 2 +- libmissing/alloca.c | 2 +- libmissing/alloca_.h | 6 +++--- libmissing/asnprintf.c | 8 +++---- libmissing/ftw.c | 7 ++++++- libmissing/gai_strerror.c | 8 +++---- libmissing/getaddrinfo.c | 8 +++---- libmissing/getaddrinfo.h | 8 +++---- libmissing/gettext.h | 8 +++---- libmissing/inet_ntop.h | 8 +++---- libmissing/m4/gnulib-cache.m4 | 5 +++-- libmissing/m4/gnulib-comp.m4 | 3 --- libmissing/m4/pathmax.m4 | 13 ------------ libmissing/malloc.c | 8 +++---- libmissing/mbchar.c | 8 +++---- libmissing/mbchar.h | 8 +++---- libmissing/mbuiter.h | 8 +++---- libmissing/memchr.c | 8 +++---- libmissing/minmax.h | 8 +++---- libmissing/mktime.c | 8 +++---- libmissing/pathmax.h | 49 ------------------------------------------- libmissing/printf-args.c | 8 +++---- libmissing/printf-args.h | 8 +++---- libmissing/printf-parse.c | 8 +++---- libmissing/printf-parse.h | 8 +++---- libmissing/regcomp.c | 8 +++---- libmissing/regex.c | 8 +++---- libmissing/regex.h | 8 +++---- libmissing/regex_internal.c | 8 +++---- libmissing/regex_internal.h | 8 +++---- libmissing/regexec.c | 8 +++---- libmissing/size_max.h | 8 +++---- libmissing/snprintf.c | 8 +++---- libmissing/snprintf.h | 8 +++---- libmissing/stdbool_.h | 8 +++---- libmissing/strcase.h | 8 +++---- libmissing/strcasecmp.c | 8 +++---- libmissing/strcasestr.c | 8 +++---- libmissing/strcasestr.h | 8 +++---- libmissing/strdup.c | 8 +++---- libmissing/strdup.h | 8 +++---- libmissing/strncasecmp.c | 8 +++---- libmissing/strndup.c | 8 +++---- libmissing/strndup.h | 8 +++---- libmissing/strnlen.c | 8 +++---- libmissing/strnlen.h | 8 +++---- libmissing/strnlen1.c | 2 +- libmissing/strnlen1.h | 2 +- libmissing/strpbrk.c | 8 +++---- libmissing/strpbrk.h | 8 +++---- libmissing/strsep.c | 8 +++---- libmissing/strsep.h | 8 +++---- libmissing/time_r.c | 8 +++---- libmissing/time_r.h | 8 +++---- libmissing/timegm.c | 8 +++---- libmissing/timegm.h | 8 +++---- libmissing/vasnprintf.c | 8 +++---- libmissing/vasnprintf.h | 8 +++---- libmissing/vsnprintf.c | 8 +++---- libmissing/vsnprintf.h | 8 +++---- libmissing/xsize.h | 8 +++---- 61 files changed, 220 insertions(+), 279 deletions(-) commit 2c1c7273a89870ff187d7ce6027d6a3ffc65ca2b Author: Yoann Vandoorselaere Date: Wed Sep 7 11:29:28 2005 +0000 GnuLib update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7139 09c5ec92-17d4-0310-903a-819935f44dba libmissing/regcomp.c | 103 ++++++++++++++++++++---------------- libmissing/regex_internal.c | 2 +- libmissing/regex_internal.h | 126 +++++++++++++++++++++++++++++++++----------- libmissing/regexec.c | 78 +++++++++++++++------------ 4 files changed, 197 insertions(+), 112 deletions(-) commit 9161d662ef7981f702dc7fa359288e346828f003 Author: Yoann Vandoorselaere Date: Tue Sep 6 11:05:37 2005 +0000 More failover NULL check. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7135 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 35b926b37775ae54128e0b9e718d13d8929b94fa Author: Yoann Vandoorselaere Date: Mon Sep 5 14:08:31 2005 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7131 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/gnulib-tool.m4 | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 9101291fbb4eacfa077835a464a3a642d52f9b98 Author: Yoann Vandoorselaere Date: Mon Sep 5 14:07:58 2005 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7130 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 6 ++++++ libmissing/m4/gnulib-tool.m4 | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) commit d3522544ccf8753ce50df5ca358f70876dc53f8b Author: Yoann Vandoorselaere Date: Mon Sep 5 08:55:24 2005 +0000 Distribute HACKING.README / LICENSE.README. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7126 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a9d2620e7374adef94ac583cd3049887c1e399eb Author: Yoann Vandoorselaere Date: Mon Sep 5 08:53:06 2005 +0000 Copyright notice for potential developer, plus licensing note. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7125 09c5ec92-17d4-0310-903a-819935f44dba HACKING.README | 16 ++++++++++++++++ LICENSE.README | 19 +++++++++++++++++++ 2 files changed, 35 insertions(+) commit 44fd91f21369e097a8ef57a736d9c4aac65c13fa Author: Yoann Vandoorselaere Date: Sat Sep 3 06:43:15 2005 +0000 GnuLib code update. Should fix OpenBSD compilation issue. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7116 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 8 +- libmissing/m4/gettext.m4 | 549 ++++++++++++++++++++++++ libmissing/m4/glibc2.m4 | 30 ++ libmissing/m4/glibc21.m4 | 30 ++ libmissing/m4/gnulib-cache.m4 | 4 +- libmissing/m4/gnulib-comp.m4 | 21 + libmissing/m4/iconv.m4 | 101 +++++ libmissing/m4/intdiv0.m4 | 70 ++++ libmissing/m4/intmax.m4 | 30 ++ libmissing/m4/inttypes-pri.m4 | 30 ++ libmissing/m4/inttypes.m4 | 25 ++ libmissing/m4/isc-posix.m4 | 24 ++ libmissing/m4/lcmessage.m4 | 30 ++ libmissing/m4/lib-ld.m4 | 110 +++++ libmissing/m4/lib-link.m4 | 554 ++++++++++++++++++++++++ libmissing/m4/lib-prefix.m4 | 185 ++++++++ libmissing/m4/mbchar.m4 | 7 + libmissing/m4/nls.m4 | 51 +++ libmissing/m4/po.m4 | 429 +++++++++++++++++++ libmissing/m4/printf-posix.m4 | 44 ++ libmissing/m4/progtest.m4 | 92 ++++ libmissing/m4/regex.m4 | 13 +- libmissing/m4/uintmax_t.m4 | 30 ++ libmissing/m4/ulonglong.m4 | 23 + libmissing/regcomp.c | 410 +++++++++--------- libmissing/regex.h | 84 +++- libmissing/regex_internal.c | 308 +++++++------- libmissing/regex_internal.h | 224 ++++++---- libmissing/regexec.c | 949 ++++++++++++++++++++++-------------------- 29 files changed, 3565 insertions(+), 900 deletions(-) commit 6b109c2a0f1e4483c7c99f13feeb57de026fe2cd Author: Yoann Vandoorselaere Date: Thu Sep 1 14:21:28 2005 +0000 Add missing LANG="". git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7115 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e9f590bf726586bd15e47b85a4da37061316f190 Author: Yoann Vandoorselaere Date: Thu Sep 1 14:01:29 2005 +0000 Oops. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7114 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ce23c925c6977eec5c34d2e89cb3ed7d867af40 Author: Yoann Vandoorselaere Date: Thu Sep 1 13:59:48 2005 +0000 Reset LANG before calling awk. Fix #96. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7113 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/Makefile.am | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 3db7868c4e4c25bb29079e1e9f4db054d915a1af Author: Yoann Vandoorselaere Date: Thu Sep 1 00:23:28 2005 +0000 Fix broken comment. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7112 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude.h.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bceb8319860a76310c253001326c229375ba7d2c Author: Yoann Vandoorselaere Date: Thu Sep 1 00:07:47 2005 +0000 Use libmissing gettext.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7111 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/Makefile.am | 4 +-- src/libprelude-error/gettext.h | 69 ---------------------------------------- 2 files changed, 2 insertions(+), 71 deletions(-) commit 0edb1acd4fc399b43345f010df88de29c216b6df Author: Yoann Vandoorselaere Date: Wed Aug 31 23:57:45 2005 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7110 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 3 +- libmissing/m4/gnulib-cache.m4 | 28 +++++++ libmissing/m4/gnulib-comp.m4 | 169 ++++++++++++++++++++++++++++++++++++++++++ libmissing/m4/gnulib-tool.m4 | 1 + libmissing/m4/gnulib.m4 | 79 -------------------- 5 files changed, 199 insertions(+), 81 deletions(-) commit f75fe1705a46af46a52ff41990ba9bc8bcf1c2ee Author: Yoann Vandoorselaere Date: Wed Aug 31 23:39:01 2005 +0000 Make idmef-additional-data helpers function instead of define. This make the code easier to handle and Swig will generate wrapper transparantly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7109 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-additional-data.c | 176 +++++++++++++++++------ src/include/idmef-additional-data.h | 279 ++++-------------------------------- 2 files changed, 158 insertions(+), 297 deletions(-) commit 3e65bd5b6b022a538aafb3974079fc4aded683c5 Author: Yoann Vandoorselaere Date: Wed Aug 31 18:03:16 2005 +0000 Generate bindings for idmef-additional-data helper. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7108 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 2 ++ 1 file changed, 2 insertions(+) commit ffe5e8d12adecf8f183497b734931dbd7fe3bb91 Author: Yoann Vandoorselaere Date: Wed Aug 31 17:49:59 2005 +0000 Update GnuLib code. Fix #97. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7107 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 2 +- libmissing/m4/gnulib.m4 | 20 ++++++---- libmissing/m4/minmax.m4 | 17 +++++---- libmissing/m4/regex.m4 | 62 ++++++++++++++++--------------- libmissing/malloc.c | 36 ++++++++++++++++++ libmissing/regcomp.c | 18 +++++---- libmissing/regex.c | 24 ------------ libmissing/regex.h | 4 +- libmissing/regex_internal.c | 16 ++++---- libmissing/regex_internal.h | 89 ++++++++++++--------------------------------- libmissing/regexec.c | 63 ++++++++++++++++++++------------ libmissing/strcasestr.c | 1 + 12 files changed, 175 insertions(+), 177 deletions(-) commit e3ed9de1f2a6c223d7997adcccc96face91aa26d Author: Yoann Vandoorselaere Date: Mon Aug 29 09:10:24 2005 +0000 Use locale config.h. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7106 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/code-from-errno.c | 4 +--- src/libprelude-error/code-to-errno.c | 4 +--- src/libprelude-error/strerror.c | 4 +--- src/libprelude-error/strsource.c | 5 ++--- 4 files changed, 5 insertions(+), 12 deletions(-) commit bfaec7f80adb002e6519d29bd3687dd75d408984 Author: Yoann Vandoorselaere Date: Fri Aug 26 09:45:09 2005 +0000 Remove un-necessary socket.h inclusion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7105 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 1 - 1 file changed, 1 deletion(-) commit c8bcb37068cd34db6c16da853b5a8c47cf19c0f9 Author: Yoann Vandoorselaere Date: Fri Aug 26 07:14:58 2005 +0000 Patch from Jim Horvath for WIN32 compile. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7104 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-extract.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit f56bbd0cba7341e806765bbd79ecc296cb6a36c6 Author: Yoann Vandoorselaere Date: Fri Aug 26 06:31:24 2005 +0000 Removed netinet/in.h inclusion, which is not needed anymore. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7103 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 1 - 1 file changed, 1 deletion(-) commit c18613d1ea5de8cb132fef9b182277eb71ef24da Author: Yoann Vandoorselaere Date: Thu Aug 25 03:06:16 2005 +0000 Oops; bad renaming. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7100 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-thread.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eaefb065b983aa1f24a8d97064978556dfa2012f Author: Yoann Vandoorselaere Date: Thu Aug 25 02:30:54 2005 +0000 Bump version. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7095 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 7 +++++ configure.in | 2 +- docs/api/libprelude-decl.txt | 66 ++++++++++---------------------------------- src/include/libmissing.h | 1 - src/include/prelude.h.in | 2 ++ 5 files changed, 24 insertions(+), 54 deletions(-) commit 7e011b4a9300ee5ad715cbced3c7482b4c1f58c5 Author: Yoann Vandoorselaere Date: Thu Aug 25 01:23:51 2005 +0000 Wrap all pthread call through a prelude_pthread() interface. As of now, pthread function won't be called unless: - We detect we are not using pthread stubs at prelude_init() time. - prelude_thread_init() is explicitly called. This is done so that there are no pthread constraint applied to the caller when pthread are not used. For example, a perl module would previously have failed if the perl interpreter was compiled without being explicitly linked to pthread. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7085 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 32 +++++ docs/api/libprelude-decl.txt | 120 ++++++++++++++++++- src/Makefile.am | 1 + src/idmef-criteria-string.yac.y | 8 +- src/idmef-path.c | 64 +++++----- src/include/Makefile.am | 4 +- src/include/prelude-thread.h | 97 ++++++++++++++++ src/prelude-async.c | 4 + src/prelude-client.c | 12 +- src/prelude-thread.c | 252 ++++++++++++++++++++++++++++++++++++++++ src/prelude-timer.c | 26 ++--- src/prelude.c | 40 +++---- src/tls-auth.c | 7 +- 13 files changed, 579 insertions(+), 88 deletions(-) commit 79d8d74c6bf6d105c4d9b7b6f1cf129c87f0b23e Author: Yoann Vandoorselaere Date: Thu Aug 25 01:19:41 2005 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7084 09c5ec92-17d4-0310-903a-819935f44dba src/include/libmissing.h | 3 +++ 1 file changed, 3 insertions(+) commit d6965fe601e04487b882a89d4f0a622017a5423c Author: Yoann Vandoorselaere Date: Thu Aug 25 01:16:27 2005 +0000 config.h/libmissing.h inclusion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7083 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 3 +++ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 3 +++ src/variable.c | 2 ++ 3 files changed, 8 insertions(+) commit b134131c406635c728ff2be3eaf7aec45fc607e2 Author: Yoann Vandoorselaere Date: Thu Aug 25 01:14:02 2005 +0000 Include config.h/libmissing.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7082 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-class.c | 2 ++ 1 file changed, 2 insertions(+) commit cb781c3eb7b6773587afe089f6b96bb8f20b4ae2 Author: Yoann Vandoorselaere Date: Thu Aug 25 00:15:17 2005 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7081 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 32 ++- libmissing/m4/gnulib.m4 | 7 +- libmissing/m4/mbchar.m4 | 14 + libmissing/m4/mbiter.m4 | 14 + libmissing/m4/mbrtowc.m4 | 31 +++ libmissing/m4/memchr.m4 | 18 ++ libmissing/m4/regex.m4 | 209 +++++++------- libmissing/m4/strcase.m4 | 15 +- libmissing/m4/strcasestr.m4 | 14 +- libmissing/mbchar.c | 38 +++ libmissing/mbchar.h | 352 ++++++++++++++++++++++++ libmissing/mbuiter.h | 203 ++++++++++++++ libmissing/memchr.c | 201 ++++++++++++++ libmissing/regcomp.c | 652 +++++++++++++++++--------------------------- libmissing/regex.c | 4 - libmissing/regex.h | 559 +++++++++++++++++++++++-------------- libmissing/regex_internal.c | 251 ++++++++--------- libmissing/regex_internal.h | 17 +- libmissing/regexec.c | 601 ++++++++++++++++++---------------------- libmissing/strcase.h | 5 +- libmissing/strcasecmp.c | 98 ++++--- libmissing/strcasestr.c | 149 ++++++++-- libmissing/strcasestr.h | 22 +- libmissing/strncasecmp.c | 60 +++- libmissing/strnlen1.c | 39 +++ libmissing/strnlen1.h | 41 +++ 26 files changed, 2317 insertions(+), 1329 deletions(-) commit 2c4b9672726116054ff492115c19f8f9d699e9ec Author: Yoann Vandoorselaere Date: Wed Aug 24 15:14:56 2005 +0000 Make sure we link correctly the Perl bindings to libprelude. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7079 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- bindings/perl/Makefile.PL.in | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit c845f956dc7eaf0b19bb0e477ba02f03fdc957da Author: Yoann Vandoorselaere Date: Tue Aug 23 10:36:00 2005 +0000 Use prelude_log(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7078 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 66a7896ea333b8ee968dbaa906a35c5081bc44e2 Author: Yoann Vandoorselaere Date: Tue Aug 23 10:35:33 2005 +0000 Reset prelude-msg priority after recycle. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7077 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msgbuf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ae707d6d067eab924d4267eabfc3f433b13a16c3 Author: Yoann Vandoorselaere Date: Sun Aug 21 10:59:45 2005 +0000 Don't return NULL to Perl/Python. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7061 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_perl.i | 5 +++-- bindings/libprelude_python.i | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) commit 8b2a4dc29ad55b1684f450825bb19a9fbfee2b81 Author: Yoann Vandoorselaere Date: Sun Aug 21 10:23:34 2005 +0000 Forgot to commit old version bump. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7059 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 6 ++++++ configure.in | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) commit a8b8779f3a6d1dce5d362f724ed3a8a01d3cb4ac Author: Yoann Vandoorselaere Date: Wed Aug 17 08:15:44 2005 +0000 Fix for system where ferror/clearerror might be defined as macro. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7025 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 927282a72f198d1f7ab5c08a9f325656f90a7204 Author: Yoann Vandoorselaere Date: Tue Aug 16 23:26:00 2005 +0000 Version bump. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7017 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 17 ++ configure.in | 2 +- docs/api/libprelude-decl.txt | 317 ++++++++++++++++++++++++++----- docs/api/tmpl/idmef-criteria.sgml | 16 +- docs/api/tmpl/idmef-criterion-value.sgml | 1 + docs/api/tmpl/prelude-log.sgml | 10 +- 6 files changed, 315 insertions(+), 48 deletions(-) commit 49404386934d981355b1da371eeff795a15428ff Author: Yoann Vandoorselaere Date: Tue Aug 16 13:02:45 2005 +0000 Fix invalid return value. Kill warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@7004 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit f27f28866d053988aa513b4dbb7fbb0c2599e207 Author: Yoann Vandoorselaere Date: Mon Aug 15 18:53:20 2005 +0000 GnuLib update, add an strcasestr() module. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6969 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 10 ++++++-- libmissing/m4/gnulib.m4 | 8 ++++-- libmissing/m4/onceonly_2_57.m4 | 4 +-- libmissing/m4/strcasestr.m4 | 17 +++++++++++++ libmissing/m4/strndup.m4 | 6 ++--- libmissing/m4/strnlen.m4 | 10 +++++--- libmissing/strcasestr.c | 57 ++++++++++++++++++++++++++++++++++++++++++ libmissing/strcasestr.h | 36 ++++++++++++++++++++++++++ libmissing/strndup.c | 10 +++----- libmissing/strnlen.h | 32 ++++++++++++++++++++++++ 10 files changed, 170 insertions(+), 20 deletions(-) commit 3bb6289cc18494f17f8e8d9bbf3360f55d19f3d5 Author: Yoann Vandoorselaere Date: Mon Aug 15 18:52:56 2005 +0000 New substr operator for substr : "<>". Provide the ability to do insensitive match by appending a wilcard to most (<>, =, ~) operator. Provide the ability to do negative match on <> and ~ operator. Implement lesser and greater operator for broken down time operation. Make the operator enum a bitsflags which make the code a little more easier to handle. Ability for idmef-criterion-value to print regex. Fix some bug in broken down time month/wday handling. Ability to provide a gmt offset in the criteria so that the match is not made on the local time. Watch out, libpreludedb breakage. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6968 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 18 ++- src/idmef-criteria-string.yac.y | 47 +++++-- src/idmef-criteria.c | 36 +++-- src/idmef-criterion-value.c | 258 ++++++++++++++++++++++++------------ src/idmef-value-type.c | 47 ++++--- src/include/idmef-criteria.h | 38 ++++-- src/include/idmef-criterion-value.h | 15 ++- src/include/libmissing.h | 1 + src/libprelude-error/err-codes.h.in | 3 +- 9 files changed, 315 insertions(+), 148 deletions(-) commit 5c9e8d347369580a52ae9a8e25d2a650c10bffcc Author: Yoann Vandoorselaere Date: Sun Aug 14 18:50:16 2005 +0000 Fix int8 / unsigned char swig mixup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6963 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_python.i | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bcd3355c987fb5759671fa4408fb0b56e9f3d349 Author: Yoann Vandoorselaere Date: Sun Aug 14 16:22:33 2005 +0000 Record the full process path, as per IDMEFv14 recommendations. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6962 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) commit d461b1bda8a18e3af439dd13cf910995534c9f6a Author: Yoann Vandoorselaere Date: Fri Aug 12 00:02:46 2005 +0000 Change from old port number (5554) to IANA assignated port number (4690). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6951 09c5ec92-17d4-0310-903a-819935f44dba README | 8 ++++---- src/prelude-connection.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit cd652d84a334d085bbda4fcc1d825e4f718462d3 Author: Yoann Vandoorselaere Date: Thu Aug 11 21:08:41 2005 +0000 Fix inclusion path. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6949 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Makefile.PL.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d4b52bb6bf72fc950db922d97beff7a922b79f3 Author: Yoann Vandoorselaere Date: Mon Aug 8 20:42:20 2005 +0000 Fixes for broken FreeBSD sh :-) git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6939 09c5ec92-17d4-0310-903a-819935f44dba m4/ax_create_prelude_inttypes_h.m4 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5840bb7a92c925b4d4df054c1f4b705d90efe0f8 Author: Yoann Vandoorselaere Date: Sat Aug 6 18:08:13 2005 +0000 Handle fread() error return correctly (check for ferror() / feof(), and return the appropriate error code). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6938 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 2c601005ab4ba4e2ace8ac549d0d52a0a3cedfc2 Author: Yoann Vandoorselaere Date: Fri Aug 5 13:53:01 2005 +0000 Implement va_copy() workaround from glib. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6937 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/prelude-string.c | 20 ++++++++++++- 2 files changed, 98 insertions(+), 1 deletion(-) commit c0ae6f23a50ecc885a9777677a2f84206dddd06d Author: Yoann Vandoorselaere Date: Fri Aug 5 13:26:04 2005 +0000 Fix 64 bit conversion specifier detection: Now check for l, ll, q, I64, instead of just relying on l or ll depending on sizeof(long). Fix printf/scanf issue on old BSD system. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6936 09c5ec92-17d4-0310-903a-819935f44dba m4/ax_create_prelude_inttypes_h.m4 | 119 +++++++++++++++++++------------------ src/include/prelude-inttypes.h.in | 38 +++++------- 2 files changed, 78 insertions(+), 79 deletions(-) commit a8141173a4596518cc35bde06fbd3ec1b99b7e51 Author: Yoann Vandoorselaere Date: Fri Aug 5 13:24:19 2005 +0000 Fix unused warning on system without pthread_atfork(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6935 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 13 ++++++++----- src/prelude-timer.c | 3 +++ 2 files changed, 11 insertions(+), 5 deletions(-) commit 0eec40e461b2747365d03be25a87cc54ab9494e9 Author: Yoann Vandoorselaere Date: Thu Aug 4 22:49:58 2005 +0000 Ooops, check for sed and variadic macros. Should have been part of 6932. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6934 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 24823df0f449a5a2b59f9469937ae5d027101980 Author: Yoann Vandoorselaere Date: Thu Aug 4 22:48:37 2005 +0000 Use TIME_WITH_SYS_TIME (through prelude-config.h). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6933 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-time.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 36fff53e974310f5e79811847025848298053006 Author: Yoann Vandoorselaere Date: Thu Aug 4 22:45:33 2005 +0000 Workaround for system without variadic macros. Use prelude-config.h for this purpose. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6932 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 50 ++++++++++++++++++++++++++++++----------------- src/prelude-log.c | 25 ++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 18 deletions(-) commit 8ddb79eb7de6c85a795bca272d34451c0621ed1b Author: Yoann Vandoorselaere Date: Thu Aug 4 22:44:53 2005 +0000 Generate prelude-config.h, from config.h and install it. This is required so that we can keep some machine definition and use it in header file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6931 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 5a36132901f14499374833049543e94882088e56 Author: Yoann Vandoorselaere Date: Thu Aug 4 13:47:47 2005 +0000 Missing. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6930 09c5ec92-17d4-0310-903a-819935f44dba gtk-doc.make | 153 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) commit 95739209270557b1bf4a8c90051cdd18669e15f8 Author: Yoann Vandoorselaere Date: Thu Aug 4 00:40:04 2005 +0000 Include gtk-doc.m4, for developer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6929 09c5ec92-17d4-0310-903a-819935f44dba m4/gtk-doc.m4 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit ad5cf4eb82303a7df6b321e0f76967d46059de4b Author: Yoann Vandoorselaere Date: Mon Aug 1 23:27:13 2005 +0000 Include some WIN32 conditional fixes by Jim Horvath . git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6911 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-write.c | 7 ++++++- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 7 ++++++- src/include/common.h | 7 ++++++- 3 files changed, 18 insertions(+), 3 deletions(-) commit 7f6047c8f475b1f2b0c7e7cace90e256043a356b Author: Yoann Vandoorselaere Date: Mon Aug 1 21:28:30 2005 +0000 Update documentation, NEWS. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6904 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 15 +++++++++++++++ configure.in | 2 +- docs/api/libprelude-decl.txt | 2 +- docs/api/tmpl/idmef-additional-data.sgml | 3 +++ docs/api/tmpl/idmef-criteria.sgml | 3 +++ docs/api/tmpl/idmef-criterion-value.sgml | 3 +++ docs/api/tmpl/idmef-data.sgml | 3 +++ docs/api/tmpl/idmef-message-print.sgml | 3 +++ docs/api/tmpl/idmef-message-read.sgml | 3 +++ docs/api/tmpl/idmef-message-write.sgml | 3 +++ docs/api/tmpl/idmef-path.sgml | 3 +++ docs/api/tmpl/idmef-time.sgml | 3 +++ docs/api/tmpl/idmef-tree-wrap.sgml | 3 +++ docs/api/tmpl/idmef-value.sgml | 3 +++ docs/api/tmpl/idmef.sgml | 3 +++ docs/api/tmpl/prelude-async.sgml | 3 +++ docs/api/tmpl/prelude-client.sgml | 3 +++ docs/api/tmpl/prelude-connection-pool.sgml | 3 +++ docs/api/tmpl/prelude-connection.sgml | 3 +++ docs/api/tmpl/prelude-failover.sgml | 3 +++ docs/api/tmpl/prelude-hash.sgml | 3 +++ docs/api/tmpl/prelude-ident.sgml | 3 +++ docs/api/tmpl/prelude-inttypes.sgml | 3 +++ docs/api/tmpl/prelude-io.sgml | 3 +++ docs/api/tmpl/prelude-linked-object.sgml | 3 +++ docs/api/tmpl/prelude-list.sgml | 3 +++ docs/api/tmpl/prelude-log.sgml | 3 +++ docs/api/tmpl/prelude-msg.sgml | 3 +++ docs/api/tmpl/prelude-msgbuf.sgml | 3 +++ docs/api/tmpl/prelude-plugin.sgml | 3 +++ docs/api/tmpl/prelude-string.sgml | 3 +++ docs/api/tmpl/prelude.sgml | 3 +++ 32 files changed, 104 insertions(+), 2 deletions(-) commit 41e8a5fcacafc1cb71735e720ffb7dd15bba563d Author: Yoann Vandoorselaere Date: Mon Aug 1 21:26:24 2005 +0000 beautification. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6903 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b73e285cf289748b957f2fe0e8693dfd2422a706 Author: Yoann Vandoorselaere Date: Mon Aug 1 21:22:17 2005 +0000 Try to improve error reporting in case of TLS error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6902 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit b1fde2786013278a09c90c55b230152632bae2d5 Author: Yoann Vandoorselaere Date: Mon Aug 1 19:31:37 2005 +0000 Warning improvement. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6901 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 93469165a7e07bfd2df5448bfe39be34a712c795 Author: Yoann Vandoorselaere Date: Mon Aug 1 19:25:48 2005 +0000 Catch GNUTLS_E_UNEXPECTED_PACKET_LENGTH error, which often happen when the client close the connection without calling gnutls_bye(). Same for GNUTLS_E_INVALID_SESSION, which happen when calling gnutls_bye() on an already bye'd out connection. The error are still available when increasing libprelude log level. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6900 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 1d71b796aabc2594dbe181e2a18b8e0e4ef96014 Author: Yoann Vandoorselaere Date: Mon Aug 1 17:36:31 2005 +0000 Decrease verbosity for begnin error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6898 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3d9f6ddd2d37f140e698a780967941dd8fd7468a Author: Yoann Vandoorselaere Date: Mon Aug 1 17:35:28 2005 +0000 More close-on-exec fix. Decrease error checking. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6897 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 4 +++- src/prelude-connection.c | 11 +++-------- 2 files changed, 6 insertions(+), 9 deletions(-) commit 6fcce0c89d2241aeb7a5ff404ad192ee76d0d3fa Author: Yoann Vandoorselaere Date: Mon Aug 1 16:57:01 2005 +0000 Correct mmap() error checking. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6895 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 +- src/tls-util.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit d1774ddf49b31d242721d43c3abc58adc01cc6bc Author: Yoann Vandoorselaere Date: Mon Aug 1 16:16:15 2005 +0000 Update gnulib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6890 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 20 ++++---- libmissing/m4/gnulib.m4 | 5 +- libmissing/m4/regex.m4 | 126 +++++++++++++++++++++++------------------------- libmissing/size_max.h | 27 +++++++++++ 4 files changed, 99 insertions(+), 79 deletions(-) commit a2cb4b8b054e378ebcb00d25fcdc9b84c5fb46e0 Author: Yoann Vandoorselaere Date: Mon Aug 1 12:28:14 2005 +0000 Oops, fix mistake when looking up groupname GID. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6885 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c21042d19f6904537985e9679ed9f1fc1c64f045 Author: Yoann Vandoorselaere Date: Mon Aug 1 12:07:19 2005 +0000 Resort to calling gnutls_strerror() if a TLS error happen and it is not an alert. Thanks to John R. Shannon for pointing out this. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6884 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 7bc0adcb22d91f846d7bfc5406879868f634c081 Author: Yoann Vandoorselaere Date: Mon Aug 1 12:03:49 2005 +0000 Use SWIG_TypeQuery() to ensure portability. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6883 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 4 +- bindings/idmef-value-class-mapping.h | 78 --------------------- bindings/idmef-value-class-mapping.i | 80 ++++++++++++++++++++++ bindings/libprelude.i | 3 +- .../GenerateIDMEFValueClassSwigMapping.pm | 16 +++-- src/idmef-wrappers-gen/generator.pl | 2 +- 6 files changed, 94 insertions(+), 89 deletions(-) commit abd50bae3ad749a377b525e81f870f09ef1b65d8 Author: Yoann Vandoorselaere Date: Sat Jul 30 14:08:26 2005 +0000 Correct source_id decoding. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6875 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 45f67d6bb2a998361ec6ed1e44cb202a254e707f Author: Yoann Vandoorselaere Date: Sat Jul 30 13:45:58 2005 +0000 Fill source_id on prelude_option_recv_reply(). Include an empty PRELUDE_MSG_OPTION_TARGET_INSTANCE_ID in option message. Some cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6874 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-message-id.h | 1 + src/prelude-option-wide.c | 22 ++++++++++------------ 2 files changed, 11 insertions(+), 12 deletions(-) commit 79fc54c5d621935d2d1c92140a6ac751a45beaa6 Author: Yoann Vandoorselaere Date: Mon Jul 25 21:58:26 2005 +0000 More error reporting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6827 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) commit 4fec527b7c13e9fc813a9886d4e44c89dca38b85 Author: Yoann Vandoorselaere Date: Mon Jul 25 17:07:27 2005 +0000 Handle case where there is no failover created. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6826 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 85e23a81cb1bf62604faff211e051230bfae8414 Author: Yoann Vandoorselaere Date: Mon Jul 25 16:46:08 2005 +0000 Alway backup the va_list, since it's value might be undefined after the vsnprintf() call. This fix a bug on prelude_string_vprintf() recursion on some platform. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6825 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 37d8257948bdea3b9ddfa509e6b19d6caa08fc42 Author: Yoann Vandoorselaere Date: Thu Jul 14 00:08:27 2005 +0000 Update NEWS, documentation. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6771 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 15 +++++++++++++++ configure.in | 2 +- docs/api/libprelude-decl.txt | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) commit e8b62bf2a6582106bf35b9d47b1a488dbc5b37c5 Author: Yoann Vandoorselaere Date: Wed Jul 13 23:24:22 2005 +0000 Separate normal log level / debug log level handling. Allow to have different facility for each of theses specific level. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6766 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) commit 7aae45b2a5f005f3b4dc1a311b5da47e73e94ad7 Author: Yoann Vandoorselaere Date: Tue Jul 12 20:12:45 2005 +0000 Handle global_logfile separatly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6765 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2168ec4940ff6d1a2097f97b9c8ecdffa3dd4e16 Author: Yoann Vandoorselaere Date: Tue Jul 12 18:28:34 2005 +0000 Set FD_CLOE git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6762 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 5cd9635dda26e554142c38df14ea70dd68c1a2c3 Author: Yoann Vandoorselaere Date: Tue Jul 12 12:45:20 2005 +0000 Update function documentation. Fix #89. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6759 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d90372f2c226787008f3141cd00870031cca119f Author: Yoann Vandoorselaere Date: Tue Jul 12 08:23:57 2005 +0000 Slight renaming. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6758 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 53cd12a653ceb992ca601240363c46763d424a8a Author: Yoann Vandoorselaere Date: Tue Jul 12 08:21:28 2005 +0000 Correct fill_client_infos() return value. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6757 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a06145fe10ddc2837411f36002d85543a5be9789 Author: Yoann Vandoorselaere Date: Mon Jul 11 15:11:07 2005 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6754 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 2 +- libmissing/getaddrinfo.h | 12 +++++++++--- libmissing/inet_ntop.h | 5 ++++- libmissing/m4/gnulib.m4 | 2 +- libmissing/m4/size_max.m4 | 10 +++++----- libmissing/regcomp.c | 7 ++++--- libmissing/time_r.h | 13 ++++++++++++- 7 files changed, 36 insertions(+), 15 deletions(-) commit 7d3f94a503d86a60849411622345b33092202d61 Author: Yoann Vandoorselaere Date: Mon Jul 11 15:07:55 2005 +0000 Don't fail on _prelude_get_file_name_and_path() error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6753 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 59 ++++++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 27 deletions(-) commit 28997e625e8a00c9287a056783060180b70aa283 Author: Yoann Vandoorselaere Date: Mon Jul 11 15:04:38 2005 +0000 More path normalization in _prelude_get_file_name_and_path(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6752 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 71 +++++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 22 deletions(-) commit 3f252a7278e3d9f14ddc7d6a40f629a3d79bdd19 Author: Yoann Vandoorselaere Date: Sat Jul 9 09:21:33 2005 +0000 Update to use libmissing defined PATH_MAX. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6751 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 1eec54bc5204ce24d3915d0d05fe696c7f97790c Author: Yoann Vandoorselaere Date: Sat Jul 9 09:21:04 2005 +0000 Store CWD on prelude_init(), use it in _prelude_get_file_name_and_path(). Useful for case where the program call prelude_init() when starting but fork before the prelude_client_t creation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6750 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 16 +++++++++------- src/prelude.c | 7 ++++++- 2 files changed, 15 insertions(+), 8 deletions(-) commit 9d74f90aa70d1707620475623335fbbfa8d54e54 Author: Yoann Vandoorselaere Date: Fri Jul 8 17:51:19 2005 +0000 Check whether HAVE_PTHREAD_ATFORK is set. Fix #87. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6749 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-timer.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 8492048e5ecd7cf103d10e981a0669f64d3a64c3 Author: Yoann Vandoorselaere Date: Fri Jul 8 17:47:14 2005 +0000 Fix a typo that could result in an endless loop on system where _POSIX_TIMERS is defined. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6748 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d73c7ec308d6f8e8a6611f5ece4b33618de48352 Author: Yoann Vandoorselaere Date: Thu Jul 7 15:37:31 2005 +0000 Update NEWS. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6745 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 32 ++++++++++++++++++++++++++++++++ configure.in | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) commit 8262ca9877e54ca72a32f74b0180e1d7828e0b8b Author: Yoann Vandoorselaere Date: Thu Jul 7 15:33:51 2005 +0000 Fix distcheck. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6744 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/setup.py.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 377644924f6de6314567cc2894e20e1bb311a3a3 Author: Yoann Vandoorselaere Date: Thu Jul 7 15:33:23 2005 +0000 Big GnuLib update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6743 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 12 +- libmissing/m4/gettext.m4 | 549 --- libmissing/m4/glibc2.m4 | 30 - libmissing/m4/glibc21.m4 | 30 - libmissing/m4/gnulib.m4 | 3 +- libmissing/m4/iconv.m4 | 101 - libmissing/m4/intdiv0.m4 | 70 - libmissing/m4/intmax.m4 | 30 - libmissing/m4/inttypes-pri.m4 | 30 - libmissing/m4/inttypes.m4 | 25 - libmissing/m4/isc-posix.m4 | 24 - libmissing/m4/lcmessage.m4 | 30 - libmissing/m4/lib-ld.m4 | 110 - libmissing/m4/lib-link.m4 | 553 --- libmissing/m4/lib-prefix.m4 | 153 - libmissing/m4/nls.m4 | 51 - libmissing/m4/po.m4 | 429 --- libmissing/m4/printf-posix.m4 | 44 - libmissing/m4/progtest.m4 | 92 - libmissing/m4/regex.m4 | 88 +- libmissing/m4/uintmax_t.m4 | 30 - libmissing/m4/ulonglong.m4 | 23 - libmissing/regcomp.c | 3925 +++++++++++++++++++ libmissing/regex.c | 8327 +---------------------------------------- libmissing/regex.h | 106 +- libmissing/regex_internal.c | 1673 +++++++++ libmissing/regex_internal.h | 808 ++++ libmissing/regexec.c | 4338 +++++++++++++++++++++ 28 files changed, 10929 insertions(+), 10755 deletions(-) commit 9769b9e59bae732a27b7ee88c108642fa196ffb1 Author: Yoann Vandoorselaere Date: Thu Jul 7 15:02:47 2005 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6742 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 5 +++++ 1 file changed, 5 insertions(+) commit 097cdd0d1593d99162a7a2704e42afd2d1541c62 Author: Yoann Vandoorselaere Date: Thu Jul 7 15:02:08 2005 +0000 Move libmissing/libprelude-error link to LIBADD. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6741 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 4963690f054f1d48eab5a922179ff7d4876d2214 Author: Yoann Vandoorselaere Date: Thu Jul 7 11:47:06 2005 +0000 Allow the user to provide the LIBPRELUDE_LOGFILE environment variable, to be used for debugging. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6740 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 85a33e97e35798e6cea34dce80cbe4ae67e1bf0b Author: Yoann Vandoorselaere Date: Thu Jul 7 10:37:42 2005 +0000 New prelude_log_set_logfile() function, that might be used to specify an explicit global logfile instead of the default syslog/stdout/stderr output. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6739 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 2 ++ src/prelude-log.c | 28 ++++++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) commit f70e7dcddaca2ce38b300b41fecc58a617196c4d Author: Yoann Vandoorselaere Date: Thu Jul 7 10:01:56 2005 +0000 Large modification to prelude-async fork handling due to FreeBSD incapacity of dealing with restarting a thread from the child process (which was causing an assertion in libpthread). - prelude-timer now provide it's own atfork handler. Don't restore the timer state from the prelude-async handler. - Modify prelude-async child fork handler so that the asynchronous thread is not restarted. It is up to the caller to decide whether to restart the asynchronous thread in the child by using prelude_client_set_flags(). Note that calling pthread_create() from a child process break on some architecture, namely FreeBSD, if another thread was started from the parent of the forked process. - Reinitialize mutex instead of unlocking them in all atfork child handler. Some implementation seem not to support unlocking of a mutex in the child process. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6738 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 89 +++++++++++++++++++++++++++++------------------------ src/prelude.c | 18 +++++++++-- 2 files changed, 64 insertions(+), 43 deletions(-) commit b6555c111c6809cc060c96b7830074eee1972b6d Author: Yoann Vandoorselaere Date: Thu Jul 7 07:54:24 2005 +0000 Implement _prelude_timer_init() responsible for setting up an atfork handler responsible for keeping data in a consistant state accross fork() (zero the list, reset the timer mutex). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6737 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-timer.h | 6 ++++++ src/prelude-timer.c | 25 ++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) commit 1c1ca451a1199a3038acd452b871bced9fadb424 Author: Yoann Vandoorselaere Date: Wed Jul 6 23:38:07 2005 +0000 Implement _idmef_path_cache_reinit(), to be used by the atfork handler to reinitialize idmef_path_t mutex within the child (experience show unlocking a mutex locked from the atfork prepare handler in the child is not portable). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6736 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 20 +++++++++++++++++++- src/include/idmef-path.h | 2 ++ 2 files changed, 21 insertions(+), 1 deletion(-) commit af67e4bd6a96ae1dd1f3efa4857734d970e7119d Author: Yoann Vandoorselaere Date: Tue Jul 5 08:37:37 2005 +0000 Include file cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6732 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 2 +- src/include/prelude-extract.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 483cb7a05bc332bb44aba84d3c9b719394d19644 Author: Yoann Vandoorselaere Date: Tue Jul 5 08:36:50 2005 +0000 Include file cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6731 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/tls-register.c | 5 ++-- src/common.c | 4 +--- src/config-engine.c | 2 +- src/daemonize.c | 3 ++- src/idmef-additional-data.c | 2 +- src/idmef-criteria.c | 4 +++- src/idmef-message-read.c | Bin 77688 -> 77619 bytes src/idmef-message-write.c | 3 --- src/idmef-time.c | 26 ++++++++++++++------- src/idmef-value-type.c | 3 ++- .../GenerateIDMEFMessageReadC.pm | 3 --- .../GenerateIDMEFMessageWriteC.pm | 3 --- src/prelude-connection-pool.c | 7 +----- src/prelude-connection.c | 2 +- src/prelude-failover.c | 2 +- src/prelude-plugin.c | 2 +- 16 files changed, 34 insertions(+), 37 deletions(-) commit 9ff0317fee08cd80ac36aeef63fa1b1ae834b1aa Author: Yoann Vandoorselaere Date: Sun Jul 3 10:53:06 2005 +0000 Missing LANG="" workaround. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6716 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit c0902e5af4f4c07ac67d4b9bbe901714856d24dd Author: Yoann Vandoorselaere Date: Sun Jul 3 10:50:23 2005 +0000 Workaround MakeMaker issue where generated Perl Makefile would be invalid when UTF-8 is enabled. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6714 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 2dbb2fcf708b2ccaf158a1c744956dcbc3524c55 Author: Yoann Vandoorselaere Date: Thu Jun 30 17:27:22 2005 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6699 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 265 +++++++++++++++++-------------- docs/api/libprelude-sections.txt | 2 +- docs/api/tmpl/idmef-additional-data.sgml | 43 +++++ docs/api/tmpl/prelude-async.sgml | 2 +- docs/api/tmpl/prelude-log.sgml | 7 +- docs/api/tmpl/prelude-plugin.sgml | 2 + 6 files changed, 196 insertions(+), 125 deletions(-) commit a579ae7a6e6887101ca706b355b6615e1b168168 Author: Yoann Vandoorselaere Date: Thu Jun 30 17:25:32 2005 +0000 Allow option argument starting with a '-' if the value immediatly following the option character cannot be looked up as an existing option. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6698 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 3f17c6d29ad24b4f820dd2708be7053b8005a400 Author: Yoann Vandoorselaere Date: Thu Jun 30 17:24:29 2005 +0000 Fix prelude_log_v prototype. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6697 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 2 +- src/include/prelude-log.h | 10 ++++++++-- src/prelude-log.c | 4 ++-- 3 files changed, 11 insertions(+), 5 deletions(-) commit 3d0f3d699c1529d6f3fc917947b105bbc7d90b20 Author: Yoann Vandoorselaere Date: Wed Jun 29 12:03:32 2005 +0000 Sync slight renaming. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6694 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-async.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit be3cdb5908f1ccb7c768e08b05fd69e3140fa632 Author: Yoann Vandoorselaere Date: Wed Jun 29 11:40:53 2005 +0000 No need to round or apply a modulo to usec (!). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6689 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 61773d9d3b591099f40b11ec2014e2fad40d417f Author: Yoann Vandoorselaere Date: Wed Jun 29 11:40:02 2005 +0000 Improvide idmef-message-print time format. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6688 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 19 +++++++++++-------- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 19 +++++++++++-------- 2 files changed, 22 insertions(+), 16 deletions(-) commit 7e874b69915f476fe53fe8230342514328d3f1ec Author: Yoann Vandoorselaere Date: Sun Jun 26 23:27:10 2005 +0000 * prelude-async.c: - Use clock_gettime() + CLOCK_MONOTONIC if available and pthread_condattr_setclock() exist. This should avoid possible race with pthread_cond_timedwait() if the system time is modified, and make the system more predictable anyway. - In case CLOCK_MONOTONIC is not applicable, revert to CLOCK_REALTIME, or to gettimeofday() if clock_gettime() is not available at all. - Simplify timer elapsed time check. - Check the predicate even if the condition return ETIMEDOUT. Pthread documentation say the predicate might be true in that condition. - Calculate the sleep time when holding the condition mutex instead of doing it previously. Avoid possible race due to the wait time. * configure.in: - Remove assignment of CFLAGS within LDFLAGS due tu a typo. - Check for pthread_condattr_setclock(). - Check for clock_gettime() possibly within librt. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6682 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 19 ++++++- src/prelude-async.c | 141 +++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 120 insertions(+), 40 deletions(-) commit 7aa402c5eb6947a8235e2128ddec383eccf59f44 Author: Yoann Vandoorselaere Date: Sun Jun 26 17:35:33 2005 +0000 Move libmissing inclusion at the top. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6681 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 42b4c409b6afb2b09fca67531c3e04693c78ff4c Author: Yoann Vandoorselaere Date: Sun Jun 26 17:31:44 2005 +0000 Make sure HAVE_CONFIG_H stay defined. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6680 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14b1deb08a879a8e79d892ddbf256a65ee575377 Author: Yoann Vandoorselaere Date: Sun Jun 26 16:14:23 2005 +0000 Update GnuLib code. Add strcasecmp fallback. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6679 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 22 ++++++++++------ libmissing/m4/gnulib.m4 | 7 ++--- libmissing/m4/strcase.m4 | 37 +++++++++++++++++++++++++++ libmissing/mktime.c | 23 ++++++++--------- libmissing/strcase.h | 47 ++++++++++++++++++++++++++++++++++ libmissing/strcasecmp.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ libmissing/strncasecmp.c | 2 ++ src/include/libmissing.h | 1 + 8 files changed, 181 insertions(+), 24 deletions(-) commit 00a925df413c9496096ea344d1c62bc479aeb3d7 Author: Yoann Vandoorselaere Date: Sun Jun 26 16:13:17 2005 +0000 Use C99 __VA_ARGS__ instead of GNU extension. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6678 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-plugin.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 098800f603b0f39b052faedfdd00b534b3834a81 Author: Yoann Vandoorselaere Date: Sun Jun 26 16:12:09 2005 +0000 Compile Python bindings with -DHAVE_CONFIG_H. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6677 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/setup.py.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 98ea7903cf37191c381617d471fb93a1d769f596 Author: Yoann Vandoorselaere Date: Sun Jun 26 12:48:47 2005 +0000 Be more C89 friendly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6676 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 5 ++++- src/idmef-message-read.c | Bin 77652 -> 77688 bytes .../GenerateIDMEFMessagePrintC.pm | 5 ++++- src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 4 ++-- 4 files changed, 10 insertions(+), 4 deletions(-) commit f6a7c84a4514effe05334ec08ad7f8819e59a6bf Author: Yoann Vandoorselaere Date: Sun Jun 26 12:22:54 2005 +0000 More C89 compliance where possible. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6675 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4aea5b94d44bf0102fcad75fd5763b3f9962dcf9 Author: Yoann Vandoorselaere Date: Sun Jun 26 12:22:19 2005 +0000 Include libmissing.h / config.h first. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6674 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 4 +++- prelude-adduser/server.c | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) commit d25aab01e79976fe872ccd57518f99d3430c4f48 Author: Yoann Vandoorselaere Date: Sun Jun 26 12:21:35 2005 +0000 Include config.h if available. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6673 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-list.h | 4 ++++ src/libprelude-error/prelude-error.h.in | 4 ++++ 2 files changed, 8 insertions(+) commit 2f8706ab6f641ab9a9b84e4970461b94a43d9b6d Author: Yoann Vandoorselaere Date: Sun Jun 26 12:20:16 2005 +0000 Include config.h / libmissing.h first. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6672 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 3 +++ src/prelude-client.c | 4 +++- src/prelude-option-wide.c | 4 +++- src/prelude-string.c | 4 +++- 4 files changed, 12 insertions(+), 3 deletions(-) commit 97a004534eb80873cf4b4c13c1acdd442a663a39 Author: Yoann Vandoorselaere Date: Sun Jun 26 12:19:14 2005 +0000 Fix typo. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6671 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 26dfc2987de726acd614145e84c80ce4232b9696 Author: Yoann Vandoorselaere Date: Sun Jun 26 12:18:53 2005 +0000 Cleanup. Use typedef for function callback. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6670 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-option.h | 27 +++++++++++++-------------- src/prelude-option.c | 18 ++++++++++-------- 2 files changed, 23 insertions(+), 22 deletions(-) commit d43e9789a03894687485ddece1d86c9ea4862c44 Author: Yoann Vandoorselaere Date: Sun Jun 26 12:18:03 2005 +0000 More C89 compliance where possible. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6669 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 2 +- src/idmef-wrappers-gen/idmef-tree.h | 10 +++++----- src/include/idmef-criterion-value.h | 2 +- src/include/idmef-tree-wrap.h | 8 ++++---- src/include/prelude-async.h | 2 +- src/include/prelude-client-profile.h | 1 + src/include/prelude-connection.h | 4 ++-- src/include/prelude-msg.h | 2 +- src/include/prelude-msgbuf.h | 2 +- 10 files changed, 18 insertions(+), 17 deletions(-) commit fdaa38864149c196f3c1a6d1a1289d3e6ad637a1 Author: Yoann Vandoorselaere Date: Sun Jun 19 09:43:32 2005 +0000 Thread safety work. Unlock the timer list mutex while the expiring timer callback is called, which allow the callback to use standard timer operation that will lock the timer list if needed. This fixes possible race condition in code depending on timer, and also should reduce contention on program depending a lot on timer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6659 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-timer.c | 59 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 23 deletions(-) commit 9045c9a21a9951b3e18d9d7e6fcd6cc487d09271 Author: Yoann Vandoorselaere Date: Sat Jun 18 12:10:34 2005 +0000 Update chown help. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6658 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 997fd32d4755a524ced04aa35f3dfa4020fbf74f Author: Yoann Vandoorselaere Date: Sat Jun 18 12:08:41 2005 +0000 Add a "chown" command. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6657 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 83 ++++++++++++++++++++++++++++++++++----- 1 file changed, 74 insertions(+), 9 deletions(-) commit 1166eb3d7b8f44acddff0153befb69c81378e660 Author: Yoann Vandoorselaere Date: Sat Jun 18 10:25:19 2005 +0000 In case the template configuration file already exist chown() it to the possibly new UID/GID before returning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6656 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit c739a27133b33343c07d34331225db3099664136 Author: Yoann Vandoorselaere Date: Wed Jun 15 06:51:28 2005 +0000 Modify --uid and --gid so that they can lookup user/group name directly. When started on an existing profile, keep using the existing profile UID/GID. If we're going to change the profile privilege because --uid / --gid were specified, warn the user so that he know what he is doing. GCC4 shutup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6637 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 135 +++++++++++++++++++++++++++++++++----- 1 file changed, 120 insertions(+), 15 deletions(-) commit 0765d4348c2e3ece96e85424ba80d5cd3e57ddd6 Author: Yoann Vandoorselaere Date: Tue Jun 14 11:01:26 2005 +0000 Cleanup. GCC4 shut up. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6635 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 47 +++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 26 deletions(-) commit f7e9ca15035464a5c33fe448da654ac4d5694422 Author: Yoann Vandoorselaere Date: Mon Jun 13 15:45:45 2005 +0000 Remove un-needed mutex lock. Do the list deletion while we have the mutex locked in get_next_job() rather than calling prelude_async_del() afterwise. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6632 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit cf8aa6519731dc99a19240e38a1666b1ebefe897 Author: Yoann Vandoorselaere Date: Mon Jun 13 07:50:28 2005 +0000 Only flush the global failover when every connection are up. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6630 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3346e9139eba088ffa7e5ddabc2d299bf8a6521c Author: Yoann Vandoorselaere Date: Fri Jun 10 13:05:13 2005 +0000 gcc4 shut-up git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6545 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | Bin 77642 -> 77652 bytes src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) commit 8e1cdfd5d05fd789cf58893ccecea3ad7c2a644d Author: Yoann Vandoorselaere Date: Fri Jun 10 13:02:25 2005 +0000 Missing includes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6544 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 7f261ff9b75ae4d542c16b88db5ab2c9cce99341 Author: Yoann Vandoorselaere Date: Fri Jun 10 12:33:03 2005 +0000 gcc4 shut up. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6540 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/tls-register.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit d2cd6d029b22683659889c0e6148b467b5fabf24 Author: Yoann Vandoorselaere Date: Fri Jun 10 12:32:40 2005 +0000 Make line unsigned. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6539 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 2 +- src/include/common.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 727a4f3b96979b3c5283347af6de308305d3af08 Author: Yoann Vandoorselaere Date: Fri Jun 10 11:03:48 2005 +0000 gcc4 shut up. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6536 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 7ed4d0253edafe2a54eb76ff34200e2b13513eb5 Author: Yoann Vandoorselaere Date: Fri Jun 10 11:02:06 2005 +0000 gcc4 shut up. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6535 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3d1526b98fd6894e58f7886b16f33b32d12d0c27 Author: Yoann Vandoorselaere Date: Fri Jun 10 11:01:19 2005 +0000 Fix bogus macro. gcc4 shut-up. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6534 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-additional-data.h | 182 ++++++++++++++++++------------------ 1 file changed, 91 insertions(+), 91 deletions(-) commit d79368ab7ee3b2d81dc7f0b70cb08920c3df027f Author: Yoann Vandoorselaere Date: Fri Jun 10 10:36:05 2005 +0000 gcc4 shut up. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6533 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a320232c5a5f2f5d2c067eae851665f378558a1a Author: Yoann Vandoorselaere Date: Fri Jun 10 10:33:49 2005 +0000 gcc4 shut up. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6532 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f01ba288dafd11e7ff8cd4024f7b79a911a591f Author: Yoann Vandoorselaere Date: Fri Jun 10 10:17:50 2005 +0000 gcc4 shut up. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6531 09c5ec92-17d4-0310-903a-819935f44dba src/tls-util.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 73d88611c7fbf5342f89373904d9f2c528bcf462 Author: Yoann Vandoorselaere Date: Wed Jun 8 19:12:42 2005 +0000 Fix a timer assertion in case we reconnected fine, but we failed flushing the failover pool. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6529 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 6200b5643a9962dacc1d1803da5bc8aba91580d4 Author: Yoann Vandoorselaere Date: Tue Jun 7 15:03:53 2005 +0000 API documentation fix from Christian Altmeier . git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6527 09c5ec92-17d4-0310-903a-819935f44dba docs/api/tmpl/idmef-path.sgml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit e69d8ace7ccf222cb2cb9628983a254cd4fc25ed Author: Yoann Vandoorselaere Date: Mon Jun 6 15:29:05 2005 +0000 More config_set() fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6522 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 45 ++++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 15 deletions(-) commit 2e84732768d7f067780df781fe9931b13374e751 Author: Yoann Vandoorselaere Date: Mon Jun 6 14:47:40 2005 +0000 Make sure prelude_string_destroy_internal() reset size and index to 0. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6521 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 2 ++ 1 file changed, 2 insertions(+) commit bb92c53ff274c51a2350ade869ea902bed44c920 Author: Yoann Vandoorselaere Date: Mon Jun 6 14:17:46 2005 +0000 More fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6520 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a2099b1c9cf849ad20382edc81c4f9ecb2fd43c2 Author: Yoann Vandoorselaere Date: Mon Jun 6 12:44:40 2005 +0000 Stop trying to be clever about how to insert newline. It's not our job, really. Up to the user. Make config_set() work again. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6519 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 39 ++++++++------------------------------- 1 file changed, 8 insertions(+), 31 deletions(-) commit e0e053aeefc8bf9b1c2b15c0f2a219e722555f78 Author: Yoann Vandoorselaere Date: Fri Jun 3 08:23:12 2005 +0000 Update GnuLIB code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6511 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 14 +++++++------- libmissing/m4/gnulib.m4 | 4 ++-- libmissing/pathmax.h | 11 +++-------- 3 files changed, 12 insertions(+), 17 deletions(-) commit fdcd6c694620affc2ecb3d218dd3c7fc272dcba2 Author: Yoann Vandoorselaere Date: Thu Jun 2 13:57:11 2005 +0000 Update documentation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6506 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 24 ++++++++++++++++-------- docs/api/tmpl/idmef-criterion-value.sgml | 1 + 2 files changed, 17 insertions(+), 8 deletions(-) commit 22d2969ee70593bb8fe96e97afd461baee81d0a6 Author: Yoann Vandoorselaere Date: Thu Jun 2 11:37:25 2005 +0000 Include Prelude.pm in the distribution. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6504 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a5371b207790797a4dea23bfa9b8e708bec96830 Author: Yoann Vandoorselaere Date: Thu Jun 2 11:37:03 2005 +0000 Fix distcheck on platform using lib64. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6503 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/setup.py.in | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 6336bea02febdb64f169855bbb5805b368282ec9 Author: Yoann Vandoorselaere Date: Thu Jun 2 10:14:36 2005 +0000 Fix some 64-bit warnings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6501 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 9 +++++++-- prelude-adduser/server.c | 10 +++++++--- src/prelude-io.c | 11 +++++++---- src/tls-auth.c | 18 ++++++++++++++++-- 4 files changed, 37 insertions(+), 11 deletions(-) commit f064e8e49ce7782908c4fe793a610db2e1e6c76c Author: Yoann Vandoorselaere Date: Thu Jun 2 08:14:46 2005 +0000 Introduce matching of broken down time criterion value. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6500 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 305 ++++++++++++++++++++++++++++++++++++ src/include/idmef-criterion-value.h | 9 +- 2 files changed, 311 insertions(+), 3 deletions(-) commit 1e620dee96beac57d028e0906b80121e34ad6e6d Author: Yoann Vandoorselaere Date: Wed Jun 1 18:05:20 2005 +0000 Plug leak. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6497 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit ef2dad8c5ed4dc3f56ed4519e217605d133d8155 Author: Yoann Vandoorselaere Date: Sat May 28 17:28:16 2005 +0000 Update NEWS, bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6469 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 7 +++++++ configure.in | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit 6de312bfc8398b4f5dccec6b83cddcb0e1110208 Author: Yoann Vandoorselaere Date: Fri May 27 07:18:22 2005 +0000 Update gnulib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6465 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/extensions.m4 | 4 ++++ 1 file changed, 4 insertions(+) commit 6b66d87fa7480b837bc9ead5cb67b0846caea7bc Author: Yoann Vandoorselaere Date: Fri May 27 07:18:08 2005 +0000 Fix last line insertion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6464 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6477f541beda1bae3c274c86a92c12fbffcfff54 Author: Yoann Vandoorselaere Date: Fri May 27 06:54:26 2005 +0000 Handle "" as default. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6463 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit bf59bfd923db7e83bd66f7a5da7753f57303f86c Author: Yoann Vandoorselaere Date: Fri May 27 06:37:42 2005 +0000 Fix parsing of unquoted value. Always read last line even if not \n terminated. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6462 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) commit d3f4c8288faa8a29e2be3f746c67691c622275ba Author: Yoann Vandoorselaere Date: Fri May 27 05:15:53 2005 +0000 Handle optional field in PRELUDE_PLUGIN_OPTION_DECLARE_STRING_CB. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6461 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-plugin.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 03e570c2e7832400b3b982d567c2e8006c97149e Author: Yoann Vandoorselaere Date: Thu May 26 13:00:21 2005 +0000 evert to using PF_UNSPEC for connection. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6453 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 449b3739a10a35587831480e2525b353e2e8952f Author: Yoann Vandoorselaere Date: Thu May 26 12:19:26 2005 +0000 Bump version number, update NEWS/documentation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6450 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 14 ++++++++++++++ configure.in | 2 +- docs/api/libprelude-decl.txt | 20 ++++++++++---------- 3 files changed, 25 insertions(+), 11 deletions(-) commit 8cc22ad14f717d0a77ebe23b8c8708d7d83673bc Author: Yoann Vandoorselaere Date: Thu May 26 12:04:18 2005 +0000 Update GnuLIB code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6449 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/gnulib.m4 | 1 + libmissing/m4/minmax.m4 | 38 ++++++++++++++++++++++++++++++++++++++ libmissing/minmax.h | 13 ++++++++++--- 3 files changed, 49 insertions(+), 3 deletions(-) commit 0ff03257204006a3ed93dfcd112b4e97ecce9e28 Author: Yoann Vandoorselaere Date: Thu May 26 12:03:27 2005 +0000 Kill warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6448 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 1 + 1 file changed, 1 insertion(+) commit 3a15b0ac342036ab901e53a390273ac493e6a5e4 Author: Yoann Vandoorselaere Date: Thu May 26 10:17:33 2005 +0000 Cleanup, fix more potential problem on set(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6447 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 175 +++++++++++++++++++++++++++------------------------- 1 file changed, 91 insertions(+), 84 deletions(-) commit 6b3a9472c7cc84c31be98302168a76a799e6f5ae Author: Yoann Vandoorselaere Date: Thu May 26 10:16:31 2005 +0000 More careful error checking. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6446 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 463a0abe040f6b54ff4428b8be9728921c5a073b Author: Yoann Vandoorselaere Date: Wed May 25 08:36:27 2005 +0000 Optional argument for IDMEF stuff. Enforce destroying the IDMEF value in case we get a NULL argument. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6437 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 89 ++++++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 45 deletions(-) commit fee051b694ce9e4056ab34a4e81e377ff20de675 Author: Yoann Vandoorselaere Date: Wed May 25 08:33:05 2005 +0000 Only enforce the value to be NULL instead of '\0' when the option argument is optional. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6436 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 55f572e7b91f1d643ec1a00c3e07dcf29a54ca39 Author: Sebastien Tricaud Date: Wed May 25 08:16:05 2005 +0000 gtkdoc stuff git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6435 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2a0d2206ff5b19c4e6b678cbfbf8983ad6f945b6 Author: Yoann Vandoorselaere Date: Wed May 25 00:34:04 2005 +0000 Untabify. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6434 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 40 ++++++++++++------------ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 10 +++--- 2 files changed, 25 insertions(+), 25 deletions(-) commit 72ab0530baf5ebb15cd126f64f4ff5d6257efab1 Author: Yoann Vandoorselaere Date: Wed May 25 00:33:33 2005 +0000 Allow resetting statically embedded IDMEF structure to NULL, as we does for referenced structure. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6433 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 120 +++++++++++++++-------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 6 +- 2 files changed, 84 insertions(+), 42 deletions(-) commit fcf15fabbb7c0a4f39c680c8a5fc47cb026f20e7 Author: Yoann Vandoorselaere Date: Wed May 25 00:26:38 2005 +0000 Fix invalid merge of prelude_string_t flags when sharing a string referenced by another prelude_string_t object. This was leading to a loss of the PRELUDE_STRING_OWN_STRUCTURE flags, and this to a possible memory leak. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6432 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit bf5aae6f66acb643557025fc40bdc6a6ac65595e Author: Yoann Vandoorselaere Date: Tue May 24 17:18:42 2005 +0000 Factorise code. Cleanup. Fix warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6430 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 160 ++++++++++++++++------------------------------------ 1 file changed, 50 insertions(+), 110 deletions(-) commit 43828b50fd70653b167c3ad9196eaf72ee592b20 Author: Yoann Vandoorselaere Date: Tue May 24 10:39:53 2005 +0000 Correct the way criteria value are escaped, thanks to Frédéric Motte and Sebastien Tricaud git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6429 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) commit e4048b10109c69371f1bc67ea5cdde9ba991977f Author: Yoann Vandoorselaere Date: Tue May 24 07:29:35 2005 +0000 Another flex workaround, since the previous one seem to have created problem. Don't rely on config.h at all. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6428 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 6 ------ src/idmef-criteria-string.lex.l | 26 +++++++++++++++++++++++--- 2 files changed, 23 insertions(+), 9 deletions(-) commit e25392f2d9292a7656ce29f8ee734f785e6f6bf0 Author: Yoann Vandoorselaere Date: Mon May 23 11:50:27 2005 +0000 Make some public function const. Untabify. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6427 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 112 +++++++++++++++++++++++----------------------- src/include/idmef-value.h | 18 ++++---- 2 files changed, 65 insertions(+), 65 deletions(-) commit eb9081b017d6e5946b2a3c20ef3341b256411f04 Author: Yoann Vandoorselaere Date: Mon May 23 11:35:28 2005 +0000 Cleanup, fix memleak. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6426 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 50 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 16 deletions(-) commit 153bf86054e99d86e79d4c7016aa72256edb5eb9 Author: Yoann Vandoorselaere Date: Mon May 23 09:55:08 2005 +0000 Fix option memory leak. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6424 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 0ab6ac6d11f82cf3bbb74074e58ce3c8ba39a0e0 Author: Yoann Vandoorselaere Date: Fri May 20 15:45:23 2005 +0000 Fix FTW module. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6422 09c5ec92-17d4-0310-903a-819935f44dba libmissing/ftw.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) commit e95bdbec8cb66cac7f6ab7c6c11f524868200994 Author: Yoann Vandoorselaere Date: Thu May 19 10:36:55 2005 +0000 Bump version number, update doc & NEWS. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6417 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 32 ++++++++++++++++++++++++++++++++ configure.in | 2 +- docs/api/libprelude-decl.txt | 26 +++++++++++++++++++++++--- 3 files changed, 56 insertions(+), 4 deletions(-) commit 873e2b3a39beb5c317dabab016b42ef02287df8d Author: Yoann Vandoorselaere Date: Thu May 19 10:20:54 2005 +0000 Improve error checking. Better security. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6416 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit 42a0daa7ce98ebb5e16ff7894a2b69b94609100a Author: Yoann Vandoorselaere Date: Thu May 19 10:19:23 2005 +0000 - If error buffer is empty, try to fill it from the option return value. - Enforce longopt on PRELUDE_OPTION_TYPE_WIDE. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6415 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit d75c7acaa404f51ddafe9d9c84615eff9d490594 Author: Yoann Vandoorselaere Date: Thu May 19 09:25:47 2005 +0000 FTS module has several portability problem, and some of it's dependency got issues too. Revert to FTW for now. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6414 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 22 +- libmissing/cycle-check.c | 93 --- libmissing/cycle-check.h | 44 -- libmissing/dev-ino.h | 13 - libmissing/dirfd.c | 30 - libmissing/dirfd.h | 46 -- libmissing/dup-safer.c | 50 -- libmissing/error.c | 304 -------- libmissing/error.h | 66 -- libmissing/exit.h | 32 - libmissing/exitfail.c | 27 - libmissing/exitfail.h | 20 - libmissing/fd-safer.c | 61 -- libmissing/fts.c | 1441 ------------------------------------- libmissing/fts_.h | 182 ----- libmissing/ftw.c | 125 ++++ libmissing/ftw_.h | 36 + libmissing/hash.c | 1050 --------------------------- libmissing/hash.h | 88 --- libmissing/intprops.h | 65 -- libmissing/lstat.c | 23 - libmissing/m4/dirfd.m4 | 89 --- libmissing/m4/error.m4 | 22 - libmissing/m4/exitfail.m4 | 14 - libmissing/m4/fts.m4 | 36 - libmissing/m4/ftw.m4 | 14 + libmissing/m4/gnulib.m4 | 16 +- libmissing/m4/hash.m4 | 14 - libmissing/m4/lstat.m4 | 24 - libmissing/m4/pathmax.m4 | 13 + libmissing/m4/stat-macros.m4 | 14 - libmissing/m4/stat.m4 | 32 - libmissing/m4/strerror_r.m4 | 49 -- libmissing/m4/unistd-safer.m4 | 25 - libmissing/m4/xalloc.m4 | 25 - libmissing/pathmax.h | 54 ++ libmissing/stat-macros.h | 255 ------- libmissing/stat.c | 111 --- libmissing/unistd-safer.h | 22 - libmissing/xalloc-die.c | 45 -- libmissing/xalloc.h | 79 -- libmissing/xmalloc.c | 229 ------ prelude-adduser/prelude-adduser.c | 85 ++- src/include/libmissing.h | 10 +- 44 files changed, 316 insertions(+), 4779 deletions(-) commit 01f232a640d0b05fe770c852bfb30bbb2f7dd996 Author: Yoann Vandoorselaere Date: Wed May 18 19:09:23 2005 +0000 Check default family for both register/registration-server and only if input address is missing. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6412 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 2 +- prelude-adduser/server.c | 4 ++-- prelude-adduser/server.h | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) commit a01881bdd81b68a088dfdfed90a96ec7e43a2e0c Author: Yoann Vandoorselaere Date: Wed May 18 18:53:21 2005 +0000 Fix distcheck. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6411 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/fts.m4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8529e14fae65a5594549867be8583568810a1ddd Author: Yoann Vandoorselaere Date: Wed May 18 17:02:07 2005 +0000 More check for duplicate options, include long and short opt. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6409 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) commit 797d950f3690899de88d8f98e22eea22d4a049fd Author: Yoann Vandoorselaere Date: Wed May 18 17:01:20 2005 +0000 Quick hack so that generated lex file include config.h from the top. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6408 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 6 ++++++ 1 file changed, 6 insertions(+) commit 6ab263c9070bc4b1f4ca5024c56d87913d6670d0 Author: Yoann Vandoorselaere Date: Wed May 18 16:06:26 2005 +0000 Modify header file that include public system header so that they check whether HAVE_CONFIG_H is defined, and include config.h if it is. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6403 09c5ec92-17d4-0310-903a-819935f44dba src/include/common.h | 4 ++++ src/include/idmef-path.h | 4 ++++ src/include/idmef-time.h | 4 ++++ src/include/idmef.h | 6 +++++- src/include/prelude-client-profile.h | 4 ++++ src/include/prelude-extract.h | 4 ++++ src/include/prelude-inttypes.h.in | 3 +++ src/include/prelude-io.h | 4 ++++ src/include/prelude-log.h | 5 ++++- src/include/prelude-string.h | 4 ++++ 10 files changed, 40 insertions(+), 2 deletions(-) commit 71880464e6c003d31a82601ca46361ef5c5d1292 Author: Yoann Vandoorselaere Date: Wed May 18 15:15:16 2005 +0000 hash mark always on first column. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6401 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 2 +- src/include/prelude-extract.h | 4 ++-- src/include/prelude-inttypes.h.in | 27 ++++++++++++++------------- src/prelude-io.c | 4 ++-- src/prelude-timer.c | 4 ++-- 5 files changed, 21 insertions(+), 20 deletions(-) commit 981fbe168f7fd2cbf8cd14dbc226c5d42de03f81 Author: Yoann Vandoorselaere Date: Wed May 18 10:21:37 2005 +0000 More detailed error message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6400 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d637f47a9d5b150f4df0d5134145275aac49136c Author: Yoann Vandoorselaere Date: Tue May 17 19:23:40 2005 +0000 Some more code that should help in finding the default address family on ipv6 enabled box. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6398 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 105 +++++++++++++++++++++++++++++++---------- prelude-adduser/tls-register.c | 5 +- 2 files changed, 82 insertions(+), 28 deletions(-) commit 474ee3cc40116c584e73fe61789b4eb525727556 Author: Yoann Vandoorselaere Date: Tue May 17 13:44:39 2005 +0000 Include missing fts dependencie. xmalloc-die. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6396 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 16 ++- libmissing/error.c | 304 ++++++++++++++++++++++++++++++++++++++++++++ libmissing/error.h | 66 ++++++++++ libmissing/exit.h | 32 +++++ libmissing/exitfail.c | 27 ++++ libmissing/exitfail.h | 20 +++ libmissing/m4/error.m4 | 22 ++++ libmissing/m4/exitfail.m4 | 14 ++ libmissing/m4/gnulib.m4 | 6 +- libmissing/m4/strerror_r.m4 | 49 +++++++ libmissing/xalloc-die.c | 45 +++++++ 11 files changed, 597 insertions(+), 4 deletions(-) commit db40cdfa370eea9be133012117601b0ddea0c280 Author: Yoann Vandoorselaere Date: Tue May 17 13:39:25 2005 +0000 Fix off by one. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6395 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1bb832c7536dd493c21b490ce23cf587c2d91952 Author: Yoann Vandoorselaere Date: Tue May 17 10:07:33 2005 +0000 Update GnuLib code. Include FTS module and dependencies. This fix #77. Thanks to Henry Culcon for his work on the GnuLib FTS module. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6394 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 16 +- libmissing/alloca.c | 491 +++++++++++++ libmissing/alloca.h | 52 -- libmissing/alloca_.h | 8 +- libmissing/asnprintf.c | 10 +- libmissing/cycle-check.c | 93 +++ libmissing/cycle-check.h | 44 ++ libmissing/dev-ino.h | 13 + libmissing/dirfd.c | 30 + libmissing/dirfd.h | 46 ++ libmissing/dup-safer.c | 50 ++ libmissing/fd-safer.c | 61 ++ libmissing/fts.c | 1441 +++++++++++++++++++++++++++++++++++++ libmissing/fts_.h | 182 +++++ libmissing/gai_strerror.c | 10 +- libmissing/getaddrinfo.c | 10 +- libmissing/getaddrinfo.h | 10 +- libmissing/gettext.h | 10 +- libmissing/hash.c | 1050 +++++++++++++++++++++++++++ libmissing/hash.h | 88 +++ libmissing/inet_ntop.h | 10 +- libmissing/intprops.h | 65 ++ libmissing/lstat.c | 23 + libmissing/m4/dirfd.m4 | 89 +++ libmissing/m4/fts.m4 | 36 + libmissing/m4/gnulib.m4 | 16 +- libmissing/m4/hash.m4 | 14 + libmissing/m4/lstat.m4 | 24 + libmissing/m4/stat-macros.m4 | 14 + libmissing/m4/stat.m4 | 32 + libmissing/m4/unistd-safer.m4 | 25 + libmissing/m4/xalloc.m4 | 25 + libmissing/minmax.h | 10 +- libmissing/mktime.c | 10 +- libmissing/printf-args.c | 10 +- libmissing/printf-args.h | 10 +- libmissing/printf-parse.c | 10 +- libmissing/printf-parse.h | 10 +- libmissing/regex.c | 10 +- libmissing/regex.h | 12 +- libmissing/snprintf.c | 10 +- libmissing/snprintf.h | 10 +- libmissing/stat-macros.h | 255 +++++++ libmissing/stat.c | 111 +++ libmissing/stdbool_.h | 10 +- libmissing/strdup.c | 10 +- libmissing/strdup.h | 10 +- libmissing/strndup.c | 10 +- libmissing/strndup.h | 10 +- libmissing/strnlen.c | 10 +- libmissing/strpbrk.c | 10 +- libmissing/strpbrk.h | 10 +- libmissing/strsep.c | 33 +- libmissing/strsep.h | 33 +- libmissing/time_r.c | 10 +- libmissing/time_r.h | 10 +- libmissing/timegm.c | 10 +- libmissing/timegm.h | 10 +- libmissing/unistd-safer.h | 22 + libmissing/vasnprintf.c | 10 +- libmissing/vasnprintf.h | 10 +- libmissing/vsnprintf.c | 10 +- libmissing/vsnprintf.h | 10 +- libmissing/xalloc.h | 79 ++ libmissing/xmalloc.c | 229 ++++++ libmissing/xsize.h | 10 +- prelude-adduser/prelude-adduser.c | 1 - src/include/libmissing.h | 16 +- 68 files changed, 4874 insertions(+), 265 deletions(-) commit 7d4b3c5572fe994ac66a24741b2e462a203380a0 Author: Yoann Vandoorselaere Date: Wed May 11 23:14:55 2005 +0000 Include stdio and unistd header. Fix broken compilation on MacOSX, and make the header self sufficient. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6354 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-io.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5a28cbca5cbc482d92ee50ead17840cd25f97af3 Author: Yoann Vandoorselaere Date: Tue May 10 17:27:56 2005 +0000 Remove debug spew. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6342 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 8a823ce249005b08fe9f55b5891cd27c6f494d5e Author: Yoann Vandoorselaere Date: Tue May 10 17:15:55 2005 +0000 Update gnulib getaddrinfo code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6341 09c5ec92-17d4-0310-903a-819935f44dba libmissing/getaddrinfo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 58550ef73c05be634138adb533c903a49c5e0a3e Author: Yoann Vandoorselaere Date: Tue May 10 17:14:34 2005 +0000 Be more descriptive about configuration file error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6340 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/err-sources.h.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 708aea64d07c4ed3dc41c44d4284623be975e153 Author: Yoann Vandoorselaere Date: Tue May 10 17:13:59 2005 +0000 Move configuration template generation to prelude-adduser. Make more sense, and is more intuitive. Simplify code too. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6339 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 49 ++++++++++++++++ src/prelude-client.c | 115 ++++++++++++-------------------------- 2 files changed, 86 insertions(+), 78 deletions(-) commit 3c4c3ed957c9c0d57bab916e7cf19634e67b1a56 Author: Yoann Vandoorselaere Date: Tue May 10 16:24:26 2005 +0000 Set profile uid/gid as soon as _prelude_client_profile_new() is called. We might get a profile error even before prelude_client_profile_init() is called, so this is needed to get a decent 'prelude-adduser config message'. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6337 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 60cfca30be68436f8578bf75293e3cb875a22b49 Author: Yoann Vandoorselaere Date: Tue May 10 15:24:42 2005 +0000 New feature, provide the ability to get the debug level through a LIBPRELUDE_DEBUG environment variable. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6336 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 72e2bbe5f97603cc9e79f72b9ee91048d68b7c80 Author: Yoann Vandoorselaere Date: Tue May 10 09:14:25 2005 +0000 Kill warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6335 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ba1cd13a06bb821708cb903c1ec6a606b11c31c3 Author: Yoann Vandoorselaere Date: Tue May 10 09:12:20 2005 +0000 Update GnuLib code. Include timegm module. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6334 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 29 +- libmissing/allocsa.c | 139 --------- libmissing/allocsa.h | 113 -------- libmissing/allocsa.valgrind | 7 - libmissing/inet_ntop.c | 23 +- libmissing/inet_ntop.h | 32 ++- libmissing/m4/allocsa.m4 | 15 - libmissing/m4/eealloc.m4 | 32 --- libmissing/m4/extensions.m4 | 26 ++ libmissing/m4/gettext.m4 | 8 +- libmissing/m4/gnulib.m4 | 11 +- libmissing/m4/inet_ntop.m4 | 11 +- libmissing/m4/mktime.m4 | 200 +++++++++++++ libmissing/m4/setenv.m4 | 70 ----- libmissing/m4/time_r.m4 | 38 +++ libmissing/m4/timegm.m4 | 37 +++ libmissing/mktime.c | 668 ++++++++++++++++++++++++++++++++++++++++++++ libmissing/regex.c | 3 + libmissing/setenv.c | 328 ---------------------- libmissing/setenv.h | 54 ---- libmissing/time_r.c | 69 +++++ libmissing/time_r.h | 46 +++ libmissing/timegm.c | 43 +++ libmissing/timegm.h | 23 ++ libmissing/unsetenv.c | 99 ------- src/include/libmissing.h | 6 +- 26 files changed, 1235 insertions(+), 895 deletions(-) commit ee801182d9e87d46b8fcbae2e800ceca97b8c66b Author: Yoann Vandoorselaere Date: Tue May 10 09:11:56 2005 +0000 Use timegm() for GMT offset calculation. timegm() will be included from GnuLib if not available. Implement prelude_get_gmt_offset_from_time() and prelude_get_gmt_offset_from_tm(). Make idmef_time_set_from_timeval() and idmef_time_set_from_time() use prelude_get_gmt_offset_from_time() instead of prelude_get_gmt_offset(), so that creating an idmef_time_t object from a time that is not "now", will use the correct GMT offset. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6333 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 56 ++++++++++++++++++++++++++++++++-------------------- src/idmef-time.c | 4 ++-- src/include/common.h | 4 ++++ 3 files changed, 41 insertions(+), 23 deletions(-) commit f3e97c527acf079d06386258e1e9b6d27728f39b Author: Yoann Vandoorselaere Date: Tue May 10 08:14:13 2005 +0000 Include stdlib.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6332 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c238a8e2319219fb0f5a2d9552506aa9947b077c Author: Yoann Vandoorselaere Date: Mon May 9 23:42:12 2005 +0000 Use AI_ADDRCONFIG when the system define it. This fix connection issue when resolving a host that have both ipv4 and ipv6 address but our node doesn't have one of these. Many thanks to Henry Culver for his help and testing on this issue. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6331 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 8 ++++++-- prelude-adduser/server.c | 5 ++--- src/prelude-connection.c | 6 +++++- 3 files changed, 13 insertions(+), 6 deletions(-) commit 7f29235c7307e55e97e1ee2cb54adbace1642cf1 Author: Yoann Vandoorselaere Date: Mon May 9 08:39:02 2005 +0000 Avoid potential portability problem. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6328 09c5ec92-17d4-0310-903a-819935f44dba src/tls-util.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 1e8a72cda7028f35dc9ede47abe21887698c47b7 Author: Yoann Vandoorselaere Date: Mon May 9 08:29:14 2005 +0000 Avoid not portable %hh convertion specifier. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6327 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 62 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 9 deletions(-) commit b36e3a2704b6dd722e85170529250ec4bfc54b07 Author: Yoann Vandoorselaere Date: Sun May 8 21:09:03 2005 +0000 Avoid not portable %hh convertion specifier. Make idmef-message-print print GMT offset. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6324 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 5 ++++- src/idmef-message-print.c | 11 +++++++++-- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintC.pm | 11 +++++++++-- 3 files changed, 22 insertions(+), 5 deletions(-) commit e4925b85af54cc1ef46c3370fb2249f924ac9969 Author: Yoann Vandoorselaere Date: Sat May 7 14:12:55 2005 +0000 Check that connection string is not NULL. Needed since last connection-pool change. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6318 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d655dd1dafac713f15c34851d8a652ff6cf55e8a Author: Yoann Vandoorselaere Date: Sat May 7 14:03:03 2005 +0000 Typo. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6317 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86a292c12e5888f4aa2307557d3292d8c80a1d5d Author: Yoann Vandoorselaere Date: Sat May 7 00:49:23 2005 +0000 oops. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6316 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit cd37ac4a28a99b2d1b5d371d8a0cf13d89e2f16b Author: Yoann Vandoorselaere Date: Sat May 7 00:47:21 2005 +0000 Remove dirty prelude_timegm() hack. This version should be faster and not subject to portability issue. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6315 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) commit 65bde34656393ccaf98aa609cfed40f83f6ed761 Author: Yoann Vandoorselaere Date: Fri May 6 17:16:41 2005 +0000 Only print '+' sign on the top of the GMT offset when required. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6310 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8c2e05459f4d6001eda29c9d991e54a2e7ad0449 Author: Yoann Vandoorselaere Date: Fri May 6 15:58:03 2005 +0000 Fix problem on some OS with snprintf and null value. Add a consistency check that trigger a warning when an option is already existing. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6309 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit ba00dd87a841f82b669164f17f5d32c41dd452ca Author: Yoann Vandoorselaere Date: Fri May 6 15:47:31 2005 +0000 Fix a Solaris issue where strptime() will zero the tm structure before the call. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6307 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 63a2d1311bc3d58d3ea635305dbc526adec64afa Author: Yoann Vandoorselaere Date: Sun May 1 22:16:23 2005 +0000 Update. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6286 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 23 +++++++++++++++++++++++ configure.in | 2 +- docs/api/libprelude-decl.txt | 14 ++++++++++++-- docs/api/tmpl/prelude-connection-pool.sgml | 2 +- 4 files changed, 37 insertions(+), 4 deletions(-) commit f92b1c844b67bd1f97dbc15f838f2fa3b9d71a6d Author: Yoann Vandoorselaere Date: Sun May 1 21:37:54 2005 +0000 Allow sensor to disable failover by settings specific connection-pool flags before client start. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6285 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection-pool.h | 4 ++- src/prelude-client.c | 31 +++++++++------------ src/prelude-connection-pool.c | 51 ++++++++++++++++++++++------------- 3 files changed, 49 insertions(+), 37 deletions(-) commit 52a02e441a0799bc62dfa9cf7cde97e1ad5ccf85 Author: Yoann Vandoorselaere Date: Fri Apr 29 08:27:57 2005 +0000 Add missing file->file_type IDMEF string. Untabify idmef-tree.h, and regenerate the code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6284 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 14 ++++++ src/idmef-message-read.c | Bin 77304 -> 77642 bytes src/idmef-message-write.c | 4 ++ src/idmef-tree-wrap.c | 69 +++++++++++++++++++++++++- src/idmef-wrappers-gen/idmef-tree.h | 93 ++++++++++++++++++------------------ src/include/idmef-message-id.h | 1 + src/include/idmef-tree-data.h | 1 + src/include/idmef-tree-wrap.h | 5 ++ 8 files changed, 140 insertions(+), 47 deletions(-) commit 06ac821fa62c19ea171de0167c8cd106846473a2 Author: Yoann Vandoorselaere Date: Wed Apr 27 12:09:06 2005 +0000 Fix copyright git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6269 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-wrappers-gen/GenerateIDMEFValueClassSwigMapping.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 185d58a5e9cb669b4acb7ce68cf2145db942d551 Author: Yoann Vandoorselaere Date: Wed Apr 27 12:00:11 2005 +0000 Implement idmef_path_is_list(), so that the user might know whether a specific part of the path is listed or not. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6266 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 11 +++++++++++ src/include/idmef-path.h | 2 ++ 2 files changed, 13 insertions(+) commit cf8e29eab645a0e0f229ab4dd0fb9f3062185ace Author: Yoann Vandoorselaere Date: Wed Apr 27 11:59:24 2005 +0000 Provide the ability to map return from idmef_value_get_object(), so that the underlying code that use the bindings know what type of object they are accessing. This will permit Python and Perl program to access the IDMEF tree much more easily. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6265 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 8 +- bindings/idmef-value-class-mapping.h | 78 +++++++++++++++ bindings/libprelude.i | 3 + bindings/libprelude_perl.i | 14 ++- bindings/libprelude_python.i | 14 +++ bindings/perl/Makefile.PL.in | 2 +- bindings/python/setup.py.in | 2 +- .../GenerateIDMEFValueClassSwigMapping.pm | 108 +++++++++++++++++++++ src/idmef-wrappers-gen/generator.pl | 7 +- 9 files changed, 228 insertions(+), 8 deletions(-) commit eb6349c330625e2f209dadd11244af0f257906d6 Author: Yoann Vandoorselaere Date: Tue Apr 26 08:46:36 2005 +0000 Fix for listed value which were created with IDMEF_VALUE_TYPE_CLASS instead of IDMEF_VALUE_TYPE_LIST. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6264 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 46f59252312722295697876555fc9f4ea740ed20 Author: Yoann Vandoorselaere Date: Mon Apr 25 18:38:51 2005 +0000 Don't call prelude_timer_lock_critical_region() from prelude_connection_pool_broadcast(), since this function might be called from a timer. This was causing sensor to deadlock when using PRELUDE_CLIENT_FLAGS_ASYNC_TIMER withou PRELUDE_CLIENT_FLAGS_ASYNC_SEND (example: Samhain). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6261 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection-pool.h | 1 + src/prelude-connection-pool.c | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) commit 6242e92e8a733dd59c7089521e6b00c654af3131 Author: Yoann Vandoorselaere Date: Mon Apr 25 18:02:24 2005 +0000 Use prelude_parse_address(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6260 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit a7e3344ec7218add39abf410d6616b938c27370b Author: Nicolas Delon Date: Sun Apr 24 18:46:37 2005 +0000 fix listed member initialisation when not used in a list context (i.e idmef_user_id_t in idmef_file_access_t) git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6254 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 3 ++- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) commit 24c87f0b91cf38d4f8f3b1197042c2d0694188fe Author: Yoann Vandoorselaere Date: Sat Apr 23 16:02:09 2005 +0000 Remove debugging spew. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6242 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 2 -- 1 file changed, 2 deletions(-) commit f19a52af97a7458920c3e2bc5b1a78956da9c43c Author: Yoann Vandoorselaere Date: Sat Apr 23 16:01:09 2005 +0000 Use prelude_parse_address(). Make registration-server provide a --listen option, to override the default. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6241 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 59 ++++++++++++++++++++++++++------------- prelude-adduser/server.c | 47 +++++++++++++++++++++---------- prelude-adduser/server.h | 4 ++- 3 files changed, 75 insertions(+), 35 deletions(-) commit 8e72b6b15d077c43cd26a7f6bcabd2a00e45f9ce Author: Yoann Vandoorselaere Date: Sat Apr 23 15:59:34 2005 +0000 Add a function for parsing address, including IETF advised format for IPv6 of [node]:port. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6240 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 47 ++++++++++++++++++++++++++++++++++++++++++++--- src/include/common.h | 2 ++ 2 files changed, 46 insertions(+), 3 deletions(-) commit 4393a164f2c80c60498319d93b71bf6d4a2ddd64 Author: Yoann Vandoorselaere Date: Fri Apr 22 14:46:49 2005 +0000 Remove deprecated. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6238 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/plaintext.c | 132 -------------------------------------------- 1 file changed, 132 deletions(-) commit dac5c3dca24ee5983400399c658814593c71fc91 Author: Yoann Vandoorselaere Date: Fri Apr 22 14:34:37 2005 +0000 Avoid EAGAIN on blocking connection. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6237 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit e7f783692167e5b356fca3ae67cef98d7e3e12fc Author: Yoann Vandoorselaere Date: Fri Apr 22 08:54:21 2005 +0000 Print error when we can't parse permission. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6233 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9a9e3c4109a840159b0d3f0d1e742453e4fde435 Author: Yoann Vandoorselaere Date: Fri Apr 22 08:49:30 2005 +0000 Make permission parser more fault tolerant. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6232 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) commit cc033537e559e6e422307e78be5b9bdcc5c92551 Author: Yoann Vandoorselaere Date: Sun Apr 17 23:08:46 2005 +0000 Bump version number, update documentation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6182 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 23 +++++++++++++++++++++++ configure.in | 2 +- docs/api/libprelude-decl.txt | 8 ++++---- docs/api/libprelude-sections.txt | 4 ++-- 4 files changed, 30 insertions(+), 7 deletions(-) commit dd35a763bcf52192ace745894d1643a83fcc731c Author: Yoann Vandoorselaere Date: Sun Apr 17 18:06:51 2005 +0000 Update doc, libmissing, etc. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6175 09c5ec92-17d4-0310-903a-819935f44dba docs/api/tmpl/prelude-client.sgml | 4 ++-- libmissing/Makefile.am | 2 +- libmissing/getaddrinfo.c | 8 +++----- libmissing/m4/gnulib.m4 | 2 +- src/include/prelude-log.h | 2 +- src/prelude-log.c | 2 +- 6 files changed, 9 insertions(+), 11 deletions(-) commit a10a3decfce176e5f61603fbcc982e86f06f2d14 Author: Yoann Vandoorselaere Date: Sun Apr 17 17:39:23 2005 +0000 Rename non conforming. Will not break anything. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6172 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 4 ++-- src/prelude-client.c | 39 +++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 22 deletions(-) commit 27feec756ecef626ca9a0c13511a79e1bcdac57e Author: Yoann Vandoorselaere Date: Sun Apr 17 15:39:04 2005 +0000 Fix an issue that some people have been experiencing when "adding" the Manager profile then immediatly starting prelude-manager without running the "registration-server" command, and then registering sensor. This would result in 'authentication failed' message until the Manager was restarted. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6169 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) commit 483379f35ca4cb7b8f44bb692ee5538ebca677b2 Author: Nicolas Delon Date: Sat Apr 16 22:06:25 2005 +0000 bug fix for idmef_time_get_gmt_offset where a negative value does not mean that there is an error git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6164 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_python.i | 3 +++ 1 file changed, 3 insertions(+) commit 427ad7ee1f6c955919329d849242823913ca6d03 Author: Yoann Vandoorselaere Date: Sat Apr 16 15:28:58 2005 +0000 Use '0' for protocol, more portable. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6157 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 2 +- src/prelude-connection.c | 11 +++-------- 2 files changed, 4 insertions(+), 9 deletions(-) commit f43c9912594649444c61b83af166632980373ac7 Author: Yoann Vandoorselaere Date: Sat Apr 16 15:24:31 2005 +0000 Fix backslash return. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6156 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8b786cf5e26722170a95abc3e9bd08921f28b99e Author: Yoann Vandoorselaere Date: Sat Apr 16 15:01:16 2005 +0000 Correct header inclusion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6155 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 8 -------- src/include/common.h | 4 +++- 2 files changed, 3 insertions(+), 9 deletions(-) commit 65f5bd2ad924f79730093246e06b3ddc87ea2924 Author: Yoann Vandoorselaere Date: Sat Apr 16 15:00:25 2005 +0000 Better socklen_t check. Avoid compile error on NetBSD. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6154 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 966b23fc51c5ad394b1f7518e6591655501b90b6 Author: Yoann Vandoorselaere Date: Sat Apr 16 14:59:45 2005 +0000 Use FTS in place of FTW for portability. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6153 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 89 +++++++++++---------------------------- 1 file changed, 25 insertions(+), 64 deletions(-) commit 62538ddfdab3a5639c0a12dd77378932c8907163 Author: Yoann Vandoorselaere Date: Fri Apr 15 18:28:39 2005 +0000 Now that prelude_msg_read() can be called recursively on received fragments, we need to check that the msg was not freed by the recursive read(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6147 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 37ce841ba243d130d63f7d4c0d1aa1a82616a4d1 Author: Yoann Vandoorselaere Date: Thu Apr 14 14:15:46 2005 +0000 Change prelude_timegm() so that it use setenv/unsetenv again due to specific OpenBSD problem with the putenv() equivalent. Since that also bring back some portability issue, add the setenv module to libmissing. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6143 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 17 ++- libmissing/allocsa.c | 139 +++++++++++++++++++ libmissing/allocsa.h | 113 +++++++++++++++ libmissing/allocsa.valgrind | 7 + libmissing/m4/allocsa.m4 | 15 ++ libmissing/m4/eealloc.m4 | 32 +++++ libmissing/m4/gnulib.m4 | 6 +- libmissing/m4/setenv.m4 | 70 ++++++++++ libmissing/setenv.c | 328 ++++++++++++++++++++++++++++++++++++++++++++ libmissing/setenv.h | 54 ++++++++ libmissing/unsetenv.c | 99 +++++++++++++ src/common.c | 21 ++- src/include/libmissing.h | 6 +- 13 files changed, 891 insertions(+), 16 deletions(-) commit 530aeef30b31cb4641995f14e4f22bb783cfa953 Author: Yoann Vandoorselaere Date: Thu Apr 14 14:13:18 2005 +0000 Fix a problem with library path ordering, fix compilation problem on some system where old version of the library where installed. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6142 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 98 ++++++++++++++++++++++----------------------- prelude-adduser/Makefile.am | 2 +- 2 files changed, 48 insertions(+), 52 deletions(-) commit c4e902b4d04ffe738da9c24dcf22168c53944dd5 Author: Yoann Vandoorselaere Date: Thu Apr 14 14:12:02 2005 +0000 Only modify the error string if needed. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6141 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 83f06f858c968b35d28a65dbe859ceb53860eeb2 Author: Yoann Vandoorselaere Date: Tue Apr 12 14:58:30 2005 +0000 Kill warnings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6113 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a13fc35feb73a0fc2d98691925d3482e037b545d Author: Yoann Vandoorselaere Date: Tue Apr 12 14:56:45 2005 +0000 Add missing. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6112 09c5ec92-17d4-0310-903a-819935f44dba libmissing/alloca_.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit 2a5658669f00c5b877c0ed91a84ed7756bab6dd8 Author: Nicolas Delon Date: Tue Apr 12 14:49:56 2005 +0000 bug fix: compute gmt offset with current time instead of epoch change parameter from int32 to long git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6111 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 15 ++++++++++----- src/include/common.h | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) commit 2b5d180636e05babefdf92f866d026513ede209a Author: Yoann Vandoorselaere Date: Sun Apr 10 15:51:30 2005 +0000 Some output beautifications... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6094 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 119 ++++++++++----------- .../GenerateIDMEFMessagePrintC.pm | 14 ++- 2 files changed, 67 insertions(+), 66 deletions(-) commit 837ea395372317852d9d9701de7342fd52bd9a94 Author: Yoann Vandoorselaere Date: Sun Apr 10 00:48:35 2005 +0000 Update documentation, NEWS. Bump version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6084 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 9 ++- configure.in | 2 +- docs/api/libprelude-decl.txt | 160 +++++++++++++++++--------------------- docs/api/libprelude-sections.txt | 37 ++++----- docs/api/tmpl/prelude-log.sgml | 7 ++ docs/api/tmpl/prelude-plugin.sgml | 84 +++++++++++++++++--- 6 files changed, 177 insertions(+), 122 deletions(-) commit d7588df398b030d962c4d10fc23ed64ff5882d07 Author: Yoann Vandoorselaere Date: Sun Apr 10 00:25:01 2005 +0000 Print the plugin name on error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6083 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 59eac6cdf3090ed0efc7dc713ed9c8ecda23af50 Author: Yoann Vandoorselaere Date: Sat Apr 9 21:32:30 2005 +0000 Update the getaddrinfo module with some local fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6078 09c5ec92-17d4-0310-903a-819935f44dba libmissing/getaddrinfo.c | 18 +++++++++--------- libmissing/m4/getaddrinfo.m4 | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) commit 2fffa77576e3a1d3810dc3e1fe649dd9cd15ac56 Author: Yoann Vandoorselaere Date: Sat Apr 9 21:20:42 2005 +0000 Remove deprecated. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6077 09c5ec92-17d4-0310-903a-819935f44dba libmissing/alloca_.h | 52 ---------------------------------------------------- 1 file changed, 52 deletions(-) commit a5c85e94df6862f62992eaf7e259b18c5f29cb89 Author: Yoann Vandoorselaere Date: Sat Apr 9 17:02:54 2005 +0000 Slight renaming. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6063 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 2 +- src/prelude-log.c | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) commit 61f699eac7a1144247a2f24019a7819b792062fe Author: Yoann Vandoorselaere Date: Sat Apr 9 13:18:02 2005 +0000 Handle option enumeration as int32, declare and send prelude_option_input_type_t. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6060 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-option.h | 11 +++++++++-- src/prelude-option-wide.c | 13 +++++++------ src/prelude-option.c | 28 ++++++++++++++++++++-------- 3 files changed, 36 insertions(+), 16 deletions(-) commit 52a3ba74df4a2382f410057de9bee2e6d6648e94 Author: Nicolas Delon Date: Sat Apr 9 12:11:50 2005 +0000 fix compilation errors with swig 1.3.24 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6057 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_perl.i | 6 +++--- bindings/libprelude_python.i | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit aafe681bc7b8a9a84f865693035bd6dd999ade7a Author: Yoann Vandoorselaere Date: Sat Apr 9 10:03:48 2005 +0000 Kill warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6054 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4122324a5e5c8f5cc03b553a81fc782c0ee839d5 Author: Yoann Vandoorselaere Date: Fri Apr 8 23:15:44 2005 +0000 Provide a way for the user to specify it's own logging function. Unify syslog and standard logging. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6053 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 2 ++ src/prelude-log.c | 81 ++++++++++++++++++++--------------------------- 2 files changed, 37 insertions(+), 46 deletions(-) commit 0ab2adb499276209b3d46d40995ef5b5dd2ec378 Author: Yoann Vandoorselaere Date: Fri Apr 8 23:08:58 2005 +0000 Remove now unused end of message part. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6050 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) commit 024994fb43a96134c7c9b98e8c9d94ed75ad769f Author: Yoann Vandoorselaere Date: Fri Apr 8 19:58:24 2005 +0000 Fix another option parsing problem introduced when merging the CLI & CFG option list. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6043 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) commit b09e99ebcf48341d17b2060fa44a268645f50445 Author: Yoann Vandoorselaere Date: Fri Apr 8 10:13:05 2005 +0000 Fix GnuIsm... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6037 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 603149c60826638c2571f1488ba6f9fc8ec4c133 Author: Yoann Vandoorselaere Date: Fri Apr 8 05:57:11 2005 +0000 Doc update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6036 09c5ec92-17d4-0310-903a-819935f44dba docs/api/tmpl/idmef-tree-wrap.sgml | 2 +- docs/api/tmpl/prelude-plugin.sgml | 136 ++----------------------------------- 2 files changed, 8 insertions(+), 130 deletions(-) commit 0516fa895dae644d231c3d2c946b10c7880e5ce3 Author: Yoann Vandoorselaere Date: Fri Apr 8 05:50:15 2005 +0000 Make prelude-adduser del work everywhere by implementing recursive deletion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6035 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 85 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 81 insertions(+), 4 deletions(-) commit cefb0b8034eb2425e54fe81400822a6d88a606de Author: Yoann Vandoorselaere Date: Fri Apr 8 05:49:08 2005 +0000 Tell the user key generation might take a looooooooong time. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6034 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/tls-register.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 6a8190b36cc679dc94dfb45af56e7194ea9025a7 Author: Yoann Vandoorselaere Date: Thu Apr 7 14:14:17 2005 +0000 Fix insertion of multiple section. Fix deletion of section within another section. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6020 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 15 +++++++++------ src/include/config-engine.h | 2 +- src/prelude-option-wide.c | 17 ++++++++++------- 3 files changed, 20 insertions(+), 14 deletions(-) commit 1721bedae11912866bee6825dfb282c2843d63f5 Author: Yoann Vandoorselaere Date: Thu Apr 7 13:53:11 2005 +0000 Recycle the message anyway when there is an error return. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6019 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msgbuf.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 178b06c84bdd26d1ee30f40d2745443e1e5c1106 Author: Yoann Vandoorselaere Date: Thu Apr 7 01:19:20 2005 +0000 Give more control to the caller on option processing. Fix a leak. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6009 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-option-wide.h | 2 +- src/include/prelude-option.h | 2 +- src/prelude-client.c | 39 ++++++++++++++++++++++++++++------ src/prelude-option-wide.c | 44 +++++---------------------------------- 4 files changed, 40 insertions(+), 47 deletions(-) commit 392bf6bffbb55d9ffaac6cd678715d5d72dcbf84 Author: Yoann Vandoorselaere Date: Wed Apr 6 18:52:38 2005 +0000 Adjust. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6006 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 260e535ee5ef29ba88b7c61ece76decbe13126ea Author: Yoann Vandoorselaere Date: Wed Apr 6 18:51:21 2005 +0000 Error out when the user attempt to destroy a plugin that does not support destruction. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6005 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 5 +++++ 1 file changed, 5 insertions(+) commit 184d7d6cd94ac19ac8fc4a5662b7760c0a422b76 Author: Yoann Vandoorselaere Date: Wed Apr 6 16:59:08 2005 +0000 Forgot this one. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@6001 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 03ddbe10048b2c455093be14e1132c10ad8308fc Author: Yoann Vandoorselaere Date: Wed Apr 6 16:54:27 2005 +0000 Make the plugin API fully reentrant. Check for a plugin version symbol, so that the user isn't confused by an older, incompatible plugin that would make the whole things crash. Prefix private API function with '_'. Remove deprecated plugin fields. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5997 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-option.h | 8 +- src/include/prelude-plugin.h | 102 ++++++------- src/prelude-option.c | 19 ++- src/prelude-plugin.c | 352 +++++++++++++++++++++---------------------- 4 files changed, 237 insertions(+), 244 deletions(-) commit 8cbf9e7b4edb45c06a4264c1452f714417cca87d Author: Yoann Vandoorselaere Date: Wed Apr 6 16:51:42 2005 +0000 Make INFO severity rank first, so that it is more easy to use lesser/greater than criteria for matching it. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5996 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | Bin 77364 -> 77304 bytes src/idmef-message-write.c | 120 ++++++++++++++++++------------------ src/idmef-tree-wrap.c | 72 +++++++++++----------- src/idmef-wrappers-gen/idmef-tree.h | 8 +-- src/include/idmef-tree-wrap.h | 8 +-- 5 files changed, 104 insertions(+), 104 deletions(-) commit ada52dd1fa30aedc3e703ba43cbfdb974d373dbe Author: Yoann Vandoorselaere Date: Wed Apr 6 01:59:45 2005 +0000 Fix a bug on matching lesser than / bigger than criteria. Value ordering is important here. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5990 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 28b6852328c88eb19bbb4f540b323fe02c5eae3c Author: Yoann Vandoorselaere Date: Tue Apr 5 17:43:21 2005 +0000 Make prelude_init() / prelude_deinit() able to be called several time by using a refcount. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5972 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) commit ce76121292d5ca28e0adcf7f1ccdb0e02b0636f8 Author: Yoann Vandoorselaere Date: Tue Apr 5 16:45:50 2005 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5968 09c5ec92-17d4-0310-903a-819935f44dba AUTHORS | 1 + README | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 07dc97a4d9e0101d49b19d9817a280af23f9efb6 Author: Yoann Vandoorselaere Date: Tue Apr 5 14:30:47 2005 +0000 Update GnuLib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5964 09c5ec92-17d4-0310-903a-819935f44dba libmissing/getaddrinfo.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 8658bd7cf60aa9dd63d8c99cfa570a1f93d2454b Author: Yoann Vandoorselaere Date: Tue Apr 5 14:27:47 2005 +0000 Fix date. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5963 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fdd9b8942e62f75838fd5eb5d065372928f0c490 Author: Yoann Vandoorselaere Date: Tue Apr 5 14:01:55 2005 +0000 Prepare for next candidate release. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5962 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 5 +++-- docs/api/libprelude-decl.txt | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) commit f5bd00a8be14f2ee4069f2b8138f133cd3f7ab58 Author: Yoann Vandoorselaere Date: Tue Apr 5 13:46:37 2005 +0000 Prefix WORDS_BIGENDIAN and NEED_ALIGNED_ACCESS. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5961 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 4 ++-- src/common.c | 2 +- src/include/prelude-extract.h | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) commit c3b93a827fcd8363ae203feeab7a17b89c50c973 Author: Yoann Vandoorselaere Date: Tue Apr 5 13:20:22 2005 +0000 Fix IRIX warning, avoid exporting un-needed cflags. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5959 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 38 ++++++++++++++++++++++++++++++++------ prelude-adduser/Makefile.am | 4 ++-- src/Makefile.am | 7 ++++--- 3 files changed, 38 insertions(+), 11 deletions(-) commit d81447416ef8e2d8f36312873479116c5080557e Author: Yoann Vandoorselaere Date: Mon Apr 4 23:38:22 2005 +0000 Fix warning on some architecture. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5957 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-extract.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fed7995be89ac24e35428f8a6815e40f98d4982f Author: Yoann Vandoorselaere Date: Mon Apr 4 21:45:11 2005 +0000 Cast uid/gid to int. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5953 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/tls-register.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 46936ba5376a37233403c450e4c00796c7d761de Author: Yoann Vandoorselaere Date: Mon Apr 4 21:42:39 2005 +0000 Include unistd.h, fix a warning on IRIX 6.5, where pthread_atfork is defined there. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5952 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 1 + src/prelude.c | 1 + 2 files changed, 2 insertions(+) commit 7b022dfb90fe69f1e93197f89d1fa624ec50752e Author: Yoann Vandoorselaere Date: Mon Apr 4 21:07:09 2005 +0000 Fix an IRIX 6.5 compilation problem, because of a name conflict (sa_len naming). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5951 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 44692a5e991d14625e43c95bfc892e2eb6d9eb3e Author: Nicolas Delon Date: Mon Apr 4 16:47:24 2005 +0000 fix criterion value parsing, a non-quoted string can now contain non alpha-numeric characters git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5948 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 63 +++++++++++++++++++++++++++-------------- src/idmef-criteria-string.yac.y | 9 +++--- 2 files changed, 47 insertions(+), 25 deletions(-) commit c32c293389021e937ea322748e3a52aa53bedc37 Author: Yoann Vandoorselaere Date: Mon Apr 4 02:38:19 2005 +0000 Update git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5947 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit e3881c280bed128830e411046a01344873b36856 Author: Yoann Vandoorselaere Date: Mon Apr 4 00:42:00 2005 +0000 Merge option lists for correct priority handling. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5946 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) commit d77858be76ace9d87900b98afd3240677239e2b0 Author: Yoann Vandoorselaere Date: Mon Apr 4 00:30:48 2005 +0000 Remove deprecated REGEX_CFLAGS. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5945 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 10c17036f20be4c07ae468bc83c4145ecd321d63 Author: Yoann Vandoorselaere Date: Mon Apr 4 00:30:19 2005 +0000 Fix some warnings due to prelude-client-profile change. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5944 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 +- src/tls-auth.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 8ae471137c4ff4929d42e8e27d6fa762247d2e01 Author: Yoann Vandoorselaere Date: Mon Apr 4 00:25:17 2005 +0000 Hide gnutls_credentials type, so that the user don't have to know GnuTLS header location to compile libprelude. Remove gnutls/gnutls.h inclusion from prelude-client-profile.h. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5943 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client-profile.h | 3 +-- src/prelude-client-profile.c | 2 +- src/prelude.c | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) commit 3aab6ad6d77ed62bb399a44c73e73a1b651e052e Author: Yoann Vandoorselaere Date: Sun Apr 3 23:27:08 2005 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5942 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit d5742c9f3b46167da51f4486968aa5615fab3eb9 Author: Yoann Vandoorselaere Date: Sun Apr 3 18:37:58 2005 +0000 Stop using pcreposix and always rely on POSIX regex. The way pcreposix define it's symbol make it impossible to use it from a library if the final program isn't linked against libpcreposix (example: python / perl program using libprelude bindings). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5934 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 19 ------------------- src/idmef-criterion-value.c | 7 ++----- 2 files changed, 2 insertions(+), 24 deletions(-) commit 6834cd970c6ab63f16fc561174ea000db92ec062 Author: Yoann Vandoorselaere Date: Sun Apr 3 18:35:25 2005 +0000 Make it work on win32. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5933 09c5ec92-17d4-0310-903a-819935f44dba m4/ac_prototype_accept.m4 | 4 ++++ 1 file changed, 4 insertions(+) commit 23e7f7ccae04255b9088ab254a530a509bf6ad13 Author: Nicolas Delon Date: Sun Apr 3 17:48:24 2005 +0000 bug fix: the previous regexp made some valid criteria invalid git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5931 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f25fe6989c3ce6db72c6464ecb5c21ff7c544a36 Author: Yoann Vandoorselaere Date: Sat Apr 2 18:46:18 2005 +0000 Remove deprecated header inclusion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5930 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 1 - 1 file changed, 1 deletion(-) commit 2342e1353456881f2e7ea6119d8accbbf134ac4e Author: Yoann Vandoorselaere Date: Fri Apr 1 23:21:12 2005 +0000 Don't redefine MIN if it's not needed, fix an OpenBSD warning. Make idmef-time.h include , fix an OpenBSD warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5926 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-time.h | 2 ++ src/prelude-io.c | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) commit 2b0aed69d4c7ca154846c62503406d4934fb8468 Author: Yoann Vandoorselaere Date: Fri Apr 1 23:13:49 2005 +0000 Fix compilation failure / warnings on OpenBSD and on system without pthread_atfork(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5925 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 19 +++++++------------ libmissing/getaddrinfo.h | 6 +++--- libmissing/inet_ntop.h | 2 +- src/prelude-async.c | 7 +++++++ src/prelude.c | 5 +++++ 5 files changed, 23 insertions(+), 16 deletions(-) commit 1d043252805e30a55cd148da3293939654f53552 Author: Nicolas Delon Date: Fri Apr 1 12:40:47 2005 +0000 generate errors for invalid tokens in idmef criteria git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5921 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 5 +++++ src/idmef-criteria-string.yac.y | 2 ++ 2 files changed, 7 insertions(+) commit 7c7be2c946187703942b1f56b0cc10e9e488436b Author: Yoann Vandoorselaere Date: Fri Apr 1 10:08:38 2005 +0000 Propagate IDMEF path/criteria/criterion error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5920 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 59 +++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 35 deletions(-) commit 99156a610becd48b7f0613c49ca931523a2d3302 Author: Yoann Vandoorselaere Date: Fri Apr 1 10:05:49 2005 +0000 Define an error source. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5919 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 4 +++- src/libprelude-error/err-sources.h.in | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) commit f489a04f7b467e8310eb5cb32f935c075ec4b795 Author: Yoann Vandoorselaere Date: Fri Apr 1 09:36:13 2005 +0000 Add an error code for unsupported operator. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5918 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/err-codes.h.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6795196b6a312cae98e5eb7c9528bea8c9be72ec Author: Yoann Vandoorselaere Date: Fri Apr 1 09:35:41 2005 +0000 s/relation/operator/. Fix criterion operator check. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5917 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 45 ++++++++++++++++++++++-------------------- src/idmef-value.c | 2 +- src/include/idmef-value-type.h | 2 +- 3 files changed, 26 insertions(+), 23 deletions(-) commit 531c654e500964de75bfae47c6b5cc32720eaf8c Author: Yoann Vandoorselaere Date: Fri Apr 1 08:06:41 2005 +0000 IDMEF criteria error return correction. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5916 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 2 +- src/idmef-criteria.c | 2 ++ src/libprelude-error/err-codes.h.in | 2 ++ src/libprelude-error/err-sources.h.in | 3 ++- 4 files changed, 7 insertions(+), 2 deletions(-) commit bdec2a477e01da8fdc49433f785b94c4b66d2e98 Author: Yoann Vandoorselaere Date: Thu Mar 31 17:17:56 2005 +0000 Bump version to 0.9.0-rc2. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5897 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 8 ++++++++ configure.in | 2 +- docs/api/libprelude-decl.txt | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) commit d0eef3c35cf6699238b832b49d1f8d59065b028f Author: Nicolas Delon Date: Thu Mar 31 17:02:01 2005 +0000 fix library link path order and CFLAGS propagation git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5895 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Makefile.PL.in | 6 +++--- bindings/python/setup.py.in | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit f13f323bab58c2adbdd411c2d034b2bef874b524 Author: Nicolas Delon Date: Thu Mar 31 16:04:25 2005 +0000 fix make clean git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5894 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7f2878a8009de8f972c8233a620c249fd65c8c16 Author: Yoann Vandoorselaere Date: Tue Mar 29 14:52:28 2005 +0000 Bump version number. Update NEWS file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5872 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- configure.in | 2 +- 2 files changed, 60 insertions(+), 2 deletions(-) commit 6156542cf0f3871a72ab8926c96fdc46dd0ae8a5 Author: Yoann Vandoorselaere Date: Tue Mar 29 06:09:57 2005 +0000 Regen documentation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5849 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 180 +++++++++++++++++++++++++----------- docs/api/libprelude-sections.txt | 70 ++++++++------ docs/api/tmpl/prelude-inttypes.sgml | 178 +++++++++++++++++++++++++++++------ 3 files changed, 322 insertions(+), 106 deletions(-) commit 769841091aa7ff5a35ddc9340fd8d559dfd64257 Author: Sebastien Tricaud Date: Mon Mar 28 21:02:54 2005 +0000 gtkdoc spelling fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5842 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 60 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) commit 46a0b1e942eb3a9bc56d587eeed747c807289f71 Author: Sebastien Tricaud Date: Mon Mar 28 20:51:48 2005 +0000 gtkdoc spelling fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5841 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 791f452a1d548bb44de500f1310d3ed4044e981b Author: Sebastien Tricaud Date: Mon Mar 28 20:28:17 2005 +0000 gtkdoc spelling fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5838 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-write.c | 120 +++++++++++++++++++++++----------------------- 1 file changed, 60 insertions(+), 60 deletions(-) commit 2a62411a43fb6610c63c4a80b848d0f0984922d0 Author: Sebastien Tricaud Date: Mon Mar 28 20:03:55 2005 +0000 gtkdoc spelling fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5837 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | Bin 77304 -> 77364 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 3a578ee3fe85cc2cb7b8a37c51840e04de931b90 Author: Sebastien Tricaud Date: Mon Mar 28 19:51:42 2005 +0000 gtkdoc spelling fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5835 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 21ce5e6871f5d985d0beb69b47eb4eb02ec198e1 Author: Sebastien Tricaud Date: Mon Mar 28 19:48:37 2005 +0000 spelling fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5834 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fa82eebc0acfa9b6cc61570f519d8fd379fada58 Author: Sebastien Tricaud Date: Mon Mar 28 19:40:41 2005 +0000 gtkdoc spelling fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5832 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit d2f3d96b7118971c81f7e8cd628263e41b012a89 Author: Sebastien Tricaud Date: Mon Mar 28 19:31:47 2005 +0000 gtkdoc spelling fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5831 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit a3702c95bb6fff90e1e19644878723b745fbc6b6 Author: Sebastien Tricaud Date: Mon Mar 28 19:29:46 2005 +0000 gtkdoc spelling fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5830 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 6f70971eb1f7f7ca3ca7076d82724ebbea7acd8c Author: Sebastien Tricaud Date: Mon Mar 28 19:20:37 2005 +0000 gtkdoc spelling fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5829 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 4d25ae26b3c5717d5b8f725791fa65308cc036e6 Author: Nicolas Delon Date: Mon Mar 28 16:49:16 2005 +0000 bug fix: copy the members of the container git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5825 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 9f983c7845b2130c5e4862c44b0d2f1afe834a5c Author: Yoann Vandoorselaere Date: Mon Mar 28 03:12:32 2005 +0000 - Make it possible for 'immediate' option to take a context. - Fix a potential problem with context creation. - Fix a context leak on option destroy. - Parse prelude specific option reliably. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5807 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 127 +++++++++++++++++++++++++++------------------------ 1 file changed, 67 insertions(+), 60 deletions(-) commit 8bf82164311d0366d44cf001b917665586fc6406 Author: Yoann Vandoorselaere Date: Mon Mar 28 03:10:42 2005 +0000 Make it safer to destroy an asynchronous client. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5806 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 48d0825e78cfa3425864b33459d4ebe609476ddf Author: Yoann Vandoorselaere Date: Mon Mar 28 03:09:02 2005 +0000 Fix a chicken and egg problem with the way we gather profile. Force profile to be provided on the command line. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5805 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) commit 796417ba5ba74188129d45f02ed3b25908866639 Author: Yoann Vandoorselaere Date: Mon Mar 28 01:30:53 2005 +0000 Always destroy the heartbeat timer, this fix a problem when using the FAILURE destroy status. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5804 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 8bf2fbed154e26d9776fad01f7d4de441c612836 Author: Yoann Vandoorselaere Date: Mon Mar 28 00:51:20 2005 +0000 Plug a small memleak. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5803 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 4 ---- 1 file changed, 4 deletions(-) commit 72ccfef16ca53805a92de80831173bc058244b4f Author: Yoann Vandoorselaere Date: Mon Mar 28 00:49:10 2005 +0000 Avoid any modification to _prelude_generic_optlist. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5802 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 6dec468ecc1b9511b713ebd9acea9f918cc106cc Author: Yoann Vandoorselaere Date: Sun Mar 27 15:33:01 2005 +0000 Only goes to the prelude specific option if it is a parent. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5801 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 15a99d7797a43926afb05ea7de615bd56575af67 Author: Yoann Vandoorselaere Date: Sun Mar 27 15:19:33 2005 +0000 Warning fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5800 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 43ad58693822d45f46b3ae947f2c87b70a8145ed Author: Yoann Vandoorselaere Date: Sun Mar 27 15:14:52 2005 +0000 Separate CLI and CONF options in two different list. Always parse CONF first, but allow CLI to override CONF value. Correctly warn about prelude option out of their context. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5799 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-option.h | 2 +- src/prelude-option.c | 58 +++++++++++++++++++++++++++----------------- 2 files changed, 37 insertions(+), 23 deletions(-) commit 9b8ddf439e5e5091fc440f1ef659a695af72385c Author: Yoann Vandoorselaere Date: Sun Mar 27 14:40:25 2005 +0000 Use a bool where needed, decrement usage count on delete. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5797 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 103a29dc3954a8985e2d74bc930ed49d2154f9e7 Author: Yoann Vandoorselaere Date: Sun Mar 27 14:22:14 2005 +0000 Require that the parent option is provided for prelude specific option, in order to not mislead the user. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5794 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 6 +++--- src/prelude.c | 14 +++++++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) commit 432a6a055e1797f3c6f3e6f4bb0bbb47ab53b12d Author: Yoann Vandoorselaere Date: Sun Mar 27 00:02:08 2005 +0000 Prefix PRI* declaration with PRELUDE_, to avoid potential namespace conflict. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5786 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_perl.i | 4 +- prelude-adduser/prelude-adduser.c | 14 +- prelude-adduser/tls-register.c | 11 +- src/common.c | 2 +- src/idmef-data.c | 2 +- src/idmef-message-print.c | 16 +-- src/idmef-value-type.c | 4 +- .../GenerateIDMEFMessagePrintC.pm | 16 +-- src/include/prelude-inttypes.h.in | 157 ++++++++------------- src/prelude-client-profile.c | 2 +- src/prelude-client.c | 4 +- src/prelude-connection-pool.c | 4 +- src/tls-util.c | 2 +- 13 files changed, 85 insertions(+), 153 deletions(-) commit 5b77630450d9db271cc73ba86430840af01fdff8 Author: Yoann Vandoorselaere Date: Sat Mar 26 22:58:35 2005 +0000 Prefix some private function. Re-activate the code used to assign messageid. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5783 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 152 +++++++-------------- src/config-engine.c | 6 +- src/idmef-message-write.c | 2 +- .../GenerateIDMEFMessageWriteC.pm | 2 +- src/include/common.h | 18 ++- src/prelude-client.c | 5 +- src/prelude-io.c | 2 +- src/prelude-msg.c | 2 +- src/prelude-string.c | 4 +- 9 files changed, 69 insertions(+), 124 deletions(-) commit 6bf914cd8b4ae20de5329ea199f61609fd6857e9 Author: Yoann Vandoorselaere Date: Sat Mar 26 22:54:02 2005 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5782 09c5ec92-17d4-0310-903a-819935f44dba INSTALL | 52 +++++++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 27 deletions(-) commit 1440869db279170edfe5d652b6fbbcb28df6dedb Author: Yoann Vandoorselaere Date: Sat Mar 26 22:53:29 2005 +0000 Remove old OpenSSL license exception. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5781 09c5ec92-17d4-0310-903a-819935f44dba COPYING | 15 --------------- 1 file changed, 15 deletions(-) commit eb334611261b12df1cf703984499dee63b65d38d Author: Yoann Vandoorselaere Date: Sat Mar 26 19:04:47 2005 +0000 Use getaddrinfo() instead of deprecated prelude_resolve_addr(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5779 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) commit 6ad97aa8f101f75c97470298359c9675faf5d0e4 Author: Yoann Vandoorselaere Date: Sat Mar 26 12:16:52 2005 +0000 Use PRIu64. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5771 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 9 +-------- bindings/libprelude_perl.i | 4 ++-- 2 files changed, 3 insertions(+), 10 deletions(-) commit 4694c895aa3d7f1b2aa5895e361385100ece6480 Author: Yoann Vandoorselaere Date: Sat Mar 26 12:16:30 2005 +0000 Require libgnutls-extra 1.0.17 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5770 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2698bf68f195f26716276b339f0bf37d00b09405 Author: Yoann Vandoorselaere Date: Sat Mar 26 12:16:05 2005 +0000 Use PRIu64. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5769 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 932d038adeb3109853a900fc024767efb9074c69 Author: Yoann Vandoorselaere Date: Sat Mar 26 10:48:47 2005 +0000 Fix warning on 64bits arch. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5767 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | Bin 77302 -> 77304 bytes src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) commit 92bff567801ab7f4b206294aab259594bae195ea Author: Yoann Vandoorselaere Date: Sat Mar 26 10:41:23 2005 +0000 Fix warning on 64 bits systems. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5766 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b762bba4f669af0edc6c7ae9342c069617a0c836 Author: Yoann Vandoorselaere Date: Sat Mar 26 10:14:13 2005 +0000 Fix some warnings on 64bits systems. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5765 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/tls-register.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit bec6ff5f5e1d571c22322938364345104706b828 Author: Sebastien Tricaud Date: Sat Mar 26 08:48:02 2005 +0000 gtkdoc: fixed spelling issues git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5762 09c5ec92-17d4-0310-903a-819935f44dba INSTALL | 11 ++------ src/prelude-connection-pool.c | 66 +++++++++++++++++++++---------------------- 2 files changed, 35 insertions(+), 42 deletions(-) commit f0433fd2924a80bacb31d8840718e6491773f7bc Author: Yoann Vandoorselaere Date: Sat Mar 26 04:12:07 2005 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5761 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/inet_ntop.m4 | 1 - 1 file changed, 1 deletion(-) commit cb3a475da271b21a31469b1e5e3fe2ae03971a1c Author: Yoann Vandoorselaere Date: Sat Mar 26 03:44:16 2005 +0000 Remove prelude-inet from the build. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5750 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 15 ---- docs/api/libprelude-sections.txt | 7 -- docs/api/tmpl/prelude-inet.sgml | 47 ----------- src/Makefile.am | 1 - src/include/Makefile.am | 1 - src/include/prelude-inet.h | 41 ---------- src/prelude-inet.c | 170 --------------------------------------- 7 files changed, 282 deletions(-) commit 62d9f689047745f06fe570dcc66f0ac96e5a4a71 Author: Yoann Vandoorselaere Date: Sat Mar 26 03:43:53 2005 +0000 Use GNUlib inet_ntop() git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5749 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 10 ++++++++-- src/include/libmissing.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) commit 25731de0ab8711331f6be0bb8f9bbd84b8aa6d1d Author: Yoann Vandoorselaere Date: Sat Mar 26 03:43:23 2005 +0000 Remove unused prelude-inet.h inclusion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5748 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 1 - 1 file changed, 1 deletion(-) commit b5f184d804350d758387246f329726258f8a8e80 Author: Yoann Vandoorselaere Date: Sat Mar 26 03:40:31 2005 +0000 Move prelude_sockaddr_get_inaddr() from prelude-inet.c to common.c git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5747 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 20 ++++++++++++++++++++ src/include/common.h | 2 ++ 2 files changed, 22 insertions(+) commit 1547e5be5b76186ea17975c66ff009a731f3aa90 Author: Yoann Vandoorselaere Date: Sat Mar 26 03:39:17 2005 +0000 Fix warnings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5746 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-path.h | 6 ++++++ src/prelude.c | 5 ----- 2 files changed, 6 insertions(+), 5 deletions(-) commit f2fb0cdbec855c05821458785a66dd31985034f5 Author: Yoann Vandoorselaere Date: Sat Mar 26 03:38:27 2005 +0000 Update GNUlib code prior release. Include an home made inet_ntop module in place of the deprecated prelude-inet API. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5745 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 22 ++--- libmissing/inet_ntop.c | 194 +++++++++++++++++++++++++++++++++++++++++++++ libmissing/inet_ntop.h | 10 +++ libmissing/m4/gettext.m4 | 8 +- libmissing/m4/gnulib.m4 | 5 +- libmissing/m4/inet_ntop.m4 | 20 +++++ libmissing/m4/lib-link.m4 | 6 +- libmissing/m4/nls.m4 | 8 +- libmissing/m4/po.m4 | 9 ++- libmissing/m4/strdup.m4 | 6 +- libmissing/m4/strndup.m4 | 6 +- libmissing/regex.c | 55 +++++++------ 12 files changed, 295 insertions(+), 54 deletions(-) commit d9bf277ab16262ffc28560e2714f7bb30e1e5fff Author: Yoann Vandoorselaere Date: Sat Mar 26 03:36:32 2005 +0000 Some reordering. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5744 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) commit 5c58ea6cfe502a828b787eca5ff6368657742479 Author: Yoann Vandoorselaere Date: Fri Mar 25 19:34:33 2005 +0000 Remove hack for GnuTLS prior 1.0.17 which didn't define GNUTLS_OID_X520_DN_QUALIFIER. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5736 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/tls-register.c | 4 ---- 1 file changed, 4 deletions(-) commit bf2041f95f727d71dcf904282ddc18b9cd11319b Author: Yoann Vandoorselaere Date: Fri Mar 25 19:32:58 2005 +0000 Update GnuTLS minimum version requirement to 1.0.17, since there is now an incompatibility in SRP handling between 1.0.16/1.0.17 (SRP standard is still on the move). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5735 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57e28a4c034bb9f50ceb235ccb3eace6cb48dbbb Author: Nicolas Delon Date: Fri Mar 25 18:16:49 2005 +0000 fix warning git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5719 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 11 ----------- bindings/libprelude_perl.i | 11 +++++++++++ bindings/libprelude_python.i | 11 +++++++++++ 3 files changed, 22 insertions(+), 11 deletions(-) commit abcea3f66b945c26bc3078a5c2cd8495c148fe79 Author: Yoann Vandoorselaere Date: Fri Mar 25 18:04:16 2005 +0000 Remove uneeded libtool.m4 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5718 09c5ec92-17d4-0310-903a-819935f44dba m4/libtool.m4 | 6108 --------------------------------------------------------- 1 file changed, 6108 deletions(-) commit 356d19411e625ce5fac1eaa60ee7677e7defe83b Author: Yoann Vandoorselaere Date: Fri Mar 25 18:03:22 2005 +0000 Fix distcheck. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5717 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3012d3a04087309d4ff56a89c1d1cad6b71eb180 Author: Nicolas Delon Date: Fri Mar 25 17:43:53 2005 +0000 fix perl bindings git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5715 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.pm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit eebed9e916a3ae8820b558826a187a40d1eedd5b Author: Yoann Vandoorselaere Date: Fri Mar 25 11:42:45 2005 +0000 s/Prelude program/Prelude library/ git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5709 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ bindings/libprelude.i | 6 +++--- bindings/libprelude_perl.i | 2 +- bindings/libprelude_python.i | 2 +- prelude-adduser/plaintext.c | 2 +- prelude-adduser/prelude-adduser.c | 2 +- prelude-adduser/server.c | 2 +- prelude-adduser/server.h | 2 +- prelude-adduser/tls-register.c | 2 +- prelude-adduser/tls-register.h | 2 +- src/common.c | 2 +- src/config-engine.c | 2 +- src/daemonize.c | 2 +- src/idmef-additional-data.c | 2 +- src/idmef-class.c | 2 +- src/idmef-criteria-string.lex.l | 2 +- src/idmef-criteria-string.yac.y | 2 +- src/idmef-criteria.c | 6 +++--- src/idmef-criterion-value.c | 2 +- src/idmef-data.c | 2 +- src/idmef-message-print.c | 2 +- src/idmef-message-read.c | Bin 77302 -> 77302 bytes src/idmef-message-write.c | 2 +- src/idmef-path.c | 2 +- src/idmef-time.c | 2 +- src/idmef-tree-wrap.c | 2 +- src/idmef-value-type.c | 2 +- src/idmef-value.c | 2 +- src/idmef-wrappers-gen/Generate.pm | 2 +- src/idmef-wrappers-gen/GenerateDebug.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 2 +- .../GenerateIDMEFMessagePrintC.pm | 4 ++-- .../GenerateIDMEFMessagePrintH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageReadH.pm | 4 ++-- .../GenerateIDMEFMessageWriteC.pm | 4 ++-- .../GenerateIDMEFMessageWriteH.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 11 +++++++++-- src/idmef-wrappers-gen/IDMEFTree.pm | 2 +- src/idmef-wrappers-gen/generator.pl | 2 +- src/idmef-wrappers-gen/idmef-tree.h | 2 +- src/include/common.h | 2 +- src/include/config-engine.h | 2 +- src/include/daemonize.h | 2 +- src/include/idmef-additional-data.h | 2 +- src/include/idmef-class.h | 2 +- src/include/idmef-criteria.h | 2 +- src/include/idmef-criterion-value.h | 2 +- src/include/idmef-data.h | 2 +- src/include/idmef-message-print.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-path.h | 2 +- src/include/idmef-time.h | 2 +- src/include/idmef-tree-wrap.h | 9 ++++++++- src/include/idmef-value-type.h | 2 +- src/include/idmef-value.h | 2 +- src/include/idmef.h | 2 +- src/include/libmissing.h | 2 +- src/include/prelude-async.h | 2 +- src/include/prelude-client-profile.h | 2 +- src/include/prelude-client.h | 2 +- src/include/prelude-connection-pool.h | 2 +- src/include/prelude-connection.h | 2 +- src/include/prelude-extract.h | 2 +- src/include/prelude-failover.h | 2 +- src/include/prelude-hash.h | 2 +- src/include/prelude-ident.h | 2 +- src/include/prelude-inet.h | 2 +- src/include/prelude-inttypes.h.in | 2 +- src/include/prelude-io.h | 2 +- src/include/prelude-linked-object.h | 2 +- src/include/prelude-list.h | 2 +- src/include/prelude-log.h | 2 +- src/include/prelude-message-id.h | 2 +- src/include/prelude-msg.h | 2 +- src/include/prelude-msgbuf.h | 2 +- src/include/prelude-option-wide.h | 2 +- src/include/prelude-option.h | 2 +- src/include/prelude-plugin.h | 2 +- src/include/prelude-string.h | 2 +- src/include/prelude-timer.h | 2 +- src/include/prelude.h.in | 2 +- src/include/tls-auth.h | 2 +- src/include/tls-util.h | 2 +- src/include/variable.h | 2 +- src/libprelude-error/prelude-error.h.in | 2 +- src/prelude-async.c | 2 +- src/prelude-client-profile.c | 2 +- src/prelude-client.c | 2 +- src/prelude-connection-pool.c | 2 +- src/prelude-connection.c | 2 +- src/prelude-failover.c | 2 +- src/prelude-hash.c | 2 +- src/prelude-ident.c | 2 +- src/prelude-inet.c | 2 +- src/prelude-io.c | 2 +- src/prelude-log.c | 2 +- src/prelude-msg.c | 2 +- src/prelude-msgbuf.c | 2 +- src/prelude-option-wide.c | 2 +- src/prelude-option.c | 2 +- src/prelude-plugin.c | 2 +- src/prelude-string.c | 2 +- src/prelude-timer.c | 2 +- src/prelude.c | 2 +- src/tls-auth.c | 2 +- src/tls-util.c | 2 +- src/variable.c | 2 +- 111 files changed, 140 insertions(+), 121 deletions(-) commit 1eeba60417a1a408e8509edf57f3823297815ced Author: Yoann Vandoorselaere Date: Fri Mar 25 10:41:40 2005 +0000 Update documentation, fix it in some place due to the renaming of some variable for C++ compiler friendlyness. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5706 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 118 ++++++++++++++++++----- docs/api/libprelude-sections.txt | 11 ++- docs/api/tmpl/idmef-criteria.sgml | 8 +- docs/api/tmpl/idmef-criterion-value.sgml | 12 ++- docs/api/tmpl/idmef-data.sgml | 7 -- docs/api/tmpl/idmef-tree-wrap.sgml | 2 + docs/api/tmpl/idmef-value.sgml | 12 ++- docs/api/tmpl/prelude-string.sgml | 14 --- src/idmef-criteria.c | 10 +- src/idmef-tree-wrap.c | 76 +++++++-------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 8 +- src/include/prelude-inttypes.h.in | 7 ++ 12 files changed, 181 insertions(+), 104 deletions(-) commit e1d3772323cf618be7f4b67b5b491b490ee6c1c3 Author: Yoann Vandoorselaere Date: Fri Mar 25 10:08:11 2005 +0000 More C++ compiler friendlyness. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5705 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-message-print.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit c1fa10453009cbf78bb8afe81aadb1623d9b962d Author: Yoann Vandoorselaere Date: Fri Mar 25 10:05:14 2005 +0000 Fix so that C++ compiler don't break on our header. Include extern "C" in most place, fix some non conforming return type, rename "new" / "operator" variable. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5704 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 4 ++-- src/idmef-criterion-value.c | 8 ++++---- src/idmef-value-type.c | 10 +++++----- src/idmef-value.c | 20 ++++++++++---------- src/idmef-wrappers-gen/GenerateIDMEFMessagePrintH.pm | 8 ++++++++ src/include/idmef-additional-data.h | 8 ++++++++ src/include/idmef-criteria.h | 11 +++++++++-- src/include/idmef-criterion-value.h | 15 ++++++++++++--- src/include/idmef-data.h | 13 +++++++------ src/include/idmef-path.h | 8 ++++++++ src/include/idmef-time.h | 8 ++++++++ src/include/idmef-value-type.h | 11 +++++++++-- src/include/idmef-value.h | 13 ++++++++++--- src/include/prelude-async.h | 8 ++++++++ src/include/prelude-client-profile.h | 13 +++++++++++-- src/include/prelude-client.h | 8 ++++++++ src/include/prelude-connection-pool.h | 7 +++++++ src/include/prelude-connection.h | 6 ++++++ src/include/prelude-extract.h | 2 +- src/include/prelude-failover.h | 8 ++++++++ src/include/prelude-hash.h | 8 ++++++++ src/include/prelude-ident.h | 8 ++++++++ src/include/prelude-io.h | 9 +++++++++ src/include/prelude-list.h | 2 +- src/include/prelude-log.h | 7 +++++++ src/include/prelude-msg.h | 8 ++++++++ src/include/prelude-msgbuf.h | 8 ++++++++ src/include/prelude-option.h | 10 +++++++++- src/include/prelude-plugin.h | 8 ++++++++ src/include/prelude-string.h | 12 ++++++++---- src/include/prelude-timer.h | 8 ++++++++ src/include/prelude.h.in | 7 +++++++ src/libprelude-error/prelude-error.h.in | 11 ++++++++++- src/prelude-option.c | 8 ++++---- 34 files changed, 252 insertions(+), 51 deletions(-) commit b520d4560ef47104d2c29795a8fd040ccd387065 Author: Nicolas Delon Date: Fri Mar 25 10:00:29 2005 +0000 in idmef_foo_set_bar style functions, make a special case for the class field of idmef_analyzer_t so that libprelude can be compiled by a C++ compiler git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5703 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 72 +++++++++++----------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 22 +++---- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 +- src/include/idmef-tree-wrap.h | 76 ++++++++++++------------ 4 files changed, 89 insertions(+), 85 deletions(-) commit 38644292620f73d325a5e6ffbd5a7f56ad2f60d8 Author: Yoann Vandoorselaere Date: Fri Mar 25 03:06:33 2005 +0000 Remove deprecated. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5702 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-extract.h | 19 ------------------- 1 file changed, 19 deletions(-) commit e8b1240559a1eddd3c0ccf3238cd45cf18e4604b Author: Yoann Vandoorselaere Date: Fri Mar 25 03:06:03 2005 +0000 Give priority to command line option. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5701 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c53cb178df0ba6970bde19ce3bd6c3660e315271 Author: Yoann Vandoorselaere Date: Fri Mar 25 02:47:14 2005 +0000 Avoid passing a pointer to a va_list. This cause problem on some architectures. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5700 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit e6b2310d5823f36c1be39b5760318029b5f5816d Author: Yoann Vandoorselaere Date: Fri Mar 25 02:07:40 2005 +0000 Remove outdated. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5699 09c5ec92-17d4-0310-903a-819935f44dba docs/api/tmpl/idmef-criteria-string.yac.sgml | 16 ---------------- 1 file changed, 16 deletions(-) commit 3a961036d010b93a7ec85a3e6f44d11dd83e5020 Author: Yoann Vandoorselaere Date: Fri Mar 25 02:06:46 2005 +0000 Update documentation, remove outdated files credit file, see the website rather. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5698 09c5ec92-17d4-0310-903a-819935f44dba AUTHORS | 2 +- CREDITS | 25 ------------ docs/api/libprelude-decl.txt | 83 +++++++++++++++++++--------------------- docs/api/libprelude-sections.txt | 3 +- docs/api/tmpl/prelude-async.sgml | 7 ++++ docs/api/tmpl/prelude-hash.sgml | 9 +++++ 6 files changed, 58 insertions(+), 71 deletions(-) commit 7dfdc7d1a31fc5db046eaecad682828b416f46e7 Author: Yoann Vandoorselaere Date: Fri Mar 25 02:00:46 2005 +0000 Copyright transfer from Nicolas Delon, Krzysztof Zaraska, and myself, to PreludeIDS Technologies. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5697 09c5ec92-17d4-0310-903a-819935f44dba README | 24 ++++++++-------------- bindings/libprelude_perl.i | 4 ++-- bindings/libprelude_python.i | 4 ++-- prelude-adduser/plaintext.c | 4 ++-- prelude-adduser/prelude-adduser.c | 4 ++-- prelude-adduser/server.c | 4 ++-- prelude-adduser/server.h | 4 ++-- prelude-adduser/tls-register.c | 4 ++-- prelude-adduser/tls-register.h | 4 ++-- src/idmef-criteria.c | 2 +- src/idmef-value-type.c | 2 +- src/idmef-value.c | 4 ++-- src/idmef-wrappers-gen/Generate.pm | 4 ++-- src/idmef-wrappers-gen/GenerateDebug.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 4 ++-- .../GenerateIDMEFMessagePrintC.pm | 4 ++-- .../GenerateIDMEFMessagePrintH.pm | 8 ++++---- .../GenerateIDMEFMessageReadC.pm | 4 ++-- .../GenerateIDMEFMessageReadH.pm | 10 ++++----- .../GenerateIDMEFMessageWriteC.pm | 4 ++-- .../GenerateIDMEFMessageWriteH.pm | 8 ++++---- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 4 ++-- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 10 ++++----- src/idmef-wrappers-gen/IDMEFTree.pm | 4 ++-- src/idmef-wrappers-gen/generator.pl | 4 ++-- src/idmef-wrappers-gen/idmef-tree.h | 4 ++-- src/include/common.h | 4 ++-- src/include/config-engine.h | 4 ++-- src/include/daemonize.h | 4 ++-- src/include/idmef-additional-data.h | 4 ++-- src/include/idmef-criteria.h | 4 ++-- src/include/idmef-criterion-value.h | 4 ++-- src/include/idmef-data.h | 4 ++-- src/include/idmef-message-print.h | 4 ++-- src/include/idmef-message-read.h | 6 +++--- src/include/idmef-message-write.h | 4 ++-- src/include/idmef-path.h | 6 ++++-- src/include/idmef-time.h | 4 ++-- src/include/idmef-tree-wrap.h | 6 +++--- src/include/idmef-value-type.h | 4 ++-- src/include/idmef-value.h | 6 +++--- src/include/idmef.h | 5 +++-- src/include/libmissing.h | 4 ++-- src/include/prelude-client.h | 4 ++-- src/include/prelude-connection-pool.h | 4 ++-- src/include/prelude-connection.h | 4 ++-- src/include/prelude-extract.h | 20 ++++++------------ src/include/prelude-failover.h | 4 ++-- src/include/prelude-hash.h | 4 ++-- src/include/prelude-ident.h | 4 ++-- src/include/prelude-inet.h | 4 ++-- src/include/prelude-inttypes.h.in | 4 ++-- src/include/prelude-io.h | 4 ++-- src/include/prelude-linked-object.h | 4 ++-- src/include/prelude-list.h | 2 +- src/include/prelude-log.h | 4 ++-- src/include/prelude-message-id.h | 4 ++-- src/include/prelude-msg.h | 4 ++-- src/include/prelude-msgbuf.h | 4 ++-- src/include/prelude-option-wide.h | 4 ++-- src/include/prelude-option.h | 4 ++-- src/include/prelude-plugin.h | 4 ++-- src/include/prelude-string.h | 4 ++-- src/include/prelude-timer.h | 4 ++-- src/include/prelude.h.in | 4 ++-- src/include/tls-auth.h | 4 ++-- src/include/tls-util.h | 4 ++-- src/include/variable.h | 4 ++-- src/libprelude-error/prelude-error.h.in | 4 ++-- src/variable.c | 2 -- 71 files changed, 164 insertions(+), 177 deletions(-) commit 0edf59d57aa8ecce5511a2ae19937dacc481db5a Author: Yoann Vandoorselaere Date: Fri Mar 25 01:57:35 2005 +0000 Setup atfork handler. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5696 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-async.h | 14 +++++---- src/prelude-async.c | 74 ++++++++++++++++++++++++++++++++++----------- 2 files changed, 65 insertions(+), 23 deletions(-) commit a56e588d649e45f801beb2809a887207a4f60c28 Author: Yoann Vandoorselaere Date: Fri Mar 25 00:53:12 2005 +0000 Remove debugging spew. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5695 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 1 - 1 file changed, 1 deletion(-) commit 47f28b87837fdc3253634b2742c4f6b9a74f0a60 Author: Yoann Vandoorselaere Date: Fri Mar 25 00:50:15 2005 +0000 Remove debugging spew. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5694 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 2 -- 1 file changed, 2 deletions(-) commit 06dbda3735d64832cfeecfe67211e63d1c45ee15 Author: Yoann Vandoorselaere Date: Fri Mar 25 00:49:36 2005 +0000 If value is a nul character, set it to NULL for consistency. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5693 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 3 +++ 1 file changed, 3 insertions(+) commit 9a92764db2abd95b27d83956b33cbca75dd9684c Author: Yoann Vandoorselaere Date: Fri Mar 25 00:35:40 2005 +0000 Avoid inserting an empty line on each save. Fix a bug when inserting a value. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5692 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) commit 41196e577ee768cd0c3b93e5ce7e631290fa6b77 Author: Yoann Vandoorselaere Date: Thu Mar 24 22:49:32 2005 +0000 DESTROY is still used by the an option message git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5690 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-option.h | 3 ++- src/prelude-option.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit 82ac8f5fc31cbb8e50d77cb148ac5732d799c6e2 Author: Nicolas Delon Date: Thu Mar 24 22:06:35 2005 +0000 remove obsolete function git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5687 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client-profile.h | 2 -- 1 file changed, 2 deletions(-) commit 607371652059144c818ebc4ddc38705e4c7e8f6d Author: Yoann Vandoorselaere Date: Thu Mar 24 21:51:30 2005 +0000 Fix gathering of path with negative index. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5686 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit bf2c279565da74d0393d77e54e6b742be5ca15f5 Author: Yoann Vandoorselaere Date: Thu Mar 24 19:32:22 2005 +0000 Make NTP tables const. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5679 09c5ec92-17d4-0310-903a-819935f44dba src/include/ntp.h | 12 ++++++------ src/ntp.c | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) commit 06eb89c6ec523e395e45bee39309207ad141bd49 Author: Yoann Vandoorselaere Date: Thu Mar 24 19:26:26 2005 +0000 Fix bug in idmef_criteria_new_from_string where the yacc mutex was declared on the stack!? Make it global, and not static so that prelude_init() can register a fork handler for this mutex. Implemented _idmef_path_cache_lock() and _idmef_path_cache_unlock(), that iterate through the list of cached idmef_path_t object, and lock/unlock all the cached path. This is to be used by the prelude_init() fork hanbdler. Remove private symbols from the header file so that they don't get documented. Setup pthread_atfork handler in prelude_init(). Lock the criteria mutex and the cached idmef_path_t object within the prepare handler, and release them in the parent/child handler. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5678 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 21 ++++++++------- src/idmef-path.c | 60 ++++++++++++++++++++++++++++++++--------- src/include/idmef-path.h | 2 -- src/prelude.c | 29 ++++++++++++++++++++ 4 files changed, 89 insertions(+), 23 deletions(-) commit 4167d02344990089e1d1bada6ee61255e3faf356 Author: Yoann Vandoorselaere Date: Thu Mar 24 19:11:12 2005 +0000 Forgot declaration. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5677 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-hash.h | 2 ++ 1 file changed, 2 insertions(+) commit feff2e7c4cb74ab0ac98167dc07ecf5c29e0a943 Author: Yoann Vandoorselaere Date: Thu Mar 24 19:10:52 2005 +0000 Implemented prelude_hash_iterate(), will be used for idmef-path atfork handler. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5676 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-hash.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit a065cadc87881c1f8807b125bd15092b5e1bcf3b Author: Yoann Vandoorselaere Date: Thu Mar 24 17:13:18 2005 +0000 Remove deprecated option type (DESTROY/ALLOW_MULTIPLE_CALL). Make prelude_option_print() take an optional output fd. Always call the commit function even if there is no sub-options. Add a PRELUDE_OPTION_PRIORITY_IMMEDIATE priority. Don't merge option anymore, at least for now. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5670 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-option.h | 22 +++--- src/prelude-option.c | 157 ++++++++++++++++++++++--------------------- 2 files changed, 92 insertions(+), 87 deletions(-) commit e1f13fe6494369a31e6a4a6bb9596f1cc6b21975 Author: Yoann Vandoorselaere Date: Thu Mar 24 17:07:09 2005 +0000 Add some const. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5669 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 42 +++++++++++++++++++++--------------------- src/include/idmef-value.h | 32 ++++++++++++++++---------------- 2 files changed, 37 insertions(+), 37 deletions(-) commit 666db1dd52ac99b569379065deef916c8ed8cab0 Author: Yoann Vandoorselaere Date: Wed Mar 23 16:17:55 2005 +0000 Re-order error number. Improve the way prelude profile work. Make the configuration file for created client optional. Create a default template config file in case no configuration file is provided. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5624 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 16 +- docs/api/libprelude-decl.txt | 10877 ++++++++++++++------------- docs/api/libprelude-sections.txt | 82 +- docs/api/tmpl/idmef-criteria.sgml | 2 +- docs/api/tmpl/idmef-tree-wrap.sgml | 690 ++ docs/api/tmpl/prelude-client.sgml | 88 +- docs/api/tmpl/prelude-connection-pool.sgml | 14 +- docs/api/tmpl/prelude-connection.sgml | 43 +- docs/api/tmpl/prelude-list.sgml | 44 +- prelude-adduser/prelude-adduser.c | 144 +- src/include/prelude-client-profile.h | 4 + src/include/prelude-client.h | 9 +- src/libprelude-error/err-codes.h.in | 107 +- src/prelude-client-profile.c | 69 +- src/prelude-client.c | 113 +- src/prelude-connection.c | 2 +- src/tls-auth.c | 2 +- src/tls-util.c | 2 +- 18 files changed, 6636 insertions(+), 5672 deletions(-) commit 818f732a7f5d30e2f9f377778b29a0d3c4d1c84b Author: Yoann Vandoorselaere Date: Wed Mar 23 00:21:30 2005 +0000 Mark target->interface as optional. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5606 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 29 ++++++++++++++++++++--------- src/idmef-wrappers-gen/idmef-tree.h | 2 +- src/include/idmef-tree-wrap.h | 2 +- 3 files changed, 22 insertions(+), 11 deletions(-) commit 28504aa508365069fdde5b4befa5bcceacb9c850 Author: Yoann Vandoorselaere Date: Wed Mar 23 00:08:36 2005 +0000 API documentation generation fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5605 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 10 +++++----- src/include/idmef-criteria.h | 2 +- src/include/prelude-list.h | 4 +--- src/prelude-connection-pool.c | 2 +- 4 files changed, 8 insertions(+), 10 deletions(-) commit c7d6290b98c2f42219b7b8f2fe85df743ab40c6e Author: Yoann Vandoorselaere Date: Tue Mar 22 16:20:38 2005 +0000 Handle empty string. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5598 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 3 +++ 1 file changed, 3 insertions(+) commit d12b2ebffde619a698893d76da868455b8851932 Author: Yoann Vandoorselaere Date: Tue Mar 22 16:08:54 2005 +0000 Remove deprecated function. When reading the configuration file, don't discard data when the line is not followed by a \n. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5597 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 47 +++++++++++++++++------------------------------ 1 file changed, 17 insertions(+), 30 deletions(-) commit cf5d226686a96a9a5906f0773afe7bab7c5753ab Author: Yoann Vandoorselaere Date: Tue Mar 22 16:04:40 2005 +0000 Check prelude_option_read() return value. When idmef_address_category_to_numeric() fail, return the provided error code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5596 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit e7135b2ed20b7e1411f3503b198f2b4c3cfee800 Author: Yoann Vandoorselaere Date: Tue Mar 22 16:02:23 2005 +0000 Missing commit for previous pthread fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5595 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/Makefile.am | 1 - 1 file changed, 1 deletion(-) commit 4b7f8b8d731d10219044e0e2abc5a90f8f31ffae Author: Yoann Vandoorselaere Date: Mon Mar 21 18:47:56 2005 +0000 Copyright transfer from Krzysztof Zaraska, Nicolas Delon, and myself, to PreludeIDS Technologies. Include file to be finished in another commit. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5579 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 4 +- src/config-engine.c | 4 +- src/daemonize.c | 4 +- src/idmef-additional-data.c | 4 +- src/idmef-class.c | 5 +- src/idmef-criteria-string.lex.l | 6 +- src/idmef-criteria-string.yac.y | 6 +- src/idmef-criteria.c | 4 +- src/idmef-criterion-value.c | 5 +- src/idmef-data.c | 4 +- src/idmef-message-print.c | 5 +- src/idmef-message-read.c | Bin 77257 -> 77302 bytes src/idmef-message-write.c | 6 +- src/idmef-path.c | 5 +- src/idmef-time.c | 4 +- src/idmef-tree-wrap.c | 6 +- src/idmef-value-type.c | 4 +- src/idmef-value.c | 6 +- .../GenerateIDMEFMessagePrintC.pm | 5 +- .../GenerateIDMEFMessageReadC.pm | 6 +- .../GenerateIDMEFMessageWriteC.pm | 6 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 6 +- src/include/prelude-list.h | 307 +++++++++++---------- src/prelude-async.c | 4 +- src/prelude-client-profile.c | 4 +- src/prelude-client.c | 4 +- src/prelude-connection-pool.c | 4 +- src/prelude-connection.c | 4 +- src/prelude-failover.c | 4 +- src/prelude-hash.c | 4 +- src/prelude-ident.c | 4 +- src/prelude-inet.c | 4 +- src/prelude-io.c | 4 +- src/prelude-log.c | 4 +- src/prelude-msg.c | 4 +- src/prelude-msgbuf.c | 4 +- src/prelude-option-wide.c | 4 +- src/prelude-option.c | 4 +- src/prelude-plugin.c | 4 +- src/prelude-string.c | 4 +- src/prelude-timer.c | 4 +- src/prelude.c | 4 +- src/tls-auth.c | 4 +- src/tls-util.c | 4 +- src/variable.c | 4 +- 45 files changed, 253 insertions(+), 247 deletions(-) commit a7d7563b9ccdb0d3cbed1341c604867670f0b0b8 Author: Yoann Vandoorselaere Date: Mon Mar 21 18:15:37 2005 +0000 Cleanup config-engine. Handle large config line. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5578 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 201 ++++++++++++++++++++++++++++++-------------- src/include/config-engine.h | 6 +- src/prelude-option.c | 6 +- 3 files changed, 147 insertions(+), 66 deletions(-) commit 7414dc6f64f39c5501636328d77056a87d1d8a46 Author: Yoann Vandoorselaere Date: Mon Mar 21 16:36:16 2005 +0000 Prefix list with _, so that it is considered private. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5577 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-linked-object.h | 18 +++++++++++++----- src/prelude-option.c | 25 ++++++++++++------------- 2 files changed, 25 insertions(+), 18 deletions(-) commit 52f3e471e647153942cc86cabda700acf634ab35 Author: Yoann Vandoorselaere Date: Mon Mar 21 16:18:57 2005 +0000 Remove the linked property from this object, since it doesn't really make sense, and that object can be cached. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5576 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 4 ---- 1 file changed, 4 deletions(-) commit b247cbb3a164193de127b0f0950ef08afd125e53 Author: Yoann Vandoorselaere Date: Mon Mar 21 16:06:56 2005 +0000 Add an optional object_id attribute. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5575 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-linked-object.h | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit 3a9821e0ca91e802de7439812c1de67e3ea4b920 Author: Yoann Vandoorselaere Date: Mon Mar 21 16:04:01 2005 +0000 Put some call to prelude_log_debug() in place. Call option list for command line option prior to read configuration file option, so that the filename is eventually set correctly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5574 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 6d0b3ce9281ef05fa2dba867beffa8bf0e06ae5e Author: Yoann Vandoorselaere Date: Mon Mar 21 10:09:27 2005 +0000 Handle the case where we need to read a second fragment directly, without handing back to the application. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5572 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 57de8beeed59a4e0453118cba7649e2fd704f5f8 Author: Yoann Vandoorselaere Date: Sat Mar 19 20:38:32 2005 +0000 Cleanup, better thread safety. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5571 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) commit b95522d18c2061cad091996eb89f410df3e08902 Author: Yoann Vandoorselaere Date: Sat Mar 19 20:37:45 2005 +0000 Fix crash when sending fragmented message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5570 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8a17377ff223802a368a7886fdb5059264d3bbfb Author: Yoann Vandoorselaere Date: Sat Mar 19 15:38:11 2005 +0000 Implement function for referencing a message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5567 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-msg.h | 2 ++ src/prelude-msg.c | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) commit fa6ddc1348dec84c9cf96773fdbb7a24a21ef524 Author: Yoann Vandoorselaere Date: Sat Mar 19 13:02:43 2005 +0000 Export pthread stuff wide, so that even internal library are compiled with the good CFLAGS. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5561 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 8 ++++++-- libprelude-config.in | 2 +- src/Makefile.am | 6 +++--- 3 files changed, 10 insertions(+), 6 deletions(-) commit 5fe3afbf4aabec90effd29af9b538068055047d9 Author: Yoann Vandoorselaere Date: Sat Mar 19 11:45:35 2005 +0000 Add --pthread-cflags to libprelude-config.in. Export them in @LIBPRELUDE_PTHREAD_CFLAGS@ from libprelude.m4. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5560 09c5ec92-17d4-0310-903a-819935f44dba libprelude-config.in | 9 ++++++++- m4/libprelude.m4 | 5 ++++- 2 files changed, 12 insertions(+), 2 deletions(-) commit ab4aeaf4526f994b3325646f343050d7214e468c Author: Yoann Vandoorselaere Date: Sat Mar 19 11:44:35 2005 +0000 Updated... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5559 09c5ec92-17d4-0310-903a-819935f44dba INSTALL | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 2b9ac038657ba8ad4d9874e37794405f4b3db200 Author: Nicolas Delon Date: Fri Mar 18 11:42:44 2005 +0000 don't wrap some unneeded functions git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5548 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0d95868bcf462ee4b21435f409c0ec7305330a6e Author: Yoann Vandoorselaere Date: Fri Mar 18 02:24:54 2005 +0000 Implement prelude_connection_pool_get_flags(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5544 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection-pool.h | 2 ++ src/prelude-connection-pool.c | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) commit 792fc5dae628532c80ecd049465948fa0d0b02c7 Author: Yoann Vandoorselaere Date: Fri Mar 18 02:21:13 2005 +0000 Preserver default flags. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5543 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 229555bba094d5a8381a6323bafcbee0a0dab492 Author: Yoann Vandoorselaere Date: Fri Mar 18 02:17:22 2005 +0000 Ooops. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5542 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) commit 9490d298c8067fb26f07892c64bbe056cb581b79 Author: Yoann Vandoorselaere Date: Fri Mar 18 02:07:49 2005 +0000 Only create the 'global' failover if needed. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5540 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d0220414d468d6a4da85d88bb36840a67e650332 Author: Yoann Vandoorselaere Date: Fri Mar 18 02:06:35 2005 +0000 Call prelude_failover_save_msg() if individual failover flush fail. Print the peer_analyzerid of the connection we a re flushing to not the address (possibly NULL). New flags: PRELUDE_CONNECTION_POOL_FLAGS_GLOBAL_FAILOVER, which is set by default when creating the prelude_connection_pool_t object. Removing this flags allow the user to suppress the use of a global failover for saving data when all connection from the same AND list are dead. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5539 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection-pool.h | 1 + src/prelude-connection-pool.c | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) commit a9146bc9882028786e0063180c6b86a87824d04d Author: Yoann Vandoorselaere Date: Fri Mar 18 00:17:51 2005 +0000 Set an error source for idmef-message-read. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5538 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | Bin 77180 -> 77257 bytes src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 1 + src/libprelude-error/err-sources.h.in | 1 + 3 files changed, 2 insertions(+) commit 33fb1f6c16a022d79b955a88ec583d208a340eba Author: Yoann Vandoorselaere Date: Thu Mar 17 23:03:29 2005 +0000 Fix prelude-adduser argument parsing. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5537 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 548ea6db9b754f907a6bac915ce3abb8c4a5365d Author: Yoann Vandoorselaere Date: Thu Mar 17 20:08:33 2005 +0000 Make prelude-adduser support requesting permission. Fix some leak. Make registration-server ask approval for register an analyzer unless --no-confirm is set. Remove old certificate for the analyzer <-> manager connection if there is any. This is especially usefull now that there might be permission problem. Change prelude_client_capability_t to prelude_client_permission_t. Remove CONNECT capability, and set this as a flags for the prelude_client_t object. Remove the permission argument to prelude_client_new(), and use a default permission scheme of PRELUDE_CONNECTION_PERMISSION_IDMEF_WRITE|PRELUDE_CONNECTION_PERMISSION_ADMIN_READ. Only allocate the connection pool in prelude-client if we get the --server-addr option. Check that PRELUDE_CLIENT_FLAGS_CONNECT is set before connecting the pool. Add a prelude_client_init() function, called by prelude_client_start(), but that might be used individually by sensor needing more granularity. Registration error are now only returned by prelude_client_init() / prelude_client_start(). When destroying the pool list of connection, reset the connection list. Make prelude_connection_connect() check that we have the minimum necessary credentials for connecting. Implemented prelude_connection_parse_permission() and prelude_connection_permission_to_string(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5524 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 67 +++++--- prelude-adduser/server.c | 14 +- prelude-adduser/tls-register.c | 300 +++++++++++++++++++++++++++++++--- prelude-adduser/tls-register.h | 8 +- src/include/prelude-client.h | 8 +- src/include/prelude-connection-pool.h | 2 +- src/include/prelude-connection.h | 28 +++- src/include/tls-auth.h | 5 +- src/include/tls-util.h | 3 + src/libprelude-error/err-codes.h.in | 6 +- src/prelude-client.c | 276 ++++++++++++++++++------------- src/prelude-connection-pool.c | 15 +- src/prelude-connection.c | 194 +++++++++++++++++++--- src/tls-auth.c | 16 +- src/tls-util.c | 47 +++++- 15 files changed, 776 insertions(+), 213 deletions(-) commit af51d00931a8da7147d4a685392cca1dc6868367 Author: Yoann Vandoorselaere Date: Thu Mar 17 19:32:21 2005 +0000 API documentation work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5523 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 220 ++++++++++++++++------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 11 +- 2 files changed, 168 insertions(+), 63 deletions(-) commit 35c920d40a09bdfc469daa3573301cead57bb1f2 Author: Nicolas Delon Date: Wed Mar 16 08:37:30 2005 +0000 fix memory leak git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5513 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 1 + 1 file changed, 1 insertion(+) commit 37d9645fd2a123b66688d9cc9e25c025c0c51199 Author: Nicolas Delon Date: Wed Mar 16 08:20:39 2005 +0000 fix possible memory leak git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5512 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 153359d657f6cf6f8cafa0b0a8d61624ea536da8 Author: Yoann Vandoorselaere Date: Tue Mar 15 17:59:57 2005 +0000 Make _match() function always return < 0 for error, 0 for no match, or a positive value for a successful match. Criterion value and value match specifically return the number of item matched (when the path being matched is part of a list). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5505 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 143 +++++++++++++++++++++++++++++++++++++++++--- src/idmef-criterion-value.c | 32 ++++++++-- src/idmef-value.c | 22 +++++-- 3 files changed, 178 insertions(+), 19 deletions(-) commit 8b4bf92c21391eb79f8fbfe23e35bb07590757c6 Author: Yoann Vandoorselaere Date: Tue Mar 15 17:04:16 2005 +0000 When retrieving a list, don't destroy the whole list value in case we want a sub-element and it is not available in one of the listed object. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5504 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-path.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 32afa5cb7ffaaa1e0a8c5b074a4cc0f0c2bfa23f Author: Sebastien Tricaud Date: Tue Mar 15 15:32:47 2005 +0000 gtkdocization git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5503 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 2 +- src/prelude-client-profile.c | 68 +++++++++++++++++++++++++++----------------- 2 files changed, 43 insertions(+), 27 deletions(-) commit b9856d8377060baa2ec889ddcffa40b26bbbdc93 Author: Sebastien Tricaud Date: Tue Mar 15 02:41:47 2005 +0000 prelude-async: gtkdocization improved, fixed spelling issues, flags enumarated git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5501 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 13262 +++++++++++++++++------------------ docs/api/libprelude-sections.txt | 3 +- docs/api/tmpl/idmef-tree-wrap.sgml | 4 +- docs/api/tmpl/prelude-async.sgml | 14 +- src/include/prelude-async.h | 10 +- src/prelude-async.c | 33 +- src/prelude-client.c | 2 +- src/prelude-timer.c | 4 +- 8 files changed, 6668 insertions(+), 6664 deletions(-) commit 89b71b420cf3552f88d4f6e1e7f715c67b8fdd33 Author: Yoann Vandoorselaere Date: Tue Mar 15 01:40:50 2005 +0000 Honor the absence of PRELUDE_CLIENT_FLAGS_HEARTBEAT flags on prelude_client_destroy(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5500 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fec1c6e15006cecb869617fdd898e0253dc65165 Author: Nicolas Delon Date: Mon Mar 14 19:07:15 2005 +0000 bug fix: handle negative list index values git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5492 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cbd49939b51e3e99b342fc6a88d6c6bf6e89c13d Author: Yoann Vandoorselaere Date: Mon Mar 14 15:41:50 2005 +0000 Fix enum. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5485 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-additional-data.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a10790acebfb08cd3ec2bd05b9ecf73e29c8c751 Author: Yoann Vandoorselaere Date: Mon Mar 14 14:24:09 2005 +0000 Make registration-server support IPv6 connection. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5481 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) commit 6d5fd49f28c43cee18615320ec0e008a1bfcb8ac Author: Yoann Vandoorselaere Date: Mon Mar 14 14:06:07 2005 +0000 Make 'string' the default type for AdditionalData class, as specified by IDMEF draft 14. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5479 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 8 ++++---- src/idmef-wrappers-gen/idmef-tree.h | 4 ++-- src/include/idmef-tree-wrap.h | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) commit 4cc329432af029b50621caf045f9b9f2aba6e306 Author: Yoann Vandoorselaere Date: Sat Mar 12 18:25:20 2005 +0000 Add some missing template. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5470 09c5ec92-17d4-0310-903a-819935f44dba docs/api/tmpl/idmef-additional-data.sgml | 896 +++++++++++++++++++++++++++++ docs/api/tmpl/idmef-message-print.sgml | 294 ++++++++++ docs/api/tmpl/idmef-path.sgml | 346 +++++++++++ docs/api/tmpl/prelude-connection-pool.sgml | 246 ++++++++ docs/api/tmpl/prelude-msg.sgml | 231 ++++++++ docs/api/tmpl/prelude-msgbuf.sgml | 120 ++++ docs/api/tmpl/prelude-string.sgml | 351 +++++++++++ 7 files changed, 2484 insertions(+) commit 50eb6fd816eac37317bb4d64452010587e7aea93 Author: Yoann Vandoorselaere Date: Sat Mar 12 18:21:51 2005 +0000 More documentation work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5469 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 136 +++--- docs/api/libprelude-docs.sgml | 53 ++- docs/api/libprelude-sections.txt | 77 +--- docs/api/tmpl/idmef-criterion-value.sgml | 27 ++ docs/api/tmpl/idmef-message-read.sgml | 30 ++ docs/api/tmpl/idmef-message-write.sgml | 59 ++- docs/api/tmpl/idmef-time.sgml | 139 +++++-- docs/api/tmpl/idmef-tree-wrap.sgml | 690 ------------------------------- docs/api/tmpl/prelude-client.sgml | 1 - 9 files changed, 320 insertions(+), 892 deletions(-) commit ca6b8277c24595206ba12c407cb7fcc1a43adf88 Author: Yoann Vandoorselaere Date: Sat Mar 12 18:21:24 2005 +0000 Don't define the SYSTEM constant within the enumeration, to avoid gtk-doc clash. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5468 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/prelude-error.h.in | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 750a4bc87cb32822e2c5a5acb245971fe9f8b1b6 Author: Yoann Vandoorselaere Date: Sat Mar 12 18:20:50 2005 +0000 Add some missing helper. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5467 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 282 ++++++++++++++++++++++++++++++++++++++++++----- src/include/idmef-time.h | 19 ++-- 2 files changed, 265 insertions(+), 36 deletions(-) commit f77e3477832fc3d01fa9a452bc30c034e826c994 Author: Yoann Vandoorselaere Date: Sat Mar 12 18:20:16 2005 +0000 API documentation work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5466 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection-pool.h | 6 +- src/prelude-connection-pool.c | 215 ++++++++++++++++++++++++++++------ 2 files changed, 185 insertions(+), 36 deletions(-) commit 1f755c602a09eabc8d355b00d2f2c45f72ffddb8 Author: Yoann Vandoorselaere Date: Sat Mar 12 16:16:39 2005 +0000 API documentation work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5465 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 240 ++++ src/idmef-message-read.c | Bin 67980 -> 77180 bytes src/idmef-message-write.c | 1452 +++++++++++++++----- .../GenerateIDMEFMessagePrintC.pm | 8 + .../GenerateIDMEFMessageReadC.pm | 10 + .../GenerateIDMEFMessageWriteC.pm | 117 +- .../GenerateIDMEFMessageWriteH.pm | 4 +- src/include/idmef-message-write.h | 62 +- 8 files changed, 1450 insertions(+), 443 deletions(-) commit 30d20abcf3589f71e97549ca2ac3cca733f62179 Author: Yoann Vandoorselaere Date: Sat Mar 12 03:11:04 2005 +0000 ... Fix for snapshot generation... Hopefully it'll work this time and I can go to bed. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5460 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4bf8c955a8a3e6cff9fa5ac561bd05a62e2d3262 Author: Yoann Vandoorselaere Date: Sat Mar 12 03:06:44 2005 +0000 Move gtkdocize before anything else. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5459 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16d44659bdff72d05793870668ee42829f9afdfe Author: Yoann Vandoorselaere Date: Sat Mar 12 02:55:40 2005 +0000 Pass --copy to gtkdocize git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5458 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7843ce5159367e7d2ac82f40ed06c93ae1498efc Author: Yoann Vandoorselaere Date: Sat Mar 12 02:43:37 2005 +0000 API documentation work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5457 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 30 ++++- docs/api/libprelude-docs.sgml | 12 +- docs/api/tmpl/idmef-tree-wrap.sgml | 79 ++++++++++++- docs/api/tmpl/prelude-client.sgml | 128 +++++++++++++++++++++ docs/api/tmpl/prelude.sgml | 18 ++- src/idmef-path.c | 220 +++++++++++++++++++++++++++++++++++-- src/include/idmef-path.h | 16 +-- src/include/prelude.h.in | 9 +- src/prelude-client.c | 4 +- src/prelude.c | 32 +++++- 10 files changed, 514 insertions(+), 34 deletions(-) commit 4184f4552a004c84691f7f15009916e09f1a45c5 Author: Yoann Vandoorselaere Date: Fri Mar 11 15:38:45 2005 +0000 Allow the user to retrieve the value type and the value itself. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5450 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 21 +++++++++++++++++++-- src/include/idmef-criterion-value.h | 11 +++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) commit 81a4c76ac03be27604484e3dfe44d3e88cac1546 Author: Yoann Vandoorselaere Date: Fri Mar 11 15:02:42 2005 +0000 Warn and exit if gtkdocize is not available. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5449 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3a78202832edc08cca6c001af44f33ba5e79e569 Author: Yoann Vandoorselaere Date: Fri Mar 11 11:54:12 2005 +0000 idmef-value: Implemented idmef_value_print(). Renamed idmef-value-relation to idmef-criterion-operator. idmef-path: Change undefined and forbidden index reserved value so that they don't conflict with the specific value (-1) used to access last list member. Avoid rebuilding the whole path name when it's not needed. Fix a bug with enum value retrieval. Make most of idmef-path function take a depth argument, so that you can dichotomize a path. Fix idmef_path_compare(), and implement idmef_path_ncompare(). Remove deprecated idmef_path_get_numeric(). idmef-criterion-value: Make the API decent. Use function pointer. Implement the regex operator using pcreposix if available, or regular POSIX.2 regex. Remove non-linear time handling, since this is unused and really should be done ina separate module. libmissing: Include regex module. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5444 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 + autogen.sh | 2 + configure.in | 52 +- libmissing/Makefile.am | 10 +- libmissing/gettext.h | 12 +- libmissing/m4/gettext.m4 | 84 +- libmissing/m4/glibc2.m4 | 30 + libmissing/m4/gnulib.m4 | 5 +- libmissing/m4/intdiv0.m4 | 8 +- libmissing/m4/intmax.m4 | 12 +- libmissing/m4/inttypes-pri.m4 | 8 +- libmissing/m4/inttypes.m4 | 8 +- libmissing/m4/isc-posix.m4 | 8 +- libmissing/m4/lcmessage.m4 | 20 +- libmissing/m4/lib-link.m4 | 8 +- libmissing/m4/lib-prefix.m4 | 6 +- libmissing/m4/nls.m4 | 8 +- libmissing/m4/po.m4 | 26 +- libmissing/m4/printf-posix.m4 | 8 +- libmissing/m4/progtest.m4 | 15 +- libmissing/m4/regex.m4 | 126 + libmissing/regex.c | 8295 +++++++++++++++++++++++++++++++++++ libmissing/regex.h | 556 +++ libmissing/vasnprintf.c | 7 +- src/Makefile.am | 2 +- src/idmef-class.c | 7 +- src/idmef-criteria-string.yac.y | 34 +- src/idmef-criteria.c | 219 +- src/idmef-criterion-value.c | 817 +--- src/idmef-path.c | 288 +- src/idmef-value-type.c | 88 +- src/idmef-value.c | 115 +- src/include/idmef-criteria.h | 21 +- src/include/idmef-criterion-value.h | 59 +- src/include/idmef-message-id.h | 286 +- src/include/idmef-path.h | 44 +- src/include/idmef-value-type.h | 20 +- src/include/idmef-value.h | 16 +- 38 files changed, 9840 insertions(+), 1492 deletions(-) commit 7cea857417ea7f665ad54757d6e10e66ffd3e363 Author: Yoann Vandoorselaere Date: Fri Mar 11 11:44:04 2005 +0000 Big documentation update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5443 09c5ec92-17d4-0310-903a-819935f44dba docs/api/Makefile.am | 198 +- docs/api/libprelude-decl.txt | 5238 ++++++++------------------ docs/api/libprelude-docs.sgml | 140 +- docs/api/libprelude-sections.txt | 658 +--- docs/api/tmpl/client-ident.sgml | 16 - docs/api/tmpl/common-gdb.sgml | 48 - docs/api/tmpl/common.sgml | 105 - docs/api/tmpl/config-engine.sgml | 94 - docs/api/tmpl/config.sgml | 16 - docs/api/tmpl/daemonize.sgml | 25 - docs/api/tmpl/extract.sgml | 42 - docs/api/tmpl/getopt_long.sgml | 16 - docs/api/tmpl/idmef-criteria-string.sgml | 16 - docs/api/tmpl/idmef-criteria-string.yac.sgml | 104 - docs/api/tmpl/idmef-criteria.sgml | 39 +- docs/api/tmpl/idmef-criterion-value.sgml | 236 +- docs/api/tmpl/idmef-data.sgml | 8 +- docs/api/tmpl/idmef-message-id-format.sgml | 16 - docs/api/tmpl/idmef-message-id.sgml | 1017 ----- docs/api/tmpl/idmef-msg-send.sgml | 420 --- docs/api/tmpl/idmef-string.sgml | 248 -- docs/api/tmpl/idmef-time.sgml | 16 + docs/api/tmpl/idmef-tree-data.sgml | 38 - docs/api/tmpl/idmef-tree-func.sgml | 486 --- docs/api/tmpl/idmef-tree-print.sgml | 286 -- docs/api/tmpl/idmef-tree-to-string.sgml | 16 - docs/api/tmpl/idmef-tree-wrap.sgml | 1954 +--------- docs/api/tmpl/idmef-tree.sgml | 117 - docs/api/tmpl/idmef-util.sgml | 16 - docs/api/tmpl/idmef-value-object.sgml | 26 - docs/api/tmpl/idmef-value-type.sgml | 131 - docs/api/tmpl/idmef-value.sgml | 38 +- docs/api/tmpl/libmissing.sgml | 16 - docs/api/tmpl/list.sgml | 88 - docs/api/tmpl/ntp.sgml | 144 - docs/api/tmpl/plugin-common-prv.sgml | 113 - docs/api/tmpl/plugin-common.sgml | 155 - docs/api/tmpl/prelude-async.sgml | 1 - docs/api/tmpl/prelude-auth.sgml | 82 - docs/api/tmpl/prelude-client-mgr.sgml | 55 - docs/api/tmpl/prelude-client.sgml | 10 +- docs/api/tmpl/prelude-connection-mgr.sgml | 16 - docs/api/tmpl/prelude-connection.sgml | 13 +- docs/api/tmpl/prelude-failover.sgml | 6 + docs/api/tmpl/prelude-getopt-wide.sgml | 92 - docs/api/tmpl/prelude-getopt.sgml | 470 --- docs/api/tmpl/prelude-hash.sgml | 7 + docs/api/tmpl/prelude-ident.sgml | 6 + docs/api/tmpl/prelude-inet.sgml | 1 + docs/api/tmpl/prelude-io.sgml | 7 + docs/api/tmpl/prelude-linked-object.sgml | 4 - docs/api/tmpl/prelude-list.sgml | 8 + docs/api/tmpl/prelude-log.sgml | 9 - docs/api/tmpl/prelude-message-buffered.sgml | 83 - docs/api/tmpl/prelude-message-id.sgml | 254 -- docs/api/tmpl/prelude-message.sgml | 288 -- docs/api/tmpl/prelude-path.sgml | 96 - docs/api/tmpl/prelude-plugin.sgml | 11 +- docs/api/tmpl/prelude-stdint.sgml | 16 - docs/api/tmpl/prelude-strbuf.sgml | 118 - docs/api/tmpl/prelude-timer-config.sgml | 16 - docs/api/tmpl/sensor.sgml | 110 - docs/api/tmpl/ssl-gencrypto.sgml | 29 - docs/api/tmpl/ssl-register.sgml | 27 - docs/api/tmpl/ssl-registration-msg.sgml | 179 - docs/api/tmpl/ssl-settings.sgml | 25 - docs/api/tmpl/ssl.sgml | 33 - docs/api/tmpl/string-matching.sgml | 88 - docs/api/tmpl/thread.sgml | 16 - docs/api/tmpl/threads.sgml | 16 - docs/api/tmpl/timer.sgml | 28 - docs/api/tmpl/tls-auth.sgml | 38 - docs/api/tmpl/tls-util.sgml | 55 - docs/api/tmpl/variable.sgml | 44 - 74 files changed, 1998 insertions(+), 12699 deletions(-) commit 0dd9e077465029dc2412a4f745abbb6167507be6 Author: Yoann Vandoorselaere Date: Fri Mar 11 11:42:01 2005 +0000 Prefix all IDMEF message ID with IDMEF_ git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5442 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | Bin 66888 -> 67980 bytes src/idmef-message-write.c | 342 ++++++++++----------- src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 8 +- .../GenerateIDMEFMessageReadC.pm | 6 +- .../GenerateIDMEFMessageWriteC.pm | 10 +- 5 files changed, 183 insertions(+), 183 deletions(-) commit ad14fe64932202706de3940242b101b7530054db Author: Yoann Vandoorselaere Date: Fri Mar 11 11:39:39 2005 +0000 distcheck fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5441 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 163f51c11d41b7ea6bb81936748b30dce4a8c1fc Author: Yoann Vandoorselaere Date: Fri Mar 11 11:37:31 2005 +0000 distcheck fix... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5440 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/Makefile.am | 4 ++++ 1 file changed, 4 insertions(+) commit 8190df81e407958b8f666644c4339e67c631cc02 Author: Yoann Vandoorselaere Date: Tue Mar 8 18:26:26 2005 +0000 Fix invalid index increment. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5439 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 14 +++++++------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 2 -- 2 files changed, 7 insertions(+), 9 deletions(-) commit 8591e285d18b3e34fe2f1a7986b1f398994df970 Author: Yoann Vandoorselaere Date: Tue Mar 8 15:00:28 2005 +0000 Remove all get_*_value() function. Theses shouldn't be public. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5438 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 3363 +++------------------- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 - src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 281 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 6 +- src/include/idmef-tree-data.h | 3 - src/include/idmef-tree-wrap.h | 155 - 6 files changed, 546 insertions(+), 3264 deletions(-) commit 4b19bd259e5443ac70dfcb4a4ea5661f33d87eb8 Author: Nicolas Delon Date: Sun Mar 6 13:19:10 2005 +0000 fix bad file name git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5419 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bb2dec369022a18faaaf2250b028ffd536eb9139 Author: Yoann Vandoorselaere Date: Sun Mar 6 13:11:18 2005 +0000 Make idmef-type consistant with the rest of the API since we finally decided to make it public (rename to idmef-class). Make idmef-path provide the ability to retrieve last element of a list by specifying an index of -1. Allow to retrieve a path element from a path, might be useful for application that wish to access different elements of a path separatly: implemented idmef_path_get_depth(), idmef_path_get_element(), idmef_path_get_element_value_type(), idmef_path_get_element_class(). In IDMEF destroy internal functions, always unitialize the members of a list even if we don't destroy them because of the refcount, since when destroying the object, it will lead to an invalid pointer dereference. When calling IDMEF function for setting a list member, always call prelude_list_del_init() if the provided object list is not empty. Avoid potential list mistake. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5418 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- docs/api/libprelude-decl.txt | 1085 ++++++++++++---------- docs/api/libprelude-docs.sgml | 12 +- docs/api/libprelude-sections.txt | 241 ++--- docs/api/tmpl/common.sgml | 9 + docs/api/tmpl/idmef-criteria-string.sgml | 10 - docs/api/tmpl/idmef-criteria.sgml | 10 + docs/api/tmpl/idmef-message-id-format.sgml | 7 - docs/api/tmpl/idmef-message-id.sgml | 26 +- docs/api/tmpl/idmef-tree-data.sgml | 2 +- docs/api/tmpl/idmef-tree-wrap.sgml | 494 +++++++--- docs/api/tmpl/idmef-tree.sgml | 8 + docs/api/tmpl/idmef-type.sgml | 160 ---- docs/api/tmpl/idmef-value-type.sgml | 2 +- docs/api/tmpl/idmef-value.sgml | 20 +- docs/api/tmpl/prelude-client.sgml | 1 + docs/api/tmpl/prelude-log.sgml | 37 +- docs/api/tmpl/tls-util.sgml | 10 + src/Makefile.am | 2 +- src/idmef-class.c | 162 ++++ src/idmef-path.c | 254 ++--- src/idmef-tree-wrap.c | 456 +++++---- src/idmef-type.c | 198 ---- src/idmef-value.c | 56 +- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 26 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 30 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 8 +- src/include/Makefile.am | 2 +- src/include/idmef-class.h | 73 ++ src/include/idmef-path.h | 18 +- src/include/idmef-tree-data.h | 132 +-- src/include/idmef-tree-wrap.h | 222 ++--- src/include/idmef-type.h | 60 -- src/include/idmef-value-type.h | 2 +- src/include/idmef-value.h | 12 +- src/include/idmef.h | 2 +- 36 files changed, 2144 insertions(+), 1707 deletions(-) commit 18374d1e8b89e3daf8f1e1b2d0446ffe5e073fb1 Author: Yoann Vandoorselaere Date: Sun Mar 6 11:40:49 2005 +0000 Fix a crash when sending fragmented message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5414 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msgbuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9647d24a1f5f63602ed1eac18ee40a6e3d723441 Author: Yoann Vandoorselaere Date: Fri Mar 4 15:59:02 2005 +0000 Correct option priority numbering. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5406 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-option.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 500184f9b30be75364081c43fdeccf0d0ba6790b Author: Yoann Vandoorselaere Date: Fri Mar 4 15:58:29 2005 +0000 Remove unused check_option_noarg(). Kill warning, remove old code. Fix prioritized option insertion ordering. Always process the whole option set together, since some option might depend on option set from another context. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5405 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 60 +++++++++++----------------------------------------- 1 file changed, 12 insertions(+), 48 deletions(-) commit 13465007a4194de4baccb71a04c0149102007a87 Author: Yoann Vandoorselaere Date: Fri Mar 4 13:17:09 2005 +0000 Handle case were idmef_path_get() return 0 (no value retrieved). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5404 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1255eb5898ec9fec2bdf1e3172a3179ff74da491 Author: Yoann Vandoorselaere Date: Fri Mar 4 09:42:13 2005 +0000 Fix to_string() open addressed hash table size calculation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5400 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 40 ++++++++++++------------ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) commit 3ae869c25f09299e1a4db0bb9cd5cc59f5471889 Author: Yoann Vandoorselaere Date: Fri Mar 4 09:21:47 2005 +0000 It has been decided to stop implementing recursive analyzer the way they are defined in IDMEF since it prevent to do any kind of 'dynamic' filtering since we don't know the element depth. Rather we now implement analyzer as a list, and provide compatibility when exporting to XML. This is the solution we came up with when talking with one of the IDWG chair. Also, modify list related function so that they take a 'pos' argument. You can now say whether the object should be positionned at the beginning, the end, or any relative position. Modify the _new_child() function used by idmef-path so that it error out if an user ask to create an index for which lower index have not been created. This avoid creating as much empty index as the user specified. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5392 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 69 +- src/idmef-message-read.c | Bin 67012 -> 66888 bytes src/idmef-message-write.c | 32 +- src/idmef-tree-wrap.c | 3089 +++++++++----------- .../GenerateIDMEFMessageReadC.pm | 24 +- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 6 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 135 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 +- src/idmef-wrappers-gen/idmef-tree.h | 12 +- src/include/idmef-tree-data.h | 73 +- src/include/idmef-tree-wrap.h | 114 +- src/libprelude-error/err-codes.h.in | 20 +- src/prelude-client.c | 6 +- 13 files changed, 1667 insertions(+), 1917 deletions(-) commit 256fa6601b88d857ca65952be9ebe9466f976ab4 Author: Yoann Vandoorselaere Date: Fri Mar 4 09:15:40 2005 +0000 Make children_list_t pointer const (future checkin will make the idmef-tree-data defined object table const), so this is needed to avoid warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5391 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-type.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 7925049cb9f2a6d4d1c84bd98a53ed50ba74e656 Author: Yoann Vandoorselaere Date: Fri Mar 4 09:14:44 2005 +0000 Make ops_tbl table const. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5390 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 554c31119aafbf924f6b954ac8ce26336f4671a7 Author: Yoann Vandoorselaere Date: Fri Mar 4 09:11:32 2005 +0000 Make table const. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5389 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-additional-data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b2ec8c01b71366a253535246e504b8013ff5de07 Author: Nicolas Delon Date: Wed Mar 2 16:45:50 2005 +0000 initialize the metatype field of union members git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5388 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-wrappers-gen/IDMEFTree.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e2492d3654b84754baef6d00549ed399a428ee2f Author: Nicolas Delon Date: Wed Mar 2 11:43:15 2005 +0000 initialize source_id and request_id values git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5387 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 2 ++ 1 file changed, 2 insertions(+) commit ee9d57f4408b5a6ae0d81efbbc0accd49b729a52 Author: Yoann Vandoorselaere Date: Mon Feb 28 13:50:33 2005 +0000 Complete IDMEFv14 compliance. Add missing UserID.tty and Heartbeat.heartbeat_interval. Numeric confidence are not an optional integer (the rating is used to decide whether to use the field or not). Remove unique messageID generation from prelude-client, this is not neeeded anymore. Make all ident string, in order to conform to IDMEF (discussion for changing theses to integer has failed). This should not impact performance, since we use our own ident system on top of the IDMEF ident. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5356 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 304 ++++-- src/idmef-message-read.c | Bin 66150 -> 67012 bytes src/idmef-message-write.c | 66 +- src/idmef-tree-wrap.c | 1200 +++++++++++++++------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 1 + src/idmef-wrappers-gen/idmef-tree.h | 47 +- src/include/idmef-message-id.h | 16 +- src/include/idmef-tree-data.h | 41 +- src/include/idmef-tree-wrap.h | 165 +-- src/prelude-client.c | 77 +- 10 files changed, 1242 insertions(+), 675 deletions(-) commit 3304a4927827cc9901c6cb708e9c4bd44c9318e9 Author: Yoann Vandoorselaere Date: Sun Feb 27 01:12:36 2005 +0000 Remove unused. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5349 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 1 - 1 file changed, 1 deletion(-) commit 25682a92bbd2e84f37c1698a4f33e7a210a3eb4f Author: Nicolas Delon Date: Sat Feb 26 09:36:55 2005 +0000 set message priority according idmef impact severity git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5341 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-write.c | 61 +++++++++++++++------- .../GenerateIDMEFMessageWriteC.pm | 18 +++++-- 2 files changed, 54 insertions(+), 25 deletions(-) commit 1b54179ab75875c1117af814c63bc7e2ade12a10 Author: Yoann Vandoorselaere Date: Fri Feb 25 16:39:12 2005 +0000 Rename idmef_criteria_new_string() to idmef_criteria_new_from_string() for API conformance. Remove idmef-criteria-string.h and move the definition to idmef-criteria.h. Update header copyright. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5337 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- bindings/libprelude.i | 1 - src/idmef-criteria-string.yac.y | 4 ++-- src/include/Makefile.am | 1 - src/include/idmef-criteria-string.h | 30 ------------------------------ src/include/idmef-criteria.h | 5 +++-- src/include/idmef.h | 1 - 7 files changed, 6 insertions(+), 38 deletions(-) commit 494d5e2da5fca337a0e950e4b42c972101cff30f Author: Yoann Vandoorselaere Date: Fri Feb 25 15:37:29 2005 +0000 Remove deprecated idmef-message-id-format.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5334 09c5ec92-17d4-0310-903a-819935f44dba src/include/Makefile.am | 1 - src/include/idmef-message-id-format.h | 29 ----------------------------- 2 files changed, 30 deletions(-) commit 3016df801d6bf8ff5c5b35c3d1f9c10c3a3d0c9b Author: Yoann Vandoorselaere Date: Fri Feb 25 11:26:27 2005 +0000 Implemented unset of vlan num attribute. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5329 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 5bb11d54bd11d882b3473fc5f65c7a4719a30a63 Author: Yoann Vandoorselaere Date: Fri Feb 25 11:15:47 2005 +0000 Implemented function for un-setting optional integer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5328 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 133 +++++++++++++++++++++++ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 7 ++ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 + src/include/idmef-tree-wrap.h | 19 ++++ 4 files changed, 163 insertions(+) commit daf2c6d1499fca08b060c299a2c619373d9d65a6 Author: Yoann Vandoorselaere Date: Thu Feb 24 19:26:14 2005 +0000 Cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5323 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 2096d484f4a310c1b3ee3f97c20556f4538d7a29 Author: Nicolas Delon Date: Thu Feb 24 16:53:42 2005 +0000 check pointer value before attempting to clone the object destroy sub objects if the main object creation fail git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5320 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit e7ed2d55be51c1abfd365af72e16745511d3c850 Author: Yoann Vandoorselaere Date: Thu Feb 24 16:27:55 2005 +0000 Rework prelude-log API to extend DEBUG message handling. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5318 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 24 ++++++++----- src/prelude-log.c | 92 +++++++++++++++++++++++------------------------ 2 files changed, 59 insertions(+), 57 deletions(-) commit 8f98c306d9cce167643b11660ac34287c632dd99 Author: Nicolas Delon Date: Thu Feb 24 15:49:17 2005 +0000 bug fix: check pointer values before attempting to clone objects git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5316 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) commit 0af6612721a48744871b69512aee42603dbb30c6 Author: Yoann Vandoorselaere Date: Thu Feb 24 15:41:16 2005 +0000 Fix broken idmef_criterion_value_clone() return value. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5315 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit f86cd4c1bdaa705d163f14bfa7b6341a50a60d91 Author: Yoann Vandoorselaere Date: Wed Feb 23 10:46:19 2005 +0000 Fix prelude_get_file_name_and_path() so that it work when providing path including '../'. Implemented idmef_impact_severity_to_msg_priority. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5302 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 33 ++++++++++++++++++++++++++++++--- src/include/common.h | 4 ++++ 2 files changed, 34 insertions(+), 3 deletions(-) commit e20b9ddc26c88665704f3b96f404889accd5d116 Author: Yoann Vandoorselaere Date: Wed Feb 23 10:42:04 2005 +0000 Re-ordered message priority. Add PRELUDE_MSG_PRIORITY_NONE. Modify prelude-msg code so that when a message divided into differents fragment is received, the priority can be set in any fragment. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5301 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-msg.h | 7 ++++--- src/prelude-msg.c | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 8 deletions(-) commit 3af71d41239cdfcad2c43fe7920cba515899402a Author: Nicolas Delon Date: Tue Feb 22 16:49:33 2005 +0000 bug fix: gmt offset are signed integers NOT unsigned git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5298 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 2 +- src/idmef-criterion-value.c | 6 +++--- src/idmef-time.c | 2 +- src/include/common.h | 2 +- src/include/idmef-time.h | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) commit d9998704bf8a3e088e57485bb5d5892b7b248f34 Author: Nicolas Delon Date: Tue Feb 22 16:26:13 2005 +0000 don't generate proxy classes, we don't need them git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5296 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- bindings/python/prelude.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) commit 9a16bedc18686cf3246c12aa710efa29c8271b6c Author: Nicolas Delon Date: Tue Feb 22 15:08:24 2005 +0000 bug fix, forgot to increment Py_None, it led to a python exception when its refcount reach 0 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5292 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude_python.i | 4 ++++ 1 file changed, 4 insertions(+) commit 567593c34710ec1234e78f7e737021544be646a0 Author: Yoann Vandoorselaere Date: Tue Feb 22 14:59:01 2005 +0000 Some cleanup. Avoid computing the va_list in case we don't need it (debug not set and priority debug). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5291 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) commit fcb9486fccd5430d124190a7231898cf33f64744 Author: Yoann Vandoorselaere Date: Tue Feb 22 03:42:09 2005 +0000 Ooops. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5288 09c5ec92-17d4-0310-903a-819935f44dba src/tls-util.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 2dc7da87e2bee739b6da21b9e176989e083b8ecb Author: Yoann Vandoorselaere Date: Tue Feb 22 03:38:10 2005 +0000 Remove deprecated declare_ident(). Once the prelude-io object is setup, use it to close the connection. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5287 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) commit b3004a91779c7842e8a99a7390861ad8d530ed83 Author: Yoann Vandoorselaere Date: Tue Feb 22 03:36:46 2005 +0000 Don't send analyzerID anymore since it is now read from the certificate. Handle gnutls_bye() returning EAGAIN. Don't deinit the session if it's hold by the prelude-io object. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5286 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit f9638671810125d0b7bb2d8c64d350f9d40b81e7 Author: Yoann Vandoorselaere Date: Tue Feb 22 02:05:25 2005 +0000 When closing a TLS connection, always deinit the TLS session unless we get EAGAIN on gnutls_bye(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5280 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14cd7b94d60bd76cba9dc8d1a3230dd722a56e3b Author: Yoann Vandoorselaere Date: Mon Feb 21 23:58:57 2005 +0000 Make sure the current message is desroyed in case recovering from failover fail. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5279 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 91e19b2cffdf061f1b61c06f67e71e476cbf968d Author: Yoann Vandoorselaere Date: Mon Feb 21 23:01:58 2005 +0000 New function, tls_certificate_get_peer_analyzerid() which given a gnutls_session will gather the certificate used for authentication and extract the analyzerID from it. It's more secure to always associate the analyzerID with the certificate since it remove the ability for a sensor to change analyzerID after registration. This give more control to the person administrating the manager server. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5278 09c5ec92-17d4-0310-903a-819935f44dba src/include/tls-util.h | 2 ++ src/tls-util.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) commit ce2aeb4d58a3be3dd7efd446b2aca652d26a4ef5 Author: Yoann Vandoorselaere Date: Mon Feb 21 12:58:12 2005 +0000 If event_cb is set, don't trigger the global event handler. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5277 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 92afb94399323eef185b40164e066ab3cedc14e0 Author: Yoann Vandoorselaere Date: Mon Feb 21 11:08:13 2005 +0000 New function, prelude_connection_pool_check_event(). That will call the provided callback is available on of the connection in the pool. This obsolete prelude_connection_pool_recv(), since this one make it possible to both handle the connection in a blocking/non blocking manner. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5273 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection-pool.h | 4 +- src/prelude-connection-pool.c | 91 +++++++++++++---------------------- 2 files changed, 37 insertions(+), 58 deletions(-) commit 394bed480639648d2b32d572768a997859a89485 Author: Yoann Vandoorselaere Date: Mon Feb 21 11:02:30 2005 +0000 Move callback arguments after the callback itself for consistencie. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5271 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value.c | 5 ++--- src/include/idmef-value.h | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) commit 4a79778822d2909f081475ded42503fe7c409af1 Author: Yoann Vandoorselaere Date: Mon Feb 21 00:30:13 2005 +0000 New client flags : PRELUDE_CLIENT_FLAGS_HEARTBEAT, which is set by default on newly created client. This allow the caller to ask for not sending heartbeat. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5270 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 3 ++- src/prelude-client.c | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) commit 0807a04f04629beed7750f6e1d6ae27ed6bf023c Author: Nicolas Delon Date: Sun Feb 20 16:35:27 2005 +0000 support for misc functions git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5261 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 1 + bindings/libprelude_python.i | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) commit 7c7f6e734b3c7a97a3eef942a62590e8602d3835 Author: Yoann Vandoorselaere Date: Sun Feb 20 13:40:21 2005 +0000 Update documentation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5260 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 42 +++++++++++++++++------------------ docs/api/libprelude-sections.txt | 4 +--- docs/api/tmpl/prelude-connection.sgml | 3 +++ docs/api/tmpl/prelude-log.sgml | 2 ++ docs/api/tmpl/prelude-plugin.sgml | 4 +++- 5 files changed, 29 insertions(+), 26 deletions(-) commit 9009992867183661e3bf68b2f107d41bc2ae5fd2 Author: Yoann Vandoorselaere Date: Sun Feb 20 13:40:10 2005 +0000 Documentation generation fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5259 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-list.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1f7e9128fa035d0c79a35cb84fdf63c728973e78 Author: Yoann Vandoorselaere Date: Sun Feb 20 13:37:42 2005 +0000 Documentation generation fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5258 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 938108c2a6e0fcaf821a98505ea12baea0fe136a Author: Yoann Vandoorselaere Date: Sun Feb 20 13:37:28 2005 +0000 Use an enumeration for message priority. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5257 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-msg.h | 14 ++++++++------ src/prelude-msg.c | 6 +++--- 2 files changed, 11 insertions(+), 9 deletions(-) commit 05f4f436ee3847d5a1a95d20456a491d60423826 Author: Yoann Vandoorselaere Date: Sun Feb 20 12:50:24 2005 +0000 Documentation fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5256 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-plugin.h | 2 +- src/prelude-plugin.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) commit 457af25a989985b92a93599479709299877629ba Author: Yoann Vandoorselaere Date: Sun Feb 20 12:49:55 2005 +0000 Fix a warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5255 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e94a1d04b698e57543ee4eedb7b94b93081d5390 Author: Yoann Vandoorselaere Date: Sun Feb 20 12:48:56 2005 +0000 Commit missing. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5254 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a073412d52161bf24288be880dfb23042bf40c1f Author: Yoann Vandoorselaere Date: Sun Feb 20 12:48:24 2005 +0000 Change behavior so that prelude-connection is usable with blocking/non blocking connection: - prelude_connection_close() will possibly return PRELUDE_ERROR_EAGAIN if the connection is non blocking. - prelude_connection_(send|recv)() will not close the connection in case of error, but rather return the error. - prelude_connection_connect() and prelude_connection_destroy() will close the current connection in a blocking manner, even if the connection is set to non blocking. You should use prelude_io_close() manually prior to calling theses function in order to avoid this behavior. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5253 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 110 ++++++++++++++++++++++++----------------------- 1 file changed, 56 insertions(+), 54 deletions(-) commit a34c2995bb915b3551b98a24ed6a4af8511223e1 Author: Yoann Vandoorselaere Date: Sat Feb 19 19:26:54 2005 +0000 Don't close the connection in case we hit PRELUDE_ERROR_EAGAIN on send. Necessary when the caller use a non blocking fd. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5252 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 3 +++ 1 file changed, 3 insertions(+) commit 8593db893c1a9890cc414da55323087f55b4ce07 Author: Yoann Vandoorselaere Date: Sat Feb 19 19:22:19 2005 +0000 When gnutls_bye() return EAGAIN, don't uninitialize the GnuTLS session. Rather the caller should call prelude_io_close() til the close success. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5251 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 3 +++ 1 file changed, 3 insertions(+) commit 4ea32777aa7688b1419d6e2e13ffdf237af1ff93 Author: Yoann Vandoorselaere Date: Sat Feb 19 17:36:08 2005 +0000 Typo. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5250 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 79b124fa8979a629840a276185346b21d449131e Author: Yoann Vandoorselaere Date: Sat Feb 19 17:33:40 2005 +0000 Handle EAGAIN everywhere, in case the caller use non blocking IO. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5249 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) commit 4a682c84bf25f7988152dd918cefb3316728d7db Author: Yoann Vandoorselaere Date: Sat Feb 19 17:24:26 2005 +0000 Make sure we handle EAGAIN when sending the message. It is possible that the socket is set to non blocking mode. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5248 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-pool.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 644e76bfa7c424dc67743195e96c2be8e3fb14ca Author: Yoann Vandoorselaere Date: Sat Feb 19 17:15:09 2005 +0000 When indicating an authentication error telling to use prelude-adduser for sensor registration, strip the port number from the destination address. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5247 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 761798deba1baa367e991b6b2627d301c6bc7b46 Author: Nicolas Delon Date: Sat Feb 19 13:59:09 2005 +0000 bug fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5246 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 13 +++++-------- src/prelude-option-wide.c | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) commit 41e4694a150b37ca8642087b8878e2d53db6061f Author: Yoann Vandoorselaere Date: Fri Feb 18 16:16:14 2005 +0000 Add a PRELUDE_LOG_DEBUG priority. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5241 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 10 ++++++---- src/prelude-log.c | 17 ++++++++++------- 2 files changed, 16 insertions(+), 11 deletions(-) commit c4d2a9a904fdf96fc957c41558488f45d7d31e51 Author: Yoann Vandoorselaere Date: Wed Feb 16 22:35:24 2005 +0000 Documentation generation fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5207 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 273 +++++++++++++----------------- docs/api/libprelude-docs.sgml | 9 +- docs/api/libprelude-sections.txt | 83 ++++----- docs/api/tmpl/idmef-time.sgml | 20 +++ docs/api/tmpl/idmef-util.sgml | 23 --- docs/api/tmpl/prelude-client.sgml | 2 + docs/api/tmpl/prelude-connection-mgr.sgml | 226 ------------------------- docs/api/tmpl/prelude-connection.sgml | 69 ++++++++ src/prelude-log.c | 4 +- 9 files changed, 247 insertions(+), 462 deletions(-) commit cbacd621ff085b3e5b0a48e21eed53f73e25e2ac Author: Yoann Vandoorselaere Date: Wed Feb 16 22:35:00 2005 +0000 Fix creating plugin instance outside of a prelude-option callback. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5206 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) commit 2b723c03a97ab331fdc7a9463cf1b86fc239e9a3 Author: Yoann Vandoorselaere Date: Wed Feb 16 22:31:23 2005 +0000 Fix option priority handling. Stop merging options. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5205 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 206b2fba5c9d43401c79b75196d98ee626d30c9b Author: Yoann Vandoorselaere Date: Wed Feb 16 01:11:54 2005 +0000 Include prelude-connection-pool.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5133 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude.h.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2fcb9e147c7c21c64eb6732147183d01e5dcaa6a Author: Yoann Vandoorselaere Date: Mon Feb 14 19:13:54 2005 +0000 Merge back pre-0-9-api-cleanup into trunk. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5120 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 6 +- bindings/libprelude.i | 281 +- bindings/libprelude_perl.i | 278 + bindings/libprelude_python.i | 338 + bindings/perl/Prelude.pm | 701 -- bindings/python/prelude.py | 769 --- docs/api/libprelude-decl.txt | 2531 ++++---- docs/api/libprelude-docs.sgml | 43 +- docs/api/libprelude-sections.txt | 93 +- docs/api/tmpl/common.sgml | 2 - docs/api/tmpl/config-engine.sgml | 6 +- docs/api/tmpl/idmef-criteria-string.sgml | 1 + docs/api/tmpl/idmef-criteria.sgml | 23 +- docs/api/tmpl/idmef-criterion-value.sgml | 29 +- docs/api/tmpl/idmef-data.sgml | 22 +- docs/api/tmpl/idmef-object-value.sgml | 87 - docs/api/tmpl/idmef-object.sgml | 207 - docs/api/tmpl/idmef-time.sgml | 20 +- docs/api/tmpl/idmef-tree-wrap.sgml | 773 ++- docs/api/tmpl/idmef-type.sgml | 4 + docs/api/tmpl/idmef-value-type.sgml | 7 +- docs/api/tmpl/idmef-value.sgml | 51 +- docs/api/tmpl/libprelude-unused.sgml | 2554 -------- docs/api/tmpl/prelude-async.sgml | 2 - docs/api/tmpl/prelude-client.sgml | 27 +- docs/api/tmpl/prelude-connection-mgr.sgml | 7 - docs/api/tmpl/prelude-connection.sgml | 76 +- docs/api/tmpl/prelude-hash.sgml | 1 + docs/api/tmpl/prelude-ident.sgml | 4 +- docs/api/tmpl/prelude-inet.sgml | 36 - docs/api/tmpl/prelude-io.sgml | 7 +- docs/api/tmpl/prelude-linked-object.sgml | 2 + docs/api/tmpl/prelude-list.sgml | 68 +- docs/api/tmpl/prelude-log.sgml | 49 +- docs/api/tmpl/prelude-plugin.sgml | 11 +- docs/api/tmpl/prelude.sgml | 2 + docs/api/tmpl/tls-auth.sgml | 4 - libmissing/Makefile.am | 74 +- libmissing/alloca.h | 14 +- libmissing/alloca_.h | 14 +- libmissing/gai_strerror.c | 71 + libmissing/getaddrinfo.c | 195 + libmissing/getaddrinfo.h | 90 + libmissing/gettext.h | 68 + libmissing/m4/alloca.m4 | 10 +- libmissing/m4/codeset.m4 | 21 + libmissing/m4/eoverflow.m4 | 8 +- libmissing/m4/getaddrinfo.m4 | 18 + libmissing/m4/gettext.m4 | 487 ++ libmissing/m4/glibc21.m4 | 30 + libmissing/m4/gnulib.m4 | 8 +- libmissing/m4/iconv.m4 | 101 + libmissing/m4/intdiv0.m4 | 72 + libmissing/m4/intmax.m4 | 32 + libmissing/m4/intmax_t.m4 | 8 +- libmissing/m4/inttypes-pri.m4 | 32 + libmissing/m4/inttypes.m4 | 27 + libmissing/m4/inttypes_h.m4 | 8 +- libmissing/m4/isc-posix.m4 | 26 + libmissing/m4/lcmessage.m4 | 32 + libmissing/m4/lib-ld.m4 | 110 + libmissing/m4/lib-link.m4 | 549 ++ libmissing/m4/lib-prefix.m4 | 153 + libmissing/m4/longdouble.m4 | 8 +- libmissing/m4/longlong.m4 | 8 +- libmissing/m4/nls.m4 | 49 + libmissing/m4/po.m4 | 426 ++ libmissing/m4/printf-posix.m4 | 46 + libmissing/m4/progtest.m4 | 91 + libmissing/m4/restrict.m4 | 38 + libmissing/m4/signed.m4 | 8 +- libmissing/m4/size_max.m4 | 8 +- libmissing/m4/snprintf.m4 | 10 +- libmissing/m4/sockpfaf.m4 | 39 + libmissing/m4/stdbool.m4 | 83 + libmissing/m4/stdint_h.m4 | 8 +- libmissing/m4/strdup.m4 | 10 +- libmissing/m4/strndup.m4 | 11 +- libmissing/m4/strnlen.m4 | 10 +- libmissing/m4/strpbrk.m4 | 8 +- libmissing/m4/strsep.m4 | 10 +- libmissing/m4/uintmax_t.m4 | 30 + libmissing/m4/ulonglong.m4 | 23 + libmissing/m4/vasnprintf.m4 | 8 +- libmissing/m4/vsnprintf.m4 | 10 +- libmissing/m4/wchar_t.m4 | 8 +- libmissing/m4/wint_t.m4 | 8 +- libmissing/m4/xsize.m4 | 8 +- libmissing/stdbool_.h | 93 + libmissing/strsep.h | 6 +- prelude-adduser/prelude-adduser.c | 63 +- src/Makefile.am | 20 +- src/common.c | 28 +- src/daemonize.c | 69 +- src/idmef-additional-data.c | 218 +- src/idmef-criteria-string.yac.y | 103 +- src/idmef-criteria.c | 262 +- src/idmef-criterion-value.c | 320 +- src/idmef-data.c | 158 +- src/idmef-message-print.c | 6 +- src/idmef-message-read.c | Bin 65383 -> 66150 bytes src/idmef-object-value.c | 173 - src/idmef-object.c | 879 --- src/idmef-path.c | 867 +++ src/idmef-time.c | 128 +- src/idmef-tree-wrap.c | 6715 +++++++++++--------- src/idmef-type.c | 71 +- src/idmef-util.c | 51 - src/idmef-value-type.c | 154 +- src/idmef-value.c | 457 +- .../GenerateIDMEFMessagePrintC.pm | 6 +- .../GenerateIDMEFMessageReadC.pm | 38 +- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 4 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 274 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 16 +- src/include/Makefile.am | 12 +- src/include/idmef-additional-data.h | 37 +- src/include/idmef-criteria-string.h | 2 +- src/include/idmef-criteria.h | 43 +- src/include/idmef-criterion-value.h | 24 +- src/include/idmef-data.h | 28 +- src/include/idmef-object-value.h | 59 - src/include/idmef-object.h | 76 - src/include/idmef-path.h | 75 + src/include/idmef-time.h | 16 +- src/include/idmef-tree-data.h | 11 +- src/include/idmef-tree-wrap.h | 790 +-- src/include/idmef-type.h | 8 +- src/include/idmef-util.h | 60 - src/include/idmef-value-type.h | 10 +- src/include/idmef-value.h | 56 +- src/include/idmef.h | 3 +- src/include/libmissing.h | 9 +- src/include/prelude-client.h | 8 +- src/include/prelude-connection-mgr.h | 98 - src/include/prelude-connection-pool.h | 87 + src/include/prelude-connection.h | 28 +- src/include/prelude-failover.h | 4 +- src/include/prelude-hash.h | 9 +- src/include/prelude-inet.h | 31 - src/include/prelude-linked-object.h | 12 +- src/include/prelude-list.h | 217 +- src/include/prelude-log.h | 29 +- src/include/prelude-option.h | 49 +- src/include/prelude-plugin.h | 17 +- src/include/prelude-string.h | 59 +- src/include/prelude-timer.h | 3 +- src/libprelude-error/err-codes.h.in | 41 +- src/libprelude-error/err-sources.h.in | 6 +- src/libprelude-error/perror.c | 2 +- src/libprelude-error/prelude-error.h.in | 4 +- src/prelude-async.c | 27 +- src/prelude-client.c | 512 +- src/prelude-connection-mgr.c | 1046 --- src/prelude-connection-pool.c | 1080 ++++ src/prelude-connection.c | 285 +- src/prelude-failover.c | 60 +- src/prelude-hash.c | 46 +- src/prelude-inet.c | 194 +- src/prelude-io.c | 21 +- src/prelude-log.c | 56 +- src/prelude-option-wide.c | 62 +- src/prelude-option.c | 223 +- src/prelude-plugin.c | 191 +- src/prelude-string.c | 594 +- src/prelude-timer.c | 33 +- src/prelude.c | 4 +- src/tls-auth.c | 51 +- src/tls-util.c | 4 +- src/variable.c | 12 +- 170 files changed, 15239 insertions(+), 14810 deletions(-) commit 1114f73c0f6fc0cb2205de9fc69b49377b76398b Author: Yoann Vandoorselaere Date: Mon Feb 14 01:21:37 2005 +0000 This source code has been rewritten since is original implementation. Update copyright notice. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5103 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 18ba56752e76945795246d5ad70e86595d101fd9 Author: Yoann Vandoorselaere Date: Sun Feb 13 23:57:15 2005 +0000 Missing copyright notices. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5102 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-print.c | 23 ++++++++++++++++++++++ src/idmef-message-write.c | 2 +- .../GenerateIDMEFMessagePrintC.pm | 23 ++++++++++++++++++++++ .../GenerateIDMEFMessagePrintH.pm | 23 ++++++++++++++++++++++ .../GenerateIDMEFMessageWriteC.pm | 2 +- .../GenerateIDMEFMessageWriteH.pm | 23 ++++++++++++++++++++++ src/include/idmef-message-print.h | 23 ++++++++++++++++++++++ src/include/idmef-message-write.h | 23 ++++++++++++++++++++++ src/include/prelude-client-profile.h | 23 ++++++++++++++++++++++ src/prelude-client-profile.c | 23 ++++++++++++++++++++++ 10 files changed, 186 insertions(+), 2 deletions(-) commit 11928dd877bbd7a680b6e5758f44aa8310b98bfa Author: Nicolas Delon Date: Sat Feb 5 04:19:34 2005 +0000 bug fixes: check value validity git-svn-id: file:///home/yoann/SVN/trunk/libprelude@5012 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 262b6c1110316e169b2597f29ade499dd503bd0c Author: Yoann Vandoorselaere Date: Sat Jan 22 17:58:31 2005 +0000 Use client as the default context. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4897 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2c94056450edcb9df50b2a93b01a50f75c4f7c72 Author: Yoann Vandoorselaere Date: Fri Jan 21 19:49:51 2005 +0000 Don't check whether the option was already set from the command line in case this is a 'section'. Section need to be called anyway to restore the context, and to avoid invalid option error. Fix config option error when providing command line option. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4895 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 28b1e47f1e02e1088233222f961b9fd3219fde2d Author: Yoann Vandoorselaere Date: Fri Jan 21 19:45:30 2005 +0000 Fix a manager crash on config request, due to the recent change made to option handling. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4894 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 1a5f0fdd248d72b20d99777cadc99ed92c3cb782 Author: Nicolas Delon Date: Wed Jan 19 23:37:12 2005 +0000 fix memory leak git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4843 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 0e479c09da5e849f3b865529d5c06c764d6616bb Author: Yoann Vandoorselaere Date: Tue Jan 18 19:46:55 2005 +0000 Fix uninitialized. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4835 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 757e7bcf16988e870d6ccd185198ba634f4f4598 Author: Yoann Vandoorselaere Date: Fri Jan 14 12:06:37 2005 +0000 Include prelude-error.h in libprelude.i Fix bug #51 reported by Sebastien Tricaud git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4830 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 1 + 1 file changed, 1 insertion(+) commit 0ef271fe129727b26e3646e49acb5c2ab561a7ef Author: Nicolas Delon Date: Tue Jan 11 14:38:07 2005 +0000 bug fix: remove perl Makefile dependency git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4811 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1b06d9adab06c67289bf01ac35c9c1f636baad59 Author: Yoann Vandoorselaere Date: Tue Jan 11 11:12:46 2005 +0000 Call reorder_argv() in case we have an argument. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4804 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 90e46f1b6a2b104da70a1ab1bbe0ba4f61fd9209 Author: Yoann Vandoorselaere Date: Tue Jan 11 10:57:01 2005 +0000 Fix optional argument handling that was broken due to is_an_argument() change. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4803 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3181773a62e642b97599efb84ae9bac611fe5106 Author: Rob Holand Date: Tue Jan 11 10:07:59 2005 +0000 missing include git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4800 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 1 + 1 file changed, 1 insertion(+) commit 262d283143bf780515dc3f16276023a82d6c3828 Author: Yoann Vandoorselaere Date: Tue Jan 11 09:54:07 2005 +0000 Fit new prelude_init prototype in prelude.h.in, Thanks to Rob Holland for reporting this. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4799 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude.h.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ba5d7024ce8a2bedd87c149f9762487fcf5a5c30 Author: Yoann Vandoorselaere Date: Tue Jan 11 08:55:47 2005 +0000 Increase array size to 1024. Was set to 8 for testing purposes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4797 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d9c3132df8a48ce379a1bc574e5af35494af510a Author: Yoann Vandoorselaere Date: Tue Jan 11 08:51:43 2005 +0000 Change config_engine so that it return error value. Add a config engine error source. Modify prelude_init() so that it take and slice prelude specific options out of argc and argv. prelude_client_new() doesn't use argc/argv anymore and use the internal one, provided through prelude_init(). Modified prelude_option_parse_argument so that the filename argument is a pointer, that might be modified by the user callback. Remove --set-configuration-file and --ignore-startup-error, since they really belong to the sensor. Internal error code in prelude-connection-mgr(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4795 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 8 +- src/include/config-engine.h | 2 +- src/include/prelude-client.h | 8 +- src/include/prelude-option.h | 2 +- src/libprelude-error/err-sources.h.in | 1 + src/prelude-client.c | 239 ++++++++++++----------------- src/prelude-connection-mgr.c | 109 +++++++------- src/prelude-msgbuf.c | 1 + src/prelude-option-wide.c | 4 +- src/prelude-option.c | 275 ++++++++++++++++------------------ src/prelude.c | 67 ++++++++- 11 files changed, 355 insertions(+), 361 deletions(-) commit 258e0167cb84346caa8e42e269df3ac9289481fa Author: Yoann Vandoorselaere Date: Tue Jan 11 08:45:48 2005 +0000 Always set error on return. Convert some internal function so that they return error code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4794 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) commit b176ee858a172ee51ec9a02cad1c17f125eb0c3c Author: Yoann Vandoorselaere Date: Mon Jan 10 00:15:58 2005 +0000 Set PRELUDE_STRING_CAN_REALLOC flags on _nodup string. Modify prelude_string_get_string_released() so that it handle the case where a string is empty (return NULL), and handle the case where a string is a reference by returning a dup of it. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4786 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit e589964cfd98ad9701ff2fa55cabaf09604a3c86 Author: Yoann Vandoorselaere Date: Sun Jan 9 22:07:58 2005 +0000 Set fd_ptr to NULL when setting buffer IO mode. Fix a pottential crash on realloc(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4785 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 1 + 1 file changed, 1 insertion(+) commit b2202046202bb5cfb38682170f8170a4af8b86c7 Author: Nicolas Delon Date: Sat Jan 8 16:06:44 2005 +0000 define a new error source for libpreludedb git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4779 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/err-sources.h.in | 1 + 1 file changed, 1 insertion(+) commit 2d4d4789e16fd0e93588772cff5ae2fbd11bc738 Author: Yoann Vandoorselaere Date: Thu Jan 6 14:02:33 2005 +0000 Always make sure the prelude_string_t err pointer is to NULL when returning an error without error buffer. Slight cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4768 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 405c95c543378e38bf24590c8ca129b01dd463c7 Author: Yoann Vandoorselaere Date: Thu Jan 6 10:30:31 2005 +0000 Slight formatting fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4765 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ea6527129705843f8a2160919ee1533857037e0b Author: Yoann Vandoorselaere Date: Thu Jan 6 10:23:25 2005 +0000 r4609@arwen: yoann | 2005-01-05T14:17:57.521577Z Make set() / commit() / destroy() option callback take a prelude_string_t that might be used by the user to report a detailed error. Modify get() option callback so that a prelude_string_t is used. There is no size limitation anymore. Update API documentation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4761 09c5ec92-17d4-0310-903a-819935f44dba INSTALL | 52 +- docs/api/libprelude-decl.txt | 189 +- docs/api/libprelude-docs.sgml | 26 +- docs/api/libprelude-sections.txt | 158 +- docs/api/tmpl/idmef-data.sgml | 6 + docs/api/tmpl/libprelude-unused.sgml | 5134 +++++----------------------------- docs/api/tmpl/prelude-io.sgml | 9 + docs/api/tmpl/prelude-plugin.sgml | 1 + prelude-adduser/prelude-adduser.c | 17 +- src/include/prelude-option.h | 28 +- src/include/prelude-plugin.h | 23 +- src/prelude-client.c | 197 +- src/prelude-option-wide.c | 74 +- src/prelude-option.c | 194 +- src/prelude-plugin.c | 44 +- 15 files changed, 1102 insertions(+), 5050 deletions(-) commit 7de3ddf41265ce825c59987fdfb13664d9cd5363 Author: Yoann Vandoorselaere Date: Wed Jan 5 14:04:59 2005 +0000 Set client-profile UID/GID before an eventual error on the analyzerID file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4743 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client-profile.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 692fbee29e938993bd68b5df4b2dde18110aec95 Author: Nicolas Delon Date: Tue Jan 4 11:22:15 2005 +0000 check if the option value is required git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4727 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 1 + 1 file changed, 1 insertion(+) commit 16873159998db7898e10263660b67fbd9f789f84 Author: Yoann Vandoorselaere Date: Mon Jan 3 21:54:29 2005 +0000 Handle case where the string is a reference in prelude_string_clear(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4726 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 3cff4accd1491887e603d480f0a32e1076ddb3f2 Author: Yoann Vandoorselaere Date: Mon Jan 3 21:53:22 2005 +0000 remove deprecated. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4725 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-print.c | 2250 ---------------------------------- src/idmef-tree-to-string.c | 2350 ------------------------------------ src/include/idmef-tree-print.h | 39 - src/include/idmef-tree-to-string.h | 39 - 4 files changed, 4678 deletions(-) commit 7278356178e24a910801adb21d46bc7d6bd98c0a Author: Yoann Vandoorselaere Date: Sun Jan 2 23:46:39 2005 +0000 Always restore correct LDFLAGS. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4723 09c5ec92-17d4-0310-903a-819935f44dba m4/libprelude.m4 | 1 + 1 file changed, 1 insertion(+) commit 91d20b0a7bd59cccb0de8821ef13f28fc5a2d7a7 Author: Nicolas Delon Date: Sat Jan 1 23:37:34 2005 +0000 print error message git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4717 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 2d99b084c1e53e752d6843a9110431ac600c1d39 Author: Nicolas Delon Date: Fri Dec 31 00:10:37 2004 +0000 fit last libprelude C API changes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4701 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 46 +++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) commit 8fad70df28441fa19e40cdd42b47d152e4f46963 Author: Nicolas Delon Date: Thu Dec 30 17:37:17 2004 +0000 fix perl bindings git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4698 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 3 ++- bindings/libprelude.i | 13 ++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) commit 10234e6a340bce7b1f9a4199a6733bc4c1bc9ace Author: Yoann Vandoorselaere Date: Thu Dec 30 16:28:06 2004 +0000 Use prelude_string_t for to_string() API func. Update documentation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4695 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 5114 ++++++++++++++------------- docs/api/libprelude-docs.sgml | 10 +- docs/api/libprelude-sections.txt | 528 +-- docs/api/tmpl/client-ident.sgml | 24 - docs/api/tmpl/extract.sgml | 42 - docs/api/tmpl/idmef-criteria.sgml | 8 +- docs/api/tmpl/idmef-criterion-value.sgml | 8 +- docs/api/tmpl/idmef-data.sgml | 384 +- docs/api/tmpl/idmef-message-read.sgml | 10 + docs/api/tmpl/idmef-time.sgml | 8 +- docs/api/tmpl/idmef-tree-print.sgml | 30 + docs/api/tmpl/idmef-tree-to-string.sgml | 330 -- docs/api/tmpl/idmef-tree-wrap.sgml | 3 +- docs/api/tmpl/idmef-tree.sgml | 8 - docs/api/tmpl/idmef-util.sgml | 11 - docs/api/tmpl/idmef-value-type.sgml | 6 +- docs/api/tmpl/idmef-value.sgml | 4 +- docs/api/tmpl/libprelude-unused.sgml | 1354 ++++++- docs/api/tmpl/prelude-client.sgml | 187 +- docs/api/tmpl/prelude-connection-mgr.sgml | 89 +- docs/api/tmpl/prelude-connection.sgml | 66 +- docs/api/tmpl/prelude-failover.sgml | 1 + docs/api/tmpl/prelude-getopt-wide.sgml | 4 +- docs/api/tmpl/prelude-getopt.sgml | 132 +- docs/api/tmpl/prelude-ident.sgml | 1 + docs/api/tmpl/prelude-io.sgml | 3 + docs/api/tmpl/prelude-log.sgml | 13 + docs/api/tmpl/prelude-message-buffered.sgml | 21 +- docs/api/tmpl/prelude-message-id.sgml | 20 +- docs/api/tmpl/prelude-message.sgml | 3 +- docs/api/tmpl/prelude.sgml | 15 + docs/api/tmpl/threads.sgml | 16 - docs/api/tmpl/timer.sgml | 112 - docs/api/tmpl/tls-auth.sgml | 10 +- src/idmef-additional-data.c | 39 +- src/idmef-data.c | 165 +- src/include/idmef-additional-data.h | 17 +- src/include/idmef-criterion-value.h | 4 +- src/include/idmef-data.h | 102 +- src/include/idmef-tree-wrap.h | 74 +- src/include/idmef-value.h | 2 +- 41 files changed, 5165 insertions(+), 3813 deletions(-) commit 9873e76a8f58afcd0acdf3ba095645b91faadeda Author: Yoann Vandoorselaere Date: Thu Dec 30 16:27:03 2004 +0000 Use prelude_string_t for to_string() API func. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4694 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 58 ++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 25 deletions(-) commit f035c2cf79a3e719eccb923391c2fb7e8cfd60b4 Author: Yoann Vandoorselaere Date: Thu Dec 30 16:25:12 2004 +0000 Use prelude_string_t for to_string() API func. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4693 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 27 ++++++++++++++------------- src/idmef-value.c | 20 ++++++-------------- src/include/idmef-value-type.h | 2 +- 3 files changed, 21 insertions(+), 28 deletions(-) commit 888c23e9d0c0e03ef8b513283b8c745482bb16f9 Author: Yoann Vandoorselaere Date: Thu Dec 30 16:23:40 2004 +0000 Use prelude_string_t for to_string() API func. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4692 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 42 ++++++++++++++++++------------------------ src/include/idmef-criteria.h | 4 ++-- 2 files changed, 20 insertions(+), 26 deletions(-) commit 2206fc69b8f0fa513979d30b0ebceed15be479a8 Author: Yoann Vandoorselaere Date: Thu Dec 30 16:22:27 2004 +0000 to_string function now use a prelude_string_t. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4691 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 39 ++++++++++++++++++--------------------- src/include/idmef-time.h | 4 ++-- 2 files changed, 20 insertions(+), 23 deletions(-) commit ab615c5e105e6cea82af6ea9767e68b2754e9550 Author: Yoann Vandoorselaere Date: Thu Dec 30 16:21:24 2004 +0000 updated. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4690 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 72 +++++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 36 deletions(-) commit 14de767f9d7103c5be3bd8807ec422c73780c3e3 Author: Yoann Vandoorselaere Date: Thu Dec 30 16:21:02 2004 +0000 Fix automatic API documentation generation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4689 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 86e613eb2d142f9da1ea3b0af34fc7d99af23982 Author: Yoann Vandoorselaere Date: Thu Dec 30 16:20:43 2004 +0000 Fix automatic API documentation generation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4688 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-msgbuf.h | 2 +- src/prelude-msgbuf.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) commit 5226d38c2903ae2e2772f2f7a7042beb97706a82 Author: Yoann Vandoorselaere Date: Thu Dec 30 16:20:22 2004 +0000 Fix automatic API documentation generation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4687 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-option.h | 2 +- src/prelude-option.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) commit 0785ac576b71c4a46ae15e7c8946c07781763451 Author: Yoann Vandoorselaere Date: Thu Dec 30 16:19:46 2004 +0000 Fix automatic API documentation generation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4686 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2565503136f956d81243d2b06d7dad96c94bf095 Author: Yoann Vandoorselaere Date: Thu Dec 30 16:18:29 2004 +0000 Remove idmef-tree-to-string. s/tree-print/message-print/ Make idmef-message-print take a prelude_io_t object as argument (which can be a file, buffer, socket, etc). Update bindings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4685 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- bindings/libprelude.i | 5 +- src/Makefile.am | 7 +- src/idmef-message-print.c | 2402 ++++++++++++++++++++ .../GenerateIDMEFMessagePrintC.pm | 388 ++++ .../GenerateIDMEFMessagePrintH.pm | 63 + src/idmef-wrappers-gen/GenerateIDMEFTreePrintC.pm | 343 --- src/idmef-wrappers-gen/GenerateIDMEFTreePrintH.pm | 63 - .../GenerateIDMEFTreeToStringC.pm | 320 --- .../GenerateIDMEFTreeToStringH.pm | 63 - src/idmef-wrappers-gen/generator.pl | 26 +- src/include/Makefile.am | 7 +- src/include/idmef-message-print.h | 39 + 13 files changed, 2908 insertions(+), 820 deletions(-) commit dd6185fceb07b65be074e6ef7bd9aa8de33f3e00 Author: Yoann Vandoorselaere Date: Thu Dec 30 16:15:39 2004 +0000 call gnutls_deinit() / unload loaded plugins in prelude_deinit(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4684 09c5ec92-17d4-0310-903a-819935f44dba src/prelude.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 402acfaaed8bc046e975cd0031dbf5d1286ab082 Author: Yoann Vandoorselaere Date: Thu Dec 30 13:54:11 2004 +0000 Implemented a backend for using prelude-io on a buffer. This will allow to drop one of idmef-tree-to-string/idmef-tree-print, and will allow application to write their own IDMEF cache implementation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4682 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-io.h | 4 +-- src/prelude-io.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 91 insertions(+), 3 deletions(-) commit 2084ca0f6139a2c32e43b81b17a47e62e5ff88ad Author: Yoann Vandoorselaere Date: Wed Dec 29 10:57:30 2004 +0000 Fix warnings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4680 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 2a04515fb600858b8517942ec5df1810de9a5279 Author: Yoann Vandoorselaere Date: Thu Dec 23 19:18:48 2004 +0000 Don't check whether called option got a set callback. Use do_set() which already take care of it and correctly deal with context. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4669 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 3a3cce6e8b2112a22ef8a20531d37784d5a0a76b Author: Yoann Vandoorselaere Date: Thu Dec 23 11:10:41 2004 +0000 More fix to prelude specific option checking. Fix prelude_option_destroy() so that it handle root option correctly (theses option are not listed, so prelude_list_del() should not be called). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4661 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 45 +++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 24 deletions(-) commit 964f80f7419821244848c0b779af8921a5380053 Author: Yoann Vandoorselaere Date: Thu Dec 23 11:09:36 2004 +0000 remove unused. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4660 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 1 - 1 file changed, 1 deletion(-) commit 195211a2a137c4e4cf002c862b8bd2ad2045c44d Author: Yoann Vandoorselaere Date: Thu Dec 23 11:06:35 2004 +0000 Tell our msgbuf when we are going to async mode. Also, make prelude_client_new preserve the client when returning a profile error since this is needed for the caller to get the prelude-adduser message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4659 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 51 +++++++++++++++------------------------------------ 1 file changed, 15 insertions(+), 36 deletions(-) commit 7a0c37ca1db0141931953a698b9a053a9fbea918 Author: Yoann Vandoorselaere Date: Thu Dec 23 11:04:10 2004 +0000 Add some list check. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4658 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit d047f7fef1b4d2d31ab89c11e1c8b16f0fccbf21 Author: Yoann Vandoorselaere Date: Thu Dec 23 11:03:46 2004 +0000 Revert part of [4422], now we only call prelude_list_del() if the list is not marked as empty, which should fix the problem without having undefined children in the parent. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4657 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 294 ++++++++--------------- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 9 +- 2 files changed, 104 insertions(+), 199 deletions(-) commit 930079800f9d61d6220b7205316adc09246015e1 Author: Nicolas Delon Date: Wed Dec 22 20:27:09 2004 +0000 update tree-to-string and tree-print to last idmef-data changes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4656 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-print.c | 7 ++++++- src/idmef-tree-to-string.c | 6 +----- src/idmef-wrappers-gen/GenerateIDMEFTreePrintC.pm | 7 ++++++- src/idmef-wrappers-gen/GenerateIDMEFTreeToStringC.pm | 6 +----- 4 files changed, 14 insertions(+), 12 deletions(-) commit 50b6cdf33f94f33bbf913d8d7fe725d598f6e81e Author: Rob Holand Date: Wed Dec 22 19:55:46 2004 +0000 cast idmef data properly git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4655 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 0b34f7a20bebe2feec74c899480703542c8c80b9 Author: Rob Holand Date: Wed Dec 22 19:53:29 2004 +0000 add missing prototypes. small whitespace fix git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4654 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-additional-data.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 4208d4467566f60719b4168ef1513cdce29eeaca Author: Rob Holand Date: Wed Dec 22 19:52:55 2004 +0000 remove duplicate gtk-doc option git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4653 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 5 ----- 1 file changed, 5 deletions(-) commit 160ba89c2eaaecd881aac6ec18157499e1eefa74 Author: Yoann Vandoorselaere Date: Wed Dec 22 19:29:25 2004 +0000 free *prev, not prev. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4652 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17b924b621ba770d6eb3c6ce6f1510c627fdad71 Author: Nicolas Delon Date: Tue Dec 21 16:10:42 2004 +0000 get more infos about instances git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4645 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit d60881e69f54ee1ca334a7af0638c9f23c18a04b Author: Nicolas Delon Date: Tue Dec 21 12:23:20 2004 +0000 the heartbeat interval must also be expressed in seconds when getting value git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4642 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0850c1ba9bc81f347c54e52b48f18698857f2bc2 Author: Nicolas Delon Date: Mon Dec 20 02:35:14 2004 +0000 handle binary idmef data in python bindings git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4632 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 13 +++++++++++++ bindings/python/prelude.py | 10 ++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) commit 02c4b516a706795fdcbf027fd9e25e3d175a636a Author: Nicolas Delon Date: Sun Dec 19 17:52:02 2004 +0000 bug fix in python bindings when setting an idmef-data bug fix for python typemap of unsigned 32 bits C integers, the python 'int' type only support signed 32 integers, so, a value >= 2 ^ 32 make the python 'int' become negative, we override the default swig typemap to convert C 32 bits unsigned integers into python 'long' type that can support those range of values git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4631 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 6 ++++++ bindings/python/prelude.py | 23 +++++++++++------------ 2 files changed, 17 insertions(+), 12 deletions(-) commit d27855678ef47c5c50e279b520fd6c2c10b1f8e8 Author: Nicolas Delon Date: Sun Dec 19 16:46:28 2004 +0000 fit last prelude-client API changes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4630 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 12 ++++++++++-- bindings/python/prelude.py | 45 +++++++++++++++------------------------------ 2 files changed, 25 insertions(+), 32 deletions(-) commit b034198112fffc9e6a33a617d3c67d955b531890 Author: Yoann Vandoorselaere Date: Sun Dec 19 15:30:04 2004 +0000 correct check for prelude specific options. Always use a prelude_option_t as the root. Make option search compare the root as well. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4628 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 168 +++++++++++++++++++++++++++------------------------ 1 file changed, 88 insertions(+), 80 deletions(-) commit 8ff7d5a67e59584808c47ee40dae76deaf85c2d0 Author: Nicolas Delon Date: Sun Dec 19 14:26:42 2004 +0000 remove debug message git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4627 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 4 ---- 1 file changed, 4 deletions(-) commit 3bfc82e9c10910b733a22d5234759df6bed00671 Author: Nicolas Delon Date: Sun Dec 19 13:53:51 2004 +0000 bug fix, do a correct check/interpretation of recv_reply return value git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4625 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 11 ++++------- bindings/python/prelude.py | 8 ++++---- 2 files changed, 8 insertions(+), 11 deletions(-) commit 3982276ce2ccc3e8a57fd9449c1f4739ac8e83ee Author: Yoann Vandoorselaere Date: Sun Dec 19 13:38:39 2004 +0000 More error code/source definition. Define the error source in prelude-client-profile. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4624 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/err-codes.h.in | 3 ++- src/libprelude-error/err-sources.h.in | 7 ++++--- src/prelude-client-profile.c | 2 ++ 3 files changed, 8 insertions(+), 4 deletions(-) commit 3d2f8d947615f8dc41c8549dd2184704ff9aee5c Author: Nicolas Delon Date: Sat Dec 18 22:22:04 2004 +0000 some fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4622 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 12 +++++++++ bindings/python/prelude.py | 64 ++++++++++++++++++++++++++++------------------ 2 files changed, 51 insertions(+), 25 deletions(-) commit 7f2fb23eb02a20a4187a87d4cd23c63c9d89938d Author: Nicolas Delon Date: Sat Dec 18 21:59:41 2004 +0000 remove debug messages git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4621 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 3 --- 1 file changed, 3 deletions(-) commit 6808886ba262b974737d49a407f0be9a05a5881b Author: Yoann Vandoorselaere Date: Sat Dec 18 20:03:47 2004 +0000 Make prelude_connection_is_alive() return a prelude_bool_t. Fix prelude-connection-mgr notification from the receive handler. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4620 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection-mgr.h | 6 +- src/include/prelude-connection.h | 2 +- src/prelude-connection-mgr.c | 106 +++++++++++++++++++---------------- src/prelude-connection.c | 4 +- 4 files changed, 63 insertions(+), 55 deletions(-) commit 7ab792ca79d1cc5e5bd982c7ca96f5c68f2dd6df Author: Yoann Vandoorselaere Date: Sat Dec 18 14:45:57 2004 +0000 revert previous modification on idmef-additional-data.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4619 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-additional-data.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit e3f0a327fe13cf559b87389c83fa160f7ba7f7ce Author: Yoann Vandoorselaere Date: Sat Dec 18 14:20:48 2004 +0000 Do not try to extract data of type byte-string with prelude_extract_characters_safe since it will check for a ending \0. Preserve prelude_extract_* error value. Add some missing + 1 needed to include \0 in idmef-additional-data.h. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4618 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | Bin 65024 -> 65383 bytes .../GenerateIDMEFMessageReadC.pm | 56 ++++++++++++++------- src/include/idmef-additional-data.h | 20 ++++---- 3 files changed, 48 insertions(+), 28 deletions(-) commit 2ce854b3958c49f51c714885b97620c30bf9675d Author: Yoann Vandoorselaere Date: Sat Dec 18 12:52:44 2004 +0000 Fix set() on option path where one of the option might not have a set() function, and might only be used as a context. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4617 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 2f88ae3eaa0c61998a7c10a4714d47405063cd0e Author: Yoann Vandoorselaere Date: Fri Dec 17 19:59:19 2004 +0000 Default context is now NULL. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4613 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a23a4cc32f7eda086a2eac698f2d8ee8fc14037f Author: Yoann Vandoorselaere Date: Fri Dec 17 19:57:21 2004 +0000 Set connection-mgr data to point to the prelude_client_t. Set the default context for the prelude generic root option to be prelude_client_t. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4612 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 6d9c168b6c631cebd5ba36226d8fff6248c83d9f Author: Yoann Vandoorselaere Date: Fri Dec 17 19:56:29 2004 +0000 Implemented prelude_option_new_root(). More context checking. Ability to set a default option context. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4611 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-option.h | 4 + src/prelude-option.c | 178 ++++++++++++++++++++++++++++++------------- 2 files changed, 129 insertions(+), 53 deletions(-) commit 97c54d4adda75505a0c973cc5d7e9ec2239824f2 Author: Yoann Vandoorselaere Date: Fri Dec 17 14:44:39 2004 +0000 More timer handling fixes... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4609 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit 56606501fc26eb4b33558343dc8157ea4d4a856d Author: Yoann Vandoorselaere Date: Fri Dec 17 14:16:28 2004 +0000 Always start the event timer if an event_handler is specified. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4608 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 867894653760966ab29dfd5d490dea6a54ea2247 Author: Yoann Vandoorselaere Date: Fri Dec 17 13:39:54 2004 +0000 On demand profile loading. To avoid error when a prelude_client_t got no TLS certificate since it's not supposed to connect. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4607 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client-profile.h | 2 +- src/prelude-client-profile.c | 21 +++++++++++++++------ src/tls-auth.c | 6 +++++- 3 files changed, 21 insertions(+), 8 deletions(-) commit 70503a61b09c81c138dcbfff4fd6a60a97ea41c3 Author: Nicolas Delon Date: Fri Dec 17 06:09:32 2004 +0000 fix type-unsafe operations with idmef-data create helper functions for additional data update python bindings to last prelude-client*/prelude-connection API changes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4603 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 67 ++-- bindings/python/prelude.py | 64 ++-- src/Makefile.am | 1 + src/idmef-additional-data.c | 362 +++++++++++++++++++++ src/idmef-data.c | 358 +++++++++++++------- src/idmef-message-read.c | Bin 63433 -> 65024 bytes src/idmef-message-write.c | 33 +- src/idmef-time.c | 9 +- src/idmef-tree-wrap.c | 162 ++++++++- src/idmef-util.c | 79 ----- src/idmef-value-type.c | 2 +- .../GenerateIDMEFMessageReadC.pm | 85 ++++- .../GenerateIDMEFMessageWriteC.pm | 33 +- src/idmef-wrappers-gen/idmef-tree.h | 23 +- src/include/Makefile.am | 1 + src/include/idmef-additional-data.h | 309 ++++++++++++++++++ src/include/idmef-data.h | 218 +++++++------ src/include/idmef-tree-wrap.h | 89 ++--- src/include/idmef-util.h | 5 - src/include/idmef.h | 1 + src/include/prelude-client.h | 14 - src/include/prelude-connection.h | 2 - src/prelude-client.c | 15 +- 23 files changed, 1491 insertions(+), 441 deletions(-) commit c836f633a44099bec0c0010af9c93db6b744f895 Author: Yoann Vandoorselaere Date: Fri Dec 17 05:14:49 2004 +0000 More fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4602 09c5ec92-17d4-0310-903a-819935f44dba client.conf.in | 4 ++-- global.conf.in | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 02086f2266185933d98d99480df1a698e2a13cea Author: Yoann Vandoorselaere Date: Fri Dec 17 04:19:54 2004 +0000 Remove deprecated prelude_client_t dependencies for issuing option request. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4601 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-option-wide.h | 2 +- src/prelude-option-wide.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) commit c91158ccb64ddc681d71c8f04571b836712b7c32 Author: Yoann Vandoorselaere Date: Fri Dec 17 04:02:18 2004 +0000 commit missing. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4600 09c5ec92-17d4-0310-903a-819935f44dba client.conf.in | 2 ++ global.conf.in | 2 ++ 2 files changed, 4 insertions(+) commit 2a3e2cb42f717d418653c94ed66949ab03c4a2c1 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:18:55 2004 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4595 09c5ec92-17d4-0310-903a-819935f44dba docs/api/tmpl/common.sgml | 9 + docs/api/tmpl/idmef-message-id.sgml | 244 +++- docs/api/tmpl/idmef-message-read.sgml | 50 + docs/api/tmpl/idmef-message-write.sgml | 45 + docs/api/tmpl/idmef-time.sgml | 91 ++ docs/api/tmpl/idmef-tree-print.sgml | 40 + docs/api/tmpl/idmef-tree-to-string.sgml | 55 + docs/api/tmpl/idmef-tree-wrap.sgml | 2428 ++++++++++++++++++++++++++----- docs/api/tmpl/idmef-tree.sgml | 9 + docs/api/tmpl/idmef-value.sgml | 46 + docs/api/tmpl/libprelude-unused.sgml | 70 +- docs/api/tmpl/prelude-client.sgml | 9 + docs/api/tmpl/prelude-list.sgml | 19 + docs/api/tmpl/prelude-log.sgml | 68 +- docs/api/tmpl/prelude-message.sgml | 10 - docs/api/tmpl/prelude-plugin.sgml | 17 + 16 files changed, 2774 insertions(+), 436 deletions(-) commit 5839467772a50a91bba1c91280950bf2127cbc03 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:17:44 2004 +0000 Kill client-ident dependencie. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4594 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 1 - 1 file changed, 1 deletion(-) commit 56ecb0f4f16e4be91af9eb35ef1c9d574c9cbd18 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:17:30 2004 +0000 Kill client-ident.h dependencie. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4593 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 1 - 1 file changed, 1 deletion(-) commit ec7640515285b2c52bed1920af486d74f19b7754 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:17:10 2004 +0000 Make the output of prelude-option print somewhat nicer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4592 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 6576661e7a46c4efda28ded8a42d915ede4aea64 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:15:53 2004 +0000 Re-work the implementation, providing the ability to specify differents kind of event handler. API cleanup. Error handling cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4591 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection-mgr.h | 37 ++- src/prelude-connection-mgr.c | 467 ++++++++++++++++++----------------- 2 files changed, 279 insertions(+), 225 deletions(-) commit f8358f45d20300feb5264a86a007973fa0abf96c Author: Yoann Vandoorselaere Date: Fri Dec 17 02:15:11 2004 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4590 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-tree-wrap.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 56e02952034dfcc93d9433912d7fd0417a5a0a2b Author: Yoann Vandoorselaere Date: Fri Dec 17 02:14:58 2004 +0000 Update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4589 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 144 +++++++++++++++++++++++++------------------------- 1 file changed, 72 insertions(+), 72 deletions(-) commit 233c03412c08950be194ffadca5d933c82d355bd Author: Yoann Vandoorselaere Date: Fri Dec 17 02:14:25 2004 +0000 Use prelude-client-profile, some code cleanup. Only parse our own options. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4588 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 46 ++++++++++---------------------------------- 1 file changed, 10 insertions(+), 36 deletions(-) commit d4b893b25657a8bd4deececc5078690ee0d483d1 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:13:53 2004 +0000 Use prelude-clien git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4587 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 715 +++++++++++++++++++-------------------------------- 1 file changed, 269 insertions(+), 446 deletions(-) commit 0d8af233e9572c26763be0cf7bc0e7929d7614bf Author: Yoann Vandoorselaere Date: Fri Dec 17 02:12:14 2004 +0000 Fit msgbuf changes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4586 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit ab3856e9d270d05cc26a9afb149dffadb11bc7d9 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:11:22 2004 +0000 capability message id renaming. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4585 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-message-id.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f09dcf22cc2ddb494f173c03d9826850b43a51e Author: Yoann Vandoorselaere Date: Fri Dec 17 02:10:49 2004 +0000 Use prelude-client-profile instead of prelude-client. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4584 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 126 +++++++++++++++++++------------------- prelude-adduser/server.c | 21 ++++--- prelude-adduser/server.h | 2 +- prelude-adduser/tls-register.c | 68 ++++++++++---------- prelude-adduser/tls-register.h | 10 +-- 5 files changed, 117 insertions(+), 110 deletions(-) commit c500781554dff93e60c5ef16ad909f6b695f9372 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:10:27 2004 +0000 Remove unused. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4583 09c5ec92-17d4-0310-903a-819935f44dba src/tls-util.c | 22 ---------------------- 1 file changed, 22 deletions(-) commit 9fdeee3878733ee756ec7942bbc558f98a84df61 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:09:39 2004 +0000 commit missing. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4582 09c5ec92-17d4-0310-903a-819935f44dba src/include/tls-auth.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 11a197261e8b695012564b40eacbb3f43992b722 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:09:19 2004 +0000 Initialize gcrypt for thread. Use a client-profile instead of a prelude-client. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4581 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit 403e223e49f091a8341ee4cf0d8c1471ba4af3a6 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:08:29 2004 +0000 client-ident is deprecated. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4580 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 2 +- src/client-ident.c | 100 --------------------------------------------- src/include/Makefile.am | 3 +- src/include/client-ident.h | 35 ---------------- 4 files changed, 3 insertions(+), 137 deletions(-) commit 2b8a78b5398fc0a4c4d3c2e849836a38f454e0c3 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:07:06 2004 +0000 Use prelude-error in some place. Store peer analyzerid. Use per connection capability instead of using prelude-client internal capability. Kill prelude-client dependencie, in favor of client-profile. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4579 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection.h | 26 +++- src/prelude-connection.c | 249 +++++++++++++++++++++++++-------------- 2 files changed, 185 insertions(+), 90 deletions(-) commit c77d8a17d1616dbb7931e13a822930b04fc1480e Author: Yoann Vandoorselaere Date: Fri Dec 17 02:05:10 2004 +0000 Make the prelude-msgbuf API prelude-error friendly. Interract with new prelude-msg API. Kill prelude-client dependencie. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4578 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-msgbuf.h | 26 ++++++---- src/prelude-msgbuf.c | 114 +++++++++++++++++++++++-------------------- 2 files changed, 77 insertions(+), 63 deletions(-) commit c18ac0f87cb8828cbdc9afc18625eb9cd920e3ca Author: Yoann Vandoorselaere Date: Fri Dec 17 02:03:37 2004 +0000 Make the prelude-msg API prelude-error friendly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4577 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-msg.h | 8 ++--- src/prelude-msg.c | 85 +++++++++++++++++++++++++++++------------------ 2 files changed, 57 insertions(+), 36 deletions(-) commit 1faacc73f7a011c09b20a1970985ded03c1ae483 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:02:12 2004 +0000 Missing commit. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4576 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-io.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 73b830d34fdab035da410ca21202353b22779483 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:02:00 2004 +0000 Make prelude-io prelude error code friendly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4575 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit fc58633b075dd302d378ec716eeb629ca82b9da9 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:01:20 2004 +0000 Make prelude-failover able to return prelude-error code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4574 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-failover.h | 2 +- src/prelude-failover.c | 40 +++++++++++++++++----------------------- 2 files changed, 18 insertions(+), 24 deletions(-) commit cba2a84cc99d5db5e44a68d048ff11db20b13ef8 Author: Yoann Vandoorselaere Date: Fri Dec 17 02:00:40 2004 +0000 Make prelude_ident_new() able to return prelude error code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4573 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-ident.h | 2 +- src/prelude-ident.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) commit 4f1e4605652c87b87a2814c010f4c4a785273e1b Author: Yoann Vandoorselaere Date: Fri Dec 17 01:59:37 2004 +0000 Remove DYNAMIC_IDENT tag for alert/heartbeat. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4572 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-wrappers-gen/idmef-tree.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 55eaa64c683de3f0a25c8102627a39d84f6fcc15 Author: Yoann Vandoorselaere Date: Fri Dec 17 01:58:58 2004 +0000 Don't write the missing alert/heartbeat message ident here. This really belong to prelude-client. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4571 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-write.c | 24 ++++----------------- .../GenerateIDMEFMessageWriteC.pm | 25 +++------------------- 2 files changed, 7 insertions(+), 42 deletions(-) commit b995199d9fb6c9a4c560efdff1c041de851b0ae2 Author: Yoann Vandoorselaere Date: Fri Dec 17 01:56:56 2004 +0000 New prelude-client-profile implementation. Will be hooked to prelude-client in a further commit. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4570 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client-profile.h | 53 +++++ src/prelude-client-profile.c | 406 +++++++++++++++++++++++++++++++++++ 2 files changed, 459 insertions(+) commit 59f959f75538a5d5d31a8c75a98565594c56a164 Author: Yoann Vandoorselaere Date: Fri Dec 17 01:55:29 2004 +0000 Updated. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4569 09c5ec92-17d4-0310-903a-819935f44dba m4/libtool.m4 | 471 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 276 insertions(+), 195 deletions(-) commit f66d68653beead2d3b92a5e99afbac80babeb94b Author: Yoann Vandoorselaere Date: Fri Dec 17 01:54:53 2004 +0000 Define some more code. Implement prelude_perror(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4568 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/Makefile.am | 3 ++- src/libprelude-error/err-sources.h.in | 4 +++- src/libprelude-error/perror.c | 18 ++++++++++++++++++ src/libprelude-error/prelude-error.h.in | 2 ++ 4 files changed, 25 insertions(+), 2 deletions(-) commit 209f5e5ea23a53437486006623091c6602481d48 Author: Yoann Vandoorselaere Date: Fri Dec 17 01:54:16 2004 +0000 Added prelude_log_v. Same as prelude_log(), but use a va_list. Make prelude_log() use prelude_log_v(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4567 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 5 ++++- src/prelude-log.c | 25 ++++++++++++++++--------- 2 files changed, 20 insertions(+), 10 deletions(-) commit 0a2be00a918643486c2cc1d85e5a019d71ca6bf4 Author: Yoann Vandoorselaere Date: Tue Dec 14 14:10:51 2004 +0000 Fix non blocking message read. Cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4563 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) commit 185f179cff24d43688bbdbabb5c71ff87e5fcb70 Author: Yoann Vandoorselaere Date: Mon Dec 13 10:44:37 2004 +0000 Send analyzerid prior to capability, since the analyzerid will be needed to apply certain capability. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4562 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit b6723142110db84c1d8d6083c379a6dd3f27e902 Author: Yoann Vandoorselaere Date: Mon Dec 13 02:46:12 2004 +0000 Downgrade gnutls requirement from 1.0.17 to 1.0.14. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4561 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 603b1100bdb45d29d500ec3d039080ca34f8aa29 Author: Yoann Vandoorselaere Date: Sat Dec 11 19:33:05 2004 +0000 prelude_msg_write now only return success or error, and handle non blocking internally. Update function prototype and documentation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4560 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-msg.h | 2 +- src/prelude-msg.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 827b30cac2b81199d72d6387a28dfda450345a7a Author: Yoann Vandoorselaere Date: Sat Dec 11 19:31:31 2004 +0000 Slight cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4559 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit cc0b86f7b5866b025ba271cd9e8eb795a0437102 Author: Yoann Vandoorselaere Date: Sat Dec 11 03:52:48 2004 +0000 Free saddr on connection close, so that we don't leak memory on reconnect. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4558 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 3 +++ 1 file changed, 3 insertions(+) commit eeffbc97a697fd5d99edaeec3e50fe7884a99e00 Author: Yoann Vandoorselaere Date: Sat Dec 11 03:32:19 2004 +0000 Only flush the cached element if flush_cache is positionned to TRUE. Otherwise, we should not flush since the object might still be in use. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4557 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-object.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit cdcf8f02a173788cb91f94f7f5fb8f7cd59acd70 Author: Yoann Vandoorselaere Date: Fri Dec 10 17:19:21 2004 +0000 Move prelude_check_version() from common.c to prelude.c, implemented prelude_init() - which is a NOP right now - and prelude_deinit(), which will destroy the IDMEF object cache, and global option. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4555 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 1 + src/common.c | 29 ------------------- src/include/prelude.h.in | 4 +++ src/prelude.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 79 insertions(+), 29 deletions(-) commit f8be60ce3a5aa775d0db66ca8ff0afd4ff57f412 Author: Yoann Vandoorselaere Date: Fri Dec 10 17:14:34 2004 +0000 New internal _idmef_object_cache_destroy() function, to be called by prelude_deinit(). Also, provide a value destroy function callback to the prelude_hash_new() function, so that cached object can be destroyed on exit. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4554 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-object.c | 14 ++++++++++++-- src/include/idmef-object.h | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) commit cd143c655a08fcc936d24cd5f1810f9658ebb00a Author: Yoann Vandoorselaere Date: Fri Dec 10 16:55:34 2004 +0000 Try to read the input as an ntpstamp. If that fail try to read it as a string. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4553 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit b7ec1b874ce674c116e9ef11dd2efa19b2b9c46f Author: Yoann Vandoorselaere Date: Thu Dec 9 14:39:51 2004 +0000 EOF to avoid commit should not be needed anymore. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4549 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 96f38d8bc8662046ee79eff02ea006585da9fffd Author: Yoann Vandoorselaere Date: Thu Dec 9 12:04:05 2004 +0000 Gather the peer analyzerID upon connection. New accessor function in prelude-client to access the peer ID. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4545 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection.h | 2 ++ src/include/tls-auth.h | 2 +- src/prelude-connection.c | 10 +++++++++- src/tls-auth.c | 22 +++++++++++++++------- 4 files changed, 27 insertions(+), 9 deletions(-) commit bb3a7da662d91b2864c5b1332a319670a5862c42 Author: Yoann Vandoorselaere Date: Thu Dec 9 07:59:47 2004 +0000 Set HOP after the target_id list. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4544 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 60bc4a4f6c30a851dbe1d854211f9ffd08d4ed84 Author: Yoann Vandoorselaere Date: Thu Dec 9 02:57:25 2004 +0000 check whether we got an option onject. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4542 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 2 ++ 1 file changed, 2 insertions(+) commit eeadfaa2aa09c37320608590798069b4fa4cdc35 Author: Nicolas Delon Date: Thu Dec 9 00:43:43 2004 +0000 fit libprelude C API last changes on the admin side git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4540 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 18 ++++++++++++++++++ bindings/python/prelude.py | 39 +++++++++++++++++---------------------- 2 files changed, 35 insertions(+), 22 deletions(-) commit d75375b6be99c34ccb84c2e4a6441778642b0028 Author: Yoann Vandoorselaere Date: Wed Dec 8 19:07:43 2004 +0000 Implement option message routing, very useful for error handling when issuing a request, and to avoid broadcasting message to everyone. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4538 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-message-id.h | 4 +- src/include/prelude-option-wide.h | 3 +- src/prelude-option-wide.c | 79 ++++++++++++++++++++------------------- 3 files changed, 45 insertions(+), 41 deletions(-) commit 2b6a415bbab78d05fe11cf6cd14461787e04ea21 Author: Nicolas Delon Date: Wed Dec 8 10:31:13 2004 +0000 replace "NULL" by NULL bug fix for optional enum idmef_value retrival git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4527 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 234 +++++++++++------------ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 18 +- 2 files changed, 124 insertions(+), 128 deletions(-) commit 9c5da6259f0a077bedfc7c2836611692859ad96f Author: Nicolas Delon Date: Mon Dec 6 18:36:30 2004 +0000 fit changes of libprelude C API git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4515 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 4 ++-- bindings/libprelude.i | 17 +++++++++++++++ bindings/python/prelude.py | 54 ++++++++++++++++++++++++++++++++-------------- 3 files changed, 57 insertions(+), 18 deletions(-) commit 1d49bd9423367ee2680eb81c066d6ccf669489a4 Author: Yoann Vandoorselaere Date: Mon Dec 6 18:16:47 2004 +0000 More check in get option callback. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4514 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) commit ecc2c15dd477ab355c15b3f4c16340161a5a2cf1 Author: Yoann Vandoorselaere Date: Mon Dec 6 18:16:32 2004 +0000 Implement prelude_string_get_string_or_default(), that return a provided string if content of the prelude_string_t is NULL. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4513 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-string.h | 2 ++ src/prelude-string.c | 6 ++++++ 2 files changed, 8 insertions(+) commit 9c007bcdeca3564f381615767f3af31f8f278eca Author: Yoann Vandoorselaere Date: Mon Dec 6 18:15:44 2004 +0000 Cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4512 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-msg.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit c1035ccc21c5839d7502d08d8fb88a1465fa25ad Author: Yoann Vandoorselaere Date: Mon Dec 6 17:27:06 2004 +0000 Fix call to prelude_msg_get(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4511 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-option-wide.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 76689b3e08557c6824a8a3e38725f37af66e6a02 Author: Yoann Vandoorselaere Date: Mon Dec 6 17:13:31 2004 +0000 Return PRELUDE_ERROR_EOF when gnutls_record_recv() return 0. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4510 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 3 +++ 1 file changed, 3 insertions(+) commit 8c20aec86f3c3f704e45a446693439f7f65acdc9 Author: Nicolas Delon Date: Sun Dec 5 21:52:59 2004 +0000 handle uint8 and int8 type fields git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4497 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 2 ++ 1 file changed, 2 insertions(+) commit c7d1c8f773cede6fff1ce3bd9c27aebcf8fc239f Author: Yoann Vandoorselaere Date: Sun Dec 5 17:42:45 2004 +0000 Fix duplicate declaration. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4492 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/err-codes.h.in | 1 - 1 file changed, 1 deletion(-) commit 03d84c77b6029a04d9db43d28da61374575d670d Author: Yoann Vandoorselaere Date: Sun Dec 5 13:18:30 2004 +0000 Remove modification done for error debugging. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4490 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-extract.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3d83478b1ff3ca1db21528b1ccf65c87161292bb Author: Yoann Vandoorselaere Date: Sun Dec 5 12:52:22 2004 +0000 Rename all instances of 'analyzer-name' to 'analyzer-profile'. All Prelude library command line provided option are now prefixed with 'prelude-' to avoid cluttering the caller namespace. The analyzer-name option now provide the ability to set the IDMEF analyzer name field. --prelude-profile option can be used to specify which profile to use for this analyzer. More work on error handling. More API consistancy fix, rename extract.h to prelude-extract.h and prefix all the function. Do not install ntp.h and config-engine.h header since these are not supposed to be public. Generate idmef_message_read(), which a given prelude client might want to use. It doesn't permit to deal with proprietary message tag as of now. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4485 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Makefile.PL.in | 2 +- bindings/python/setup.py.in | 2 +- client.conf.in | 4 +- global.conf.in | 7 +- prelude-adduser/Makefile.am | 5 +- prelude-adduser/prelude-adduser.c | 35 +-- src/idmef-message-read.c | Bin 48078 -> 63433 bytes src/idmef-message-write.c | 1 - src/idmef-util.c | 11 +- .../GenerateIDMEFMessageReadC.pm | 78 +++--- .../GenerateIDMEFMessageReadH.pm | 7 +- src/include/Makefile.am | 6 +- src/include/extract.h | 263 --------------------- src/include/idmef-message-read.h | 60 ++--- src/include/prelude-client.h | 14 +- src/include/prelude-extract.h | 263 +++++++++++++++++++++ src/libprelude-error/err-codes.h.in | 12 +- src/libprelude-error/err-sources.h.in | 1 + src/prelude-client.c | 129 ++++++---- src/prelude-connection-mgr.c | 8 +- src/prelude-connection.c | 5 +- src/prelude-msg.c | 30 +-- src/prelude-option-wide.c | 65 ++--- 23 files changed, 523 insertions(+), 485 deletions(-) commit a50134cdf7293a5953795c48157700889634ce50 Author: Yoann Vandoorselaere Date: Sun Dec 5 12:03:29 2004 +0000 Remove deprecated headers inclusion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4484 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-inet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f6c28163f5bc41164a5aff8f013711ad73ec0ea Author: Yoann Vandoorselaere Date: Sun Dec 5 12:02:54 2004 +0000 Remove deprecated headers. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4483 09c5ec92-17d4-0310-903a-819935f44dba src/client-ident.c | 2 -- 1 file changed, 2 deletions(-) commit 57b3d8b35de0518410d0d7b54f38402b697aedb0 Author: Yoann Vandoorselaere Date: Fri Dec 3 18:15:52 2004 +0000 Remaining of API cleanup and consistency fix: - timer.[ch] -> prelude-timer.[ch] - prelude-message.[ch] -> prelude-msg.[ch] - prelude-message-buffered.[ch] -> prelude-msgbuf.[ch] - prelude-getopt.[ch] -> prelude-option.[ch] As well as the function contained by these. Start to use prelude_error() in important place for error reporting. Fix prelude-manager relaying that was broken some time ago. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4474 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- bindings/libprelude.i | 15 +- docs/api/libprelude-decl.txt | 788 ++++++++++- docs/api/libprelude-docs.sgml | 2 - docs/api/libprelude-sections.txt | 658 ++++++--- prelude-adduser/prelude-adduser.c | 32 +- src/Makefile.am | 40 +- src/client-ident.c | 11 +- src/common.c | 16 +- src/idmef-message-read.c | Bin 48145 -> 48078 bytes src/idmef-message-write.c | 3 +- src/idmef-object.c | 3 +- src/idmef-tree-wrap.c | 170 +-- .../GenerateIDMEFMessageReadC.pm | 2 - .../GenerateIDMEFMessageReadH.pm | 2 +- .../GenerateIDMEFMessageWriteC.pm | 2 - .../GenerateIDMEFMessageWriteH.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 2 +- src/include/Makefile.am | 47 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-tree-wrap.h | 72 +- src/include/prelude-client.h | 7 +- src/include/prelude-connection.h | 2 +- src/include/prelude-getopt-wide.h | 42 - src/include/prelude-getopt.h | 198 --- src/include/prelude-message-buffered.h | 52 - src/include/prelude-message-id.h | 2 +- src/include/prelude-message.h | 102 -- src/include/prelude-msg.h | 94 ++ src/include/prelude-msgbuf.h | 52 + src/include/prelude-option-wide.h | 42 + src/include/prelude-option.h | 180 +++ src/include/prelude-plugin.h | 8 +- src/include/prelude-timer.h | 104 ++ src/include/prelude.h.in | 8 +- src/include/threads.h | 115 -- src/include/timer.h | 104 -- src/include/tls-auth.h | 2 +- src/prelude-async.c | 6 +- src/prelude-client.c | 238 ++-- src/prelude-connection-mgr.c | 73 +- src/prelude-connection.c | 4 +- src/prelude-failover.c | 11 +- src/prelude-getopt-wide.c | 484 ------- src/prelude-getopt.c | 1395 ------------------- src/prelude-io.c | 51 +- src/prelude-message-buffered.c | 237 ---- src/prelude-message.c | 937 ------------- src/prelude-msg.c | 923 +++++++++++++ src/prelude-msgbuf.c | 237 ++++ src/prelude-option-wide.c | 483 +++++++ src/prelude-option.c | 1398 ++++++++++++++++++++ src/prelude-plugin.c | 8 +- src/prelude-timer.c | 435 ++++++ src/timer.c | 435 ------ src/tls-auth.c | 43 +- src/tls-util.c | 29 +- 59 files changed, 5685 insertions(+), 4731 deletions(-) commit e5cedf930b6fd19858673d1bdde642c35ea9d2df Author: Yoann Vandoorselaere Date: Fri Dec 3 18:08:39 2004 +0000 generate Makefile for libprelude-error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4473 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 ++ 1 file changed, 2 insertions(+) commit 8d68adcfc063444aaba98c3c72585589ade2a1be Author: Yoann Vandoorselaere Date: Fri Dec 3 18:04:27 2004 +0000 Commit implementation of libprelude-error, based on libgpg-error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4472 09c5ec92-17d4-0310-903a-819935f44dba src/libprelude-error/Makefile.am | 58 ++++++++++ src/libprelude-error/README | 1 + src/libprelude-error/code-from-errno.c | 39 +++++++ src/libprelude-error/code-to-errno.c | 41 +++++++ src/libprelude-error/err-codes.h.in | 55 +++++++++ src/libprelude-error/err-sources.h.in | 39 +++++++ src/libprelude-error/errnos.in | 172 +++++++++++++++++++++++++++++ src/libprelude-error/gettext.h | 69 ++++++++++++ src/libprelude-error/mkerrcodes.awk | 93 ++++++++++++++++ src/libprelude-error/mkerrcodes.c | 78 +++++++++++++ src/libprelude-error/mkerrcodes1.awk | 90 +++++++++++++++ src/libprelude-error/mkerrcodes2.awk | 134 ++++++++++++++++++++++ src/libprelude-error/mkerrnos.awk | 97 ++++++++++++++++ src/libprelude-error/mkheader.awk | 190 ++++++++++++++++++++++++++++++++ src/libprelude-error/mkstrtable.awk | 186 +++++++++++++++++++++++++++++++ src/libprelude-error/prelude-error.h.in | 113 +++++++++++++++++++ src/libprelude-error/strerror-sym.c | 54 +++++++++ src/libprelude-error/strerror.c | 50 +++++++++ src/libprelude-error/strsource-sym.c | 41 +++++++ src/libprelude-error/strsource.c | 35 ++++++ 20 files changed, 1635 insertions(+) commit a3837387e63f4f5f195065e379cda164a9b0ddc5 Author: Yoann Vandoorselaere Date: Fri Dec 3 17:55:38 2004 +0000 Remove prelude_string_dont_own(). It's usage is flawed since the caller have no idea whether the string was reallocated on further string operation, and might have used prelude_string_get_string() first. Make prelude_string_get_string() return a const. Implemented prelude_string_get_string_released() in place of prelude_string_dont_own(). It also reallocate the string to the exact size it need. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4471 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-string.h | 6 +++--- src/prelude-string.c | 27 ++++++++++++++++++--------- 2 files changed, 21 insertions(+), 12 deletions(-) commit 7f6347936cffdfdca72a94961f7b1744ff2142d0 Author: Nicolas Delon Date: Fri Dec 3 16:24:53 2004 +0000 bug fix, don't forget to had the gmt offset to the UTC time git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4469 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 648bd91c5ed190ea43c4790ab71be95d3f4fbe2a Author: Nicolas Delon Date: Fri Dec 3 16:23:59 2004 +0000 fit libprelude function renaming handle correctly gmt offset git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4468 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit a67d0bfa01e29b6f1b9524940b2413db03e36733 Author: Nicolas Delon Date: Fri Dec 3 16:05:42 2004 +0000 bug fix: gmt_offset was not copied in idmef_time_clone nor idmef_time_copy fix constness prototype git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4467 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 8 ++++---- src/include/idmef-time.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit 8dd3e542283dca4373d32b5c631fd70c0fab6145 Author: Nicolas Delon Date: Fri Dec 3 15:23:37 2004 +0000 bug fix, forgot to initialize tv_sec git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4466 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 03f8dc4df90beea95e698312064f4e5bf263d488 Author: Yoann Vandoorselaere Date: Thu Dec 2 18:10:40 2004 +0000 Merge idmef-v12-work change back in trunk. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4460 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 1691 ++++--- docs/api/tmpl/common.sgml | 3 +- docs/api/tmpl/idmef-message-id.sgml | 133 - docs/api/tmpl/idmef-message-read.sgml | 30 - docs/api/tmpl/idmef-message-write.sgml | 27 - docs/api/tmpl/idmef-time.sgml | 118 - docs/api/tmpl/idmef-tree-print.sgml | 24 - docs/api/tmpl/idmef-tree-to-string.sgml | 33 - docs/api/tmpl/idmef-tree-wrap.sgml | 1314 +----- docs/api/tmpl/idmef-util.sgml | 14 - docs/api/tmpl/idmef-value-type.sgml | 2 + docs/api/tmpl/libprelude-unused.sgml | 1439 +++++- docs/api/tmpl/prelude-log.sgml | 18 - docs/api/tmpl/tls-auth.sgml | 1 + src/common.c | 48 +- src/idmef-criterion-value.c | 8 +- src/idmef-message-read.c | Bin 43796 -> 48145 bytes src/idmef-message-write.c | 320 +- src/idmef-object.c | 35 +- src/idmef-time.c | 286 +- src/idmef-tree-print.c | 773 +++- src/idmef-tree-to-string.c | 781 +++- src/idmef-tree-wrap.c | 4594 +++++++++++++------- src/idmef-value-type.c | 59 +- src/idmef-value.c | 4 + src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 3 +- .../GenerateIDMEFMessageReadC.pm | 3 +- .../GenerateIDMEFMessageReadH.pm | 3 +- .../GenerateIDMEFMessageWriteC.pm | 46 +- .../GenerateIDMEFMessageWriteH.pm | 3 +- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 3 +- src/idmef-wrappers-gen/GenerateIDMEFTreePrintC.pm | 41 +- src/idmef-wrappers-gen/GenerateIDMEFTreePrintH.pm | 3 +- .../GenerateIDMEFTreeToStringC.pm | 34 +- .../GenerateIDMEFTreeToStringH.pm | 3 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 72 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 13 +- src/idmef-wrappers-gen/IDMEFTree.pm | 41 +- src/idmef-wrappers-gen/idmef-tree.h | 242 +- src/include/common.h | 5 +- src/include/idmef-message-id.h | 265 +- src/include/idmef-message-read.h | 12 +- src/include/idmef-message-write.h | 10 +- src/include/idmef-time.h | 27 +- src/include/idmef-tree-data.h | 79 +- src/include/idmef-tree-print.h | 10 +- src/include/idmef-tree-to-string.h | 10 +- src/include/idmef-tree-wrap.h | 673 +-- src/include/idmef-util.h | 3 - src/include/idmef-value-type.h | 34 +- src/include/idmef-value.h | 4 + src/prelude-client.c | 9 +- 52 files changed, 8301 insertions(+), 5105 deletions(-) commit 92ba1cec7414aebdc15af0bf4d6d349b02235c7c Author: Yoann Vandoorselaere Date: Wed Dec 1 20:26:30 2004 +0000 More error checking. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4450 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 3 +++ 1 file changed, 3 insertions(+) commit d27d44c44d8ea6ad371f391a04b0d0b6364406bc Author: Yoann Vandoorselaere Date: Tue Nov 23 17:18:53 2004 +0000 New function, prelude_client_send_idmef(), use the same msgbuf as for the heartbeat sending, and this is much easier for the application to use. Only allocate credentials if we have sending capability. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4420 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 2 ++ src/prelude-client.c | 52 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 44 insertions(+), 10 deletions(-) commit 2362b2e35711bb6e23346d472536e5d2bfa24dd8 Author: Yoann Vandoorselaere Date: Mon Nov 22 12:25:48 2004 +0000 Add missing copyright notice. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4415 09c5ec92-17d4-0310-903a-819935f44dba src/include/timer.h | 2 +- src/prelude-getopt-wide.c | 23 +++++++++++++++++++++++ src/tls-util.c | 23 +++++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) commit 429dfe8925eb54fae4832c89e072eca4cbe408de Author: Yoann Vandoorselaere Date: Mon Nov 22 12:24:58 2004 +0000 Add missing copyright notice. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4414 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/plaintext.c | 23 +++++++++++++++++++++++ prelude-adduser/server.c | 23 +++++++++++++++++++++++ prelude-adduser/server.h | 23 +++++++++++++++++++++++ 3 files changed, 69 insertions(+) commit f52ec41549878b86c465c207bba5324c932a7df4 Author: Yoann Vandoorselaere Date: Mon Nov 22 03:41:22 2004 +0000 type cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4410 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-io.h | 2 +- src/prelude-io.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 1515e618b2ca037dfd01e3545d03977aaa9ee0fc Author: Yoann Vandoorselaere Date: Sun Nov 21 00:31:03 2004 +0000 Correct handling of asychronous flags signaling. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4407 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit 6a0ae0d2b5be7303667695a24b772672cb11e8a7 Author: Yoann Vandoorselaere Date: Sat Nov 20 23:49:13 2004 +0000 Add missing initialization of fd_write_index in prelude_msg_dynamic_new(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4406 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message.c | 1 + 1 file changed, 1 insertion(+) commit 2cb82ed0e0ae1aed673a28d39225c31a5d2a12d4 Author: Yoann Vandoorselaere Date: Sat Nov 20 23:43:34 2004 +0000 Fix a bug introduced in [3909] (handling of non blocking write of prelude-message), that resulted in the message being sent only one time when a AND list of manager was specified. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4405 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit 738c18101867c950597eefad5d672e835310ad3b Author: Yoann Vandoorselaere Date: Fri Nov 19 01:05:51 2004 +0000 Prevent NULL pointer dereference if argc is NULL. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4401 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 3d64af44ab5c3a6bd2063773c379e87f5cf64012 Author: Yoann Vandoorselaere Date: Wed Nov 17 16:26:03 2004 +0000 Implemented prelude_list_for_each_continue() and prelude_list_for_each_continue_safe(), allowing to iterate through listed object in several pass. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4395 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-list.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit be5d425bb46d05d04a38596034907d40691f8b19 Author: Yoann Vandoorselaere Date: Wed Nov 17 16:22:41 2004 +0000 Implemented prelude_plugin_get_next(), provide the ability to walk through every loaded plugin, even if loaded from different point. Implemented prelude_plugin_unload(), which will unload the plugin provided as argument, or unload all plugin if the argument is NULL. Remove dead code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4394 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-plugin.h | 4 +++ src/prelude-plugin.c | 73 +++++++++++++++++++++++++++++++------------- 2 files changed, 55 insertions(+), 22 deletions(-) commit 854b29f86e055fc0addf889dc64fcc99ef121564 Author: Yoann Vandoorselaere Date: Tue Nov 16 19:48:41 2004 +0000 Coding styles fix. Remove some un-needed variables. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4393 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-hash.c | 100 +++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 52 deletions(-) commit 5921f4daff5b001b7975cbd7d5e0e3f2b0cb4cee Author: Yoann Vandoorselaere Date: Tue Nov 16 16:51:53 2004 +0000 No need to hide the credentials type anymore in prelude_client_t. On prelude_client_destroy(), free credentials, unique_ident, msgbuf, md5sum. Use prelude_string_new_nodup instead od prelude_string_new_ref to reference process name and path, since they are copied within an allocated buffer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4392 09c5ec92-17d4-0310-903a-819935f44dba src/include/tls-auth.h | 2 +- src/prelude-client.c | 24 +++++++++++++++++++----- src/tls-auth.c | 4 ++-- 3 files changed, 22 insertions(+), 8 deletions(-) commit a3786ce3b896523e866b9a915d57d0e7a6998c25 Author: Yoann Vandoorselaere Date: Tue Nov 16 16:41:43 2004 +0000 Don't leak global failover object on prelude_connection_mgr_destroy(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4391 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 1 + 1 file changed, 1 insertion(+) commit c584d04fb9a93b3d4559b19a77df9c2552b6ef0f Author: Yoann Vandoorselaere Date: Tue Nov 16 16:40:36 2004 +0000 In prelude_option_destroy(), if provided option is NULL, free all global options. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4390 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit 0e26699d5f7210ce0114bd00318918dfa2311956 Author: Yoann Vandoorselaere Date: Tue Nov 16 16:38:27 2004 +0000 In case fd is still open, close it in prelude_client_connect(). Fix a leak on prelude_connection_destroy() resulting of PRELUDE_CONNECTION_OWN_FD and PRELUDE_CONNECTION_ESTABLISHED flags misuse. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4389 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 044788fe7394904aaa28c4a57c5e449efd0d8e62 Author: Yoann Vandoorselaere Date: Tue Nov 16 16:23:41 2004 +0000 Make prelude_string_new_nodup() call prelude_string_new_nodup_fast(), not prelude_string_new_dup_fast(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4388 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-string.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 76bb239767dfde656a5c9caf72d074b9f4471e99 Author: Yoann Vandoorselaere Date: Sat Nov 13 02:13:56 2004 +0000 Include missing ctype.h. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4387 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 1 + 1 file changed, 1 insertion(+) commit 7ee8ca240e895e8b84e279f13ae48484d01d6163 Author: Yoann Vandoorselaere Date: Fri Nov 12 20:27:15 2004 +0000 Move idmef_value_new_for_object() to idmef-value.c. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4386 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 3 +- src/Makefile.am | 1 - src/idmef-value-object.c | 83 ---------------------------------------- src/idmef-value.c | 28 ++++++++++++++ src/include/Makefile.am | 1 - src/include/idmef-value-object.h | 29 -------------- src/include/idmef-value.h | 3 ++ src/include/idmef.h | 1 - 8 files changed, 32 insertions(+), 117 deletions(-) commit 07328aa97eb6e86158b0c8a0178259e831af3674 Author: Yoann Vandoorselaere Date: Fri Nov 12 20:25:02 2004 +0000 Don't error out when getting '-' as an argument. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4385 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 3 +++ 1 file changed, 3 insertions(+) commit 62ccb8038e8bd557a5e5e642dc92755dc4812fbb Author: Yoann Vandoorselaere Date: Fri Nov 12 18:56:48 2004 +0000 Ooops. treat LOG_ERR correctly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4384 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a1007cca23b20ff41e2ed5e565a191850f0fbeca Author: Yoann Vandoorselaere Date: Fri Nov 12 17:57:31 2004 +0000 Some API sanitization. But remain compatible before the big break. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4383 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 54 +++++++++++++++++++++++++---------------------- src/prelude-log.c | 41 ++++++++++++++++++++++++++--------- 2 files changed, 60 insertions(+), 35 deletions(-) commit b007f550d11b4acef89767cf1e7ebba6e45a940d Author: Yoann Vandoorselaere Date: Fri Nov 12 17:43:03 2004 +0000 Add idmef-client.conf to EXTRA_DIST. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4379 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 796a24bac1a8e7ade0fdc86f8882f92168b80e24 Author: Yoann Vandoorselaere Date: Fri Nov 12 17:42:39 2004 +0000 New configuration file including both global.conf and client.conf. Both of the aformentioned configuration file remain since they can be needed individually depending on the environment. idmef-client.conf is very useful for sensor that do not wish to install a configuration file for the sake of only including global.conf and client.conf. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4378 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 14 ++++++++++++++ configure.in | 20 ++++++++++++++++++++ idmef-client.conf.in | 2 ++ 3 files changed, 36 insertions(+) commit 2eb64f05224b6bd315dc41f9e0ca73e6cfe12384 Author: Yoann Vandoorselaere Date: Fri Nov 12 17:25:42 2004 +0000 Fix prelude-adduser for recent prelude_option_parse_argument() change. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4377 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 9afa76824c927912325756d2549cfcac67a81402 Author: Yoann Vandoorselaere Date: Fri Nov 12 17:12:59 2004 +0000 set LIBPRELUDE_CONFIG_PREFIX variable. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4375 09c5ec92-17d4-0310-903a-819935f44dba m4/libprelude.m4 | 2 ++ 1 file changed, 2 insertions(+) commit 1d9caabde5f17c327a8219690eb135866b525979 Author: Yoann Vandoorselaere Date: Fri Nov 12 17:12:42 2004 +0000 s/--prelude-config-prefix/--config-prefix/ for consistancy. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4374 09c5ec92-17d4-0310-903a-819935f44dba libprelude-config.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 924281283792b50f69a6205d5d52c6cb967b11de Author: Yoann Vandoorselaere Date: Fri Nov 12 15:46:22 2004 +0000 Add the OPTIONAL_INT definition, to be hooked by Nicolas in the IDMEF code generator. To be used for optionnal IDMEF integer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4373 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 2 ++ src/idmef-wrappers-gen/idmef-tree.h | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) commit 2549c9654469b3cad823c199f7bf860c167a4001 Author: Yoann Vandoorselaere Date: Fri Nov 12 12:31:07 2004 +0000 Change prelude_client_init() so that it take a pointer to arc, this is to allow the caller to use remaining option/arguments after prelude_option_parse_argument has been called, which will modify argc and argv to remove libprelude handled options. Move all the initialisation call depending on prelude-option callback after prelude_option_parse_argument(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4369 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 2 +- src/include/prelude-getopt.h | 5 +- src/prelude-client.c | 82 ++++++++++++-------------- src/prelude-getopt.c | 133 ++++++++++++++++++------------------------- 4 files changed, 95 insertions(+), 127 deletions(-) commit d4745d31e0319ba8e824525497dc872722eb0c80 Author: Yoann Vandoorselaere Date: Fri Nov 12 12:25:08 2004 +0000 Don't call prelude_client_installation_error() here, this is up to prelude-client API to do so in case there is a failure. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4368 09c5ec92-17d4-0310-903a-819935f44dba src/client-ident.c | 2 -- 1 file changed, 2 deletions(-) commit 54f4bd647a9f3bc4ef8f6d45e25e9b570f08271a Author: Yoann Vandoorselaere Date: Fri Nov 12 12:24:20 2004 +0000 Don't initialize global failover until prelude_connection_mgr_init() is called, since init is supposed to be done after option callback, this is safer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4367 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 106 +++++++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 48 deletions(-) commit 5ceb9ee4a0379244c3cf814735853f7fa9011de5 Author: Yoann Vandoorselaere Date: Wed Nov 10 19:39:36 2004 +0000 Use prelude_client_installation_error, instead of file_error() which was confusing in case the manager reported missing configuration. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4364 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) commit b7fdda5e114cf538eecefca86ac54d9a997295d9 Author: Yoann Vandoorselaere Date: Tue Nov 9 18:01:33 2004 +0000 Back to heartbeat value in seconds. This is more configurable. Fix a bug on prelude_client_destroy() where we would destroy an already destroyed timer. Only call prelude_connection_mgr_init() if we got sending capability. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4360 09c5ec92-17d4-0310-903a-819935f44dba global.conf.in | 4 ++-- src/prelude-client.c | 27 +++++++++++++++++---------- 2 files changed, 19 insertions(+), 12 deletions(-) commit df1fb504e5fdb8b8eb6334b07fd8352c3f6d379b Author: Yoann Vandoorselaere Date: Tue Nov 9 17:58:53 2004 +0000 return -1 if initialization fail. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4359 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 66b651d84852ff5e023a4b22a4c2b01b520894a3 Author: Nicolas Delon Date: Tue Nov 9 16:15:16 2004 +0000 use full path of perl and python found by AC_PATH_PROG git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4357 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1112f5ffeebdda3e0417bcc460d9dd519b2e00b5 Author: Nicolas Delon Date: Tue Nov 9 16:08:24 2004 +0000 restore perl and python detection code that have been removed by a bad guy (still me) git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4356 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 7 +++++++ 1 file changed, 7 insertions(+) commit af24ecb34ba4b6d0afd4c048e47841cf1f25013c Author: Nicolas Delon Date: Tue Nov 9 14:04:32 2004 +0000 remove debug message git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4354 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 -- 1 file changed, 2 deletions(-) commit fa8df94411c1ec128e8907b7f02afbd6c8ee013d Author: Yoann Vandoorselaere Date: Tue Nov 9 11:44:16 2004 +0000 Ooops. Don't multiply heartbeat default interval twice... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4352 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 92a46e70528becb95e701db9cd9df22105983a1c Author: Yoann Vandoorselaere Date: Tue Nov 9 11:43:42 2004 +0000 Document heartbeat-interval. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4351 09c5ec92-17d4-0310-903a-819935f44dba global.conf.in | 6 ++++++ 1 file changed, 6 insertions(+) commit ae4e335b7c8a4dd1fd7994ff129496cc0bf70a95 Author: Yoann Vandoorselaere Date: Tue Nov 9 03:08:33 2004 +0000 remove deprecated prelude-strbuf dependencie. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4346 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude.h.in | 1 - 1 file changed, 1 deletion(-) commit aa55f85f42fceec790494045f16842c4590910f1 Author: Yoann Vandoorselaere Date: Tue Nov 9 02:56:40 2004 +0000 fix dependencies. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4345 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e49ed50a7e8c4925ba790d102eaf4cae0bb7be69 Author: Yoann Vandoorselaere Date: Tue Nov 9 02:26:27 2004 +0000 Merge prelude-strbuf and idmef-string in a single prelude-string API, to be used for all string operation accross Prelude components. The prelude_string_t datatype is not opaque and still include a prelude_list_t member due to some requirement of the IDMEF API. Modification to the IDMEF API will be done to fix this issue. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4340 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 2 +- bindings/perl/Prelude.pm | 12 +- bindings/python/prelude.py | 14 +- docs/api/libprelude-decl.txt | 524 +++++----- docs/api/libprelude-docs.sgml | 4 - docs/api/libprelude-sections.txt | 91 +- docs/api/tmpl/common.sgml | 8 - docs/api/tmpl/idmef-value.sgml | 101 +- docs/api/tmpl/libprelude-unused.sgml | 346 +++++++ docs/api/tmpl/prelude-connection-mgr.sgml | 40 +- docs/api/tmpl/prelude-inttypes.sgml | 8 + prelude-adduser/tls-register.c | 1 - src/Makefile.am | 3 +- src/common.c | 1 - src/idmef-message-read.c | Bin 43672 -> 43796 bytes src/idmef-message-write.c | 102 +- src/idmef-object-value.c | 2 +- src/idmef-object.c | 35 +- src/idmef-string.c | 175 ---- src/idmef-tree-print.c | 92 +- src/idmef-tree-to-string.c | 92 +- src/idmef-tree-wrap.c | 1092 ++++++++++---------- src/idmef-type.c | 6 +- src/idmef-util.c | 2 - src/idmef-value-object.c | 2 +- src/idmef-value-type.c | 17 +- src/idmef-value.c | 7 +- .../GenerateIDMEFMessageReadC.pm | 16 +- .../GenerateIDMEFMessageWriteC.pm | 8 +- .../GenerateIDMEFMessageWriteH.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreePrintC.pm | 6 +- .../GenerateIDMEFTreeToStringC.pm | 4 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 25 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 1 + src/idmef-wrappers-gen/idmef-tree.h | 90 +- src/include/Makefile.am | 3 +- src/include/extract.h | 2 +- src/include/idmef-message-write.h | 4 +- src/include/idmef-string.h | 87 -- src/include/idmef-tree-data.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 411 ++++---- src/include/idmef-value-type.h | 4 +- src/include/idmef-value.h | 33 +- src/include/idmef.h | 2 +- src/include/prelude-strbuf.h | 50 - src/include/prelude-string.h | 120 +++ src/prelude-client.c | 48 +- src/prelude-strbuf.c | 211 ---- src/prelude-string.c | 547 ++++++++++ 52 files changed, 2559 insertions(+), 1902 deletions(-) commit 67518ccd731d04f4e458a51306c59f78d1b4acdf Author: Yoann Vandoorselaere Date: Mon Nov 8 23:29:20 2004 +0000 Make idmef_object_new("") work again, by creating a new toplevel message object. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4338 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-object.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 47bde6e0926e3ca82036acf84be9c9874bfcf3a2 Author: Yoann Vandoorselaere Date: Fri Nov 5 16:05:31 2004 +0000 Modify prelude-connection-mgr API so that an initialization function is provided in order to initialize the mgr object, and that it is possible to set the connection string using a separate function. This make it possible to change the sensor connection address from the Prelude administrative console, by having the sensor send the option reply prior to modifying the connection-mgr object. Also, declare generic prelude-option in prelude_client_new() instead of prelude_client_init() so that the user might list the option before handling them (made by prelude_client_init). Make sure we start the connection to the managers list after option parsing is finished. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4326 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 143 ++++++++++-------- docs/api/tmpl/idmef-criteria-string.yac.sgml | 14 ++ docs/api/tmpl/idmef-data.sgml | 7 +- docs/api/tmpl/idmef-tree-data.sgml | 14 +- docs/api/tmpl/idmef-value-type.sgml | 4 +- docs/api/tmpl/libprelude-unused.sgml | 12 -- docs/api/tmpl/ntp.sgml | 2 +- docs/api/tmpl/prelude-async.sgml | 3 +- docs/api/tmpl/prelude-connection-mgr.sgml | 3 +- docs/api/tmpl/prelude-linked-object.sgml | 3 +- docs/api/tmpl/prelude-plugin.sgml | 3 +- docs/api/tmpl/timer.sgml | 7 +- src/include/prelude-connection-mgr.h | 16 +- src/prelude-client.c | 107 +++++++++----- src/prelude-connection-mgr.c | 214 ++++++++++++++++++--------- 15 files changed, 359 insertions(+), 193 deletions(-) commit 8eab93254d4bd6cd0db4e9e9cc957ab948295d9a Author: Yoann Vandoorselaere Date: Fri Nov 5 14:19:52 2004 +0000 Move prelude_bool_t definition to generated prelude-inttypes.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4325 09c5ec92-17d4-0310-903a-819935f44dba src/include/common.h | 10 ---------- src/include/prelude-inttypes.h.in | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) commit 2240507ce2d72d7eb953c2f286f9ef672ec479ce Author: Nicolas Delon Date: Fri Nov 5 12:51:45 2004 +0000 fix paths for make distcheck git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4324 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ca993d7bedc20a8b801a911e9981c7242533d1da Author: Nicolas Delon Date: Fri Nov 5 12:07:44 2004 +0000 * bindings/python/prelude.py: bug fix, better error handling * bindings/Makefile.am: add dependency to .h files for generated .c files git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4323 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 10 ++++++---- bindings/python/prelude.py | 22 +++++++++++++--------- 2 files changed, 19 insertions(+), 13 deletions(-) commit 4fb3639d65706ff7102ae4a8fd8b1702864cb51f Author: Nicolas Delon Date: Fri Nov 5 00:41:48 2004 +0000 support for structure fields that are not prefixed by "idmef_" git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4319 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 128 +++++++++---------- docs/api/tmpl/idmef-criteria-string.yac.sgml | 14 --- docs/api/tmpl/idmef-data.sgml | 7 +- docs/api/tmpl/idmef-tree-data.sgml | 14 +-- docs/api/tmpl/idmef-value-type.sgml | 4 +- docs/api/tmpl/libprelude-unused.sgml | 12 ++ docs/api/tmpl/ntp.sgml | 2 +- docs/api/tmpl/prelude-async.sgml | 3 +- docs/api/tmpl/prelude-linked-object.sgml | 3 +- docs/api/tmpl/prelude-plugin.sgml | 3 +- docs/api/tmpl/timer.sgml | 7 +- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 94 +++++++------- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 136 ++++++++++----------- .../GenerateIDMEFMessageReadC.pm | 4 +- .../GenerateIDMEFMessageWriteC.pm | 14 +-- src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 4 +- src/idmef-wrappers-gen/GenerateIDMEFTreePrintC.pm | 6 +- .../GenerateIDMEFTreeToStringC.pm | 8 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 39 ++++-- src/idmef-wrappers-gen/IDMEFTree.pm | 61 ++++++--- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-tree-data.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 66 +++++----- 30 files changed, 326 insertions(+), 321 deletions(-) commit 71b02dac4631123c925a9afa5f16e14f79626db7 Author: Yoann Vandoorselaere Date: Thu Nov 4 18:59:26 2004 +0000 Include dependencies fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4318 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-wrappers-gen/GenerateIDMEFMessageReadH.pm | 3 +++ src/idmef-wrappers-gen/GenerateIDMEFMessageWriteH.pm | 3 +++ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 3 +++ src/include/idmef-message-read.h | 5 ++++- src/include/idmef-message-write.h | 5 ++++- src/include/idmef-object.h | 4 ++++ src/include/idmef-tree-wrap.h | 5 ++++- src/include/idmef-value-type.h | 3 +++ src/include/idmef.h | 2 ++ src/include/prelude-message-buffered.h | 4 +++- 10 files changed, 33 insertions(+), 4 deletions(-) commit cc110824fe3213bbe38178243b3b6f9d79e74571 Author: Yoann Vandoorselaere Date: Mon Nov 1 15:00:46 2004 +0000 Fix warnings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4295 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-message-buffered.h | 2 +- src/prelude-message-buffered.c | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) commit fa4dfe37910f829250a5186b3bc347a86cf23687 Author: Yoann Vandoorselaere Date: Mon Nov 1 14:49:10 2004 +0000 API function rework, s/idmef_read_xxx/idmef_xxx_read/ and s/idmef_write_xxx/idmef_xxx_write/ Reorder function argument. Update documentation and API call. Fix bug #3. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4290 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 226 ++++----- docs/api/libprelude-sections.txt | 121 +++-- docs/api/tmpl/idmef-message-read.sgml | 108 ++--- docs/api/tmpl/idmef-message-write.sgml | 116 ++--- docs/api/tmpl/libprelude-unused.sgml | 516 +++++++++++++++++++++ docs/api/tmpl/prelude-client.sgml | 8 + src/idmef-message-read.c | 154 +++--- src/idmef-message-write.c | 372 ++++++++------- src/idmef-tree-wrap.c | 94 ++-- .../GenerateIDMEFMessageReadC.pm | 28 +- .../GenerateIDMEFMessageReadH.pm | 26 +- .../GenerateIDMEFMessageWriteC.pm | 62 ++- .../GenerateIDMEFMessageWriteH.pm | 4 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 24 + src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 24 + src/include/idmef-message-read.h | 80 ++-- src/include/idmef-message-write.h | 60 +-- src/include/idmef-tree-wrap.h | 26 +- src/prelude-client.c | 2 +- 19 files changed, 1404 insertions(+), 647 deletions(-) commit 44cc91039b354ad6572f9ae7f11a5e3eac26eb8a Author: Yoann Vandoorselaere Date: Mon Nov 1 10:17:33 2004 +0000 Forgot to commit functions headers update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4288 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-message-buffered.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cca21122a9bb1c60484474e48b17399ce07f37d9 Author: Yoann Vandoorselaere Date: Thu Oct 28 11:48:28 2004 +0000 Check if we are sending asynchronously when our send callback is called, instead of setting a defined callback for sending asynchronously when creating the msgbuf. This fix a double free() problem happening when a msgbuf was created with a client without PRELUDE_CLIENT_FLAGS_ASYNC_SEND set, but the flags was set latter, after prelude_client_init() which send an initial heartbeat is called, since prelude_client_send_msg will always honor client flags independantly of the msgbuf configuration. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4273 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message-buffered.c | 43 +++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) commit 345b8b5c0c6d6ed3637608cc17f7e60e143d1690 Author: Yoann Vandoorselaere Date: Wed Oct 27 12:30:37 2004 +0000 Update prelude_client_set_flags() documentation. Avoid calling prelude_async_init() several time in case several async flags are specified. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4266 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 969435973221451620562769b303e0a2b7e3df59 Author: Yoann Vandoorselaere Date: Tue Oct 26 21:42:35 2004 +0000 call _exit() rather than exit() when starting as a daemon in order to avoid atexit() hook to be called. Untabify. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4263 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 266f7531a7963223356c540cdb04ab70bd478e80 Author: Yoann Vandoorselaere Date: Fri Oct 22 15:57:52 2004 +0000 Resync patch from Yann Droneaud so that make distcheck work again with newest automake. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4262 09c5ec92-17d4-0310-903a-819935f44dba docs/api/Makefile.am | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) commit f9217ae4112904c53565d6792f78d3c09fbfe709 Author: Yoann Vandoorselaere Date: Fri Oct 22 12:59:56 2004 +0000 set LIBPRELUDE_PREFIX. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4258 09c5ec92-17d4-0310-903a-819935f44dba m4/libprelude.m4 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9c124b953063f5204bc342a321127f3af2d2d544 Author: Yoann Vandoorselaere Date: Thu Oct 21 11:27:42 2004 +0000 Update documentation titles... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4253 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-docs.sgml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a7a2ded9fdec1eb9eeefcdd786581bb1e2742fc3 Author: Yoann Vandoorselaere Date: Thu Oct 21 11:18:06 2004 +0000 Modified idmef-tree-wrap.[ch] generation script so that generated function are documented. Updated generated idmef-tree-wrap.[ch] sources. Documentation update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4252 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 76 +- docs/api/libprelude-sections.txt | 2 - src/idmef-tree-wrap.c | 4715 +++++++++++++++++++++- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 157 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 4 +- src/include/idmef-tree-wrap.h | 78 +- 6 files changed, 4880 insertions(+), 152 deletions(-) commit f308e1389645fee79b2359cfad8af67b4c9d18d2 Author: Yoann Vandoorselaere Date: Thu Oct 21 09:53:55 2004 +0000 Update check for gtk-doc. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4251 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) commit 6f56362b33f463b6c9b4447b4ae10e3083e3c4ed Author: Yoann Vandoorselaere Date: Thu Oct 21 09:37:34 2004 +0000 More API doc generation fix. Use an enumeration to provide prelude_client_t with flags. Some renaming. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4248 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 4 ++-- src/include/prelude-client.h | 10 +++++---- src/prelude-client.c | 50 +++++++++++++++++++++--------------------- src/prelude-getopt.c | 1 + src/prelude-message-buffered.c | 2 +- 5 files changed, 35 insertions(+), 32 deletions(-) commit ef3a9d97f3d0aaf66d1b09bb71994936ec96036d Author: Yoann Vandoorselaere Date: Thu Oct 21 09:28:38 2004 +0000 More fix for API doc generation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4247 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 2 ++ src/prelude-connection-mgr.c | 5 ++--- src/prelude-ident.c | 4 +--- src/prelude-message.c | 6 ++---- src/prelude-plugin.c | 2 -- 5 files changed, 7 insertions(+), 12 deletions(-) commit 6db6e61bbd3765de352936d5d50489a268d9ad2a Author: Yoann Vandoorselaere Date: Thu Oct 21 09:27:28 2004 +0000 fix API doc generation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4246 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message-buffered.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 29e1bc79698d7fb9d9c910ad695f94ca1f6a5511 Author: Yoann Vandoorselaere Date: Thu Oct 21 09:27:13 2004 +0000 fix documentation generation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4245 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) commit 7a4e81500642ac32df7a8fb20586b590f76fce3e Author: Yoann Vandoorselaere Date: Thu Oct 21 09:26:39 2004 +0000 fix some prototypes for API documentation generation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4244 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-plugin.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e1697e6fccb9142a43b3802b7f12985f9af38f0a Author: Yoann Vandoorselaere Date: Thu Oct 21 09:26:09 2004 +0000 remove definition that belong to prelude.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4243 09c5ec92-17d4-0310-903a-819935f44dba src/include/common.h | 2 -- 1 file changed, 2 deletions(-) commit 7e2cef02cb56eb95e11e27584e12a2ca3f132920 Author: Yoann Vandoorselaere Date: Thu Oct 21 09:24:24 2004 +0000 Documentation update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4242 09c5ec92-17d4-0310-903a-819935f44dba docs/api/tmpl/idmef-criteria-string.sgml | 25 + docs/api/tmpl/idmef-criteria-string.yac.sgml | 120 + docs/api/tmpl/idmef-criteria.sgml | 217 + docs/api/tmpl/idmef-criterion-value.sgml | 312 ++ docs/api/tmpl/idmef-data.sgml | 206 + docs/api/tmpl/idmef-message-id-format.sgml | 23 + docs/api/tmpl/idmef-message-read.sgml | 286 ++ docs/api/tmpl/idmef-message-write.sgml | 278 + docs/api/tmpl/idmef-object-value.sgml | 87 + docs/api/tmpl/idmef-object.sgml | 207 + docs/api/tmpl/idmef-string.sgml | 248 + docs/api/tmpl/idmef-time.sgml | 247 + docs/api/tmpl/idmef-tree-data.sgml | 38 + docs/api/tmpl/idmef-tree-print.sgml | 240 + docs/api/tmpl/idmef-tree-to-string.sgml | 324 ++ docs/api/tmpl/idmef-tree-wrap.sgml | 7137 ++++++++++++++++++++++++++ docs/api/tmpl/idmef-type.sgml | 156 + docs/api/tmpl/idmef-util.sgml | 64 + docs/api/tmpl/idmef-value-object.sgml | 26 + docs/api/tmpl/idmef-value-type.sgml | 130 + docs/api/tmpl/idmef-value.sgml | 369 ++ docs/api/tmpl/idmef.sgml | 16 + docs/api/tmpl/ntp.sgml | 144 + docs/api/tmpl/prelude-connection-mgr.sgml | 131 + docs/api/tmpl/prelude-connection.sgml | 187 + docs/api/tmpl/prelude-failover.sgml | 80 + docs/api/tmpl/prelude-hash.sgml | 66 + docs/api/tmpl/prelude-inet.sgml | 82 + docs/api/tmpl/prelude-inttypes.sgml | 246 + docs/api/tmpl/prelude-linked-object.sgml | 39 + docs/api/tmpl/prelude-plugin.sgml | 361 ++ docs/api/tmpl/prelude-stdint.sgml | 16 + docs/api/tmpl/prelude-strbuf.sgml | 118 + docs/api/tmpl/prelude-timer-config.sgml | 16 + docs/api/tmpl/prelude.sgml | 32 + docs/api/tmpl/tls-auth.sgml | 35 + docs/api/tmpl/tls-util.sgml | 45 + 37 files changed, 12354 insertions(+) commit dc131db3fdbf63526912471b19b815d79acc11bc Author: Yoann Vandoorselaere Date: Thu Oct 21 09:21:09 2004 +0000 Update documentation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4241 09c5ec92-17d4-0310-903a-819935f44dba docs/api/Makefile.am | 76 +- docs/api/libprelude-decl.txt | 9628 +++++++++++++++++++++------ docs/api/libprelude-docs.sgml | 100 +- docs/api/libprelude-sections.txt | 2099 ++++-- docs/api/tmpl/client-ident.sgml | 17 +- docs/api/tmpl/common.sgml | 38 + docs/api/tmpl/config-engine.sgml | 24 + docs/api/tmpl/extract.sgml | 8 + docs/api/tmpl/idmef-message-id.sgml | 261 +- docs/api/tmpl/idmef-tree.sgml | 380 +- docs/api/tmpl/libprelude-unused.sgml | 2716 +++++++- docs/api/tmpl/prelude-async.sgml | 33 +- docs/api/tmpl/prelude-client.sgml | 237 +- docs/api/tmpl/prelude-getopt-wide.sgml | 41 +- docs/api/tmpl/prelude-getopt.sgml | 374 +- docs/api/tmpl/prelude-ident.sgml | 3 +- docs/api/tmpl/prelude-io.sgml | 37 +- docs/api/tmpl/prelude-list.sgml | 81 +- docs/api/tmpl/prelude-log.sgml | 2 + docs/api/tmpl/prelude-message-buffered.sgml | 44 +- docs/api/tmpl/prelude-message-id.sgml | 134 +- docs/api/tmpl/prelude-message.sgml | 82 +- docs/api/tmpl/timer.sgml | 27 +- 23 files changed, 13167 insertions(+), 3275 deletions(-) commit d61bd7e6952e5a2a0a334b8c6ba13c70ffc4d7a0 Author: Yoann Vandoorselaere Date: Thu Oct 21 09:20:38 2004 +0000 Documentation work on the prelude-client API. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4240 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 281 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 272 insertions(+), 9 deletions(-) commit 87a4bbbd5b831c6d13063dcc41fb4ba8a61797fd Author: Nicolas Delon Date: Tue Oct 19 22:47:26 2004 +0000 support for exit status in bindings git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4235 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.pm | 13 ++++++++++++- bindings/python/prelude.py | 7 +++++++ 2 files changed, 19 insertions(+), 1 deletion(-) commit db80fca73c3db9a168bf3a93b21eae0d93854deb Author: Yoann Vandoorselaere Date: Tue Oct 19 15:27:49 2004 +0000 Add a prelude_client_exit_status_t argument to prelude_client_destroy(), so that the behavior of this function with heartbeat is easier to expect. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4233 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 8 +++++++- src/prelude-client.c | 26 ++++++++++++++++++++++---- 2 files changed, 29 insertions(+), 5 deletions(-) commit 94e4dc5cdf1ef198736bb429986b3f71ff3662d3 Author: Yoann Vandoorselaere Date: Tue Oct 19 15:03:21 2004 +0000 If a client call prelude_client_destroy(), then send a heartbeat with the status 'exiting'. This is usefull for potential sensor that run periodically, and that don't want missing heartbeat to be treated as a problem. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4231 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 49 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 9 deletions(-) commit d6e61a6a2062f2ebef385d7fa3659aa3a312c653 Author: Yoann Vandoorselaere Date: Tue Oct 19 13:33:43 2004 +0000 Check wether time is NULL before dereferencing it. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4229 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-write.c | 5 ++++- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) commit c89b40c9b63859332ae739d366208befe0045ef0 Author: Yoann Vandoorselaere Date: Tue Oct 19 13:05:09 2004 +0000 Fix idmef_time reading/writing portability issue. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4228 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | 13 ++++++++----- src/idmef-message-write.c | 19 +++++++++++-------- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 11 +++++++---- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 17 ++++++++++------- src/include/idmef-tree-wrap.h | 2 +- 8 files changed, 40 insertions(+), 28 deletions(-) commit 620d4d8de0bf699817f7723de840dcb7858f104b Author: Nicolas Delon Date: Mon Oct 18 20:35:47 2004 +0000 remove removed file reference git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4211 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 1 - 1 file changed, 1 deletion(-) commit 3f5148f156ce0fdc98e20e5b0c28ab0c6d22cdd7 Author: Yoann Vandoorselaere Date: Mon Oct 18 18:16:41 2004 +0000 use idmef_object_set() and idmef_object_get() in place of idmef_message_set() & idmef_message_get(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4207 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.pm | 4 ++-- bindings/python/prelude.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 20ffa0dde8187d92c0f8f4a2f798a458be00f235 Author: Yoann Vandoorselaere Date: Mon Oct 18 18:13:08 2004 +0000 Move idmef-tree.h to src/idmef-wrappers-gen, make the whole IDMEF API opaque. Remove idmef_message_set() and idmef_message_get(), which now are just wrappers to idmef_object_set() and idmef_object_get(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4206 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 1 - src/idmef-criteria-string.yac.y | 11 +- src/idmef-criteria.c | 10 +- src/idmef-criterion-value.c | 7 +- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-message.c | 102 - src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 3109 +++++++++++----------- src/idmef-util.c | 2 - src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 92 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 26 +- src/idmef-wrappers-gen/IDMEFTree.pm | 19 +- src/idmef-wrappers-gen/generator.pl | 4 +- src/idmef-wrappers-gen/idmef-tree.h | 792 ++++++ src/include/Makefile.am | 2 - src/include/idmef-message-id.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-message.h | 44 - src/include/idmef-tree-data.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 216 +- src/include/idmef-tree.h | 794 ------ src/include/idmef.h | 1 - src/prelude-message-buffered.c | 1 - 28 files changed, 2514 insertions(+), 2739 deletions(-) commit 6c957ae9e33468d2c9c86938ff1af69bc8e35f9b Author: Yoann Vandoorselaere Date: Mon Oct 18 18:12:01 2004 +0000 Remove old backward compatibility definition. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4205 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-data.h | 8 -------- src/include/idmef-string.h | 8 -------- 2 files changed, 16 deletions(-) commit ec1880b2df423dc840c19b33cc0d1285e725a25b Author: Yoann Vandoorselaere Date: Sun Oct 17 12:56:57 2004 +0000 Avoid potential portability problem. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4201 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9620bef10fe3825489fca70c9fa84393ba36cac4 Author: Nicolas Delon Date: Sun Oct 17 11:21:43 2004 +0000 yet another bunch of fixes to make perl binding make distcheck friendly git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4200 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 ++ bindings/Makefile.am | 1 - bindings/perl/Makefile.PL.in | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) commit ceb6f9082bfec6d48f57c7a880908cfac3d5ca13 Author: Yoann Vandoorselaere Date: Sun Oct 17 10:15:31 2004 +0000 use newer macro so that autoreconf perform expectedly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4199 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0c8807db5556947defa61cd10646474d13eec25c Author: Nicolas Delon Date: Sat Oct 16 23:43:46 2004 +0000 restore dropped libtoolize call git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4198 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 + 1 file changed, 1 insertion(+) commit e4afa184211cb24da889053ec95e88bf9240a009 Author: Yoann Vandoorselaere Date: Sat Oct 16 16:39:37 2004 +0000 Add libtool.m4. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4196 09c5ec92-17d4-0310-903a-819935f44dba m4/libtool.m4 | 6027 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 6027 insertions(+) commit 706f2e8fa871091244c8ae9e2c5984c571af5786 Author: Yoann Vandoorselaere Date: Sat Oct 16 16:38:29 2004 +0000 pass --force to autoreconf. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4195 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 91b20ae20bae5ffeaa42fcd3b01d0ad705f16525 Author: Yoann Vandoorselaere Date: Sat Oct 16 16:27:48 2004 +0000 Move part of the INSTALL file to README, since INSTALL is automatically generated by autoconf tools. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4194 09c5ec92-17d4-0310-903a-819935f44dba INSTALL | 234 ++++++++++++++++++++++++---------------------------------------- README | 88 ++++++++++++++++++++++++ 2 files changed, 175 insertions(+), 147 deletions(-) commit 79999035713effaba3b46c9c60bc4096a6f162f2 Author: Yoann Vandoorselaere Date: Sat Oct 16 16:03:36 2004 +0000 call AC_LTDL_DLLIB() so that @LIBADD_DL@ is resolved to something meaningful, Thanks to Yann Droneaud for pointing this out. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4193 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 1 + 1 file changed, 1 insertion(+) commit 38e9d5438e60f8ad538587699394d6b2472bf4cb Author: Nicolas Delon Date: Sat Oct 16 11:19:36 2004 +0000 bug fix: install Perl binding in Perl's standard paths when doing a root / system wide install git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4191 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 6 +++--- bindings/perl/Makefile.PL.in | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 06bd6300ece2405449c446ceec36832f887b6da4 Author: Yoann Vandoorselaere Date: Sat Oct 16 11:18:03 2004 +0000 Add suport for idmef_data_ref(). Untabify. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4190 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-data.c | 214 +++++++++++++++++++++++++---------------------- src/include/idmef-data.h | 3 + 2 files changed, 116 insertions(+), 101 deletions(-) commit 75273ba4092aeacade6433521ce2dca606947d73 Author: Yoann Vandoorselaere Date: Sat Oct 16 11:15:39 2004 +0000 Add idmef_time_ref(). Untabify. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4189 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 344 ++++++++++++++++++++++++----------------------- src/include/idmef-time.h | 6 +- 2 files changed, 183 insertions(+), 167 deletions(-) commit 8082a8e0933755ee761ce3e7a345f6b634ea04f7 Author: Yoann Vandoorselaere Date: Thu Oct 14 12:09:41 2004 +0000 Quote version string. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4187 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude.h.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c1d9d399bca38460a91b73e7c5aa2d88f601642e Author: Yoann Vandoorselaere Date: Thu Oct 14 11:52:39 2004 +0000 Add missing header file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4186 09c5ec92-17d4-0310-903a-819935f44dba libmissing/alloca.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) commit d2bfe7eba2d5376b7f2b61882893194056b78a3d Author: Yoann Vandoorselaere Date: Thu Oct 14 11:31:02 2004 +0000 Update gnulib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4179 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/strsep.m4 | 6 ++++-- libmissing/m4/vsnprintf.m4 | 1 + libmissing/snprintf.c | 12 ++++++------ libmissing/snprintf.h | 2 +- libmissing/strsep.h | 8 ++++++-- libmissing/vsnprintf.c | 34 +++++++++++++++------------------- libmissing/vsnprintf.h | 8 +++++--- 7 files changed, 38 insertions(+), 33 deletions(-) commit 137660bb11d09a017ff397f76642072948e3b59d Author: Yoann Vandoorselaere Date: Thu Oct 14 11:30:02 2004 +0000 Generate prelude.h from prelude.h.in, and substitute LIBPRELUDE_VERSION with the version number provided to automake. This fix a configure error with SVN snapshots where the headers LIBPRELUDE_VERSION version was different from the autoconf provided version. Thanks to Jochen Schlick for pointing the problem. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4178 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 1 + src/include/Makefile.am | 2 +- src/include/prelude.h | 46 ---------------------------------------------- src/include/prelude.h.in | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 47 deletions(-) commit 8355c9f9fa306ca93430d1c986c22e20ace0ef04 Author: Nicolas Delon Date: Mon Oct 11 20:45:29 2004 +0000 bug fix: do not remove _prelude.c and prelude.py in build and source directories are the same git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4177 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/setup.py.in | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit d0361fd96ef42d42507a5daa9556bda4982d5309 Author: Yoann Vandoorselaere Date: Mon Oct 11 00:06:03 2004 +0000 Fix library ordering for static compile. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4174 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 +- libprelude-config.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 61c831735308fbba3f1112806c058b8241ab99d7 Author: Yoann Vandoorselaere Date: Sun Oct 10 22:56:46 2004 +0000 Some more fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4172 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 -- m4/libprelude.m4 | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) commit a8c7cf57db42307f647c3e0e6ff996cb0e8f9922 Author: Yoann Vandoorselaere Date: Sun Oct 10 21:17:39 2004 +0000 Add required m4 file for libgnutls/libgnutls-extra detection. New libprelude.m4 file, to be used by application that link to libprelude. This is based on libgnutls.m4. Increment version number to 0.9.0-svn, increase the 'current' version of the library soname, reset revision and age. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4166 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 +- acinclude.m4 | 166 ------------------------------------------------- configure.in | 19 +++--- libprelude-config.in | 6 +- m4/Makefile.am | 2 + m4/libgnutls-extra.m4 | 161 +++++++++++++++++++++++++++++++++++++++++++++++ m4/libgnutls.m4 | 160 +++++++++++++++++++++++++++++++++++++++++++++++ m4/libprelude.m4 | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 505 insertions(+), 179 deletions(-) commit 0342c08a4fda51e04cbed87264ac33be71a5d93f Author: Yoann Vandoorselaere Date: Sun Oct 10 21:14:53 2004 +0000 New header file including most of the prelude header defining API and defining the library version. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4165 09c5ec92-17d4-0310-903a-819935f44dba src/include/Makefile.am | 1 + src/include/prelude.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) commit ad22bc956aadf8b70d1659e462b7f5d4060ac9d0 Author: Yoann Vandoorselaere Date: Sun Oct 10 21:13:53 2004 +0000 New prelude_check_version() function. Return the libprelude version number, and will optionally compare it to a provided version number. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4164 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 29 +++++++++++++++++++++++++++++ src/include/common.h | 2 ++ 2 files changed, 31 insertions(+) commit 8b93d6a2e77da8a549e76f6afb4706bba8be1f9e Author: Nicolas Delon Date: Mon Oct 4 22:16:02 2004 +0000 use the $(CC) variable for the perl binding instead of hard coded gcc git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4162 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- bindings/perl/Makefile.PL.in | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit 7410565eb5c956fd1d33a486328fc011451cc6c4 Author: Nicolas Delon Date: Mon Oct 4 21:15:24 2004 +0000 force the use of gcc (because we must compile with gcc even on plateforms that have a native compiler) git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4161 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Makefile.PL.in | 1 + 1 file changed, 1 insertion(+) commit 8592bd81342b06a2bc0bed13abb0fd44a3742ec8 Author: Nicolas Delon Date: Sun Oct 3 21:22:44 2004 +0000 remove unneeded code git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4158 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 -- 1 file changed, 2 deletions(-) commit 6efde851e4202fbd54d34b013c32d41cf7c0b44a Author: Nicolas Delon Date: Sun Oct 3 20:37:27 2004 +0000 Yet another bunch of changes to make libprelude (especially the bindings) make distcheck friendly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4157 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 1 + bindings/Makefile.am | 21 +++++++++-------- bindings/perl/Makefile.PL.in | 29 +++++++++++++++++++----- bindings/python/setup.py.in | 54 ++++++++++++++++++++++++++++++++++---------- 4 files changed, 77 insertions(+), 28 deletions(-) commit 104a738c043e82b8bc7426b71409374ab5dab78d Author: Yoann Vandoorselaere Date: Sat Oct 2 19:40:42 2004 +0000 Add -Wstrict-prototype. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4151 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 1 + 1 file changed, 1 insertion(+) commit 9e1411ed4be7990748c5d962f716ca800970dde4 Author: Yoann Vandoorselaere Date: Sat Oct 2 19:37:02 2004 +0000 Include missing extract.h, and prelude-log.h dependencie. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4150 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-inet.c | 2 ++ 1 file changed, 2 insertions(+) commit 50d6f4ab9da134ca7236cb48623587ba46d565c9 Author: Yoann Vandoorselaere Date: Sat Oct 2 19:05:57 2004 +0000 Fix an alignement issue while accessing h_addr_list array of in_addr. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4148 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-inet.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 1684d5c4622d9d6292f697e1b1fb64829d8cb73c Author: Yoann Vandoorselaere Date: Sat Oct 2 18:53:59 2004 +0000 Fix a bug in latest modification done to idmef-util. Additionally, idmef_additionnaldata_data_to_string() return a const. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4146 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-util.c | 5 +++-- src/include/idmef-util.h | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) commit eb5e5e45e21e838be45b350c9629636c7b0e5ff1 Author: Nicolas Delon Date: Sat Oct 2 12:34:46 2004 +0000 * configure.in: fix bug for swig detection * bindings/python/setup.py.in: * bindings/perl/Makefile.PL.in: compare absolute path names, it solve the problem of comparing two same paths formatted differently (i.e "../.." and "../../") git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4139 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Makefile.PL.in | 3 ++- bindings/python/setup.py.in | 2 +- configure.in | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) commit 361c4fe87e4e114e73be78299f30d5fc7f486ab5 Author: Yoann Vandoorselaere Date: Sat Oct 2 11:18:01 2004 +0000 Only declare strsep if not available. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4138 09c5ec92-17d4-0310-903a-819935f44dba libmissing/strsep.h | 2 ++ 1 file changed, 2 insertions(+) commit 88e405bdc05cacea6076fcbb62dc0f70d4fc6e89 Author: Yoann Vandoorselaere Date: Fri Oct 1 20:55:27 2004 +0000 Update gnulib code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4132 09c5ec92-17d4-0310-903a-819935f44dba libmissing/m4/snprintf.m4 | 2 +- libmissing/m4/strsep.m4 | 2 +- libmissing/snprintf.c | 35 +++++++++++------------------- libmissing/strsep.c | 55 ++++++++++++++++++++++++++--------------------- libmissing/strsep.h | 19 +++++++++++++--- libmissing/vasnprintf.h | 21 ++++++++++++++++-- libmissing/vsnprintf.c | 4 ++-- libmissing/vsnprintf.h | 2 +- 8 files changed, 84 insertions(+), 56 deletions(-) commit b76381ea80f2d201e58a0927d8c20ddc6529bf7d Author: Yoann Vandoorselaere Date: Fri Oct 1 20:51:30 2004 +0000 Include libmissing.h. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4131 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-strbuf.c | 1 + 1 file changed, 1 insertion(+) commit 1eee920455b74fac644117f65c47335404f2d25d Author: Yoann Vandoorselaere Date: Fri Oct 1 20:48:22 2004 +0000 call libtoolize. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4130 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 + 1 file changed, 1 insertion(+) commit f7beccc22b6529a2b5b0c550ae432c372e0f7c98 Author: Yoann Vandoorselaere Date: Fri Oct 1 19:23:30 2004 +0000 Hack so that application that need dlpreopening does have to deal with a libltdl dependencie (header and lib). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4125 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-plugin.h | 13 ++++++++++++- src/prelude-plugin.c | 9 ++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) commit a2609ea1f9471a0e02f8f2ef4c1825368d200e99 Author: Yoann Vandoorselaere Date: Fri Oct 1 12:31:36 2004 +0000 more fixes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4124 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bb7251daafef1f32d387d63993f1f50b75d7e5af Author: Yoann Vandoorselaere Date: Fri Oct 1 12:30:11 2004 +0000 Don't call swig, perl, python directly, rather use $(SWIG), $(PERL), and $(PYTHON) variable. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4123 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 0a38fa1b579bb49bbbe1fa41b45b94cc39fe2f63 Author: Yoann Vandoorselaere Date: Fri Oct 1 12:23:28 2004 +0000 correct python, perl and swig detection method. Also take care if the user provide a PROGNAME=/path/to/prog variable. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4122 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 80507995c1252d765faf6bdfc624eb55933a85c1 Author: Yoann Vandoorselaere Date: Fri Oct 1 01:58:10 2004 +0000 cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4121 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 4 ---- 1 file changed, 4 deletions(-) commit fc7c7b53b094cf1757f88406bf7a50ea7f33c154 Author: Yoann Vandoorselaere Date: Fri Oct 1 01:52:30 2004 +0000 Activate libmissing support in autoconf stuff. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4120 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 3 ++- configure.in | 37 ++++++++++++++++++++++++------------- 2 files changed, 26 insertions(+), 14 deletions(-) commit 4d71353c25e8cf1863c75537686dbe6e368a2892 Author: Yoann Vandoorselaere Date: Fri Oct 1 01:51:54 2004 +0000 Hook libmissing everywhere it's needed. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4119 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/Makefile.am | 4 +- prelude-adduser/prelude-adduser.c | 1 + prelude-adduser/server.c | 1 + prelude-adduser/tls-register.c | 1 + src/Makefile.am | 7 +- src/common.c | 79 +--------------------- src/config-engine.c | 5 +- src/daemonize.c | 2 +- src/idmef-criteria-string.lex.l | 7 +- src/idmef-criteria.c | 1 + src/idmef-criterion-value.c | 1 + src/idmef-data.c | 1 + src/idmef-object.c | 1 + src/idmef-time.c | 1 + src/idmef-tree-to-string.c | 3 +- src/idmef-tree-wrap.c | 2 +- src/idmef-util.c | 1 + src/idmef-value-type.c | 1 + .../GenerateIDMEFTreeToStringC.pm | 1 + src/include/Makefile.am | 2 +- src/include/common.h | 6 -- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-tree-data.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 66 +++++++++--------- src/include/libmissing.h | 39 +++++++++++ src/include/prelude-client.h | 2 +- src/prelude-client.c | 1 + src/prelude-connection-mgr.c | 1 + src/prelude-connection.c | 1 + src/prelude-failover.c | 1 + src/prelude-getopt-wide.c | 5 +- src/prelude-getopt.c | 1 + src/prelude-inet.c | 1 + src/prelude-log.c | 1 + src/prelude-plugin.c | 1 + src/prelude-strbuf.c | 1 - 40 files changed, 120 insertions(+), 141 deletions(-) commit f64f3cc3da94a7bdc9cd8f1eb2d902ad388c19fc Author: Yoann Vandoorselaere Date: Fri Oct 1 01:48:57 2004 +0000 Use git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4118 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 753289ef2480e361aa824cddf458320758ed4a4f Author: Yoann Vandoorselaere Date: Fri Oct 1 01:48:31 2004 +0000 Add gnulib support for architecture with missing function. Currently mostly provide replacement for snprintf, vsnprintf, strsep, strndup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4117 09c5ec92-17d4-0310-903a-819935f44dba libmissing/Makefile.am | 59 +++ libmissing/alloca_.h | 54 +++ libmissing/asnprintf.c | 37 ++ libmissing/m4/alloca.m4 | 44 ++ libmissing/m4/eoverflow.m4 | 66 +++ libmissing/m4/gnulib.m4 | 47 +++ libmissing/m4/intmax_t.m4 | 63 +++ libmissing/m4/inttypes_h.m4 | 28 ++ libmissing/m4/longdouble.m4 | 30 ++ libmissing/m4/longlong.m4 | 25 ++ libmissing/m4/onceonly_2_57.m4 | 86 ++++ libmissing/m4/signed.m4 | 19 + libmissing/m4/size_max.m4 | 61 +++ libmissing/m4/snprintf.m4 | 17 + libmissing/m4/stdint_h.m4 | 28 ++ libmissing/m4/strdup.m4 | 17 + libmissing/m4/strndup.m4 | 24 ++ libmissing/m4/strnlen.m4 | 27 ++ libmissing/m4/strpbrk.m4 | 18 + libmissing/m4/strsep.m4 | 17 + libmissing/m4/vasnprintf.m4 | 60 +++ libmissing/m4/vsnprintf.m4 | 16 + libmissing/m4/wchar_t.m4 | 22 + libmissing/m4/wint_t.m4 | 22 + libmissing/m4/xsize.m4 | 15 + libmissing/minmax.h | 53 +++ libmissing/printf-args.c | 118 ++++++ libmissing/printf-args.h | 136 +++++++ libmissing/printf-parse.c | 536 ++++++++++++++++++++++++ libmissing/printf-parse.h | 74 ++++ libmissing/snprintf.c | 69 ++++ libmissing/snprintf.h | 29 ++ libmissing/strdup.c | 56 +++ libmissing/strdup.h | 29 ++ libmissing/strndup.c | 55 +++ libmissing/strndup.h | 30 ++ libmissing/strnlen.c | 48 +++ libmissing/strpbrk.c | 42 ++ libmissing/strpbrk.h | 28 ++ libmissing/strsep.c | 49 +++ libmissing/strsep.h | 30 ++ libmissing/vasnprintf.c | 896 +++++++++++++++++++++++++++++++++++++++++ libmissing/vasnprintf.h | 60 +++ libmissing/vsnprintf.c | 62 +++ libmissing/vsnprintf.h | 29 ++ libmissing/xsize.h | 108 +++++ 46 files changed, 3439 insertions(+) commit 2a477bde4b88dbc99aa3a6ad3240fed9ad25d756 Author: Yoann Vandoorselaere Date: Fri Oct 1 01:45:28 2004 +0000 correct enum declaration for non GCC compiler. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4116 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-value-type.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8b56a8a1eae2cb5a92eb234db3b4d4969c20fac6 Author: Yoann Vandoorselaere Date: Thu Sep 30 17:14:21 2004 +0000 Remove outdated debian package stuff from here, they are maintained separatly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4115 09c5ec92-17d4-0310-903a-819935f44dba debian/README.Debian | 6 -- debian/changelog | 9 --- debian/control | 46 ---------------- debian/copyright | 26 --------- debian/libprelude-dev.dirs | 2 - debian/libprelude-dev.files | 3 - debian/libprelude-dev.postinst.debhelper | 7 --- debian/libprelude-dev.prerm.debhelper | 5 -- debian/libprelude1.dirs | 1 - debian/libprelude1.files | 1 - debian/libprelude1.postinst.debhelper | 7 --- debian/libprelude1.prerm.debhelper | 5 -- debian/rules | 94 -------------------------------- 13 files changed, 212 deletions(-) commit 080bb549e1f2e48f7412b0a4b26aa227884d2208 Author: Nicolas Delon Date: Thu Sep 30 04:55:06 2004 +0000 oops... clean-am has been commented instead of uninstall-hook git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4114 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit a000dc7e0074e6b966c1f4dad0a845b572c8dcf1 Author: Nicolas Delon Date: Wed Sep 29 22:57:02 2004 +0000 * bindings/perl/Makefile.PL.in: support for different source and build directories * bindings/Makefile.am: * bindings/python/setup.py.in: begin support of the uninstall target, disabled: still does not work git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4113 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 20 ++++++++++++++------ bindings/perl/Makefile.PL.in | 9 +++++++++ bindings/python/setup.py.in | 17 ++++++++++++++++- 3 files changed, 39 insertions(+), 7 deletions(-) commit 1c0d7e45a852c2fbbd61210b098b67b71b61f639 Author: Yoann Vandoorselaere Date: Tue Sep 28 22:00:17 2004 +0000 Included patch from Yann Droneaud , to avoid distributing prelude-inttypes.h that was generated on the machine making the distribution. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4112 09c5ec92-17d4-0310-903a-819935f44dba src/include/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f2e142fed1cdc1e86187f6db2b475ac0307e50ea Author: Yoann Vandoorselaere Date: Tue Sep 28 21:53:21 2004 +0000 Included patch from Yann Droneaud , to fix a problem with the prelude-inttypes.h inclusion when building from a separate directory. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4111 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Makefile.PL.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1c0555d0837eff2ac71caeeee70a276e76e90690 Author: Nicolas Delon Date: Tue Sep 28 20:35:01 2004 +0000 bug fix: split the include paths string git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4110 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/setup.py.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 93a685c0456fdccbd613f604948c437d9f314716 Author: Yoann Vandoorselaere Date: Tue Sep 28 19:44:46 2004 +0000 Included patch from Yann Droneaud , to fix a problem with the prelude-inttypes.h inclusion when building from a separate directory. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4109 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/setup.py.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 065a01e8786bb360069060da562835ad5d8901f8 Author: Yoann Vandoorselaere Date: Tue Sep 28 19:35:09 2004 +0000 Included patch from Yann Droneaud , to fix a problem with the prelude-inttypes.h inclusion when building from a separate directory. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4108 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/Makefile.am | 4 ++-- src/Makefile.am | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit e2fca98cc1bd435604b6986ba6837772801fe3c3 Author: Yoann Vandoorselaere Date: Tue Sep 28 17:10:18 2004 +0000 Fix detection of broken PRIx macros in case we're on a machine that lack inttypes or stdint.h. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4107 09c5ec92-17d4-0310-903a-819935f44dba m4/ax_create_prelude_inttypes_h.m4 | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 61ef4a5c2b8470e318eb74c84d74b9b6e39e7149 Author: Nicolas Delon Date: Tue Sep 28 12:01:52 2004 +0000 bug fix for python binding build system, we now copy _prelude.c and prelude.py in the build directory because the distutils of python2.3 does not seem to work with a different source dir and build dir git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4106 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/setup.py.in | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) commit 3582ee144139730d9752368b78ddbd4e27c11fc3 Author: Yoann Vandoorselaere Date: Tue Sep 28 09:47:38 2004 +0000 More work on the ACX_PTHREAD detection stuff. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4105 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Makefile.PL.in | 2 +- bindings/python/setup.py.in | 5 ++--- libprelude-config.in | 2 +- m4/acx_pthread.m4 | 1 - prelude-adduser/Makefile.am | 2 +- src/Makefile.am | 2 +- 6 files changed, 6 insertions(+), 8 deletions(-) commit 5f20776a7042eba726745be99d5467c0c9d57bbb Author: Yoann Vandoorselaere Date: Tue Sep 28 09:38:55 2004 +0000 Use AX_CFLAGS_GCC_OPTION to check for CFLAGS. Removed some debugging spew. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4104 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 698fdb9c370c69a21baa3103ebfd0abeb22726c7 Author: Yoann Vandoorselaere Date: Tue Sep 28 09:37:34 2004 +0000 New macro from the autoconf macros archive, to test for available compiler flag. Convert ac_prototype to check for -Werror that way, since the previous check didn't seem to work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4103 09c5ec92-17d4-0310-903a-819935f44dba m4/ac_prototype.m4 | 7 +- m4/ax_cflags_gcc_option.m4 | 183 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 188 insertions(+), 2 deletions(-) commit e435b4c719a242bac469e0a60d3eb86fb4676a7a Author: Yoann Vandoorselaere Date: Tue Sep 28 09:34:59 2004 +0000 Added uninstall-local target to fix some configuration file left after install when doing a distcheck. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4102 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 7 +++++++ 1 file changed, 7 insertions(+) commit 17b239e83bbd7ca2dcd4dfe82230b43ce7105e7d Author: Nicolas Delon Date: Sun Sep 26 17:11:32 2004 +0000 fix make distcheck stuff git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4101 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 2 +- bindings/python/setup.py.in | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) commit 89a8b4962ee3cb511951a3dbc51bd9029424b8e8 Author: Yoann Vandoorselaere Date: Sun Sep 26 16:34:21 2004 +0000 Fix check for PRIx64 macro. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4100 09c5ec92-17d4-0310-903a-819935f44dba m4/ax_create_prelude_inttypes_h.m4 | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 9196da3744892af7a38b5961487291767d573bda Author: Nicolas Delon Date: Sun Sep 26 16:02:54 2004 +0000 fix some gcc warnings git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4099 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 4 ++++ src/idmef-criteria-string.yac.y | 5 +++-- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-tree-print.c | 14 +++++++------- src/idmef-tree-to-string.c | 8 ++++---- src/idmef-wrappers-gen/GenerateIDMEFTreePrintC.pm | 12 ++++++------ src/idmef-wrappers-gen/GenerateIDMEFTreeToStringC.pm | 6 +++--- src/prelude-getopt.c | 2 +- 9 files changed, 30 insertions(+), 25 deletions(-) commit 794ce6ea9b0e1901f2b13ff7c8517ffd6c6f06c1 Author: Nicolas Delon Date: Sun Sep 26 15:21:55 2004 +0000 bug fix: perl bindings now works with swig versions > 1.3.19 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4098 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 71d1dee85d2a0ef2121dd47ca4df235cea75175a Author: Yoann Vandoorselaere Date: Sun Sep 26 15:12:25 2004 +0000 More cleanup on the bindings build system. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4097 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 52 ++++++++++++++++++++++++++++++++++++++-------------- configure.in | 25 +++++++++---------------- 2 files changed, 47 insertions(+), 30 deletions(-) commit 74bff469f8e7e5e6415c5dfdf9a613e741955d27 Author: Yoann Vandoorselaere Date: Sun Sep 26 15:11:48 2004 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4096 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i.in | 256 ----------------------------------------------- 1 file changed, 256 deletions(-) commit d1308ba850edd735c31a24092305d3062cffdcaa Author: Yoann Vandoorselaere Date: Sun Sep 26 15:10:29 2004 +0000 Remove autogenerated file from the repository. Will be included in the dist. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4095 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 38530 ------------------------------------------- bindings/python/_prelude.c | 24481 --------------------------- 2 files changed, 63011 deletions(-) commit c0960989e9e7bcbd09041d3c593df71049971aa3 Author: Yoann Vandoorselaere Date: Sun Sep 26 14:03:48 2004 +0000 Check whether swig is present before generating the bindings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4094 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 5 +++++ configure.in | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) commit c6261ca666eab6d25ec94d504ff9c2806e5f4c20 Author: Yoann Vandoorselaere Date: Sun Sep 26 13:47:04 2004 +0000 Don't generate libprelude.i throught autoconf, since it is un-needed. Don't hardcode include path within libprelude.i, but rather, provide swig with -I$(top_srcdir)/src/include in the Makefile.am git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4093 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 6 +- bindings/libprelude.i | 256 ++++++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 1 - 3 files changed, 259 insertions(+), 4 deletions(-) commit 502a7563b3a82c102ddc0fd22195dfaf1261d9e6 Author: Nicolas Delon Date: Sun Sep 26 11:57:23 2004 +0000 new build system for langage bindings, cleaner and more portable than the previous one, the standard build system for each langage (ExtUtils::MakeMaker for Perl and distutils for Python) is now used git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4092 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 33 +- bindings/generate.sh | 5 - bindings/libprelude.i | 256 - bindings/libprelude.i.in | 256 + bindings/perl/Makefile.PL.in | 15 + bindings/perl/Makefile.am | 28 - bindings/perl/Prelude.c | 11319 ++++++++++++++++++++++++----------------- bindings/perl/generate.sh | 3 - bindings/python/Makefile.am | 27 - bindings/python/_prelude.c | 286 +- bindings/python/generate.sh | 3 - bindings/python/setup.py.in | 21 + configure.in | 47 +- 13 files changed, 7194 insertions(+), 5105 deletions(-) commit bd7ee4d65f537a884a035a6bb3898cedebc52af1 Author: Yoann Vandoorselaere Date: Sat Sep 25 18:27:53 2004 +0000 Fix a warning when calling extract_characters_safe(). Some reformating. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4091 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-util.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) commit 3759c549af330a722b45252b33c31a551ec3bae5 Author: Yoann Vandoorselaere Date: Sat Sep 25 18:03:22 2004 +0000 Modify GENERIC_ONE_BASE_RW_FUNC to take two format string as argument. We need a different format string for sscanf (%lf) and snprintf (%f) for data typed double. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4090 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit a8f5fbe42fb077c18d72c34843b3d0bad498e847 Author: Yoann Vandoorselaere Date: Sat Sep 25 17:52:22 2004 +0000 Set pthread ldflags in PTHREAD_LDFLAGS, not in PTHREAD_LIBS, for perl binding which complain about it. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4089 09c5ec92-17d4-0310-903a-819935f44dba libprelude-config.in | 2 +- m4/acx_pthread.m4 | 3 ++- prelude-adduser/Makefile.am | 1 + src/Makefile.am | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) commit 8c240bb2e2e6be0b2ad4b38fbafa2f28323acd2e Author: Yoann Vandoorselaere Date: Sat Sep 25 16:14:41 2004 +0000 Use PATH_MAX if defined for getcwd(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4088 09c5ec92-17d4-0310-903a-819935f44dba src/daemonize.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 531e3248f245b477dec94a37d6729b689c599ffe Author: Yoann Vandoorselaere Date: Sat Sep 25 15:49:44 2004 +0000 Fix format string for printing double. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4087 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f2b8df9a5d33380f76ef973b3bdb2efb3d4294e Author: Yoann Vandoorselaere Date: Sat Sep 25 15:48:49 2004 +0000 Always include config.h first. Fix _FILE_OFFSET_BITS redefinition warning on Solaris. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4086 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-util.c | 4 ++-- src/prelude-connection.c | 4 ++-- src/prelude-inet.c | 3 ++- src/prelude-io.c | 3 ++- src/prelude-plugin.c | 3 ++- 5 files changed, 10 insertions(+), 7 deletions(-) commit dfc4698c0f02d0de1e56c84b535babfb078e8f6b Author: Yoann Vandoorselaere Date: Sat Sep 25 15:40:27 2004 +0000 Fix warning on Solaris when printing uid_t / gid_t. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4085 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit cf84efa11c42705e3da83f4858360a6ff0c66e0a Author: Yoann Vandoorselaere Date: Sat Sep 25 14:59:53 2004 +0000 Fix include path. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4084 09c5ec92-17d4-0310-903a-819935f44dba src/include/common.h | 2 +- src/include/extract.h | 2 +- src/include/idmef-tree.h | 2 +- src/include/idmef.h | 2 +- src/include/prelude-ident.h | 2 +- src/include/prelude-io.h | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) commit ced6f7829271a14444c0273e5f013141031fa05f Author: Yoann Vandoorselaere Date: Sat Sep 25 11:17:15 2004 +0000 Use socklen_t in place of size_t. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4083 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6a50c6dedbc2ed5afa568ca00a3f284e802c1ffb Author: Yoann Vandoorselaere Date: Sat Sep 25 11:16:39 2004 +0000 Fit latest change. Some cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4082 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/Makefile.am | 6 +++--- src/Makefile.am | 11 +++++------ 2 files changed, 8 insertions(+), 9 deletions(-) commit f6f936b9c7c593bf0b03fc2c0367b4d83a141609 Author: Yoann Vandoorselaere Date: Sat Sep 25 11:15:53 2004 +0000 - Some re-ordering for the --cflags option. - Make --pthread-cflags work again. - Don't document pthread cflags since application are not supposed to use it anymore. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4081 09c5ec92-17d4-0310-903a-819935f44dba libprelude-config.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 0359aad84c028fce58d5f4d860bad26477e7f90e Author: Yoann Vandoorselaere Date: Sat Sep 25 11:14:57 2004 +0000 New autoconf macro for checking function prototype. Included from the Autoconf Macro archives, and slighty modified to work on newer autoconf version. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4080 09c5ec92-17d4-0310-903a-819935f44dba m4/ac_prototype.m4 | 189 ++++++++++++++++++++++++++++++++++++++++++++++ m4/ac_prototype_accept.m4 | 31 ++++++++ 2 files changed, 220 insertions(+) commit b251ff0477265e81e6e338fe369e46896edeb5d0 Author: Yoann Vandoorselaere Date: Sat Sep 25 11:14:12 2004 +0000 Don't export PTHREAD_CFLAGS to libprelude-config --cflags.. This is up to the application to do so if it want to support pthread. Add a supposedly better check for socklen_t, which is no defined to the same type as the 3 accept() argument is. This should fix most of the portability problem both on architecture not using socklen_t, and on architecture that doesn't use socklen_t for accept() / getsockname(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4079 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) commit 4a1a8d1a492b302c124c955d6514ce815bd1b131 Author: Yoann Vandoorselaere Date: Sat Sep 25 11:10:25 2004 +0000 When gcc support a pthread flags, define it both in PTHREAD_LIBS and PTHREAD_CFLAGS. This should fix an issue encountered on Linux since the switch to ACX_PTHREAD(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4078 09c5ec92-17d4-0310-903a-819935f44dba m4/acx_pthread.m4 | 1 + 1 file changed, 1 insertion(+) commit 95af5d3491c1bd596e3c65a86aefe40d83716ead Author: Yoann Vandoorselaere Date: Sat Sep 25 09:21:06 2004 +0000 More warnings fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4077 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c56bdae0edba5dfe56ff2ad2a9a660f9c9e1599e Author: Yoann Vandoorselaere Date: Sat Sep 25 09:04:14 2004 +0000 Fix warnings on some architecture. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4076 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 531c02dc7601760e0042815fe096ac152f7726ad Author: Yoann Vandoorselaere Date: Sat Sep 25 09:03:33 2004 +0000 Fix warning on some architectures. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4075 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 2 +- src/idmef-time.c | 4 ++-- src/idmef-value.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 5123147f796f206d40cbd363ca60a9580757b9a1 Author: Yoann Vandoorselaere Date: Fri Sep 24 18:06:24 2004 +0000 Use prelude-inttypes.h. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4074 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 2 +- bindings/perl/Prelude.c | 2 +- bindings/python/_prelude.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 99543ebf700e34d803adab18e1bcf65830771cca Author: Yoann Vandoorselaere Date: Fri Sep 24 18:05:54 2004 +0000 More work on ax_create_stdint_h, which was re-written and renamed to ax_create_prelude_inttypes_h. Work done by Rob Holland and myself. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4073 09c5ec92-17d4-0310-903a-819935f44dba acinclude.m4 | 193 ---------- configure.in | 3 +- m4/ac_compile_check_sizeof.m4 | 28 ++ m4/acx_pthread.m4 | 239 ++++++++++++ m4/ax_create_prelude_inttypes_h.m4 | 111 ++++++ m4/ax_create_stdint_h.m4 | 725 ------------------------------------- src/include/prelude-inttypes.h.in | 208 +++++++++++ 7 files changed, 588 insertions(+), 919 deletions(-) commit 69ff13a508581d765810e5a8b71fca6ab2754f77 Author: Yoann Vandoorselaere Date: Thu Sep 23 16:44:26 2004 +0000 Patch from Rob Holland to fix a quote problem in AX_CREATE_STDINT() macro. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4072 09c5ec92-17d4-0310-903a-819935f44dba m4/ax_create_stdint_h.m4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b69aeda98bee5837d557da6b9c1f1b120dd17378 Author: Yoann Vandoorselaere Date: Thu Sep 23 14:46:21 2004 +0000 Include sys/time.h. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4071 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 1 + 1 file changed, 1 insertion(+) commit 10a3a546384d332f670a74e05d43801f1364dcc2 Author: Yoann Vandoorselaere Date: Thu Sep 23 14:45:17 2004 +0000 Install the generated prelude-inttypes.h, and use it everywhere in place of inttypes.h. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4070 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/plaintext.c | 2 +- prelude-adduser/prelude-adduser.c | 2 +- src/client-ident.c | 3 +- src/config-engine.c | 2 +- src/idmef-criteria-string.yac.y | 2 +- src/idmef-criteria.c | 2 +- src/idmef-criterion-value.c | 2 +- src/idmef-data.c | 2 +- src/idmef-message-read.c | 4 +- src/idmef-message-write.c | 4 +- src/idmef-message.c | 2 +- src/idmef-object-value.c | 2 +- src/idmef-object.c | 2 +- src/idmef-time.c | 2 +- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 68 +++++++++++----------- src/idmef-type.c | 2 +- src/idmef-util.c | 2 +- src/idmef-value-object.c | 2 +- src/idmef-value-type.c | 2 +- src/idmef-value.c | 2 +- .../GenerateIDMEFMessageReadC.pm | 2 +- .../GenerateIDMEFMessageWriteC.pm | 2 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 2 +- src/include/Makefile.am | 1 + src/include/common.h | 2 +- src/include/extract.h | 2 +- src/include/idmef-tree.h | 2 +- src/include/idmef.h | 2 +- src/include/prelude-ident.h | 2 +- src/include/prelude-io.h | 2 +- src/ntp.c | 2 +- src/prelude-async.c | 2 +- src/prelude-connection-mgr.c | 2 +- src/prelude-connection.c | 2 +- src/prelude-getopt.c | 2 +- src/prelude-ident.c | 2 +- src/prelude-inet.c | 2 +- src/prelude-io.c | 2 +- src/prelude-message-buffered.c | 2 +- src/prelude-message.c | 2 +- src/prelude-plugin.c | 2 +- 43 files changed, 79 insertions(+), 77 deletions(-) commit 61d12df9378886be50055dfab76f87e1e6b0cb55 Author: Yoann Vandoorselaere Date: Thu Sep 23 14:31:57 2004 +0000 Included autoconf macro from Rob Holland , this macro will generate an inttypes.h file suited for the architecture we're installing on. This is needed for architecture not including stdint.h or inttypes.h, as well as the PRIxxx SCNxxx macros. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4069 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 2 +- configure.in | 3 + m4/ax_create_stdint_h.m4 | 725 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 729 insertions(+), 1 deletion(-) commit 5c5085a133831ebd122c76618c188567637918c0 Author: Yoann Vandoorselaere Date: Mon Sep 20 16:02:43 2004 +0000 Fix format string when printing 64 bits integer on 64 bit system. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4066 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 4 +- bindings/perl/Prelude.c | 11389 +++++++++++++++++-------------------------- bindings/python/_prelude.c | 286 +- 3 files changed, 4775 insertions(+), 6904 deletions(-) commit 9084ece886d25c82af6594c9a0f6bdb64a820042 Author: Yoann Vandoorselaere Date: Mon Sep 20 15:10:21 2004 +0000 Fix format string when printing 64 bits integer on 64 bit system. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4061 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 8 ++++---- prelude-adduser/tls-register.c | 4 ++-- src/client-ident.c | 3 +-- src/idmef-tree-print.c | 12 +++++++----- src/idmef-tree-to-string.c | 11 ++++++----- src/idmef-value-type.c | 16 ++++++++-------- src/idmef-wrappers-gen/GenerateIDMEFTreePrintC.pm | 10 ++++++---- src/idmef-wrappers-gen/GenerateIDMEFTreeToStringC.pm | 9 +++++---- 8 files changed, 39 insertions(+), 34 deletions(-) commit 681c423c7a6505514570db888c7ec98927b1bc59 Author: Yoann Vandoorselaere Date: Mon Sep 20 14:50:53 2004 +0000 Fix read failure in case we get EAGAIN, which is not handled anymore by prelude-io.c directly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4060 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 019334343220e74dfe908e924d7edb213888863d Author: Yoann Vandoorselaere Date: Mon Sep 20 14:05:09 2004 +0000 Fix a NULL pointer dereference happening with certain type of failover. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4059 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 3897ec2c45f33297981f0cc450460149bd42e93e Author: Yoann Vandoorselaere Date: Sun Sep 19 23:38:24 2004 +0000 New pthread detection mechanism covering more architectures. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4057 09c5ec92-17d4-0310-903a-819935f44dba acinclude.m4 | 193 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 56 ++-------------- src/Makefile.am | 6 +- 3 files changed, 200 insertions(+), 55 deletions(-) commit 9bcbb168f81446c0ef64be684ba580c435a50616 Author: Yoann Vandoorselaere Date: Sun Sep 19 17:07:25 2004 +0000 Fix socklen_t warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4050 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 7ad3c84d5bae6d45fb7062a0996b4e9870832d6b Author: Yoann Vandoorselaere Date: Sun Sep 19 16:32:36 2004 +0000 slight correction for make dist. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4041 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6f35664e76d40311460c58b99198a4bac485f0b1 Author: Nicolas Delon Date: Sun Sep 19 09:27:04 2004 +0000 bug fix git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4038 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6e81ead1ecec8f8ebbc28a1aa3cb4c7029a5cf70 Author: Yoann Vandoorselaere Date: Sat Sep 18 20:44:12 2004 +0000 Link with all library libprelude is dependant uppon, to avoid portability problem on some platform like AIX. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4037 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c9b6a751d9f3523e3f56fe04960a3acaf3bde410 Author: Yoann Vandoorselaere Date: Sat Sep 18 19:08:41 2004 +0000 Include libpthread.a in the pthread library search. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4036 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 1 + 1 file changed, 1 insertion(+) commit 346638b9c13c83fb32e8406b2d98acc7b06bed95 Author: Nicolas Delon Date: Sat Sep 18 17:35:43 2004 +0000 try to be compatible with non-GNU yacc (it need to be fully tested) git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4035 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) commit b24916792d35ff0fdac469166bb5d2fc8cade7c7 Author: Yoann Vandoorselaere Date: Thu Sep 16 19:20:25 2004 +0000 Link with GnuTLS directly in order to build on platform where a shared library must be entirely self-contained. Use the -no-undefined libtool link option. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4033 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d7276d8f1c8a0409e66cb926d1923b2ffefaef03 Author: Yoann Vandoorselaere Date: Thu Sep 16 19:16:15 2004 +0000 Remove un-needed export-dynamic link option. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4032 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/Makefile.am | 1 - 1 file changed, 1 deletion(-) commit f4b0e9d4ee3f8ae59a591c61ecb47f1251f33fdf Author: Yoann Vandoorselaere Date: Sun Sep 12 16:16:00 2004 +0000 Make this C99 compliant. Stop using GNU extention. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4031 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-util.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0de1aeb963ee998c8565d4fe17f76cb4f29aac54 Author: Yoann Vandoorselaere Date: Sun Sep 12 16:15:21 2004 +0000 Make this C99 compliant. Stop using GNU extention. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4030 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 322835683455317232b68a30f1b8999abb1806dc Author: Nicolas Delon Date: Tue Aug 3 08:40:19 2004 +0000 regenerate bindings with swig 1.3.19, swig > 1.3.19 break the bindings git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4022 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 11321 ++++++++++++++++++++++++++----------------- bindings/python/_prelude.c | 288 +- 2 files changed, 6871 insertions(+), 4738 deletions(-) commit 8cc2d76f4d655304dd893e8f0d31f90670583398 Author: Nicolas Delon Date: Thu Jul 29 21:47:34 2004 +0000 support for destroy hook flag git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4020 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 1 + 1 file changed, 1 insertion(+) commit c600e63060de644ae4b9b67a1dcf47937bdb1a8f Author: Yoann Vandoorselaere Date: Fri Jul 23 14:48:26 2004 +0000 Fix a typo: s/dns/dnl/. Thanks to Gene Gomez for pointing this out. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4012 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2c980844d0efcf1eed6980148d4e6e8ff37895f9 Author: Nicolas Delon Date: Fri Jul 23 06:31:18 2004 +0000 remove debug message git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4011 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 1 - 1 file changed, 1 deletion(-) commit 14661986bdf7ad1960b4b2310bc4a47b1068921b Author: Yoann Vandoorselaere Date: Thu Jul 22 23:19:52 2004 +0000 Handle case where delim is a null byte in prelude_strsep(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4009 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 2f4fd636b46e1d5776eb5f3a1d0929f9bc12647c Author: Yoann Vandoorselaere Date: Thu Jul 22 23:04:19 2004 +0000 Slight fix to parse_buffer(), don't search for "=" on last strsep to get end of the string, but rather search for "". So that it won't break entry containing an '='. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4008 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c5513e1b7f7e35165c5712f182b1e2dae70b036 Author: Yoann Vandoorselaere Date: Thu Jul 22 22:47:31 2004 +0000 Handle case where the criterion own value is NULL. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4007 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 5e0ec6bc4833062f2f292751ee318e9f0aa2cdea Author: Yoann Vandoorselaere Date: Thu Jul 22 22:30:55 2004 +0000 Fix a double free of the option context, and an invalid pointer dereference. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4006 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 19133dc9e60766a10faf039df228c537d4e56625 Author: Yoann Vandoorselaere Date: Thu Jul 22 22:19:44 2004 +0000 Implement node-address destruction. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4005 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 0b1885ed54e749e5f5d4905dd57c4daa79e67adc Author: Nicolas Delon Date: Thu Jul 22 21:46:48 2004 +0000 add destroy method git-svn-id: file:///home/yoann/SVN/trunk/libprelude@4002 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 8 ++++++++ 1 file changed, 8 insertions(+) commit 0f279b826249198d9777393f8f3be4604c2a9de7 Author: Yoann Vandoorselaere Date: Thu Jul 22 08:44:44 2004 +0000 Indentation fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3997 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt-wide.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 346f3cb0f7ff667154e9044a29d15f85f4e73c64 Author: Yoann Vandoorselaere Date: Thu Jul 22 08:43:49 2004 +0000 Even in case of error while getting the message from the failover, keep trying with the next failover message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3996 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit c34e2a7ba31fe926b9f4c0c7302831259771d9f7 Author: Yoann Vandoorselaere Date: Thu Jul 22 08:42:31 2004 +0000 In case of failure retrieving a message from the failover, get the raw file size in order to decrease the disk usage count, and increment older_index so that we will skip to next message on next call. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3995 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) commit 86cee637e6c981d33f876acffdd5cb8aaec4bfac Author: Yoann Vandoorselaere Date: Thu Jul 22 08:08:24 2004 +0000 Better error handling. Fix a possible SIGSEGV on invalid message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3994 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1f8a823136fc9e76370b76dc03952af42af0ffa2 Author: Yoann Vandoorselaere Date: Wed Jul 21 22:56:56 2004 +0000 Handle commit messages. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3991 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt-wide.c | 1 + 1 file changed, 1 insertion(+) commit 6684f31d1594246df5ca9dc118b85c0a81471319 Author: Nicolas Delon Date: Wed Jul 21 21:51:56 2004 +0000 add support for commit git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3989 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 8 ++++++++ 1 file changed, 8 insertions(+) commit 401798c0ff59230cb8bee0258738edbcdd61dcf9 Author: Yoann Vandoorselaere Date: Wed Jul 21 19:24:50 2004 +0000 Revert [3978], this is needed for certain analyzer (prelude-manager is an example). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3988 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 932e50cbdc24d456926f5aeb7607635582ec027c Author: Yoann Vandoorselaere Date: Wed Jul 21 14:02:05 2004 +0000 Remove flex/yacc generated files. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3983 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.c | 1700 --------------------------------------- src/idmef-criteria-string.yac.c | 1378 ------------------------------- src/idmef-criteria-string.yac.h | 31 - 3 files changed, 3109 deletions(-) commit a3c8c48e09bb9c720c3111b8612f35c761667936 Author: Yoann Vandoorselaere Date: Wed Jul 21 13:59:31 2004 +0000 Include string.h, fix a warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3982 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 6b784cc1979cef75addcaf59a9033bd3340666a8 Author: Yoann Vandoorselaere Date: Wed Jul 21 13:55:22 2004 +0000 New ignore-startup-error option, to be used primarily by developer who wish to test an analyzer relying on successful, and complete initialisation of the library, even if all check for the analyzer specific files (needed for authentication to the manager) fail. This can be useful for debugging purpose when you are not in an environment where you can register the analyzer. The option is hidden to the user. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3981 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) commit 6350d50ab748377404ede1a678b6094ea66004b4 Author: Yoann Vandoorselaere Date: Wed Jul 21 13:50:13 2004 +0000 Add a prelude_bool_t datatype. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3980 09c5ec92-17d4-0310-903a-819935f44dba src/include/common.h | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 0fa1698c0187fe3683d9100c07f39de978af479f Author: Yoann Vandoorselaere Date: Wed Jul 21 13:16:37 2004 +0000 Fix duplicate error message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3979 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 44fd61ef9b1d566e4a3f4f4118b609795c4e6f48 Author: Yoann Vandoorselaere Date: Wed Jul 21 12:57:29 2004 +0000 Don't return the credentials struct in case accessing our certitificate filename fail. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3978 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 0e63994ea129ddec3d6e66dd33acc897d927c31e Author: Yoann Vandoorselaere Date: Wed Jul 21 12:00:09 2004 +0000 Trigger an error on invalid error, and continue parsing our option buffer instead of returning immediatly. This fix some problem with option that are called separatly from other because of priority issue. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3977 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit bc87a127c0179bf0feeaed9b8457a5b6ac51d4e6 Author: Yoann Vandoorselaere Date: Tue Jul 20 12:30:32 2004 +0000 Implement IDMEF_CLASSIFICATION_ORIGIN_OSVDB, as required by IDMEF draft version 12. Fix bug #23 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3971 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 8 +++++++- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-tree-data.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 5 +++-- src/include/idmef-tree.h | 3 ++- 13 files changed, 22 insertions(+), 14 deletions(-) commit 9d29f2a1be182f3bb323e99b533ae981c960c7a9 Author: Yoann Vandoorselaere Date: Tue Jul 20 12:20:45 2004 +0000 Fix indentation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3967 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt-wide.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 764d47df9cec59a54bcbef5aced646a00cd12d38 Author: Yoann Vandoorselaere Date: Tue Jul 20 12:20:20 2004 +0000 Fix minor leak. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3966 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 1 + 1 file changed, 1 insertion(+) commit 3690bd11ec6becb07d67f80edad336a12d548344 Author: Yoann Vandoorselaere Date: Tue Jul 20 12:19:51 2004 +0000 Implement new IDMEF_IMPACT_SEVERITY_INFO severity. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3965 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 8 +++++++- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-tree-data.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 5 +++-- src/include/idmef-tree.h | 3 ++- 13 files changed, 22 insertions(+), 14 deletions(-) commit 75fcc32056333a684f9a2baf46559ce6221f9ff0 Author: Yoann Vandoorselaere Date: Mon Jul 19 21:33:17 2004 +0000 destroy callback only take 2 args. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3963 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 9 +++++---- bindings/python/_prelude.c | 7 ++++--- src/include/prelude-getopt.h | 2 +- src/prelude-getopt.c | 6 +++--- src/prelude-plugin.c | 2 +- 5 files changed, 14 insertions(+), 12 deletions(-) commit 174191c658da32afe2dc33892cc90fcf07fbce6d Author: Yoann Vandoorselaere Date: Mon Jul 19 21:20:55 2004 +0000 Only sent the PRELUDE_MSG_VALUE if value is not empty. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3962 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f37c8d77f44c5f044db40f2b36e95877a50c1949 Author: Yoann Vandoorselaere Date: Mon Jul 19 17:26:43 2004 +0000 Don't exit in case of error, just return it. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3961 09c5ec92-17d4-0310-903a-819935f44dba src/client-ident.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit 73b38b3698679d857865e40b3888daf004243687 Author: Yoann Vandoorselaere Date: Mon Jul 19 17:26:22 2004 +0000 Don't exit in case of error, just return it. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3960 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1a00d2f50cf89bc4c205aa9882de6d15e95db0da Author: Yoann Vandoorselaere Date: Mon Jul 19 17:18:09 2004 +0000 More cleanup... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3959 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 7181982aff9dcef6b01d759872942ad928ee2ebb Author: Yoann Vandoorselaere Date: Mon Jul 19 17:16:06 2004 +0000 Re-introduce ALLOW_MULTIPLE_CALL because it's still needed for some stuff. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3958 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-getopt.h | 3 ++- src/prelude-getopt.c | 10 +++------- 2 files changed, 5 insertions(+), 8 deletions(-) commit b7181454f1be823dac017c8dd8fea947c0cd02c7 Author: Yoann Vandoorselaere Date: Mon Jul 19 17:10:41 2004 +0000 Fix call to prelude_option_parse_arguments() for standalone options. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3957 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 47d795f62117d6949fb4227a4b9c0bbd55da7e4a Author: Yoann Vandoorselaere Date: Mon Jul 19 16:22:24 2004 +0000 Implement missing get() function for IDMEF configurable value. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3956 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 109 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 100 insertions(+), 9 deletions(-) commit e88c3e62f1b4b9fc050e0ff0a08bfe408d6e7cff Author: Yoann Vandoorselaere Date: Mon Jul 19 15:58:52 2004 +0000 Some more option description. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3955 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 780e4b934e64cc9d2b05d439842fd90b06150b25 Author: Yoann Vandoorselaere Date: Mon Jul 19 15:42:06 2004 +0000 Fix Python wrapper for administrative console. Remove debugging spew in the new code. Some function renaming. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3954 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 2 +- src/prelude-getopt-wide.c | 15 ++++----------- src/prelude-getopt.c | 29 +++++++++++++++++------------ 3 files changed, 22 insertions(+), 24 deletions(-) commit 6d700b9f46470d2fef3a0a68596495defa6b3bdc Author: Yoann Vandoorselaere Date: Mon Jul 19 15:18:08 2004 +0000 Too much change to list. Full featured handling of COMMIT and DESTROY option message. Ability to save the option remotely set in the config file. Much more context checking for safety. All remote method are now implemented. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3952 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 11669 +++++++++++++++---------------------- bindings/python/_prelude.c | 627 +- src/include/prelude-getopt.h | 46 +- src/include/prelude-message-id.h | 2 + src/include/prelude-plugin.h | 59 +- src/prelude-client.c | 4 +- src/prelude-getopt-wide.c | 126 +- src/prelude-getopt.c | 316 +- src/prelude-plugin.c | 144 +- 9 files changed, 5667 insertions(+), 7326 deletions(-) commit 6b90ffb5138da3d4019faca7907ed9e2372bcf69 Author: Yoann Vandoorselaere Date: Mon Jul 19 14:49:50 2004 +0000 correctly check for gnutls extra, and use libgnutls-extra-config provided information to compile prelude-adduser. Fix AC_REAL_PATH_GENERIC so that it handle value with '-' characters. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3951 09c5ec92-17d4-0310-903a-819935f44dba acinclude.m4 | 5 ++--- configure.in | 21 +++++++++++++++++++++ prelude-adduser/Makefile.am | 5 ++--- 3 files changed, 25 insertions(+), 6 deletions(-) commit 7d4da3f8f5cf38512c58860b3410811d77c07b16 Author: Yoann Vandoorselaere Date: Mon Jul 19 14:08:12 2004 +0000 Removed dependencie on deprecated libcrypt. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3950 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 11 ----------- 1 file changed, 11 deletions(-) commit ac4e57ff5a66c2682d11302f2384b51b6b987bef Author: Yoann Vandoorselaere Date: Mon Jul 19 14:07:05 2004 +0000 Implemented function for deletion of entry or section within the configuration file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3949 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 54 +++++++++++++++++++++++++++++++++++++++++++-- src/include/config-engine.h | 2 ++ 2 files changed, 54 insertions(+), 2 deletions(-) commit 228325325afc82d3251c6659e4c34b19fb722c41 Author: Nicolas Delon Date: Mon Jul 19 12:29:12 2004 +0000 fix bad regexp that did not match instance names with number git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3948 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cd1da66868e748e65faa498ebd346bf8a3a2b7a7 Author: Nicolas Delon Date: Sun Jul 18 22:17:09 2004 +0000 * src/prelude-client.c: bug fix: forgot to destroy heartbeat timer * bindings/python/_prelude.c: * bindings/python/prelude.py: * bindings/libprelude.i: fixes for the python binding of admin stuff git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3945 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 7 +- bindings/perl/Prelude.c | 170 ++++- bindings/python/_prelude.c | 157 ++++- bindings/python/prelude.py | 56 +- src/idmef-criteria-string.lex.c | 1329 +++++++++++++++++---------------------- src/idmef-criteria-string.yac.c | 1251 +++++++++++++++++------------------- src/idmef-criteria-string.yac.h | 90 +-- src/prelude-client.c | 2 + 8 files changed, 1538 insertions(+), 1524 deletions(-) commit ca0461b563ce5c16990b44bd7f404c0858b78973 Author: Yoann Vandoorselaere Date: Sat Jul 17 13:23:37 2004 +0000 * prelude-client.c (generate_md5sum): check that the file is a regular file. (fill_client_infos): try to get the md5sum from the prelude_get_file_name_and_path() returned information. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3944 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit aac91d5d61ca273c0c171a4799088752f73bb246 Author: Yoann Vandoorselaere Date: Sat Jul 17 13:04:50 2004 +0000 Oops, free the value after using it, not otherwise... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3943 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bc18c7d389b59bd5abc948fe69f645409c90e30 Author: Yoann Vandoorselaere Date: Sat Jul 17 11:11:32 2004 +0000 cleanup default configuration file git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3941 09c5ec92-17d4-0310-903a-819935f44dba global.conf.in | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 28112bfe5b79f752567a9a0f3f40bff12ef95351 Author: Yoann Vandoorselaere Date: Wed Jul 14 10:46:27 2004 +0000 Set default insertion point to be after include, so that configuration modification don't get overwritten by include definition on restart. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3932 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) commit b413585c88c44bb7441e4958a2f6970c16da3059 Author: Yoann Vandoorselaere Date: Wed Jul 14 00:53:44 2004 +0000 * prelude-getopt-wide.c (parse_request): call config_save_value(). (config_save_value): implemented. Save provided value in the configuration file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3931 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt-wide.c | 62 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 12 deletions(-) commit df23d7ad55e6d7c5e973bd65a6466be640ef8208 Author: Yoann Vandoorselaere Date: Wed Jul 14 00:53:01 2004 +0000 * prelude-client.c: ability to modify IDMEF parameters from the admin console. Use instance to handle multiple node-address parents. Implemented a function used to retrieve analyzer configuration file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3930 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 2 ++ src/prelude-client.c | 65 ++++++++++++++++++++------------------------ 2 files changed, 32 insertions(+), 35 deletions(-) commit 018ee8a9379ef99772b2a0127a7e1a75c1ae0739 Author: Yoann Vandoorselaere Date: Wed Jul 14 00:51:09 2004 +0000 * prelude-getopt.c: Fix valgrind leak false positive by moving the list member to the top of the structure. The way the list implementation work make valgrind think the object is lost, when we still have a reference to this object through the offset + address of one of it's member. More work on option instances. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3929 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 105 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 44 deletions(-) commit 1f1198543d296c62c016c92dbd26356fac92cf61 Author: Yoann Vandoorselaere Date: Wed Jul 14 00:23:57 2004 +0000 Lot of bugfix, primarily for insertion of option in the configuration file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3928 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 142 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 81 insertions(+), 61 deletions(-) commit f9a29cef0e6ca22d7426a9fb421b0067d89fd799 Author: Yoann Vandoorselaere Date: Wed Jul 14 00:15:15 2004 +0000 Fix return value. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3927 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86b36dae98589db63d6e41e29a55c3990b283032 Author: Yoann Vandoorselaere Date: Tue Jul 13 21:47:10 2004 +0000 Fix file descriptor leak. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3924 09c5ec92-17d4-0310-903a-819935f44dba src/client-ident.c | 2 ++ 1 file changed, 2 insertions(+) commit 23cab212d35487f02e3a94ec8f8a5dbf2713ec3a Author: Yoann Vandoorselaere Date: Tue Jul 13 21:46:41 2004 +0000 Include a negative error member in every IDMEF enumeration, so that the enum is signed and we can check for error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3923 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 2 +- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-tree-data.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 23 +++- src/include/idmef-tree.h | 217 ++++++++++++++++++++----------------- 13 files changed, 150 insertions(+), 112 deletions(-) commit 4dd62678031d4436c32f434b083dd6fc0ab650b4 Author: Yoann Vandoorselaere Date: Tue Jul 13 21:41:29 2004 +0000 Fix valgrind leak false positive by moving the list member to the top of the structure. The way the list implementation work make valgrind think the object is lost, when we still have a reference to this object through the offset + address of one of it's member. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3922 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 37e853900867ec6213432eea94c3445fff754433 Author: Yoann Vandoorselaere Date: Sun Jul 11 23:07:18 2004 +0000 * prelude-getopt-wide.c (read_option_list): set has_arg within prelude-option. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3921 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt-wide.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit af40cdfbe138dff6a1b3159c48e96113f59fe4d6 Author: Yoann Vandoorselaere Date: Sun Jul 11 17:16:36 2004 +0000 Port to prelude-getopt API change. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3920 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a6f115256719a7ecd62379d045e00916d76049b9 Author: Yoann Vandoorselaere Date: Sun Jul 11 17:16:20 2004 +0000 remove deprecated prelude_optlist_t. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3919 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 130 ++++++++++++++++++++------------------------------- 1 file changed, 50 insertions(+), 80 deletions(-) commit aa84bd68d87832a30d0c20877d3960f49f3a3183 Author: Nicolas Delon Date: Sun Jul 11 16:46:00 2004 +0000 bind admin console functionnality in python git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3918 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 66 +- bindings/perl/Prelude.c | 2908 ++++++++++++++++++++++++++++++++++--- bindings/python/_prelude.c | 2177 +++++++++++++++++++++++---- bindings/python/prelude.py | 116 +- src/include/prelude-getopt-wide.h | 5 - src/include/prelude-getopt.h | 6 +- src/prelude-client.c | 6 +- src/prelude-getopt.c | 14 + 8 files changed, 4779 insertions(+), 519 deletions(-) commit 12d50f7f9fc70425b885eaaca325a24f83f7b86f Author: Yoann Vandoorselaere Date: Sun Jul 11 14:26:06 2004 +0000 Fix crash occruing when adding a test for a NULL value. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3917 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 14799242fea975f3e6c1ff92e7ea9cdad72915db Author: Yoann Vandoorselaere Date: Sun Jul 11 14:15:35 2004 +0000 reset errno to 0 after logging. Don't log the error if errno is 0. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3916 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-log.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit cef512f729f0666c906f28a1bdd99d7bc1e42e14 Author: Yoann Vandoorselaere Date: Sun Jul 11 14:12:36 2004 +0000 Fix error handling in case where the connection break while we just reconnected and are flushing the failover. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3915 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 60 +++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 31 deletions(-) commit c78fff02019d816e4a622f697861664c18f73b10 Author: Yoann Vandoorselaere Date: Sun Jul 11 01:16:04 2004 +0000 Fix argument parsing when the value contain a dot. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3914 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt-wide.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) commit 67a87789ffee688916eb3477e40df25ec28bded0 Author: Yoann Vandoorselaere Date: Sat Jul 10 23:29:05 2004 +0000 * tls-auth.c (tls_auth_connection):(read_auth_result): new function, read authentication result sent by the manager. This is needed because the TLS handshake might not fail, but the certificate verification could. In this case, we would not notice the connection closure. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3913 09c5ec92-17d4-0310-903a-819935f44dba src/tls-auth.c | 47 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 4 deletions(-) commit c47397609dda2d15e9416856165059eb5d8ca4ea Author: Yoann Vandoorselaere Date: Sat Jul 10 23:13:28 2004 +0000 Implemented handling of non blocking write in prelude-message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3909 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message.c | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) commit 1be41454f2993b2fe3185082bd3b522901cdbf89 Author: Yoann Vandoorselaere Date: Sat Jul 10 23:11:13 2004 +0000 Fix duplicate error checking. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3908 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 3 --- 1 file changed, 3 deletions(-) commit 1c5e4945397bcf953098ed06d877b93ab87c597c Author: Yoann Vandoorselaere Date: Sat Jul 10 23:09:26 2004 +0000 Fix a bug introduced in the latest 'instance' rework, where plugin with activation option settable both from prelude-getopt and the outside would not work. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3907 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 73e41646665200503731f1e53c28c09352354076 Author: Yoann Vandoorselaere Date: Sat Jul 10 23:05:01 2004 +0000 Don't handle EAGAIN on write() anymore, as we want the possibility to use this for non blocking operation. Check for TLS alert as well. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3906 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) commit 86660f187aa0a4f552ddd41c492a9305472ea0b4 Author: Yoann Vandoorselaere Date: Sat Jul 10 16:34:27 2004 +0000 prelude_get_file_name_and_path() should work for most of the case now. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3905 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) commit dceaad4ca22d82810d34a9bbba5aee1af11ea7d6 Author: Yoann Vandoorselaere Date: Sat Jul 10 16:08:17 2004 +0000 * prelude-failover.c (prelude_failover_new): fix directory permission. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3904 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 45f1fb4207033ef553b7ee1ae40ae73a1b73e804 Author: Yoann Vandoorselaere Date: Sat Jul 10 09:40:36 2004 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3901 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-message-id.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 98c456e2af9d47f69bcd43e65da438f295a175bd Author: Yoann Vandoorselaere Date: Sat Jul 10 09:39:15 2004 +0000 Send option flags. The frontend might want to know wether a given option have multiple instance git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3900 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt-wide.c | 14 +++++++++++--- src/prelude-getopt.c | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) commit 127cb227c355edc74fe0c27e2c540cf8f5b2c503 Author: Yoann Vandoorselaere Date: Fri Jul 9 14:20:18 2004 +0000 fix an invalid pointer dereference git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3897 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 365c8c1ff094a03918a9bd3b803d9ab0e029990d Author: Yoann Vandoorselaere Date: Fri Jul 9 13:57:30 2004 +0000 remove debugging spew git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3893 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 2 -- 1 file changed, 2 deletions(-) commit 07a1c631f72aeb24f5d0b594f79c9fbe25875d7c Author: Yoann Vandoorselaere Date: Fri Jul 9 13:54:51 2004 +0000 * prelude-getopt.c: move part of the plugin instance handling here. This both simplify the code a lot, avoiding ugly hack in plugin-init.c, and allow the admin console to deal with instance. Finalized the option wide API. Also, make the callback API more sane. * prelude-getopt-wide.c: finalize the option wide API. * prelude-plugin.c: move part of the instance work out of this, as this is now handled through prelude-getopt. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3892 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-getopt-wide.h | 4 + src/include/prelude-getopt.h | 23 ++-- src/include/prelude-message-id.h | 1 + src/include/prelude-plugin.h | 10 +- src/prelude-client.c | 61 +++++----- src/prelude-getopt-wide.c | 233 ++++++++++++++++++------------------- src/prelude-getopt.c | 234 +++++++++++++++++++++++++++++--------- src/prelude-io.c | 4 +- src/prelude-plugin.c | 192 ++++++------------------------- 9 files changed, 387 insertions(+), 375 deletions(-) commit d400386948a22f92f30b96abcf4b049f64919fe5 Author: Yoann Vandoorselaere Date: Thu Jul 8 10:56:30 2004 +0000 * prelude-getopt.c: make prelude_option_t a PRELUDE_LINKED_OBJECT. (prelude_option_get_optlist): implemented. Return option own optlist. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3890 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-getopt.h | 1 + src/prelude-getopt.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) commit 85fe83264906e3fa31fd217b6adc374b450b7a3d Author: Yoann Vandoorselaere Date: Thu Jul 8 08:38:32 2004 +0000 Fix leak on error return git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3887 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 0c0df1062854a6dafaab024fada9199e41e4f5e1 Author: Yoann Vandoorselaere Date: Thu Jul 8 08:37:50 2004 +0000 * prelude-getopt-wide.c (read_option_request): no need to dup the message buffer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3886 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt-wide.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 5408b3b2897564d3ca857186d07a44cf78780a22 Author: Yoann Vandoorselaere Date: Thu Jul 8 08:37:04 2004 +0000 * tls-util.c (tls_certificates_load): unmap the TLS file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3885 09c5ec92-17d4-0310-903a-819935f44dba src/tls-util.c | 2 ++ 1 file changed, 2 insertions(+) commit 48000437ef6e937e164292131097ecde08450ec7 Author: Yoann Vandoorselaere Date: Thu Jul 8 07:41:26 2004 +0000 * common.c (prelude_get_file_name_and_path): use find_absolute_path() if needed. (find_absolute_path): implemented, try to find our binary in the PATH environement variable. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3884 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 54 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 10 deletions(-) commit f3282a38515d447bf49d0adb77a5754a31d774de Author: Yoann Vandoorselaere Date: Wed Jul 7 20:33:45 2004 +0000 Fix SEGV in case the analyzer is not started with an absolute path. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3883 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 875e85778017e426959fd1612a12bf24c16a4474 Author: Yoann Vandoorselaere Date: Wed Jul 7 20:03:29 2004 +0000 Remove broken inclusion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3882 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 1 - 1 file changed, 1 deletion(-) commit 92171f569292d2182f8b7db227cf6b1697fcea8b Author: Yoann Vandoorselaere Date: Wed Jul 7 19:26:36 2004 +0000 * prelude-getopt.c: remove static configuration message generation. (prelude_option_invoke_get): (prelude_option_invoke_set): take a context argument. (prelude_option_get_value): (prelude_option_set_value): (prelude_option_get_get_callback): (prelude_option_set_get_callback): implemented. (construct_option_msg): dynamically construct the message, including current option value. (prelude_option_wide_send_msg): implemented. construct the wide option message and send it to the specified msgbuf. * prelude-connection-mgr.c (prelude_connection_mgr_add_connection): fix this function, broken by last big prelude-connection-mgr change. (new_connection): only init timer if use_timer is set. (process_request): handle prelude wide option API change. Correct error handling. * prelude-getopt-wide.c: complete API rework. Should be usable by any kind of frontend now. * prelude-connection.c (prelude_connection_set_fd): don't leak the existing fd. (prelude_connection_destroy): only destroy the fd if we own it. (prelude_connection_connect): call prelude_client_ident_send(). Don't send the wide option message here, as this is now done uppon request. * prelude-plugin.c: Implement basic support for get() instance interception. This is not working yet. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3880 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 2 + src/include/prelude-getopt-wide.h | 19 ++-- src/include/prelude-getopt.h | 18 ++- src/include/prelude-message-id.h | 14 +-- src/prelude-connection-mgr.c | 57 ++++++---- src/prelude-connection.c | 28 +++-- src/prelude-getopt-wide.c | 233 ++++++++++++++++++-------------------- src/prelude-getopt.c | 122 ++++++++++---------- src/prelude-plugin.c | 25 +++- 9 files changed, 262 insertions(+), 256 deletions(-) commit 217600f8719314555d6e1473fc40226cf6a85c01 Author: Yoann Vandoorselaere Date: Wed Jul 7 19:10:23 2004 +0000 When recycling a prelude_msg_t, only reset the read index if this prelude_msg_t is used for reading. Fix an invalid free. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3879 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 40088c8fe0a509d4f6074792227bbd01bf6795b5 Author: Yoann Vandoorselaere Date: Wed Jul 7 19:05:40 2004 +0000 New prelude_client_set_manager_list(). This was the missing piece to allow the client to get complete control over how it want to handle send/recv to the server. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3878 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 68746768c89a77bf50e2722f138900182118ee25 Author: Yoann Vandoorselaere Date: Wed Jul 7 17:17:29 2004 +0000 minor macro fix git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3877 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-string.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 04cfda974d7e4fa168bcfc540b9d4f4fce1a8acc Author: Yoann Vandoorselaere Date: Wed Jul 7 17:16:44 2004 +0000 Make expire a 32 bit integer... 16 might be too short in some case. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3876 09c5ec92-17d4-0310-903a-819935f44dba src/include/timer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6a29c6ab9c9c5bb72e267eb087454893acb2a112 Author: Yoann Vandoorselaere Date: Wed Jul 7 17:14:01 2004 +0000 * prelude-client.c (prelude_client_init): (fill_client_infos): handle case where argv is NULL. (get_heartbeat_interval): implemented. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3875 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) commit f5c1b9e9bbfb5384df6a7caa26e99450f9747c02 Author: Yoann Vandoorselaere Date: Wed Jul 7 17:10:50 2004 +0000 Implement refcount support for idmef_message_t git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3874 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-message.c | 7 +++++++ src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 10 +++++++++- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-tree-data.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 4 +++- src/include/idmef-tree.h | 3 ++- 14 files changed, 31 insertions(+), 13 deletions(-) commit db1649a28e7b81d8b0376d671aa50573628f5bc9 Author: Yoann Vandoorselaere Date: Wed Jul 7 05:19:14 2004 +0000 * prelude-message.c (prelude_msg_is_empty): consider header_index. (prelude_msg_recycle): make this work too to re-read a message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3873 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit acfb3c245baa9d4e350ea32ecf9d4cffd288dd5d Author: Yoann Vandoorselaere Date: Mon Jul 5 23:47:28 2004 +0000 * prelude-client.c (heartbeat_expire_cb): attach analyzer status, analyzer md5sum, analyzer heartbeat-interval to the heartbeat additional data. Fix bugs #38 and #39. (add_hb_data): new helper function, to add data to an IDMEF heartbeat. (generate_md5sum): new function, generate an md5sum from filename. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3872 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 87 insertions(+), 3 deletions(-) commit e071d6174d9afff72385456034dd3352e19b41fb Author: Yoann Vandoorselaere Date: Fri Jul 2 13:53:16 2004 +0000 * dev/prelude/svn/trunk/libprelude/prelude-adduser/prelude-adduser.c (register_sensor_ident): fchown the analyzerID file to the client uid & gid. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3868 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/prelude-adduser.c | 4 ++++ 1 file changed, 4 insertions(+) commit 667e1278bd00d5d337bfccdcf44330e71f219dcb Author: Yoann Vandoorselaere Date: Tue Jun 29 14:44:24 2004 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3866 09c5ec92-17d4-0310-903a-819935f44dba src/include/common.h | 2 ++ 1 file changed, 2 insertions(+) commit b5b3d43bf1658173fd143ccf59633b7685321c41 Author: Yoann Vandoorselaere Date: Tue Jun 29 14:42:43 2004 +0000 * idmef-time.c (my_timegm): use putenv instead of setenv/unsetenv which are not available under solaris. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3865 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit 5f7e3a3329d43422b1176c85970dd646ffda309a Author: Yoann Vandoorselaere Date: Tue Jun 29 14:35:13 2004 +0000 * common.c (prelude_strsep): implemented. strsep() isn't portable. * config-engine.c (parse_buffer): use prelude_strsep(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3864 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 23 +++++++++++++++++++++++ src/config-engine.c | 4 ++-- 2 files changed, 25 insertions(+), 2 deletions(-) commit 4ad7bae9dc74495ed31c7a2ca4f0f4392fb5f41c Author: Yoann Vandoorselaere Date: Tue Jun 29 14:01:21 2004 +0000 oops. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3863 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-inet.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 36f82ecff5dcca992adb7df087b5eb414ca9b06b Author: Yoann Vandoorselaere Date: Tue Jun 29 13:55:42 2004 +0000 Don't include config.h here, use gcc defined CFLAGS. Define AI_CANONNAME if it is undefined and MISSING_GETADDRINFO is set. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3862 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-inet.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit f597a6b800a97160f903039f9d43c1960734a24f Author: Yoann Vandoorselaere Date: Tue Jun 29 13:34:54 2004 +0000 Fix a compilation issue git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3861 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ca80d92c06606a894e273f2f84c12910701f9cfe Author: Yoann Vandoorselaere Date: Tue Jun 29 13:26:56 2004 +0000 re-ordered include file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3860 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6ab7b6e804d984990dbac40625f9b13f500cd417 Author: Yoann Vandoorselaere Date: Tue Jun 29 13:16:35 2004 +0000 * configure.in: check wether is available. * prelude-io.c: include if available. (sys_pending): revert to using FIONREAD, not TIOCINQ. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3858 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 4 ++++ src/prelude-io.c | 15 +++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) commit deb6a0c0ec88e076dc308692d5f42d886450adc5 Author: Yoann Vandoorselaere Date: Tue Jun 29 13:05:19 2004 +0000 * timer.c (timer_unlock_critical_region): don't lock/unlock the mutex directly, rather, do it through timer_lock_list() / timer_unlock_list() so that we don't try to lock the mutex if we're not using asynchronous timer. * prelude-async.c (get_elapsed_time): async_flags is 0 by default. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3857 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 2 -- 1 file changed, 2 deletions(-) commit 4935efb2eadfc2276497affd2d5bf1b080206c51 Author: Yoann Vandoorselaere Date: Tue Jun 29 12:40:33 2004 +0000 * dev/prelude/svn/trunk/libprelude/configure.in: set CFLAGS before calling AC_CHECK_HEADER(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3856 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 4 ++++ prelude-adduser/Makefile.am | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit e61245cad15f87db5d8f02e59b5f8477e30d16a7 Author: Nicolas Delon Date: Tue Jun 29 08:08:28 2004 +0000 * global.conf.in: fix bad section name * bindings/python/_prelude.c: * bindings/perl/Prelude.c: bug fix, regenerate bindings, they were not synced anymore git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3853 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 10741 ++++++++++++++++++++++++++----------------- bindings/python/_prelude.c | 386 +- global.conf.in | 2 +- 3 files changed, 6656 insertions(+), 4473 deletions(-) commit c298bc45decb45cc016fef06cd50dba1581b3137 Author: Yoann Vandoorselaere Date: Mon Jun 28 17:35:53 2004 +0000 * timer.c (timer_unlock_critical_region): don't lock/unlock the mutex directly, rather, do it through timer_lock_list() / timer_unlock_list() so that we don't try to lock the mutex if we're not using asynchronous timer. * prelude-async.c (get_elapsed_time): async_flags is 0 by default. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3848 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 2 +- src/timer.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 7f8b8725a8cea7ddbfb8f2826ca0d8922abf365f Author: Yoann Vandoorselaere Date: Mon Jun 28 17:27:52 2004 +0000 - Rework of the way we handle TLS, so that relaying work again. - Don't set the analyzer name in the certificate DN, as this will generate confusion in case an analyzer rename is done. Only store the analyzerID as the common name, and avoid using the Dn Qualifier attribute, which is only supported in late GnuTLS version. - Avoid prelude-adduser question about generated key size and certificate expiration time, and use a configuration file to gather theses value. Make it then possible to use prelude-adduser in batch mode. - Better TLS file hierarchy. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3846 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 23 ++- prelude-adduser/Makefile.am | 3 +- prelude-adduser/prelude-adduser.c | 163 +++++++++++++++--- prelude-adduser/server.c | 13 +- prelude-adduser/server.h | 2 +- prelude-adduser/tls-register.c | 343 ++++++++++++++++++++------------------ prelude-adduser/tls-register.h | 14 +- src/include/prelude-client.h | 12 +- src/include/tls-util.h | 2 +- src/prelude-client.c | 71 ++++++-- src/tls-auth.c | 26 ++- src/tls-util.c | 44 +++-- tls.conf | 22 +++ 13 files changed, 479 insertions(+), 259 deletions(-) commit 31fc9eb75013287dd3aca2298c40f61ed4bc8a5f Author: Yoann Vandoorselaere Date: Mon Jun 28 17:19:46 2004 +0000 New --prelude-config-prefix option, returning the path where global Prelude configuration is installed. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3845 09c5ec92-17d4-0310-903a-819935f44dba libprelude-config.in | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 623c6373b07256750faef89c26802198cab5054c Author: Yoann Vandoorselaere Date: Mon Jun 28 17:17:54 2004 +0000 Ignore error and continue walking the configuration file til we get the wanted entry. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3844 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 6dd5c2065d5937cf3988984f1b1650da78ee8880 Author: Yoann Vandoorselaere Date: Mon Jun 28 13:43:53 2004 +0000 When a parent option is specified for argument parsing, backup the parent option list pointer before modifying them, and restore them once we're done so that we don't crash on prelude_option_destroy(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3842 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 709db906ab8cbccd1bbbd77d9f680bffa8aa0440 Author: Yoann Vandoorselaere Date: Fri Jun 25 16:30:16 2004 +0000 * prelude-client.c (prelude_client_init): call tls_auth_init only after we know the definitive analyzer name. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3834 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e4ea48f5b6fd0430b977c311a9087c71c8f86e9c Author: Yoann Vandoorselaere Date: Fri Jun 25 13:54:31 2004 +0000 regenerated bindings git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3829 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 10778 ++++++++++++++++++------------------------- bindings/python/_prelude.c | 457 +- 2 files changed, 4834 insertions(+), 6401 deletions(-) commit 98ea54766f1f77a50e79ea42427857ef64b8ba60 Author: Yoann Vandoorselaere Date: Fri Jun 25 13:53:57 2004 +0000 * tls-auth.c (tls_auth_init): avoid error in case this function is called by a manager which might not have a trusted cert file. * tls-util.c: simplify the way we handle associating certificate with key. This code is necessary because we don't want to handle certificate chains. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3828 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 8 +++ src/include/tls-auth.h | 4 +- src/include/tls-util.h | 4 +- src/prelude-client.c | 16 +++++- src/prelude-connection.c | 9 ++-- src/tls-auth.c | 117 ++++++++++++++-------------------------- src/tls-util.c | 126 +++++++++++++++++-------------------------- 7 files changed, 123 insertions(+), 161 deletions(-) commit a216f787bd36099e5e27a56bb3af885614b54acd Author: Yoann Vandoorselaere Date: Fri Jun 25 09:07:49 2004 +0000 Applied patch from Rodolphe Ortalo : Apparently, in order to build and install the latest libprelude an libpreludedb from a _separate_ build directory (as in: cd libprelude && mkdir build && cd build && ../configure && make) one needs to apply the following modifications to some Makefile.am: see attached patches. Note the distinction between $(top_srcdir), $(top_builddir), $(srcdir) and . [$(builddir) in fact] in automake. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3825 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 +- bindings/perl/Makefile.am | 5 +++-- bindings/python/Makefile.am | 5 +++-- 3 files changed, 7 insertions(+), 5 deletions(-) commit 3e5a205c15aa0ba00fe487bd9ac8d57e1eea0b32 Author: Yoann Vandoorselaere Date: Fri Jun 25 02:16:03 2004 +0000 * prelude-connection-mgr.c (prelude_connection_mgr_broadcast): remove duplicate warning. (connection_timer_expire): reset timer expiration time to it's initial value once the connection is established again. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3824 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) commit b67aec8fd7aa4ef75f0587d2a5cf9c21f1806327 Author: Yoann Vandoorselaere Date: Fri Jun 25 01:38:18 2004 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3822 09c5ec92-17d4-0310-903a-819935f44dba prelude-adduser/server.c | 301 +++++++++++++++++++++++++++++++++++++++++++++++ prelude-adduser/server.h | 2 + 2 files changed, 303 insertions(+) commit 6a49e2743cf9bdc99e26d1004208e4f3dd1e2daa Author: Yoann Vandoorselaere Date: Fri Jun 25 01:37:22 2004 +0000 Forgot theses in the GnuTLS big commit git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3821 09c5ec92-17d4-0310-903a-819935f44dba src/include/tls-auth.h | 29 ++++++++ src/include/tls-util.h | 35 +++++++++ src/tls-auth.c | 198 +++++++++++++++++++++++++++++++++++++++++++++++++ src/tls-util.c | 187 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 449 insertions(+) commit 30a67a9a4547bc6b1e3079bccd334818a725c5a3 Author: Yoann Vandoorselaere Date: Fri Jun 25 01:36:14 2004 +0000 Implemented prelude_strnstr function. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3820 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 28 ++++++++++++++++++++++++++++ src/include/common.h | 2 ++ 2 files changed, 30 insertions(+) commit 4ca9460d3f9c7bc5ec27f782e1e5b5215673dcf5 Author: Yoann Vandoorselaere Date: Thu Jun 24 23:16:22 2004 +0000 fix structure naming conflict. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3819 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-connection.h | 2 +- src/prelude-connection.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 1fb12f71c7fb6bd67880cdf8b24b26acfa437bf2 Author: Yoann Vandoorselaere Date: Thu Jun 24 23:13:53 2004 +0000 * prelude-getopt.c (call_option_cb): don't check if the set callback is NULL here, we have to respect the order of option call even if this is a 'placebo' parent option. (call_option_from_cb_list): check that the set callback is set before calling it here. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3818 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit dfd1735060006253550850544bab2d15b73b0252 Author: Yoann Vandoorselaere Date: Thu Jun 24 21:46:18 2004 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3813 09c5ec92-17d4-0310-903a-819935f44dba src/include/ssl-settings.h | 29 ----------------------------- src/include/ssl.h | 34 ---------------------------------- 2 files changed, 63 deletions(-) commit 6a2746826a052d7e62c7bde241c92229d1af5975 Author: Yoann Vandoorselaere Date: Thu Jun 24 21:41:22 2004 +0000 Replace OpenSSL in favor of GnuTLS, this fix: - OpenSSL licensing problem. - potential OpenSSL dual licensing incompatibility. - GnuTLS API is cleaner in my taste. - GnuTLS security background is much better. Complete overhaul of the certificate handling infrastructure, things are much cleaner, and much more safe now. Authentication is always ciphered, and the encryption layer is dropped if UNIX connection are used. manager-adduser / sensor-adduser are now obsoleted and replaced by a brand new tool called prelude-adduser handling the whole thing. The certificate exchange is now done using SRP, and through a certificate request. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3812 09c5ec92-17d4-0310-903a-819935f44dba COPYING.OpenSSL | 127 ------- Makefile.am | 8 +- acinclude.m4 | 138 +++++++ configure.in | 27 +- prelude-adduser/Makefile.am | 14 + prelude-adduser/plaintext.c | 109 ++++++ prelude-adduser/prelude-adduser.c | 713 +++++++++++++++++++++++++++++++++++++ prelude-adduser/tls-register.c | 601 +++++++++++++++++++++++++++++++ prelude-adduser/tls-register.h | 29 ++ sensor-adduser/Makefile.am | 18 - sensor-adduser/plaintext.c | 109 ------ sensor-adduser/plaintext.h | 1 - sensor-adduser/sensor-adduser.c | 539 ---------------------------- sensor-adduser/ssl-register.c | 261 -------------- sensor-adduser/ssl-register.h | 2 - src/Makefile.am | 13 +- src/client-ident.c | 54 +-- src/include/Makefile.am | 6 +- src/include/prelude-auth.h | 46 --- src/include/prelude-client.h | 11 +- src/include/prelude-io.h | 2 +- src/include/ssl-gencrypto.h | 30 -- src/include/ssl-registration-msg.h | 68 ---- src/prelude-auth.c | 599 ------------------------------- src/prelude-client.c | 104 +++++- src/prelude-connection.c | 257 +------------ src/prelude-io.c | 123 ++----- src/ssl-gencrypto.c | 415 --------------------- src/ssl-registration-msg.c | 308 ---------------- src/ssl-settings.c | 93 ----- src/ssl.c | 162 --------- 31 files changed, 1793 insertions(+), 3194 deletions(-) commit 728aeebd92c48e141d0ba85772cc9781815d266c Author: Yoann Vandoorselaere Date: Thu Jun 24 21:37:22 2004 +0000 remove unused function git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3811 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-failover.h | 2 -- 1 file changed, 2 deletions(-) commit d0ea508c6ef02f617489f2159d17ce0ac5e81dce Author: Yoann Vandoorselaere Date: Thu Jun 24 21:36:52 2004 +0000 remove unused function git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3810 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 31 ------------------------------- 1 file changed, 31 deletions(-) commit 5441bee3ab05cf9a5366b2af1a9ad08a645b07b6 Author: Yoann Vandoorselaere Date: Thu Jun 24 21:35:58 2004 +0000 remove unused function git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3809 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) commit 5f8048e1e2a815e105d912ba789c2fcd277c0662 Author: Yoann Vandoorselaere Date: Thu Jun 24 21:33:04 2004 +0000 call walk_children if the parent option is a placebo. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3808 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dc4129cf027f435303e923d7fac01a2c87eae321 Author: Yoann Vandoorselaere Date: Thu Jun 24 21:32:02 2004 +0000 Include stdarg.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3807 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-strbuf.h | 2 ++ 1 file changed, 2 insertions(+) commit ffd57058da2c485d1637752ff8a04bfe3bc1ae4a Author: Nicolas Delon Date: Thu Jun 24 12:11:27 2004 +0000 * src/idmef-criteria-string.yac.y: fix a bug that made bison accessing a freed memory zone * src/idmef-criteria-string.yac.c: * src/idmef-criteria-string.yac.h: * src/idmef-criteria-string.lex.c: regenerated git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3804 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.c | 1329 ++++++++++++++++++++++----------------- src/idmef-criteria-string.yac.c | 1273 ++++++++++++++++++++----------------- src/idmef-criteria-string.yac.h | 90 ++- src/idmef-criteria-string.yac.y | 22 +- 4 files changed, 1500 insertions(+), 1214 deletions(-) commit e3facc6b200ef6ad98657a937206d9d364aa3324 Author: Nicolas Delon Date: Thu Jun 24 07:49:59 2004 +0000 * src/idmef-time.c: functions that convert time into string must return the number of bytes written and not 0 (idmef_time_get_idmef_timestamp) bug fix, follow the previous statement and fix usage of len instead of ret git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3803 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit fa68b7c790c398e5b4be5d27c3f2f8920f1ad090 Author: Yoann Vandoorselaere Date: Mon Jun 21 14:41:23 2004 +0000 oops... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3788 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 430afba23aa964c352ec4c10dbf775c6c143472f Author: Yoann Vandoorselaere Date: Mon Jun 21 14:16:04 2004 +0000 * prelude-connection-mgr.c (process_request): don't treat option setting error as regular error. (check_for_data_cb): in case an error happen while processing an option request, remove the connection from our polling set. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3787 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit 6f8e1b6e0f8ac14123f780f18528af826aaa915f Author: Yoann Vandoorselaere Date: Tue Jun 15 23:27:29 2004 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3784 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-log.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a60352604c6d817b6f2492c35518c9c111ba910f Author: Yoann Vandoorselaere Date: Tue Jun 15 23:26:27 2004 +0000 * prelude-connection.c: Keep the same prelude_io object accross disconnection. (do_connect): output more information about the connection. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3783 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) commit f16c0845aed063530a63cd1393cbc29e312afce4 Author: Yoann Vandoorselaere Date: Tue Jun 15 16:28:36 2004 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3781 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm | 5 +++-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) commit a21c8358b9fe9c2ce1b89d86bc8928e5cc26281d Author: Yoann Vandoorselaere Date: Tue Jun 15 16:28:19 2004 +0000 * idmef-time.c (idmef_time_get_idmef_timestamp): include GMT offset. Rework the function. * idmef-wrappers-gen/GenerateIDMEFMessageReadC.pm: use extraction function, not ntohl which doesn't take care of alignement issue. Extract gmt_offset. * idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm (header): take care of gmt_offset, converting it to network byte order. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3780 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | 7 +++--- src/idmef-message-write.c | 4 ++- src/idmef-time.c | 63 ++++++++++++++++++----------------------------- src/include/idmef-time.h | 6 ++--- 4 files changed, 34 insertions(+), 46 deletions(-) commit 45060a45b303c64ae8e2b8fa08578690c4c8a936 Author: Yoann Vandoorselaere Date: Tue Jun 15 15:16:48 2004 +0000 * idmef-time.c (idmef_time_get_gmtoff): (idmef_time_set_gmtoff): implemented. (idmef_time_new_gettimeofday): store the gmt offset in the idmef-time structure. (idmef_time_set_db_timestamp): take care of the gmt offset. (idmef_time_get_db_timestamp): stop using strftime. Use snprintf, and generate the timestamp buffer, including the gmt offset now available in the idmef-time structure. (idmef_time_set_ntp_timestamp): fix a warning. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3779 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-time.c | 87 ++++++++++++++++++++++++++---------------------- src/include/idmef-time.h | 3 ++ 2 files changed, 51 insertions(+), 39 deletions(-) commit f029a3e97def383ef6c4981454f405853c0b4d46 Author: Yoann Vandoorselaere Date: Tue Jun 15 10:46:14 2004 +0000 oops git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3777 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 1 - 1 file changed, 1 deletion(-) commit f960091522a4753649d961403f11083e1b3317d2 Author: Yoann Vandoorselaere Date: Tue Jun 15 10:39:03 2004 +0000 * prelude-message.c (prelude_msg_get_time): return the timeval, for API usability purpose. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3776 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-message.h | 2 +- src/prelude-message.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) commit a4959709b18109747ece6f66b0986ef8ba7c9a63 Author: Yoann Vandoorselaere Date: Tue Jun 15 10:31:25 2004 +0000 * prelude-connection-mgr.c: Clean things up. Use the new prelude-failover implementation. Be more consistent when sending alert to a AND/OR of Manager, example with A && B || C && D: - if A and B are not both known to be dead: - send or backup to A [if send fail backup for A] - send or backup to B [if send fail backup for B] - else if C and D are not both known to be dead: - send or backup to C [if send fail backup for C] - send or backup to D [if send fail backup for D] - else if everything is known to be dead: - backup to the global failover, and flush to the first pair of manager to be available. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3775 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 643 ++++++++++++++++++++----------------------- 1 file changed, 294 insertions(+), 349 deletions(-) commit d38e04da9b1f9af67c49fdc968b4791310c91fa2 Author: Yoann Vandoorselaere Date: Tue Jun 15 10:16:32 2004 +0000 * prelude-failover.c (prelude_failover_get_saved_msg): delete the previously failed over file. This way, if the caller fail after a call to this function, the backup won't be lost. (get_current_directory_index): Initial index is 1 (0 is unused). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3774 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-failover.c | 88 ++++++++++++++++++++++---------------------------- 1 file changed, 39 insertions(+), 49 deletions(-) commit ab17ce8731c08eded3e2ef9d9e08734cf3610e8a Author: Nicolas Delon Date: Mon Jun 14 14:11:32 2004 +0000 fit function renaming git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3766 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f395c003b23ea806a6c7b95ec0d0a324f25c8700 Author: Yoann Vandoorselaere Date: Mon Jun 14 13:43:12 2004 +0000 Fit function renaming git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3765 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a779aebb316428008a37953094972801da9b44bb Author: Yoann Vandoorselaere Date: Sun Jun 13 23:21:59 2004 +0000 * prelude-message.c (prelude_msg_t): modified the message header format so that it include a timestamp, this timestamp will be used to set analyzer_time when the message is received. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3760 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-message.h | 2 ++ src/prelude-message.c | 31 ++++++++++++++++++++++++++----- 2 files changed, 28 insertions(+), 5 deletions(-) commit b5f4c5fe8ac83dd90cc997b9f48a0c82549df0d7 Author: Yoann Vandoorselaere Date: Sun Jun 13 21:48:14 2004 +0000 * prelude-client.c (prelude_client_new): allocate the analyzer here not in prelude_client_init(), so that the user can fill it's own data in the analyzer structure before it get initialy sent by prelude_client_init(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3756 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit ccabd77e7b4147053176ab7177f98121d4574f2e Author: Yoann Vandoorselaere Date: Sun Jun 13 21:43:53 2004 +0000 * prelude-client.c (prelude_client_init): call timer_init with the default timer setup before calling prelude_option_parse_arguments(), as if --heartbeat-interval is used, it will have to reset the timer, which need to be initialized. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3755 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 5268b8b26adc451f45baa512eec1f72d107401da Author: Yoann Vandoorselaere Date: Sun Jun 13 21:23:33 2004 +0000 * prelude-failover.c (prelude_failover_new): create the directory if it doesn't exist. (prelude_failover_get_available_msg_count): (prelude_failover_get_deleted_msg_count): (prelude_failover_set_quota): (prelude_failover_get_saved_msg): implemented. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3754 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-failover.h | 12 ++++++-- src/prelude-failover.c | 65 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 71 insertions(+), 6 deletions(-) commit ca800c3789bf2204fba17f0c0b389f186564632e Author: Yoann Vandoorselaere Date: Sun Jun 13 16:55:07 2004 +0000 * prelude-getopt.c: implemented prelude-getopt ability to check for a single option, not only it's children option. * prelude-client.c (setup_options): removed the hack used to check a single option, use correct prelude-getopt function now that it implement it. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3753 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 20 ++++---------- src/prelude-getopt.c | 75 ++++++++++++++++++++++++++++++++-------------------- 2 files changed, 51 insertions(+), 44 deletions(-) commit 3405f547dc4019c8634dc3cc5265dc02a26d966d Author: Yoann Vandoorselaere Date: Sun Jun 13 16:53:07 2004 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3752 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-message.h | 3 +++ 1 file changed, 3 insertions(+) commit 186038b24797477a7d26887a6fb99ed0d887fe8b Author: Yoann Vandoorselaere Date: Sun Jun 13 16:50:00 2004 +0000 * idmef-message.c (idmef_message_get_pmsg): implemented. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3751 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message.c | 7 +++++++ 1 file changed, 7 insertions(+) commit aacfd7398b7b106d7a5b1286edb63f1ee5809077 Author: Nicolas Delon Date: Sun Jun 13 10:36:17 2004 +0000 transform Sensor classes in Client classes, create a convenient Sensor class that inherit the Client class. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3744 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.pm | 37 +++++++++++++++++++----- bindings/python/prelude.py | 71 +++++++++++++++++++++++++++++++--------------- 2 files changed, 78 insertions(+), 30 deletions(-) commit 070f5053aeb7a0f72cb810770d3e67f7c5ad1a50 Author: Nicolas Delon Date: Sat Jun 12 22:55:05 2004 +0000 minor fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3742 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.pm | 8 +++++++- bindings/python/prelude.py | 6 +++++- 2 files changed, 12 insertions(+), 2 deletions(-) commit efd5b2fbee6f2901951e6ed72b93454a4715e880 Author: Nicolas Delon Date: Sat Jun 12 18:24:55 2004 +0000 fit function renaming in idmef-object git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3741 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14baf489c55a7c2f4eca85f2da4d67934dc4e2a9 Author: Nicolas Delon Date: Sat Jun 12 17:06:44 2004 +0000 * src/prelude-client.c: fix dereferencing NULL pointer * bindings/python/_prelude.c: * bindings/python/prelude.py: * bindings/perl/Prelude.c: * bindings/perl/Prelude.pm: * bindings/libprelude.i: * docs/api/examples/python/send_alert.py: * docs/api/examples/perl/send_alert.pl: port the bindings to the new sensor API git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3740 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 106 ----- bindings/perl/Prelude.c | 696 +++++---------------------------- bindings/perl/Prelude.pm | 168 ++++---- bindings/python/_prelude.c | 595 ++++------------------------ bindings/python/prelude.py | 58 ++- docs/api/examples/perl/send_alert.pl | 7 +- docs/api/examples/python/send_alert.py | 12 +- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 3 +- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/prelude-client.c | 2 +- 16 files changed, 348 insertions(+), 1313 deletions(-) commit 6d41b99ddc02c144d980221b0205e07e17ba2987 Author: Yoann Vandoorselaere Date: Sat Jun 12 16:30:41 2004 +0000 * prelude-failover.c: New generic failover implementation to be used by sensor or manager. This implementation also support quota and support transaction (the old implementation would try to resend everything in case of error, even data sent prior the error). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3739 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 1 + src/include/Makefile.am | 1 + src/include/prelude-failover.h | 39 +++++ src/prelude-failover.c | 325 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 366 insertions(+) commit 35966cc67c23100c0ee913e1ced525ad873f5c5d Author: Yoann Vandoorselaere Date: Sat Jun 12 15:30:47 2004 +0000 * include/prelude-client.h (Copyright): add missing copyright header. Fix definition for the header filename. * include/prelude-connection.h: Fix definition for the header filename. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3738 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 27 +++++++++++++++++++++++++-- src/include/prelude-connection.h | 6 +++--- 2 files changed, 28 insertions(+), 5 deletions(-) commit e2a3609046478e227800f0907c2bda380c275f14 Author: Yoann Vandoorselaere Date: Sat Jun 12 15:28:00 2004 +0000 * idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm: remove deprecated sensor.h dependencie. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3737 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-write.c | 3 +-- src/idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) commit f5a6c8ff7f781498684bf021933b08f3e74c37dd Author: Yoann Vandoorselaere Date: Sat Jun 12 15:25:23 2004 +0000 * prelude-message-buffered.c: remove deprecated sensor.h dependencie. (prelude_msgbuf_close): only send msg if it is not NULL and not empty. Never happened, but might be safe, due to the ambiguity of the mark_end function. (prelude_msgbuf_new): don't dereference client if it is NULL. That should never happen, except with client doing very specific things (using it for other sake than sending IDMEF). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3736 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message-buffered.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit b01638c599c2adab7cea92d1dbe55383333907a8 Author: Yoann Vandoorselaere Date: Sat Jun 12 15:20:37 2004 +0000 * prelude-message.c (prelude_msg_get_len): impl. return currently used length in this message. (prelude_msg_is_empty): impl. return true if the message passed as argument is empty. (prelude_msg_is_fragment): impl. return true if the message passed as argument is a fragment of message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3735 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-message.h | 6 ++++++ src/prelude-message.c | 44 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 49 insertions(+), 1 deletion(-) commit 4a40b46dead71ed5c32f0ebba3c4cfacf9df0afc Author: Yoann Vandoorselaere Date: Sat Jun 12 15:14:39 2004 +0000 Remove deprecated. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3734 09c5ec92-17d4-0310-903a-819935f44dba src/include/sensor.h | 49 ----- src/sensor.c | 603 --------------------------------------------------- 2 files changed, 652 deletions(-) commit 30835979ec1fcc0fd8ed41879d7b84f36d9bf435 Author: Yoann Vandoorselaere Date: Sat Jun 12 15:14:04 2004 +0000 * prelude-client.c (prelude_client_new): Initialize UID and GID. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3733 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 ++ 1 file changed, 2 insertions(+) commit 386a599dc27d526c62fc5717c1343aed0f26aeb0 Author: Nicolas Delon Date: Sat Jun 12 11:40:36 2004 +0000 fix possible NULL pointer dereferencing bug git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3732 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 699e1476b1251ea30975a181ec7430eea87e50a2 Author: Yoann Vandoorselaere Date: Fri Jun 11 00:01:54 2004 +0000 * prelude-client.c (prelude_client_init): call the heartbeat callback if it is set, not only if we got a manager list. (heartbeat_expire_cb): even if we use a callback, construct the message ourself and pass it to the callback function and reset the timer anyway. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3727 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client.h | 2 +- src/prelude-client.c | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) commit 3a9cda7ecbc5088870e4acb15306b58de92c4fcc Author: Yoann Vandoorselaere Date: Thu Jun 10 23:18:33 2004 +0000 Fix analyzer-name option provided from configuration file git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3726 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) commit 2c7273b7b0645e6a771b23c7a8821b69e95d19ae Author: Yoann Vandoorselaere Date: Thu Jun 10 23:16:34 2004 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3725 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-getopt.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 1252520f0269782bb1619a26aeecc8c62d8f9b4b Author: Yoann Vandoorselaere Date: Thu Jun 10 23:16:22 2004 +0000 * prelude-getopt.c (call_option_cb): fix priority check. * include/prelude-getopt.h (option_run_first): reassign priority properly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3724 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) commit 57072afdf8252956d9ce5e19bad2e24a81ac14e9 Author: Yoann Vandoorselaere Date: Thu Jun 10 23:15:22 2004 +0000 Remove debugging spew git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3723 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection.c | 4 ---- 1 file changed, 4 deletions(-) commit 2476eba145e72c7ed51fcab3415ded5a77b3e4b4 Author: Yoann Vandoorselaere Date: Thu Jun 10 22:32:06 2004 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3722 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 428b14c05ead978934e553c081b885a9fa715e7e Author: Yoann Vandoorselaere Date: Thu Jun 10 22:08:02 2004 +0000 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3721 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-connection-mgr.c | 11 ----------- 1 file changed, 11 deletions(-) commit f3fb11a3ffd0cf18f057613f9a2b415c148d1043 Author: Yoann Vandoorselaere Date: Thu Jun 10 21:51:45 2004 +0000 * idmef-value.c (idmef_value_get_object_type): renamed from idmef_value_get_idmef_type(). * prelude-getopt.c: When an option is specified both in the configuration file and on the command line merge it. This prevent problem when important operation are done directly in the option callback, like setting the manager address. * prelude-getopt.c: Allow recursive configuration file inclusion, close ticket #22. * prelude-async.c: use pthread_once() to make sure we only initialize once. * idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm: gather the prelude_ident_t object from the prelude_client_t. * prelude-client.c: renamed to prelude-connection.c * prelude-client-mgr.c: renamed to prelude-connection-mgr.c * prelude-client.c: New API replacing sensor.c. No global state are used. This is a big cleanup, and the API is now much more flexible. Close ticket #14. * libmissing: remove deprecated. * sensor-adduser: * prelude-auth.c: take care of the client GID. * prelude-path.c: removed, now done within the prelude-client API. Take care of the client GID, close ticket #21. * common.c (prelude_get_file_name_and_path): restore the buffer. * dev/prelude/svn/trunk/libprelude/client.conf: * dev/prelude/svn/trunk/libprelude/global.conf: splitted sensors-default.conf to two file, this is necessary as option might not be shared between a manager and a sensor. Updated everywhere for the new API. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3717 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 48 +- bindings/perl/Prelude.c | 717 +++++++++----- bindings/python/_prelude.c | 992 ++++++++++++------- client.conf.in | 17 + configure.in | 14 +- global.conf.in | 57 ++ libmissing/Makefile.am | 9 - libmissing/getopt_long.c | 36 - libmissing/getopt_long.h | 46 - libmissing/libmissing.h | 22 - sensor-adduser/Makefile.am | 2 +- sensor-adduser/plaintext.c | 10 +- sensor-adduser/plaintext.h | 2 +- sensor-adduser/sensor-adduser.c | 81 +- sensor-adduser/ssl-register.c | 23 +- sensor-adduser/ssl-register.h | 3 +- sensors-default.conf | 68 -- src/Makefile.am | 7 +- src/client-ident.c | 70 +- src/common.c | 12 +- src/config-engine.c | 3 +- src/idmef-message-write.c | 11 +- src/idmef-object.c | 8 +- src/idmef-value-object.c | 2 +- src/idmef-value-type.c | 4 + src/idmef-value.c | 4 +- .../GenerateIDMEFMessageWriteC.pm | 9 +- .../GenerateIDMEFMessageWriteH.pm | 3 + src/include/Makefile.am | 5 +- src/include/client-ident.h | 8 +- src/include/idmef-message-write.h | 5 +- src/include/idmef-object.h | 2 +- src/include/idmef-value-type.h | 4 +- src/include/idmef-value.h | 2 +- src/include/prelude-async.h | 4 +- src/include/prelude-auth.h | 4 +- src/include/prelude-client-mgr.h | 56 -- src/include/prelude-client.h | 101 +- src/include/prelude-connection-mgr.h | 57 ++ src/include/prelude-connection.h | 73 ++ src/include/prelude-getopt-wide.h | 4 +- src/include/prelude-getopt.h | 8 +- src/include/prelude-ident.h | 2 + src/include/prelude-message-buffered.h | 7 +- src/include/prelude-message-id.h | 2 +- src/include/prelude-path.h | 48 - src/include/ssl-gencrypto.h | 3 +- src/include/ssl.h | 5 +- src/prelude-async.c | 36 +- src/prelude-auth.c | 16 +- src/prelude-client-mgr.c | 1016 ------------------- src/prelude-client.c | 1010 ++++++++----------- src/prelude-connection-mgr.c | 1026 ++++++++++++++++++++ src/prelude-connection.c | 867 +++++++++++++++++ src/prelude-getopt-wide.c | 35 +- src/prelude-getopt.c | 243 +++-- src/prelude-message-buffered.c | 18 +- src/prelude-path.c | 109 --- src/prelude-plugin.c | 2 + src/ssl-gencrypto.c | 32 +- src/ssl-settings.c | 1 - src/ssl.c | 8 +- 62 files changed, 4095 insertions(+), 3004 deletions(-) commit 163eccd15428790674d424ed13066dea1cdce8d4 Author: Nicolas Delon Date: Tue Jun 8 22:10:44 2004 +0000 * src/idmef-criteria.c: (idmef_criteria_to_string) bug fix, this function was not ported for the last idmef-criteria changes * src/common.c: * src/include/common.h: (prelude_strndup) provide a strndup function for all platforms * src/idmef-criteria-string.lex.l: * src/idmef-criteria-string.yac.y: backport to flex 2.5.4 (the most used version of flex) so that it does not use reentrant features of flex 2.5.31, make it thread safe by using mutex * src/idmef-criteria-string.lex.l: replace the local strndup implementation by the new prelude_strndup function * src/idmef-criteria-string.yac.c: * src/idmef-criteria-string.yac.h: * src/idmef-criteria-string.lex.c: regenerated git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3711 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 21 + src/idmef-criteria-string.lex.c | 1662 +++++++++++++++------------------------ src/idmef-criteria-string.lex.l | 39 +- src/idmef-criteria-string.yac.c | 1296 ++++++++++++++---------------- src/idmef-criteria-string.yac.h | 96 +-- src/idmef-criteria-string.yac.y | 14 +- src/idmef-criteria.c | 23 +- src/include/common.h | 2 + 8 files changed, 1303 insertions(+), 1850 deletions(-) commit 58c93a8b43cb234a33fbf0e4dc07dff900f13cc6 Author: Yoann Vandoorselaere Date: Tue Jun 1 16:30:52 2004 +0000 Call option within a section in group git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3702 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit fac6d02c9d11c497c14fd4cd57ced7a6b0c41725 Author: Yoann Vandoorselaere Date: Tue Jun 1 16:29:58 2004 +0000 Due to the last prelude-getopt.c change, we want error to be verbose. This will help tracking down bugs. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3701 09c5ec92-17d4-0310-903a-819935f44dba src/sensor.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit b6414940adfc7897098e3ad8e22f86fc7755ffab Author: Nicolas Delon Date: Tue Jun 1 11:09:07 2004 +0000 * src/idmef-criteria.c: remove debug * bindings/perl/Prelude.pm: bug fix, typo * bindings/perl/Prelude.c: regenerate with swig 1.3.19, swig 1.3.21 seems to break the perl binding, needs investigation git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3697 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 10687 +++++++++++++++++++++++--------------- bindings/perl/Prelude.pm | 2 +- src/idmef-criteria-string.lex.c | 143 +- src/idmef-criteria-string.yac.c | 61 +- src/idmef-criteria.c | 8 +- 5 files changed, 6526 insertions(+), 4375 deletions(-) commit d405f85fead332b74bf39bba410679b289f8e32e Author: Yoann Vandoorselaere Date: Tue Jun 1 10:49:58 2004 +0000 remove debugging spew git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3696 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 17 ----------------- 1 file changed, 17 deletions(-) commit 043b3a85f9ac13aa38b6b898f7a20897dfd703b8 Author: Yoann Vandoorselaere Date: Tue Jun 1 07:40:18 2004 +0000 Revert some part of the previous commit that are not completly finished git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3692 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 1 - 1 file changed, 1 deletion(-) commit 5f459a11465a77b5e08c59ed436c9756f7fc5999 Author: Yoann Vandoorselaere Date: Tue Jun 1 07:39:58 2004 +0000 Revert some part of the previous commit that are not completly finished git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3691 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-getopt.h | 1 - 1 file changed, 1 deletion(-) commit 31e9f0bc5dec3c43cc6d90ffe1b8fac4478c94cc Author: Yoann Vandoorselaere Date: Tue Jun 1 07:39:30 2004 +0000 Revert some part of the previous commit that are not completly finished git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3690 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-getopt.h | 2 +- src/prelude-getopt.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 3e5efb0a1c63b076ee709a1554e764e19fce4c12 Author: Yoann Vandoorselaere Date: Mon May 31 18:22:01 2004 +0000 * prelude-getopt.c (get_missing_options): save context before walking children option, restore context when we're done. Implemented using recursion, this is needed to save several level of context. (parse_argument): ditto. * config-engine.c (parse_buffer): restore modified buffer. (config_get_next): in case we return an error, decrease line number, so that we don't go out of bound if the caller choose to ignore the error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3689 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 12 ++-- src/prelude-getopt.c | 178 ++++++++++++++++++++++++++------------------------- 2 files changed, 98 insertions(+), 92 deletions(-) commit f565a0e36b708b135fdef1fe21b26798715eee54 Author: Yoann Vandoorselaere Date: Mon May 31 13:53:04 2004 +0000 * config-engine.c (parse_section_buffer): fix typo. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3685 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0c079ad2513a8eebb7ab1a3b4443db0998ad7e5d Author: Yoann Vandoorselaere Date: Sat May 29 18:04:33 2004 +0000 * prelude-plugin.c (prelude_plugin_set_activation_option): remove unsubscribe option from command line hook. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3682 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b7887a0f7917a158785091531f014f3425848208 Author: Yoann Vandoorselaere Date: Sat May 29 17:05:49 2004 +0000 * prelude-plugin.c (prelude_plugin_instance_call_init_func): (prelude_plugin_instance_have_init_func): (prelude_plugin_instance_get_private_data): (prelude_plugin_instance_set_private_data): implemented. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3678 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-plugin.h | 8 ++++++++ src/prelude-plugin.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) commit 522d15be1b2f600b00f1b7a7245c702618795d6e Author: Nicolas Delon Date: Sat May 29 12:44:46 2004 +0000 * fix a typo git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3677 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e5c48e2d28cae0af4d348654c40d441c2bb34d2b Author: Yoann Vandoorselaere Date: Sat May 29 11:57:06 2004 +0000 oops... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3675 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b9b25cfe5a6ee315a28c54d3e34b889ab554a49d Author: Yoann Vandoorselaere Date: Sat May 29 11:52:20 2004 +0000 * prelude-plugin.c (prelude_plugin_new_instance): renamed from prelude_plugin_subscribe(). Call the activation function if any. However, don't do the subscribtion here. (prelude_plugins_subscribe): subscribe the provided instance. (intercept_plugin_activation_option): don't use an interceptor for this function. Only subscribe the plugin instance if the plugin specified no init function. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3673 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-plugin.h | 4 ++- src/prelude-plugin.c | 79 +++++++++++++++++++++++++++----------------- 2 files changed, 51 insertions(+), 32 deletions(-) commit b6d154aeb0c909b31ce379f16979acbb553d4c24 Author: Yoann Vandoorselaere Date: Fri May 28 10:00:24 2004 +0000 * idmef-criteria-string.lex.l: regex modified from [a-zA-Z0-9_\.\-]+ to ([a-zA-Z0-9_\-]+(\([0-9]+\))?\.?)+ so that we can handle listed object. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3671 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.lex.l | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4a006ca98bae2d27725f670051699aae2d7c1332 Author: Yoann Vandoorselaere Date: Thu May 27 17:05:40 2004 +0000 * prelude-plugin.c: Handle case where an instance is unsubscribed and option for this instance are called after this unsubscribtion. (intercept_plugin_init_option): call destroy_instance(). (destroy_instance): don't call the unsubscribtion function here, it's already done in prelude_plugin_unsubscribe. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3665 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-plugin.c | 64 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 24 deletions(-) commit 458069bb5c1ab4c055ffb7b1c76cf8ccf4651f78 Author: Yoann Vandoorselaere Date: Thu May 27 08:22:28 2004 +0000 Include prelude-message.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3658 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-message-buffered.h | 2 ++ 1 file changed, 2 insertions(+) commit c0184beb84f3f52f92455ece314623f5520f79be Author: Yoann Vandoorselaere Date: Thu May 27 08:21:42 2004 +0000 * prelude-message.c (prelude_msg_write): restore previous behavior. We also don't need to check whether the message is a fragment as header_index would be 0 anyway. (prelude_msg_mark_end): only mark end of the message if the message is not empty. Otherwise, prelude_msg_write() called after prelude_msg_mark_end() of an empty message wouldn't notify that the message is empty. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3657 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit 498d3d14273a9048bb7dbe5f2775cd04d1602d8f Author: Nicolas Delon Date: Wed May 26 21:48:39 2004 +0000 * bug fix: forgot to rename a function git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3656 09c5ec92-17d4-0310-903a-819935f44dba bindings/python/prelude.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f80ff15692b514c9b766fae6d105341f7ec3c12 Author: Yoann Vandoorselaere Date: Wed May 26 16:25:55 2004 +0000 * prelude-message.c (prelude_msg_mark_end): we don't need to increase write_index here. (msg_mark_end): rename to write_message_header. (prelude_msg_write): Check correctly whether message is empty. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3655 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) commit 3da2c1ec051c8eae37cfbdaa6222dec20ed7476c Author: Yoann Vandoorselaere Date: Tue May 25 13:55:32 2004 +0000 * sensor.c: don't allocate an empty node unless we need it. (prelude_init): new function, to be used by manager. Parse common sensor/manager options. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3652 09c5ec92-17d4-0310-903a-819935f44dba src/include/sensor.h | 3 + src/sensor.c | 167 ++++++++++++++++++++++++++++----------------------- 2 files changed, 95 insertions(+), 75 deletions(-) commit 2624060ce91659fd7ba40d13079fe016619c4ab6 Author: Yoann Vandoorselaere Date: Tue May 25 13:09:59 2004 +0000 * include/idmef-tree.h: idmef_analyzer_t contain another idmef_analyzer_t object. (This is from the IDMEF v12 release candidate, and will allow to record an alert emission path). * idmef-wrappers-gen/IDMEFTree.pm: commit modification by Nicolas handling the case where an IDMEF object include itself. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3651 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | 15 ++++++++++++- src/idmef-message-write.c | 3 ++- src/idmef-tree-print.c | 14 +++++++++++- src/idmef-tree-to-string.c | 14 +++++++++++- src/idmef-tree-wrap.c | 43 +++++++++++++++++++++++++++++++++++-- src/idmef-wrappers-gen/IDMEFTree.pm | 13 ++++++++++- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-tree-data.h | 3 ++- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 11 ++++++++-- src/include/idmef-tree.h | 4 +++- src/include/prelude-client.h | 3 +++ 15 files changed, 117 insertions(+), 16 deletions(-) commit f4aaeb466eb8d4d9a93562d73a7f68e2dffaf258 Author: Yoann Vandoorselaere Date: Tue May 25 13:07:19 2004 +0000 Include idmef.h and prelude-message.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3650 09c5ec92-17d4-0310-903a-819935f44dba src/include/sensor.h | 3 +++ 1 file changed, 3 insertions(+) commit e2157122767b840d6f9d70303ad80cc4b2a335ae Author: Yoann Vandoorselaere Date: Tue May 25 13:06:24 2004 +0000 don't install deprecated idmef-msg-send.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3649 09c5ec92-17d4-0310-903a-819935f44dba src/include/Makefile.am | 1 - 1 file changed, 1 deletion(-) commit b7f7bc6f4f408520de7941ffb7349a244aaccc39 Author: Yoann Vandoorselaere Date: Tue May 25 13:05:40 2004 +0000 Remove deprecated git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3648 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-msg-send.c | 798 ------------------------------------------- src/include/idmef-msg-send.h | 84 ----- 2 files changed, 882 deletions(-) commit 4a210a3bf44c2a32bc0024ae9a752204eed06867 Author: Yoann Vandoorselaere Date: Tue May 25 11:46:24 2004 +0000 Include prelude-list.h and prelude-getopt.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3647 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-plugin.h | 3 +++ 1 file changed, 3 insertions(+) commit 250fd89df0fd67327ccf140226377bb413239111 Author: Yoann Vandoorselaere Date: Tue May 25 11:45:01 2004 +0000 Include prelude-client.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3646 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-client-mgr.h | 2 ++ 1 file changed, 2 insertions(+) commit deea6312e235c05a5e27a1104df9c6f416b1e9bf Author: Yoann Vandoorselaere Date: Tue May 25 11:07:10 2004 +0000 include inttypes.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3645 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-io.h | 3 +++ 1 file changed, 3 insertions(+) commit 3af2e30709526ef7947f18bb196adb5bbd36031a Author: Nicolas Delon Date: Mon May 24 21:28:03 2004 +0000 * bug fix: fix some errors made during the port to the last libprelude modifications git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3644 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 4f93831b3e07e1bf40c8ccbe991726647f9d213a Author: Yoann Vandoorselaere Date: Mon May 24 18:12:17 2004 +0000 * prelude-io.c: include termios.h. If TIOCINQ is not defined, define it as FIONREAD. Use TIOCINQ. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3643 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 61739169081cd4579514efadcba61584df746130 Author: Yoann Vandoorselaere Date: Sun May 23 21:29:58 2004 +0000 * include/idmef-tree.h (DYNAMIC_IDENT): new macro, telling that this ident should be auto generated if it is not set. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3640 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 6 +++--- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 6 +++--- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-tree-data.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 6 +++--- src/include/idmef-tree.h | 7 +++++-- 13 files changed, 23 insertions(+), 20 deletions(-) commit a339c9864dbf4c1e11d0914b876c9e17ea0b16fc Author: Yoann Vandoorselaere Date: Sun May 23 17:46:46 2004 +0000 * prelude-ident.c: new ident allocation shame. We don't need to keep the ident state on the disk anymore. * sensor.c (prelude_sensor_init): allocate the prelude-ident object for this sensor. * idmef-wrappers-gen/GenerateIDMEFMessageWriteC.pm: use the sensor prelude-ident object to allocate an ident if needed. * include/prelude-list.h: renamed and prefix API with prelude_. Update everything. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3634 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 118 ++--- bindings/python/_prelude.c | 116 ++--- src/idmef-criteria-string.yac.c | 55 ++- src/idmef-criteria-string.yac.h | 2 +- src/idmef-criteria-string.yac.y | 1 - src/idmef-criteria.c | 1 - src/idmef-criterion-value.c | 1 - src/idmef-data.c | 1 - src/idmef-message-read.c | 4 +- src/idmef-message-write.c | 27 +- src/idmef-message.c | 1 - src/idmef-msg-send.c | 50 +- src/idmef-object-value.c | 27 +- src/idmef-object.c | 23 +- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 524 ++++++++++----------- src/idmef-type.c | 2 +- src/idmef-util.c | 2 +- src/idmef-value-object.c | 5 +- src/idmef-value.c | 2 +- .../GenerateIDMEFMessageReadC.pm | 2 +- .../GenerateIDMEFMessageWriteC.pm | 30 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 34 +- src/idmef-wrappers-gen/IDMEFTree.pm | 18 +- src/include/Makefile.am | 2 +- src/include/idmef-criteria.h | 2 +- src/include/idmef-data.h | 16 +- src/include/idmef-msg-send.h | 24 +- src/include/idmef-tree.h | 6 +- src/include/idmef-value-type.h | 2 +- src/include/idmef.h | 2 +- src/include/list.h | 210 --------- src/include/prelude-async.h | 3 + src/include/prelude-client-mgr.h | 4 +- src/include/prelude-getopt.h | 5 + src/include/prelude-ident.h | 2 +- src/include/prelude-linked-object.h | 18 +- src/include/prelude-list.h | 210 +++++++++ src/include/prelude-message.h | 17 +- src/include/prelude-plugin.h | 2 +- src/include/sensor.h | 4 +- src/include/timer.h | 6 +- src/prelude-async.c | 15 +- src/prelude-client-mgr.c | 81 ++-- src/prelude-client.c | 1 + src/prelude-getopt.c | 94 ++-- src/prelude-hash.c | 48 +- src/prelude-ident.c | 114 +---- src/prelude-message-buffered.c | 1 + src/prelude-message.c | 2 + src/prelude-plugin.c | 40 +- src/sensor.c | 11 +- src/timer.c | 40 +- src/variable.c | 16 +- 55 files changed, 1019 insertions(+), 1029 deletions(-) commit 2f5a3750ee0008600a94e91a156ec6a11a5afa1a Author: Yoann Vandoorselaere Date: Sun May 23 12:33:53 2004 +0000 cleanup prelude-linked-object API git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3633 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-object.c | 4 +-- src/include/Makefile.am | 2 +- src/include/prelude-linked-object.h | 63 +++++++++++++++++++++++++++++++++++++ src/include/prelude-list.h | 62 ------------------------------------ src/prelude-async.c | 10 +++--- src/prelude-client-mgr.c | 10 +++--- src/prelude-client.c | 3 +- src/prelude-message-buffered.c | 2 +- src/prelude-message.c | 2 +- src/prelude-plugin.c | 7 ++--- src/sensor.c | 2 +- src/timer.c | 4 +-- 12 files changed, 85 insertions(+), 86 deletions(-) commit 16cf4559ec45da5a45f87976a10f464dd76cf623 Author: Yoann Vandoorselaere Date: Sun May 23 11:58:39 2004 +0000 * idmef-object.c: remove idmef_object_list related functions. Instead defined idmef-object as a prelude-linked-object. (idmef_object_get_internal): idmef_value_new_object() should take parent_type as argument, not child_type. * bindings: updated. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3632 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 247 ++++++++++----------------------------------- bindings/python/_prelude.c | 196 ++++++++++------------------------- src/idmef-object.c | 73 +------------- src/include/idmef-object.h | 12 +-- 4 files changed, 107 insertions(+), 421 deletions(-) commit fb38b6031c822a04a9784c22598e088a84063569 Author: Yoann Vandoorselaere Date: Sun May 23 11:15:22 2004 +0000 * idmef-criteria.c (idmef_criteria_clone): clone criterion also. This fix a crash in idmef_criteria_destroy happening if two criteria were sharing the same criterion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3630 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f31f2a9ca47d4d66c252524ed85a6349e054c9af Author: Yoann Vandoorselaere Date: Sat May 22 22:25:04 2004 +0000 * idmef-value-type.c: use sizeof(idmef_value_type_id_t), not sizeof(idmef_value_type_t). Fix a memory corruption problem on enumeration copy. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3626 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b6a15e11137cfa84ba394efaca0f69ac86e4056d Author: Nicolas Delon Date: Sat May 22 13:52:57 2004 +0000 finish to port Prelude.pm to the last idmef-criteria changes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3625 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.pm | 91 +++++------------------------------------------- 1 file changed, 8 insertions(+), 83 deletions(-) commit 122c4e61974d1c903e9d8b94972897760e8876e9 Author: Yoann Vandoorselaere Date: Sat May 22 13:17:21 2004 +0000 Regenerated bindings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3623 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 56 ---------------------------------------------- bindings/python/_prelude.c | 44 ++++-------------------------------- src/include/idmef-time.h | 2 +- 3 files changed, 5 insertions(+), 97 deletions(-) commit 10838722a0d290fdaa59277a9084cae226f7fb92 Author: Yoann Vandoorselaere Date: Sat May 22 13:05:55 2004 +0000 Regenerated git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3620 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.c | 246 ++++++++++++++++++++-------------------- src/idmef-criteria-string.yac.h | 6 +- 2 files changed, 129 insertions(+), 123 deletions(-) commit 53747b2a2efc4902f9024c64de82481749e3c9fc Author: Yoann Vandoorselaere Date: Sat May 22 13:02:42 2004 +0000 Port binding to fit IDMEF namespace/API change git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3619 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 11228 ++++++++++++++++++------------------------- bindings/perl/Prelude.pm | 28 +- bindings/python/_prelude.c | 890 ++-- bindings/python/prelude.py | 60 +- 4 files changed, 5254 insertions(+), 6952 deletions(-) commit 72f3ff2a65f9b0d8fc6488c5c684f9c1012f7099 Author: Yoann Vandoorselaere Date: Sat May 22 13:01:57 2004 +0000 * idmef-criteria-string.yac.y: * idmef-criteria.c: New implementation featuring a nicer algorithm. Walking a set of criteria is now O(n), and you never have to come back to a previous state while walking the tree. This also result in much cleaner code, and fix some of the old implementation bugs. The representation of a tree of test is much cleaner. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3618 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criteria-string.yac.y | 103 ++++---- src/idmef-criteria.c | 503 +++++++++++++--------------------------- src/include/idmef-criteria.h | 40 ++-- 3 files changed, 233 insertions(+), 413 deletions(-) commit a095f9e642a30b9e45858cb45a5fa2039496fdcb Author: Yoann Vandoorselaere Date: Sat May 22 12:57:04 2004 +0000 * idmef-object.c: API modification/namespace cleanup. (idmef_object_get_numeric): call prelude_strbuf_dont_own() instead of strdup'ing the strbuf string. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3617 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-object.c | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) commit 5ff3b6a8118746e40929ada152c011bc07410124 Author: Yoann Vandoorselaere Date: Sat May 22 12:54:42 2004 +0000 * idmef-value-type.c (idmef_value_type_check_relation): new function, verify is a relation applying to a given type is valid. Each idmef_value_type should now provide their applicable relation set. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3616 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-value-type.c | 103 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 70 insertions(+), 33 deletions(-) commit 56c7c4152f4e6b242c29c85c48c82be61b3a73fa Author: Yoann Vandoorselaere Date: Sat May 22 12:52:53 2004 +0000 * config-engine.c (parse_buffer): allow value containing '=' in the configuration file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3615 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fb7590bc5ee26997d072d428aa71454e95d612aa Author: Yoann Vandoorselaere Date: Sat May 22 12:50:50 2004 +0000 Namespace/API consistency fix git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3614 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-tree-wrap.c | 116 ++++++++++++++++++++--------------------- src/include/idmef-object.h | 6 +-- src/include/idmef-tree-wrap.h | 96 +++++++++++++++++----------------- src/include/idmef-value-type.h | 68 ++++++++++-------------- src/include/idmef-value.h | 41 +++++++-------- 5 files changed, 156 insertions(+), 171 deletions(-) commit 3fad1f11812469f0b2a1cb8b05377b233412ed9e Author: Yoann Vandoorselaere Date: Sat May 22 12:49:00 2004 +0000 Namespace/API consistency fix git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3613 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-criterion-value.c | 4 +- src/idmef-message-read.c | 2 +- src/idmef-message-write.c | 2 +- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-type.c | 32 +-- src/idmef-value-object.c | 8 +- src/idmef-value.c | 163 +++++++------ src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 22 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 10 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 2 +- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-read.h | 2 +- src/include/idmef-message-write.h | 2 +- src/include/idmef-tree-data.h | 280 +++++++++++------------ src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-type.h | 30 +-- 18 files changed, 301 insertions(+), 268 deletions(-) commit 727e1ffd60d0956c1e60017ad91cc8bc23d66d63 Author: Yoann Vandoorselaere Date: Fri May 21 18:20:54 2004 +0000 * common.c (prelude_resolve_addr): Patch from Krzysztof Zaraska : FreeBSD compatibility fix. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3610 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 1 + 1 file changed, 1 insertion(+) commit 82edd1155b84b841d632c1dcf86ad98faf1118b6 Author: Yoann Vandoorselaere Date: Fri May 21 17:58:58 2004 +0000 Merge back plugins-instances change into trunk git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3605 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/sensor-adduser.c | 10 +- src/Makefile.am | 2 +- src/config-engine.c | 40 +- src/idmef-criteria-string.yac.c | 4 +- src/idmef-criteria-string.yac.y | 4 +- src/idmef-criteria.c | 8 +- src/idmef-value.c | 13 +- src/include/Makefile.am | 3 +- src/include/idmef-criteria-string.h | 2 +- src/include/idmef-criteria.h | 4 +- src/include/idmef-value.h | 2 +- src/include/plugin-common-prv.h | 139 ------ src/include/plugin-common.h | 85 ---- src/include/prelude-getopt.h | 21 +- src/include/prelude-plugin.h | 195 +++++++++ src/plugin-common.c | 511 ---------------------- src/prelude-getopt-wide.c | 7 +- src/prelude-getopt.c | 215 ++++++---- src/prelude-plugin.c | 833 ++++++++++++++++++++++++++++++++++++ src/sensor.c | 28 +- 20 files changed, 1257 insertions(+), 869 deletions(-) commit e1dbe5f4a7e7f12610c3c4907d2b127c07732cf8 Author: Nicolas Delon Date: Sun May 16 12:07:47 2004 +0000 fix a compilation error in the case libprelude is compiled without Perl/Python support git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3588 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Makefile.am | 4 +++- bindings/python/Makefile.am | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) commit 35c6a591b2a9cb8c0248ed264c70838c81afd769 Author: Yoann Vandoorselaere Date: Tue May 4 17:40:28 2004 +0000 * idmef-object.c (idmef_object_get_internal): Fixed a problem introduced by Nicolas modification to *_get_child() functions, which wouldn't return an idmef_value_t anymore in certain corner case. This wasn't properly handled in idmef_object_get_internal(). We now check whether the value to be returned is an idmef_value_t, or we use idmef_value_new_object() if it is not. This fix a bug spotted by John Green and Krzysztof Zaraska git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3560 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-object.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit 7a4515cbc1fc515be447646312b20272b5087c72 Author: Yoann Vandoorselaere Date: Wed Mar 10 12:17:19 2004 +0000 * prelude-inet.c: define EAI error number here, with the PRELUDE_INET prefix. * include/prelude-inet.h: don't expose definition of EAI_* errors. * prelude-inet.c (gai_strerror_compat): return "Unknown error" instead of NULL if we get no match. (addrinfo_new): fix a possible leak on malloc error. Avoid possible mixup where EAI_* error where defined but we are using getaddrinfo compat. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3505 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-inet.h | 65 +--------------------------------------------- src/prelude-inet.c | 30 +++++++++++++++------ 2 files changed, 23 insertions(+), 72 deletions(-) commit 32ea13be777f80b305ac6e6bda592144c75f2f49 Author: Yoann Vandoorselaere Date: Tue Mar 9 21:10:04 2004 +0000 commit missing git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3500 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-message-read.c | 2316 ++++++++++++++++++++++++++++++++++++ src/idmef-message-write.c | 760 ++++++++++++ src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-read.h | 62 + src/include/idmef-message-write.h | 37 + src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- 9 files changed, 3180 insertions(+), 5 deletions(-) commit 7288a56d5f3256f0d3b9c502eab8c9977c35bc4f Author: Yoann Vandoorselaere Date: Sat Mar 6 20:40:48 2004 +0000 * include/idmef-tree.h: s/idmef_spoofed_t/idmef_source_spoofed_t/ s/idmef_decoy_t/idmef_target_decoy_t/ * update IDMEF code/bindings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3498 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 64 +++++++++++++++++++------------------- bindings/python/_prelude.c | 64 +++++++++++++++++++------------------- src/idmef-tree-print.c | 6 ++-- src/idmef-tree-to-string.c | 6 ++-- src/idmef-tree-wrap.c | 54 ++++++++++++++++---------------- src/include/idmef-message-id.h | 2 +- src/include/idmef-tree-data.h | 10 +++--- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 34 ++++++++++---------- src/include/idmef-tree.h | 8 ++--- 11 files changed, 126 insertions(+), 126 deletions(-) commit 73e29838d1b142b188c98157b39c7166e4bdca9a Author: Yoann Vandoorselaere Date: Fri Mar 5 19:41:25 2004 +0000 Update perl and python bindings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3496 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 49 +++++++++++++++++++++++----------------------- bindings/perl/Prelude.pm | 2 +- bindings/python/_prelude.c | 49 +++++++++++++++++++++++----------------------- bindings/python/prelude.py | 2 +- 4 files changed, 52 insertions(+), 50 deletions(-) commit 69655dcbe303ce927e2d72f0a008700259acb844 Author: Yoann Vandoorselaere Date: Fri Mar 5 18:55:21 2004 +0000 libprelude-idmef-namespace-cleanup branch merge. This fix all the namespace polution that libprelude used to do with non prefixed IDMEF enum. Also, the idmef-message-send/idmef-message-recv interface has been renamed to idmef-message-write/idmef-message-read for consistency reason git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3484 09c5ec92-17d4-0310-903a-819935f44dba bindings/libprelude.i | 4 +- bindings/perl/Prelude.c | 770 ++++--- bindings/python/_prelude.c | 624 +++--- src/Makefile.am | 4 +- src/idmef-criteria-string.lex.c | 1 + src/idmef-criteria-string.yac.c | 1260 ++++++----- src/idmef-criteria-string.yac.h | 94 +- src/idmef-message-recv.c | 2316 -------------------- src/idmef-message-send.c | 760 ------- src/idmef-tree-print.c | 34 +- src/idmef-tree-to-string.c | 34 +- src/idmef-tree-wrap.c | 986 ++++----- src/idmef-util.c | 20 +- .../GenerateIDMEFMessageReadC.pm | 246 +++ .../GenerateIDMEFMessageReadH.pm | 64 + .../GenerateIDMEFMessageRecvC.pm | 246 --- .../GenerateIDMEFMessageRecvH.pm | 64 - .../GenerateIDMEFMessageSendC.pm | 277 --- .../GenerateIDMEFMessageSendH.pm | 61 - .../GenerateIDMEFMessageWriteC.pm | 277 +++ .../GenerateIDMEFMessageWriteH.pm | 61 + src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 41 +- src/idmef-wrappers-gen/generator.pl | 32 +- src/include/Makefile.am | 4 +- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-recv.h | 62 - src/include/idmef-message-send.h | 37 - src/include/idmef-tree-data.h | 54 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 332 +-- src/include/idmef-tree.h | 280 +-- 32 files changed, 3126 insertions(+), 5925 deletions(-) commit eeb1abdd11c3641c66523bab3052b400182bdd5d Author: Yoann Vandoorselaere Date: Tue Mar 2 19:11:03 2004 +0000 * prelude-message.c (prelude_msg_write): return a ssize_t. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3481 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-message.h | 4 ++-- src/prelude-message.c | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) commit 7f78c371db1f0ef86107bd25d44dd7c996a57666 Author: Yoann Vandoorselaere Date: Tue Mar 2 18:59:52 2004 +0000 * prelude-getopt.c (get_missing_options): improve invalid option message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3480 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 28ab9cdc2b9dea7ff5904e978354084750ccace3 Author: Yoann Vandoorselaere Date: Sun Feb 29 15:41:49 2004 +0000 * include/list.h (list_get_next_safe): fix NULL pointer dereference in case of empty list. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3466 09c5ec92-17d4-0310-903a-819935f44dba src/include/list.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a51180d51e8b3204869df7e862692aecb92a1c8 Author: Yoann Vandoorselaere Date: Sun Feb 29 13:09:48 2004 +0000 * include/list.h (list_get_next_safe): implemented. Basically the same as list_get_next, but with the possibility to delete the object between two call. This macro look really ugly, but I think there is no possible way to do it cleaner. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3464 09c5ec92-17d4-0310-903a-819935f44dba src/include/list.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 57391fbb0a082f86e795c6b4b021b65879a0fafe Author: Yoann Vandoorselaere Date: Tue Feb 24 17:35:02 2004 +0000 revert test commit. Test multiline. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3439 09c5ec92-17d4-0310-903a-819935f44dba README | 1 - 1 file changed, 1 deletion(-) commit 3751f446c7066703a36c393cbd8d97dc9bdc4a6f Author: Yoann Vandoorselaere Date: Tue Feb 24 17:34:08 2004 +0000 test SVN cia git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3438 09c5ec92-17d4-0310-903a-819935f44dba README | 1 + 1 file changed, 1 insertion(+) commit ef9d2142f1cdb87689d2b5bea4415c1ee0504c46 Author: Yoann Vandoorselaere Date: Tue Feb 24 16:38:12 2004 +0000 revert test git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3437 09c5ec92-17d4-0310-903a-819935f44dba README | 1 - 1 file changed, 1 deletion(-) commit c841bcc69de4b61dd0c68a2fc3eaabfad645ac04 Author: Yoann Vandoorselaere Date: Tue Feb 24 15:47:05 2004 +0000 test commit git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3436 09c5ec92-17d4-0310-903a-819935f44dba README | 1 + 1 file changed, 1 insertion(+) commit 30d1d184c601b01996a560fc280ff566368b1de9 Author: Yoann Vandoorselaere Date: Sun Feb 8 14:35:33 2004 +0000 * src/common.c (prelude_get_gmt_offset): fix shadowing parameters. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3379 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 ++++++++ src/common.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) commit 2d0ebc8f6ec813b8d821199df51ade5bf129b302 Author: Yoann Vandoorselaere Date: Fri Feb 6 00:45:05 2004 +0000 * bindings/: regenerated. * src/include/extract.h (extract_characters_safe): check that length is at least 2 byte for safety. * src/idmef-util.c (idmef_additionaldata_data_to_string): make size a pointer. Uppon return, size is updated to fit the length of additional data. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3376 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 12 ++++++++++++ bindings/perl/Prelude.c | 11 ++++++++--- bindings/python/_prelude.c | 6 +++--- src/idmef-util.c | 42 +++++++++++++++++++++--------------------- src/include/extract.h | 6 +++--- src/include/idmef-util.h | 2 +- 6 files changed, 48 insertions(+), 31 deletions(-) commit 39ea39187d60b8835c74a853d18aa9c5f42511a8 Author: Yoann Vandoorselaere Date: Thu Feb 5 16:00:07 2004 +0000 * bindings/libprelude.i: Include common.h, s/prelude_get_process_name_and_path/prelude_get_file_name_and_path/ Regenerated bindings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3369 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++ bindings/libprelude.i | 3 +- bindings/perl/Prelude.c | 216 ++++++++++++--------------------------------- bindings/python/_prelude.c | 205 +++++++++++------------------------------- 4 files changed, 115 insertions(+), 315 deletions(-) commit 8cef1672412ebfb49a72bce57a650a2433e2902e Author: Yoann Vandoorselaere Date: Thu Feb 5 15:31:43 2004 +0000 forgot this one. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3368 09c5ec92-17d4-0310-903a-819935f44dba src/sensor.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a86818a7ae00f64590d05e4bc1dc24dfa2a27f71 Author: Yoann Vandoorselaere Date: Tue Feb 3 10:19:26 2004 +0000 * src/sensor.c (get_process_name): use prelude_get_file_name_and_path. * src/idmef-criterion-value.c (get_tm_and_offset): update for prelude_get_gmt_offset() API change. * src/common.c (prelude_get_gmt_offset): moved from idmef-util.c. Re-worked so that it is provided with the local time. * src/idmef-util.c (idmef_additionaldata_data_to_string): (prelude_get_process_name_and_path): moved from here. * src/common.c (prelude_get_file_name_and_path): rewrite prelude_get_process_name_and_path() and put it here. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3360 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 15 ++++++++ src/common.c | 56 ++++++++++++++++++++++++++++- src/idmef-criterion-value.c | 3 +- src/idmef-util.c | 85 --------------------------------------------- src/include/common.h | 6 +++- src/include/idmef-util.h | 2 -- 6 files changed, 77 insertions(+), 90 deletions(-) commit 27a0394f64605cab336557c318920f4007eb7c75 Author: Yoann Vandoorselaere Date: Tue Feb 3 00:24:03 2004 +0000 update bindings. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3358 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 163 ++++++++++++++++++++++++++++----------------- bindings/python/_prelude.c | 142 +++++++++++++++++++++++---------------- 2 files changed, 187 insertions(+), 118 deletions(-) commit e77bc6377cc2ea238f49a74c1b4091c7037c8383 Author: Yoann Vandoorselaere Date: Tue Feb 3 00:17:45 2004 +0000 * src/idmef-util.c (idmef_additionaldata_data_to_string): API change. Stop using a static buffer, use the buffer provided as argument. When the additional data type is byte or character, directly return the content of the data. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3356 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 ++++ src/idmef-util.c | 87 +++++++++++------------------------------------- src/include/idmef-util.h | 5 +-- 3 files changed, 29 insertions(+), 70 deletions(-) commit 7642050d6ff1afa11adb7b5e904c17c70da3c71b Author: Nicolas Delon Date: Sat Jan 31 07:43:39 2004 +0000 * src/idmef-value.c (idmef_value_clone) bug fix, enum type was not cloned correctly (forget to copy the object_type field of idmef_value) git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3339 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/idmef-value.c | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+) commit cb42980fddd33e5b44ab64921c306e15b80eafaa Author: Nicolas Delon Date: Wed Jan 28 07:27:02 2004 +0000 * src/idmef-criterion-value.c: add the "last" keyword for non linear time values relation '=' with this keyword will not work as expected for the moment (because it requires to be transformed into a criteria (to have a range) and not a simple criterion) btw, it can be done manually with two idmef_criterion while waiting for a correct implementation git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3335 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 11 ++++++ src/idmef-criterion-value.c | 95 +++++++++++++++++++++++++++++++++++++-------- 2 files changed, 89 insertions(+), 17 deletions(-) commit 918639ec06b83e0ab85f0645f71848ed04453a5c Author: Nicolas Delon Date: Sun Jan 25 17:47:06 2004 +0000 * bindings/perl/Prelude.c: regenerated * bindings/perl/Prelude.pm: fit idmef-criteria changes * bindings/python/_prelude.c: regenerated * bindings/python/prelude.py: (IDMEFMessage.__getitem__) bug fix, check if c_value != None before destroying it * src/idmef-criteria-string.yac.y: fit idmef-criteria changes bug fix, check yyparse return value * src/idmef-criteria.c: * src/include/idmef-criteria.h: perform validity checks for idmef criterion replace idmef_value in idmef_criterion by the new idmef_criterion_value abstraction layer * src/idmef-criterion-value.c: * src/include/idmef-criterion-value.h: new files create a new abtraction layer uppon the value in a idmef-criterion this allow the use of complex date description (idmef_criterion_value_non_linear_time) * src/idmef-util.c: * src/include/idmef-util.h: (prelude_get_gmt_offset) new function git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3332 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 36 ++ bindings/perl/Prelude.c | 117 ++--- bindings/perl/Prelude.pm | 4 +- bindings/python/_prelude.c | 111 ++--- bindings/python/prelude.py | 3 + src/Makefile.am | 1 + src/idmef-criteria-string.lex.c | 11 +- src/idmef-criteria-string.yac.c | 64 +-- src/idmef-criteria-string.yac.y | 14 +- src/idmef-criteria.c | 212 ++++++++- src/idmef-criterion-value.c | 875 ++++++++++++++++++++++++++++++++++++ src/idmef-util.c | 22 + src/include/Makefile.am | 1 + src/include/idmef-criteria.h | 6 +- src/include/idmef-criterion-value.h | 84 ++++ src/include/idmef-util.h | 1 + src/include/idmef.h | 1 + 17 files changed, 1388 insertions(+), 175 deletions(-) commit 4cd61920a5a526078253c5b56251ba2fd170037c Author: Yoann Vandoorselaere Date: Sat Jan 17 10:00:46 2004 +0000 * configure.in: correct python and perl check. Check that the required header file is present. Fix build failure on system missing headers file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3258 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 +++ configure.in | 85 +++++++++++++++++++++++++++++++----------------------------- 2 files changed, 48 insertions(+), 41 deletions(-) commit fdb862398d1d578bc8435f2a03c1b26b61aa87ca Author: Yoann Vandoorselaere Date: Sat Jan 17 09:15:43 2004 +0000 * src/prelude-log.c (syslog_log, strip_return): strip '\n' character at the head and tail of the buffer when logging to syslog(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3257 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/prelude-log.c | 38 +++++++++++++++++++++++++++++--------- 2 files changed, 33 insertions(+), 9 deletions(-) commit c8b34f83dd15b8721a459fa310bc77f3b22c130b Author: Yoann Vandoorselaere Date: Sat Jan 17 09:02:33 2004 +0000 * src/prelude-getopt.c (get_missing_options): carry more information in the error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3256 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/prelude-getopt.c | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) commit b184be32679d7895c9af1220e68ab1bd90b4e284 Author: Yoann Vandoorselaere Date: Wed Jan 14 22:32:12 2004 +0000 * src/sensor.c (prelude_analyzer_fill_infos): remove crappy bugged code trying to copy the node to the analyzer, and use a simple refcount. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3217 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 11 +++++++++++ src/daemonize.c | 4 ++-- src/sensor.c | 41 ++++------------------------------------- 3 files changed, 17 insertions(+), 39 deletions(-) commit 0e2e6f46da9bc7711190212559b25e83bd5616b7 Author: Nicolas Delon Date: Wed Jan 14 21:47:11 2004 +0000 * src/idmef-time.c: (idmef_time_get_db_timestamp) add a space character between date and hour to make postgresql happy git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3214 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/idmef-time.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit d701d197a7d6a3e7ce6c33451abdd84742fe0ef5 Author: Yoann Vandoorselaere Date: Sun Jan 11 04:56:35 2004 +0000 Broken coffee maker is good for bugs... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3198 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/config-engine.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) commit 63fe1ce092d11f80d94d1674affc9a8b81cbb842 Author: Yoann Vandoorselaere Date: Sun Jan 11 03:55:40 2004 +0000 There really are day where you should not wake up... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3197 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/sensor-adduser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e721a52635e777da17da296f5d0577f5ccafdd9 Author: Yoann Vandoorselaere Date: Sun Jan 11 03:49:29 2004 +0000 * sensor-adduser/sensor-adduser.c (set_sensor_name): dup optarg. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3196 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ sensor-adduser/sensor-adduser.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) commit a7e790922e08cb37d1936d8ba2c1dbd62fa9a5d7 Author: Yoann Vandoorselaere Date: Sun Jan 11 01:04:05 2004 +0000 * src/sensor.c (setup_analyzer_node_location) (setup_analyzer_node_name, setup_analyzer_node_address_address) (setup_analyzer_node_address_netmask) (setup_analyzer_node_address_vlan_name) (prelude_analyzer_fill_infos): fix invalid memory references... String coming from prelude-getopt should be strdup'd. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3194 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 10 ++++++++++ src/sensor.c | 22 +++++++++++----------- 2 files changed, 21 insertions(+), 11 deletions(-) commit cc40ef0ba56b511e6ab43f61324d7e6472ab3930 Author: Yoann Vandoorselaere Date: Sat Jan 10 13:10:15 2004 +0000 * src/config-engine.c (is_section): do not match a section if the '[' characters is preceded by other characters. (strip_value): handle quoted entry. (cmp_section): remove. handle tab everywhere, refactorize code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3186 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 2 ++ src/config-engine.c | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) commit b3578f9a06f03df7fa867d4655d05cedca61a4e3 Author: Yoann Vandoorselaere Date: Sat Jan 10 12:59:53 2004 +0000 * src/config-engine.c (is_section): do not match a section if the '[' characters is preceded by other characters. (cmp_section): remove. handle tab everywhere, refactorize code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3185 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 9 ++ src/config-engine.c | 275 +++++++++++++++++++++------------------------------- 2 files changed, 119 insertions(+), 165 deletions(-) commit e649a62d4f31739829ffcdbaa04eb0668c0b3803 Author: Yoann Vandoorselaere Date: Fri Jan 9 20:42:00 2004 +0000 * src/prelude-getopt.c (search_option): use strcasecmp to search the option. (get_missing_options): complete rewrite of the code getting missing option from the configuration file, so that we don't lookup option on a per option basis, but in the order they were specified in the config file. This allow the caller to much easily deal with option that depend on each other. Mainly LML now can deal with different logfile with different format. * src/config-engine.c (is_line_commented, is_section): consistency fix, handle tab. (config_get): use new helper function. The return value now have to be freed. (config_get_next): new function. Allow the caller to parse the whole configuration file. (parse_buffer): impl. separate entry and value from the buffer. (strip_value): impl. Strip out extra value characters. (get_section): impl. Return section name. (load_file_in_memory): do not use prelude_read_multiline(), as it would cause problem when reporting line number, and we don't care about multiline handling here. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3182 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 30 ++++++ src/config-engine.c | 218 ++++++++++++++++++++++++++++++++++++-------- src/include/config-engine.h | 7 +- src/prelude-getopt.c | 204 +++++++++++------------------------------ 4 files changed, 267 insertions(+), 192 deletions(-) commit 6a3f6eb096183ee82113df045892c0183e2a3b42 Author: Nicolas Delon Date: Wed Jan 7 16:47:05 2004 +0000 * src/idmef-message.c: * src/include/idmef-message.h: * src/include/idmef-tree.h: drop the cache feature, since idmef_object_get' rework (performance has been improved) this is no more necessary idmef_message_set do not destroy object and value anymore * bindings/perl/Prelude.c: regenerated * bindings/perl/Prelude.pm: fit idmef-message changes * bindings/python/_prelude.c: regenerated * bindings/python/prelude.py: fit idmef-message changes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3163 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 21 ++++ bindings/perl/Prelude.c | 250 ++++++++++++++++++++++---------------------- bindings/perl/Prelude.pm | 26 ++--- bindings/python/_prelude.c | 225 +++++++++++++++++++++------------------ bindings/python/prelude.py | 9 +- src/idmef-message.c | 100 +----------------- src/include/idmef-message.h | 3 - src/include/idmef-tree.h | 1 - 8 files changed, 284 insertions(+), 351 deletions(-) commit 379ad59db66c0f572d681c7d2b0e6590b0f57eb7 Author: Yoann Vandoorselaere Date: Tue Jan 6 11:05:31 2004 +0000 forgot in my last commit. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3159 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 1 + 1 file changed, 1 insertion(+) commit 12682c30a50420b5527dcb711f43af60df6cee2a Author: Yoann Vandoorselaere Date: Tue Jan 6 11:03:31 2004 +0000 * configure.in: call AC_SYS_LARGEFILE * src/prelude-client-mgr.c: include config.h 64 bits file offset are now activated for fallover files. No more 2Gb limitation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3158 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 ++++++++ src/prelude-client-mgr.c | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-) commit a28203ae77950542169aa23b57e3652fc12048c8 Author: Yoann Vandoorselaere Date: Tue Jan 6 01:32:09 2004 +0000 * src/prelude-getopt.c (call_option_from_cb_list): don't leak value returned by lookup_variable_if_needed(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3157 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/prelude-getopt.c | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) commit 1b7dc3f35091317fb9402de1bad86b9946d2cd8f Author: Nicolas Delon Date: Fri Jan 2 21:53:44 2004 +0000 * bindings/python/prelude.py: bug fix: bad variable name * src/idmef-time.c: (idmef_time_get_idmef_timestamp) (idmef_time_get_ntp_timestamp) (idmef_time_get_timestamp) bug fix (bug was introduced the 2003-12-29): 0 was returned instead of the len of the buffer (idmef_time_set_db_timestamp) (idmef_time_new_db_timestamp) new functions, set an idmef_time_t with a datetime db field (idmef_time_set_ntp_timestamp) convert time in UTC (idmef_time_set_ntp_timestamp) convert time in localtime * src/include/idmef-time.h: cleanup git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3150 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 24 +++++++- bindings/python/prelude.py | 2 +- src/idmef-time.c | 143 ++++++++++++++++++++++++++++++++++++--------- src/include/idmef-time.h | 30 +++------- 4 files changed, 147 insertions(+), 52 deletions(-) commit abae64bb86d1c18aa4f10e30aff9d5b76dae4f11 Author: Nicolas Delon Date: Thu Jan 1 23:17:42 2004 +0000 * bindings/perl/Prelude.c: * bindings/python/_prelude.c: regenerated * src/idmef-data.c: * src/include/idmef-data.h: (idmef_data_is_empty) new function * src/idmef-string.c: * src/include/idmef-string.h: (idmef_string_is_empty) new function * src/idmef-time.c: (idmef_time_get_db_timestamp) feed buffer with "NULL" if the given pointer is NULL and add simple quote to the db timestamp string * src/idmef-util.c: (idmef_additionaldata_data_to_string) instead of writing to a given buffer, return a const char * thats point to a function static buffer (if a conversion was needed) or to the data field within the additional_data given First commit of the new year ;) git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3147 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 29 ++++++++++++++++ bindings/perl/Prelude.c | 83 +++++++++++++++++++++++++++++++++++++++------- bindings/python/_prelude.c | 51 ++++++++++++++++++++++------ src/idmef-data.c | 8 +++++ src/idmef-string.c | 7 ++++ src/idmef-time.c | 20 +++++++---- src/idmef-util.c | 39 +++++++++------------- src/include/idmef-data.h | 16 +++++---- src/include/idmef-string.h | 5 ++- src/include/idmef-util.h | 2 +- 10 files changed, 198 insertions(+), 62 deletions(-) commit 8569454341312a38ad8308404fe34259df2177e5 Author: Nicolas Delon Date: Mon Dec 29 18:29:01 2003 +0000 * src/idmef-time.c: (idmef_time_get_idmef_timestamp) (idmef_time_get_idmef_timestamp) (idmef_time_get_timestamp) bug fix: also check if the snprintf return value is not bigger than the given size * src/include/idmef-util.h: MAX_NTP_TIMESTAMP_SIZE: include the trailing nul byte in the size, it fix a bug in libpreludedb git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3138 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 13 +++++++++++++ src/idmef-time.c | 31 ++++++++++++++++++------------- src/include/idmef-util.h | 2 +- 3 files changed, 32 insertions(+), 14 deletions(-) commit 8784b583c616acc5e8a41b9f40d030b6f97d03ea Author: Nicolas Delon Date: Mon Dec 29 13:53:17 2003 +0000 * bindings/python/prelude.py: cleanup git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3132 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 + bindings/python/prelude.py | 228 +++++++++++++++++++++++---------------------- 2 files changed, 120 insertions(+), 113 deletions(-) commit bbebaf6be548f703c0acc00eabff49faa15639fe Author: Nicolas Delon Date: Sun Dec 28 17:34:47 2003 +0000 * bindings/libprelude.i: (prelude_alert_fill_infos) (prelude_heartbeat_fill_infos) setup process name and path with prelude_get_process_name_and_path * bindings/perl/Prelude.c: * bindings/python/_prelude.c: regenerated * bindings/perl/Prelude.pm: * bindings/python/prelude.py: fit prelude_alert_fill_infos last changes * src/idmef-util.c: * src/include/idmef-util.h: (prelude_get_process_name_and_path) new function * src/sensor.c: (get_process_name) updated to use prelude_get_process_name_and_path git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3120 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 24 ++++++ bindings/libprelude.i | 66 +++++++++++++-- bindings/perl/Prelude.c | 203 ++++++++++++++++++++++++++++++++++++++++++--- bindings/perl/Prelude.pm | 5 +- bindings/python/_prelude.c | 200 ++++++++++++++++++++++++++++++++++++++++++-- bindings/python/prelude.py | 2 +- src/idmef-util.c | 72 ++++++++++++++++ src/include/idmef-util.h | 1 + src/sensor.c | 14 +--- 9 files changed, 547 insertions(+), 40 deletions(-) commit 98761294fc1d77f119907e92f00c8c3a8071733b Author: Yoann Vandoorselaere Date: Sun Dec 28 00:36:56 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3110 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit a7e4453004bfc895ccaebd988c007a5030e64b54 Author: Yoann Vandoorselaere Date: Sun Dec 28 00:35:58 2003 +0000 * src/prelude-client.c (prelude_client_send_msg): after writing a message, check that the tcp connection is still established, otherwise, handle breakage and trigger failover. (is_tcp_connection_still_established): moved from prelude-io.c. (start_inet_connection): (start_unix_connection): s/socket_io/sys_io/ * src/prelude-io.c: remove the socket_io IO type. The check issued by this type really shouldn't be done here. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3109 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-io.h | 2 - src/prelude-client.c | 76 +++++++++++++++++++++++---- src/prelude-io.c | 130 ++++------------------------------------------- 3 files changed, 74 insertions(+), 134 deletions(-) commit 7414753986177f002627941f7d82624ced984f2d Author: Yoann Vandoorselaere Date: Sun Dec 28 00:29:27 2003 +0000 * src/prelude-message.c (set_data, prelude_msg_forward): datatype safety. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3108 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/prelude-message.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) commit 4d9ffaf15f82ca2268921bbb40be32607e1e8b53 Author: Nicolas Delon Date: Sat Dec 27 18:35:57 2003 +0000 * src/idmef-value.c: (idmef_value_to_string) bug fix, enum type was not handled since idmef-value.c rework (it was not handled at idmef-value-type level but enum need the object_type field in addition of the enum value to be converted into string, so the conversion must be done at idmef-value level) git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3102 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 10 ++++++++++ src/idmef-value.c | 27 +++++++++++++++++++++++++-- src/include/idmef-util.h | 1 - 3 files changed, 35 insertions(+), 3 deletions(-) commit 5f59bcf7c90efb129319189776fdb8d7c17a8eb8 Author: Nicolas Delon Date: Sat Dec 27 15:00:11 2003 +0000 * src/prelude-strbuf.c: (prelude_strbuf_is_empty) change return value returns 1 (true/yes) if strbuf is empty and 0 (false/no) otherwise it is more natural than 0 and -1 (return values < 0 are used as error code, and we don't have any error here) moreover, it was the way libpreludedb's strbuf works, and when libpreludedb has been changed to use prelude-strbuf instead of strbuf, it has been broken by now everything works fine git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3097 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 12 ++++++++++++ src/prelude-strbuf.c | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) commit e10517f5323d966697cdfd571ac4246df6d22476 Author: Nicolas Delon Date: Sat Dec 27 00:32:40 2003 +0000 update Prelude.c git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3094 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.c | 1049 ++++++++++++++++++++++++----------------------- 1 file changed, 531 insertions(+), 518 deletions(-) commit a934039005d2308263dce1a3bc72b2d95e0255ca Author: Nicolas Delon Date: Fri Dec 26 22:33:43 2003 +0000 * src/idmef-value.c: (idmef_value_get_idmef_type) also return object_type if value's type is type_enum * bindings/libprelude.i: bind idmef-type.h * bindings/perl/Prelude.c: * bindings/python/_prelude.c: regenerated * bindings/perl/Prelude.pm: * bindings/python/prelude.py: return enums as strings git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3093 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 17 + bindings/libprelude.i | 1 + bindings/perl/Prelude.pm | 3 +- bindings/python/_prelude.c | 797 +++++++++++++++++++++++---------------------- bindings/python/prelude.py | 5 +- src/idmef-value.c | 2 +- 6 files changed, 426 insertions(+), 399 deletions(-) commit cac7201cc4c667a0327fc2db4a947be8b7df88e7 Author: Nicolas Delon Date: Fri Dec 26 21:17:04 2003 +0000 * configure.in: don't regenerate the .c source files of bindings during ./configure git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3085 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ configure.in | 12 ------------ 2 files changed, 6 insertions(+), 12 deletions(-) commit 1e9bc0b724f1edc48eb6f81c57a2289f50c6b8fe Author: Nicolas Delon Date: Fri Dec 26 18:13:56 2003 +0000 * bindings/generate.sh: new script that simply call the generate.sh of perl and python directories git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3080 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 +++++- bindings/generate.sh | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) commit 04b5eb8bff2bdc1fcfe7fea2a578a560e1eaa5d5 Author: Nicolas Delon Date: Fri Dec 26 18:11:53 2003 +0000 * bindings/python/_prelude.c: regenerated * bindings/python/prelude.py: cleanup * src/idmef-criteria.c: (idmef_criteria_clone) bug fix, the way the operators were handled was buggy git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3079 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 12 + bindings/python/_prelude.c | 596 +++++++++++++++++++++++++++++++++++++++++++-- bindings/python/prelude.py | 65 ++--- src/idmef-criteria.c | 6 +- 4 files changed, 630 insertions(+), 49 deletions(-) commit 62d97a0227b89283153c5998a323874606d6734d Author: Yoann Vandoorselaere Date: Thu Dec 25 17:17:47 2003 +0000 * src/idmef-data.c (idmef_data_new): revert previous change (unsigned char pointer to void pointer), cause it was causing problem for binding. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3049 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/idmef-data.c | 16 ++++++++-------- src/include/idmef-data.h | 18 +++++++++--------- 3 files changed, 21 insertions(+), 17 deletions(-) commit 58562266399b9cf9e2c4f5e6c2c4d590b97dc008 Author: Yoann Vandoorselaere Date: Thu Dec 25 16:34:29 2003 +0000 * src/idmef-wrappers-gen/GenerateIDMEFMessageSendC.pm (struct): don't call prelude_msgbuf_mark_end() on idmef_message_send(). Doing so is up to the caller, which might want to add more information to the written alert. * src/idmef-data.c (idmef_data_new_dup): (idmef_data_new_nodup): (idmef_data_new_ref): (idmef_data_set_dup): (idmef_data_set_nodup): (idmef_data_set_ref): (idmef_data_get_data): * src/idmef-string.c (idmef_string_new_ref_fast): str is const. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3046 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 18 ++++++++++++++++++ src/idmef-data.c | 18 +++++++++--------- src/idmef-message-recv.c | 2 +- src/idmef-message-send.c | 3 +-- src/idmef-string.c | 2 +- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 2 +- src/idmef-wrappers-gen/GenerateIDMEFMessageSendC.pm | 5 +---- src/include/idmef-data.h | 21 +++++++++++---------- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-recv.h | 2 +- src/include/idmef-message-send.h | 2 +- src/include/idmef-string.h | 2 +- src/include/idmef-tree-data.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 2 +- 18 files changed, 53 insertions(+), 38 deletions(-) commit 9a727e7f74d0f71b0cf413a551ad6dcd70bf8b3e Author: Nicolas Delon Date: Sat Dec 20 00:12:50 2003 +0000 * bindings/libprelude.i: * bindings/perl/Prelude.pm: cleanup * bindings/perl/Prelude.c: regenerated * src/idmef-wrappers-gen/GenerateIDMEFMessageRecvC.pm: (extract_string_safe) bug fix, idmef_string_new_ref_fast was called with len + 1, but len already takes the final NULL byte in account * src/idmef-message-recv.c: regenerated git-svn-id: file:///home/yoann/SVN/trunk/libprelude@3001 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 17 + bindings/libprelude.i | 26 +- bindings/perl/Prelude.c | 35168 +++++++++++++++++++ bindings/perl/Prelude.pm | 10 +- src/idmef-message-recv.c | 4 +- .../GenerateIDMEFMessageRecvC.pm | 2 +- 6 files changed, 35200 insertions(+), 27 deletions(-) commit a734ad32caef9755a6ac366a0a3af679263a74f1 Author: Nicolas Delon Date: Thu Dec 18 22:33:44 2003 +0000 * src/prelude-io.c: (is_tcp_connection_still_established) handle the case where poll returns 0 (which means that no fd have been selected) git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2980 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/prelude-io.c | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) commit 3319527454cf2b5ffc50a5fa9cdbdeb8ee7c9cb2 Author: Nicolas Delon Date: Wed Dec 17 23:26:12 2003 +0000 * src/prelude-strbuf.c: * src/include/prelude-strbuf.h: (prelude_strbuf_cat) (prelude_strbuf_ncat) new functions git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2979 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 ++++++ src/include/prelude-strbuf.h | 9 +++---- src/prelude-strbuf.c | 58 ++++++++++++++++++++++++++++++++++---------- 3 files changed, 57 insertions(+), 18 deletions(-) commit eca5e3af3f45bb6cbacfbd1840192237c9dfd24c Author: Nicolas Delon Date: Tue Dec 16 13:53:01 2003 +0000 * src/idmef-value-type.c: in read functions for integer types: handle both decimal and hexadecimal value git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2973 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/idmef-value-type.c | 39 +++++++++++++++++++++++++++------------ 2 files changed, 33 insertions(+), 12 deletions(-) commit 6e33e971c0e38dff665bd221a7b619c0eaf55b2e Author: Nicolas Delon Date: Sun Dec 14 18:00:12 2003 +0000 * src/idmef-message.c: * src/include/idmef-tree.h (idmef_message_set_pmsg) (idmef_message_destroy) add the ability to attach a prelude_msg to the corresponding idmef_message * src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm: do not generate _ref function prototype for function that don't have refcount * src/include/idmef-tree-wrap.h: regenerated git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2966 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 14 ++++++++++ src/idmef-message-recv.c | 2 +- src/idmef-message-send.c | 2 +- src/idmef-message.c | 33 +++++++++++++++++------- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 3 ++- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 2 ++ src/include/idmef-message-id.h | 2 +- src/include/idmef-message-recv.h | 2 +- src/include/idmef-message-send.h | 2 +- src/include/idmef-message.h | 10 +++++-- src/include/idmef-tree-data.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 6 ++--- src/include/idmef-tree.h | 4 +++ 17 files changed, 65 insertions(+), 27 deletions(-) commit dbca01b98a401023a4691138c65352700765840b Author: Nicolas Delon Date: Sun Dec 14 10:03:07 2003 +0000 * src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm: * src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm: * src/idmef-wrappers-gen/IDMEFTree.pm: * src/include/idmef-tree.h: implement refcount support * src/idmef-tree-wrap.c: * src/include/idmef-tree-wrap.h: regenerated git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2965 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 12 + src/idmef-criteria-string.yac.c | 1260 ++++++++++------------ src/idmef-criteria-string.yac.h | 94 +- src/idmef-message-recv.c | 2 +- src/idmef-message-send.c | 2 +- src/idmef-tree-print.c | 2 +- src/idmef-tree-to-string.c | 2 +- src/idmef-tree-wrap.c | 406 ++++++- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 42 +- src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 11 + src/idmef-wrappers-gen/IDMEFTree.pm | 6 +- src/include/idmef-message-id.h | 2 +- src/include/idmef-message-recv.h | 2 +- src/include/idmef-message-send.h | 2 +- src/include/idmef-tree-data.h | 2 +- src/include/idmef-tree-print.h | 2 +- src/include/idmef-tree-to-string.h | 2 +- src/include/idmef-tree-wrap.h | 71 +- src/include/idmef-tree.h | 45 +- 19 files changed, 1150 insertions(+), 817 deletions(-) commit 5236d6908fd6ca7dfef0d6c894514572ded2573f Author: Yoann Vandoorselaere Date: Sat Dec 13 01:58:01 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2952 09c5ec92-17d4-0310-903a-819935f44dba src/include/sensor.h | 8 -------- 1 file changed, 8 deletions(-) commit e6e5f5ebc9c41a7512bd228f26a250ac0d2518f8 Author: Yoann Vandoorselaere Date: Sat Dec 13 01:05:22 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2944 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-util.c | 6 +++--- src/include/prelude-getopt.h | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) commit 3181b2a00048c83a863315f5a544220672f319ff Author: Yoann Vandoorselaere Date: Sat Dec 13 01:02:08 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2943 09c5ec92-17d4-0310-903a-819935f44dba src/idmef-util.c | 16 +++++++++------- src/include/idmef-util.h | 4 ++-- 2 files changed, 11 insertions(+), 9 deletions(-) commit 9749168f9dc52cf1703930fea17eeb0e4a013ef8 Author: Yoann Vandoorselaere Date: Sat Dec 13 00:55:58 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2942 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Prelude.pm | 708 + bindings/python/_prelude.c | 21567 +++++++++++++++++++++++++++++++ bindings/python/prelude.py | 464 + docs/api/examples/perl/send_alert.pl | 22 + docs/api/examples/python/send_alert.py | 18 + src/idmef-tree-print.c | 1842 +++ src/idmef-tree-to-string.c | 2005 +++ src/include/Makefile.am | 1 - src/include/extract.h | 2 +- src/prelude-getopt-wide.c | 16 +- 10 files changed, 26635 insertions(+), 10 deletions(-) commit 853b3867372d2c9215672013facb0d76985e3583 Author: Yoann Vandoorselaere Date: Sat Dec 13 00:39:44 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2941 09c5ec92-17d4-0310-903a-819935f44dba bindings/Makefile.am | 1 + bindings/libprelude.i | 265 +++++++++++++++++++++++++++++++++++++ src/include/Makefile.am | 1 - src/include/idmef-tree-print.h | 37 ++++++ src/include/idmef-tree-to-string.h | 37 ++++++ 5 files changed, 340 insertions(+), 1 deletion(-) commit 1332bc540a22c86beda597c9a298f0c2b42f0030 Author: Yoann Vandoorselaere Date: Sat Dec 13 00:35:13 2003 +0000 db-work merge in progress git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2940 09c5ec92-17d4-0310-903a-819935f44dba bindings/perl/Makefile.am | 25 +++++++++++++++++++++++++ bindings/perl/generate.sh | 3 +++ bindings/python/Makefile.am | 24 ++++++++++++++++++++++++ bindings/python/generate.sh | 3 +++ 4 files changed, 55 insertions(+) commit 914c82236509a66e19b0aa0e7c76fda16f501a19 Author: Yoann Vandoorselaere Date: Sat Dec 13 00:25:33 2003 +0000 db-work merge in progress git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2939 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 + Makefile.am | 2 +- NEWS | 60 + configure.in | 123 +- sensor-adduser/sensor-adduser.c | 19 +- src/Makefile.am | 27 +- src/common.c | 2 +- src/idmef-criteria-string.lex.c | 2093 +++++ src/idmef-criteria-string.lex.l | 107 + src/idmef-criteria-string.yac.c | 1512 ++++ src/idmef-criteria-string.yac.h | 81 + src/idmef-criteria-string.yac.y | 298 + src/idmef-criteria.c | 533 ++ src/idmef-data.c | 331 + src/idmef-message-recv.c | 2316 +++++ src/idmef-message-send.c | 761 ++ src/idmef-message.c | 172 + src/idmef-msg-send.c | 11 +- src/idmef-object-value.c | 172 + src/idmef-object.c | 919 ++ src/idmef-string.c | 168 + src/idmef-time.c | 549 ++ src/idmef-tree-func.c | 1033 --- src/idmef-tree-wrap.c | 9286 ++++++++++++++++++++ src/idmef-type.c | 199 + src/idmef-util.c | 175 + src/idmef-value-object.c | 80 + src/idmef-value-type.c | 454 + src/idmef-value.c | 558 ++ src/idmef-wrappers-gen/Generate.pm | 46 + src/idmef-wrappers-gen/GenerateDebug.pm | 94 + src/idmef-wrappers-gen/GenerateIDMEFMessageIdH.pm | 94 + .../GenerateIDMEFMessageRecvC.pm | 246 + .../GenerateIDMEFMessageRecvH.pm | 64 + .../GenerateIDMEFMessageSendC.pm | 280 + .../GenerateIDMEFMessageSendH.pm | 61 + src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm | 163 + src/idmef-wrappers-gen/GenerateIDMEFTreePrintC.pm | 317 + src/idmef-wrappers-gen/GenerateIDMEFTreePrintH.pm | 64 + .../GenerateIDMEFTreeToStringC.pm | 308 + .../GenerateIDMEFTreeToStringH.pm | 64 + src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm | 857 ++ src/idmef-wrappers-gen/GenerateIDMEFTreeWrapH.pm | 263 + src/idmef-wrappers-gen/IDMEFTree.pm | 368 + src/idmef-wrappers-gen/README | 6 + src/idmef-wrappers-gen/generator.pl | 123 + src/include/Makefile.am | 29 +- src/include/extract.h | 70 +- src/include/idmef-criteria-string.h | 30 + src/include/idmef-criteria.h | 82 + src/include/idmef-data.h | 277 + src/include/idmef-message-id-format.h | 29 + src/include/idmef-message-id.h | 364 +- src/include/idmef-message-recv.h | 62 + src/include/idmef-message-send.h | 37 + src/include/idmef-message.h | 38 + src/include/idmef-object-value.h | 59 + src/include/idmef-object.h | 80 + src/include/idmef-string.h | 96 + src/include/idmef-time.h | 78 + src/include/idmef-tree-data.h | 322 + src/include/idmef-tree-func.h | 191 - src/include/idmef-tree-wrap.h | 1704 ++++ src/include/idmef-tree.h | 379 +- src/include/idmef-type.h | 60 + src/include/idmef-util.h | 67 + src/include/idmef-value-object.h | 29 + src/include/idmef-value-type.h | 113 + src/include/idmef-value.h | 106 + src/include/idmef.h | 44 + src/include/list.h | 20 + src/include/ntp.h | 129 + src/include/prelude-hash.h | 42 + src/include/prelude-io.h | 21 +- src/include/prelude-strbuf.h | 49 + src/ntp.c | 322 + src/plugin-common.c | 106 +- src/prelude-async.c | 4 +- src/prelude-client-mgr.c | 18 +- src/prelude-client.c | 6 +- src/prelude-getopt.c | 11 + src/prelude-hash.c | 242 + src/prelude-ident.c | 4 +- src/prelude-io.c | 253 +- src/prelude-message-buffered.c | 2 +- src/prelude-strbuf.c | 179 + src/sensor.c | 297 +- src/ssl-gencrypto.c | 8 +- 88 files changed, 29608 insertions(+), 1918 deletions(-) commit a6977068384bfd4f04627d3b599b2b359f5ef627 Author: Yoann Vandoorselaere Date: Fri Dec 5 01:13:13 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2886 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 - 1 file changed, 1 deletion(-) commit 3ad01975a1cf3702df8cc60144013f719b3fd0a2 Author: Yoann Vandoorselaere Date: Fri Dec 5 01:07:19 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2885 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 + 1 file changed, 1 insertion(+) commit 88c926b4a2540c77322f96f37b9675f0f71df33e Author: Yoann Vandoorselaere Date: Fri Dec 5 01:05:20 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2884 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 - 1 file changed, 1 deletion(-) commit 1dada0e6f34e9fc9b15296a9e2d28d65289857d5 Author: Yoann Vandoorselaere Date: Fri Dec 5 01:04:04 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2883 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 + 1 file changed, 1 insertion(+) commit 2b4ae24877119d523aeaca3a6c6a98a54f935a83 Author: Yoann Vandoorselaere Date: Fri Dec 5 00:27:37 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2882 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 - 1 file changed, 1 deletion(-) commit e8fc2c604908e2d8e218cda26a5b4cad09e7e995 Author: Yoann Vandoorselaere Date: Fri Dec 5 00:27:09 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2881 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 + 1 file changed, 1 insertion(+) commit 5dcc9a5c336f5cdf2acc00cfaaf503bc593fdf0c Author: Yoann Vandoorselaere Date: Fri Dec 5 00:26:20 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2880 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 - 1 file changed, 1 deletion(-) commit 14f63fd21679d586daaeca86eb53cba99c746b01 Author: Yoann Vandoorselaere Date: Fri Dec 5 00:23:59 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2879 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 + 1 file changed, 1 insertion(+) commit fa2df90c0b2f3463cd88a539bb451bd9cb978542 Author: Yoann Vandoorselaere Date: Fri Dec 5 00:21:13 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2878 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 - 1 file changed, 1 deletion(-) commit 4c779ce0b53c96dfbca3fc1966f88bf6c50b60cb Author: Yoann Vandoorselaere Date: Fri Dec 5 00:20:15 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2877 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 + 1 file changed, 1 insertion(+) commit ed0505c90ea49cfd94a5654da7d156eb1ef5fb5f Author: Yoann Vandoorselaere Date: Fri Dec 5 00:18:31 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2876 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 - 1 file changed, 1 deletion(-) commit e6c794dfe62c41cf8849757db01f59fa5edf0271 Author: Yoann Vandoorselaere Date: Fri Dec 5 00:17:53 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2875 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 + 1 file changed, 1 insertion(+) commit 07d1655e38fbc33240e9c95b9de8299a06ddf6ab Author: Yoann Vandoorselaere Date: Fri Dec 5 00:10:03 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2874 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 - 1 file changed, 1 deletion(-) commit 28effdd7b82d7cd7aa627592ffaf9dea79d3436a Author: Yoann Vandoorselaere Date: Thu Dec 4 21:25:10 2003 +0000 acl... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2873 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 + 1 file changed, 1 insertion(+) commit e01194248bd3a93ede82b69b05862a562ff4a520 Author: Yoann Vandoorselaere Date: Thu Dec 4 21:21:00 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2872 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 - 1 file changed, 1 deletion(-) commit 4920ad40120e1ebc5ed7320079082140bf576f8c Author: Yoann Vandoorselaere Date: Thu Dec 4 21:20:09 2003 +0000 ACL work... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2871 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 + 1 file changed, 1 insertion(+) commit 7266aeec387f0cf4faaea90b17fbbf293b7cb1f6 Author: Yoann Vandoorselaere Date: Thu Dec 4 21:17:47 2003 +0000 ACL work... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2870 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 - 1 file changed, 1 deletion(-) commit 2095c1343ab71f69b13dc0e37ec588a7d6da940f Author: Yoann Vandoorselaere Date: Thu Dec 4 21:14:47 2003 +0000 ACL work.. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2869 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 + 1 file changed, 1 insertion(+) commit e0b1fa45af619da36dbdd9bf005a5fac01f5323f Author: Yoann Vandoorselaere Date: Thu Dec 4 21:06:35 2003 +0000 ACL works... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2868 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 - 1 file changed, 1 deletion(-) commit a2d008deeb695072c997d3e91db6584807f637ad Author: Yoann Vandoorselaere Date: Thu Dec 4 21:03:33 2003 +0000 ACL work... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2867 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 - 1 file changed, 1 deletion(-) commit 7fbac461b4fae98619de0f89d498ad399b076c1b Author: Yoann Vandoorselaere Date: Thu Dec 4 18:35:54 2003 +0000 Testing... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2864 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 1 + 1 file changed, 1 insertion(+) commit b538f77598983eb0421bbdfd1902abd9cac54112 Author: Yoann Vandoorselaere Date: Fri Oct 17 01:56:07 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2694 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 1 - src/include/Makefile.am | 1 - 2 files changed, 2 deletions(-) commit b79e4d4088006758e372fdf87994f8e8d01d623f Author: Yoann Vandoorselaere Date: Fri Oct 17 01:48:48 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2693 09c5ec92-17d4-0310-903a-819935f44dba src/include/string-matching.h | 28 -------- src/prelude-log.c | 2 +- src/string-matching.c | 156 ------------------------------------------ 3 files changed, 1 insertion(+), 185 deletions(-) commit 7371d93b5ec9ef082a10469f8dd068d6421f022f Author: Yoann Vandoorselaere Date: Fri Oct 17 01:44:48 2003 +0000 Merge libprelude-0-8 back-in. Prepare for db-work inclusion. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2691 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 120 +++++++++++++++++++++++++++++++++++++++- NEWS | 51 +++++++++++++++++ README | 17 +++--- configure.in | 104 ++++++++++++++++------------------ libprelude-config.in | 2 +- sensor-adduser/sensor-adduser.c | 3 +- src/daemonize.c | 2 +- src/idmef-msg-send.c | 85 ++++++++++++++++++++++++++++ src/include/idmef-msg-send.h | 10 +++- src/include/timer.h | 2 +- src/prelude-client-mgr.c | 5 +- src/prelude-inet.c | 55 +++++++++++------- src/prelude-io.c | 3 +- src/prelude-path.c | 10 ++-- src/timer.c | 20 +++---- 15 files changed, 382 insertions(+), 107 deletions(-) commit ad2940c31461f19b37999779f938e9c2391cb0ad Author: Yoann Vandoorselaere Date: Mon Jun 16 10:42:55 2003 +0000 Merge back 0-8 change to HEAD git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2385 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 205 ++++++++++++++++++++++++- Makefile.am | 18 +-- configure.in | 79 +++++++++- libprelude-config.in | 6 +- sensor-adduser/sensor-adduser.c | 16 +- sensor-adduser/ssl-register.c | 2 +- sensors-default.conf | 2 +- src/Makefile.am | 3 +- src/common.c | 28 +++- src/idmef-msg-send.c | 13 +- src/include/Makefile.am | 1 + src/include/common.h | 3 +- src/include/extract.h | 21 ++- src/include/plugin-common-prv.h | 30 ++-- src/include/prelude-client-mgr.h | 3 + src/include/prelude-inet.h | 131 ++++++++++++++++ src/include/prelude-io.h | 6 +- src/include/timer.h | 20 +-- src/plugin-common.c | 9 +- src/prelude-async.c | 39 ++++- src/prelude-client-mgr.c | 146 +++++++++++++++++- src/prelude-client.c | 198 +++++++++++------------- src/prelude-inet.c | 314 +++++++++++++++++++++++++++++++++++++++ src/prelude-io.c | 2 +- src/ssl-registration-msg.c | 2 +- src/timer.c | 133 +++++++++-------- 26 files changed, 1150 insertions(+), 280 deletions(-) commit b274e34a31eb37fee1a565e29495ba7910ef4951 Author: Yoann Vandoorselaere Date: Mon Apr 28 14:30:44 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2145 09c5ec92-17d4-0310-903a-819935f44dba src/include/timer.h | 14 +++++++++++++- src/prelude-async.c | 3 +++ src/timer.c | 20 +++++++++++++++++--- 3 files changed, 33 insertions(+), 4 deletions(-) commit 0b24e91184ef50ec3b4f6d97b91964829be52926 Author: Yoann Vandoorselaere Date: Mon Apr 28 14:22:34 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2144 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 +++++ src/include/prelude-async.h | 11 +++++- src/prelude-async.c | 86 +++++++++++++++++++++++++++++---------------- src/timer.c | 47 +++++++++++++++++-------- 4 files changed, 106 insertions(+), 46 deletions(-) commit 53f5ce91aeaa2aaa8ea37f8a812299600d823595 Author: Yoann Vandoorselaere Date: Mon Apr 28 14:10:49 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2143 09c5ec92-17d4-0310-903a-819935f44dba COPYING | 15 +++++++++++++++ ChangeLog | 8 ++++++++ NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ README | 13 ------------- autogen.sh | 18 ------------------ configure.in | 2 +- src/prelude-client.c | 6 +++--- src/prelude-io.c | 5 +++-- src/prelude-log.c | 5 ++++- src/ssl-gencrypto.c | 3 +++ 10 files changed, 80 insertions(+), 38 deletions(-) commit b11bf6ee9f50501a83fe249b2b6d7fd4d31e2276 Author: Yoann Vandoorselaere Date: Mon Apr 28 14:05:29 2003 +0000 Merge 0.8 change back in HEAD. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2142 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit df44849a92c44f5ec6b24751a5a123c7b2f40db4 Author: Yoann Vandoorselaere Date: Thu Mar 6 01:20:52 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@2020 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c2ad4192f8c37d316e284b83a0500622dc2fa3a Author: Yoann Vandoorselaere Date: Tue Feb 4 10:55:05 2003 +0000 Update my mail address. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1909 09c5ec92-17d4-0310-903a-819935f44dba AUTHORS | 2 +- CREDITS | 2 +- README | 2 +- debian/copyright | 2 +- libmissing/getopt_long.c | 2 +- libmissing/getopt_long.h | 2 +- libmissing/libmissing.h | 2 +- sensor-adduser/sensor-adduser.c | 2 +- src/client-ident.c | 2 +- src/common.c | 2 +- src/config-engine.c | 2 +- src/daemonize.c | 2 +- src/idmef-msg-send.c | 2 +- src/idmef-tree-func.c | 2 +- src/include/client-ident.h | 2 +- src/include/common.h | 2 +- src/include/config-engine.h | 2 +- src/include/daemonize.h | 2 +- src/include/extract.h | 2 +- src/include/idmef-message-id.h | 2 +- src/include/idmef-msg-send.h | 2 +- src/include/idmef-tree-func.h | 2 +- src/include/idmef-tree.h | 2 +- src/include/plugin-common-prv.h | 2 +- src/include/plugin-common.h | 2 +- src/include/prelude-async.h | 2 +- src/include/prelude-auth.h | 2 +- src/include/prelude-client-mgr.h | 2 +- src/include/prelude-client.h | 2 +- src/include/prelude-getopt-wide.h | 2 +- src/include/prelude-getopt.h | 2 +- src/include/prelude-ident.h | 2 +- src/include/prelude-io.h | 2 +- src/include/prelude-list.h | 2 +- src/include/prelude-message-buffered.h | 2 +- src/include/prelude-message-id.h | 2 +- src/include/prelude-message.h | 2 +- src/include/prelude-path.h | 2 +- src/include/sensor.h | 2 +- src/include/ssl-settings.h | 2 +- src/include/ssl.h | 2 +- src/include/variable.h | 4 ++-- src/plugin-common.c | 2 +- src/prelude-async.c | 2 +- src/prelude-auth.c | 2 +- src/prelude-client-mgr.c | 2 +- src/prelude-client.c | 2 +- src/prelude-getopt.c | 2 +- src/prelude-ident.c | 2 +- src/prelude-io.c | 2 +- src/prelude-log.c | 2 +- src/prelude-message-buffered.c | 2 +- src/prelude-message.c | 2 +- src/prelude-path.c | 2 +- src/sensor.c | 2 +- src/timer.c | 2 +- src/variable.c | 4 ++-- 57 files changed, 59 insertions(+), 59 deletions(-) commit 819502362b41cb6cfd0a2ddc15b2d86e1e3730ce Author: Yoann Vandoorselaere Date: Tue Feb 4 10:38:40 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1908 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/daemonize.c | 6 +++++- src/sensor.c | 6 +++--- 3 files changed, 15 insertions(+), 4 deletions(-) commit d827de5c9e4e81fc1c3640c4d3c7ffe8a36ad680 Author: Yoann Vandoorselaere Date: Mon Feb 3 13:42:54 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1891 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/config-engine.c | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit b1ace2297de71eced312d744cce08541a41d1b3d Author: Yoann Vandoorselaere Date: Fri Jan 24 11:01:27 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1811 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 28 +++++++++++++++++ sensor-adduser/ssl-register.c | 10 +++--- src/include/ssl-registration-msg.h | 10 +++--- src/ssl-registration-msg.c | 64 ++++++++++++++++++++++++-------------- 4 files changed, 78 insertions(+), 34 deletions(-) commit 5902882956a18181998e258b230fb2e75e714cde Author: Yoann Vandoorselaere Date: Thu Jan 23 21:31:11 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1809 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 24 ++++++++++++++ src/prelude-getopt.c | 94 +++++++++++++++++++++++----------------------------- 2 files changed, 66 insertions(+), 52 deletions(-) commit 7cac22cc199086e7bda338a64c390004bcb647a7 Author: Yoann Vandoorselaere Date: Tue Jan 21 21:48:51 2003 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1807 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/ssl-gencrypto.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) commit 69dedcd42057a14f60879237b274a4da2eb07777 Author: Yoann Vandoorselaere Date: Wed Dec 18 02:43:45 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1756 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-message-buffered.h | 5 +++++ src/include/prelude-message.h | 4 ++++ src/prelude-getopt-wide.c | 7 +++++-- src/prelude-message-buffered.c | 30 +++++++++++++++++++++++++++++- src/prelude-message.c | 27 +++++++++++++++++++++++++++ 5 files changed, 70 insertions(+), 3 deletions(-) commit 5bd0212360598094bedadbbeb26c825169db7bdf Author: Yoann Vandoorselaere Date: Wed Dec 18 02:05:15 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1755 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt-wide.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 64f7718e2b704df0d479d4480ac4610f2a543ab2 Author: Yoann Vandoorselaere Date: Wed Dec 18 01:49:49 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1754 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 18 +++++++ sensor-adduser/sensor-adduser.c | 2 +- src/include/prelude-message-buffered.h | 9 +++- src/include/prelude-message.h | 3 +- src/prelude-getopt-wide.c | 5 +- src/prelude-message-buffered.c | 85 ++++++++++++++++++++-------------- src/prelude-message.c | 15 +++--- 7 files changed, 85 insertions(+), 52 deletions(-) commit 147ff5256ce6a46bf66ae4e82e94d5cf05594eff Author: Yoann Vandoorselaere Date: Thu Nov 28 11:50:41 2002 +0000 2002-11-22 Yoann Vandoorselaere * src/prelude-getopt.c: input_validation_regex, not input_validation_rexex. (prelude_option_new): (prelude_option_set_longopt): (prelude_option_get_longopt): (prelude_option_set_description): (prelude_option_get_description): (prelude_option_set_has_arg): (prelude_option_get_has_arg): (prelude_option_set_help): (prelude_option_get_help): (prelude_option_set_input_validation_regex): (prelude_option_get_input_validation_regex): (prelude_option_set_input_type): (prelude_option_get_input_type): implemented. (prelude_option_wide_get_msg): make the option message carry the originating sensor ID. * src/prelude-getopt-wide.c (read_option_list): (prelude_option_send_request): (prelude_option_recv_reply): (prelude_option_read_option_list): implemented. Theses function are helper for the one who want to use the administrative console. * src/client-ident.c (declare_ident_to_manager): use prelude_hton64(). * src/common.c (prelude_hton64): new public function. * src/prelude-getopt.c (check_option_reqarg): fix a priority problem when assigning optarg. This could result in a SIGSEGV. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1713 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 40 +++++++ src/client-ident.c | 10 +- src/common.c | 30 +++++ src/include/common.h | 2 + src/include/prelude-getopt-wide.h | 9 +- src/include/prelude-getopt.h | 34 +++++- src/include/prelude-message-id.h | 24 ++-- src/prelude-getopt-wide.c | 241 ++++++++++++++++++++++++++++++++++---- src/prelude-getopt.c | 155 ++++++++++++++++++++---- 9 files changed, 473 insertions(+), 72 deletions(-) commit a100f5700405a34acc5d12b8c441589b95369858 Author: Yoann Vandoorselaere Date: Wed Nov 13 18:37:38 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1704 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt-wide.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit 510d2a2844665210628949674b18606177e7d0ec Author: Yoann Vandoorselaere Date: Wed Nov 13 18:23:15 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1703 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt-wide.c | 2 ++ 1 file changed, 2 insertions(+) commit c2fa7acfc3df051ac64dafdfc96809c77361f8f8 Author: Yoann Vandoorselaere Date: Wed Nov 13 18:03:06 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1702 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 ++ src/Makefile.am | 1 + src/include/prelude-client.h | 1 + src/include/prelude-getopt-wide.h | 12 +-- src/include/prelude-message-id.h | 41 +++++++-- src/prelude-getopt-wide.c | 179 ++++++++++++++++++++++++++++++++++++++ src/prelude-getopt.c | 1 - 7 files changed, 224 insertions(+), 18 deletions(-) commit 55f65e9f7d4aa1b2fb52d48db82dccd82b6eec4a Author: Yoann Vandoorselaere Date: Wed Nov 13 14:42:28 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1701 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 ++++++++ src/include/prelude-getopt.h | 4 ++++ src/prelude-getopt.c | 46 ++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 54 insertions(+), 4 deletions(-) commit a79efe7840b4bc3145ac4b0955b3112e5c20a9c2 Author: Yoann Vandoorselaere Date: Wed Nov 13 02:03:29 2002 +0000 2002-11-13 Yoann Vandoorselaere * src/prelude-client.c (prelude_client_connect): check the return value of prelude_option_wide_get_msg(). Don't try to send option message if it return NULL. * src/prelude-getopt.c (prelude_option_wide_get_msg): return NULL if there is no root_optlist. Fix a possible SIGSEGV on client that doesn't use prelude-getopt. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1699 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 10 ++++++++++ src/prelude-client.c | 11 +++++------ src/prelude-getopt.c | 3 +++ 3 files changed, 18 insertions(+), 6 deletions(-) commit 4dea949e2d0bd7eff7f72fcf8fec1f985924935b Author: Yoann Vandoorselaere Date: Tue Nov 12 12:16:29 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1696 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) commit 7e6adb1074622b40be5de358e32199389c6c5afe Author: Yoann Vandoorselaere Date: Tue Nov 12 12:06:47 2002 +0000 2002-11-12 Yoann Vandoorselaere * COPYING.OpenSSL: * README: Permit linking with OpenSSL so that Debian package might be distributed. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1694 09c5ec92-17d4-0310-903a-819935f44dba COPYING.OpenSSL | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ README | 14 +++++-- 2 files changed, 137 insertions(+), 4 deletions(-) commit 1a4a5d97b4f7d53569fc58c8552c1fec06bb5845 Author: Yoann Vandoorselaere Date: Mon Nov 11 14:37:56 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1666 09c5ec92-17d4-0310-903a-819935f44dba src/include/common.h | 18 ------------------ 1 file changed, 18 deletions(-) commit 5546115f7e88b27ea2d3bac0b77b5231ae3ad92c Author: Yoann Vandoorselaere Date: Mon Nov 11 14:36:55 2002 +0000 2002-11-11 Yoann Vandoorselaere * src/include/prelude-client.h: add PRELUDE_CLIENT_TYPE_MANAGER_PARENT and PRELUDE_CLIENT_TYPE_MANAGER_CHILDREN types. * src/prelude-client.c: remove unused RECONNECT_TIME_WAIT definition. (prelude_client_set_state): (prelude_client_get_state): implemented. (prelude_client_forward): (prelude_client_is_alive): (prelude_client_send_msg): check that the CONNECTED state is set. (prelude_client_connect): allocate the file descriptor here. Make the type of the client part of the message. (prelude_client_set_fd): new function. Close currently opened file descriptor if needed, and set the client FD. By default, the client doesn't own the passed FD. (prelude_client_new): don't allocate the file descriptor here, because the caller might furnish it's own FD. Only allocate the file descriptor by ourself on prelude_client_connect(). (prelude_client_close): (prelude_client_destroy): (handle_connection_breakage): call close_client_fd(). (close_client_fd): impl. Set the CONNECTED state to zero, and destroy the client file descriptor if the CLIENT_OWN_FD bit is set. * src/prelude-client-mgr.c (add_new_client): new function, add a client to the client-mgr. (prelude_client_mgr_tell_client_alive): Tell client-mgr that a given client in the set is alive. (prelude_client_mgr_tell_client_dead): Tell client-mgr that a given client in the set is dead. (prelude_client_mgr_search_client): search a client in the client-mgr list using the address and client type criteria. (search_client): search a given client in the client-mgr list. (walk_manager_lists): return 0 if there is no client in the list. (broadcast_message): on emission failure, only initialize the timer if use_timer is set. (prelude_client_mgr_add_client): new public function, add a client to a given client-mgr, allocating a client-mgr if not already done. * acinclude.m4: remove an errnous parenthesis, leading in AC_DATATYPE_GENERIC not finding any possible replacement for socklen_t. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1665 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 61 +++++++++++ acinclude.m4 | 11 +- src/include/common.h | 18 ++++ src/include/prelude-client-mgr.h | 11 ++ src/include/prelude-client.h | 18 +++- src/include/prelude-message-id.h | 1 + src/prelude-client-mgr.c | 213 +++++++++++++++++++++++++++++++++++---- src/prelude-client.c | 131 ++++++++++++++++-------- 8 files changed, 398 insertions(+), 66 deletions(-) commit 59943c0a3183944ad130663b74011ab58ddb6034 Author: Yoann Vandoorselaere Date: Mon Oct 21 12:29:02 2002 +0000 2002-10-21 Yoann Vandoorselaere * src/string-matching.c (BoyerMoore_CI_StringMatching): (BoyerMoore_StringMatching): return the index where we matched the pattern on success and -1 on error. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1645 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 ++++++++ src/string-matching.c | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) commit 001d1f51c010bd1c02b2f5a4b5521bb3bbaaf92a Author: Yoann Vandoorselaere Date: Mon Sep 23 14:43:32 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1637 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 10 ++++++++++ NEWS | 16 ++++++++++++++++ configure.in | 2 +- src/sensor.c | 3 ++- 4 files changed, 29 insertions(+), 2 deletions(-) commit b1fca8949561ea8f03e331e2cb816e8493791cd9 Author: Guillaume Pelat Date: Mon Sep 16 15:29:18 2002 +0000 2002-09-16 Guillaume Pelat * sensor-adduser/plaintext.c(setup_plaintext): * src/common.c(prelude_read_multiline): * src/config-engine.c(cmp_entry): (create_new_line): * src/prelude-client.c(handle_plaintext_connection): * src/prelude-getopt.c(check_option_optarg): (check_option_reqarg): (lookup_variable_if_needed): * src/ssl-gencrypto.c(get_full_hostname): Fix potential signed/unsigned integer problems. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1612 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 13 +++++++++++++ sensor-adduser/Makefile.am | 2 +- sensor-adduser/plaintext.c | 2 +- src/Makefile.am | 2 +- src/common.c | 2 +- src/config-engine.c | 5 +++-- src/prelude-client.c | 2 +- src/prelude-getopt.c | 12 ++++++------ src/ssl-gencrypto.c | 3 ++- 9 files changed, 29 insertions(+), 14 deletions(-) commit 461bb49bb22cdc83e84418dd351711900e5064d6 Author: Yoann Vandoorselaere Date: Mon Sep 16 15:04:09 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1610 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/Makefile.am | 2 +- src/Makefile.am | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit ed5f7476168be3fcdec9c766d3d31183774fa1e4 Author: Yoann Vandoorselaere Date: Sun Sep 15 17:14:15 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1607 09c5ec92-17d4-0310-903a-819935f44dba acinclude.m4 | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit c084e5b852eb286bf93cdb5576fe427e545d5370 Author: Yoann Vandoorselaere Date: Sun Sep 15 17:10:48 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1606 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 18 ++++++++++++++++++ configure.in | 12 ++++++++++++ sensor-adduser/Makefile.am | 7 +++++-- sensor-adduser/ssl-register.c | 6 ------ src/Makefile.am | 13 ++++++++----- src/ssl-gencrypto.c | 15 --------------- src/ssl-registration-msg.c | 7 ------- src/ssl-settings.c | 7 ------- src/ssl.c | 6 ------ 9 files changed, 43 insertions(+), 48 deletions(-) commit 47bc3df3f603bcc44c150c50a59ecb6a736701a5 Author: Yoann Vandoorselaere Date: Tue Sep 10 08:42:26 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1597 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ NEWS | 16 ++++++++++++++++ configure.in | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) commit d95abedf6dc652d549b3484c4db8c8b27e1280cd Author: Yoann Vandoorselaere Date: Mon Sep 9 13:33:27 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1592 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 11 ++++++++++ sensor-adduser/sensor-adduser.c | 48 ++++++++++++++++++++++++----------------- 2 files changed, 39 insertions(+), 20 deletions(-) commit faa5fedf8f5b5eee11ade99d176ec55390fa715c Author: Yoann Vandoorselaere Date: Sat Sep 7 18:30:51 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1582 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) commit feaaa7ba6ea58e1c5a2e8482b378426a7e176e84 Author: Yoann Vandoorselaere Date: Sat Sep 7 18:30:51 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1581 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 13 +++++++++++++ src/idmef-msg-send.c | 5 ++++- src/prelude-getopt.c | 21 ++++++++++++--------- 3 files changed, 29 insertions(+), 10 deletions(-) commit c591d469c48bd085b716cecb72669b9355bcceb3 Author: Guillaume Pelat Date: Tue Sep 3 20:24:36 2002 +0000 * src/config-engine.c (load_file_in_memory): Fix possible file descriptor leak. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1580 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 ++++- src/config-engine.c | 4 +++- src/daemonize.c | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) commit 086ecc35e5fad40bfb8c4230d268ad2b889bfec4 Author: Guillaume Pelat Date: Tue Sep 3 19:10:44 2002 +0000 2002-09-03 Guillaume Pelat * src/daemonize.c (lockfile_get_exclusive): Fix possible file descriptor leak. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1571 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/daemonize.c | 1 + 2 files changed, 6 insertions(+) commit 98efd0ab81d3982e5cde780ff6c0c653709cd9b7 Author: Yoann Vandoorselaere Date: Thu Aug 29 11:29:24 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1553 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++ NEWS | 11 +++++ configure.in | 2 +- docs/api/tmpl/client-ident.sgml | 8 ++++ docs/api/tmpl/common.sgml | 12 +++++ docs/api/tmpl/idmef-msg-send.sgml | 18 +++++++ docs/api/tmpl/idmef-tree-func.sgml | 90 +++++++++++++++++++++++++++++++++++ docs/api/tmpl/idmef-tree.sgml | 7 +++ docs/api/tmpl/prelude-client.sgml | 17 +++++++ docs/api/tmpl/prelude-getopt.sgml | 35 ++++++++++++++ docs/api/tmpl/prelude-message-id.sgml | 35 ++++++++++++++ docs/api/tmpl/prelude-path.sgml | 24 +++++----- docs/api/tmpl/sensor.sgml | 26 ++++++++++ 13 files changed, 276 insertions(+), 13 deletions(-) commit e58a8804a7dd547d5f535485c1bb175703851c92 Author: Yoann Vandoorselaere Date: Thu Aug 29 11:29:24 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1552 09c5ec92-17d4-0310-903a-819935f44dba docs/api/tmpl/timer.sgml | 7 +++++++ 1 file changed, 7 insertions(+) commit 14c29bfe74f866580f71ce15f57ca1a7c7209faa Author: Yoann Vandoorselaere Date: Thu Aug 29 01:21:55 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1546 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 15 +++++++++++++++ sensor-adduser/ssl-register.c | 2 +- src/plugin-common.c | 2 -- src/prelude-getopt.c | 43 +++++++++++++++++++++++++------------------ 4 files changed, 41 insertions(+), 21 deletions(-) commit 0923bdb197bb9069a854025817113c341d4b4389 Author: Yoann Vandoorselaere Date: Wed Aug 28 00:31:33 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1540 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ configure.in | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) commit c747031a19ec02592f4cec1a0873e09aa3ad588e Author: Yoann Vandoorselaere Date: Mon Aug 26 12:15:40 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1534 09c5ec92-17d4-0310-903a-819935f44dba NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8b41f924859e75d51fcb79a380fb4e67abd728c4 Author: Yoann Vandoorselaere Date: Mon Aug 26 12:06:19 2002 +0000 Sync with libprelude-0-8 git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1532 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 +++--- NEWS | 20 ++++++++++++++++++++ configure.in | 6 +++--- 3 files changed, 26 insertions(+), 6 deletions(-) commit 13eaeb1c9bfcc5f09a0ee9c2e156dadd058911de Author: Yoann Vandoorselaere Date: Sun Aug 25 21:24:48 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1519 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/include/Makefile.am | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 48349a55a67bcc5c65235c6c5e37f9370f79fa21 Author: Yoann Vandoorselaere Date: Thu Aug 22 11:34:43 2002 +0000 2002-08-22 Yoann Vandoorselaere * src/plugin-common.c (plugin_subscribe): Walk the list in reverse order so that we work as a LIFO and a plugin loading another, both subscribing from plugin_init(), won't end up with undefined result. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1501 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/plugin-common.c | 9 +++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) commit ecc2b56597e0d31d6dd96c84e9f0386ca2a0dd65 Author: Krzysztof Zaraska Date: Thu Aug 22 08:47:47 2002 +0000 fixing wrong commit git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1489 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 2 - src/idmef-util.c | 624 ----------------------------------------------- src/include/Makefile.am | 2 - src/include/idmef-util.h | 74 ------ src/include/ntp.h | 90 ------- src/ntp.c | 185 -------------- 6 files changed, 977 deletions(-) commit b4a9d1173b87cf3eb8ca91efde6f68fd97292fb1 Author: Krzysztof Zaraska Date: Thu Aug 22 08:37:34 2002 +0000 added idmef-util.c and dependencies git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1488 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 2 + src/idmef-util.c | 624 +++++++++++++++++++++++++++++++++++++++++++++++ src/include/Makefile.am | 4 +- src/include/idmef-util.h | 74 ++++++ src/include/ntp.h | 90 +++++++ src/ntp.c | 185 ++++++++++++++ 6 files changed, 978 insertions(+), 1 deletion(-) commit d0a012e8f71962cdcf76d06c295f01407ed3a906 Author: Yoann Vandoorselaere Date: Wed Aug 21 21:19:20 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1484 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 9 +++++++++ src/plugin-common.c | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) commit 432528dac3ac099141094565c78913f595a61006 Author: Yoann Vandoorselaere Date: Fri Aug 9 10:19:36 2002 +0000 2002-08-09 Yoann Vandoorselaere Included patch from Guillaume Pelat with slight modifications : * src/ssl-settings.c: Removed ask_manager_addr() and ask_configuration() that were unused. * sensor-adduser/ssl-register.c (ask_configuration): Handle fgets() error return, fix recursive loop in case the user answer "no" to the confirmation question. * src/prelude-auth.c (ask_username): handle fgets() NULL return. (parse_auth_line): free username before returning if we got an error. (comfirm_account_creation): check buf after filling it on the first time (do while, instead of while), buf content may be random before fgets() is called. Increase buf length, because it's not clear if fgets() will stop reading after size-1 byte is read (glibc fgets won't thought, but SUSv2 specify it should). Let enough room for the user to type "yes" or "no" if he want to. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1460 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 29 +++++++++++++++++ docs/api/libprelude-docs.sgml | 2 +- docs/api/libprelude-sections.txt | 34 +++++++++++++++++-- sensor-adduser/ssl-register.c | 54 ++++++++++++++----------------- src/prelude-auth.c | 17 ++++++---- src/ssl-settings.c | 70 +++++++--------------------------------- 6 files changed, 108 insertions(+), 98 deletions(-) commit df833556421384171b85f7627800a22c4f303ebf Author: Yoann Vandoorselaere Date: Thu Aug 8 14:08:08 2002 +0000 slight fix git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1457 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/prelude-client.c | 6 +----- 2 files changed, 8 insertions(+), 5 deletions(-) commit 156627d70edee70886f322fe243a9741aea7fc05 Author: Yoann Vandoorselaere Date: Tue Jul 30 01:00:14 2002 +0000 (empty) git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1446 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ configure.in | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit 4369921793c080e7e7d0138692fa4d5d53381096 Author: Yoann Vandoorselaere Date: Tue Jul 30 00:53:38 2002 +0000 "warning fix..." git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1445 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 137 ++++++++++++++++++++++++++++++++------- docs/api/tmpl/config-engine.sgml | 2 + src/include/idmef-tree.h | 34 +++++----- src/include/prelude-getopt.h | 2 +- src/include/prelude-message.h | 2 +- src/prelude-client.c | 7 +- src/prelude-getopt.c | 2 +- 7 files changed, 139 insertions(+), 47 deletions(-) commit a9b32f906393a030e0d67d1b2cc6abb17a864a0b Author: Yoann Vandoorselaere Date: Mon Jul 29 01:14:59 2002 +0000 "include fix" git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1440 09c5ec92-17d4-0310-903a-819935f44dba src/include/extract.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 40df1370e9c0d48410c262fc004ada1d1b07dea9 Author: Yoann Vandoorselaere Date: Sun Jul 28 15:25:10 2002 +0000 2002-07-28 Yoann Vandoorselaere * src/prelude-getopt.c (parse_argument): respect option priority with command line option. call_option_cb() do this for us. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1434 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/prelude-getopt.c | 44 +++++++++++++------------------------------- 2 files changed, 19 insertions(+), 31 deletions(-) commit ad3ad9f9e9006227267b4ecc64db89ebe1b33376 Author: Yoann Vandoorselaere Date: Thu Jul 25 12:23:46 2002 +0000 2002-07-25 Yoann Vandoorselaere * docs/api/Makefile.am: remove check for gtk-doc on make dist... As we cannot force distcheck to pass the --enable-gtkdoc configure argument, it would fail anyway. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1431 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ docs/api/Makefile.am | 9 +-------- 2 files changed, 8 insertions(+), 8 deletions(-) commit be28c04890f5d3cc66590c14249c77cf5a537e4a Author: Yoann Vandoorselaere Date: Tue Jul 23 13:01:21 2002 +0000 constness fix git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1428 09c5ec92-17d4-0310-903a-819935f44dba src/sensor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5551cfac72a0cdeef37c29e6120ee1b41a0ed8de Author: Yoann Vandoorselaere Date: Tue Jul 23 12:59:55 2002 +0000 2002-07-23 Yoann Vandoorselaere * src/sensor.c (setup_manager_addr): dup manager_cfg_line. (parse_argument): free manager_cfg_line. * src/prelude-getopt.c (call_option_from_cb_list): free(cb->arg). * src/prelude-client.c (prelude_client_close): new function, close a client. (prelude_client_new): set connection_broken to 1 if we are not connected. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1427 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 14 ++++++++++++++ src/include/prelude-client.h | 1 + src/prelude-client.c | 10 +++++++++- src/prelude-getopt.c | 5 +---- src/sensor.c | 15 +++++++-------- 5 files changed, 32 insertions(+), 13 deletions(-) commit 9c915967256b471f89e97eda9bf2a61f40b867c4 Author: Yoann Vandoorselaere Date: Mon Jul 22 18:32:29 2002 +0000 2002-07-22 Yoann Vandoorselaere * src/prelude-client.c (prelude_client_get_fd): new function, return the prelude_io_t used to talk to the client. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1422 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/include/prelude-client.h | 2 ++ src/prelude-client.c | 15 +++++++++++++++ 3 files changed, 23 insertions(+) commit 3b4fbd2c86701bdd64a3a7dd4817c7b05c2d13e8 Author: Yoann Vandoorselaere Date: Fri Jul 19 15:10:28 2002 +0000 "see the changelog" git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1420 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 12 ++++++++++++ README | 7 +++++++ 2 files changed, 19 insertions(+) commit 9b6a96aa381590e077c5c91d8e24c8f3dc5a7b53 Author: Yoann Vandoorselaere Date: Wed Jul 17 17:53:23 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1417 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/sensor.c | 13 +++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) commit 06906d0b545c03f507f360c0d24282d2eac43781 Author: Yoann Vandoorselaere Date: Wed Jul 17 15:17:08 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1415 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 11 +++++++++++ src/prelude-getopt.c | 15 ++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) commit 986e23f6f87a7de322a5146e893996fd5e568a16 Author: Yoann Vandoorselaere Date: Thu Jul 11 09:26:03 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1412 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/sensor.c | 13 ++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) commit ff4f4756348d0634f58ba9229b25e77d3b2bebbd Author: Yoann Vandoorselaere Date: Wed Jul 3 15:20:16 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1404 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4593032a19c12743659767cadde3d0d961df78ef Author: Yoann Vandoorselaere Date: Wed Jul 3 15:17:16 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1403 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/prelude-getopt.c | 11 ++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) commit 840d32a3d1d984ba50e5e35ed4ae677d3159bdf6 Author: Yoann Vandoorselaere Date: Mon Jul 1 20:57:26 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1385 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 26 ++++++++++++++++++++++++++ sensor-adduser/sensor-adduser.c | 10 +++++----- src/common.c | 32 ++++++++++++++++++++++++++++++++ src/config-engine.c | 4 ++-- src/include/common.h | 2 ++ src/include/prelude-getopt.h | 11 ++++++++++- src/prelude-getopt.c | 36 ++++++++++++++++++++++++++++++++---- src/sensor.c | 24 ++++++++++++------------ 8 files changed, 121 insertions(+), 24 deletions(-) commit 7911fbba9fb5587825a37f69f519fa2a36390a5b Author: Krzysztof Zaraska Date: Wed Jun 19 08:26:15 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1384 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) commit 12f18f7e863a64f6e429f58c86b7a27237b2434a Author: Krzysztof Zaraska Date: Wed Jun 19 08:25:48 2002 +0000 fix crash in prelude_sensor_init git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1383 09c5ec92-17d4-0310-903a-819935f44dba src/sensor.c | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) commit 890e6c574ad7b06ce3c5f6d042936169a86c1570 Author: Yoann Vandoorselaere Date: Tue Jun 18 13:01:15 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1382 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/plugin-common.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 03cd9739f74bcd43dd5cf826e61ffcf438d2c3cf Author: Yoann Vandoorselaere Date: Mon Jun 17 09:02:31 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1375 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 24 ++++ src/idmef-msg-send.c | 7 +- src/idmef-tree-func.c | 284 +++++++++++++++++++++++++++++++++++++++++- src/include/idmef-tree-func.h | 32 +++++ src/include/idmef-tree.h | 5 +- 5 files changed, 343 insertions(+), 9 deletions(-) commit 7b08408a1c3b348f651d39af6a19d28167fa739d Author: Yoann Vandoorselaere Date: Fri Jun 14 08:32:57 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1371 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ Makefile.am | 28 ++++++++++++++-------------- 2 files changed, 19 insertions(+), 14 deletions(-) commit bcd50580ba207d641a219b39b24feb7a168300a3 Author: Yoann Vandoorselaere Date: Mon Jun 10 10:33:00 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1357 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/prelude-getopt.c | 19 +++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) commit a392b35baf4ee7ec976d956f12a032052ad903f3 Author: Yoann Vandoorselaere Date: Mon Jun 10 01:36:26 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1355 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit ded70033f785e05b6f7f9bc8988b1982fbaa0128 Author: Yoann Vandoorselaere Date: Mon Jun 10 01:26:24 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1354 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) commit be4feaacd96e990f921ec3c5a6ea1bbe6fce432d Author: Yoann Vandoorselaere Date: Mon Jun 10 00:34:47 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1353 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ configure.in | 13 +------------ 2 files changed, 6 insertions(+), 12 deletions(-) commit 372f905f1d6bcc584fd1ed3ae5cf19c6d6bfe4fa Author: Yoann Vandoorselaere Date: Thu Jun 6 22:34:17 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1345 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 42 ++++++++++ sensors-default.conf | 2 +- src/config-engine.c | 105 +++++++++++------------ src/include/config-engine.h | 6 +- src/prelude-getopt.c | 200 +++++++++++++++++++++++++++++--------------- src/sensor.c | 32 ++++--- 6 files changed, 251 insertions(+), 136 deletions(-) commit 0b57573b9c9960306c3c8d59a8ced2452ebe6802 Author: Yoann Vandoorselaere Date: Thu Jun 6 01:13:00 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1341 09c5ec92-17d4-0310-903a-819935f44dba sensors-default.conf | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) commit 23f4a8eaa326c295df3f748cc482e874297202b2 Author: Yoann Vandoorselaere Date: Thu Jun 6 00:11:10 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1340 09c5ec92-17d4-0310-903a-819935f44dba src/sensor.c | 116 +++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 90 insertions(+), 26 deletions(-) commit b3c939e1dea30203ac86270b6c4d1119ba31876c Author: Yoann Vandoorselaere Date: Wed Jun 5 17:22:22 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1338 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++ docs/api/libprelude-decl.txt | 5 +++ sensor-adduser/ssl-register.c | 1 + src/include/sensor.h | 2 +- src/prelude-client.c | 1 - src/prelude-getopt.c | 19 +++++++----- src/prelude-message-buffered.c | 1 + src/sensor.c | 70 +++++++++++++++++++++++++++++------------- 8 files changed, 74 insertions(+), 31 deletions(-) commit 8a590f3b524c5fc53a3335fdb2f424ba6b9bc25d Author: Yoann Vandoorselaere Date: Wed Jun 5 16:14:39 2002 +0000 2002-06-05 Yoann Vandoorselaere * src/sensor.c (parse_argument): add node and analyzer configuration only option. (prelude_analyzer_fill_information): new function, setup an analyzer. * sensors-default.conf (manager-addr): Add commentary for generic analyzer informations. * src/sensor.c (prelude_heartbeat_register_cb): don't initialize timer and send initial heartbeat if heartbeat_repeat_time is 0. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1337 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 +++ sensors-default.conf | 35 ++++++++++++ src/include/sensor.h | 2 + src/sensor.c | 158 +++++++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 197 insertions(+), 6 deletions(-) commit 816d57d017be0d91a49b9bc022dd978503b069bd Author: Yoann Vandoorselaere Date: Wed Jun 5 10:14:45 2002 +0000 2002-06-05 Yoann Vandoorselaere * src/sensor.c (prelude_heartbeat_register_cb): don't initialize timer and send initial heartbeat if heartbeat_repeat_time is 0. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1336 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 13 +++++++++++++ docs/api/libprelude-decl.txt | 38 ++++++++++++++++++++++++++------------ src/sensor.c | 3 +++ 3 files changed, 42 insertions(+), 12 deletions(-) commit 774aa59a104d36c1124195a6b6a3bb9fc7e7dbf6 Author: Yoann Vandoorselaere Date: Wed Jun 5 00:01:40 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1335 09c5ec92-17d4-0310-903a-819935f44dba CREDITS | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 4ebbb07ef77077cff5e20e5c4555931fd6755acb Author: Yoann Vandoorselaere Date: Tue Jun 4 12:27:26 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1332 09c5ec92-17d4-0310-903a-819935f44dba autogen.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3d6e291d4b10eccb8d2a2f76339aa28611da6ed4 Author: Yoann Vandoorselaere Date: Mon Jun 3 19:33:55 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1331 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/ssl-register.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit f65bc51f3edbf46ce05416e3a6c0e2e3b7735b4b Author: Yoann Vandoorselaere Date: Sat Jun 1 10:36:34 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1323 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/ssl-register.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f94247e564c27faaf2bacdd3abd48f228c55d546 Author: Yoann Vandoorselaere Date: Sat Jun 1 02:36:24 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1322 09c5ec92-17d4-0310-903a-819935f44dba src/sensor.c | 5 +++++ 1 file changed, 5 insertions(+) commit 2c79a770853bce848c560f441da67faba942c598 Author: Yoann Vandoorselaere Date: Sat Jun 1 02:35:27 2002 +0000 2002-06-01 Yoann Vandoorselaere * src/sensor.c (parse_argument): set --manager-addr option to be ran last, so that applications that change user throught prelude-getopt don't get a message telling to run sensor-adduser with --uid 0 when it should be another uid. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1321 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/sensor.c | 11 ++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) commit e819201e3b49702e6ce76406ba05e764842735fe Author: Yoann Vandoorselaere Date: Sat Jun 1 02:28:07 2002 +0000 2002-06-01 Yoann Vandoorselaere * src/ssl-gencrypto.c (add_DN_object): use X509_NAME_add_entry() together with X509_NAME_ENTRY_create_by_NID() so that we work on with older OpenSSL version. * src/client-ident.c (prelude_client_set_analyzer_id): new function. * sensor-adduser/sensor-adduser.c (setup_sensor_files): don't call generate_sensor_ident here. Take the ident as argument. (main): generate the ident here, and use the prelude_client_set_analyzer_id function so that the ident will be used to generate the SSL certificate subject. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1320 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 18 ++++++++++++++++++ sensor-adduser/sensor-adduser.c | 25 +++++++++++++++---------- src/client-ident.c | 6 ++++++ src/include/client-ident.h | 2 ++ src/ssl-gencrypto.c | 25 ++++++++++++++----------- 5 files changed, 55 insertions(+), 21 deletions(-) commit 8e819b2bf89a50c174d2c3914c630ecf7af9c10e Author: Yoann Vandoorselaere Date: Fri May 31 20:11:05 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1313 09c5ec92-17d4-0310-903a-819935f44dba src/include/sensor.h | 2 +- src/sensor.c | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) commit d25982c314efa334332f88c4a00f6b4c2d51b573 Author: Yoann Vandoorselaere Date: Fri May 31 20:03:02 2002 +0000 2002-05-31 Yoann Vandoorselaere * src/sensor.c (setup_heartbeat_repeat_time): impl - set heartbeat timer timeout. (prelude_heartbeat_register_cb): new function, setup the heartbeat timer and callback, and send an initial heartbeat. (prelude_heartbeat_send): new function, send an hearbeat. (parse_argument): stop providing short option, there is much chance that we'll conflict with the apps. (parse_argument): new global option, "heartbeat-time", to set timer heartbeat timeout. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1312 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 16 ++++++++++ src/include/sensor.h | 4 +++ src/sensor.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 105 insertions(+), 2 deletions(-) commit 6d3401e615d6d04167f06bc6acb0ca4b9e7545a6 Author: Yoann Vandoorselaere Date: Fri May 31 11:24:31 2002 +0000 2002-05-31 Yoann Vandoorselaere * src/idmef-msg-send.c (idmef_send_alert): fix a typo, send analyzer time instead of sending twice detect time. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1307 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/idmef-msg-send.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) commit 28cc4f1a29f6b7f0b71661fc73bb87bdc7a67ebd Author: Yoann Vandoorselaere Date: Thu May 30 16:10:21 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1299 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 10 ++++++++++ src/idmef-msg-send.c | 13 +++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) commit 477c14fce773c979987f24b9f368ed978308bab8 Author: Yoann Vandoorselaere Date: Thu May 30 15:11:05 2002 +0000 2002-05-30 Yoann Vandoorselaere * src/idmef-msg-send.c (idmef_send_create_time): don't get create time here since it prevent caller to override the value. * src/idmef-tree-func.c (idmef_alert_new): get create time here. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1296 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/idmef-msg-send.c | 21 +++++++++++++-------- src/idmef-tree-func.c | 6 ++++++ src/include/idmef-msg-send.h | 2 ++ 4 files changed, 28 insertions(+), 8 deletions(-) commit a2b308668324b8d376622857c2499eaf739d801c Author: Yoann Vandoorselaere Date: Thu May 30 09:43:46 2002 +0000 2002-05-30 Yoann Vandoorselaere * src/include/idmef-tree-func.h (idmef_additional_data_set_data): new inline function. * src/idmef-msg-send.c (idmef_send_additional_data): don't use idmef_send_string for AdditionalData data field. * src/include/idmef-tree.h: AdditionalData data field is not an idmef_string_t... git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1284 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 12 ++++++++++++ docs/api/libprelude-decl.txt | 41 ++++++++++++++++++++++++++++++++++++++++- src/idmef-msg-send.c | 2 +- src/include/idmef-tree-func.h | 14 ++++++++++++++ src/include/idmef-tree.h | 7 ++++--- 5 files changed, 71 insertions(+), 5 deletions(-) commit d543b2d3d84e7cafd09321c7d509f46f7931a006 Author: Laurent Oudot Date: Thu May 30 02:27:07 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1280 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ sensor-adduser/sensor-adduser.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 5f7718c3b421d651f121c7fd7a6cbd2c00c90634 Author: Yoann Vandoorselaere Date: Fri May 24 12:22:57 2002 +0000 * src/timer.c (timer_flush): new function, expire remaining timer. (walk_and_wake_up_timer): remove debugging code. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1254 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/include/timer.h | 6 ++++++ src/timer.c | 34 ++++++++++++++++------------------ 3 files changed, 29 insertions(+), 18 deletions(-) commit ac52a95b33a127afffe921bd83e6f3507b560d27 Author: Krzysztof Zaraska Date: Tue May 21 20:37:39 2002 +0000 improved pthread detection code git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1244 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ configure.in | 30 +++++++++++++----------------- 2 files changed, 18 insertions(+), 17 deletions(-) commit 05b4159fa6047dc979f199891e712b085eeec4df Author: Yoann Vandoorselaere Date: Tue May 21 14:55:56 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1240 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ sensor-adduser/sensor-adduser.c | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) commit 82ee7d5deeeb7cf0e0e9fd3e7f5e4f1d9d7cb421 Author: Yoann Vandoorselaere Date: Tue May 21 07:18:44 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1235 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/client-ident.c | 1 + src/include/idmef-tree-func.h | 2 +- src/include/string-matching.h | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) commit f35825befdc4bc23fe89407434e0e3620fc188a0 Author: Baptiste Malguy Date: Fri May 17 15:04:53 2002 +0000 * src/include/prelude-message-id.h: added some definition for counter-measure stuff. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1210 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/include/prelude-message-id.h | 10 ++++++++++ 2 files changed, 15 insertions(+) commit 943f0c4c268dba1665244b074898fc028aeb36e7 Author: Yoann Vandoorselaere Date: Thu May 16 15:20:38 2002 +0000 * src/ssl-registration-msg.c (prelude_ssl_save_cert): * src/ssl-gencrypto.c (prelude_ssl_gen_crypto): * src/prelude-auth.c (open_auth_file): Show more information on error. Use -1 instead of 0 as the fchown() GID argument. This avoid problem when sensor-adduser is used by a non priviledged user. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1192 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 +++++++- docs/api/libprelude-decl.txt | 8 -------- docs/api/tmpl/libprelude-unused.sgml | 12 ++++++++++++ docs/api/tmpl/list.sgml | 7 ------- docs/api/tmpl/ssl-registration-msg.sgml | 7 ------- src/prelude-auth.c | 2 +- src/ssl-gencrypto.c | 4 ++-- src/ssl-registration-msg.c | 4 ++-- 8 files changed, 24 insertions(+), 28 deletions(-) commit 699553fc04dfa53a36d9dd3a9767881a68d10494 Author: Yoann Vandoorselaere Date: Thu May 16 15:01:37 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1191 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/prelude-auth.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit cb903a4539129df4cb8dcf08956834bd669925a1 Author: Baptiste Malguy Date: Thu May 16 10:14:17 2002 +0000 * src/include/*.h: added some #ifndef/#define and #endif in the header files for dependency inclusion purposes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1185 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/include/client-ident.h | 5 +++++ src/include/common.h | 5 +++++ src/include/config-engine.h | 4 ++++ src/include/daemonize.h | 5 +++++ src/include/extract.h | 6 +++--- src/include/idmef-message-id.h | 5 +++-- src/include/idmef-msg-send.h | 5 +++++ src/include/idmef-tree-func.h | 15 +++------------ src/include/idmef-tree.h | 6 +++--- src/include/list.h | 8 +++----- src/include/plugin-common-prv.h | 8 +++----- src/include/plugin-common.h | 6 +++--- src/include/prelude-async.h | 12 ++++-------- src/include/prelude-auth.h | 4 ++++ src/include/prelude-client-mgr.h | 4 ++++ src/include/prelude-client.h | 5 ++++- src/include/prelude-getopt-wide.h | 6 ++++++ src/include/prelude-getopt.h | 4 ++++ src/include/prelude-ident.h | 5 +++++ src/include/prelude-io.h | 5 +++++ src/include/prelude-list.h | 5 +++++ src/include/prelude-log.h | 5 +++++ src/include/prelude-message-buffered.h | 28 ++++++++++++++++++++++++++++ src/include/prelude-message-id.h | 5 +++++ src/include/prelude-message.h | 4 ++++ src/include/prelude-path.h | 6 ++++++ src/include/sensor.h | 5 +++++ src/include/ssl-gencrypto.h | 6 +++--- src/include/ssl-registration-msg.h | 7 +++---- src/include/ssl-settings.h | 4 ++++ src/include/ssl.h | 5 +++++ src/include/string-matching.h | 6 +++--- src/include/threads.h | 5 +++++ src/include/timer.h | 6 +++--- src/include/variable.h | 6 +++--- 36 files changed, 174 insertions(+), 58 deletions(-) commit ba7b2e9f3c21a7a368c4c5c45bb553ff070b9514 Author: Yoann Vandoorselaere Date: Wed May 15 17:01:39 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1181 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 70ded68163f277774198585b8258c839a950abd2 Author: Yoann Vandoorselaere Date: Wed May 15 16:48:58 2002 +0000 * src/prelude-getopt.c (parse_argument): don't lookup variable here. (check_option): take a size argument. (check_option_reqarg): (check_option_optarg): modified theses function so that option with multiple arguments are taken into account without the arguments needing to be quoted. (call_option_from_cb_list): call lookup_variable_if_needed() here. (call_option_cb): copy the argument. (lookup_variable_if_needed): ability to lookup several variable in one buffer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1180 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 15 +++++++ src/prelude-getopt.c | 121 ++++++++++++++++++++++++++++++++++----------------- 2 files changed, 96 insertions(+), 40 deletions(-) commit 66526dd559aaf2eb53ce2bccd9242788821d0f40 Author: Yoann Vandoorselaere Date: Wed May 15 11:30:32 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1178 09c5ec92-17d4-0310-903a-819935f44dba docs/api/Makefile.am | 4 ++++ docs/api/libprelude-docs.sgml | 2 +- docs/api/tmpl/prelude-ident.sgml | 2 +- docs/api/tmpl/prelude-message.sgml | 13 +++++++------ 4 files changed, 13 insertions(+), 8 deletions(-) commit 6f28bdcf39befb4807ff5f250bd3a0e3995cc9bd Author: Yoann Vandoorselaere Date: Wed May 15 10:55:27 2002 +0000 * src/client-ident.c (declare_ident_to_manager): On big endian system, copy sensor_ident to nident so that we don't send an uninitialized value. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1177 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/client-ident.c | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) commit d39c970346a035caeac163889670fdcec50df5db Author: Yoann Vandoorselaere Date: Wed May 15 08:06:33 2002 +0000 Fix last remaining prefix problem. * Makefile.am (install-data-local): create sensors_spool_dir. * src/prelude-path.c: remove BACKUP_DIR. (prelude_get_backup_filename): use SENSORS_SPOOL_DIR. * src/Makefile.am (DEFS): define SENSORS_SPOOL_DIR. * configure.in (sensors_spool_dir): configure spool directory. * src/common.c (prelude_resolve_addr): document this function. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1174 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 20 ++ Makefile.am | 1 + configure.in | 2 + docs/api/libprelude-decl.txt | 30 +- docs/api/libprelude-docs.sgml | 2 - docs/api/libprelude-sections.txt | 8 - docs/api/tmpl/client-ident.sgml | 2 - docs/api/tmpl/common-gdb.sgml | 8 - docs/api/tmpl/common.sgml | 55 +--- docs/api/tmpl/extract.sgml | 2 - docs/api/tmpl/idmef-message-id.sgml | 456 ++++++++++++++++++++++------ docs/api/tmpl/idmef-msg-send.sgml | 2 - docs/api/tmpl/idmef-tree-func.sgml | 2 - docs/api/tmpl/idmef-tree.sgml | 135 +++++++- docs/api/tmpl/libprelude-unused.sgml | 40 +++ docs/api/tmpl/list.sgml | 19 ++ docs/api/tmpl/plugin-common-prv.sgml | 9 + docs/api/tmpl/prelude-auth.sgml | 27 ++ docs/api/tmpl/prelude-client.sgml | 38 +++ docs/api/tmpl/prelude-getopt-wide.sgml | 2 - docs/api/tmpl/prelude-getopt.sgml | 30 ++ docs/api/tmpl/prelude-ident.sgml | 2 - docs/api/tmpl/prelude-log.sgml | 2 - docs/api/tmpl/prelude-message-buffered.sgml | 2 - docs/api/tmpl/prelude-message-id.sgml | 2 - docs/api/tmpl/prelude-message.sgml | 54 ++++ docs/api/tmpl/prelude-path.sgml | 6 +- docs/api/tmpl/sensor.sgml | 16 + docs/api/tmpl/ssl-settings.sgml | 2 - docs/api/tmpl/threads.sgml | 2 - src/Makefile.am | 2 +- src/common.c | 9 + src/prelude-path.c | 8 +- 33 files changed, 784 insertions(+), 213 deletions(-) commit 2dc6440825f345cbf401ce4618a33e0127a53c8e Author: Yoann Vandoorselaere Date: Tue May 14 19:04:06 2002 +0000 * src/prelude-message.c (set_data): check call_alloc_cb return value. Avoid a possible NULL pointer dereference on out of memory condition. * src/prelude-message-buffered.c: remove unused send_msg_cb member. (flush_msg_cb): print an error if prelude_msg_dynamic_new() return NULL. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1173 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 12 ++++++++++++ src/prelude-message-buffered.c | 5 ++++- src/prelude-message.c | 2 ++ 3 files changed, 18 insertions(+), 1 deletion(-) commit a4b3c564d91728f9baf30124998b2eda05783520 Author: Vincent Glaume Date: Tue May 14 16:18:57 2002 +0000 * src/include/prelude-path.h: (prelude_get_socket_filename) has a new prototype. * src/prelude-path.c (prelude_get_socket_filename): builds a filename based on a port number for the unix socket, which allows to use several unix sockets. * src/prelude-client.c: complies to the new unix socket management. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1171 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 12 ++++++++++++ src/include/prelude-path.h | 4 +++- src/prelude-client.c | 13 ++++++++----- src/prelude-path.c | 4 ++-- 4 files changed, 25 insertions(+), 8 deletions(-) commit d6a1dccfdf41b94f618065ffe660637045878824 Author: Yoann Vandoorselaere Date: Mon May 13 09:29:42 2002 +0000 * src/prelude-client.c (prelude_client_connect): send ident before sending option list. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1167 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 + docs/api/libprelude-decl.txt | 10 +- docs/api/libprelude-docs.sgml | 38 ++++-- docs/api/libprelude-sections.txt | 261 ++++++++++++++++++++++++++++++--------- src/prelude-client.c | 10 +- 5 files changed, 239 insertions(+), 85 deletions(-) commit 1fdf57a7a53eebbf0ab78951ed63de9e7efe4278 Author: Yoann Vandoorselaere Date: Mon May 13 08:43:07 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1165 09c5ec92-17d4-0310-903a-819935f44dba docs/api/tmpl/client-ident.sgml | 37 +++ docs/api/tmpl/common-gdb.sgml | 56 ++++ docs/api/tmpl/extract.sgml | 78 ++++++ docs/api/tmpl/idmef-msg-send.sgml | 404 ++++++++++++++++++++++++++++ docs/api/tmpl/idmef-tree-func.sgml | 398 +++++++++++++++++++++++++++ docs/api/tmpl/prelude-getopt-wide.sgml | 81 ++++++ docs/api/tmpl/prelude-ident.sgml | 53 ++++ docs/api/tmpl/prelude-log.sgml | 81 ++++++ docs/api/tmpl/prelude-message-buffered.sgml | 64 +++++ docs/api/tmpl/prelude-message-id.sgml | 123 +++++++++ docs/api/tmpl/prelude-path.sgml | 94 +++++++ docs/api/tmpl/ssl-settings.sgml | 27 ++ docs/api/tmpl/threads.sgml | 34 +++ 13 files changed, 1530 insertions(+) commit 9e07615822ba43bebe331703fcc41588e151869d Author: Yoann Vandoorselaere Date: Tue May 7 23:21:05 2002 +0000 * src/include/prelude-message-id.h: remove deprecated MSG ID. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1164 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/include/prelude-message-id.h | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-) commit 426f3c819f6e891da70fbfd39a33f263286244b0 Author: Yoann Vandoorselaere Date: Tue May 7 22:48:42 2002 +0000 * src/client-ident.c: removed code for requesting an ID to the Manager, since we now generate the ident number ourselv. (prelude_client_ident_init): read the ident generated by sensor-adduser from the ident file. * sensor-adduser/sensor-adduser.c (elf_hash): (time_hash): (generate_sensor_ident): (register_sensor_ident): (setup_sensor_files): generate, and register sensor ident. * configure.in (sensors_config_dir): declare sensor_ident_file. * Makefile.am (install-data-local): remove sensor_ident_dir. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1161 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 23 ++++++ Makefile.am | 1 - configure.in | 4 +- sensor-adduser/Makefile.am | 2 +- sensor-adduser/sensor-adduser.c | 121 +++++++++++++++++++++++++++- src/Makefile.am | 2 +- src/client-ident.c | 172 ++++++++++------------------------------ 7 files changed, 186 insertions(+), 139 deletions(-) commit a5bd288a84130fdd83d0fd4e4e69c7ae37b50e7d Author: Yoann Vandoorselaere Date: Mon May 6 14:19:38 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1151 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 +- configure.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 8a0e7c740f3e455413bd55f334a0139eef70c6c0 Author: Yoann Vandoorselaere Date: Mon May 6 13:42:49 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1149 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ docs/api/Makefile.am | 46 ++++++++++++++++++++++++---------------------- 2 files changed, 30 insertions(+), 22 deletions(-) commit 84cc13cf14a2205e557b5b51e056e16b19bbb201 Author: Yoann Vandoorselaere Date: Sun May 5 19:11:01 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1140 09c5ec92-17d4-0310-903a-819935f44dba acconfig.h | 5 ----- 1 file changed, 5 deletions(-) commit 46c43c8fff613fe57f22c660a899d8b558d683d5 Author: Yoann Vandoorselaere Date: Sun May 5 19:06:32 2002 +0000 make dist should now work. Also localstatedir is now respected. (Existing sensors / manager installation should re-create sensors account). * configure.in (sensors_config_dir): declare sensor_ident_dir. * Makefile.am (install-data-local): move authentication file to configuration dir. * configure.in: modify call to AC_DEFINE() so that we don't need acconfig.h anymore. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1139 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 15 +++++++++++++++ Makefile.am | 6 +++--- autogen.sh | 2 +- configure.in | 7 +++++-- docs/api/libprelude-decl.txt | 21 +++++++++++++++++++-- docs/api/tmpl/prelude-client-mgr.sgml | 1 + src/Makefile.am | 2 +- src/client-ident.c | 3 +-- src/prelude-path.c | 4 ++-- 9 files changed, 48 insertions(+), 13 deletions(-) commit f31760cc1401545f39c43299056c122add43aa82 Author: Yoann Vandoorselaere Date: Tue Apr 30 15:58:24 2002 +0000 * src/prelude-client-mgr.c (prelude_client_mgr_new): take a new type argument. For each created client, the specified type will be associated. * src/sensor.c: get rid of the is_caller_a_sensor variable. (setup_manager_addr): set client type to PRELUDE_CLIENT_TYPE_SENSOR. * src/prelude-client.c (prelude_client_new): default client type is PRELUDE_CLIENT_TYPE_OTHER. (prelude_client_connect): pass the client type to prelude_client_ident_send(). (prelude_client_set_type): new function, set client type. * src/client-ident.c (prelude_client_ident_send): now take a client_type argument. Only declare ident if type is PRELUDE_CLIENT_TYPE_SENSOR or PRELUDE_CLIENT_TYPE_MANAGER. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1120 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 23 +++++++++++++++++++++++ src/client-ident.c | 15 ++++++++++----- src/include/client-ident.h | 2 +- src/include/prelude-client-mgr.h | 2 +- src/include/prelude-client.h | 11 ++++++++++- src/prelude-client-mgr.c | 13 ++++++++----- src/prelude-client.c | 18 ++++++++++++++---- src/sensor.c | 7 ++----- 8 files changed, 69 insertions(+), 22 deletions(-) commit 19cd2f7a0288a4448212caaecf83b64a0e235358 Author: Yoann Vandoorselaere Date: Tue Apr 30 12:48:16 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1119 09c5ec92-17d4-0310-903a-819935f44dba src/string-matching.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c93bec160293c1306e74e780b2de65590780a363 Author: Yoann Vandoorselaere Date: Tue Apr 30 12:31:48 2002 +0000 * src/string-matching.c: (BoyerMoore_StringMatching): (BoyerMoore_CI_StringMatching): Fix a grave problem that could result in reading uninitialized memory. Made the code of theses function readable. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1118 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 10 ++++++++++ src/string-matching.c | 25 +++++++++++++------------ 2 files changed, 23 insertions(+), 12 deletions(-) commit f932c8b452443f220364459d61b4cc95db2f3268 Author: Yoann Vandoorselaere Date: Sun Apr 28 16:13:08 2002 +0000 * configure.in: autoconf 2.52 still have the AC_C_BIGENDIAN bug - require 2.53. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1106 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ configure.in | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit f4a6600e7aa8cff88fdefbe89cd21831cd8a781c Author: Yoann Vandoorselaere Date: Sat Apr 27 20:37:28 2002 +0000 * configure.in: use AM_PROG_LIBTOOL, for older libtool/automake installation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1102 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ configure.in | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) commit bb2242b296d6ec2ce46e3c8f1273607085adb69c Author: Yoann Vandoorselaere Date: Sat Apr 27 16:08:40 2002 +0000 (plugin_load_single): return -1 if the plugin is already loaded so that we don't count the plugin twice. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1091 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 2 ++ src/plugin-common.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit 65b461cd1970e2cc9da15918f5b073fc1b1aefb6 Author: Yoann Vandoorselaere Date: Sat Apr 27 00:36:28 2002 +0000 * src/plugin-common.c: remove dlfcn.h - not needed anymore with libltdl. (plugin_load_from_dir): remove the filename extension, so that libltdl decide of the best extension to use on this architecture. (plugin_load_single): use libltdl function. As there is often several file associated with a libtool plugin (from which the plugin can be loaded), and because libtool load the one that suit it best (for sake of compatibility), we have to check if we do not already have an handle for this plugin. (is_plugin_already_loaded): search a plugin by handle. * src/Makefile.am (INCLUDES): add libltdl include PATH. * configure.in: setup libltdl. * autogen.sh: libtoolize --ltdl * Makefile.am (SUBDIRS): libltdl. Theses change fix possible portability problem with dynamically loadable plugin API (OpenBSD plugin loading didn't work before this). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1086 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 26 +++++++++++ Makefile.am | 2 +- autogen.sh | 2 +- configure.in | 18 +++++--- docs/api/libprelude-decl.txt | 72 ++++++++++++++++++++++++----- docs/api/tmpl/libprelude-unused.sgml | 22 +++++++++ src/Makefile.am | 3 +- src/plugin-common.c | 89 ++++++++++++++++++++++++------------ 8 files changed, 183 insertions(+), 51 deletions(-) commit 2ea57e6e49f7af5708224f421d68856cec7e0a3b Author: Yoann Vandoorselaere Date: Fri Apr 26 09:51:00 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1080 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ configure.in | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit 13e434437729a5ab0af881921e7e1701d66ccd86 Author: Yoann Vandoorselaere Date: Fri Apr 26 09:36:32 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1079 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 1 - 1 file changed, 1 deletion(-) commit f4506aeceb268bad1c1a620ed99406cf32124ab7 Author: Yoann Vandoorselaere Date: Thu Apr 25 15:45:04 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1077 09c5ec92-17d4-0310-903a-819935f44dba src/include/extract.h | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) commit 97dd2eb0f38d93ff5e421490728c64cfb4c55553 Author: Yoann Vandoorselaere Date: Thu Apr 25 00:33:49 2002 +0000 * src/prelude-message.c (set_data): s/unsigned char/uint8_t/ git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1072 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/prelude-message.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit e4c060b6ffd8e55f44ed7faa48da2a9d47348758 Author: Yoann Vandoorselaere Date: Wed Apr 24 21:57:00 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1069 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/include/list.h | 2 +- src/include/prelude-path.h | 2 +- src/prelude-message.c | 6 +++--- src/prelude-path.c | 2 +- 5 files changed, 13 insertions(+), 6 deletions(-) commit b3f3490e9b495304f22b99fb42d1a81a8683f626 Author: Yoann Vandoorselaere Date: Wed Apr 24 00:45:30 2002 +0000 * src/include/extract.h: (byte): create a second byte macro conditionaly compiled depending on the byte order. (extract_uint64): do not try to translate from network byte order to host byte order if WORDS_BIGENDIAN is defined. (align_uint32): (align_uint64): (align_uint16): shift each byte. * src/idmef-msg-send.c (idmef_send_uint64): only translate analyzer ident to network byte order if we are on a little endian system. s/ntohl/htonl/. * src/client-ident.c (declare_ident_to_manager): only translate analyzer ident to network byte order if we are on a little endian system. * configure.in: prereq autoconf 2.53. use AC_C_BIGENDIAN macro to determine host byte order, libprelude-config --cflags also include this definition. * README: update. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1064 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 27 +++++++++++++++++++++++++++ README | 2 +- configure.in | 18 +++++++++++++----- src/client-ident.c | 4 +++- src/idmef-msg-send.c | 8 +++++--- 5 files changed, 49 insertions(+), 10 deletions(-) commit 705625ce58282b07d272896c03d19e549f12cb6c Author: Yoann Vandoorselaere Date: Tue Apr 16 11:27:19 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1032 09c5ec92-17d4-0310-903a-819935f44dba src/include/extract.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit eb6c0a17fa03dee729ac225d07a5d1b7fcba762b Author: Yoann Vandoorselaere Date: Tue Apr 16 11:25:13 2002 +0000 * src/include/extract.h: stop using memmove for alignment care ! Checksum performance test resulted in ~ 600MB/s without alignment care, and ~ 20MB/s with it (memmove). The new version (which cast every byte of the buffer to a single 8 bits integer and OR them all) run at ~ 200MB/s, which is way better. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1031 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 10 ++++++++++ src/include/extract.h | 25 ++++++++----------------- 2 files changed, 18 insertions(+), 17 deletions(-) commit cb4062061cff635fb3b492b2e903e4271d601880 Author: Yoann Vandoorselaere Date: Mon Apr 15 14:10:03 2002 +0000 * src/include/list.h: included modified patch from Vincent Glaume adding function to walk the list in reverse order. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1021 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/include/list.h | 8 ++++++++ 2 files changed, 14 insertions(+) commit 954579702e2190ef7af3612b28a238863f531ab8 Author: Yoann Vandoorselaere Date: Sun Apr 14 08:34:01 2002 +0000 * src/prelude-getopt.c (process_option_cfg_hook): (get_max_char): slight cleanup. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1018 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/prelude-getopt.c | 14 ++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) commit da26d765c5017310b1937728bbae3128e0644b0e Author: Yoann Vandoorselaere Date: Sun Apr 14 08:32:44 2002 +0000 * src/config-engine.c (config_get_section): don't check if the line is a comment here. (search_section): do it here. This fix a bug where we wouldn't find an option because a commented one would match. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1017 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/config-engine.c | 11 ++++------- 2 files changed, 11 insertions(+), 7 deletions(-) commit 6ec016b08a0abb6e8b5633ce58cfa2f063d3eb65 Author: Yoann Vandoorselaere Date: Sun Apr 14 08:08:30 2002 +0000 * src/prelude-getopt.c (print_wrapped): don't print \0 at the end of the line. This fix bug #0000029 (control character at end of help lines). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1016 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/prelude-getopt.c | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) commit b593b1daa56e64b6beade865d60deab0e158193c Author: Yoann Vandoorselaere Date: Sat Apr 13 12:35:20 2002 +0000 * src/prelude-io.c (handle_ssl_error): new function, handle SSL error nicely. (ssl_read): (ssl_write): correct SSL error handling. Should help with some SSL communication problem. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@1015 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 9 +++++++++ src/prelude-io.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 55 insertions(+), 10 deletions(-) commit 47aca46778dfa198db507a9646594a25db26f504 Author: Yoann Vandoorselaere Date: Thu Apr 11 12:44:15 2002 +0000 * Makefile.am (install-data-local): sensors-default.conf: should be world readable. So that non root sensor know where to reach the Prelude Manager. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@999 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ Makefile.am | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) commit 4be55545ead7a9972111da06558f6decd30d7c3f Author: Yoann Vandoorselaere Date: Thu Apr 11 11:55:28 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@998 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 4bbb504eb1ca83ffa70b16fdb2c8ec0fa46adb9e Author: Yoann Vandoorselaere Date: Thu Apr 11 11:49:42 2002 +0000 * src/include/extract.h: (align_uint16): (align_uint32): (align_uint64): (align_ipv4_addr): network to host order translation is done in extract_xx function. Alignment is done in align_xx function. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@997 09c5ec92-17d4-0310-903a-819935f44dba src/include/extract.h | 73 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 21 deletions(-) commit cf37ab23cbb805ae19edcd970662e0f8cdf29cb2 Author: Yoann Vandoorselaere Date: Tue Apr 9 15:51:32 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@984 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 5 +++++ 1 file changed, 5 insertions(+) commit e9ea8979d428b6b99067155e0dafe4fa812f5b4c Author: Yoann Vandoorselaere Date: Tue Apr 9 15:46:10 2002 +0000 * configure.in: stop using profile-arcs for optimised build. GCC generate bugged code with it. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@983 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ configure.in | 30 ++++-------------------------- 2 files changed, 9 insertions(+), 26 deletions(-) commit 351cbe5bd9fdcb72f337bd1b73df64c6cd6ab411 Author: Yoann Vandoorselaere Date: Mon Apr 8 11:53:43 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@974 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 42bfb93bbe7c06afdca854703c55044b9020096f Author: Yoann Vandoorselaere Date: Mon Apr 8 11:46:43 2002 +0000 * src/prelude-client-mgr.c (broadcast_saved_message): print how many bytes we flushed... * src/prelude-message.c (prelude_msg_forward): use memcpy() to copy dlen. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@973 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/prelude-client-mgr.c | 2 ++ src/prelude-message.c | 9 +++------ 3 files changed, 11 insertions(+), 6 deletions(-) commit ff934e656d7634580afe459b64108e00d85feb3f Author: Yoann Vandoorselaere Date: Mon Apr 8 08:13:03 2002 +0000 * src/plugin-common.c (plugin_search_by_name): new function, search a plugin by name. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@970 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/include/plugin-common-prv.h | 2 ++ src/plugin-common.c | 29 ++++++++++++++++++++++++++++- 3 files changed, 33 insertions(+), 1 deletion(-) commit dc9a7560870d4736b8f26a7f13eea8b12751b533 Author: Yoann Vandoorselaere Date: Mon Apr 8 07:32:07 2002 +0000 * Makefile.am (install-data-local): Only install default configuration file if it does not exit... If a configuration file is already present, warn the user and install in sensors-default.conf-dist. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@969 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ Makefile.am | 25 +++++++++++++++++-------- 2 files changed, 24 insertions(+), 8 deletions(-) commit 046b98ed7d6b0fcaa9f01c423c5a7cc1b7f83f44 Author: Yoann Vandoorselaere Date: Fri Apr 5 16:13:07 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@956 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit c85d80eef7183b4e89464ba80ac6b3f383087b49 Author: Yoann Vandoorselaere Date: Fri Apr 5 16:11:55 2002 +0000 * src/prelude-auth.c (parse_auth_line): stop using strtok here. strtok() was causing problem on empty password, because it wouldn't return an empty token. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@955 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/prelude-auth.c | 37 ++++++++++++++++++++----------------- 2 files changed, 24 insertions(+), 17 deletions(-) commit 0398a8b5195942b3514b87c56531d7548075eaa6 Author: Yoann Vandoorselaere Date: Fri Apr 5 14:46:27 2002 +0000 * src/prelude-message.c (msg_mark_end): use memcpy instead of shifting dlen and copying it 8bits by 8bits. This fix problem on big endian machine. Thanks to Vincent Glaume who helped a lot on this issue. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@952 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 10 ++++++++++ src/prelude-message.c | 6 ++---- 2 files changed, 12 insertions(+), 4 deletions(-) commit 4336d02c6fcc5287b6b5db509854738bfc8575b2 Author: Krzysztof Zaraska Date: Fri Apr 5 11:52:18 2002 +0000 added comment for idmef_alertident_t git-svn-id: file:///home/yoann/SVN/trunk/libprelude@948 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/include/idmef-tree.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 684581af3ee6e7d216e500d8ce0d9794c16ee83a Author: Yoann Vandoorselaere Date: Thu Apr 4 16:20:14 2002 +0000 * src/include/extract.h: include string.h for memmove. (extract_uint64): fix a problem with extract_uint64 on machine that need aligned access. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@946 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/include/extract.h | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) commit 4d4fe39b9e7d21990cea292784ad631f864ba307 Author: Yoann Vandoorselaere Date: Thu Apr 4 13:12:42 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@945 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/sensor-adduser.c | 1 - src/prelude-client.c | 13 ++++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) commit 1510ffe942052ebadd22c6b42fa6b3969bb944f9 Author: Yoann Vandoorselaere Date: Thu Apr 4 13:07:08 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@944 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/sensor-adduser.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 4fd6273106a456b18f2e06034bc9dee39f78823a Author: Yoann Vandoorselaere Date: Thu Apr 4 13:00:46 2002 +0000 * sensor-adduser/sensor-adduser.c (get_manager_setup): don't give up until an error occur or we get prelude_msg_finished. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@942 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ sensor-adduser/sensor-adduser.c | 15 +++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) commit 8a0934d6483dc854796a50ee91865936616b838e Author: Yoann Vandoorselaere Date: Fri Mar 29 09:36:31 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@921 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 14 ++++++++++++++ src/prelude-getopt.c | 4 ++++ 2 files changed, 18 insertions(+) commit 30418a0369f239e2ca140e7973d9f87f7fe6d75e Author: Yoann Vandoorselaere Date: Fri Mar 29 09:36:07 2002 +0000 * src/prelude-getopt.c (process_option_cfg_hook): handle case when there is several entry of the same name in the configuration file. Call the callback once for each entry then. * src/config-engine.c: (search_entry): (config_get): Modified so that when passed a NULL section and entry, it will try to search a different entry of the same name and within the same section as the previously searched one. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@920 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 42 +++++++++++++++++++++++++++++++++++++----- src/prelude-getopt.c | 16 ++++++++++++---- 2 files changed, 49 insertions(+), 9 deletions(-) commit 3980d9b0a7abcdb4f7781ebba0b2587f363a5971 Author: Yoann Vandoorselaere Date: Thu Mar 28 18:25:59 2002 +0000 * src/include/idmef-tree-func.h (idmef_string_set): remove errornous period after while(0), new idmef_string_copy() macro. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@915 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/include/idmef-tree-func.h | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) commit a02b5ba7f55132efc4c0b462c62531497b6677f8 Author: Krzysztof Zaraska Date: Thu Mar 28 10:56:11 2002 +0000 language corrections git-svn-id: file:///home/yoann/SVN/trunk/libprelude@908 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ INSTALL | 28 ++++++++++++++-------------- README | 26 ++++++++++++++------------ 3 files changed, 35 insertions(+), 26 deletions(-) commit 1b3184dbb9779956afe6662ca7576919e79ea3ca Author: Yoann Vandoorselaere Date: Wed Mar 27 11:10:32 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@905 09c5ec92-17d4-0310-903a-819935f44dba src/config-engine.c | 3 --- src/prelude-client-mgr.c | 2 -- 2 files changed, 5 deletions(-) commit ed6c35ddc97f3cab343a6f9fb3e408fc7a798169 Author: Yoann Vandoorselaere Date: Tue Mar 26 00:18:43 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@881 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 4 ++- docs/api/libprelude-decl.txt | 54 +++++++++--------------------------- docs/api/tmpl/libprelude-unused.sgml | 48 ++++++++++++++++++++++++++++++++ src/prelude-io.c | 4 +-- 4 files changed, 65 insertions(+), 45 deletions(-) commit eeec9b21943798a20afa632306914338fda96fd7 Author: Yoann Vandoorselaere Date: Mon Mar 25 17:42:00 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@873 09c5ec92-17d4-0310-903a-819935f44dba src/include/extract.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 144559c154e272b39e17fcc72618cd5aab650d94 Author: Yoann Vandoorselaere Date: Mon Mar 25 17:36:56 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@872 09c5ec92-17d4-0310-903a-819935f44dba src/extract.c | 185 -------------------------------------------------- src/include/extract.h | 12 ++-- 2 files changed, 7 insertions(+), 190 deletions(-) commit 8418abfc847204d6295b8e90c48db2434976e84b Author: Yoann Vandoorselaere Date: Mon Mar 25 17:02:23 2002 +0000 * src/include/extract.h (extract_uint16): (extract_uint32): (extract_uint64): (extract_ipv4_addr): theses function are now inlined. (extract_uint8_safe): (extract_uint16_safe): (extract_uint32_safe): (extract_uint64_safe): (extract_string_safe): New function, check buffer size before doing anything. * src/prelude-message.c (slice_message_header): (prelude_msg_get): * src/client-ident.c (recv_ident): * src/extract.c: obsoleted, theses function are now inline. * configure.in: put NEED_ALIGNED_ACCESS in libprelude-config --cflags. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@869 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 23 +++++++ configure.in | 2 +- docs/api/libprelude-decl.txt | 30 ++++++++- src/Makefile.am | 1 - src/client-ident.c | 6 +- src/include/extract.h | 147 +++++++++++++++++++++++++++++++++++++------ src/prelude-message.c | 10 +-- 7 files changed, 187 insertions(+), 32 deletions(-) commit 5bd9b12cc973d334f0c7e38d7d66e6a03b8c0d19 Author: Krzysztof Zaraska Date: Wed Mar 20 16:08:01 2002 +0000 indentation fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@849 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-tree-func.h | 2 ++ 1 file changed, 2 insertions(+) commit d80ffd2af64ea001fd03ab5f7aa070465967c399 Author: Krzysztof Zaraska Date: Wed Mar 20 15:28:49 2002 +0000 * src/include/idmef-tree-func.c: fixed incorrectly defined idmef_set_string, idmef_string_set_constant macros git-svn-id: file:///home/yoann/SVN/trunk/libprelude@847 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-tree-func.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit c36f055a363862f39623d7d46dd525c438be4cb5 Author: Yoann Vandoorselaere Date: Tue Mar 19 11:58:29 2002 +0000 * src/prelude-io.c (ssl_close): avoid a leak when SSL_shutdown return 0. (ssl_close): don't close the fd two time. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@844 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/prelude-io.c | 13 +++---------- 2 files changed, 9 insertions(+), 10 deletions(-) commit aa8e0b93711ee9b3db9c073a14d07e40720893ae Author: Yoann Vandoorselaere Date: Tue Mar 19 11:27:48 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@843 09c5ec92-17d4-0310-903a-819935f44dba src/plugin-common.c | 1 - src/ssl-settings.c | 1 - 2 files changed, 2 deletions(-) commit 49b72a26029af65f1d82673f374006bedf0e4008 Author: Yoann Vandoorselaere Date: Thu Mar 14 12:55:25 2002 +0000 * Makefile.am (install-data-hook): stop using sticky bit on directory, permission for directory are 755 now. (except for the idents directory - not changed yet). * src/ssl-registration-msg.c (prelude_ssl_save_cert): stop using the BIO API here, and use the standard IO function so that we can now stop using the umask() hack. The function now take an UID argument, and the saved certificate is owned by this userID. * src/ssl-gencrypto.c (prelude_ssl_gen_crypto): take an UID argument, use fchown() to set the created file UID. * src/prelude-client-mgr.c (file_error): new function, tell the user sensors required files are not installed. * src/prelude-auth.c (open_auth_file): fchown the created file to the specified UID. (prelude_auth_create_account): (prelude_auth_create_account_noprompt): take an UID argument. * sensor-adduser/ssl-register.c (send_own_certificate): prelude_ssl_gen_crypto take an UID argument. (recv_manager_certificate): prelude_ssl_save_cert take an UID argument. * sensor-adduser/sensor-adduser.c (setup_sensor_files): new function, create sensors related file, with the needed sensors permission. (main): ssl_add_certificate and create_plaintext_user_account take an UID argument. * sensor-adduser/plaintext.c (create_plaintext_user_account): take an uid argument, call prelude_auth_create_account with this argument. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@833 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 45 ++++++++++++++++++++++++++++ Makefile.am | 6 ++-- docs/api/libprelude-decl.txt | 48 +++++++++++++++++++++-------- docs/api/tmpl/libprelude-unused.sgml | 10 +++++++ docs/api/tmpl/prelude-auth.sgml | 1 + docs/api/tmpl/ssl-gencrypto.sgml | 1 + docs/api/tmpl/ssl-registration-msg.sgml | 12 +------- sensor-adduser/plaintext.c | 4 +-- sensor-adduser/plaintext.h | 2 +- sensor-adduser/sensor-adduser.c | 50 ++++++++++++++++++++++++------- sensor-adduser/ssl-register.c | 21 +++++++------ sensor-adduser/ssl-register.h | 2 +- src/client-ident.c | 1 + src/include/prelude-auth.h | 6 ++-- src/include/ssl-gencrypto.h | 2 +- src/include/ssl-registration-msg.h | 3 +- src/prelude-auth.c | 25 +++++++++++----- src/prelude-client-mgr.c | 36 +++++++++++++++++++--- src/ssl-gencrypto.c | 9 +++++- src/ssl-registration-msg.c | 53 +++++++++++++++++++-------------- 20 files changed, 246 insertions(+), 91 deletions(-) commit 80a603b9d7fe2ab6cd16c6f33e45e8277d69982d Author: Yoann Vandoorselaere Date: Tue Mar 12 14:58:33 2002 +0000 * src/daemonize.c (get_absolute_filename): new function, get absolute filename if provided filename is relative (fix a bug on exit where the lockfile wouldn't be deleted because we chdir to /). (lockfile_write_pid): use provided pid argument, don't call getpid(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@832 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/daemonize.c | 58 ++++++++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 52 insertions(+), 13 deletions(-) commit cc46b423339318770a510fad10fd6d0752ae68d5 Author: Yoann Vandoorselaere Date: Tue Mar 12 13:49:43 2002 +0000 (prelude_option_add): parent option have option_run_last priority. (call_option_cb): fix and simplify. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@829 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 16 ++++++++++++++++ src/prelude-getopt.c | 21 +++++++++++++-------- 2 files changed, 29 insertions(+), 8 deletions(-) commit b5b05bbac590a9bed4af0fdc32dcd6d56cf65b5c Author: Yoann Vandoorselaere Date: Tue Mar 12 00:29:08 2002 +0000 * src/prelude-getopt.c (call_option_cb): simplify, handle option_run_first and option_run_last definition. (parse_argument): reset saved_index to 0. This could trigger a bug while parsing option. (prelude_option_add): set default priority to option_run_no_order. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@827 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-getopt.h | 9 +++++++++ src/prelude-getopt.c | 38 ++++++++++++++++++++------------------ 2 files changed, 29 insertions(+), 18 deletions(-) commit 85db944e280aafe10e696d6105507f6ae0e45e78 Author: Yoann Vandoorselaere Date: Mon Mar 11 22:08:55 2002 +0000 * src/prelude-getopt.c (get_missing_options): add missing call to call_option_from_cb_list(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@825 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/prelude-getopt.c | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) commit 5e55126d338c10c8ce1f9c7c14c0fa02672690de Author: Yoann Vandoorselaere Date: Mon Mar 11 18:02:52 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@822 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-path.h | 2 ++ src/prelude-client.c | 2 +- src/prelude-path.c | 7 +++++++ 3 files changed, 10 insertions(+), 1 deletion(-) commit cfa196d031f5f8b04ce30d291545d812985f1a3a Author: Yoann Vandoorselaere Date: Mon Mar 11 17:58:19 2002 +0000 * src/extract.c (extract_ipv4_addr): only align when needed. * src/prelude-getopt.c (call_option_cb): new function, call option in priority order if needed. (parse_argument): if we meet an unknown option and we are at depth 0, continue parsing, so that it won't abort the whole process. * src/sensor.c (prelude_sensor_init): don't call prelude_async_init ourself, this is the sensor responssability. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@821 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 16 +++++ src/extract.c | 6 +- src/include/prelude-getopt.h | 1 + src/prelude-getopt.c | 157 ++++++++++++++++++++++++++++++++++++------- src/sensor.c | 10 +-- 5 files changed, 157 insertions(+), 33 deletions(-) commit 23316df63b37300cd205e27d7dbbfe43bc71d091 Author: Krzysztof Zaraska Date: Thu Mar 7 22:41:31 2002 +0000 fix warnings on compilation git-svn-id: file:///home/yoann/SVN/trunk/libprelude@810 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 9 +++++++++ src/client-ident.c | 1 + src/extract.c | 1 + src/idmef-msg-send.c | 1 + src/prelude-io.c | 1 + src/prelude-message.c | 1 + 6 files changed, 14 insertions(+) commit 2c040806742acf609ba41ffef11fc89b9dc4fcae Author: Krzysztof Zaraska Date: Sat Mar 2 13:45:15 2002 +0000 fixed typo from previous commit git-svn-id: file:///home/yoann/SVN/trunk/libprelude@750 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b3546ea720c2d809cb7ed96caf80fdc4d93155d6 Author: Krzysztof Zaraska Date: Sat Mar 2 13:43:23 2002 +0000 * configure.in: fixed pthreads-related gcc flags on FreeBSD/OpenBSD git-svn-id: file:///home/yoann/SVN/trunk/libprelude@749 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ configure.in | 39 +++++++++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 4 deletions(-) commit 2da173ac59f317f4e46b45a8d329eb6724cf700b Author: Yoann Vandoorselaere Date: Fri Mar 1 18:00:03 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@747 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be468b767694d6ff8d06eef557c3150c49757fb3 Author: Yoann Vandoorselaere Date: Thu Feb 28 16:07:00 2002 +0000 * src/prelude-client.c (inet_connect): re-enable the Nagle algorithm for now. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@742 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/prelude-client.c | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) commit 45ec0bc510499fff8e8de6795e0fef62f00bf0e9 Author: Yoann Vandoorselaere Date: Thu Feb 28 13:26:31 2002 +0000 * src/idmef-tree-func.c (idmef_alert_new): set analyzerid field. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@741 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/idmef-tree-func.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit 2fb68af21b7aed61dd115d5b9d04ea8fa76486e9 Author: Yoann Vandoorselaere Date: Wed Feb 27 16:53:12 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@735 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 13 ------------- 1 file changed, 13 deletions(-) commit db6ba776c74c6fcc8a5ede040cbf05047fbea099 Author: Yoann Vandoorselaere Date: Wed Feb 27 16:44:46 2002 +0000 * configure.in: check for pthread in several directory, including /usr/pkg. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@733 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ configure.in | 30 +++++++++++++++++++++++++----- 2 files changed, 28 insertions(+), 5 deletions(-) commit 9bee00b92e41e6e0677615ad3ddc768b3b8ff079 Author: Yoann Vandoorselaere Date: Wed Feb 27 14:58:31 2002 +0000 * src/prelude-client.c: include string.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@729 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/prelude-client.c | 1 + 2 files changed, 5 insertions(+) commit 9172ba77969bd7adf42224b93800cd6c0fd756b7 Author: Krzysztof Zaraska Date: Thu Feb 21 22:49:05 2002 +0000 minor FreeBSD compat. fix git-svn-id: file:///home/yoann/SVN/trunk/libprelude@704 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/config-engine.c | 2 ++ 2 files changed, 5 insertions(+) commit b1cb3773574c21562378415a0f56035167f6772d Author: Yoann Vandoorselaere Date: Thu Feb 21 20:33:30 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@701 09c5ec92-17d4-0310-903a-819935f44dba src/extract.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eeb64ba978d8b384cc4d3a96e386f952f3de7450 Author: Yoann Vandoorselaere Date: Thu Feb 21 20:28:09 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@700 09c5ec92-17d4-0310-903a-819935f44dba src/extract.c | 2 +- src/include/extract.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 9f7fed096d00ac469051cfaecc59598c4c5a7f49 Author: Yoann Vandoorselaere Date: Thu Feb 21 18:29:23 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@699 09c5ec92-17d4-0310-903a-819935f44dba src/extract.c | 14 ++++++++++++++ src/include/extract.h | 2 ++ 2 files changed, 16 insertions(+) commit def29264e71403d3a24a5f6ad19c9fc4ee611dab Author: Yoann Vandoorselaere Date: Thu Feb 21 17:29:31 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@698 09c5ec92-17d4-0310-903a-819935f44dba src/extract.c | 20 ++++++++++---------- src/include/extract.h | 9 +++++---- 2 files changed, 15 insertions(+), 14 deletions(-) commit 62f0120c8b17be78f505a0d637c65f22a214b163 Author: Yoann Vandoorselaere Date: Thu Feb 21 15:50:59 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@696 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ acconfig.h | 1 + configure.in | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/extract.c | 49 +++++++++++++++++++++++++++----------------- 4 files changed, 102 insertions(+), 18 deletions(-) commit c1c00a12a5ac3d29e470e4fe640258e1f246222c Author: Yoann Vandoorselaere Date: Wed Feb 20 16:19:48 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@693 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/plaintext.c | 1 + src/common.c | 2 ++ src/prelude-message.c | 1 + 3 files changed, 4 insertions(+) commit a2b220d25e251ff63548df143c2f0d70dfd27b53 Author: Yoann Vandoorselaere Date: Wed Feb 20 13:00:32 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@691 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 23 +++++++++++++++++++++++ docs/api/libprelude-decl.txt | 5 +++++ src/common.c | 31 +++++++++++++++++++++++++++++++ src/config-engine.c | 7 ++++--- src/idmef-tree-func.c | 10 ++++++++++ src/include/common.h | 4 ++++ src/prelude-auth.c | 7 ++++--- src/prelude-message.c | 3 ++- 8 files changed, 83 insertions(+), 7 deletions(-) commit fbd3d12e735d730b475059d2f482688b5900141b Author: Yoann Vandoorselaere Date: Fri Feb 8 17:05:49 2002 +0000 * src/prelude-getopt.c (parse_argument): handle parent option that have an argument... This function really need to be cleaned up. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@663 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ configure.in | 7 ++----- src/prelude-getopt.c | 41 ++++++++++++++++++++++++++++++++++------- 3 files changed, 42 insertions(+), 12 deletions(-) commit 27553d6b2927098c15f7a24fac285244205bab09 Author: Yoann Vandoorselaere Date: Thu Feb 7 22:52:48 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@659 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/plugin-common.c | 9 ++++----- 2 files changed, 8 insertions(+), 5 deletions(-) commit e253c54231c3edb2942f46b3f50429406c7c6119 Author: Yoann Vandoorselaere Date: Thu Feb 7 18:40:07 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@657 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit af852b8bd6e6083870e72c2f0c4cb9cb0df91f60 Author: Yoann Vandoorselaere Date: Thu Feb 7 18:26:06 2002 +0000 * src/prelude-getopt.c (print_options): remove an errornous putchar(). (print_options): description offset should include depth. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@655 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/prelude-getopt.c | 9 +++------ 2 files changed, 7 insertions(+), 6 deletions(-) commit adf3183e4ce2675054c0bf243dcb913dd80a33ea Author: Yoann Vandoorselaere Date: Thu Feb 7 18:02:36 2002 +0000 * sensor-adduser/Makefile.am (sensor_adduser_LDADD): correct libprelude.so linkage. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@654 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ docs/api/libprelude-decl.txt | 15 ++++++++++++++- docs/api/tmpl/prelude-auth.sgml | 1 + sensor-adduser/Makefile.am | 2 +- 4 files changed, 19 insertions(+), 2 deletions(-) commit c453f2f2ea664341e0f5cbdc47974f6c033dd151 Author: Yoann Vandoorselaere Date: Thu Feb 7 16:43:45 2002 +0000 * src/prelude-client.c (read_plaintext_authentication_result): call auth_error() in case of failure authenticating. So that the user know what to do. (auth_error): call exit() here. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@651 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/prelude-client.c | 14 +++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) commit 80b100fc7e7b36d971cc326fc8c335079f3eb72f Author: Yoann Vandoorselaere Date: Thu Feb 7 15:44:37 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@649 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 36 ++++++++++ INSTALL | 65 +++++++++-------- sensor-adduser/Makefile.am | 2 +- sensor-adduser/plaintext.c | 6 +- sensor-adduser/sensor-adduser.c | 3 +- src/include/prelude-auth.h | 12 +++- src/include/prelude-path.h | 2 + src/prelude-auth.c | 156 +++++++++++++++++++++++++++++++--------- src/prelude-client.c | 2 +- src/prelude-getopt.c | 6 +- src/prelude-path.c | 18 +++-- 11 files changed, 231 insertions(+), 77 deletions(-) commit 31486c7c6d922d8a4de75dbd3d31a82285536428 Author: Yoann Vandoorselaere Date: Wed Feb 6 16:28:13 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@643 09c5ec92-17d4-0310-903a-819935f44dba src/ssl-gencrypto.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ce79a9b3d7776a4378e89210be83ff1c0ca5d81 Author: Yoann Vandoorselaere Date: Wed Feb 6 16:22:16 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@642 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/ssl-register.c | 5 ----- src/ssl-gencrypto.c | 13 ++++++++++--- 2 files changed, 10 insertions(+), 8 deletions(-) commit f8ae6d6219eff745deab4335e6628458c10daf5f Author: Yoann Vandoorselaere Date: Wed Feb 6 14:40:56 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@640 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 30 +++ docs/api/libprelude-decl.txt | 36 ++-- docs/api/tmpl/libprelude-unused.sgml | 12 ++ docs/api/tmpl/prelude-auth.sgml | 2 + docs/api/tmpl/ssl-gencrypto.sgml | 14 -- sensor-adduser/sensor-adduser.c | 26 +-- sensor-adduser/ssl-register.c | 15 +- sensors-default.conf | 6 +- src/include/ssl-gencrypto.h | 5 +- src/prelude-client.c | 121 +++++++++--- src/ssl-gencrypto.c | 364 +++++++++++++++++------------------ src/ssl.c | 12 +- 12 files changed, 368 insertions(+), 275 deletions(-) commit 74924eed9715245272868846a0cce1fa7b4696b0 Author: Yoann Vandoorselaere Date: Tue Feb 5 17:13:22 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@639 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/sensor-adduser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07f68cdc8096ecc65f831d3a7bf6fbdd3312deb2 Author: Yoann Vandoorselaere Date: Tue Feb 5 16:59:53 2002 +0000 * src/idmef-msg-send.c (idmef_send_web_service): (idmef_send_web_service_arg): handle web argument list. * src/idmef-tree-func.c (idmef_service_webservice_new): initialize argument list. (idmef_service_webservice_arg_new): new function return a webservice_arg. * src/prelude-message.c (prelude_msg_write): don't send empty message. * sensor-adduser/sensor-adduser.c (set_manager_addr): fix a bug when parsing provided Manager address. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@636 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 9 +++++++++ src/idmef-msg-send.c | 21 +++++++++++++++++---- src/idmef-tree-func.c | 21 +++++++++++++++++++++ src/include/idmef-msg-send.h | 6 ++++-- src/include/idmef-tree-func.h | 1 + src/include/idmef-tree.h | 8 +++++++- 6 files changed, 59 insertions(+), 7 deletions(-) commit c3596f1222ad301889b9282e9f262ecfb33c765f Author: Yoann Vandoorselaere Date: Tue Feb 5 14:19:49 2002 +0000 * src/prelude-message.c (prelude_msg_write): don't send empty message. * sensor-adduser/sensor-adduser.c (set_manager_addr): fix a bug when parsing provided Manager address. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@634 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 ++++++++ sensor-adduser/sensor-adduser.c | 2 +- src/prelude-message.c | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) commit 50bb004c955097a4605f3f4aec1561e3298cb82e Author: Yoann Vandoorselaere Date: Mon Feb 4 17:14:27 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@633 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 88075b8c69d2dbf52a9621607cc0f6aef0a04309 Author: Yoann Vandoorselaere Date: Mon Feb 4 17:09:11 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@632 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 25 +++ Makefile.am | 2 +- configure.in | 8 +- docs/api/libprelude-decl.txt | 60 ++++-- docs/api/tmpl/libprelude-unused.sgml | 17 ++ docs/api/tmpl/ssl-register.sgml | 8 - docs/api/tmpl/ssl-registration-msg.sgml | 11 - sensor-adduser/Makefile.am | 14 ++ sensor-adduser/plaintext.c | 104 ++++++++++ sensor-adduser/plaintext.h | 1 + sensor-adduser/sensor-adduser.c | 344 ++++++++++++++++++++++++++++++++ sensor-adduser/ssl-register.c | 256 ++++++++++++++++++++++++ sensor-adduser/ssl-register.h | 1 + sensors-default.conf | 10 +- src/Makefile.am | 2 +- src/include/Makefile.am | 2 +- src/include/prelude-auth.h | 6 +- src/include/prelude-message-id.h | 3 +- src/include/prelude-path.h | 3 + src/include/ssl-register.h | 27 --- src/include/ssl-registration-msg.h | 6 +- src/include/ssl-settings.h | 25 +++ src/prelude-auth.c | 61 ++++-- src/prelude-client.c | 21 +- src/prelude-path.c | 9 +- src/sensor.c | 39 ---- src/ssl-register.c | 339 ------------------------------- src/ssl-registration-msg.c | 36 +--- src/ssl-settings.c | 150 ++++++++++++++ 29 files changed, 1066 insertions(+), 524 deletions(-) commit 1754287dd62a4569f8e2d09c53551380dece37e0 Author: Yoann Vandoorselaere Date: Sat Feb 2 02:54:39 2002 +0000 * src/prelude-message.c: made API more consistant, and code simpler. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@631 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 ++ src/idmef-msg-send.c | 7 ++- src/include/prelude-message.h | 4 +- src/prelude-message-buffered.c | 17 +++--- src/prelude-message.c | 123 +++++++++++++++++++++++------------------ 5 files changed, 89 insertions(+), 67 deletions(-) commit 1cc246c1ed46ebccb0e1d015cce8a28764489d8e Author: Yoann Vandoorselaere Date: Fri Feb 1 15:30:20 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@630 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-message.c | 2 -- 1 file changed, 2 deletions(-) commit 75b2d53d465d3b9138989357d591b587966484ab Author: Yoann Vandoorselaere Date: Fri Feb 1 15:17:19 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@629 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 29 +++ docs/api/libprelude-decl.txt | 121 ++++++---- src/Makefile.am | 1 + src/client-ident.c | 9 +- src/common.c | 75 ++++++ src/idmef-msg-send.c | 216 ++++++++---------- src/idmef-tree-func.c | 24 +- src/include/Makefile.am | 1 + src/include/common.h | 3 + src/include/idmef-message-id.h | 2 +- src/include/idmef-msg-send.h | 82 +++---- src/include/prelude-message-buffered.h | 11 + src/include/prelude-message.h | 9 + src/prelude-client-mgr.c | 61 +---- src/prelude-client.c | 2 +- src/prelude-message-buffered.c | 179 +++++++++++++++ src/prelude-message.c | 406 ++++++++++++++++++++++++++------- 17 files changed, 863 insertions(+), 368 deletions(-) commit 648547fc5f9d6f5f57dd9362007261969fb39e86 Author: Yoann Vandoorselaere Date: Sun Jan 27 12:50:08 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@621 09c5ec92-17d4-0310-903a-819935f44dba src/include/client-ident.h | 2 -- src/include/prelude-client.h | 5 +++++ src/prelude-client.c | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) commit 8c829afdf7ee00e0589df94bb2e46120e75bd8ac Author: Yoann Vandoorselaere Date: Sat Jan 26 03:45:42 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@620 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 687777e03aa2c940d7adb79a9e4de4a7328d3150 Author: Yoann Vandoorselaere Date: Sat Jan 26 03:38:14 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@619 09c5ec92-17d4-0310-903a-819935f44dba src/client-ident.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34f85f496912183c4743de511b2db1a83b3dfb7a Author: Yoann Vandoorselaere Date: Sat Jan 26 03:35:25 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@618 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ docs/api/libprelude-decl.txt | 7 +------ docs/api/tmpl/prelude-message.sgml | 1 + src/client-ident.c | 4 ++++ src/include/client-ident.h | 4 +++- src/include/idmef-message-id.h | 7 +++++-- src/include/list.h | 2 +- 7 files changed, 20 insertions(+), 10 deletions(-) commit 386e21ab37982078044e9f3e3d8c3cb8812662a1 Author: Yoann Vandoorselaere Date: Fri Jan 25 18:40:22 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@614 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 16 ++ docs/api/libprelude-decl.txt | 431 ++++++++++++++++++++++++--------- docs/api/tmpl/idmef-tree.sgml | 25 +- docs/api/tmpl/libprelude-unused.sgml | 18 +- docs/api/tmpl/prelude-message.sgml | 1 + src/idmef-msg-send.c | 456 ++++++++++++++++++++--------------- src/idmef-tree-func.c | 3 +- src/include/idmef-msg-send.h | 43 ++++ src/include/idmef-tree-func.h | 8 + src/include/idmef-tree.h | 211 ++++++++-------- src/include/prelude-async.h | 3 +- 11 files changed, 761 insertions(+), 454 deletions(-) commit d5ed7a2f8b457d36a74baba1e29239ebe4b1471b Author: Yoann Vandoorselaere Date: Wed Jan 23 11:38:19 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@610 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++ docs/api/libprelude-decl.txt | 104 ++++++++++++++++++----------------- docs/api/tmpl/libprelude-unused.sgml | 28 ++++++++++ docs/api/tmpl/sensor.sgml | 8 --- src/idmef-msg-send.c | 5 +- src/idmef-tree-func.c | 6 +- src/include/sensor.h | 4 +- src/sensor.c | 8 +-- 8 files changed, 102 insertions(+), 67 deletions(-) commit 46127ebdc59e1cfdbcb52863d909afbeaaa703ce Author: Yoann Vandoorselaere Date: Wed Jan 23 10:58:48 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@609 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ 1 file changed, 3 insertions(+) commit aec31eb9e9938336badacddcb9df7e0db2b6976e Author: Yoann Vandoorselaere Date: Wed Jan 23 10:58:07 2002 +0000 * src/idmef-msg-send.c (idmef_msg_send): use prelude_msg_reset. * src/prelude-message.c (prelude_msg_reset): new function, to be used if the same message is going to be written at several time. * src/idmef-tree-func.c: * src/idmef-msg-send.c: stop trying to count number of item / len. That's just too ugly. Use a static message buffer big enough (prelude_msg_set() will error if input is > buffer size anyway). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@608 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 12 ++++++++++++ src/idmef-msg-send.c | 41 +++++++++++++++++------------------------ src/idmef-tree-func.c | 43 ++----------------------------------------- src/include/idmef-msg-send.h | 11 ----------- src/include/prelude-message.h | 4 ++-- src/prelude-client.c | 2 +- src/prelude-message.c | 16 +++++++++++++--- src/sensor.c | 18 +++++++++++++++++- 8 files changed, 64 insertions(+), 83 deletions(-) commit ca1259fa91f2c7cf9631aa9126a77683cbfeab88 Author: Yoann Vandoorselaere Date: Tue Jan 22 19:23:11 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@606 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 + docs/api/libprelude-decl.txt | 661 +++++++++++++++++++++++++---------- docs/api/tmpl/idmef-message-id.sgml | 21 -- docs/api/tmpl/idmef-tree.sgml | 4 +- docs/api/tmpl/libprelude-unused.sgml | 18 + src/idmef-msg-send.c | 269 +++++++++++--- src/idmef-tree-func.c | 54 ++- src/include/idmef-message-id.h | 275 +++++++++------ src/include/idmef-tree-func.h | 10 +- src/include/idmef-tree.h | 219 ++++++++++-- 10 files changed, 1151 insertions(+), 388 deletions(-) commit a89701ecdc79e069eca5892c04d0c3fa07f50ab1 Author: Yoann Vandoorselaere Date: Mon Jan 21 10:51:12 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@602 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 1 + src/plugin-common.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) commit 3fe49ff608a109b3df221369ca98174d715c4c5a Author: Krzysztof Zaraska Date: Sun Jan 20 16:03:25 2002 +0000 * configure.in: added AC_CANONICAL_SYSTEM macro to fix autoconf 2.5x problem git-svn-id: file:///home/yoann/SVN/trunk/libprelude@600 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 2 ++ configure.in | 1 + 2 files changed, 3 insertions(+) commit 8b359e181d9150af642d6c494d4418d25a6e2dae Author: Krzysztof Zaraska Date: Sun Jan 20 01:34:57 2002 +0000 minor FreeBSD compat. fix git-svn-id: file:///home/yoann/SVN/trunk/libprelude@599 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/common.c | 1 + 2 files changed, 4 insertions(+) commit f4668efdd689b550e38bd9617def932ef1a54951 Author: Yoann Vandoorselaere Date: Sat Jan 19 16:48:26 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@595 09c5ec92-17d4-0310-903a-819935f44dba INSTALL | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ README | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 200 insertions(+) commit 5939af62eee762e56ed08f76390e4072cc266997 Author: Yoann Vandoorselaere Date: Sat Jan 19 14:47:13 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@591 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 ++++++++ src/extract.c | 1 + 2 files changed, 9 insertions(+) commit fb3ac34cea803ed9b41b431dfcabfeefa0be44ec Author: Yoann Vandoorselaere Date: Sat Jan 19 14:44:47 2002 +0000 * Update everything to fit header change. * src/common.c (prelude_resolve_addr): new function. * src/prelude-log.c: moved all the logging stuff here. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@590 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 ++ docs/api/libprelude-decl.txt | 95 +++++++++++++------------ src/Makefile.am | 5 +- src/client-ident.c | 24 ++++++- src/common.c | 130 +++++++---------------------------- src/config-engine.c | 2 +- src/daemonize.c | 2 +- src/extract.c | 79 ++++++++++++++++++++- src/idmef-msg-send.c | 22 ++++++ src/idmef-tree-func.c | 2 +- src/include/Makefile.am | 5 +- src/include/client-ident.h | 22 ++++++ src/include/common.h | 40 +---------- src/include/extract.h | 22 ++++++ src/include/idmef-msg-send.h | 22 ++++++ src/include/prelude-getopt-wide.h | 22 ++++++ src/include/prelude-log.h | 57 +++++++++++++++ src/include/prelude-path.h | 22 ++++++ src/plugin-common.c | 2 +- src/prelude-async.c | 13 ++-- src/prelude-auth.c | 2 +- src/prelude-client-mgr.c | 2 +- src/prelude-client.c | 22 +++--- src/prelude-getopt.c | 2 +- src/prelude-ident.c | 2 +- src/prelude-io.c | 2 +- src/prelude-log.c | 141 ++++++++++++++++++++++++++++++++++++++ src/prelude-message.c | 14 ++-- src/prelude-path.c | 22 ++++++ src/sensor.c | 2 +- src/ssl-register.c | 29 +------- src/ssl-registration-msg.c | 2 +- src/ssl.c | 2 +- src/timer.c | 2 +- src/variable.c | 2 +- 35 files changed, 585 insertions(+), 258 deletions(-) commit 317a6d7673b93882e3475464279444284e40ec88 Author: Yoann Vandoorselaere Date: Fri Jan 18 15:48:02 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@585 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 25 +++++++++++++++++++++++-- src/prelude-client-mgr.c | 3 +-- 2 files changed, 24 insertions(+), 4 deletions(-) commit 80a4353207098cb433bf957cec5d315766964c74 Author: Yoann Vandoorselaere Date: Fri Jan 18 15:22:47 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@584 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 21 --------------------- src/prelude-client-mgr.c | 4 +++- 2 files changed, 3 insertions(+), 22 deletions(-) commit c2916bd1bfdb2f9867a5ddda9b108bd1675fd1fb Author: Yoann Vandoorselaere Date: Fri Jan 18 15:03:23 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@582 09c5ec92-17d4-0310-903a-819935f44dba configure.in | 6 +++++- src/Makefile.am | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) commit 278feae9356fa576b6d363e214c713089db7c593 Author: Yoann Vandoorselaere Date: Fri Jan 18 13:40:26 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@576 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 + Makefile.am | 8 +- configure.ac | 240 ---------------------------------- configure.in | 238 +++++++++++++++++++++++++++++++++ docs/api/libprelude-decl.txt | 7 +- docs/api/libprelude-sections.txt | 227 ++++++++++++++++++++++++++++---- docs/api/tmpl/common.sgml | 16 +++ docs/api/tmpl/config-engine.sgml | 10 ++ docs/api/tmpl/daemonize.sgml | 9 ++ docs/api/tmpl/idmef-message-id.sgml | 147 +++++++++++++++++++++ docs/api/tmpl/idmef-tree.sgml | 75 +++++++++++ docs/api/tmpl/libprelude-unused.sgml | 41 ++---- docs/api/tmpl/list.sgml | 10 ++ docs/api/tmpl/plugin-common-prv.sgml | 24 +++- docs/api/tmpl/plugin-common.sgml | 18 +++ docs/api/tmpl/prelude-auth.sgml | 23 ++++ docs/api/tmpl/prelude-client-mgr.sgml | 9 ++ docs/api/tmpl/prelude-client.sgml | 45 +++++++ docs/api/tmpl/prelude-getopt.sgml | 70 +++++++--- docs/api/tmpl/prelude-io.sgml | 41 ++++++ docs/api/tmpl/prelude-message.sgml | 40 ++++++ docs/api/tmpl/sensor.sgml | 40 ++++++ docs/api/tmpl/ssl-gencrypto.sgml | 11 -- docs/api/tmpl/ssl-register.sgml | 19 +++ src/Makefile.am | 3 +- src/include/plugin-common-prv.h | 7 +- src/include/prelude-getopt.h | 4 +- src/plugin-common.c | 7 +- src/prelude-async.c | 15 ++- src/prelude-auth.c | 2 +- src/prelude-client.c | 2 +- src/prelude-getopt.c | 5 +- 32 files changed, 1057 insertions(+), 359 deletions(-) commit afed5721702fd178b7692c7d28bf4690c696617d Author: Yoann Vandoorselaere Date: Fri Jan 18 13:17:12 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@575 09c5ec92-17d4-0310-903a-819935f44dba configure.ac | 10 ++++++++-- libprelude-config.in | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) commit af0ad7f92b9310fab7b4469f6e3d7b36b640532e Author: Yoann Vandoorselaere Date: Fri Jan 18 13:03:29 2002 +0000 * src/prelude-auth.c (do_auth): (ask_manager_address): (write_auth_infos): (read_auth_result): removed unused. * configure.ac: correct check for profiling. Enable -fprofile-arcs if compiler support it. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@574 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 +++++ configure.ac | 30 +++++++++++++--- docs/api/libprelude-decl.txt | 54 ++++++++++++++++++++-------- src/idmef-msg-send.c | 1 + src/prelude-auth.c | 85 +------------------------------------------- src/ssl-register.c | 3 +- 6 files changed, 76 insertions(+), 105 deletions(-) commit 8a9370bd4c1577289a707c963d99fbbd81fef099 Author: Yoann Vandoorselaere Date: Fri Jan 18 12:15:43 2002 +0000 * src/timer.c (walk_and_wake_up_timer): set prev_remaining to a big negative value, so that the new timer algorithm debuging check won't blow at us because there is lag. (search_previous_timer): if the timer we want to insert expire at the same time as the known to be expiring last timer, replace it. (search_previous_timer): if the timer we want to insert expire at the same time as the known to be expiring first timer, replace it. (search_previous_backward): (search_previous_forward): handle case where we find an entry with the same expire time as our inserted timer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@573 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 18 +++++++++++++ src/timer.c | 85 ++++++++++++++++++++++++++++++++++++++++++++----------------- 2 files changed, 79 insertions(+), 24 deletions(-) commit 1296eecbb9427f01c5aa014e067cad5118406a66 Author: Yoann Vandoorselaere Date: Thu Jan 17 19:44:38 2002 +0000 * src/prelude-io.c (prelude_io_read_wait): use an infinite timeout. This is a temporary workaround. Manager-adduser / sensor-adduser should use prelude_message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@569 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/prelude-io.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit a8ad6b315ac6f10de41063409288eece1ccc6f0d Author: Yoann Vandoorselaere Date: Thu Jan 17 19:42:52 2002 +0000 * src/prelude-client.c: prelude_client_t is a linked object. New helper function to get client informations. * src/sensor.c: wrapper for the new client-mgr function. * src/prelude-client-mgr.c: ability to return the whole client list, and to notify uppon client change throught a callback. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@568 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 9 ++++ docs/api/libprelude-decl.txt | 12 +++++ src/include/list.h | 4 ++ src/include/prelude-client-mgr.h | 3 ++ src/include/prelude-client.h | 11 +++- src/include/sensor.h | 4 ++ src/prelude-client-mgr.c | 48 ++++++++++++++--- src/prelude-client.c | 114 +++++++++++++++++++++++++++++++++------ src/sensor.c | 28 ++++++++++ src/ssl-register.c | 4 +- 10 files changed, 211 insertions(+), 26 deletions(-) commit f4aa43131d6db6090c2080ebb7f5cec4e342f223 Author: Yoann Vandoorselaere Date: Thu Jan 17 16:19:12 2002 +0000 * libprelude-config.in: * configure.ac: updated. Libprelude is not linked to the needed library anymore. It's up to the application to do so. Also, libprelude-config --libs will list -lc_r if needed for Posix Thread so that when an application using libprelude try to link, normal libc will be overwritten by -lc_r. This change was needed because crash would happen on FreeBSD using both library at the same time. Credits goes to Krzysztof Zaraska for finding the problem git-svn-id: file:///home/yoann/SVN/trunk/libprelude@565 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 13 +++++++++++++ configure.ac | 52 ++++++++++++++++++++++++++++------------------------ libprelude-config.in | 10 +++++++++- src/Makefile.am | 3 --- 4 files changed, 50 insertions(+), 28 deletions(-) commit 8750477659ec71459af7c48283ed6d17dec82ceb Author: Yoann Vandoorselaere Date: Thu Jan 17 14:15:18 2002 +0000 * src/client-ident.c (prelude_client_ident_send): if is_caller_a_sensor is set, declare the client as being ID 0 (Relay Manager). * src/prelude-async.c (prelude_async_add): signal the condition. * src/sensor.c: global variable, telling if the caller is a sensor or not (a Manager for exemple). (prelude_sensor_init): set is_caller_a_sensor to 1. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@563 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 13 +++++++++++++ src/client-ident.c | 17 ++++++++--------- src/prelude-async.c | 3 ++- src/sensor.c | 4 +++- 4 files changed, 26 insertions(+), 11 deletions(-) commit c4f9e366992db71f890619fb44d52945dd840eb8 Author: Yoann Vandoorselaere Date: Wed Jan 16 18:09:39 2002 +0000 (prelude_client_ident_init): handle error when reading ident file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@562 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 2 ++ src/client-ident.c | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) commit 8d937e0f9b4ad21f9a072975e1744f7b90b2d2b7 Author: Yoann Vandoorselaere Date: Wed Jan 16 17:44:43 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@561 09c5ec92-17d4-0310-903a-819935f44dba src/client-ident.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 9794922a85651304a50733f6e886b523b26be07a Author: Yoann Vandoorselaere Date: Wed Jan 16 17:43:28 2002 +0000 * src/client-ident.c (save_ident): identity file should be readable for all. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@560 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 ++++- src/client-ident.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) commit e81231f93950733fff8049838a9aefe1c8589090 Author: Yoann Vandoorselaere Date: Wed Jan 16 17:29:57 2002 +0000 * src/prelude-io.c (ssl_read): (ssl_write): handle ssl error correctly. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@558 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++ docs/api/libprelude-decl.txt | 78 ++++++++++++++++++++++------------- docs/api/tmpl/libprelude-unused.sgml | 18 ++++++++ docs/api/tmpl/prelude-auth.sgml | 7 ---- docs/api/tmpl/prelude-client-mgr.sgml | 3 +- docs/api/tmpl/ssl-gencrypto.sgml | 1 + docs/api/tmpl/ssl.sgml | 14 ------- src/prelude-io.c | 27 ++++++------ 8 files changed, 90 insertions(+), 63 deletions(-) commit a59c91a3de481dfb912b5aba565ac73f3632a9d1 Author: Yoann Vandoorselaere Date: Tue Jan 15 14:59:53 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@553 09c5ec92-17d4-0310-903a-819935f44dba src/include/timer.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit f72d71bf66a764763e2961def04c0d5396dba8c7 Author: Yoann Vandoorselaere Date: Tue Jan 15 14:58:57 2002 +0000 * src/timer.c: now work with a timer_t instead of a timeval structure. This is cleaner as we don't care about useconds anyway. Also updated the algorithm. The new algorithm use O(1) for timer insertion most of the time. And allow us to keep the timer sorted in the timer list. When waking up timer, this avoid us to look at the whole list. We can stop as soon as we meet an un-wokable timer (which is very advantaging where there is a lot of timer arround). (search_previous_timer): new function, deduce, in O(1) time, if the new timer should be the first or the last in the list. In both case insertion is O(1). If none of theses statement are true, then try to guess if the previous timer entry (in regards to the new timer) is located on the beginning or end of the list. Then call the needed insertion function. (search_previous_forward): new function. Search previous timer entry from end of the list to begining of the list. (search_previous_backward): ditto, but do it backward. (walk_and_wake_up_timer): handle wake_up_if_needed() return value. Now that the list is sorted, we can break as soon as we meet a timer we cannot wake. This is disabled for now for integrity checking. (wake_up_if_needed): return 0 if we woke the timer up, or -1 if time remaing before expiration. (time_elapsed): updated avoid some float() calculation. (time_remaining): new function. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@552 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 34 ++++++++ src/timer.c | 267 +++++++++++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 245 insertions(+), 56 deletions(-) commit bd4fe814be4d3785b48e325c1faa99ba735d4788 Author: Yoann Vandoorselaere Date: Tue Jan 15 14:35:34 2002 +0000 * src/prelude-client-mgr.c (broadcast_saved_message): (flush_backup_if_needed): Better error handling. Make the difference between communication error, and other error... (broadcast_saved_message): if there is a problem when forwarding the data to the client, then increment the count of connection dead and return a communication error. (parse_config_line): (client_timer_expire): After a successfull reconnection, check the flush_backup_if_needed() return value. If it indicate a communication error, re-init the connection timer. Else continue. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@551 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 13 +++++++++++++ src/prelude-client-mgr.c | 35 ++++++++++++++++++++++------------- 2 files changed, 35 insertions(+), 13 deletions(-) commit 2a7a8a5b64ba65ad7996d39ec02c33eded499afe Author: Yoann Vandoorselaere Date: Tue Jan 15 14:19:22 2002 +0000 * src/prelude-client.c (prelude_client_forward): handle the case where the connection break the same way as in prelude_client_send_msg() git-svn-id: file:///home/yoann/SVN/trunk/libprelude@550 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/prelude-client.c | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) commit 2b2f281382d5f96627eba88bd224112f24ce91c3 Author: Yoann Vandoorselaere Date: Tue Jan 15 14:17:53 2002 +0000 * src/prelude-message.c (read_message_data): copy size into a count variable on entering to the function. So that we don't get confused when comparing the amount of byte requested and the amount of byte we got. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@549 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/prelude-message.c | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit b007f62dd172e013345223bc663118d0a7c9e2ea Author: Yoann Vandoorselaere Date: Mon Jan 14 20:37:49 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@548 09c5ec92-17d4-0310-903a-819935f44dba configure.ac | 1 - src/ssl-register.c | 1 - 2 files changed, 2 deletions(-) commit 0b98b886dcdfe1dd2977c5b022fe78579bbddc67 Author: Yoann Vandoorselaere Date: Mon Jan 14 20:26:50 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@547 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/Makefile.am | 13 -- sensor-adduser/sensor-adduser.c | 67 --------- sensor-adduser/ssl-register.c | 320 ---------------------------------------- sensor-adduser/ssl-register.h | 24 --- src/include/auth.h | 1 - 5 files changed, 425 deletions(-) commit d00b8f9e3d1b9c4985544fe72266aebe70009cf8 Author: Yoann Vandoorselaere Date: Mon Jan 14 20:22:21 2002 +0000 * src/ssl-register.c: move here. Obsolete sensor-adduser. Sensor now provide a -c option for creating the authentication file. * I'm too lazy to list all the change. Basically created a new file, prelude-path.c, with function returning path to stuff commonly shared by Prelude Manager and Libprelude. This get rid of some of the path mess. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@546 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 17 ++ Makefile.am | 10 +- docs/api/libprelude-decl.txt | 37 +++- src/Makefile.am | 2 + src/client-ident.c | 24 +-- src/include/Makefile.am | 4 +- src/include/auth.h | 2 +- src/include/prelude-client-mgr.h | 4 +- src/include/prelude-path.h | 11 ++ src/include/sensor.h | 4 +- src/include/ssl-gencrypto.h | 4 +- src/include/ssl-register.h | 27 +++ src/include/ssl.h | 9 +- src/prelude-client-mgr.c | 29 ++-- src/prelude-client.c | 12 +- src/prelude-path.c | 69 ++++++++ src/sensor.c | 53 +++++- src/ssl-gencrypto.c | 43 +---- src/ssl-register.c | 366 +++++++++++++++++++++++++++++++++++++++ src/ssl.c | 57 ++++-- 20 files changed, 649 insertions(+), 135 deletions(-) commit a72798b373b62f32ee2d60180e94fda9bd8d8bab Author: Yoann Vandoorselaere Date: Mon Jan 14 18:00:23 2002 +0000 * src/prelude-message.c: lot of cleanup, code comment. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@545 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 2 + src/prelude-message.c | 165 +++++++++++++++++++++++++++++++++++--------------- 2 files changed, 118 insertions(+), 49 deletions(-) commit 31b288d50c462515269ca4e8c3dcc89073361464 Author: Yoann Vandoorselaere Date: Mon Jan 14 16:52:40 2002 +0000 * src/prelude-io.c (prelude_io_get_fdptr): new function. Return file or ssl pointer associated with this file descriptor. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@543 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/include/prelude-io.h | 2 ++ src/prelude-io.c | 18 +++++++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) commit 162120e6b4d7201ca9516d87f0b541478c0d8e12 Author: Yoann Vandoorselaere Date: Fri Jan 11 15:02:28 2002 +0000 * src/include/idmef-tree.h: * src/idmef-tree-func.c: * src/idmef-msg-send.c: move list.h inclusion out from the header file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@533 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/idmef-msg-send.c | 1 + src/idmef-tree-func.c | 1 + src/include/idmef-tree.h | 1 - 4 files changed, 7 insertions(+), 1 deletion(-) commit f00e24f15ad42056a5d2da5e6145b060d9f14927 Author: Yoann Vandoorselaere Date: Fri Jan 11 14:57:50 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@532 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5fa1c9f45d3c1ad407e58c0a51e90300059e697b Author: Yoann Vandoorselaere Date: Fri Jan 11 14:53:40 2002 +0000 * src/prelude-client.c (handle_plaintext_connection): always use PRELUDE_MSG_AUTH for header tag. use PRELUDE_MSG_AUTH_PLAINTEXT as a subtag. (start_unix_connection): read Manager setup, even in UNIX mode. (handle_plaintext_connection): call read_plaintext_authentication_result(). (read_plaintext_authentication_result): new function. Read authentication result. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@530 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 ++++ sensors-default.conf | 10 +++++- src/include/prelude-message-id.h | 10 +++--- src/prelude-client.c | 75 +++++++++++++++++++++++++++++++++++----- 4 files changed, 88 insertions(+), 14 deletions(-) commit f7002b27a8312e8dc77f1ac031f613f0a09db256 Author: Yoann Vandoorselaere Date: Fri Jan 11 14:06:01 2002 +0000 * src/prelude-client.c (handle_plaintext_connection): always use PRELUDE_MSG_AUTH for header tag. use PRELUDE_MSG_AUTH_PLAINTEXT as a subtag. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@527 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/prelude-client.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) commit 409bcf186ad0223a289a5ff9e4b8759c33522a59 Author: Yoann Vandoorselaere Date: Thu Jan 10 19:10:00 2002 +0000 * src/prelude-client.c (handle_plaintext_connection): don't leak auth entry. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@523 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ docs/api/libprelude-decl.txt | 2 +- docs/api/tmpl/prelude-auth.sgml | 1 + src/prelude-client.c | 8 +++++--- 4 files changed, 10 insertions(+), 4 deletions(-) commit c744168c380d41fb0aba7fc47bdf9cd3e430b5b8 Author: Yoann Vandoorselaere Date: Thu Jan 10 17:03:50 2002 +0000 * src/include/prelude-message-id.h: added ID for authentication. * src/include/prelude-message.h: * src/include/prelude-io.h: add a Swig entry so that swig know how to generate a wrapper. * src/ssl.c (ssl_init_client): free unused data in case of failure. * src/prelude-io.c (sys_write): (sys_close): don't handle case where read return 0. (file_read): (file_write): theses one should never set errno to EINTR or EAGAIN. * src/prelude-client.c (handle_plaintext_connection): read authentication message. This is now done throughr prelude-message, not prelude-io directly. most of the code reworked cause we use prelude-message everywhere now. * src/prelude-auth.c: don't take care of the connecting host anymore. Act as a basic interface to the authentication file. The message reading / writing code is now in the prelude-client / Manager server interface. Keep password crypted on the Manager server. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@518 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 28 +++++ docs/api/libprelude-decl.txt | 72 ++++++++++++- docs/api/tmpl/libprelude-unused.sgml | 20 ++++ docs/api/tmpl/prelude-auth.sgml | 22 ---- sensor-adduser/sensor-adduser.c | 2 +- src/include/prelude-auth.h | 6 +- src/include/prelude-io.h | 16 +++ src/include/prelude-message-id.h | 14 ++- src/include/prelude-message.h | 18 ++++ src/prelude-auth.c | 198 ++++++++++++----------------------- src/prelude-client.c | 146 ++++++++++++++++---------- src/prelude-io.c | 34 +++--- src/ssl.c | 41 ++++---- 13 files changed, 363 insertions(+), 254 deletions(-) commit ae1d1286a1cec6c8e1960294777b60e1f68fecc7 Author: Yoann Vandoorselaere Date: Thu Jan 10 07:58:34 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@517 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 2 +- src/prelude-io.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit c1a256a6cebb1e61dec1acbaad55496735cd1213 Author: Yoann Vandoorselaere Date: Thu Jan 10 07:53:00 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@516 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5fd7107459516c3f9aa4648afafb6480e3891b0e Author: Yoann Vandoorselaere Date: Thu Jan 10 00:31:30 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@514 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4c0c3a480524648a971acc0d543883fa4384a727 Author: Yoann Vandoorselaere Date: Thu Jan 10 00:22:42 2002 +0000 * src/prelude-io.c (prelude_io_read_delimited): return -1 on EOF. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@513 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/prelude-io.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 0cff8fb2d3904930a6e7cde1278c22bcef9430f1 Author: Yoann Vandoorselaere Date: Wed Jan 9 15:50:32 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@511 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 216 +++++++++++++++++++++++++++++++++++++++++- docs/api/tmpl/idmef-tree.sgml | 4 +- src/daemonize.c | 8 +- src/idmef-msg-send.c | 1 + src/idmef-tree-func.c | 3 +- src/prelude-message.c | 1 + 6 files changed, 221 insertions(+), 12 deletions(-) commit ff0c1f39e6f73533c8fcec6238480bb9479f7566 Author: Yoann Vandoorselaere Date: Mon Jan 7 17:37:39 2002 +0000 * src/config-engine.c (cmp_entry): remove space at the beginning of the line. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@510 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/config-engine.c | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) commit 71c8ab9bc20dd814219374f3e747be87dd350d86 Author: Yoann Vandoorselaere Date: Mon Jan 7 16:14:50 2002 +0000 * src/idmef-msg-send.c: new interface for sending IDMEF message. This one is to be used by application that are not time critical. Other should still directly use the prelude-message API. * src/idmef-tree-func.c: moved most of the IDMEF creation function from the Manager server to libprelude. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@507 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 11 + src/Makefile.am | 4 +- src/idmef-msg-send.c | 448 +++++++++++++++++++++++++++ src/idmef-tree-func.c | 705 ++++++++++++++++++++++++++++++++++++++++++ src/include/Makefile.am | 5 +- src/include/idmef-msg-send.h | 13 + src/include/idmef-tree-func.h | 124 ++++++++ src/include/idmef-tree.h | 21 +- 8 files changed, 1323 insertions(+), 8 deletions(-) commit 043355d1159301f37f0c3b9c3430266765215fce Author: Krzysztof Zaraska Date: Sun Jan 6 10:51:56 2002 +0000 includes fixed for FreeBSD git-svn-id: file:///home/yoann/SVN/trunk/libprelude@504 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/extract.c | 1 + 2 files changed, 4 insertions(+) commit e66b49fa745749ce90ce7c98f73a30d61b1ccb0d Author: Yoann Vandoorselaere Date: Sat Jan 5 17:52:45 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@500 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 6 ++-- docs/api/libprelude-decl.txt | 81 +++++++++++++++++++++++++++++++++++++++++++- docs/api/tmpl/sensor.sgml | 1 + src/prelude-client-mgr.c | 41 ++++++++-------------- src/prelude-io.c | 26 +++++++++++--- src/prelude-message.c | 4 +-- src/sensor.c | 13 +++---- 7 files changed, 128 insertions(+), 44 deletions(-) commit 2a526bd91e7ed74a0afea4824bced98e581f447d Author: Yoann Vandoorselaere Date: Sat Jan 5 14:17:37 2002 +0000 * src/sensor.c (parse_argument): short option for manager-addr is -m, not -a. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@497 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/sensor.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) commit b1efb0db7fe9871053bc30313093986f5cda2c42 Author: Yoann Vandoorselaere Date: Sat Jan 5 14:02:17 2002 +0000 (declare_ident_to_manager): put the ident in network byte order. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@493 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/client-ident.c | 19 ++++++++++++++----- src/include/client-ident.h | 2 +- src/prelude-client.c | 2 +- 4 files changed, 19 insertions(+), 7 deletions(-) commit ae0fa9734d75ffdbbeed143117aca84ea62b3505 Author: Yoann Vandoorselaere Date: Sat Jan 5 13:24:08 2002 +0000 * src/client-ident.c: new file. (prelude_client_ident_tell): when called, will tell the other peer what ID we are, unless we are a Manager ourselve. * src/extract.c: new file, contain type checking function for message extraction. * src/sensor.c (prelude_sensor_init): now take a sensor_name argument. (setup_manager_addr): identifier for client manager is the sensor name. * src/prelude-message.c (prelude_msg_read): it's possible for a message to only contain an header. handle that case well, without returning an error. * src/prelude-client.c (prelude_client_connect): better error handling. Call prelude_client_ident_tell(). * src/prelude-client-mgr.c (parse_config_line): warn if Manager emission can not work at initialisation too. (setup_backup_fd): include program UID, in the filename. This file can't be shared if two instance of the sensor run as different user. * src/include/prelude-message-id.h (PRELUDE_MSG_ID_REPLY): (PRELUDE_MSG_ID_REQUEST): new message ID. * src/sensor.c (prelude_sensor_init): stop initializing if parse_argument() return prelude_option_end or prelude_option_error. * src/prelude-getopt.c (check_option_optarg): check index before dereferencing argv. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@492 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 38 +++++++ Makefile.am | 3 +- src/Makefile.am | 2 + src/client-ident.c | 212 +++++++++++++++++++++++++++++++++++++++ src/extract.c | 78 ++++++++++++++ src/include/Makefile.am | 5 +- src/include/client-ident.h | 4 + src/include/extract.h | 26 +++++ src/include/prelude-message-id.h | 11 ++ src/include/sensor.h | 5 +- src/prelude-client-mgr.c | 22 ++-- src/prelude-client.c | 35 ++++--- src/prelude-getopt.c | 2 +- src/prelude-message.c | 2 +- src/sensor.c | 47 ++++++--- 15 files changed, 449 insertions(+), 43 deletions(-) commit bf6db92ca227d150c8b21a6928fded726563b1fc Author: Yoann Vandoorselaere Date: Fri Jan 4 17:51:51 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@491 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/sensor-adduser.c | 2 -- 1 file changed, 2 deletions(-) commit c83ed819047e1b0e80d7b8092069de78a3dac507 Author: Yoann Vandoorselaere Date: Fri Jan 4 17:27:15 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@490 09c5ec92-17d4-0310-903a-819935f44dba src/include/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a2a24d3b1a017d1a7c12fd295393f312f99e63c3 Author: Yoann Vandoorselaere Date: Fri Jan 4 17:25:54 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@489 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 4 ++-- configure.ac | 5 ++--- docs/api/libprelude-decl.txt | 30 +++++++++--------------------- docs/api/tmpl/libprelude-unused.sgml | 18 ++++++++++++++++++ docs/api/tmpl/prelude-auth.sgml | 9 ++------- docs/api/tmpl/prelude-getopt.sgml | 1 + docs/api/tmpl/ssl.sgml | 14 -------------- sensor-adduser/Makefile.am | 2 +- sensor-adduser/sensor-adduser.c | 2 +- src/Makefile.am | 2 +- src/include/Makefile.am | 3 +-- src/include/auth.h | 1 + src/include/prelude-auth.h | 7 ++----- src/include/ssl.h | 8 ++------ src/prelude-auth.c | 23 +++++++++++++---------- src/prelude-client.c | 3 ++- src/sensor.c | 2 +- 17 files changed, 59 insertions(+), 75 deletions(-) commit 3e8f4d1a26ce2675a7f8c9cc938ce8ea65eb6989 Author: Yoann Vandoorselaere Date: Fri Jan 4 16:17:32 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@485 09c5ec92-17d4-0310-903a-819935f44dba sensors-default.conf | 15 +++++++++------ src/sensor.c | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) commit 53b50fd4b1310b0dbbad63b45d7c6ae6dffdf993 Author: Yoann Vandoorselaere Date: Fri Jan 4 16:00:35 2002 +0000 * src/config-engine.c (is_line_commented): new function. (search_entry): if the section the entry is in is commented, return an error. (config_get_section): ditto. * src/include/plugin-common.h (plugin_request_new_id): remove plugin_option API. Plugin have to use prelude-getopt API now. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@482 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/config-engine.c | 21 ++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) commit ac1f987a9c6f100fea5808166ffe33dfb4129020 Author: Yoann Vandoorselaere Date: Fri Jan 4 13:37:18 2002 +0000 * src/include/plugin-common.h (plugin_request_new_id): remove plugin_option API. Plugin have to use prelude-getopt API now. * src/sensor.c (parse_argument): removed --help option hook. The application have to call prelude_option_print_help() in order for the user to see library option. (parse_argument): do not use prelude_option_new (dead). (parse_argument): handle prelude_option_parse_arguments return value the right way. * src/prelude-getopt.c: include string.h (search_cli_option): correctly match short option. (check_option_optarg): remove un-necessary code. (check_option_noarg): ditto. (check_option): initialize optarg to NULL for safety. (process_option_cfg_hook): new function: Try to get value for option that weren't set on command line in the config file. Big cleanup and slight API change. * src/prelude-client.c (prelude_client_connect): directly call prelude_option_wide_get_msg(). * src/prelude-client-mgr.c (parse_config_line): remove errornous strtok() function call. * src/plugin-common.c: API change. allow asynchronous plugin subscribtion / un-subscribtion. Cleanup. * src/config-engine.c (cmp_entry): (cmp_section): make the matching case unsensitive. (config_get_section): new function, return 0 if section exist. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@479 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 37 +++ docs/api/libprelude-decl.txt | 74 ++--- docs/api/tmpl/libprelude-unused.sgml | 55 ++++ docs/api/tmpl/plugin-common-prv.sgml | 18 +- docs/api/tmpl/plugin-common.sgml | 25 -- docs/api/tmpl/prelude-getopt.sgml | 32 +- src/config-engine.c | 23 +- src/include/config-engine.h | 1 + src/include/plugin-common-prv.h | 8 +- src/include/plugin-common.h | 23 +- src/include/prelude-getopt.h | 27 +- src/plugin-common.c | 524 +++++++++++++-------------------- src/prelude-client-mgr.c | 6 +- src/prelude-client.c | 2 +- src/prelude-getopt.c | 545 +++++++++++++++++++++-------------- src/sensor.c | 69 +---- 16 files changed, 711 insertions(+), 758 deletions(-) commit 27221f2673d01fde2eb7aa2da3e31835bcd74ae0 Author: Yoann Vandoorselaere Date: Thu Jan 3 00:07:52 2002 +0000 * src/prelude-client-mgr.c (secure_open): avoid symlink attack as much as possible. There is still a race condition because we are working with 'possibly persistant file' and there is no way to open a file that already exist securely (without truncating it or deleting it). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@478 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 +++++ src/prelude-client-mgr.c | 93 +++++++++++++++++++++++++++++++++++------------- 2 files changed, 76 insertions(+), 25 deletions(-) commit 81bc89f0380ba6d504741dbd9529ccc21f0393ed Author: Yoann Vandoorselaere Date: Wed Jan 2 18:54:46 2002 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@475 09c5ec92-17d4-0310-903a-819935f44dba sensors-default.conf | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit e90f4b0dfa6b45b77f7b8c07a73fb464710a4eb7 Author: Yoann Vandoorselaere Date: Wed Jan 2 18:54:11 2002 +0000 * src/sensor.c (parse_argument): cleanup. Use generic sensor configuration file when needed. * src/prelude-getopt.c (get_missing_options): cleanup. (prelude_option_parse_arguments): only try to get missing option from configuration file if filename is not NULL. * src/prelude-client-mgr.c (parse_config_line): fix case were existing backup wouldn't be flushed. * Makefile.am (install-data-hook): create the config directory, (755), spool directory (1733, for any sensor to be able to fallback to writing to a file). Install a default configuration file, to be used the application doesn't specify one. * src/prelude-getopt.c (prelude_option_parse_arguments): only try to get missing option from configuration file if filename is not NULL. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@474 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 23 ++++++++++++++ Makefile.am | 11 +++++++ src/config-engine.c | 3 -- src/prelude-client-mgr.c | 80 ++++++++++++++++++++++++++++++------------------ src/prelude-getopt.c | 37 +++++++++++++--------- src/sensor.c | 65 +++++++++++++++++++++++++++++---------- src/ssl.c | 2 +- 7 files changed, 155 insertions(+), 66 deletions(-) commit 1a587907de1850f5d612a71f04c83e1c0106c056 Author: Yoann Vandoorselaere Date: Wed Jan 2 15:33:11 2002 +0000 * src/sensor.c (setup_manager_addr): no need to duplicate optarg. * src/prelude-auth.c (prelude_auth_create_account): free client address string. (prelude_auth_send): ditto. * configure.ac: add -O0 -pg to CFLAGS if profiling is enabled. * src/config-engine.c (load_file_in_memory): handle fopen error correctly. * src/prelude-client-mgr.c: use two different file descriptor referencing the same backup file. One is open for writing, in O_APPEND mode. So the file won't get corrupted if different process are writing to it at the same time (write are atomic). (BACKUP_DIR): now /var/spool/prelude This forbid us to use the same file descriptor for reading. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@473 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 23 +++++++++++ configure.ac | 2 +- docs/api/libprelude-decl.txt | 13 ++---- src/config-engine.c | 9 ++++- src/prelude-auth.c | 4 +- src/prelude-client-mgr.c | 95 +++++++++++++++++++++++++++++++------------- src/sensor.c | 9 +++-- 7 files changed, 111 insertions(+), 44 deletions(-) commit f8c97c8e7df4ba8a9f0a46f1e6ae0df18ad55805 Author: Yoann Vandoorselaere Date: Sun Dec 30 12:07:27 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@470 09c5ec92-17d4-0310-903a-819935f44dba src/include/threads.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b300259fc8f6c04285d4503de81eb78fdbccc0fb Author: Yoann Vandoorselaere Date: Sun Dec 30 12:05:32 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@469 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 59 ++++++++++++++++++++------------------------ src/include/threads.h | 4 +-- 2 files changed, 29 insertions(+), 34 deletions(-) commit 54034fc10ed657f6c1ca437d3e8ba8fac20b8295 Author: Yoann Vandoorselaere Date: Sun Dec 30 11:55:25 2001 +0000 * src/include/threads.h: workaround for thread enabled thread profiling. This code come from http://sam.zoy.org/doc/programming/gprof.html The authors is presumably Samuel Hocevar . Only enabled if --enable-profiling is given on command line * Added missing CREDITS file, taken from prelude-nids and updated with the necessary entry. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@466 09c5ec92-17d4-0310-903a-819935f44dba CREDITS | 5 +++ ChangeLog | 6 +++ acconfig.h | 1 + configure.ac | 16 ++++++- src/include/Makefile.am | 3 +- src/include/threads.h | 110 ++++++++++++++++++++++++++++++++++++++++++++++++ src/prelude-async.c | 2 + 7 files changed, 141 insertions(+), 2 deletions(-) commit 9e981a42d2233a985abf523e398c330668bd2717 Author: Yoann Vandoorselaere Date: Sun Dec 30 10:08:38 2001 +0000 * Added missing CREDITS file, taken from prelude-nids and updated with the necessary entry. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@460 09c5ec92-17d4-0310-903a-819935f44dba CREDITS | 24 ++++++++++++++++++++++++ ChangeLog | 5 +++++ 2 files changed, 29 insertions(+) commit a57a258f15e98bd5d53bb20565c3e93d656e6a76 Author: Yoann Vandoorselaere Date: Sun Dec 30 10:06:12 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@459 09c5ec92-17d4-0310-903a-819935f44dba AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2db74038f30a327f7d9b970dd60596494ae6c127 Author: Krzysztof Zaraska Date: Sun Dec 30 09:43:35 2001 +0000 FreeBSD compatibility fixes git-svn-id: file:///home/yoann/SVN/trunk/libprelude@457 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 12 ++++++++++++ sensor-adduser/sensor-adduser.c | 1 + src/include/list.h | 16 ++++++++++++++++ src/prelude-getopt.c | 1 + src/prelude-message.c | 1 + 5 files changed, 31 insertions(+) commit 89a3bbb9135069e0af7e7f0f7a651f4fad9bfdd8 Author: Yoann Vandoorselaere Date: Sat Dec 29 20:36:59 2001 +0000 * src/sensor.c (parse_argument): set warning flags to 0 before internally parsing argument to see if libprelude option were passed. Then restore the old warnings flags. * src/prelude-getopt.c (option_err): new function only print error if the passed flag is set in the global flags. * src/sensor.c (parse_argument): When parsing our own (libprelude) option set, don't print warning about unknow option which can be option from the sensor that initialise us. * src/prelude-getopt.c (prelude_option_set_warnings): new function. Set/Get current warning flags for option parsing. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@456 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 16 ++++++++++++ src/include/prelude-getopt.h | 5 ++++ src/prelude-getopt.c | 58 ++++++++++++++++++++++++++++++++++---------- src/sensor.c | 18 ++++++++++++-- 4 files changed, 82 insertions(+), 15 deletions(-) commit 3caf3f93fba41dc59e1e744cd45ef58c6002a5f9 Author: Yoann Vandoorselaere Date: Fri Dec 28 14:15:56 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@445 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 22 ++++++++++++++++++++++ src/include/prelude-ident.h | 22 ++++++++++++++++++++++ src/include/prelude-message-id.h | 22 ++++++++++++++++++++++ src/prelude-ident.c | 22 ++++++++++++++++++++++ 4 files changed, 88 insertions(+) commit 48bfd47cc367b776fd853bc6d157e7a778c02cf3 Author: Yoann Vandoorselaere Date: Fri Dec 28 12:24:56 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@441 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-decl.txt | 7 +++++- docs/api/tmpl/daemonize.sgml | 9 ------- docs/api/tmpl/libprelude-unused.sgml | 8 +++++++ src/daemonize.c | 2 +- src/include/sensor.h | 3 +++ src/prelude-auth.c | 46 ------------------------------------ src/prelude-client.c | 2 +- 7 files changed, 19 insertions(+), 58 deletions(-) commit f3b027d26c07e5d4c4f0b278344b200eb6a3be7a Author: Yoann Vandoorselaere Date: Fri Dec 28 12:21:24 2001 +0000 * src/plugin-common.c (plugin_print_stats): remove \t that was putting garbage in syslog logfile. * src/common.c (prelude_log_set_prefix): (standard_log): (syslog_log): new function that allow to set a global prefix to all prelude_log() call. Passing NULL to prelude_log_set_prefix() remove the prefix. * src/daemonize.c (prelude_daemonize): renamed to prelude_daemonize(). Comment the function. Also, if requested, create an exclusive lockfile held until program exit. * src/prelude-message.c (read_message_content): comment why we return prelude_msg_error if we get an EOF in the middle of a message. (prelude_msg_read): free message on error / eof. * src/prelude-client.c (handle_plaintext_connection): (handle_ssl_connection): (start_inet_connection): (start_unix_connection): fit API change. * src/prelude-client-mgr.c (setup_backup_fd): * src/prelude-io.c (prelude_io_set_file_io): now correspond to libc buffered I/O. (prelude_io_set_sys_io): renamed from set_network_io(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@440 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 35 +++++++++++ docs/api/libprelude-decl.txt | 36 ++++-------- docs/api/tmpl/libprelude-unused.sgml | 8 +++ docs/api/tmpl/prelude-io.sgml | 9 --- sensor-adduser/ssl-register.c | 2 +- src/common.c | 46 ++++++++++++--- src/daemonize.c | 111 ++++++++++++++++++++++++++++++----- src/include/common.h | 11 ++++ src/include/daemonize.h | 2 +- src/include/plugin-common-prv.h | 3 +- src/plugin-common.c | 15 ++--- 11 files changed, 207 insertions(+), 71 deletions(-) commit 3b6e645896478bf2a74217f3c3b7e037b6b0efc3 Author: Yoann Vandoorselaere Date: Fri Dec 28 10:14:14 2001 +0000 * src/prelude-message.c (read_message_content): comment why we return prelude_msg_error if we get an EOF in the middle of a message. (prelude_msg_read): free message on error / eof. * src/prelude-client.c (handle_plaintext_connection): (handle_ssl_connection): (start_inet_connection): (start_unix_connection): fit API change. * src/prelude-client-mgr.c (setup_backup_fd): * src/prelude-io.c (prelude_io_set_file_io): now correspond to libc buffered I/O. (prelude_io_set_sys_io): renamed from set_network_io(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@437 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-io.h | 4 +- src/prelude-client-mgr.c | 2 +- src/prelude-client.c | 6 +-- src/prelude-io.c | 123 ++++++++++++++++++++++++++--------------------- src/prelude-message.c | 22 ++++++--- 5 files changed, 89 insertions(+), 68 deletions(-) commit fcf95a6f22c1f9e1f9edfc2195ce090725d22a97 Author: Yoann Vandoorselaere Date: Thu Dec 27 18:22:56 2001 +0000 * src/include/prelude-message.h: * src/prelude-message.c: new type: prelude_msg_status_t returned by prelude_msg_read. This make the handling of the return value easier. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@436 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 + configure.ac | 6 +- docs/api/libprelude-decl.txt | 277 +++++++++++++++++++++++++++++------ docs/api/tmpl/idmef-message-id.sgml | 21 --- docs/api/tmpl/idmef-tree.sgml | 1 + docs/api/tmpl/libprelude-unused.sgml | 18 +++ src/include/prelude-message.h | 10 +- src/prelude-message.c | 30 ++-- 8 files changed, 288 insertions(+), 82 deletions(-) commit 6e9226cd3dc8f73f815ddc892b5937bbb036081b Author: Yoann Vandoorselaere Date: Wed Dec 26 15:58:07 2001 +0000 * src/include/idmef-tree.h: ident members are all uint64_t. Add missing IDMEF stuff. * src/include/idmef-message-id.h: more work toward full IDMEF compliance. * src/prelude-auth.c (read_auth_result): Handle case where prelude_io_read_delimited() return 0. This fix a possible crash. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@430 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 11 ++++ src/include/idmef-message-id.h | 59 ++++++++++++++++++--- src/include/idmef-tree.h | 117 +++++++++++++++++++++++++++++------------ src/prelude-auth.c | 2 +- 4 files changed, 148 insertions(+), 41 deletions(-) commit f55c1ba809cf13d51729b5ec7346a58a59f84081 Author: Yoann Vandoorselaere Date: Wed Dec 19 16:02:31 2001 +0000 * src/sensor.c (parse_argument): manager address is a wide option. (prelude_sensor_get_option_msg): return the wide option message for our wide option set. * src/prelude-io.c (prelude_io_read_wait): use poll() in order to wait data. This also fix a bug where we were returning 0 even if we couldn't read the specified amount of bytes. * src/prelude-getopt.c (prelude_option_wide_add): (prelude_option_new): compute message len on each wide option add. (prelude_option_wide_get_msg): generate, and cache a message containing all the wide option. * src/prelude-client.c (prelude_client_connect): send wide option message on connect. * src/prelude-async.c (async_thread): don't catch signals. * configure.ac (CFLAGS): add -DREENTRANT to cflags. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@426 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 23 ++++++++++ configure.ac | 2 +- docs/api/libprelude-decl.txt | 94 ++++++++++++++++++++++++++++++++++++++- src/include/Makefile.am | 2 + src/include/prelude-getopt-wide.h | 15 +++++++ src/include/prelude-getopt.h | 4 +- src/include/prelude-message-id.h | 6 +++ src/prelude-async.c | 14 ++++++ src/prelude-client.c | 6 ++- src/prelude-getopt.c | 82 +++++++++++++++++++++++++++++++++- src/prelude-io.c | 11 +++++ src/prelude-message.c | 2 +- src/sensor.c | 8 +++- 13 files changed, 261 insertions(+), 8 deletions(-) commit b3b72f7726e9c9acf54a8d2eff64f048e5e793d3 Author: Yoann Vandoorselaere Date: Fri Dec 14 11:39:09 2001 +0000 * src/prelude-ident.c (setup_filedes_if_needed): new function. Correctly setup filed. Will avoid SIGBUS. * src/include/idmef-tree.h: ident is a 64 bit unsigned integer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@422 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/include/idmef-tree.h | 2 +- src/prelude-ident.c | 52 +++++++++++++++++++++++++++++++++++++++++------- 3 files changed, 51 insertions(+), 8 deletions(-) commit c5ea2e44d4e25cbed7fec69907cbe74bde99e5ab Author: Yoann Vandoorselaere Date: Fri Dec 14 10:45:23 2001 +0000 * src/include/prelude-ident.h: * src/prelude-ident.c: new ident API. Use to generate unique 64 bits ident, remembered across program run (usage of memory mapped IO). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@421 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 +++ src/Makefile.am | 1 + src/include/Makefile.am | 1 + src/include/prelude-ident.h | 10 ++++ src/prelude-ident.c | 123 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 141 insertions(+) commit 4d7b2a39406d3ef5095d24aff8c4ad9d5aa2428f Author: Yoann Vandoorselaere Date: Thu Dec 13 14:40:33 2001 +0000 * sensor-adduser/Makefile.am: * src/Makefile.am: * configure.ac: Fix : sensor-adduser doesn't compile without OpenSSL. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@420 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ configure.ac | 9 +++++---- sensor-adduser/Makefile.am | 6 +++++- src/Makefile.am | 2 +- 4 files changed, 18 insertions(+), 6 deletions(-) commit 8d815c561029d49a7b0e4fbdbf379d547cb6aeda Author: Banux Date: Thu Dec 13 13:58:52 2001 +0000 debian package git-svn-id: file:///home/yoann/SVN/trunk/libprelude@419 09c5ec92-17d4-0310-903a-819935f44dba debian/README.Debian | 6 ++ debian/changelog | 9 +++ debian/control | 46 ++++++++++++++++ debian/copyright | 26 +++++++++ debian/libprelude-dev.dirs | 2 + debian/libprelude-dev.files | 3 + debian/libprelude-dev.postinst.debhelper | 7 +++ debian/libprelude-dev.prerm.debhelper | 5 ++ debian/libprelude1.dirs | 1 + debian/libprelude1.files | 1 + debian/libprelude1.postinst.debhelper | 7 +++ debian/libprelude1.prerm.debhelper | 5 ++ debian/rules | 94 ++++++++++++++++++++++++++++++++ 13 files changed, 212 insertions(+) commit c159c816ff5b79a6365312a1160bde72d17511c3 Author: Yoann Vandoorselaere Date: Wed Dec 12 17:22:14 2001 +0000 * src/prelude-client-mgr.c (prelude_client_mgr_broadcast): (walk_manager_lists): correct warning emmission in case a Manager (or rule of Manager) goes down. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@415 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/prelude-client-mgr.c | 12 +++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) commit 8e88dd71b7c1a42639e905765c55f951a87fa379 Author: Yoann Vandoorselaere Date: Tue Dec 11 15:20:16 2001 +0000 * src/sensor.c: include ssl.h only if HAVE_SSL is defined. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@414 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 2 ++ src/sensor.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit bde11cdc40cd459aec0d8ac797bff51bc775afe1 Author: Yoann Vandoorselaere Date: Tue Dec 11 12:12:12 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@413 09c5ec92-17d4-0310-903a-819935f44dba docs/api/Makefile.am | 1 + docs/api/libprelude-decl.txt | 25 ++++------------- docs/api/libprelude-sections.txt | 6 ---- docs/api/tmpl/libprelude-unused.sgml | 53 +++++++++++++++++++++++++++++++++++ docs/api/tmpl/prelude-async.sgml | 3 +- docs/api/tmpl/prelude-client-mgr.sgml | 9 ------ docs/api/tmpl/prelude-client.sgml | 11 -------- docs/api/tmpl/thread.sgml | 17 ----------- src/include/Makefile.am | 3 ++ 9 files changed, 64 insertions(+), 64 deletions(-) commit b35dd8f53d05b2dd0599e039749f2a715ab79fd8 Author: Yoann Vandoorselaere Date: Tue Dec 11 11:59:06 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@412 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 254501a7b67b07aef9e590b4f804860fe5fc48ef Author: Yoann Vandoorselaere Date: Tue Dec 11 11:55:43 2001 +0000 Reverting wrong commit. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@411 09c5ec92-17d4-0310-903a-819935f44dba src/Makefile.am | 3 +- src/include/Makefile.am | 3 +- src/include/prelude-async.h | 9 +--- src/include/prelude-client-mgr.h | 3 -- src/include/prelude-client.h | 4 +- src/prelude-async.c | 103 ++++++--------------------------------- src/prelude-client-mgr.c | 42 ---------------- src/prelude-client.c | 28 +---------- src/sensor.c | 26 +--------- 9 files changed, 22 insertions(+), 199 deletions(-) commit 565e68c036086750370324d6c7aa344e9b3fcdc0 Author: Yoann Vandoorselaere Date: Tue Dec 11 11:47:01 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@410 09c5ec92-17d4-0310-903a-819935f44dba docs/api/libprelude-docs.sgml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e77595c71e5d665e8b00b82c6e9bcb3d0cafe552 Author: Yoann Vandoorselaere Date: Tue Dec 11 11:36:09 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@409 09c5ec92-17d4-0310-903a-819935f44dba docs/api/Makefile.am | 2 +- docs/api/libprelude-decl.txt | 1465 +++++++++++++++++++++++++++++++ docs/api/libprelude-docs.sgml | 65 ++ docs/api/libprelude-sections.txt | 365 ++++++++ docs/api/tmpl/common.sgml | 63 ++ docs/api/tmpl/config-engine.sgml | 58 ++ docs/api/tmpl/config.sgml | 16 + docs/api/tmpl/daemonize.sgml | 25 + docs/api/tmpl/getopt_long.sgml | 16 + docs/api/tmpl/idmef-message-id.sgml | 534 +++++++++++ docs/api/tmpl/idmef-tree.sgml | 255 ++++++ docs/api/tmpl/libmissing.sgml | 16 + docs/api/tmpl/libprelude-unused.sgml | 299 +++++++ docs/api/tmpl/list.sgml | 66 ++ docs/api/tmpl/plugin-common-prv.sgml | 100 +++ docs/api/tmpl/plugin-common.sgml | 162 ++++ docs/api/tmpl/prelude-async.sgml | 63 ++ docs/api/tmpl/prelude-auth.sgml | 61 ++ docs/api/tmpl/prelude-client-mgr.sgml | 53 ++ docs/api/tmpl/prelude-client.sgml | 75 ++ docs/api/tmpl/prelude-getopt.sgml | 128 +++ docs/api/tmpl/prelude-io.sgml | 145 +++ docs/api/tmpl/prelude-list.sgml | 38 + docs/api/tmpl/prelude-message.sgml | 184 ++++ docs/api/tmpl/sensor.sgml | 35 + docs/api/tmpl/ssl-gencrypto.sgml | 52 ++ docs/api/tmpl/ssl-register.sgml | 16 + docs/api/tmpl/ssl-registration-msg.sgml | 207 +++++ docs/api/tmpl/ssl.sgml | 61 ++ docs/api/tmpl/string-matching.sgml | 88 ++ docs/api/tmpl/thread.sgml | 33 + docs/api/tmpl/timer.sgml | 128 +++ docs/api/tmpl/variable.sgml | 44 + src/Makefile.am | 3 +- src/config-engine.c | 4 +- src/include/Makefile.am | 3 +- src/include/prelude-async.h | 9 +- src/include/prelude-client-mgr.h | 3 + src/include/prelude-client.h | 4 +- src/prelude-async.c | 103 ++- src/prelude-client-mgr.c | 42 + src/prelude-client.c | 28 +- src/sensor.c | 26 +- 43 files changed, 5118 insertions(+), 25 deletions(-) commit 8b431a22f6613cb4635fd3c4f32b3f6f4e3c3bab Author: Yoann Vandoorselaere Date: Tue Dec 11 03:25:55 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@407 09c5ec92-17d4-0310-903a-819935f44dba configure.ac | 2 +- docs/api/Makefile.am | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 406947c1743ff82eafdc0c95f622a7e92beca5f3 Author: Yoann Vandoorselaere Date: Tue Dec 11 03:18:37 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@406 09c5ec92-17d4-0310-903a-819935f44dba src/common.c | 6 ++++++ src/include/common.h | 2 +- src/include/plugin-common-prv.h | 2 +- src/include/plugin-common.h | 2 +- src/include/prelude-getopt.h | 2 +- src/include/prelude-message.h | 6 +++--- src/plugin-common.c | 2 +- src/prelude-getopt.c | 23 +++++++++++++++-------- src/prelude-io.c | 13 ++++++------- 9 files changed, 35 insertions(+), 23 deletions(-) commit 917601dcd7a9005d54264868af419071b8857ed2 Author: Yoann Vandoorselaere Date: Tue Dec 11 01:09:29 2001 +0000 * configure.ac (COMMON_LIBS): applied patch from Krzysztof Zaraska ("use == operator for test in configure, but valid one is =") git-svn-id: file:///home/yoann/SVN/trunk/libprelude@404 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ configure.ac | 3 +++ 2 files changed, 9 insertions(+) commit 4175394d7f0b122219a8ad21d0cf74976486d001 Author: Yoann Vandoorselaere Date: Mon Dec 10 15:27:16 2001 +0000 * src/common.c (syslog_log): we have to yse a buffer. (standard_log): use vfprintf(). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@402 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 +++++ src/common.c | 14 ++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) commit c81779304760818b08f531679b1c934f6214af9f Author: Yoann Vandoorselaere Date: Sat Dec 8 02:09:44 2001 +0000 * src/include/plugin-common-prv.h (plugin_run_with_return_value): (plugin_run): specify the member to call in the macro call. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@395 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 12 ++++++++++++ src/include/plugin-common-prv.h | 32 ++++++++++++++++---------------- 2 files changed, 28 insertions(+), 16 deletions(-) commit fe684d6f1eeefe61dd325ea7fb0f88faf9902fd0 Author: Yoann Vandoorselaere Date: Wed Dec 5 15:16:43 2001 +0000 * src/include/common.h (do_init_nofail): put back do_init / do_init_nofail macro. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@389 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/include/common.h | 11 +++++++++++ 2 files changed, 14 insertions(+) commit 4dc89945e46090ba67580bccb8215c6e86739314 Author: Yoann Vandoorselaere Date: Wed Dec 5 14:54:45 2001 +0000 * src/prelude-getopt.c : Lot of work. Hierarchy of option should now work. Callback have a control over the argument parsing using their return value. A flag is now passed when adding an option, to tell if it is handled throught the command line interface or the configuration file or both. * src/prelude-getopt.c (lookup_variable_if_needed): Take the address of the optarg pointer as argument. Return 0 on success, -1 on error. * src/common.c: * src/include/common.h: Move the log macro code to the prelude_log function. The log macro still exist, and will pass the necessary parameter to prelude_log(). This avoid the logging code to be inlined in the calling function, which was bad because it was making the functions grew at the risk of not fitting the CPU cache anymore. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@385 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 25 ++++ src/Makefile.am | 3 +- src/common.c | 78 ++++++++++ src/include/common.h | 43 +----- src/include/prelude-getopt.h | 53 +++++-- src/prelude-async.c | 2 +- src/prelude-client.c | 1 + src/prelude-getopt.c | 339 +++++++++++++++++++++++++++++-------------- src/sensor.c | 35 +++-- 9 files changed, 406 insertions(+), 173 deletions(-) commit 8b586ef72d335d979ddb6daf3b2ea2d6568ad5b8 Author: Yoann Vandoorselaere Date: Tue Nov 27 14:48:14 2001 +0000 * src/prelude-getopt.c (prelude_option_add): use list_add_tail (item were inserted in the wrong order). prelude_option_t now contain a list of option (prelude_optlist_t). (option_print): new function : print the option hierarchicaly. Start changing the interface in order to allow sub-options. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@379 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 10 ++++++++ src/include/prelude-getopt.h | 8 ++++--- src/prelude-getopt.c | 54 ++++++++++++++++++++++++++++++-------------- 3 files changed, 52 insertions(+), 20 deletions(-) commit 66a0af66215b5c99a17659997d6908fb74b8569c Author: Yoann Vandoorselaere Date: Mon Nov 26 18:15:37 2001 +0000 * src/prelude-getopt.c (handle_option): oops, reverted wrong fix, optarg is always returned and is never NULL. Removed un-needed if error prone. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@377 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/prelude-getopt.c | 4 +--- 2 files changed, 7 insertions(+), 3 deletions(-) commit a02989d796fce6aebd2da376bd767c8e21ff0a67 Author: Banux Date: Mon Nov 26 17:28:11 2001 +0000 oops typo require_argument must be required_argument git-svn-id: file:///home/yoann/SVN/trunk/libprelude@376 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-getopt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 28231008d3df0ff9266a61e0d85b613fb7a4161b Author: Banux Date: Mon Nov 26 17:24:00 2001 +0000 fix: callback is not exec if optarg is NULL even if optitem->has_arg is no_arguments git-svn-id: file:///home/yoann/SVN/trunk/libprelude@375 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/prelude-getopt.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) commit 6572d6994dfdeb56e867a68b3f7efa5a74f76ae2 Author: Yoann Vandoorselaere Date: Thu Nov 22 13:46:01 2001 +0000 * src/include/idmef-tree.h: Pid is a 32 bit integer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@374 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/include/idmef-tree.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit cc4f2af80372db1f1ce8c7569d3cc779782e4a26 Author: Yoann Vandoorselaere Date: Wed Nov 21 16:31:25 2001 +0000 * src/prelude-message.c (prelude_msg_set): fix assert. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@373 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/prelude-message.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) commit 19673b8b00641bd7b7f38bcbe4631b1823bddbca Author: Yoann Vandoorselaere Date: Wed Nov 21 15:10:14 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@372 09c5ec92-17d4-0310-903a-819935f44dba configure.ac | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit ec2c3e009b84cfe1a12fda63a26272065dd76093 Author: Yoann Vandoorselaere Date: Mon Nov 19 17:18:35 2001 +0000 * src/prelude-async.c (wait_timer_and_data): use a while loop instead of tail recursivity for now as it might be the cause of a subtle bug. * configure.ac: * src/Makefile.am (libprelude_la_LIBADD): Add autoconf code to search pthread library. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@371 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 10 +++++++++ configure.ac | 11 ++++++++++ src/Makefile.am | 2 +- src/prelude-async.c | 58 ++++++++++++++++++++++++++++------------------------- 4 files changed, 53 insertions(+), 28 deletions(-) commit 57ac6a7aee8279a7f9765ae759cfe12393edb5f3 Author: Yoann Vandoorselaere Date: Fri Nov 16 16:55:27 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@368 09c5ec92-17d4-0310-903a-819935f44dba src/include/idmef-tree.h | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit e83b3ac509d9223b39336fce2916052772a83767 Author: Yoann Vandoorselaere Date: Fri Nov 16 15:41:37 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@364 09c5ec92-17d4-0310-903a-819935f44dba src/include/Makefile.am | 1 - src/include/alert-id.h | 24 ------------------------ src/include/idmef-message-id.h | 5 +++++ 3 files changed, 5 insertions(+), 25 deletions(-) commit 4874f44a9ee39a42aba7039a56325a4bc56baa40 Author: Yoann Vandoorselaere Date: Fri Nov 16 13:31:39 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@359 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-async.h | 22 ++++++++++++++++++++++ src/prelude-async.c | 22 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) commit 080f90096bf7eb834199e9f6859e0be4064c3b58 Author: Yoann Vandoorselaere Date: Fri Nov 16 13:28:17 2001 +0000 * src/include/idmef-tree.h: IDMEF structure. * src/include/idmef-message-id.h: ID for IDMEF based message. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@358 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 5 + src/include/Makefile.am | 2 + src/include/idmef-message-id.h | 175 ++++++++++++++++ src/include/idmef-tree.h | 455 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 637 insertions(+) commit 350d11b024179ecd76b488e45dea7264d3468e4d Author: Yoann Vandoorselaere Date: Sat Nov 10 09:30:05 2001 +0000 * src/prelude-message.c: (read_message_header): (prelude_msg_get): (prelude_msg_write): (prelude_msg_set): use separate index for read / write. This allow us to send a just read messages. Forwarding between Manager is on it's way. * src/sensor.c (prelude_sensor_send_alert): use asynchrnous broadcasting. * src/prelude-client-mgr.c (walk_manager_lists): Never free the message ourself. This is up to the caller to do it. (broadcast_async_cb): (prelude_client_mgr_broadcast_async): When asynchronous operation are used, free the message ourself. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@348 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 20 ++++++ src/include/prelude-client-mgr.h | 4 +- src/prelude-client-mgr.c | 37 +++++++---- src/prelude-message.c | 136 +++++++++++++++++++++++---------------- src/sensor.c | 2 +- 5 files changed, 129 insertions(+), 70 deletions(-) commit 5d64a3f307e285e3a94dd8ee62fc9bc94300049c Author: Yoann Vandoorselaere Date: Wed Nov 7 08:14:17 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@347 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-async.c | 2 -- 1 file changed, 2 deletions(-) commit ef2f59dbc32781064ff507d1bbf92cfe46a991cb Author: Yoann Vandoorselaere Date: Wed Nov 7 08:13:34 2001 +0000 (async_thread): Thread safety on list walking. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@346 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 2 ++ src/prelude-async.c | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) commit 183b4c787022ec6496b675e1b520a5f866ea87b8 Author: Yoann Vandoorselaere Date: Wed Nov 7 08:06:49 2001 +0000 * src/prelude-async.c (get_elapsed_time): new function. (wait_timer_and_data): check the average time we spent waiting on the condition. (which may be > 1 second if the condition was signaled several time). * src/sensor.c: include prelude-list.h, not list.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@345 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 9 +++++++++ src/include/timer.h | 2 +- src/prelude-async.c | 42 +++++++++++++++++++++++++++++++++++++----- src/sensor.c | 2 +- 4 files changed, 48 insertions(+), 7 deletions(-) commit b6b728ec56ca7bc94285ea3d88f460ef9b937cb3 Author: Yoann Vandoorselaere Date: Tue Nov 6 15:32:45 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@342 09c5ec92-17d4-0310-903a-819935f44dba src/sensor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a5f6f193832d04c4d5a0480c57cda9ee60dedc6b Author: Yoann Vandoorselaere Date: Tue Nov 6 15:32:08 2001 +0000 * src/prelude-client-mgr.c (prelude_client_mgr_broadcast_msg): make this function void. Set the message to be processed asynchronously. * src/sensor.c (prelude_sensor_init): Initialize the asynchronous subsystem. * src/prelude-message.c: prelude_message_t inherit of prelude_async_object_t capability. * src/timer.c: Thread safety. * src/prelude-async.c: New asynchronous queue implementation. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@341 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 14 +++++ src/Makefile.am | 4 +- src/include/prelude-async.h | 42 +++++++++++++ src/include/prelude-client-mgr.h | 2 +- src/prelude-async.c | 127 +++++++++++++++++++++++++++++++++++++++ src/prelude-client-mgr.c | 87 ++++++++++++++++++--------- src/prelude-message.c | 9 +-- src/sensor.c | 16 ++--- src/timer.c | 71 +++++++++------------- 9 files changed, 288 insertions(+), 84 deletions(-) commit ad78e03cf4bc3fe4b233a94eb72217e6aab1d353 Author: Yoann Vandoorselaere Date: Mon Nov 5 13:42:07 2001 +0000 * src/prelude-client-mgr.c (prelude_client_mgr_broadcast_msg): Do not print that failsafe mode is enabled for each message. (broadcast_saved_message): print an error if message forwarding fail. (flush_backup_if_needed): ftruncate doesn't modify the file offset. Seek to the beginning of the file. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@336 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/prelude-client-mgr.c | 20 ++++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) commit b6afb6fe1f333e57df652dd3185d28e8250a5e0d Author: Yoann Vandoorselaere Date: Mon Nov 5 13:14:38 2001 +0000 * src/prelude-client.c (prelude_client_connect): set the connection_broken member here. This'll avoid bug on reconnection. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@335 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ sensor-adduser/sensor-adduser.c | 2 ++ sensor-adduser/ssl-register.c | 1 + src/prelude-client.c | 7 ++++++- 4 files changed, 13 insertions(+), 1 deletion(-) commit 7d795abcdfd3480d90105bbb5407c0e6e1e48d29 Author: Yoann Vandoorselaere Date: Mon Nov 5 12:43:23 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@334 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 ++++++++ src/prelude-io.c | 15 ++++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) commit 2f1b7eb8c44c409a86600f889a61f1332c704e13 Author: Yoann Vandoorselaere Date: Mon Nov 5 08:59:30 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@333 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-client.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fbc5cd1a6c050db9dc5086602249945d4fde9248 Author: Yoann Vandoorselaere Date: Mon Nov 5 08:58:07 2001 +0000 * src/prelude-client.c Address member is not const anymore. (prelude_client_new): duplicate address string. (prelude_client_destroy): free address string. * src/prelude-io.c (copy_forward): forward data by chunk of 8192 bytes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@332 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 11 +++++++++++ src/prelude-client.c | 14 +++++++++++++- src/prelude-io.c | 23 ++++++++++++++++------- 3 files changed, 40 insertions(+), 8 deletions(-) commit 91e15fb3b69c219f9fbc0e9ede5f64bfb723baad Author: Yoann Vandoorselaere Date: Tue Oct 30 18:35:06 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@330 09c5ec92-17d4-0310-903a-819935f44dba src/include/socket-op.h | 30 ----- src/socket-op.c | 327 ------------------------------------------------ 2 files changed, 357 deletions(-) commit a0b05453516fd5bc7f3a2dabe17268f96723a6e5 Author: Yoann Vandoorselaere Date: Tue Oct 30 18:33:54 2001 +0000 * src/prelude-io.c: compile properly even if SSL is not available. * src/prelude-client-mgr.c (parse_config_string): new function, stop using strtok() which doesn't really fit our need. This also fix a bug where another NULL client would be added causing AND of client emission to fail. * sensor-adduser/sensor-adduser.c (main): Handle case where SSL is not installed. * src/prelude-auth.c: Modify to work with a prelude-io object. * src/prelude-client.c: Fit prelude-auth API change. * src/Makefile.am (libprelude_la_SOURCES): * src/include/Makefile.am (include_HEADERS): remove socket-op.h and socket-op.c, it is obsoleted by the prelude-io API. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@329 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 23 ++++++++ sensor-adduser/sensor-adduser.c | 13 ++++- src/Makefile.am | 1 - src/include/Makefile.am | 1 - src/include/prelude-auth.h | 4 +- src/prelude-auth.c | 113 +++++++++++++++++++--------------------- src/prelude-client-mgr.c | 64 ++++++++++++++++------- src/prelude-client.c | 18 ++++--- src/prelude-io.c | 4 ++ 9 files changed, 149 insertions(+), 92 deletions(-) commit 547e39171b1f5aed4377dbc16de4b8a6defcba43 Author: Yoann Vandoorselaere Date: Thu Oct 25 15:28:27 2001 +0000 * src/sensor.c: remove the prelude_sensor_t private structure. We don't need it anymore. Add a global pointer on a Manager list. (setup_manager_addr): fit the new clients managers API. * src/prelude-client.c: remove reconnection / failsafe (message backup) code. This is moved to prelude-client-mgr.c (prelude_client_new): Ignore the SIGPIPE signal (we'll check at the write return value thought). Support for Manager implicitly closing the connection should be improved thought. (prelude_client_new): Do not connect here. (prelude_client_connect): new function, connect here. (prelude_client_get_address): new function, get the address / port associated with a prelude_client_t object. Change Prelude Report to Prelude Manager in several place. * sensor-adduser/sensor-adduser.c: we don't need networking header here. * src/prelude-client-mgr.c: Finish the implementation of the clients manager. Have to beautify and comment the code a little more thought. Parsing of the configuration line should probably be more robust too. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@328 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 28 +++ sensor-adduser/sensor-adduser.c | 10 +- src/include/prelude-client-mgr.h | 10 +- src/include/prelude-client.h | 8 + src/prelude-client-mgr.c | 462 +++++++++++++++++++++++++++++++++++---- src/prelude-client.c | 82 +++---- src/prelude-io.c | 2 +- src/sensor.c | 46 +--- 8 files changed, 509 insertions(+), 139 deletions(-) commit 462c524efed7d98de626b5eedfe97688c9405969 Author: Yoann Vandoorselaere Date: Tue Oct 23 14:18:23 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@324 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/Makefile.am | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a32c448911ded6707b663473262002b3c3e495dc Author: Yoann Vandoorselaere Date: Thu Oct 18 10:44:21 2001 +0000 * src/prelude-message.c (prelude_msg_read): Changed message reading API. This function shoud *never* block, even if a message isn't available for reading. * src/prelude-io.c (prelude_io_read_wait): new function. (prelude_io_read): do not wait for data to arrive. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@317 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 9 +++ src/include/prelude-io.h | 6 +- src/include/prelude-message.h | 14 +--- src/prelude-io.c | 108 ++++++++++++++++------------ src/prelude-message.c | 161 +++++++++++++++++++----------------------- 5 files changed, 147 insertions(+), 151 deletions(-) commit aade06b44130a41ba33c327dabb7d513dd2b00cb Author: Yoann Vandoorselaere Date: Tue Oct 16 11:02:22 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@316 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-io.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 9eb6dab93dca5fe7c25fd6c94667379b55cb2c5b Author: Yoann Vandoorselaere Date: Tue Oct 16 10:48:17 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@315 09c5ec92-17d4-0310-903a-819935f44dba src/prelude-auth.c | 4 ---- src/prelude-client.c | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) commit 9fd63e5ba8629b304b73c9d237bca6b71d82f62d Author: Yoann Vandoorselaere Date: Tue Oct 16 10:21:23 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@313 09c5ec92-17d4-0310-903a-819935f44dba src/alert-read.c | 136 --------------- src/auth-common.c | 418 ----------------------------------------------- src/include/alert-read.h | 40 ----- 3 files changed, 594 deletions(-) commit 6dfaa297afe7d53d2c5b1acac63fc958ec7b1792 Author: Yoann Vandoorselaere Date: Tue Oct 16 10:04:58 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@309 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/ssl-register.c | 28 ++++++++++++++++++++++++++++ sensor-adduser/ssl-register.h | 23 +++++++++++++++++++++++ 2 files changed, 51 insertions(+) commit ba3b352c8a53b831a2280a710b5fa37adf33cea3 Author: Yoann Vandoorselaere Date: Tue Oct 16 09:58:25 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@308 09c5ec92-17d4-0310-903a-819935f44dba sensor-adduser/Makefile.am | 8 + sensor-adduser/sensor-adduser.c | 65 +++++++++ sensor-adduser/ssl-register.c | 291 +++++++++++++++++++++++++++++++++++++ sensor-adduser/ssl-register.h | 1 + src/include/prelude-auth.h | 24 ++- src/include/prelude-client-mgr.h | 22 +++ src/include/prelude-client.h | 22 +++ src/include/prelude-getopt.h | 22 +++ src/include/prelude-io.h | 22 +++ src/include/prelude-list.h | 22 +++ src/include/sensor.h | 22 +++ src/include/ssl-registration-msg.h | 2 + src/prelude-auth.c | 2 +- src/prelude-client-mgr.c | 22 +++ src/prelude-getopt.c | 22 +++ src/prelude-io.c | 22 +++ src/sensor.c | 1 - src/ssl.c | 23 +++ 18 files changed, 612 insertions(+), 3 deletions(-) commit 5de9484fd782b294d14db0a3f125aa32c9d500d9 Author: Yoann Vandoorselaere Date: Tue Oct 16 09:40:21 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@307 09c5ec92-17d4-0310-903a-819935f44dba src/include/Makefile.am | 1 - src/include/auth-common.h | 61 ----- src/prelude-auth.c | 653 ++++++++++++++++++++++++++++++++++++++++++++++ src/prelude-getopt.c | 346 ++++++++++++++++++++++++ src/ssl.c | 119 +++++++++ 5 files changed, 1118 insertions(+), 62 deletions(-) commit 52520ba30c3e9237ea74e173e9e6d445ee47d4aa Author: Yoann Vandoorselaere Date: Tue Oct 16 09:34:17 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@306 09c5ec92-17d4-0310-903a-819935f44dba src/include/prelude-auth.h | 9 + src/include/prelude-client-mgr.h | 3 + src/include/prelude-client.h | 8 + src/include/prelude-getopt.h | 38 +++ src/include/prelude-list.h | 35 +++ src/include/prelude-message.h | 77 +++++++ src/include/sensor.h | 4 + src/include/ssl-config.h | 49 ---- src/include/ssl.h | 39 ++++ src/prelude-client-mgr.c | 97 ++++++++ src/prelude-client.c | 474 ++++++++++++++++++++++++++++++++++++++ src/prelude-message.c | 485 +++++++++++++++++++++++++++++++++++++++ src/sensor.c | 178 ++++++++++++++ src/ssl-config.c | 94 -------- 14 files changed, 1447 insertions(+), 143 deletions(-) commit 99f92ffc5d1189f030f55d42152ef7aeaf7a7790 Author: Yoann Vandoorselaere Date: Tue Oct 16 09:11:50 2001 +0000 * A lot of modification. Complete API change, use OOP model in non time critical place for maintainability reason. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@305 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 + Makefile.am | 5 +- configure.ac | 7 +- src/Makefile.am | 15 +- src/include/Makefile.am | 16 +- src/include/common.h | 5 + src/include/list.h | 1 + src/include/prelude-io.h | 18 +- src/include/ssl-gencrypto.h | 4 +- src/include/ssl-registration-msg.h | 10 + src/prelude-io.c | 396 ++++++++++++++++++++++++++++++------- src/ssl-gencrypto.c | 70 ++++++- src/ssl-registration-msg.c | 152 ++++++++++---- 13 files changed, 569 insertions(+), 136 deletions(-) commit b2acb9fd684cce8c20913c6d0cef3f9329a12b87 Author: Yoann Vandoorselaere Date: Mon Oct 8 23:14:40 2001 +0000 * src/include/prelude-io.h: * src/prelude-io.c: New standard / SSL - read / write / close abstraction. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@304 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 8 ++ src/Makefile.am | 3 +- src/include/prelude-io.h | 26 +++++ src/prelude-io.c | 262 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 298 insertions(+), 1 deletion(-) commit bb53409119ee97097aa008fae8eebdd27baaa64e Author: Yoann Vandoorselaere Date: Fri Oct 5 14:18:04 2001 +0000 * src/auth-common.c (write_account): better error reporting. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@298 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/auth-common.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit c8a4684ff03366ed3d0d7eb18df9b382bb229da9 Author: Yoann Vandoorselaere Date: Wed Oct 3 12:22:26 2001 +0000 * src/alert-read.c (prelude_alert_read): fd is a pointer on a private structure to be passed to the read function cb. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@292 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 ++++++ src/alert-read.c | 8 ++++---- src/include/alert-read.h | 4 ++-- 3 files changed, 12 insertions(+), 6 deletions(-) commit d369ccfe54760276bc2ae8c07890c3a6ab366ce7 Author: Yoann Vandoorselaere Date: Fri Sep 28 08:15:48 2001 +0000 Missing copyright notice. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@287 09c5ec92-17d4-0310-903a-819935f44dba src/include/alert-id.h | 22 ++++++++++++++++++++++ src/include/alert-read.h | 22 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) commit 29b9989779195b528caf6c4f5fef8622aada7749 Author: Yoann Vandoorselaere Date: Fri Sep 28 08:05:46 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@286 09c5ec92-17d4-0310-903a-819935f44dba src/ssl-gencrypto.c | 2 -- 1 file changed, 2 deletions(-) commit c8dfb44fb6fbd0795ef0e6e6020845a732b2075e Author: Yoann Vandoorselaere Date: Fri Sep 28 07:29:04 2001 +0000 * src/ssl-config.c: Define KEY_LENGTH and CERT_DAYS moved to this file instead of ssl-config.h, they should be used directly by any SSL related sources files. Remove the ssl config structure cert_directory member and associated function, it's dependant on the user, and shouldn't be computed here. * src/include/alert-read.h: new type readfunc_t, to point on a read function to use. * src/alert-read.c (prelude_alert_read): take a readfunc_t argument identifying the read function to use. * src/include/ssl-config.h: remove manager related definitions. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@283 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 22 ++++++++++++++++++++++ src/alert-read.c | 8 ++++---- src/include/alert-read.h | 5 ++++- src/include/ssl-config.h | 49 ++++-------------------------------------------- src/ssl-config.c | 37 ++++++++++++++++-------------------- src/ssl-gencrypto.c | 8 +++++--- 6 files changed, 55 insertions(+), 74 deletions(-) commit 5af4d7a7999e6c9265d76b6297768f8d96a206eb Author: Yoann Vandoorselaere Date: Sun Sep 2 11:23:10 2001 +0000 * src/alert-read.c (prelude_alert_read_msg): * src/include/alert-read.h (prelude_alert_read_msg): buf is void. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@267 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/alert-read.c | 2 +- src/include/alert-read.h | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) commit fe125ab95650d78aad57cd3344cc40260917b326 Author: Yoann Vandoorselaere Date: Sun Sep 2 11:19:12 2001 +0000 * src/include/alert-id.h (ID_PRELUDE_NIDS_ALERT): new file, define known alert ID. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@266 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/include/Makefile.am | 3 +++ src/include/alert-id.h | 2 ++ 3 files changed, 8 insertions(+) commit 9f5b7fa4605d33672c7986c9c8c6341de38b0ae3 Author: Yoann Vandoorselaere Date: Sun Sep 2 09:52:31 2001 +0000 * src/alert-read.c (prelude_alert_read): better control of the read() return value. (prelude_alert_read): Set the message index to 0. (prelude_alert_read_msg): return 0 when end of message is reached, 1 if we got a message, -1 on error. Handle the end of message character. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@262 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 10 ++++++++++ src/alert-read.c | 36 ++++++++++++++++++++++++------------ 2 files changed, 34 insertions(+), 12 deletions(-) commit 09a74e165f5257d8b90390d923cf436b2b7c79a9 Author: Yoann Vandoorselaere Date: Sat Sep 1 23:37:41 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@261 09c5ec92-17d4-0310-903a-819935f44dba configure.ac | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 53decd60fc182ea01d7b8693918984c107ddbc04 Author: Yoann Vandoorselaere Date: Sat Sep 1 23:33:54 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@260 09c5ec92-17d4-0310-903a-819935f44dba configure.ac | 3 +- src/alert-common.c | 182 ----------------------------------------------------- 2 files changed, 1 insertion(+), 184 deletions(-) commit fa419a5632ac7d171884c9898366a73c8af22a34 Author: Yoann Vandoorselaere Date: Sat Sep 1 21:36:42 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@257 09c5ec92-17d4-0310-903a-819935f44dba src/include/alert-common.h | 23 ----------- src/include/alert.h | 100 --------------------------------------------- 2 files changed, 123 deletions(-) commit 617f2ca3cc67a41c3f29da740266a471a9d3931a Author: Yoann Vandoorselaere Date: Sat Sep 1 21:35:37 2001 +0000 * src/alert-read.c: New communication layer. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@256 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++ src/Makefile.am | 2 +- src/alert-read.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++ src/include/Makefile.am | 3 +- src/include/alert-read.h | 15 ++++++ 5 files changed, 145 insertions(+), 3 deletions(-) commit 7290f194d22fa490bfb1afc4c69865a73ea423b9 Author: Yoann Vandoorselaere Date: Tue Aug 28 18:22:11 2001 +0000 * src/include/alert.h: include a sensor_data_len member (16bits). * src/alert-common.c (read_alert): read sensor data id and sensor data len. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@244 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 6 +++++ src/alert-common.c | 76 +++++++++++++++-------------------------------------- src/include/alert.h | 7 +++++ 3 files changed, 34 insertions(+), 55 deletions(-) commit 364fa8fef717e4adb24683d7cf83462a060703f7 Author: Yoann Vandoorselaere Date: Tue Aug 28 09:57:55 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@243 09c5ec92-17d4-0310-903a-819935f44dba src/include/alert.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2f641ce63c2c05316f69718bd148f32808a564a2 Author: Yoann Vandoorselaere Date: Mon Aug 27 23:32:22 2001 +0000 * src/config-engine.c (cmp_entry): oops, badly synced with last prelude stable branch change. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@241 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/config-engine.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) commit 34b18d57bc757a2066f1a89adbcd0eda9871ab2b Author: Yoann Vandoorselaere Date: Mon Aug 27 22:32:00 2001 +0000 * src/include/alert.h: include inttypes.h alert_t now contain a pointer on the private sensor data, and a 8 bits integer representing the kind of data it is. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@235 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/include/alert.h | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) commit 1052f5cba1765a945c697aaa8da03d3f42ccf7d5 Author: Yoann Vandoorselaere Date: Mon Aug 27 21:41:36 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@234 09c5ec92-17d4-0310-903a-819935f44dba src/include/plugin-common-prv.h | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 3d0cea2ec7b0676a3164bdef1c2fd14f4a1d4b5f Author: Yoann Vandoorselaere Date: Sun Aug 26 14:26:04 2001 +0000 * src/libprelude/config-engine.c (cmp_entry): Avoid reading past the end of our buffer when the line is blank. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@232 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/config-engine.c | 29 ++++++++++++++++++++++------- src/include/socket-op.h | 4 ++-- src/socket-op.c | 42 +++++++++++++++++++++++++++++++----------- 4 files changed, 59 insertions(+), 20 deletions(-) commit ccfedff7d1b216fbd71fa189fe09bfb49f3889f9 Author: Yoann Vandoorselaere Date: Sat Aug 25 23:56:42 2001 +0000 Sync with prelude-0_4 branch git-svn-id: file:///home/yoann/SVN/trunk/libprelude@227 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 25 ++++++++ src/Makefile.am | 3 +- src/config-engine.c | 101 +++++++++++++++++++++-------- src/include/Makefile.am | 3 +- src/include/variable.h | 33 ++++++++++ src/plugin-common.c | 33 ++++++++-- src/variable.c | 165 ++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 330 insertions(+), 33 deletions(-) commit a896600cdc6a2956c998171e25d87c553fa6b4b2 Author: Yoann Vandoorselaere Date: Fri Aug 24 19:33:39 2001 +0000 * src/alert-common.c (read_alert): Return an error if socket_read_nowait() returned 0. This prevent a possible report server if the sensor is interupted while sending an alert. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@207 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 +++++++ src/alert-common.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit 09eca2980330221d2594bf49655d5f1f4b470c3a Author: Sylvain Gil Date: Thu Aug 23 20:37:50 2001 +0000 don't put includedir/libprelude/ in -I git-svn-id: file:///home/yoann/SVN/trunk/libprelude@200 09c5ec92-17d4-0310-903a-819935f44dba libprelude-config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 53c8fa8f6e3f30ed032ce1cd1354e4240295a752 Author: Sylvain Gil Date: Thu Aug 23 13:27:23 2001 +0000 ifdef _FILE in include files and missing includes. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@191 09c5ec92-17d4-0310-903a-819935f44dba src/include/alert.h | 3 +++ src/include/timer.h | 23 ++++------------------- src/ssl-config.c | 1 + src/ssl-gencrypto.c | 1 + src/ssl-registration-msg.c | 1 + 5 files changed, 10 insertions(+), 19 deletions(-) commit a46860960dfbaec7f81a364e3e103f5d69837f0d Author: Sylvain Gil Date: Thu Aug 23 09:41:30 2001 +0000 works better this way ;) git-svn-id: file:///home/yoann/SVN/trunk/libprelude@186 09c5ec92-17d4-0310-903a-819935f44dba libprelude-config.in | 2 +- src/include/timer.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 992d47c4ec046d4900e4d8602436096b577a691c Author: Sylvain Gil Date: Thu Aug 23 07:38:16 2001 +0000 libprelude-config will be used by linking programs to locate where libprelude is installed (must be in path or found by using something like --with-libprelude=DIR in linking program configure). git-svn-id: file:///home/yoann/SVN/trunk/libprelude@184 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 ++ configure.ac | 3 ++- libprelude-config.in | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/include/timer.h | 2 +- 4 files changed, 64 insertions(+), 2 deletions(-) commit 9619fe206e239660eb8f343a0a7f53eb448329ea Author: Yoann Vandoorselaere Date: Thu Aug 23 00:18:28 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@175 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 2 ++ src/auth-common.c | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) commit 5ef6adb67bfc76c118d0b5f7b1a4797b89d60e07 Author: Yoann Vandoorselaere Date: Thu Aug 23 00:16:50 2001 +0000 * src/auth-common.c (auth_file_exist_or_create): (auth_read_entry): (auth_create_account): Documented. Put the cpass variable into the #ifdef scope. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@174 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 7 ++++++ src/auth-common.c | 64 +++++++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 55 insertions(+), 16 deletions(-) commit cd14cefc495cd655c59af497a4a2aeb57835f5cd Author: Yoann Vandoorselaere Date: Thu Aug 23 00:02:07 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@173 09c5ec92-17d4-0310-903a-819935f44dba src/plugin-common.loT | 7 ------- 1 file changed, 7 deletions(-) commit 737fd81f708874d0c29cd4dfcbf558f6d8bd0379 Author: Sylvain Gil Date: Thu Aug 23 00:01:31 2001 +0000 config.status: error: cannot find input file: docs/Makefile.in tu l'as pas virer de configure.ac pff chui trop lame git-svn-id: file:///home/yoann/SVN/trunk/libprelude@172 09c5ec92-17d4-0310-903a-819935f44dba configure.ac | 2 -- 1 file changed, 2 deletions(-) commit e604e39e029b8921868ac92050660d56a2ec808f Author: Sylvain Gil Date: Wed Aug 22 23:58:31 2001 +0000 include_HEADERS=config.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@171 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 34ee79b713537cecbe85008db131e20f39aa9bf6 Author: Sylvain Gil Date: Wed Aug 22 23:50:14 2001 +0000 ... then 1st mistake git-svn-id: file:///home/yoann/SVN/trunk/libprelude@170 09c5ec92-17d4-0310-903a-819935f44dba libmissing/libmissing.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 3683ff60807c02655531eccf498319d70d0567d8 Author: Sylvain Gil Date: Wed Aug 22 23:45:33 2001 +0000 1st pass on autoconf/automake stuff git-svn-id: file:///home/yoann/SVN/trunk/libprelude@169 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 3 +-- configure.ac | 1 + libmissing/Makefile.am | 9 +++++++++ libmissing/getopt_long.c | 36 ++++++++++++++++++++++++++++++++++ libmissing/getopt_long.h | 46 ++++++++++++++++++++++++++++++++++++++++++++ src/Makefile.am | 9 +++------ src/compat.c | 36 ---------------------------------- src/include/Makefile.am | 1 - src/include/compat.h | 50 ------------------------------------------------ src/plugin-common.c | 2 +- 10 files changed, 97 insertions(+), 96 deletions(-) commit a31b217f041a1a6a29df940f59aa8b3ed5b10c81 Author: cvs2svn Date: Wed Aug 22 22:54:29 2001 +0000 This commit was generated by cvs2svn to compensate for changes in r163, which included commits to RCS files with non-trunk default branches. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@164 09c5ec92-17d4-0310-903a-819935f44dba src/plugin-common.c | 1 + 1 file changed, 1 insertion(+) commit 4e01eed7111fd0db4ae6c8f01e4bb11d208a3da5 Author: Yoann Vandoorselaere Date: Wed Aug 22 22:54:28 2001 +0000 Initial revision git-svn-id: file:///home/yoann/SVN/trunk/libprelude@162 09c5ec92-17d4-0310-903a-819935f44dba src/plugin-common.loT | 7 +++++++ 1 file changed, 7 insertions(+) commit fe39c3328b664184ac3fb5bb853f52501472c21c Author: Yoann Vandoorselaere Date: Tue Aug 21 10:38:32 2001 +0000 * src/include/compat.h: if package is not defined, dump an error telling to include git-svn-id: file:///home/yoann/SVN/trunk/libprelude@155 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ src/include/compat.h | 4 ++++ 2 files changed, 7 insertions(+) commit 44caebe13c0c0808ed8a4850e9500df1233416af Author: Yoann Vandoorselaere Date: Tue Aug 21 10:34:55 2001 +0000 * Makefile.am (SUBDIRS): process docs subdirectory after src. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@154 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 3 +++ Makefile.am | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) commit b8268d7913a026bcff67fa7f8352d1444827171a Author: Yoann Vandoorselaere Date: Tue Aug 21 10:33:20 2001 +0000 * src/include/list.h (list_entry): updated to a more recent, documented version, kernel use unsigned long for pointer, we do use void *. Use the inline keyword. git-svn-id: file:///home/yoann/SVN/trunk/libprelude@153 09c5ec92-17d4-0310-903a-819935f44dba ChangeLog | 4 ++++ src/include/list.h | 26 ++++++++++++-------------- 2 files changed, 16 insertions(+), 14 deletions(-) commit 4e227465b67143bb63d062047b47cce37fa7fb14 Author: Yoann Vandoorselaere Date: Tue Aug 21 10:27:41 2001 +0000 More configuration cleanup, update to a documented version of list.h git-svn-id: file:///home/yoann/SVN/trunk/libprelude@152 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 3 +++ acconfig.h | 3 +++ autogen.sh | 2 +- configure.ac | 62 +++++++++++++--------------------------------- src/Makefile.am | 2 +- src/auth-common.c | 4 +-- src/include/list.h | 72 ++++++++++++++++++++++++++++++++++++++++++------------ 7 files changed, 83 insertions(+), 65 deletions(-) commit 77d3c0396212d4e7efb1da60e62e80f310f9fbab Author: Yoann Vandoorselaere Date: Tue Aug 21 09:31:51 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@151 09c5ec92-17d4-0310-903a-819935f44dba Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7f4c4f75a7ae315a21fa0d0ecb2a2b39a29552c9 Author: Yoann Vandoorselaere Date: Tue Aug 21 09:23:15 2001 +0000 *** empty log message *** git-svn-id: file:///home/yoann/SVN/trunk/libprelude@150 09c5ec92-17d4-0310-903a-819935f44dba src/include/timer.tmp | 123 --------------------------- src/string_matching.loT | 7 -- src/timer.tmp | 221 ------------------------------------------------ 3 files changed, 351 deletions(-) commit c832aec5e082c0cfc275725ec99573a035fa8e62 Author: Yoann Vandoorselaere Date: Tue Aug 21 09:20:30 2001 +0000 Initial revision git-svn-id: file:///home/yoann/SVN/trunk/libprelude@148 09c5ec92-17d4-0310-903a-819935f44dba AUTHORS | 1 + COPYING | 340 ++++++++++++++++++++++ ChangeLog | 4 + INSTALL | 182 ++++++++++++ Makefile.am | 1 + NEWS | 0 README | 0 autogen.sh | 6 + configure.ac | 188 ++++++++++++ docs/Makefile.am | 1 + docs/api/Makefile.am | 183 ++++++++++++ docs/api/libprelude.types | 0 src/Makefile.am | 25 ++ src/alert-common.c | 216 ++++++++++++++ src/auth-common.c | 384 ++++++++++++++++++++++++ src/compat.c | 36 +++ src/config-engine.c | 523 +++++++++++++++++++++++++++++++++ src/daemonize.c | 89 ++++++ src/include/Makefile.am | 19 ++ src/include/alert-common.h | 23 ++ src/include/alert.h | 86 ++++++ src/include/auth-common.h | 61 ++++ src/include/common.h | 63 ++++ src/include/compat.h | 46 +++ src/include/config-engine.h | 35 +++ src/include/daemonize.h | 24 ++ src/include/list.h | 114 ++++++++ src/include/plugin-common-prv.h | 127 ++++++++ src/include/plugin-common.h | 100 +++++++ src/include/socket-op.h | 30 ++ src/include/ssl-config.h | 90 ++++++ src/include/ssl-gencrypto.h | 32 ++ src/include/ssl-registration-msg.h | 62 ++++ src/include/string-matching.h | 28 ++ src/include/timer.h | 116 ++++++++ src/include/timer.tmp | 123 ++++++++ src/plugin-common.c | 582 +++++++++++++++++++++++++++++++++++++ src/socket-op.c | 307 +++++++++++++++++++ src/ssl-config.c | 98 +++++++ src/ssl-gencrypto.c | 409 ++++++++++++++++++++++++++ src/ssl-registration-msg.c | 255 ++++++++++++++++ src/string-matching.c | 155 ++++++++++ src/string_matching.loT | 7 + src/timer.c | 220 ++++++++++++++ src/timer.tmp | 221 ++++++++++++++ 45 files changed, 5612 insertions(+) libprelude-5.2.0/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163512016713 xustar000000000000000024 mtime=1599661898.895 24 atime=1599661945.145 24 ctime=1599661998.146 libprelude-5.2.0/Makefile.in0000644000000000000000000023555113726163512015731 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = . DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in $(srcdir)/client.conf.in \ $(srcdir)/global.conf.in $(srcdir)/idmef-client.conf.in \ $(srcdir)/libprelude-config.in \ $(top_srcdir)/bindings/perl/Makefile.PL.in $(include_HEADERS) \ COPYING ar-lib compile config.guess config.rpath config.sub \ install-sh missing ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = client.conf global.conf idmef-client.conf \ libprelude-config bindings/perl/Makefile.PL CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(includedir)" SCRIPTS = $(bin_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(include_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = $(prefix)/include/libprelude infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --with-swig ACLOCAL_AMFLAGS = -I m4 -I libmissing/m4 SUBDIRS = libltdl libmissing m4 src prelude-admin bindings docs tests DIST_SUBDIRS = $(SUBDIRS) EXTRA_DIST = HACKING.README LICENSE.README tls.conf bin_SCRIPTS = $(top_builddir)/libprelude-config distuninstallcheck_listfiles = find . -type f -print | $(GREP) -v 'perl' | $(GREP) -v '3pm' | $(GREP) -v 'egg-info' | $(GREP) -v 'cpython' include_HEADERS = prelude-config.h MOSTLYCLEANFILES = prelude-config.h BUILT_SOURCES = prelude-config.h MAINTAINERCLEANFILES = \ $(srcdir)/INSTALL \ $(srcdir)/aclocal.m4 \ $(srcdir)/autoscan.log \ $(srcdir)/compile \ $(srcdir)/config.guess \ $(srcdir)/config.h.in \ $(srcdir)/config.sub \ $(srcdir)/configure.scan \ $(srcdir)/depcomp \ $(srcdir)/install-sh \ $(srcdir)/ltmain.sh \ $(srcdir)/missing \ $(srcdir)/mkinstalldirs \ $(srcdir)/omf.make \ $(srcdir)/xmldocs.make \ $(srcdir)/ylwrap \ $(srcdir)/gtk-doc.make \ $(srcdir)/ChangeLog \ `find "$(srcdir)" -type f -name Makefile.in -print` all: $(BUILT_SOURCES) config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then rm -f stamp-h1; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 client.conf: $(top_builddir)/config.status $(srcdir)/client.conf.in cd $(top_builddir) && $(SHELL) ./config.status $@ global.conf: $(top_builddir)/config.status $(srcdir)/global.conf.in cd $(top_builddir) && $(SHELL) ./config.status $@ idmef-client.conf: $(top_builddir)/config.status $(srcdir)/idmef-client.conf.in cd $(top_builddir) && $(SHELL) ./config.status $@ libprelude-config: $(top_builddir)/config.status $(srcdir)/libprelude-config.in cd $(top_builddir) && $(SHELL) ./config.status $@ bindings/perl/Makefile.PL: $(top_builddir)/config.status $(top_srcdir)/bindings/perl/Makefile.PL.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(SCRIPTS) $(HEADERS) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-includeHEADERS install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binSCRIPTS uninstall-includeHEADERS \ uninstall-local .MAKE: $(am__recursive_targets) all check install install-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ dist-tarZ dist-xz dist-zip distcheck distclean \ distclean-generic distclean-hdr distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-binSCRIPTS install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-binSCRIPTS uninstall-includeHEADERS \ uninstall-local prelude-config.h: $(top_builddir)/config.h rm -f prelude-config.h echo "/* Used from libprelude headers */" >> prelude-config.h $(GREP) "HAVE_VARIADIC_MACROS" < $(top_builddir)/config.h >> prelude-config.h $(GREP) "PRELUDE_ALIGNED_ACCESS" < $(top_builddir)/config.h >> prelude-config.h $(GREP) "PRELUDE_WORDS_BIGENDIAN" < $(top_builddir)/config.h >> prelude-config.h $(GREP) "__PRELUDE_FUNC__" < $(top_builddir)/config.h >> prelude-config.h @echo "#ifndef TIME_WITH_SYS_TIME" >> prelude-config.h $(GREP) "TIME_WITH_SYS_TIME" < $(top_builddir)/config.h >> prelude-config.h @echo "#endif" >> prelude-config.h @echo "#ifndef HAVE_UID_T" >> prelude-config.h $(GREP) "HAVE_UID_T" < $(top_builddir)/config.h >> prelude-config.h @echo "#endif" >> prelude-config.h @echo "#ifndef HAVE_GID_T" >> prelude-config.h $(GREP) "HAVE_GID_T" < $(top_builddir)/config.h >> prelude-config.h @echo "#endif" >> prelude-config.h # # Install default sensors configuration with mode 644 # every sensors should be able to read it. # # Spool directory for report saving is mode install-data-local: $(INSTALL) -d -m 711 $(DESTDIR)$(PRELUDE_SPOOL_DIR); $(INSTALL) -d -m 755 $(DESTDIR)$(PRELUDE_CONFIG_DIR); $(INSTALL) -d -m 755 $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default; $(INSTALL) -d -m 711 $(DESTDIR)$(PRELUDE_CONFIG_DIR)/profile; @if test -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/client.conf; then \ echo; \ echo "********************************************************************************"; \ echo; \ echo "$(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/client.conf already exist..."; \ echo "Installing default configuration in $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/client.conf-dist"; \ echo; \ echo "********************************************************************************"; \ echo; \ $(INSTALL) -m 644 $(top_builddir)/client.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/client.conf-dist; \ else \ $(INSTALL) -m 644 $(top_builddir)/client.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default; \ fi @if test -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/global.conf; then \ echo; \ echo "********************************************************************************"; \ echo; \ echo "$(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/global.conf already exist..."; \ echo "Installing default configuration in $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/global.conf-dist"; \ echo; \ echo "********************************************************************************"; \ echo; \ $(INSTALL) -m 644 $(top_builddir)/global.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/global.conf-dist; \ else \ $(INSTALL) -m 644 $(top_builddir)/global.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default; \ fi @if test -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/idmef-client.conf; then \ echo; \ echo "********************************************************************************"; \ echo; \ echo "$(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/idmef-client.conf already exist..."; \ echo "Installing default configuration in $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/idmef-client.conf-dist"; \ echo; \ echo "********************************************************************************"; \ echo; \ $(INSTALL) -m 644 $(top_builddir)/idmef-client.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/idmef-client.conf-dist;\ else \ $(INSTALL) -m 644 $(top_builddir)/idmef-client.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default; \ fi @if test -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/tls.conf; then \ echo; \ echo "********************************************************************************"; \ echo; \ echo "$(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/tls.conf already exist..."; \ echo "Installing default configuration in $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/tls.conf-dist"; \ echo; \ echo "********************************************************************************"; \ echo; \ $(INSTALL) -m 644 $(top_srcdir)/tls.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/tls.conf-dist; \ else \ $(INSTALL) -m 644 $(top_srcdir)/tls.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default; \ fi uninstall-local: rm -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/client.conf rm -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/global.conf rm -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/idmef-client.conf rm -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/tls.conf dist-hook: @if test -d "$(srcdir)/.git"; then \ echo Creating ChangeLog && \ ( cd "$(top_srcdir)" && \ echo '# Generated by Makefile. Do not edit.'; echo; \ $(top_srcdir)/missing --run git log --stat ) > ChangeLog.tmp \ && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \ || ( rm -f ChangeLog.tmp ; \ echo Failed to generate ChangeLog >&2 ); \ else \ echo A git clone is required to generate a ChangeLog >&2; \ fi -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163410016705 xustar000000000000000024 mtime=1599661832.485 23 atime=1599661832.72 24 ctime=1599661998.148 libprelude-5.2.0/Makefile.am0000644000000000000000000001557613726163410015720 0ustar00rootroot00000000000000DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --with-swig ACLOCAL_AMFLAGS = -I m4 -I libmissing/m4 SUBDIRS = libltdl libmissing m4 src prelude-admin bindings docs tests DIST_SUBDIRS=$(SUBDIRS) EXTRA_DIST = HACKING.README LICENSE.README tls.conf bin_SCRIPTS = $(top_builddir)/libprelude-config distuninstallcheck_listfiles = find . -type f -print | $(GREP) -v 'perl' | $(GREP) -v '3pm' | $(GREP) -v 'egg-info' | $(GREP) -v 'cpython' includedir = $(prefix)/include/libprelude include_HEADERS = prelude-config.h MOSTLYCLEANFILES = prelude-config.h BUILT_SOURCES = prelude-config.h MAINTAINERCLEANFILES = \ $(srcdir)/INSTALL \ $(srcdir)/aclocal.m4 \ $(srcdir)/autoscan.log \ $(srcdir)/compile \ $(srcdir)/config.guess \ $(srcdir)/config.h.in \ $(srcdir)/config.sub \ $(srcdir)/configure.scan \ $(srcdir)/depcomp \ $(srcdir)/install-sh \ $(srcdir)/ltmain.sh \ $(srcdir)/missing \ $(srcdir)/mkinstalldirs \ $(srcdir)/omf.make \ $(srcdir)/xmldocs.make \ $(srcdir)/ylwrap \ $(srcdir)/gtk-doc.make \ $(srcdir)/ChangeLog \ `find "$(srcdir)" -type f -name Makefile.in -print` prelude-config.h: $(top_builddir)/config.h rm -f prelude-config.h echo "/* Used from libprelude headers */" >> prelude-config.h $(GREP) "HAVE_VARIADIC_MACROS" < $(top_builddir)/config.h >> prelude-config.h $(GREP) "PRELUDE_ALIGNED_ACCESS" < $(top_builddir)/config.h >> prelude-config.h $(GREP) "PRELUDE_WORDS_BIGENDIAN" < $(top_builddir)/config.h >> prelude-config.h $(GREP) "__PRELUDE_FUNC__" < $(top_builddir)/config.h >> prelude-config.h @echo "#ifndef TIME_WITH_SYS_TIME" >> prelude-config.h $(GREP) "TIME_WITH_SYS_TIME" < $(top_builddir)/config.h >> prelude-config.h @echo "#endif" >> prelude-config.h @echo "#ifndef HAVE_UID_T" >> prelude-config.h $(GREP) "HAVE_UID_T" < $(top_builddir)/config.h >> prelude-config.h @echo "#endif" >> prelude-config.h @echo "#ifndef HAVE_GID_T" >> prelude-config.h $(GREP) "HAVE_GID_T" < $(top_builddir)/config.h >> prelude-config.h @echo "#endif" >> prelude-config.h # # Install default sensors configuration with mode 644 # every sensors should be able to read it. # # Spool directory for report saving is mode install-data-local: $(INSTALL) -d -m 711 $(DESTDIR)$(PRELUDE_SPOOL_DIR); $(INSTALL) -d -m 755 $(DESTDIR)$(PRELUDE_CONFIG_DIR); $(INSTALL) -d -m 755 $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default; $(INSTALL) -d -m 711 $(DESTDIR)$(PRELUDE_CONFIG_DIR)/profile; @if test -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/client.conf; then \ echo; \ echo "********************************************************************************"; \ echo; \ echo "$(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/client.conf already exist..."; \ echo "Installing default configuration in $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/client.conf-dist"; \ echo; \ echo "********************************************************************************"; \ echo; \ $(INSTALL) -m 644 $(top_builddir)/client.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/client.conf-dist; \ else \ $(INSTALL) -m 644 $(top_builddir)/client.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default; \ fi @if test -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/global.conf; then \ echo; \ echo "********************************************************************************"; \ echo; \ echo "$(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/global.conf already exist..."; \ echo "Installing default configuration in $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/global.conf-dist"; \ echo; \ echo "********************************************************************************"; \ echo; \ $(INSTALL) -m 644 $(top_builddir)/global.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/global.conf-dist; \ else \ $(INSTALL) -m 644 $(top_builddir)/global.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default; \ fi @if test -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/idmef-client.conf; then \ echo; \ echo "********************************************************************************"; \ echo; \ echo "$(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/idmef-client.conf already exist..."; \ echo "Installing default configuration in $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/idmef-client.conf-dist"; \ echo; \ echo "********************************************************************************"; \ echo; \ $(INSTALL) -m 644 $(top_builddir)/idmef-client.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/idmef-client.conf-dist;\ else \ $(INSTALL) -m 644 $(top_builddir)/idmef-client.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default; \ fi @if test -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/tls.conf; then \ echo; \ echo "********************************************************************************"; \ echo; \ echo "$(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/tls.conf already exist..."; \ echo "Installing default configuration in $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/tls.conf-dist"; \ echo; \ echo "********************************************************************************"; \ echo; \ $(INSTALL) -m 644 $(top_srcdir)/tls.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/tls.conf-dist; \ else \ $(INSTALL) -m 644 $(top_srcdir)/tls.conf $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default; \ fi uninstall-local: rm -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/client.conf rm -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/global.conf rm -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/idmef-client.conf rm -f $(DESTDIR)$(PRELUDE_CONFIG_DIR)/default/tls.conf dist-hook: @if test -d "$(srcdir)/.git"; then \ echo Creating ChangeLog && \ ( cd "$(top_srcdir)" && \ echo '# Generated by Makefile. Do not edit.'; echo; \ $(top_srcdir)/missing --run git log --stat ) > ChangeLog.tmp \ && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \ || ( rm -f ChangeLog.tmp ; \ echo Failed to generate ChangeLog >&2 ); \ else \ echo A git clone is required to generate a ChangeLog >&2; \ fi -include $(top_srcdir)/git.mk libprelude-5.2.0/PaxHeaders.14770/configure0000644000000000000000000000010613726163506016562 xustar000000000000000023 mtime=1599661894.24 24 atime=1599661903.052 23 ctime=1599661998.15 libprelude-5.2.0/configure0000755000000000000000000572140213726163506015576 0ustar00rootroot00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for libprelude 5.2.0. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" lt_ltdl_dir='libltdl' SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libprelude' PACKAGE_TARNAME='libprelude' PACKAGE_VERSION='5.2.0' PACKAGE_STRING='libprelude 5.2.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_unique_file="src" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" gl_use_threads_default= gl_header_list= gl_func_list= ac_subst_vars='gltests_LTLIBOBJS gltests_LIBOBJS gl_LTLIBOBJS gl_LIBOBJS ltdl_LTLIBOBJS ltdl_LIBOBJS am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS DATADIR BINDIR LIBDIR LOCALSTATEDIR SYSCONFDIR SWIG_DATA_DIR PRELUDE_CONFIG_DIR PRELUDE_SPOOL_DIR LIBPRELUDE_SERIAL_VERSION LIBPRELUDE_LEVEL_VERSION LIBPRELUDE_MICRO_VERSION LIBPRELUDE_MINOR_VERSION LIBPRELUDE_MAJOR_VERSION LIBPRELUDE_VERSION LIBPRELUDE_CFLAGS LIBPRELUDE_LIBS LIBPRELUDECPP_SONAME LIBPRELUDE_SONAME BINDINGS_CC PCFLAGS __PRELUDE_64BIT_FORMAT_PREFIX __PRELUDE_STDINT_HAVE_UINT64 __PRELUDE_STDINT_HAVE_UINT32 __PRELUDE_STDINT_HAVE_UINT16 __PRELUDE_STDINT_HAVE_UINT8 __PRELUDE_HAVE_64BIT_LONG __PRELUDE_HAVE_INTTYPES_H __PRELUDE_HAVE_STDINT_H GTK_DOC_USE_REBASE_FALSE GTK_DOC_USE_REBASE_TRUE GTK_DOC_USE_LIBTOOL_FALSE GTK_DOC_USE_LIBTOOL_TRUE GTK_DOC_BUILD_PDF_FALSE GTK_DOC_BUILD_PDF_TRUE GTK_DOC_BUILD_HTML_FALSE GTK_DOC_BUILD_HTML_TRUE ENABLE_GTK_DOC_FALSE ENABLE_GTK_DOC_TRUE HAVE_GTK_DOC_FALSE HAVE_GTK_DOC_TRUE GTKDOC_DEPS_LIBS GTKDOC_DEPS_CFLAGS HTML_DIR GTKDOC_MKPDF GTKDOC_REBASE GTKDOC_CHECK_PATH GTKDOC_CHECK LIBTESTS_LIBDEPS YIELD_LIB LIB_NANOSLEEP INTL_MACOSX_LIBS NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H NEXT_INTTYPES_H UINT64_MAX_EQ_ULONG_MAX UINT32_MAX_LT_UINTMAX_MAX PRIPTR_PREFIX PRI_MACROS_BROKEN INT64_MAX_EQ_LONG_MAX INT32_MAX_LT_INTMAX_MAX REPLACE_STRTOUMAX REPLACE_STRTOIMAX HAVE_IMAXDIV_T HAVE_DECL_STRTOUMAX HAVE_DECL_STRTOIMAX HAVE_DECL_IMAXDIV HAVE_DECL_IMAXABS GNULIB_STRTOUMAX GNULIB_STRTOIMAX GNULIB_IMAXDIV GNULIB_IMAXABS NEXT_AS_FIRST_DIRECTIVE_FCNTL_H NEXT_FCNTL_H REPLACE_OPENAT REPLACE_OPEN REPLACE_FCNTL HAVE_OPENAT HAVE_FCNTL GNULIB_OPENAT GNULIB_OPEN GNULIB_NONBLOCKING GNULIB_FCNTL NEXT_AS_FIRST_DIRECTIVE_CTYPE_H NEXT_CTYPE_H HAVE_ISBLANK GNULIB_ISBLANK LOCALE_TR_UTF8 gltests_WITNESS REPLACE_TOWLOWER REPLACE_ISWCNTRL HAVE_WCTYPE_H NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H NEXT_WCTYPE_H HAVE_ISWCNTRL REPLACE_ISWBLANK HAVE_WCTRANS_T HAVE_WCTYPE_T HAVE_ISWBLANK GNULIB_TOWCTRANS GNULIB_WCTRANS GNULIB_ISWCTYPE GNULIB_WCTYPE GNULIB_ISWBLANK HAVE_CRTDEFS_H HAVE_WINT_T NEXT_AS_FIRST_DIRECTIVE_WCHAR_H NEXT_WCHAR_H HAVE_UNISTD_H NEXT_AS_FIRST_DIRECTIVE_UNISTD_H NEXT_UNISTD_H UNISTD_H_DEFINES_STRUCT_TIMESPEC PTHREAD_H_DEFINES_STRUCT_TIMESPEC SYS_TIME_H_DEFINES_STRUCT_TIMESPEC TIME_H_DEFINES_STRUCT_TIMESPEC NEXT_AS_FIRST_DIRECTIVE_TIME_H NEXT_TIME_H HAVE_SYS_UTSNAME_H NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H NEXT_SYS_UTSNAME_H HAVE_STRUCT_UTSNAME HAVE_UNAME GNULIB_UNAME HAVE_SYS_UIO_H NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H NEXT_SYS_UIO_H NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H NEXT_SYS_IOCTL_H HAVE_SYS_IOCTL_H HAVE_STRINGS_H NEXT_AS_FIRST_DIRECTIVE_STRINGS_H NEXT_STRINGS_H NEXT_AS_FIRST_DIRECTIVE_STRING_H NEXT_STRING_H HAVE_DECL_STRNCASECMP HAVE_STRCASECMP HAVE_FFS GNULIB_FFS NEXT_AS_FIRST_DIRECTIVE_STDLIB_H NEXT_STDLIB_H NEXT_AS_FIRST_DIRECTIVE_STDIO_H NEXT_STDIO_H GL_GENERATE_STDINT_H_FALSE GL_GENERATE_STDINT_H_TRUE STDINT_H HAVE_SYS_INTTYPES_H HAVE_SYS_BITYPES_H HAVE_C99_STDINT_H WINT_T_SUFFIX WCHAR_T_SUFFIX SIG_ATOMIC_T_SUFFIX SIZE_T_SUFFIX PTRDIFF_T_SUFFIX HAVE_SIGNED_WINT_T HAVE_SIGNED_WCHAR_T HAVE_SIGNED_SIG_ATOMIC_T BITSIZEOF_WINT_T BITSIZEOF_WCHAR_T BITSIZEOF_SIG_ATOMIC_T BITSIZEOF_SIZE_T BITSIZEOF_PTRDIFF_T HAVE_STDINT_H NEXT_AS_FIRST_DIRECTIVE_STDINT_H NEXT_STDINT_H HAVE_SYS_TYPES_H HAVE_INTTYPES_H HAVE_WCHAR_H HAVE_UNSIGNED_LONG_LONG_INT HAVE_LONG_LONG_INT GNULIB_OVERRIDES_WINT_T HAVE__BOOL GL_GENERATE_STDBOOL_H_FALSE GL_GENERATE_STDBOOL_H_TRUE STDBOOL_H GL_GENERATE_STDALIGN_H_FALSE GL_GENERATE_STDALIGN_H_TRUE STDALIGN_H NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H NEXT_SIGNAL_H LIB_SELECT HAVE_SYS_SELECT_H NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H NEXT_SYS_SELECT_H REPLACE_SELECT REPLACE_PSELECT HAVE_PSELECT GNULIB_SELECT GNULIB_PSELECT RELOCATABLE GLIBC21 LIB_PTHREAD_SIGMASK REPLACE_RAISE REPLACE_PTHREAD_SIGMASK HAVE_SIGHANDLER_T HAVE_TYPE_VOLATILE_SIG_ATOMIC_T HAVE_STRUCT_SIGACTION_SA_SIGACTION HAVE_SIGACTION HAVE_SIGINFO_T HAVE_SIGSET_T HAVE_RAISE HAVE_PTHREAD_SIGMASK HAVE_POSIX_SIGNALBLOCKING GNULIB_SIGACTION GNULIB_SIGPROCMASK GNULIB_SIGNAL_H_SIGPIPE GNULIB_RAISE GNULIB_PTHREAD_SIGMASK LIB_POLL LIBSOCKET NEXT_AS_FIRST_DIRECTIVE_POLL_H NEXT_POLL_H HAVE_POLL_H REPLACE_POLL HAVE_POLL GNULIB_POLL GL_GENERATE_NETINET_IN_H_FALSE GL_GENERATE_NETINET_IN_H_TRUE NETINET_IN_H HAVE_NETINET_IN_H NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H NEXT_NETINET_IN_H APPLE_UNIVERSAL_BUILD UNDEFINE_STRTOK_R REPLACE_STRSIGNAL REPLACE_STRERROR_R REPLACE_STRERROR REPLACE_STRTOK_R REPLACE_STRCASESTR REPLACE_STRSTR REPLACE_STRNLEN REPLACE_STRNDUP REPLACE_STRNCAT REPLACE_STRDUP REPLACE_STRCHRNUL REPLACE_STPNCPY REPLACE_MEMMEM REPLACE_MEMCHR HAVE_STRVERSCMP HAVE_DECL_STRSIGNAL HAVE_DECL_STRERROR_R HAVE_DECL_STRTOK_R HAVE_STRCASESTR HAVE_STRSEP HAVE_STRPBRK HAVE_DECL_STRNLEN HAVE_DECL_STRNDUP HAVE_DECL_STRDUP HAVE_STRCHRNUL HAVE_STPNCPY HAVE_STPCPY HAVE_RAWMEMCHR HAVE_DECL_MEMRCHR HAVE_MEMPCPY HAVE_DECL_MEMMEM HAVE_MEMCHR HAVE_FFSLL HAVE_FFSL HAVE_EXPLICIT_BZERO HAVE_MBSLEN GNULIB_STRVERSCMP GNULIB_STRSIGNAL GNULIB_STRERROR_R GNULIB_STRERROR GNULIB_MBSTOK_R GNULIB_MBSSEP GNULIB_MBSSPN GNULIB_MBSPBRK GNULIB_MBSCSPN GNULIB_MBSCASESTR GNULIB_MBSPCASECMP GNULIB_MBSNCASECMP GNULIB_MBSCASECMP GNULIB_MBSSTR GNULIB_MBSRCHR GNULIB_MBSCHR GNULIB_MBSNLEN GNULIB_MBSLEN GNULIB_STRTOK_R GNULIB_STRCASESTR GNULIB_STRSTR GNULIB_STRSEP GNULIB_STRPBRK GNULIB_STRNLEN GNULIB_STRNDUP GNULIB_STRNCAT GNULIB_STRDUP GNULIB_STRCHRNUL GNULIB_STPNCPY GNULIB_STPCPY GNULIB_RAWMEMCHR GNULIB_MEMRCHR GNULIB_MEMPCPY GNULIB_MEMMEM GNULIB_MEMCHR GNULIB_FFSLL GNULIB_FFSL GNULIB_EXPLICIT_BZERO LOCALE_FR_UTF8 LOCALE_ZH_CN LOCALE_JA REPLACE_WCTOMB REPLACE_UNSETENV REPLACE_STRTOD REPLACE_SETENV REPLACE_REALPATH REPLACE_REALLOC REPLACE_RANDOM_R REPLACE_QSORT_R REPLACE_PUTENV REPLACE_PTSNAME_R REPLACE_PTSNAME REPLACE_MKSTEMP REPLACE_MBTOWC REPLACE_MALLOC REPLACE_CANONICALIZE_FILE_NAME REPLACE_CALLOC HAVE_DECL_UNSETENV HAVE_UNLOCKPT HAVE_SYS_LOADAVG_H HAVE_STRUCT_RANDOM_DATA HAVE_STRTOULL HAVE_STRTOLL HAVE_STRTOD HAVE_DECL_SETSTATE HAVE_DECL_SETENV HAVE_SETENV HAVE_SECURE_GETENV HAVE_RPMATCH HAVE_REALPATH HAVE_REALLOCARRAY HAVE_RANDOM_R HAVE_RANDOM_H HAVE_RANDOM HAVE_QSORT_R HAVE_PTSNAME_R HAVE_PTSNAME HAVE_POSIX_OPENPT HAVE_MKSTEMPS HAVE_MKSTEMP HAVE_MKOSTEMPS HAVE_MKOSTEMP HAVE_MKDTEMP HAVE_DECL_INITSTATE HAVE_GRANTPT HAVE_GETSUBOPT HAVE_DECL_GETLOADAVG HAVE_CANONICALIZE_FILE_NAME HAVE_ATOLL HAVE__EXIT GNULIB_WCTOMB GNULIB_UNSETENV GNULIB_UNLOCKPT GNULIB_SYSTEM_POSIX GNULIB_STRTOULL GNULIB_STRTOLL GNULIB_STRTOD GNULIB_SETENV GNULIB_SECURE_GETENV GNULIB_RPMATCH GNULIB_REALPATH GNULIB_REALLOC_POSIX GNULIB_REALLOCARRAY GNULIB_RANDOM_R GNULIB_RANDOM GNULIB_QSORT_R GNULIB_PUTENV GNULIB_PTSNAME_R GNULIB_PTSNAME GNULIB_POSIX_OPENPT GNULIB_MKSTEMPS GNULIB_MKSTEMP GNULIB_MKOSTEMPS GNULIB_MKOSTEMP GNULIB_MKDTEMP GNULIB_MBTOWC GNULIB_MALLOC_POSIX GNULIB_GRANTPT GNULIB_GETSUBOPT GNULIB_GETLOADAVG GNULIB_CANONICALIZE_FILE_NAME GNULIB_CALLOC_POSIX GNULIB_ATOLL GNULIB__EXIT NEXT_AS_FIRST_DIRECTIVE_LOCALE_H NEXT_LOCALE_H HAVE_XLOCALE_H NEXT_AS_FIRST_DIRECTIVE_STDDEF_H NEXT_STDDEF_H GL_GENERATE_STDDEF_H_FALSE GL_GENERATE_STDDEF_H_TRUE STDDEF_H HAVE_WCHAR_T HAVE_MAX_ALIGN_T REPLACE_NULL REPLACE_STRUCT_LCONV REPLACE_DUPLOCALE REPLACE_SETLOCALE REPLACE_LOCALECONV HAVE_DUPLOCALE GNULIB_DUPLOCALE GNULIB_SETLOCALE GNULIB_LOCALECONV LOCALCHARSET_TESTS_ENVIRONMENT GL_GENERATE_LIMITS_H_FALSE GL_GENERATE_LIMITS_H_TRUE LIMITS_H NEXT_AS_FIRST_DIRECTIVE_LIMITS_H NEXT_LIMITS_H HAVE_LANGINFO_YESEXPR HAVE_LANGINFO_ERA HAVE_LANGINFO_ALTMON HAVE_LANGINFO_T_FMT_AMPM HAVE_LANGINFO_CODESET HAVE_LANGINFO_H NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H NEXT_LANGINFO_H REPLACE_NL_LANGINFO HAVE_NL_LANGINFO GNULIB_NL_LANGINFO INET_PTON_LIB REPLACE_LOCALTIME REPLACE_GMTIME REPLACE_TZSET REPLACE_TIMEGM REPLACE_STRFTIME REPLACE_NANOSLEEP REPLACE_MKTIME REPLACE_LOCALTIME_R REPLACE_CTIME HAVE_TIMEZONE_T HAVE_TZSET HAVE_TIMEGM HAVE_STRPTIME HAVE_NANOSLEEP HAVE_DECL_LOCALTIME_R GNULIB_TZSET GNULIB_TIME_RZ GNULIB_TIME_R GNULIB_TIMEGM GNULIB_STRPTIME GNULIB_STRFTIME GNULIB_NANOSLEEP GNULIB_LOCALTIME GNULIB_MKTIME GNULIB_CTIME NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H NEXT_SYS_TIME_H REPLACE_STRUCT_TIMEVAL REPLACE_GETTIMEOFDAY HAVE_SYS_TIME_H HAVE_STRUCT_TIMEVAL HAVE_GETTIMEOFDAY GNULIB_GETTIMEOFDAY LTLIBINTL LIBINTL GETHOSTNAME_LIB GETADDRINFO_LIB INET_NTOP_LIB SERVENT_LIB HOSTENT_LIB HAVE_NETDB_H NEXT_AS_FIRST_DIRECTIVE_NETDB_H NEXT_NETDB_H REPLACE_GAI_STRERROR HAVE_DECL_GETNAMEINFO HAVE_DECL_GETADDRINFO HAVE_DECL_GAI_STRERROR HAVE_DECL_FREEADDRINFO HAVE_STRUCT_ADDRINFO GNULIB_GETADDRINFO WINDOWS_64_BIT_ST_SIZE WINDOWS_STAT_TIMESPEC NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H NEXT_SYS_STAT_H REPLACE_UTIMENSAT REPLACE_STAT REPLACE_MKNOD REPLACE_MKFIFO REPLACE_MKDIR REPLACE_LSTAT REPLACE_FUTIMENS REPLACE_FSTATAT REPLACE_FSTAT HAVE_UTIMENSAT HAVE_MKNODAT HAVE_MKNOD HAVE_MKFIFOAT HAVE_MKFIFO HAVE_MKDIRAT HAVE_LSTAT HAVE_LCHMOD HAVE_FUTIMENS HAVE_FSTATAT HAVE_FCHMODAT GNULIB_OVERRIDES_STRUCT_STAT GNULIB_UTIMENSAT GNULIB_STAT GNULIB_MKNODAT GNULIB_MKNOD GNULIB_MKFIFOAT GNULIB_MKFIFO GNULIB_MKDIRAT GNULIB_LSTAT GNULIB_LCHMOD GNULIB_FUTIMENS GNULIB_FSTATAT GNULIB_FSTAT GNULIB_FCHMODAT WINDOWS_STAT_INODES WINDOWS_64_BIT_OFF_T NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H NEXT_SYS_TYPES_H REPLACE_ITOLD GL_GENERATE_FLOAT_H_FALSE GL_GENERATE_FLOAT_H_TRUE FLOAT_H NEXT_AS_FIRST_DIRECTIVE_FLOAT_H NEXT_FLOAT_H REPLACE_VSPRINTF REPLACE_VSNPRINTF REPLACE_VPRINTF REPLACE_VFPRINTF REPLACE_VDPRINTF REPLACE_VASPRINTF REPLACE_TMPFILE REPLACE_STDIO_WRITE_FUNCS REPLACE_STDIO_READ_FUNCS REPLACE_SPRINTF REPLACE_SNPRINTF REPLACE_RENAMEAT REPLACE_RENAME REPLACE_REMOVE REPLACE_PRINTF REPLACE_POPEN REPLACE_PERROR REPLACE_OBSTACK_PRINTF REPLACE_GETLINE REPLACE_GETDELIM REPLACE_FTELLO REPLACE_FTELL REPLACE_FSEEKO REPLACE_FSEEK REPLACE_FREOPEN REPLACE_FPURGE REPLACE_FPRINTF REPLACE_FOPEN REPLACE_FFLUSH REPLACE_FDOPEN REPLACE_FCLOSE REPLACE_DPRINTF HAVE_VDPRINTF HAVE_VASPRINTF HAVE_RENAMEAT HAVE_POPEN HAVE_PCLOSE HAVE_FTELLO HAVE_FSEEKO HAVE_DPRINTF HAVE_DECL_VSNPRINTF HAVE_DECL_SNPRINTF HAVE_DECL_OBSTACK_PRINTF HAVE_DECL_GETLINE HAVE_DECL_GETDELIM HAVE_DECL_FTELLO HAVE_DECL_FSEEKO HAVE_DECL_FPURGE GNULIB_VSPRINTF_POSIX GNULIB_VSNPRINTF GNULIB_VPRINTF_POSIX GNULIB_VPRINTF GNULIB_VFPRINTF_POSIX GNULIB_VFPRINTF GNULIB_VDPRINTF GNULIB_VSCANF GNULIB_VFSCANF GNULIB_VASPRINTF GNULIB_TMPFILE GNULIB_STDIO_H_SIGPIPE GNULIB_STDIO_H_NONBLOCKING GNULIB_SPRINTF_POSIX GNULIB_SNPRINTF GNULIB_SCANF GNULIB_RENAMEAT GNULIB_RENAME GNULIB_REMOVE GNULIB_PUTS GNULIB_PUTCHAR GNULIB_PUTC GNULIB_PRINTF_POSIX GNULIB_PRINTF GNULIB_POPEN GNULIB_PERROR GNULIB_PCLOSE GNULIB_OBSTACK_PRINTF_POSIX GNULIB_OBSTACK_PRINTF GNULIB_GETLINE GNULIB_GETDELIM GNULIB_GETCHAR GNULIB_GETC GNULIB_FWRITE GNULIB_FTELLO GNULIB_FTELL GNULIB_FSEEKO GNULIB_FSEEK GNULIB_FSCANF GNULIB_FREOPEN GNULIB_FREAD GNULIB_FPUTS GNULIB_FPUTC GNULIB_FPURGE GNULIB_FPRINTF_POSIX GNULIB_FPRINTF GNULIB_FOPEN GNULIB_FGETS GNULIB_FGETC GNULIB_FFLUSH GNULIB_FDOPEN GNULIB_FCLOSE GNULIB_DPRINTF EOVERFLOW_VALUE EOVERFLOW_HIDDEN ENOLINK_VALUE ENOLINK_HIDDEN EMULTIHOP_VALUE EMULTIHOP_HIDDEN GL_GENERATE_ERRNO_H_FALSE GL_GENERATE_ERRNO_H_TRUE ERRNO_H NEXT_AS_FIRST_DIRECTIVE_ERRNO_H NEXT_ERRNO_H LTLIBMULTITHREAD LIBMULTITHREAD LTLIBTHREAD LIBTHREAD LIBPTH_PREFIX LTLIBPTH LIBPTH HOST_CPU_C_ABI HOST_CPU HAVE_MSVC_INVALID_PARAMETER_HANDLER LOCALE_FR REPLACE_WCSFTIME REPLACE_WCSWIDTH REPLACE_WCWIDTH REPLACE_WCSNRTOMBS REPLACE_WCSRTOMBS REPLACE_WCRTOMB REPLACE_MBSNRTOWCS REPLACE_MBSRTOWCS REPLACE_MBRLEN REPLACE_MBRTOWC REPLACE_MBSINIT REPLACE_WCTOB REPLACE_BTOWC REPLACE_MBSTATE_T HAVE_DECL_WCWIDTH HAVE_DECL_WCTOB HAVE_WCSFTIME HAVE_WCSWIDTH HAVE_WCSTOK HAVE_WCSSTR HAVE_WCSPBRK HAVE_WCSSPN HAVE_WCSCSPN HAVE_WCSRCHR HAVE_WCSCHR HAVE_WCSDUP HAVE_WCSXFRM HAVE_WCSCOLL HAVE_WCSNCASECMP HAVE_WCSCASECMP HAVE_WCSNCMP HAVE_WCSCMP HAVE_WCSNCAT HAVE_WCSCAT HAVE_WCPNCPY HAVE_WCSNCPY HAVE_WCPCPY HAVE_WCSCPY HAVE_WCSNLEN HAVE_WCSLEN HAVE_WMEMSET HAVE_WMEMMOVE HAVE_WMEMCPY HAVE_WMEMCMP HAVE_WMEMCHR HAVE_WCSNRTOMBS HAVE_WCSRTOMBS HAVE_WCRTOMB HAVE_MBSNRTOWCS HAVE_MBSRTOWCS HAVE_MBRLEN HAVE_MBRTOWC HAVE_MBSINIT HAVE_BTOWC GNULIB_WCSFTIME GNULIB_WCSWIDTH GNULIB_WCSTOK GNULIB_WCSSTR GNULIB_WCSPBRK GNULIB_WCSSPN GNULIB_WCSCSPN GNULIB_WCSRCHR GNULIB_WCSCHR GNULIB_WCSDUP GNULIB_WCSXFRM GNULIB_WCSCOLL GNULIB_WCSNCASECMP GNULIB_WCSCASECMP GNULIB_WCSNCMP GNULIB_WCSCMP GNULIB_WCSNCAT GNULIB_WCSCAT GNULIB_WCPNCPY GNULIB_WCSNCPY GNULIB_WCPCPY GNULIB_WCSCPY GNULIB_WCSNLEN GNULIB_WCSLEN GNULIB_WMEMSET GNULIB_WMEMMOVE GNULIB_WMEMCPY GNULIB_WMEMCMP GNULIB_WMEMCHR GNULIB_WCWIDTH GNULIB_WCSNRTOMBS GNULIB_WCSRTOMBS GNULIB_WCRTOMB GNULIB_MBSNRTOWCS GNULIB_MBSRTOWCS GNULIB_MBRLEN GNULIB_MBRTOWC GNULIB_MBSINIT GNULIB_WCTOB GNULIB_BTOWC HAVE_FEATURES_H NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H NEXT_ARPA_INET_H HAVE_ARPA_INET_H REPLACE_INET_PTON REPLACE_INET_NTOP HAVE_DECL_INET_PTON HAVE_DECL_INET_NTOP GNULIB_INET_PTON GNULIB_INET_NTOP GL_GENERATE_ALLOCA_H_FALSE GL_GENERATE_ALLOCA_H_TRUE ALLOCA_H ALLOCA LTALLOCA HAVE_WINSOCK2_H REPLACE_IOCTL SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS SYS_IOCTL_H_HAVE_WINSOCK2_H GNULIB_IOCTL UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS UNISTD_H_HAVE_WINSOCK2_H REPLACE_WRITE REPLACE_USLEEP REPLACE_UNLINKAT REPLACE_UNLINK REPLACE_TTYNAME_R REPLACE_TRUNCATE REPLACE_SYMLINKAT REPLACE_SYMLINK REPLACE_SLEEP REPLACE_RMDIR REPLACE_READLINKAT REPLACE_READLINK REPLACE_READ REPLACE_PWRITE REPLACE_PREAD REPLACE_LSEEK REPLACE_LINKAT REPLACE_LINK REPLACE_LCHOWN REPLACE_ISATTY REPLACE_GETPASS REPLACE_GETPAGESIZE REPLACE_GETGROUPS REPLACE_GETLOGIN_R REPLACE_GETDTABLESIZE REPLACE_GETDOMAINNAME REPLACE_GETCWD REPLACE_FTRUNCATE REPLACE_FCHOWNAT REPLACE_FACCESSAT REPLACE_DUP2 REPLACE_DUP REPLACE_CLOSE REPLACE_CHOWN HAVE_SYS_PARAM_H HAVE_OS_H HAVE_DECL_TTYNAME_R HAVE_DECL_TRUNCATE HAVE_DECL_SETHOSTNAME HAVE_DECL_GETUSERSHELL HAVE_DECL_GETPAGESIZE HAVE_DECL_GETLOGIN_R HAVE_DECL_GETLOGIN HAVE_DECL_GETDOMAINNAME HAVE_DECL_FDATASYNC HAVE_DECL_FCHDIR HAVE_DECL_ENVIRON HAVE_USLEEP HAVE_UNLINKAT HAVE_SYMLINKAT HAVE_SYMLINK HAVE_SLEEP HAVE_SETHOSTNAME HAVE_READLINKAT HAVE_READLINK HAVE_PWRITE HAVE_PREAD HAVE_PIPE2 HAVE_PIPE HAVE_LINKAT HAVE_LINK HAVE_LCHOWN HAVE_GROUP_MEMBER HAVE_GETPASS HAVE_GETPAGESIZE HAVE_GETLOGIN HAVE_GETHOSTNAME HAVE_GETGROUPS HAVE_GETDTABLESIZE HAVE_FTRUNCATE HAVE_FSYNC HAVE_FDATASYNC HAVE_FCHOWNAT HAVE_FCHDIR HAVE_FACCESSAT HAVE_EUIDACCESS HAVE_DUP3 HAVE_DUP2 HAVE_CHOWN GNULIB_WRITE GNULIB_USLEEP GNULIB_UNLINKAT GNULIB_UNLINK GNULIB_UNISTD_H_SIGPIPE GNULIB_UNISTD_H_NONBLOCKING GNULIB_TTYNAME_R GNULIB_TRUNCATE GNULIB_SYMLINKAT GNULIB_SYMLINK GNULIB_SLEEP GNULIB_SETHOSTNAME GNULIB_RMDIR GNULIB_READLINKAT GNULIB_READLINK GNULIB_READ GNULIB_PWRITE GNULIB_PREAD GNULIB_PIPE2 GNULIB_PIPE GNULIB_LSEEK GNULIB_LINKAT GNULIB_LINK GNULIB_LCHOWN GNULIB_ISATTY GNULIB_GROUP_MEMBER GNULIB_GETUSERSHELL GNULIB_GETPASS GNULIB_GETPAGESIZE GNULIB_GETLOGIN_R GNULIB_GETLOGIN GNULIB_GETHOSTNAME GNULIB_GETGROUPS GNULIB_GETDTABLESIZE GNULIB_GETDOMAINNAME GNULIB_GETCWD GNULIB_FTRUNCATE GNULIB_FSYNC GNULIB_FDATASYNC GNULIB_FCHOWNAT GNULIB_FCHDIR GNULIB_FACCESSAT GNULIB_EUIDACCESS GNULIB_ENVIRON GNULIB_DUP3 GNULIB_DUP2 GNULIB_DUP GNULIB_CLOSE GNULIB_CHOWN GNULIB_CHDIR HAVE_WS2TCPIP_H HAVE_SYS_SOCKET_H NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H NEXT_SYS_SOCKET_H PRAGMA_COLUMNS PRAGMA_SYSTEM_HEADER INCLUDE_NEXT_AS_FIRST_DIRECTIVE INCLUDE_NEXT HAVE_ACCEPT4 HAVE_SA_FAMILY_T HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY HAVE_STRUCT_SOCKADDR_STORAGE GNULIB_ACCEPT4 GNULIB_SHUTDOWN GNULIB_SETSOCKOPT GNULIB_SENDTO GNULIB_RECVFROM GNULIB_SEND GNULIB_RECV GNULIB_LISTEN GNULIB_GETSOCKOPT GNULIB_GETSOCKNAME GNULIB_GETPEERNAME GNULIB_BIND GNULIB_ACCEPT GNULIB_CONNECT GNULIB_SOCKET GL_COND_LIBTOOL_FALSE GL_COND_LIBTOOL_TRUE HAVE_VALGRIND_FALSE HAVE_VALGRIND_TRUE VALGRIND HAVE_CXX HAVE_EASY_BINDINGS_FALSE HAVE_EASY_BINDINGS_TRUE HAVE_LUA_FALSE HAVE_LUA_TRUE LUA_CONFIG LUA_VERSION LUA_LIBS LUA_CFLAGS HAVE_RUBY_FALSE HAVE_RUBY_TRUE RUBY_CCFLAGS RUBY_LIBS pkgrbexecdir RUBY_INCLUDES RUBY_PKG_CONFIG_LIBS RUBY_PKG_CONFIG_CFLAGS rbexecdir pkgrubydir rubydir RUBY_PLATFORM RUBY_EXEC_PREFIX RUBY_PREFIX RUBY_VERSION RUBY HAVE_PYTHON_FALSE HAVE_PYTHON_TRUE HAVE_PYTHON3_FALSE HAVE_PYTHON3_TRUE PYTHON3 HAVE_PYTHON2_FALSE HAVE_PYTHON2_TRUE PYTHON2 PERL_EXTRA_PARAMS HAVE_PERL_FALSE HAVE_PERL_TRUE PERL HAVE_SWIG_FALSE HAVE_SWIG_TRUE SWIG PCRE_CFLAGS PCRE_LIBS PCRE_CONFIG LIBGNUTLS_EXTRA_CONFIG LIBGNUTLS_EXTRA_LIBS LIBGNUTLS_EXTRA_CFLAGS PRELUDE_ADMIN_CFLAGS PRELUDE_ADMIN_LIBS LIBGNUTLS_CONFIG LIBGNUTLS_LIBS LIBGNUTLS_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG PTHREAD_LIBS PTHREAD_CFLAGS PTHREAD_LDFLAGS CC_FOR_BUILD LIBLTDL_DECL LTDLOPEN LT_CONFIG_H CONVENIENCE_LTDL_FALSE CONVENIENCE_LTDL_TRUE INSTALL_LTDL_FALSE INSTALL_LTDL_TRUE ARGZ_H sys_symbol_underscore LIBADD_DL LT_DLPREOPEN LIBADD_DLD_LINK LIBADD_SHL_LOAD LIBADD_DLOPEN LT_DLLOADERS INCLTDL LTDLINCL LTDLDEPS LIBLTDL CXXCPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED LIBTOOL OBJDUMP DLLTOOL AS RANLIB ARFLAGS ac_ct_AR AR EGREP CPP GREP YFLAGS YACC LEXLIB LEX_OUTPUT_ROOT LEX am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_os target_vendor target_cpu target host_os host_vendor host_cpu host build_os build_vendor build_cpu build target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_maintainer_mode enable_dependency_tracking enable_largefile enable_threads enable_static enable_shared with_pic enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock with_included_ltdl with_ltdl_include with_ltdl_lib enable_ltdl_install with_libgnutls_prefix with_libgnutls_extra_prefix with_swig with_perl with_perl_installdirs with_python2 with_python3 with_ruby with_lua enable_easy_bindings with_valgrind enable_rpath with_libpth_prefix with_included_regex enable_relocatable with_html_dir enable_gtk_doc enable_gtk_doc_html enable_gtk_doc_pdf ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CXX CXXFLAGS CCC YACC YFLAGS CPP CXXCPP CC_FOR_BUILD PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR LIBGNUTLS_CFLAGS LIBGNUTLS_LIBS LIBGNUTLS_EXTRA_CFLAGS LIBGNUTLS_EXTRA_LIBS RUBY_PKG_CONFIG_CFLAGS RUBY_PKG_CONFIG_LIBS LUA_CFLAGS LUA_LIBS GTKDOC_DEPS_CFLAGS GTKDOC_DEPS_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures libprelude 5.2.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/libprelude] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of libprelude 5.2.0:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-largefile omit support for large files --enable-threads={posix|solaris|pth|windows} specify multithreading API --disable-threads build without multithread safety --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-ltdl-install install libltdl --enable-easy-bindings Enable support for high level binding [default=yes] --disable-rpath do not hardcode runtime library paths --enable-relocatable install a package that can be moved in the file system --enable-gtk-doc use gtk-doc to build documentation [[default=no]] --enable-gtk-doc-html build documentation in html format [[default=yes]] --enable-gtk-doc-pdf build documentation in pdf format [[default=no]] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-included-ltdl use the GNU ltdl sources included here --with-ltdl-include=DIR use the ltdl headers installed in DIR --with-ltdl-lib=DIR use the libltdl.la installed in DIR --with-libgnutls-prefix=PFX Prefix where libgnutls is installed (optional) --with-libgnutls-extra-prefix=PFX Prefix where libgnutls-extra is installed (optional) --with-swig[=PATH] Regenerate bindings sources using local SWIG installation [default=auto] --with-perl[=PATH] Enable support for perl binding [default=auto] --with-perl-installdirs=[site|vendor] Specify where to install the Perl module [default=site] --with-python2[=PATH] Enable support for python2 binding [default=auto] --with-python3[=PATH] Enable support for python3 binding [default=auto] --with-ruby[=PATH] Enable support for ruby binding [default=auto] --with-lua-config[=PATH] Enable support for lua binding [default=auto] --with-python[=PATH] Valgrind support for unit testing [default=auto] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libpth-prefix[=DIR] search for libpth in DIR/include and DIR/lib --without-libpth-prefix don't search for libpth in includedir and libdir --without-included-regex don't compile regex; this is the default on systems with recent-enough versions of the GNU C Library (use with caution on other systems). --with-html-dir=PATH path to installed docs Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXX C++ compiler command CXXFLAGS C++ compiler flags YACC The `Yet Another Compiler Compiler' implementation to use. Defaults to the first program found out of: `bison -y', `byacc', `yacc'. YFLAGS The list of arguments that will be passed by default to $YACC. This script will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications. CPP C preprocessor CXXCPP C++ preprocessor CC_FOR_BUILD build system C compiler PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path LIBGNUTLS_CFLAGS C compiler flags for LIBGNUTLS, overriding pkg-config LIBGNUTLS_LIBS linker flags for LIBGNUTLS, overriding pkg-config LIBGNUTLS_EXTRA_CFLAGS C compiler flags for LIBGNUTLS_EXTRA, overriding pkg-config LIBGNUTLS_EXTRA_LIBS linker flags for LIBGNUTLS_EXTRA, overriding pkg-config RUBY_PKG_CONFIG_CFLAGS C compiler flags for RUBY_PKG_CONFIG, overriding pkg-config RUBY_PKG_CONFIG_LIBS linker flags for RUBY_PKG_CONFIG, overriding pkg-config LUA_CFLAGS C compiler flags for LUA, overriding pkg-config LUA_LIBS linker flags for LUA, overriding pkg-config GTKDOC_DEPS_CFLAGS C compiler flags for GTKDOC_DEPS, overriding pkg-config GTKDOC_DEPS_LIBS linker flags for GTKDOC_DEPS, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF libprelude configure 5.2.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES # --------------------------------------------- # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES # ---------------------------------------------------- # Tries to find if the field MEMBER exists in type AGGR, after including # INCLUDES, setting cache variable VAR accordingly. ac_fn_c_check_member () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 $as_echo_n "checking for $2.$3... " >&6; } if eval \${$4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (sizeof ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else eval "$4=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$4 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by libprelude $as_me 5.2.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi gl_header_list="$gl_header_list sys/socket.h" gl_header_list="$gl_header_list arpa/inet.h" gl_header_list="$gl_header_list features.h" gl_func_list="$gl_func_list btowc" gl_func_list="$gl_func_list _set_invalid_parameter_handler" gl_header_list="$gl_header_list unistd.h" gl_func_list="$gl_func_list fpurge" gl_func_list="$gl_func_list __fpurge" gl_func_list="$gl_func_list __freading" gl_header_list="$gl_header_list sys/stat.h" gl_header_list="$gl_header_list netdb.h" gl_header_list="$gl_header_list netinet/in.h" gl_func_list="$gl_func_list getdelim" gl_header_list="$gl_header_list sys/param.h" gl_func_list="$gl_func_list getpass" gl_header_list="$gl_header_list stdio_ext.h" gl_header_list="$gl_header_list termios.h" gl_func_list="$gl_func_list __fsetlocking" gl_header_list="$gl_header_list sys/time.h" gl_func_list="$gl_func_list gettimeofday" gl_header_list="$gl_header_list langinfo.h" gl_header_list="$gl_header_list limits.h" gl_header_list="$gl_header_list xlocale.h" gl_func_list="$gl_func_list mbsinit" gl_func_list="$gl_func_list mbrtowc" gl_header_list="$gl_header_list sys/mman.h" gl_func_list="$gl_func_list mprotect" gl_func_list="$gl_func_list tzset" gl_func_list="$gl_func_list nl_langinfo" gl_func_list="$gl_func_list strerror_r" gl_func_list="$gl_func_list __xpg_strerror_r" gl_header_list="$gl_header_list poll.h" gl_header_list="$gl_header_list sys/ioctl.h" gl_header_list="$gl_header_list sys/filio.h" gl_func_list="$gl_func_list pthread_sigmask" gl_header_list="$gl_header_list malloc.h" gl_func_list="$gl_func_list isblank" gl_func_list="$gl_func_list iswctype" gl_header_list="$gl_header_list sys/select.h" gl_func_list="$gl_func_list sleep" gl_func_list="$gl_func_list snprintf" gl_func_list="$gl_func_list lstat" gl_header_list="$gl_header_list wchar.h" gl_header_list="$gl_header_list stdint.h" gl_func_list="$gl_func_list strdup" gl_func_list="$gl_func_list catgets" gl_header_list="$gl_header_list strings.h" gl_func_list="$gl_func_list strndup" gl_func_list="$gl_func_list strptime" gl_header_list="$gl_header_list sys/uio.h" gl_header_list="$gl_header_list sys/utsname.h" gl_func_list="$gl_func_list localtime_r" gl_func_list="$gl_func_list timegm" gl_func_list="$gl_func_list vasnprintf" gl_header_list="$gl_header_list crtdefs.h" gl_func_list="$gl_func_list wcrtomb" gl_func_list="$gl_func_list iswcntrl" gl_header_list="$gl_header_list wctype.h" gl_func_list="$gl_func_list fcntl" gl_func_list="$gl_func_list symlink" gl_func_list="$gl_func_list ftruncate" gl_func_list="$gl_func_list getdtablesize" gl_header_list="$gl_header_list inttypes.h" gl_func_list="$gl_func_list newlocale" gl_header_list="$gl_header_list semaphore.h" gl_func_list="$gl_func_list pipe" gl_header_list="$gl_header_list sys/wait.h" gl_func_list="$gl_func_list setenv" gl_func_list="$gl_func_list sigaction" gl_func_list="$gl_func_list sigaltstack" gl_func_list="$gl_func_list siginterrupt" gl_func_list="$gl_func_list shutdown" gl_func_list="$gl_func_list usleep" gl_func_list="$gl_func_list wctob" gl_header_list="$gl_header_list sys/un.h" gl_header_list="$gl_header_list netinet/tcp.h" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu LIBPRELUDE_MAJOR_VERSION=5 LIBPRELUDE_MINOR_VERSION=2 LIBPRELUDE_MICRO_VERSION=0 LIBPRELUDE_LEVEL_VERSION=LIBPRELUDE_RELEASE_LEVEL_FINAL LIBPRELUDE_SERIAL_VERSION=0 libprelude_current=29 libprelude_revision=0 libprelude_age=1 LIBPRELUDE_SONAME=$libprelude_current:$libprelude_revision:$libprelude_age libpreludecpp_current=12 libpreludecpp_revision=1 libpreludecpp_age=0 LIBPRELUDECPP_SONAME=$libpreludecpp_current:$libpreludecpp_revision:$libpreludecpp_age ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } if ${ac_cv_target+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- am__api_version='1.13' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='libprelude' VERSION='5.2.0' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5 $as_echo_n "checking how to create a pax tar archive... " >&6; } # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_pax-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do { echo "$as_me:$LINENO: $_am_tar --version" >&5 ($_am_tar --version) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && break done am__tar="$_am_tar --format=posix -chf - "'"$$tardir"' am__tar_="$_am_tar --format=posix -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x pax -w "$$tardir"' am__tar_='pax -L -x pax -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H pax -L' am__tar_='find "$tardir" -print | cpio -o -H pax -L' am__untar='cpio -i -H pax -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_pax}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -rf conftest.dir if test -s conftest.tar; then { echo "$as_me:$LINENO: $am__untar &5 ($am__untar &5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 (cat conftest.dir/file) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } grep GrepMe conftest.dir/file >/dev/null 2>&1 && break fi done rm -rf conftest.dir if ${am_cv_prog_tar_pax+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_prog_tar_pax=$_am_tool fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5 $as_echo "$am_cv_prog_tar_pax" >&6; } ac_config_headers="$ac_config_headers config.h" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi for ac_prog in flex lex do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LEX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LEX"; then ac_cv_prog_LEX="$LEX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LEX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LEX=$ac_cv_prog_LEX if test -n "$LEX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 $as_echo "$LEX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$LEX" && break done test -n "$LEX" || LEX=":" if test "x$LEX" != "x:"; then cat >conftest.l <<_ACEOF %% a { ECHO; } b { REJECT; } c { yymore (); } d { yyless (1); } e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument. */ yyless ((input () != 0)); } f { unput (yytext[0]); } . { BEGIN INITIAL; } %% #ifdef YYTEXT_POINTER extern char *yytext; #endif int main (void) { return ! yylex () + ! yywrap (); } _ACEOF { { ac_try="$LEX conftest.l" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$LEX conftest.l") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 $as_echo_n "checking lex output file root... " >&6; } if ${ac_cv_prog_lex_root+:} false; then : $as_echo_n "(cached) " >&6 else if test -f lex.yy.c; then ac_cv_prog_lex_root=lex.yy elif test -f lexyy.c; then ac_cv_prog_lex_root=lexyy else as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 $as_echo "$ac_cv_prog_lex_root" >&6; } LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root if test -z "${LEXLIB+set}"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 $as_echo_n "checking lex library... " >&6; } if ${ac_cv_lib_lex+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_LIBS=$LIBS ac_cv_lib_lex='none needed' for ac_lib in '' -lfl -ll; do LIBS="$ac_lib $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_lex=$ac_lib fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext test "$ac_cv_lib_lex" != 'none needed' && break done LIBS=$ac_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 $as_echo "$ac_cv_lib_lex" >&6; } test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 $as_echo_n "checking whether yytext is a pointer... " >&6; } if ${ac_cv_prog_lex_yytext_pointer+:} false; then : $as_echo_n "(cached) " >&6 else # POSIX says lex can declare yytext either as a pointer or an array; the # default is implementation-dependent. Figure out which it is, since # not all implementations provide the %pointer and %array declarations. ac_cv_prog_lex_yytext_pointer=no ac_save_LIBS=$LIBS LIBS="$LEXLIB $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define YYTEXT_POINTER 1 `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_prog_lex_yytext_pointer=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 $as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; } if test $ac_cv_prog_lex_yytext_pointer = yes; then $as_echo "#define YYTEXT_POINTER 1" >>confdefs.h fi rm -f conftest.l $LEX_OUTPUT_ROOT.c fi if test "$LEX" = :; then LEX=${am_missing_run}flex fi for ac_prog in 'bison -y' byacc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_YACC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_YACC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi YACC=$ac_cv_prog_YACC if test -n "$YACC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 $as_echo "$YACC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$YACC" && break done test -n "$YACC" || YACC="yacc" # Extract the first word of "grep", so it can be a program name with args. set dummy grep; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else case $GREP in [\\/]* | ?:[\\/]*) ac_cv_path_GREP="$GREP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GREP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GREP" && ac_cv_path_GREP="no" ;; esac fi GREP=$ac_cv_path_GREP if test -n "$GREP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 $as_echo "$GREP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # for prelude-config.h generation BINDINGS_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h $as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h $as_echo "#define _OPENBSD_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 $as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; } if ${ac_cv_should_define__xopen_source+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_should_define__xopen_source=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include mbstate_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE 500 #include mbstate_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_should_define__xopen_source=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 $as_echo "$ac_cv_should_define__xopen_source" >&6; } test $ac_cv_should_define__xopen_source = yes && $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h $as_echo "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5 $as_echo_n "checking for Minix Amsterdam compiler... " >&6; } if ${gl_cv_c_amsterdam_compiler+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ACK__ Amsterdam #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Amsterdam" >/dev/null 2>&1; then : gl_cv_c_amsterdam_compiler=yes else gl_cv_c_amsterdam_compiler=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5 $as_echo "$gl_cv_c_amsterdam_compiler" >&6; } if test $gl_cv_c_amsterdam_compiler = yes; then if test -z "$AR"; then AR='cc -c.a' fi if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} { $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 $as_echo_n "checking the archiver ($AR) interface... " >&6; } if ${am_cv_ar_interface+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_ar_interface=ar cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 $as_echo "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) as_fn_error $? "could not determine $AR interface" "$LINENO" 5 ;; esac fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="ar" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi if test -z "$ARFLAGS"; then ARFLAGS='cr' fi if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' else if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi fi fi if test "x$CC" != xcc; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 $as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. if { ac_try='cc -c conftest.$ac_ext >&5' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # cc works too. : else # cc exists but doesn't like -o. eval ac_cv_prog_cc_${ac_cc}_c_o=no fi fi fi else eval ac_cv_prog_cc_${ac_cc}_c_o=no fi rm -f core conftest* fi if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h fi # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } if ${ac_cv_sys_largefile_source+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_sys_largefile_source=no; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGEFILE_SOURCE 1 #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_sys_largefile_source=1; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_cv_sys_largefile_source=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5 $as_echo "$ac_cv_sys_largefile_source" >&6; } case $ac_cv_sys_largefile_source in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source _ACEOF ;; esac rm -rf conftest* # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug # in glibc 2.1.3, but that breaks too many other things. # If you want fseeko and ftello with glibc, upgrade to a fixed glibc. if test $ac_cv_sys_largefile_source != unknown; then $as_echo "#define HAVE_FSEEKO 1" >>confdefs.h fi # IEEE behaviour is the default on all CPUs except Alpha and SH # (according to the test results of Bruno Haible's ieeefp/fenv_default.m4 # and the GCC 4.1.2 manual). case "$host_cpu" in alpha*) # On Alpha systems, a compiler option provides the behaviour. # See the ieee(3) manual page, also available at # if test -n "$GCC"; then # GCC has the option -mieee. # For full IEEE compliance (rarely needed), use option -mieee-with-inexact. CPPFLAGS="$CPPFLAGS -mieee" else # Compaq (ex-DEC) C has the option -ieee, equivalent to -ieee_with_no_inexact. # For full IEEE compliance (rarely needed), use option -ieee_with_inexact. CPPFLAGS="$CPPFLAGS -ieee" fi ;; sh*) if test -n "$GCC"; then # GCC has the option -mieee. CPPFLAGS="$CPPFLAGS -mieee" fi ;; esac # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : enableval=$enable_largefile; fi if test "$enable_largefile" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext CC="$CC -n32" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 $as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=64; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_file_offset_bits=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 $as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF ;; esac rm -rf conftest* if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=1; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_large_files=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 $as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF ;; esac rm -rf conftest* fi $as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h fi # Check whether --enable-threads was given. if test "${enable_threads+set}" = set; then : enableval=$enable_threads; gl_use_threads=$enableval else if test -n "$gl_use_threads_default"; then gl_use_threads="$gl_use_threads_default" else case "$host_os" in osf*) gl_use_threads=no ;; cygwin*) case `uname -r` in 1.[0-5].*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ;; *) gl_use_threads=yes ;; esac fi fi if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # For using : case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks . cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_LINK_IFELSE test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in . case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac fi # Pre-early section. # Code from module absolute-header: # Code from module accept: # Code from module accept-tests: # Code from module alloca: # Code from module alloca-opt: # Code from module alloca-opt-tests: # Code from module arpa_inet: # Code from module arpa_inet-tests: # Code from module assure: # Code from module binary-io: # Code from module binary-io-tests: # Code from module bind: # Code from module bind-tests: # Code from module btowc: # Code from module btowc-tests: # Code from module builtin-expect: # Code from module c-ctype: # Code from module c-ctype-tests: # Code from module c-strcase: # Code from module c-strcase-tests: # Code from module cloexec: # Code from module cloexec-tests: # Code from module close: # Code from module close-tests: # Code from module cond: # Code from module cond-tests: # Code from module connect: # Code from module connect-tests: # Code from module ctype: # Code from module ctype-tests: # Code from module dosname: # Code from module dup2: # Code from module dup2-tests: # Code from module environ: # Code from module environ-tests: # Code from module errno: # Code from module errno-tests: # Code from module extensions: # Code from module extern-inline: # Code from module fclose: # Code from module fclose-tests: # Code from module fcntl: # Code from module fcntl-h: # Code from module fcntl-h-tests: # Code from module fcntl-tests: # Code from module fd-hook: # Code from module fdopen: # Code from module fdopen-tests: # Code from module fflush: # Code from module fflush-tests: # Code from module fgetc-tests: # Code from module filename: # Code from module flexmember: # Code from module float: # Code from module float-tests: # Code from module fopen: # Code from module fopen-tests: # Code from module fpieee: # Code from module fpucw: # Code from module fpurge: # Code from module fpurge-tests: # Code from module fputc-tests: # Code from module fread-tests: # Code from module freading: # Code from module freading-tests: # Code from module fseek: # Code from module fseek-tests: # Code from module fseeko: # Code from module fseeko-tests: # Code from module fstat: # Code from module fstat-tests: # Code from module ftell: # Code from module ftell-tests: # Code from module ftello: # Code from module ftello-tests: # Code from module ftruncate: # Code from module ftruncate-tests: # Code from module ftw: # Code from module fwrite-tests: # Code from module getaddrinfo: # Code from module getaddrinfo-tests: # Code from module getcwd-lgpl: # Code from module getcwd-lgpl-tests: # Code from module getdelim: # Code from module getdelim-tests: # Code from module getdtablesize: # Code from module getdtablesize-tests: # Code from module gethostname: # Code from module gethostname-tests: # Code from module getline: # Code from module getline-tests: # Code from module getpagesize: # Code from module getpass: # Code from module getsockname: # Code from module getsockname-tests: # Code from module gettext-h: # Code from module gettimeofday: # Code from module gettimeofday-tests: # Code from module hard-locale: # Code from module havelib: # Code from module host-cpu-c-abi: # Code from module hostent: # Code from module ignore-value: # Code from module ignore-value-tests: # Code from module include_next: # Code from module inet_ntop: # Code from module inet_ntop-tests: # Code from module inet_pton: # Code from module inet_pton-tests: # Code from module intprops: # Code from module intprops-tests: # Code from module inttypes: # Code from module inttypes-incomplete: # Code from module inttypes-tests: # Code from module ioctl: # Code from module ioctl-tests: # Code from module isblank: # Code from module isblank-tests: # Code from module langinfo: # Code from module langinfo-tests: # Code from module largefile: # Code from module limits-h: # Code from module limits-h-tests: # Code from module listen: # Code from module listen-tests: # Code from module localcharset: # Code from module localcharset-tests: # Code from module locale: # Code from module locale-tests: # Code from module localeconv: # Code from module localeconv-tests: # Code from module localename: # Code from module localename-tests: # Code from module localtime-buffer: # Code from module lock: # Code from module lock-tests: # Code from module lseek: # Code from module lseek-tests: # Code from module lstat: # Code from module lstat-tests: # Code from module malloc-posix: # Code from module malloca: # Code from module malloca-tests: # Code from module mbrtowc: # Code from module mbrtowc-tests: # Code from module mbsinit: # Code from module mbsinit-tests: # Code from module mbtowc: # Code from module memchr: # Code from module memchr-tests: # Code from module memmem: # Code from module memmem-simple: # Code from module memmem-tests: # Code from module minmax: # Code from module mktime: # Code from module mktime-internal: # Code from module msvc-inval: # Code from module msvc-nothrow: # Code from module multiarch: # Code from module nanosleep: # Code from module nanosleep-tests: # Code from module netdb: # Code from module netdb-tests: # Code from module netinet_in: # Code from module netinet_in-tests: # Code from module nl_langinfo: # Code from module nl_langinfo-tests: # Code from module open: # Code from module open-tests: # Code from module pathmax: # Code from module pathmax-tests: # Code from module perror: # Code from module perror-tests: # Code from module pipe-posix: # Code from module pipe-posix-tests: # Code from module poll: # Code from module poll-h: # Code from module poll-h-tests: # Code from module poll-tests: # Code from module pthread_sigmask: # Code from module pthread_sigmask-tests: # Code from module putenv: # Code from module raise: # Code from module raise-tests: # Code from module regex: # Code from module regex-tests: # Code from module relocatable-lib-lgpl: # Code from module same-inode: # Code from module select: # Code from module select-tests: # Code from module servent: # Code from module setenv: # Code from module setenv-tests: # Code from module setlocale: # Code from module setlocale-tests: # Code from module setsockopt: # Code from module setsockopt-tests: # Code from module sigaction: # Code from module sigaction-tests: # Code from module signal-h: # Code from module signal-h-tests: # Code from module sigprocmask: # Code from module sigprocmask-tests: # Code from module size_max: # Code from module sleep: # Code from module sleep-tests: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/unused-parameter: # Code from module snippet/warn-on-use: # Code from module snprintf: # Code from module snprintf-tests: # Code from module socket: # Code from module socketlib: # Code from module sockets: # Code from module sockets-tests: # Code from module socklen: # Code from module ssize_t: # Code from module stat: # Code from module stat-tests: # Code from module stat-time: # Code from module stat-time-tests: # Code from module stdalign: # Code from module stdalign-tests: # Code from module stdbool: # Code from module stdbool-tests: # Code from module stddef: # Code from module stddef-tests: # Code from module stdint: # Code from module stdint-tests: # Code from module stdio: # Code from module stdio-tests: # Code from module stdlib: # Code from module stdlib-tests: # Code from module strcase: # Code from module strcasestr: # Code from module strcasestr-simple: # Code from module strcasestr-tests: # Code from module strdup-posix: # Code from module streq: # Code from module strerror: # Code from module strerror-override: # Code from module strerror-tests: # Code from module strerror_r-posix: # Code from module strerror_r-posix-tests: # Code from module string: # Code from module string-tests: # Code from module strings: # Code from module strings-tests: # Code from module strndup: # Code from module strnlen: # Code from module strnlen-tests: # Code from module strptime: # Code from module strsep: # Code from module symlink: # Code from module symlink-tests: # Code from module sys_ioctl: # Code from module sys_ioctl-tests: # Code from module sys_select: # Code from module sys_select-tests: # Code from module sys_socket: # Code from module sys_socket-tests: # Code from module sys_stat: # Code from module sys_stat-tests: # Code from module sys_time: # Code from module sys_time-tests: # Code from module sys_types: # Code from module sys_types-tests: # Code from module sys_uio: # Code from module sys_uio-tests: # Code from module sys_utsname: # Code from module sys_utsname-tests: # Code from module test-framework-sh: # Code from module test-framework-sh-tests: # Code from module thread: # Code from module thread-tests: # Code from module threadlib: # Code from module time: # Code from module time-tests: # Code from module time_r: # Code from module timegm: # Code from module tls: # Code from module tls-tests: # Code from module uname: # Code from module uname-tests: # Code from module unistd: # Code from module unistd-tests: # Code from module unsetenv: # Code from module unsetenv-tests: # Code from module usleep: # Code from module usleep-tests: # Code from module vasnprintf: # Code from module vasnprintf-tests: # Code from module verify: # Code from module verify-tests: # Code from module vsnprintf: # Code from module vsnprintf-tests: # Code from module wchar: # Code from module wchar-tests: # Code from module wcrtomb: # Code from module wcrtomb-tests: # Code from module wctob: # Code from module wctomb: # Code from module wctype-h: # Code from module wctype-h-tests: # Code from module write: # Code from module write-tests: # Code from module xalloc-oversized: # Code from module xsize: # Code from module yield: if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} { $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 $as_echo_n "checking the archiver ($AR) interface... " >&6; } if ${am_cv_ar_interface+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_ar_interface=ar cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 $as_echo "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) as_fn_error $? "could not determine $AR interface" "$LINENO" 5 ;; esac case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.2' macro_revision='1.3337' ltmain="$ac_aux_dir/ltmain.sh" # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac for ac_header in dlfcn.h do ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf # Set options enable_dlopen=yes enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ac_tool_prefix}as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AS=$ac_cv_prog_AS if test -n "$AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 $as_echo "$AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AS="as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 $as_echo "$ac_ct_AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi ;; esac test -z "$AS" && AS=as test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds reload_flag_CXX=$reload_flag reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' fi archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=yes file_list_spec_CXX='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' enable_shared_with_static_runtimes_CXX=yes # Don't use ranlib old_postinstall_cmds_CXX='chmod 644 $oldlib' postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec_CXX='' fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; haiku*) archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs_CXX=yes ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ '"$old_archive_cmds_CXX" reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ;; esac ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc_CXX=no else lt_cv_archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 $as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_commands="$ac_config_commands libtool" # Only expand once: old_LIBS=$LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: checking which extension is used for runtime loadable modules" >&5 $as_echo_n "checking which extension is used for runtime loadable modules... " >&6; } if ${libltdl_cv_shlibext+:} false; then : $as_echo_n "(cached) " >&6 else module=yes eval libltdl_cv_shlibext=$shrext_cmds module=no eval libltdl_cv_shrext=$shrext_cmds fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libltdl_cv_shlibext" >&5 $as_echo "$libltdl_cv_shlibext" >&6; } if test -n "$libltdl_cv_shlibext"; then cat >>confdefs.h <<_ACEOF #define LT_MODULE_EXT "$libltdl_cv_shlibext" _ACEOF fi if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then cat >>confdefs.h <<_ACEOF #define LT_SHARED_EXT "$libltdl_cv_shrext" _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variable specifies run-time module search path" >&5 $as_echo_n "checking which variable specifies run-time module search path... " >&6; } if ${lt_cv_module_path_var+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_module_path_var="$shlibpath_var" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_module_path_var" >&5 $as_echo "$lt_cv_module_path_var" >&6; } if test -n "$lt_cv_module_path_var"; then cat >>confdefs.h <<_ACEOF #define LT_MODULE_PATH_VAR "$lt_cv_module_path_var" _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the default library search path" >&5 $as_echo_n "checking for the default library search path... " >&6; } if ${lt_cv_sys_dlsearch_path+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sys_dlsearch_path="$sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_dlsearch_path" >&5 $as_echo "$lt_cv_sys_dlsearch_path" >&6; } if test -n "$lt_cv_sys_dlsearch_path"; then sys_dlsearch_path= for dir in $lt_cv_sys_dlsearch_path; do if test -z "$sys_dlsearch_path"; then sys_dlsearch_path="$dir" else sys_dlsearch_path="$sys_dlsearch_path$PATH_SEPARATOR$dir" fi done cat >>confdefs.h <<_ACEOF #define LT_DLSEARCH_PATH "$sys_dlsearch_path" _ACEOF fi LT_DLLOADERS= ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu LIBADD_DLOPEN= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 $as_echo_n "checking for library containing dlopen... " >&6; } if ${ac_cv_search_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF for ac_lib in '' dl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_dlopen=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_dlopen+:} false; then : break fi done if ${ac_cv_search_dlopen+:} false; then : else ac_cv_search_dlopen=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 $as_echo "$ac_cv_search_dlopen" >&6; } ac_res=$ac_cv_search_dlopen if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" $as_echo "#define HAVE_LIBDL 1" >>confdefs.h if test "$ac_cv_search_dlopen" != "none required" ; then LIBADD_DLOPEN="-ldl" fi libltdl_cv_lib_dl_dlopen="yes" LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_DLFCN_H # include #endif int main () { dlopen(0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : $as_echo "#define HAVE_LIBDL 1" >>confdefs.h libltdl_cv_func_dlopen="yes" LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : $as_echo "#define HAVE_LIBDL 1" >>confdefs.h LIBADD_DLOPEN="-lsvld" libltdl_cv_func_dlopen="yes" LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la" fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes then lt_save_LIBS="$LIBS" LIBS="$LIBS $LIBADD_DLOPEN" for ac_func in dlerror do ac_fn_c_check_func "$LINENO" "dlerror" "ac_cv_func_dlerror" if test "x$ac_cv_func_dlerror" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLERROR 1 _ACEOF fi done LIBS="$lt_save_LIBS" fi LIBADD_SHL_LOAD= ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : $as_echo "#define HAVE_SHL_LOAD 1" >>confdefs.h LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : $as_echo "#define HAVE_SHL_LOAD 1" >>confdefs.h LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" LIBADD_SHL_LOAD="-ldld" fi fi case $host_os in darwin[1567].*) # We only want this for pre-Mac OS X 10.4. ac_fn_c_check_func "$LINENO" "_dyld_func_lookup" "ac_cv_func__dyld_func_lookup" if test "x$ac_cv_func__dyld_func_lookup" = xyes; then : $as_echo "#define HAVE_DYLD 1" >>confdefs.h LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la" fi ;; beos*) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" ;; cygwin* | mingw* | os2* | pw32*) ac_fn_c_check_decl "$LINENO" "cygwin_conv_path" "ac_cv_have_decl_cygwin_conv_path" "#include " if test "x$ac_cv_have_decl_cygwin_conv_path" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_CYGWIN_CONV_PATH $ac_have_decl _ACEOF LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : $as_echo "#define HAVE_DLD 1" >>confdefs.h LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la" fi LT_DLPREOPEN= if test -n "$LT_DLLOADERS" then for lt_loader in $LT_DLLOADERS; do LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " done $as_echo "#define HAVE_LIBDLLOADER 1" >>confdefs.h fi LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _ prefix in compiled symbols" >&5 $as_echo_n "checking for _ prefix in compiled symbols... " >&6; } if ${lt_cv_sys_symbol_underscore+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sys_symbol_underscore=no cat > conftest.$ac_ext <<_LT_EOF void nm_test_func(){} int main(){nm_test_func;return 0;} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. ac_nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$ac_nlist"; then # See whether the symbols have a leading underscore. if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then lt_cv_sys_symbol_underscore=yes else if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then : else echo "configure: cannot find nm_test_func in $ac_nlist" >&5 fi fi else echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "configure: failed program was:" >&5 cat conftest.c >&5 fi rm -rf conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_symbol_underscore" >&5 $as_echo "$lt_cv_sys_symbol_underscore" >&6; } sys_symbol_underscore=$lt_cv_sys_symbol_underscore if test x"$lt_cv_sys_symbol_underscore" = xyes; then if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we have to add an underscore for dlsym" >&5 $as_echo_n "checking whether we have to add an underscore for dlsym... " >&6; } if ${libltdl_cv_need_uscore+:} false; then : $as_echo_n "(cached) " >&6 else libltdl_cv_need_uscore=unknown save_LIBS="$LIBS" LIBS="$LIBS $LIBADD_DLOPEN" if test "$cross_compiling" = yes; then : libltdl_cv_need_uscore=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) libltdl_cv_need_uscore=no ;; x$lt_dlneed_uscore) libltdl_cv_need_uscore=yes ;; x$lt_dlunknown|x*) ;; esac else : # compilation failed fi fi rm -fr conftest* LIBS="$save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libltdl_cv_need_uscore" >&5 $as_echo "$libltdl_cv_need_uscore" >&6; } fi fi if test x"$libltdl_cv_need_uscore" = xyes; then $as_echo "#define NEED_USCORE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether deplibs are loaded by dlopen" >&5 $as_echo_n "checking whether deplibs are loaded by dlopen... " >&6; } if ${lt_cv_sys_dlopen_deplibs+:} false; then : $as_echo_n "(cached) " >&6 else # PORTME does your system automatically load deplibs for dlopen? # or its logical equivalent (e.g. shl_load for HP-UX < 11) # For now, we just catch OSes we know something about -- in the # future, we'll try test this programmatically. lt_cv_sys_dlopen_deplibs=unknown case $host_os in aix3*|aix4.1.*|aix4.2.*) # Unknown whether this is true for these versions of AIX, but # we want this `case' here to explicitly catch those versions. lt_cv_sys_dlopen_deplibs=unknown ;; aix[4-9]*) lt_cv_sys_dlopen_deplibs=yes ;; amigaos*) case $host_cpu in powerpc) lt_cv_sys_dlopen_deplibs=no ;; esac ;; darwin*) # Assuming the user has installed a libdl from somewhere, this is true # If you are looking for one http://www.opendarwin.org/projects/dlcompat lt_cv_sys_dlopen_deplibs=yes ;; freebsd* | dragonfly*) lt_cv_sys_dlopen_deplibs=yes ;; gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) # GNU and its variants, using gnu ld.so (Glibc) lt_cv_sys_dlopen_deplibs=yes ;; hpux10*|hpux11*) lt_cv_sys_dlopen_deplibs=yes ;; interix*) lt_cv_sys_dlopen_deplibs=yes ;; irix[12345]*|irix6.[01]*) # Catch all versions of IRIX before 6.2, and indicate that we don't # know how it worked for any of those versions. lt_cv_sys_dlopen_deplibs=unknown ;; irix*) # The case above catches anything before 6.2, and it's known that # at 6.2 and later dlopen does load deplibs. lt_cv_sys_dlopen_deplibs=yes ;; netbsd*) lt_cv_sys_dlopen_deplibs=yes ;; openbsd*) lt_cv_sys_dlopen_deplibs=yes ;; osf[1234]*) # dlopen did load deplibs (at least at 4.x), but until the 5.x series, # it did *not* use an RPATH in a shared library to find objects the # library depends on, so we explicitly say `no'. lt_cv_sys_dlopen_deplibs=no ;; osf5.0|osf5.0a|osf5.1) # dlopen *does* load deplibs and with the right loader patch applied # it even uses RPATH in a shared library to search for shared objects # that the library depends on, but there's no easy way to know if that # patch is installed. Since this is the case, all we can really # say is unknown -- it depends on the patch being installed. If # it is, this changes to `yes'. Without it, it would be `no'. lt_cv_sys_dlopen_deplibs=unknown ;; osf*) # the two cases above should catch all versions of osf <= 5.1. Read # the comments above for what we know about them. # At > 5.1, deplibs are loaded *and* any RPATH in a shared library # is used to find them so we can finally say `yes'. lt_cv_sys_dlopen_deplibs=yes ;; qnx*) lt_cv_sys_dlopen_deplibs=yes ;; solaris*) lt_cv_sys_dlopen_deplibs=yes ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) libltdl_cv_sys_dlopen_deplibs=yes ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_dlopen_deplibs" >&5 $as_echo "$lt_cv_sys_dlopen_deplibs" >&6; } if test "$lt_cv_sys_dlopen_deplibs" != yes; then $as_echo "#define LTDL_DLOPEN_DEPLIBS 1" >>confdefs.h fi : for ac_header in argz.h do ac_fn_c_check_header_compile "$LINENO" "argz.h" "ac_cv_header_argz_h" "$ac_includes_default " if test "x$ac_cv_header_argz_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ARGZ_H 1 _ACEOF fi done ac_fn_c_check_type "$LINENO" "error_t" "ac_cv_type_error_t" "#if defined(HAVE_ARGZ_H) # include #endif " if test "x$ac_cv_type_error_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ERROR_T 1 _ACEOF else $as_echo "#define error_t int" >>confdefs.h $as_echo "#define __error_t_defined 1" >>confdefs.h fi ARGZ_H= for ac_func in argz_add argz_append argz_count argz_create_sep argz_insert \ argz_next argz_stringify do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else ARGZ_H=argz.h; _LT_LIBOBJS="$_LT_LIBOBJS argz.$ac_objext" fi done if test -z "$ARGZ_H"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking if argz actually works" >&5 $as_echo_n "checking if argz actually works... " >&6; } if ${lt_cv_sys_argz_works+:} false; then : $as_echo_n "(cached) " >&6 else case $host_os in #( *cygwin*) lt_cv_sys_argz_works=no if test "$cross_compiling" != no; then lt_cv_sys_argz_works="guessing no" else lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' save_IFS=$IFS IFS=-. set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` IFS=$save_IFS lt_os_major=${2-0} lt_os_minor=${3-0} lt_os_micro=${4-0} if test "$lt_os_major" -gt 1 \ || { test "$lt_os_major" -eq 1 \ && { test "$lt_os_minor" -gt 5 \ || { test "$lt_os_minor" -eq 5 \ && test "$lt_os_micro" -gt 24; }; }; }; then lt_cv_sys_argz_works=yes fi fi ;; #( *) lt_cv_sys_argz_works=yes ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_argz_works" >&5 $as_echo "$lt_cv_sys_argz_works" >&6; } if test "$lt_cv_sys_argz_works" = yes; then : $as_echo "#define HAVE_WORKING_ARGZ 1" >>confdefs.h else ARGZ_H=argz.h _LT_LIBOBJS="$_LT_LIBOBJS argz.$ac_objext" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libtool supports -dlopen/-dlpreopen" >&5 $as_echo_n "checking whether libtool supports -dlopen/-dlpreopen... " >&6; } if ${libltdl_cv_preloaded_symbols+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$lt_cv_sys_global_symbol_pipe"; then libltdl_cv_preloaded_symbols=yes else libltdl_cv_preloaded_symbols=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libltdl_cv_preloaded_symbols" >&5 $as_echo "$libltdl_cv_preloaded_symbols" >&6; } if test x"$libltdl_cv_preloaded_symbols" = xyes; then $as_echo "#define HAVE_PRELOADED_SYMBOLS 1" >>confdefs.h fi # Set options # Check whether --with-included_ltdl was given. if test "${with_included_ltdl+set}" = set; then : withval=$with_included_ltdl; fi if test "x$with_included_ltdl" != xyes; then # We are not being forced to use the included libltdl sources, so # decide whether there is a useful installed version we can use. ac_fn_c_check_header_compile "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default " if test "x$ac_cv_header_ltdl_h" = xyes; then : ac_fn_c_check_decl "$LINENO" "lt_dlinterface_register" "ac_cv_have_decl_lt_dlinterface_register" "$ac_includes_default #include " if test "x$ac_cv_have_decl_lt_dlinterface_register" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lt_dladvise_preload in -lltdl" >&5 $as_echo_n "checking for lt_dladvise_preload in -lltdl... " >&6; } if ${ac_cv_lib_ltdl_lt_dladvise_preload+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lltdl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char lt_dladvise_preload (); int main () { return lt_dladvise_preload (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ltdl_lt_dladvise_preload=yes else ac_cv_lib_ltdl_lt_dladvise_preload=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ltdl_lt_dladvise_preload" >&5 $as_echo "$ac_cv_lib_ltdl_lt_dladvise_preload" >&6; } if test "x$ac_cv_lib_ltdl_lt_dladvise_preload" = xyes; then : with_included_ltdl=no else with_included_ltdl=yes fi else with_included_ltdl=yes fi else with_included_ltdl=yes fi fi # Check whether --with-ltdl_include was given. if test "${with_ltdl_include+set}" = set; then : withval=$with_ltdl_include; fi if test -n "$with_ltdl_include"; then if test -f "$with_ltdl_include/ltdl.h"; then : else as_fn_error $? "invalid ltdl include directory: \`$with_ltdl_include'" "$LINENO" 5 fi else with_ltdl_include=no fi # Check whether --with-ltdl_lib was given. if test "${with_ltdl_lib+set}" = set; then : withval=$with_ltdl_lib; fi if test -n "$with_ltdl_lib"; then if test -f "$with_ltdl_lib/libltdl.la"; then : else as_fn_error $? "invalid ltdl library directory: \`$with_ltdl_lib'" "$LINENO" 5 fi else with_ltdl_lib=no fi case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in ,yes,no,no,) case $enable_ltdl_convenience in no) as_fn_error $? "this package needs a convenience libltdl" "$LINENO" 5 ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='${top_build_prefix}'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdlc.la" LTDLDEPS=$LIBLTDL LTDLINCL='-I${top_srcdir}'"${lt_ltdl_dir+/$lt_ltdl_dir}" # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ;; ,no,no,no,) # If the included ltdl is not to be used, then use the # preinstalled libltdl we found. $as_echo "#define HAVE_LTDL 1" >>confdefs.h LIBLTDL=-lltdl LTDLDEPS= LTDLINCL= ;; ,no*,no,*) as_fn_error $? "\`--with-ltdl-include' and \`--with-ltdl-lib' options must be used together" "$LINENO" 5 ;; *) with_included_ltdl=no LIBLTDL="-L$with_ltdl_lib -lltdl" LTDLDEPS= LTDLINCL="-I$with_ltdl_include" ;; esac INCLTDL="$LTDLINCL" # Report our decision... { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find libltdl headers" >&5 $as_echo_n "checking where to find libltdl headers... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LTDLINCL" >&5 $as_echo "$LTDLINCL" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find libltdl library" >&5 $as_echo_n "checking where to find libltdl library... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBLTDL" >&5 $as_echo "$LIBLTDL" >&6; } # Check whether --enable-ltdl-install was given. if test "${enable_ltdl_install+set}" = set; then : enableval=$enable_ltdl_install; fi case ,${enable_ltdl_install},${enable_ltdl_convenience} in *yes*) ;; *) enable_ltdl_convenience=yes ;; esac if test x"${enable_ltdl_install-no}" != xno; then INSTALL_LTDL_TRUE= INSTALL_LTDL_FALSE='#' else INSTALL_LTDL_TRUE='#' INSTALL_LTDL_FALSE= fi if test x"${enable_ltdl_convenience-no}" != xno; then CONVENIENCE_LTDL_TRUE= CONVENIENCE_LTDL_FALSE='#' else CONVENIENCE_LTDL_TRUE='#' CONVENIENCE_LTDL_FALSE= fi # In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS # the user used. This is so that ltdl.h can pick up the parent projects # config.h file, The first file in AC_CONFIG_HEADERS must contain the # definitions required by ltdl.c. # FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). for ac_header in unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in closedir opendir readdir do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else _LT_LIBOBJS="$_LT_LIBOBJS lt__dirent.$ac_objext" fi done for ac_func in strlcat strlcpy do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else _LT_LIBOBJS="$_LT_LIBOBJS lt__strl.$ac_objext" fi done cat >>confdefs.h <<_ACEOF #define LT_LIBEXT "$libext" _ACEOF name= eval "lt_libprefix=\"$libname_spec\"" cat >>confdefs.h <<_ACEOF #define LT_LIBPREFIX "$lt_libprefix" _ACEOF name=ltdl eval "LTDLOPEN=\"$libname_spec\"" # Only expand once: LIBS=$old_LIBS if test x$LIBLTDL != x"\${top_build_prefix}libltdl/libltdlc.la"; then LIBLTDL_DECL=$LIBLTDL fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cc for build" >&5 $as_echo_n "checking for cc for build... " >&6; } if test "$cross_compiling" = "yes"; then CC_FOR_BUILD="${CC_FOR_BUILD-cc}" else CC_FOR_BUILD="${CC_FOR_BUILD-$CC}" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 $as_echo "$CC_FOR_BUILD" >&6; } case $ac_cv_prog_cc_stdc in #( no) : ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #( *) : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; } if ${ac_cv_prog_cc_c99+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static void test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str; int number; float fnumber; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); } int main () { // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); ; return 0; } _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c99" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 $as_echo "$ac_cv_prog_cc_c99" >&6; } ;; esac if test "x$ac_cv_prog_cc_c99" != xno; then : ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 else ac_cv_prog_cc_stdc=no fi fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5 $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } if ${ac_cv_prog_cc_stdc+:} false; then : $as_echo_n "(cached) " >&6 fi case $ac_cv_prog_cc_stdc in #( no) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; #( '') : { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; #( *) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5 $as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C99-conforming __func__" >&5 $as_echo_n "checking for an ANSI C99-conforming __func__... " >&6; } if ${ac_cv_cpp_func+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { char *foo = __func__; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_cpp_func=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { char *foo = __FUNCTION__; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_cpp_func=__FUNCTION__ else ac_cv_cpp_func=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cpp_func" >&5 $as_echo "$ac_cv_cpp_func" >&6; } if test $ac_cv_cpp_func = yes; then $as_echo "#define __PRELUDE_FUNC__ __func__" >>confdefs.h elif test $ac_cv_cpp_func = __FUNCTION__; then $as_echo "#define __PRELUDE_FUNC__ __FUNCTION__" >>confdefs.h elif test $ac_cv_cpp_func = no; then $as_echo "#define __PRELUDE_FUNC__ \"\"" >>confdefs.h fi PTHREAD_LIBS=@LTLIBMULTITHREAD@ PTHREAD_LDFLAGS="" PTHREAD_CFLAGS=$THREADCPPFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Werror -Wmissing-braces" >&5 $as_echo_n "checking whether C compiler accepts -Werror -Wmissing-braces... " >&6; } if ${ax_cv_check_cflags___Werror__Wmissing_braces+:} false; then : $as_echo_n "(cached) " >&6 else ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -Werror -Wmissing-braces" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_check_cflags___Werror__Wmissing_braces=yes else ax_cv_check_cflags___Werror__Wmissing_braces=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_check_save_flags fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Werror__Wmissing_braces" >&5 $as_echo "$ax_cv_check_cflags___Werror__Wmissing_braces" >&6; } if test x"$ax_cv_check_cflags___Werror__Wmissing_braces" = xyes; then : buggy_pthread_cppflags="-Werror -Wmissing-braces" else : fi old_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $buggy_pthread_cppflags" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for buggy pthread mutex initializers" >&5 $as_echo_n "checking for buggy pthread mutex initializers... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : compile_ok="yes" else compile_ok="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$old_CFLAGS" if test x$compile_ok = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } buggy_pthread_initializers="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 $as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) cat >>confdefs.h <<_ACEOF #define PRELUDE_WORDS_BIGENDIAN /**/ _ACEOF ;; #( no) ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac GNUTLS_MIN_VERSION=2.12.0 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGNUTLS" >&5 $as_echo_n "checking for LIBGNUTLS... " >&6; } if test -n "$LIBGNUTLS_CFLAGS"; then pkg_cv_LIBGNUTLS_CFLAGS="$LIBGNUTLS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= \$GNUTLS_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "gnutls >= $GNUTLS_MIN_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBGNUTLS_CFLAGS=`$PKG_CONFIG --cflags "gnutls >= $GNUTLS_MIN_VERSION" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBGNUTLS_LIBS"; then pkg_cv_LIBGNUTLS_LIBS="$LIBGNUTLS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= \$GNUTLS_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "gnutls >= $GNUTLS_MIN_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBGNUTLS_LIBS=`$PKG_CONFIG --libs "gnutls >= $GNUTLS_MIN_VERSION" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBGNUTLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gnutls >= $GNUTLS_MIN_VERSION" 2>&1` else LIBGNUTLS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gnutls >= $GNUTLS_MIN_VERSION" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBGNUTLS_PKG_ERRORS" >&5 # Check whether --with-libgnutls-prefix was given. if test "${with_libgnutls_prefix+set}" = set; then : withval=$with_libgnutls_prefix; libgnutls_config_prefix="$withval" else libgnutls_config_prefix="" fi if test x$libgnutls_config_prefix != x ; then if test x${LIBGNUTLS_CONFIG+set} != xset ; then LIBGNUTLS_CONFIG=$libgnutls_config_prefix/bin/libgnutls-config fi fi # Extract the first word of "libgnutls-config", so it can be a program name with args. set dummy libgnutls-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_LIBGNUTLS_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $LIBGNUTLS_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_LIBGNUTLS_CONFIG="$LIBGNUTLS_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_LIBGNUTLS_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_LIBGNUTLS_CONFIG" && ac_cv_path_LIBGNUTLS_CONFIG="no" ;; esac fi LIBGNUTLS_CONFIG=$ac_cv_path_LIBGNUTLS_CONFIG if test -n "$LIBGNUTLS_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGNUTLS_CONFIG" >&5 $as_echo "$LIBGNUTLS_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi min_libgnutls_version=$GNUTLS_MIN_VERSION { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgnutls - version >= $min_libgnutls_version" >&5 $as_echo_n "checking for libgnutls - version >= $min_libgnutls_version... " >&6; } no_libgnutls="" if test "$LIBGNUTLS_CONFIG" = "no" ; then no_libgnutls=yes else LIBGNUTLS_CFLAGS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --cflags` LIBGNUTLS_LIBS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --libs` libgnutls_config_version=`$LIBGNUTLS_CONFIG $libgnutls_config_args --version` ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" LIBS="$LIBS $LIBGNUTLS_LIBS" rm -f conf.libgnutlstest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { system ("touch conf.libgnutlstest"); if( strcmp( gnutls_check_version(NULL), "$libgnutls_config_version" ) ) { printf("\n*** 'libgnutls-config --version' returned %s, but LIBGNUTLS (%s)\n", "$libgnutls_config_version", gnutls_check_version(NULL) ); printf("*** was found! If libgnutls-config was correct, then it is best\n"); printf("*** to remove the old version of LIBGNUTLS. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If libgnutls-config was wrong, set the environment variable LIBGNUTLS_CONFIG\n"); printf("*** to point to the correct copy of libgnutls-config, and remove the file config.cache\n"); printf("*** before re-running configure\n"); } else if ( strcmp(gnutls_check_version(NULL), LIBGNUTLS_VERSION ) ) { printf("\n*** LIBGNUTLS header file (version %s) does not match\n", LIBGNUTLS_VERSION); printf("*** library (version %s)\n", gnutls_check_version(NULL) ); } else { if ( gnutls_check_version( "$min_libgnutls_version" ) ) { return 0; } else { printf("no\n*** An old version of LIBGNUTLS (%s) was found.\n", gnutls_check_version(NULL) ); printf("*** You need a version of LIBGNUTLS newer than %s. The latest version of\n", "$min_libgnutls_version" ); printf("*** LIBGNUTLS is always available from ftp://gnutls.hellug.gr/pub/gnutls.\n"); printf("*** \n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the libgnutls-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBGNUTLS, but you can also set the LIBGNUTLS_CONFIG environment to point to the\n"); printf("*** correct copy of libgnutls-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_libgnutls=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi if test "x$no_libgnutls" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : else if test -f conf.libgnutlstest ; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$LIBGNUTLS_CONFIG" = "no" ; then echo "*** The libgnutls-config script installed by LIBGNUTLS could not be found" echo "*** If LIBGNUTLS was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the LIBGNUTLS_CONFIG environment variable to the" echo "*** full path to libgnutls-config." else if test -f conf.libgnutlstest ; then : else echo "*** Could not run libgnutls test program, checking why..." CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" LIBS="$LIBS $LIBGNUTLS_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { return !!gnutls_check_version(NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBGNUTLS or finding the wrong" echo "*** version of LIBGNUTLS. If it is not finding LIBGNUTLS, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" echo "***" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBGNUTLS was incorrectly installed" echo "*** or that you have moved LIBGNUTLS since it was installed. In the latter case, you" echo "*** may want to edit the libgnutls-config script: $LIBGNUTLS_CONFIG" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi LIBGNUTLS_CFLAGS="" LIBGNUTLS_LIBS="" as_fn_error $? "$LIBGNUTLS_PKG_ERRORS" "$LINENO" 5 fi rm -f conf.libgnutlstest elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # Check whether --with-libgnutls-prefix was given. if test "${with_libgnutls_prefix+set}" = set; then : withval=$with_libgnutls_prefix; libgnutls_config_prefix="$withval" else libgnutls_config_prefix="" fi if test x$libgnutls_config_prefix != x ; then if test x${LIBGNUTLS_CONFIG+set} != xset ; then LIBGNUTLS_CONFIG=$libgnutls_config_prefix/bin/libgnutls-config fi fi # Extract the first word of "libgnutls-config", so it can be a program name with args. set dummy libgnutls-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_LIBGNUTLS_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $LIBGNUTLS_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_LIBGNUTLS_CONFIG="$LIBGNUTLS_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_LIBGNUTLS_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_LIBGNUTLS_CONFIG" && ac_cv_path_LIBGNUTLS_CONFIG="no" ;; esac fi LIBGNUTLS_CONFIG=$ac_cv_path_LIBGNUTLS_CONFIG if test -n "$LIBGNUTLS_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGNUTLS_CONFIG" >&5 $as_echo "$LIBGNUTLS_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi min_libgnutls_version=$GNUTLS_MIN_VERSION { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgnutls - version >= $min_libgnutls_version" >&5 $as_echo_n "checking for libgnutls - version >= $min_libgnutls_version... " >&6; } no_libgnutls="" if test "$LIBGNUTLS_CONFIG" = "no" ; then no_libgnutls=yes else LIBGNUTLS_CFLAGS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --cflags` LIBGNUTLS_LIBS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --libs` libgnutls_config_version=`$LIBGNUTLS_CONFIG $libgnutls_config_args --version` ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" LIBS="$LIBS $LIBGNUTLS_LIBS" rm -f conf.libgnutlstest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { system ("touch conf.libgnutlstest"); if( strcmp( gnutls_check_version(NULL), "$libgnutls_config_version" ) ) { printf("\n*** 'libgnutls-config --version' returned %s, but LIBGNUTLS (%s)\n", "$libgnutls_config_version", gnutls_check_version(NULL) ); printf("*** was found! If libgnutls-config was correct, then it is best\n"); printf("*** to remove the old version of LIBGNUTLS. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If libgnutls-config was wrong, set the environment variable LIBGNUTLS_CONFIG\n"); printf("*** to point to the correct copy of libgnutls-config, and remove the file config.cache\n"); printf("*** before re-running configure\n"); } else if ( strcmp(gnutls_check_version(NULL), LIBGNUTLS_VERSION ) ) { printf("\n*** LIBGNUTLS header file (version %s) does not match\n", LIBGNUTLS_VERSION); printf("*** library (version %s)\n", gnutls_check_version(NULL) ); } else { if ( gnutls_check_version( "$min_libgnutls_version" ) ) { return 0; } else { printf("no\n*** An old version of LIBGNUTLS (%s) was found.\n", gnutls_check_version(NULL) ); printf("*** You need a version of LIBGNUTLS newer than %s. The latest version of\n", "$min_libgnutls_version" ); printf("*** LIBGNUTLS is always available from ftp://gnutls.hellug.gr/pub/gnutls.\n"); printf("*** \n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the libgnutls-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBGNUTLS, but you can also set the LIBGNUTLS_CONFIG environment to point to the\n"); printf("*** correct copy of libgnutls-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_libgnutls=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi if test "x$no_libgnutls" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : else if test -f conf.libgnutlstest ; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$LIBGNUTLS_CONFIG" = "no" ; then echo "*** The libgnutls-config script installed by LIBGNUTLS could not be found" echo "*** If LIBGNUTLS was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the LIBGNUTLS_CONFIG environment variable to the" echo "*** full path to libgnutls-config." else if test -f conf.libgnutlstest ; then : else echo "*** Could not run libgnutls test program, checking why..." CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" LIBS="$LIBS $LIBGNUTLS_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { return !!gnutls_check_version(NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBGNUTLS or finding the wrong" echo "*** version of LIBGNUTLS. If it is not finding LIBGNUTLS, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" echo "***" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBGNUTLS was incorrectly installed" echo "*** or that you have moved LIBGNUTLS since it was installed. In the latter case, you" echo "*** may want to edit the libgnutls-config script: $LIBGNUTLS_CONFIG" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi LIBGNUTLS_CFLAGS="" LIBGNUTLS_LIBS="" as_fn_error $? "$LIBGNUTLS_PKG_ERRORS" "$LINENO" 5 fi rm -f conf.libgnutlstest else LIBGNUTLS_CFLAGS=$pkg_cv_LIBGNUTLS_CFLAGS LIBGNUTLS_LIBS=$pkg_cv_LIBGNUTLS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi old_LIBS=$LIBS old_CPPFLAGS=$CPPFLAGS LIBS="$LIBGNUTLS_LIBS" CPPFLAGS="$LIBGNUTLS_CFLAGS" ac_fn_c_check_header_mongrel "$LINENO" "gnutls/gnutls.h" "ac_cv_header_gnutls_gnutls_h" "$ac_includes_default" if test "x$ac_cv_header_gnutls_gnutls_h" = xyes; then : else as_fn_error $? "\"GnuTLS development headers are required to build libprelude\"" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_privkey_import_x509 in -lgnutls" >&5 $as_echo_n "checking for gnutls_privkey_import_x509 in -lgnutls... " >&6; } if ${ac_cv_lib_gnutls_gnutls_privkey_import_x509+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgnutls $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gnutls_privkey_import_x509 (); int main () { return gnutls_privkey_import_x509 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gnutls_gnutls_privkey_import_x509=yes else ac_cv_lib_gnutls_gnutls_privkey_import_x509=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_privkey_import_x509" >&5 $as_echo "$ac_cv_lib_gnutls_gnutls_privkey_import_x509" >&6; } if test "x$ac_cv_lib_gnutls_gnutls_privkey_import_x509" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GNUTLS_PRIVKEY_ABSTRACT /**/ _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_srp_verifier in -lgnutls" >&5 $as_echo_n "checking for gnutls_srp_verifier in -lgnutls... " >&6; } if ${ac_cv_lib_gnutls_gnutls_srp_verifier+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgnutls $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gnutls_srp_verifier (); int main () { return gnutls_srp_verifier (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gnutls_gnutls_srp_verifier=yes else ac_cv_lib_gnutls_gnutls_srp_verifier=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_srp_verifier" >&5 $as_echo "$ac_cv_lib_gnutls_gnutls_srp_verifier" >&6; } if test "x$ac_cv_lib_gnutls_gnutls_srp_verifier" = xyes; then : srp_available=yes else srp_available=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_x509_crt_list_import in -lgnutls" >&5 $as_echo_n "checking for gnutls_x509_crt_list_import in -lgnutls... " >&6; } if ${ac_cv_lib_gnutls_gnutls_x509_crt_list_import+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgnutls $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gnutls_x509_crt_list_import (); int main () { return gnutls_x509_crt_list_import (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gnutls_gnutls_x509_crt_list_import=yes else ac_cv_lib_gnutls_gnutls_x509_crt_list_import=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_x509_crt_list_import" >&5 $as_echo "$ac_cv_lib_gnutls_gnutls_x509_crt_list_import" >&6; } if test "x$ac_cv_lib_gnutls_gnutls_x509_crt_list_import" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GNUTLS_X509_CRT_LIST_IMPORT /**/ _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_priority_init in -lgnutls" >&5 $as_echo_n "checking for gnutls_priority_init in -lgnutls... " >&6; } if ${ac_cv_lib_gnutls_gnutls_priority_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgnutls $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gnutls_priority_init (); int main () { return gnutls_priority_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gnutls_gnutls_priority_init=yes else ac_cv_lib_gnutls_gnutls_priority_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_priority_init" >&5 $as_echo "$ac_cv_lib_gnutls_gnutls_priority_init" >&6; } if test "x$ac_cv_lib_gnutls_gnutls_priority_init" = xyes; then : gnutls_string_priority=yes else gnutls_string_priority=no fi if test x$gnutls_string_priority = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_priority_set in -lgnutls" >&5 $as_echo_n "checking for gnutls_priority_set in -lgnutls... " >&6; } if ${ac_cv_lib_gnutls_gnutls_priority_set+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgnutls $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gnutls_priority_set (); int main () { return gnutls_priority_set (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gnutls_gnutls_priority_set=yes else ac_cv_lib_gnutls_gnutls_priority_set=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_priority_set" >&5 $as_echo "$ac_cv_lib_gnutls_gnutls_priority_set" >&6; } if test "x$ac_cv_lib_gnutls_gnutls_priority_set" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GNUTLS_STRING_PRIORITY /**/ _ACEOF fi fi LIBS=$old_LIBS CPPFLAGS=$old_CPPFLAGS PRELUDE_ADMIN_CFLAGS="$LIBGNUTLS_CFLAGS" PRELUDE_ADMIN_LIBS="$LIBGNUTLS_LIBS" if test x$srp_available = xno; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGNUTLS_EXTRA" >&5 $as_echo_n "checking for LIBGNUTLS_EXTRA... " >&6; } if test -n "$LIBGNUTLS_EXTRA_CFLAGS"; then pkg_cv_LIBGNUTLS_EXTRA_CFLAGS="$LIBGNUTLS_EXTRA_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls-extra >= \$GNUTLS_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "gnutls-extra >= $GNUTLS_MIN_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBGNUTLS_EXTRA_CFLAGS=`$PKG_CONFIG --cflags "gnutls-extra >= $GNUTLS_MIN_VERSION" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBGNUTLS_EXTRA_LIBS"; then pkg_cv_LIBGNUTLS_EXTRA_LIBS="$LIBGNUTLS_EXTRA_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls-extra >= \$GNUTLS_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "gnutls-extra >= $GNUTLS_MIN_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBGNUTLS_EXTRA_LIBS=`$PKG_CONFIG --libs "gnutls-extra >= $GNUTLS_MIN_VERSION" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBGNUTLS_EXTRA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gnutls-extra >= $GNUTLS_MIN_VERSION" 2>&1` else LIBGNUTLS_EXTRA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gnutls-extra >= $GNUTLS_MIN_VERSION" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBGNUTLS_EXTRA_PKG_ERRORS" >&5 # Check whether --with-libgnutls-extra-prefix was given. if test "${with_libgnutls_extra_prefix+set}" = set; then : withval=$with_libgnutls_extra_prefix; libgnutls_extra_config_prefix="$withval" else libgnutls_extra_config_prefix="" fi if test x$libgnutls_extra_config_prefix != x ; then if test x${LIBGNUTLS_EXTRA_CONFIG+set} != xset ; then LIBGNUTLS_EXTRA_CONFIG=$libgnutls_extra_config_prefix/bin/libgnutls-extra-config fi fi # Extract the first word of "libgnutls-extra-config", so it can be a program name with args. set dummy libgnutls-extra-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_LIBGNUTLS_EXTRA_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $LIBGNUTLS_EXTRA_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_LIBGNUTLS_EXTRA_CONFIG="$LIBGNUTLS_EXTRA_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_LIBGNUTLS_EXTRA_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_LIBGNUTLS_EXTRA_CONFIG" && ac_cv_path_LIBGNUTLS_EXTRA_CONFIG="no" ;; esac fi LIBGNUTLS_EXTRA_CONFIG=$ac_cv_path_LIBGNUTLS_EXTRA_CONFIG if test -n "$LIBGNUTLS_EXTRA_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGNUTLS_EXTRA_CONFIG" >&5 $as_echo "$LIBGNUTLS_EXTRA_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi min_libgnutls_version=$GNUTLS_MIN_VERSION { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgnutls - version >= $min_libgnutls_version" >&5 $as_echo_n "checking for libgnutls - version >= $min_libgnutls_version... " >&6; } no_libgnutls="" if test "$LIBGNUTLS_EXTRA_CONFIG" = "no" ; then no_libgnutls=yes else LIBGNUTLS_EXTRA_CFLAGS=`$LIBGNUTLS_EXTRA_CONFIG $libgnutls_extra_config_args --cflags` LIBGNUTLS_EXTRA_LIBS=`$LIBGNUTLS_EXTRA_CONFIG $libgnutls_extra_config_args --libs` libgnutls_extra_config_version=`$LIBGNUTLS_EXTRA_CONFIG $libgnutls_extra_config_args --version` ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $LIBGNUTLS_EXTRA_CFLAGS" LIBS="$LIBS $LIBGNUTLS_EXTRA_LIBS" rm -f conf.libgnutlstest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { system ("touch conf.libgnutlstest"); if( strcmp( gnutls_extra_check_version(NULL), "$libgnutls_extra_config_version" ) ) { printf("\n*** 'libgnutls-extra-config --version' returned %s, but LIBGNUTLS_EXTRA (%s)\n", "$libgnutls_extra_config_version", gnutls_extra_check_version(NULL) ); printf("*** was found! If libgnutls-extra-config was correct, then it is best\n"); printf("*** to remove the old version of LIBGNUTLS_EXTRA. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If libgnutls-extra-config was wrong, set the environment variable LIBGNUTLS_EXTRA_CONFIG\n"); printf("*** to point to the correct copy of libgnutls-extra-config, and remove the file config.cache\n"); printf("*** before re-running configure\n"); } else if ( strcmp(gnutls_extra_check_version(NULL), LIBGNUTLS_EXTRA_VERSION ) ) { printf("\n*** LIBGNUTLS_EXTRA header file (version %s) does not match\n", LIBGNUTLS_EXTRA_VERSION); printf("*** library (version %s). This is may be due to a different version of gnutls\n", gnutls_extra_check_version(NULL) ); printf("*** and gnutls-extra.\n"); } else { if ( gnutls_extra_check_version( "$min_libgnutls_version" ) ) { return 0; } else { printf("no\n*** An old version of LIBGNUTLS_EXTRA (%s) was found.\n", gnutls_extra_check_version(NULL) ); printf("*** You need a version of LIBGNUTLS_EXTRA newer than %s. The latest version of\n", "$min_libgnutls_version" ); printf("*** LIBGNUTLS_EXTRA is always available from ftp://gnutls.hellug.gr/pub/gnutls.\n"); printf("*** \n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the libgnutls-extra-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBGNUTLS_EXTRA, but you can also set the LIBGNUTLS_EXTRA_CONFIG environment to point to the\n"); printf("*** correct copy of libgnutls-extra-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_libgnutls=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi if test "x$no_libgnutls" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } gnutls_extra=yes else if test -f conf.libgnutlstest ; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$LIBGNUTLS_EXTRA_CONFIG" = "no" ; then echo "*** The libgnutls-extra-config script installed by LIBGNUTLS_EXTRA could not be found" echo "*** If LIBGNUTLS_EXTRA was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the LIBGNUTLS_EXTRA_CONFIG environment variable to the" echo "*** full path to libgnutls-extra-config." else if test -f conf.libgnutlstest ; then : else echo "*** Could not run libgnutls test program, checking why..." CFLAGS="$CFLAGS $LIBGNUTLS_EXTRA_CFLAGS" LIBS="$LIBS $LIBGNUTLS_EXTRA_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { return !!gnutls_extra_check_version(NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBGNUTLS_EXTRA or finding the wrong" echo "*** version of LIBGNUTLS_EXTRA. If it is not finding LIBGNUTLS_EXTRA, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" echo "***" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBGNUTLS_EXTRA was incorrectly installed" echo "*** or that you have moved LIBGNUTLS_EXTRA since it was installed. In the latter case, you" echo "*** may want to edit the libgnutls-extra-config script: $LIBGNUTLS_EXTRA_CONFIG" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi LIBGNUTLS_EXTRA_CFLAGS="" LIBGNUTLS_EXTRA_LIBS="" gnutls_extra=no fi rm -f conf.libgnutlstest elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # Check whether --with-libgnutls-extra-prefix was given. if test "${with_libgnutls_extra_prefix+set}" = set; then : withval=$with_libgnutls_extra_prefix; libgnutls_extra_config_prefix="$withval" else libgnutls_extra_config_prefix="" fi if test x$libgnutls_extra_config_prefix != x ; then if test x${LIBGNUTLS_EXTRA_CONFIG+set} != xset ; then LIBGNUTLS_EXTRA_CONFIG=$libgnutls_extra_config_prefix/bin/libgnutls-extra-config fi fi # Extract the first word of "libgnutls-extra-config", so it can be a program name with args. set dummy libgnutls-extra-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_LIBGNUTLS_EXTRA_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $LIBGNUTLS_EXTRA_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_LIBGNUTLS_EXTRA_CONFIG="$LIBGNUTLS_EXTRA_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_LIBGNUTLS_EXTRA_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_LIBGNUTLS_EXTRA_CONFIG" && ac_cv_path_LIBGNUTLS_EXTRA_CONFIG="no" ;; esac fi LIBGNUTLS_EXTRA_CONFIG=$ac_cv_path_LIBGNUTLS_EXTRA_CONFIG if test -n "$LIBGNUTLS_EXTRA_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGNUTLS_EXTRA_CONFIG" >&5 $as_echo "$LIBGNUTLS_EXTRA_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi min_libgnutls_version=$GNUTLS_MIN_VERSION { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgnutls - version >= $min_libgnutls_version" >&5 $as_echo_n "checking for libgnutls - version >= $min_libgnutls_version... " >&6; } no_libgnutls="" if test "$LIBGNUTLS_EXTRA_CONFIG" = "no" ; then no_libgnutls=yes else LIBGNUTLS_EXTRA_CFLAGS=`$LIBGNUTLS_EXTRA_CONFIG $libgnutls_extra_config_args --cflags` LIBGNUTLS_EXTRA_LIBS=`$LIBGNUTLS_EXTRA_CONFIG $libgnutls_extra_config_args --libs` libgnutls_extra_config_version=`$LIBGNUTLS_EXTRA_CONFIG $libgnutls_extra_config_args --version` ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $LIBGNUTLS_EXTRA_CFLAGS" LIBS="$LIBS $LIBGNUTLS_EXTRA_LIBS" rm -f conf.libgnutlstest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { system ("touch conf.libgnutlstest"); if( strcmp( gnutls_extra_check_version(NULL), "$libgnutls_extra_config_version" ) ) { printf("\n*** 'libgnutls-extra-config --version' returned %s, but LIBGNUTLS_EXTRA (%s)\n", "$libgnutls_extra_config_version", gnutls_extra_check_version(NULL) ); printf("*** was found! If libgnutls-extra-config was correct, then it is best\n"); printf("*** to remove the old version of LIBGNUTLS_EXTRA. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If libgnutls-extra-config was wrong, set the environment variable LIBGNUTLS_EXTRA_CONFIG\n"); printf("*** to point to the correct copy of libgnutls-extra-config, and remove the file config.cache\n"); printf("*** before re-running configure\n"); } else if ( strcmp(gnutls_extra_check_version(NULL), LIBGNUTLS_EXTRA_VERSION ) ) { printf("\n*** LIBGNUTLS_EXTRA header file (version %s) does not match\n", LIBGNUTLS_EXTRA_VERSION); printf("*** library (version %s). This is may be due to a different version of gnutls\n", gnutls_extra_check_version(NULL) ); printf("*** and gnutls-extra.\n"); } else { if ( gnutls_extra_check_version( "$min_libgnutls_version" ) ) { return 0; } else { printf("no\n*** An old version of LIBGNUTLS_EXTRA (%s) was found.\n", gnutls_extra_check_version(NULL) ); printf("*** You need a version of LIBGNUTLS_EXTRA newer than %s. The latest version of\n", "$min_libgnutls_version" ); printf("*** LIBGNUTLS_EXTRA is always available from ftp://gnutls.hellug.gr/pub/gnutls.\n"); printf("*** \n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the libgnutls-extra-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBGNUTLS_EXTRA, but you can also set the LIBGNUTLS_EXTRA_CONFIG environment to point to the\n"); printf("*** correct copy of libgnutls-extra-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_libgnutls=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi if test "x$no_libgnutls" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } gnutls_extra=yes else if test -f conf.libgnutlstest ; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$LIBGNUTLS_EXTRA_CONFIG" = "no" ; then echo "*** The libgnutls-extra-config script installed by LIBGNUTLS_EXTRA could not be found" echo "*** If LIBGNUTLS_EXTRA was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the LIBGNUTLS_EXTRA_CONFIG environment variable to the" echo "*** full path to libgnutls-extra-config." else if test -f conf.libgnutlstest ; then : else echo "*** Could not run libgnutls test program, checking why..." CFLAGS="$CFLAGS $LIBGNUTLS_EXTRA_CFLAGS" LIBS="$LIBS $LIBGNUTLS_EXTRA_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { return !!gnutls_extra_check_version(NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBGNUTLS_EXTRA or finding the wrong" echo "*** version of LIBGNUTLS_EXTRA. If it is not finding LIBGNUTLS_EXTRA, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" echo "***" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBGNUTLS_EXTRA was incorrectly installed" echo "*** or that you have moved LIBGNUTLS_EXTRA since it was installed. In the latter case, you" echo "*** may want to edit the libgnutls-extra-config script: $LIBGNUTLS_EXTRA_CONFIG" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi LIBGNUTLS_EXTRA_CFLAGS="" LIBGNUTLS_EXTRA_LIBS="" gnutls_extra=no fi rm -f conf.libgnutlstest else LIBGNUTLS_EXTRA_CFLAGS=$pkg_cv_LIBGNUTLS_EXTRA_CFLAGS LIBGNUTLS_EXTRA_LIBS=$pkg_cv_LIBGNUTLS_EXTRA_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } gnutls_extra=yes fi if test x$gnutls_extra = xyes; then old_LIBS=$LIBS LIBS="$LIBGNUTLS_EXTRA_LIBS" old_CPPFLAGS=$CPPFLAGS CPPFLAGS="$LIBGNUTLS_EXTRA_CFLAGS" ac_fn_c_check_header_mongrel "$LINENO" "gnutls/extra.h" "ac_cv_header_gnutls_extra_h" "$ac_includes_default" if test "x$ac_cv_header_gnutls_extra_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_srp_verifier in -lgnutls-extra" >&5 $as_echo_n "checking for gnutls_srp_verifier in -lgnutls-extra... " >&6; } if ${ac_cv_lib_gnutls_extra_gnutls_srp_verifier+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgnutls-extra $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gnutls_srp_verifier (); int main () { return gnutls_srp_verifier (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gnutls_extra_gnutls_srp_verifier=yes else ac_cv_lib_gnutls_extra_gnutls_srp_verifier=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_extra_gnutls_srp_verifier" >&5 $as_echo "$ac_cv_lib_gnutls_extra_gnutls_srp_verifier" >&6; } if test "x$ac_cv_lib_gnutls_extra_gnutls_srp_verifier" = xyes; then : srp_available=yes else srp_available=no fi else srp_available=no fi if test x$srp_available = xyes; then PRELUDE_ADMIN_CFLAGS="$PRELUDE_ADMIN_CFLAGS $LIBGNUTLS_EXTRA_CFLAGS" PRELUDE_ADMIN_LIBS="$LIBGNUTLS_LIBS $LIBGNUTLS_EXTRA_LIBS" cat >>confdefs.h <<_ACEOF #define NEED_GNUTLS_EXTRA /**/ _ACEOF fi LIBS=$old_LIBS CPPFLAGS=$old_CPPFLAGS fi fi if test x$srp_available = xyes; then cat >>confdefs.h <<_ACEOF #define GNUTLS_SRP_ENABLED /**/ _ACEOF fi LIBPRELUDE_LIBS="$LIBPRELUDE_LIBS $LIBGNUTLS_LIBS" # Extract the first word of "pcre-config", so it can be a program name with args. set dummy pcre-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PCRE_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PCRE_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PCRE_CONFIG="$PCRE_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PCRE_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PCRE_CONFIG" && ac_cv_path_PCRE_CONFIG="no" ;; esac fi PCRE_CONFIG=$ac_cv_path_PCRE_CONFIG if test -n "$PCRE_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PCRE_CONFIG" >&5 $as_echo "$PCRE_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$PCRE_CONFIG != xno; then cat >>confdefs.h <<_ACEOF #define HAVE_PCRE /**/ _ACEOF PCRE_LIBS=`$PCRE_CONFIG --libs` PCRE_CFLAGS=`$PCRE_CONFIG --cflags` LIBPRELUDE_CFLAGS="$LIBPRELUDE_CFLAGS $PCRE_CFLAGS" LIBPRELUDE_LIBS="$LIBPRELUDE_LIBS $PCRE_LIBS" fi ac_fn_c_check_type "$LINENO" "struct sockaddr_in6" "ac_cv_type_struct_sockaddr_in6" " #include #include #include " if test "x$ac_cv_type_struct_sockaddr_in6" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_IN6 1 _ACEOF have_ipv6_type=yes fi ac_fn_c_check_decl "$LINENO" "AF_INET6" "ac_cv_have_decl_AF_INET6" " #include #include #include " if test "x$ac_cv_have_decl_AF_INET6" = xyes; then : have_ipv6_def=yes fi if test x$have_ipv6_type = xyes && test x$have_ipv6_def = xyes; then cat >>confdefs.h <<_ACEOF #define HAVE_IPV6 /**/ _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether variadic macros are supported" >&5 $as_echo_n "checking whether variadic macros are supported... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #define print_me(...) printf(__VA_ARGS__) int main () { print_me("test __VA_ARGS__: %s, %d, %d", "a", 0, 1); return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_variadic_macros=yes else have_variadic_macros=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test x$have_variadic_macros = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<_ACEOF #define HAVE_VARIADIC_MACROS 1 _ACEOF else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if pointers to integers require aligned access" >&5 $as_echo_n "checking if pointers to integers require aligned access... " >&6; } if ${ax_cv_have_aligned_access_required+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ax_cv_have_aligned_access_required=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main() { char* string = malloc(40); int i; for (i=0; i < 40; i++) string[[i]] = i; { void* s = string; int* p = s+1; int* q = s+2; if (*p == *q) { return 1; } } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ax_cv_have_aligned_access_required=yes else ax_cv_have_aligned_access_required=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_aligned_access_required" >&5 $as_echo "$ax_cv_have_aligned_access_required" >&6; } if test "$ax_cv_have_aligned_access_required" = yes ; then $as_echo "#define HAVE_ALIGNED_ACCESS_REQUIRED 1" >>confdefs.h fi if test "$ax_cv_have_aligned_access_required" = yes; then cat >>confdefs.h <<_ACEOF #define PRELUDE_ALIGNED_ACCESS /**/ _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an implementation of va_copy()" >&5 $as_echo_n "checking for an implementation of va_copy()... " >&6; } if ${prelude_cv_va_copy+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include void f (int i, ...) { va_list args1, args2; va_start (args1, i); va_copy (args2, args1); if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : prelude_cv_va_copy=yes else prelude_cv_va_copy=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $prelude_cv_va_copy" >&5 $as_echo "$prelude_cv_va_copy" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an implementation of __va_copy()" >&5 $as_echo_n "checking for an implementation of __va_copy()... " >&6; } if ${prelude_cv___va_copy+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include void f (int i, ...) { va_list args1, args2; va_start (args1, i); __va_copy (args2, args1); if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : prelude_cv___va_copy=yes else prelude_cv___va_copy=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $prelude_cv___va_copy" >&5 $as_echo "$prelude_cv___va_copy" >&6; } if test "x$prelude_cv_va_copy" = "xyes"; then g_va_copy_func=va_copy else if test "x$prelude_cv___va_copy" = "xyes"; then g_va_copy_func=__va_copy fi fi if test -n "$g_va_copy_func"; then cat >>confdefs.h <<_ACEOF #define PRELUDE_VA_COPY $g_va_copy_func _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether va_lists can be copied by value" >&5 $as_echo_n "checking whether va_lists can be copied by value... " >&6; } if ${prelude_cv_va_val_copy+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : prelude_cv_va_val_copy=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include void f (int i, ...) { va_list args1, args2; va_start (args1, i); args2 = args1; if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : prelude_cv_va_val_copy=yes else prelude_cv_va_val_copy=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $prelude_cv_va_val_copy" >&5 $as_echo "$prelude_cv_va_val_copy" >&6; } if test "x$prelude_cv_va_val_copy" = "xno"; then $as_echo "#define PRELUDE_VA_COPY_AS_ARRAY 1" >>confdefs.h fi # Check whether --with-swig was given. if test "${with_swig+set}" = set; then : withval=$with_swig; swig_required=true; if test x$withval = xyes; then with_swig="swig"; fi else with_swig="no" fi SWIG="no" if test x$with_swig != xno; then # Extract the first word of "`basename $with_swig`", so it can be a program name with args. set dummy `basename $with_swig`; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_SWIG+:} false; then : $as_echo_n "(cached) " >&6 else case $SWIG in [\\/]* | ?:[\\/]*) ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="`dirname $with_swig`:$PATH" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_SWIG" && ac_cv_path_SWIG="no" ;; esac fi SWIG=$ac_cv_path_SWIG if test -n "$SWIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5 $as_echo "$SWIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$SWIG = xno; then if test x$swig_required = xtrue; then as_fn_error $? "Could not find $with_swig binary" "$LINENO" 5 fi fi fi if test x$SWIG != xno; then HAVE_SWIG_TRUE= HAVE_SWIG_FALSE='#' else HAVE_SWIG_TRUE='#' HAVE_SWIG_FALSE= fi # Check whether --with-perl was given. if test "${with_perl+set}" = set; then : withval=$with_perl; perl_required=true; if test x$withval = xyes; then with_perl="perl"; fi else with_perl="perl" fi if test x$with_perl != xno; then # Extract the first word of "`basename $with_perl`", so it can be a program name with args. set dummy `basename $with_perl`; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="`dirname $with_perl`:$PATH" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no" ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$PERL = xno; then if test x$perl_required = xtrue; then as_fn_error $? "Could not find $with_perl binary" "$LINENO" 5 fi with_perl=no else PERL_CFLAGS="-I`$PERL -e 'use Config; print $Config{archlib}'`/CORE" old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $PERL_CFLAGS" ac_fn_c_check_header_mongrel "$LINENO" "EXTERN.h" "ac_cv_header_EXTERN_h" "$ac_includes_default" if test "x$ac_cv_header_EXTERN_h" = xyes; then : ac_fn_c_check_header_compile "$LINENO" "perl.h" "ac_cv_header_perl_h" "#include " if test "x$ac_cv_header_perl_h" = xyes; then : with_perl=yes else with_perl=no fi else with_perl=no fi CPPFLAGS="$old_CPPFLAGS" fi fi if test x$with_perl = xyes; then HAVE_PERL_TRUE= HAVE_PERL_FALSE='#' else HAVE_PERL_TRUE='#' HAVE_PERL_FALSE= fi PERL_INSTALLDIRS="site" # Check whether --with-perl-installdirs was given. if test "${with_perl_installdirs+set}" = set; then : withval=$with_perl_installdirs; PERL_INSTALLDIRS="$withval" fi if test x$PERL_INSTALLDIRS != xsite && test x$PERL_INSTALLDIRS != xvendor; then as_fn_error $? "Invalid value for --with-perl-installdirs: only \"site\" or \"vendor\" supported." "$LINENO" 5 fi PERL_EXTRA_PARAMS="INSTALLDIRS=$PERL_INSTALLDIRS" # Check whether --with-python2 was given. if test "${with_python2+set}" = set; then : withval=$with_python2; python2_required=true; if test x$withval = xyes; then with_python2="python2"; fi else with_python2="python2" fi if test x$with_python2 != xno; then for ac_prog in $with_python2 "python2.7" "python2.6" "python2.5" "python2.4" "python2.3" "python2.2" "python2.1" "python2.0" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PYTHON2+:} false; then : $as_echo_n "(cached) " >&6 else case $PYTHON2 in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON2="$PYTHON2" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="`dirname $with_python2`:$PATH" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PYTHON2="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PYTHON2=$ac_cv_path_PYTHON2 if test -n "$PYTHON2"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON2" >&5 $as_echo "$PYTHON2" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$PYTHON2" && break done test -n "$PYTHON2" || PYTHON2="no" if test x$PYTHON2 = xno; then if test x$python2_required = xtrue; then as_fn_error $? "Could not find $with_python2 binary" "$LINENO" 5 fi with_python2=no else old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-I`$PYTHON2 -c 'from distutils.sysconfig import get_python_inc; print(get_python_inc())'`" ac_fn_c_check_header_mongrel "$LINENO" "Python.h" "ac_cv_header_Python_h" "$ac_includes_default" if test "x$ac_cv_header_Python_h" = xyes; then : with_python2=yes else with_python2=no fi CPPFLAGS="$old_CPPFLAGS" for ax_var in Python.h do as_ax_Var=`$as_echo "ac_cv_header_${ax_var}" | $as_tr_sh` { eval $as_ax_Var=; unset $as_ax_Var;} done fi fi if test x$with_python2 = xyes; then HAVE_PYTHON2_TRUE= HAVE_PYTHON2_FALSE='#' else HAVE_PYTHON2_TRUE='#' HAVE_PYTHON2_FALSE= fi # Check whether --with-python3 was given. if test "${with_python3+set}" = set; then : withval=$with_python3; python3_required=true; if test x$withval = xyes; then with_python3="python3"; fi else with_python3="python3" fi if test x$with_python3 != xno; then for ac_prog in $with_python3 "python3.8" "python3.7" "python3.6" "python3.5" "python3.4" "python3.3" "python3.2" "python3.1" "python3.0" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PYTHON3+:} false; then : $as_echo_n "(cached) " >&6 else case $PYTHON3 in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON3="$PYTHON3" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="`dirname $with_python3`:$PATH" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PYTHON3="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PYTHON3=$ac_cv_path_PYTHON3 if test -n "$PYTHON3"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON3" >&5 $as_echo "$PYTHON3" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$PYTHON3" && break done test -n "$PYTHON3" || PYTHON3="no" if test x$PYTHON3 = xno; then if test x$python3_required = xtrue; then as_fn_error $? "Could not find $with_python3 binary" "$LINENO" 5 fi with_python3=no else old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-I`$PYTHON3 -c 'from distutils.sysconfig import get_python_inc; print(get_python_inc())'`" ac_fn_c_check_header_mongrel "$LINENO" "Python.h" "ac_cv_header_Python_h" "$ac_includes_default" if test "x$ac_cv_header_Python_h" = xyes; then : with_python3=yes else with_python3=no fi CPPFLAGS="$old_CPPFLAGS" fi fi if test x$with_python3 = xyes; then HAVE_PYTHON3_TRUE= HAVE_PYTHON3_FALSE='#' else HAVE_PYTHON3_TRUE='#' HAVE_PYTHON3_FALSE= fi if test x$with_python2 = xyes -o x$with_python3 = xyes; then HAVE_PYTHON_TRUE= HAVE_PYTHON_FALSE='#' else HAVE_PYTHON_TRUE='#' HAVE_PYTHON_FALSE= fi # Check whether --with-ruby was given. if test "${with_ruby+set}" = set; then : withval=$with_ruby; ruby_required=yes; if test x$withval = xyes; then with_ruby="ruby"; fi else with_ruby="ruby" fi if test x$with_ruby != xno; then # Find any Ruby interpreter. if test -z "$RUBY"; then for ac_prog in ruby ruby1.8 ruby1.7 ruby1.6 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_RUBY+:} false; then : $as_echo_n "(cached) " >&6 else case $RUBY in [\\/]* | ?:[\\/]*) ac_cv_path_RUBY="$RUBY" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="`dirname $with_ruby`:$PATH" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_RUBY="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi RUBY=$ac_cv_path_RUBY if test -n "$RUBY"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUBY" >&5 $as_echo "$RUBY" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$RUBY" && break done test -n "$RUBY" || RUBY=":" fi am_display_RUBY=ruby if test "$RUBY" = :; then with_ruby=no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_RUBY version" >&5 $as_echo_n "checking for $am_display_RUBY version... " >&6; } if ${am_cv_ruby_version+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_ruby_version=`$RUBY -e "print RUBY_VERSION"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ruby_version" >&5 $as_echo "$am_cv_ruby_version" >&6; } RUBY_VERSION=$am_cv_ruby_version RUBY_PREFIX='${prefix}' RUBY_EXEC_PREFIX='${exec_prefix}' { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_RUBY platform" >&5 $as_echo_n "checking for $am_display_RUBY platform... " >&6; } if ${am_cv_ruby_platform+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_ruby_platform=`$RUBY -e "print RUBY_PLATFORM"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ruby_platform" >&5 $as_echo "$am_cv_ruby_platform" >&6; } RUBY_PLATFORM=$am_cv_ruby_platform { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_RUBY script directory" >&5 $as_echo_n "checking for $am_display_RUBY script directory... " >&6; } if ${am_cv_ruby_rubydir+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_ruby_rubydir=`$RUBY -rrbconfig -e "drive = File::PATH_SEPARATOR == ';' ? /\A\w:/ : /\A/; prefix = Regexp.new('\\A' + Regexp.quote(RbConfig::CONFIG['prefix'])); \\$prefix = RbConfig::CONFIG['prefix'].sub(drive, ''); \\$archdir = RbConfig::CONFIG['archdir'].sub(prefix, '\\$(prefix)').sub(drive, ''); print \\$archdir;"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ruby_rubydir" >&5 $as_echo "$am_cv_ruby_rubydir" >&6; } rubydir=$am_cv_ruby_rubydir pkgrubydir=\${rubydir}/$PACKAGE { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_RUBY extension module directory" >&5 $as_echo_n "checking for $am_display_RUBY extension module directory... " >&6; } if ${am_cv_ruby_rbexecdir+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_ruby_rbexecdir=`$RUBY -rrbconfig -e "drive = File::PATH_SEPARATOR == ';' ? /\A\w:/ : /\A/; prefix = Regexp.new('\\A' + Regexp.quote(RbConfig::CONFIG['prefix'])); \\$prefix = RbConfig::CONFIG['prefix'].sub(drive, ''); \\$sitearchdir = RbConfig::CONFIG['sitearchdir'].sub(prefix, '\\$(prefix)').sub(drive, ''); print \\$sitearchdir;" 2>/dev/null || echo "${RUBY_EXEC_PREFIX}/local/lib/site_ruby/${RUBY_VERSION}/${RUBY_PLATFORM}"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ruby_rbexecdir" >&5 $as_echo "$am_cv_ruby_rbexecdir" >&6; } rbexecdir=$am_cv_ruby_rbexecdir RUBY_VER=`$RUBY -rrbconfig -e "print RbConfig::CONFIG['ruby_pc']" | sed 's/.pc//g'` pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RUBY_PKG_CONFIG" >&5 $as_echo_n "checking for RUBY_PKG_CONFIG... " >&6; } if test -n "$RUBY_PKG_CONFIG_CFLAGS"; then pkg_cv_RUBY_PKG_CONFIG_CFLAGS="$RUBY_PKG_CONFIG_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$RUBY_VER\""; } >&5 ($PKG_CONFIG --exists --print-errors "$RUBY_VER") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_RUBY_PKG_CONFIG_CFLAGS=`$PKG_CONFIG --cflags "$RUBY_VER" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$RUBY_PKG_CONFIG_LIBS"; then pkg_cv_RUBY_PKG_CONFIG_LIBS="$RUBY_PKG_CONFIG_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$RUBY_VER\""; } >&5 ($PKG_CONFIG --exists --print-errors "$RUBY_VER") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_RUBY_PKG_CONFIG_LIBS=`$PKG_CONFIG --libs "$RUBY_VER" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then RUBY_PKG_CONFIG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$RUBY_VER" 2>&1` else RUBY_PKG_CONFIG_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$RUBY_VER" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$RUBY_PKG_CONFIG_PKG_ERRORS" >&5 RUBY_INCLUDES=`$RUBY -r rbconfig -e ' if RbConfig::CONFIG["archdir"] then print " -I" + RbConfig::CONFIG["archdir"] end if RbConfig::CONFIG["rubyhdrdir"] then print " -I" + RbConfig::CONFIG["rubyhdrdir"] end if RbConfig::CONFIG["rubyhdrdir"] and RbConfig::CONFIG["sitearch"] then print " -I" + RbConfig::CONFIG["rubyhdrdir"] + "/" + RbConfig::CONFIG["sitearch"] end'` elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } RUBY_INCLUDES=`$RUBY -r rbconfig -e ' if RbConfig::CONFIG["archdir"] then print " -I" + RbConfig::CONFIG["archdir"] end if RbConfig::CONFIG["rubyhdrdir"] then print " -I" + RbConfig::CONFIG["rubyhdrdir"] end if RbConfig::CONFIG["rubyhdrdir"] and RbConfig::CONFIG["sitearch"] then print " -I" + RbConfig::CONFIG["rubyhdrdir"] + "/" + RbConfig::CONFIG["sitearch"] end'` else RUBY_PKG_CONFIG_CFLAGS=$pkg_cv_RUBY_PKG_CONFIG_CFLAGS RUBY_PKG_CONFIG_LIBS=$pkg_cv_RUBY_PKG_CONFIG_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } RUBY_INCLUDES=`pkg-config $RUBY_VER --cflags` fi pkgrbexecdir=\${rbexecdir}/$PACKAGE with_ruby=yes fi RUBY_ARCHDIR=`$RUBY -e 'require "rbconfig.rb"; puts RbConfig::expand("\$(archdir)")'` RUBY_LIBRUBYARG=`$RUBY -e 'require "rbconfig.rb"; puts RbConfig::expand("\$(LIBRUBYARG)")'` RUBY_LIBS="-L$RUBY_ARCHDIR $RUBY_LIBRUBYARG" RUBY_CCFLAGS=`$RUBY -rrbconfig -e "print RbConfig::CONFIG['CFLAGS']"` old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$RUBY_INCLUDES" ac_fn_c_check_header_mongrel "$LINENO" "ruby.h" "ac_cv_header_ruby_h" "$ac_includes_default" if test "x$ac_cv_header_ruby_h" = xyes; then : with_ruby=yes else with_ruby=no fi CPPFLAGS="$old_CPPFLAGS" if test x$with_ruby = xno && test x$ruby_required = xyes; then as_fn_error $? "Could not find ruby" "$LINENO" 5 fi fi if test x$with_ruby = xyes; then HAVE_RUBY_TRUE= HAVE_RUBY_FALSE='#' else HAVE_RUBY_TRUE='#' HAVE_RUBY_FALSE= fi # Check whether --with-lua was given. if test "${with_lua+set}" = set; then : withval=$with_lua; lua_required=true; if test x$withval = xyes; then with_lua="lua-config"; fi else with_lua="lua-config" fi if test x$with_lua != xno; then lua_pkg_found=0 pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 $as_echo_n "checking for LUA... " >&6; } if test -n "$LUA_CFLAGS"; then pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua >= 5.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "lua >= 5.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LUA_CFLAGS=`$PKG_CONFIG --cflags "lua >= 5.1" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LUA_LIBS"; then pkg_cv_LUA_LIBS="$LUA_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua >= 5.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "lua >= 5.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LUA_LIBS=`$PKG_CONFIG --libs "lua >= 5.1" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "lua >= 5.1" 2>&1` else LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "lua >= 5.1" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LUA_PKG_ERRORS" >&5 : elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } : else LUA_CFLAGS=$pkg_cv_LUA_CFLAGS LUA_LIBS=$pkg_cv_LUA_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_LUA 1" >>confdefs.h $as_echo "#define HAVE_LUA_H 1" >>confdefs.h lua_pkg_found=1 fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 $as_echo_n "checking for LUA... " >&6; } if test -n "$LUA_CFLAGS"; then pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua5.1 >= 5.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "lua5.1 >= 5.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LUA_CFLAGS=`$PKG_CONFIG --cflags "lua5.1 >= 5.1" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LUA_LIBS"; then pkg_cv_LUA_LIBS="$LUA_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua5.1 >= 5.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "lua5.1 >= 5.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LUA_LIBS=`$PKG_CONFIG --libs "lua5.1 >= 5.1" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "lua5.1 >= 5.1" 2>&1` else LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "lua5.1 >= 5.1" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LUA_PKG_ERRORS" >&5 : elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } : else LUA_CFLAGS=$pkg_cv_LUA_CFLAGS LUA_LIBS=$pkg_cv_LUA_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_LUA 1" >>confdefs.h $as_echo "#define HAVE_LUA_H 1" >>confdefs.h lua_pkg_found=1 fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LUA" >&5 $as_echo_n "checking for LUA... " >&6; } if test -n "$LUA_CFLAGS"; then pkg_cv_LUA_CFLAGS="$LUA_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua5.2 >= 5.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "lua5.2 >= 5.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LUA_CFLAGS=`$PKG_CONFIG --cflags "lua5.2 >= 5.1" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LUA_LIBS"; then pkg_cv_LUA_LIBS="$LUA_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lua5.2 >= 5.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "lua5.2 >= 5.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LUA_LIBS=`$PKG_CONFIG --libs "lua5.2 >= 5.1" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LUA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "lua5.2 >= 5.1" 2>&1` else LUA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "lua5.2 >= 5.1" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LUA_PKG_ERRORS" >&5 : elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } : else LUA_CFLAGS=$pkg_cv_LUA_CFLAGS LUA_LIBS=$pkg_cv_LUA_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_LUA 1" >>confdefs.h $as_echo "#define HAVE_LUA_H 1" >>confdefs.h lua_pkg_found=1 fi if test x$lua_pkg_found = x0; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** lua >= 5.1 not found" >&5 $as_echo "$as_me: WARNING: *** lua >= 5.1 not found" >&2;} fi if test x$lua_pkg_found = x1; then old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$LUA_CFLAGS" for ac_header in lua.h lauxlib.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF with_lua=yes else with_lua=no; break fi done CPPFLAGS="$old_CPPFLAGS" LUA_VERSION=$(lua -e "print(string.sub(_VERSION, 5))") else # Extract the first word of "`basename $with_lua`", so it can be a program name with args. set dummy `basename $with_lua`; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_LUA_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $LUA_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_LUA_CONFIG="$LUA_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="`dirname $with_lua`:$PATH" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_LUA_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_LUA_CONFIG" && ac_cv_path_LUA_CONFIG="no" ;; esac fi LUA_CONFIG=$ac_cv_path_LUA_CONFIG if test -n "$LUA_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LUA_CONFIG" >&5 $as_echo "$LUA_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$LUA_CONFIG = xno; then if test x$lua_required = xtrue; then as_fn_error $? "Could not find $with_lua binary" "$LINENO" 5 fi with_lua=no else LUA_CFLAGS=`$LUA_CONFIG --include --vmonly` LUA_LIBS=`$LUA_CONFIG --libs --vmonly` old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$LUA_CFLAGS" for ac_header in lua.h lauxlib.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF with_lua=yes else with_lua=no; break fi done CPPFLAGS="$old_CPPFLAGS" LUA_VERSION=$(lua -e "print(string.sub(_VERSION, 5))") fi fi fi if test x$with_lua = xyes; then HAVE_LUA_TRUE= HAVE_LUA_FALSE='#' else HAVE_LUA_TRUE='#' HAVE_LUA_FALSE= fi # Check whether --enable-easy-bindings was given. if test "${enable_easy_bindings+set}" = set; then : enableval=$enable_easy_bindings; enable_easy_bindings=$enableval else enable_easy_bindings="yes" fi if test x$enable_easy_bindings = xyes; then HAVE_EASY_BINDINGS_TRUE= HAVE_EASY_BINDINGS_FALSE='#' else HAVE_EASY_BINDINGS_TRUE='#' HAVE_EASY_BINDINGS_FALSE= fi if test x$enable_easy_bindings = xyes; then # Extract the first word of "$CXX", so it can be a program name with args. set dummy $CXX; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_HAVE_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_CXX"; then ac_cv_prog_HAVE_CXX="$HAVE_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_CXX="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_CXX" && ac_cv_prog_HAVE_CXX="no" fi fi HAVE_CXX=$ac_cv_prog_HAVE_CXX if test -n "$HAVE_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_CXX" >&5 $as_echo "$HAVE_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$HAVE_CXX != xyes; then as_fn_error $? "Easybindings require a C++ compiler, but none were found." "$LINENO" 5 fi fi # Check whether --with-valgrind was given. if test "${with_valgrind+set}" = set; then : withval=$with_valgrind; valgrind_required=true; if test x$withval = xyes; then with_valgrind="valgrind"; fi else with_valgrind="valgrind" fi if test x$with_valgrind != xno; then # Extract the first word of "`basename $with_valgrind`", so it can be a program name with args. set dummy `basename $with_valgrind`; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_VALGRIND+:} false; then : $as_echo_n "(cached) " >&6 else case $VALGRIND in [\\/]* | ?:[\\/]*) ac_cv_path_VALGRIND="$VALGRIND" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="`dirname $with_valgrind`:$PATH" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_VALGRIND="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_VALGRIND" && ac_cv_path_VALGRIND="no" ;; esac fi VALGRIND=$ac_cv_path_VALGRIND if test -n "$VALGRIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VALGRIND" >&5 $as_echo "$VALGRIND" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$VALGRIND = xno; then if test x$valgrind_required = xtrue; then as_fn_error $? "Could not find $with_valgrind binary" "$LINENO" 5 fi with_valgrind=no else with_valgrind=yes fi fi if test x$with_valgrind = xyes; then HAVE_VALGRIND_TRUE= HAVE_VALGRIND_FALSE='#' else HAVE_VALGRIND_TRUE='#' HAVE_VALGRIND_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi ac_fn_c_check_type "$LINENO" "uid_t" "ac_cv_type_uid_t" "$ac_includes_default" if test "x$ac_cv_type_uid_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UID_T 1 _ACEOF fi ac_fn_c_check_type "$LINENO" "gid_t" "ac_cv_type_gid_t" "$ac_includes_default" if test "x$ac_cv_type_gid_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GID_T 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5 $as_echo_n "checking for unsigned long long int... " >&6; } if ${ac_cv_type_unsigned_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_type_unsigned_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* For now, do not test the preprocessor; as of 2007 there are too many implementations with broken preprocessors. Perhaps this can be revisited in 2012. In the meantime, code should not expect #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63; int main () { /* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else ac_cv_type_unsigned_long_long_int=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 $as_echo "$ac_cv_type_unsigned_long_long_int" >&6; } if test $ac_cv_type_unsigned_long_long_int = yes; then $as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 $as_echo_n "checking for long long int... " >&6; } if ${ac_cv_type_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_type_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_long_long_int = yes; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef LLONG_MAX # define HALF \ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) # define LLONG_MAX (HALF - 1 + HALF) #endif int main () { long long int n = 1; int i; for (i = 0; ; i++) { long long int m = n << i; if (m >> i != n) return 1; if (LLONG_MAX / 2 < m) break; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_type_long_long_int=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 $as_echo "$ac_cv_type_long_long_int" >&6; } if test $ac_cv_type_long_long_int = yes; then $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : enableval=$enable_largefile; fi if test "$enable_largefile" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext CC="$CC -n32" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 $as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=64; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_file_offset_bits=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 $as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF ;; esac rm -rf conftest* if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=1; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_large_files=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 $as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF ;; esac rm -rf conftest* fi $as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h fi LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ GNULIB_SOCKET=0; GNULIB_CONNECT=0; GNULIB_ACCEPT=0; GNULIB_BIND=0; GNULIB_GETPEERNAME=0; GNULIB_GETSOCKNAME=0; GNULIB_GETSOCKOPT=0; GNULIB_LISTEN=0; GNULIB_RECV=0; GNULIB_SEND=0; GNULIB_RECVFROM=0; GNULIB_SENDTO=0; GNULIB_SETSOCKOPT=0; GNULIB_SHUTDOWN=0; GNULIB_ACCEPT4=0; HAVE_STRUCT_SOCKADDR_STORAGE=1; HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; HAVE_SA_FAMILY_T=1; HAVE_ACCEPT4=1; for ac_header in $gl_header_list do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done : if test $ac_cv_header_sys_socket_h = no; then for ac_header in ws2tcpip.h do ac_fn_c_check_header_mongrel "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default" if test "x$ac_cv_header_ws2tcpip_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WS2TCPIP_H 1 _ACEOF fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5 $as_echo_n "checking whether the preprocessor supports include_next... " >&6; } if ${gl_cv_have_include_next+:} false; then : $as_echo_n "(cached) " >&6 else rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 cat < conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd1b/conftest.h #define DEFINED_IN_CONFTESTD1 #include #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd2/conftest.h #ifndef DEFINED_IN_CONFTESTD1 #error "include_next test doesn't work" #endif #define DEFINED_IN_CONFTESTD2 EOF gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_have_include_next=yes else CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_have_include_next=buggy else gl_cv_have_include_next=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS="$gl_save_CPPFLAGS" rm -rf conftestd1a conftestd1b conftestd2 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5 $as_echo "$gl_cv_have_include_next" >&6; } PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next if test -n "$GCC"; then PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' fi else if test $gl_cv_have_include_next = buggy; then INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next else INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5 $as_echo_n "checking whether system header files limit the line length... " >&6; } if ${gl_cv_pragma_columns+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __TANDEM choke me #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "choke me" >/dev/null 2>&1; then : gl_cv_pragma_columns=yes else gl_cv_pragma_columns=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pragma_columns" >&5 $as_echo "$gl_cv_pragma_columns" >&6; } if test $gl_cv_pragma_columns = yes; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= fi GNULIB_CHDIR=0; GNULIB_CHOWN=0; GNULIB_CLOSE=0; GNULIB_DUP=0; GNULIB_DUP2=0; GNULIB_DUP3=0; GNULIB_ENVIRON=0; GNULIB_EUIDACCESS=0; GNULIB_FACCESSAT=0; GNULIB_FCHDIR=0; GNULIB_FCHOWNAT=0; GNULIB_FDATASYNC=0; GNULIB_FSYNC=0; GNULIB_FTRUNCATE=0; GNULIB_GETCWD=0; GNULIB_GETDOMAINNAME=0; GNULIB_GETDTABLESIZE=0; GNULIB_GETGROUPS=0; GNULIB_GETHOSTNAME=0; GNULIB_GETLOGIN=0; GNULIB_GETLOGIN_R=0; GNULIB_GETPAGESIZE=0; GNULIB_GETPASS=0; GNULIB_GETUSERSHELL=0; GNULIB_GROUP_MEMBER=0; GNULIB_ISATTY=0; GNULIB_LCHOWN=0; GNULIB_LINK=0; GNULIB_LINKAT=0; GNULIB_LSEEK=0; GNULIB_PIPE=0; GNULIB_PIPE2=0; GNULIB_PREAD=0; GNULIB_PWRITE=0; GNULIB_READ=0; GNULIB_READLINK=0; GNULIB_READLINKAT=0; GNULIB_RMDIR=0; GNULIB_SETHOSTNAME=0; GNULIB_SLEEP=0; GNULIB_SYMLINK=0; GNULIB_SYMLINKAT=0; GNULIB_TRUNCATE=0; GNULIB_TTYNAME_R=0; GNULIB_UNISTD_H_NONBLOCKING=0; GNULIB_UNISTD_H_SIGPIPE=0; GNULIB_UNLINK=0; GNULIB_UNLINKAT=0; GNULIB_USLEEP=0; GNULIB_WRITE=0; HAVE_CHOWN=1; HAVE_DUP2=1; HAVE_DUP3=1; HAVE_EUIDACCESS=1; HAVE_FACCESSAT=1; HAVE_FCHDIR=1; HAVE_FCHOWNAT=1; HAVE_FDATASYNC=1; HAVE_FSYNC=1; HAVE_FTRUNCATE=1; HAVE_GETDTABLESIZE=1; HAVE_GETGROUPS=1; HAVE_GETHOSTNAME=1; HAVE_GETLOGIN=1; HAVE_GETPAGESIZE=1; HAVE_GETPASS=1; HAVE_GROUP_MEMBER=1; HAVE_LCHOWN=1; HAVE_LINK=1; HAVE_LINKAT=1; HAVE_PIPE=1; HAVE_PIPE2=1; HAVE_PREAD=1; HAVE_PWRITE=1; HAVE_READLINK=1; HAVE_READLINKAT=1; HAVE_SETHOSTNAME=1; HAVE_SLEEP=1; HAVE_SYMLINK=1; HAVE_SYMLINKAT=1; HAVE_UNLINKAT=1; HAVE_USLEEP=1; HAVE_DECL_ENVIRON=1; HAVE_DECL_FCHDIR=1; HAVE_DECL_FDATASYNC=1; HAVE_DECL_GETDOMAINNAME=1; HAVE_DECL_GETLOGIN=1; HAVE_DECL_GETLOGIN_R=1; HAVE_DECL_GETPAGESIZE=1; HAVE_DECL_GETUSERSHELL=1; HAVE_DECL_SETHOSTNAME=1; HAVE_DECL_TRUNCATE=1; HAVE_DECL_TTYNAME_R=1; HAVE_OS_H=0; HAVE_SYS_PARAM_H=0; REPLACE_CHOWN=0; REPLACE_CLOSE=0; REPLACE_DUP=0; REPLACE_DUP2=0; REPLACE_FACCESSAT=0; REPLACE_FCHOWNAT=0; REPLACE_FTRUNCATE=0; REPLACE_GETCWD=0; REPLACE_GETDOMAINNAME=0; REPLACE_GETDTABLESIZE=0; REPLACE_GETLOGIN_R=0; REPLACE_GETGROUPS=0; REPLACE_GETPAGESIZE=0; REPLACE_GETPASS=0; REPLACE_ISATTY=0; REPLACE_LCHOWN=0; REPLACE_LINK=0; REPLACE_LINKAT=0; REPLACE_LSEEK=0; REPLACE_PREAD=0; REPLACE_PWRITE=0; REPLACE_READ=0; REPLACE_READLINK=0; REPLACE_READLINKAT=0; REPLACE_RMDIR=0; REPLACE_SLEEP=0; REPLACE_SYMLINK=0; REPLACE_SYMLINKAT=0; REPLACE_TRUNCATE=0; REPLACE_TTYNAME_R=0; REPLACE_UNLINK=0; REPLACE_UNLINKAT=0; REPLACE_USLEEP=0; REPLACE_WRITE=0; UNISTD_H_HAVE_WINSOCK2_H=0; UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; GNULIB_IOCTL=0; SYS_IOCTL_H_HAVE_WINSOCK2_H=0; SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; REPLACE_IOCTL=0; case "$host_os" in osf*) $as_echo "#define _POSIX_PII_SOCKET 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 $as_echo_n "checking whether is self-contained... " >&6; } if ${gl_cv_header_sys_socket_h_selfcontained+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_sys_socket_h_selfcontained=yes else gl_cv_header_sys_socket_h_selfcontained=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_selfcontained" >&5 $as_echo "$gl_cv_header_sys_socket_h_selfcontained" >&6; } if test $gl_cv_header_sys_socket_h_selfcontained = yes; then for ac_func in shutdown do ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" if test "x$ac_cv_func_shutdown" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SHUTDOWN 1 _ACEOF fi done if test $ac_cv_func_shutdown = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether defines the SHUT_* macros" >&5 $as_echo_n "checking whether defines the SHUT_* macros... " >&6; } if ${gl_cv_header_sys_socket_h_shut+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR }; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_sys_socket_h_shut=yes else gl_cv_header_sys_socket_h_shut=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_shut" >&5 $as_echo "$gl_cv_header_sys_socket_h_shut" >&6; } if test $gl_cv_header_sys_socket_h_shut = no; then SYS_SOCKET_H='sys/socket.h' fi fi fi # We need to check for ws2tcpip.h now. : if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_socket_h='<'sys/socket.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_socket_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_socket_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/socket.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_socket_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_socket_h gl_cv_next_sys_socket_h='"'$gl_header'"' else gl_cv_next_sys_socket_h='<'sys/socket.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_socket_h" >&5 $as_echo "$gl_cv_next_sys_socket_h" >&6; } fi NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/socket.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_socket_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H=$gl_next_as_first_directive if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 HAVE_WS2TCPIP_H=0 else HAVE_SYS_SOCKET_H=0 if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else HAVE_WS2TCPIP_H=0 fi fi ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" " /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif " if test "x$ac_cv_type_struct_sockaddr_storage" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE 1 _ACEOF fi ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" " /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif " if test "x$ac_cv_type_sa_family_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SA_FAMILY_T 1 _ACEOF fi if test $ac_cv_type_struct_sockaddr_storage = no; then HAVE_STRUCT_SOCKADDR_STORAGE=0 fi if test $ac_cv_type_sa_family_t = no; then HAVE_SA_FAMILY_T=0 fi if test $ac_cv_type_struct_sockaddr_storage != no; then ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" "#include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif " if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 _ACEOF else HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0 fi fi if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then SYS_SOCKET_H='sys/socket.h' fi : if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (size_t); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "#define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi GNULIB_INET_NTOP=0; GNULIB_INET_PTON=0; HAVE_DECL_INET_NTOP=1; HAVE_DECL_INET_PTON=1; REPLACE_INET_NTOP=0; REPLACE_INET_PTON=0; : if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else HAVE_FEATURES_H=0 fi GNULIB_BTOWC=0; GNULIB_WCTOB=0; GNULIB_MBSINIT=0; GNULIB_MBRTOWC=0; GNULIB_MBRLEN=0; GNULIB_MBSRTOWCS=0; GNULIB_MBSNRTOWCS=0; GNULIB_WCRTOMB=0; GNULIB_WCSRTOMBS=0; GNULIB_WCSNRTOMBS=0; GNULIB_WCWIDTH=0; GNULIB_WMEMCHR=0; GNULIB_WMEMCMP=0; GNULIB_WMEMCPY=0; GNULIB_WMEMMOVE=0; GNULIB_WMEMSET=0; GNULIB_WCSLEN=0; GNULIB_WCSNLEN=0; GNULIB_WCSCPY=0; GNULIB_WCPCPY=0; GNULIB_WCSNCPY=0; GNULIB_WCPNCPY=0; GNULIB_WCSCAT=0; GNULIB_WCSNCAT=0; GNULIB_WCSCMP=0; GNULIB_WCSNCMP=0; GNULIB_WCSCASECMP=0; GNULIB_WCSNCASECMP=0; GNULIB_WCSCOLL=0; GNULIB_WCSXFRM=0; GNULIB_WCSDUP=0; GNULIB_WCSCHR=0; GNULIB_WCSRCHR=0; GNULIB_WCSCSPN=0; GNULIB_WCSSPN=0; GNULIB_WCSPBRK=0; GNULIB_WCSSTR=0; GNULIB_WCSTOK=0; GNULIB_WCSWIDTH=0; GNULIB_WCSFTIME=0; HAVE_BTOWC=1; HAVE_MBSINIT=1; HAVE_MBRTOWC=1; HAVE_MBRLEN=1; HAVE_MBSRTOWCS=1; HAVE_MBSNRTOWCS=1; HAVE_WCRTOMB=1; HAVE_WCSRTOMBS=1; HAVE_WCSNRTOMBS=1; HAVE_WMEMCHR=1; HAVE_WMEMCMP=1; HAVE_WMEMCPY=1; HAVE_WMEMMOVE=1; HAVE_WMEMSET=1; HAVE_WCSLEN=1; HAVE_WCSNLEN=1; HAVE_WCSCPY=1; HAVE_WCPCPY=1; HAVE_WCSNCPY=1; HAVE_WCPNCPY=1; HAVE_WCSCAT=1; HAVE_WCSNCAT=1; HAVE_WCSCMP=1; HAVE_WCSNCMP=1; HAVE_WCSCASECMP=1; HAVE_WCSNCASECMP=1; HAVE_WCSCOLL=1; HAVE_WCSXFRM=1; HAVE_WCSDUP=1; HAVE_WCSCHR=1; HAVE_WCSRCHR=1; HAVE_WCSCSPN=1; HAVE_WCSSPN=1; HAVE_WCSPBRK=1; HAVE_WCSSTR=1; HAVE_WCSTOK=1; HAVE_WCSWIDTH=1; HAVE_WCSFTIME=1; HAVE_DECL_WCTOB=1; HAVE_DECL_WCWIDTH=1; REPLACE_MBSTATE_T=0; REPLACE_BTOWC=0; REPLACE_WCTOB=0; REPLACE_MBSINIT=0; REPLACE_MBRTOWC=0; REPLACE_MBRLEN=0; REPLACE_MBSRTOWCS=0; REPLACE_MBSNRTOWCS=0; REPLACE_WCRTOMB=0; REPLACE_WCSRTOMBS=0; REPLACE_WCSNRTOMBS=0; REPLACE_WCWIDTH=0; REPLACE_WCSWIDTH=0; REPLACE_WCSFTIME=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether uses 'inline' correctly" >&5 $as_echo_n "checking whether uses 'inline' correctly... " >&6; } if ${gl_cv_header_wchar_h_correct_inline+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_wchar_h_correct_inline=yes cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include extern int zero (void); int main () { return zero(); } _ACEOF save_ac_compile="$ac_compile" ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` if echo '#include "conftest.c"' >conftest1.c && { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int zero (void) { return 0; } _ACEOF ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` if echo '#include "conftest.c"' >conftest2.c && { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then : else gl_cv_header_wchar_h_correct_inline=no fi fi fi ac_compile="$save_ac_compile" rm -f conftest12.c conftest12.$ac_objext conftest$ac_exeext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5 $as_echo "$gl_cv_header_wchar_h_correct_inline" >&6; } if test $gl_cv_header_wchar_h_correct_inline = no; then as_fn_error $? " cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of , or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted." "$LINENO" 5 fi for ac_func in $gl_func_list do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } if ${am_cv_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char* cs = nl_langinfo(CODESET); return !cs; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_langinfo_codeset=yes else am_cv_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 $as_echo "$am_cv_langinfo_codeset" >&6; } if test $am_cv_langinfo_codeset = yes; then $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 $as_echo_n "checking for a traditional french locale... " >&6; } if ${gt_cv_locale_fr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; # if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; # endif return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 $as_echo "$gt_cv_locale_fr" >&6; } LOCALE_FR=$gt_cv_locale_fr : if test $ac_cv_func__set_invalid_parameter_handler = yes; then HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 $as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h else HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 fi if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld" >&5 $as_echo_n "checking for ld... " >&6; } elif test "$GCC" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test -n "$LD"; then # Let the user override the test with a path. : else if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else acl_cv_path_LD= # Final result of this test ac_prog=ld # Program to search in $PATH if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) acl_output=`($CC -print-prog-name=ld) 2>&5` ;; esac case $acl_output in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` done # Got the pathname. No search in PATH is needed. acl_cv_path_LD="$acl_output" ac_prog= ;; "") # If it fails, then pretend we aren't using GCC. ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac fi if test -n "$ac_prog"; then # Search for $ac_prog in $PATH. acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 conftest.$ac_ext /* end confdefs.h. */ #if defined __powerpc64__ || defined _ARCH_PPC64 int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # The compiler produces 64-bit code. Add option '-b64' so that the # linker groks 64-bit object files. case "$acl_cv_path_LD " in *" -b64 "*) ;; *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; sparc64-*-netbsd*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __sparcv9 || defined __arch64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else # The compiler produces 32-bit code. Add option '-m elf32_sparc' # so that the linker groks 32-bit object files. case "$acl_cv_path_LD " in *" -m elf32_sparc "*) ;; *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; esac fi LD="$acl_cv_path_LD" fi if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _MSC_VER MicrosoftCompiler #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "MicrosoftCompiler" >/dev/null 2>&1; then : gl_asmext='asm' gl_c_asm_opt='-c -Fa' else gl_asmext='s' gl_c_asm_opt='-S' fi rm -f conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: checking host CPU and C ABI" >&5 $as_echo_n "checking host CPU and C ABI... " >&6; } if ${gl_cv_host_cpu_c_abi+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_cpu" in i[4567]86 ) gl_cv_host_cpu_c_abi=i386 ;; x86_64 ) # On x86_64 systems, the C compiler may be generating code in one of # these ABIs: # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 # with native Windows (mingw, MSVC). # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if (defined __x86_64__ || defined __amd64__ \ || defined _M_X64 || defined _M_AMD64) int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __ILP32__ || defined _ILP32 int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi=x86_64-x32 else gl_cv_host_cpu_c_abi=x86_64 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else gl_cv_host_cpu_c_abi=i386 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) gl_cv_host_cpu_c_abi=alpha ;; arm* | aarch64 ) # Assume arm with EABI. # On arm64 systems, the C compiler may be generating code in one of # these ABIs: # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __aarch64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __ILP32__ || defined _ILP32 int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi=arm64-ilp32 else gl_cv_host_cpu_c_abi=arm64 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else # Don't distinguish little-endian and big-endian arm, since they # don't require different machine code for simple operations and # since the user can distinguish them through the preprocessor # defines __ARMEL__ vs. __ARMEB__. # But distinguish arm which passes floating-point arguments and # return values in integer registers (r0, r1, ...) - this is # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which # passes them in float registers (s0, s1, ...) and double registers # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer # sets the preprocessor defines __ARM_PCS (for the first case) and # __ARM_PCS_VFP (for the second case), but older GCC does not. echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c # Look for a reference to the register d0 in the .s file. { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } >/dev/null 2>&1 if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then gl_cv_host_cpu_c_abi=armhf else gl_cv_host_cpu_c_abi=arm fi rm -f conftest* fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) # On hppa, the C compiler may be generating 32-bit code or 64-bit # code. In the latter case, it defines _LP64 and __LP64__. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __LP64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi=hppa64 else gl_cv_host_cpu_c_abi=hppa fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; ia64* ) # On ia64 on HP-UX, the C compiler may be generating 64-bit code or # 32-bit code. In the latter case, it defines _ILP32. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _ILP32 int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi=ia64-ilp32 else gl_cv_host_cpu_c_abi=ia64 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; mips* ) # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this # at 32. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi=mips64 else # In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but # may later get defined by ), and _MIPS_SIM == _ABIN32. # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but # may later get defined by ), and _MIPS_SIM == _ABIO32. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if (_MIPS_SIM == _ABIN32) int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi=mipsn32 else gl_cv_host_cpu_c_abi=mips fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; powerpc* ) # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. # No need to distinguish them here; the caller may distinguish # them based on the OS. # On powerpc64 systems, the C compiler may still be generating # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may # be generating 64-bit code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __powerpc64__ || defined _ARCH_PPC64 int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # On powerpc64, there are two ABIs on Linux: The AIX compatible # one and the ELFv2 one. The latter defines _CALL_ELF=2. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined _CALL_ELF && _CALL_ELF == 2 int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi=powerpc64-elfv2 else gl_cv_host_cpu_c_abi=powerpc64 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else gl_cv_host_cpu_c_abi=powerpc fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; rs6000 ) gl_cv_host_cpu_c_abi=powerpc ;; riscv32 | riscv64 ) # There are 2 architectures (with variants): rv32* and rv64*. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if __riscv_xlen == 64 int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cpu=riscv64 else cpu=riscv32 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. # Size of 'long' and 'void *': cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : main_abi=lp64 else main_abi=ilp32 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Float ABIs: # __riscv_float_abi_double: # 'float' and 'double' are passed in floating-point registers. # __riscv_float_abi_single: # 'float' are passed in floating-point registers. # __riscv_float_abi_soft: # No values are passed in floating-point registers. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __riscv_float_abi_double int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : float_abi=d else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __riscv_float_abi_single int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : float_abi=f else float_abi='' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" ;; s390* ) # On s390x, the C compiler may be generating 64-bit (= s390x) code # or 31-bit (= s390) code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ || defined __s390x__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi=s390x else gl_cv_host_cpu_c_abi=s390 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; sparc | sparc64 ) # UltraSPARCs running Linux have `uname -m` = "sparc64", but the # C compiler still generates 32-bit code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __sparcv9 || defined __arch64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_host_cpu_c_abi=sparc64 else gl_cv_host_cpu_c_abi=sparc fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; *) gl_cv_host_cpu_c_abi="$host_cpu" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi" >&5 $as_echo "$gl_cv_host_cpu_c_abi" >&6; } HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" # This was # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) # earlier, but KAI C++ 3.2d doesn't like this. sed -e 's/-/_/g' >> confdefs.h <&5 $as_echo_n "checking for the common suffixes of directories in the library search path... " >&6; } if ${acl_cv_libdirstems+:} false; then : $as_echo_n "(cached) " >&6 else acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 $as_echo_n "checking for 64-bit host... " >&6; } if ${gl_cv_solaris_64bit+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _LP64 int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_solaris_64bit=yes else gl_cv_solaris_64bit=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 $as_echo "$gl_cv_solaris_64bit" >&6; } if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) case "$gl_cv_host_cpu_c_abi" in i386 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | s390 | sparc) ;; *) # x86_64 | arm64 | hppa64 | ia64 | mips64 | powerpc64* | s390x | sparc64 | ... searchpath=`(if test -f /usr/bin/gcc \ && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ LC_ALL=C /usr/bin/gcc -print-search-dirs; \ else \ LC_ALL=C $CC -print-search-dirs; \ fi) 2>/dev/null \ | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5 $as_echo "$acl_cv_libdirstems" >&6; } # Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2. acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'` gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 $as_echo_n "checking whether imported symbols can be declared weak... " >&6; } if ${gl_cv_have_weak+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_have_weak=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern void xyzzy (); #pragma weak xyzzy int main () { xyzzy(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_have_weak=maybe fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $gl_cv_have_weak = maybe; then if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ELF__ Extensible Linking Format #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Extensible Linking Format" >/dev/null 2>&1; then : gl_cv_have_weak="guessing yes" else gl_cv_have_weak="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #pragma weak fputs int main () { return (fputs == NULL); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_have_weak=yes else gl_cv_have_weak=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi case " $LDFLAGS " in *" -static "*) gl_cv_have_weak=no ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 $as_echo "$gl_cv_have_weak" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker supports --as-needed" >&5 $as_echo_n "checking whether the linker supports --as-needed... " >&6; } if ${gl_cv_linker_have_as_needed+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GCC"; then gl_saved_ldflags="$LDFLAGS" LDFLAGS="$gl_saved_ldflags -Wl,--as-needed -Wl,--no-as-needed" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_linker_have_as_needed=yes else gl_cv_linker_have_as_needed=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$gl_saved_ldflags" else gl_cv_linker_have_as_needed=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_linker_have_as_needed" >&5 $as_echo "$gl_cv_linker_have_as_needed" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker supports --push-state" >&5 $as_echo_n "checking whether the linker supports --push-state... " >&6; } if ${gl_cv_linker_have_push_state+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GCC"; then gl_saved_ldflags="$LDFLAGS" LDFLAGS="$gl_saved_ldflags -Wl,--push-state -Wl,--pop-state" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_linker_have_push_state=yes else gl_cv_linker_have_push_state=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$gl_saved_ldflags" else gl_cv_linker_have_push_state=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_linker_have_push_state" >&5 $as_echo "$gl_cv_linker_have_push_state" >&6; } if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks . It's added above, in gl_THREADLIB_EARLY_BODY. ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" if test "x$ac_cv_header_pthread_h" = xyes; then : gl_have_pthread_h=yes else gl_have_pthread_h=no fi if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. # # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 # needs -pthread for some reason. See: # https://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html save_LIBS=$LIBS for gl_pthread in '' '-pthread'; do LIBS="$LIBS $gl_pthread" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include pthread_mutex_t m; pthread_mutexattr_t ma; int main () { pthread_mutex_lock (&m); pthread_mutexattr_init (&ma); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_pthread=yes LIBTHREAD=$gl_pthread LTLIBTHREAD=$gl_pthread LIBMULTITHREAD=$gl_pthread LTLIBMULTITHREAD=$gl_pthread fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$save_LIBS test -n "$gl_have_pthread" && break done # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test -n "$gl_have_pthread" && test -z "$LIBTHREAD"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 $as_echo_n "checking for pthread_kill in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_kill=yes else ac_cv_lib_pthread_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 $as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. # On Solaris 10 or newer, this test is no longer needed, because # libc contains the fully functional pthread functions. case "$host_os" in solaris | solaris2.1-9 | solaris2.1-9.* | hpux*) $as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h esac fi elif test -z "$gl_have_pthread"; then # Some library is needed. Try libpthread and libc_r. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 $as_echo_n "checking for pthread_kill in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_kill=yes else ac_cv_lib_pthread_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 $as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : gl_have_pthread=yes LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread fi if test -z "$gl_have_pthread"; then # For FreeBSD 4. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 $as_echo_n "checking for pthread_kill in -lc_r... " >&6; } if ${ac_cv_lib_c_r_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_c_r_pthread_kill=yes else ac_cv_lib_c_r_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 $as_echo "$ac_cv_lib_c_r_pthread_kill" >&6; } if test "x$ac_cv_lib_c_r_pthread_kill" = xyes; then : gl_have_pthread=yes LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r fi fi fi if test -n "$gl_have_pthread"; then gl_threads_api=posix $as_echo "#define USE_POSIX_THREADS 1" >>confdefs.h if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then $as_echo "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= case "$LIBMULTITHREAD" in "") ;; -pthread) if test $gl_cv_linker_have_as_needed = yes; then if test $gl_cv_linker_have_push_state = yes; then LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--push-state -Wl,--no-as-needed -lpthread -Wl,--pop-state" else LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--no-as-needed -lpthread" fi fi ;; *) if test $gl_cv_linker_have_as_needed = yes; then if test $gl_cv_linker_have_push_state = yes; then LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state" else LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD" fi fi ;; esac # TODO: May need to modify LTLIBMULTITHREAD similarly. fi fi fi fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then gl_have_solaristhread= gl_save_LIBS="$LIBS" LIBS="$LIBS -lthread" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { thr_self(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_solaristhread=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" if test -n "$gl_have_solaristhread"; then gl_threads_api=solaris LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" $as_echo "#define USE_SOLARIS_THREADS 1" >>confdefs.h if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then $as_echo "#define USE_SOLARIS_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= if test $gl_cv_linker_have_as_needed = yes; then if test $gl_cv_linker_have_push_state = yes; then LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state" else LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD" fi fi # TODO: May need to modify LTLIBMULTITHREAD similarly. fi fi fi fi if test "$gl_use_threads" = pth; then gl_save_CPPFLAGS="$CPPFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libpth" >&5 $as_echo_n "checking how to link with libpth... " >&6; } if ${ac_cv_libpth_libs+:} false; then : $as_echo_n "(cached) " >&6 else use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libpth-prefix was given. if test "${with_libpth_prefix+set}" = set; then : withval=$with_libpth_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && test ! -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBPTH= LTLIBPTH= INCPTH= LIBPTH_PREFIX= HAVE_LIBPTH= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='pth ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBPTH="${LIBPTH}${LIBPTH:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_a" else LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'pth'; then LIBPTH_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'pth'; then LIBPTH_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCPTH="${INCPTH}${INCPTH:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBPTH="${LIBPTH}${LIBPTH:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBPTH="${LIBPTH}${LIBPTH:+ }$dep" LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$dep" ;; esac done fi else LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-R$found_dir" done fi ac_cv_libpth_libs="$LIBPTH" ac_cv_libpth_ltlibs="$LTLIBPTH" ac_cv_libpth_cppflags="$INCPTH" ac_cv_libpth_prefix="$LIBPTH_PREFIX" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libpth_libs" >&5 $as_echo "$ac_cv_libpth_libs" >&6; } LIBPTH="$ac_cv_libpth_libs" LTLIBPTH="$ac_cv_libpth_ltlibs" INCPTH="$ac_cv_libpth_cppflags" LIBPTH_PREFIX="$ac_cv_libpth_prefix" for element in $INCPTH; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done HAVE_LIBPTH=yes gl_have_pth= gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBPTH" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pth_self(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_pth=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" if test -n "$gl_have_pth"; then gl_threads_api=pth LIBTHREAD="$LIBPTH" LTLIBTHREAD="$LTLIBPTH" LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" $as_echo "#define USE_PTH_THREADS 1" >>confdefs.h if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then $as_echo "#define USE_PTH_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= if test $gl_cv_linker_have_as_needed = yes; then if test $gl_cv_linker_have_push_state = yes; then LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state" else LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD" fi fi # TODO: May need to modify LTLIBMULTITHREAD similarly. fi fi else CPPFLAGS="$gl_save_CPPFLAGS" fi fi if test -z "$gl_have_pthread"; then case "$gl_use_threads" in yes | windows | win32) # The 'win32' is for backward compatibility. if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=windows $as_echo "#define USE_WINDOWS_THREADS 1" >>confdefs.h fi ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for multithread API to use" >&5 $as_echo_n "checking for multithread API to use... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_threads_api" >&5 $as_echo "$gl_threads_api" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5 $as_echo_n "checking for complete errno.h... " >&6; } if ${gl_cv_header_errno_h_complete+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if !defined ETXTBSY booboo #endif #if !defined ENOMSG booboo #endif #if !defined EIDRM booboo #endif #if !defined ENOLINK booboo #endif #if !defined EPROTO booboo #endif #if !defined EMULTIHOP booboo #endif #if !defined EBADMSG booboo #endif #if !defined EOVERFLOW booboo #endif #if !defined ENOTSUP booboo #endif #if !defined ENETRESET booboo #endif #if !defined ECONNABORTED booboo #endif #if !defined ESTALE booboo #endif #if !defined EDQUOT booboo #endif #if !defined ECANCELED booboo #endif #if !defined EOWNERDEAD booboo #endif #if !defined ENOTRECOVERABLE booboo #endif #if !defined EILSEQ booboo #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "booboo" >/dev/null 2>&1; then : gl_cv_header_errno_h_complete=no else gl_cv_header_errno_h_complete=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_complete" >&5 $as_echo "$gl_cv_header_errno_h_complete" >&6; } if test $gl_cv_header_errno_h_complete = yes; then ERRNO_H='' else if test $gl_cv_have_include_next = yes; then gl_cv_next_errno_h='<'errno.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_errno_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'errno.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_errno_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_errno_h gl_cv_next_errno_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_errno_h" >&5 $as_echo "$gl_cv_next_errno_h" >&6; } fi NEXT_ERRNO_H=$gl_cv_next_errno_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'errno.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_errno_h fi NEXT_AS_FIRST_DIRECTIVE_ERRNO_H=$gl_next_as_first_directive ERRNO_H='errno.h' fi if test -n "$ERRNO_H"; then GL_GENERATE_ERRNO_H_TRUE= GL_GENERATE_ERRNO_H_FALSE='#' else GL_GENERATE_ERRNO_H_TRUE='#' GL_GENERATE_ERRNO_H_FALSE= fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5 $as_echo_n "checking for EMULTIHOP value... " >&6; } if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef EMULTIHOP yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EMULTIHOP=yes else gl_cv_header_errno_h_EMULTIHOP=no fi rm -f conftest* if test $gl_cv_header_errno_h_EMULTIHOP = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef EMULTIHOP yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EMULTIHOP=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP" " #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EMULTIHOP" >&5 $as_echo "$gl_cv_header_errno_h_EMULTIHOP" >&6; } case $gl_cv_header_errno_h_EMULTIHOP in yes | no) EMULTIHOP_HIDDEN=0; EMULTIHOP_VALUE= ;; *) EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP" ;; esac fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5 $as_echo_n "checking for ENOLINK value... " >&6; } if ${gl_cv_header_errno_h_ENOLINK+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef ENOLINK yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_ENOLINK=yes else gl_cv_header_errno_h_ENOLINK=no fi rm -f conftest* if test $gl_cv_header_errno_h_ENOLINK = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef ENOLINK yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_ENOLINK=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_ENOLINK = hidden; then if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK" " #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_ENOLINK" >&5 $as_echo "$gl_cv_header_errno_h_ENOLINK" >&6; } case $gl_cv_header_errno_h_ENOLINK in yes | no) ENOLINK_HIDDEN=0; ENOLINK_VALUE= ;; *) ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK" ;; esac fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5 $as_echo_n "checking for EOVERFLOW value... " >&6; } if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef EOVERFLOW yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EOVERFLOW=yes else gl_cv_header_errno_h_EOVERFLOW=no fi rm -f conftest* if test $gl_cv_header_errno_h_EOVERFLOW = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef EOVERFLOW yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EOVERFLOW=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW" " #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EOVERFLOW" >&5 $as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; } case $gl_cv_header_errno_h_EOVERFLOW in yes | no) EOVERFLOW_HIDDEN=0; EOVERFLOW_VALUE= ;; *) EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW" ;; esac fi GNULIB_DPRINTF=0; GNULIB_FCLOSE=0; GNULIB_FDOPEN=0; GNULIB_FFLUSH=0; GNULIB_FGETC=0; GNULIB_FGETS=0; GNULIB_FOPEN=0; GNULIB_FPRINTF=0; GNULIB_FPRINTF_POSIX=0; GNULIB_FPURGE=0; GNULIB_FPUTC=0; GNULIB_FPUTS=0; GNULIB_FREAD=0; GNULIB_FREOPEN=0; GNULIB_FSCANF=0; GNULIB_FSEEK=0; GNULIB_FSEEKO=0; GNULIB_FTELL=0; GNULIB_FTELLO=0; GNULIB_FWRITE=0; GNULIB_GETC=0; GNULIB_GETCHAR=0; GNULIB_GETDELIM=0; GNULIB_GETLINE=0; GNULIB_OBSTACK_PRINTF=0; GNULIB_OBSTACK_PRINTF_POSIX=0; GNULIB_PCLOSE=0; GNULIB_PERROR=0; GNULIB_POPEN=0; GNULIB_PRINTF=0; GNULIB_PRINTF_POSIX=0; GNULIB_PUTC=0; GNULIB_PUTCHAR=0; GNULIB_PUTS=0; GNULIB_REMOVE=0; GNULIB_RENAME=0; GNULIB_RENAMEAT=0; GNULIB_SCANF=0; GNULIB_SNPRINTF=0; GNULIB_SPRINTF_POSIX=0; GNULIB_STDIO_H_NONBLOCKING=0; GNULIB_STDIO_H_SIGPIPE=0; GNULIB_TMPFILE=0; GNULIB_VASPRINTF=0; GNULIB_VFSCANF=0; GNULIB_VSCANF=0; GNULIB_VDPRINTF=0; GNULIB_VFPRINTF=0; GNULIB_VFPRINTF_POSIX=0; GNULIB_VPRINTF=0; GNULIB_VPRINTF_POSIX=0; GNULIB_VSNPRINTF=0; GNULIB_VSPRINTF_POSIX=0; HAVE_DECL_FPURGE=1; HAVE_DECL_FSEEKO=1; HAVE_DECL_FTELLO=1; HAVE_DECL_GETDELIM=1; HAVE_DECL_GETLINE=1; HAVE_DECL_OBSTACK_PRINTF=1; HAVE_DECL_SNPRINTF=1; HAVE_DECL_VSNPRINTF=1; HAVE_DPRINTF=1; HAVE_FSEEKO=1; HAVE_FTELLO=1; HAVE_PCLOSE=1; HAVE_POPEN=1; HAVE_RENAMEAT=1; HAVE_VASPRINTF=1; HAVE_VDPRINTF=1; REPLACE_DPRINTF=0; REPLACE_FCLOSE=0; REPLACE_FDOPEN=0; REPLACE_FFLUSH=0; REPLACE_FOPEN=0; REPLACE_FPRINTF=0; REPLACE_FPURGE=0; REPLACE_FREOPEN=0; REPLACE_FSEEK=0; REPLACE_FSEEKO=0; REPLACE_FTELL=0; REPLACE_FTELLO=0; REPLACE_GETDELIM=0; REPLACE_GETLINE=0; REPLACE_OBSTACK_PRINTF=0; REPLACE_PERROR=0; REPLACE_POPEN=0; REPLACE_PRINTF=0; REPLACE_REMOVE=0; REPLACE_RENAME=0; REPLACE_RENAMEAT=0; REPLACE_SNPRINTF=0; REPLACE_SPRINTF=0; REPLACE_STDIO_READ_FUNCS=0; REPLACE_STDIO_WRITE_FUNCS=0; REPLACE_TMPFILE=0; REPLACE_VASPRINTF=0; REPLACE_VDPRINTF=0; REPLACE_VFPRINTF=0; REPLACE_VPRINTF=0; REPLACE_VSNPRINTF=0; REPLACE_VSPRINTF=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdin defaults to large file offsets" >&5 $as_echo_n "checking whether stdin defaults to large file offsets... " >&6; } if ${gl_cv_var_stdin_large_offset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if defined __SL64 && defined __SCLE /* cygwin */ /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and it is easier to do a version check than building a runtime test. */ # include # if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25) choke me # endif #endif ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_var_stdin_large_offset=yes else gl_cv_var_stdin_large_offset=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var_stdin_large_offset" >&5 $as_echo "$gl_cv_var_stdin_large_offset" >&6; } ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define mode_t int _ACEOF fi case "$host_os" in mingw*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5 $as_echo_n "checking for 64-bit off_t... " >&6; } if ${gl_cv_type_off_t_64+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_off_t_64=yes else gl_cv_type_off_t_64=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5 $as_echo "$gl_cv_type_off_t_64" >&6; } if test $gl_cv_type_off_t_64 = no; then WINDOWS_64_BIT_OFF_T=1 else WINDOWS_64_BIT_OFF_T=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit st_size" >&5 $as_echo_n "checking for 64-bit st_size... " >&6; } if ${gl_cv_member_st_size_64+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include struct stat buf; int verify_st_size_size[sizeof (buf.st_size) >= 8 ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_member_st_size_64=yes else gl_cv_member_st_size_64=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_member_st_size_64" >&5 $as_echo "$gl_cv_member_st_size_64" >&6; } if test $gl_cv_member_st_size_64 = no; then WINDOWS_64_BIT_ST_SIZE=1 else WINDOWS_64_BIT_ST_SIZE=0 fi ;; *) WINDOWS_64_BIT_OFF_T=0 WINDOWS_64_BIT_ST_SIZE=0 ;; esac $as_echo "#define _USE_STD_STAT 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_types_h='<'sys/types.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_types_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/types.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_types_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_types_h gl_cv_next_sys_types_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5 $as_echo "$gl_cv_next_sys_types_h" >&6; } fi NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/types.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_types_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive WINDOWS_STAT_INODES=0 ac_fn_c_check_decl "$LINENO" "fseeko" "ac_cv_have_decl_fseeko" "$ac_includes_default" if test "x$ac_cv_have_decl_fseeko" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FSEEKO $ac_have_decl _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5 $as_echo_n "checking for fseeko... " >&6; } if ${gl_cv_func_fseeko+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { fseeko (stdin, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_fseeko=yes else gl_cv_func_fseeko=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5 $as_echo "$gl_cv_func_fseeko" >&6; } : if test $ac_cv_have_decl_fseeko = no; then HAVE_DECL_FSEEKO=0 fi if test $gl_cv_func_fseeko = no; then HAVE_FSEEKO=0 else if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_FSEEKO=1 fi if test $gl_cv_var_stdin_large_offset = no; then REPLACE_FSEEKO=1 fi : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 $as_echo_n "checking whether fflush works on input streams... " >&6; } if ${gl_cv_func_fflush_stdin+:} false; then : $as_echo_n "(cached) " >&6 else echo hello world > conftest.txt if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on native Windows. mingw*) gl_cv_func_fflush_stdin="guessing no" ;; *) gl_cv_func_fflush_stdin=cross ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif int main () { FILE *f = fopen ("conftest.txt", "r"); char buffer[10]; int fd; int c; if (f == NULL) return 1; fd = fileno (f); if (fd < 0 || fread (buffer, 1, 5, f) != 5) { fclose (f); return 2; } /* For deterministic results, ensure f read a bigger buffer. */ if (lseek (fd, 0, SEEK_CUR) == 5) { fclose (f); return 3; } /* POSIX requires fflush-fseek to set file offset of fd. This fails on BSD systems and on mingw. */ if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) { fclose (f); return 4; } if (lseek (fd, 0, SEEK_CUR) != 5) { fclose (f); return 5; } /* Verify behaviour of fflush after ungetc. See */ /* Verify behaviour of fflush after a backup ungetc. This fails on mingw. */ c = fgetc (f); ungetc (c, f); fflush (f); if (fgetc (f) != c) { fclose (f); return 6; } /* Verify behaviour of fflush after a non-backup ungetc. This fails on glibc 2.8 and on BSD systems. */ c = fgetc (f); ungetc ('@', f); fflush (f); if (fgetc (f) != c) { fclose (f); return 7; } fclose (f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fflush_stdin=yes else gl_cv_func_fflush_stdin=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm conftest.txt fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 $as_echo "$gl_cv_func_fflush_stdin" >&6; } case "$gl_cv_func_fflush_stdin" in *yes) gl_func_fflush_stdin=1 ;; *no) gl_func_fflush_stdin=0 ;; *) gl_func_fflush_stdin='(-1)' ;; esac cat >>confdefs.h <<_ACEOF #define FUNC_FFLUSH_STDIN $gl_func_fflush_stdin _ACEOF case "$gl_cv_func_fflush_stdin" in *yes) ;; *) REPLACE_FSEEKO=1 ;; esac fi GNULIB_FCHMODAT=0; GNULIB_FSTAT=0; GNULIB_FSTATAT=0; GNULIB_FUTIMENS=0; GNULIB_LCHMOD=0; GNULIB_LSTAT=0; GNULIB_MKDIRAT=0; GNULIB_MKFIFO=0; GNULIB_MKFIFOAT=0; GNULIB_MKNOD=0; GNULIB_MKNODAT=0; GNULIB_STAT=0; GNULIB_UTIMENSAT=0; GNULIB_OVERRIDES_STRUCT_STAT=0; HAVE_FCHMODAT=1; HAVE_FSTATAT=1; HAVE_FUTIMENS=1; HAVE_LCHMOD=1; HAVE_LSTAT=1; HAVE_MKDIRAT=1; HAVE_MKFIFO=1; HAVE_MKFIFOAT=1; HAVE_MKNOD=1; HAVE_MKNODAT=1; HAVE_UTIMENSAT=1; REPLACE_FSTAT=0; REPLACE_FSTATAT=0; REPLACE_FUTIMENS=0; REPLACE_LSTAT=0; REPLACE_MKDIR=0; REPLACE_MKFIFO=0; REPLACE_MKNOD=0; REPLACE_STAT=0; REPLACE_UTIMENSAT=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 $as_echo_n "checking whether stat file-mode macros are broken... " >&6; } if ${ac_cv_header_stat_broken+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if defined S_ISBLK && defined S_IFDIR extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; #endif #if defined S_ISBLK && defined S_IFCHR extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; #endif #if defined S_ISLNK && defined S_IFREG extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; #endif #if defined S_ISSOCK && defined S_IFREG extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stat_broken=no else ac_cv_header_stat_broken=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 $as_echo "$ac_cv_header_stat_broken" >&6; } if test $ac_cv_header_stat_broken = yes; then $as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h fi : if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_stat_h='<'sys/stat.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_stat_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_stat_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/stat.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_stat_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_stat_h gl_cv_next_sys_stat_h='"'$gl_header'"' else gl_cv_next_sys_stat_h='<'sys/stat.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5 $as_echo "$gl_cv_next_sys_stat_h" >&6; } fi NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/stat.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_stat_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive WINDOWS_STAT_TIMESPEC=0 ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include #include " if test "x$ac_cv_type_nlink_t" = xyes; then : else $as_echo "#define nlink_t int" >>confdefs.h fi ac_fn_c_check_decl "$LINENO" "ftello" "ac_cv_have_decl_ftello" "$ac_includes_default" if test "x$ac_cv_have_decl_ftello" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FTELLO $ac_have_decl _ACEOF : if test $ac_cv_have_decl_ftello = no; then HAVE_DECL_FTELLO=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ftello" >&5 $as_echo_n "checking for ftello... " >&6; } if ${gl_cv_func_ftello+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { ftello (stdin); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_ftello=yes else gl_cv_func_ftello=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello" >&5 $as_echo "$gl_cv_func_ftello" >&6; } if test $gl_cv_func_ftello = no; then HAVE_FTELLO=0 else if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_FTELLO=1 fi if test $gl_cv_var_stdin_large_offset = no; then REPLACE_FTELLO=1 fi if test $REPLACE_FTELLO = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ftello works" >&5 $as_echo_n "checking whether ftello works... " >&6; } if ${gl_cv_func_ftello_works+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_ftello_works="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_ftello_works="guessing yes" ;; # Guess yes otherwise. *) gl_cv_func_ftello_works="guessing yes" ;; esac if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #define TESTFILE "conftest.tmp" int main (void) { FILE *fp; /* Create a file with some contents. */ fp = fopen (TESTFILE, "w"); if (fp == NULL) return 70; if (fwrite ("foogarsh", 1, 8, fp) < 8) { fclose (fp); return 71; } if (fclose (fp)) return 72; /* The file's contents is now "foogarsh". */ /* Try writing after reading to EOF. */ fp = fopen (TESTFILE, "r+"); if (fp == NULL) return 73; if (fseek (fp, -1, SEEK_END)) { fclose (fp); return 74; } if (!(getc (fp) == 'h')) { fclose (fp); return 1; } if (!(getc (fp) == EOF)) { fclose (fp); return 2; } if (!(ftell (fp) == 8)) { fclose (fp); return 3; } if (!(ftell (fp) == 8)) { fclose (fp); return 4; } if (!(putc ('!', fp) == '!')) { fclose (fp); return 5; } if (!(ftell (fp) == 9)) { fclose (fp); return 6; } if (!(fclose (fp) == 0)) return 7; fp = fopen (TESTFILE, "r"); if (fp == NULL) return 75; { char buf[10]; if (!(fread (buf, 1, 10, fp) == 9)) { fclose (fp); return 10; } if (!(memcmp (buf, "foogarsh!", 9) == 0)) { fclose (fp); return 11; } } if (!(fclose (fp) == 0)) return 12; /* The file's contents is now "foogarsh!". */ return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_ftello_works=yes else gl_cv_func_ftello_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello_works" >&5 $as_echo "$gl_cv_func_ftello_works" >&6; } case "$gl_cv_func_ftello_works" in *yes) ;; *) REPLACE_FTELLO=1 $as_echo "#define FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE 1" >>confdefs.h ;; esac fi fi GNULIB_GETADDRINFO=0; HAVE_STRUCT_ADDRINFO=1; HAVE_DECL_FREEADDRINFO=1; HAVE_DECL_GAI_STRERROR=1; HAVE_DECL_GETADDRINFO=1; HAVE_DECL_GETNAMEINFO=1; REPLACE_GAI_STRERROR=0; : if test $gl_cv_have_include_next = yes; then gl_cv_next_netdb_h='<'netdb.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_netdb_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_netdb_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'netdb.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_netdb_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_netdb_h gl_cv_next_netdb_h='"'$gl_header'"' else gl_cv_next_netdb_h='<'netdb.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_netdb_h" >&5 $as_echo "$gl_cv_next_netdb_h" >&6; } fi NEXT_NETDB_H=$gl_cv_next_netdb_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'netdb.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_netdb_h fi NEXT_AS_FIRST_DIRECTIVE_NETDB_H=$gl_next_as_first_directive if test $ac_cv_header_netdb_h = yes; then HAVE_NETDB_H=1 else HAVE_NETDB_H=0 fi HOSTENT_LIB= gl_saved_libs="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF for ac_lib in '' nsl network net; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_gethostbyname=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_gethostbyname+:} false; then : break fi done if ${ac_cv_search_gethostbyname+:} false; then : else ac_cv_search_gethostbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 $as_echo "$ac_cv_search_gethostbyname" >&6; } ac_res=$ac_cv_search_gethostbyname if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" if test "$ac_cv_search_gethostbyname" != "none required"; then HOSTENT_LIB="$ac_cv_search_gethostbyname" fi fi LIBS="$gl_saved_libs" if test -z "$HOSTENT_LIB"; then for ac_func in gethostbyname do ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" if test "x$ac_cv_func_gethostbyname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETHOSTBYNAME 1 _ACEOF else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in winsock2.h and -lws2_32" >&5 $as_echo_n "checking for gethostbyname in winsock2.h and -lws2_32... " >&6; } if ${gl_cv_w32_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_w32_gethostbyname=no gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_WINSOCK2_H #include #endif #include int main () { gethostbyname(NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_w32_gethostbyname=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_w32_gethostbyname" >&5 $as_echo "$gl_cv_w32_gethostbyname" >&6; } if test "$gl_cv_w32_gethostbyname" = "yes"; then HOSTENT_LIB="-lws2_32" fi fi done fi SERVENT_LIB= gl_saved_libs="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getservbyname" >&5 $as_echo_n "checking for library containing getservbyname... " >&6; } if ${ac_cv_search_getservbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char getservbyname (); int main () { return getservbyname (); ; return 0; } _ACEOF for ac_lib in '' socket network net; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_getservbyname=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_getservbyname+:} false; then : break fi done if ${ac_cv_search_getservbyname+:} false; then : else ac_cv_search_getservbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getservbyname" >&5 $as_echo "$ac_cv_search_getservbyname" >&6; } ac_res=$ac_cv_search_getservbyname if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" if test "$ac_cv_search_getservbyname" != "none required"; then SERVENT_LIB="$ac_cv_search_getservbyname" fi fi LIBS="$gl_saved_libs" if test -z "$SERVENT_LIB"; then for ac_func in getservbyname do ac_fn_c_check_func "$LINENO" "getservbyname" "ac_cv_func_getservbyname" if test "x$ac_cv_func_getservbyname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETSERVBYNAME 1 _ACEOF else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getservbyname in winsock2.h and -lws2_32" >&5 $as_echo_n "checking for getservbyname in winsock2.h and -lws2_32... " >&6; } if ${gl_cv_w32_getservbyname+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_w32_getservbyname=no gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_WINSOCK2_H #include #endif #include int main () { getservbyname(NULL,NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_w32_getservbyname=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_w32_getservbyname" >&5 $as_echo "$gl_cv_w32_getservbyname" >&6; } if test "$gl_cv_w32_getservbyname" = "yes"; then SERVENT_LIB="-lws2_32" fi fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 $as_echo_n "checking for C/C++ restrict keyword... " >&6; } if ${ac_cv_c_restrict+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_restrict=no # The order here caters to the fact that C++ does not require restrict. for ac_kw in __restrict __restrict__ _Restrict restrict; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ typedef int *int_ptr; int foo (int_ptr $ac_kw ip) { return ip[0]; } int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ int bar (int ip[$ac_kw]) { return ip[0]; } int main () { int s[1]; int *$ac_kw t = s; t[0] = 0; return foo (t) + bar (t); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_restrict=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_restrict" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 $as_echo "$ac_cv_c_restrict" >&6; } case $ac_cv_c_restrict in restrict) ;; no) $as_echo "#define restrict /**/" >>confdefs.h ;; *) cat >>confdefs.h <<_ACEOF #define restrict $ac_cv_c_restrict _ACEOF ;; esac HAVE_INET_NTOP=1 INET_NTOP_LIB= : if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi if test $HAVE_WINSOCK2_H = 1; then ac_fn_c_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "#include " if test "x$ac_cv_have_decl_inet_ntop" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_INET_NTOP $ac_have_decl _ACEOF if test $ac_cv_have_decl_inet_ntop = yes; then REPLACE_INET_NTOP=1 INET_NTOP_LIB="-lws2_32" else HAVE_DECL_INET_NTOP=0 HAVE_INET_NTOP=0 fi else gl_save_LIBS=$LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_ntop" >&5 $as_echo_n "checking for library containing inet_ntop... " >&6; } if ${ac_cv_search_inet_ntop+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char inet_ntop (); int main () { return inet_ntop (); ; return 0; } _ACEOF for ac_lib in '' nsl resolv network; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_inet_ntop=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_inet_ntop+:} false; then : break fi done if ${ac_cv_search_inet_ntop+:} false; then : else ac_cv_search_inet_ntop=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_ntop" >&5 $as_echo "$ac_cv_search_inet_ntop" >&6; } ac_res=$ac_cv_search_inet_ntop if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else for ac_func in inet_ntop do ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop" if test "x$ac_cv_func_inet_ntop" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_INET_NTOP 1 _ACEOF fi done if test $ac_cv_func_inet_ntop = no; then HAVE_INET_NTOP=0 fi fi LIBS=$gl_save_LIBS if test "$ac_cv_search_inet_ntop" != "no" \ && test "$ac_cv_search_inet_ntop" != "none required"; then INET_NTOP_LIB="$ac_cv_search_inet_ntop" fi : ac_fn_c_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "#include #if HAVE_NETDB_H # include #endif " if test "x$ac_cv_have_decl_inet_ntop" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_INET_NTOP $ac_have_decl _ACEOF if test $ac_cv_have_decl_inet_ntop = no; then HAVE_DECL_INET_NTOP=0 fi fi : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPv4 sockets" >&5 $as_echo_n "checking for IPv4 sockets... " >&6; } if ${gl_cv_socket_ipv4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_WINSOCK2_H #include #endif int main () { int x = AF_INET; struct in_addr y; struct sockaddr_in z; if (&x && &y && &z) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_socket_ipv4=yes else gl_cv_socket_ipv4=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socket_ipv4" >&5 $as_echo "$gl_cv_socket_ipv4" >&6; } if test $gl_cv_socket_ipv4 = yes; then $as_echo "#define HAVE_IPV4 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPv6 sockets" >&5 $as_echo_n "checking for IPv6 sockets... " >&6; } if ${gl_cv_socket_ipv6+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_WINSOCK2_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif int main () { int x = AF_INET6; struct in6_addr y; struct sockaddr_in6 z; if (&x && &y && &z) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_socket_ipv6=yes else gl_cv_socket_ipv6=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socket_ipv6" >&5 $as_echo "$gl_cv_socket_ipv6" >&6; } if test $gl_cv_socket_ipv6 = yes; then $as_echo "#define HAVE_IPV6 1" >>confdefs.h fi ac_fn_c_check_decl "$LINENO" "getdelim" "ac_cv_have_decl_getdelim" "$ac_includes_default" if test "x$ac_cv_have_decl_getdelim" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETDELIM $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "getline" "ac_cv_have_decl_getline" "$ac_includes_default" if test "x$ac_cv_have_decl_getline" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETLINE $ac_have_decl _ACEOF : if test $ac_cv_func_getpass = no; then HAVE_GETPASS=0 fi ac_fn_c_check_decl "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_fflush_unlocked" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "flockfile" "ac_cv_have_decl_flockfile" "$ac_includes_default" if test "x$ac_cv_have_decl_flockfile" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FLOCKFILE $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_fputs_unlocked" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "funlockfile" "ac_cv_have_decl_funlockfile" "$ac_includes_default" if test "x$ac_cv_have_decl_funlockfile" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FUNLOCKFILE $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_putc_unlocked" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PUTC_UNLOCKED $ac_have_decl _ACEOF GNULIB_GETTIMEOFDAY=0; HAVE_GETTIMEOFDAY=1; HAVE_STRUCT_TIMEVAL=1; HAVE_SYS_TIME_H=1; REPLACE_GETTIMEOFDAY=0; REPLACE_STRUCT_TIMEVAL=0; : : if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_time_h='<'sys/time.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_time_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_time_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/time.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_time_h gl_cv_next_sys_time_h='"'$gl_header'"' else gl_cv_next_sys_time_h='<'sys/time.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_time_h" >&5 $as_echo "$gl_cv_next_sys_time_h" >&6; } fi NEXT_SYS_TIME_H=$gl_cv_next_sys_time_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/time.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_time_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H=$gl_next_as_first_directive if test $ac_cv_header_sys_time_h != yes; then HAVE_SYS_TIME_H=0 fi : if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5 $as_echo_n "checking for struct timeval... " >&6; } if ${gl_cv_sys_struct_timeval+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_SYS_TIME_H #include #endif #include #if HAVE_WINSOCK2_H # include #endif int main () { static struct timeval x; x.tv_sec = x.tv_usec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timeval=yes else gl_cv_sys_struct_timeval=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval" >&5 $as_echo "$gl_cv_sys_struct_timeval" >&6; } if test $gl_cv_sys_struct_timeval != yes; then HAVE_STRUCT_TIMEVAL=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wide-enough struct timeval.tv_sec member" >&5 $as_echo_n "checking for wide-enough struct timeval.tv_sec member... " >&6; } if ${gl_cv_sys_struct_timeval_tv_sec+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_SYS_TIME_H #include #endif #include #if HAVE_WINSOCK2_H # include #endif int main () { static struct timeval x; typedef int verify_tv_sec_type[ sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1 ]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timeval_tv_sec=yes else gl_cv_sys_struct_timeval_tv_sec=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval_tv_sec" >&5 $as_echo "$gl_cv_sys_struct_timeval_tv_sec" >&6; } if test $gl_cv_sys_struct_timeval_tv_sec != yes; then REPLACE_STRUCT_TIMEVAL=1 fi fi NEED_LOCALTIME_BUFFER=0 GNULIB_CTIME=0; GNULIB_MKTIME=0; GNULIB_LOCALTIME=0; GNULIB_NANOSLEEP=0; GNULIB_STRFTIME=0; GNULIB_STRPTIME=0; GNULIB_TIMEGM=0; GNULIB_TIME_R=0; GNULIB_TIME_RZ=0; GNULIB_TZSET=0; HAVE_DECL_LOCALTIME_R=1; HAVE_NANOSLEEP=1; HAVE_STRPTIME=1; HAVE_TIMEGM=1; HAVE_TZSET=1; HAVE_TIMEZONE_T=0; REPLACE_CTIME=GNULIB_PORTCHECK; REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; REPLACE_MKTIME=GNULIB_PORTCHECK; REPLACE_NANOSLEEP=GNULIB_PORTCHECK; REPLACE_STRFTIME=GNULIB_PORTCHECK; REPLACE_TIMEGM=GNULIB_PORTCHECK; REPLACE_TZSET=GNULIB_PORTCHECK; : ${GNULIB_GETTIMEOFDAY=0}; REPLACE_GMTIME=0; REPLACE_LOCALTIME=0; GNULIB_NL_LANGINFO=0; HAVE_NL_LANGINFO=1; REPLACE_NL_LANGINFO=0; : if test $gl_cv_have_include_next = yes; then gl_cv_next_limits_h='<'limits.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_limits_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_limits_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'limits.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_limits_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_limits_h gl_cv_next_limits_h='"'$gl_header'"' else gl_cv_next_limits_h='<'limits.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_limits_h" >&5 $as_echo "$gl_cv_next_limits_h" >&6; } fi NEXT_LIMITS_H=$gl_cv_next_limits_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'limits.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_limits_h fi NEXT_AS_FIRST_DIRECTIVE_LIMITS_H=$gl_next_as_first_directive { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether limits.h has ULLONG_WIDTH etc." >&5 $as_echo_n "checking whether limits.h has ULLONG_WIDTH etc.... " >&6; } if ${gl_cv_header_limits_width+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include int ullw = ULLONG_WIDTH; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_limits_width=yes else gl_cv_header_limits_width=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_limits_width" >&5 $as_echo "$gl_cv_header_limits_width" >&6; } if test "$gl_cv_header_limits_width" = yes; then LIMITS_H= else LIMITS_H=limits.h fi if test -n "$LIMITS_H"; then GL_GENERATE_LIMITS_H_TRUE= GL_GENERATE_LIMITS_H_FALSE='#' else GL_GENERATE_LIMITS_H_TRUE='#' GL_GENERATE_LIMITS_H_FALSE= fi GNULIB_LOCALECONV=0; GNULIB_SETLOCALE=0; GNULIB_DUPLOCALE=0; HAVE_DUPLOCALE=1; REPLACE_LOCALECONV=0; REPLACE_SETLOCALE=0; REPLACE_DUPLOCALE=0; REPLACE_STRUCT_LCONV=0; REPLACE_NULL=0; HAVE_MAX_ALIGN_T=1; HAVE_WCHAR_T=1; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 $as_echo_n "checking for wchar_t... " >&6; } if ${gt_cv_c_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include wchar_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wchar_t=yes else gt_cv_c_wchar_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5 $as_echo "$gt_cv_c_wchar_t" >&6; } if test $gt_cv_c_wchar_t = yes; then $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h fi STDDEF_H= ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include " if test "x$ac_cv_type_max_align_t" = xyes; then : else HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h fi if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } if ${gl_cv_decl_null_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int test[2 * (sizeof NULL == sizeof (void *)) -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_decl_null_works=yes else gl_cv_decl_null_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 $as_echo "$gl_cv_decl_null_works" >&6; } if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' else GL_GENERATE_STDDEF_H_TRUE='#' GL_GENERATE_STDDEF_H_FALSE= fi if test -n "$STDDEF_H"; then if test $gl_cv_have_include_next = yes; then gl_cv_next_stddef_h='<'stddef.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stddef_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stddef.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stddef_h gl_cv_next_stddef_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 $as_echo "$gl_cv_next_stddef_h" >&6; } fi NEXT_STDDEF_H=$gl_cv_next_stddef_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stddef.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stddef_h fi NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive fi GNULIB__EXIT=0; GNULIB_ATOLL=0; GNULIB_CALLOC_POSIX=0; GNULIB_CANONICALIZE_FILE_NAME=0; GNULIB_GETLOADAVG=0; GNULIB_GETSUBOPT=0; GNULIB_GRANTPT=0; GNULIB_MALLOC_POSIX=0; GNULIB_MBTOWC=0; GNULIB_MKDTEMP=0; GNULIB_MKOSTEMP=0; GNULIB_MKOSTEMPS=0; GNULIB_MKSTEMP=0; GNULIB_MKSTEMPS=0; GNULIB_POSIX_OPENPT=0; GNULIB_PTSNAME=0; GNULIB_PTSNAME_R=0; GNULIB_PUTENV=0; GNULIB_QSORT_R=0; GNULIB_RANDOM=0; GNULIB_RANDOM_R=0; GNULIB_REALLOCARRAY=0; GNULIB_REALLOC_POSIX=0; GNULIB_REALPATH=0; GNULIB_RPMATCH=0; GNULIB_SECURE_GETENV=0; GNULIB_SETENV=0; GNULIB_STRTOD=0; GNULIB_STRTOLL=0; GNULIB_STRTOULL=0; GNULIB_SYSTEM_POSIX=0; GNULIB_UNLOCKPT=0; GNULIB_UNSETENV=0; GNULIB_WCTOMB=0; HAVE__EXIT=1; HAVE_ATOLL=1; HAVE_CANONICALIZE_FILE_NAME=1; HAVE_DECL_GETLOADAVG=1; HAVE_GETSUBOPT=1; HAVE_GRANTPT=1; HAVE_DECL_INITSTATE=1; HAVE_MKDTEMP=1; HAVE_MKOSTEMP=1; HAVE_MKOSTEMPS=1; HAVE_MKSTEMP=1; HAVE_MKSTEMPS=1; HAVE_POSIX_OPENPT=1; HAVE_PTSNAME=1; HAVE_PTSNAME_R=1; HAVE_QSORT_R=1; HAVE_RANDOM=1; HAVE_RANDOM_H=1; HAVE_RANDOM_R=1; HAVE_REALLOCARRAY=1; HAVE_REALPATH=1; HAVE_RPMATCH=1; HAVE_SECURE_GETENV=1; HAVE_SETENV=1; HAVE_DECL_SETENV=1; HAVE_DECL_SETSTATE=1; HAVE_STRTOD=1; HAVE_STRTOLL=1; HAVE_STRTOULL=1; HAVE_STRUCT_RANDOM_DATA=1; HAVE_SYS_LOADAVG_H=0; HAVE_UNLOCKPT=1; HAVE_DECL_UNSETENV=1; REPLACE_CALLOC=0; REPLACE_CANONICALIZE_FILE_NAME=0; REPLACE_MALLOC=0; REPLACE_MBTOWC=0; REPLACE_MKSTEMP=0; REPLACE_PTSNAME=0; REPLACE_PTSNAME_R=0; REPLACE_PUTENV=0; REPLACE_QSORT_R=0; REPLACE_RANDOM_R=0; REPLACE_REALLOC=0; REPLACE_REALPATH=0; REPLACE_SETENV=0; REPLACE_STRTOD=0; REPLACE_UNSETENV=0; REPLACE_WCTOMB=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5 $as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; } if ${gl_cv_func_malloc_posix+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #if defined _WIN32 && ! defined __CYGWIN__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_malloc_posix=yes else gl_cv_func_malloc_posix=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5 $as_echo "$gl_cv_func_malloc_posix" >&6; } for ac_header in stdlib.h do ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_malloc_0_nonnull=no ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { char *p = malloc (0); int result = !p; free (p); return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : gl_cv_func_malloc_0_nonnull=1 else gl_cv_func_malloc_0_nonnull=0 fi cat >>confdefs.h <<_ACEOF #define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 $as_echo_n "checking for mbstate_t... " >&6; } if ${ac_cv_type_mbstate_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { mbstate_t x; return sizeof x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_mbstate_t=yes else ac_cv_type_mbstate_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5 $as_echo "$ac_cv_type_mbstate_t" >&6; } if test $ac_cv_type_mbstate_t = yes; then $as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h else $as_echo "#define mbstate_t int" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 $as_echo_n "checking for a traditional japanese locale... " >&6; } if ${gt_cv_locale_ja+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5 $as_echo "$gt_cv_locale_ja" >&6; } LOCALE_JA=$gt_cv_locale_ja { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 $as_echo_n "checking for a transitional chinese locale... " >&6; } if ${gt_cv_locale_zh_CN+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5 $as_echo "$gt_cv_locale_zh_CN" >&6; } LOCALE_ZH_CN=$gt_cv_locale_zh_CN { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 $as_echo_n "checking for a french Unicode locale... " >&6; } if ${gt_cv_locale_fr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 $as_echo "$gt_cv_locale_fr_utf8" >&6; } LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 GNULIB_EXPLICIT_BZERO=0; GNULIB_FFSL=0; GNULIB_FFSLL=0; GNULIB_MEMCHR=0; GNULIB_MEMMEM=0; GNULIB_MEMPCPY=0; GNULIB_MEMRCHR=0; GNULIB_RAWMEMCHR=0; GNULIB_STPCPY=0; GNULIB_STPNCPY=0; GNULIB_STRCHRNUL=0; GNULIB_STRDUP=0; GNULIB_STRNCAT=0; GNULIB_STRNDUP=0; GNULIB_STRNLEN=0; GNULIB_STRPBRK=0; GNULIB_STRSEP=0; GNULIB_STRSTR=0; GNULIB_STRCASESTR=0; GNULIB_STRTOK_R=0; GNULIB_MBSLEN=0; GNULIB_MBSNLEN=0; GNULIB_MBSCHR=0; GNULIB_MBSRCHR=0; GNULIB_MBSSTR=0; GNULIB_MBSCASECMP=0; GNULIB_MBSNCASECMP=0; GNULIB_MBSPCASECMP=0; GNULIB_MBSCASESTR=0; GNULIB_MBSCSPN=0; GNULIB_MBSPBRK=0; GNULIB_MBSSPN=0; GNULIB_MBSSEP=0; GNULIB_MBSTOK_R=0; GNULIB_STRERROR=0; GNULIB_STRERROR_R=0; GNULIB_STRSIGNAL=0; GNULIB_STRVERSCMP=0; HAVE_MBSLEN=0; HAVE_EXPLICIT_BZERO=1; HAVE_FFSL=1; HAVE_FFSLL=1; HAVE_MEMCHR=1; HAVE_DECL_MEMMEM=1; HAVE_MEMPCPY=1; HAVE_DECL_MEMRCHR=1; HAVE_RAWMEMCHR=1; HAVE_STPCPY=1; HAVE_STPNCPY=1; HAVE_STRCHRNUL=1; HAVE_DECL_STRDUP=1; HAVE_DECL_STRNDUP=1; HAVE_DECL_STRNLEN=1; HAVE_STRPBRK=1; HAVE_STRSEP=1; HAVE_STRCASESTR=1; HAVE_DECL_STRTOK_R=1; HAVE_DECL_STRERROR_R=1; HAVE_DECL_STRSIGNAL=1; HAVE_STRVERSCMP=1; REPLACE_MEMCHR=0; REPLACE_MEMMEM=0; REPLACE_STPNCPY=0; REPLACE_STRCHRNUL=0; REPLACE_STRDUP=0; REPLACE_STRNCAT=0; REPLACE_STRNDUP=0; REPLACE_STRNLEN=0; REPLACE_STRSTR=0; REPLACE_STRCASESTR=0; REPLACE_STRTOK_R=0; REPLACE_STRERROR=0; REPLACE_STRERROR_R=0; REPLACE_STRSIGNAL=0; UNDEFINE_STRTOK_R=0; # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" if test "x$ac_cv_func_mmap" = xyes; then : gl_have_mmap=yes else gl_have_mmap=no fi # Try to allow MAP_ANONYMOUS. gl_have_mmap_anonymous=no if test $gl_have_mmap = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5 $as_echo_n "checking for MAP_ANONYMOUS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef MAP_ANONYMOUS I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1; then : gl_have_mmap_anonymous=yes fi rm -f conftest* if test $gl_have_mmap_anonymous != yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef MAP_ANON I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1; then : $as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h gl_have_mmap_anonymous=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5 $as_echo "$gl_have_mmap_anonymous" >&6; } if test $gl_have_mmap_anonymous = yes; then $as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h fi fi : : if test $HAVE_MEMCHR = 1; then # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 # https://bugzilla.redhat.com/show_bug.cgi?id=499689 # memchr should not dereference overestimated length after a match # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 # https://sourceware.org/bugzilla/show_bug.cgi?id=10162 # Assume that memchr works on platforms that lack mprotect. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 $as_echo_n "checking whether memchr works... " >&6; } if ${gl_cv_func_memchr_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_func_memchr_works="guessing yes" ;; # Be pessimistic for now. *) gl_cv_func_memchr_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_SYS_MMAN_H # include # include # include # include # ifndef MAP_FILE # define MAP_FILE 0 # endif #endif int main () { int result = 0; char *fence = NULL; #if HAVE_SYS_MMAN_H && HAVE_MPROTECT # if HAVE_MAP_ANONYMOUS const int flags = MAP_ANONYMOUS | MAP_PRIVATE; const int fd = -1; # else /* !HAVE_MAP_ANONYMOUS */ const int flags = MAP_FILE | MAP_PRIVATE; int fd = open ("/dev/zero", O_RDONLY, 0666); if (fd >= 0) # endif { int pagesize = getpagesize (); char *two_pages = (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, flags, fd, 0); if (two_pages != (char *)(-1) && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) fence = two_pages + pagesize; } #endif if (fence) { if (memchr (fence, 0, 0)) result |= 1; strcpy (fence - 9, "12345678"); if (memchr (fence - 9, 0, 79) != fence - 1) result |= 2; if (memchr (fence - 1, 0, 3) != fence - 1) result |= 4; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_memchr_works=yes else gl_cv_func_memchr_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5 $as_echo "$gl_cv_func_memchr_works" >&6; } case "$gl_cv_func_memchr_works" in *yes) ;; *) REPLACE_MEMCHR=1 ;; esac fi ac_fn_c_check_decl "$LINENO" "memmem" "ac_cv_have_decl_memmem" "$ac_includes_default" if test "x$ac_cv_have_decl_memmem" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_MEMMEM $ac_have_decl _ACEOF for ac_func in memmem do ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem" if test "x$ac_cv_func_memmem" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MEMMEM 1 _ACEOF fi done if test $ac_cv_func_memmem = yes; then HAVE_MEMMEM=1 else HAVE_MEMMEM=0 fi : if test $ac_cv_have_decl_memmem = no; then HAVE_DECL_MEMMEM=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memmem works" >&5 $as_echo_n "checking whether memmem works... " >&6; } if ${gl_cv_func_memmem_works_always+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \ || __GLIBC_MINOR__ > 12)) \ || (__GLIBC__ > 2)) \ || defined __UCLIBC__ Lucky user #endif #elif defined __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #else Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1; then : gl_cv_func_memmem_works_always="guessing yes" else gl_cv_func_memmem_works_always="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for memmem */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P int main () { int result = 0; if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE))) result |= 1; /* Check for empty needle behavior. */ { const char *haystack = "AAA"; if (memmem (haystack, 3, NULL, 0) != haystack) result |= 2; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_memmem_works_always=yes else gl_cv_func_memmem_works_always=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_always" >&5 $as_echo "$gl_cv_func_memmem_works_always" >&6; } case "$gl_cv_func_memmem_works_always" in *yes) ;; *) REPLACE_MEMMEM=1 ;; esac fi : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether defines MIN and MAX" >&5 $as_echo_n "checking whether defines MIN and MAX... " >&6; } if ${gl_cv_minmax_in_limits_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int x = MIN (42, 17); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_minmax_in_limits_h=yes else gl_cv_minmax_in_limits_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_minmax_in_limits_h" >&5 $as_echo "$gl_cv_minmax_in_limits_h" >&6; } if test $gl_cv_minmax_in_limits_h = yes; then $as_echo "#define HAVE_MINMAX_IN_LIMITS_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether defines MIN and MAX" >&5 $as_echo_n "checking whether defines MIN and MAX... " >&6; } if ${gl_cv_minmax_in_sys_param_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int x = MIN (42, 17); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_minmax_in_sys_param_h=yes else gl_cv_minmax_in_sys_param_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_minmax_in_sys_param_h" >&5 $as_echo "$gl_cv_minmax_in_sys_param_h" >&6; } if test $gl_cv_minmax_in_sys_param_h = yes; then $as_echo "#define HAVE_MINMAX_IN_SYS_PARAM_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time_t is signed" >&5 $as_echo_n "checking whether time_t is signed... " >&6; } if ${gl_cv_time_t_is_signed+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include char time_t_signed[(time_t) -1 < 0 ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_time_t_is_signed=yes else gl_cv_time_t_is_signed=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_time_t_is_signed" >&5 $as_echo "$gl_cv_time_t_is_signed" >&6; } if test $gl_cv_time_t_is_signed = yes; then $as_echo "#define TIME_T_IS_SIGNED 1" >>confdefs.h fi ac_fn_c_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default" if test "x$ac_cv_have_decl_alarm" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ALARM $ac_have_decl _ACEOF gl_cv_c_multiarch=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : arch= prev= for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do if test -n "$prev"; then case $word in i?86 | x86_64 | ppc | ppc64) if test -z "$arch" || test "$arch" = "$word"; then arch="$word" else gl_cv_c_multiarch=yes fi ;; esac prev= else if test "x$word" = "x-arch"; then prev=arch fi fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 else APPLE_UNIVERSAL_BUILD=0 fi : : : if test $APPLE_UNIVERSAL_BUILD = 1; then # A universal build on Apple Mac OS X platforms. # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode. # But we need a configuration result that is valid in both modes. gl_cv_func_working_mktime=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 $as_echo_n "checking for working mktime... " >&6; } if ${gl_cv_func_working_mktime+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on native Windows. mingw*) gl_cv_func_working_mktime="guessing no" ;; *) gl_cv_func_working_mktime="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Test program from Paul Eggert and Tony Leneis. */ #include #include #include #ifdef HAVE_UNISTD_H # include #endif #if HAVE_DECL_ALARM # include #endif #ifndef TIME_T_IS_SIGNED # define TIME_T_IS_SIGNED 0 #endif /* Work around redefinition to rpl_putenv by other config tests. */ #undef putenv static time_t time_t_max; static time_t time_t_min; /* Values we'll use to set the TZ environment variable. */ static char *tz_strings[] = { (char *) 0, "TZ=GMT0", "TZ=JST-9", "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) /* Return 0 if mktime fails to convert a date in the spring-forward gap. Based on a problem report from Andreas Jaeger. */ static int spring_forward_gap () { /* glibc (up to about 1998-10-07) failed this test. */ struct tm tm; /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); tm.tm_year = 98; tm.tm_mon = 3; tm.tm_mday = 5; tm.tm_hour = 2; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; return mktime (&tm) != (time_t) -1; } static int mktime_test1 (time_t now) { struct tm *lt; return ! (lt = localtime (&now)) || mktime (lt) == now; } static int mktime_test (time_t now) { return (mktime_test1 (now) && mktime_test1 ((time_t) (time_t_max - now)) && mktime_test1 ((time_t) (time_t_min + now))); } static int irix_6_4_bug () { /* Based on code from Ariel Faigon. */ struct tm tm; tm.tm_year = 96; tm.tm_mon = 3; tm.tm_mday = 0; tm.tm_hour = 0; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; mktime (&tm); return tm.tm_mon == 2 && tm.tm_mday == 31; } static int bigtime_test (int j) { struct tm tm; time_t now; tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; now = mktime (&tm); if (now != (time_t) -1) { struct tm *lt = localtime (&now); if (! (lt && lt->tm_year == tm.tm_year && lt->tm_mon == tm.tm_mon && lt->tm_mday == tm.tm_mday && lt->tm_hour == tm.tm_hour && lt->tm_min == tm.tm_min && lt->tm_sec == tm.tm_sec && lt->tm_yday == tm.tm_yday && lt->tm_wday == tm.tm_wday && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) return 0; } return 1; } static int year_2050_test () { /* The correct answer for 2050-02-01 00:00:00 in Pacific time, ignoring leap seconds. */ unsigned long int answer = 2527315200UL; struct tm tm; time_t t; tm.tm_year = 2050 - 1900; tm.tm_mon = 2 - 1; tm.tm_mday = 1; tm.tm_hour = tm.tm_min = tm.tm_sec = 0; tm.tm_isdst = -1; /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); t = mktime (&tm); /* Check that the result is either a failure, or close enough to the correct answer that we can assume the discrepancy is due to leap seconds. */ return (t == (time_t) -1 || (0 < t && answer - 120 <= t && t <= answer + 120)); } int main () { int result = 0; time_t t, delta; int i, j; int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1; #if HAVE_DECL_ALARM /* This test makes some buggy mktime implementations loop. Give up after 60 seconds; a mktime slower than that isn't worth using anyway. */ signal (SIGALRM, SIG_DFL); alarm (60); #endif time_t_max = (! TIME_T_IS_SIGNED ? (time_t) -1 : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1) * 2 + 1)); time_t_min = (! TIME_T_IS_SIGNED ? (time_t) 0 : time_t_signed_magnitude ? ~ (time_t) 0 : ~ time_t_max); delta = time_t_max / 997; /* a suitable prime number */ for (i = 0; i < N_STRINGS; i++) { if (tz_strings[i]) putenv (tz_strings[i]); for (t = 0; t <= time_t_max - delta && (result & 1) == 0; t += delta) if (! mktime_test (t)) result |= 1; if ((result & 2) == 0 && ! (mktime_test ((time_t) 1) && mktime_test ((time_t) (60 * 60)) && mktime_test ((time_t) (60 * 60 * 24)))) result |= 2; for (j = 1; (result & 4) == 0; j <<= 1) { if (! bigtime_test (j)) result |= 4; if (INT_MAX / 2 < j) break; } if ((result & 8) == 0 && ! bigtime_test (INT_MAX)) result |= 8; } if (! irix_6_4_bug ()) result |= 16; if (! spring_forward_gap ()) result |= 32; if (! year_2050_test ()) result |= 64; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_working_mktime=yes else gl_cv_func_working_mktime=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_mktime" >&5 $as_echo "$gl_cv_func_working_mktime" >&6; } REPLACE_STRERROR_0=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5 $as_echo_n "checking whether strerror(0) succeeds... " >&6; } if ${gl_cv_func_strerror_0_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; # Guess yes on native Windows. mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_strerror_0_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int result = 0; char *str; errno = 0; str = strerror (0); if (!*str) result |= 1; if (errno) result |= 2; if (strstr (str, "nknown") || strstr (str, "ndefined")) result |= 4; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strerror_0_works=yes else gl_cv_func_strerror_0_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5 $as_echo "$gl_cv_func_strerror_0_works" >&6; } case "$gl_cv_func_strerror_0_works" in *yes) ;; *) REPLACE_STRERROR_0=1 $as_echo "#define REPLACE_STRERROR_0 1" >>confdefs.h ;; esac : if test $ac_cv_func_strerror_r = yes; then if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror_r with POSIX signature" >&5 $as_echo_n "checking for strerror_r with POSIX signature... " >&6; } if ${gl_cv_func_strerror_r_posix_signature+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int strerror_r (int, char *, size_t); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_strerror_r_posix_signature=yes else gl_cv_func_strerror_r_posix_signature=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_r_posix_signature" >&5 $as_echo "$gl_cv_func_strerror_r_posix_signature" >&6; } if test $gl_cv_func_strerror_r_posix_signature = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r works" >&5 $as_echo_n "checking whether strerror_r works... " >&6; } if ${gl_cv_func_strerror_r_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on AIX. aix*) gl_cv_func_strerror_r_works="guessing no";; # Guess no on HP-UX. hpux*) gl_cv_func_strerror_r_works="guessing no";; # Guess no on BSD variants. *bsd*) gl_cv_func_strerror_r_works="guessing no";; # Guess yes otherwise. *) gl_cv_func_strerror_r_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int result = 0; char buf[79]; if (strerror_r (EACCES, buf, 0) < 0) result |= 1; errno = 0; if (strerror_r (EACCES, buf, sizeof buf) != 0) result |= 2; strcpy (buf, "Unknown"); if (strerror_r (0, buf, sizeof buf) != 0) result |= 4; if (errno) result |= 8; if (strstr (buf, "nknown") || strstr (buf, "ndefined")) result |= 0x10; errno = 0; *buf = 0; if (strerror_r (-3, buf, sizeof buf) < 0) result |= 0x20; if (errno) result |= 0x40; if (!*buf) result |= 0x80; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strerror_r_works=yes else gl_cv_func_strerror_r_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_r_works" >&5 $as_echo "$gl_cv_func_strerror_r_works" >&6; } else : if test $ac_cv_func___xpg_strerror_r = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether __xpg_strerror_r works" >&5 $as_echo_n "checking whether __xpg_strerror_r works... " >&6; } if ${gl_cv_func_strerror_r_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_func_strerror_r_works="guessing no" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include extern #ifdef __cplusplus "C" #endif int __xpg_strerror_r(int, char *, size_t); int main () { int result = 0; char buf[256] = "^"; char copy[256]; char *str = strerror (-1); strcpy (copy, str); if (__xpg_strerror_r (-2, buf, 1) == 0) result |= 1; if (*buf) result |= 2; __xpg_strerror_r (-2, buf, 256); if (strcmp (str, copy)) result |= 4; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strerror_r_works=yes else gl_cv_func_strerror_r_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_r_works" >&5 $as_echo "$gl_cv_func_strerror_r_works" >&6; } fi fi fi fi ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" if test "x$ac_cv_have_decl_strerror_r" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR_R $ac_have_decl _ACEOF : if test $ac_cv_have_decl_strerror_r = no; then HAVE_DECL_STRERROR_R=0 fi if test $ac_cv_func_strerror_r = yes; then if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then if test $gl_cv_func_strerror_r_posix_signature = yes; then case "$gl_cv_func_strerror_r_works" in *no) REPLACE_STRERROR_R=1 ;; esac else REPLACE_STRERROR_R=1 fi else REPLACE_STRERROR_R=1 fi fi GNULIB_POLL=0; HAVE_POLL=1; REPLACE_POLL=0; : if test $ac_cv_header_poll_h = yes; then HAVE_POLL_H=1 else HAVE_POLL_H=0 fi : if test $gl_cv_have_include_next = yes; then gl_cv_next_poll_h='<'poll.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_poll_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_poll_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'poll.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_poll_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_poll_h gl_cv_next_poll_h='"'$gl_header'"' else gl_cv_next_poll_h='<'poll.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_poll_h" >&5 $as_echo "$gl_cv_next_poll_h" >&6; } fi NEXT_POLL_H=$gl_cv_next_poll_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'poll.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_poll_h fi NEXT_AS_FIRST_DIRECTIVE_POLL_H=$gl_next_as_first_directive : if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi LIBSOCKET= if test $HAVE_WINSOCK2_H = 1; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need to call WSAStartup in winsock2.h and -lws2_32" >&5 $as_echo_n "checking if we need to call WSAStartup in winsock2.h and -lws2_32... " >&6; } if ${gl_cv_func_wsastartup+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_WINSOCK2_H # include #endif int main () { WORD wVersionRequested = MAKEWORD(1, 1); WSADATA wsaData; int err = WSAStartup(wVersionRequested, &wsaData); WSACleanup (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_wsastartup=yes else gl_cv_func_wsastartup=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wsastartup" >&5 $as_echo "$gl_cv_func_wsastartup" >&6; } if test "$gl_cv_func_wsastartup" = "yes"; then $as_echo "#define WINDOWS_SOCKETS 1" >>confdefs.h LIBSOCKET='-lws2_32' fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5 $as_echo_n "checking for library containing setsockopt... " >&6; } if ${gl_cv_lib_socket+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_lib_socket= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern #ifdef __cplusplus "C" #endif char setsockopt(); int main () { setsockopt(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else gl_save_LIBS="$LIBS" LIBS="$gl_save_LIBS -lsocket" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern #ifdef __cplusplus "C" #endif char setsockopt(); int main () { setsockopt(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_lib_socket="-lsocket" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$gl_cv_lib_socket"; then LIBS="$gl_save_LIBS -lnetwork" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern #ifdef __cplusplus "C" #endif char setsockopt(); int main () { setsockopt(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_lib_socket="-lnetwork" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$gl_cv_lib_socket"; then LIBS="$gl_save_LIBS -lnet" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern #ifdef __cplusplus "C" #endif char setsockopt(); int main () { setsockopt(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_lib_socket="-lnet" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi fi LIBS="$gl_save_LIBS" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$gl_cv_lib_socket"; then gl_cv_lib_socket="none needed" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_lib_socket" >&5 $as_echo "$gl_cv_lib_socket" >&6; } if test "$gl_cv_lib_socket" != "none needed"; then LIBSOCKET="$gl_cv_lib_socket" fi fi : GNULIB_PTHREAD_SIGMASK=0; GNULIB_RAISE=0; GNULIB_SIGNAL_H_SIGPIPE=0; GNULIB_SIGPROCMASK=0; GNULIB_SIGACTION=0; HAVE_POSIX_SIGNALBLOCKING=1; HAVE_PTHREAD_SIGMASK=1; HAVE_RAISE=1; HAVE_SIGSET_T=1; HAVE_SIGINFO_T=1; HAVE_SIGACTION=1; HAVE_STRUCT_SIGACTION_SA_SIGACTION=1; HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1; HAVE_SIGHANDLER_T=1; REPLACE_PTHREAD_SIGMASK=0; REPLACE_RAISE=0; ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" " #include /* Mingw defines sigset_t not in , but in . */ #include " if test "x$ac_cv_type_sigset_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SIGSET_T 1 _ACEOF gl_cv_type_sigset_t=yes else gl_cv_type_sigset_t=no fi if test $gl_cv_type_sigset_t != yes; then HAVE_SIGSET_T=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5 $as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; } if ${ac_cv_gnu_library_2_1+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif #ifdef __UCLIBC__ Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky" >/dev/null 2>&1; then : ac_cv_gnu_library_2_1=yes else ac_cv_gnu_library_2_1=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 $as_echo "$ac_cv_gnu_library_2_1" >&6; } GLIBC21="$ac_cv_gnu_library_2_1" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to activate relocatable installation" >&5 $as_echo_n "checking whether to activate relocatable installation... " >&6; } # Check whether --enable-relocatable was given. if test "${enable_relocatable+set}" = set; then : enableval=$enable_relocatable; if test "$enableval" != no; then RELOCATABLE=yes else RELOCATABLE=no fi else RELOCATABLE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RELOCATABLE" >&5 $as_echo "$RELOCATABLE" >&6; } if test "X$prefix" = "XNONE"; then reloc_final_prefix="$ac_default_prefix" else reloc_final_prefix="$prefix" fi cat >>confdefs.h <<_ACEOF #define INSTALLPREFIX "${reloc_final_prefix}" _ACEOF if test $RELOCATABLE = yes; then $as_echo "#define ENABLE_RELOCATABLE 1" >>confdefs.h fi GNULIB_PSELECT=0; GNULIB_SELECT=0; HAVE_PSELECT=1; REPLACE_PSELECT=0; REPLACE_SELECT=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 $as_echo_n "checking whether is self-contained... " >&6; } if ${gl_cv_header_sys_select_h_selfcontained+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { struct timeval b; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_sys_select_h_selfcontained=yes else gl_cv_header_sys_select_h_selfcontained=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $gl_cv_header_sys_select_h_selfcontained = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int memset; int bzero; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef memset #define memset nonexistent_memset extern #ifdef __cplusplus "C" #endif void *memset (void *, int, unsigned long); #undef bzero #define bzero nonexistent_bzero extern #ifdef __cplusplus "C" #endif void bzero (void *, unsigned long); fd_set fds; FD_ZERO (&fds); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else gl_cv_header_sys_select_h_selfcontained=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_select_h_selfcontained" >&5 $as_echo "$gl_cv_header_sys_select_h_selfcontained" >&6; } : if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_select_h='<'sys/select.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_select_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_select_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/select.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_select_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_select_h gl_cv_next_sys_select_h='"'$gl_header'"' else gl_cv_next_sys_select_h='<'sys/select.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_select_h" >&5 $as_echo "$gl_cv_next_sys_select_h" >&6; } fi NEXT_SYS_SELECT_H=$gl_cv_next_sys_select_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/select.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_select_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H=$gl_next_as_first_directive if test $ac_cv_header_sys_select_h = yes; then HAVE_SYS_SELECT_H=1 else HAVE_SYS_SELECT_H=0 fi : if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 $as_echo_n "checking for uid_t in sys/types.h... " >&6; } if ${ac_cv_type_uid_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "uid_t" >/dev/null 2>&1; then : ac_cv_type_uid_t=yes else ac_cv_type_uid_t=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 $as_echo "$ac_cv_type_uid_t" >&6; } if test $ac_cv_type_uid_t = no; then $as_echo "#define uid_t int" >>confdefs.h $as_echo "#define gid_t int" >>confdefs.h fi : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5 $as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; } if ${gl_cv_func_snprintf_retval_c99+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4].*) gl_cv_func_snprintf_retval_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Mac OS X >= 10.3. darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";; darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on OpenBSD >= 3.9. openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*) gl_cv_func_snprintf_retval_c99="guessing no";; openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on Solaris >= 2.10. solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";; solaris*) gl_cv_func_printf_sizes_c99="guessing no";; # Guess yes on AIX >= 4. aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";; aix*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on NetBSD >= 3. netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*) gl_cv_func_snprintf_retval_c99="guessing no";; netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on BeOS. beos*) gl_cv_func_snprintf_retval_c99="guessing yes";; # Guess yes on MSVC, no on mingw. mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _MSC_VER Known #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Known" >/dev/null 2>&1; then : gl_cv_func_snprintf_retval_c99="guessing yes" else gl_cv_func_snprintf_retval_c99="guessing no" fi rm -f conftest* ;; # If we don't know, assume the worst. *) gl_cv_func_snprintf_retval_c99="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif static char buf[100]; int main () { strcpy (buf, "ABCDEF"); if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7) return 1; if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7) return 2; if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7) return 3; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_snprintf_retval_c99=yes else gl_cv_func_snprintf_retval_c99=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_retval_c99" >&5 $as_echo "$gl_cv_func_snprintf_retval_c99" >&6; } ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default" if test "x$ac_cv_have_decl_snprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SNPRINTF $ac_have_decl _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if ${ac_cv_header_stdbool_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __cplusplus typedef bool Bool; #else typedef _Bool Bool; #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { Bool s: 1; Bool t; bool u: 1; bool v; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html */ Bool q = true; Bool *pq = &q; bool *qq = &q; int main () { bool e = &s; *pq |= q; *pq |= ! q; *qq |= q; *qq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq + !qq); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdbool_h=yes else ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 $as_echo_n "checking for wint_t... " >&6; } if ${gt_cv_c_wint_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include wint_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wint_t=yes else gt_cv_c_wint_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 $as_echo "$gt_cv_c_wint_t" >&6; } if test $gt_cv_c_wint_t = yes; then $as_echo "#define HAVE_WINT_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wint_t is too small" >&5 $as_echo_n "checking whether wint_t is too small... " >&6; } if ${gl_cv_type_wint_t_too_small+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include #endif #include int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_wint_t_too_small=no else gl_cv_type_wint_t_too_small=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wint_t_too_small" >&5 $as_echo "$gl_cv_type_wint_t_too_small" >&6; } if test $gl_cv_type_wint_t_too_small = yes; then GNULIB_OVERRIDES_WINT_T=1 else GNULIB_OVERRIDES_WINT_T=0 fi else GNULIB_OVERRIDES_WINT_T=0 fi if test $ac_cv_type_long_long_int = yes; then HAVE_LONG_LONG_INT=1 else HAVE_LONG_LONG_INT=0 fi if test $ac_cv_type_unsigned_long_long_int = yes; then HAVE_UNSIGNED_LONG_LONG_INT=1 else HAVE_UNSIGNED_LONG_LONG_INT=0 fi : if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi if test $ac_cv_header_inttypes_h = yes; then HAVE_INTTYPES_H=1 else HAVE_INTTYPES_H=0 fi if test $ac_cv_header_sys_types_h = yes; then HAVE_SYS_TYPES_H=1 else HAVE_SYS_TYPES_H=0 fi : if test $gl_cv_have_include_next = yes; then gl_cv_next_stdint_h='<'stdint.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_stdint_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdint.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdint_h gl_cv_next_stdint_h='"'$gl_header'"' else gl_cv_next_stdint_h='<'stdint.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 $as_echo "$gl_cv_next_stdint_h" >&6; } fi NEXT_STDINT_H=$gl_cv_next_stdint_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdint.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdint_h fi NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else HAVE_STDINT_H=0 fi if test $ac_cv_header_stdint_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 $as_echo_n "checking whether stdint.h conforms to C99... " >&6; } if ${gl_cv_header_working_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_working_stdint_h=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) #error "WCHAR_MIN, WCHAR_MAX not defined in " #endif /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; #endif #ifdef INT16_MAX int16_t a2 = INT16_MAX; int16_t a2min = INT16_MIN; #endif #ifdef INT32_MAX int32_t a3 = INT32_MAX; int32_t a3min = INT32_MIN; #endif #ifdef INT64_MAX int64_t a4 = INT64_MAX; int64_t a4min = INT64_MIN; #endif #ifdef UINT8_MAX uint8_t b1 = UINT8_MAX; #else typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; #endif #ifdef UINT16_MAX uint16_t b2 = UINT16_MAX; #endif #ifdef UINT32_MAX uint32_t b3 = UINT32_MAX; #endif #ifdef UINT64_MAX uint64_t b4 = UINT64_MAX; #endif int_least8_t c1 = INT8_C (0x7f); int_least8_t c1max = INT_LEAST8_MAX; int_least8_t c1min = INT_LEAST8_MIN; int_least16_t c2 = INT16_C (0x7fff); int_least16_t c2max = INT_LEAST16_MAX; int_least16_t c2min = INT_LEAST16_MIN; int_least32_t c3 = INT32_C (0x7fffffff); int_least32_t c3max = INT_LEAST32_MAX; int_least32_t c3min = INT_LEAST32_MIN; int_least64_t c4 = INT64_C (0x7fffffffffffffff); int_least64_t c4max = INT_LEAST64_MAX; int_least64_t c4min = INT_LEAST64_MIN; uint_least8_t d1 = UINT8_C (0xff); uint_least8_t d1max = UINT_LEAST8_MAX; uint_least16_t d2 = UINT16_C (0xffff); uint_least16_t d2max = UINT_LEAST16_MAX; uint_least32_t d3 = UINT32_C (0xffffffff); uint_least32_t d3max = UINT_LEAST32_MAX; uint_least64_t d4 = UINT64_C (0xffffffffffffffff); uint_least64_t d4max = UINT_LEAST64_MAX; int_fast8_t e1 = INT_FAST8_MAX; int_fast8_t e1min = INT_FAST8_MIN; int_fast16_t e2 = INT_FAST16_MAX; int_fast16_t e2min = INT_FAST16_MIN; int_fast32_t e3 = INT_FAST32_MAX; int_fast32_t e3min = INT_FAST32_MIN; int_fast64_t e4 = INT_FAST64_MAX; int_fast64_t e4min = INT_FAST64_MIN; uint_fast8_t f1 = UINT_FAST8_MAX; uint_fast16_t f2 = UINT_FAST16_MAX; uint_fast32_t f3 = UINT_FAST32_MAX; uint_fast64_t f4 = UINT_FAST64_MAX; #ifdef INTPTR_MAX intptr_t g = INTPTR_MAX; intptr_t gmin = INTPTR_MIN; #endif #ifdef UINTPTR_MAX uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; /* Check that SIZE_MAX has the correct type, if possible. */ #if 201112 <= __STDC_VERSION__ int k = _Generic (SIZE_MAX, size_t: 0); #elif (2 <= __GNUC__ || defined __IBM__TYPEOF__ \ || (0x5110 <= __SUNPRO_C && !__STDC__)) extern size_t k; extern __typeof__ (SIZE_MAX) k; #endif #include /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) ((t) 0 < (t) -1 \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) struct s { int check_PTRDIFF: PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; /* Detect bug in FreeBSD 6.0 / ia64. */ int check_SIG_ATOMIC: SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ? 1 : -1; int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; int check_WCHAR: WCHAR_MIN == TYPE_MINIMUM (wchar_t) && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ? 1 : -1; /* Detect bug in mingw. */ int check_WINT: WINT_MIN == TYPE_MINIMUM (wint_t) && WINT_MAX == TYPE_MAXIMUM (wint_t) ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; int check_UINT16_C: (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; /* Detect bugs in OpenBSD 3.9 stdint.h. */ #ifdef UINT8_MAX int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; #endif #ifdef UINT16_MAX int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; #endif #ifdef UINT32_MAX int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; #endif #ifdef UINT64_MAX int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; #endif int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_header_working_stdint_h="guessing yes" ;; # In general, assume it works. *) gl_cv_header_working_stdint_h="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif #include #include #define MVAL(macro) MVAL1(macro) #define MVAL1(expression) #expression static const char *macro_values[] = { #ifdef INT8_MAX MVAL (INT8_MAX), #endif #ifdef INT16_MAX MVAL (INT16_MAX), #endif #ifdef INT32_MAX MVAL (INT32_MAX), #endif #ifdef INT64_MAX MVAL (INT64_MAX), #endif #ifdef UINT8_MAX MVAL (UINT8_MAX), #endif #ifdef UINT16_MAX MVAL (UINT16_MAX), #endif #ifdef UINT32_MAX MVAL (UINT32_MAX), #endif #ifdef UINT64_MAX MVAL (UINT64_MAX), #endif NULL }; int main () { const char **mv; for (mv = macro_values; *mv != NULL; mv++) { const char *value = *mv; /* Test whether it looks like a cast expression. */ if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 || strncmp (value, "((int)"/*)*/, 6) == 0 || strncmp (value, "((signed short)"/*)*/, 15) == 0 || strncmp (value, "((signed char)"/*)*/, 14) == 0) return mv - macro_values + 1; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_header_working_stdint_h=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 $as_echo "$gl_cv_header_working_stdint_h" >&6; } fi HAVE_C99_STDINT_H=0 HAVE_SYS_BITYPES_H=0 HAVE_SYS_INTTYPES_H=0 STDINT_H=stdint.h case "$gl_cv_header_working_stdint_h" in *yes) HAVE_C99_STDINT_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h predates C++11" >&5 $as_echo_n "checking whether stdint.h predates C++11... " >&6; } if ${gl_cv_header_stdint_predates_cxx11_h+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_stdint_predates_cxx11_h=yes cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif intmax_t im = INTMAX_MAX; int32_t i32 = INT32_C (0x7fffffff); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_stdint_predates_cxx11_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_predates_cxx11_h" >&5 $as_echo "$gl_cv_header_stdint_predates_cxx11_h" >&6; } if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then $as_echo "#define __STDC_CONSTANT_MACROS 1" >>confdefs.h $as_echo "#define __STDC_LIMIT_MACROS 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h has UINTMAX_WIDTH etc." >&5 $as_echo_n "checking whether stdint.h has UINTMAX_WIDTH etc.... " >&6; } if ${gl_cv_header_stdint_width+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_stdint_width=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif int iw = UINTMAX_WIDTH; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_stdint_width=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_width" >&5 $as_echo "$gl_cv_header_stdint_width" >&6; } if test "$gl_cv_header_stdint_width" = yes; then STDINT_H= fi ;; *) for ac_header in sys/inttypes.h sys/bitypes.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_header_sys_inttypes_h = yes; then HAVE_SYS_INTTYPES_H=1 fi if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 fi if test $APPLE_UNIVERSAL_BUILD = 0; then for gltype in ptrdiff_t size_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 $as_echo_n "checking for bit size of $gltype... " >&6; } if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif #include "; then : else result=unknown fi eval gl_cv_bitsizeof_${gltype}=\$result fi eval ac_res=\$gl_cv_bitsizeof_${gltype} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` cat >>confdefs.h <<_ACEOF #define BITSIZEOF_${GLTYPE} $result _ACEOF eval BITSIZEOF_${GLTYPE}=\$result done fi for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 $as_echo_n "checking for bit size of $gltype... " >&6; } if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif #include "; then : else result=unknown fi eval gl_cv_bitsizeof_${gltype}=\$result fi eval ac_res=\$gl_cv_bitsizeof_${gltype} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` cat >>confdefs.h <<_ACEOF #define BITSIZEOF_${GLTYPE} $result _ACEOF eval BITSIZEOF_${GLTYPE}=\$result done for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 $as_echo_n "checking whether $gltype is signed... " >&6; } if eval \${gl_cv_type_${gltype}_signed+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : result=yes else result=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval gl_cv_type_${gltype}_signed=\$result fi eval ac_res=\$gl_cv_type_${gltype}_signed { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_SIGNED_${GLTYPE} 1 _ACEOF eval HAVE_SIGNED_${GLTYPE}=1 else eval HAVE_SIGNED_${GLTYPE}=0 fi done gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no if test $APPLE_UNIVERSAL_BUILD = 0; then for gltype in ptrdiff_t size_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 $as_echo_n "checking for $gltype integer literal suffix... " >&6; } if eval \${gl_cv_type_${gltype}_suffix+:} false; then : $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif extern $gltype foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval gl_cv_type_${gltype}_suffix=\$glsuf fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done fi eval ac_res=\$gl_cv_type_${gltype}_suffix { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result cat >>confdefs.h <<_ACEOF #define ${GLTYPE}_SUFFIX $result _ACEOF done fi for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 $as_echo_n "checking for $gltype integer literal suffix... " >&6; } if eval \${gl_cv_type_${gltype}_suffix+:} false; then : $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif extern $gltype foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval gl_cv_type_${gltype}_suffix=\$glsuf fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done fi eval ac_res=\$gl_cv_type_${gltype}_suffix { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result cat >>confdefs.h <<_ACEOF #define ${GLTYPE}_SUFFIX $result _ACEOF done if test $GNULIB_OVERRIDES_WINT_T = 1; then BITSIZEOF_WINT_T=32 fi ;; esac LIMITS_H='limits.h' if test -n "$LIMITS_H"; then GL_GENERATE_LIMITS_H_TRUE= GL_GENERATE_LIMITS_H_FALSE='#' else GL_GENERATE_LIMITS_H_TRUE='#' GL_GENERATE_LIMITS_H_FALSE= fi if test -n "$STDINT_H"; then GL_GENERATE_STDINT_H_TRUE= GL_GENERATE_STDINT_H_FALSE='#' else GL_GENERATE_STDINT_H_TRUE='#' GL_GENERATE_STDINT_H_FALSE= fi GNULIB_FFS=0; HAVE_FFS=1; HAVE_STRCASECMP=1; HAVE_DECL_STRNCASECMP=1; for ac_func in strcasestr do ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr" if test "x$ac_cv_func_strcasestr" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRCASESTR 1 _ACEOF fi done if test $ac_cv_func_strcasestr = no; then HAVE_STRCASESTR=0 else if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then REPLACE_STRCASESTR=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strcasestr works" >&5 $as_echo_n "checking whether strcasestr works... " >&6; } if ${gl_cv_func_strcasestr_works_always+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ || defined __UCLIBC__ Lucky user #endif #elif defined __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #else Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1; then : gl_cv_func_strcasestr_works_always="guessing yes" else gl_cv_func_strcasestr_works_always="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for strcasestr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P int main () { return !!strcasestr (HAYSTACK, NEEDLE); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strcasestr_works_always=yes else gl_cv_func_strcasestr_works_always=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strcasestr_works_always" >&5 $as_echo "$gl_cv_func_strcasestr_works_always" >&6; } case "$gl_cv_func_strcasestr_works_always" in *yes) ;; *) REPLACE_STRCASESTR=1 ;; esac fi fi ac_fn_c_check_decl "$LINENO" "strdup" "ac_cv_have_decl_strdup" "$ac_includes_default" if test "x$ac_cv_have_decl_strdup" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRDUP $ac_have_decl _ACEOF if test $gl_cv_have_include_next = yes; then gl_cv_next_string_h='<'string.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_string_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'string.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_string_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_string_h gl_cv_next_string_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5 $as_echo "$gl_cv_next_string_h" >&6; } fi NEXT_STRING_H=$gl_cv_next_string_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'string.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_string_h fi NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive : if test $gl_cv_have_include_next = yes; then gl_cv_next_strings_h='<'strings.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_strings_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_strings_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'strings.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_strings_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_strings_h gl_cv_next_strings_h='"'$gl_header'"' else gl_cv_next_strings_h='<'strings.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_strings_h" >&5 $as_echo "$gl_cv_next_strings_h" >&6; } fi NEXT_STRINGS_H=$gl_cv_next_strings_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'strings.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_strings_h fi NEXT_AS_FIRST_DIRECTIVE_STRINGS_H=$gl_next_as_first_directive if test $ac_cv_header_strings_h = yes; then HAVE_STRINGS_H=1 else HAVE_STRINGS_H=0 fi ac_fn_c_check_decl "$LINENO" "strndup" "ac_cv_have_decl_strndup" "$ac_includes_default" if test "x$ac_cv_have_decl_strndup" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRNDUP $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default" if test "x$ac_cv_have_decl_strnlen" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRNLEN $ac_have_decl _ACEOF ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include " if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes; then : $as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h fi GNULIB_UNAME=0; HAVE_UNAME=1; HAVE_STRUCT_UTSNAME=1; : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_time_h=yes else gl_cv_sys_struct_timespec_in_time_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_time_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_time_h" >&6; } TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_sys_time_h=yes else gl_cv_sys_struct_timespec_in_sys_time_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; } if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_pthread_h=yes else gl_cv_sys_struct_timespec_in_pthread_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; } if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_unistd_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_unistd_h=yes else gl_cv_sys_struct_timespec_in_unistd_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_unistd_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_unistd_h" >&6; } if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 fi fi fi fi if test $gl_cv_have_include_next = yes; then gl_cv_next_time_h='<'time.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'time.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_time_h gl_cv_next_time_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5 $as_echo "$gl_cv_next_time_h" >&6; } fi NEXT_TIME_H=$gl_cv_next_time_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'time.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_time_h fi NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 $as_echo_n "checking for inttypes.h... " >&6; } if ${gl_cv_header_inttypes_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { uintmax_t i = (uintmax_t) -1; return !i; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_inttypes_h=yes else gl_cv_header_inttypes_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5 $as_echo "$gl_cv_header_inttypes_h" >&6; } if test $gl_cv_header_inttypes_h = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_INTTYPES_H_WITH_UINTMAX 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 $as_echo_n "checking for stdint.h... " >&6; } if ${gl_cv_header_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { uintmax_t i = (uintmax_t) -1; return !i; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_stdint_h=yes else gl_cv_header_stdint_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5 $as_echo "$gl_cv_header_stdint_h" >&6; } if test $gl_cv_header_stdint_h = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H_WITH_UINTMAX 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 $as_echo_n "checking for intmax_t... " >&6; } if ${gt_cv_c_intmax_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_STDINT_H_WITH_UINTMAX #include #endif #if HAVE_INTTYPES_H_WITH_UINTMAX #include #endif int main () { intmax_t x = -1; return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_intmax_t=yes else gt_cv_c_intmax_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5 $as_echo "$gt_cv_c_intmax_t" >&6; } if test $gt_cv_c_intmax_t = yes; then $as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h else test $ac_cv_type_long_long_int = yes \ && ac_type='long long' \ || ac_type='long' cat >>confdefs.h <<_ACEOF #define intmax_t $ac_type _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5 $as_echo_n "checking where to find the exponent in a 'double'... " >&6; } if ${gl_cv_cc_double_expbit0+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined arm || defined __arm || defined __arm__ mixed_endianness #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "mixed_endianness" >/dev/null 2>&1; then : gl_cv_cc_double_expbit0="unknown" else : if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi : case $ac_cv_c_bigendian in #( yes) gl_cv_cc_double_expbit0="word 0 bit 20";; #( no) gl_cv_cc_double_expbit0="word 1 bit 20" ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) gl_cv_cc_double_expbit0="unknown" ;; esac fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #define NWORDS \ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) typedef union { double value; unsigned int word[NWORDS]; } memory_double; static unsigned int ored_words[NWORDS]; static unsigned int anded_words[NWORDS]; static void add_to_ored_words (double x) { memory_double m; size_t i; /* Clear it first, in case sizeof (double) < sizeof (memory_double). */ memset (&m, 0, sizeof (memory_double)); m.value = x; for (i = 0; i < NWORDS; i++) { ored_words[i] |= m.word[i]; anded_words[i] &= m.word[i]; } } int main () { size_t j; FILE *fp = fopen ("conftest.out", "w"); if (fp == NULL) return 1; for (j = 0; j < NWORDS; j++) anded_words[j] = ~ (unsigned int) 0; add_to_ored_words (0.25); add_to_ored_words (0.5); add_to_ored_words (1.0); add_to_ored_words (2.0); add_to_ored_words (4.0); /* Remove bits that are common (e.g. if representation of the first mantissa bit is explicit). */ for (j = 0; j < NWORDS; j++) ored_words[j] &= ~anded_words[j]; /* Now find the nonzero word. */ for (j = 0; j < NWORDS; j++) if (ored_words[j] != 0) break; if (j < NWORDS) { size_t i; for (i = j + 1; i < NWORDS; i++) if (ored_words[i] != 0) { fprintf (fp, "unknown"); return (fclose (fp) != 0); } for (i = 0; ; i++) if ((ored_words[j] >> i) & 1) { fprintf (fp, "word %d bit %d", (int) j, (int) i); return (fclose (fp) != 0); } } fprintf (fp, "unknown"); return (fclose (fp) != 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_cc_double_expbit0=`cat conftest.out` else gl_cv_cc_double_expbit0="unknown" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5 $as_echo "$gl_cv_cc_double_expbit0" >&6; } case "$gl_cv_cc_double_expbit0" in word*bit*) word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'` bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'` cat >>confdefs.h <<_ACEOF #define DBL_EXPBIT0_WORD $word _ACEOF cat >>confdefs.h <<_ACEOF #define DBL_EXPBIT0_BIT $bit _ACEOF ;; esac for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include " if test "x$ac_cv_have_decl__snprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__SNPRINTF $ac_have_decl _ACEOF case "$gl_cv_func_snprintf_retval_c99" in *yes) $as_echo "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h ;; esac ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default" if test "x$ac_cv_have_decl_vsnprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_VSNPRINTF $ac_have_decl _ACEOF : if test $ac_cv_header_crtdefs_h = yes; then HAVE_CRTDEFS_H=1 else HAVE_CRTDEFS_H=0 fi GNULIB_ISWBLANK=0; GNULIB_WCTYPE=0; GNULIB_ISWCTYPE=0; GNULIB_WCTRANS=0; GNULIB_TOWCTRANS=0; HAVE_ISWBLANK=1; HAVE_WCTYPE_T=1; HAVE_WCTRANS_T=1; REPLACE_ISWBLANK=0; GNULIB_ISBLANK=0; HAVE_ISBLANK=1; : { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5 $as_echo_n "checking if environ is properly declared... " >&6; } if ${gt_cv_var_environ_declaration+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_UNISTD_H #include #endif /* mingw, BeOS, Haiku declare environ in , not in . */ #include extern struct { int foo; } environ; int main () { environ.foo = 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_var_environ_declaration=no else gt_cv_var_environ_declaration=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5 $as_echo "$gt_cv_var_environ_declaration" >&6; } if test $gt_cv_var_environ_declaration = yes; then $as_echo "#define HAVE_ENVIRON_DECL 1" >>confdefs.h fi if test $gt_cv_var_environ_declaration != yes; then HAVE_DECL_ENVIRON=0 fi GNULIB_FCNTL=0; GNULIB_NONBLOCKING=0; GNULIB_OPEN=0; GNULIB_OPENAT=0; HAVE_FCNTL=1; HAVE_OPENAT=1; REPLACE_FCNTL=0; REPLACE_OPEN=0; REPLACE_OPENAT=0; : : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 $as_echo_n "checking for working fcntl.h... " >&6; } if ${gl_cv_header_working_fcntl_h+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess 'no' on native Windows. mingw*) gl_cv_header_working_fcntl_h='no' ;; *) gl_cv_header_working_fcntl_h=cross-compiling ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include # include # defined sleep(n) _sleep ((n) * 1000) #endif #include #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; int main () { int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_header_working_fcntl_h=yes else case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 $as_echo "$gl_cv_header_working_fcntl_h" >&6; } case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac cat >>confdefs.h <<_ACEOF #define HAVE_WORKING_O_NOATIME $ac_val _ACEOF case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac cat >>confdefs.h <<_ACEOF #define HAVE_WORKING_O_NOFOLLOW $ac_val _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ungetc works on arbitrary bytes" >&5 $as_echo_n "checking whether ungetc works on arbitrary bytes... " >&6; } if ${gl_cv_func_ungetc_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc and bionic systems. *-gnu* | gnu* | *-android*) gl_cv_func_ungetc_works="guessing yes" ;; # Guess yes on native Windows. mingw*) gl_cv_func_ungetc_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_ungetc_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f; if (!(f = fopen ("conftest.tmp", "w+"))) return 1; if (fputs ("abc", f) < 0) { fclose (f); return 2; } rewind (f); if (fgetc (f) != 'a') { fclose (f); return 3; } if (fgetc (f) != 'b') { fclose (f); return 4; } if (ungetc ('d', f) != 'd') { fclose (f); return 5; } if (ftell (f) != 1) { fclose (f); return 6; } if (fgetc (f) != 'd') { fclose (f); return 7; } if (ftell (f) != 2) { fclose (f); return 8; } if (fseek (f, 0, SEEK_CUR) != 0) { fclose (f); return 9; } if (ftell (f) != 2) { fclose (f); return 10; } if (fgetc (f) != 'c') { fclose (f); return 11; } fclose (f); remove ("conftest.tmp"); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_ungetc_works=yes else gl_cv_func_ungetc_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ungetc_works" >&5 $as_echo "$gl_cv_func_ungetc_works" >&6; } case "$gl_cv_func_ungetc_works" in *yes) ;; *) $as_echo "#define FUNC_UNGETC_BROKEN 1" >>confdefs.h ;; esac : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd (NULL, 0) allocates memory for result" >&5 $as_echo_n "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; } if ${gl_cv_func_getcwd_null+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_getcwd_null="guessing yes";; # Guess yes on Cygwin. cygwin*) gl_cv_func_getcwd_null="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_getcwd_null="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include # if HAVE_UNISTD_H # include # else /* on Windows with MSVC */ # include # endif # ifndef getcwd char *getcwd (); # endif int main () { #if defined _WIN32 && ! defined __CYGWIN__ /* mingw cwd does not start with '/', but getcwd does allocate. However, mingw fails to honor non-zero size. */ #else if (chdir ("/") != 0) return 1; else { char *f = getcwd (NULL, 0); if (! f) return 2; if (f[0] != '/') { free (f); return 3; } if (f[1] != '\0') { free (f); return 4; } free (f); return 0; } #endif ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getcwd_null=yes else gl_cv_func_getcwd_null=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5 $as_echo "$gl_cv_func_getcwd_null" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getcwd with POSIX signature" >&5 $as_echo_n "checking for getcwd with POSIX signature... " >&6; } if ${gl_cv_func_getcwd_posix_signature+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { extern #ifdef __cplusplus "C" #endif char *getcwd (char *, size_t); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_getcwd_posix_signature=yes else gl_cv_func_getcwd_posix_signature=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_posix_signature" >&5 $as_echo "$gl_cv_func_getcwd_posix_signature" >&6; } ac_fn_c_check_decl "$LINENO" "getdtablesize" "ac_cv_have_decl_getdtablesize" "$ac_includes_default" if test "x$ac_cv_have_decl_getdtablesize" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETDTABLESIZE $ac_have_decl _ACEOF GNULIB_IMAXABS=0; GNULIB_IMAXDIV=0; GNULIB_STRTOIMAX=0; GNULIB_STRTOUMAX=0; HAVE_DECL_IMAXABS=1; HAVE_DECL_IMAXDIV=1; HAVE_DECL_STRTOIMAX=1; HAVE_DECL_STRTOUMAX=1; HAVE_IMAXDIV_T=1; REPLACE_STRTOIMAX=0; REPLACE_STRTOUMAX=0; INT32_MAX_LT_INTMAX_MAX=1; INT64_MAX_EQ_LONG_MAX='defined _LP64'; PRI_MACROS_BROKEN=0; PRIPTR_PREFIX=__PRIPTR_PREFIX; UINT32_MAX_LT_UINTMAX_MAX=1; UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; : : if test $gl_cv_have_include_next = yes; then gl_cv_next_inttypes_h='<'inttypes.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_inttypes_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_inttypes_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'inttypes.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_inttypes_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_inttypes_h gl_cv_next_inttypes_h='"'$gl_header'"' else gl_cv_next_inttypes_h='<'inttypes.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_inttypes_h" >&5 $as_echo "$gl_cv_next_inttypes_h" >&6; } fi NEXT_INTTYPES_H=$gl_cv_next_inttypes_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'inttypes.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_inttypes_h fi NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H=$gl_next_as_first_directive for ac_header in inttypes.h do ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" if test "x$ac_cv_header_inttypes_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_INTTYPES_H 1 _ACEOF fi done if test $ac_cv_header_inttypes_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5 $as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; } if ${gt_cv_inttypes_pri_broken+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef PRId32 char *p = PRId32; #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_inttypes_pri_broken=no else gt_cv_inttypes_pri_broken=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5 $as_echo "$gt_cv_inttypes_pri_broken" >&6; } fi if test "$gt_cv_inttypes_pri_broken" = yes; then cat >>confdefs.h <<_ACEOF #define PRI_MACROS_BROKEN 1 _ACEOF PRI_MACROS_BROKEN=1 else PRI_MACROS_BROKEN=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if ${gt_cv_val_LC_MESSAGES+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_val_LC_MESSAGES=yes else gt_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_val_LC_MESSAGES" >&5 $as_echo "$gt_cv_val_LC_MESSAGES" >&6; } if test $gt_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${gl_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$cross_compiling" = yes; then : case "$host_os" in linux-* | linux) # Guess yes on Linux systems. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; *-gnu* | gnu*) # Guess yes on glibc systems. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; mingw*) # Guess no on native Windows. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; *) # If we don't know, assume the worst. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; if (symlink ("conftest.file", "conftest.sym") != 0) return 1; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_lstat_dereferences_slashed_symlink=yes else gl_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; } case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *yes) cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5 $as_echo_n "checking for O_CLOEXEC... " >&6; } if ${gl_cv_macro_O_CLOEXEC+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef O_CLOEXEC choke me; #endif int main () { return O_CLOEXEC; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_macro_O_CLOEXEC=yes else gl_cv_macro_O_CLOEXEC=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_macro_O_CLOEXEC" >&5 $as_echo "$gl_cv_macro_O_CLOEXEC" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5 $as_echo_n "checking for promoted mode_t type... " >&6; } if ${gl_cv_promoted_mode_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_promoted_mode_t='int' else gl_cv_promoted_mode_t='mode_t' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_promoted_mode_t" >&5 $as_echo "$gl_cv_promoted_mode_t" >&6; } cat >>confdefs.h <<_ACEOF #define PROMOTED_MODE_T $gl_cv_promoted_mode_t _ACEOF ac_fn_c_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default" if test "x$ac_cv_have_decl_setenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SETENV $ac_have_decl _ACEOF : if test $ac_cv_have_decl_setenv = no; then HAVE_DECL_SETENV=0 fi : : for ac_header in search.h do ac_fn_c_check_header_mongrel "$LINENO" "search.h" "ac_cv_header_search_h" "$ac_includes_default" if test "x$ac_cv_header_search_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SEARCH_H 1 _ACEOF fi done for ac_func in tsearch do ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch" if test "x$ac_cv_func_tsearch" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TSEARCH 1 _ACEOF fi done ac_fn_c_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_default" if test "x$ac_cv_have_decl_unsetenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_UNSETENV $ac_have_decl _ACEOF if true; then GL_COND_LIBTOOL_TRUE= GL_COND_LIBTOOL_FALSE='#' else GL_COND_LIBTOOL_TRUE='#' GL_COND_LIBTOOL_FALSE= fi gl_cond_libtool=true gl_m4_base='libmissing/m4' gl_source_base='libmissing' if test "$ac_cv_header_winsock2_h" = yes; then gl_LIBOBJS="$gl_LIBOBJS accept.$ac_objext" fi GNULIB_ACCEPT=1 $as_echo "#define GNULIB_TEST_ACCEPT 1" >>confdefs.h LTALLOCA=`echo "$ALLOCA" | sed -e 's/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'` if test $ac_cv_func_alloca_works = no; then : fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5 $as_echo_n "checking for alloca as a compiler built-in... " >&6; } if ${gl_cv_rpl_alloca+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Need own alloca" >/dev/null 2>&1; then : gl_cv_rpl_alloca=yes else gl_cv_rpl_alloca=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5 $as_echo "$gl_cv_rpl_alloca" >&6; } if test $gl_cv_rpl_alloca = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h ALLOCA_H=alloca.h else ALLOCA_H= fi else ALLOCA_H=alloca.h fi if test -n "$ALLOCA_H"; then GL_GENERATE_ALLOCA_H_TRUE= GL_GENERATE_ALLOCA_H_FALSE='#' else GL_GENERATE_ALLOCA_H_TRUE='#' GL_GENERATE_ALLOCA_H_FALSE= fi : if test $ac_cv_header_arpa_inet_h = yes; then HAVE_ARPA_INET_H=1 else HAVE_ARPA_INET_H=0 fi : if test $gl_cv_have_include_next = yes; then gl_cv_next_arpa_inet_h='<'arpa/inet.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_arpa_inet_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_arpa_inet_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'arpa/inet.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_arpa_inet_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_arpa_inet_h gl_cv_next_arpa_inet_h='"'$gl_header'"' else gl_cv_next_arpa_inet_h='<'arpa/inet.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_arpa_inet_h" >&5 $as_echo "$gl_cv_next_arpa_inet_h" >&6; } fi NEXT_ARPA_INET_H=$gl_cv_next_arpa_inet_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'arpa/inet.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_arpa_inet_h fi NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H=$gl_next_as_first_directive if test "$ac_cv_header_winsock2_h" = yes; then gl_LIBOBJS="$gl_LIBOBJS bind.$ac_objext" fi GNULIB_BIND=1 $as_echo "#define GNULIB_TEST_BIND 1" >>confdefs.h : if test $ac_cv_func_btowc = no; then HAVE_BTOWC=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5 $as_echo_n "checking whether btowc(0) is correct... " >&6; } if ${gl_cv_func_btowc_nul+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on Cygwin. cygwin*) gl_cv_func_btowc_nul="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_btowc_nul="guessing yes" ;; # Guess yes otherwise. *) gl_cv_func_btowc_nul="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (btowc ('\0') != 0) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_btowc_nul=yes else gl_cv_func_btowc_nul=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_nul" >&5 $as_echo "$gl_cv_func_btowc_nul" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5 $as_echo_n "checking whether btowc(EOF) is correct... " >&6; } if ${gl_cv_func_btowc_eof+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on IRIX. irix*) gl_cv_func_btowc_eof="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_btowc_eof="guessing yes" ;; # Guess yes otherwise. *) gl_cv_func_btowc_eof="guessing yes" ;; esac if test $LOCALE_FR != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { if (btowc (EOF) != WEOF) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_btowc_eof=yes else gl_cv_func_btowc_eof=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5 $as_echo "$gl_cv_func_btowc_eof" >&6; } case "$gl_cv_func_btowc_nul" in *yes) ;; *) REPLACE_BTOWC=1 ;; esac case "$gl_cv_func_btowc_eof" in *yes) ;; *) REPLACE_BTOWC=1 ;; esac fi if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then gl_LIBOBJS="$gl_LIBOBJS btowc.$ac_objext" : fi GNULIB_BTOWC=1 $as_echo "#define GNULIB_TEST_BTOWC 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5 $as_echo_n "checking for __builtin_expect... " >&6; } if ${gl_cv___builtin_expect+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (int argc, char **argv) { argc = __builtin_expect (argc, 100); return argv[argc != 100][0]; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv___builtin_expect=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (int argc, char **argv) { argc = __builtin_expect (argc, 100); return argv[argc != 100][0]; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv___builtin_expect="in " else gl_cv___builtin_expect=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv___builtin_expect" >&5 $as_echo "$gl_cv___builtin_expect" >&6; } if test "$gl_cv___builtin_expect" = yes; then $as_echo "#define HAVE___BUILTIN_EXPECT 1" >>confdefs.h elif test "$gl_cv___builtin_expect" = "in "; then $as_echo "#define HAVE___BUILTIN_EXPECT 2" >>confdefs.h fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_CLOSE=1 fi : if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then REPLACE_CLOSE=1 fi if test $REPLACE_CLOSE = 1; then gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext" fi GNULIB_CLOSE=1 $as_echo "#define GNULIB_TEST_CLOSE 1" >>confdefs.h if test "$ac_cv_header_winsock2_h" = yes; then gl_LIBOBJS="$gl_LIBOBJS connect.$ac_objext" fi GNULIB_CONNECT=1 $as_echo "#define GNULIB_TEST_CONNECT 1" >>confdefs.h $as_echo "#define HAVE_DUP2 1" >>confdefs.h if test $HAVE_DUP2 = 1; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5 $as_echo_n "checking whether dup2 works... " >&6; } if ${gl_cv_func_dup2_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 gl_cv_func_dup2_works="guessing no" ;; aix* | freebsd*) # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, # not EBADF. gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. gl_cv_func_dup2_works="guessing no" ;; *-android*) # implemented using dup3(), which fails if oldfd == newfd gl_cv_func_dup2_works="guessing no" ;; os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif int main () { int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) != 1) result |= 2; #ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif close (0); if (dup2 (0, 0) != -1) result |= 8; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, bad_fd) == -1 && errno != EBADF) result |= 16; /* Flush out some cygwin core dumps. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; dup2 (2, 255); dup2 (2, 256); /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ { int fd = open (".", O_RDONLY); if (fd == -1) result |= 64; else if (dup2 (fd, fd + 1) == -1) result |= 128; close (fd); } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_dup2_works=yes else gl_cv_func_dup2_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5 $as_echo "$gl_cv_func_dup2_works" >&6; } case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 for ac_func in setdtablesize do ac_fn_c_check_func "$LINENO" "setdtablesize" "ac_cv_func_setdtablesize" if test "x$ac_cv_func_setdtablesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SETDTABLESIZE 1 _ACEOF fi done ;; esac fi if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext" fi GNULIB_DUP2=1 $as_echo "#define GNULIB_TEST_DUP2 1" >>confdefs.h : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 $as_echo_n "checking whether fflush works on input streams... " >&6; } if ${gl_cv_func_fflush_stdin+:} false; then : $as_echo_n "(cached) " >&6 else echo hello world > conftest.txt if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on native Windows. mingw*) gl_cv_func_fflush_stdin="guessing no" ;; *) gl_cv_func_fflush_stdin=cross ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif int main () { FILE *f = fopen ("conftest.txt", "r"); char buffer[10]; int fd; int c; if (f == NULL) return 1; fd = fileno (f); if (fd < 0 || fread (buffer, 1, 5, f) != 5) { fclose (f); return 2; } /* For deterministic results, ensure f read a bigger buffer. */ if (lseek (fd, 0, SEEK_CUR) == 5) { fclose (f); return 3; } /* POSIX requires fflush-fseek to set file offset of fd. This fails on BSD systems and on mingw. */ if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) { fclose (f); return 4; } if (lseek (fd, 0, SEEK_CUR) != 5) { fclose (f); return 5; } /* Verify behaviour of fflush after ungetc. See */ /* Verify behaviour of fflush after a backup ungetc. This fails on mingw. */ c = fgetc (f); ungetc (c, f); fflush (f); if (fgetc (f) != c) { fclose (f); return 6; } /* Verify behaviour of fflush after a non-backup ungetc. This fails on glibc 2.8 and on BSD systems. */ c = fgetc (f); ungetc ('@', f); fflush (f); if (fgetc (f) != c) { fclose (f); return 7; } fclose (f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fflush_stdin=yes else gl_cv_func_fflush_stdin=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm conftest.txt fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 $as_echo "$gl_cv_func_fflush_stdin" >&6; } case "$gl_cv_func_fflush_stdin" in *yes) gl_func_fflush_stdin=1 ;; *no) gl_func_fflush_stdin=0 ;; *) gl_func_fflush_stdin='(-1)' ;; esac cat >>confdefs.h <<_ACEOF #define FUNC_FFLUSH_STDIN $gl_func_fflush_stdin _ACEOF case "$gl_cv_func_fflush_stdin" in *yes) ;; *) REPLACE_FCLOSE=1 ;; esac if test $REPLACE_CLOSE = 1; then REPLACE_FCLOSE=1 fi case "$host_os" in openedition) REPLACE_FCLOSE=1 ;; esac if test $REPLACE_FCLOSE = 1; then gl_LIBOBJS="$gl_LIBOBJS fclose.$ac_objext" fi GNULIB_FCLOSE=1 $as_echo "#define GNULIB_TEST_FCLOSE 1" >>confdefs.h : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 $as_echo_n "checking whether fflush works on input streams... " >&6; } if ${gl_cv_func_fflush_stdin+:} false; then : $as_echo_n "(cached) " >&6 else echo hello world > conftest.txt if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on native Windows. mingw*) gl_cv_func_fflush_stdin="guessing no" ;; *) gl_cv_func_fflush_stdin=cross ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif int main () { FILE *f = fopen ("conftest.txt", "r"); char buffer[10]; int fd; int c; if (f == NULL) return 1; fd = fileno (f); if (fd < 0 || fread (buffer, 1, 5, f) != 5) { fclose (f); return 2; } /* For deterministic results, ensure f read a bigger buffer. */ if (lseek (fd, 0, SEEK_CUR) == 5) { fclose (f); return 3; } /* POSIX requires fflush-fseek to set file offset of fd. This fails on BSD systems and on mingw. */ if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) { fclose (f); return 4; } if (lseek (fd, 0, SEEK_CUR) != 5) { fclose (f); return 5; } /* Verify behaviour of fflush after ungetc. See */ /* Verify behaviour of fflush after a backup ungetc. This fails on mingw. */ c = fgetc (f); ungetc (c, f); fflush (f); if (fgetc (f) != c) { fclose (f); return 6; } /* Verify behaviour of fflush after a non-backup ungetc. This fails on glibc 2.8 and on BSD systems. */ c = fgetc (f); ungetc ('@', f); fflush (f); if (fgetc (f) != c) { fclose (f); return 7; } fclose (f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fflush_stdin=yes else gl_cv_func_fflush_stdin=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm conftest.txt fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 $as_echo "$gl_cv_func_fflush_stdin" >&6; } case "$gl_cv_func_fflush_stdin" in *yes) gl_func_fflush_stdin=1 ;; *no) gl_func_fflush_stdin=0 ;; *) gl_func_fflush_stdin='(-1)' ;; esac cat >>confdefs.h <<_ACEOF #define FUNC_FFLUSH_STDIN $gl_func_fflush_stdin _ACEOF case "$gl_cv_func_fflush_stdin" in *yes) ;; *) REPLACE_FFLUSH=1 ;; esac if test $REPLACE_FFLUSH = 1; then gl_LIBOBJS="$gl_LIBOBJS fflush.$ac_objext" : fi cat >>confdefs.h <<_ACEOF #define GNULIB_FFLUSH 1 _ACEOF GNULIB_FFLUSH=1 $as_echo "#define GNULIB_TEST_FFLUSH 1" >>confdefs.h FLOAT_H= REPLACE_FLOAT_LDBL=0 case "$host_os" in aix* | beos* | openbsd* | mirbsd* | irix*) FLOAT_H=float.h ;; freebsd* | dragonfly*) case "$host_cpu" in i[34567]86 ) FLOAT_H=float.h ;; x86_64 ) # On x86_64 systems, the C compiler may still be generating # 32-bit code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ || defined __x86_64__ || defined __amd64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else FLOAT_H=float.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; esac ;; linux*) case "$host_cpu" in powerpc*) FLOAT_H=float.h ;; esac ;; esac case "$host_os" in aix* | freebsd* | dragonfly* | linux*) if test -n "$FLOAT_H"; then REPLACE_FLOAT_LDBL=1 fi ;; esac REPLACE_ITOLD=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5 $as_echo_n "checking whether conversion from 'int' to 'long double' works... " >&6; } if ${gl_cv_func_itold_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host" in sparc*-*-linux*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ || defined __arch64__ int ok; #else error fail #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_itold_works="guessing no" else gl_cv_func_itold_works="guessing yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; # Guess yes on native Windows. mingw*) gl_cv_func_itold_works="guessing yes" ;; *) gl_cv_func_itold_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int i = -1; volatile long double ld; int main () { ld += i * 1.0L; if (ld > 0) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_itold_works=yes else gl_cv_func_itold_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5 $as_echo "$gl_cv_func_itold_works" >&6; } case "$gl_cv_func_itold_works" in *no) REPLACE_ITOLD=1 FLOAT_H=float.h ;; esac if test -n "$FLOAT_H"; then if test $gl_cv_have_include_next = yes; then gl_cv_next_float_h='<'float.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_float_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'float.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_float_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_float_h gl_cv_next_float_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_float_h" >&5 $as_echo "$gl_cv_next_float_h" >&6; } fi NEXT_FLOAT_H=$gl_cv_next_float_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'float.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_float_h fi NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive fi if test -n "$FLOAT_H"; then GL_GENERATE_FLOAT_H_TRUE= GL_GENERATE_FLOAT_H_FALSE='#' else GL_GENERATE_FLOAT_H_TRUE='#' GL_GENERATE_FLOAT_H_FALSE= fi if test $REPLACE_FLOAT_LDBL = 1; then gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext" fi if test $REPLACE_ITOLD = 1; then gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext" fi case "$host_os" in mingw* | pw*) REPLACE_FOPEN=1 gl_cv_func_fopen_slash="guessing no" ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fopen recognizes a trailing slash" >&5 $as_echo_n "checking whether fopen recognizes a trailing slash... " >&6; } if ${gl_cv_func_fopen_slash+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_fopen_slash="guessing no" ;; *) gl_cv_func_fopen_slash="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { FILE *fp = fopen ("conftest.sl/", "w"); int result = (fp != NULL); if (fp != NULL) fclose (fp); return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fopen_slash=yes else gl_cv_func_fopen_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.sl fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fopen_slash" >&5 $as_echo "$gl_cv_func_fopen_slash" >&6; } ;; esac case "$gl_cv_func_fopen_slash" in *no) $as_echo "#define FOPEN_TRAILING_SLASH_BUG 1" >>confdefs.h REPLACE_FOPEN=1 ;; esac if test $REPLACE_FOPEN = 1; then gl_LIBOBJS="$gl_LIBOBJS fopen.$ac_objext" : fi GNULIB_FOPEN=1 $as_echo "#define GNULIB_TEST_FOPEN 1" >>confdefs.h : : ac_fn_c_check_decl "$LINENO" "fpurge" "ac_cv_have_decl_fpurge" "#include " if test "x$ac_cv_have_decl_fpurge" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FPURGE $ac_have_decl _ACEOF if test "x$ac_cv_func_fpurge" = xyes; then HAVE_FPURGE=1 # Detect BSD bug. Only cygwin 1.7 is known to be immune. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fpurge works" >&5 $as_echo_n "checking whether fpurge works... " >&6; } if ${gl_cv_func_fpurge_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_func_fpurge_works='guessing no' else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.txt", "w+"); if (!f) return 1; if (fputc ('a', f) != 'a') { fclose (f); return 2; } rewind (f); if (fgetc (f) != 'a') { fclose (f); return 3; } if (fgetc (f) != EOF) { fclose (f); return 4; } if (fpurge (f) != 0) { fclose (f); return 5; } if (putc ('b', f) != 'b') { fclose (f); return 6; } if (fclose (f) != 0) return 7; if ((f = fopen ("conftest.txt", "r")) == NULL) return 8; if (fgetc (f) != 'a') { fclose (f); return 9; } if (fgetc (f) != 'b') { fclose (f); return 10; } if (fgetc (f) != EOF) { fclose (f); return 11; } if (fclose (f) != 0) return 12; if (remove ("conftest.txt") != 0) return 13; return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fpurge_works=yes else gl_cv_func_fpurge_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fpurge_works" >&5 $as_echo "$gl_cv_func_fpurge_works" >&6; } if test "x$gl_cv_func_fpurge_works" != xyes; then REPLACE_FPURGE=1 fi else HAVE_FPURGE=0 fi if test "x$ac_cv_have_decl_fpurge" = xno; then HAVE_DECL_FPURGE=0 fi if test $HAVE_FPURGE = 0 || test $REPLACE_FPURGE = 1; then gl_LIBOBJS="$gl_LIBOBJS fpurge.$ac_objext" fi GNULIB_FPURGE=1 $as_echo "#define GNULIB_TEST_FPURGE 1" >>confdefs.h : if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then REPLACE_FSEEK=1 fi if test $REPLACE_FSEEK = 1; then gl_LIBOBJS="$gl_LIBOBJS fseek.$ac_objext" fi GNULIB_FSEEK=1 $as_echo "#define GNULIB_TEST_FSEEK 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5 $as_echo_n "checking for fseeko... " >&6; } if ${gl_cv_func_fseeko+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { fseeko (stdin, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_fseeko=yes else gl_cv_func_fseeko=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5 $as_echo "$gl_cv_func_fseeko" >&6; } : if test $ac_cv_have_decl_fseeko = no; then HAVE_DECL_FSEEKO=0 fi if test $gl_cv_func_fseeko = no; then HAVE_FSEEKO=0 else if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_FSEEKO=1 fi if test $gl_cv_var_stdin_large_offset = no; then REPLACE_FSEEKO=1 fi : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 $as_echo_n "checking whether fflush works on input streams... " >&6; } if ${gl_cv_func_fflush_stdin+:} false; then : $as_echo_n "(cached) " >&6 else echo hello world > conftest.txt if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on native Windows. mingw*) gl_cv_func_fflush_stdin="guessing no" ;; *) gl_cv_func_fflush_stdin=cross ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif int main () { FILE *f = fopen ("conftest.txt", "r"); char buffer[10]; int fd; int c; if (f == NULL) return 1; fd = fileno (f); if (fd < 0 || fread (buffer, 1, 5, f) != 5) { fclose (f); return 2; } /* For deterministic results, ensure f read a bigger buffer. */ if (lseek (fd, 0, SEEK_CUR) == 5) { fclose (f); return 3; } /* POSIX requires fflush-fseek to set file offset of fd. This fails on BSD systems and on mingw. */ if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) { fclose (f); return 4; } if (lseek (fd, 0, SEEK_CUR) != 5) { fclose (f); return 5; } /* Verify behaviour of fflush after ungetc. See */ /* Verify behaviour of fflush after a backup ungetc. This fails on mingw. */ c = fgetc (f); ungetc (c, f); fflush (f); if (fgetc (f) != c) { fclose (f); return 6; } /* Verify behaviour of fflush after a non-backup ungetc. This fails on glibc 2.8 and on BSD systems. */ c = fgetc (f); ungetc ('@', f); fflush (f); if (fgetc (f) != c) { fclose (f); return 7; } fclose (f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fflush_stdin=yes else gl_cv_func_fflush_stdin=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm conftest.txt fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 $as_echo "$gl_cv_func_fflush_stdin" >&6; } case "$gl_cv_func_fflush_stdin" in *yes) gl_func_fflush_stdin=1 ;; *no) gl_func_fflush_stdin=0 ;; *) gl_func_fflush_stdin='(-1)' ;; esac cat >>confdefs.h <<_ACEOF #define FUNC_FFLUSH_STDIN $gl_func_fflush_stdin _ACEOF case "$gl_cv_func_fflush_stdin" in *yes) ;; *) REPLACE_FSEEKO=1 ;; esac fi if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then gl_LIBOBJS="$gl_LIBOBJS fseeko.$ac_objext" for ac_func in _fseeki64 do ac_fn_c_check_func "$LINENO" "_fseeki64" "ac_cv_func__fseeki64" if test "x$ac_cv_func__fseeki64" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__FSEEKI64 1 _ACEOF fi done if test $ac_cv_func__fseeki64 = yes; then ac_fn_c_check_decl "$LINENO" "_fseeki64" "ac_cv_have_decl__fseeki64" "$ac_includes_default" if test "x$ac_cv_have_decl__fseeki64" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__FSEEKI64 $ac_have_decl _ACEOF fi fi GNULIB_FSEEKO=1 $as_echo "#define GNULIB_TEST_FSEEKO 1" >>confdefs.h case "$host_os" in mingw* | solaris*) REPLACE_FSTAT=1 ;; esac if test $REPLACE_FSTAT = 1; then gl_LIBOBJS="$gl_LIBOBJS fstat.$ac_objext" case "$host_os" in mingw*) gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext" ;; esac : fi GNULIB_FSTAT=1 $as_echo "#define GNULIB_TEST_FSTAT 1" >>confdefs.h if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then REPLACE_FTELL=1 fi if test $REPLACE_FTELL = 1; then gl_LIBOBJS="$gl_LIBOBJS ftell.$ac_objext" fi GNULIB_FTELL=1 $as_echo "#define GNULIB_TEST_FTELL 1" >>confdefs.h : if test $ac_cv_have_decl_ftello = no; then HAVE_DECL_FTELLO=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ftello" >&5 $as_echo_n "checking for ftello... " >&6; } if ${gl_cv_func_ftello+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { ftello (stdin); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_ftello=yes else gl_cv_func_ftello=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello" >&5 $as_echo "$gl_cv_func_ftello" >&6; } if test $gl_cv_func_ftello = no; then HAVE_FTELLO=0 else if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_FTELLO=1 fi if test $gl_cv_var_stdin_large_offset = no; then REPLACE_FTELLO=1 fi if test $REPLACE_FTELLO = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ftello works" >&5 $as_echo_n "checking whether ftello works... " >&6; } if ${gl_cv_func_ftello_works+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_ftello_works="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_ftello_works="guessing yes" ;; # Guess yes otherwise. *) gl_cv_func_ftello_works="guessing yes" ;; esac if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #define TESTFILE "conftest.tmp" int main (void) { FILE *fp; /* Create a file with some contents. */ fp = fopen (TESTFILE, "w"); if (fp == NULL) return 70; if (fwrite ("foogarsh", 1, 8, fp) < 8) { fclose (fp); return 71; } if (fclose (fp)) return 72; /* The file's contents is now "foogarsh". */ /* Try writing after reading to EOF. */ fp = fopen (TESTFILE, "r+"); if (fp == NULL) return 73; if (fseek (fp, -1, SEEK_END)) { fclose (fp); return 74; } if (!(getc (fp) == 'h')) { fclose (fp); return 1; } if (!(getc (fp) == EOF)) { fclose (fp); return 2; } if (!(ftell (fp) == 8)) { fclose (fp); return 3; } if (!(ftell (fp) == 8)) { fclose (fp); return 4; } if (!(putc ('!', fp) == '!')) { fclose (fp); return 5; } if (!(ftell (fp) == 9)) { fclose (fp); return 6; } if (!(fclose (fp) == 0)) return 7; fp = fopen (TESTFILE, "r"); if (fp == NULL) return 75; { char buf[10]; if (!(fread (buf, 1, 10, fp) == 9)) { fclose (fp); return 10; } if (!(memcmp (buf, "foogarsh!", 9) == 0)) { fclose (fp); return 11; } } if (!(fclose (fp) == 0)) return 12; /* The file's contents is now "foogarsh!". */ return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_ftello_works=yes else gl_cv_func_ftello_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello_works" >&5 $as_echo "$gl_cv_func_ftello_works" >&6; } case "$gl_cv_func_ftello_works" in *yes) ;; *) REPLACE_FTELLO=1 $as_echo "#define FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE 1" >>confdefs.h ;; esac fi fi if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then gl_LIBOBJS="$gl_LIBOBJS ftello.$ac_objext" for ac_func in _ftelli64 do ac_fn_c_check_func "$LINENO" "_ftelli64" "ac_cv_func__ftelli64" if test "x$ac_cv_func__ftelli64" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__FTELLI64 1 _ACEOF fi done fi GNULIB_FTELLO=1 $as_echo "#define GNULIB_TEST_FTELLO 1" >>confdefs.h for ac_func in ftw do ac_fn_c_check_func "$LINENO" "ftw" "ac_cv_func_ftw" if test "x$ac_cv_func_ftw" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FTW 1 _ACEOF else gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" fi done : { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to do getaddrinfo, freeaddrinfo and getnameinfo" >&5 $as_echo_n "checking how to do getaddrinfo, freeaddrinfo and getnameinfo... " >&6; } GETADDRINFO_LIB= gai_saved_LIBS="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getaddrinfo" >&5 $as_echo_n "checking for library containing getaddrinfo... " >&6; } if ${ac_cv_search_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char getaddrinfo (); int main () { return getaddrinfo (); ; return 0; } _ACEOF for ac_lib in '' socket network net; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_getaddrinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_getaddrinfo+:} false; then : break fi done if ${ac_cv_search_getaddrinfo+:} false; then : else ac_cv_search_getaddrinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getaddrinfo" >&5 $as_echo "$ac_cv_search_getaddrinfo" >&6; } ac_res=$ac_cv_search_getaddrinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" if test "$ac_cv_search_getaddrinfo" != "none required"; then GETADDRINFO_LIB="$ac_cv_search_getaddrinfo" fi fi LIBS="$gai_saved_LIBS $GETADDRINFO_LIB" HAVE_GETADDRINFO=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5 $as_echo_n "checking for getaddrinfo... " >&6; } if ${gl_cv_func_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #include int main () { getaddrinfo("", "", NULL, NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_getaddrinfo=yes else gl_cv_func_getaddrinfo=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getaddrinfo" >&5 $as_echo "$gl_cv_func_getaddrinfo" >&6; } if test $gl_cv_func_getaddrinfo = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in ws2tcpip.h and -lws2_32" >&5 $as_echo_n "checking for getaddrinfo in ws2tcpip.h and -lws2_32... " >&6; } if ${gl_cv_w32_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_w32_getaddrinfo=no am_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_WS2TCPIP_H #include #endif #include int main () { getaddrinfo(NULL, NULL, NULL, NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_w32_getaddrinfo=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_w32_getaddrinfo" >&5 $as_echo "$gl_cv_w32_getaddrinfo" >&6; } if test "$gl_cv_w32_getaddrinfo" = "yes"; then GETADDRINFO_LIB="-lws2_32" LIBS="$gai_saved_LIBS $GETADDRINFO_LIB" else HAVE_GETADDRINFO=0 fi fi # We can't use AC_REPLACE_FUNCS here because gai_strerror may be an # inline function declared in ws2tcpip.h, so we need to get that # header included somehow. ac_fn_c_check_decl "$LINENO" "gai_strerror" "ac_cv_have_decl_gai_strerror" " #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif #include " if test "x$ac_cv_have_decl_gai_strerror" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GAI_STRERROR $ac_have_decl _ACEOF if test $ac_cv_have_decl_gai_strerror = yes; then ac_fn_c_check_decl "$LINENO" "gai_strerrorA" "ac_cv_have_decl_gai_strerrorA" " #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif #include " if test "x$ac_cv_have_decl_gai_strerrorA" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GAI_STRERRORA $ac_have_decl _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gai_strerror with POSIX signature" >&5 $as_echo_n "checking for gai_strerror with POSIX signature... " >&6; } if ${gl_cv_func_gai_strerror_posix_signature+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif #include extern #ifdef __cplusplus "C" #endif const char *gai_strerror(int); _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_gai_strerror_posix_signature=yes else gl_cv_func_gai_strerror_posix_signature=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gai_strerror_posix_signature" >&5 $as_echo "$gl_cv_func_gai_strerror_posix_signature" >&6; } if test $gl_cv_func_gai_strerror_posix_signature = no; then REPLACE_GAI_STRERROR=1 fi fi LIBS="$gai_saved_LIBS" ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" " #include #include " if test "x$ac_cv_member_struct_sockaddr_sa_len" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_SA_LEN 1 _ACEOF fi : ac_fn_c_check_decl "$LINENO" "getaddrinfo" "ac_cv_have_decl_getaddrinfo" " /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif " if test "x$ac_cv_have_decl_getaddrinfo" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETADDRINFO $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "freeaddrinfo" "ac_cv_have_decl_freeaddrinfo" " /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif " if test "x$ac_cv_have_decl_freeaddrinfo" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FREEADDRINFO $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "getnameinfo" "ac_cv_have_decl_getnameinfo" " /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif " if test "x$ac_cv_have_decl_getnameinfo" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETNAMEINFO $ac_have_decl _ACEOF if test $ac_cv_have_decl_getaddrinfo = no; then HAVE_DECL_GETADDRINFO=0 fi if test $ac_cv_have_decl_freeaddrinfo = no; then HAVE_DECL_FREEADDRINFO=0 fi if test $ac_cv_have_decl_gai_strerror = no; then HAVE_DECL_GAI_STRERROR=0 fi if test $ac_cv_have_decl_getnameinfo = no; then HAVE_DECL_GETNAMEINFO=0 fi ac_fn_c_check_type "$LINENO" "struct addrinfo" "ac_cv_type_struct_addrinfo" " #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_NETDB_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif " if test "x$ac_cv_type_struct_addrinfo" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_ADDRINFO 1 _ACEOF fi if test $ac_cv_type_struct_addrinfo = no; then HAVE_STRUCT_ADDRINFO=0 fi case " $GETADDRINFO_LIB " in *" $HOSTENT_LIB "*) ;; *) GETADDRINFO_LIB="$GETADDRINFO_LIB $HOSTENT_LIB" ;; esac case " $GETADDRINFO_LIB " in *" $SERVENT_LIB "*) ;; *) GETADDRINFO_LIB="$GETADDRINFO_LIB $SERVENT_LIB" ;; esac case " $GETADDRINFO_LIB " in *" $INET_NTOP_LIB "*) ;; *) GETADDRINFO_LIB="$GETADDRINFO_LIB $INET_NTOP_LIB" ;; esac if test $HAVE_GETADDRINFO = 0; then gl_LIBOBJS="$gl_LIBOBJS getaddrinfo.$ac_objext" fi if test $HAVE_DECL_GAI_STRERROR = 0 || test $REPLACE_GAI_STRERROR = 1; then gl_LIBOBJS="$gl_LIBOBJS gai_strerror.$ac_objext" fi GNULIB_GETADDRINFO=1 $as_echo "#define GNULIB_TEST_GETADDRINFO 1" >>confdefs.h : : if test $ac_cv_func_getdelim = yes; then HAVE_GETDELIM=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getdelim function" >&5 $as_echo_n "checking for working getdelim function... " >&6; } if ${gl_cv_func_working_getdelim+:} false; then : $as_echo_n "(cached) " >&6 else echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky GNU user" >/dev/null 2>&1; then : gl_cv_func_working_getdelim="guessing yes" else gl_cv_func_working_getdelim="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include # include # include int main () { FILE *in = fopen ("./conftest.data", "r"); if (!in) return 1; { /* Test result for a NULL buffer and a zero size. Based on a test program from Karl Heuer. */ char *line = NULL; size_t siz = 0; int len = getdelim (&line, &siz, '\n', in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) { free (line); fclose (in); return 2; } } { /* Test result for a NULL buffer and a non-zero size. This crashes on FreeBSD 8.0. */ char *line = NULL; size_t siz = (size_t)(~0) / 4; if (getdelim (&line, &siz, '\n', in) == -1) { fclose (in); return 3; } free (line); } fclose (in); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_working_getdelim=yes else gl_cv_func_working_getdelim=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5 $as_echo "$gl_cv_func_working_getdelim" >&6; } case "$gl_cv_func_working_getdelim" in *no) REPLACE_GETDELIM=1 ;; esac else HAVE_GETDELIM=0 fi if test $ac_cv_have_decl_getdelim = no; then HAVE_DECL_GETDELIM=0 fi if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then gl_LIBOBJS="$gl_LIBOBJS getdelim.$ac_objext" for ac_func in flockfile funlockfile do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETC_UNLOCKED $ac_have_decl _ACEOF fi GNULIB_GETDELIM=1 $as_echo "#define GNULIB_TEST_GETDELIM 1" >>confdefs.h : if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi GETHOSTNAME_LIB= for ac_func in gethostname do ac_fn_c_check_func "$LINENO" "gethostname" "ac_cv_func_gethostname" if test "x$ac_cv_func_gethostname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETHOSTNAME 1 _ACEOF else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostname in winsock2.h and -lws2_32" >&5 $as_echo_n "checking for gethostname in winsock2.h and -lws2_32... " >&6; } if ${gl_cv_w32_gethostname+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_w32_gethostname=no gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_WINSOCK2_H #include #endif #include int main () { gethostname(NULL, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_w32_gethostname=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_w32_gethostname" >&5 $as_echo "$gl_cv_w32_gethostname" >&6; } if test "$gl_cv_w32_gethostname" = "yes"; then GETHOSTNAME_LIB="-lws2_32" fi fi done if test "$ac_cv_func_gethostname" = no; then HAVE_GETHOSTNAME=0 fi : : : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HOST_NAME_MAX" >&5 $as_echo_n "checking for HOST_NAME_MAX... " >&6; } if ${gl_cv_decl_HOST_NAME_MAX+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_decl_HOST_NAME_MAX= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef HOST_NAME_MAX lucky #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "lucky" >/dev/null 2>&1; then : gl_cv_decl_HOST_NAME_MAX=yes fi rm -f conftest* if test -z "$gl_cv_decl_HOST_NAME_MAX"; then if test "$gl_cv_w32_gethostname" = yes; then gl_cv_decl_HOST_NAME_MAX=256 else if ac_fn_c_compute_int "$LINENO" "MAXHOSTNAMELEN" "gl_cv_decl_HOST_NAME_MAX" " #include #if HAVE_SYS_PARAM_H # include #endif #if HAVE_SYS_SOCKET_H # include #endif #if HAVE_NETDB_H # include #endif "; then : else gl_cv_decl_HOST_NAME_MAX=256 fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_HOST_NAME_MAX" >&5 $as_echo "$gl_cv_decl_HOST_NAME_MAX" >&6; } if test "$gl_cv_decl_HOST_NAME_MAX" != yes; then cat >>confdefs.h <<_ACEOF #define HOST_NAME_MAX $gl_cv_decl_HOST_NAME_MAX _ACEOF fi if test $HAVE_GETHOSTNAME = 0; then gl_LIBOBJS="$gl_LIBOBJS gethostname.$ac_objext" if test "$gl_cv_w32_gethostname" != "yes"; then for ac_func in uname do ac_fn_c_check_func "$LINENO" "uname" "ac_cv_func_uname" if test "x$ac_cv_func_uname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNAME 1 _ACEOF fi done fi fi GNULIB_GETHOSTNAME=1 $as_echo "#define GNULIB_TEST_GETHOSTNAME 1" >>confdefs.h : gl_getline_needs_run_time_check=no ac_fn_c_check_func "$LINENO" "getline" "ac_cv_func_getline" if test "x$ac_cv_func_getline" = xyes; then : gl_getline_needs_run_time_check=yes else am_cv_func_working_getline=no fi if test $gl_getline_needs_run_time_check = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getline function" >&5 $as_echo_n "checking for working getline function... " >&6; } if ${am_cv_func_working_getline+:} false; then : $as_echo_n "(cached) " >&6 else echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky GNU user" >/dev/null 2>&1; then : am_cv_func_working_getline="guessing yes" else am_cv_func_working_getline="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include # include # include int main () { FILE *in = fopen ("./conftest.data", "r"); if (!in) return 1; { /* Test result for a NULL buffer and a zero size. Based on a test program from Karl Heuer. */ char *line = NULL; size_t siz = 0; int len = getline (&line, &siz, in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) { free (line); fclose (in); return 2; } free (line); } { /* Test result for a NULL buffer and a non-zero size. This crashes on FreeBSD 8.0. */ char *line = NULL; size_t siz = (size_t)(~0) / 4; if (getline (&line, &siz, in) == -1) { fclose (in); return 3; } free (line); } fclose (in); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_working_getline=yes else am_cv_func_working_getline=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5 $as_echo "$am_cv_func_working_getline" >&6; } fi if test $ac_cv_have_decl_getline = no; then HAVE_DECL_GETLINE=0 fi case "$am_cv_func_working_getline" in *no) REPLACE_GETLINE=1 ;; esac if test $REPLACE_GETLINE = 1; then gl_LIBOBJS="$gl_LIBOBJS getline.$ac_objext" : fi GNULIB_GETLINE=1 $as_echo "#define GNULIB_TEST_GETLINE 1" >>confdefs.h if test $HAVE_GETPASS = 0 || test $REPLACE_GETPASS = 1; then gl_LIBOBJS="$gl_LIBOBJS getpass.$ac_objext" : : ac_fn_c_check_decl "$LINENO" "__fsetlocking" "ac_cv_have_decl___fsetlocking" "#include #if HAVE_STDIO_EXT_H #include #endif " if test "x$ac_cv_have_decl___fsetlocking" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL___FSETLOCKING $ac_have_decl _ACEOF : : : : : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcgetattr" >&5 $as_echo_n "checking for tcgetattr... " >&6; } if ${gl_cv_func_tcgetattr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include struct termios x; int main () { return tcgetattr(0,&x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_tcgetattr=yes else gl_cv_func_tcgetattr=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_tcgetattr" >&5 $as_echo "$gl_cv_func_tcgetattr" >&6; } if test $gl_cv_func_tcgetattr = yes; then HAVE_TCGETATTR=1 else HAVE_TCGETATTR=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_TCGETATTR $HAVE_TCGETATTR _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcsetattr" >&5 $as_echo_n "checking for tcsetattr... " >&6; } if ${gl_cv_func_tcsetattr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include struct termios x; int main () { return tcsetattr(0,0,&x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_tcsetattr=yes else gl_cv_func_tcsetattr=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_tcsetattr" >&5 $as_echo "$gl_cv_func_tcsetattr" >&6; } if test $gl_cv_func_tcsetattr = yes; then HAVE_TCSETATTR=1 else HAVE_TCSETATTR=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_TCSETATTR $HAVE_TCSETATTR _ACEOF fi GNULIB_GETPASS=1 $as_echo "#define GNULIB_TEST_GETPASS 1" >>confdefs.h if test "$ac_cv_header_winsock2_h" = yes; then gl_LIBOBJS="$gl_LIBOBJS getsockname.$ac_objext" fi GNULIB_GETSOCKNAME=1 $as_echo "#define GNULIB_TEST_GETSOCKNAME 1" >>confdefs.h : gl_gettimeofday_timezone=void if test $ac_cv_func_gettimeofday != yes; then HAVE_GETTIMEOFDAY=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday clobbers localtime buffer" >&5 $as_echo_n "checking whether gettimeofday clobbers localtime buffer... " >&6; } if ${gl_cv_func_gettimeofday_clobber+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : # When cross-compiling: case "$host_os" in # Guess all is fine on glibc systems. *-gnu* | gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;; # Guess no on native Windows. mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;; # If we don't know, assume the worst. *) gl_cv_func_gettimeofday_clobber="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { time_t t = 0; struct tm *lt; struct tm saved_lt; struct timeval tv; lt = localtime (&t); saved_lt = *lt; gettimeofday (&tv, NULL); return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_gettimeofday_clobber=no else gl_cv_func_gettimeofday_clobber=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gettimeofday_clobber" >&5 $as_echo "$gl_cv_func_gettimeofday_clobber" >&6; } case "$gl_cv_func_gettimeofday_clobber" in *yes) REPLACE_GETTIMEOFDAY=1 $as_echo "#define GETTIMEOFDAY_CLOBBERS_LOCALTIME 1" >>confdefs.h NEED_LOCALTIME_BUFFER=1 REPLACE_GMTIME=1 REPLACE_LOCALTIME=1 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettimeofday with POSIX signature" >&5 $as_echo_n "checking for gettimeofday with POSIX signature... " >&6; } if ${gl_cv_func_gettimeofday_posix_signature+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include struct timeval c; int gettimeofday (struct timeval *restrict, void *restrict); int main () { /* glibc uses struct timezone * rather than the POSIX void * if _GNU_SOURCE is defined. However, since the only portable use of gettimeofday uses NULL as the second parameter, and since the glibc definition is actually more typesafe, it is not worth wrapping this to get a compliant signature. */ int (*f) (struct timeval *restrict, void *restrict) = gettimeofday; int x = f (&c, 0); return !(x | c.tv_sec | c.tv_usec); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_gettimeofday_posix_signature=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int gettimeofday (struct timeval *restrict, struct timezone *restrict); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_gettimeofday_posix_signature=almost else gl_cv_func_gettimeofday_posix_signature=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gettimeofday_posix_signature" >&5 $as_echo "$gl_cv_func_gettimeofday_posix_signature" >&6; } if test $gl_cv_func_gettimeofday_posix_signature = almost; then gl_gettimeofday_timezone='struct timezone' elif test $gl_cv_func_gettimeofday_posix_signature != yes; then REPLACE_GETTIMEOFDAY=1 fi if test $REPLACE_STRUCT_TIMEVAL = 1; then REPLACE_GETTIMEOFDAY=1 fi case "$host_os" in mingw*) REPLACE_GETTIMEOFDAY=1 ;; esac fi cat >>confdefs.h <<_ACEOF #define GETTIMEOFDAY_TIMEZONE $gl_gettimeofday_timezone _ACEOF if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext" : fi GNULIB_GETTIMEOFDAY=1 $as_echo "#define GNULIB_TEST_GETTIMEOFDAY 1" >>confdefs.h HOSTENT_LIB= gl_saved_libs="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF for ac_lib in '' nsl network net; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_gethostbyname=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_gethostbyname+:} false; then : break fi done if ${ac_cv_search_gethostbyname+:} false; then : else ac_cv_search_gethostbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 $as_echo "$ac_cv_search_gethostbyname" >&6; } ac_res=$ac_cv_search_gethostbyname if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" if test "$ac_cv_search_gethostbyname" != "none required"; then HOSTENT_LIB="$ac_cv_search_gethostbyname" fi fi LIBS="$gl_saved_libs" if test -z "$HOSTENT_LIB"; then for ac_func in gethostbyname do ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" if test "x$ac_cv_func_gethostbyname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETHOSTBYNAME 1 _ACEOF else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in winsock2.h and -lws2_32" >&5 $as_echo_n "checking for gethostbyname in winsock2.h and -lws2_32... " >&6; } if ${gl_cv_w32_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_w32_gethostbyname=no gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_WINSOCK2_H #include #endif #include int main () { gethostbyname(NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_w32_gethostbyname=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_w32_gethostbyname" >&5 $as_echo "$gl_cv_w32_gethostbyname" >&6; } if test "$gl_cv_w32_gethostbyname" = "yes"; then HOSTENT_LIB="-lws2_32" fi fi done fi HAVE_INET_NTOP=1 INET_NTOP_LIB= : if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi if test $HAVE_WINSOCK2_H = 1; then ac_fn_c_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "#include " if test "x$ac_cv_have_decl_inet_ntop" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_INET_NTOP $ac_have_decl _ACEOF if test $ac_cv_have_decl_inet_ntop = yes; then REPLACE_INET_NTOP=1 INET_NTOP_LIB="-lws2_32" else HAVE_DECL_INET_NTOP=0 HAVE_INET_NTOP=0 fi else gl_save_LIBS=$LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_ntop" >&5 $as_echo_n "checking for library containing inet_ntop... " >&6; } if ${ac_cv_search_inet_ntop+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char inet_ntop (); int main () { return inet_ntop (); ; return 0; } _ACEOF for ac_lib in '' nsl resolv network; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_inet_ntop=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_inet_ntop+:} false; then : break fi done if ${ac_cv_search_inet_ntop+:} false; then : else ac_cv_search_inet_ntop=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_ntop" >&5 $as_echo "$ac_cv_search_inet_ntop" >&6; } ac_res=$ac_cv_search_inet_ntop if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else for ac_func in inet_ntop do ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop" if test "x$ac_cv_func_inet_ntop" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_INET_NTOP 1 _ACEOF fi done if test $ac_cv_func_inet_ntop = no; then HAVE_INET_NTOP=0 fi fi LIBS=$gl_save_LIBS if test "$ac_cv_search_inet_ntop" != "no" \ && test "$ac_cv_search_inet_ntop" != "none required"; then INET_NTOP_LIB="$ac_cv_search_inet_ntop" fi : ac_fn_c_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "#include #if HAVE_NETDB_H # include #endif " if test "x$ac_cv_have_decl_inet_ntop" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_INET_NTOP $ac_have_decl _ACEOF if test $ac_cv_have_decl_inet_ntop = no; then HAVE_DECL_INET_NTOP=0 fi fi if test $HAVE_INET_NTOP = 0 || test $REPLACE_INET_NTOP = 1; then gl_LIBOBJS="$gl_LIBOBJS inet_ntop.$ac_objext" fi GNULIB_INET_NTOP=1 HAVE_INET_PTON=1 INET_PTON_LIB= : if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi if test $HAVE_WINSOCK2_H = 1; then ac_fn_c_check_decl "$LINENO" "inet_pton" "ac_cv_have_decl_inet_pton" "#include " if test "x$ac_cv_have_decl_inet_pton" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_INET_PTON $ac_have_decl _ACEOF if test $ac_cv_have_decl_inet_pton = yes; then REPLACE_INET_PTON=1 INET_PTON_LIB="-lws2_32" else HAVE_DECL_INET_PTON=0 HAVE_INET_PTON=0 fi else gl_save_LIBS=$LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5 $as_echo_n "checking for library containing inet_pton... " >&6; } if ${ac_cv_search_inet_pton+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char inet_pton (); int main () { return inet_pton (); ; return 0; } _ACEOF for ac_lib in '' nsl resolv network; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_inet_pton=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_inet_pton+:} false; then : break fi done if ${ac_cv_search_inet_pton+:} false; then : else ac_cv_search_inet_pton=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5 $as_echo "$ac_cv_search_inet_pton" >&6; } ac_res=$ac_cv_search_inet_pton if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else for ac_func in inet_pton do ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton" if test "x$ac_cv_func_inet_pton" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_INET_PTON 1 _ACEOF fi done if test $ac_cv_func_inet_pton = no; then HAVE_INET_PTON=0 fi fi LIBS=$gl_save_LIBS if test "$ac_cv_search_inet_pton" != "no" \ && test "$ac_cv_search_inet_pton" != "none required"; then INET_PTON_LIB="$ac_cv_search_inet_pton" fi : ac_fn_c_check_decl "$LINENO" "inet_pton" "ac_cv_have_decl_inet_pton" "#include #if HAVE_NETDB_H # include #endif " if test "x$ac_cv_have_decl_inet_pton" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_INET_PTON $ac_have_decl _ACEOF if test $ac_cv_have_decl_inet_pton = no; then HAVE_DECL_INET_PTON=0 fi fi if test $HAVE_INET_PTON = 0 || test $REPLACE_INET_NTOP = 1; then gl_LIBOBJS="$gl_LIBOBJS inet_pton.$ac_objext" fi GNULIB_INET_PTON=1 HAVE_IOCTL=1 if test "$ac_cv_header_winsock2_h" = yes; then HAVE_IOCTL=0 else for ac_func in ioctl do ac_fn_c_check_func "$LINENO" "ioctl" "ac_cv_func_ioctl" if test "x$ac_cv_func_ioctl" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_IOCTL 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ioctl with POSIX signature" >&5 $as_echo_n "checking for ioctl with POSIX signature... " >&6; } if ${gl_cv_func_ioctl_posix_signature+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* On some platforms, ioctl() is declared in . */ #include int main () { extern #ifdef __cplusplus "C" #endif int ioctl (int, int, ...); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_ioctl_posix_signature=yes else gl_cv_func_ioctl_posix_signature=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ioctl_posix_signature" >&5 $as_echo "$gl_cv_func_ioctl_posix_signature" >&6; } if test $gl_cv_func_ioctl_posix_signature != yes; then REPLACE_IOCTL=1 fi fi if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then gl_LIBOBJS="$gl_LIBOBJS ioctl.$ac_objext" fi GNULIB_IOCTL=1 $as_echo "#define GNULIB_TEST_IOCTL 1" >>confdefs.h : if test $gl_cv_have_include_next = yes; then gl_cv_next_langinfo_h='<'langinfo.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_langinfo_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_langinfo_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'langinfo.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_langinfo_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_langinfo_h gl_cv_next_langinfo_h='"'$gl_header'"' else gl_cv_next_langinfo_h='<'langinfo.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_langinfo_h" >&5 $as_echo "$gl_cv_next_langinfo_h" >&6; } fi NEXT_LANGINFO_H=$gl_cv_next_langinfo_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'langinfo.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_langinfo_h fi NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H=$gl_next_as_first_directive HAVE_LANGINFO_CODESET=0 HAVE_LANGINFO_T_FMT_AMPM=0 HAVE_LANGINFO_ALTMON=0 HAVE_LANGINFO_ERA=0 HAVE_LANGINFO_YESEXPR=0 : if test $ac_cv_header_langinfo_h = yes; then HAVE_LANGINFO_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5 $as_echo_n "checking whether langinfo.h defines CODESET... " >&6; } if ${gl_cv_header_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = CODESET; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_codeset=yes else gl_cv_header_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_codeset" >&5 $as_echo "$gl_cv_header_langinfo_codeset" >&6; } if test $gl_cv_header_langinfo_codeset = yes; then HAVE_LANGINFO_CODESET=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5 $as_echo_n "checking whether langinfo.h defines T_FMT_AMPM... " >&6; } if ${gl_cv_header_langinfo_t_fmt_ampm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = T_FMT_AMPM; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_t_fmt_ampm=yes else gl_cv_header_langinfo_t_fmt_ampm=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5 $as_echo "$gl_cv_header_langinfo_t_fmt_ampm" >&6; } if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then HAVE_LANGINFO_T_FMT_AMPM=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ALTMON_1" >&5 $as_echo_n "checking whether langinfo.h defines ALTMON_1... " >&6; } if ${gl_cv_header_langinfo_altmon+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = ALTMON_1; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_altmon=yes else gl_cv_header_langinfo_altmon=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_altmon" >&5 $as_echo "$gl_cv_header_langinfo_altmon" >&6; } if test $gl_cv_header_langinfo_altmon = yes; then HAVE_LANGINFO_ALTMON=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5 $as_echo_n "checking whether langinfo.h defines ERA... " >&6; } if ${gl_cv_header_langinfo_era+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = ERA; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_era=yes else gl_cv_header_langinfo_era=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_era" >&5 $as_echo "$gl_cv_header_langinfo_era" >&6; } if test $gl_cv_header_langinfo_era = yes; then HAVE_LANGINFO_ERA=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5 $as_echo_n "checking whether langinfo.h defines YESEXPR... " >&6; } if ${gl_cv_header_langinfo_yesexpr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = YESEXPR; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_yesexpr=yes else gl_cv_header_langinfo_yesexpr=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5 $as_echo "$gl_cv_header_langinfo_yesexpr" >&6; } if test $gl_cv_header_langinfo_yesexpr = yes; then HAVE_LANGINFO_YESEXPR=1 fi else HAVE_LANGINFO_H=0 fi if test "$ac_cv_header_winsock2_h" = yes; then gl_LIBOBJS="$gl_LIBOBJS listen.$ac_objext" fi GNULIB_LISTEN=1 $as_echo "#define GNULIB_TEST_LISTEN 1" >>confdefs.h LOCALCHARSET_TESTS_ENVIRONMENT= case "$host_os" in solaris*) $as_echo "#define _LCONV_C99 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5 $as_echo_n "checking whether locale.h conforms to POSIX:2001... " >&6; } if ${gl_cv_header_locale_h_posix2001+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int x = LC_MESSAGES; int y = sizeof (((struct lconv *) 0)->decimal_point); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_locale_h_posix2001=yes else gl_cv_header_locale_h_posix2001=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5 $as_echo "$gl_cv_header_locale_h_posix2001" >&6; } : if test $ac_cv_header_xlocale_h = yes; then HAVE_XLOCALE_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5 $as_echo_n "checking whether locale.h defines locale_t... " >&6; } if ${gl_cv_header_locale_has_locale_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include locale_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_locale_has_locale_t=yes else gl_cv_header_locale_has_locale_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5 $as_echo "$gl_cv_header_locale_has_locale_t" >&6; } if test $gl_cv_header_locale_has_locale_t = yes; then gl_cv_header_locale_h_needs_xlocale_h=no else gl_cv_header_locale_h_needs_xlocale_h=yes fi else HAVE_XLOCALE_H=0 gl_cv_header_locale_h_needs_xlocale_h=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5 $as_echo_n "checking whether struct lconv is properly defined... " >&6; } if ${gl_cv_sys_struct_lconv_ok+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include struct lconv l; int x = sizeof (l.decimal_point); int y = sizeof (l.int_p_cs_precedes); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_lconv_ok=yes else gl_cv_sys_struct_lconv_ok=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5 $as_echo "$gl_cv_sys_struct_lconv_ok" >&6; } if test $gl_cv_sys_struct_lconv_ok = no; then REPLACE_STRUCT_LCONV=1 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_locale_h='<'locale.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_locale_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'locale.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_locale_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_locale_h gl_cv_next_locale_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5 $as_echo "$gl_cv_next_locale_h" >&6; } fi NEXT_LOCALE_H=$gl_cv_next_locale_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'locale.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_locale_h fi NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive if test $REPLACE_STRUCT_LCONV = 1; then REPLACE_LOCALECONV=1 fi if test $REPLACE_LOCALECONV = 1; then gl_LIBOBJS="$gl_LIBOBJS localeconv.$ac_objext" ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include " if test "x$ac_cv_member_struct_lconv_decimal_point" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_LCONV_DECIMAL_POINT 1 _ACEOF fi fi GNULIB_LOCALECONV=1 $as_echo "#define GNULIB_TEST_LOCALECONV 1" >>confdefs.h gl_LIBOBJS="$gl_LIBOBJS localtime-buffer.$ac_objext" if test "$gl_threads_api" = posix; then # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. has_rwlock=false ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include " if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then : has_rwlock=true $as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h fi if $has_rwlock; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthread_rwlock_rdlock prefers a writer to a reader" >&5 $as_echo_n "checking whether pthread_rwlock_rdlock prefers a writer to a reader... " >&6; } if ${gl_cv_pthread_rwlock_rdlock_prefer_writer+:} false; then : $as_echo_n "(cached) " >&6 else save_LIBS="$LIBS" LIBS="$LIBS $LIBMULTITHREAD" if test "$cross_compiling" = yes; then : gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #define SUCCEED() exit (0) #define FAILURE() exit (1) #define UNEXPECTED(n) (exit (10 + (n))) /* The main thread creates the waiting writer and the requesting reader threads in the default way; this guarantees that they have the same priority. We can reuse the main thread as first reader thread. */ static pthread_rwlock_t lock; static pthread_t reader1; static pthread_t writer; static pthread_t reader2; static pthread_t timer; /* Used to pass control from writer to reader2 and from reader2 to timer, as in a relay race. Passing control from one running thread to another running thread is most likely faster than to create the second thread. */ static pthread_mutex_t baton; static void * timer_func (void *ignored) { /* Step 13 (can be before or after step 12): The timer thread takes the baton, then waits a moment to make sure it can tell whether the second reader thread is blocked at step 12. */ if (pthread_mutex_lock (&baton)) UNEXPECTED (13); usleep (100000); /* By the time we get here, it's clear that the second reader thread is blocked at step 12. This is the desired behaviour. */ SUCCEED (); } static void * reader2_func (void *ignored) { int err; /* Step 8 (can be before or after step 7): The second reader thread takes the baton, then waits a moment to make sure the writer thread has reached step 7. */ if (pthread_mutex_lock (&baton)) UNEXPECTED (8); usleep (100000); /* Step 9: The second reader thread requests the lock. */ err = pthread_rwlock_tryrdlock (&lock); if (err == 0) FAILURE (); else if (err != EBUSY) UNEXPECTED (9); /* Step 10: Launch a timer, to test whether the next call blocks. */ if (pthread_create (&timer, NULL, timer_func, NULL)) UNEXPECTED (10); /* Step 11: Release the baton. */ if (pthread_mutex_unlock (&baton)) UNEXPECTED (11); /* Step 12: The second reader thread requests the lock. */ err = pthread_rwlock_rdlock (&lock); if (err == 0) FAILURE (); else UNEXPECTED (12); } static void * writer_func (void *ignored) { /* Step 4: Take the baton, so that the second reader thread does not go ahead too early. */ if (pthread_mutex_lock (&baton)) UNEXPECTED (4); /* Step 5: Create the second reader thread. */ if (pthread_create (&reader2, NULL, reader2_func, NULL)) UNEXPECTED (5); /* Step 6: Release the baton. */ if (pthread_mutex_unlock (&baton)) UNEXPECTED (6); /* Step 7: The writer thread requests the lock. */ if (pthread_rwlock_wrlock (&lock)) UNEXPECTED (7); return NULL; } int main () { reader1 = pthread_self (); /* Step 1: The main thread initializes the lock and the baton. */ if (pthread_rwlock_init (&lock, NULL)) UNEXPECTED (1); if (pthread_mutex_init (&baton, NULL)) UNEXPECTED (1); /* Step 2: The main thread acquires the lock as a reader. */ if (pthread_rwlock_rdlock (&lock)) UNEXPECTED (2); /* Step 3: Create the writer thread. */ if (pthread_create (&writer, NULL, writer_func, NULL)) UNEXPECTED (3); /* Job done. Go to sleep. */ for (;;) { sleep (1); } } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_pthread_rwlock_rdlock_prefer_writer=yes else gl_cv_pthread_rwlock_rdlock_prefer_writer=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS="$save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pthread_rwlock_rdlock_prefer_writer" >&5 $as_echo "$gl_cv_pthread_rwlock_rdlock_prefer_writer" >&6; } case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in *yes) $as_echo "#define HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER 1" >>confdefs.h ;; esac fi # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if __FreeBSD__ == 4 error "No, in FreeBSD 4.0 recursive mutexes actually don't work." #elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." #else int x = (int)PTHREAD_MUTEX_RECURSIVE; return !x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_PTHREAD_MUTEX_RECURSIVE 1" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi : cat >>confdefs.h <<_ACEOF #define GNULIB_LOCK 1 _ACEOF : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lseek detects pipes" >&5 $as_echo_n "checking whether lseek detects pipes... " >&6; } if ${gl_cv_func_lseek_pipe+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in mingw*) gl_cv_func_lseek_pipe=no ;; *) if test $cross_compiling = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for off_t */ #include /* for SEEK_CUR */ #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif int main () { /* Exit with success only if stdin is seekable. */ return lseek (0, (off_t)0, SEEK_CUR) < 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if test -s conftest$ac_exeext \ && ./conftest$ac_exeext < conftest.$ac_ext \ && test 1 = "`echo hi \ | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then gl_cv_func_lseek_pipe=yes else gl_cv_func_lseek_pipe=no fi else gl_cv_func_lseek_pipe=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __BEOS__ /* BeOS mistakenly return 0 when trying to seek on pipes. */ Choke me. #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_lseek_pipe=yes else gl_cv_func_lseek_pipe=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lseek_pipe" >&5 $as_echo "$gl_cv_func_lseek_pipe" >&6; } if test $gl_cv_func_lseek_pipe = no; then REPLACE_LSEEK=1 $as_echo "#define LSEEK_PIPE_BROKEN 1" >>confdefs.h fi if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_LSEEK=1 fi if test $REPLACE_LSEEK = 1; then gl_LIBOBJS="$gl_LIBOBJS lseek.$ac_objext" fi GNULIB_LSEEK=1 $as_echo "#define GNULIB_TEST_LSEEK 1" >>confdefs.h if test $gl_cv_func_malloc_posix = yes; then $as_echo "#define HAVE_MALLOC_POSIX 1" >>confdefs.h else REPLACE_MALLOC=1 fi if test $REPLACE_MALLOC = 1; then gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" fi GNULIB_MALLOC_POSIX=1 $as_echo "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h : : if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac if test $LOCALE_JA != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_incomplete_state=yes else gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 $as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_sanitycheck=yes else gl_cv_func_mbrtowc_sanitycheck=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi : if test $ac_cv_func_mbrtowc = no; then HAVE_MBRTOWC=0 ac_fn_c_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" " /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include " if test "x$ac_cv_have_decl_mbrtowc" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_MBRTOWC $ac_have_decl _ACEOF if test $ac_cv_have_decl_mbrtowc = yes; then REPLACE_MBRTOWC=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBRTOWC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5 $as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; } if ${gl_cv_func_mbrtowc_null_arg1+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;; esac if test $LOCALE_FR_UTF8 != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "\303\237er"; mbstate_t state; wchar_t wc; size_t ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 5, &state); if (ret != 2) result |= 1; if (!mbsinit (&state)) result |= 2; memset (&state, '\0', sizeof (mbstate_t)); ret = mbrtowc (NULL, input, 5, &state); if (ret != 2) /* Solaris 7 fails here: ret is -1. */ result |= 4; if (!mbsinit (&state)) result |= 8; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_null_arg1=yes else gl_cv_func_mbrtowc_null_arg1=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5 $as_echo "$gl_cv_func_mbrtowc_null_arg1" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5 $as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; } if ${gl_cv_func_mbrtowc_null_arg2+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on OSF/1. osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;; esac if test $LOCALE_FR_UTF8 != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { mbstate_t state; wchar_t wc; int ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; mbrtowc (&wc, NULL, 5, &state); /* Check that wc was not modified. */ if (wc != (wchar_t) 0xBADFACE) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_null_arg2=yes else gl_cv_func_mbrtowc_null_arg2=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5 $as_echo "$gl_cv_func_mbrtowc_null_arg2" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5 $as_echo_n "checking whether mbrtowc has a correct return value... " >&6; } if ${gl_cv_func_mbrtowc_retval+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on HP-UX, Solaris, native Windows. hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_retval="guessing yes" ;; esac if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { int result = 0; int found_some_locale = 0; /* This fails on Solaris. */ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "B\303\274\303\237er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 1) result |= 1; } found_some_locale = 1; } /* This fails on HP-UX 11.11. */ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 2) result |= 2; } found_some_locale = 1; } /* This fails on native Windows. */ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) { char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 4; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) { char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 8; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_China.936") != NULL) { char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 16; } found_some_locale = 1; } return (found_some_locale ? result : 77); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_retval=yes else if test $? != 77; then gl_cv_func_mbrtowc_retval=no fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5 $as_echo "$gl_cv_func_mbrtowc_retval" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5 $as_echo_n "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; } if ${gl_cv_func_mbrtowc_nul_retval+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris 8 and 9. solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { /* This fails on Solaris 8 and 9. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "", 1, &state) != 0) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_nul_retval=yes else gl_cv_func_mbrtowc_nul_retval=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5 $as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works on empty input" >&5 $as_echo_n "checking whether mbrtowc works on empty input... " >&6; } if ${gl_cv_func_mbrtowc_empty_input+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX and glibc systems. aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; esac if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include static wchar_t wc; static mbstate_t mbs; int main (void) { return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_empty_input=yes else gl_cv_func_mbrtowc_empty_input=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_empty_input" >&5 $as_echo "$gl_cv_func_mbrtowc_empty_input" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C locale is free of encoding errors" >&5 $as_echo_n "checking whether the C locale is free of encoding errors... " >&6; } if ${gl_cv_C_locale_sans_EILSEQ+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_C_locale_sans_EILSEQ="guessing no" if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_C_locale_sans_EILSEQ="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int i; char *locale = setlocale (LC_ALL, "C"); if (! locale) return 2; for (i = CHAR_MIN; i <= CHAR_MAX; i++) { char c = i; wchar_t wc; mbstate_t mbs = { 0, }; size_t ss = mbrtowc (&wc, &c, 1, &mbs); if (1 < ss) return 3; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_C_locale_sans_EILSEQ=yes else gl_cv_C_locale_sans_EILSEQ=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_C_locale_sans_EILSEQ" >&5 $as_echo "$gl_cv_C_locale_sans_EILSEQ" >&6; } case "$gl_cv_func_mbrtowc_null_arg1" in *yes) ;; *) $as_echo "#define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_null_arg2" in *yes) ;; *) $as_echo "#define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_retval" in *yes) ;; *) $as_echo "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_nul_retval" in *yes) ;; *) $as_echo "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_empty_input" in *yes) ;; *) $as_echo "#define MBRTOWC_EMPTY_INPUT_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case $gl_cv_C_locale_sans_EILSEQ in *yes) ;; *) $as_echo "#define C_LOCALE_MAYBE_EILSEQ 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac fi fi if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext" : fi GNULIB_MBRTOWC=1 $as_echo "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h : : if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac if test $LOCALE_JA != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_incomplete_state=yes else gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 $as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_sanitycheck=yes else gl_cv_func_mbrtowc_sanitycheck=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi : if test $ac_cv_func_mbsinit = no; then HAVE_MBSINIT=0 ac_fn_c_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" " /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include " if test "x$ac_cv_have_decl_mbsinit" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_MBSINIT $ac_have_decl _ACEOF if test $ac_cv_have_decl_mbsinit = yes; then REPLACE_MBSINIT=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBSINIT=1 else case "$host_os" in mingw*) REPLACE_MBSINIT=1 ;; esac fi fi if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext" : fi GNULIB_MBSINIT=1 $as_echo "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h if false; then REPLACE_MBTOWC=1 fi if test $REPLACE_MBTOWC = 1; then gl_LIBOBJS="$gl_LIBOBJS mbtowc.$ac_objext" : fi GNULIB_MBTOWC=1 $as_echo "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext" for ac_header in bp-sym.h do ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default" if test "x$ac_cv_header_bp_sym_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BP_SYM_H 1 _ACEOF fi done fi GNULIB_MEMCHR=1 $as_echo "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h if test $HAVE_DECL_MEMMEM = 1 && test $REPLACE_MEMMEM = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memmem works in linear time" >&5 $as_echo_n "checking whether memmem works in linear time... " >&6; } if ${gl_cv_func_memmem_works_fast+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9) || (__GLIBC__ > 2)) \ && !defined __UCLIBC__ Lucky user #endif #endif #ifdef __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 0) Lucky user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1; then : gl_cv_func_memmem_works_fast="guessing yes" else gl_cv_func_memmem_works_fast="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for signal */ #include /* for memmem */ #include /* for malloc */ #include /* for alarm */ static void quit (int sig) { _exit (sig + 128); } int main () { int result = 0; size_t m = 1000000; char *haystack = (char *) malloc (2 * m + 1); char *needle = (char *) malloc (m + 1); /* Failure to compile this test due to missing alarm is okay, since all such platforms (mingw) also lack memmem. */ signal (SIGALRM, quit); alarm (5); /* Check for quadratic performance. */ if (haystack && needle) { memset (haystack, 'A', 2 * m); haystack[2 * m] = 'B'; memset (needle, 'A', m); needle[m] = 'B'; if (!memmem (haystack, 2 * m + 1, needle, m + 1)) result |= 1; } /* Free allocated memory, in case some sanitizer is watching. */ free (haystack); free (needle); return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_memmem_works_fast=yes else gl_cv_func_memmem_works_fast=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_fast" >&5 $as_echo "$gl_cv_func_memmem_works_fast" >&6; } case "$gl_cv_func_memmem_works_fast" in *yes) ;; *) REPLACE_MEMMEM=1 ;; esac fi if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then gl_LIBOBJS="$gl_LIBOBJS memmem.$ac_objext" fi for ac_func in memmem do ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem" if test "x$ac_cv_func_memmem" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MEMMEM 1 _ACEOF fi done if test $ac_cv_func_memmem = yes; then HAVE_MEMMEM=1 else HAVE_MEMMEM=0 fi : if test $ac_cv_have_decl_memmem = no; then HAVE_DECL_MEMMEM=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memmem works" >&5 $as_echo_n "checking whether memmem works... " >&6; } if ${gl_cv_func_memmem_works_always+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \ || __GLIBC_MINOR__ > 12)) \ || (__GLIBC__ > 2)) \ || defined __UCLIBC__ Lucky user #endif #elif defined __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #else Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1; then : gl_cv_func_memmem_works_always="guessing yes" else gl_cv_func_memmem_works_always="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for memmem */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P int main () { int result = 0; if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE))) result |= 1; /* Check for empty needle behavior. */ { const char *haystack = "AAA"; if (memmem (haystack, 3, NULL, 0) != haystack) result |= 2; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_memmem_works_always=yes else gl_cv_func_memmem_works_always=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_always" >&5 $as_echo "$gl_cv_func_memmem_works_always" >&6; } case "$gl_cv_func_memmem_works_always" in *yes) ;; *) REPLACE_MEMMEM=1 ;; esac fi : if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then gl_LIBOBJS="$gl_LIBOBJS memmem.$ac_objext" fi GNULIB_MEMMEM=1 $as_echo "#define GNULIB_TEST_MEMMEM 1" >>confdefs.h REPLACE_MKTIME=0 if test "$gl_cv_func_working_mktime" != yes; then REPLACE_MKTIME=1 $as_echo "#define NEED_MKTIME_WORKING 1" >>confdefs.h fi case "$host_os" in mingw*) REPLACE_MKTIME=1 $as_echo "#define NEED_MKTIME_WINDOWS 1" >>confdefs.h ;; esac if test $REPLACE_MKTIME = 1; then gl_LIBOBJS="$gl_LIBOBJS mktime.$ac_objext" : fi GNULIB_MKTIME=1 $as_echo "#define GNULIB_TEST_MKTIME 1" >>confdefs.h WANT_MKTIME_INTERNAL=0 ac_fn_c_check_func "$LINENO" "__mktime_internal" "ac_cv_func___mktime_internal" if test "x$ac_cv_func___mktime_internal" = xyes; then : $as_echo "#define mktime_internal __mktime_internal" >>confdefs.h else WANT_MKTIME_INTERNAL=1 $as_echo "#define NEED_MKTIME_INTERNAL 1" >>confdefs.h fi if test $WANT_MKTIME_INTERNAL = 1; then gl_LIBOBJS="$gl_LIBOBJS mktime.$ac_objext" : fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext" fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext" fi cat >>confdefs.h <<_ACEOF #define GNULIB_MSVC_NOTHROW 1 _ACEOF : if test $gl_cv_have_include_next = yes; then gl_cv_next_netdb_h='<'netdb.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_netdb_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_netdb_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'netdb.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_netdb_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_netdb_h gl_cv_next_netdb_h='"'$gl_header'"' else gl_cv_next_netdb_h='<'netdb.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_netdb_h" >&5 $as_echo "$gl_cv_next_netdb_h" >&6; } fi NEXT_NETDB_H=$gl_cv_next_netdb_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'netdb.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_netdb_h fi NEXT_AS_FIRST_DIRECTIVE_NETDB_H=$gl_next_as_first_directive if test $ac_cv_header_netdb_h = yes; then HAVE_NETDB_H=1 else HAVE_NETDB_H=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 $as_echo_n "checking whether is self-contained... " >&6; } if ${gl_cv_header_netinet_in_h_selfcontained+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_netinet_in_h_selfcontained=yes else gl_cv_header_netinet_in_h_selfcontained=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_netinet_in_h_selfcontained" >&5 $as_echo "$gl_cv_header_netinet_in_h_selfcontained" >&6; } if test $gl_cv_header_netinet_in_h_selfcontained = yes; then NETINET_IN_H='' else NETINET_IN_H='netinet/in.h' for ac_header in netinet/in.h do ac_fn_c_check_header_mongrel "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default" if test "x$ac_cv_header_netinet_in_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_NETINET_IN_H 1 _ACEOF fi done : if test $gl_cv_have_include_next = yes; then gl_cv_next_netinet_in_h='<'netinet/in.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_netinet_in_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_netinet_in_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'netinet/in.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_netinet_in_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_netinet_in_h gl_cv_next_netinet_in_h='"'$gl_header'"' else gl_cv_next_netinet_in_h='<'netinet/in.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_netinet_in_h" >&5 $as_echo "$gl_cv_next_netinet_in_h" >&6; } fi NEXT_NETINET_IN_H=$gl_cv_next_netinet_in_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'netinet/in.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_netinet_in_h fi NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H=$gl_next_as_first_directive if test $ac_cv_header_netinet_in_h = yes; then HAVE_NETINET_IN_H=1 else HAVE_NETINET_IN_H=0 fi fi if test -n "$NETINET_IN_H"; then GL_GENERATE_NETINET_IN_H_TRUE= GL_GENERATE_NETINET_IN_H_FALSE='#' else GL_GENERATE_NETINET_IN_H_TRUE='#' GL_GENERATE_NETINET_IN_H_FALSE= fi : if test $ac_cv_func_nl_langinfo = yes; then # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether YESEXPR works" >&5 $as_echo_n "checking whether YESEXPR works... " >&6; } if ${gl_cv_func_nl_langinfo_yesexpr_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on irix systems. irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";; # Guess yes elsewhere. *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !*nl_langinfo(YESEXPR); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_nl_langinfo_yesexpr_works=yes else gl_cv_func_nl_langinfo_yesexpr_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nl_langinfo_yesexpr_works" >&5 $as_echo "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; } case $gl_cv_func_nl_langinfo_yesexpr_works in *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;; *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;; esac cat >>confdefs.h <<_ACEOF #define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS _ACEOF if test $HAVE_LANGINFO_CODESET = 1 \ && test $HAVE_LANGINFO_T_FMT_AMPM = 1 \ && test $HAVE_LANGINFO_ALTMON = 1 \ && test $HAVE_LANGINFO_ERA = 1 \ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then : else REPLACE_NL_LANGINFO=1 $as_echo "#define REPLACE_NL_LANGINFO 1" >>confdefs.h fi else HAVE_NL_LANGINFO=0 fi if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext" fi GNULIB_NL_LANGINFO=1 $as_echo "#define GNULIB_TEST_NL_LANGINFO 1" >>confdefs.h : if test "$ERRNO_H:$REPLACE_STRERROR_0" != :0; then REPLACE_PERROR=1 fi case ${gl_cv_func_strerror_r_works-unset} in unset|*yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether perror matches strerror" >&5 $as_echo_n "checking whether perror matches strerror... " >&6; } if ${gl_cv_func_perror_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_func_perror_works="guessing yes" ;; # Otherwise guess no. *) gl_cv_func_perror_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { char *str = strerror (-1); if (!getenv("CONFTEST_OUTPUT")) return 0; if (!str) str = ""; puts (str); errno = -1; perror (""); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : if CONFTEST_OUTPUT=1 ./conftest$EXEEXT >conftest.txt1 2>conftest.txt2 \ && cmp conftest.txt1 conftest.txt2 >/dev/null; then gl_cv_func_perror_works=yes else gl_cv_func_perror_works=no fi rm -rf conftest.txt1 conftest.txt2 else gl_cv_func_perror_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_perror_works" >&5 $as_echo "$gl_cv_func_perror_works" >&6; } case "$gl_cv_func_perror_works" in *yes) ;; *) REPLACE_PERROR=1 ;; esac ;; *) REPLACE_PERROR=1 ;; esac if test $REPLACE_PERROR = 1; then gl_LIBOBJS="$gl_LIBOBJS perror.$ac_objext" fi GNULIB_PERROR=1 $as_echo "#define GNULIB_TEST_PERROR 1" >>confdefs.h if test $ac_cv_header_poll_h = no; then ac_cv_func_poll=no gl_cv_func_poll=no else ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll" if test "x$ac_cv_func_poll" = xyes; then : # Check whether poll() works on special files (like /dev/null) and # and ttys (like /dev/tty). On Mac OS X 10.4.0 and AIX 5.3, it doesn't. if test "$cross_compiling" = yes; then : # When cross-compiling, assume that poll() works everywhere except on # Mac OS X or AIX, regardless of its version. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if (defined(__APPLE__) && defined(__MACH__)) || defined(_AIX) This is MacOSX or AIX #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "MacOSX" >/dev/null 2>&1; then : gl_cv_func_poll=no else gl_cv_func_poll=yes fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main() { int result = 0; struct pollfd ufd; /* Try /dev/null for reading. */ ufd.fd = open ("/dev/null", O_RDONLY); /* If /dev/null does not exist, it's not Mac OS X nor AIX. */ if (ufd.fd >= 0) { ufd.events = POLLIN; ufd.revents = 0; if (!(poll (&ufd, 1, 0) == 1 && ufd.revents == POLLIN)) result |= 1; } /* Try /dev/null for writing. */ ufd.fd = open ("/dev/null", O_WRONLY); /* If /dev/null does not exist, it's not Mac OS X nor AIX. */ if (ufd.fd >= 0) { ufd.events = POLLOUT; ufd.revents = 0; if (!(poll (&ufd, 1, 0) == 1 && ufd.revents == POLLOUT)) result |= 2; } /* Trying /dev/tty may be too environment dependent. */ return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_poll=yes else gl_cv_func_poll=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi if test $gl_cv_func_poll != yes; then ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll" if test "x$ac_cv_func_poll" = xyes; then : ac_cv_func_poll=yes else ac_cv_func_poll=no fi if test $ac_cv_func_poll = no; then HAVE_POLL=0 else REPLACE_POLL=1 fi fi if test $HAVE_POLL = 0 || test $REPLACE_POLL = 1; then : else $as_echo "#define HAVE_POLL 1" >>confdefs.h fi LIB_POLL="$LIBSOCKET" if test $HAVE_POLL = 0 || test $REPLACE_POLL = 1; then case "$host_os" in mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define WIN32_LEAN_AND_MEAN #include int main () { MsgWaitForMultipleObjects (0, NULL, 0, 0, 0); return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else LIB_POLL="$LIB_POLL -luser32" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; esac fi if test $HAVE_POLL = 0 || test $REPLACE_POLL = 1; then gl_LIBOBJS="$gl_LIBOBJS poll.$ac_objext" : fi GNULIB_POLL=1 $as_echo "#define GNULIB_TEST_POLL 1" >>confdefs.h : if test $ac_cv_header_poll_h = yes; then HAVE_POLL_H=1 else HAVE_POLL_H=0 fi : if test $gl_cv_have_include_next = yes; then gl_cv_next_poll_h='<'poll.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_poll_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_poll_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'poll.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_poll_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_poll_h gl_cv_next_poll_h='"'$gl_header'"' else gl_cv_next_poll_h='<'poll.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_poll_h" >&5 $as_echo "$gl_cv_next_poll_h" >&6; } fi NEXT_POLL_H=$gl_cv_next_poll_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'poll.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_poll_h fi NEXT_AS_FIRST_DIRECTIVE_POLL_H=$gl_next_as_first_directive : LIB_PTHREAD_SIGMASK= if test "$gl_threads_api" = posix; then if test $ac_cv_func_pthread_sigmask = yes; then : else if test -n "$LIBMULTITHREAD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_sigmask in $LIBMULTITHREAD" >&5 $as_echo_n "checking for pthread_sigmask in $LIBMULTITHREAD... " >&6; } if ${gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBMULTITHREAD" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes else gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&5 $as_echo "$gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&6; } if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthread_sigmask is only a macro" >&5 $as_echo_n "checking whether pthread_sigmask is only a macro... " >&6; } if ${gl_cv_func_pthread_sigmask_is_macro+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBMULTITHREAD" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #undef pthread_sigmask int main () { return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_pthread_sigmask_is_macro=no else gl_cv_func_pthread_sigmask_is_macro=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_is_macro" >&5 $as_echo "$gl_cv_func_pthread_sigmask_is_macro" >&6; } if test $gl_cv_func_pthread_sigmask_is_macro = yes; then REPLACE_PTHREAD_SIGMASK=1 gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no fi fi if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD" else HAVE_PTHREAD_SIGMASK=0 fi else HAVE_PTHREAD_SIGMASK=0 fi fi else if test $ac_cv_func_pthread_sigmask = yes; then REPLACE_PTHREAD_SIGMASK=1 else HAVE_PTHREAD_SIGMASK=0 fi fi if test $HAVE_PTHREAD_SIGMASK = 1; then if test -z "$LIB_PTHREAD_SIGMASK"; then case " $LIBS " in *' -pthread '*) ;; *' -lpthread '*) ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthread_sigmask works without -lpthread" >&5 $as_echo_n "checking whether pthread_sigmask works without -lpthread... " >&6; } if ${gl_cv_func_pthread_sigmask_in_libc_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in freebsd* | hpux* | solaris | solaris2.[2-9]*) gl_cv_func_pthread_sigmask_in_libc_works="guessing no";; *) gl_cv_func_pthread_sigmask_in_libc_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { sigset_t set; sigemptyset (&set); return pthread_sigmask (1729, &set, NULL) != 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_pthread_sigmask_in_libc_works=no else gl_cv_func_pthread_sigmask_in_libc_works=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_in_libc_works" >&5 $as_echo "$gl_cv_func_pthread_sigmask_in_libc_works" >&6; } case "$gl_cv_func_pthread_sigmask_in_libc_works" in *no) REPLACE_PTHREAD_SIGMASK=1 $as_echo "#define PTHREAD_SIGMASK_INEFFECTIVE 1" >>confdefs.h ;; esac;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthread_sigmask returns error numbers" >&5 $as_echo_n "checking whether pthread_sigmask returns error numbers... " >&6; } if ${gl_cv_func_pthread_sigmask_return_works+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_LIBS="$LIBS" LIBS="$LIBS $LIB_PTHREAD_SIGMASK" if test "$cross_compiling" = yes; then : case "$host_os" in cygwin*) gl_cv_func_pthread_sigmask_return_works="guessing no";; *) gl_cv_func_pthread_sigmask_return_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { sigset_t set; sigemptyset (&set); if (pthread_sigmask (1729, &set, NULL) == -1) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_pthread_sigmask_return_works=yes else gl_cv_func_pthread_sigmask_return_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS="$gl_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_return_works" >&5 $as_echo "$gl_cv_func_pthread_sigmask_return_works" >&6; } case "$gl_cv_func_pthread_sigmask_return_works" in *no) REPLACE_PTHREAD_SIGMASK=1 $as_echo "#define PTHREAD_SIGMASK_FAILS_WITH_ERRNO 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthread_sigmask unblocks signals correctly" >&5 $as_echo_n "checking whether pthread_sigmask unblocks signals correctly... " >&6; } if ${gl_cv_func_pthread_sigmask_unblock_works+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in irix*) gl_cv_func_pthread_sigmask_unblock_works="guessing no";; *) gl_cv_func_pthread_sigmask_unblock_works="guessing yes";; esac gl_save_LIBS=$LIBS LIBS="$LIBS $LIBMULTITHREAD" if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include static volatile int sigint_occurred; static void sigint_handler (int sig) { sigint_occurred++; } int main () { sigset_t set; int pid = getpid (); char command[80]; signal (SIGINT, sigint_handler); sigemptyset (&set); sigaddset (&set, SIGINT); if (!(pthread_sigmask (SIG_BLOCK, &set, NULL) == 0)) return 1; sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid); if (!(system (command) == 0)) return 2; sleep (2); if (!(sigint_occurred == 0)) return 3; if (!(pthread_sigmask (SIG_UNBLOCK, &set, NULL) == 0)) return 4; if (!(sigint_occurred == 1)) /* This fails on IRIX. */ return 5; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : : else gl_cv_func_pthread_sigmask_unblock_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS=$gl_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_unblock_works" >&5 $as_echo "$gl_cv_func_pthread_sigmask_unblock_works" >&6; } case "$gl_cv_func_pthread_sigmask_unblock_works" in *no) REPLACE_PTHREAD_SIGMASK=1 $as_echo "#define PTHREAD_SIGMASK_UNBLOCK_BUG 1" >>confdefs.h ;; esac fi if test $HAVE_PTHREAD_SIGMASK = 0 || test $REPLACE_PTHREAD_SIGMASK = 1; then gl_LIBOBJS="$gl_LIBOBJS pthread_sigmask.$ac_objext" if test $HAVE_PTHREAD_SIGMASK = 1; then $as_echo "#define HAVE_PTHREAD_SIGMASK 1" >>confdefs.h fi fi GNULIB_PTHREAD_SIGMASK=1 $as_echo "#define GNULIB_TEST_PTHREAD_SIGMASK 1" >>confdefs.h for ac_func in raise do ac_fn_c_check_func "$LINENO" "raise" "ac_cv_func_raise" if test "x$ac_cv_func_raise" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_RAISE 1 _ACEOF fi done if test $ac_cv_func_raise = no; then HAVE_RAISE=0 else if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_RAISE=1 fi if test $gl_cv_type_sigset_t = yes; then ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask" if test "x$ac_cv_func_sigprocmask" = xyes; then : gl_cv_func_sigprocmask=1 fi fi if test -z "$gl_cv_func_sigprocmask"; then HAVE_POSIX_SIGNALBLOCKING=0 fi if test $HAVE_POSIX_SIGNALBLOCKING = 0; then : fi fi if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then gl_LIBOBJS="$gl_LIBOBJS raise.$ac_objext" : fi GNULIB_RAISE=1 $as_echo "#define GNULIB_TEST_RAISE 1" >>confdefs.h # Check whether --with-included-regex was given. if test "${with_included_regex+set}" = set; then : withval=$with_included_regex; fi case $with_included_regex in #( yes|no) ac_use_included_regex=$with_included_regex ;; '') # If the system regex support is good enough that it passes the # following run test, then default to *not* using the included regex.c. # If cross compiling, assume the test would fail and use the included # regex.c. : : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working re_compile_pattern" >&5 $as_echo_n "checking for working re_compile_pattern... " >&6; } if ${gl_cv_func_re_compile_pattern_working+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on native Windows. mingw*) gl_cv_func_re_compile_pattern_working="guessing no" ;; # Otherwise, assume it is not working. *) gl_cv_func_re_compile_pattern_working="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #if defined M_CHECK_ACTION || HAVE_DECL_ALARM # include # include #endif #if HAVE_MALLOC_H # include #endif #ifdef M_CHECK_ACTION /* Exit with distinguishable exit code. */ static void sigabrt_no_core (int sig) { raise (SIGTERM); } #endif int main () { int result = 0; static struct re_pattern_buffer regex; unsigned char folded_chars[UCHAR_MAX + 1]; int i; const char *s; struct re_registers regs; /* Some builds of glibc go into an infinite loop on this test. Use alarm to force death, and mallopt to avoid malloc recursion in diagnosing the corrupted heap. */ #if HAVE_DECL_ALARM signal (SIGALRM, SIG_DFL); alarm (2); #endif #ifdef M_CHECK_ACTION signal (SIGABRT, sigabrt_no_core); mallopt (M_CHECK_ACTION, 2); #endif if (setlocale (LC_ALL, "en_US.UTF-8")) { { /* https://sourceware.org/ml/libc-hacker/2006-09/msg00008.html This test needs valgrind to catch the bug on Debian GNU/Linux 3.1 x86, but it might catch the bug better on other platforms and it shouldn't hurt to try the test here. */ static char const pat[] = "insert into"; static char const data[] = "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else if (re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, ®s) != -1) result |= 1; regfree (®ex); } { /* This test is from glibc bug 15078. The test case is from Andreas Schwab in . */ static char const pat[] = "[^x]x"; static char const data[] = /* */ "\xe1\x80\x80" "\xe1\x80\xbb" "\xe1\x80\xbd" "\xe1\x80\x94" "\xe1\x80\xba" "\xe1\x80\xaf" "\xe1\x80\x95" "\xe1\x80\xba" "x"; re_set_syntax (0); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else { i = re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, 0); if (i != 0 && i != 21) result |= 1; } regfree (®ex); } if (! setlocale (LC_ALL, "C")) return 1; } /* This test is from glibc bug 3957, reported by Andrew Mackey. */ re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[^x]b", 6, ®ex); if (s) result |= 2; /* This should fail, but succeeds for glibc-2.5. */ else if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) result |= 2; /* This regular expression is from Spencer ere test number 75 in grep-2.3. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP); memset (®ex, 0, sizeof regex); for (i = 0; i <= UCHAR_MAX; i++) folded_chars[i] = i; regex.translate = folded_chars; s = re_compile_pattern ("a[[:]:]]b\n", 11, ®ex); /* This should fail with _Invalid character class name_ error. */ if (!s) result |= 4; /* Ensure that [b-a] is diagnosed as invalid, when using RE_NO_EMPTY_RANGES. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[b-a]", 6, ®ex); if (s == 0) result |= 8; /* This should succeed, but does not for glibc-2.1.3. */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("{1", 2, ®ex); if (s) result |= 8; /* The following example is derived from a problem report against gawk from Jorge Stolfi . */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[an\371]*n", 7, ®ex); if (s) result |= 8; /* This should match, but does not for glibc-2.2.1. */ else if (re_match (®ex, "an", 2, 0, ®s) != 2) result |= 8; memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 8; /* glibc-2.2.93 does not work with a negative RANGE argument. */ else if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) result |= 8; /* The version of regex.c in older versions of gnulib ignored RE_ICASE. Detect that problem too. */ re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 16; else if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) result |= 16; /* Catch a bug reported by Vin Shelton in https://lists.gnu.org/r/bug-coreutils/2007-06/msg00089.html */ re_set_syntax (RE_SYNTAX_POSIX_BASIC & ~RE_CONTEXT_INVALID_DUP & ~RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); if (s) result |= 32; /* REG_STARTEND was added to glibc on 2004-01-15. Reject older versions. */ if (! REG_STARTEND) result |= 64; #if 0 /* It would be nice to reject hosts whose regoff_t values are too narrow (including glibc on hosts with 64-bit ptrdiff_t and 32-bit int), but we should wait until glibc implements this feature. Otherwise, support for equivalence classes and multibyte collation symbols would always be broken except when compiling --without-included-regex. */ if (sizeof (regoff_t) < sizeof (ptrdiff_t) || sizeof (regoff_t) < sizeof (ssize_t)) result |= 64; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_re_compile_pattern_working=yes else gl_cv_func_re_compile_pattern_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_re_compile_pattern_working" >&5 $as_echo "$gl_cv_func_re_compile_pattern_working" >&6; } case "$gl_cv_func_re_compile_pattern_working" in #( *yes) ac_use_included_regex=no;; #( *no) ac_use_included_regex=yes;; esac ;; *) as_fn_error $? "Invalid value for --with-included-regex: $with_included_regex" "$LINENO" 5 ;; esac if test $ac_use_included_regex = yes; then $as_echo "#define _REGEX_INCLUDE_LIMITS_H 1" >>confdefs.h $as_echo "#define _REGEX_LARGE_OFFSETS 1" >>confdefs.h $as_echo "#define re_syntax_options rpl_re_syntax_options" >>confdefs.h $as_echo "#define re_set_syntax rpl_re_set_syntax" >>confdefs.h $as_echo "#define re_compile_pattern rpl_re_compile_pattern" >>confdefs.h $as_echo "#define re_compile_fastmap rpl_re_compile_fastmap" >>confdefs.h $as_echo "#define re_search rpl_re_search" >>confdefs.h $as_echo "#define re_search_2 rpl_re_search_2" >>confdefs.h $as_echo "#define re_match rpl_re_match" >>confdefs.h $as_echo "#define re_match_2 rpl_re_match_2" >>confdefs.h $as_echo "#define re_set_registers rpl_re_set_registers" >>confdefs.h $as_echo "#define re_comp rpl_re_comp" >>confdefs.h $as_echo "#define re_exec rpl_re_exec" >>confdefs.h $as_echo "#define regcomp rpl_regcomp" >>confdefs.h $as_echo "#define regexec rpl_regexec" >>confdefs.h $as_echo "#define regerror rpl_regerror" >>confdefs.h $as_echo "#define regfree rpl_regfree" >>confdefs.h fi if test $ac_use_included_regex = yes; then gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext" for ac_header in libintl.h do ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBINTL_H 1 _ACEOF fi done : ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include " if test "x$ac_cv_have_decl_isblank" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ISBLANK $ac_have_decl _ACEOF fi if test $RELOCATABLE = yes; then gl_LIBOBJS="$gl_LIBOBJS relocatable.$ac_objext" fi if test "$ac_cv_header_winsock2_h" = yes; then REPLACE_SELECT=1 else : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether select supports a 0 argument" >&5 $as_echo_n "checking whether select supports a 0 argument... " >&6; } if ${gl_cv_func_select_supports0+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on Interix. interix*) gl_cv_func_select_supports0="guessing no";; # Guess yes otherwise. *) gl_cv_func_select_supports0="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_SYS_SELECT_H #include #endif int main () { struct timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 5; return select (0, (fd_set *)0, (fd_set *)0, (fd_set *)0, &timeout) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_select_supports0=yes else gl_cv_func_select_supports0=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_select_supports0" >&5 $as_echo "$gl_cv_func_select_supports0" >&6; } case "$gl_cv_func_select_supports0" in *yes) ;; *) REPLACE_SELECT=1 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether select detects invalid fds" >&5 $as_echo_n "checking whether select detects invalid fds... " >&6; } if ${gl_cv_func_select_detects_ebadf+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_select_detects_ebadf="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_select_detects_ebadf="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_SYS_SELECT_H # include #endif #include #include int main () { fd_set set; dup2(0, 16); FD_ZERO(&set); FD_SET(16, &set); close(16); struct timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 5; return select (17, &set, NULL, NULL, &timeout) != -1 || errno != EBADF; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_select_detects_ebadf=yes else gl_cv_func_select_detects_ebadf=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_select_detects_ebadf" >&5 $as_echo "$gl_cv_func_select_detects_ebadf" >&6; } case $gl_cv_func_select_detects_ebadf in *yes) ;; *) REPLACE_SELECT=1 ;; esac fi LIB_SELECT="$LIBSOCKET" if test $REPLACE_SELECT = 1; then case "$host_os" in mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define WIN32_LEAN_AND_MEAN #include int main () { MsgWaitForMultipleObjects (0, NULL, 0, 0, 0); return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else LIB_SELECT="$LIB_SELECT -luser32" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; esac fi if test $REPLACE_SELECT = 1; then gl_LIBOBJS="$gl_LIBOBJS select.$ac_objext" fi GNULIB_SELECT=1 $as_echo "#define GNULIB_TEST_SELECT 1" >>confdefs.h SERVENT_LIB= gl_saved_libs="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getservbyname" >&5 $as_echo_n "checking for library containing getservbyname... " >&6; } if ${ac_cv_search_getservbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char getservbyname (); int main () { return getservbyname (); ; return 0; } _ACEOF for ac_lib in '' socket network net; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_getservbyname=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_getservbyname+:} false; then : break fi done if ${ac_cv_search_getservbyname+:} false; then : else ac_cv_search_getservbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getservbyname" >&5 $as_echo "$ac_cv_search_getservbyname" >&6; } ac_res=$ac_cv_search_getservbyname if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" if test "$ac_cv_search_getservbyname" != "none required"; then SERVENT_LIB="$ac_cv_search_getservbyname" fi fi LIBS="$gl_saved_libs" if test -z "$SERVENT_LIB"; then for ac_func in getservbyname do ac_fn_c_check_func "$LINENO" "getservbyname" "ac_cv_func_getservbyname" if test "x$ac_cv_func_getservbyname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETSERVBYNAME 1 _ACEOF else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getservbyname in winsock2.h and -lws2_32" >&5 $as_echo_n "checking for getservbyname in winsock2.h and -lws2_32... " >&6; } if ${gl_cv_w32_getservbyname+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_w32_getservbyname=no gl_save_LIBS="$LIBS" LIBS="$LIBS -lws2_32" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_WINSOCK2_H #include #endif #include int main () { getservbyname(NULL,NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_w32_getservbyname=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_w32_getservbyname" >&5 $as_echo "$gl_cv_w32_getservbyname" >&6; } if test "$gl_cv_w32_getservbyname" = "yes"; then SERVENT_LIB="-lws2_32" fi fi done fi if test "$ac_cv_header_winsock2_h" = yes; then gl_LIBOBJS="$gl_LIBOBJS setsockopt.$ac_objext" fi GNULIB_SETSOCKOPT=1 $as_echo "#define GNULIB_TEST_SETSOCKOPT 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_signal_h='<'signal.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_signal_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'signal.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_signal_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_signal_h gl_cv_next_signal_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_signal_h" >&5 $as_echo "$gl_cv_next_signal_h" >&6; } fi NEXT_SIGNAL_H=$gl_cv_next_signal_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'signal.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_signal_h fi NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H=$gl_next_as_first_directive # AIX declares sig_atomic_t to already include volatile, and C89 compilers # then choke on 'volatile sig_atomic_t'. C99 requires that it compile. ac_fn_c_check_type "$LINENO" "volatile sig_atomic_t" "ac_cv_type_volatile_sig_atomic_t" " #include " if test "x$ac_cv_type_volatile_sig_atomic_t" = xyes; then : else HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0 fi ac_fn_c_check_type "$LINENO" "sighandler_t" "ac_cv_type_sighandler_t" " #include " if test "x$ac_cv_type_sighandler_t" = xyes; then : else HAVE_SIGHANDLER_T=0 fi if test $gl_cv_type_sigset_t = yes; then ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask" if test "x$ac_cv_func_sigprocmask" = xyes; then : gl_cv_func_sigprocmask=1 fi fi if test -z "$gl_cv_func_sigprocmask"; then HAVE_POSIX_SIGNALBLOCKING=0 fi if test $HAVE_POSIX_SIGNALBLOCKING = 0; then gl_LIBOBJS="$gl_LIBOBJS sigprocmask.$ac_objext" : fi GNULIB_SIGPROCMASK=1 $as_echo "#define GNULIB_TEST_SIGPROCMASK 1" >>confdefs.h for ac_header in stdint.h do ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5 $as_echo_n "checking for SIZE_MAX... " >&6; } if ${gl_cv_size_max+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_size_max= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_STDINT_H #include #endif #ifdef SIZE_MAX Found it #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Found it" >/dev/null 2>&1; then : gl_cv_size_max=yes fi rm -f conftest* if test -z "$gl_cv_size_max"; then if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1" "#include #include "; then : else size_t_bits_minus_1= fi if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint" "#include "; then : else fits_in_uint= fi if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then if test $fits_in_uint = 1; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern size_t foo; extern unsigned long foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : fits_in_uint=0 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $fits_in_uint = 1; then gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" else gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" fi else gl_cv_size_max='((size_t)~(size_t)0)' fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5 $as_echo "$gl_cv_size_max" >&6; } if test "$gl_cv_size_max" != yes; then cat >>confdefs.h <<_ACEOF #define SIZE_MAX $gl_cv_size_max _ACEOF fi ac_fn_c_check_decl "$LINENO" "sleep" "ac_cv_have_decl_sleep" "#include " if test "x$ac_cv_have_decl_sleep" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SLEEP $ac_have_decl _ACEOF : if test $ac_cv_have_decl_sleep != yes; then HAVE_SLEEP=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working sleep" >&5 $as_echo_n "checking for working sleep... " >&6; } if ${gl_cv_func_sleep_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_sleep_works="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_sleep_works="guessing no" ;; # If we don't know, assume the worst. *) gl_cv_func_sleep_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include static void handle_alarm (int sig) { if (sig != SIGALRM) _exit (2); } int main () { /* Failure to compile this test due to missing alarm is okay, since all such platforms (mingw) also lack sleep. */ unsigned int pentecost = 50 * 24 * 60 * 60; /* 50 days. */ unsigned int remaining; signal (SIGALRM, handle_alarm); alarm (1); remaining = sleep (pentecost); if (remaining > pentecost) return 3; if (remaining <= pentecost - 10) return 4; return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_sleep_works=yes else gl_cv_func_sleep_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_sleep_works" >&5 $as_echo "$gl_cv_func_sleep_works" >&6; } case "$gl_cv_func_sleep_works" in *yes) ;; *) REPLACE_SLEEP=1 ;; esac fi if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then gl_LIBOBJS="$gl_LIBOBJS sleep.$ac_objext" fi GNULIB_SLEEP=1 $as_echo "#define GNULIB_TEST_SLEEP 1" >>confdefs.h gl_cv_func_snprintf_usable=no for ac_func in snprintf do ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" if test "x$ac_cv_func_snprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SNPRINTF 1 _ACEOF fi done if test $ac_cv_func_snprintf = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5 $as_echo_n "checking whether snprintf respects a size of 1... " >&6; } if ${gl_cv_func_snprintf_size1+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_func_snprintf_size1="guessing yes" ;; *) gl_cv_func_snprintf_size1="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif int main() { static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; my_snprintf (buf, 1, "%d", 12345); return buf[1] != 'E'; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_snprintf_size1=yes else gl_cv_func_snprintf_size1=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5 $as_echo "$gl_cv_func_snprintf_size1" >&6; } case "$gl_cv_func_snprintf_size1" in *yes) case "$gl_cv_func_snprintf_retval_c99" in *yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5 $as_echo_n "checking whether printf supports POSIX/XSI format strings with positions... " >&6; } if ${gl_cv_func_printf_positions+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*) gl_cv_func_printf_positions="guessing no";; beos*) gl_cv_func_printf_positions="guessing no";; # Guess no on native Windows. mingw* | pw*) gl_cv_func_printf_positions="guessing no";; *) gl_cv_func_printf_positions="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* The string "%2$d %1$d", with dollar characters protected from the shell's dollar expansion (possibly an autoconf bug). */ static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; static char buf[100]; int main () { sprintf (buf, format, 33, 55); return (strcmp (buf, "55 33") != 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_printf_positions=yes else gl_cv_func_printf_positions=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5 $as_echo "$gl_cv_func_printf_positions" >&6; } case "$gl_cv_func_printf_positions" in *yes) gl_cv_func_snprintf_usable=yes ;; esac ;; esac ;; esac fi if test $gl_cv_func_snprintf_usable = no; then gl_LIBOBJS="$gl_LIBOBJS snprintf.$ac_objext" if test $ac_cv_func_snprintf = yes; then REPLACE_SNPRINTF=1 else : if test $ac_cv_have_decl_snprintf = yes; then REPLACE_SNPRINTF=1 fi fi : fi : if test $ac_cv_have_decl_snprintf = no; then HAVE_DECL_SNPRINTF=0 fi GNULIB_SNPRINTF=1 $as_echo "#define GNULIB_TEST_SNPRINTF 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define GNULIB_SNPRINTF 1 _ACEOF if test "$ac_cv_header_winsock2_h" = yes; then gl_LIBOBJS="$gl_LIBOBJS socket.$ac_objext" fi # When this module is used, sockets may actually occur as file descriptors, # hence it is worth warning if the modules 'close' and 'ioctl' are not used. if test "$ac_cv_header_winsock2_h" = yes; then UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1 SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1 fi GNULIB_SOCKET=1 $as_echo "#define GNULIB_TEST_SOCKET 1" >>confdefs.h ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" " /* is not needed according to POSIX, but the in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #if HAVE_SYS_SOCKET_H # include #elif HAVE_WS2TCPIP_H # include #endif " if test "x$ac_cv_type_socklen_t" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t equivalent" >&5 $as_echo_n "checking for socklen_t equivalent... " >&6; } if ${gl_cv_socklen_t_equiv+:} false; then : $as_echo_n "(cached) " >&6 else # Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername gl_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void; do for t in int size_t "unsigned int" "long int" "unsigned long int"; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int getpeername (int, $arg2 *, $t *); int main () { $t len; getpeername (0, 0, &len); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_socklen_t_equiv="$t" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$gl_cv_socklen_t_equiv" != "" && break done test "$gl_cv_socklen_t_equiv" != "" && break done fi if test "$gl_cv_socklen_t_equiv" = ""; then as_fn_error $? "Cannot find a type to use in place of socklen_t" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socklen_t_equiv" >&5 $as_echo "$gl_cv_socklen_t_equiv" >&6; } cat >>confdefs.h <<_ACEOF #define socklen_t $gl_cv_socklen_t_equiv _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5 $as_echo_n "checking for ssize_t... " >&6; } if ${gt_cv_ssize_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_ssize_t=yes else gt_cv_ssize_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5 $as_echo "$gt_cv_ssize_t" >&6; } if test $gt_cv_ssize_t = no; then $as_echo "#define ssize_t int" >>confdefs.h fi : case "$host_os" in mingw*) REPLACE_STAT=1 ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5 $as_echo_n "checking whether stat handles trailing slashes on files... " >&6; } if ${gl_cv_func_stat_file_slash+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.tmp # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.tmp conftest.lnk fi if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_stat_file_slash="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int result = 0; struct stat st; if (!stat ("conftest.tmp/", &st)) result |= 1; #if HAVE_LSTAT if (!stat ("conftest.lnk/", &st)) result |= 2; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_stat_file_slash=yes else gl_cv_func_stat_file_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.tmp conftest.lnk fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_file_slash" >&5 $as_echo "$gl_cv_func_stat_file_slash" >&6; } case $gl_cv_func_stat_file_slash in *no) REPLACE_STAT=1 $as_echo "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h ;; esac case $host_os in solaris*) REPLACE_FSTAT=1 ;; esac ;; esac if test $REPLACE_STAT = 1; then gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext" case "$host_os" in mingw*) gl_LIBOBJS="$gl_LIBOBJS stat-w32.$ac_objext" ;; esac : fi GNULIB_STAT=1 $as_echo "#define GNULIB_TEST_STAT 1" >>confdefs.h : ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include #include " if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct stat.st_atim is of type struct timespec" >&5 $as_echo_n "checking whether struct stat.st_atim is of type struct timespec... " >&6; } if ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_SYS_TIME_H # include #endif #include struct timespec ts; struct stat st; int main () { st.st_atim = ts; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes else ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5 $as_echo "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; } if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then $as_echo "#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h fi else ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include #include " if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1 _ACEOF else ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include #include " if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_ATIMENSEC 1 _ACEOF else ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include #include " if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1 _ACEOF fi fi fi fi : ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimespec.tv_nsec" "ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" "#include #include " if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1 _ACEOF else ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimensec" "ac_cv_member_struct_stat_st_birthtimensec" "#include #include " if test "x$ac_cv_member_struct_stat_st_birthtimensec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1 _ACEOF else ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtim.tv_nsec" "ac_cv_member_struct_stat_st_birthtim_tv_nsec" "#include #include " if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1 _ACEOF fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working stdalign.h" >&5 $as_echo_n "checking for working stdalign.h... " >&6; } if ${gl_cv_header_working_stdalign_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Test that alignof yields a result consistent with offsetof. This catches GCC bug 52023 . */ #ifdef __cplusplus template struct alignof_helper { char a; t b; }; # define ao(type) offsetof (alignof_helper, b) #else # define ao(type) offsetof (struct { char a; type b; }, b) #endif char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1]; char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; /* Test _Alignas only on platforms where gnulib can help. */ #if \ ((defined __cplusplus && 201103 <= __cplusplus) \ || (defined __APPLE__ && defined __MACH__ \ ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ : __GNUC__) \ || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \ || 1300 <= _MSC_VER) struct alignas_test { char c; char alignas (8) alignas_8; }; char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 ? 1 : -1]; #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_working_stdalign_h=yes else gl_cv_header_working_stdalign_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdalign_h" >&5 $as_echo "$gl_cv_header_working_stdalign_h" >&6; } if test $gl_cv_header_working_stdalign_h = yes; then STDALIGN_H='' else STDALIGN_H='stdalign.h' fi if test -n "$STDALIGN_H"; then GL_GENERATE_STDALIGN_H_TRUE= GL_GENERATE_STDALIGN_H_FALSE='#' else GL_GENERATE_STDALIGN_H_TRUE='#' GL_GENERATE_STDALIGN_H_FALSE= fi # Define two additional variables used in the Makefile substitution. if test "$ac_cv_header_stdbool_h" = yes; then STDBOOL_H='' else STDBOOL_H='stdbool.h' fi if test -n "$STDBOOL_H"; then GL_GENERATE_STDBOOL_H_TRUE= GL_GENERATE_STDBOOL_H_FALSE='#' else GL_GENERATE_STDBOOL_H_TRUE='#' GL_GENERATE_STDBOOL_H_FALSE= fi if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 else HAVE__BOOL=0 fi STDDEF_H= ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include " if test "x$ac_cv_type_max_align_t" = xyes; then : else HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h fi if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } if ${gl_cv_decl_null_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int test[2 * (sizeof NULL == sizeof (void *)) -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_decl_null_works=yes else gl_cv_decl_null_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 $as_echo "$gl_cv_decl_null_works" >&6; } if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' else GL_GENERATE_STDDEF_H_TRUE='#' GL_GENERATE_STDDEF_H_FALSE= fi if test -n "$STDDEF_H"; then if test $gl_cv_have_include_next = yes; then gl_cv_next_stddef_h='<'stddef.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stddef_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stddef.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stddef_h gl_cv_next_stddef_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 $as_echo "$gl_cv_next_stddef_h" >&6; } fi NEXT_STDDEF_H=$gl_cv_next_stddef_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stddef.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stddef_h fi NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive fi $as_echo "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_stdio_h='<'stdio.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdio_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdio.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdio_h gl_cv_next_stdio_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5 $as_echo "$gl_cv_next_stdio_h" >&6; } fi NEXT_STDIO_H=$gl_cv_next_stdio_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdio.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdio_h fi NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive { $as_echo "$as_me:${as_lineno-$LINENO}: checking which flavor of printf attribute matches inttypes macros" >&5 $as_echo_n "checking which flavor of printf attribute matches inttypes macros... " >&6; } if ${gl_cv_func_printf_attribute_flavor+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define __STDC_FORMAT_MACROS 1 #include #include /* For non-mingw systems, compilation will trivially succeed. For mingw, compilation will succeed for older mingw (system printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ #if (defined _WIN32 && ! defined __CYGWIN__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_printf_attribute_flavor=system else gl_cv_func_printf_attribute_flavor=gnu fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_attribute_flavor" >&5 $as_echo "$gl_cv_func_printf_attribute_flavor" >&6; } if test "$gl_cv_func_printf_attribute_flavor" = gnu; then $as_echo "#define GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 1" >>confdefs.h fi GNULIB_FSCANF=1 cat >>confdefs.h <<_ACEOF #define GNULIB_FSCANF 1 _ACEOF GNULIB_SCANF=1 cat >>confdefs.h <<_ACEOF #define GNULIB_SCANF 1 _ACEOF GNULIB_FGETC=1 GNULIB_GETC=1 GNULIB_GETCHAR=1 GNULIB_FGETS=1 GNULIB_FREAD=1 GNULIB_FPRINTF=1 GNULIB_PRINTF=1 GNULIB_VFPRINTF=1 GNULIB_VPRINTF=1 GNULIB_FPUTC=1 GNULIB_PUTC=1 GNULIB_PUTCHAR=1 GNULIB_FPUTS=1 GNULIB_PUTS=1 GNULIB_FWRITE=1 if test $gl_cv_have_include_next = yes; then gl_cv_next_stdlib_h='<'stdlib.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdlib_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdlib.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdlib_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdlib_h gl_cv_next_stdlib_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 $as_echo "$gl_cv_next_stdlib_h" >&6; } fi NEXT_STDLIB_H=$gl_cv_next_stdlib_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdlib.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdlib_h fi NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive for ac_func in strcasecmp do ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" if test "x$ac_cv_func_strcasecmp" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRCASECMP 1 _ACEOF fi done if test $ac_cv_func_strcasecmp = no; then HAVE_STRCASECMP=0 fi for ac_func in strncasecmp do ac_fn_c_check_func "$LINENO" "strncasecmp" "ac_cv_func_strncasecmp" if test "x$ac_cv_func_strncasecmp" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRNCASECMP 1 _ACEOF fi done if test $ac_cv_func_strncasecmp = yes; then HAVE_STRNCASECMP=1 else HAVE_STRNCASECMP=0 fi ac_fn_c_check_decl "$LINENO" "strncasecmp" "ac_cv_have_decl_strncasecmp" "$ac_includes_default" if test "x$ac_cv_have_decl_strncasecmp" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRNCASECMP $ac_have_decl _ACEOF if test $ac_cv_have_decl_strncasecmp = no; then HAVE_DECL_STRNCASECMP=0 fi if test $HAVE_STRCASECMP = 0; then gl_LIBOBJS="$gl_LIBOBJS strcasecmp.$ac_objext" : fi if test $HAVE_STRNCASECMP = 0; then gl_LIBOBJS="$gl_LIBOBJS strncasecmp.$ac_objext" : fi if test $HAVE_STRCASESTR = 1 && test $REPLACE_STRCASESTR = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strcasestr works in linear time" >&5 $as_echo_n "checking whether strcasestr works in linear time... " >&6; } if ${gl_cv_func_strcasestr_linear+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ && !defined __UCLIBC__ Lucky user #endif #endif #ifdef __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1; then : gl_cv_func_strcasestr_linear="guessing yes" else gl_cv_func_strcasestr_linear="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for signal */ #include /* for strcasestr */ #include /* for malloc */ #include /* for alarm */ static void quit (int sig) { _exit (sig + 128); } int main () { int result = 0; size_t m = 1000000; char *haystack = (char *) malloc (2 * m + 2); char *needle = (char *) malloc (m + 2); /* Failure to compile this test due to missing alarm is okay, since all such platforms (mingw) also lack strcasestr. */ signal (SIGALRM, quit); alarm (5); /* Check for quadratic performance. */ if (haystack && needle) { memset (haystack, 'A', 2 * m); haystack[2 * m] = 'B'; haystack[2 * m + 1] = 0; memset (needle, 'A', m); needle[m] = 'B'; needle[m + 1] = 0; if (!strcasestr (haystack, needle)) result |= 1; } /* Free allocated memory, in case some sanitizer is watching. */ free (haystack); free (needle); return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strcasestr_linear=yes else gl_cv_func_strcasestr_linear=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strcasestr_linear" >&5 $as_echo "$gl_cv_func_strcasestr_linear" >&6; } case "$gl_cv_func_strcasestr_linear" in *yes) ;; *) REPLACE_STRCASESTR=1 ;; esac fi if test $HAVE_STRCASESTR = 0 || test $REPLACE_STRCASESTR = 1; then gl_LIBOBJS="$gl_LIBOBJS strcasestr.$ac_objext" : fi for ac_func in strcasestr do ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr" if test "x$ac_cv_func_strcasestr" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRCASESTR 1 _ACEOF fi done if test $ac_cv_func_strcasestr = no; then HAVE_STRCASESTR=0 else if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then REPLACE_STRCASESTR=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strcasestr works" >&5 $as_echo_n "checking whether strcasestr works... " >&6; } if ${gl_cv_func_strcasestr_works_always+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ || defined __UCLIBC__ Lucky user #endif #elif defined __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #else Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1; then : gl_cv_func_strcasestr_works_always="guessing yes" else gl_cv_func_strcasestr_works_always="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for strcasestr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P int main () { return !!strcasestr (HAYSTACK, NEEDLE); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strcasestr_works_always=yes else gl_cv_func_strcasestr_works_always=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strcasestr_works_always" >&5 $as_echo "$gl_cv_func_strcasestr_works_always" >&6; } case "$gl_cv_func_strcasestr_works_always" in *yes) ;; *) REPLACE_STRCASESTR=1 ;; esac fi fi if test $HAVE_STRCASESTR = 0 || test $REPLACE_STRCASESTR = 1; then gl_LIBOBJS="$gl_LIBOBJS strcasestr.$ac_objext" : fi GNULIB_STRCASESTR=1 $as_echo "#define GNULIB_TEST_STRCASESTR 1" >>confdefs.h : if test $ac_cv_func_strdup = yes; then if test $gl_cv_func_malloc_posix != yes; then REPLACE_STRDUP=1 fi fi : if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext" : fi GNULIB_STRDUP=1 $as_echo "#define GNULIB_TEST_STRDUP 1" >>confdefs.h if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5 $as_echo_n "checking for working strerror function... " >&6; } if ${gl_cv_func_working_strerror+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_working_strerror="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { if (!*strerror (-2)) return 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_working_strerror=yes else gl_cv_func_working_strerror=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5 $as_echo "$gl_cv_func_working_strerror" >&6; } case "$gl_cv_func_working_strerror" in *yes) ;; *) REPLACE_STRERROR=1 ;; esac case "$gl_cv_func_strerror_r_works" in *no) REPLACE_STRERROR=1 ;; esac else REPLACE_STRERROR=1 fi if test $REPLACE_STRERROR = 1; then gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext" fi cat >>confdefs.h <<_ACEOF #define GNULIB_STRERROR 1 _ACEOF GNULIB_STRERROR=1 $as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext" : if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi fi : if test $ac_cv_have_decl_strerror_r = no; then HAVE_DECL_STRERROR_R=0 fi if test $ac_cv_func_strerror_r = yes; then if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then if test $gl_cv_func_strerror_r_posix_signature = yes; then case "$gl_cv_func_strerror_r_works" in *no) REPLACE_STRERROR_R=1 ;; esac else REPLACE_STRERROR_R=1 fi else REPLACE_STRERROR_R=1 fi fi if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then gl_LIBOBJS="$gl_LIBOBJS strerror_r.$ac_objext" : : : fi GNULIB_STRERROR_R=1 $as_echo "#define GNULIB_TEST_STRERROR_R 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define GNULIB_STRERROR_R_POSIX 1 _ACEOF : : if test $ac_cv_have_decl_strndup = no; then HAVE_DECL_STRNDUP=0 fi if test $ac_cv_func_strndup = yes; then HAVE_STRNDUP=1 # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strndup" >&5 $as_echo_n "checking for working strndup... " >&6; } if ${gl_cv_func_strndup_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case $host_os in aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";; *) gl_cv_func_strndup_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if !HAVE_DECL_STRNDUP extern #ifdef __cplusplus "C" #endif char *strndup (const char *, size_t); #endif int result; char *s; s = strndup ("some longer string", 15); free (s); s = strndup ("shorter string", 13); result = s[13] != '\0'; free (s); return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strndup_works=yes else gl_cv_func_strndup_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strndup_works" >&5 $as_echo "$gl_cv_func_strndup_works" >&6; } case $gl_cv_func_strndup_works in *no) REPLACE_STRNDUP=1 ;; esac else HAVE_STRNDUP=0 fi if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext" fi GNULIB_STRNDUP=1 $as_echo "#define GNULIB_TEST_STRNDUP 1" >>confdefs.h : if test $ac_cv_have_decl_strnlen = no; then HAVE_DECL_STRNLEN=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strnlen" >&5 $as_echo_n "checking for working strnlen... " >&6; } if ${ac_cv_func_strnlen_working+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : # Guess no on AIX systems, yes otherwise. case "$host_os" in aix*) ac_cv_func_strnlen_working=no;; *) ac_cv_func_strnlen_working=yes;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { #define S "foobar" #define S_LEN (sizeof S - 1) /* At least one implementation is buggy: that of AIX 4.3 would give strnlen (S, 1) == 3. */ int i; for (i = 0; i < S_LEN + 1; ++i) { int expected = i <= S_LEN ? i : S_LEN; if (strnlen (S, i) != expected) return 1; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_strnlen_working=yes else ac_cv_func_strnlen_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strnlen_working" >&5 $as_echo "$ac_cv_func_strnlen_working" >&6; } test $ac_cv_func_strnlen_working = no && : if test $ac_cv_func_strnlen_working = no; then REPLACE_STRNLEN=1 fi fi if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext" : fi GNULIB_STRNLEN=1 $as_echo "#define GNULIB_TEST_STRNLEN 1" >>confdefs.h : if test $ac_cv_func_strptime != yes; then HAVE_STRPTIME=0 fi if test $HAVE_STRPTIME = 0; then gl_LIBOBJS="$gl_LIBOBJS strptime.$ac_objext" : fi GNULIB_STRPTIME=1 $as_echo "#define GNULIB_TEST_STRPTIME 1" >>confdefs.h for ac_func in strsep do ac_fn_c_check_func "$LINENO" "strsep" "ac_cv_func_strsep" if test "x$ac_cv_func_strsep" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRSEP 1 _ACEOF fi done if test $ac_cv_func_strsep = no; then HAVE_STRSEP=0 fi if test $HAVE_STRSEP = 0; then gl_LIBOBJS="$gl_LIBOBJS strsep.$ac_objext" : fi GNULIB_STRSEP=1 $as_echo "#define GNULIB_TEST_STRSEP 1" >>confdefs.h : if test $ac_cv_header_sys_ioctl_h = yes; then HAVE_SYS_IOCTL_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether declares ioctl" >&5 $as_echo_n "checking whether declares ioctl... " >&6; } if ${gl_cv_decl_ioctl_in_sys_ioctl_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { (void) ioctl; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_decl_ioctl_in_sys_ioctl_h=yes else gl_cv_decl_ioctl_in_sys_ioctl_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_ioctl_in_sys_ioctl_h" >&5 $as_echo "$gl_cv_decl_ioctl_in_sys_ioctl_h" >&6; } else HAVE_SYS_IOCTL_H=0 fi : if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_ioctl_h='<'sys/ioctl.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_ioctl_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_ioctl_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/ioctl.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_ioctl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_ioctl_h gl_cv_next_sys_ioctl_h='"'$gl_header'"' else gl_cv_next_sys_ioctl_h='<'sys/ioctl.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_ioctl_h" >&5 $as_echo "$gl_cv_next_sys_ioctl_h" >&6; } fi NEXT_SYS_IOCTL_H=$gl_cv_next_sys_ioctl_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/ioctl.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_ioctl_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H=$gl_next_as_first_directive : if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_stat_h='<'sys/stat.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_stat_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_stat_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/stat.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_stat_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_stat_h gl_cv_next_sys_stat_h='"'$gl_header'"' else gl_cv_next_sys_stat_h='<'sys/stat.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5 $as_echo "$gl_cv_next_sys_stat_h" >&6; } fi NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/stat.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_stat_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive WINDOWS_STAT_TIMESPEC=0 ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include #include " if test "x$ac_cv_type_nlink_t" = xyes; then : else $as_echo "#define nlink_t int" >>confdefs.h fi : if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_uio_h='<'sys/uio.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_uio_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_uio_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/uio.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_uio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_uio_h gl_cv_next_sys_uio_h='"'$gl_header'"' else gl_cv_next_sys_uio_h='<'sys/uio.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_uio_h" >&5 $as_echo "$gl_cv_next_sys_uio_h" >&6; } fi NEXT_SYS_UIO_H=$gl_cv_next_sys_uio_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/uio.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_uio_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H=$gl_next_as_first_directive if test $ac_cv_header_sys_uio_h = yes; then HAVE_SYS_UIO_H=1 else HAVE_SYS_UIO_H=0 fi : if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_utsname_h='<'sys/utsname.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_utsname_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_utsname_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/utsname.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_utsname_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_utsname_h gl_cv_next_sys_utsname_h='"'$gl_header'"' else gl_cv_next_sys_utsname_h='<'sys/utsname.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_utsname_h" >&5 $as_echo "$gl_cv_next_sys_utsname_h" >&6; } fi NEXT_SYS_UTSNAME_H=$gl_cv_next_sys_utsname_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/utsname.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_utsname_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H=$gl_next_as_first_directive if test $ac_cv_header_sys_utsname_h != yes; then HAVE_SYS_UTSNAME_H=0 HAVE_STRUCT_UTSNAME=0 else HAVE_SYS_UTSNAME_H=1 ac_fn_c_check_type "$LINENO" "struct utsname" "ac_cv_type_struct_utsname" " /* Minix 3.1.8 has a bug: must be included before . */ #include #include " if test "x$ac_cv_type_struct_utsname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_UTSNAME 1 _ACEOF else HAVE_STRUCT_UTSNAME=0 fi fi if test $gl_threads_api = posix; then gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBMULTITHREAD" for ac_func in pthread_atfork do ac_fn_c_check_func "$LINENO" "pthread_atfork" "ac_cv_func_pthread_atfork" if test "x$ac_cv_func_pthread_atfork" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PTHREAD_ATFORK 1 _ACEOF fi done LIBS="$gl_save_LIBS" fi ac_fn_c_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "#include " if test "x$ac_cv_have_decl_localtime_r" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_LOCALTIME_R $ac_have_decl _ACEOF if test $ac_cv_have_decl_localtime_r = no; then HAVE_DECL_LOCALTIME_R=0 fi : if test $ac_cv_func_localtime_r = yes; then HAVE_LOCALTIME_R=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether localtime_r is compatible with its POSIX signature" >&5 $as_echo_n "checking whether localtime_r is compatible with its POSIX signature... " >&6; } if ${gl_cv_time_r_posix+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { /* We don't need to append 'restrict's to the argument types, even though the POSIX signature has the 'restrict's, since C99 says they can't affect type compatibility. */ struct tm * (*ptr) (time_t const *, struct tm *) = localtime_r; if (ptr) return 0; /* Check the return type is a pointer. On HP-UX 10 it is 'int'. */ *localtime_r (0, 0); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_time_r_posix=yes else gl_cv_time_r_posix=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_time_r_posix" >&5 $as_echo "$gl_cv_time_r_posix" >&6; } if test $gl_cv_time_r_posix = yes; then REPLACE_LOCALTIME_R=0 else REPLACE_LOCALTIME_R=1 fi else HAVE_LOCALTIME_R=0 fi if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then gl_LIBOBJS="$gl_LIBOBJS time_r.$ac_objext" : fi GNULIB_TIME_R=1 $as_echo "#define GNULIB_TEST_TIME_R 1" >>confdefs.h REPLACE_TIMEGM=0 : if test $ac_cv_func_timegm = yes; then if test "$gl_cv_func_working_mktime" != yes; then # Assume that timegm is buggy if mktime is. REPLACE_TIMEGM=1 fi else HAVE_TIMEGM=0 fi if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then gl_LIBOBJS="$gl_LIBOBJS timegm.$ac_objext" : fi GNULIB_TIMEGM=1 $as_echo "#define GNULIB_TEST_TIMEGM 1" >>confdefs.h for ac_func in uname do ac_fn_c_check_func "$LINENO" "uname" "ac_cv_func_uname" if test "x$ac_cv_func_uname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNAME 1 _ACEOF fi done if test $ac_cv_func_uname = no; then HAVE_UNAME=0 fi if test $HAVE_UNAME = 0; then gl_LIBOBJS="$gl_LIBOBJS uname.$ac_objext" : fi GNULIB_UNAME=1 : if test $gl_cv_have_include_next = yes; then gl_cv_next_unistd_h='<'unistd.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_unistd_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_unistd_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'unistd.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_unistd_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_unistd_h gl_cv_next_unistd_h='"'$gl_header'"' else gl_cv_next_unistd_h='<'unistd.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5 $as_echo "$gl_cv_next_unistd_h" >&6; } fi NEXT_UNISTD_H=$gl_cv_next_unistd_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'unistd.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_unistd_h fi NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi : if test $ac_cv_func_vasnprintf = no; then : gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext" if test $ac_cv_func_vasnprintf = yes; then $as_echo "#define REPLACE_VASNPRINTF 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = xyes; then : else $as_echo "#define ptrdiff_t long" >>confdefs.h fi fi gl_cv_func_vsnprintf_usable=no for ac_func in vsnprintf do ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf" if test "x$ac_cv_func_vsnprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VSNPRINTF 1 _ACEOF fi done if test $ac_cv_func_vsnprintf = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5 $as_echo_n "checking whether snprintf respects a size of 1... " >&6; } if ${gl_cv_func_snprintf_size1+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on native Windows. mingw*) gl_cv_func_snprintf_size1="guessing yes" ;; *) gl_cv_func_snprintf_size1="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_SNPRINTF # define my_snprintf snprintf #else # include static int my_snprintf (char *buf, int size, const char *format, ...) { va_list args; int ret; va_start (args, format); ret = vsnprintf (buf, size, format, args); va_end (args); return ret; } #endif int main() { static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' }; my_snprintf (buf, 1, "%d", 12345); return buf[1] != 'E'; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_snprintf_size1=yes else gl_cv_func_snprintf_size1=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5 $as_echo "$gl_cv_func_snprintf_size1" >&6; } case "$gl_cv_func_snprintf_size1" in *yes) case "$gl_cv_func_snprintf_retval_c99" in *yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5 $as_echo_n "checking whether printf supports POSIX/XSI format strings with positions... " >&6; } if ${gl_cv_func_printf_positions+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*) gl_cv_func_printf_positions="guessing no";; beos*) gl_cv_func_printf_positions="guessing no";; # Guess no on native Windows. mingw* | pw*) gl_cv_func_printf_positions="guessing no";; *) gl_cv_func_printf_positions="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* The string "%2$d %1$d", with dollar characters protected from the shell's dollar expansion (possibly an autoconf bug). */ static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; static char buf[100]; int main () { sprintf (buf, format, 33, 55); return (strcmp (buf, "55 33") != 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_printf_positions=yes else gl_cv_func_printf_positions=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5 $as_echo "$gl_cv_func_printf_positions" >&6; } case "$gl_cv_func_printf_positions" in *yes) gl_cv_func_vsnprintf_usable=yes ;; esac ;; esac ;; esac fi if test $gl_cv_func_vsnprintf_usable = no; then gl_LIBOBJS="$gl_LIBOBJS vsnprintf.$ac_objext" if test $ac_cv_func_vsnprintf = yes; then REPLACE_VSNPRINTF=1 else : if test $ac_cv_have_decl_vsnprintf = yes; then REPLACE_VSNPRINTF=1 fi fi : fi : if test $ac_cv_have_decl_vsnprintf = no; then HAVE_DECL_VSNPRINTF=0 fi GNULIB_VSNPRINTF=1 $as_echo "#define GNULIB_TEST_VSNPRINTF 1" >>confdefs.h : if test $gl_cv_have_include_next = yes; then gl_cv_next_wchar_h='<'wchar.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_wchar_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_wchar_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'wchar.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_wchar_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_wchar_h gl_cv_next_wchar_h='"'$gl_header'"' else gl_cv_next_wchar_h='<'wchar.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5 $as_echo "$gl_cv_next_wchar_h" >&6; } fi NEXT_WCHAR_H=$gl_cv_next_wchar_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'wchar.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_wchar_h fi NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi : : if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac if test $LOCALE_JA != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_incomplete_state=yes else gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 $as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_sanitycheck=yes else gl_cv_func_mbrtowc_sanitycheck=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi : if test $ac_cv_func_wcrtomb = no; then HAVE_WCRTOMB=0 ac_fn_c_check_decl "$LINENO" "wcrtomb" "ac_cv_have_decl_wcrtomb" " /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include " if test "x$ac_cv_have_decl_wcrtomb" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_WCRTOMB $ac_have_decl _ACEOF if test $ac_cv_have_decl_wcrtomb = yes; then REPLACE_WCRTOMB=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_WCRTOMB=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5 $as_echo_n "checking whether wcrtomb return value is correct... " >&6; } if ${gl_cv_func_wcrtomb_retval+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX 4, OSF/1 and Solaris. aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;; # Guess yes on native Windows. mingw*) gl_cv_func_wcrtomb_retval="guessing yes" ;; # Guess yes otherwise. *) gl_cv_func_wcrtomb_retval="guessing yes" ;; esac if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 1; } if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 2; } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 4; } if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 8; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_wcrtomb_retval=yes else gl_cv_func_wcrtomb_retval=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_retval" >&5 $as_echo "$gl_cv_func_wcrtomb_retval" >&6; } case "$gl_cv_func_wcrtomb_retval" in *yes) ;; *) REPLACE_WCRTOMB=1 ;; esac fi fi if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then gl_LIBOBJS="$gl_LIBOBJS wcrtomb.$ac_objext" : fi GNULIB_WCRTOMB=1 $as_echo "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h : if test $ac_cv_func_iswcntrl = yes; then HAVE_ISWCNTRL=1 else HAVE_ISWCNTRL=0 fi if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi : if test $gl_cv_have_include_next = yes; then gl_cv_next_wctype_h='<'wctype.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_wctype_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_wctype_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'wctype.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_wctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_wctype_h gl_cv_next_wctype_h='"'$gl_header'"' else gl_cv_next_wctype_h='<'wctype.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5 $as_echo "$gl_cv_next_wctype_h" >&6; } fi NEXT_WCTYPE_H=$gl_cv_next_wctype_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'wctype.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_wctype_h fi NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5 $as_echo_n "checking whether iswcntrl works... " >&6; } if ${gl_cv_func_iswcntrl_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if __GNU_LIBRARY__ == 1 Linux libc5 i18n is broken. #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_iswcntrl_works="guessing yes" else gl_cv_func_iswcntrl_works="guessing no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #include int main () { return iswprint ('x') == 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_iswcntrl_works=yes else gl_cv_func_iswcntrl_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5 $as_echo "$gl_cv_func_iswcntrl_works" >&6; } fi HAVE_WCTYPE_H=1 else HAVE_WCTYPE_H=0 fi case "$gl_cv_func_iswcntrl_works" in *yes) REPLACE_ISWCNTRL=0 ;; *) REPLACE_ISWCNTRL=1 ;; esac if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then : fi if test $REPLACE_ISWCNTRL = 1; then REPLACE_TOWLOWER=1 else for ac_func in towlower do ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower" if test "x$ac_cv_func_towlower" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TOWLOWER 1 _ACEOF fi done if test $ac_cv_func_towlower = yes; then REPLACE_TOWLOWER=0 else ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #if HAVE_WCTYPE_H # include #endif " if test "x$ac_cv_have_decl_towlower" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_TOWLOWER $ac_have_decl _ACEOF if test $ac_cv_have_decl_towlower = yes; then REPLACE_TOWLOWER=1 else REPLACE_TOWLOWER=0 fi fi fi if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then : fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5 $as_echo_n "checking for wctype_t... " >&6; } if ${gl_cv_type_wctype_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #if HAVE_WCTYPE_H # include #endif wctype_t a; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_wctype_t=yes else gl_cv_type_wctype_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5 $as_echo "$gl_cv_type_wctype_t" >&6; } if test $gl_cv_type_wctype_t = no; then HAVE_WCTYPE_T=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5 $as_echo_n "checking for wctrans_t... " >&6; } if ${gl_cv_type_wctrans_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #include wctrans_t a; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_wctrans_t=yes else gl_cv_type_wctrans_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5 $as_echo "$gl_cv_type_wctrans_t" >&6; } if test $gl_cv_type_wctrans_t = no; then HAVE_WCTRANS_T=0 fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_WRITE=1 fi if test $REPLACE_WRITE = 1; then gl_LIBOBJS="$gl_LIBOBJS write.$ac_objext" : fi GNULIB_WRITE=1 $as_echo "#define GNULIB_TEST_WRITE 1" >>confdefs.h for ac_header in stdint.h do ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF fi done # End of code from modules gltests_libdeps= gltests_ltlibdeps= gl_source_base='libmissing/tests' gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS gl_module_indicator_condition=$gltests_WITNESS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 $as_echo_n "checking for a traditional french locale... " >&6; } if ${gt_cv_locale_fr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; # if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; # endif return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 $as_echo "$gt_cv_locale_fr" >&6; } LOCALE_FR=$gt_cv_locale_fr { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 $as_echo_n "checking for a french Unicode locale... " >&6; } if ${gt_cv_locale_fr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 $as_echo "$gt_cv_locale_fr_utf8" >&6; } LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 $as_echo_n "checking for a traditional french locale... " >&6; } if ${gt_cv_locale_fr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; # if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; # endif return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 $as_echo "$gt_cv_locale_fr" >&6; } LOCALE_FR=$gt_cv_locale_fr { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a turkish Unicode locale" >&5 $as_echo_n "checking for a turkish Unicode locale... " >&6; } if ${gt_cv_locale_tr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. But BeOS does not implement the Turkish upper-/lowercase mappings. Therefore, let this program return 1 on BeOS. */ /* Check whether the given locale name is recognized by the system. */ #if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in the abbreviation of the eighth month, the second character (should be U+011F: LATIN SMALL LETTER G WITH BREVE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1992 - 1900; t.tm_mon = 8 - 1; t.tm_mday = 19; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc4 || buf[2] != (char) 0x9f) return 1; /* Check whether the upper-/lowercase mappings are as expected for Turkish. */ if (towupper ('i') != 0x0130 || towlower (0x0130) != 'i' || towupper(0x0131) != 'I' || towlower ('I') != 0x0131) return 1; return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Turkish_Turkey.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=Turkish_Turkey.65001 else # None found. gt_cv_locale_tr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=tr_TR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=tr_TR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=tr.UTF-8 else # None found. gt_cv_locale_tr_utf8=none fi fi fi ;; esac else gt_cv_locale_tr_utf8=none fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_tr_utf8" >&5 $as_echo "$gt_cv_locale_tr_utf8" >&6; } LOCALE_TR_UTF8=$gt_cv_locale_tr_utf8 $as_echo "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_ctype_h='<'ctype.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_ctype_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'ctype.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_ctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_ctype_h gl_cv_next_ctype_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_ctype_h" >&5 $as_echo "$gl_cv_next_ctype_h" >&6; } fi NEXT_CTYPE_H=$gl_cv_next_ctype_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'ctype.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_ctype_h fi NEXT_AS_FIRST_DIRECTIVE_CTYPE_H=$gl_next_as_first_directive if test "$GNULIB_ENVIRON" != 1; then if test "$GNULIB_ENVIRON" = 0; then GNULIB_ENVIRON=$gl_module_indicator_condition else GNULIB_ENVIRON="($GNULIB_ENVIRON || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h : if test $ac_cv_func_fcntl = no; then : if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5 $as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; } if ${gl_cv_func_fcntl_f_dupfd_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case $host_os in aix* | cygwin* | haiku*) gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif int main () { int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; if (errno != EINVAL) result |= 2; if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; if (errno != EINVAL) result |= 8; /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ { int fd; fd = open (".", O_RDONLY); if (fd == -1) result |= 16; else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) result |= 32; close (fd); } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fcntl_f_dupfd_works=yes else gl_cv_func_fcntl_f_dupfd_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_works" >&5 $as_echo "$gl_cv_func_fcntl_f_dupfd_works" >&6; } case $gl_cv_func_fcntl_f_dupfd_works in *yes) ;; *) : if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi $as_echo "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5 $as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; } if ${gl_cv_func_fcntl_f_dupfd_cloexec+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef F_DUPFD_CLOEXEC choke me #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __linux__ /* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace it to support the semantics on older kernels that failed with EINVAL. */ choke me #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_fcntl_f_dupfd_cloexec=yes else gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else gl_cv_func_fcntl_f_dupfd_cloexec=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_cloexec" >&5 $as_echo "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; } if test "$gl_cv_func_fcntl_f_dupfd_cloexec" != yes; then : if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi fi fi if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then gltests_LIBOBJS="$gltests_LIBOBJS fcntl.$ac_objext" fi if test "$GNULIB_FCNTL" != 1; then if test "$GNULIB_FCNTL" = 0; then GNULIB_FCNTL=$gl_module_indicator_condition else GNULIB_FCNTL="($GNULIB_FCNTL || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_FCNTL 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_fcntl_h='<'fcntl.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_fcntl_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'fcntl.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_fcntl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_fcntl_h gl_cv_next_fcntl_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fcntl_h" >&5 $as_echo "$gl_cv_next_fcntl_h" >&6; } fi NEXT_FCNTL_H=$gl_cv_next_fcntl_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'fcntl.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_fcntl_h fi NEXT_AS_FIRST_DIRECTIVE_FCNTL_H=$gl_next_as_first_directive if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_FDOPEN=1 fi if test $REPLACE_FDOPEN = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fdopen sets errno" >&5 $as_echo_n "checking whether fdopen sets errno... " >&6; } if ${gl_cv_func_fdopen_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in mingw*) gl_cv_func_fdopen_works="guessing no" ;; *) gl_cv_func_fdopen_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main (void) { FILE *fp; errno = 0; fp = fdopen (-1, "r"); if (fp == NULL && errno == 0) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fdopen_works=yes else gl_cv_func_fdopen_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fdopen_works" >&5 $as_echo "$gl_cv_func_fdopen_works" >&6; } case "$gl_cv_func_fdopen_works" in *no) REPLACE_FDOPEN=1 ;; esac fi if test $REPLACE_FDOPEN = 1; then gltests_LIBOBJS="$gltests_LIBOBJS fdopen.$ac_objext" fi if test "$GNULIB_FDOPEN" != 1; then if test "$GNULIB_FDOPEN" = 0; then GNULIB_FDOPEN=$gl_module_indicator_condition else GNULIB_FDOPEN="($GNULIB_FDOPEN || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_FDOPEN 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flexible array member" >&5 $as_echo_n "checking for flexible array member... " >&6; } if ${ac_cv_c_flexmember+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include struct m { struct m *next, **list; char name[]; }; struct s { struct s *p; struct m *m; int n; double d[]; }; int main () { int m = getchar (); size_t nbytes = offsetof (struct s, d) + m * sizeof (double); nbytes += sizeof (struct s) - 1; nbytes -= nbytes % sizeof (struct s); struct s *p = malloc (nbytes); p->p = p; p->m = NULL; p->d[0] = 0.0; return p->d != (double *) NULL; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_flexmember=yes else ac_cv_c_flexmember=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_flexmember" >&5 $as_echo "$ac_cv_c_flexmember" >&6; } if test $ac_cv_c_flexmember = yes; then $as_echo "#define FLEXIBLE_ARRAY_MEMBER /**/" >>confdefs.h else $as_echo "#define FLEXIBLE_ARRAY_MEMBER 1" >>confdefs.h fi : if test $ac_cv_func_ftruncate = yes; then case "$host_os" in mingw*) REPLACE_FTRUNCATE=1 ;; esac else HAVE_FTRUNCATE=0 fi if test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1; then gltests_LIBOBJS="$gltests_LIBOBJS ftruncate.$ac_objext" for ac_func in chsize do ac_fn_c_check_func "$LINENO" "chsize" "ac_cv_func_chsize" if test "x$ac_cv_func_chsize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_CHSIZE 1 _ACEOF fi done fi if test "$GNULIB_FTRUNCATE" != 1; then if test "$GNULIB_FTRUNCATE" = 0; then GNULIB_FTRUNCATE=$gl_module_indicator_condition else GNULIB_FTRUNCATE="($GNULIB_FTRUNCATE || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_FTRUNCATE 1" >>confdefs.h case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in *yes,yes) ;; *) REPLACE_GETCWD=1 ;; esac if test $REPLACE_GETCWD = 1; then gltests_LIBOBJS="$gltests_LIBOBJS getcwd-lgpl.$ac_objext" fi if test "$GNULIB_GETCWD" != 1; then if test "$GNULIB_GETCWD" = 0; then GNULIB_GETCWD=$gl_module_indicator_condition else GNULIB_GETCWD="($GNULIB_GETCWD || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_GETCWD 1" >>confdefs.h : : if test $ac_cv_func_getdtablesize = yes && test $ac_cv_have_decl_getdtablesize = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getdtablesize works" >&5 $as_echo_n "checking whether getdtablesize works... " >&6; } if ${gl_cv_func_getdtablesize_works+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;; *) if test "$cross_compiling" = yes; then : case "$host_os" in cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows gl_cv_func_getdtablesize_works="guessing no" ;; *) gl_cv_func_getdtablesize_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int size = getdtablesize(); if (dup2 (0, getdtablesize()) != -1) return 1; if (size != getdtablesize()) return 2; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getdtablesize_works=yes else gl_cv_func_getdtablesize_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getdtablesize_works" >&5 $as_echo "$gl_cv_func_getdtablesize_works" >&6; } case "$gl_cv_func_getdtablesize_works" in *yes | "no (limitation)") ;; *) REPLACE_GETDTABLESIZE=1 ;; esac else HAVE_GETDTABLESIZE=0 fi if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then gltests_LIBOBJS="$gltests_LIBOBJS getdtablesize.$ac_objext" : fi if test "$GNULIB_GETDTABLESIZE" != 1; then if test "$GNULIB_GETDTABLESIZE" = 0; then GNULIB_GETDTABLESIZE=$gl_module_indicator_condition else GNULIB_GETDTABLESIZE="($GNULIB_GETDTABLESIZE || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 $as_echo_n "checking for getpagesize... " >&6; } if ${gl_cv_func_getpagesize+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return getpagesize(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_getpagesize=yes else gl_cv_func_getpagesize=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getpagesize" >&5 $as_echo "$gl_cv_func_getpagesize" >&6; } if test $gl_cv_func_getpagesize = no; then HAVE_GETPAGESIZE=0 for ac_header in OS.h do ac_fn_c_check_header_mongrel "$LINENO" "OS.h" "ac_cv_header_OS_h" "$ac_includes_default" if test "x$ac_cv_header_OS_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_OS_H 1 _ACEOF fi done if test $ac_cv_header_OS_h = yes; then HAVE_OS_H=1 fi for ac_header in sys/param.h do ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default" if test "x$ac_cv_header_sys_param_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_PARAM_H 1 _ACEOF fi done if test $ac_cv_header_sys_param_h = yes; then HAVE_SYS_PARAM_H=1 fi fi case "$host_os" in mingw*) REPLACE_GETPAGESIZE=1 ;; esac ac_fn_c_check_decl "$LINENO" "getpagesize" "ac_cv_have_decl_getpagesize" "$ac_includes_default" if test "x$ac_cv_have_decl_getpagesize" = xyes; then : else HAVE_DECL_GETPAGESIZE=0 fi if test $REPLACE_GETPAGESIZE = 1; then gltests_LIBOBJS="$gltests_LIBOBJS getpagesize.$ac_objext" fi if test "$GNULIB_GETPAGESIZE" != 1; then if test "$GNULIB_GETPAGESIZE" = 0; then GNULIB_GETPAGESIZE=$gl_module_indicator_condition else GNULIB_GETPAGESIZE="($GNULIB_GETPAGESIZE || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_GETPAGESIZE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 $as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 $as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac PRIPTR_PREFIX= if test -n "$STDINT_H"; then PRIPTR_PREFIX='"l"' else for glpfx in '' l ll I64; do case $glpfx in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; I64) gltype1='__int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern intptr_t foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : PRIPTR_PREFIX='"'$glpfx'"' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test -n "$PRIPTR_PREFIX" && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT32_MAX < INTMAX_MAX" >&5 $as_echo_n "checking whether INT32_MAX < INTMAX_MAX... " >&6; } if ${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if defined INT32_MAX && defined INTMAX_MAX #define CONDITION (INT32_MAX < INTMAX_MAX) #elif HAVE_LONG_LONG_INT #define CONDITION (sizeof (int) < sizeof (long long int)) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_test_INT32_MAX_LT_INTMAX_MAX=yes else gl_cv_test_INT32_MAX_LT_INTMAX_MAX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&5 $as_echo "$gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&6; } if test $gl_cv_test_INT32_MAX_LT_INTMAX_MAX = yes; then INT32_MAX_LT_INTMAX_MAX=1; else INT32_MAX_LT_INTMAX_MAX=0; fi if test $APPLE_UNIVERSAL_BUILD = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT64_MAX == LONG_MAX" >&5 $as_echo_n "checking whether INT64_MAX == LONG_MAX... " >&6; } if ${gl_cv_test_INT64_MAX_EQ_LONG_MAX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if defined INT64_MAX #define CONDITION (INT64_MAX == LONG_MAX) #elif HAVE_LONG_LONG_INT #define CONDITION (sizeof (long long int) == sizeof (long int)) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes else gl_cv_test_INT64_MAX_EQ_LONG_MAX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&5 $as_echo "$gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&6; } if test $gl_cv_test_INT64_MAX_EQ_LONG_MAX = yes; then INT64_MAX_EQ_LONG_MAX=1; else INT64_MAX_EQ_LONG_MAX=0; fi else INT64_MAX_EQ_LONG_MAX=-1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UINT32_MAX < UINTMAX_MAX" >&5 $as_echo_n "checking whether UINT32_MAX < UINTMAX_MAX... " >&6; } if ${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if defined UINT32_MAX && defined UINTMAX_MAX #define CONDITION (UINT32_MAX < UINTMAX_MAX) #elif HAVE_LONG_LONG_INT #define CONDITION (sizeof (unsigned int) < sizeof (unsigned long long int)) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=yes else gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&5 $as_echo "$gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&6; } if test $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX = yes; then UINT32_MAX_LT_UINTMAX_MAX=1; else UINT32_MAX_LT_UINTMAX_MAX=0; fi if test $APPLE_UNIVERSAL_BUILD = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UINT64_MAX == ULONG_MAX" >&5 $as_echo_n "checking whether UINT64_MAX == ULONG_MAX... " >&6; } if ${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if defined UINT64_MAX #define CONDITION (UINT64_MAX == ULONG_MAX) #elif HAVE_LONG_LONG_INT #define CONDITION (sizeof (unsigned long long int) == sizeof (unsigned long int)) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=yes else gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&5 $as_echo "$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; } if test $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX = yes; then UINT64_MAX_EQ_ULONG_MAX=1; else UINT64_MAX_EQ_ULONG_MAX=0; fi else UINT64_MAX_EQ_ULONG_MAX=-1 fi : if test $ac_cv_func_isblank = no; then HAVE_ISBLANK=0 fi if test $HAVE_ISBLANK = 0; then gltests_LIBOBJS="$gltests_LIBOBJS isblank.$ac_objext" fi if test "$GNULIB_ISBLANK" != 1; then if test "$GNULIB_ISBLANK" = 0; then GNULIB_ISBLANK=$gl_module_indicator_condition else GNULIB_ISBLANK="($GNULIB_ISBLANK || $gl_module_indicator_condition)" fi fi : : for ac_func in setlocale uselocale do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_func_uselocale = yes; then for ac_func in getlocalename_l do ac_fn_c_check_func "$LINENO" "getlocalename_l" "ac_cv_func_getlocalename_l" if test "x$ac_cv_func_getlocalename_l" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETLOCALENAME_L 1 _ACEOF fi done fi : : : if test $ac_cv_func_lstat = yes; then case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in solaris* | *no) REPLACE_LSTAT=1 ;; esac else HAVE_LSTAT=0 fi if test $REPLACE_LSTAT = 1; then gltests_LIBOBJS="$gltests_LIBOBJS lstat.$ac_objext" : fi if test "$GNULIB_LSTAT" != 1; then if test "$GNULIB_LSTAT" = 0; then GNULIB_LSTAT=$gl_module_indicator_condition else GNULIB_LSTAT="($GNULIB_LSTAT || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_LSTAT 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 $as_echo_n "checking for a traditional french locale... " >&6; } if ${gt_cv_locale_fr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; # if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; # endif return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 $as_echo "$gt_cv_locale_fr" >&6; } LOCALE_FR=$gt_cv_locale_fr { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 $as_echo_n "checking for a french Unicode locale... " >&6; } if ${gt_cv_locale_fr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 $as_echo "$gt_cv_locale_fr_utf8" >&6; } LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 $as_echo_n "checking for a traditional japanese locale... " >&6; } if ${gt_cv_locale_ja+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5 $as_echo "$gt_cv_locale_ja" >&6; } LOCALE_JA=$gt_cv_locale_ja { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 $as_echo_n "checking for a transitional chinese locale... " >&6; } if ${gt_cv_locale_zh_CN+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5 $as_echo "$gt_cv_locale_zh_CN" >&6; } LOCALE_ZH_CN=$gt_cv_locale_zh_CN { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 $as_echo_n "checking for a french Unicode locale... " >&6; } if ${gt_cv_locale_fr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 $as_echo "$gt_cv_locale_fr_utf8" >&6; } LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" if test "x$ac_cv_func_mmap" = xyes; then : gl_have_mmap=yes else gl_have_mmap=no fi # Try to allow MAP_ANONYMOUS. gl_have_mmap_anonymous=no if test $gl_have_mmap = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5 $as_echo_n "checking for MAP_ANONYMOUS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef MAP_ANONYMOUS I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1; then : gl_have_mmap_anonymous=yes fi rm -f conftest* if test $gl_have_mmap_anonymous != yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef MAP_ANON I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1; then : $as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h gl_have_mmap_anonymous=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5 $as_echo "$gl_have_mmap_anonymous" >&6; } if test $gl_have_mmap_anonymous = yes; then $as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h fi fi : : # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" if test "x$ac_cv_func_mmap" = xyes; then : gl_have_mmap=yes else gl_have_mmap=no fi # Try to allow MAP_ANONYMOUS. gl_have_mmap_anonymous=no if test $gl_have_mmap = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5 $as_echo_n "checking for MAP_ANONYMOUS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef MAP_ANONYMOUS I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1; then : gl_have_mmap_anonymous=yes fi rm -f conftest* if test $gl_have_mmap_anonymous != yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef MAP_ANON I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1; then : $as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h gl_have_mmap_anonymous=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5 $as_echo "$gl_have_mmap_anonymous" >&6; } if test $gl_have_mmap_anonymous = yes; then $as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h fi fi : : : : : nanosleep_save_libs=$LIBS # Solaris 2.5.1 needs -lposix4 to get the nanosleep function. # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4. LIB_NANOSLEEP= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nanosleep" >&5 $as_echo_n "checking for library containing nanosleep... " >&6; } if ${ac_cv_search_nanosleep+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char nanosleep (); int main () { return nanosleep (); ; return 0; } _ACEOF for ac_lib in '' rt posix4; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_nanosleep=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_nanosleep+:} false; then : break fi done if ${ac_cv_search_nanosleep+:} false; then : else ac_cv_search_nanosleep=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nanosleep" >&5 $as_echo "$ac_cv_search_nanosleep" >&6; } ac_res=$ac_cv_search_nanosleep if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" test "$ac_cv_search_nanosleep" = "none required" || LIB_NANOSLEEP=$ac_cv_search_nanosleep fi if test "x$ac_cv_search_nanosleep" != xno; then if test $APPLE_UNIVERSAL_BUILD = 1; then # A universal build on Apple Mac OS X platforms. # The test result would be 'no (mishandles large arguments)' in 64-bit # mode but 'yes' in 32-bit mode. But we need a configuration result that # is valid in both modes. gl_cv_func_nanosleep='no (mishandles large arguments)' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working nanosleep" >&5 $as_echo_n "checking for working nanosleep... " >&6; } if ${gl_cv_func_nanosleep+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in linux*) # Guess it halfway works when the kernel is Linux. gl_cv_func_nanosleep='guessing no (mishandles large arguments)' ;; mingw*) # Guess no on native Windows. gl_cv_func_nanosleep='guessing no' ;; *) # If we don't know, assume the worst. gl_cv_func_nanosleep='guessing no' ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #if HAVE_SYS_TIME_H #include #endif #include #include #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) #if HAVE_DECL_ALARM static void check_for_SIGALRM (int sig) { if (sig != SIGALRM) _exit (1); } #endif int main () { static struct timespec ts_sleep; static struct timespec ts_remaining; /* Test for major problems first. */ if (! nanosleep) return 2; ts_sleep.tv_sec = 0; ts_sleep.tv_nsec = 1; #if HAVE_DECL_ALARM { static struct sigaction act; act.sa_handler = check_for_SIGALRM; sigemptyset (&act.sa_mask); sigaction (SIGALRM, &act, NULL); alarm (1); if (nanosleep (&ts_sleep, NULL) != 0) return 3; /* Test for a minor problem: the handling of large arguments. */ ts_sleep.tv_sec = TYPE_MAXIMUM (time_t); ts_sleep.tv_nsec = 999999999; alarm (1); if (nanosleep (&ts_sleep, &ts_remaining) != -1) return 4; if (errno != EINTR) return 5; if (ts_remaining.tv_sec <= TYPE_MAXIMUM (time_t) - 10) return 6; } #else /* A simpler test for native Windows. */ if (nanosleep (&ts_sleep, &ts_remaining) < 0) return 3; #endif return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_nanosleep=yes else case $? in 4|5|6) gl_cv_func_nanosleep='no (mishandles large arguments)';; *) gl_cv_func_nanosleep=no;; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nanosleep" >&5 $as_echo "$gl_cv_func_nanosleep" >&6; } case "$gl_cv_func_nanosleep" in *yes) REPLACE_NANOSLEEP=0 ;; *) REPLACE_NANOSLEEP=1 case "$gl_cv_func_nanosleep" in *"mishandles large arguments"*) $as_echo "#define HAVE_BUG_BIG_NANOSLEEP 1" >>confdefs.h ;; *) # The replacement uses select(). Add $LIBSOCKET to $LIB_NANOSLEEP. for ac_lib in $LIBSOCKET; do case " $LIB_NANOSLEEP " in *" $ac_lib "*) ;; *) LIB_NANOSLEEP="$LIB_NANOSLEEP $ac_lib";; esac done ;; esac ;; esac else HAVE_NANOSLEEP=0 fi LIBS=$nanosleep_save_libs if test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1; then gltests_LIBOBJS="$gltests_LIBOBJS nanosleep.$ac_objext" : : fi if test "$GNULIB_NANOSLEEP" != 1; then if test "$GNULIB_NANOSLEEP" = 0; then GNULIB_NANOSLEEP=$gl_module_indicator_condition else GNULIB_NANOSLEEP="($GNULIB_NANOSLEEP || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_NANOSLEEP 1" >>confdefs.h : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 $as_echo_n "checking for a traditional french locale... " >&6; } if ${gt_cv_locale_fr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; # if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; # endif return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 $as_echo "$gt_cv_locale_fr" >&6; } LOCALE_FR=$gt_cv_locale_fr { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 $as_echo_n "checking for a french Unicode locale... " >&6; } if ${gt_cv_locale_fr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 $as_echo "$gt_cv_locale_fr_utf8" >&6; } LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 case "$host_os" in mingw* | pw*) REPLACE_OPEN=1 ;; *) : if test "$gl_cv_macro_O_CLOEXEC" != yes; then REPLACE_OPEN=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5 $as_echo_n "checking whether open recognizes a trailing slash... " >&6; } if ${gl_cv_func_open_slash+:} false; then : $as_echo_n "(cached) " >&6 else # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then touch conftest.tmp ln -s conftest.tmp conftest.lnk fi if test "$cross_compiling" = yes; then : case "$host_os" in freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #endif int main () { int result = 0; #if HAVE_LSTAT if (open ("conftest.lnk/", O_RDONLY) != -1) result |= 1; #endif if (open ("conftest.sl/", O_CREAT, 0600) >= 0) result |= 2; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_open_slash=yes else gl_cv_func_open_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.sl conftest.tmp conftest.lnk fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5 $as_echo "$gl_cv_func_open_slash" >&6; } case "$gl_cv_func_open_slash" in *no) $as_echo "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h REPLACE_OPEN=1 ;; esac ;; esac if test $REPLACE_OPEN = 1; then gltests_LIBOBJS="$gltests_LIBOBJS open.$ac_objext" : fi if test "$GNULIB_OPEN" != 1; then if test "$GNULIB_OPEN" = 0; then GNULIB_OPEN=$gl_module_indicator_condition else GNULIB_OPEN="($GNULIB_OPEN || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_OPEN 1" >>confdefs.h : if test $ac_cv_func_pipe != yes; then HAVE_PIPE=0 fi if test $HAVE_PIPE = 0; then gltests_LIBOBJS="$gltests_LIBOBJS pipe.$ac_objext" fi if test "$GNULIB_PIPE" != 1; then if test "$GNULIB_PIPE" = 0; then GNULIB_PIPE=$gl_module_indicator_condition else GNULIB_PIPE="($GNULIB_PIPE || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_PIPE 1" >>confdefs.h : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for putenv compatible with GNU and SVID" >&5 $as_echo_n "checking for putenv compatible with GNU and SVID... " >&6; } if ${gl_cv_func_svid_putenv+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_svid_putenv="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_svid_putenv="guessing no" ;; # If we don't know, assume the worst. *) gl_cv_func_svid_putenv="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Put it in env. */ if (putenv ("CONFTEST_putenv=val")) return 1; /* Try to remove it. */ if (putenv ("CONFTEST_putenv")) return 2; /* Make sure it was deleted. */ if (getenv ("CONFTEST_putenv") != 0) return 3; return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_svid_putenv=yes else gl_cv_func_svid_putenv=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_svid_putenv" >&5 $as_echo "$gl_cv_func_svid_putenv" >&6; } case "$gl_cv_func_svid_putenv" in *yes) ;; *) REPLACE_PUTENV=1 ;; esac if test $REPLACE_PUTENV = 1; then gltests_LIBOBJS="$gltests_LIBOBJS putenv.$ac_objext" ac_fn_c_check_decl "$LINENO" "_putenv" "ac_cv_have_decl__putenv" "$ac_includes_default" if test "x$ac_cv_have_decl__putenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__PUTENV $ac_have_decl _ACEOF fi if test "$GNULIB_PUTENV" != 1; then if test "$GNULIB_PUTENV" = 0; then GNULIB_PUTENV=$gl_module_indicator_condition else GNULIB_PUTENV="($GNULIB_PUTENV || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_PUTENV 1" >>confdefs.h : if test $ac_cv_func_setenv = no; then HAVE_SETENV=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5 $as_echo_n "checking whether setenv validates arguments... " >&6; } if ${gl_cv_func_setenv_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_setenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_setenv_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int result = 0; { if (setenv ("", "", 0) != -1) result |= 1; else if (errno != EINVAL) result |= 2; } { if (setenv ("a", "=", 1) != 0) result |= 4; else if (strcmp (getenv ("a"), "=") != 0) result |= 8; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_setenv_works=yes else gl_cv_func_setenv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setenv_works" >&5 $as_echo "$gl_cv_func_setenv_works" >&6; } case "$gl_cv_func_setenv_works" in *yes) ;; *) REPLACE_SETENV=1 ;; esac fi if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then gltests_LIBOBJS="$gltests_LIBOBJS setenv.$ac_objext" fi if test "$GNULIB_SETENV" != 1; then if test "$GNULIB_SETENV" = 0; then GNULIB_SETENV=$gl_module_indicator_condition else GNULIB_SETENV="($GNULIB_SETENV || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_SETENV 1" >>confdefs.h case "$host_os" in mingw*) REPLACE_SETLOCALE=1 ;; cygwin*) case `uname -r` in 1.5.*) REPLACE_SETLOCALE=1 ;; esac ;; esac if test $REPLACE_SETLOCALE = 1; then gltests_LIBOBJS="$gltests_LIBOBJS setlocale.$ac_objext" : fi if test "$GNULIB_SETLOCALE" != 1; then if test "$GNULIB_SETLOCALE" = 0; then GNULIB_SETLOCALE=$gl_module_indicator_condition else GNULIB_SETLOCALE="($GNULIB_SETLOCALE || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_SETLOCALE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 $as_echo_n "checking for a traditional french locale... " >&6; } if ${gt_cv_locale_fr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; # if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; # endif return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 $as_echo "$gt_cv_locale_fr" >&6; } LOCALE_FR=$gt_cv_locale_fr { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 $as_echo_n "checking for a french Unicode locale... " >&6; } if ${gt_cv_locale_fr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 $as_echo "$gt_cv_locale_fr_utf8" >&6; } LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 $as_echo_n "checking for a traditional japanese locale... " >&6; } if ${gt_cv_locale_ja+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5 $as_echo "$gt_cv_locale_ja" >&6; } LOCALE_JA=$gt_cv_locale_ja { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 $as_echo_n "checking for a transitional chinese locale... " >&6; } if ${gt_cv_locale_zh_CN+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5 $as_echo "$gt_cv_locale_zh_CN" >&6; } LOCALE_ZH_CN=$gt_cv_locale_zh_CN : if test $ac_cv_func_sigaction = yes; then ac_fn_c_check_member "$LINENO" "struct sigaction" "sa_sigaction" "ac_cv_member_struct_sigaction_sa_sigaction" "#include " if test "x$ac_cv_member_struct_sigaction_sa_sigaction" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SIGACTION_SA_SIGACTION 1 _ACEOF fi if test $ac_cv_member_struct_sigaction_sa_sigaction = no; then HAVE_STRUCT_SIGACTION_SA_SIGACTION=0 fi else HAVE_SIGACTION=0 fi if test $HAVE_SIGACTION = 0; then gltests_LIBOBJS="$gltests_LIBOBJS sigaction.$ac_objext" : ac_fn_c_check_type "$LINENO" "siginfo_t" "ac_cv_type_siginfo_t" " #include " if test "x$ac_cv_type_siginfo_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SIGINFO_T 1 _ACEOF fi if test $ac_cv_type_siginfo_t = no; then HAVE_SIGINFO_T=0 fi fi if test "$GNULIB_SIGACTION" != 1; then if test "$GNULIB_SIGACTION" = 0; then GNULIB_SIGACTION=$gl_module_indicator_condition else GNULIB_SIGACTION="($GNULIB_SIGACTION || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_SIGACTION 1" >>confdefs.h : : # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" if test "x$ac_cv_func_mmap" = xyes; then : gl_have_mmap=yes else gl_have_mmap=no fi # Try to allow MAP_ANONYMOUS. gl_have_mmap_anonymous=no if test $gl_have_mmap = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5 $as_echo_n "checking for MAP_ANONYMOUS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef MAP_ANONYMOUS I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1; then : gl_have_mmap_anonymous=yes fi rm -f conftest* if test $gl_have_mmap_anonymous != yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef MAP_ANON I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1; then : $as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h gl_have_mmap_anonymous=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5 $as_echo "$gl_have_mmap_anonymous" >&6; } if test $gl_have_mmap_anonymous = yes; then $as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h fi fi : : : if test $ac_cv_func_symlink = no; then HAVE_SYMLINK=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether symlink handles trailing slash correctly" >&5 $as_echo_n "checking whether symlink handles trailing slash correctly... " >&6; } if ${gl_cv_func_symlink_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on Linux systems. linux-* | linux) gl_cv_func_symlink_works="guessing yes" ;; # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_symlink_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_symlink_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int result = 0; if (!symlink ("a", "conftest.link/")) result |= 1; if (symlink ("conftest.f", "conftest.lnk2")) result |= 2; else if (!symlink ("a", "conftest.lnk2/")) result |= 4; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_symlink_works=yes else gl_cv_func_symlink_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.f conftest.link conftest.lnk2 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_symlink_works" >&5 $as_echo "$gl_cv_func_symlink_works" >&6; } case "$gl_cv_func_symlink_works" in *yes) ;; *) REPLACE_SYMLINK=1 ;; esac fi if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then gltests_LIBOBJS="$gltests_LIBOBJS symlink.$ac_objext" fi if test "$GNULIB_SYMLINK" != 1; then if test "$GNULIB_SYMLINK" = 0; then GNULIB_SYMLINK=$gl_module_indicator_condition else GNULIB_SYMLINK="($GNULIB_SYMLINK || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_SYMLINK 1" >>confdefs.h : : if test $ac_cv_have_decl_unsetenv = no; then HAVE_DECL_UNSETENV=0 fi for ac_func in unsetenv do ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv" if test "x$ac_cv_func_unsetenv" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNSETENV 1 _ACEOF fi done if test $ac_cv_func_unsetenv = no; then HAVE_UNSETENV=0 else HAVE_UNSETENV=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5 $as_echo_n "checking for unsetenv() return type... " >&6; } if ${gt_cv_func_unsetenv_ret+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #undef _BSD #define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 */ #include extern #ifdef __cplusplus "C" #endif int unsetenv (const char *name); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_func_unsetenv_ret='int' else gt_cv_func_unsetenv_ret='void' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_unsetenv_ret" >&5 $as_echo "$gt_cv_func_unsetenv_ret" >&6; } if test $gt_cv_func_unsetenv_ret = 'void'; then $as_echo "#define VOID_UNSETENV 1" >>confdefs.h REPLACE_UNSETENV=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unsetenv obeys POSIX" >&5 $as_echo_n "checking whether unsetenv obeys POSIX... " >&6; } if ${gl_cv_func_unsetenv_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_unsetenv_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include extern char **environ; int main () { char entry1[] = "a=1"; char entry2[] = "b=2"; char *env[] = { entry1, entry2, NULL }; if (putenv ((char *) "a=1")) return 1; if (putenv (entry2)) return 2; entry2[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 3; if (!unsetenv ("") || errno != EINVAL) return 4; entry2[0] = 'b'; environ = env; if (!getenv ("a")) return 5; entry2[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 6; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_unsetenv_works=yes else gl_cv_func_unsetenv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unsetenv_works" >&5 $as_echo "$gl_cv_func_unsetenv_works" >&6; } case "$gl_cv_func_unsetenv_works" in *yes) ;; *) REPLACE_UNSETENV=1 ;; esac fi if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then gltests_LIBOBJS="$gltests_LIBOBJS unsetenv.$ac_objext" : fi if test "$GNULIB_UNSETENV" != 1; then if test "$GNULIB_UNSETENV" = 0; then GNULIB_UNSETENV=$gl_module_indicator_condition else GNULIB_UNSETENV="($GNULIB_UNSETENV || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_UNSETENV 1" >>confdefs.h : ac_fn_c_check_type "$LINENO" "useconds_t" "ac_cv_type_useconds_t" "$ac_includes_default" if test "x$ac_cv_type_useconds_t" = xyes; then : else $as_echo "#define useconds_t unsigned int" >>confdefs.h fi if test $ac_cv_func_usleep = no; then HAVE_USLEEP=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether usleep allows large arguments" >&5 $as_echo_n "checking whether usleep allows large arguments... " >&6; } if ${gl_cv_func_usleep_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu* | gnu*) gl_cv_func_usleep_works="guessing yes" ;; # Guess no on native Windows. mingw*) gl_cv_func_usleep_works="guessing no" ;; # If we don't know, assume the worst. *) gl_cv_func_usleep_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !!usleep (1000000); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_usleep_works=yes else gl_cv_func_usleep_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_usleep_works" >&5 $as_echo "$gl_cv_func_usleep_works" >&6; } case "$gl_cv_func_usleep_works" in *yes) ;; *) REPLACE_USLEEP=1 ;; esac fi if test $HAVE_USLEEP = 0 || test $REPLACE_USLEEP = 1; then gltests_LIBOBJS="$gltests_LIBOBJS usleep.$ac_objext" fi if test "$GNULIB_USLEEP" != 1; then if test "$GNULIB_USLEEP" = 0; then GNULIB_USLEEP=$gl_module_indicator_condition else GNULIB_USLEEP="($GNULIB_USLEEP || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_USLEEP 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 $as_echo_n "checking for a traditional french locale... " >&6; } if ${gt_cv_locale_fr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; # if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; # endif return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 $as_echo "$gt_cv_locale_fr" >&6; } LOCALE_FR=$gt_cv_locale_fr { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 $as_echo_n "checking for a french Unicode locale... " >&6; } if ${gt_cv_locale_fr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 $as_echo "$gt_cv_locale_fr_utf8" >&6; } LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 $as_echo_n "checking for a traditional japanese locale... " >&6; } if ${gt_cv_locale_ja+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5 $as_echo "$gt_cv_locale_ja" >&6; } LOCALE_JA=$gt_cv_locale_ja { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 $as_echo_n "checking for a transitional chinese locale... " >&6; } if ${gt_cv_locale_zh_CN+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if defined __BEOS__ || defined __HAIKU__ return 1; #else /* Check whether the given locale name is recognized by the system. */ # if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ { const char *p; t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; } /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; #endif } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5 $as_echo "$gt_cv_locale_zh_CN" >&6; } LOCALE_ZH_CN=$gt_cv_locale_zh_CN : if test $ac_cv_func_wctob = no; then HAVE_WCTOB=0 HAVE_DECL_WCTOB=0 else HAVE_WCTOB=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wctob works" >&5 $as_echo_n "checking whether wctob works... " >&6; } if ${gl_cv_func_wctob_works+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris <= 9 and Cygwin. solaris2.[1-9] | solaris2.[1-9].* | cygwin*) gl_cv_func_wctob_works="guessing no" ;; # Guess no on native Windows. mingw*) gl_cv_func_wctob_works="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_wctob_works="guessing yes" ;; esac case "$host_os" in cygwin*) if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include register long global __asm__ ("%ebx"); int main () { setlocale (LC_ALL, "en_US.UTF-8"); global = 0x12345678; if (wctob (0x00FC) != -1) return 1; if (global != 0x12345678) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : : else gl_cv_func_wctob_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi ;; esac if test "$gl_cv_func_wctob_works" != no && test $LOCALE_FR != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { wchar_t wc; if (mbtowc (&wc, "\374", 1) == 1) if (wctob (wc) != (unsigned char) '\374') return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_wctob_works=yes else gl_cv_func_wctob_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wctob_works" >&5 $as_echo "$gl_cv_func_wctob_works" >&6; } case "$gl_cv_func_wctob_works" in *yes) ;; *) REPLACE_WCTOB=1 ;; esac if test $REPLACE_WCTOB = 0; then ac_fn_c_check_decl "$LINENO" "wctob" "ac_cv_have_decl_wctob" " /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include " if test "x$ac_cv_have_decl_wctob" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_WCTOB $ac_have_decl _ACEOF if test $ac_cv_have_decl_wctob != yes; then HAVE_DECL_WCTOB=0 fi fi fi if test $HAVE_WCTOB = 0 || test $REPLACE_WCTOB = 1; then gltests_LIBOBJS="$gltests_LIBOBJS wctob.$ac_objext" : fi if test "$GNULIB_WCTOB" != 1; then if test "$GNULIB_WCTOB" = 0; then GNULIB_WCTOB=$gl_module_indicator_condition else GNULIB_WCTOB="($GNULIB_WCTOB || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_WCTOB 1" >>confdefs.h if false; then REPLACE_WCTOMB=1 fi if test $REPLACE_WCTOMB = 1; then gltests_LIBOBJS="$gltests_LIBOBJS wctomb.$ac_objext" : fi if test "$GNULIB_WCTOMB" != 1; then if test "$GNULIB_WCTOMB" = 0; then GNULIB_WCTOMB=$gl_module_indicator_condition else GNULIB_WCTOMB="($GNULIB_WCTOMB || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_WCTOMB 1" >>confdefs.h YIELD_LIB= if test $gl_threads_api = posix; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 $as_echo_n "checking for sched_yield in -lrt... " >&6; } if ${ac_cv_lib_rt_sched_yield+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sched_yield (); int main () { return sched_yield (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_rt_sched_yield=yes else ac_cv_lib_rt_sched_yield=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 $as_echo "$ac_cv_lib_rt_sched_yield" >&6; } if test "x$ac_cv_lib_rt_sched_yield" = xyes; then : YIELD_LIB=-lrt else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5 $as_echo_n "checking for sched_yield in -lposix4... " >&6; } if ${ac_cv_lib_posix4_sched_yield+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lposix4 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sched_yield (); int main () { return sched_yield (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_posix4_sched_yield=yes else ac_cv_lib_posix4_sched_yield=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5 $as_echo "$ac_cv_lib_posix4_sched_yield" >&6; } if test "x$ac_cv_lib_posix4_sched_yield" = xyes; then : YIELD_LIB=-lposix4 fi fi fi LIBTESTS_LIBDEPS="$gltests_libdeps" gtk_doc_requires="gtk-doc >= 1.0" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk-doc" >&5 $as_echo_n "checking for gtk-doc... " >&6; } if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gtk_doc_requires\""; } >&5 ($PKG_CONFIG --exists --print-errors "$gtk_doc_requires") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then have_gtk_doc=yes else have_gtk_doc=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gtk_doc" >&5 $as_echo "$have_gtk_doc" >&6; } if test "$have_gtk_doc" = "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You will not be able to create source packages with 'make dist' because $gtk_doc_requires is not found." >&5 $as_echo "$as_me: WARNING: You will not be able to create source packages with 'make dist' because $gtk_doc_requires is not found." >&2;} fi # Extract the first word of "gtkdoc-check", so it can be a program name with args. set dummy gtkdoc-check; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_GTKDOC_CHECK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GTKDOC_CHECK"; then ac_cv_prog_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GTKDOC_CHECK="gtkdoc-check.test" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi GTKDOC_CHECK=$ac_cv_prog_GTKDOC_CHECK if test -n "$GTKDOC_CHECK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5 $as_echo "$GTKDOC_CHECK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gtkdoc-check", so it can be a program name with args. set dummy gtkdoc-check; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GTKDOC_CHECK_PATH+:} false; then : $as_echo_n "(cached) " >&6 else case $GTKDOC_CHECK_PATH in [\\/]* | ?:[\\/]*) ac_cv_path_GTKDOC_CHECK_PATH="$GTKDOC_CHECK_PATH" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GTKDOC_CHECK_PATH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GTKDOC_CHECK_PATH=$ac_cv_path_GTKDOC_CHECK_PATH if test -n "$GTKDOC_CHECK_PATH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK_PATH" >&5 $as_echo "$GTKDOC_CHECK_PATH" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi for ac_prog in gtkdoc-rebase do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GTKDOC_REBASE+:} false; then : $as_echo_n "(cached) " >&6 else case $GTKDOC_REBASE in [\\/]* | ?:[\\/]*) ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE if test -n "$GTKDOC_REBASE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5 $as_echo "$GTKDOC_REBASE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$GTKDOC_REBASE" && break done test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true" # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args. set dummy gtkdoc-mkpdf; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GTKDOC_MKPDF+:} false; then : $as_echo_n "(cached) " >&6 else case $GTKDOC_MKPDF in [\\/]* | ?:[\\/]*) ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF if test -n "$GTKDOC_MKPDF"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5 $as_echo "$GTKDOC_MKPDF" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check whether --with-html-dir was given. if test "${with_html_dir+set}" = set; then : withval=$with_html_dir; else with_html_dir='${datadir}/gtk-doc/html' fi HTML_DIR="$with_html_dir" # Check whether --enable-gtk-doc was given. if test "${enable_gtk_doc+set}" = set; then : enableval=$enable_gtk_doc; else enable_gtk_doc=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5 $as_echo_n "checking whether to build gtk-doc documentation... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5 $as_echo "$enable_gtk_doc" >&6; } if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then as_fn_error $? " You must have $gtk_doc_requires installed to build documentation for $PACKAGE_NAME. Please install gtk-doc or disable building the documentation by adding '--disable-gtk-doc' to '$0'." "$LINENO" 5 fi if test "x$PACKAGE_NAME" != "xglib"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5 $as_echo_n "checking for GTKDOC_DEPS... " >&6; } if test -n "$GTKDOC_DEPS_CFLAGS"; then pkg_cv_GTKDOC_DEPS_CFLAGS="$GTKDOC_DEPS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTKDOC_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTKDOC_DEPS_LIBS"; then pkg_cv_GTKDOC_DEPS_LIBS="$GTKDOC_DEPS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTKDOC_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1` else GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTKDOC_DEPS_PKG_ERRORS" >&5 : elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } : else GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi fi # Check whether --enable-gtk-doc-html was given. if test "${enable_gtk_doc_html+set}" = set; then : enableval=$enable_gtk_doc_html; else enable_gtk_doc_html=yes fi # Check whether --enable-gtk-doc-pdf was given. if test "${enable_gtk_doc_pdf+set}" = set; then : enableval=$enable_gtk_doc_pdf; else enable_gtk_doc_pdf=no fi if test -z "$GTKDOC_MKPDF"; then enable_gtk_doc_pdf=no fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi if test x$have_gtk_doc = xyes; then HAVE_GTK_DOC_TRUE= HAVE_GTK_DOC_FALSE='#' else HAVE_GTK_DOC_TRUE='#' HAVE_GTK_DOC_FALSE= fi if test x$enable_gtk_doc = xyes; then ENABLE_GTK_DOC_TRUE= ENABLE_GTK_DOC_FALSE='#' else ENABLE_GTK_DOC_TRUE='#' ENABLE_GTK_DOC_FALSE= fi if test x$enable_gtk_doc_html = xyes; then GTK_DOC_BUILD_HTML_TRUE= GTK_DOC_BUILD_HTML_FALSE='#' else GTK_DOC_BUILD_HTML_TRUE='#' GTK_DOC_BUILD_HTML_FALSE= fi if test x$enable_gtk_doc_pdf = xyes; then GTK_DOC_BUILD_PDF_TRUE= GTK_DOC_BUILD_PDF_FALSE='#' else GTK_DOC_BUILD_PDF_TRUE='#' GTK_DOC_BUILD_PDF_FALSE= fi if test -n "$LIBTOOL"; then GTK_DOC_USE_LIBTOOL_TRUE= GTK_DOC_USE_LIBTOOL_FALSE='#' else GTK_DOC_USE_LIBTOOL_TRUE='#' GTK_DOC_USE_LIBTOOL_FALSE= fi if test -n "$GTKDOC_REBASE"; then GTK_DOC_USE_REBASE_TRUE= GTK_DOC_USE_REBASE_FALSE='#' else GTK_DOC_USE_REBASE_TRUE='#' GTK_DOC_USE_REBASE_FALSE= fi : for ac_func in ftruncate chsize do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_prelude_inttypes_h="src/include/prelude-inttypes.h" ac_prelude_inttypes_h_temp="src/include/prelude-inttypes.h_" ac_cv_have_stdint_h= ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : ac_cv_have_stdint_h=yes else ac_cv_have_stdint_h=no fi if test "$ac_cv_have_stdint_h" = "yes" ; then __PRELUDE_HAVE_STDINT_H="#define __PRELUDE_HAVE_STDINT_H" else __PRELUDE_HAVE_STDINT_H="/* #define __PRELUDE_HAVE_STDINT_H */" fi ac_cv_have_inttypes_h= ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" if test "x$ac_cv_header_inttypes_h" = xyes; then : ac_cv_have_inttypes_h=yes else ac_cv_have_inttypes_h=no fi if test "$ac_cv_have_inttypes_h" = "yes" ; then __PRELUDE_HAVE_INTTYPES_H="#define __PRELUDE_HAVE_INTTYPES_H" else __PRELUDE_HAVE_INTTYPES_H="/* #define __PRELUDE_HAVE_INTTYPES_H */" fi # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : else if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 $as_echo "$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF if test "$ac_cv_sizeof_long" = "8" ; then __PRELUDE_HAVE_64BIT_LONG="#define __PRELUDE_HAVE_64BIT_LONG" else __PRELUDE_HAVE_64BIT_LONG="/* #define __PRELUDE_HAVE_64BIT_LONG */" fi ac_cv_have_uint8_t= ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default" if test "x$ac_cv_type_uint8_t" = xyes; then : ac_cv_have_uint8_t=yes else ac_cv_have_uint8_t=no fi if test "$ac_cv_have_uint8_t" = "yes" ; then __PRELUDE_STDINT_HAVE_UINT8="#define __PRELUDE_STDINT_HAVE_UINT8" else __PRELUDE_STDINT_HAVE_UINT8="/* #define __PRELUDE_STDINT_HAVE_UINT8 */" fi ac_cv_have_uint16_t= ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default" if test "x$ac_cv_type_uint16_t" = xyes; then : ac_cv_have_uint16_t=yes else ac_cv_have_uint16_t=no fi if test "$ac_cv_have_uint16_t" = "yes" ; then __PRELUDE_STDINT_HAVE_UINT16="#define __PRELUDE_STDINT_HAVE_UINT16" else __PRELUDE_STDINT_HAVE_UINT16="/* #define __PRELUDE_STDINT_HAVE_UINT16 */" fi ac_cv_have_uint32_t= ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default" if test "x$ac_cv_type_uint32_t" = xyes; then : ac_cv_have_uint32_t=yes else ac_cv_have_uint32_t=no fi if test "$ac_cv_have_uint32_t" = "yes" ; then __PRELUDE_STDINT_HAVE_UINT32="#define __PRELUDE_STDINT_HAVE_UINT32" else __PRELUDE_STDINT_HAVE_UINT32="/* #define __PRELUDE_STDINT_HAVE_UINT32 */" fi ac_cv_have_uint64_t= ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default" if test "x$ac_cv_type_uint64_t" = xyes; then : ac_cv_have_uint64_t=yes else ac_cv_have_uint64_t=no fi if test "$ac_cv_have_uint64_t" = "yes" ; then __PRELUDE_STDINT_HAVE_UINT64="#define __PRELUDE_STDINT_HAVE_UINT64" else __PRELUDE_STDINT_HAVE_UINT64="/* #define __PRELUDE_STDINT_HAVE_UINT64 */" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cpu-specific compiler flags" >&5 $as_echo_n "checking for cpu-specific compiler flags... " >&6; } if test "$host_cpu" == "x86_64" && test $enable_static = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: x86_64/static: adding -fPIC" >&5 $as_echo "x86_64/static: adding -fPIC" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fPIC" >&5 $as_echo_n "checking whether C compiler accepts -fPIC... " >&6; } if ${ax_cv_check_cflags___fPIC+:} false; then : $as_echo_n "(cached) " >&6 else ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -fPIC" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_check_cflags___fPIC=yes else ax_cv_check_cflags___fPIC=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_check_save_flags fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fPIC" >&5 $as_echo "$ax_cv_check_cflags___fPIC" >&6; } if test x"$ax_cv_check_cflags___fPIC" = xyes; then : CPPFLAGS="$CPPFLAGS -fPIC" else : fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for platform-specific compiler flags" >&5 $as_echo_n "checking for platform-specific compiler flags... " >&6; } case "$host_os" in darwin*) # It may be called "cc", but it's really a GCC derivative # with a problematic special precompiler and precompiled # headers; turn off the special precompiler, as some # apparently-legal code won't compile with its precompiled # headers. { $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin: adding -no-cpp-precomp" >&5 $as_echo "Darwin: adding -no-cpp-precomp" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -no-cpp-precomp" >&5 $as_echo_n "checking whether C compiler accepts -no-cpp-precomp... " >&6; } if ${ax_cv_check_cflags___no_cpp_precomp+:} false; then : $as_echo_n "(cached) " >&6 else ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -no-cpp-precomp" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_check_cflags___no_cpp_precomp=yes else ax_cv_check_cflags___no_cpp_precomp=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_check_save_flags fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___no_cpp_precomp" >&5 $as_echo "$ax_cv_check_cflags___no_cpp_precomp" >&6; } if test x"$ax_cv_check_cflags___no_cpp_precomp" = xyes; then : PCFLAGS="$PCFLAGS -no-cpp-precomp" else : fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -z relro" >&5 $as_echo_n "checking whether the linker accepts -z relro... " >&6; } if ${ax_cv_check_ldflags___z_relro+:} false; then : $as_echo_n "(cached) " >&6 else ax_check_save_flags=$LDFLAGS LDFLAGS="$LDFLAGS -z relro" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_check_ldflags___z_relro=yes else ax_cv_check_ldflags___z_relro=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$ax_check_save_flags fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___z_relro" >&5 $as_echo "$ax_cv_check_ldflags___z_relro" >&6; } if test x"$ax_cv_check_ldflags___z_relro" = xyes; then : LDFLAGS="$LDFLAGS -z relro" else : fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -z now" >&5 $as_echo_n "checking whether the linker accepts -z now... " >&6; } if ${ax_cv_check_ldflags___z_now+:} false; then : $as_echo_n "(cached) " >&6 else ax_check_save_flags=$LDFLAGS LDFLAGS="$LDFLAGS -z now" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_check_ldflags___z_now=yes else ax_cv_check_ldflags___z_now=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$ax_check_save_flags fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___z_now" >&5 $as_echo "$ax_cv_check_ldflags___z_now" >&6; } if test x"$ax_cv_check_ldflags___z_now" = xyes; then : LDFLAGS="$LDFLAGS -z now" else : fi for i in -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations \ -Wbad-function-cast -Wcast-qual -Wcast-align -Wnested-externs -Wunused \ -Wformat -Wformat-security; do as_CACHEVAR=`$as_echo "ax_cv_check_cflags__$i" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $i" >&5 $as_echo_n "checking whether C compiler accepts $i... " >&6; } if eval \${$as_CACHEVAR+:} false; then : $as_echo_n "(cached) " >&6 else ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS $i" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_CACHEVAR=yes" else eval "$as_CACHEVAR=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_check_save_flags fi eval ac_res=\$$as_CACHEVAR { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if test x"`eval 'as_val=${'$as_CACHEVAR'};$as_echo "$as_val"'`" = xyes; then : PCFLAGS="$PCFLAGS $i" else : fi done if test x$buggy_pthread_initializers = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wno-missing-braces" >&5 $as_echo_n "checking whether C compiler accepts -Wno-missing-braces... " >&6; } if ${ax_cv_check_cflags___Wno_missing_braces+:} false; then : $as_echo_n "(cached) " >&6 else ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -Wno-missing-braces" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_check_cflags___Wno_missing_braces=yes else ax_cv_check_cflags___Wno_missing_braces=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_check_save_flags fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wno_missing_braces" >&5 $as_echo "$ax_cv_check_cflags___Wno_missing_braces" >&6; } if test x"$ax_cv_check_cflags___Wno_missing_braces" = xyes; then : PCFLAGS="$PCFLAGS -Wno-missing-braces" else : fi fi EXP_VAR=SYSCONFDIR FROM_VAR=$sysconfdir prefix_save=$prefix exec_prefix_save=$exec_prefix if test "x$prefix" = "xNONE"; then prefix="$ac_default_prefix" fi if test "x$exec_prefix" = "xNONE"; then exec_prefix=$prefix fi full_var="$FROM_VAR" while true; do new_full_var="`eval echo $full_var`" if test "x$new_full_var" = "x$full_var"; then break; fi full_var=$new_full_var done full_var=$new_full_var SYSCONFDIR="$full_var" prefix=$prefix_save exec_prefix=$exec_prefix_save EXP_VAR=LOCALSTATEDIR FROM_VAR=$localstatedir prefix_save=$prefix exec_prefix_save=$exec_prefix if test "x$prefix" = "xNONE"; then prefix="$ac_default_prefix" fi if test "x$exec_prefix" = "xNONE"; then exec_prefix=$prefix fi full_var="$FROM_VAR" while true; do new_full_var="`eval echo $full_var`" if test "x$new_full_var" = "x$full_var"; then break; fi full_var=$new_full_var done full_var=$new_full_var LOCALSTATEDIR="$full_var" prefix=$prefix_save exec_prefix=$exec_prefix_save EXP_VAR=LIBDIR FROM_VAR=$libdir prefix_save=$prefix exec_prefix_save=$exec_prefix if test "x$prefix" = "xNONE"; then prefix="$ac_default_prefix" fi if test "x$exec_prefix" = "xNONE"; then exec_prefix=$prefix fi full_var="$FROM_VAR" while true; do new_full_var="`eval echo $full_var`" if test "x$new_full_var" = "x$full_var"; then break; fi full_var=$new_full_var done full_var=$new_full_var LIBDIR="$full_var" prefix=$prefix_save exec_prefix=$exec_prefix_save EXP_VAR=BINDIR FROM_VAR=$bindir prefix_save=$prefix exec_prefix_save=$exec_prefix if test "x$prefix" = "xNONE"; then prefix="$ac_default_prefix" fi if test "x$exec_prefix" = "xNONE"; then exec_prefix=$prefix fi full_var="$FROM_VAR" while true; do new_full_var="`eval echo $full_var`" if test "x$new_full_var" = "x$full_var"; then break; fi full_var=$new_full_var done full_var=$new_full_var BINDIR="$full_var" prefix=$prefix_save exec_prefix=$exec_prefix_save EXP_VAR=DATADIR FROM_VAR=$datadir prefix_save=$prefix exec_prefix_save=$exec_prefix if test "x$prefix" = "xNONE"; then prefix="$ac_default_prefix" fi if test "x$exec_prefix" = "xNONE"; then exec_prefix=$prefix fi full_var="$FROM_VAR" while true; do new_full_var="`eval echo $full_var`" if test "x$new_full_var" = "x$full_var"; then break; fi full_var=$new_full_var done full_var=$new_full_var DATADIR="$full_var" prefix=$prefix_save exec_prefix=$exec_prefix_save SWIG_DATA_DIR=$DATADIR/libprelude/swig PRELUDE_SPOOL_DIR=$LOCALSTATEDIR/spool/prelude PRELUDE_CONFIG_DIR=$SYSCONFDIR/prelude cat >>confdefs.h <<_ACEOF #define PRELUDE_SPOOL_DIR "$PRELUDE_SPOOL_DIR" _ACEOF cat >>confdefs.h <<_ACEOF #define PRELUDE_CONFIG_DIR "$PRELUDE_CONFIG_DIR" _ACEOF case "${host}" in i[3456789]86-*-mingw32*) WIN32="yes" ;; *cygwin*) WIN32="yes" ;; *) WIN32="no" ;; esac if test x$WIN32 = xyes; then cat >>confdefs.h <<_ACEOF #define INSTALLDIR "$BINDIR" _ACEOF else cat >>confdefs.h <<_ACEOF #define INSTALLDIR "$LIBDIR" _ACEOF fi ac_config_files="$ac_config_files Makefile client.conf global.conf idmef-client.conf libprelude-config libltdl/Makefile libmissing/Makefile libmissing/tests/Makefile m4/Makefile src/Makefile src/libprelude.pc src/libprelude-error/Makefile src/jsmn/Makefile src/include/Makefile src/include/prelude.h src/include/prelude-inttypes.h prelude-admin/prelude-adduser prelude-admin/Makefile docs/Makefile docs/api/Makefile docs/manpages/Makefile bindings/Makefile bindings/c++/Makefile bindings/c++/include/Makefile bindings/lua/Makefile bindings/perl/Makefile.PL bindings/python/Makefile bindings/python/setup.py bindings/ruby/Makefile tests/Makefile" ac_config_commands="$ac_config_commands default" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${INSTALL_LTDL_TRUE}" && test -z "${INSTALL_LTDL_FALSE}"; then as_fn_error $? "conditional \"INSTALL_LTDL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${CONVENIENCE_LTDL_TRUE}" && test -z "${CONVENIENCE_LTDL_FALSE}"; then as_fn_error $? "conditional \"CONVENIENCE_LTDL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi LT_CONFIG_H=config.h _ltdl_libobjs= _ltdl_ltlibobjs= if test -n "$_LT_LIBOBJS"; then # Remove the extension. _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" done fi ltdl_LIBOBJS=$_ltdl_libobjs ltdl_LTLIBOBJS=$_ltdl_ltlibobjs if test -z "${HAVE_SWIG_TRUE}" && test -z "${HAVE_SWIG_FALSE}"; then as_fn_error $? "conditional \"HAVE_SWIG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_PERL_TRUE}" && test -z "${HAVE_PERL_FALSE}"; then as_fn_error $? "conditional \"HAVE_PERL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_PYTHON2_TRUE}" && test -z "${HAVE_PYTHON2_FALSE}"; then as_fn_error $? "conditional \"HAVE_PYTHON2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_PYTHON3_TRUE}" && test -z "${HAVE_PYTHON3_FALSE}"; then as_fn_error $? "conditional \"HAVE_PYTHON3\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_PYTHON_TRUE}" && test -z "${HAVE_PYTHON_FALSE}"; then as_fn_error $? "conditional \"HAVE_PYTHON\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_RUBY_TRUE}" && test -z "${HAVE_RUBY_FALSE}"; then as_fn_error $? "conditional \"HAVE_RUBY\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LUA_TRUE}" && test -z "${HAVE_LUA_FALSE}"; then as_fn_error $? "conditional \"HAVE_LUA\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_EASY_BINDINGS_TRUE}" && test -z "${HAVE_EASY_BINDINGS_FALSE}"; then as_fn_error $? "conditional \"HAVE_EASY_BINDINGS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_VALGRIND_TRUE}" && test -z "${HAVE_VALGRIND_FALSE}"; then as_fn_error $? "conditional \"HAVE_VALGRIND\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_FLOAT_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_LIMITS_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_NETINET_IN_H_TRUE}" && test -z "${GL_GENERATE_NETINET_IN_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_NETINET_IN_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDALIGN_H_TRUE}" && test -z "${GL_GENERATE_STDALIGN_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDALIGN_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_LIMITS_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi gl_libobjs= gl_ltlibobjs= if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" done fi gl_LIBOBJS=$gl_libobjs gl_LTLIBOBJS=$gl_ltlibobjs gltests_libobjs= gltests_ltlibobjs= if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" done fi gltests_LIBOBJS=$gltests_libobjs gltests_LTLIBOBJS=$gltests_ltlibobjs if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then as_fn_error $? "conditional \"HAVE_GTK_DOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by libprelude $as_me 5.2.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ libprelude config.status 5.2.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in AS \ DLLTOOL \ OBJDUMP \ SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_separator_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ reload_cmds_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX \ postlink_cmds_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "client.conf") CONFIG_FILES="$CONFIG_FILES client.conf" ;; "global.conf") CONFIG_FILES="$CONFIG_FILES global.conf" ;; "idmef-client.conf") CONFIG_FILES="$CONFIG_FILES idmef-client.conf" ;; "libprelude-config") CONFIG_FILES="$CONFIG_FILES libprelude-config" ;; "libltdl/Makefile") CONFIG_FILES="$CONFIG_FILES libltdl/Makefile" ;; "libmissing/Makefile") CONFIG_FILES="$CONFIG_FILES libmissing/Makefile" ;; "libmissing/tests/Makefile") CONFIG_FILES="$CONFIG_FILES libmissing/tests/Makefile" ;; "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/libprelude.pc") CONFIG_FILES="$CONFIG_FILES src/libprelude.pc" ;; "src/libprelude-error/Makefile") CONFIG_FILES="$CONFIG_FILES src/libprelude-error/Makefile" ;; "src/jsmn/Makefile") CONFIG_FILES="$CONFIG_FILES src/jsmn/Makefile" ;; "src/include/Makefile") CONFIG_FILES="$CONFIG_FILES src/include/Makefile" ;; "src/include/prelude.h") CONFIG_FILES="$CONFIG_FILES src/include/prelude.h" ;; "src/include/prelude-inttypes.h") CONFIG_FILES="$CONFIG_FILES src/include/prelude-inttypes.h" ;; "prelude-admin/prelude-adduser") CONFIG_FILES="$CONFIG_FILES prelude-admin/prelude-adduser" ;; "prelude-admin/Makefile") CONFIG_FILES="$CONFIG_FILES prelude-admin/Makefile" ;; "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; "docs/api/Makefile") CONFIG_FILES="$CONFIG_FILES docs/api/Makefile" ;; "docs/manpages/Makefile") CONFIG_FILES="$CONFIG_FILES docs/manpages/Makefile" ;; "bindings/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/Makefile" ;; "bindings/c++/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/c++/Makefile" ;; "bindings/c++/include/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/c++/include/Makefile" ;; "bindings/lua/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/lua/Makefile" ;; "bindings/perl/Makefile.PL") CONFIG_FILES="$CONFIG_FILES bindings/perl/Makefile.PL" ;; "bindings/python/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/python/Makefile" ;; "bindings/python/setup.py") CONFIG_FILES="$CONFIG_FILES bindings/python/setup.py" ;; "bindings/ruby/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/ruby/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Assembler program. AS=$lt_AS # DLL creation program. DLLTOOL=$lt_DLLTOOL # Object dumper program. OBJDUMP=$lt_OBJDUMP # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ func_stripname ()\ {\ \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ \ # positional parameters, so assign one to ordinary parameter first.\ \ func_stripname_result=${3}\ \ func_stripname_result=${func_stripname_result#"${1}"}\ \ func_stripname_result=${func_stripname_result%"${2}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # How to create reloadable object files. reload_flag=$lt_reload_flag_CXX reload_cmds=$lt_reload_cmds_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; "default":C) chmod +x libprelude-config ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo echo "*** Dumping configuration ***" echo " - Generate documentation : $enable_gtk_doc" echo " - LUA binding : $with_lua" echo " - Perl binding : $with_perl" echo " - Python2.x binding : $with_python2" echo " - Python3.x binding : $with_python3" echo " - Ruby binding : $with_ruby" echo " - Easy bindings : $enable_easy_bindings" libprelude-5.2.0/PaxHeaders.14770/configure.ac0000644000000000000000000000010513726163410017135 xustar000000000000000023 mtime=1599661832.52 24 atime=1599661832.737 22 ctime=1599661998.5 libprelude-5.2.0/configure.ac0000644000000000000000000006615513726163410016151 0ustar00rootroot00000000000000m4_define([libprelude_major_version], [5]) m4_define([libprelude_minor_version], [2]) m4_define([libprelude_micro_version], [0]) m4_define([libprelude_level_version], [LIBPRELUDE_RELEASE_LEVEL_FINAL]) m4_define([libprelude_serial_version], [0]) m4_define([serial_string], ifelse(libprelude_level_version, LIBPRELUDE_RELEASE_LEVEL_ALPHA, alpha, ifelse(libprelude_level_version, LIBPRELUDE_RELEASE_LEVEL_BETA, beta, ifelse(libprelude_level_version, LIBPRELUDE_RELEASE_LEVEL_RC, rc)))) m4_define([version_error], ifelse(serial_string, [], , ifelse(libprelude_serial_version, 0, error))) ifelse(version_error, [], , [m4_fatal(Release level 'serial_string' and serial 'libprelude_serial_version' are incompatible)]) m4_append([serial_string], ifelse(serial_string, [], ifelse(libprelude_serial_version, 0, , .libprelude_serial_version), libprelude_serial_version)) AC_INIT(libprelude, m4_join([.], libprelude_major_version, libprelude_minor_version, m4_join([], libprelude_micro_version, serial_string))) LIBPRELUDE_MAJOR_VERSION=libprelude_major_version LIBPRELUDE_MINOR_VERSION=libprelude_minor_version LIBPRELUDE_MICRO_VERSION=libprelude_micro_version LIBPRELUDE_LEVEL_VERSION=libprelude_level_version LIBPRELUDE_SERIAL_VERSION=libprelude_serial_version dnl ********************************************************** dnl * Library soname (https://www.sourceware.org/autobook/autobook/autobook_61.html#Library-Versioning) dnl ********************************************************** libprelude_current=29 libprelude_revision=0 libprelude_age=1 LIBPRELUDE_SONAME=$libprelude_current:$libprelude_revision:$libprelude_age libpreludecpp_current=12 libpreludecpp_revision=1 libpreludecpp_age=0 LIBPRELUDECPP_SONAME=$libpreludecpp_current:$libpreludecpp_revision:$libpreludecpp_age AC_PREREQ(2.59) AC_CANONICAL_HOST AC_CANONICAL_TARGET AC_CONFIG_SRCDIR([src]) AM_INIT_AUTOMAKE([-Wall tar-pax 1.9]) AC_CONFIG_HEADER(config.h) AM_MAINTAINER_MODE dnl ********************************************************** dnl * Check required program. dnl ********************************************************** AC_PROG_CC AC_PROG_CXX AC_PROG_INSTALL AC_PROG_MAKE_SET AM_PROG_LEX AC_PROG_YACC AC_PATH_PROG(GREP, grep, no) # for prelude-config.h generation BINDINGS_CC="$CC" dnl ********************************************************** dnl * Setup GnuLib, libtool and libltdl. dnl ********************************************************** dnl Provide replacement for system missing this GnuLib required macro. m4_ifndef([AS_VAR_COPY], [m4_define([AS_VAR_COPY], [AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])])]) gl_EARLY LT_CONFIG_LTDL_DIR([libltdl]) AC_CONFIG_MACRO_DIR([m4]) m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) LT_INIT([dlopen win32-dll disable-static]) dnl There is a bug in LTDL_INIT, which modify $LIBS when it shouldn't old_LIBS=$LIBS LTDL_INIT([recursive]) LIBS=$old_LIBS if test x$LIBLTDL != x"\${top_build_prefix}libltdl/libltdlc.la"; then LIBLTDL_DECL=$LIBLTDL fi AC_SUBST(LIBLTDL_DECL) dnl ********************************************************** dnl * When cross compiling, we need to compile and run a program on the build machine. dnl ********************************************************** AC_MSG_CHECKING(for cc for build) if test "$cross_compiling" = "yes"; then CC_FOR_BUILD="${CC_FOR_BUILD-cc}" else CC_FOR_BUILD="${CC_FOR_BUILD-$CC}" fi AC_MSG_RESULT($CC_FOR_BUILD) AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler]) dnl ********************************************************** dnl * Checks to see if ANSI C99 CPP variable __func__ works. * dnl ********************************************************** dnl From http://lists.gnu.org/archive/html/bug-autoconf/2002-07/msg00028.html AC_DEFUN([AC_CPP_FUNC], [AC_REQUIRE([AC_PROG_CC_STDC])dnl AC_CACHE_CHECK([for an ANSI C99-conforming __func__], ac_cv_cpp_func, [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[char *foo = __func__;]])], [ac_cv_cpp_func=yes], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[char *foo = __FUNCTION__;]])], [ac_cv_cpp_func=__FUNCTION__], [ac_cv_cpp_func=no])])]) if test $ac_cv_cpp_func = yes; then AC_DEFINE(__PRELUDE_FUNC__, __func__, [Define to __FUNCTION__ or "" if `__func__' does not conform to ANSI C.]) elif test $ac_cv_cpp_func = __FUNCTION__; then AC_DEFINE(__PRELUDE_FUNC__, __FUNCTION__, [Define to __FUNCTION__ or "" if `__func__' does not conform to ANSI C.]) elif test $ac_cv_cpp_func = no; then AC_DEFINE(__PRELUDE_FUNC__, "", [Define to __FUNCTION__ or "" if `__func__' does not conform to ANSI C.]) fi ]) AC_CPP_FUNC dnl ************************************************** dnl * Check for Pthread library * dnl ************************************************** PTHREAD_LIBS=@LTLIBMULTITHREAD@ PTHREAD_LDFLAGS="" PTHREAD_CFLAGS=$THREADCPPFLAGS AC_SUBST(PTHREAD_LDFLAGS) AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_LIBS) dnl *** dnl *** Can we use -Werror -Wmissing-braces for some checks ? *** AX_CHECK_COMPILE_FLAG(-Werror -Wmissing-braces, buggy_pthread_cppflags="-Werror -Wmissing-braces") old_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $buggy_pthread_cppflags" AC_MSG_CHECKING(for buggy pthread mutex initializers) AC_TRY_COMPILE( [ #include ], [ static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; ], compile_ok="yes", compile_ok="no") CFLAGS="$old_CFLAGS" if test x$compile_ok = xyes; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes) buggy_pthread_initializers="yes" fi dnl ************************************************** dnl * Check endianess * dnl ************************************************** AC_C_BIGENDIAN(AC_DEFINE_UNQUOTED(PRELUDE_WORDS_BIGENDIAN, , Byte ordering)) dnl ************************************************** dnl * Check for GnuTLS. * dnl ************************************************** GNUTLS_MIN_VERSION=2.12.0 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= $GNUTLS_MIN_VERSION], [], [AM_PATH_LIBGNUTLS($GNUTLS_MIN_VERSION, [], [AC_MSG_ERROR($LIBGNUTLS_PKG_ERRORS)])]) old_LIBS=$LIBS old_CPPFLAGS=$CPPFLAGS LIBS="$LIBGNUTLS_LIBS" CPPFLAGS="$LIBGNUTLS_CFLAGS" AC_CHECK_HEADER(gnutls/gnutls.h, , AC_MSG_ERROR("GnuTLS development headers are required to build libprelude")) AC_CHECK_LIB(gnutls, gnutls_privkey_import_x509, AC_DEFINE_UNQUOTED(HAVE_GNUTLS_PRIVKEY_ABSTRACT, , Define whether GnuTLS provides an abstract privkey implementation,)) dnl dnl Recent GnuTLS version moved SRP function from libgnutls-extra to libgnutls dnl AC_CHECK_LIB(gnutls, gnutls_srp_verifier, srp_available=yes, srp_available=no) AC_CHECK_LIB(gnutls, gnutls_x509_crt_list_import, AC_DEFINE_UNQUOTED(HAVE_GNUTLS_X509_CRT_LIST_IMPORT, , Define whether GnuTLS provides gnutls_x509_crt_list_import,)) AC_CHECK_LIB(gnutls, gnutls_priority_init, gnutls_string_priority=yes, gnutls_string_priority=no) if test x$gnutls_string_priority = xyes; then AC_CHECK_LIB(gnutls, gnutls_priority_set, AC_DEFINE_UNQUOTED(HAVE_GNUTLS_STRING_PRIORITY, , Define whether GnuTLS provide priority parsing),) fi LIBS=$old_LIBS CPPFLAGS=$old_CPPFLAGS AC_SUBST(PRELUDE_ADMIN_LIBS) AC_SUBST(PRELUDE_ADMIN_CFLAGS) PRELUDE_ADMIN_CFLAGS="$LIBGNUTLS_CFLAGS" PRELUDE_ADMIN_LIBS="$LIBGNUTLS_LIBS" if test x$srp_available = xno; then dnl ************************************************** dnl * Check for SRP function in GnuTLS extra. * dnl ************************************************** PKG_CHECK_MODULES([LIBGNUTLS_EXTRA], [gnutls-extra >= $GNUTLS_MIN_VERSION], [gnutls_extra=yes], [AM_PATH_LIBGNUTLS_EXTRA($GNUTLS_MIN_VERSION, gnutls_extra=yes, gnutls_extra=no)]) if test x$gnutls_extra = xyes; then old_LIBS=$LIBS LIBS="$LIBGNUTLS_EXTRA_LIBS" old_CPPFLAGS=$CPPFLAGS CPPFLAGS="$LIBGNUTLS_EXTRA_CFLAGS" AC_CHECK_HEADER(gnutls/extra.h, [AC_CHECK_LIB(gnutls-extra, gnutls_srp_verifier, srp_available=yes, srp_available=no)], srp_available=no) if test x$srp_available = xyes; then PRELUDE_ADMIN_CFLAGS="$PRELUDE_ADMIN_CFLAGS $LIBGNUTLS_EXTRA_CFLAGS" PRELUDE_ADMIN_LIBS="$LIBGNUTLS_LIBS $LIBGNUTLS_EXTRA_LIBS" AC_DEFINE_UNQUOTED(NEED_GNUTLS_EXTRA, , Define whether SRP support is available through gnutls-extra) fi LIBS=$old_LIBS CPPFLAGS=$old_CPPFLAGS fi fi if test x$srp_available = xyes; then AC_DEFINE_UNQUOTED(GNUTLS_SRP_ENABLED, , Define whether SRP support is enabled) fi LIBPRELUDE_LIBS="$LIBPRELUDE_LIBS $LIBGNUTLS_LIBS" dnl ************************************************** dnl * Check for PCRE * dnl ************************************************** AC_PATH_PROG(PCRE_CONFIG, pcre-config, no) if test x$PCRE_CONFIG != xno; then AC_DEFINE_UNQUOTED(HAVE_PCRE, , Define whether PCRE is available) PCRE_LIBS=`$PCRE_CONFIG --libs` PCRE_CFLAGS=`$PCRE_CONFIG --cflags` AC_SUBST(PCRE_LIBS) AC_SUBST(PCRE_CFLAGS) LIBPRELUDE_CFLAGS="$LIBPRELUDE_CFLAGS $PCRE_CFLAGS" LIBPRELUDE_LIBS="$LIBPRELUDE_LIBS $PCRE_LIBS" fi dnl ************************************************** dnl * Check for Ipv6. * dnl ************************************************** AC_CHECK_TYPES([struct sockaddr_in6], have_ipv6_type=yes,, [ #include #include #include ]) AC_CHECK_DECL(AF_INET6, have_ipv6_def=yes,, [ #include #include #include ]) if test x$have_ipv6_type = xyes && test x$have_ipv6_def = xyes; then AC_DEFINE_UNQUOTED(HAVE_IPV6, , Define whether Ipv6 is available on this system) fi dnl ************************************************** dnl * Check for variadic macros * dnl ************************************************** AC_MSG_CHECKING(whether variadic macros are supported) AC_TRY_COMPILE( [ #include #include #define print_me(...) printf(__VA_ARGS__) ], [ print_me("test __VA_ARGS__: %s, %d, %d", "a", 0, 1); return 0; ], have_variadic_macros=yes, have_variadic_macros=no) if test x$have_variadic_macros = xyes; then AC_MSG_RESULT(yes) AC_DEFINE_UNQUOTED(HAVE_VARIADIC_MACROS, 1, [Define whether variadic macros are supported]) else AC_MSG_RESULT(no) fi dnl ************************************************** dnl * Do we need aligned access ? (from tcpdump) * dnl ************************************************** AX_CHECK_ALIGNED_ACCESS_REQUIRED if test "$ax_cv_have_aligned_access_required" = yes; then AC_DEFINE_UNQUOTED(PRELUDE_ALIGNED_ACCESS, , Define wether we need to take care with alignment) fi dnl ************************************ dnl * va_copy checks (Thanks Glib!) * dnl ************************************ dnl dnl we currently check for all three va_copy possibilities, so we get dnl all results in config.log for bug reports. AC_CACHE_CHECK([for an implementation of va_copy()],prelude_cv_va_copy,[ AC_LINK_IFELSE([AC_LANG_SOURCE([#include void f (int i, ...) { va_list args1, args2; va_start (args1, i); va_copy (args2, args1); if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; }])], [prelude_cv_va_copy=yes], [prelude_cv_va_copy=no]) ]) AC_CACHE_CHECK([for an implementation of __va_copy()],prelude_cv___va_copy,[ AC_LINK_IFELSE([AC_LANG_SOURCE([#include void f (int i, ...) { va_list args1, args2; va_start (args1, i); __va_copy (args2, args1); if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; }])], [prelude_cv___va_copy=yes], [prelude_cv___va_copy=no]) ]) if test "x$prelude_cv_va_copy" = "xyes"; then g_va_copy_func=va_copy else if test "x$prelude_cv___va_copy" = "xyes"; then g_va_copy_func=__va_copy fi fi if test -n "$g_va_copy_func"; then AC_DEFINE_UNQUOTED(PRELUDE_VA_COPY,$g_va_copy_func,[A 'va_copy' style function]) fi AC_CACHE_CHECK([whether va_lists can be copied by value],prelude_cv_va_val_copy,[ AC_TRY_RUN([#include void f (int i, ...) { va_list args1, args2; va_start (args1, i); args2 = args1; if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) exit (1); va_end (args1); va_end (args2); } int main() { f (0, 42); return 0; }], [prelude_cv_va_val_copy=yes], [prelude_cv_va_val_copy=no], [prelude_cv_va_val_copy=yes]) ]) if test "x$prelude_cv_va_val_copy" = "xno"; then AC_DEFINE(PRELUDE_VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values]) fi dnl ************************************************** dnl * Swig support * dnl ************************************************** AC_ARG_WITH(swig, AC_HELP_STRING(--with-swig@<:@=PATH@:>@, Regenerate bindings sources using local SWIG installation @<:@default=auto@:>@), [swig_required=true; if test x$withval = xyes; then with_swig="swig"; fi], with_swig="no") SWIG="no" if test x$with_swig != xno; then AC_PATH_PROG(SWIG, `basename $with_swig`, no, `dirname $with_swig`:$PATH) if test x$SWIG = xno; then if test x$swig_required = xtrue; then AC_MSG_ERROR([Could not find $with_swig binary]) fi fi fi AM_CONDITIONAL(HAVE_SWIG, test x$SWIG != xno) dnl ************************************************** dnl * Perl support * dnl ************************************************** AC_ARG_WITH(perl, AC_HELP_STRING(--with-perl@<:@=PATH@:>@, Enable support for perl binding @<:@default=auto@:>@), [perl_required=true; if test x$withval = xyes; then with_perl="perl"; fi], with_perl="perl") if test x$with_perl != xno; then AC_PATH_PROG(PERL, `basename $with_perl`, no, `dirname $with_perl`:$PATH) if test x$PERL = xno; then if test x$perl_required = xtrue; then AC_MSG_ERROR([Could not find $with_perl binary]) fi with_perl=no else PERL_CFLAGS="-I`$PERL -e 'use Config; print $Config{archlib}'`/CORE" old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $PERL_CFLAGS" AC_CHECK_HEADER(EXTERN.h, [AC_CHECK_HEADER(perl.h, with_perl=yes, with_perl=no, [#include ])], with_perl=no) CPPFLAGS="$old_CPPFLAGS" fi fi AM_CONDITIONAL(HAVE_PERL, test x$with_perl = xyes) PERL_INSTALLDIRS="site" AC_ARG_WITH(perl-installdirs, AC_HELP_STRING(--with-perl-installdirs=@<:@site|vendor@:>@, Specify where to install the Perl module @<:@default=site@:>@), PERL_INSTALLDIRS="$withval") if test x$PERL_INSTALLDIRS != xsite && test x$PERL_INSTALLDIRS != xvendor; then AC_MSG_ERROR(Invalid value for --with-perl-installdirs: only "site" or "vendor" supported.) fi PERL_EXTRA_PARAMS="INSTALLDIRS=$PERL_INSTALLDIRS" AC_SUBST(PERL_EXTRA_PARAMS) dnl ************************************************** dnl * Python support * dnl ************************************************** AC_ARG_WITH(python2, AC_HELP_STRING(--with-python2@<:@=PATH@:>@, Enable support for python2 binding @<:@default=auto@:>@), [python2_required=true; if test x$withval = xyes; then with_python2="python2"; fi], with_python2="python2") if test x$with_python2 != xno; then AC_PATH_PROGS(PYTHON2, $with_python2 "python2.7" "python2.6" "python2.5" "python2.4" "python2.3" "python2.2" "python2.1" "python2.0", no, `dirname $with_python2`:$PATH) if test x$PYTHON2 = xno; then if test x$python2_required = xtrue; then AC_MSG_ERROR([Could not find $with_python2 binary]) fi with_python2=no else old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-I`$PYTHON2 -c 'from distutils.sysconfig import get_python_inc; print(get_python_inc())'`" AC_CHECK_HEADER(Python.h, with_python2=yes, with_python2=no) CPPFLAGS="$old_CPPFLAGS" AX_RESET_HEADERS_CACHE([Python.h]) fi fi AM_CONDITIONAL(HAVE_PYTHON2, test x$with_python2 = xyes) AC_ARG_WITH(python3, AC_HELP_STRING(--with-python3@<:@=PATH@:>@, Enable support for python3 binding @<:@default=auto@:>@), [python3_required=true; if test x$withval = xyes; then with_python3="python3"; fi], with_python3="python3") if test x$with_python3 != xno; then AC_PATH_PROGS(PYTHON3, $with_python3 "python3.8" "python3.7" "python3.6" "python3.5" "python3.4" "python3.3" "python3.2" "python3.1" "python3.0", no, `dirname $with_python3`:$PATH) if test x$PYTHON3 = xno; then if test x$python3_required = xtrue; then AC_MSG_ERROR([Could not find $with_python3 binary]) fi with_python3=no else old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-I`$PYTHON3 -c 'from distutils.sysconfig import get_python_inc; print(get_python_inc())'`" AC_CHECK_HEADER(Python.h, with_python3=yes, with_python3=no) CPPFLAGS="$old_CPPFLAGS" fi fi AM_CONDITIONAL(HAVE_PYTHON3, test x$with_python3 = xyes) AM_CONDITIONAL(HAVE_PYTHON, test x$with_python2 = xyes -o x$with_python3 = xyes) dnl ************************************************** dnl * Ruby support * dnl ************************************************** AC_ARG_WITH(ruby, AC_HELP_STRING(--with-ruby@<:@=PATH@:>@, Enable support for ruby binding @<:@default=auto@:>@), [ruby_required=yes; if test x$withval = xyes; then with_ruby="ruby"; fi], with_ruby="ruby") if test x$with_ruby != xno; then AM_PATH_RUBY(,with_ruby=yes, with_ruby=no, `dirname $with_ruby`:$PATH) RUBY_ARCHDIR=`$RUBY -e 'require "rbconfig.rb"; puts RbConfig::expand("\$(archdir)")'` RUBY_LIBRUBYARG=`$RUBY -e 'require "rbconfig.rb"; puts RbConfig::expand("\$(LIBRUBYARG)")'` RUBY_LIBS="-L$RUBY_ARCHDIR $RUBY_LIBRUBYARG" AC_SUBST(RUBY_LIBS) RUBY_CCFLAGS=`$RUBY -rrbconfig -e "print RbConfig::CONFIG[['CFLAGS']]"` AC_SUBST(RUBY_CCFLAGS) old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$RUBY_INCLUDES" AC_CHECK_HEADER(ruby.h, with_ruby=yes, with_ruby=no) CPPFLAGS="$old_CPPFLAGS" if test x$with_ruby = xno && test x$ruby_required = xyes; then AC_MSG_ERROR([Could not find ruby]) fi fi AM_CONDITIONAL([HAVE_RUBY], [test x$with_ruby = xyes]) dnl ************************************************** dnl * LUA support * dnl ************************************************** AC_ARG_WITH(lua, AC_HELP_STRING(--with-lua-config@<:@=PATH@:>@, Enable support for lua binding @<:@default=auto@:>@), [lua_required=true; if test x$withval = xyes; then with_lua="lua-config"; fi], with_lua="lua-config") if test x$with_lua != xno; then lua_pkg_found=0 m4_foreach([lua_ver],[[lua],[lua5.1],[lua5.2]], [PKG_CHECK_MODULES(LUA, [lua_ver >= 5.1], [ AC_DEFINE([HAVE_LUA], [1], [liblua]) AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) lua_pkg_found=1 ],[:])] ) if test x$lua_pkg_found = x0; then AC_MSG_WARN([*** lua >= 5.1 not found]) fi if test x$lua_pkg_found = x1; then AC_SUBST(LUA_CFLAGS) AC_SUBST(LUA_LIBS) old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$LUA_CFLAGS" AC_CHECK_HEADERS([lua.h lauxlib.h], with_lua=yes, [with_lua=no; break]) CPPFLAGS="$old_CPPFLAGS" LUA_VERSION=$(lua -e "print(string.sub(_VERSION, 5))") AC_SUBST(LUA_VERSION) else dnl try lua 5.0 AC_PATH_PROG(LUA_CONFIG, `basename $with_lua`, no, `dirname $with_lua`:$PATH) if test x$LUA_CONFIG = xno; then if test x$lua_required = xtrue; then AC_MSG_ERROR([Could not find $with_lua binary]) fi with_lua=no else LUA_CFLAGS=`$LUA_CONFIG --include --vmonly` LUA_LIBS=`$LUA_CONFIG --libs --vmonly` AC_SUBST(LUA_CFLAGS) AC_SUBST(LUA_LIBS) old_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$LUA_CFLAGS" AC_CHECK_HEADERS([lua.h lauxlib.h], with_lua=yes, [with_lua=no; break]) CPPFLAGS="$old_CPPFLAGS" LUA_VERSION=$(lua -e "print(string.sub(_VERSION, 5))") AC_SUBST(LUA_VERSION) fi fi fi AM_CONDITIONAL(HAVE_LUA, test x$with_lua = xyes) dnl ************************************************** dnl * Easy bindings support * dnl ************************************************** AC_ARG_ENABLE(easy-bindings, AC_HELP_STRING(--enable-easy-bindings, Enable support for high level binding @<:@default=yes@:>@), enable_easy_bindings=$enableval, enable_easy_bindings="yes") AM_CONDITIONAL(HAVE_EASY_BINDINGS, test x$enable_easy_bindings = xyes) if test x$enable_easy_bindings = xyes; then AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no) if test x$HAVE_CXX != xyes; then AC_MSG_ERROR([Easybindings require a C++ compiler, but none were found.]) fi fi dnl ************************************************** dnl * Valgrind support * dnl ************************************************** AC_ARG_WITH(valgrind, AC_HELP_STRING(--with-python@<:@=PATH@:>@, Valgrind support for unit testing @<:@default=auto@:>@), [valgrind_required=true; if test x$withval = xyes; then with_valgrind="valgrind"; fi], with_valgrind="valgrind") if test x$with_valgrind != xno; then AC_PATH_PROG(VALGRIND, `basename $with_valgrind`, no, `dirname $with_valgrind`:$PATH) if test x$VALGRIND = xno; then if test x$valgrind_required = xtrue; then AC_MSG_ERROR([Could not find $with_valgrind binary]) fi with_valgrind=no else with_valgrind=yes fi fi AM_CONDITIONAL(HAVE_VALGRIND, test x$with_valgrind = xyes) dnl ************************************************** dnl * Typedefs, structures, compiler characteristics.* dnl ************************************************** dnl this need to be done before calling GnuLib, since dnl GnuLib might provide replacement for the different dnl types AC_C_CONST AC_TYPE_PID_T AC_TYPE_SIZE_T AC_CHECK_TYPES([uid_t, gid_t]) AC_HEADER_TIME AC_TYPE_LONG_LONG_INT AC_C_INLINE AC_SYS_LARGEFILE dnl ************************************************** dnl * Check for missing function replacement * dnl ************************************************** gl_SOURCE_BASE(libmissing) gl_M4_BASE(libmissing/m4) gl_INIT dnl ************************************************** dnl * Check for GTK-DOC * dnl ************************************************** GTK_DOC_CHECK(1.0) dnl ************************************************** dnl * Required headers / functions. * dnl ************************************************** dnl Needed for FIONREAD under solaris AC_CHECK_HEADERS_ONCE(sys/filio.h sys/un.h netinet/tcp.h) AC_CHECK_FUNCS(ftruncate chsize) AX_CREATE_PRELUDE_INTTYPES_H(src/include/prelude-inttypes.h) dnl ************************************************** dnl * Setup custom compiler flags * dnl ************************************************** AC_MSG_CHECKING(for cpu-specific compiler flags) if test "$host_cpu" == "x86_64" && test $enable_static = "yes"; then AC_MSG_RESULT(x86_64/static: adding -fPIC) AX_CHECK_COMPILE_FLAG(-fPIC, CPPFLAGS="$CPPFLAGS -fPIC") else AC_MSG_RESULT(none needed) fi AC_MSG_CHECKING(for platform-specific compiler flags) case "$host_os" in darwin*) # It may be called "cc", but it's really a GCC derivative # with a problematic special precompiler and precompiled # headers; turn off the special precompiler, as some # apparently-legal code won't compile with its precompiled # headers. AC_MSG_RESULT(Darwin: adding -no-cpp-precomp) AX_CHECK_COMPILE_FLAG(-no-cpp-precomp, PCFLAGS="$PCFLAGS -no-cpp-precomp") ;; *) AC_MSG_RESULT(none needed) ;; esac AX_CHECK_LINK_FLAG(-z relro, LDFLAGS="$LDFLAGS -z relro") AX_CHECK_LINK_FLAG(-z now, LDFLAGS="$LDFLAGS -z now") for i in -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations \ -Wbad-function-cast -Wcast-qual -Wcast-align -Wnested-externs -Wunused \ -Wformat -Wformat-security; do AX_CHECK_COMPILE_FLAG($i, PCFLAGS="$PCFLAGS $i") done if test x$buggy_pthread_initializers = xyes; then AX_CHECK_COMPILE_FLAG(-Wno-missing-braces, PCFLAGS="$PCFLAGS -Wno-missing-braces") fi dnl ************************************************** dnl * Setup build variable * dnl ************************************************** AC_SUBST(CFLAGS) AC_SUBST(PCFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) AC_SUBST(BINDINGS_CC) AC_SUBST(LIBPRELUDE_SONAME) AC_SUBST(LIBPRELUDECPP_SONAME) AC_SUBST(LIBPRELUDE_LIBS) AC_SUBST(LIBPRELUDE_CFLAGS) AC_SUBST(LIBPRELUDE_VERSION) AC_SUBST(LIBPRELUDE_MAJOR_VERSION) AC_SUBST(LIBPRELUDE_MINOR_VERSION) AC_SUBST(LIBPRELUDE_MICRO_VERSION) AC_SUBST(LIBPRELUDE_LEVEL_VERSION) AC_SUBST(LIBPRELUDE_SERIAL_VERSION) AC_SUBST(PRELUDE_ADMIN_LIBS) AC_SUBST(PRELUDE_SPOOL_DIR) AC_SUBST(PRELUDE_CONFIG_DIR) AC_SUBST(SWIG_DATA_DIR) AS_AC_EXPAND(SYSCONFDIR, $sysconfdir) AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir) AS_AC_EXPAND(LIBDIR, $libdir) AS_AC_EXPAND(BINDIR, $bindir) AS_AC_EXPAND(DATADIR, $datadir) SWIG_DATA_DIR=$DATADIR/libprelude/swig PRELUDE_SPOOL_DIR=$LOCALSTATEDIR/spool/prelude PRELUDE_CONFIG_DIR=$SYSCONFDIR/prelude AC_DEFINE_UNQUOTED(PRELUDE_SPOOL_DIR, "$PRELUDE_SPOOL_DIR", Prelude spool directory) AC_DEFINE_UNQUOTED(PRELUDE_CONFIG_DIR, "$PRELUDE_CONFIG_DIR", Prelude config directory) case "${host}" in i[[3456789]]86-*-mingw32*) WIN32="yes" ;; *cygwin*) WIN32="yes" ;; *) WIN32="no" ;; esac if test x$WIN32 = xyes; then AC_DEFINE_UNQUOTED(INSTALLDIR, "$BINDIR", Prelude library install directory) else AC_DEFINE_UNQUOTED(INSTALLDIR, "$LIBDIR", Prelude library install directory) fi AC_CONFIG_FILES([ Makefile client.conf global.conf idmef-client.conf libprelude-config libltdl/Makefile libmissing/Makefile libmissing/tests/Makefile m4/Makefile src/Makefile src/libprelude.pc src/libprelude-error/Makefile src/jsmn/Makefile src/include/Makefile src/include/prelude.h src/include/prelude-inttypes.h prelude-admin/prelude-adduser prelude-admin/Makefile docs/Makefile docs/api/Makefile docs/manpages/Makefile bindings/Makefile bindings/c++/Makefile bindings/c++/include/Makefile bindings/lua/Makefile bindings/perl/Makefile.PL bindings/python/Makefile bindings/python/setup.py bindings/ruby/Makefile tests/Makefile ]) AC_CONFIG_COMMANDS([default],[[ chmod +x libprelude-config ]],[[]]) AC_OUTPUT echo echo "*** Dumping configuration ***" echo " - Generate documentation : $enable_gtk_doc" echo " - LUA binding : $with_lua" echo " - Perl binding : $with_perl" echo " - Python2.x binding : $with_python2" echo " - Python3.x binding : $with_python3" echo " - Ruby binding : $with_ruby" echo " - Easy bindings : $enable_easy_bindings" libprelude-5.2.0/PaxHeaders.14770/aclocal.m40000644000000000000000000000011013726163503016506 xustar000000000000000024 mtime=1599661891.313 24 atime=1599661891.479 24 ctime=1599661998.502 libprelude-5.2.0/aclocal.m40000644000000000000000000014517413726163503015525 0ustar00rootroot00000000000000# generated automatically by aclocal 1.13.4 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.13' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.13.4], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.13.4])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # Copyright (C) 2011-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_AR([ACT-IF-FAIL]) # ------------------------- # Try to determine the archiver interface, and trigger the ar-lib wrapper # if it is needed. If the detection of archiver interface fails, run # ACT-IF-FAIL (default is to abort configure with a proper error message). AC_DEFUN([AM_PROG_AR], [AC_BEFORE([$0], [LT_INIT])dnl AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([ar-lib])dnl AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) : ${AR=ar} AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], [am_cv_ar_interface=ar AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a ]) ]) case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) m4_default([$1], [AC_MSG_ERROR([could not determine $AR interface])]) ;; esac AC_SUBST([AR])dnl ]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Copyright (C) 1998-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_LEX # ----------- # Autoconf leaves LEX=: if lex or flex can't be found. Change that to a # "missing" invocation, for better error output. AC_DEFUN([AM_PROG_LEX], [AC_PREREQ([2.50])dnl AC_REQUIRE([AM_MISSING_HAS_RUN])dnl AC_REQUIRE([AC_PROG_LEX])dnl if test "$LEX" = :; then LEX=${am_missing_run}flex fi]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless 'enable' is passed literally. # For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_CC_C_O # -------------- # Like AC_PROG_CC_C_O, but changed for automake. AC_DEFUN([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC_C_O])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi dnl Make sure AC_PROG_CC is never called again, or it will override our dnl setting of CC. m4_define([AC_PROG_CC], [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([libmissing/m4/00gnulib.m4]) m4_include([libmissing/m4/absolute-header.m4]) m4_include([libmissing/m4/alloca.m4]) m4_include([libmissing/m4/arpa_inet_h.m4]) m4_include([libmissing/m4/asm-underscore.m4]) m4_include([libmissing/m4/btowc.m4]) m4_include([libmissing/m4/builtin-expect.m4]) m4_include([libmissing/m4/close.m4]) m4_include([libmissing/m4/codeset.m4]) m4_include([libmissing/m4/cond.m4]) m4_include([libmissing/m4/ctype.m4]) m4_include([libmissing/m4/dup2.m4]) m4_include([libmissing/m4/eealloc.m4]) m4_include([libmissing/m4/environ.m4]) m4_include([libmissing/m4/errno_h.m4]) m4_include([libmissing/m4/exponentd.m4]) m4_include([libmissing/m4/extensions.m4]) m4_include([libmissing/m4/extern-inline.m4]) m4_include([libmissing/m4/fclose.m4]) m4_include([libmissing/m4/fcntl-o.m4]) m4_include([libmissing/m4/fcntl.m4]) m4_include([libmissing/m4/fcntl_h.m4]) m4_include([libmissing/m4/fdopen.m4]) m4_include([libmissing/m4/fflush.m4]) m4_include([libmissing/m4/flexmember.m4]) m4_include([libmissing/m4/float_h.m4]) m4_include([libmissing/m4/fopen.m4]) m4_include([libmissing/m4/fpieee.m4]) m4_include([libmissing/m4/fpurge.m4]) m4_include([libmissing/m4/freading.m4]) m4_include([libmissing/m4/fseek.m4]) m4_include([libmissing/m4/fseeko.m4]) m4_include([libmissing/m4/fstat.m4]) m4_include([libmissing/m4/ftell.m4]) m4_include([libmissing/m4/ftello.m4]) m4_include([libmissing/m4/ftruncate.m4]) m4_include([libmissing/m4/ftw.m4]) m4_include([libmissing/m4/getaddrinfo.m4]) m4_include([libmissing/m4/getcwd.m4]) m4_include([libmissing/m4/getdelim.m4]) m4_include([libmissing/m4/getdtablesize.m4]) m4_include([libmissing/m4/gethostname.m4]) m4_include([libmissing/m4/getline.m4]) m4_include([libmissing/m4/getpagesize.m4]) m4_include([libmissing/m4/getpass.m4]) m4_include([libmissing/m4/gettimeofday.m4]) m4_include([libmissing/m4/glibc21.m4]) m4_include([libmissing/m4/gnulib-common.m4]) m4_include([libmissing/m4/gnulib-comp.m4]) m4_include([libmissing/m4/gnulib-tool.m4]) m4_include([libmissing/m4/host-cpu-c-abi.m4]) m4_include([libmissing/m4/hostent.m4]) m4_include([libmissing/m4/include_next.m4]) m4_include([libmissing/m4/inet_ntop.m4]) m4_include([libmissing/m4/inet_pton.m4]) m4_include([libmissing/m4/intlmacosx.m4]) m4_include([libmissing/m4/intmax_t.m4]) m4_include([libmissing/m4/inttypes-pri.m4]) m4_include([libmissing/m4/inttypes.m4]) m4_include([libmissing/m4/inttypes_h.m4]) m4_include([libmissing/m4/ioctl.m4]) m4_include([libmissing/m4/isblank.m4]) m4_include([libmissing/m4/langinfo_h.m4]) m4_include([libmissing/m4/largefile.m4]) m4_include([libmissing/m4/lcmessage.m4]) m4_include([libmissing/m4/lib-ld.m4]) m4_include([libmissing/m4/lib-link.m4]) m4_include([libmissing/m4/lib-prefix.m4]) m4_include([libmissing/m4/limits-h.m4]) m4_include([libmissing/m4/localcharset.m4]) m4_include([libmissing/m4/locale-fr.m4]) m4_include([libmissing/m4/locale-ja.m4]) m4_include([libmissing/m4/locale-tr.m4]) m4_include([libmissing/m4/locale-zh.m4]) m4_include([libmissing/m4/locale_h.m4]) m4_include([libmissing/m4/localeconv.m4]) m4_include([libmissing/m4/localename.m4]) m4_include([libmissing/m4/localtime-buffer.m4]) m4_include([libmissing/m4/lock.m4]) m4_include([libmissing/m4/longlong.m4]) m4_include([libmissing/m4/lseek.m4]) m4_include([libmissing/m4/lstat.m4]) m4_include([libmissing/m4/malloc.m4]) m4_include([libmissing/m4/malloca.m4]) m4_include([libmissing/m4/mbrtowc.m4]) m4_include([libmissing/m4/mbsinit.m4]) m4_include([libmissing/m4/mbstate_t.m4]) m4_include([libmissing/m4/mbtowc.m4]) m4_include([libmissing/m4/memchr.m4]) m4_include([libmissing/m4/memmem.m4]) m4_include([libmissing/m4/minmax.m4]) m4_include([libmissing/m4/mktime.m4]) m4_include([libmissing/m4/mmap-anon.m4]) m4_include([libmissing/m4/mode_t.m4]) m4_include([libmissing/m4/msvc-inval.m4]) m4_include([libmissing/m4/msvc-nothrow.m4]) m4_include([libmissing/m4/multiarch.m4]) m4_include([libmissing/m4/nanosleep.m4]) m4_include([libmissing/m4/netdb_h.m4]) m4_include([libmissing/m4/netinet_in_h.m4]) m4_include([libmissing/m4/nl_langinfo.m4]) m4_include([libmissing/m4/off_t.m4]) m4_include([libmissing/m4/onceonly.m4]) m4_include([libmissing/m4/open-cloexec.m4]) m4_include([libmissing/m4/open.m4]) m4_include([libmissing/m4/pathmax.m4]) m4_include([libmissing/m4/perror.m4]) m4_include([libmissing/m4/pipe.m4]) m4_include([libmissing/m4/poll.m4]) m4_include([libmissing/m4/poll_h.m4]) m4_include([libmissing/m4/printf.m4]) m4_include([libmissing/m4/pthread_rwlock_rdlock.m4]) m4_include([libmissing/m4/pthread_sigmask.m4]) m4_include([libmissing/m4/putenv.m4]) m4_include([libmissing/m4/raise.m4]) m4_include([libmissing/m4/regex.m4]) m4_include([libmissing/m4/relocatable-lib.m4]) m4_include([libmissing/m4/select.m4]) m4_include([libmissing/m4/servent.m4]) m4_include([libmissing/m4/setenv.m4]) m4_include([libmissing/m4/setlocale.m4]) m4_include([libmissing/m4/sigaction.m4]) m4_include([libmissing/m4/signal_h.m4]) m4_include([libmissing/m4/signalblocking.m4]) m4_include([libmissing/m4/size_max.m4]) m4_include([libmissing/m4/sleep.m4]) m4_include([libmissing/m4/snprintf.m4]) m4_include([libmissing/m4/socketlib.m4]) m4_include([libmissing/m4/sockets.m4]) m4_include([libmissing/m4/socklen.m4]) m4_include([libmissing/m4/sockpfaf.m4]) m4_include([libmissing/m4/ssize_t.m4]) m4_include([libmissing/m4/stat-time.m4]) m4_include([libmissing/m4/stat.m4]) m4_include([libmissing/m4/stdalign.m4]) m4_include([libmissing/m4/stdbool.m4]) m4_include([libmissing/m4/stddef_h.m4]) m4_include([libmissing/m4/stdint.m4]) m4_include([libmissing/m4/stdint_h.m4]) m4_include([libmissing/m4/stdio_h.m4]) m4_include([libmissing/m4/stdlib_h.m4]) m4_include([libmissing/m4/strcase.m4]) m4_include([libmissing/m4/strcasestr.m4]) m4_include([libmissing/m4/strdup.m4]) m4_include([libmissing/m4/strerror.m4]) m4_include([libmissing/m4/strerror_r.m4]) m4_include([libmissing/m4/string_h.m4]) m4_include([libmissing/m4/strings_h.m4]) m4_include([libmissing/m4/strndup.m4]) m4_include([libmissing/m4/strnlen.m4]) m4_include([libmissing/m4/strptime.m4]) m4_include([libmissing/m4/strsep.m4]) m4_include([libmissing/m4/symlink.m4]) m4_include([libmissing/m4/sys_ioctl_h.m4]) m4_include([libmissing/m4/sys_select_h.m4]) m4_include([libmissing/m4/sys_socket_h.m4]) m4_include([libmissing/m4/sys_stat_h.m4]) m4_include([libmissing/m4/sys_time_h.m4]) m4_include([libmissing/m4/sys_types_h.m4]) m4_include([libmissing/m4/sys_uio_h.m4]) m4_include([libmissing/m4/sys_utsname_h.m4]) m4_include([libmissing/m4/thread.m4]) m4_include([libmissing/m4/threadlib.m4]) m4_include([libmissing/m4/time_h.m4]) m4_include([libmissing/m4/time_r.m4]) m4_include([libmissing/m4/timegm.m4]) m4_include([libmissing/m4/tls.m4]) m4_include([libmissing/m4/tm_gmtoff.m4]) m4_include([libmissing/m4/uname.m4]) m4_include([libmissing/m4/ungetc.m4]) m4_include([libmissing/m4/unistd_h.m4]) m4_include([libmissing/m4/usleep.m4]) m4_include([libmissing/m4/vasnprintf.m4]) m4_include([libmissing/m4/vsnprintf.m4]) m4_include([libmissing/m4/warn-on-use.m4]) m4_include([libmissing/m4/wchar_h.m4]) m4_include([libmissing/m4/wchar_t.m4]) m4_include([libmissing/m4/wcrtomb.m4]) m4_include([libmissing/m4/wctob.m4]) m4_include([libmissing/m4/wctomb.m4]) m4_include([libmissing/m4/wctype_h.m4]) m4_include([libmissing/m4/wint_t.m4]) m4_include([libmissing/m4/write.m4]) m4_include([libmissing/m4/xsize.m4]) m4_include([libmissing/m4/yield.m4]) m4_include([m4/am_path_ruby.m4]) m4_include([m4/argz.m4]) m4_include([m4/as-ac-expand.m4]) m4_include([m4/ax_check_aligned_access_required.m4]) m4_include([m4/ax_check_compile_flag.m4]) m4_include([m4/ax_check_link_flag.m4]) m4_include([m4/ax_create_prelude_inttypes_h.m4]) m4_include([m4/ax_reset_headers_cache.m4]) m4_include([m4/gtk-doc.m4]) m4_include([m4/libgnutls-extra.m4]) m4_include([m4/libgnutls.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltdl.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) m4_include([m4/pkg.m4]) libprelude-5.2.0/PaxHeaders.14770/config.h.in0000644000000000000000000000011013726163510016667 xustar000000000000000024 mtime=1599661896.229 24 atime=1599661946.088 24 ctime=1599661998.503 libprelude-5.2.0/config.h.in0000644000000000000000000016340213726163510015700 0ustar00rootroot00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* CPU and C ABI indicator */ #ifndef __i386__ #undef __i386__ #endif #ifndef __x86_64_x32__ #undef __x86_64_x32__ #endif #ifndef __x86_64__ #undef __x86_64__ #endif #ifndef __alpha__ #undef __alpha__ #endif #ifndef __arm__ #undef __arm__ #endif #ifndef __armhf__ #undef __armhf__ #endif #ifndef __arm64_ilp32__ #undef __arm64_ilp32__ #endif #ifndef __arm64__ #undef __arm64__ #endif #ifndef __hppa__ #undef __hppa__ #endif #ifndef __hppa64__ #undef __hppa64__ #endif #ifndef __ia64_ilp32__ #undef __ia64_ilp32__ #endif #ifndef __ia64__ #undef __ia64__ #endif #ifndef __m68k__ #undef __m68k__ #endif #ifndef __mips__ #undef __mips__ #endif #ifndef __mipsn32__ #undef __mipsn32__ #endif #ifndef __mips64__ #undef __mips64__ #endif #ifndef __powerpc__ #undef __powerpc__ #endif #ifndef __powerpc64__ #undef __powerpc64__ #endif #ifndef __powerpc64_elfv2__ #undef __powerpc64_elfv2__ #endif #ifndef __riscv32__ #undef __riscv32__ #endif #ifndef __riscv64__ #undef __riscv64__ #endif #ifndef __riscv32_ilp32__ #undef __riscv32_ilp32__ #endif #ifndef __riscv32_ilp32f__ #undef __riscv32_ilp32f__ #endif #ifndef __riscv32_ilp32d__ #undef __riscv32_ilp32d__ #endif #ifndef __riscv64_ilp32__ #undef __riscv64_ilp32__ #endif #ifndef __riscv64_ilp32f__ #undef __riscv64_ilp32f__ #endif #ifndef __riscv64_ilp32d__ #undef __riscv64_ilp32d__ #endif #ifndef __riscv64_lp64__ #undef __riscv64_lp64__ #endif #ifndef __riscv64_lp64f__ #undef __riscv64_lp64f__ #endif #ifndef __riscv64_lp64d__ #undef __riscv64_lp64d__ #endif #ifndef __s390__ #undef __s390__ #endif #ifndef __s390x__ #undef __s390x__ #endif #ifndef __sh__ #undef __sh__ #endif #ifndef __sparc__ #undef __sparc__ #endif #ifndef __sparc64__ #undef __sparc64__ #endif /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* Define to the number of bits in type 'ptrdiff_t'. */ #undef BITSIZEOF_PTRDIFF_T /* Define to the number of bits in type 'sig_atomic_t'. */ #undef BITSIZEOF_SIG_ATOMIC_T /* Define to the number of bits in type 'size_t'. */ #undef BITSIZEOF_SIZE_T /* Define to the number of bits in type 'wchar_t'. */ #undef BITSIZEOF_WCHAR_T /* Define to the number of bits in type 'wint_t'. */ #undef BITSIZEOF_WINT_T /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA /* Define to 1 if the C locale may have encoding errors. */ #undef C_LOCALE_MAYBE_EILSEQ /* Define as the bit index in the word where to find bit 0 of the exponent of 'double'. */ #undef DBL_EXPBIT0_BIT /* Define as the word index where to find the exponent of 'double'. */ #undef DBL_EXPBIT0_WORD /* Define to 1 if the package shall run at any location in the file system. */ #undef ENABLE_RELOCATABLE /* Define this to 1 if F_DUPFD behavior does not match POSIX */ #undef FCNTL_DUPFD_BUGGY /* Define to nothing if C supports flexible array members, and to 1 if it does not. That way, with a declaration like 'struct s { int n; double d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99 compilers. When computing the size of such an object, don't use 'sizeof (struct s)' as it overestimates the size. Use 'offsetof (struct s, d)' instead. Don't use 'offsetof (struct s, d[0])', as this doesn't work with MSVC and with C++ compilers. */ #undef FLEXIBLE_ARRAY_MEMBER /* Define to 1 if fopen() fails to recognize a trailing slash. */ #undef FOPEN_TRAILING_SLASH_BUG /* Define to 1 if the system's ftello function has the Solaris bug. */ #undef FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE /* Define to 1 if fflush is known to work on stdin as per POSIX.1-2008, 0 if fflush is known to not work, -1 if unknown. */ #undef FUNC_FFLUSH_STDIN /* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */ #undef FUNC_NL_LANGINFO_YESEXPR_WORKS /* Define to 1 if ungetc is broken when used on arbitrary bytes. */ #undef FUNC_UNGETC_BROKEN /* Define if gettimeofday clobbers the localtime buffer. */ #undef GETTIMEOFDAY_CLOBBERS_LOCALTIME /* Define this to 'void' or 'struct timezone' to match the system's declaration of the second argument to gettimeofday. */ #undef GETTIMEOFDAY_TIMEZONE /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fflush shall be considered present. */ #undef GNULIB_FFLUSH /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fscanf shall be considered present. */ #undef GNULIB_FSCANF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module lock shall be considered present. */ #undef GNULIB_LOCK /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module msvc-nothrow shall be considered present. */ #undef GNULIB_MSVC_NOTHROW /* Define to 1 if printf and friends should be labeled with attribute "__gnu_printf__" instead of "__printf__" */ #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module scanf shall be considered present. */ #undef GNULIB_SCANF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module snprintf shall be considered present. */ #undef GNULIB_SNPRINTF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module strerror shall be considered present. */ #undef GNULIB_STRERROR /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module strerror_r-posix shall be considered present. */ #undef GNULIB_STRERROR_R_POSIX /* Define to 1 when the gnulib module accept should be tested. */ #undef GNULIB_TEST_ACCEPT /* Define to 1 when the gnulib module bind should be tested. */ #undef GNULIB_TEST_BIND /* Define to 1 when the gnulib module btowc should be tested. */ #undef GNULIB_TEST_BTOWC /* Define to 1 when the gnulib module cloexec should be tested. */ #undef GNULIB_TEST_CLOEXEC /* Define to 1 when the gnulib module close should be tested. */ #undef GNULIB_TEST_CLOSE /* Define to 1 when the gnulib module connect should be tested. */ #undef GNULIB_TEST_CONNECT /* Define to 1 when the gnulib module dup2 should be tested. */ #undef GNULIB_TEST_DUP2 /* Define to 1 when the gnulib module environ should be tested. */ #undef GNULIB_TEST_ENVIRON /* Define to 1 when the gnulib module fclose should be tested. */ #undef GNULIB_TEST_FCLOSE /* Define to 1 when the gnulib module fcntl should be tested. */ #undef GNULIB_TEST_FCNTL /* Define to 1 when the gnulib module fdopen should be tested. */ #undef GNULIB_TEST_FDOPEN /* Define to 1 when the gnulib module fflush should be tested. */ #undef GNULIB_TEST_FFLUSH /* Define to 1 when the gnulib module fopen should be tested. */ #undef GNULIB_TEST_FOPEN /* Define to 1 when the gnulib module fpurge should be tested. */ #undef GNULIB_TEST_FPURGE /* Define to 1 when the gnulib module fseek should be tested. */ #undef GNULIB_TEST_FSEEK /* Define to 1 when the gnulib module fseeko should be tested. */ #undef GNULIB_TEST_FSEEKO /* Define to 1 when the gnulib module fstat should be tested. */ #undef GNULIB_TEST_FSTAT /* Define to 1 when the gnulib module ftell should be tested. */ #undef GNULIB_TEST_FTELL /* Define to 1 when the gnulib module ftello should be tested. */ #undef GNULIB_TEST_FTELLO /* Define to 1 when the gnulib module ftruncate should be tested. */ #undef GNULIB_TEST_FTRUNCATE /* Define to 1 when the gnulib module getaddrinfo should be tested. */ #undef GNULIB_TEST_GETADDRINFO /* Define to 1 when the gnulib module getcwd should be tested. */ #undef GNULIB_TEST_GETCWD /* Define to 1 when the gnulib module getdelim should be tested. */ #undef GNULIB_TEST_GETDELIM /* Define to 1 when the gnulib module getdtablesize should be tested. */ #undef GNULIB_TEST_GETDTABLESIZE /* Define to 1 when the gnulib module gethostname should be tested. */ #undef GNULIB_TEST_GETHOSTNAME /* Define to 1 when the gnulib module getline should be tested. */ #undef GNULIB_TEST_GETLINE /* Define to 1 when the gnulib module getpagesize should be tested. */ #undef GNULIB_TEST_GETPAGESIZE /* Define to 1 when the gnulib module getpass should be tested. */ #undef GNULIB_TEST_GETPASS /* Define to 1 when the gnulib module getsockname should be tested. */ #undef GNULIB_TEST_GETSOCKNAME /* Define to 1 when the gnulib module gettimeofday should be tested. */ #undef GNULIB_TEST_GETTIMEOFDAY /* Define to 1 when the gnulib module ioctl should be tested. */ #undef GNULIB_TEST_IOCTL /* Define to 1 when the gnulib module listen should be tested. */ #undef GNULIB_TEST_LISTEN /* Define to 1 when the gnulib module localeconv should be tested. */ #undef GNULIB_TEST_LOCALECONV /* Define to 1 when the gnulib module lseek should be tested. */ #undef GNULIB_TEST_LSEEK /* Define to 1 when the gnulib module lstat should be tested. */ #undef GNULIB_TEST_LSTAT /* Define to 1 when the gnulib module malloc-posix should be tested. */ #undef GNULIB_TEST_MALLOC_POSIX /* Define to 1 when the gnulib module mbrtowc should be tested. */ #undef GNULIB_TEST_MBRTOWC /* Define to 1 when the gnulib module mbsinit should be tested. */ #undef GNULIB_TEST_MBSINIT /* Define to 1 when the gnulib module mbtowc should be tested. */ #undef GNULIB_TEST_MBTOWC /* Define to 1 when the gnulib module memchr should be tested. */ #undef GNULIB_TEST_MEMCHR /* Define to 1 when the gnulib module memmem should be tested. */ #undef GNULIB_TEST_MEMMEM /* Define to 1 when the gnulib module mktime should be tested. */ #undef GNULIB_TEST_MKTIME /* Define to 1 when the gnulib module nanosleep should be tested. */ #undef GNULIB_TEST_NANOSLEEP /* Define to 1 when the gnulib module nl_langinfo should be tested. */ #undef GNULIB_TEST_NL_LANGINFO /* Define to 1 when the gnulib module open should be tested. */ #undef GNULIB_TEST_OPEN /* Define to 1 when the gnulib module perror should be tested. */ #undef GNULIB_TEST_PERROR /* Define to 1 when the gnulib module pipe should be tested. */ #undef GNULIB_TEST_PIPE /* Define to 1 when the gnulib module poll should be tested. */ #undef GNULIB_TEST_POLL /* Define to 1 when the gnulib module pthread_sigmask should be tested. */ #undef GNULIB_TEST_PTHREAD_SIGMASK /* Define to 1 when the gnulib module putenv should be tested. */ #undef GNULIB_TEST_PUTENV /* Define to 1 when the gnulib module raise should be tested. */ #undef GNULIB_TEST_RAISE /* Define to 1 when the gnulib module select should be tested. */ #undef GNULIB_TEST_SELECT /* Define to 1 when the gnulib module setenv should be tested. */ #undef GNULIB_TEST_SETENV /* Define to 1 when the gnulib module setlocale should be tested. */ #undef GNULIB_TEST_SETLOCALE /* Define to 1 when the gnulib module setsockopt should be tested. */ #undef GNULIB_TEST_SETSOCKOPT /* Define to 1 when the gnulib module sigaction should be tested. */ #undef GNULIB_TEST_SIGACTION /* Define to 1 when the gnulib module sigprocmask should be tested. */ #undef GNULIB_TEST_SIGPROCMASK /* Define to 1 when the gnulib module sleep should be tested. */ #undef GNULIB_TEST_SLEEP /* Define to 1 when the gnulib module snprintf should be tested. */ #undef GNULIB_TEST_SNPRINTF /* Define to 1 when the gnulib module socket should be tested. */ #undef GNULIB_TEST_SOCKET /* Define to 1 when the gnulib module stat should be tested. */ #undef GNULIB_TEST_STAT /* Define to 1 when the gnulib module strcasestr should be tested. */ #undef GNULIB_TEST_STRCASESTR /* Define to 1 when the gnulib module strdup should be tested. */ #undef GNULIB_TEST_STRDUP /* Define to 1 when the gnulib module strerror should be tested. */ #undef GNULIB_TEST_STRERROR /* Define to 1 when the gnulib module strerror_r should be tested. */ #undef GNULIB_TEST_STRERROR_R /* Define to 1 when the gnulib module strndup should be tested. */ #undef GNULIB_TEST_STRNDUP /* Define to 1 when the gnulib module strnlen should be tested. */ #undef GNULIB_TEST_STRNLEN /* Define to 1 when the gnulib module strptime should be tested. */ #undef GNULIB_TEST_STRPTIME /* Define to 1 when the gnulib module strsep should be tested. */ #undef GNULIB_TEST_STRSEP /* Define to 1 when the gnulib module symlink should be tested. */ #undef GNULIB_TEST_SYMLINK /* Define to 1 when the gnulib module timegm should be tested. */ #undef GNULIB_TEST_TIMEGM /* Define to 1 when the gnulib module time_r should be tested. */ #undef GNULIB_TEST_TIME_R /* Define to 1 when the gnulib module unsetenv should be tested. */ #undef GNULIB_TEST_UNSETENV /* Define to 1 when the gnulib module usleep should be tested. */ #undef GNULIB_TEST_USLEEP /* Define to 1 when the gnulib module vsnprintf should be tested. */ #undef GNULIB_TEST_VSNPRINTF /* Define to 1 when the gnulib module wcrtomb should be tested. */ #undef GNULIB_TEST_WCRTOMB /* Define to 1 when the gnulib module wctob should be tested. */ #undef GNULIB_TEST_WCTOB /* Define to 1 when the gnulib module wctomb should be tested. */ #undef GNULIB_TEST_WCTOMB /* Define to 1 when the gnulib module write should be tested. */ #undef GNULIB_TEST_WRITE /* Define whether SRP support is enabled */ #undef GNUTLS_SRP_ENABLED /* Define if pointers to integers require aligned access */ #undef HAVE_ALIGNED_ACCESS_REQUIRED /* Define to 1 if you have 'alloca' after including , a header that may be supplied by this distribution. */ #undef HAVE_ALLOCA /* Define to 1 if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the `argz_add' function. */ #undef HAVE_ARGZ_ADD /* Define to 1 if you have the `argz_append' function. */ #undef HAVE_ARGZ_APPEND /* Define to 1 if you have the `argz_count' function. */ #undef HAVE_ARGZ_COUNT /* Define to 1 if you have the `argz_create_sep' function. */ #undef HAVE_ARGZ_CREATE_SEP /* Define to 1 if you have the header file. */ #undef HAVE_ARGZ_H /* Define to 1 if you have the `argz_insert' function. */ #undef HAVE_ARGZ_INSERT /* Define to 1 if you have the `argz_next' function. */ #undef HAVE_ARGZ_NEXT /* Define to 1 if you have the `argz_stringify' function. */ #undef HAVE_ARGZ_STRINGIFY /* Define to 1 if you have the header file. */ #undef HAVE_ARPA_INET_H /* Define to 1 if you have the header file. */ #undef HAVE_BP_SYM_H /* Define to 1 if you have the 'btowc' function. */ #undef HAVE_BTOWC /* Define to 1 if nanosleep mishandles large arguments. */ #undef HAVE_BUG_BIG_NANOSLEEP /* Define to 1 if you have the 'catgets' function. */ #undef HAVE_CATGETS /* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define to 1 if you have the `chsize' function. */ #undef HAVE_CHSIZE /* Define to 1 if you have the `closedir' function. */ #undef HAVE_CLOSEDIR /* Define to 1 if you have the header file. */ #undef HAVE_CRTDEFS_H /* Define to 1 if you have the declaration of `alarm', and to 0 if you don't. */ #undef HAVE_DECL_ALARM /* Define to 1 if you have the declaration of `cygwin_conv_path', and to 0 if you don't. */ #undef HAVE_DECL_CYGWIN_CONV_PATH /* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_FFLUSH_UNLOCKED /* Define to 1 if you have the declaration of `flockfile', and to 0 if you don't. */ #undef HAVE_DECL_FLOCKFILE /* Define to 1 if you have the declaration of `fpurge', and to 0 if you don't. */ #undef HAVE_DECL_FPURGE /* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_FPUTS_UNLOCKED /* Define to 1 if you have the declaration of `freeaddrinfo', and to 0 if you don't. */ #undef HAVE_DECL_FREEADDRINFO /* Define to 1 if you have the declaration of `fseeko', and to 0 if you don't. */ #undef HAVE_DECL_FSEEKO /* Define to 1 if you have the declaration of `ftello', and to 0 if you don't. */ #undef HAVE_DECL_FTELLO /* Define to 1 if you have the declaration of `funlockfile', and to 0 if you don't. */ #undef HAVE_DECL_FUNLOCKFILE /* Define to 1 if you have the declaration of `gai_strerror', and to 0 if you don't. */ #undef HAVE_DECL_GAI_STRERROR /* Define to 1 if you have the declaration of `gai_strerrorA', and to 0 if you don't. */ #undef HAVE_DECL_GAI_STRERRORA /* Define to 1 if you have the declaration of `getaddrinfo', and to 0 if you don't. */ #undef HAVE_DECL_GETADDRINFO /* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_GETC_UNLOCKED /* Define to 1 if you have the declaration of `getdelim', and to 0 if you don't. */ #undef HAVE_DECL_GETDELIM /* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you don't. */ #undef HAVE_DECL_GETDTABLESIZE /* Define to 1 if you have the declaration of `getline', and to 0 if you don't. */ #undef HAVE_DECL_GETLINE /* Define to 1 if you have the declaration of `getnameinfo', and to 0 if you don't. */ #undef HAVE_DECL_GETNAMEINFO /* Define to 1 if you have the declaration of `inet_ntop', and to 0 if you don't. */ #undef HAVE_DECL_INET_NTOP /* Define to 1 if you have the declaration of `inet_pton', and to 0 if you don't. */ #undef HAVE_DECL_INET_PTON /* Define to 1 if you have the declaration of `isblank', and to 0 if you don't. */ #undef HAVE_DECL_ISBLANK /* Define to 1 if you have the declaration of `localtime_r', and to 0 if you don't. */ #undef HAVE_DECL_LOCALTIME_R /* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you don't. */ #undef HAVE_DECL_MBRTOWC /* Define to 1 if you have the declaration of `mbsinit', and to 0 if you don't. */ #undef HAVE_DECL_MBSINIT /* Define to 1 if you have the declaration of `memmem', and to 0 if you don't. */ #undef HAVE_DECL_MEMMEM /* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_PUTC_UNLOCKED /* Define to 1 if you have the declaration of `setenv', and to 0 if you don't. */ #undef HAVE_DECL_SETENV /* Define to 1 if you have the declaration of `sleep', and to 0 if you don't. */ #undef HAVE_DECL_SLEEP /* Define to 1 if you have the declaration of `snprintf', and to 0 if you don't. */ #undef HAVE_DECL_SNPRINTF /* Define to 1 if you have the declaration of `strdup', and to 0 if you don't. */ #undef HAVE_DECL_STRDUP /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you don't. */ #undef HAVE_DECL_STRERROR_R /* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you don't. */ #undef HAVE_DECL_STRNCASECMP /* Define to 1 if you have the declaration of `strndup', and to 0 if you don't. */ #undef HAVE_DECL_STRNDUP /* Define to 1 if you have the declaration of `strnlen', and to 0 if you don't. */ #undef HAVE_DECL_STRNLEN /* Define to 1 if you have the declaration of `towlower', and to 0 if you don't. */ #undef HAVE_DECL_TOWLOWER /* Define to 1 if you have the declaration of `unsetenv', and to 0 if you don't. */ #undef HAVE_DECL_UNSETENV /* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you don't. */ #undef HAVE_DECL_VSNPRINTF /* Define to 1 if you have the declaration of `wcrtomb', and to 0 if you don't. */ #undef HAVE_DECL_WCRTOMB /* Define to 1 if you have the declaration of `wctob', and to 0 if you don't. */ #undef HAVE_DECL_WCTOB /* Define to 1 if you have the declaration of `_fseeki64', and to 0 if you don't. */ #undef HAVE_DECL__FSEEKI64 /* Define to 1 if you have the declaration of `_putenv', and to 0 if you don't. */ #undef HAVE_DECL__PUTENV /* Define to 1 if you have the declaration of `_snprintf', and to 0 if you don't. */ #undef HAVE_DECL__SNPRINTF /* Define to 1 if you have the declaration of `__fsetlocking', and to 0 if you don't. */ #undef HAVE_DECL___FSETLOCKING /* Define to 1 if you have the header file. */ #undef HAVE_DIRENT_H /* Define if you have the GNU dld library. */ #undef HAVE_DLD /* Define to 1 if you have the header file. */ #undef HAVE_DLD_H /* Define to 1 if you have the `dlerror' function. */ #undef HAVE_DLERROR /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_DL_H /* Define to 1 if you have the 'dup2' function. */ #undef HAVE_DUP2 /* Define if you have the _dyld_func_lookup function. */ #undef HAVE_DYLD /* Define if you have the declaration of environ. */ #undef HAVE_ENVIRON_DECL /* Define to 1 if the system has the type `error_t'. */ #undef HAVE_ERROR_T /* Define to 1 if you have the 'fcntl' function. */ #undef HAVE_FCNTL /* Define to 1 if you have the header file. */ #undef HAVE_FEATURES_H /* Define to 1 if you have the `flockfile' function. */ #undef HAVE_FLOCKFILE /* Define to 1 if you have the 'fpurge' function. */ #undef HAVE_FPURGE /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #undef HAVE_FSEEKO /* Define to 1 if you have the `ftruncate' function. */ #undef HAVE_FTRUNCATE /* Define to 1 if you have the `ftw' function. */ #undef HAVE_FTW /* Define to 1 if you have the `funlockfile' function. */ #undef HAVE_FUNLOCKFILE /* Define to 1 if you have the 'getdelim' function. */ #undef HAVE_GETDELIM /* Define to 1 if you have the 'getdtablesize' function. */ #undef HAVE_GETDTABLESIZE /* Define to 1 if you have the `gethostbyname' function. */ #undef HAVE_GETHOSTBYNAME /* Define to 1 if you have the `gethostname' function. */ #undef HAVE_GETHOSTNAME /* Define to 1 if you have the `getlocalename_l' function. */ #undef HAVE_GETLOCALENAME_L /* Define to 1 if you have the 'getpass' function. */ #undef HAVE_GETPASS /* Define to 1 if you have the `getservbyname' function. */ #undef HAVE_GETSERVBYNAME /* Define to 1 if you have the 'gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY /* Define to 1 if the system has the type `gid_t'. */ #undef HAVE_GID_T /* Define whether GnuTLS provides an abstract privkey implementation */ #undef HAVE_GNUTLS_PRIVKEY_ABSTRACT /* Define whether GnuTLS provide priority parsing */ #undef HAVE_GNUTLS_STRING_PRIORITY /* Define whether GnuTLS provides gnutls_x509_crt_list_import */ #undef HAVE_GNUTLS_X509_CRT_LIST_IMPORT /* Define to 1 if you have the `inet_ntop' function. */ #undef HAVE_INET_NTOP /* Define to 1 if you have the `inet_pton' function. */ #undef HAVE_INET_PTON /* Define if you have the 'intmax_t' type in or . */ #undef HAVE_INTMAX_T /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if exists, doesn't clash with , and declares uintmax_t. */ #undef HAVE_INTTYPES_H_WITH_UINTMAX /* Define to 1 if you have the `ioctl' function. */ #undef HAVE_IOCTL /* Define to 1 if defines AF_INET. */ #undef HAVE_IPV4 /* Define to 1 if defines AF_INET6. */ #undef HAVE_IPV6 /* Define to 1 if you have the 'isblank' function. */ #undef HAVE_ISBLANK /* Define to 1 if you have the 'iswcntrl' function. */ #undef HAVE_ISWCNTRL /* Define to 1 if you have the 'iswctype' function. */ #undef HAVE_ISWCTYPE /* Define if you have and nl_langinfo(CODESET). */ #undef HAVE_LANGINFO_CODESET /* Define to 1 if you have the header file. */ #undef HAVE_LANGINFO_H /* Define to 1 if you have the header file. */ #undef HAVE_LAUXLIB_H /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define if you have the libdl library or equivalent. */ #undef HAVE_LIBDL /* Define if libdlloader will be built on this platform */ #undef HAVE_LIBDLLOADER /* Define to 1 if you have the header file. */ #undef HAVE_LIBINTL_H /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the 'localtime_r' function. */ #undef HAVE_LOCALTIME_R /* Define to 1 if the system has the type 'long long int'. */ #undef HAVE_LONG_LONG_INT /* Define to 1 if you have the 'lstat' function. */ #undef HAVE_LSTAT /* Define this if a modern libltdl is already installed */ #undef HAVE_LTDL /* liblua */ #undef HAVE_LUA /* Define to 1 if you have the header file. */ #undef HAVE_LUA_H /* Define to 1 if you have the header file. */ #undef HAVE_MACH_O_DYLD_H /* Define to 1 if you have the header file. */ #undef HAVE_MALLOC_H /* Define if the 'malloc' function is POSIX compliant. */ #undef HAVE_MALLOC_POSIX /* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including config.h and . */ #undef HAVE_MAP_ANONYMOUS /* Define to 1 if you have the `mbrtowc' function. */ #undef HAVE_MBRTOWC /* Define to 1 if you have the 'mbsinit' function. */ #undef HAVE_MBSINIT /* Define to 1 if declares mbstate_t. */ #undef HAVE_MBSTATE_T /* Define to 1 if you have the `memmem' function. */ #undef HAVE_MEMMEM /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if defines the MIN and MAX macros. */ #undef HAVE_MINMAX_IN_LIMITS_H /* Define to 1 if defines the MIN and MAX macros. */ #undef HAVE_MINMAX_IN_SYS_PARAM_H /* Define to 1 if you have the 'mprotect' function. */ #undef HAVE_MPROTECT /* Define to 1 on MSVC platforms that have the "invalid parameter handler" concept. */ #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER /* Define to 1 if you have the header file. */ #undef HAVE_NETDB_H /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IN_H /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_TCP_H /* Define to 1 if you have the 'newlocale' function. */ #undef HAVE_NEWLOCALE /* Define to 1 if you have the 'nl_langinfo' function. */ #undef HAVE_NL_LANGINFO /* Define to 1 if you have the `opendir' function. */ #undef HAVE_OPENDIR /* Define to 1 if you have the header file. */ #undef HAVE_OS_H /* Define whether PCRE is available */ #undef HAVE_PCRE /* Define to 1 if you have the 'pipe' function. */ #undef HAVE_PIPE /* Define to 1 if you have the 'poll' function and it works. */ #undef HAVE_POLL /* Define to 1 if you have the header file. */ #undef HAVE_POLL_H /* Define if libtool can extract symbol lists from object files. */ #undef HAVE_PRELOADED_SYMBOLS /* Define to 1 if you have the `pthread_atfork' function. */ #undef HAVE_PTHREAD_ATFORK /* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ #undef HAVE_PTHREAD_MUTEX_RECURSIVE /* Define if the POSIX multithreading library has read/write locks. */ #undef HAVE_PTHREAD_RWLOCK /* Define if the 'pthread_rwlock_rdlock' function prefers a writer to a reader. */ #undef HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER /* Define to 1 if the pthread_sigmask function can be used (despite bugs). */ #undef HAVE_PTHREAD_SIGMASK /* Define to 1 if you have the `raise' function. */ #undef HAVE_RAISE /* Define to 1 if you have the `readdir' function. */ #undef HAVE_READDIR /* Define to 1 if the system has the type `sa_family_t'. */ #undef HAVE_SA_FAMILY_T /* Define to 1 if you have the header file. */ #undef HAVE_SEARCH_H /* Define to 1 if you have the header file. */ #undef HAVE_SEMAPHORE_H /* Define to 1 if you have the `setdtablesize' function. */ #undef HAVE_SETDTABLESIZE /* Define to 1 if you have the 'setenv' function. */ #undef HAVE_SETENV /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define if you have the shl_load function. */ #undef HAVE_SHL_LOAD /* Define to 1 if you have the 'shutdown' function. */ #undef HAVE_SHUTDOWN /* Define to 1 if you have the 'sigaction' function. */ #undef HAVE_SIGACTION /* Define to 1 if you have the 'sigaltstack' function. */ #undef HAVE_SIGALTSTACK /* Define to 1 if the system has the type `siginfo_t'. */ #undef HAVE_SIGINFO_T /* Define to 1 if you have the 'siginterrupt' function. */ #undef HAVE_SIGINTERRUPT /* Define to 1 if 'sig_atomic_t' is a signed integer type. */ #undef HAVE_SIGNED_SIG_ATOMIC_T /* Define to 1 if 'wchar_t' is a signed integer type. */ #undef HAVE_SIGNED_WCHAR_T /* Define to 1 if 'wint_t' is a signed integer type. */ #undef HAVE_SIGNED_WINT_T /* Define to 1 if the system has the type `sigset_t'. */ #undef HAVE_SIGSET_T /* Define to 1 if you have the 'sleep' function. */ #undef HAVE_SLEEP /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF /* Define if the return value of the snprintf function is the number of of bytes (excluding the terminating NUL) that would have been produced if the buffer had been large enough. */ #undef HAVE_SNPRINTF_RETVAL_C99 /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define if exists, doesn't clash with , and declares uintmax_t. */ #undef HAVE_STDINT_H_WITH_UINTMAX /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_EXT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strcasestr' function. */ #undef HAVE_STRCASESTR /* Define to 1 if you have the 'strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the 'strerror_r' function. */ #undef HAVE_STRERROR_R /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strlcat' function. */ #undef HAVE_STRLCAT /* Define to 1 if you have the `strlcpy' function. */ #undef HAVE_STRLCPY /* Define to 1 if you have the `strncasecmp' function. */ #undef HAVE_STRNCASECMP /* Define to 1 if you have the 'strndup' function. */ #undef HAVE_STRNDUP /* Define to 1 if you have the `strnlen' function. */ #undef HAVE_STRNLEN /* Define to 1 if you have the 'strptime' function. */ #undef HAVE_STRPTIME /* Define to 1 if you have the `strsep' function. */ #undef HAVE_STRSEP /* Define to 1 if the system has the type `struct addrinfo'. */ #undef HAVE_STRUCT_ADDRINFO /* Define to 1 if `decimal_point' is a member of `struct lconv'. */ #undef HAVE_STRUCT_LCONV_DECIMAL_POINT /* Define to 1 if `sa_sigaction' is a member of `struct sigaction'. */ #undef HAVE_STRUCT_SIGACTION_SA_SIGACTION /* Define to 1 if the system has the type `struct sockaddr_in6'. */ #undef HAVE_STRUCT_SOCKADDR_IN6 /* Define to 1 if `sa_len' is a member of `struct sockaddr'. */ #undef HAVE_STRUCT_SOCKADDR_SA_LEN /* Define to 1 if the system has the type `struct sockaddr_storage'. */ #undef HAVE_STRUCT_SOCKADDR_STORAGE /* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */ #undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY /* Define to 1 if `st_atimensec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_ATIMENSEC /* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC /* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC /* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC /* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC /* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC /* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC /* Define to 1 if the system has the type `struct utsname'. */ #undef HAVE_STRUCT_UTSNAME /* Define to 1 if you have the 'symlink' function. */ #undef HAVE_SYMLINK /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BITYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_DL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_FILIO_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MMAN_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SELECT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_UIO_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_UN_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_UTSNAME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if the system has the 'tcgetattr' function. */ #undef HAVE_TCGETATTR /* Define to 1 if the system has the 'tcsetattr' function. */ #undef HAVE_TCSETATTR /* Define to 1 if you have the header file. */ #undef HAVE_TERMIOS_H /* Define to 1 if you have the 'timegm' function. */ #undef HAVE_TIMEGM /* Define if struct tm has the tm_gmtoff member. */ #undef HAVE_TM_GMTOFF /* Define to 1 if you have the `towlower' function. */ #undef HAVE_TOWLOWER /* Define to 1 if you have the `tsearch' function. */ #undef HAVE_TSEARCH /* Define to 1 if you have the 'tzset' function. */ #undef HAVE_TZSET /* Define to 1 if the system has the type `uid_t'. */ #undef HAVE_UID_T /* Define to 1 if you have the `uname' function. */ #undef HAVE_UNAME /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `unsetenv' function. */ #undef HAVE_UNSETENV /* Define to 1 if the system has the type 'unsigned long long int'. */ #undef HAVE_UNSIGNED_LONG_LONG_INT /* Define to 1 if you have the `uselocale' function. */ #undef HAVE_USELOCALE /* Define to 1 if you have the 'usleep' function. */ #undef HAVE_USLEEP /* Define whether variadic macros are supported */ #undef HAVE_VARIADIC_MACROS /* Define to 1 if you have the 'vasnprintf' function. */ #undef HAVE_VASNPRINTF /* Define to 1 if you have the `vsnprintf' function. */ #undef HAVE_VSNPRINTF /* Define to 1 if you have the header file. */ #undef HAVE_WCHAR_H /* Define if you have the 'wchar_t' type. */ #undef HAVE_WCHAR_T /* Define to 1 if you have the 'wcrtomb' function. */ #undef HAVE_WCRTOMB /* Define to 1 if you have the `wcslen' function. */ #undef HAVE_WCSLEN /* Define to 1 if you have the `wcsnlen' function. */ #undef HAVE_WCSNLEN /* Define to 1 if you have the 'wctob' function. */ #undef HAVE_WCTOB /* Define to 1 if you have the header file. */ #undef HAVE_WCTYPE_H /* Define to 1 if you have the header file. */ #undef HAVE_WINSOCK2_H /* Define if you have the 'wint_t' type. */ #undef HAVE_WINT_T /* This value is set to 1 to indicate that the system argz facility works */ #undef HAVE_WORKING_ARGZ /* Define to 1 if O_NOATIME works. */ #undef HAVE_WORKING_O_NOATIME /* Define to 1 if O_NOFOLLOW works. */ #undef HAVE_WORKING_O_NOFOLLOW /* Define to 1 if you have the header file. */ #undef HAVE_WS2TCPIP_H /* Define to 1 if you have the header file. */ #undef HAVE_XLOCALE_H /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Define to 1 if you have the `_fseeki64' function. */ #undef HAVE__FSEEKI64 /* Define to 1 if you have the `_ftelli64' function. */ #undef HAVE__FTELLI64 /* Define to 1 if you have the '_set_invalid_parameter_handler' function. */ #undef HAVE__SET_INVALID_PARAMETER_HANDLER /* Define to 1 if the compiler supports __builtin_expect, and to 2 if does. */ #undef HAVE___BUILTIN_EXPECT #ifndef HAVE___BUILTIN_EXPECT # define __builtin_expect(e, c) (e) #elif HAVE___BUILTIN_EXPECT == 2 # include #endif /* Define to 1 if you have the '__fpurge' function. */ #undef HAVE___FPURGE /* Define to 1 if you have the '__freading' function. */ #undef HAVE___FREADING /* Define to 1 if you have the '__fsetlocking' function. */ #undef HAVE___FSETLOCKING /* Define to 1 if you have the '__xpg_strerror_r' function. */ #undef HAVE___XPG_STRERROR_R /* Define HOST_NAME_MAX when does not define it. */ #undef HOST_NAME_MAX /* Prelude library install directory */ #undef INSTALLDIR /* Define to the value of ${prefix}, as a string. */ #undef INSTALLPREFIX /* Define to 1 if lseek does not detect pipes. */ #undef LSEEK_PIPE_BROKEN /* Define to 1 if 'lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* Define if the OS needs help to load dependent libraries for dlopen(). */ #undef LTDL_DLOPEN_DEPLIBS /* Define to the system default library search path. */ #undef LT_DLSEARCH_PATH /* The archive extension */ #undef LT_LIBEXT /* The archive prefix */ #undef LT_LIBPREFIX /* Define to the extension used for runtime loadable modules, say, ".so". */ #undef LT_MODULE_EXT /* Define to the name of the environment variable that determines the run-time module search path. */ #undef LT_MODULE_PATH_VAR /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Define to the shared library suffix, say, ".dylib". */ #undef LT_SHARED_EXT /* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ #undef MALLOC_0_IS_NONNULL /* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ #undef MAP_ANONYMOUS /* Define if the mbrtowc function does not return (size_t) -2 for empty input. */ #undef MBRTOWC_EMPTY_INPUT_BUG /* Define if the mbrtowc function has the NULL pwc argument bug. */ #undef MBRTOWC_NULL_ARG1_BUG /* Define if the mbrtowc function has the NULL string argument bug. */ #undef MBRTOWC_NULL_ARG2_BUG /* Define if the mbrtowc function does not return 0 for a NUL character. */ #undef MBRTOWC_NUL_RETVAL_BUG /* Define if the mbrtowc function returns a wrong return value. */ #undef MBRTOWC_RETVAL_BUG /* Use GNU style printf and scanf. */ #ifndef __USE_MINGW_ANSI_STDIO # undef __USE_MINGW_ANSI_STDIO #endif /* Define whether SRP support is available through gnutls-extra */ #undef NEED_GNUTLS_EXTRA /* Define if the compilation of mktime.c should define 'mktime_internal'. */ #undef NEED_MKTIME_INTERNAL /* Define if the compilation of mktime.c should define 'mktime' with the native Windows TZ workaround. */ #undef NEED_MKTIME_WINDOWS /* Define if the compilation of mktime.c should define 'mktime' with the algorithmic workarounds. */ #undef NEED_MKTIME_WORKING /* Define if dlsym() requires a leading underscore in symbol names. */ #undef NEED_USCORE /* Define to 1 if your C compiler doesn't accept -c and -o together. */ #undef NO_MINUS_C_MINUS_O /* Define to 1 if open() fails to recognize a trailing slash. */ #undef OPEN_TRAILING_SLASH_BUG /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define wether we need to take care with alignment */ #undef PRELUDE_ALIGNED_ACCESS /* Prelude config directory */ #undef PRELUDE_CONFIG_DIR /* Prelude spool directory */ #undef PRELUDE_SPOOL_DIR /* A 'va_copy' style function */ #undef PRELUDE_VA_COPY /* 'va_lists' cannot be copies as values */ #undef PRELUDE_VA_COPY_AS_ARRAY /* Byte ordering */ #undef PRELUDE_WORDS_BIGENDIAN /* Define if exists and defines unusable PRI* macros. */ #undef PRI_MACROS_BROKEN /* Define to the type that is the result of default argument promotions of type mode_t. */ #undef PROMOTED_MODE_T /* Define if the pthread_in_use() detection is hard. */ #undef PTHREAD_IN_USE_DETECTION_HARD /* Define to 1 if pthread_sigmask(), when it fails, returns -1 and sets errno. */ #undef PTHREAD_SIGMASK_FAILS_WITH_ERRNO /* Define to 1 if pthread_sigmask may return 0 and have no effect. */ #undef PTHREAD_SIGMASK_INEFFECTIVE /* Define to 1 if pthread_sigmask() unblocks signals incorrectly. */ #undef PTHREAD_SIGMASK_UNBLOCK_BUG /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'ptrdiff_t'. */ #undef PTRDIFF_T_SUFFIX /* Define to 1 if stat needs help when passed a file name with a trailing slash */ #undef REPLACE_FUNC_STAT_FILE /* Define if nl_langinfo exists but is overridden by gnulib. */ #undef REPLACE_NL_LANGINFO /* Define to 1 if strerror(0) does not return a message implying success. */ #undef REPLACE_STRERROR_0 /* Define if vasnprintf exists but is overridden by gnulib. */ #undef REPLACE_VASNPRINTF /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'sig_atomic_t'. */ #undef SIG_ATOMIC_T_SUFFIX /* The size of `long', as computed by sizeof. */ #undef SIZEOF_LONG /* Define as the maximum value of type 'size_t', if the system doesn't define it. */ #ifndef SIZE_MAX # undef SIZE_MAX #endif /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'size_t'. */ #undef SIZE_T_SUFFIX /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if the `S_IS*' macros in do not work properly. */ #undef STAT_MACROS_BROKEN /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if time_t is signed. */ #undef TIME_T_IS_SIGNED /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Define to 1 if the type of the st_atim member of a struct stat is struct timespec. */ #undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC /* Define if the POSIX multithreading library can be used. */ #undef USE_POSIX_THREADS /* Define if references to the POSIX multithreading library should be made weak. */ #undef USE_POSIX_THREADS_WEAK /* Define if the GNU Pth multithreading library can be used. */ #undef USE_PTH_THREADS /* Define if references to the GNU Pth multithreading library should be made weak. */ #undef USE_PTH_THREADS_WEAK /* Define if the old Solaris multithreading library can be used. */ #undef USE_SOLARIS_THREADS /* Define if references to the old Solaris multithreading library should be made weak. */ #undef USE_SOLARIS_THREADS_WEAK /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on macOS. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable NetBSD extensions on NetBSD. */ #ifndef _NETBSD_SOURCE # undef _NETBSD_SOURCE #endif /* Enable OpenBSD extensions on NetBSD. */ #ifndef _OPENBSD_SOURCE # undef _OPENBSD_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ #ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ # undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ # undef __STDC_WANT_IEC_60559_BFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__ # undef __STDC_WANT_IEC_60559_DFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # undef __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ # undef __STDC_WANT_IEC_60559_TYPES_EXT__ #endif /* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ #ifndef __STDC_WANT_LIB_EXT2__ # undef __STDC_WANT_LIB_EXT2__ #endif /* Enable extensions specified by ISO/IEC 24747:2009. */ #ifndef __STDC_WANT_MATH_SPEC_FUNCS__ # undef __STDC_WANT_MATH_SPEC_FUNCS__ #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions if necessary. HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif /* Enable X/Open compliant socket functions that do not require linking with -lxnet on HP-UX 11.11. */ #ifndef _HPUX_ALT_XOPEN_SOCKET_API # undef _HPUX_ALT_XOPEN_SOCKET_API #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Define if the native Windows multithreading API can be used. */ #undef USE_WINDOWS_THREADS /* Version number of package */ #undef VERSION /* Define to 1 if unsetenv returns void instead of int. */ #undef VOID_UNSETENV /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wchar_t'. */ #undef WCHAR_T_SUFFIX /* Define if WSAStartup is needed. */ #undef WINDOWS_SOCKETS /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wint_t'. */ #undef WINT_T_SUFFIX /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN # undef WORDS_BIGENDIAN # endif #endif /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a `char[]'. */ #undef YYTEXT_POINTER /* Enable large inode numbers on Mac OS X 10.5. */ #undef _DARWIN_USE_64_BIT_INODE /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ #undef _LARGEFILE_SOURCE /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* Define to 1 on Solaris. */ #undef _LCONV_C99 /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 1 to make NetBSD features available. MINIX 3 needs this. */ #undef _NETBSD_SOURCE /* The _Noreturn keyword of C11. */ #if ! (defined _Noreturn \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 in order to get the POSIX compatible declarations of socket functions. */ #undef _POSIX_PII_SOCKET /* Define to 1 if you need to in order for 'stat' and other things to work. */ #undef _POSIX_SOURCE /* Define if you want to include , so that it consistently overrides 's RE_DUP_MAX. */ #undef _REGEX_INCLUDE_LIMITS_H /* Define if you want regoff_t to be at least as wide POSIX requires. */ #undef _REGEX_LARGE_OFFSETS /* For standard stat data types on VMS. */ #undef _USE_STD_STAT /* Define to __FUNCTION__ or "" if `__func__' does not conform to ANSI C. */ #undef __PRELUDE_FUNC__ /* Define to 1 if the system predates C++11. */ #undef __STDC_CONSTANT_MACROS /* Define to 1 if the system predates C++11. */ #undef __STDC_LIMIT_MACROS /* Define so that glibc/gnulib argp.h does not typedef error_t. */ #undef __error_t_defined /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to a type to use for `error_t' if it is not otherwise available. */ #undef error_t /* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see . Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f (void) { } inline void g (void) { f (); }', c99 incorrectly complains 'reference to static identifier "f" in extern inline function'. This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) on configurations that mistakenly use 'static inline' to implement functions or macros in standard C headers like . For example, if isdigit is mistakenly implemented via a static inline function, a program containing an extern inline function that calls isdigit may not work since the C standard prohibits extern inline functions from calling static functions (ISO C 99 section 6.7.4.(3). This bug is known to occur on: OS X 10.8 and earlier; see: https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html DragonFly; see http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log FreeBSD; see: https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and for clang but remains for g++; see . Assume DragonFly and FreeBSD will be similar. GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline semantics, unless -fgnu89-inline is used. It defines a macro __GNUC_STDC_INLINE__ to indicate this situation or a macro __GNUC_GNU_INLINE__ to indicate the opposite situation. GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline semantics but warns, unless -fgnu89-inline is used: warning: C99 inline functions are not supported; using GNU89 warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */ #if (((defined __APPLE__ && defined __MACH__) \ || defined __DragonFly__ || defined __FreeBSD__) \ && (defined __header_inline \ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ && ! defined __clang__) \ : ((! defined _DONT_USE_CTYPE_INLINE_ \ && (defined __GNUC__ || defined __cplusplus)) \ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ && defined __GNUC__ && ! defined __cplusplus)))) # define _GL_EXTERN_INLINE_STDHEADER_BUG #endif #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ && !defined __PGI \ && !(defined __SUNPRO_C && __STDC__))) \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline # define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern # define _GL_EXTERN_INLINE_IN_USE #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED #endif /* In GCC 4.6 (inclusive) to 5.1 (exclusive), suppress bogus "no previous prototype for 'FOO'" and "no previous declaration for 'FOO'" diagnostics, when FOO is an inline function in the header; see and . */ #if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ _GL_INLINE_HEADER_CONST_PRAGMA # define _GL_INLINE_HEADER_END \ _Pragma ("GCC diagnostic pop") #else # define _GL_INLINE_HEADER_BEGIN # define _GL_INLINE_HEADER_END #endif /* Define to `int' if doesn't define. */ #undef gid_t /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to long or long long if and don't define. */ #undef intmax_t /* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. __APPLE__ && __MACH__ test for Mac OS X. __APPLE_CC__ tests for the Apple compiler and its version. __STDC_VERSION__ tests for the C99 mode. */ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif /* Define to a type if does not define. */ #undef mbstate_t /* Define to the real name of the mktime_internal function. */ #undef mktime_internal /* Define to `int' if does not define. */ #undef mode_t /* Define to the type of st_nlink in struct stat, or a supertype. */ #undef nlink_t /* Define to `int' if does not define. */ #undef pid_t /* Define as the type of the result of subtracting two pointers, if the system doesn't define it. */ #undef ptrdiff_t /* Define to rpl_re_comp if the replacement should be used. */ #undef re_comp /* Define to rpl_re_compile_fastmap if the replacement should be used. */ #undef re_compile_fastmap /* Define to rpl_re_compile_pattern if the replacement should be used. */ #undef re_compile_pattern /* Define to rpl_re_exec if the replacement should be used. */ #undef re_exec /* Define to rpl_re_match if the replacement should be used. */ #undef re_match /* Define to rpl_re_match_2 if the replacement should be used. */ #undef re_match_2 /* Define to rpl_re_search if the replacement should be used. */ #undef re_search /* Define to rpl_re_search_2 if the replacement should be used. */ #undef re_search_2 /* Define to rpl_re_set_registers if the replacement should be used. */ #undef re_set_registers /* Define to rpl_re_set_syntax if the replacement should be used. */ #undef re_set_syntax /* Define to rpl_re_syntax_options if the replacement should be used. */ #undef re_syntax_options /* Define to rpl_regcomp if the replacement should be used. */ #undef regcomp /* Define to rpl_regerror if the replacement should be used. */ #undef regerror /* Define to rpl_regexec if the replacement should be used. */ #undef regexec /* Define to rpl_regfree if the replacement should be used. */ #undef regfree /* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported directly. */ #undef restrict /* Work around a bug in Sun C++: it does not support _Restrict or __restrict__, even though the corresponding Sun C compiler ends up with "#define restrict _Restrict" or "#define restrict __restrict__" in the previous line. Perhaps some future version of Sun C++ will work with restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ #if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict # define __restrict__ #endif /* Define to `unsigned int' if does not define. */ #undef size_t /* type to use in place of socklen_t if not defined */ #undef socklen_t /* Define as a signed type of the same size as size_t. */ #undef ssize_t /* Define to `int' if doesn't define. */ #undef uid_t /* Define as a marker that can be attached to declarations that might not be used. This helps to reduce warnings, such as from GCC -Wunused-parameter. */ #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_UNUSED __attribute__ ((__unused__)) #else # define _GL_UNUSED #endif /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name is a misnomer outside of parameter lists. */ #define _UNUSED_PARAMETER_ _GL_UNUSED /* gcc supports the "unused" attribute on possibly unused labels, and g++ has since version 4.5. Note to support C++ as well as C, _GL_UNUSED_LABEL should be used with a trailing ; */ #if !defined __cplusplus || __GNUC__ > 4 \ || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) # define _GL_UNUSED_LABEL _GL_UNUSED #else # define _GL_UNUSED_LABEL #endif /* The __pure__ attribute was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The __const__ attribute was added in gcc 2.95. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) #else # define _GL_ATTRIBUTE_CONST /* empty */ #endif /* The __malloc__ attribute was added in gcc 3. */ #if 3 <= __GNUC__ # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) #else # define _GL_ATTRIBUTE_MALLOC /* empty */ #endif /* Define to an unsigned 32-bit type if lacks this type. */ #undef useconds_t libprelude-5.2.0/PaxHeaders.14770/client.conf.in0000644000000000000000000000011013726163410017375 xustar000000000000000024 mtime=1599661832.519 24 atime=1599661832.736 24 ctime=1599661998.505 libprelude-5.2.0/client.conf.in0000644000000000000000000000522613726163410016405 0ustar00rootroot00000000000000[prelude] # This is the default configuration for program client of a manager # (sensors and agents) that uses libprelude. # # Entry in this configuration file might be overriden by entry directly # provided by the sensors/agents configuration file. # Try to connect on a Manager listening on 127.0.0.1. # # server-addr = x.x.x.x:port || y.y.y.y && z.z.z.z # # This mean the emission should occur on x.x.x.x:port or, if it fail, # on y.y.y.y and z.z.z.z (if one of the two host in the AND fail, # the emission will be considered as failed involving saving the # message locally). server-addr = 127.0.0.1 # The following settings instruct the operating system when to consider # a connection dead in case sent data is left unacknowledged. # # These options are operating system specific, and might not work on # certain platform. In case you modify these settings on an unsupported # system, a warning message will be issued when the agent starts. # # Under Linux, the default system wide configuration is: # tcp-keepalive-time = 7200 # tcp-keepalive-probes = 9 # tcp-keepalive-intvl = 75 # # tcp-keepalive-time represents the number of seconds the connection # needs to be idle before TCP begins sending out keep-alive probes. # # tcp-keepalive-probes represents the number of not acknowledged probes # to send before considering the connection dead. # # tcp-keepalive-intvl represents the interval between subsequent # keepalive probes. # # The average time to notice a dead connection can be calculated using: # tcp-keepalive-time + (tcp-keepalive-probes * tcp-keepalive-intvl) # # Here is an example configuration: # tcp-keepalive-time = 60 # tcp-keepalive-probes = 3 # tcp-keepalive-intvl = 10 # # Using the above settings, a dead connection will be detected within # 90 seconds. # # TLS options (only available with GnuTLS 2.2.0 or higher): # # Sets priorities for the ciphers, key exchange methods, macs and # compression methods. # # "NORMAL" option enables all "secure" ciphersuites. The 256-bit # ciphers are included as a fallback only. The ciphers are sorted by # security margin. # # "SECURE128" flag enables all "secure" ciphersuites with ciphers up to # 128 bits, sorted by security margin. # # "SECURE256" flag enables all "secure" ciphersuites including the 256 # bit ciphers, sorted by security margin. # # "EXPORT" all the ciphersuites are enabled, including the low-security # 40 bit ciphers. # # "NONE" nothing is enabled. This disables even protocols and # compression methods. # # Note that much more settings might be enabled or disabled using this # option: please see gnutls_priority_init(3) for more details. # # The default settings is "NORMAL". # tls-options = NORMAL libprelude-5.2.0/PaxHeaders.14770/global.conf.in0000644000000000000000000000010713726163410017365 xustar000000000000000023 mtime=1599661832.53 24 atime=1599661832.739 24 ctime=1599661998.507 libprelude-5.2.0/global.conf.in0000644000000000000000000000504313726163410016364 0ustar00rootroot00000000000000[prelude] # This is the default configuration for all programs # (sensors, agents, and manager) using libprelude. # # Entry in this configuration file might be overriden by entry directly # provided by the respective program configuration file. # # Set heartbeat interval, the default value is 600 seconds (10 minutes). # # heartbeat-interval = 600 # # Optional data carried with alert/heartbeats. # # analyzer-name = Name for the analyzer # node-name = Name of the equipment # node-location = Location of the equipment # node-category = Type of node: # # unknown Domain unknown or not relevant # ads Windows 2000 Advanced Directory Services # afs Andrew File System (Transarc) # coda Coda Distributed File System # dfs Distributed File System (IBM) # dns Domain Name System # hosts Local hosts file # kerberos Kerberos realm # nds Novell Directory Services # nis Network Information Services (Sun) # nisplus Network Information Services Plus (Sun) # nt Windows NT domain # wfw Windows for Workgroups # Address contained by this node, # You may have several addresses. # # [Node-Address] # # address = Address of the equipment # netmask = Netmask for this address # vlan-name = Name of the Virtual LAN to which the address belongs # vlan-num = Number of the Virtual LAN to which the address belongs # # category = Type of address represented # # Permitted values for category are (default to unknown) : # # unknown Address type unknown # atm Asynchronous Transfer Mode network address # e-mail Electronic mail address (RFC 822) # lotus-notes Lotus Notes e-mail address # mac Media Access Control (MAC) address # sna IBM Shared Network Architecture (SNA) address # vm IBM VM ("PROFS") e-mail address # ipv4-addr IPv4 host address in dotted-decimal notation (a.b.c.d) # ipv4-addr-hex IPv4 host address in hexadecimal notation # ipv4-net IPv4 network address in dotted-decimal notation, slash, significant bits (a.b.c.d/nn) # ipv4-net-mask IPv4 network address in dotted-decimal notation, slash, network mask in dotted-decimal notation (a.b.c.d/w.x.y.z) # ipv6-addr IPv6 host address # ipv6-addr-hex IPv6 host address in hexadecimal notation # ipv6-net IPv6 network address, slash, significant bits # ipv6-net-mask IPv6 network address, slash, network mask libprelude-5.2.0/PaxHeaders.14770/idmef-client.conf.in0000644000000000000000000000010713726163410020465 xustar000000000000000024 mtime=1599661832.531 23 atime=1599661832.74 24 ctime=1599661998.508 libprelude-5.2.0/idmef-client.conf.in0000644000000000000000000000014613726163410017463 0ustar00rootroot00000000000000include = @PRELUDE_CONFIG_DIR@/default/global.conf include = @PRELUDE_CONFIG_DIR@/default/client.conf libprelude-5.2.0/PaxHeaders.14770/libprelude-config.in0000644000000000000000000000010713726163410020573 xustar000000000000000024 mtime=1599661832.658 24 atime=1599661832.773 23 ctime=1599661998.51 libprelude-5.2.0/libprelude-config.in0000644000000000000000000000415013726163410017570 0ustar00rootroot00000000000000#!/bin/sh prefix=@prefix@ prelude_conf_prefix=@PRELUDE_CONFIG_DIR@ exec_prefix=@exec_prefix@ exec_prefix_set=no cpp_set=no thread_set=yes want_libs=no want_cflags=no usage="\ Usage: libprelude-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--config-prefix] [--version] [--c++] [--libs] [--ldflags] [--cflags] [--pthread-cflags]" if test $# -eq 0; then echo "${usage}" 1>&2 exit 1 fi while test $# -gt 0; do case "$1" in -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac case $1 in --prefix=*) prefix=$optarg if test $exec_prefix_set = no ; then exec_prefix=$optarg fi ;; --prefix) echo $prefix ;; --exec-prefix=*) exec_prefix=$optarg exec_prefix_set=yes ;; --exec-prefix) echo $exec_prefix ;; --config-prefix) echo $prelude_conf_prefix ;; --version) echo @VERSION@ ;; --no-thread) thread_set=no ;; --thread) thread_set=yes ;; --cflags) want_cflags=yes ;; --pthread-cflags) thread_set=yes want_cflags=yes ;; --ldflags) ;; --c++) cpp_set=yes ;; --libs) want_libs=yes ;; *) echo "${usage}" 1>&2 exit 1 ;; esac shift done if test $want_cflags = yes; then flags="" if test @includedir@ != /usr/include ; then flags=-I@includedir@ fi if test $thread_set = yes; then flags=$flags fi echo @LIBPRELUDE_CFLAGS@ $flags fi if test $want_libs = yes; then libdirs=-L@libdir@ cpplibs="" if test $cpp_set = yes; then cpplibs="$libdirs -lpreludecpp" fi if test $thread_set = yes; then thrlibs="@LTLIBMULTITHREAD@" else thrlibs="@LTLIBTHREAD@" fi echo $cpplibs $libdirs -lprelude @LIBPRELUDE_LIBS@ @LIBLTDL_DECL@ @LIBADD_DL@ $thrlibs @GETADDRINFO_LIB@ @GETHOSTNAME_LIB@ @HOSTENT_LIB@ @INET_NTOP_LIB@ @INET_PTON_LIB@ @LIBSOCKET@ @LIB_POLL@ @LIB_SELECT@ @LTLIBINTL@ @SERVENT_LIB@ fi exit 0 libprelude-5.2.0/PaxHeaders.14770/prelude-config.h0000644000000000000000000000011013726163656017733 xustar000000000000000024 mtime=1599661998.108 24 atime=1599661998.074 24 ctime=1599661998.513 libprelude-5.2.0/prelude-config.h0000644000000000000000000000051213726163656016734 0ustar00rootroot00000000000000/* Used from libprelude headers */ #define HAVE_VARIADIC_MACROS 1 /* #undef PRELUDE_ALIGNED_ACCESS */ /* #undef PRELUDE_WORDS_BIGENDIAN */ #define __PRELUDE_FUNC__ __func__ #ifndef TIME_WITH_SYS_TIME #define TIME_WITH_SYS_TIME 1 #endif #ifndef HAVE_UID_T #define HAVE_UID_T 1 #endif #ifndef HAVE_GID_T #define HAVE_GID_T 1 #endif libprelude-5.2.0/PaxHeaders.14770/COPYING0000644000000000000000000000011013726163410015676 xustar000000000000000024 mtime=1599661832.484 24 atime=1599661832.719 24 ctime=1599661998.515 libprelude-5.2.0/COPYING0000644000000000000000000006363113726163410014712 0ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! libprelude-5.2.0/PaxHeaders.14770/ar-lib0000644000000000000000000000011013726163512015737 xustar000000000000000024 mtime=1599661898.683 24 atime=1599661898.683 24 ctime=1599661998.517 libprelude-5.2.0/ar-lib0000755000000000000000000001330213726163512014744 0ustar00rootroot00000000000000#! /bin/sh # Wrapper for Microsoft lib.exe me=ar-lib scriptversion=2012-03-01.08; # UTC # Copyright (C) 2010-2013 Free Software Foundation, Inc. # Written by Peter Rosin . # # 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # func_error message func_error () { echo "$me: $1" 1>&2 exit 1 } file_conv= # func_file_conv build_file # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv in mingw) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin) file=`cygpath -m "$file" || echo "$file"` ;; wine) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_at_file at_file operation archive # Iterate over all members in AT_FILE performing OPERATION on ARCHIVE # for each of them. # When interpreting the content of the @FILE, do NOT use func_file_conv, # since the user would need to supply preconverted file names to # binutils ar, at least for MinGW. func_at_file () { operation=$2 archive=$3 at_file_contents=`cat "$1"` eval set x "$at_file_contents" shift for member do $AR -NOLOGO $operation:"$member" "$archive" || exit $? done } case $1 in '') func_error "no command. Try '$0 --help' for more information." ;; -h | --h*) cat <. # # 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libprelude-5.2.0/PaxHeaders.14770/config.guess0000644000000000000000000000010713726163512017171 xustar000000000000000024 mtime=1599661898.688 24 atime=1599661903.182 23 ctime=1599661998.52 libprelude-5.2.0/config.guess0000755000000000000000000013036113726163512016175 0ustar00rootroot00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-06-10' # This file 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 3 of the License, 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, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches with a ChangeLog entry to config-patches@gnu.org. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ;; esac # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; or1k:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libprelude-5.2.0/PaxHeaders.14770/config.rpath0000644000000000000000000000010713726163410017156 xustar000000000000000023 mtime=1599661832.52 24 atime=1599661832.736 24 ctime=1599661998.522 libprelude-5.2.0/config.rpath0000755000000000000000000004421613726163410016165 0ustar00rootroot00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2018 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's _LT_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; mingw* | cygwin* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in ecc*) wl='-Wl,' ;; icc* | ifort*) wl='-Wl,' ;; lf95*) wl='-Wl,' ;; nagfor*) wl='-Wl,-Wl,,' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; xl* | bgxl* | bgf* | mpixl*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) wl= ;; *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; newsos6) ;; *nto* | *qnx*) ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) wl='-Qoption ld ' ;; *) wl='-Wl,' ;; esac ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's _LT_LINKER_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; haiku*) ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then : else ld_shlibs=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd2.[01]*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix[4-9]*) library_names_spec='$libname$shrext' ;; amigaos*) case "$host_cpu" in powerpc*) library_names_spec='$libname$shrext' ;; m68k) library_names_spec='$libname.a' ;; esac ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32* | cegcc*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd[23].*) library_names_spec='$libname$shrext$versuffix' ;; freebsd* | dragonfly*) library_names_spec='$libname$shrext' ;; gnu*) library_names_spec='$libname$shrext' ;; haiku*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; *nto* | *qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; tpf*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 \ | or1k | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or1k-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libprelude-5.2.0/PaxHeaders.14770/install-sh0000644000000000000000000000011013726163512016647 xustar000000000000000024 mtime=1599661898.693 24 atime=1599661898.693 24 ctime=1599661998.525 libprelude-5.2.0/install-sh0000755000000000000000000003325513726163512015665 0ustar00rootroot00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libprelude-5.2.0/PaxHeaders.14770/missing0000644000000000000000000000011013726163512016242 xustar000000000000000024 mtime=1599661898.695 24 atime=1599661903.285 24 ctime=1599661998.527 libprelude-5.2.0/missing0000755000000000000000000001533113726163512015253 0ustar00rootroot00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2012-06-26.16; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'automa4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libprelude-5.2.0/PaxHeaders.14770/ltmain.sh0000644000000000000000000000011013726163444016472 xustar000000000000000024 mtime=1599661860.559 24 atime=1599661947.302 24 ctime=1599661998.529 libprelude-5.2.0/ltmain.sh0000644000000000000000000105152213726163444015503 0ustar00rootroot00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION=2.4.2 TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 libprelude-5.2.0/PaxHeaders.14770/HACKING.README0000644000000000000000000000010713726163410016574 xustar000000000000000024 mtime=1599661832.485 24 atime=1599661832.719 23 ctime=1599661998.53 libprelude-5.2.0/HACKING.README0000644000000000000000000000151713726163410015575 0ustar00rootroot00000000000000This directory and its children contain LibPrelude, a library for using the Prelude framework. Changes: if you wish to contribute a change which is a significant one in terms of the amount of code changes, please be aware that CS GROUP - France wishes to retain copyright of the Prelude library. Therefore you will have to sign over copyright ownership of your code to CS GROUP - France before we can include your changes in the main source tree. Before you start modifying anything for real, you should probably join the prelude-devel mailing list and send a mail describing what you want to do and how you want to do it so you don't waste time working on something we can't integrate. This also allows us to keep track of what's being worked on so efforts aren't duplicated. Please also read the information in the file LICENSE.README. libprelude-5.2.0/PaxHeaders.14770/LICENSE.README0000644000000000000000000000011013726163410016604 xustar000000000000000024 mtime=1599661832.485 24 atime=1599661832.719 24 ctime=1599661998.532 libprelude-5.2.0/LICENSE.README0000644000000000000000000000074213726163410015612 0ustar00rootroot00000000000000This directory and its children contain LibPrelude, a library for using the Prelude framework. Copyright (C) 2005-2020 CS GROUP - France. All rights reserved. You may use LibPrelude under the terms of the LGPL v2.1, as appearing in the file COPYING. If the file COPYING is missing, you can obtain a copy of the LGPL v2.1 from the Free Software Foundation Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. Please also read the information in the file HACKING.README. libprelude-5.2.0/PaxHeaders.14770/tls.conf0000644000000000000000000000011013726163410016314 xustar000000000000000024 mtime=1599661832.709 24 atime=1599661832.794 24 ctime=1599661998.534 libprelude-5.2.0/tls.conf0000644000000000000000000000112013726163410015311 0ustar00rootroot00000000000000# # Default size of the client/server generated private key # generated-key-size = 2048 # # Number of days the authority certificates (server side) will # remain valid. These certificates are only used in order to # sign client certificate. # # Use 0 for the maximum possible value. # authority-certificate-lifetime = 0 # # Number of days the generated certificates (client side) will # remain valid. These certificates are only used in order to # authenticate and encrypt client <-> server communication. # # Use 0 for the maximum possible value. # generated-certificate-lifetime = 0 libprelude-5.2.0/PaxHeaders.14770/libltdl0000644000000000000000000000011013726163656016230 xustar000000000000000024 mtime=1599661998.662 24 atime=1599662006.649 24 ctime=1599661998.662 libprelude-5.2.0/libltdl/0000755000000000000000000000000013726163656015310 5ustar00rootroot00000000000000libprelude-5.2.0/libltdl/PaxHeaders.14770/libltdl0000644000000000000000000000011013726163656017656 xustar000000000000000024 mtime=1599661998.629 24 atime=1599662006.649 24 ctime=1599661998.629 libprelude-5.2.0/libltdl/libltdl/0000755000000000000000000000000013726163656016736 5ustar00rootroot00000000000000libprelude-5.2.0/libltdl/libltdl/PaxHeaders.14770/lt_system.h0000644000000000000000000000011013726163453022122 xustar000000000000000024 mtime=1599661867.972 24 atime=1599661867.972 24 ctime=1599661998.597 libprelude-5.2.0/libltdl/libltdl/lt_system.h0000644000000000000000000001237313726163453021133 0ustar00rootroot00000000000000/* lt_system.h -- system portability abstraction layer Copyright (C) 2004, 2007, 2010 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #if !defined(LT_SYSTEM_H) #define LT_SYSTEM_H 1 #include #include #include /* Some systems do not define EXIT_*, even with STDC_HEADERS. */ #if !defined(EXIT_SUCCESS) # define EXIT_SUCCESS 0 #endif #if !defined(EXIT_FAILURE) # define EXIT_FAILURE 1 #endif /* Just pick a big number... */ #define LT_FILENAME_MAX 2048 /* Saves on those hard to debug '\0' typos.... */ #define LT_EOS_CHAR '\0' /* LTDL_BEGIN_C_DECLS should be used at the beginning of your declarations, so that C++ compilers don't mangle their names. Use LTDL_END_C_DECLS at the end of C declarations. */ #if defined(__cplusplus) # define LT_BEGIN_C_DECLS extern "C" { # define LT_END_C_DECLS } #else # define LT_BEGIN_C_DECLS /* empty */ # define LT_END_C_DECLS /* empty */ #endif /* LT_STMT_START/END are used to create macros which expand to a a single compound statement in a portable way. */ #if defined (__GNUC__) && !defined (__STRICT_ANSI__) && !defined (__cplusplus) # define LT_STMT_START (void)( # define LT_STMT_END ) #else # if (defined (sun) || defined (__sun__)) # define LT_STMT_START if (1) # define LT_STMT_END else (void)0 # else # define LT_STMT_START do # define LT_STMT_END while (0) # endif #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* Canonicalise Windows and Cygwin recognition macros. To match the values set by recent Cygwin compilers, make sure that if __CYGWIN__ is defined (after canonicalisation), __WINDOWS__ is NOT! */ #if defined(__CYGWIN32__) && !defined(__CYGWIN__) # define __CYGWIN__ __CYGWIN32__ #endif #if defined(__CYGWIN__) # if defined(__WINDOWS__) # undef __WINDOWS__ # endif #elif defined(_WIN32) # define __WINDOWS__ _WIN32 #elif defined(WIN32) # define __WINDOWS__ WIN32 #endif #if defined(__CYGWIN__) && defined(__WINDOWS__) # undef __WINDOWS__ #endif /* DLL building support on win32 hosts; mostly to workaround their ridiculous implementation of data symbol exporting. */ #if !defined(LT_SCOPE) # if defined(__WINDOWS__) || defined(__CYGWIN__) # if defined(DLL_EXPORT) /* defined by libtool (if required) */ # define LT_SCOPE extern __declspec(dllexport) # endif # if defined(LIBLTDL_DLL_IMPORT) /* define if linking with this dll */ /* note: cygwin/mingw compilers can rely instead on auto-import */ # define LT_SCOPE extern __declspec(dllimport) # endif # endif # if !defined(LT_SCOPE) /* static linking or !__WINDOWS__ */ # define LT_SCOPE extern # endif #endif #if defined(__WINDOWS__) /* LT_DIRSEP_CHAR is accepted *in addition* to '/' as a directory separator when it is set. */ # define LT_DIRSEP_CHAR '\\' # define LT_PATHSEP_CHAR ';' #else # define LT_PATHSEP_CHAR ':' #endif #if defined(_MSC_VER) /* Visual Studio */ # define R_OK 4 #endif /* fopen() mode flags for reading a text file */ #undef LT_READTEXT_MODE #if defined(__WINDOWS__) || defined(__CYGWIN__) # define LT_READTEXT_MODE "rt" #else # define LT_READTEXT_MODE "r" #endif /* The extra indirection to the LT__STR and LT__CONC macros is required so that if the arguments to LT_STR() (or LT_CONC()) are themselves macros, they will be expanded before being quoted. */ #ifndef LT_STR # define LT__STR(arg) #arg # define LT_STR(arg) LT__STR(arg) #endif #ifndef LT_CONC # define LT__CONC(a, b) a##b # define LT_CONC(a, b) LT__CONC(a, b) #endif #ifndef LT_CONC3 # define LT__CONC3(a, b, c) a##b##c # define LT_CONC3(a, b, c) LT__CONC3(a, b, c) #endif #endif /*!defined(LT_SYSTEM_H)*/ libprelude-5.2.0/libltdl/libltdl/PaxHeaders.14770/lt_error.h0000644000000000000000000000010413726163453021732 xustar000000000000000023 mtime=1599661867.95 23 atime=1599661867.95 22 ctime=1599661998.6 libprelude-5.2.0/libltdl/libltdl/lt_error.h0000644000000000000000000000707213726163453020740 0ustar00rootroot00000000000000/* lt_error.h -- error propogation interface Copyright (C) 1999, 2000, 2001, 2004, 2007 Free Software Foundation, Inc. Written by Thomas Tanner, 1999 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Only include this header file once. */ #if !defined(LT_ERROR_H) #define LT_ERROR_H 1 #include LT_BEGIN_C_DECLS /* Defining error strings alongside their symbolic names in a macro in this way allows us to expand the macro in different contexts with confidence that the enumeration of symbolic names will map correctly onto the table of error strings. \0 is appended to the strings to expilicitely initialize the string terminator. */ #define lt_dlerror_table \ LT_ERROR(UNKNOWN, "unknown error\0") \ LT_ERROR(DLOPEN_NOT_SUPPORTED, "dlopen support not available\0") \ LT_ERROR(INVALID_LOADER, "invalid loader\0") \ LT_ERROR(INIT_LOADER, "loader initialization failed\0") \ LT_ERROR(REMOVE_LOADER, "loader removal failed\0") \ LT_ERROR(FILE_NOT_FOUND, "file not found\0") \ LT_ERROR(DEPLIB_NOT_FOUND, "dependency library not found\0") \ LT_ERROR(NO_SYMBOLS, "no symbols defined\0") \ LT_ERROR(CANNOT_OPEN, "can't open the module\0") \ LT_ERROR(CANNOT_CLOSE, "can't close the module\0") \ LT_ERROR(SYMBOL_NOT_FOUND, "symbol not found\0") \ LT_ERROR(NO_MEMORY, "not enough memory\0") \ LT_ERROR(INVALID_HANDLE, "invalid module handle\0") \ LT_ERROR(BUFFER_OVERFLOW, "internal buffer overflow\0") \ LT_ERROR(INVALID_ERRORCODE, "invalid errorcode\0") \ LT_ERROR(SHUTDOWN, "library already shutdown\0") \ LT_ERROR(CLOSE_RESIDENT_MODULE, "can't close resident module\0") \ LT_ERROR(INVALID_MUTEX_ARGS, "internal error (code withdrawn)\0")\ LT_ERROR(INVALID_POSITION, "invalid search path insert position\0")\ LT_ERROR(CONFLICTING_FLAGS, "symbol visibility can be global or local\0") /* Enumerate the symbolic error names. */ enum { #define LT_ERROR(name, diagnostic) LT_CONC(LT_ERROR_, name), lt_dlerror_table #undef LT_ERROR LT_ERROR_MAX }; /* Should be max of the error string lengths above (plus one for C++) */ #define LT_ERROR_LEN_MAX (41) /* These functions are only useful from inside custom module loaders. */ LT_SCOPE int lt_dladderror (const char *diagnostic); LT_SCOPE int lt_dlseterror (int errorcode); LT_END_C_DECLS #endif /*!defined(LT_ERROR_H)*/ libprelude-5.2.0/libltdl/libltdl/PaxHeaders.14770/lt_dlloader.h0000644000000000000000000000011013726163453022364 xustar000000000000000024 mtime=1599661867.929 24 atime=1599661867.929 24 ctime=1599661998.602 libprelude-5.2.0/libltdl/libltdl/lt_dlloader.h0000644000000000000000000000620013726163453021365 0ustar00rootroot00000000000000/* lt_dlloader.h -- dynamic library loader interface Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #if !defined(LT_DLLOADER_H) #define LT_DLLOADER_H 1 #include LT_BEGIN_C_DECLS typedef void * lt_dlloader; typedef void * lt_module; typedef void * lt_user_data; typedef struct lt__advise * lt_dladvise; /* Function pointer types for module loader vtable entries: */ typedef lt_module lt_module_open (lt_user_data data, const char *filename, lt_dladvise advise); typedef int lt_module_close (lt_user_data data, lt_module module); typedef void * lt_find_sym (lt_user_data data, lt_module module, const char *symbolname); typedef int lt_dlloader_init (lt_user_data data); typedef int lt_dlloader_exit (lt_user_data data); /* Default priority is LT_DLLOADER_PREPEND if none is explicitly given. */ typedef enum { LT_DLLOADER_PREPEND = 0, LT_DLLOADER_APPEND } lt_dlloader_priority; /* This structure defines a module loader, as populated by the get_vtable entry point of each loader. */ typedef struct { const char * name; const char * sym_prefix; lt_module_open * module_open; lt_module_close * module_close; lt_find_sym * find_sym; lt_dlloader_init * dlloader_init; lt_dlloader_exit * dlloader_exit; lt_user_data dlloader_data; lt_dlloader_priority priority; } lt_dlvtable; LT_SCOPE int lt_dlloader_add (const lt_dlvtable *vtable); LT_SCOPE lt_dlloader lt_dlloader_next (const lt_dlloader loader); LT_SCOPE lt_dlvtable * lt_dlloader_remove (const char *name); LT_SCOPE const lt_dlvtable *lt_dlloader_find (const char *name); LT_SCOPE const lt_dlvtable *lt_dlloader_get (lt_dlloader loader); /* Type of a function to get a loader's vtable: */ typedef const lt_dlvtable *lt_get_vtable (lt_user_data data); #ifdef LT_DEBUG_LOADERS LT_SCOPE void lt_dlloader_dump (void); #endif LT_END_C_DECLS #endif /*!defined(LT_DLLOADER_H)*/ libprelude-5.2.0/libltdl/libltdl/PaxHeaders.14770/lt__alloc.h0000644000000000000000000000011013726163453022027 xustar000000000000000024 mtime=1599661867.822 24 atime=1599661867.822 24 ctime=1599661998.617 libprelude-5.2.0/libltdl/libltdl/lt__alloc.h0000644000000000000000000000422313726163453021033 0ustar00rootroot00000000000000/* lt__alloc.h -- internal memory management interface Copyright (C) 2004 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #if !defined(LT__ALLOC_H) #define LT__ALLOC_H 1 #include "lt_system.h" LT_BEGIN_C_DECLS #define MALLOC(tp, n) (tp*) lt__malloc((n) * sizeof(tp)) #define REALLOC(tp, mem, n) (tp*) lt__realloc((mem), (n) * sizeof(tp)) #define FREE(mem) LT_STMT_START { \ if (mem) { free ((void *)mem); mem = NULL; } } LT_STMT_END #define MEMREASSIGN(p, q) LT_STMT_START { \ if ((p) != (q)) { if (p) free (p); (p) = (q); (q) = 0; } \ } LT_STMT_END /* If set, this function is called when memory allocation has failed. */ LT_SCOPE void (*lt__alloc_die) (void); LT_SCOPE void *lt__malloc (size_t n); LT_SCOPE void *lt__zalloc (size_t n); LT_SCOPE void *lt__realloc (void *mem, size_t n); LT_SCOPE void *lt__memdup (void const *mem, size_t n); LT_SCOPE char *lt__strdup (const char *string); LT_END_C_DECLS #endif /*!defined(LT__ALLOC_H)*/ libprelude-5.2.0/libltdl/libltdl/PaxHeaders.14770/lt__dirent.h0000644000000000000000000000011013726163453022222 xustar000000000000000024 mtime=1599661867.843 24 atime=1599661867.843 24 ctime=1599661998.619 libprelude-5.2.0/libltdl/libltdl/lt__dirent.h0000644000000000000000000000472413726163453021234 0ustar00rootroot00000000000000/* lt__dirent.h -- internal directory entry scanning interface Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc. Written by Bob Friesenhahn, 2001 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #if !defined(LT__DIRENT_H) #define LT__DIRENT_H 1 #if defined(LT_CONFIG_H) # include LT_CONFIG_H #else # include #endif #include "lt_system.h" #ifdef HAVE_DIRENT_H /* We have a fully operational dirent subsystem. */ # include # define D_NAMLEN(dirent) (strlen((dirent)->d_name)) #elif defined __WINDOWS__ /* Use some wrapper code to emulate dirent on windows.. */ # define WINDOWS_DIRENT_EMULATION 1 # include # define D_NAMLEN(dirent) (strlen((dirent)->d_name)) # define dirent lt__dirent # define DIR lt__DIR # define opendir lt__opendir # define readdir lt__readdir # define closedir lt__closedir LT_BEGIN_C_DECLS struct dirent { char d_name[LT_FILENAME_MAX]; int d_namlen; }; typedef struct { HANDLE hSearch; WIN32_FIND_DATA Win32FindData; BOOL firsttime; struct dirent file_info; } DIR; LT_SCOPE DIR * opendir (const char *path); LT_SCOPE struct dirent *readdir (DIR *entry); LT_SCOPE void closedir (DIR *entry); LT_END_C_DECLS #else /* !defined(__WINDOWS__)*/ ERROR - cannot find dirent #endif /*!defined(__WINDOWS__)*/ #endif /*!defined(LT__DIRENT_H)*/ libprelude-5.2.0/libltdl/libltdl/PaxHeaders.14770/lt__glibc.h0000644000000000000000000000011013726163453022015 xustar000000000000000024 mtime=1599661867.864 24 atime=1599661867.864 24 ctime=1599661998.622 libprelude-5.2.0/libltdl/libltdl/lt__glibc.h0000644000000000000000000000524013726163453021021 0ustar00rootroot00000000000000/* lt__glibc.h -- support for non glibc environments Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #if !defined(LT__GLIBC_H) #define LT__GLIBC_H 1 #if defined(LT_CONFIG_H) # include LT_CONFIG_H #else # include #endif #if !defined(HAVE_ARGZ_H) || !defined(HAVE_WORKING_ARGZ) /* Redefine any glibc symbols we reimplement to import the implementations into our lt__ namespace so we don't ever clash with the system library if our clients use argz_* from there in addition to libltdl. */ # undef argz_append # define argz_append lt__argz_append # undef argz_create_sep # define argz_create_sep lt__argz_create_sep # undef argz_insert # define argz_insert lt__argz_insert # undef argz_next # define argz_next lt__argz_next # undef argz_stringify # define argz_stringify lt__argz_stringify #endif #ifdef __cplusplus extern "C" { #endif #include #ifdef __cplusplus } #endif # define slist_concat lt__slist_concat # define slist_cons lt__slist_cons # define slist_delete lt__slist_delete # define slist_remove lt__slist_remove # define slist_reverse lt__slist_reverse # define slist_sort lt__slist_sort # define slist_tail lt__slist_tail # define slist_nth lt__slist_nth # define slist_find lt__slist_find # define slist_length lt__slist_length # define slist_foreach lt__slist_foreach # define slist_box lt__slist_box # define slist_unbox lt__slist_unbox #include #endif /*!defined(LT__GLIBC_H)*/ libprelude-5.2.0/libltdl/libltdl/PaxHeaders.14770/lt__private.h0000644000000000000000000000011013726163453022407 xustar000000000000000024 mtime=1599661867.886 24 atime=1599661867.886 24 ctime=1599661998.624 libprelude-5.2.0/libltdl/libltdl/lt__private.h0000644000000000000000000001065013726163453021414 0ustar00rootroot00000000000000/* lt__private.h -- internal apis for libltdl Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy con be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #if !defined(LT__PRIVATE_H) #define LT__PRIVATE_H 1 #if defined(LT_CONFIG_H) # include LT_CONFIG_H #else # include #endif #include #include #include #include #include #if defined(HAVE_UNISTD_H) # include #endif /* Import internal interfaces... */ #include "lt__alloc.h" #include "lt__dirent.h" #include "lt__strl.h" #include "lt__glibc.h" /* ...and all exported interfaces. */ #include "ltdl.h" #if defined(WITH_DMALLOC) # include #endif /* DLL building support on win32 hosts; mostly to workaround their ridiculous implementation of data symbol exporting. */ #ifndef LT_GLOBAL_DATA # if defined(__WINDOWS__) || defined(__CYGWIN__) # if defined(DLL_EXPORT) /* defined by libtool (if required) */ # define LT_GLOBAL_DATA __declspec(dllexport) # endif # endif # ifndef LT_GLOBAL_DATA # define LT_GLOBAL_DATA /* static linking or !__WINDOWS__ */ # endif #endif #ifndef __attribute__ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ # define __attribute__(x) # endif #endif #ifndef LT__UNUSED # define LT__UNUSED __attribute__ ((__unused__)) #endif LT_BEGIN_C_DECLS #if !defined(errno) extern int errno; #endif LT_SCOPE void lt__alloc_die_callback (void); /* For readability: */ #define strneq(s1, s2) (strcmp((s1), (s2)) != 0) #define streq(s1, s2) (!strcmp((s1), (s2))) /* --- OPAQUE STRUCTURES DECLARED IN LTDL.H --- */ /* This type is used for the array of interface data sets in each handler. */ typedef struct { lt_dlinterface_id key; void * data; } lt_interface_data; struct lt__handle { lt_dlhandle next; const lt_dlvtable * vtable; /* dlopening interface */ lt_dlinfo info; /* user visible fields */ int depcount; /* number of dependencies */ lt_dlhandle * deplibs; /* dependencies */ lt_module module; /* system module handle */ void * system; /* system specific data */ lt_interface_data * interface_data; /* per caller associated data */ int flags; /* various boolean stats */ }; struct lt__advise { unsigned int try_ext:1; /* try system library extensions. */ unsigned int is_resident:1; /* module can't be unloaded. */ unsigned int is_symglobal:1; /* module symbols can satisfy subsequently loaded modules. */ unsigned int is_symlocal:1; /* module symbols are only available locally. */ unsigned int try_preload_only:1;/* only preloaded modules will be tried. */ }; /* --- ERROR HANDLING --- */ /* Extract the diagnostic strings from the error table macro in the same order as the enumerated indices in lt_error.h. */ #define LT__STRERROR(name) lt__error_string(LT_CONC(LT_ERROR_,name)) #define LT__GETERROR(lvalue) (lvalue) = lt__get_last_error() #define LT__SETERRORSTR(errormsg) lt__set_last_error(errormsg) #define LT__SETERROR(errorcode) LT__SETERRORSTR(LT__STRERROR(errorcode)) LT_SCOPE const char *lt__error_string (int errorcode); LT_SCOPE const char *lt__get_last_error (void); LT_SCOPE const char *lt__set_last_error (const char *errormsg); LT_END_C_DECLS #endif /*!defined(LT__PRIVATE_H)*/ libprelude-5.2.0/libltdl/libltdl/PaxHeaders.14770/lt__strl.h0000644000000000000000000000011013726163453021721 xustar000000000000000024 mtime=1599661867.908 24 atime=1599661867.908 24 ctime=1599661998.627 libprelude-5.2.0/libltdl/libltdl/lt__strl.h0000644000000000000000000000370013726163453020724 0ustar00rootroot00000000000000/* lt__strl.h -- size-bounded string copying and concatenation Copyright (C) 2004, 2006 Free Software Foundation, Inc. Written by Bob Friesenhahn, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #if !defined(LT__STRL_H) #define LT__STRL_H 1 #if defined(LT_CONFIG_H) # include LT_CONFIG_H #else # include #endif #include #include "lt_system.h" #if !defined(HAVE_STRLCAT) # define strlcat(dst,src,dstsize) lt_strlcat(dst,src,dstsize) LT_SCOPE size_t lt_strlcat(char *dst, const char *src, const size_t dstsize); #endif /* !defined(HAVE_STRLCAT) */ #if !defined(HAVE_STRLCPY) # define strlcpy(dst,src,dstsize) lt_strlcpy(dst,src,dstsize) LT_SCOPE size_t lt_strlcpy(char *dst, const char *src, const size_t dstsize); #endif /* !defined(HAVE_STRLCPY) */ #endif /*!defined(LT__STRL_H)*/ libprelude-5.2.0/libltdl/libltdl/PaxHeaders.14770/slist.h0000644000000000000000000000011013726163453021235 xustar000000000000000024 mtime=1599661867.993 24 atime=1599661867.993 24 ctime=1599661998.629 libprelude-5.2.0/libltdl/libltdl/slist.h0000644000000000000000000000623113726163453020242 0ustar00rootroot00000000000000/* slist.h -- generalised singly linked lists Copyright (C) 2000, 2004, 2009 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2000 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* A generalised list. This is deliberately transparent so that you can make the NEXT field of all your chained data structures first, and then cast them to `(SList *)' so that they can be manipulated by this API. Alternatively, you can generate raw SList elements using slist_new(), and put the element data in the USERDATA field. Either way you get to manage the memory involved by yourself. */ #if !defined(SLIST_H) #define SLIST_H 1 #if defined(LTDL) # include # include #else # define LT_SCOPE #endif #include #if defined(__cplusplus) extern "C" { #endif typedef struct slist { struct slist *next; /* chain forward pointer*/ const void *userdata; /* for boxed `SList' item */ } SList; typedef void * SListCallback (SList *item, void *userdata); typedef int SListCompare (const SList *item1, const SList *item2, void *userdata); LT_SCOPE SList *slist_concat (SList *head, SList *tail); LT_SCOPE SList *slist_cons (SList *item, SList *slist); LT_SCOPE SList *slist_delete (SList *slist, void (*delete_fct) (void *item)); LT_SCOPE SList *slist_remove (SList **phead, SListCallback *find, void *matchdata); LT_SCOPE SList *slist_reverse (SList *slist); LT_SCOPE SList *slist_sort (SList *slist, SListCompare *compare, void *userdata); LT_SCOPE SList *slist_tail (SList *slist); LT_SCOPE SList *slist_nth (SList *slist, size_t n); LT_SCOPE void * slist_find (SList *slist, SListCallback *find, void *matchdata); LT_SCOPE size_t slist_length (SList *slist); LT_SCOPE void * slist_foreach (SList *slist, SListCallback *foreach, void *userdata); LT_SCOPE SList *slist_box (const void *userdata); LT_SCOPE void * slist_unbox (SList *item); #if defined(__cplusplus) } #endif #if !defined(LTDL) # undef LT_SCOPE #endif #endif /*!defined(SLIST_H)*/ libprelude-5.2.0/libltdl/PaxHeaders.14770/loaders0000644000000000000000000000011013726163656017661 xustar000000000000000024 mtime=1599661998.652 24 atime=1599662006.649 24 ctime=1599661998.652 libprelude-5.2.0/libltdl/loaders/0000755000000000000000000000000013726163656016741 5ustar00rootroot00000000000000libprelude-5.2.0/libltdl/loaders/PaxHeaders.14770/dld_link.c0000644000000000000000000000011013726163450021652 xustar000000000000000024 mtime=1599661864.681 24 atime=1599661864.681 24 ctime=1599661998.609 libprelude-5.2.0/libltdl/loaders/dld_link.c0000644000000000000000000001075313726163450020663 0ustar00rootroot00000000000000/* loader-dld_link.c -- dynamic linking with dld Copyright (C) 1998, 1999, 2000, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable dld_link_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = lt__zalloc (sizeof *vtable); } if (vtable && !vtable->name) { vtable->name = "lt_dld_link"; vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_APPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ #if defined(HAVE_DLD_H) # include #endif /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data LT__UNUSED loader_data) { vtable = NULL; return 0; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data LT__UNUSED loader_data, const char *filename, lt_dladvise LT__UNUSED advise) { lt_module module = lt__strdup (filename); if (module && dld_link (filename) != 0) { LT__SETERROR (CANNOT_OPEN); FREE (module); } return module; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data LT__UNUSED loader_data, lt_module module) { int errors = 0; if (dld_unlink_by_file ((char*)(module), 1) != 0) { LT__SETERROR (CANNOT_CLOSE); ++errors; } else { FREE (module); } return errors; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data LT__UNUSED loader_data, lt_module LT__UNUSED module, const char *name) { void *address = dld_get_func (name); if (!address) { LT__SETERROR (SYMBOL_NOT_FOUND); } return address; } libprelude-5.2.0/libltdl/loaders/PaxHeaders.14770/dlopen.c0000644000000000000000000000011013726163450021353 xustar000000000000000024 mtime=1599661864.695 24 atime=1599661864.695 24 ctime=1599661998.612 libprelude-5.2.0/libltdl/loaders/dlopen.c0000644000000000000000000001434113726163450020361 0ustar00rootroot00000000000000/* loader-dlopen.c -- dynamic linking with dlopen/dlsym Copyright (C) 1998, 1999, 2000, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable dlopen_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable); } if (vtable && !vtable->name) { vtable->name = "lt_dlopen"; #if defined(DLSYM_USCORE) vtable->sym_prefix = "_"; #endif vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_PREPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ #if defined(HAVE_DLFCN_H) # include #endif #if defined(HAVE_SYS_DL_H) # include #endif /* We may have to define LT_LAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #if !defined(LT_LAZY_OR_NOW) # if defined(RTLD_LAZY) # define LT_LAZY_OR_NOW RTLD_LAZY # else # if defined(DL_LAZY) # define LT_LAZY_OR_NOW DL_LAZY # endif # endif /* !RTLD_LAZY */ #endif #if !defined(LT_LAZY_OR_NOW) # if defined(RTLD_NOW) # define LT_LAZY_OR_NOW RTLD_NOW # else # if defined(DL_NOW) # define LT_LAZY_OR_NOW DL_NOW # endif # endif /* !RTLD_NOW */ #endif #if !defined(LT_LAZY_OR_NOW) # define LT_LAZY_OR_NOW 0 #endif /* !LT_LAZY_OR_NOW */ /* We only support local and global symbols from modules for loaders that provide such a thing, otherwise the system default is used. */ #if !defined(RTLD_GLOBAL) # if defined(DL_GLOBAL) # define RTLD_GLOBAL DL_GLOBAL # endif #endif /* !RTLD_GLOBAL */ #if !defined(RTLD_LOCAL) # if defined(DL_LOCAL) # define RTLD_LOCAL DL_LOCAL # endif #endif /* !RTLD_LOCAL */ #if defined(HAVE_DLERROR) # define DLERROR(arg) dlerror () #else # define DLERROR(arg) LT__STRERROR (arg) #endif #define DL__SETERROR(errorcode) \ LT__SETERRORSTR (DLERROR (errorcode)) /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data LT__UNUSED loader_data) { vtable = NULL; return 0; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data LT__UNUSED loader_data, const char *filename, lt_dladvise advise) { int module_flags = LT_LAZY_OR_NOW; lt_module module; if (advise) { #ifdef RTLD_GLOBAL /* If there is some means of asking for global symbol resolution, do so. */ if (advise->is_symglobal) module_flags |= RTLD_GLOBAL; #else /* Otherwise, reset that bit so the caller can tell it wasn't acted on. */ advise->is_symglobal = 0; #endif /* And similarly for local only symbol resolution. */ #ifdef RTLD_LOCAL if (advise->is_symlocal) module_flags |= RTLD_LOCAL; #else advise->is_symlocal = 0; #endif } module = dlopen (filename, module_flags); if (!module) { DL__SETERROR (CANNOT_OPEN); } return module; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data LT__UNUSED loader_data, lt_module module) { int errors = 0; if (dlclose (module) != 0) { DL__SETERROR (CANNOT_CLOSE); ++errors; } return errors; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data LT__UNUSED loader_data, lt_module module, const char *name) { void *address = dlsym (module, name); if (!address) { DL__SETERROR (SYMBOL_NOT_FOUND); } return address; } libprelude-5.2.0/libltdl/loaders/PaxHeaders.14770/dyld.c0000644000000000000000000000011013726163450021026 xustar000000000000000024 mtime=1599661864.709 24 atime=1599661864.709 24 ctime=1599661998.614 libprelude-5.2.0/libltdl/loaders/dyld.c0000644000000000000000000003253613726163450020042 0ustar00rootroot00000000000000/* loader-dyld.c -- dynamic linking on darwin and OS X Copyright (C) 1998, 1999, 2000, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. Written by Peter O'Gorman, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable dyld_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_init (lt_user_data loader_data); static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = lt__zalloc (sizeof *vtable); } if (vtable && !vtable->name) { vtable->name = "lt_dyld"; vtable->sym_prefix = "_"; vtable->dlloader_init = vl_init; vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_APPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ #if defined(HAVE_MACH_O_DYLD_H) # if !defined(__APPLE_CC__) && !defined(__MWERKS__) && !defined(__private_extern__) /* Is this correct? Does it still function properly? */ # define __private_extern__ extern # endif # include #endif #include /* We have to put some stuff here that isn't in older dyld.h files */ #if !defined(ENUM_DYLD_BOOL) # define ENUM_DYLD_BOOL # undef FALSE # undef TRUE enum DYLD_BOOL { FALSE, TRUE }; #endif #if !defined(LC_REQ_DYLD) # define LC_REQ_DYLD 0x80000000 #endif #if !defined(LC_LOAD_WEAK_DYLIB) # define LC_LOAD_WEAK_DYLIB (0x18 | LC_REQ_DYLD) #endif #if !defined(NSADDIMAGE_OPTION_NONE) # define NSADDIMAGE_OPTION_NONE 0x0 #endif #if !defined(NSADDIMAGE_OPTION_RETURN_ON_ERROR) # define NSADDIMAGE_OPTION_RETURN_ON_ERROR 0x1 #endif #if !defined(NSADDIMAGE_OPTION_WITH_SEARCHING) # define NSADDIMAGE_OPTION_WITH_SEARCHING 0x2 #endif #if !defined(NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED) # define NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED 0x4 #endif #if !defined(NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME) # define NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME 0x8 #endif #if !defined(NSLOOKUPSYMBOLINIMAGE_OPTION_BIND) # define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND 0x0 #endif #if !defined(NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW) # define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW 0x1 #endif #if !defined(NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY) # define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY 0x2 #endif #if !defined(NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR) # define NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR 0x4 #endif #define LT__SYMLOOKUP_OPTS (NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW \ | NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR) #if defined(__BIG_ENDIAN__) # define LT__MAGIC MH_MAGIC #else # define LT__MAGIC MH_CIGAM #endif #define DYLD__SETMYERROR(errmsg) LT__SETERRORSTR (dylderror (errmsg)) #define DYLD__SETERROR(errcode) DYLD__SETMYERROR (LT__STRERROR (errcode)) typedef struct mach_header mach_header; typedef struct dylib_command dylib_command; static const char *dylderror (const char *errmsg); static const mach_header *lt__nsmodule_get_header (NSModule module); static const char *lt__header_get_instnam (const mach_header *mh); static const mach_header *lt__match_loadedlib (const char *name); static NSSymbol lt__linkedlib_symbol (const char *symname, const mach_header *mh); static const mach_header *(*lt__addimage) (const char *image_name, unsigned long options) = 0; static NSSymbol (*lt__image_symbol) (const mach_header *image, const char *symbolName, unsigned long options) = 0; static enum DYLD_BOOL (*lt__image_symbol_p) (const mach_header *image, const char *symbolName) = 0; static enum DYLD_BOOL (*lt__module_export) (NSModule module) = 0; static int dyld_cannot_close = 0; /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data LT__UNUSED loader_data) { vtable = NULL; return 0; } /* A function called through the vtable to initialise this loader. */ static int vl_init (lt_user_data loader_data) { int errors = 0; if (! dyld_cannot_close) { if (!_dyld_present ()) { ++errors; } else { (void) _dyld_func_lookup ("__dyld_NSAddImage", (unsigned long*) <__addimage); (void) _dyld_func_lookup ("__dyld_NSLookupSymbolInImage", (unsigned long*)<__image_symbol); (void) _dyld_func_lookup ("__dyld_NSIsSymbolNameDefinedInImage", (unsigned long*) <__image_symbol_p); (void) _dyld_func_lookup ("__dyld_NSMakePrivateModulePublic", (unsigned long*) <__module_export); dyld_cannot_close = lt_dladderror ("can't close a dylib"); } } return errors; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise LT__UNUSED advise) { lt_module module = 0; NSObjectFileImage ofi = 0; if (!filename) { return (lt_module) -1; } switch (NSCreateObjectFileImageFromFile (filename, &ofi)) { case NSObjectFileImageSuccess: module = NSLinkModule (ofi, filename, NSLINKMODULE_OPTION_RETURN_ON_ERROR | NSLINKMODULE_OPTION_PRIVATE | NSLINKMODULE_OPTION_BINDNOW); NSDestroyObjectFileImage (ofi); if (module) { lt__module_export (module); } break; case NSObjectFileImageInappropriateFile: if (lt__image_symbol_p && lt__image_symbol) { module = (lt_module) lt__addimage(filename, NSADDIMAGE_OPTION_RETURN_ON_ERROR); } break; case NSObjectFileImageFailure: case NSObjectFileImageArch: case NSObjectFileImageFormat: case NSObjectFileImageAccess: /*NOWORK*/ break; } if (!module) { DYLD__SETERROR (CANNOT_OPEN); } return module; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data loader_data, lt_module module) { int errors = 0; if (module != (lt_module) -1) { const mach_header *mh = (const mach_header *) module; int flags = 0; if (mh->magic == LT__MAGIC) { lt_dlseterror (dyld_cannot_close); ++errors; } else { /* Currently, if a module contains c++ static destructors and it is unloaded, we get a segfault in atexit(), due to compiler and dynamic loader differences of opinion, this works around that. */ if ((const struct section *) NULL != getsectbynamefromheader (lt__nsmodule_get_header (module), "__DATA", "__mod_term_func")) { flags |= NSUNLINKMODULE_OPTION_KEEP_MEMORY_MAPPED; } #if defined(__ppc__) flags |= NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES; #endif if (!NSUnLinkModule (module, flags)) { DYLD__SETERROR (CANNOT_CLOSE); ++errors; } } } return errors; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data loader_data, lt_module module, const char *name) { NSSymbol *nssym = 0; const mach_header *mh = (const mach_header *) module; char saveError[256] = "Symbol not found"; if (module == (lt_module) -1) { void *address, *unused; _dyld_lookup_and_bind (name, (unsigned long*) &address, &unused); return address; } if (mh->magic == LT__MAGIC) { if (lt__image_symbol_p && lt__image_symbol) { if (lt__image_symbol_p (mh, name)) { nssym = lt__image_symbol (mh, name, LT__SYMLOOKUP_OPTS); } } } else { nssym = NSLookupSymbolInModule (module, name); } if (!nssym) { strncpy (saveError, dylderror (LT__STRERROR (SYMBOL_NOT_FOUND)), 255); saveError[255] = 0; if (!mh) { mh = (mach_header *)lt__nsmodule_get_header (module); } nssym = lt__linkedlib_symbol (name, mh); } if (!nssym) { LT__SETERRORSTR (saveError); } return nssym ? NSAddressOfSymbol (nssym) : 0; } /* --- HELPER FUNCTIONS --- */ /* Return the dyld error string, or the passed in error string if none. */ static const char * dylderror (const char *errmsg) { NSLinkEditErrors ler; int lerno; const char *file; const char *errstr; NSLinkEditError (&ler, &lerno, &file, &errstr); if (! (errstr && *errstr)) { errstr = errmsg; } return errstr; } /* There should probably be an apple dyld api for this. */ static const mach_header * lt__nsmodule_get_header (NSModule module) { int i = _dyld_image_count(); const char *modname = NSNameOfModule (module); const mach_header *mh = 0; if (!modname) return NULL; while (i > 0) { --i; if (strneq (_dyld_get_image_name (i), modname)) { mh = _dyld_get_image_header (i); break; } } return mh; } /* NSAddImage is also used to get the loaded image, but it only works if the lib is installed, for uninstalled libs we need to check the install_names against each other. Note that this is still broken if DYLD_IMAGE_SUFFIX is set and a different lib was loaded as a result. */ static const char * lt__header_get_instnam (const mach_header *mh) { unsigned long offset = sizeof(mach_header); const char* result = 0; int j; for (j = 0; j < mh->ncmds; j++) { struct load_command *lc; lc = (struct load_command*) (((unsigned long) mh) + offset); if (LC_ID_DYLIB == lc->cmd) { result=(char*)(((dylib_command*) lc)->dylib.name.offset + (unsigned long) lc); } offset += lc->cmdsize; } return result; } static const mach_header * lt__match_loadedlib (const char *name) { const mach_header *mh = 0; int i = _dyld_image_count(); while (i > 0) { const char *id; --i; id = lt__header_get_instnam (_dyld_get_image_header (i)); if (id && strneq (id, name)) { mh = _dyld_get_image_header (i); break; } } return mh; } /* Safe to assume our mh is good. */ static NSSymbol lt__linkedlib_symbol (const char *symname, const mach_header *mh) { NSSymbol symbol = 0; if (lt__image_symbol && NSIsSymbolNameDefined (symname)) { unsigned long offset = sizeof(mach_header); struct load_command *lc; int j; for (j = 0; j < mh->ncmds; j++) { lc = (struct load_command*) (((unsigned long) mh) + offset); if ((LC_LOAD_DYLIB == lc->cmd) || (LC_LOAD_WEAK_DYLIB == lc->cmd)) { unsigned long base = ((dylib_command *) lc)->dylib.name.offset; char *name = (char *) (base + (unsigned long) lc); const mach_header *mh1 = lt__match_loadedlib (name); if (!mh1) { /* Maybe NSAddImage can find it */ mh1 = lt__addimage (name, NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED | NSADDIMAGE_OPTION_WITH_SEARCHING | NSADDIMAGE_OPTION_RETURN_ON_ERROR); } if (mh1) { symbol = lt__image_symbol (mh1, symname, LT__SYMLOOKUP_OPTS); if (symbol) break; } } offset += lc->cmdsize; } } return symbol; } libprelude-5.2.0/libltdl/loaders/PaxHeaders.14770/preopen.c0000644000000000000000000000011013726163454021546 xustar000000000000000024 mtime=1599661868.015 24 atime=1599661868.015 24 ctime=1599661998.632 libprelude-5.2.0/libltdl/loaders/preopen.c0000644000000000000000000002245513726163454020561 0ustar00rootroot00000000000000/* loader-preopen.c -- emulate dynamic linking using preloaded_symbols Copyright (C) 1998, 1999, 2000, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable preopen_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_init (lt_user_data loader_data); static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable); } if (vtable && !vtable->name) { vtable->name = "lt_preopen"; vtable->sym_prefix = 0; vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_init = vl_init; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_PREPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ /* Wrapper type to chain together symbol lists of various origins. */ typedef struct symlist_chain { struct symlist_chain *next; const lt_dlsymlist *symlist; } symlist_chain; static int add_symlist (const lt_dlsymlist *symlist); static int free_symlists (void); /* The start of the symbol lists chain. */ static symlist_chain *preloaded_symlists = 0; /* A symbol list preloaded before lt_init() was called. */ static const lt_dlsymlist *default_preloaded_symbols = 0; /* A function called through the vtable to initialise this loader. */ static int vl_init (lt_user_data LT__UNUSED loader_data) { int errors = 0; preloaded_symlists = 0; if (default_preloaded_symbols) { errors = lt_dlpreload (default_preloaded_symbols); } return errors; } /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data LT__UNUSED loader_data) { vtable = NULL; free_symlists (); return 0; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data LT__UNUSED loader_data, const char *filename, lt_dladvise LT__UNUSED advise) { symlist_chain *lists; lt_module module = 0; if (!preloaded_symlists) { LT__SETERROR (NO_SYMBOLS); goto done; } /* Can't use NULL as the reflective symbol header, as NULL is used to mark the end of the entire symbol list. Self-dlpreopened symbols follow this magic number, chosen to be an unlikely clash with a real module name. */ if (!filename) { filename = "@PROGRAM@"; } for (lists = preloaded_symlists; lists; lists = lists->next) { const lt_dlsymlist *symbol; for (symbol= lists->symlist; symbol->name; ++symbol) { if (!symbol->address && streq (symbol->name, filename)) { /* If the next symbol's name and address is 0, it means the module just contains the originator and no symbols. In this case we pretend that we never saw the module and hope that some other loader will be able to load the module and have access to its symbols */ const lt_dlsymlist *next_symbol = symbol +1; if (next_symbol->address && next_symbol->name) { module = (lt_module) lists->symlist; goto done; } } } } LT__SETERROR (FILE_NOT_FOUND); done: return module; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data LT__UNUSED loader_data, lt_module LT__UNUSED module) { /* Just to silence gcc -Wall */ module = 0; return 0; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data LT__UNUSED loader_data, lt_module module, const char *name) { lt_dlsymlist *symbol = (lt_dlsymlist*) module; symbol +=2; /* Skip header (originator then libname). */ while (symbol->name) { if (streq (symbol->name, name)) { return symbol->address; } ++symbol; } LT__SETERROR (SYMBOL_NOT_FOUND); return 0; } /* --- HELPER FUNCTIONS --- */ /* The symbol lists themselves are not allocated from the heap, but we can unhook them and free up the chain of links between them. */ static int free_symlists (void) { symlist_chain *lists; lists = preloaded_symlists; while (lists) { symlist_chain *next = lists->next; FREE (lists); lists = next; } preloaded_symlists = 0; return 0; } /* Add a new symbol list to the global chain. */ static int add_symlist (const lt_dlsymlist *symlist) { symlist_chain *lists; int errors = 0; /* Search for duplicate entries: */ for (lists = preloaded_symlists; lists && lists->symlist != symlist; lists = lists->next) /*NOWORK*/; /* Don't add the same list twice: */ if (!lists) { symlist_chain *tmp = (symlist_chain *) lt__zalloc (sizeof *tmp); if (tmp) { tmp->symlist = symlist; tmp->next = preloaded_symlists; preloaded_symlists = tmp; } else { ++errors; } } return errors; } /* --- PRELOADING API CALL IMPLEMENTATIONS --- */ /* Save a default symbol list for later. */ int lt_dlpreload_default (const lt_dlsymlist *preloaded) { default_preloaded_symbols = preloaded; return 0; } /* Add a symbol list to the global chain, or with a NULL argument, revert to just the default list. */ int lt_dlpreload (const lt_dlsymlist *preloaded) { int errors = 0; if (preloaded) { errors = add_symlist (preloaded); } else { free_symlists(); if (default_preloaded_symbols) { errors = lt_dlpreload (default_preloaded_symbols); } } return errors; } /* Open all the preloaded modules from the named originator, executing a callback for each one. If ORIGINATOR is NULL, then call FUNC for each preloaded module from the program itself. */ int lt_dlpreload_open (const char *originator, lt_dlpreload_callback_func *func) { symlist_chain *list; int errors = 0; int found = 0; /* For each symlist in the chain... */ for (list = preloaded_symlists; list; list = list->next) { /* ...that was preloaded by the requesting ORIGINATOR... */ if ((originator && streq (list->symlist->name, originator)) || (!originator && streq (list->symlist->name, "@PROGRAM@"))) { const lt_dlsymlist *symbol; unsigned int idx = 0; ++found; /* ...load the symbols per source compilation unit: (we preincrement the index to skip over the originator entry) */ while ((symbol = &list->symlist[++idx])->name != 0) { if ((symbol->address == 0) && (strneq (symbol->name, "@PROGRAM@"))) { lt_dlhandle handle = lt_dlopen (symbol->name); if (handle == 0) { ++errors; } else { errors += (*func) (handle); } } } } } if (!found) { LT__SETERROR(CANNOT_OPEN); ++errors; } return errors; } libprelude-5.2.0/libltdl/loaders/PaxHeaders.14770/load_add_on.c0000644000000000000000000000011013726163450022315 xustar000000000000000024 mtime=1599661864.723 24 atime=1599661864.723 24 ctime=1599661998.647 libprelude-5.2.0/libltdl/loaders/load_add_on.c0000644000000000000000000001130413726163450021317 0ustar00rootroot00000000000000/* loader-load_add_on.c -- dynamic linking for BeOS Copyright (C) 1998, 1999, 2000, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable load_add_on_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = lt__zalloc (sizeof *vtable); } if (vtable && !vtable->name) { vtable->name = "lt_load_add_on"; vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_APPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ #include /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data LT__UNUSED loader_data) { vtable = NULL; return 0; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data LT__UNUSED loader_data, const char *filename, lt_dladvise LT__UNUSED advise) { image_id image = 0; if (filename) { image = load_add_on (filename); } else { image_info info; int32 cookie = 0; if (get_next_image_info (0, &cookie, &info) == B_OK) image = load_add_on (info.name); } if (image <= 0) { LT__SETERROR (CANNOT_OPEN); image = 0; } return (lt_module) image; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data LT__UNUSED loader_data, lt_module module) { int errors = 0; if (unload_add_on ((image_id) module) != B_OK) { LT__SETERROR (CANNOT_CLOSE); ++errors; } return errors; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data LT__UNUSED loader_data, lt_module module, const char *name) { void *address = 0; image_id image = (image_id) module; if (get_image_symbol (image, name, B_SYMBOL_TYPE_ANY, address) != B_OK) { LT__SETERROR (SYMBOL_NOT_FOUND); address = 0; } return address; } libprelude-5.2.0/libltdl/loaders/PaxHeaders.14770/loadlibrary.c0000644000000000000000000000010713726163450022404 xustar000000000000000024 mtime=1599661864.737 24 atime=1599661864.737 23 ctime=1599661998.65 libprelude-5.2.0/libltdl/loaders/loadlibrary.c0000644000000000000000000002517313726163450021411 0ustar00rootroot00000000000000/* loader-loadlibrary.c -- dynamic linking for Win32 Copyright (C) 1998, 1999, 2000, 2004, 2005, 2006, 2007, 2008, 2010 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" #if defined(__CYGWIN__) # include #endif /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable loadlibrary_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlinterface_id iface_id = 0; static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable); iface_id = lt_dlinterface_register ("ltdl loadlibrary", NULL); } if (vtable && !vtable->name) { vtable->name = "lt_loadlibrary"; vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_APPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ #include #define LOCALFREE(mem) LT_STMT_START { \ if (mem) { LocalFree ((void *)mem); mem = NULL; } } LT_STMT_END #define LOADLIB__SETERROR(errmsg) LT__SETERRORSTR (loadlibraryerror (errmsg)) #define LOADLIB_SETERROR(errcode) LOADLIB__SETERROR (LT__STRERROR (errcode)) static const char *loadlibraryerror (const char *default_errmsg); static DWORD WINAPI wrap_getthreaderrormode (void); static DWORD WINAPI fallback_getthreaderrormode (void); static BOOL WINAPI wrap_setthreaderrormode (DWORD mode, DWORD *oldmode); static BOOL WINAPI fallback_setthreaderrormode (DWORD mode, DWORD *oldmode); typedef DWORD (WINAPI getthreaderrormode_type) (void); typedef BOOL (WINAPI setthreaderrormode_type) (DWORD, DWORD *); static getthreaderrormode_type *getthreaderrormode = wrap_getthreaderrormode; static setthreaderrormode_type *setthreaderrormode = wrap_setthreaderrormode; static char *error_message = 0; /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data LT__UNUSED loader_data) { vtable = NULL; LOCALFREE (error_message); return 0; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data LT__UNUSED loader_data, const char *filename, lt_dladvise LT__UNUSED advise) { lt_module module = 0; char *ext; char wpath[MAX_PATH]; size_t len; if (!filename) { /* Get the name of main module */ *wpath = 0; GetModuleFileName (NULL, wpath, sizeof (wpath)); filename = wpath; } else { len = LT_STRLEN (filename); if (len >= MAX_PATH) { LT__SETERROR (CANNOT_OPEN); return 0; } #if HAVE_DECL_CYGWIN_CONV_PATH if (cygwin_conv_path (CCP_POSIX_TO_WIN_A, filename, wpath, MAX_PATH)) { LT__SETERROR (CANNOT_OPEN); return 0; } len = 0; #elif defined(__CYGWIN__) cygwin_conv_to_full_win32_path (filename, wpath); len = 0; #else strcpy(wpath, filename); #endif ext = strrchr (wpath, '.'); if (!ext) { /* Append a `.' to stop Windows from adding an implicit `.dll' extension. */ if (!len) len = strlen (wpath); if (len + 1 >= MAX_PATH) { LT__SETERROR (CANNOT_OPEN); return 0; } wpath[len] = '.'; wpath[len+1] = '\0'; } } { /* Silence dialog from LoadLibrary on some failures. */ DWORD errormode = getthreaderrormode (); DWORD last_error; setthreaderrormode (errormode | SEM_FAILCRITICALERRORS, NULL); module = LoadLibrary (wpath); /* Restore the error mode. */ last_error = GetLastError (); setthreaderrormode (errormode, NULL); SetLastError (last_error); } /* libltdl expects this function to fail if it is unable to physically load the library. Sadly, LoadLibrary will search the loaded libraries for a match and return one of them if the path search load fails. We check whether LoadLibrary is returning a handle to an already loaded module, and simulate failure if we find one. */ { lt_dlhandle cur = 0; while ((cur = lt_dlhandle_iterate (iface_id, cur))) { if (!cur->module) { cur = 0; break; } if (cur->module == module) { break; } } if (!module) LOADLIB_SETERROR (CANNOT_OPEN); else if (cur) { LT__SETERROR (CANNOT_OPEN); module = 0; } } return module; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data LT__UNUSED loader_data, lt_module module) { int errors = 0; if (FreeLibrary ((HMODULE) module) == 0) { LOADLIB_SETERROR (CANNOT_CLOSE); ++errors; } return errors; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data LT__UNUSED loader_data, lt_module module, const char *name) { void *address = (void *) GetProcAddress ((HMODULE) module, name); if (!address) { LOADLIB_SETERROR (SYMBOL_NOT_FOUND); } return address; } /* --- HELPER FUNCTIONS --- */ /* Return the windows error message, or the passed in error message on failure. */ static const char * loadlibraryerror (const char *default_errmsg) { size_t len; LOCALFREE (error_message); FormatMessageA (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError (), 0, (char *) &error_message, 0, NULL); /* Remove trailing CRNL */ len = LT_STRLEN (error_message); if (len && error_message[len - 1] == '\n') error_message[--len] = LT_EOS_CHAR; if (len && error_message[len - 1] == '\r') error_message[--len] = LT_EOS_CHAR; return len ? error_message : default_errmsg; } /* A function called through the getthreaderrormode variable which checks if the system supports GetThreadErrorMode (or GetErrorMode) and arranges for it or a fallback implementation to be called directly in the future. The selected version is then called. */ static DWORD WINAPI wrap_getthreaderrormode (void) { HMODULE kernel32 = GetModuleHandleA ("kernel32.dll"); getthreaderrormode = (getthreaderrormode_type *) GetProcAddress (kernel32, "GetThreadErrorMode"); if (!getthreaderrormode) getthreaderrormode = (getthreaderrormode_type *) GetProcAddress (kernel32, "GetErrorMode"); if (!getthreaderrormode) getthreaderrormode = fallback_getthreaderrormode; return getthreaderrormode (); } /* A function called through the getthreaderrormode variable for cases where the system does not support GetThreadErrorMode or GetErrorMode */ static DWORD WINAPI fallback_getthreaderrormode (void) { /* Prior to Windows Vista, the only way to get the current error mode was to set a new one. In our case, we are setting a new error mode right after "getting" it while ignoring the error mode in effect when setting the new error mode, so that's fairly ok. */ return (DWORD) SetErrorMode (SEM_FAILCRITICALERRORS); } /* A function called through the setthreaderrormode variable which checks if the system supports SetThreadErrorMode and arranges for it or a fallback implementation to be called directly in the future. The selected version is then called. */ static BOOL WINAPI wrap_setthreaderrormode (DWORD mode, DWORD *oldmode) { HMODULE kernel32 = GetModuleHandleA ("kernel32.dll"); setthreaderrormode = (setthreaderrormode_type *) GetProcAddress (kernel32, "SetThreadErrorMode"); if (!setthreaderrormode) setthreaderrormode = fallback_setthreaderrormode; return setthreaderrormode (mode, oldmode); } /* A function called through the setthreaderrormode variable for cases where the system does not support SetThreadErrorMode. */ static BOOL WINAPI fallback_setthreaderrormode (DWORD mode, DWORD *oldmode) { /* Prior to Windows 7, there was no way to set the thread local error mode, so set the process global error mode instead. */ DWORD old = (DWORD) SetErrorMode (mode); if (oldmode) *oldmode = old; return TRUE; } libprelude-5.2.0/libltdl/loaders/PaxHeaders.14770/shl_load.c0000644000000000000000000000011013726163453021662 xustar000000000000000024 mtime=1599661867.756 24 atime=1599661867.756 24 ctime=1599661998.652 libprelude-5.2.0/libltdl/loaders/shl_load.c0000644000000000000000000001507613726163453020676 0ustar00rootroot00000000000000/* loader-shl_load.c -- dynamic linking with shl_load (HP-UX) Copyright (C) 1998, 1999, 2000, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable shl_load_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = lt__zalloc (sizeof *vtable); } if (vtable && !vtable->name) { vtable->name = "lt_shl_load"; vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_APPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ #if defined(HAVE_DL_H) # include #endif /* some flags are missing on some systems, so we provide * harmless defaults. * * Mandatory: * BIND_IMMEDIATE - Resolve symbol references when the library is loaded. * BIND_DEFERRED - Delay code symbol resolution until actual reference. * * Optionally: * BIND_FIRST - Place the library at the head of the symbol search * order. * BIND_NONFATAL - The default BIND_IMMEDIATE behavior is to treat all * unsatisfied symbols as fatal. This flag allows * binding of unsatisfied code symbols to be deferred * until use. * [Perl: For certain libraries, like DCE, deferred * binding often causes run time problems. Adding * BIND_NONFATAL to BIND_IMMEDIATE still allows * unresolved references in situations like this.] * BIND_NOSTART - Do not call the initializer for the shared library * when the library is loaded, nor on a future call to * shl_unload(). * BIND_VERBOSE - Print verbose messages concerning possible * unsatisfied symbols. * * hp9000s700/hp9000s800: * BIND_RESTRICTED - Restrict symbols visible by the library to those * present at library load time. * DYNAMIC_PATH - Allow the loader to dynamically search for the * library specified by the path argument. */ #if !defined(DYNAMIC_PATH) # define DYNAMIC_PATH 0 #endif #if !defined(BIND_RESTRICTED) # define BIND_RESTRICTED 0 #endif #define LT_BIND_FLAGS (BIND_IMMEDIATE | BIND_NONFATAL | DYNAMIC_PATH) /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data LT__UNUSED loader_data) { vtable = NULL; return 0; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data LT__UNUSED loader_data, const char *filename, lt_dladvise LT__UNUSED advise) { static shl_t self = (shl_t) 0; lt_module module = shl_load (filename, LT_BIND_FLAGS, 0L); /* Since searching for a symbol against a NULL module handle will also look in everything else that was already loaded and exported with the -E compiler flag, we always cache a handle saved before any modules are loaded. */ if (!self) { void *address; shl_findsym (&self, "main", TYPE_UNDEFINED, &address); } if (!filename) { module = self; } else { module = shl_load (filename, LT_BIND_FLAGS, 0L); if (!module) { LT__SETERROR (CANNOT_OPEN); } } return module; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data LT__UNUSED loader_data, lt_module module) { int errors = 0; if (module && (shl_unload ((shl_t) (module)) != 0)) { LT__SETERROR (CANNOT_CLOSE); ++errors; } return errors; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data LT__UNUSED loader_data, lt_module module, const char *name) { void *address = 0; /* sys_shl_open should never return a NULL module handle */ if (module == (lt_module) 0) { LT__SETERROR (INVALID_HANDLE); } else if (!shl_findsym((shl_t*) &module, name, TYPE_UNDEFINED, &address)) { if (!address) { LT__SETERROR (SYMBOL_NOT_FOUND); } } return address; } libprelude-5.2.0/libltdl/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163514020343 xustar000000000000000024 mtime=1599661900.774 24 atime=1599661945.257 24 ctime=1599661998.587 libprelude-5.2.0/libltdl/Makefile.in0000644000000000000000000026633513726163514017365 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ ##### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ @INSTALL_LTDL_TRUE@am__append_1 = ltdl.h @INSTALL_LTDL_TRUE@am__append_2 = libltdl.la @CONVENIENCE_LTDL_TRUE@am__append_3 = libltdlc.la subdir = libltdl DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp $(am__include_HEADERS_DIST) \ $(am__ltdlinclude_HEADERS_DIST) COPYING.LIB README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" \ "$(DESTDIR)$(ltdlincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) dld_link_la_DEPENDENCIES = am_dld_link_la_OBJECTS = dld_link.lo dld_link_la_OBJECTS = $(am_dld_link_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = dld_link_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(dld_link_la_LDFLAGS) $(LDFLAGS) -o $@ am__DEPENDENCIES_1 = dlopen_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_dlopen_la_OBJECTS = dlopen.lo dlopen_la_OBJECTS = $(am_dlopen_la_OBJECTS) dlopen_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(dlopen_la_LDFLAGS) $(LDFLAGS) -o $@ dyld_la_LIBADD = am_dyld_la_OBJECTS = dyld.lo dyld_la_OBJECTS = $(am_dyld_la_OBJECTS) dyld_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(dyld_la_LDFLAGS) $(LDFLAGS) -o $@ am_libltdl_la_OBJECTS = libltdl_la-preopen.lo libltdl_la-lt__alloc.lo \ libltdl_la-lt_dlloader.lo libltdl_la-lt_error.lo \ libltdl_la-ltdl.lo libltdl_la-slist.lo libltdl_la_OBJECTS = $(am_libltdl_la_OBJECTS) libltdl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libltdl_la_LDFLAGS) $(LDFLAGS) -o $@ @INSTALL_LTDL_TRUE@am_libltdl_la_rpath = -rpath $(libdir) am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) am__objects_1 = libltdlc_la-preopen.lo libltdlc_la-lt__alloc.lo \ libltdlc_la-lt_dlloader.lo libltdlc_la-lt_error.lo \ libltdlc_la-ltdl.lo libltdlc_la-slist.lo am_libltdlc_la_OBJECTS = $(am__objects_1) libltdlc_la_OBJECTS = $(am_libltdlc_la_OBJECTS) libltdlc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libltdlc_la_LDFLAGS) $(LDFLAGS) -o $@ @CONVENIENCE_LTDL_TRUE@am_libltdlc_la_rpath = load_add_on_la_LIBADD = am_load_add_on_la_OBJECTS = load_add_on.lo load_add_on_la_OBJECTS = $(am_load_add_on_la_OBJECTS) load_add_on_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(load_add_on_la_LDFLAGS) $(LDFLAGS) -o \ $@ loadlibrary_la_LIBADD = am_loadlibrary_la_OBJECTS = loadlibrary.lo loadlibrary_la_OBJECTS = $(am_loadlibrary_la_OBJECTS) loadlibrary_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(loadlibrary_la_LDFLAGS) $(LDFLAGS) -o \ $@ shl_load_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_shl_load_la_OBJECTS = shl_load.lo shl_load_la_OBJECTS = $(am_shl_load_la_OBJECTS) shl_load_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(shl_load_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(dld_link_la_SOURCES) $(dlopen_la_SOURCES) \ $(dyld_la_SOURCES) $(libltdl_la_SOURCES) \ $(libltdlc_la_SOURCES) $(load_add_on_la_SOURCES) \ $(loadlibrary_la_SOURCES) $(shl_load_la_SOURCES) DIST_SOURCES = $(dld_link_la_SOURCES) $(dlopen_la_SOURCES) \ $(dyld_la_SOURCES) $(libltdl_la_SOURCES) \ $(libltdlc_la_SOURCES) $(load_add_on_la_SOURCES) \ $(loadlibrary_la_SOURCES) $(shl_load_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__include_HEADERS_DIST = ltdl.h am__ltdlinclude_HEADERS_DIST = libltdl/lt_system.h libltdl/lt_error.h \ libltdl/lt_dlloader.h HEADERS = $(include_HEADERS) $(ltdlinclude_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = foreign # -I$(srcdir) is needed for user that built libltdl with a sub-Automake # (not as a sub-package!) using 'nostdinc': AM_CPPFLAGS = -DLT_CONFIG_H='<$(LT_CONFIG_H)>' -DLTDL -I. -I$(srcdir) \ -Ilibltdl -I$(srcdir)/libltdl -I$(srcdir)/libltdl AM_LDFLAGS = -no-undefined BUILT_SOURCES = $(ARGZ_H) include_HEADERS = $(am__append_1) noinst_LTLIBRARIES = $(LT_DLLOADERS) $(am__append_3) lib_LTLIBRARIES = $(am__append_2) EXTRA_LTLIBRARIES = dlopen.la dld_link.la dyld.la load_add_on.la \ loadlibrary.la shl_load.la EXTRA_DIST = lt__dirent.c lt__strl.c COPYING.LIB README argz_.h argz.c CLEANFILES = libltdl.la libltdlc.la libdlloader.la $(ltdl_LIBOBJS) \ $(ltdl_LTLIBOBJS) MOSTLYCLEANFILES = argz.h argz.h-t LTDL_VERSION_INFO = -version-info 10:0:3 @INSTALL_LTDL_TRUE@ltdlincludedir = $(includedir)/libltdl @INSTALL_LTDL_TRUE@ltdlinclude_HEADERS = libltdl/lt_system.h \ @INSTALL_LTDL_TRUE@ libltdl/lt_error.h \ @INSTALL_LTDL_TRUE@ libltdl/lt_dlloader.h libltdl_la_SOURCES = libltdl/lt__alloc.h \ libltdl/lt__dirent.h \ libltdl/lt__glibc.h \ libltdl/lt__private.h \ libltdl/lt__strl.h \ libltdl/lt_dlloader.h \ libltdl/lt_error.h \ libltdl/lt_system.h \ libltdl/slist.h \ loaders/preopen.c \ lt__alloc.c \ lt_dlloader.c \ lt_error.c \ ltdl.c \ ltdl.h \ slist.c libltdl_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN) $(AM_CPPFLAGS) libltdl_la_LDFLAGS = $(AM_LDFLAGS) $(LTDL_VERSION_INFO) $(LT_DLPREOPEN) libltdl_la_LIBADD = $(ltdl_LTLIBOBJS) libltdl_la_DEPENDENCIES = $(LT_DLLOADERS) $(ltdl_LTLIBOBJS) libltdlc_la_SOURCES = $(libltdl_la_SOURCES) libltdlc_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN)c $(AM_CPPFLAGS) libltdlc_la_LDFLAGS = $(AM_LDFLAGS) $(LT_DLPREOPEN) libltdlc_la_LIBADD = $(libltdl_la_LIBADD) libltdlc_la_DEPENDENCIES = $(libltdl_la_DEPENDENCIES) dlopen_la_SOURCES = loaders/dlopen.c dlopen_la_LDFLAGS = -module -avoid-version dlopen_la_LIBADD = $(LIBADD_DLOPEN) dld_link_la_SOURCES = loaders/dld_link.c dld_link_la_LDFLAGS = -module -avoid-version dld_link_la_LIBADD = -ldld dyld_la_SOURCES = loaders/dyld.c dyld_la_LDFLAGS = -module -avoid-version load_add_on_la_SOURCES = loaders/load_add_on.c load_add_on_la_LDFLAGS = -module -avoid-version loadlibrary_la_SOURCES = loaders/loadlibrary.c loadlibrary_la_LDFLAGS = -module -avoid-version shl_load_la_SOURCES = loaders/shl_load.c shl_load_la_LDFLAGS = -module -avoid-version shl_load_la_LIBADD = $(LIBADD_SHL_LOAD) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libltdl/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libltdl/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } dld_link.la: $(dld_link_la_OBJECTS) $(dld_link_la_DEPENDENCIES) $(EXTRA_dld_link_la_DEPENDENCIES) $(AM_V_CCLD)$(dld_link_la_LINK) $(dld_link_la_OBJECTS) $(dld_link_la_LIBADD) $(LIBS) dlopen.la: $(dlopen_la_OBJECTS) $(dlopen_la_DEPENDENCIES) $(EXTRA_dlopen_la_DEPENDENCIES) $(AM_V_CCLD)$(dlopen_la_LINK) $(dlopen_la_OBJECTS) $(dlopen_la_LIBADD) $(LIBS) dyld.la: $(dyld_la_OBJECTS) $(dyld_la_DEPENDENCIES) $(EXTRA_dyld_la_DEPENDENCIES) $(AM_V_CCLD)$(dyld_la_LINK) $(dyld_la_OBJECTS) $(dyld_la_LIBADD) $(LIBS) libltdl.la: $(libltdl_la_OBJECTS) $(libltdl_la_DEPENDENCIES) $(EXTRA_libltdl_la_DEPENDENCIES) $(AM_V_CCLD)$(libltdl_la_LINK) $(am_libltdl_la_rpath) $(libltdl_la_OBJECTS) $(libltdl_la_LIBADD) $(LIBS) libltdlc.la: $(libltdlc_la_OBJECTS) $(libltdlc_la_DEPENDENCIES) $(EXTRA_libltdlc_la_DEPENDENCIES) $(AM_V_CCLD)$(libltdlc_la_LINK) $(am_libltdlc_la_rpath) $(libltdlc_la_OBJECTS) $(libltdlc_la_LIBADD) $(LIBS) load_add_on.la: $(load_add_on_la_OBJECTS) $(load_add_on_la_DEPENDENCIES) $(EXTRA_load_add_on_la_DEPENDENCIES) $(AM_V_CCLD)$(load_add_on_la_LINK) $(load_add_on_la_OBJECTS) $(load_add_on_la_LIBADD) $(LIBS) loadlibrary.la: $(loadlibrary_la_OBJECTS) $(loadlibrary_la_DEPENDENCIES) $(EXTRA_loadlibrary_la_DEPENDENCIES) $(AM_V_CCLD)$(loadlibrary_la_LINK) $(loadlibrary_la_OBJECTS) $(loadlibrary_la_LIBADD) $(LIBS) shl_load.la: $(shl_load_la_OBJECTS) $(shl_load_la_DEPENDENCIES) $(EXTRA_shl_load_la_DEPENDENCIES) $(AM_V_CCLD)$(shl_load_la_LINK) $(shl_load_la_OBJECTS) $(shl_load_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dld_link.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dlopen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dyld.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-lt__alloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-lt_dlloader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-lt_error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-ltdl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-preopen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-slist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-lt__alloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-lt_dlloader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-lt_error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-ltdl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-preopen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-slist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load_add_on.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loadlibrary.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shl_load.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< dld_link.lo: loaders/dld_link.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dld_link.lo -MD -MP -MF $(DEPDIR)/dld_link.Tpo -c -o dld_link.lo `test -f 'loaders/dld_link.c' || echo '$(srcdir)/'`loaders/dld_link.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dld_link.Tpo $(DEPDIR)/dld_link.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/dld_link.c' object='dld_link.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dld_link.lo `test -f 'loaders/dld_link.c' || echo '$(srcdir)/'`loaders/dld_link.c dlopen.lo: loaders/dlopen.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dlopen.lo -MD -MP -MF $(DEPDIR)/dlopen.Tpo -c -o dlopen.lo `test -f 'loaders/dlopen.c' || echo '$(srcdir)/'`loaders/dlopen.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dlopen.Tpo $(DEPDIR)/dlopen.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/dlopen.c' object='dlopen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dlopen.lo `test -f 'loaders/dlopen.c' || echo '$(srcdir)/'`loaders/dlopen.c dyld.lo: loaders/dyld.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dyld.lo -MD -MP -MF $(DEPDIR)/dyld.Tpo -c -o dyld.lo `test -f 'loaders/dyld.c' || echo '$(srcdir)/'`loaders/dyld.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dyld.Tpo $(DEPDIR)/dyld.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/dyld.c' object='dyld.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dyld.lo `test -f 'loaders/dyld.c' || echo '$(srcdir)/'`loaders/dyld.c libltdl_la-preopen.lo: loaders/preopen.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-preopen.lo -MD -MP -MF $(DEPDIR)/libltdl_la-preopen.Tpo -c -o libltdl_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-preopen.Tpo $(DEPDIR)/libltdl_la-preopen.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/preopen.c' object='libltdl_la-preopen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c libltdl_la-lt__alloc.lo: lt__alloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt__alloc.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt__alloc.Tpo -c -o libltdl_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-lt__alloc.Tpo $(DEPDIR)/libltdl_la-lt__alloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt__alloc.c' object='libltdl_la-lt__alloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c libltdl_la-lt_dlloader.lo: lt_dlloader.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt_dlloader.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt_dlloader.Tpo -c -o libltdl_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-lt_dlloader.Tpo $(DEPDIR)/libltdl_la-lt_dlloader.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_dlloader.c' object='libltdl_la-lt_dlloader.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c libltdl_la-lt_error.lo: lt_error.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt_error.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt_error.Tpo -c -o libltdl_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-lt_error.Tpo $(DEPDIR)/libltdl_la-lt_error.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_error.c' object='libltdl_la-lt_error.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c libltdl_la-ltdl.lo: ltdl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-ltdl.lo -MD -MP -MF $(DEPDIR)/libltdl_la-ltdl.Tpo -c -o libltdl_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-ltdl.Tpo $(DEPDIR)/libltdl_la-ltdl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ltdl.c' object='libltdl_la-ltdl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c libltdl_la-slist.lo: slist.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-slist.lo -MD -MP -MF $(DEPDIR)/libltdl_la-slist.Tpo -c -o libltdl_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-slist.Tpo $(DEPDIR)/libltdl_la-slist.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='slist.c' object='libltdl_la-slist.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c libltdlc_la-preopen.lo: loaders/preopen.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-preopen.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-preopen.Tpo -c -o libltdlc_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-preopen.Tpo $(DEPDIR)/libltdlc_la-preopen.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/preopen.c' object='libltdlc_la-preopen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c libltdlc_la-lt__alloc.lo: lt__alloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt__alloc.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt__alloc.Tpo -c -o libltdlc_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-lt__alloc.Tpo $(DEPDIR)/libltdlc_la-lt__alloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt__alloc.c' object='libltdlc_la-lt__alloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c libltdlc_la-lt_dlloader.lo: lt_dlloader.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt_dlloader.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt_dlloader.Tpo -c -o libltdlc_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-lt_dlloader.Tpo $(DEPDIR)/libltdlc_la-lt_dlloader.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_dlloader.c' object='libltdlc_la-lt_dlloader.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c libltdlc_la-lt_error.lo: lt_error.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt_error.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt_error.Tpo -c -o libltdlc_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-lt_error.Tpo $(DEPDIR)/libltdlc_la-lt_error.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_error.c' object='libltdlc_la-lt_error.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c libltdlc_la-ltdl.lo: ltdl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-ltdl.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-ltdl.Tpo -c -o libltdlc_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-ltdl.Tpo $(DEPDIR)/libltdlc_la-ltdl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ltdl.c' object='libltdlc_la-ltdl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c libltdlc_la-slist.lo: slist.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-slist.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-slist.Tpo -c -o libltdlc_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-slist.Tpo $(DEPDIR)/libltdlc_la-slist.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='slist.c' object='libltdlc_la-slist.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c load_add_on.lo: loaders/load_add_on.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT load_add_on.lo -MD -MP -MF $(DEPDIR)/load_add_on.Tpo -c -o load_add_on.lo `test -f 'loaders/load_add_on.c' || echo '$(srcdir)/'`loaders/load_add_on.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/load_add_on.Tpo $(DEPDIR)/load_add_on.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/load_add_on.c' object='load_add_on.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o load_add_on.lo `test -f 'loaders/load_add_on.c' || echo '$(srcdir)/'`loaders/load_add_on.c loadlibrary.lo: loaders/loadlibrary.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loadlibrary.lo -MD -MP -MF $(DEPDIR)/loadlibrary.Tpo -c -o loadlibrary.lo `test -f 'loaders/loadlibrary.c' || echo '$(srcdir)/'`loaders/loadlibrary.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/loadlibrary.Tpo $(DEPDIR)/loadlibrary.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/loadlibrary.c' object='loadlibrary.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loadlibrary.lo `test -f 'loaders/loadlibrary.c' || echo '$(srcdir)/'`loaders/loadlibrary.c shl_load.lo: loaders/shl_load.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shl_load.lo -MD -MP -MF $(DEPDIR)/shl_load.Tpo -c -o shl_load.lo `test -f 'loaders/shl_load.c' || echo '$(srcdir)/'`loaders/shl_load.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shl_load.Tpo $(DEPDIR)/shl_load.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/shl_load.c' object='shl_load.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shl_load.lo `test -f 'loaders/shl_load.c' || echo '$(srcdir)/'`loaders/shl_load.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) install-ltdlincludeHEADERS: $(ltdlinclude_HEADERS) @$(NORMAL_INSTALL) @list='$(ltdlinclude_HEADERS)'; test -n "$(ltdlincludedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(ltdlincludedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(ltdlincludedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(ltdlincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(ltdlincludedir)" || exit $$?; \ done uninstall-ltdlincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(ltdlinclude_HEADERS)'; test -n "$(ltdlincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(ltdlincludedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(ltdlincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-includeHEADERS install-ltdlincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \ uninstall-ltdlincludeHEADERS .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ cscopelist-am ctags ctags-am distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-libLTLIBRARIES install-ltdlincludeHEADERS install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-includeHEADERS uninstall-libLTLIBRARIES \ uninstall-ltdlincludeHEADERS # We need the following in order to create an when the system # doesn't have one that works with the given compiler. all-local $(lib_OBJECTS): $(ARGZ_H) argz.h: argz_.h $(mkinstalldirs) . cp $(srcdir)/argz_.h $@-t mv $@-t $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/libltdl/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163454020343 xustar000000000000000024 mtime=1599661868.155 24 atime=1599661900.575 23 ctime=1599661998.59 libprelude-5.2.0/libltdl/Makefile.am0000644000000000000000000001170313726163454017342 0ustar00rootroot00000000000000## -- Process this file with automake to produce ## ## Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc. ## Written by Gary V. Vaughan, 2003 ## ## NOTE: The canonical source of this file is maintained with the ## GNU Libtool package. Report bugs to bug-libtool@gnu.org. ## ## GNU Libltdl is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation; either ## version 2 of the License, or (at your option) any later version. ## ## As a special exception to the GNU Lesser General Public License, ## if you distribute this file as part of a program or library that ## is built using GNU libtool, you may include this file under the ## same distribution terms that you use for the rest of that program. ## ## GNU Libltdl 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 Lesser General Public License for more details. ## ## You should have received a copy of the GNU LesserGeneral Public ## License along with GNU Libltdl; see the file COPYING.LIB. If not, a ## copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, ## or obtained by writing to the Free Software Foundation, Inc., ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ##### ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = foreign AM_CPPFLAGS = AM_LDFLAGS = BUILT_SOURCES = include_HEADERS = noinst_LTLIBRARIES = lib_LTLIBRARIES = EXTRA_LTLIBRARIES = EXTRA_DIST = CLEANFILES = MOSTLYCLEANFILES = # -I$(srcdir) is needed for user that built libltdl with a sub-Automake # (not as a sub-package!) using 'nostdinc': AM_CPPFLAGS += -DLT_CONFIG_H='<$(LT_CONFIG_H)>' \ -DLTDL -I. -I$(srcdir) -Ilibltdl \ -I$(srcdir)/libltdl -I$(srcdir)/libltdl AM_LDFLAGS += -no-undefined LTDL_VERSION_INFO = -version-info 10:0:3 noinst_LTLIBRARIES += $(LT_DLLOADERS) if INSTALL_LTDL ltdlincludedir = $(includedir)/libltdl ltdlinclude_HEADERS = libltdl/lt_system.h \ libltdl/lt_error.h \ libltdl/lt_dlloader.h include_HEADERS += ltdl.h lib_LTLIBRARIES += libltdl.la endif if CONVENIENCE_LTDL noinst_LTLIBRARIES += libltdlc.la endif libltdl_la_SOURCES = libltdl/lt__alloc.h \ libltdl/lt__dirent.h \ libltdl/lt__glibc.h \ libltdl/lt__private.h \ libltdl/lt__strl.h \ libltdl/lt_dlloader.h \ libltdl/lt_error.h \ libltdl/lt_system.h \ libltdl/slist.h \ loaders/preopen.c \ lt__alloc.c \ lt_dlloader.c \ lt_error.c \ ltdl.c \ ltdl.h \ slist.c EXTRA_DIST += lt__dirent.c \ lt__strl.c libltdl_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN) $(AM_CPPFLAGS) libltdl_la_LDFLAGS = $(AM_LDFLAGS) $(LTDL_VERSION_INFO) $(LT_DLPREOPEN) libltdl_la_LIBADD = $(ltdl_LTLIBOBJS) libltdl_la_DEPENDENCIES = $(LT_DLLOADERS) $(ltdl_LTLIBOBJS) libltdlc_la_SOURCES = $(libltdl_la_SOURCES) libltdlc_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN)c $(AM_CPPFLAGS) libltdlc_la_LDFLAGS = $(AM_LDFLAGS) $(LT_DLPREOPEN) libltdlc_la_LIBADD = $(libltdl_la_LIBADD) libltdlc_la_DEPENDENCIES= $(libltdl_la_DEPENDENCIES) ## The loaders are preopened by libltdl, itself always built from ## pic-objects (either as a shared library, or a convenience library), ## so the loaders themselves must be made from pic-objects too. We ## use convenience libraries for that purpose: EXTRA_LTLIBRARIES += dlopen.la \ dld_link.la \ dyld.la \ load_add_on.la \ loadlibrary.la \ shl_load.la dlopen_la_SOURCES = loaders/dlopen.c dlopen_la_LDFLAGS = -module -avoid-version dlopen_la_LIBADD = $(LIBADD_DLOPEN) dld_link_la_SOURCES = loaders/dld_link.c dld_link_la_LDFLAGS = -module -avoid-version dld_link_la_LIBADD = -ldld dyld_la_SOURCES = loaders/dyld.c dyld_la_LDFLAGS = -module -avoid-version load_add_on_la_SOURCES = loaders/load_add_on.c load_add_on_la_LDFLAGS = -module -avoid-version loadlibrary_la_SOURCES = loaders/loadlibrary.c loadlibrary_la_LDFLAGS = -module -avoid-version shl_load_la_SOURCES = loaders/shl_load.c shl_load_la_LDFLAGS = -module -avoid-version shl_load_la_LIBADD = $(LIBADD_SHL_LOAD) ## Make sure these will be cleaned even when they're not built by default: CLEANFILES += libltdl.la \ libltdlc.la \ libdlloader.la ## Automake-1.9.6 doesn't clean subdir AC_LIBOBJ compiled objects ## automatically: CLEANFILES += $(ltdl_LIBOBJS) $(ltdl_LTLIBOBJS) EXTRA_DIST += COPYING.LIB \ README ## --------------------------- ## ## Gnulib snippets ## ## --------------------------- ## BUILT_SOURCES += $(ARGZ_H) EXTRA_DIST += argz_.h \ argz.c # We need the following in order to create an when the system # doesn't have one that works with the given compiler. all-local $(lib_OBJECTS): $(ARGZ_H) argz.h: argz_.h $(mkinstalldirs) . cp $(srcdir)/argz_.h $@-t mv $@-t $@ MOSTLYCLEANFILES += argz.h \ argz.h-t libprelude-5.2.0/libltdl/PaxHeaders.14770/ltdl.h0000644000000000000000000000011013726163454017411 xustar000000000000000024 mtime=1599661868.123 24 atime=1599661868.123 24 ctime=1599661998.595 libprelude-5.2.0/libltdl/ltdl.h0000644000000000000000000001312513726163454016416 0ustar00rootroot00000000000000/* ltdl.h -- generic dlopen functions Copyright (C) 1998-2000, 2004, 2005, 2007, 2008 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Only include this header file once. */ #if !defined(LTDL_H) #define LTDL_H 1 #include #include #include LT_BEGIN_C_DECLS /* LT_STRLEN can be used safely on NULL pointers. */ #define LT_STRLEN(s) (((s) && (s)[0]) ? strlen (s) : 0) /* --- DYNAMIC MODULE LOADING API --- */ typedef struct lt__handle *lt_dlhandle; /* A loaded module. */ /* Initialisation and finalisation functions for libltdl. */ LT_SCOPE int lt_dlinit (void); LT_SCOPE int lt_dlexit (void); /* Module search path manipulation. */ LT_SCOPE int lt_dladdsearchdir (const char *search_dir); LT_SCOPE int lt_dlinsertsearchdir (const char *before, const char *search_dir); LT_SCOPE int lt_dlsetsearchpath (const char *search_path); LT_SCOPE const char *lt_dlgetsearchpath (void); LT_SCOPE int lt_dlforeachfile ( const char *search_path, int (*func) (const char *filename, void *data), void *data); /* User module loading advisors. */ LT_SCOPE int lt_dladvise_init (lt_dladvise *advise); LT_SCOPE int lt_dladvise_destroy (lt_dladvise *advise); LT_SCOPE int lt_dladvise_ext (lt_dladvise *advise); LT_SCOPE int lt_dladvise_resident (lt_dladvise *advise); LT_SCOPE int lt_dladvise_local (lt_dladvise *advise); LT_SCOPE int lt_dladvise_global (lt_dladvise *advise); LT_SCOPE int lt_dladvise_preload (lt_dladvise *advise); /* Portable libltdl versions of the system dlopen() API. */ LT_SCOPE lt_dlhandle lt_dlopen (const char *filename); LT_SCOPE lt_dlhandle lt_dlopenext (const char *filename); LT_SCOPE lt_dlhandle lt_dlopenadvise (const char *filename, lt_dladvise advise); LT_SCOPE void * lt_dlsym (lt_dlhandle handle, const char *name); LT_SCOPE const char *lt_dlerror (void); LT_SCOPE int lt_dlclose (lt_dlhandle handle); /* --- PRELOADED MODULE SUPPORT --- */ /* A preopened symbol. Arrays of this type comprise the exported symbols for a dlpreopened module. */ typedef struct { const char *name; void *address; } lt_dlsymlist; typedef int lt_dlpreload_callback_func (lt_dlhandle handle); LT_SCOPE int lt_dlpreload (const lt_dlsymlist *preloaded); LT_SCOPE int lt_dlpreload_default (const lt_dlsymlist *preloaded); LT_SCOPE int lt_dlpreload_open (const char *originator, lt_dlpreload_callback_func *func); #define lt_preloaded_symbols lt__PROGRAM__LTX_preloaded_symbols /* Ensure C linkage. */ extern LT_DLSYM_CONST lt_dlsymlist lt__PROGRAM__LTX_preloaded_symbols[]; #define LTDL_SET_PRELOADED_SYMBOLS() \ lt_dlpreload_default(lt_preloaded_symbols) /* --- MODULE INFORMATION --- */ /* Associating user data with loaded modules. */ typedef void * lt_dlinterface_id; typedef int lt_dlhandle_interface (lt_dlhandle handle, const char *id_string); LT_SCOPE lt_dlinterface_id lt_dlinterface_register (const char *id_string, lt_dlhandle_interface *iface); LT_SCOPE void lt_dlinterface_free (lt_dlinterface_id key); LT_SCOPE void * lt_dlcaller_set_data (lt_dlinterface_id key, lt_dlhandle handle, void *data); LT_SCOPE void * lt_dlcaller_get_data (lt_dlinterface_id key, lt_dlhandle handle); /* Read only information pertaining to a loaded module. */ typedef struct { char * filename; /* file name */ char * name; /* module name */ int ref_count; /* number of times lt_dlopened minus number of times lt_dlclosed. */ unsigned int is_resident:1; /* module can't be unloaded. */ unsigned int is_symglobal:1; /* module symbols can satisfy subsequently loaded modules. */ unsigned int is_symlocal:1; /* module symbols are only available locally. */ } lt_dlinfo; LT_SCOPE const lt_dlinfo *lt_dlgetinfo (lt_dlhandle handle); LT_SCOPE lt_dlhandle lt_dlhandle_iterate (lt_dlinterface_id iface, lt_dlhandle place); LT_SCOPE lt_dlhandle lt_dlhandle_fetch (lt_dlinterface_id iface, const char *module_name); LT_SCOPE int lt_dlhandle_map (lt_dlinterface_id iface, int (*func) (lt_dlhandle handle, void *data), void *data); /* Deprecated module residency management API. */ LT_SCOPE int lt_dlmakeresident (lt_dlhandle handle); LT_SCOPE int lt_dlisresident (lt_dlhandle handle); #define lt_ptr void * LT_END_C_DECLS #endif /*!defined(LTDL_H)*/ libprelude-5.2.0/libltdl/PaxHeaders.14770/COPYING.LIB0000644000000000000000000000011013726163450017735 xustar000000000000000024 mtime=1599661864.625 24 atime=1599661864.625 24 ctime=1599661998.605 libprelude-5.2.0/libltdl/COPYING.LIB0000644000000000000000000006365613726163450016760 0ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. ^L Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. ^L GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. ^L Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. ^L 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. ^L 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. ^L 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. ^L 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS ^L How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! libprelude-5.2.0/libltdl/PaxHeaders.14770/README0000644000000000000000000000011013726163450017155 xustar000000000000000024 mtime=1599661864.639 24 atime=1599661864.639 24 ctime=1599661998.607 libprelude-5.2.0/libltdl/README0000644000000000000000000000126013726163450016157 0ustar00rootroot00000000000000This is GNU libltdl, a system independent dlopen wrapper for GNU libtool. It supports the following dlopen interfaces: * dlopen (POSIX) * shl_load (HP-UX) * LoadLibrary (Win16 and Win32) * load_add_on (BeOS) * GNU DLD (emulates dynamic linking for static libraries) * dyld (darwin/Mac OS X) * libtool's dlpreopen -- Copyright (C) 1999, 2003, 2011 Free Software Foundation, Inc. Written by Thomas Tanner, 1999 This file is part of GNU Libtool. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. libprelude-5.2.0/libltdl/PaxHeaders.14770/lt__alloc.c0000644000000000000000000000011013726163454020375 xustar000000000000000024 mtime=1599661868.036 24 atime=1599661868.036 24 ctime=1599661998.634 libprelude-5.2.0/libltdl/lt__alloc.c0000644000000000000000000000435513726163454017407 0ustar00rootroot00000000000000/* lt__alloc.c -- internal memory management interface Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include #include "lt__alloc.h" static void alloc_die_default (void); void (*lt__alloc_die) (void) = alloc_die_default; /* Unless overridden, exit on memory failure. */ static void alloc_die_default (void) { fprintf (stderr, "Out of memory.\n"); exit (EXIT_FAILURE); } void * lt__malloc (size_t n) { void *mem; if (! (mem = malloc (n))) (*lt__alloc_die) (); return mem; } void * lt__zalloc (size_t n) { void *mem; if ((mem = lt__malloc (n))) memset (mem, 0, n); return mem; } void * lt__realloc (void *mem, size_t n) { if (! (mem = realloc (mem, n))) (*lt__alloc_die) (); return mem; } void * lt__memdup (void const *mem, size_t n) { void *newmem; if ((newmem = lt__malloc (n))) return memcpy (newmem, mem, n); return 0; } char * lt__strdup (const char *string) { return (char *) lt__memdup (string, strlen (string) +1); } libprelude-5.2.0/libltdl/PaxHeaders.14770/lt_dlloader.c0000644000000000000000000000011013726163454020732 xustar000000000000000024 mtime=1599661868.058 24 atime=1599661868.058 24 ctime=1599661998.636 libprelude-5.2.0/libltdl/lt_dlloader.c0000644000000000000000000001400413726163454017734 0ustar00rootroot00000000000000/* lt_dlloader.c -- dynamic library loader interface Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" #define RETURN_SUCCESS 0 #define RETURN_FAILURE 1 static void * loader_callback (SList *item, void *userdata); /* A list of all the dlloaders we know about, each stored as a boxed SList item: */ static SList *loaders = 0; /* Return NULL, unless the loader in this ITEM has a matching name, in which case we return the matching item so that its address is passed back out (for possible freeing) by slist_remove. */ static void * loader_callback (SList *item, void *userdata) { const lt_dlvtable *vtable = (const lt_dlvtable *) item->userdata; const char * name = (const char *) userdata; assert (vtable); return streq (vtable->name, name) ? (void *) item : NULL; } /* Hook VTABLE into our global LOADERS list according to its own PRIORITY field value. */ int lt_dlloader_add (const lt_dlvtable *vtable) { SList *item; if ((vtable == 0) /* diagnose invalid vtable fields */ || (vtable->module_open == 0) || (vtable->module_close == 0) || (vtable->find_sym == 0) || ((vtable->priority != LT_DLLOADER_PREPEND) && (vtable->priority != LT_DLLOADER_APPEND))) { LT__SETERROR (INVALID_LOADER); return RETURN_FAILURE; } item = slist_box (vtable); if (!item) { (*lt__alloc_die) (); /* Let the caller know something went wrong if lt__alloc_die doesn't abort. */ return RETURN_FAILURE; } if (vtable->priority == LT_DLLOADER_PREPEND) { loaders = slist_cons (item, loaders); } else { assert (vtable->priority == LT_DLLOADER_APPEND); loaders = slist_concat (loaders, item); } return RETURN_SUCCESS; } #ifdef LT_DEBUG_LOADERS static void * loader_dump_callback (SList *item, void *userdata) { const lt_dlvtable *vtable = (const lt_dlvtable *) item->userdata; fprintf (stderr, ", %s", (vtable && vtable->name) ? vtable->name : "(null)"); return 0; } void lt_dlloader_dump (void) { fprintf (stderr, "loaders: "); if (!loaders) { fprintf (stderr, "(empty)"); } else { const lt_dlvtable *head = (const lt_dlvtable *) loaders->userdata; fprintf (stderr, "%s", (head && head->name) ? head->name : "(null)"); if (slist_tail (loaders)) slist_foreach (slist_tail (loaders), loader_dump_callback, NULL); } fprintf (stderr, "\n"); } #endif /* An iterator for the global loader list: if LOADER is NULL, then return the first element, otherwise the following element. */ lt_dlloader lt_dlloader_next (lt_dlloader loader) { SList *item = (SList *) loader; return (lt_dlloader) (item ? item->next : loaders); } /* Non-destructive unboxing of a loader. */ const lt_dlvtable * lt_dlloader_get (lt_dlloader loader) { return (const lt_dlvtable *) (loader ? ((SList *) loader)->userdata : NULL); } /* Return the contents of the first item in the global loader list with a matching NAME after removing it from that list. If there was no match, return NULL; if there is an error, return NULL and set an error for lt_dlerror; do not set an error if only resident modules need this loader; in either case, the loader list is not changed if NULL is returned. */ lt_dlvtable * lt_dlloader_remove (const char *name) { const lt_dlvtable * vtable = lt_dlloader_find (name); static const char id_string[] = "lt_dlloader_remove"; lt_dlinterface_id iface; lt_dlhandle handle = 0; int in_use = 0; int in_use_by_resident = 0; if (!vtable) { LT__SETERROR (INVALID_LOADER); return 0; } /* Fail if there are any open modules which use this loader. */ iface = lt_dlinterface_register (id_string, NULL); if (!iface) /* No memory, error is already set. */ return 0; while ((handle = lt_dlhandle_iterate (iface, handle))) { lt_dlhandle cur = handle; if (cur->vtable == vtable) { in_use = 1; if (lt_dlisresident (handle)) in_use_by_resident = 1; } } lt_dlinterface_free (iface); if (in_use) { if (!in_use_by_resident) LT__SETERROR (REMOVE_LOADER); return 0; } /* Call the loader finalisation function. */ if (vtable && vtable->dlloader_exit) { if ((*vtable->dlloader_exit) (vtable->dlloader_data) != 0) { /* If there is an exit function, and it returns non-zero then it must set an error, and we will not remove it from the list. */ return 0; } } /* If we got this far, remove the loader from our global list. */ return (lt_dlvtable *) slist_unbox ((SList *) slist_remove (&loaders, loader_callback, (void *) name)); } const lt_dlvtable * lt_dlloader_find (const char *name) { return lt_dlloader_get (slist_find (loaders, loader_callback, (void *) name)); } libprelude-5.2.0/libltdl/PaxHeaders.14770/lt_error.c0000644000000000000000000000011013726163454020275 xustar000000000000000024 mtime=1599661868.079 24 atime=1599661868.079 24 ctime=1599661998.639 libprelude-5.2.0/libltdl/lt_error.c0000644000000000000000000000562113726163454017304 0ustar00rootroot00000000000000/* lt_error.c -- error propogation interface Copyright (C) 1999, 2000, 2001, 2004, 2005, 2007 Free Software Foundation, Inc. Written by Thomas Tanner, 1999 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_error.h" static const char *last_error = 0; static const char error_strings[LT_ERROR_MAX][LT_ERROR_LEN_MAX + 1] = { #define LT_ERROR(name, diagnostic) diagnostic, lt_dlerror_table #undef LT_ERROR }; static const char **user_error_strings = 0; static int errorcount = LT_ERROR_MAX; int lt_dladderror (const char *diagnostic) { int errindex = 0; int result = -1; const char **temp = (const char **) 0; assert (diagnostic); errindex = errorcount - LT_ERROR_MAX; temp = REALLOC (const char *, user_error_strings, 1 + errindex); if (temp) { user_error_strings = temp; user_error_strings[errindex] = diagnostic; result = errorcount++; } return result; } int lt_dlseterror (int errindex) { int errors = 0; if (errindex >= errorcount || errindex < 0) { /* Ack! Error setting the error message! */ LT__SETERROR (INVALID_ERRORCODE); ++errors; } else if (errindex < LT_ERROR_MAX) { /* No error setting the error message! */ LT__SETERRORSTR (error_strings[errindex]); } else { /* No error setting the error message! */ LT__SETERRORSTR (user_error_strings[errindex - LT_ERROR_MAX]); } return errors; } const char * lt__error_string (int errorcode) { assert (errorcode >= 0); assert (errorcode < LT_ERROR_MAX); return error_strings[errorcode]; } const char * lt__get_last_error (void) { return last_error; } const char * lt__set_last_error (const char *errormsg) { return last_error = errormsg; } libprelude-5.2.0/libltdl/PaxHeaders.14770/ltdl.c0000644000000000000000000000011013726163454017404 xustar000000000000000024 mtime=1599661868.102 24 atime=1599661868.102 24 ctime=1599661998.641 libprelude-5.2.0/libltdl/ltdl.c0000644000000000000000000015367313726163454016426 0ustar00rootroot00000000000000/* ltdl.c -- system independent dlopen wrapper Copyright (C) 1998, 1999, 2000, 2004, 2005, 2006, 2007, 2008, 2011 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_system.h" #include "lt_dlloader.h" /* --- MANIFEST CONSTANTS --- */ /* Standard libltdl search path environment variable name */ #undef LTDL_SEARCHPATH_VAR #define LTDL_SEARCHPATH_VAR "LTDL_LIBRARY_PATH" /* Standard libtool archive file extension. */ #undef LT_ARCHIVE_EXT #define LT_ARCHIVE_EXT ".la" /* max. filename length */ #if !defined(LT_FILENAME_MAX) # define LT_FILENAME_MAX 1024 #endif #if !defined(LT_LIBEXT) # define LT_LIBEXT "a" #endif #if !defined(LT_LIBPREFIX) # define LT_LIBPREFIX "lib" #endif /* This is the maximum symbol size that won't require malloc/free */ #undef LT_SYMBOL_LENGTH #define LT_SYMBOL_LENGTH 128 /* This accounts for the _LTX_ separator */ #undef LT_SYMBOL_OVERHEAD #define LT_SYMBOL_OVERHEAD 5 /* Various boolean flags can be stored in the flags field of an lt_dlhandle... */ #define LT_DLIS_RESIDENT(handle) ((handle)->info.is_resident) #define LT_DLIS_SYMGLOBAL(handle) ((handle)->info.is_symglobal) #define LT_DLIS_SYMLOCAL(handle) ((handle)->info.is_symlocal) static const char objdir[] = LT_OBJDIR; static const char archive_ext[] = LT_ARCHIVE_EXT; static const char libext[] = LT_LIBEXT; static const char libprefix[] = LT_LIBPREFIX; #if defined(LT_MODULE_EXT) static const char shlib_ext[] = LT_MODULE_EXT; #endif /* If the loadable module suffix is not the same as the linkable * shared library suffix, this will be defined. */ #if defined(LT_SHARED_EXT) static const char shared_ext[] = LT_SHARED_EXT; #endif #if defined(LT_DLSEARCH_PATH) static const char sys_dlsearch_path[] = LT_DLSEARCH_PATH; #endif /* --- DYNAMIC MODULE LOADING --- */ /* The type of a function used at each iteration of foreach_dirinpath(). */ typedef int foreach_callback_func (char *filename, void *data1, void *data2); /* foreachfile_callback itself calls a function of this type: */ typedef int file_worker_func (const char *filename, void *data); static int foreach_dirinpath (const char *search_path, const char *base_name, foreach_callback_func *func, void *data1, void *data2); static int find_file_callback (char *filename, void *data1, void *data2); static int find_handle_callback (char *filename, void *data, void *ignored); static int foreachfile_callback (char *filename, void *data1, void *data2); static int canonicalize_path (const char *path, char **pcanonical); static int argzize_path (const char *path, char **pargz, size_t *pargz_len); static FILE *find_file (const char *search_path, const char *base_name, char **pdir); static lt_dlhandle *find_handle (const char *search_path, const char *base_name, lt_dlhandle *handle, lt_dladvise advise); static int find_module (lt_dlhandle *handle, const char *dir, const char *libdir, const char *dlname, const char *old_name, int installed, lt_dladvise advise); static int has_library_ext (const char *filename); static int load_deplibs (lt_dlhandle handle, char *deplibs); static int trim (char **dest, const char *str); static int try_dlopen (lt_dlhandle *handle, const char *filename, const char *ext, lt_dladvise advise); static int tryall_dlopen (lt_dlhandle *handle, const char *filename, lt_dladvise padvise, const lt_dlvtable *vtable); static int unload_deplibs (lt_dlhandle handle); static int lt_argz_insert (char **pargz, size_t *pargz_len, char *before, const char *entry); static int lt_argz_insertinorder (char **pargz, size_t *pargz_len, const char *entry); static int lt_argz_insertdir (char **pargz, size_t *pargz_len, const char *dirnam, struct dirent *dp); static int lt_dlpath_insertdir (char **ppath, char *before, const char *dir); static int list_files_by_dir (const char *dirnam, char **pargz, size_t *pargz_len); static int file_not_found (void); #ifdef HAVE_LIBDLLOADER static int loader_init_callback (lt_dlhandle handle); #endif /* HAVE_LIBDLLOADER */ static int loader_init (lt_get_vtable *vtable_func, lt_user_data data); static char *user_search_path= 0; static lt_dlhandle handles = 0; static int initialized = 0; /* Our memory failure callback sets the error message to be passed back up to the client, so we must be careful to return from mallocation callers if allocation fails (as this callback returns!!). */ void lt__alloc_die_callback (void) { LT__SETERROR (NO_MEMORY); } #ifdef HAVE_LIBDLLOADER /* This function is called to initialise each preloaded module loader, and hook it into the list of loaders to be used when attempting to dlopen an application module. */ static int loader_init_callback (lt_dlhandle handle) { lt_get_vtable *vtable_func = (lt_get_vtable *) lt_dlsym (handle, "get_vtable"); return loader_init (vtable_func, 0); } #endif /* HAVE_LIBDLLOADER */ static int loader_init (lt_get_vtable *vtable_func, lt_user_data data) { const lt_dlvtable *vtable = 0; int errors = 0; if (vtable_func) { vtable = (*vtable_func) (data); } /* lt_dlloader_add will LT__SETERROR if it fails. */ errors += lt_dlloader_add (vtable); assert (errors || vtable); if ((!errors) && vtable->dlloader_init) { if ((*vtable->dlloader_init) (vtable->dlloader_data)) { LT__SETERROR (INIT_LOADER); ++errors; } } return errors; } /* Bootstrap the loader loading with the preopening loader. */ #define get_vtable preopen_LTX_get_vtable #define preloaded_symbols LT_CONC3(lt_, LTDLOPEN, _LTX_preloaded_symbols) LT_BEGIN_C_DECLS LT_SCOPE const lt_dlvtable * get_vtable (lt_user_data data); LT_END_C_DECLS #ifdef HAVE_LIBDLLOADER extern LT_DLSYM_CONST lt_dlsymlist preloaded_symbols[]; #endif /* Initialize libltdl. */ int lt_dlinit (void) { int errors = 0; /* Initialize only at first call. */ if (++initialized == 1) { lt__alloc_die = lt__alloc_die_callback; handles = 0; user_search_path = 0; /* empty search path */ /* First set up the statically loaded preload module loader, so we can use it to preopen the other loaders we linked in at compile time. */ errors += loader_init (get_vtable, 0); /* Now open all the preloaded module loaders, so the application can use _them_ to lt_dlopen its own modules. */ #ifdef HAVE_LIBDLLOADER if (!errors) { errors += lt_dlpreload (preloaded_symbols); } if (!errors) { errors += lt_dlpreload_open (LT_STR(LTDLOPEN), loader_init_callback); } #endif /* HAVE_LIBDLLOADER */ } #ifdef LT_DEBUG_LOADERS lt_dlloader_dump(); #endif return errors; } int lt_dlexit (void) { /* shut down libltdl */ lt_dlloader *loader = 0; lt_dlhandle handle = handles; int errors = 0; if (!initialized) { LT__SETERROR (SHUTDOWN); ++errors; goto done; } /* shut down only at last call. */ if (--initialized == 0) { int level; while (handles && LT_DLIS_RESIDENT (handles)) { handles = handles->next; } /* close all modules */ for (level = 1; handle; ++level) { lt_dlhandle cur = handles; int saw_nonresident = 0; while (cur) { lt_dlhandle tmp = cur; cur = cur->next; if (!LT_DLIS_RESIDENT (tmp)) { saw_nonresident = 1; if (tmp->info.ref_count <= level) { if (lt_dlclose (tmp)) { ++errors; } /* Make sure that the handle pointed to by 'cur' still exists. lt_dlclose recursively closes dependent libraries which removes them from the linked list. One of these might be the one pointed to by 'cur'. */ if (cur) { for (tmp = handles; tmp; tmp = tmp->next) if (tmp == cur) break; if (! tmp) cur = handles; } } } } /* done if only resident modules are left */ if (!saw_nonresident) break; } /* When removing loaders, we can only find out failure by testing the error string, so avoid a spurious one from an earlier failed command. */ if (!errors) LT__SETERRORSTR (0); /* close all loaders */ for (loader = (lt_dlloader *) lt_dlloader_next (NULL); loader;) { lt_dlloader *next = (lt_dlloader *) lt_dlloader_next (loader); lt_dlvtable *vtable = (lt_dlvtable *) lt_dlloader_get (loader); if ((vtable = lt_dlloader_remove ((char *) vtable->name))) { FREE (vtable); } else { /* ignore errors due to resident modules */ const char *err; LT__GETERROR (err); if (err) ++errors; } loader = next; } FREE(user_search_path); } done: return errors; } /* Try VTABLE or, if VTABLE is NULL, all available loaders for FILENAME. If the library is not successfully loaded, return non-zero. Otherwise, the dlhandle is stored at the address given in PHANDLE. */ static int tryall_dlopen (lt_dlhandle *phandle, const char *filename, lt_dladvise advise, const lt_dlvtable *vtable) { lt_dlhandle handle = handles; const char * saved_error = 0; int errors = 0; #ifdef LT_DEBUG_LOADERS fprintf (stderr, "tryall_dlopen (%s, %s)\n", filename ? filename : "(null)", vtable ? vtable->name : "(ALL)"); #endif LT__GETERROR (saved_error); /* check whether the module was already opened */ for (;handle; handle = handle->next) { if ((handle->info.filename == filename) /* dlopen self: 0 == 0 */ || (handle->info.filename && filename && streq (handle->info.filename, filename))) { break; } } if (handle) { ++handle->info.ref_count; *phandle = handle; goto done; } handle = *phandle; if (filename) { /* Comment out the check of file permissions using access. This call seems to always return -1 with error EACCES. */ /* We need to catch missing file errors early so that file_not_found() can detect what happened. if (access (filename, R_OK) != 0) { LT__SETERROR (FILE_NOT_FOUND); ++errors; goto done; } */ handle->info.filename = lt__strdup (filename); if (!handle->info.filename) { ++errors; goto done; } } else { handle->info.filename = 0; } { lt_dlloader loader = lt_dlloader_next (0); const lt_dlvtable *loader_vtable; do { if (vtable) loader_vtable = vtable; else loader_vtable = lt_dlloader_get (loader); #ifdef LT_DEBUG_LOADERS fprintf (stderr, "Calling %s->module_open (%s)\n", (loader_vtable && loader_vtable->name) ? loader_vtable->name : "(null)", filename ? filename : "(null)"); #endif handle->module = (*loader_vtable->module_open) (loader_vtable->dlloader_data, filename, advise); #ifdef LT_DEBUG_LOADERS fprintf (stderr, " Result: %s\n", handle->module ? "Success" : "Failed"); #endif if (handle->module != 0) { if (advise) { handle->info.is_resident = advise->is_resident; handle->info.is_symglobal = advise->is_symglobal; handle->info.is_symlocal = advise->is_symlocal; } break; } } while (!vtable && (loader = lt_dlloader_next (loader))); /* If VTABLE was given but couldn't open the module, or VTABLE wasn't given but we exhausted all loaders without opening the module, bail out! */ if ((vtable && !handle->module) || (!vtable && !loader)) { FREE (handle->info.filename); ++errors; goto done; } handle->vtable = loader_vtable; } LT__SETERRORSTR (saved_error); done: return errors; } static int tryall_dlopen_module (lt_dlhandle *handle, const char *prefix, const char *dirname, const char *dlname, lt_dladvise advise) { int error = 0; char *filename = 0; size_t filename_len = 0; size_t dirname_len = LT_STRLEN (dirname); assert (handle); assert (dirname); assert (dlname); #if defined(LT_DIRSEP_CHAR) /* Only canonicalized names (i.e. with DIRSEP chars already converted) should make it into this function: */ assert (strchr (dirname, LT_DIRSEP_CHAR) == 0); #endif if (dirname_len > 0) if (dirname[dirname_len -1] == '/') --dirname_len; filename_len = dirname_len + 1 + LT_STRLEN (dlname); /* Allocate memory, and combine DIRNAME and MODULENAME into it. The PREFIX (if any) is handled below. */ filename = MALLOC (char, filename_len + 1); if (!filename) return 1; sprintf (filename, "%.*s/%s", (int) dirname_len, dirname, dlname); /* Now that we have combined DIRNAME and MODULENAME, if there is also a PREFIX to contend with, simply recurse with the arguments shuffled. Otherwise, attempt to open FILENAME as a module. */ if (prefix) { error += tryall_dlopen_module (handle, (const char *) 0, prefix, filename, advise); } else if (tryall_dlopen (handle, filename, advise, 0) != 0) { ++error; } FREE (filename); return error; } static int find_module (lt_dlhandle *handle, const char *dir, const char *libdir, const char *dlname, const char *old_name, int installed, lt_dladvise advise) { /* Try to open the old library first; if it was dlpreopened, we want the preopened version of it, even if a dlopenable module is available. */ if (old_name && tryall_dlopen (handle, old_name, advise, lt_dlloader_find ("lt_preopen") ) == 0) { return 0; } /* Try to open the dynamic library. */ if (dlname) { /* try to open the installed module */ if (installed && libdir) { if (tryall_dlopen_module (handle, (const char *) 0, libdir, dlname, advise) == 0) return 0; } /* try to open the not-installed module */ if (!installed) { if (tryall_dlopen_module (handle, dir, objdir, dlname, advise) == 0) return 0; } /* maybe it was moved to another directory */ { if (dir && (tryall_dlopen_module (handle, (const char *) 0, dir, dlname, advise) == 0)) return 0; } } return 1; } static int canonicalize_path (const char *path, char **pcanonical) { char *canonical = 0; assert (path && *path); assert (pcanonical); canonical = MALLOC (char, 1+ LT_STRLEN (path)); if (!canonical) return 1; { size_t dest = 0; size_t src; for (src = 0; path[src] != LT_EOS_CHAR; ++src) { /* Path separators are not copied to the beginning or end of the destination, or if another separator would follow immediately. */ if (path[src] == LT_PATHSEP_CHAR) { if ((dest == 0) || (path[1+ src] == LT_PATHSEP_CHAR) || (path[1+ src] == LT_EOS_CHAR)) continue; } /* Anything other than a directory separator is copied verbatim. */ if ((path[src] != '/') #if defined(LT_DIRSEP_CHAR) && (path[src] != LT_DIRSEP_CHAR) #endif ) { canonical[dest++] = path[src]; } /* Directory separators are converted and copied only if they are not at the end of a path -- i.e. before a path separator or NULL terminator. */ else if ((path[1+ src] != LT_PATHSEP_CHAR) && (path[1+ src] != LT_EOS_CHAR) #if defined(LT_DIRSEP_CHAR) && (path[1+ src] != LT_DIRSEP_CHAR) #endif && (path[1+ src] != '/')) { canonical[dest++] = '/'; } } /* Add an end-of-string marker at the end. */ canonical[dest] = LT_EOS_CHAR; } /* Assign new value. */ *pcanonical = canonical; return 0; } static int argzize_path (const char *path, char **pargz, size_t *pargz_len) { error_t error; assert (path); assert (pargz); assert (pargz_len); if ((error = argz_create_sep (path, LT_PATHSEP_CHAR, pargz, pargz_len))) { switch (error) { case ENOMEM: LT__SETERROR (NO_MEMORY); break; default: LT__SETERROR (UNKNOWN); break; } return 1; } return 0; } /* Repeatedly call FUNC with each LT_PATHSEP_CHAR delimited element of SEARCH_PATH and references to DATA1 and DATA2, until FUNC returns non-zero or all elements are exhausted. If BASE_NAME is non-NULL, it is appended to each SEARCH_PATH element before FUNC is called. */ static int foreach_dirinpath (const char *search_path, const char *base_name, foreach_callback_func *func, void *data1, void *data2) { int result = 0; size_t filenamesize = 0; size_t lenbase = LT_STRLEN (base_name); size_t argz_len = 0; char *argz = 0; char *filename = 0; char *canonical = 0; if (!search_path || !*search_path) { LT__SETERROR (FILE_NOT_FOUND); goto cleanup; } if (canonicalize_path (search_path, &canonical) != 0) goto cleanup; if (argzize_path (canonical, &argz, &argz_len) != 0) goto cleanup; { char *dir_name = 0; while ((dir_name = argz_next (argz, argz_len, dir_name))) { size_t lendir = LT_STRLEN (dir_name); if (1+ lendir + lenbase >= filenamesize) { FREE (filename); filenamesize = 1+ lendir + 1+ lenbase; /* "/d" + '/' + "f" + '\0' */ filename = MALLOC (char, filenamesize); if (!filename) goto cleanup; } assert (filenamesize > lendir); strcpy (filename, dir_name); if (base_name && *base_name) { if (filename[lendir -1] != '/') filename[lendir++] = '/'; strcpy (filename +lendir, base_name); } if ((result = (*func) (filename, data1, data2))) { break; } } } cleanup: FREE (argz); FREE (canonical); FREE (filename); return result; } /* If FILEPATH can be opened, store the name of the directory component in DATA1, and the opened FILE* structure address in DATA2. Otherwise DATA1 is unchanged, but DATA2 is set to a pointer to NULL. */ static int find_file_callback (char *filename, void *data1, void *data2) { char **pdir = (char **) data1; FILE **pfile = (FILE **) data2; int is_done = 0; assert (filename && *filename); assert (pdir); assert (pfile); if ((*pfile = fopen (filename, LT_READTEXT_MODE))) { char *dirend = strrchr (filename, '/'); if (dirend > filename) *dirend = LT_EOS_CHAR; FREE (*pdir); *pdir = lt__strdup (filename); is_done = (*pdir == 0) ? -1 : 1; } return is_done; } static FILE * find_file (const char *search_path, const char *base_name, char **pdir) { FILE *file = 0; foreach_dirinpath (search_path, base_name, find_file_callback, pdir, &file); return file; } static int find_handle_callback (char *filename, void *data, void *data2) { lt_dlhandle *phandle = (lt_dlhandle *) data; int notfound = access (filename, R_OK); lt_dladvise advise = (lt_dladvise) data2; /* Bail out if file cannot be read... */ if (notfound) return 0; /* Try to dlopen the file, but do not continue searching in any case. */ if (tryall_dlopen (phandle, filename, advise, 0) != 0) *phandle = 0; return 1; } /* If HANDLE was found return it, otherwise return 0. If HANDLE was found but could not be opened, *HANDLE will be set to 0. */ static lt_dlhandle * find_handle (const char *search_path, const char *base_name, lt_dlhandle *phandle, lt_dladvise advise) { if (!search_path) return 0; if (!foreach_dirinpath (search_path, base_name, find_handle_callback, phandle, advise)) return 0; return phandle; } #if !defined(LTDL_DLOPEN_DEPLIBS) static int load_deplibs (lt_dlhandle handle, char * LT__UNUSED deplibs) { handle->depcount = 0; return 0; } #else /* defined(LTDL_DLOPEN_DEPLIBS) */ static int load_deplibs (lt_dlhandle handle, char *deplibs) { char *p, *save_search_path = 0; int depcount = 0; int i; char **names = 0; int errors = 0; handle->depcount = 0; if (!deplibs) { return errors; } ++errors; if (user_search_path) { save_search_path = lt__strdup (user_search_path); if (!save_search_path) goto cleanup; } /* extract search paths and count deplibs */ p = deplibs; while (*p) { if (!isspace ((unsigned char) *p)) { char *end = p+1; while (*end && !isspace((unsigned char) *end)) { ++end; } if (strncmp(p, "-L", 2) == 0 || strncmp(p, "-R", 2) == 0) { char save = *end; *end = 0; /* set a temporary string terminator */ if (lt_dladdsearchdir(p+2)) { goto cleanup; } *end = save; } else { ++depcount; } p = end; } else { ++p; } } if (!depcount) { errors = 0; goto cleanup; } names = MALLOC (char *, depcount); if (!names) goto cleanup; /* now only extract the actual deplibs */ depcount = 0; p = deplibs; while (*p) { if (isspace ((unsigned char) *p)) { ++p; } else { char *end = p+1; while (*end && !isspace ((unsigned char) *end)) { ++end; } if (strncmp(p, "-L", 2) != 0 && strncmp(p, "-R", 2) != 0) { char *name; char save = *end; *end = 0; /* set a temporary string terminator */ if (strncmp(p, "-l", 2) == 0) { size_t name_len = 3+ /* "lib" */ LT_STRLEN (p + 2); name = MALLOC (char, 1+ name_len); if (name) sprintf (name, "lib%s", p+2); } else name = lt__strdup(p); if (!name) goto cleanup_names; names[depcount++] = name; *end = save; } p = end; } } /* load the deplibs (in reverse order) At this stage, don't worry if the deplibs do not load correctly, they may already be statically linked into the loading application for instance. There will be a more enlightening error message later on if the loaded module cannot resolve all of its symbols. */ if (depcount) { lt_dlhandle cur = handle; int j = 0; cur->deplibs = MALLOC (lt_dlhandle, depcount); if (!cur->deplibs) goto cleanup_names; for (i = 0; i < depcount; ++i) { cur->deplibs[j] = lt_dlopenext(names[depcount-1-i]); if (cur->deplibs[j]) { ++j; } } cur->depcount = j; /* Number of successfully loaded deplibs */ errors = 0; } cleanup_names: for (i = 0; i < depcount; ++i) { FREE (names[i]); } cleanup: FREE (names); /* restore the old search path */ if (save_search_path) { MEMREASSIGN (user_search_path, save_search_path); } return errors; } #endif /* defined(LTDL_DLOPEN_DEPLIBS) */ static int unload_deplibs (lt_dlhandle handle) { int i; int errors = 0; lt_dlhandle cur = handle; if (cur->depcount) { for (i = 0; i < cur->depcount; ++i) { if (!LT_DLIS_RESIDENT (cur->deplibs[i])) { errors += lt_dlclose (cur->deplibs[i]); } } FREE (cur->deplibs); } return errors; } static int trim (char **dest, const char *str) { /* remove the leading and trailing "'" from str and store the result in dest */ const char *end = strrchr (str, '\''); size_t len = LT_STRLEN (str); char *tmp; FREE (*dest); if (!end || end == str) return 1; if (len > 3 && str[0] == '\'') { tmp = MALLOC (char, end - str); if (!tmp) return 1; memcpy(tmp, &str[1], (end - str) - 1); tmp[(end - str) - 1] = LT_EOS_CHAR; *dest = tmp; } else { *dest = 0; } return 0; } /* Read the .la file FILE. */ static int parse_dotla_file(FILE *file, char **dlname, char **libdir, char **deplibs, char **old_name, int *installed) { int errors = 0; size_t line_len = LT_FILENAME_MAX; char * line = MALLOC (char, line_len); if (!line) { LT__SETERROR (FILE_NOT_FOUND); return 1; } while (!feof (file)) { line[line_len-2] = '\0'; if (!fgets (line, (int) line_len, file)) { break; } /* Handle the case where we occasionally need to read a line that is longer than the initial buffer size. Behave even if the file contains NUL bytes due to corruption. */ while (line[line_len-2] != '\0' && line[line_len-2] != '\n' && !feof (file)) { line = REALLOC (char, line, line_len *2); if (!line) { ++errors; goto cleanup; } line[line_len * 2 - 2] = '\0'; if (!fgets (&line[line_len -1], (int) line_len +1, file)) { break; } line_len *= 2; } if (line[0] == '\n' || line[0] == '#') { continue; } #undef STR_DLNAME #define STR_DLNAME "dlname=" if (strncmp (line, STR_DLNAME, sizeof (STR_DLNAME) - 1) == 0) { errors += trim (dlname, &line[sizeof (STR_DLNAME) - 1]); } #undef STR_OLD_LIBRARY #define STR_OLD_LIBRARY "old_library=" else if (strncmp (line, STR_OLD_LIBRARY, sizeof (STR_OLD_LIBRARY) - 1) == 0) { errors += trim (old_name, &line[sizeof (STR_OLD_LIBRARY) - 1]); } /* Windows native tools do not understand the POSIX paths we store in libdir. */ #undef STR_LIBDIR #define STR_LIBDIR "libdir=" else if (strncmp (line, STR_LIBDIR, sizeof (STR_LIBDIR) - 1) == 0) { errors += trim (libdir, &line[sizeof(STR_LIBDIR) - 1]); #ifdef __WINDOWS__ /* Disallow following unix-style paths on MinGW. */ if (*libdir && (**libdir == '/' || **libdir == '\\')) **libdir = '\0'; #endif } #undef STR_DL_DEPLIBS #define STR_DL_DEPLIBS "dependency_libs=" else if (strncmp (line, STR_DL_DEPLIBS, sizeof (STR_DL_DEPLIBS) - 1) == 0) { errors += trim (deplibs, &line[sizeof (STR_DL_DEPLIBS) - 1]); } else if (streq (line, "installed=yes\n")) { *installed = 1; } else if (streq (line, "installed=no\n")) { *installed = 0; } #undef STR_LIBRARY_NAMES #define STR_LIBRARY_NAMES "library_names=" else if (!*dlname && strncmp (line, STR_LIBRARY_NAMES, sizeof (STR_LIBRARY_NAMES) - 1) == 0) { char *last_libname; errors += trim (dlname, &line[sizeof (STR_LIBRARY_NAMES) - 1]); if (!errors && *dlname && (last_libname = strrchr (*dlname, ' ')) != 0) { last_libname = lt__strdup (last_libname + 1); if (!last_libname) { ++errors; goto cleanup; } MEMREASSIGN (*dlname, last_libname); } } if (errors) break; } cleanup: FREE (line); return errors; } /* Try to open FILENAME as a module. */ static int try_dlopen (lt_dlhandle *phandle, const char *filename, const char *ext, lt_dladvise advise) { const char * saved_error = 0; char * archive_name = 0; char * canonical = 0; char * base_name = 0; char * dir = 0; char * name = 0; char * attempt = 0; int errors = 0; lt_dlhandle newhandle; assert (phandle); assert (*phandle == 0); #ifdef LT_DEBUG_LOADERS fprintf (stderr, "try_dlopen (%s, %s)\n", filename ? filename : "(null)", ext ? ext : "(null)"); #endif LT__GETERROR (saved_error); /* dlopen self? */ if (!filename) { *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle)); if (*phandle == 0) return 1; newhandle = *phandle; /* lt_dlclose()ing yourself is very bad! Disallow it. */ newhandle->info.is_resident = 1; if (tryall_dlopen (&newhandle, 0, advise, 0) != 0) { FREE (*phandle); return 1; } goto register_handle; } assert (filename && *filename); if (ext) { attempt = MALLOC (char, LT_STRLEN (filename) + LT_STRLEN (ext) + 1); if (!attempt) return 1; sprintf(attempt, "%s%s", filename, ext); } else { attempt = lt__strdup (filename); if (!attempt) return 1; } /* Doing this immediately allows internal functions to safely assume only canonicalized paths are passed. */ if (canonicalize_path (attempt, &canonical) != 0) { ++errors; goto cleanup; } /* If the canonical module name is a path (relative or absolute) then split it into a directory part and a name part. */ base_name = strrchr (canonical, '/'); if (base_name) { size_t dirlen = (1+ base_name) - canonical; dir = MALLOC (char, 1+ dirlen); if (!dir) { ++errors; goto cleanup; } strncpy (dir, canonical, dirlen); dir[dirlen] = LT_EOS_CHAR; ++base_name; } else MEMREASSIGN (base_name, canonical); assert (base_name && *base_name); ext = strrchr (base_name, '.'); if (!ext) { ext = base_name + LT_STRLEN (base_name); } /* extract the module name from the file name */ name = MALLOC (char, ext - base_name + 1); if (!name) { ++errors; goto cleanup; } /* canonicalize the module name */ { int i; for (i = 0; i < ext - base_name; ++i) { if (isalnum ((unsigned char)(base_name[i]))) { name[i] = base_name[i]; } else { name[i] = '_'; } } name[ext - base_name] = LT_EOS_CHAR; } /* Before trawling through the filesystem in search of a module, check whether we are opening a preloaded module. */ if (!dir) { const lt_dlvtable *vtable = lt_dlloader_find ("lt_preopen"); if (vtable) { /* libprefix + name + "." + libext + NULL */ archive_name = MALLOC (char, strlen (libprefix) + LT_STRLEN (name) + strlen (libext) + 2); *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle)); if ((*phandle == NULL) || (archive_name == NULL)) { ++errors; goto cleanup; } newhandle = *phandle; /* Preloaded modules are always named according to their old archive name. */ if (strncmp(name, "lib", 3) == 0) { sprintf (archive_name, "%s%s.%s", libprefix, name + 3, libext); } else { sprintf (archive_name, "%s.%s", name, libext); } if (tryall_dlopen (&newhandle, archive_name, advise, vtable) == 0) { goto register_handle; } /* If we're still here, there was no matching preloaded module, so put things back as we found them, and continue searching. */ FREE (*phandle); newhandle = NULL; } } /* If we are allowing only preloaded modules, and we didn't find anything yet, give up on the search here. */ if (advise && advise->try_preload_only) { goto cleanup; } /* Check whether we are opening a libtool module (.la extension). */ if (ext && streq (ext, archive_ext)) { /* this seems to be a libtool module */ FILE * file = 0; char * dlname = 0; char * old_name = 0; char * libdir = 0; char * deplibs = 0; /* if we can't find the installed flag, it is probably an installed libtool archive, produced with an old version of libtool */ int installed = 1; /* Now try to open the .la file. If there is no directory name component, try to find it first in user_search_path and then other prescribed paths. Otherwise (or in any case if the module was not yet found) try opening just the module name as passed. */ if (!dir) { const char *search_path = user_search_path; if (search_path) file = find_file (user_search_path, base_name, &dir); if (!file) { search_path = getenv (LTDL_SEARCHPATH_VAR); if (search_path) file = find_file (search_path, base_name, &dir); } #if defined(LT_MODULE_PATH_VAR) if (!file) { search_path = getenv (LT_MODULE_PATH_VAR); if (search_path) file = find_file (search_path, base_name, &dir); } #endif #if defined(LT_DLSEARCH_PATH) if (!file && *sys_dlsearch_path) { file = find_file (sys_dlsearch_path, base_name, &dir); } #endif } else { file = fopen (attempt, LT_READTEXT_MODE); } /* If we didn't find the file by now, it really isn't there. Set the status flag, and bail out. */ if (!file) { LT__SETERROR (FILE_NOT_FOUND); ++errors; goto cleanup; } /* read the .la file */ if (parse_dotla_file(file, &dlname, &libdir, &deplibs, &old_name, &installed) != 0) ++errors; fclose (file); /* allocate the handle */ *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle)); if (*phandle == 0) ++errors; if (errors) { FREE (dlname); FREE (old_name); FREE (libdir); FREE (deplibs); FREE (*phandle); goto cleanup; } assert (*phandle); if (load_deplibs (*phandle, deplibs) == 0) { newhandle = *phandle; /* find_module may replace newhandle */ if (find_module (&newhandle, dir, libdir, dlname, old_name, installed, advise)) { unload_deplibs (*phandle); ++errors; } } else { ++errors; } FREE (dlname); FREE (old_name); FREE (libdir); FREE (deplibs); if (errors) { FREE (*phandle); goto cleanup; } if (*phandle != newhandle) { unload_deplibs (*phandle); } } else { /* not a libtool module */ *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle)); if (*phandle == 0) { ++errors; goto cleanup; } newhandle = *phandle; /* If the module has no directory name component, try to find it first in user_search_path and then other prescribed paths. Otherwise (or in any case if the module was not yet found) try opening just the module name as passed. */ if ((dir || (!find_handle (user_search_path, base_name, &newhandle, advise) && !find_handle (getenv (LTDL_SEARCHPATH_VAR), base_name, &newhandle, advise) #if defined(LT_MODULE_PATH_VAR) && !find_handle (getenv (LT_MODULE_PATH_VAR), base_name, &newhandle, advise) #endif #if defined(LT_DLSEARCH_PATH) && !find_handle (sys_dlsearch_path, base_name, &newhandle, advise) #endif ))) { if (tryall_dlopen (&newhandle, attempt, advise, 0) != 0) { newhandle = NULL; } } if (!newhandle) { FREE (*phandle); ++errors; goto cleanup; } } register_handle: MEMREASSIGN (*phandle, newhandle); if ((*phandle)->info.ref_count == 0) { (*phandle)->info.ref_count = 1; MEMREASSIGN ((*phandle)->info.name, name); (*phandle)->next = handles; handles = *phandle; } LT__SETERRORSTR (saved_error); cleanup: FREE (dir); FREE (attempt); FREE (name); if (!canonical) /* was MEMREASSIGNed */ FREE (base_name); FREE (canonical); FREE (archive_name); return errors; } /* If the last error message stored was `FILE_NOT_FOUND', then return non-zero. */ static int file_not_found (void) { const char *error = 0; LT__GETERROR (error); if (error == LT__STRERROR (FILE_NOT_FOUND)) return 1; return 0; } /* Unless FILENAME already bears a suitable library extension, then return 0. */ static int has_library_ext (const char *filename) { const char * ext = 0; assert (filename); ext = strrchr (filename, '.'); if (ext && ((streq (ext, archive_ext)) #if defined(LT_MODULE_EXT) || (streq (ext, shlib_ext)) #endif #if defined(LT_SHARED_EXT) || (streq (ext, shared_ext)) #endif )) { return 1; } return 0; } /* Initialise and configure a user lt_dladvise opaque object. */ int lt_dladvise_init (lt_dladvise *padvise) { lt_dladvise advise = (lt_dladvise) lt__zalloc (sizeof (struct lt__advise)); *padvise = advise; return (advise ? 0 : 1); } int lt_dladvise_destroy (lt_dladvise *padvise) { if (padvise) FREE(*padvise); return 0; } int lt_dladvise_ext (lt_dladvise *padvise) { assert (padvise && *padvise); (*padvise)->try_ext = 1; return 0; } int lt_dladvise_resident (lt_dladvise *padvise) { assert (padvise && *padvise); (*padvise)->is_resident = 1; return 0; } int lt_dladvise_local (lt_dladvise *padvise) { assert (padvise && *padvise); (*padvise)->is_symlocal = 1; return 0; } int lt_dladvise_global (lt_dladvise *padvise) { assert (padvise && *padvise); (*padvise)->is_symglobal = 1; return 0; } int lt_dladvise_preload (lt_dladvise *padvise) { assert (padvise && *padvise); (*padvise)->try_preload_only = 1; return 0; } /* Libtool-1.5.x interface for loading a new module named FILENAME. */ lt_dlhandle lt_dlopen (const char *filename) { return lt_dlopenadvise (filename, NULL); } /* If FILENAME has an ARCHIVE_EXT or MODULE_EXT extension, try to open the FILENAME as passed. Otherwise try appending ARCHIVE_EXT, and if a file is still not found try again with MODULE_EXT appended instead. */ lt_dlhandle lt_dlopenext (const char *filename) { lt_dlhandle handle = 0; lt_dladvise advise; if (!lt_dladvise_init (&advise) && !lt_dladvise_ext (&advise)) handle = lt_dlopenadvise (filename, advise); lt_dladvise_destroy (&advise); return handle; } lt_dlhandle lt_dlopenadvise (const char *filename, lt_dladvise advise) { lt_dlhandle handle = 0; int errors = 0; const char * saved_error = 0; LT__GETERROR (saved_error); /* Can't have symbols hidden and visible at the same time! */ if (advise && advise->is_symlocal && advise->is_symglobal) { LT__SETERROR (CONFLICTING_FLAGS); return 0; } if (!filename || !advise || !advise->try_ext || has_library_ext (filename)) { /* Just incase we missed a code path in try_dlopen() that reports an error, but forgot to reset handle... */ if (try_dlopen (&handle, filename, NULL, advise) != 0) return 0; return handle; } else if (filename && *filename) { /* First try appending ARCHIVE_EXT. */ errors += try_dlopen (&handle, filename, archive_ext, advise); /* If we found FILENAME, stop searching -- whether we were able to load the file as a module or not. If the file exists but loading failed, it is better to return an error message here than to report FILE_NOT_FOUND when the alternatives (foo.so etc) are not in the module search path. */ if (handle || ((errors > 0) && !file_not_found ())) return handle; #if defined(LT_MODULE_EXT) /* Try appending SHLIB_EXT. */ LT__SETERRORSTR (saved_error); errors = try_dlopen (&handle, filename, shlib_ext, advise); /* As before, if the file was found but loading failed, return now with the current error message. */ if (handle || ((errors > 0) && !file_not_found ())) return handle; #endif #if defined(LT_SHARED_EXT) /* Try appending SHARED_EXT. */ LT__SETERRORSTR (saved_error); errors = try_dlopen (&handle, filename, shared_ext, advise); /* As before, if the file was found but loading failed, return now with the current error message. */ if (handle || ((errors > 0) && !file_not_found ())) return handle; #endif } /* Still here? Then we really did fail to locate any of the file names we tried. */ LT__SETERROR (FILE_NOT_FOUND); return 0; } static int lt_argz_insert (char **pargz, size_t *pargz_len, char *before, const char *entry) { error_t error; /* Prior to Sep 8, 2005, newlib had a bug where argz_insert(pargz, pargz_len, NULL, entry) failed with EINVAL. */ if (before) error = argz_insert (pargz, pargz_len, before, entry); else error = argz_append (pargz, pargz_len, entry, 1 + strlen (entry)); if (error) { switch (error) { case ENOMEM: LT__SETERROR (NO_MEMORY); break; default: LT__SETERROR (UNKNOWN); break; } return 1; } return 0; } static int lt_argz_insertinorder (char **pargz, size_t *pargz_len, const char *entry) { char *before = 0; assert (pargz); assert (pargz_len); assert (entry && *entry); if (*pargz) while ((before = argz_next (*pargz, *pargz_len, before))) { int cmp = strcmp (entry, before); if (cmp < 0) break; if (cmp == 0) return 0; /* No duplicates! */ } return lt_argz_insert (pargz, pargz_len, before, entry); } static int lt_argz_insertdir (char **pargz, size_t *pargz_len, const char *dirnam, struct dirent *dp) { char *buf = 0; size_t buf_len = 0; char *end = 0; size_t end_offset = 0; size_t dir_len = 0; int errors = 0; assert (pargz); assert (pargz_len); assert (dp); dir_len = LT_STRLEN (dirnam); end = dp->d_name + D_NAMLEN(dp); /* Ignore version numbers. */ { char *p; for (p = end; p -1 > dp->d_name; --p) if (strchr (".0123456789", p[-1]) == 0) break; if (*p == '.') end = p; } /* Ignore filename extension. */ { char *p; for (p = end -1; p > dp->d_name; --p) if (*p == '.') { end = p; break; } } /* Prepend the directory name. */ end_offset = end - dp->d_name; buf_len = dir_len + 1+ end_offset; buf = MALLOC (char, 1+ buf_len); if (!buf) return ++errors; assert (buf); strcpy (buf, dirnam); strcat (buf, "/"); strncat (buf, dp->d_name, end_offset); buf[buf_len] = LT_EOS_CHAR; /* Try to insert (in order) into ARGZ/ARGZ_LEN. */ if (lt_argz_insertinorder (pargz, pargz_len, buf) != 0) ++errors; FREE (buf); return errors; } static int list_files_by_dir (const char *dirnam, char **pargz, size_t *pargz_len) { DIR *dirp = 0; int errors = 0; assert (dirnam && *dirnam); assert (pargz); assert (pargz_len); assert (dirnam[LT_STRLEN(dirnam) -1] != '/'); dirp = opendir (dirnam); if (dirp) { struct dirent *dp = 0; while ((dp = readdir (dirp))) if (dp->d_name[0] != '.') if (lt_argz_insertdir (pargz, pargz_len, dirnam, dp)) { ++errors; break; } closedir (dirp); } else ++errors; return errors; } /* If there are any files in DIRNAME, call the function passed in DATA1 (with the name of each file and DATA2 as arguments). */ static int foreachfile_callback (char *dirname, void *data1, void *data2) { file_worker_func *func = *(file_worker_func **) data1; int is_done = 0; char *argz = 0; size_t argz_len = 0; if (list_files_by_dir (dirname, &argz, &argz_len) != 0) goto cleanup; if (!argz) goto cleanup; { char *filename = 0; while ((filename = argz_next (argz, argz_len, filename))) if ((is_done = (*func) (filename, data2))) break; } cleanup: FREE (argz); return is_done; } /* Call FUNC for each unique extensionless file in SEARCH_PATH, along with DATA. The filenames passed to FUNC would be suitable for passing to lt_dlopenext. The extensions are stripped so that individual modules do not generate several entries (e.g. libfoo.la, libfoo.so, libfoo.so.1, libfoo.so.1.0.0). If SEARCH_PATH is NULL, then the same directories that lt_dlopen would search are examined. */ int lt_dlforeachfile (const char *search_path, int (*func) (const char *filename, void *data), void *data) { int is_done = 0; file_worker_func **fpptr = &func; if (search_path) { /* If a specific path was passed, search only the directories listed in it. */ is_done = foreach_dirinpath (search_path, 0, foreachfile_callback, fpptr, data); } else { /* Otherwise search the default paths. */ is_done = foreach_dirinpath (user_search_path, 0, foreachfile_callback, fpptr, data); if (!is_done) { is_done = foreach_dirinpath (getenv(LTDL_SEARCHPATH_VAR), 0, foreachfile_callback, fpptr, data); } #if defined(LT_MODULE_PATH_VAR) if (!is_done) { is_done = foreach_dirinpath (getenv(LT_MODULE_PATH_VAR), 0, foreachfile_callback, fpptr, data); } #endif #if defined(LT_DLSEARCH_PATH) if (!is_done && *sys_dlsearch_path) { is_done = foreach_dirinpath (sys_dlsearch_path, 0, foreachfile_callback, fpptr, data); } #endif } return is_done; } int lt_dlclose (lt_dlhandle handle) { lt_dlhandle cur, last; int errors = 0; /* check whether the handle is valid */ last = cur = handles; while (cur && handle != cur) { last = cur; cur = cur->next; } if (!cur) { LT__SETERROR (INVALID_HANDLE); ++errors; goto done; } cur = handle; cur->info.ref_count--; /* Note that even with resident modules, we must track the ref_count correctly incase the user decides to reset the residency flag later (even though the API makes no provision for that at the moment). */ if (cur->info.ref_count <= 0 && !LT_DLIS_RESIDENT (cur)) { lt_user_data data = cur->vtable->dlloader_data; if (cur != handles) { last->next = cur->next; } else { handles = cur->next; } errors += cur->vtable->module_close (data, cur->module); errors += unload_deplibs (handle); /* It is up to the callers to free the data itself. */ FREE (cur->interface_data); FREE (cur->info.filename); FREE (cur->info.name); FREE (cur); goto done; } if (LT_DLIS_RESIDENT (handle)) { LT__SETERROR (CLOSE_RESIDENT_MODULE); ++errors; } done: return errors; } void * lt_dlsym (lt_dlhandle place, const char *symbol) { size_t lensym; char lsym[LT_SYMBOL_LENGTH]; char *sym; void *address; lt_user_data data; lt_dlhandle handle; if (!place) { LT__SETERROR (INVALID_HANDLE); return 0; } handle = place; if (!symbol) { LT__SETERROR (SYMBOL_NOT_FOUND); return 0; } lensym = LT_STRLEN (symbol) + LT_STRLEN (handle->vtable->sym_prefix) + LT_STRLEN (handle->info.name); if (lensym + LT_SYMBOL_OVERHEAD < LT_SYMBOL_LENGTH) { sym = lsym; } else { sym = MALLOC (char, lensym + LT_SYMBOL_OVERHEAD + 1); if (!sym) { LT__SETERROR (BUFFER_OVERFLOW); return 0; } } data = handle->vtable->dlloader_data; if (handle->info.name) { const char *saved_error; LT__GETERROR (saved_error); /* this is a libtool module */ if (handle->vtable->sym_prefix) { strcpy(sym, handle->vtable->sym_prefix); strcat(sym, handle->info.name); } else { strcpy(sym, handle->info.name); } strcat(sym, "_LTX_"); strcat(sym, symbol); /* try "modulename_LTX_symbol" */ address = handle->vtable->find_sym (data, handle->module, sym); if (address) { if (sym != lsym) { FREE (sym); } return address; } LT__SETERRORSTR (saved_error); } /* otherwise try "symbol" */ if (handle->vtable->sym_prefix) { strcpy(sym, handle->vtable->sym_prefix); strcat(sym, symbol); } else { strcpy(sym, symbol); } address = handle->vtable->find_sym (data, handle->module, sym); if (sym != lsym) { FREE (sym); } return address; } const char * lt_dlerror (void) { const char *error; LT__GETERROR (error); LT__SETERRORSTR (0); return error; } static int lt_dlpath_insertdir (char **ppath, char *before, const char *dir) { int errors = 0; char *canonical = 0; char *argz = 0; size_t argz_len = 0; assert (ppath); assert (dir && *dir); if (canonicalize_path (dir, &canonical) != 0) { ++errors; goto cleanup; } assert (canonical && *canonical); /* If *PPATH is empty, set it to DIR. */ if (*ppath == 0) { assert (!before); /* BEFORE cannot be set without PPATH. */ assert (dir); /* Without DIR, don't call this function! */ *ppath = lt__strdup (dir); if (*ppath == 0) ++errors; goto cleanup; } assert (ppath && *ppath); if (argzize_path (*ppath, &argz, &argz_len) != 0) { ++errors; goto cleanup; } /* Convert BEFORE into an equivalent offset into ARGZ. This only works if *PPATH is already canonicalized, and hence does not change length with respect to ARGZ. We canonicalize each entry as it is added to the search path, and don't call this function with (uncanonicalized) user paths, so this is a fair assumption. */ if (before) { assert (*ppath <= before); assert ((int) (before - *ppath) <= (int) strlen (*ppath)); before = before - *ppath + argz; } if (lt_argz_insert (&argz, &argz_len, before, dir) != 0) { ++errors; goto cleanup; } argz_stringify (argz, argz_len, LT_PATHSEP_CHAR); MEMREASSIGN(*ppath, argz); cleanup: FREE (argz); FREE (canonical); return errors; } int lt_dladdsearchdir (const char *search_dir) { int errors = 0; if (search_dir && *search_dir) { if (lt_dlpath_insertdir (&user_search_path, 0, search_dir) != 0) ++errors; } return errors; } int lt_dlinsertsearchdir (const char *before, const char *search_dir) { int errors = 0; if (before) { if ((before < user_search_path) || (before >= user_search_path + LT_STRLEN (user_search_path))) { LT__SETERROR (INVALID_POSITION); return 1; } } if (search_dir && *search_dir) { if (lt_dlpath_insertdir (&user_search_path, (char *) before, search_dir) != 0) { ++errors; } } return errors; } int lt_dlsetsearchpath (const char *search_path) { int errors = 0; FREE (user_search_path); if (!search_path || !LT_STRLEN (search_path)) { return errors; } if (canonicalize_path (search_path, &user_search_path) != 0) ++errors; return errors; } const char * lt_dlgetsearchpath (void) { const char *saved_path; saved_path = user_search_path; return saved_path; } int lt_dlmakeresident (lt_dlhandle handle) { int errors = 0; if (!handle) { LT__SETERROR (INVALID_HANDLE); ++errors; } else { handle->info.is_resident = 1; } return errors; } int lt_dlisresident (lt_dlhandle handle) { if (!handle) { LT__SETERROR (INVALID_HANDLE); return -1; } return LT_DLIS_RESIDENT (handle); } /* --- MODULE INFORMATION --- */ typedef struct { const char *id_string; lt_dlhandle_interface *iface; } lt__interface_id; lt_dlinterface_id lt_dlinterface_register (const char *id_string, lt_dlhandle_interface *iface) { lt__interface_id *interface_id = (lt__interface_id *) lt__malloc (sizeof *interface_id); /* If lt__malloc fails, it will LT__SETERROR (NO_MEMORY), which can then be detected with lt_dlerror() if we return 0. */ if (interface_id) { interface_id->id_string = lt__strdup (id_string); if (!interface_id->id_string) FREE (interface_id); else interface_id->iface = iface; } return (lt_dlinterface_id) interface_id; } void lt_dlinterface_free (lt_dlinterface_id key) { lt__interface_id *interface_id = (lt__interface_id *)key; FREE (interface_id->id_string); FREE (interface_id); } void * lt_dlcaller_set_data (lt_dlinterface_id key, lt_dlhandle handle, void *data) { int n_elements = 0; void *stale = (void *) 0; lt_dlhandle cur = handle; int i; if (cur->interface_data) while (cur->interface_data[n_elements].key) ++n_elements; for (i = 0; i < n_elements; ++i) { if (cur->interface_data[i].key == key) { stale = cur->interface_data[i].data; break; } } /* Ensure that there is enough room in this handle's interface_data array to accept a new element (and an empty end marker). */ if (i == n_elements) { lt_interface_data *temp = REALLOC (lt_interface_data, cur->interface_data, 2+ n_elements); if (!temp) { stale = 0; goto done; } cur->interface_data = temp; /* We only need this if we needed to allocate a new interface_data. */ cur->interface_data[i].key = key; cur->interface_data[1+ i].key = 0; } cur->interface_data[i].data = data; done: return stale; } void * lt_dlcaller_get_data (lt_dlinterface_id key, lt_dlhandle handle) { void *result = (void *) 0; lt_dlhandle cur = handle; /* Locate the index of the element with a matching KEY. */ if (cur->interface_data) { int i; for (i = 0; cur->interface_data[i].key; ++i) { if (cur->interface_data[i].key == key) { result = cur->interface_data[i].data; break; } } } return result; } const lt_dlinfo * lt_dlgetinfo (lt_dlhandle handle) { if (!handle) { LT__SETERROR (INVALID_HANDLE); return 0; } return &(handle->info); } lt_dlhandle lt_dlhandle_iterate (lt_dlinterface_id iface, lt_dlhandle place) { lt_dlhandle handle = place; lt__interface_id *iterator = (lt__interface_id *) iface; assert (iface); /* iface is a required argument */ if (!handle) handle = handles; else handle = handle->next; /* advance while the interface check fails */ while (handle && iterator->iface && ((*iterator->iface) (handle, iterator->id_string) != 0)) { handle = handle->next; } return handle; } lt_dlhandle lt_dlhandle_fetch (lt_dlinterface_id iface, const char *module_name) { lt_dlhandle handle = 0; assert (iface); /* iface is a required argument */ while ((handle = lt_dlhandle_iterate (iface, handle))) { lt_dlhandle cur = handle; if (cur && cur->info.name && streq (cur->info.name, module_name)) break; } return handle; } int lt_dlhandle_map (lt_dlinterface_id iface, int (*func) (lt_dlhandle handle, void *data), void *data) { lt__interface_id *iterator = (lt__interface_id *) iface; lt_dlhandle cur = handles; assert (iface); /* iface is a required argument */ while (cur) { int errorcode = 0; /* advance while the interface check fails */ while (cur && iterator->iface && ((*iterator->iface) (cur, iterator->id_string) != 0)) { cur = cur->next; } if ((errorcode = (*func) (cur, data)) != 0) return errorcode; } return 0; } libprelude-5.2.0/libltdl/PaxHeaders.14770/slist.c0000644000000000000000000000011013726163454017603 xustar000000000000000024 mtime=1599661868.145 24 atime=1599661868.145 24 ctime=1599661998.644 libprelude-5.2.0/libltdl/slist.c0000644000000000000000000002316413726163454016614 0ustar00rootroot00000000000000/* slist.c -- generalised singly linked lists Copyright (C) 2000, 2004, 2007, 2008, 2009 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2000 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include "slist.h" #include #include static SList * slist_sort_merge (SList *left, SList *right, SListCompare *compare, void *userdata); /* Call DELETE repeatedly on each element of HEAD. CAVEAT: If you call this when HEAD is the start of a list of boxed items, you must remember that each item passed back to your DELETE function will be a boxed item that must be slist_unbox()ed before operating on its contents. e.g. void boxed_delete (void *item) { item_free (slist_unbox (item)); } ... slist = slist_delete (slist, boxed_delete); ... */ SList * slist_delete (SList *head, void (*delete_fct) (void *item)) { assert (delete_fct); while (head) { SList *next = head->next; (*delete_fct) (head); head = next; } return 0; } /* Call FIND repeatedly with MATCHDATA and each item of *PHEAD, until FIND returns non-NULL, or the list is exhausted. If a match is found the matching item is destructively removed from *PHEAD, and the value returned by the matching call to FIND is returned. CAVEAT: To avoid memory leaks, unless you already have the address of the stale item, you should probably return that from FIND if it makes a successful match. Don't forget to slist_unbox() every item in a boxed list before operating on its contents. */ SList * slist_remove (SList **phead, SListCallback *find, void *matchdata) { SList *stale = 0; void *result = 0; assert (find); if (!phead || !*phead) return 0; /* Does the head of the passed list match? */ result = (*find) (*phead, matchdata); if (result) { stale = *phead; *phead = stale->next; } /* what about the rest of the elements? */ else { SList *head; for (head = *phead; head->next; head = head->next) { result = (*find) (head->next, matchdata); if (result) { stale = head->next; head->next = stale->next; break; } } } return (SList *) result; } /* Call FIND repeatedly with each element of SLIST and MATCHDATA, until FIND returns non-NULL, or the list is exhausted. If a match is found the value returned by the matching call to FIND is returned. */ void * slist_find (SList *slist, SListCallback *find, void *matchdata) { void *result = 0; assert (find); for (; slist; slist = slist->next) { result = (*find) (slist, matchdata); if (result) break; } return result; } /* Return a single list, composed by destructively concatenating the items in HEAD and TAIL. The values of HEAD and TAIL are undefined after calling this function. CAVEAT: Don't mix boxed and unboxed items in a single list. e.g. slist1 = slist_concat (slist1, slist2); */ SList * slist_concat (SList *head, SList *tail) { SList *last; if (!head) { return tail; } last = head; while (last->next) last = last->next; last->next = tail; return head; } /* Return a single list, composed by destructively appending all of the items in SLIST to ITEM. The values of ITEM and SLIST are undefined after calling this function. CAVEAT: Don't mix boxed and unboxed items in a single list. e.g. slist1 = slist_cons (slist_box (data), slist1); */ SList * slist_cons (SList *item, SList *slist) { if (!item) { return slist; } assert (!item->next); item->next = slist; return item; } /* Return a list starting at the second item of SLIST. */ SList * slist_tail (SList *slist) { return slist ? slist->next : NULL; } /* Return a list starting at the Nth item of SLIST. If SLIST is less than N items long, NULL is returned. Just to be confusing, list items are counted from 1, to get the 2nd element of slist: e.g. shared_list = slist_nth (slist, 2); */ SList * slist_nth (SList *slist, size_t n) { for (;n > 1 && slist; n--) slist = slist->next; return slist; } /* Return the number of items in SLIST. We start counting from 1, so the length of a list with no items is 0, and so on. */ size_t slist_length (SList *slist) { size_t n; for (n = 0; slist; ++n) slist = slist->next; return n; } /* Destructively reverse the order of items in SLIST. The value of SLIST is undefined after calling this function. CAVEAT: You must store the result of this function, or you might not be able to get all the items except the first one back again. e.g. slist = slist_reverse (slist); */ SList * slist_reverse (SList *slist) { SList *result = 0; SList *next; while (slist) { next = slist->next; slist->next = result; result = slist; slist = next; } return result; } /* Call FOREACH once for each item in SLIST, passing both the item and USERDATA on each call. */ void * slist_foreach (SList *slist, SListCallback *foreach, void *userdata) { void *result = 0; assert (foreach); while (slist) { SList *next = slist->next; result = (*foreach) (slist, userdata); if (result) break; slist = next; } return result; } /* Destructively merge the items of two ordered lists LEFT and RIGHT, returning a single sorted list containing the items of both -- Part of the quicksort algorithm. The values of LEFT and RIGHT are undefined after calling this function. At each iteration, add another item to the merged list by taking the lowest valued item from the head of either LEFT or RIGHT, determined by passing those items and USERDATA to COMPARE. COMPARE should return less than 0 if the head of LEFT has the lower value, greater than 0 if the head of RIGHT has the lower value, otherwise 0. */ static SList * slist_sort_merge (SList *left, SList *right, SListCompare *compare, void *userdata) { SList merged, *insert; insert = &merged; while (left && right) { if ((*compare) (left, right, userdata) <= 0) { insert = insert->next = left; left = left->next; } else { insert = insert->next = right; right = right->next; } } insert->next = left ? left : right; return merged.next; } /* Perform a destructive quicksort on the items in SLIST, by repeatedly calling COMPARE with a pair of items from SLIST along with USERDATA at every iteration. COMPARE is a function as defined above for slist_sort_merge(). The value of SLIST is undefined after calling this function. e.g. slist = slist_sort (slist, compare, 0); */ SList * slist_sort (SList *slist, SListCompare *compare, void *userdata) { SList *left, *right; if (!slist) return slist; /* Be sure that LEFT and RIGHT never contain the same item. */ left = slist; right = slist->next; if (!right) return left; /* Skip two items with RIGHT and one with SLIST, until RIGHT falls off the end. SLIST must be about half way along. */ while (right && (right = right->next)) { if (!right || !(right = right->next)) break; slist = slist->next; } right = slist->next; slist->next = 0; /* Sort LEFT and RIGHT, then merge the two. */ return slist_sort_merge (slist_sort (left, compare, userdata), slist_sort (right, compare, userdata), compare, userdata); } /* Aside from using the functions above to manage chained structures of any type that has a NEXT pointer as its first field, SLISTs can be comprised of boxed items. The boxes are chained together in that case, so there is no need for a NEXT field in the item proper. Some care must be taken to slist_box and slist_unbox each item in a boxed list at the appropriate points to avoid leaking the memory used for the boxes. It us usually a very bad idea to mix boxed and non-boxed items in a single list. */ /* Return a `boxed' freshly mallocated 1 element list containing USERDATA. */ SList * slist_box (const void *userdata) { SList *item = (SList *) malloc (sizeof *item); if (item) { item->next = 0; item->userdata = userdata; } return item; } /* Return the contents of a `boxed' ITEM, recycling the box itself. */ void * slist_unbox (SList *item) { void *userdata = 0; if (item) { /* Strip the const, because responsibility for this memory passes to the caller on return. */ userdata = (void *) item->userdata; free (item); } return userdata; } libprelude-5.2.0/libltdl/PaxHeaders.14770/lt__dirent.c0000644000000000000000000000011013726163453020567 xustar000000000000000024 mtime=1599661867.778 24 atime=1599661867.778 24 ctime=1599661998.655 libprelude-5.2.0/libltdl/lt__dirent.c0000644000000000000000000000573213726163453017601 0ustar00rootroot00000000000000/* lt__dirent.c -- internal directory entry scanning interface Copyright (C) 2001, 2004 Free Software Foundation, Inc. Written by Bob Friesenhahn, 2001 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include #include #include "lt__dirent.h" #if defined(__WINDOWS__) void closedir (DIR *entry) { assert (entry != (DIR *) NULL); FindClose (entry->hSearch); free ((void *) entry); } DIR * opendir (const char *path) { char file_spec[LT_FILENAME_MAX]; DIR *entry; assert (path != (char *) 0); if (lt_strlcpy (file_spec, path, sizeof file_spec) >= sizeof file_spec || lt_strlcat (file_spec, "\\", sizeof file_spec) >= sizeof file_spec) return (DIR *) 0; entry = (DIR *) malloc (sizeof(DIR)); if (entry != (DIR *) 0) { entry->firsttime = TRUE; entry->hSearch = FindFirstFile (file_spec, &entry->Win32FindData); if (entry->hSearch == INVALID_HANDLE_VALUE) { if (lt_strlcat (file_spec, "\\*.*", sizeof file_spec) < sizeof file_spec) { entry->hSearch = FindFirstFile (file_spec, &entry->Win32FindData); } if (entry->hSearch == INVALID_HANDLE_VALUE) { entry = (free (entry), (DIR *) 0); } } } return entry; } struct dirent * readdir (DIR *entry) { int status; if (entry == (DIR *) 0) return (struct dirent *) 0; if (!entry->firsttime) { status = FindNextFile (entry->hSearch, &entry->Win32FindData); if (status == 0) return (struct dirent *) 0; } entry->firsttime = FALSE; if (lt_strlcpy (entry->file_info.d_name, entry->Win32FindData.cFileName, sizeof entry->file_info.d_name) >= sizeof entry->file_info.d_name) return (struct dirent *) 0; entry->file_info.d_namlen = strlen (entry->file_info.d_name); return &entry->file_info; } #endif /*defined(__WINDOWS__)*/ libprelude-5.2.0/libltdl/PaxHeaders.14770/lt__strl.c0000644000000000000000000000010413726163453020271 xustar000000000000000022 mtime=1599661867.8 22 atime=1599661867.8 24 ctime=1599661998.657 libprelude-5.2.0/libltdl/lt__strl.c0000644000000000000000000000702613726163453017276 0ustar00rootroot00000000000000/* lt__strl.c -- size-bounded string copying and concatenation Copyright (C) 2004 Free Software Foundation, Inc. Written by Bob Friesenhahn, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include #include "lt__strl.h" /* lt_strlcat appends the NULL-terminated string src to the end of dst. It will append at most dstsize - strlen(dst) - 1 bytes, NULL-terminating the result. The total length of the string which would have been created given sufficient buffer size (may be longer than dstsize) is returned. This function substitutes for strlcat() which is available under NetBSD, FreeBSD and Solaris 9. Buffer overflow can be checked as follows: if (lt_strlcat(dst, src, dstsize) >= dstsize) return -1; */ #if !defined(HAVE_STRLCAT) size_t lt_strlcat(char *dst, const char *src, const size_t dstsize) { size_t length; char *p; const char *q; assert(dst != NULL); assert(src != (const char *) NULL); assert(dstsize >= 1); length=strlen(dst); /* Copy remaining characters from src while constraining length to size - 1. */ for ( p = dst + length, q = src; (*q != 0) && (length < dstsize - 1) ; length++, p++, q++ ) *p = *q; dst[length]='\0'; /* Add remaining length of src to length. */ while (*q++) length++; return length; } #endif /* !defined(HAVE_STRLCAT) */ /* lt_strlcpy copies up to dstsize - 1 characters from the NULL-terminated string src to dst, NULL-terminating the result. The total length of the string which would have been created given sufficient buffer size (may be longer than dstsize) is returned. This function substitutes for strlcpy() which is available under OpenBSD, FreeBSD and Solaris 9. Buffer overflow can be checked as follows: if (lt_strlcpy(dst, src, dstsize) >= dstsize) return -1; */ #if !defined(HAVE_STRLCPY) size_t lt_strlcpy(char *dst, const char *src, const size_t dstsize) { size_t length=0; char *p; const char *q; assert(dst != NULL); assert(src != (const char *) NULL); assert(dstsize >= 1); /* Copy src to dst within bounds of size-1. */ for ( p=dst, q=src, length=0 ; (*q != 0) && (length < dstsize-1) ; length++, p++, q++ ) *p = *q; dst[length]='\0'; /* Add remaining length of src to length. */ while (*q++) length++; return length; } #endif /* !defined(HAVE_STRLCPY) */ libprelude-5.2.0/libltdl/PaxHeaders.14770/argz_.h0000644000000000000000000000010713726163450017556 xustar000000000000000024 mtime=1599661864.653 24 atime=1599661864.653 23 ctime=1599661998.66 libprelude-5.2.0/libltdl/argz_.h0000644000000000000000000000425413726163450016560 0ustar00rootroot00000000000000/* lt__argz.h -- internal argz interface for non-glibc systems Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #if !defined(LT__ARGZ_H) #define LT__ARGZ_H 1 #include #define __need_error_t #include #include #if defined(LTDL) # include "lt__glibc.h" # include "lt_system.h" #else # define LT_SCOPE #endif #if defined(__cplusplus) extern "C" { #endif LT_SCOPE error_t argz_append (char **pargz, size_t *pargz_len, const char *buf, size_t buf_len); LT_SCOPE error_t argz_create_sep(const char *str, int delim, char **pargz, size_t *pargz_len); LT_SCOPE error_t argz_insert (char **pargz, size_t *pargz_len, char *before, const char *entry); LT_SCOPE char * argz_next (char *argz, size_t argz_len, const char *entry); LT_SCOPE void argz_stringify (char *argz, size_t argz_len, int sep); #if defined(__cplusplus) } #endif #if !defined(LTDL) # undef LT_SCOPE #endif #endif /*!defined(LT__ARGZ_H)*/ libprelude-5.2.0/libltdl/PaxHeaders.14770/argz.c0000644000000000000000000000011013726163450017404 xustar000000000000000024 mtime=1599661864.667 24 atime=1599661864.667 24 ctime=1599661998.662 libprelude-5.2.0/libltdl/argz.c0000644000000000000000000001341713726163450016415 0ustar00rootroot00000000000000/* argz.c -- argz implementation for non-glibc systems Copyright (C) 2004, 2006, 2007, 2008 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #if defined(LTDL) && defined LT_CONFIG_H # include LT_CONFIG_H #else # include #endif #include #include #include #include #include #include #include #define EOS_CHAR '\0' error_t argz_append (char **pargz, size_t *pargz_len, const char *buf, size_t buf_len) { size_t argz_len; char *argz; assert (pargz); assert (pargz_len); assert ((*pargz && *pargz_len) || (!*pargz && !*pargz_len)); /* If nothing needs to be appended, no more work is required. */ if (buf_len == 0) return 0; /* Ensure there is enough room to append BUF_LEN. */ argz_len = *pargz_len + buf_len; argz = (char *) realloc (*pargz, argz_len); if (!argz) return ENOMEM; /* Copy characters from BUF after terminating '\0' in ARGZ. */ memcpy (argz + *pargz_len, buf, buf_len); /* Assign new values. */ *pargz = argz; *pargz_len = argz_len; return 0; } error_t argz_create_sep (const char *str, int delim, char **pargz, size_t *pargz_len) { size_t argz_len; char *argz = 0; assert (str); assert (pargz); assert (pargz_len); /* Make a copy of STR, but replacing each occurrence of DELIM with '\0'. */ argz_len = 1+ strlen (str); if (argz_len) { const char *p; char *q; argz = (char *) malloc (argz_len); if (!argz) return ENOMEM; for (p = str, q = argz; *p != EOS_CHAR; ++p) { if (*p == delim) { /* Ignore leading delimiters, and fold consecutive delimiters in STR into a single '\0' in ARGZ. */ if ((q > argz) && (q[-1] != EOS_CHAR)) *q++ = EOS_CHAR; else --argz_len; } else *q++ = *p; } /* Copy terminating EOS_CHAR. */ *q = *p; } /* If ARGZ_LEN has shrunk to nothing, release ARGZ's memory. */ if (!argz_len) argz = (free (argz), (char *) 0); /* Assign new values. */ *pargz = argz; *pargz_len = argz_len; return 0; } error_t argz_insert (char **pargz, size_t *pargz_len, char *before, const char *entry) { assert (pargz); assert (pargz_len); assert (entry && *entry); /* No BEFORE address indicates ENTRY should be inserted after the current last element. */ if (!before) return argz_append (pargz, pargz_len, entry, 1+ strlen (entry)); /* This probably indicates a programmer error, but to preserve semantics, scan back to the start of an entry if BEFORE points into the middle of it. */ while ((before > *pargz) && (before[-1] != EOS_CHAR)) --before; { size_t entry_len = 1+ strlen (entry); size_t argz_len = *pargz_len + entry_len; size_t offset = before - *pargz; char *argz = (char *) realloc (*pargz, argz_len); if (!argz) return ENOMEM; /* Make BEFORE point to the equivalent offset in ARGZ that it used to have in *PARGZ incase realloc() moved the block. */ before = argz + offset; /* Move the ARGZ entries starting at BEFORE up into the new space at the end -- making room to copy ENTRY into the resulting gap. */ memmove (before + entry_len, before, *pargz_len - offset); memcpy (before, entry, entry_len); /* Assign new values. */ *pargz = argz; *pargz_len = argz_len; } return 0; } char * argz_next (char *argz, size_t argz_len, const char *entry) { assert ((argz && argz_len) || (!argz && !argz_len)); if (entry) { /* Either ARGZ/ARGZ_LEN is empty, or ENTRY points into an address within the ARGZ vector. */ assert ((!argz && !argz_len) || ((argz <= entry) && (entry < (argz + argz_len)))); /* Move to the char immediately after the terminating '\0' of ENTRY. */ entry = 1+ strchr (entry, EOS_CHAR); /* Return either the new ENTRY, or else NULL if ARGZ is exhausted. */ return (entry >= argz + argz_len) ? 0 : (char *) entry; } else { /* This should probably be flagged as a programmer error, since starting an argz_next loop with the iterator set to ARGZ is safer. To preserve semantics, handle the NULL case by returning the start of ARGZ (if any). */ if (argz_len > 0) return argz; else return 0; } } void argz_stringify (char *argz, size_t argz_len, int sep) { assert ((argz && argz_len) || (!argz && !argz_len)); if (sep) { --argz_len; /* don't stringify the terminating EOS */ while (--argz_len > 0) { if (argz[argz_len] == EOS_CHAR) argz[argz_len] = sep; } } } libprelude-5.2.0/PaxHeaders.14770/depcomp0000644000000000000000000000011013726163516016224 xustar000000000000000024 mtime=1599661902.878 24 atime=1599661903.653 24 ctime=1599661998.593 libprelude-5.2.0/depcomp0000755000000000000000000005601613726163516015242 0ustar00rootroot00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2013-05-30.07; # UTC # Copyright (C) 1999-2013 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libprelude-5.2.0/PaxHeaders.14770/test-driver0000644000000000000000000000011013726163516017045 xustar000000000000000024 mtime=1599661902.915 24 atime=1599661902.915 24 ctime=1599661999.247 libprelude-5.2.0/test-driver0000755000000000000000000000761113726163516016060 0ustar00rootroot00000000000000#! /bin/sh # test-driver - basic testsuite driver script. scriptversion=2012-06-27.10; # UTC # Copyright (C) 2011-2013 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # Make unconditional expansion of undefined variables an error. This # helps a lot in preventing typo-related bugs. set -u usage_error () { echo "$0: $*" >&2 print_usage >&2 exit 2 } print_usage () { cat <$log_file 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then estatus=1 fi case $estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac # Report outcome to console. echo "${col}${res}${std}: $test_name" # Register the test result, and other relevant metadata. echo ":test-result: $res" > $trs_file echo ":global-test-result: $res" >> $trs_file echo ":recheck: $recheck" >> $trs_file echo ":copy-in-global-log: $gcopy" >> $trs_file # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libprelude-5.2.0/PaxHeaders.14770/src0000644000000000000000000000011013726163657015372 xustar000000000000000024 mtime=1599661999.999 24 atime=1599662006.649 24 ctime=1599661999.999 libprelude-5.2.0/src/0000755000000000000000000000000013726163657014452 5ustar00rootroot00000000000000libprelude-5.2.0/src/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163516017506 xustar000000000000000024 mtime=1599661902.248 24 atime=1599661945.418 24 ctime=1599661999.775 libprelude-5.2.0/src/Makefile.in0000644000000000000000000022704713726163516016525 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/libprelude.pc.in idmef-criteria-string.yac.h \ idmef-criteria-string.yac.c idmef-criteria-string.lex.c \ $(top_srcdir)/depcomp $(top_srcdir)/ylwrap ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = libprelude.pc CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libprelude_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(top_builddir)/libmissing/libmissing.la \ libprelude-error/libprelude-error.la am_libprelude_la_OBJECTS = common.lo config-engine.lo daemonize.lo \ ntp.lo tls-auth.lo tls-util.lo variable.lo prelude.lo \ prelude-async.lo prelude-client.lo prelude-client-profile.lo \ prelude-connection.lo prelude-connection-pool.lo \ prelude-failover.lo prelude-hash.lo prelude-ident.lo \ prelude-io.lo prelude-log.lo prelude-msg.lo prelude-msgbuf.lo \ prelude-option.lo prelude-option-wide.lo prelude-plugin.lo \ prelude-string.lo prelude-timer.lo prelude-thread.lo \ idmef-additional-data.lo idmef-class.lo idmef-criteria.lo \ idmef-criteria-string.yac.lo idmef-criteria-string.lex.lo \ idmef-criterion-value.lo idmef-data.lo \ idmef-message-helpers.lo idmef-message-read-json.lo \ idmef-message-print.lo idmef-message-print-json.lo \ idmef-message-read.lo idmef-message-write.lo idmef-object.lo \ idmef-path.lo idmef-time.lo idmef-tree-wrap.lo idmef-value.lo \ idmef-value-type.lo libprelude_la_OBJECTS = $(am_libprelude_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libprelude_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libprelude_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = @MAINTAINER_MODE_FALSE@am__skiplex = test -f $@ || LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) LTLEXCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS) AM_V_LEX = $(am__v_LEX_@AM_V@) am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@) am__v_LEX_0 = @echo " LEX " $@; am__v_LEX_1 = YLWRAP = $(top_srcdir)/ylwrap @MAINTAINER_MODE_FALSE@am__skipyacc = test -f $@ || am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \ -e s/c++$$/h++/ -e s/c$$/h/ YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS) LTYACCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS) AM_V_YACC = $(am__v_YACC_@AM_V@) am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@) am__v_YACC_0 = @echo " YACC " $@; am__v_YACC_1 = SOURCES = $(libprelude_la_SOURCES) DIST_SOURCES = $(libprelude_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = lex._preludeyy LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = libprelude-error jsmn include AM_CPPFLAGS = @PCFLAGS@ -I$(srcdir)/include -I$(top_builddir) -I$(top_builddir)/src/include -I$(srcdir)/libprelude-error \ -I$(top_builddir)/libmissing -I$(top_srcdir)/libmissing $(LTDLINCL) @LIBPRELUDE_CFLAGS@ @LIBGNUTLS_CFLAGS@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libprelude.pc DISTCLEANFILES = $(pkgconfig_DATA) idmef-criteria-string.yac.h idmef-criteria-string.lex.c idmef-criteria-string.yac.c libpreludeincludedir = $(includedir)/ libprelude_la_LIBADD = @LIBPRELUDE_LIBS@ $(LIBLTDL) $(top_builddir)/libmissing/libmissing.la libprelude-error/libprelude-error.la libprelude_la_LDFLAGS = $(GETADDRINFO_LIB) $(GETHOSTNAME_LIB) $(HOSTENT_LIB) $(INET_NTOP_LIB) $(INET_PTON_LIB) $(LIBSOCKET) $(LIB_POLL) $(LIB_PTHREAD_SIGMASK) $(LIB_SELECT) $(LTLIBINTL) $(LTLIBTHREAD) $(SERVENT_LIB) -no-undefined -version-info @LIBPRELUDE_SONAME@ -export-symbols-regex "^(idmef|_?prelude)_" lib_LTLIBRARIES = libprelude.la BUILT_SOURCES = $(LTDLDEPS) AM_YFLAGS = -d libprelude_la_SOURCES = \ common.c \ config-engine.c \ daemonize.c \ ntp.c \ tls-auth.c \ tls-util.c \ variable.c \ prelude.c \ prelude-async.c \ prelude-client.c \ prelude-client-profile.c \ prelude-connection.c \ prelude-connection-pool.c \ prelude-failover.c \ prelude-hash.c \ prelude-ident.c \ prelude-io.c \ prelude-log.c \ prelude-msg.c \ prelude-msgbuf.c \ prelude-option.c \ prelude-option-wide.c \ prelude-plugin.c \ prelude-string.c \ prelude-timer.c \ prelude-thread.c \ idmef-additional-data.c \ idmef-class.c \ idmef-criteria.c \ idmef-criteria-string.yac.y \ idmef-criteria-string.lex.l \ idmef-criterion-value.c \ idmef-data.c \ idmef-message-helpers.c \ idmef-message-read-json.c \ idmef-message-print.c \ idmef-message-print-json.c \ idmef-message-read.c \ idmef-message-write.c \ idmef-object.c \ idmef-path.c \ idmef-time.c \ idmef-tree-wrap.c \ idmef-value.c \ idmef-value-type.c all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .l .lo .o .obj .y $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): libprelude.pc: $(top_builddir)/config.status $(srcdir)/libprelude.pc.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } idmef-criteria-string.yac.h: idmef-criteria-string.yac.c @if test ! -f $@; then rm -f idmef-criteria-string.yac.c; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) idmef-criteria-string.yac.c; else :; fi libprelude.la: $(libprelude_la_OBJECTS) $(libprelude_la_DEPENDENCIES) $(EXTRA_libprelude_la_DEPENDENCIES) $(AM_V_CCLD)$(libprelude_la_LINK) -rpath $(libdir) $(libprelude_la_OBJECTS) $(libprelude_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config-engine.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/daemonize.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-additional-data.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-class.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-criteria-string.lex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-criteria-string.yac.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-criteria.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-criterion-value.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-data.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-message-helpers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-message-print-json.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-message-print.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-message-read-json.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-message-read.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-message-write.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-path.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-time.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-tree-wrap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-value-type.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-value.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ntp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-async.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-client-profile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-connection-pool.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-connection.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-failover.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-hash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-ident.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-io.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-log.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-msg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-msgbuf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-option-wide.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-option.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-plugin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-string.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-thread.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-timer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls-auth.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls-util.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/variable.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< .l.c: $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) .y.c: $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -rm -f idmef-criteria-string.lex.c -rm -f idmef-criteria-string.yac.c -rm -f idmef-criteria-string.yac.h -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgconfigDATA .MAKE: $(am__recursive_targets) all check install install-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libLTLIBRARIES \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-pkgconfigDATA install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-libLTLIBRARIES uninstall-pkgconfigDATA -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/src/PaxHeaders.14770/Makefile.am0000644000000000000000000000011013726163410017466 xustar000000000000000024 mtime=1599661832.664 24 atime=1599661832.775 24 ctime=1599661999.777 libprelude-5.2.0/src/Makefile.am0000644000000000000000000000405513726163410016475 0ustar00rootroot00000000000000SUBDIRS = libprelude-error jsmn include AM_CPPFLAGS = @PCFLAGS@ -I$(srcdir)/include -I$(top_builddir) -I$(top_builddir)/src/include -I$(srcdir)/libprelude-error \ -I$(top_builddir)/libmissing -I$(top_srcdir)/libmissing $(LTDLINCL) @LIBPRELUDE_CFLAGS@ @LIBGNUTLS_CFLAGS@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libprelude.pc DISTCLEANFILES = $(pkgconfig_DATA) idmef-criteria-string.yac.h idmef-criteria-string.lex.c idmef-criteria-string.yac.c libpreludeincludedir = $(includedir)/ libprelude_la_LIBADD = @LIBPRELUDE_LIBS@ $(LIBLTDL) $(top_builddir)/libmissing/libmissing.la libprelude-error/libprelude-error.la libprelude_la_LDFLAGS = $(GETADDRINFO_LIB) $(GETHOSTNAME_LIB) $(HOSTENT_LIB) $(INET_NTOP_LIB) $(INET_PTON_LIB) $(LIBSOCKET) $(LIB_POLL) $(LIB_PTHREAD_SIGMASK) $(LIB_SELECT) $(LTLIBINTL) $(LTLIBTHREAD) $(SERVENT_LIB) -no-undefined -version-info @LIBPRELUDE_SONAME@ -export-symbols-regex "^(idmef|_?prelude)_" lib_LTLIBRARIES = libprelude.la BUILT_SOURCES = $(LTDLDEPS) AM_YFLAGS = -d LEX_OUTPUT_ROOT = lex._preludeyy libprelude_la_SOURCES = \ common.c \ config-engine.c \ daemonize.c \ ntp.c \ tls-auth.c \ tls-util.c \ variable.c \ prelude.c \ prelude-async.c \ prelude-client.c \ prelude-client-profile.c \ prelude-connection.c \ prelude-connection-pool.c \ prelude-failover.c \ prelude-hash.c \ prelude-ident.c \ prelude-io.c \ prelude-log.c \ prelude-msg.c \ prelude-msgbuf.c \ prelude-option.c \ prelude-option-wide.c \ prelude-plugin.c \ prelude-string.c \ prelude-timer.c \ prelude-thread.c \ idmef-additional-data.c \ idmef-class.c \ idmef-criteria.c \ idmef-criteria-string.yac.y \ idmef-criteria-string.lex.l \ idmef-criterion-value.c \ idmef-data.c \ idmef-message-helpers.c \ idmef-message-read-json.c \ idmef-message-print.c \ idmef-message-print-json.c \ idmef-message-read.c \ idmef-message-write.c \ idmef-object.c \ idmef-path.c \ idmef-time.c \ idmef-tree-wrap.c \ idmef-value.c \ idmef-value-type.c -include $(top_srcdir)/git.mk libprelude-5.2.0/src/PaxHeaders.14770/libprelude.pc.in0000644000000000000000000000011013726163410020512 xustar000000000000000024 mtime=1599661832.699 24 atime=1599661832.791 24 ctime=1599661999.778 libprelude-5.2.0/src/libprelude.pc.in0000644000000000000000000000062413726163410017517 0ustar00rootroot00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ threadlib=@LIBMULTITHREAD@ Name: LibPrelude Description: The Prelude Library provide API for communicating with PreludeIDS SIM components. Version: @VERSION@ Libs: -L${libdir} -lprelude Libs.private: @LIBPRELUDE_LIBS@ @GETADDRINFO_LIB@ @HOSTENT_LIB@ @LIBINTL@ @LIBMULTITHREAD@ @SERVENT_LIB@ Cflags: @LIBPRELUDE_CFLAGS@ libprelude-5.2.0/src/PaxHeaders.14770/idmef-criteria-string.yac.h0000644000000000000000000000010713726163410022554 xustar000000000000000024 mtime=1599661832.668 24 atime=1599661832.777 23 ctime=1599661999.78 libprelude-5.2.0/src/idmef-criteria-string.yac.h0000644000000000000000000001053113726163410021551 0ustar00rootroot00000000000000/* A Bison parser, made by GNU Bison 3.5. */ /* Bison interface for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 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 3 of the License, 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, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* Undocumented macros, especially those whose name start with YY_, are private implementation details. Do not rely on them. */ #ifndef YY__PRELUDEYY_IDMEF_CRITERIA_STRING_YAC_H_INCLUDED # define YY__PRELUDEYY_IDMEF_CRITERIA_STRING_YAC_H_INCLUDED /* Debug traces. */ #ifndef _PRELUDEYYDEBUG # if defined YYDEBUG #if YYDEBUG # define _PRELUDEYYDEBUG 1 # else # define _PRELUDEYYDEBUG 0 # endif # else /* ! defined YYDEBUG */ # define _PRELUDEYYDEBUG 0 # endif /* ! defined YYDEBUG */ #endif /* ! defined _PRELUDEYYDEBUG */ #if _PRELUDEYYDEBUG extern int _preludeyydebug; #endif /* Token type. */ #ifndef _PRELUDEYYTOKENTYPE # define _PRELUDEYYTOKENTYPE enum _preludeyytokentype { TOK_IDMEF_RAW_VALUE = 258, TOK_IDMEF_VALUE = 259, TOK_IDMEF_PATH = 260, TOK_RELATION_SUBSTRING = 261, TOK_RELATION_SUBSTRING_NOCASE = 262, TOK_RELATION_NOT_SUBSTRING = 263, TOK_RELATION_NOT_SUBSTRING_NOCASE = 264, TOK_RELATION_REGEXP = 265, TOK_RELATION_REGEXP_NOCASE = 266, TOK_RELATION_NOT_REGEXP = 267, TOK_RELATION_NOT_REGEXP_NOCASE = 268, TOK_RELATION_GREATER = 269, TOK_RELATION_GREATER_OR_EQUAL = 270, TOK_RELATION_LESS = 271, TOK_RELATION_LESS_OR_EQUAL = 272, TOK_RELATION_EQUAL = 273, TOK_RELATION_EQUAL_NOCASE = 274, TOK_RELATION_NOT_EQUAL = 275, TOK_RELATION_NOT_EQUAL_NOCASE = 276, TOK_OPERATOR_NOT = 277, TOK_OPERATOR_AND = 278, TOK_OPERATOR_OR = 279, TOK_ERROR = 280 }; #endif /* Tokens. */ #define TOK_IDMEF_RAW_VALUE 258 #define TOK_IDMEF_VALUE 259 #define TOK_IDMEF_PATH 260 #define TOK_RELATION_SUBSTRING 261 #define TOK_RELATION_SUBSTRING_NOCASE 262 #define TOK_RELATION_NOT_SUBSTRING 263 #define TOK_RELATION_NOT_SUBSTRING_NOCASE 264 #define TOK_RELATION_REGEXP 265 #define TOK_RELATION_REGEXP_NOCASE 266 #define TOK_RELATION_NOT_REGEXP 267 #define TOK_RELATION_NOT_REGEXP_NOCASE 268 #define TOK_RELATION_GREATER 269 #define TOK_RELATION_GREATER_OR_EQUAL 270 #define TOK_RELATION_LESS 271 #define TOK_RELATION_LESS_OR_EQUAL 272 #define TOK_RELATION_EQUAL 273 #define TOK_RELATION_EQUAL_NOCASE 274 #define TOK_RELATION_NOT_EQUAL 275 #define TOK_RELATION_NOT_EQUAL_NOCASE 276 #define TOK_OPERATOR_NOT 277 #define TOK_OPERATOR_AND 278 #define TOK_OPERATOR_OR 279 #define TOK_ERROR 280 /* Value type. */ #if ! defined _PRELUDEYYSTYPE && ! defined _PRELUDEYYSTYPE_IS_DECLARED union _PRELUDEYYSTYPE { #line 174 "idmef-criteria-string.yac.y" char *str; int operator; idmef_path_t *path; idmef_criteria_t *criteria; idmef_criteria_operator_t relation; #line 123 "idmef-criteria-string.yac.h" }; typedef union _PRELUDEYYSTYPE _PRELUDEYYSTYPE; # define _PRELUDEYYSTYPE_IS_TRIVIAL 1 # define _PRELUDEYYSTYPE_IS_DECLARED 1 #endif extern _PRELUDEYYSTYPE _preludeyylval; int _preludeyyparse (void); #endif /* !YY__PRELUDEYY_IDMEF_CRITERIA_STRING_YAC_H_INCLUDED */ libprelude-5.2.0/src/PaxHeaders.14770/idmef-criteria-string.yac.c0000644000000000000000000000011013726163410022541 xustar000000000000000024 mtime=1599661832.667 24 atime=1599661832.776 24 ctime=1599661999.782 libprelude-5.2.0/src/idmef-criteria-string.yac.c0000644000000000000000000020700413726163410021547 0ustar00rootroot00000000000000/* A Bison parser, made by GNU Bison 3.5. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 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 3 of the License, 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, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Undocumented macros, especially those whose name start with YY_, are private implementation details. Do not rely on them. */ /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "3.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 0 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* Substitute the type names. */ #define YYSTYPE _PRELUDEYYSTYPE /* Substitute the variable and function names. */ #define yyparse _preludeyyparse #define yylex _preludeyylex #define yyerror _preludeyyerror #define yydebug _preludeyydebug #define yynerrs _preludeyynerrs #define yylval _preludeyylval #define yychar _preludeyychar /* First part of user prologue. */ #line 27 "idmef-criteria-string.yac.y" #include "libmissing.h" #line 31 "idmef-criteria-string.yac.y" #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_IDMEF_CRITERIA #include #include #include #include #include #include #include "glthread/lock.h" #include "prelude-log.h" #include "prelude-error.h" #include "prelude-inttypes.h" #include "idmef.h" #include "idmef-criteria.h" #include "common.h" static int path_count = 0; static int real_ret = 0; static idmef_path_t *cur_path; static idmef_criteria_t *processed_criteria; static idmef_criterion_operator_t cur_operator; gl_lock_t _criteria_parse_mutex = gl_lock_initializer; #define operator_or 1 #define operator_and 2 extern int yylex(void); static void _preludeyyerror(const char *s); extern void *_preludeyy_scan_string(const char *); extern void _preludeyy_delete_buffer(void *); void _idmef_criteria_string_init_lexer(void); #define YYERROR_VERBOSE static int escape_str(prelude_string_t **out, char *str) { char c; int ret; size_t i = 0, len = strlen(str); ret = prelude_string_new(out); if ( ret < 0 ) return ret; for ( i = 0; i < len; ) { c = str[i++]; if ( ! (c == '\\' && i < len) ) ret = prelude_string_ncat(*out, &c, 1); else { c = str[i++]; if ( c == '0' ) ret = prelude_string_ncat(*out, "\0", 1); else if ( c == 'a' ) ret = prelude_string_ncat(*out, "\a", 1); else if ( c == 'b' ) ret = prelude_string_ncat(*out, "\b", 1); else if ( c == 'f' ) ret = prelude_string_ncat(*out, "\f", 1); else if ( c == 'n' ) ret = prelude_string_ncat(*out, "\n", 1); else if ( c == 'r' ) ret = prelude_string_ncat(*out, "\r", 1); else if ( c == 't' ) ret = prelude_string_ncat(*out, "\t", 1); else if ( c == 'v' ) ret = prelude_string_ncat(*out, "\v", 1); else if ( !(cur_operator & (IDMEF_CRITERION_OPERATOR_SUBSTR|IDMEF_CRITERION_OPERATOR_REGEX)) && c == '\\' ) ret = prelude_string_ncat(*out, "\\", 1); else if ( c == 'u' || c == 'U' ) { ret = prelude_unicode_to_string(*out, str + (i - 2), len - (i - 2)); if ( ret < 0 ) return ret; i += ret - 2; } else if ( c == 'x' ) { if ( (len - i) < 2 ) { ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "truncated \\xXX escape"); break; } sscanf(&str[i], "%2hhx", &c); ret = prelude_string_ncat(*out, &c, 1); i += 2; } else { char buf[2] = { '\\', c }; ret = prelude_string_ncat(*out, buf, 2); } } if ( ret < 0 ) break; } if ( ret < 0 ) prelude_string_destroy(*out); return ret; } static int create_criteria(idmef_criteria_t **criteria, idmef_path_t *path, idmef_criterion_value_t *value, idmef_criterion_operator_t operator) { if ( path_count++ > 0 ) idmef_path_ref(path); real_ret = idmef_criterion_new(criteria, path, value, operator); if ( real_ret < 0 ) goto err; return 0; err: idmef_path_destroy(path); cur_path = NULL; return real_ret; } #line 224 "idmef-criteria-string.yac.c" # ifndef YY_CAST # ifdef __cplusplus # define YY_CAST(Type, Val) static_cast (Val) # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) # else # define YY_CAST(Type, Val) ((Type) (Val)) # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) # endif # endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus # define YY_NULLPTR nullptr # else # define YY_NULLPTR 0 # endif # else # define YY_NULLPTR ((void*)0) # endif # endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* Use api.header.include to #include this header instead of duplicating it here. */ #ifndef YY__PRELUDEYY_IDMEF_CRITERIA_STRING_YAC_H_INCLUDED # define YY__PRELUDEYY_IDMEF_CRITERIA_STRING_YAC_H_INCLUDED /* Debug traces. */ #ifndef _PRELUDEYYDEBUG # if defined YYDEBUG #if YYDEBUG # define _PRELUDEYYDEBUG 1 # else # define _PRELUDEYYDEBUG 0 # endif # else /* ! defined YYDEBUG */ # define _PRELUDEYYDEBUG 0 # endif /* ! defined YYDEBUG */ #endif /* ! defined _PRELUDEYYDEBUG */ #if _PRELUDEYYDEBUG extern int _preludeyydebug; #endif /* Token type. */ #ifndef _PRELUDEYYTOKENTYPE # define _PRELUDEYYTOKENTYPE enum _preludeyytokentype { TOK_IDMEF_RAW_VALUE = 258, TOK_IDMEF_VALUE = 259, TOK_IDMEF_PATH = 260, TOK_RELATION_SUBSTRING = 261, TOK_RELATION_SUBSTRING_NOCASE = 262, TOK_RELATION_NOT_SUBSTRING = 263, TOK_RELATION_NOT_SUBSTRING_NOCASE = 264, TOK_RELATION_REGEXP = 265, TOK_RELATION_REGEXP_NOCASE = 266, TOK_RELATION_NOT_REGEXP = 267, TOK_RELATION_NOT_REGEXP_NOCASE = 268, TOK_RELATION_GREATER = 269, TOK_RELATION_GREATER_OR_EQUAL = 270, TOK_RELATION_LESS = 271, TOK_RELATION_LESS_OR_EQUAL = 272, TOK_RELATION_EQUAL = 273, TOK_RELATION_EQUAL_NOCASE = 274, TOK_RELATION_NOT_EQUAL = 275, TOK_RELATION_NOT_EQUAL_NOCASE = 276, TOK_OPERATOR_NOT = 277, TOK_OPERATOR_AND = 278, TOK_OPERATOR_OR = 279, TOK_ERROR = 280 }; #endif /* Tokens. */ #define TOK_IDMEF_RAW_VALUE 258 #define TOK_IDMEF_VALUE 259 #define TOK_IDMEF_PATH 260 #define TOK_RELATION_SUBSTRING 261 #define TOK_RELATION_SUBSTRING_NOCASE 262 #define TOK_RELATION_NOT_SUBSTRING 263 #define TOK_RELATION_NOT_SUBSTRING_NOCASE 264 #define TOK_RELATION_REGEXP 265 #define TOK_RELATION_REGEXP_NOCASE 266 #define TOK_RELATION_NOT_REGEXP 267 #define TOK_RELATION_NOT_REGEXP_NOCASE 268 #define TOK_RELATION_GREATER 269 #define TOK_RELATION_GREATER_OR_EQUAL 270 #define TOK_RELATION_LESS 271 #define TOK_RELATION_LESS_OR_EQUAL 272 #define TOK_RELATION_EQUAL 273 #define TOK_RELATION_EQUAL_NOCASE 274 #define TOK_RELATION_NOT_EQUAL 275 #define TOK_RELATION_NOT_EQUAL_NOCASE 276 #define TOK_OPERATOR_NOT 277 #define TOK_OPERATOR_AND 278 #define TOK_OPERATOR_OR 279 #define TOK_ERROR 280 /* Value type. */ #if ! defined _PRELUDEYYSTYPE && ! defined _PRELUDEYYSTYPE_IS_DECLARED union _PRELUDEYYSTYPE { #line 174 "idmef-criteria-string.yac.y" char *str; int operator; idmef_path_t *path; idmef_criteria_t *criteria; idmef_criteria_operator_t relation; #line 342 "idmef-criteria-string.yac.c" }; typedef union _PRELUDEYYSTYPE _PRELUDEYYSTYPE; # define _PRELUDEYYSTYPE_IS_TRIVIAL 1 # define _PRELUDEYYSTYPE_IS_DECLARED 1 #endif extern _PRELUDEYYSTYPE _preludeyylval; int _preludeyyparse (void); #endif /* !YY__PRELUDEYY_IDMEF_CRITERIA_STRING_YAC_H_INCLUDED */ #ifdef short # undef short #endif /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure and (if available) are included so that the code can choose integer types of a good width. */ #ifndef __PTRDIFF_MAX__ # include /* INFRINGES ON USER NAME SPACE */ # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YY_STDINT_H # endif #endif /* Narrow types that promote to a signed type and that can represent a signed or unsigned integer of at least N bits. In tables they can save space and decrease cache pressure. Promoting to a signed type helps avoid bugs in integer arithmetic. */ #ifdef __INT_LEAST8_MAX__ typedef __INT_LEAST8_TYPE__ yytype_int8; #elif defined YY_STDINT_H typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif #ifdef __INT_LEAST16_MAX__ typedef __INT_LEAST16_TYPE__ yytype_int16; #elif defined YY_STDINT_H typedef int_least16_t yytype_int16; #else typedef short yytype_int16; #endif #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ && UINT_LEAST8_MAX <= INT_MAX) typedef uint_least8_t yytype_uint8; #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX typedef unsigned char yytype_uint8; #else typedef short yytype_uint8; #endif #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ typedef __UINT_LEAST16_TYPE__ yytype_uint16; #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ && UINT_LEAST16_MAX <= INT_MAX) typedef uint_least16_t yytype_uint16; #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX typedef unsigned short yytype_uint16; #else typedef int yytype_uint16; #endif #ifndef YYPTRDIFF_T # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ # define YYPTRDIFF_T __PTRDIFF_TYPE__ # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ # elif defined PTRDIFF_MAX # ifndef ptrdiff_t # include /* INFRINGES ON USER NAME SPACE */ # endif # define YYPTRDIFF_T ptrdiff_t # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX # else # define YYPTRDIFF_T long # define YYPTRDIFF_MAXIMUM LONG_MAX # endif #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned # endif #endif #define YYSIZE_MAXIMUM \ YY_CAST (YYPTRDIFF_T, \ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ ? YYPTRDIFF_MAXIMUM \ : YY_CAST (YYSIZE_T, -1))) #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) /* Stored state numbers (used for stacks). */ typedef yytype_int8 yy_state_t; /* State numbers in computations. */ typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ # define YY_(Msgid) Msgid # endif #endif #ifndef YY_ATTRIBUTE_PURE # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define YY_ATTRIBUTE_PURE # endif #endif #ifndef YY_ATTRIBUTE_UNUSED # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) # else # define YY_ATTRIBUTE_UNUSED # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) #else # define YYUSE(E) /* empty */ #endif #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value #endif #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif #ifndef YY_INITIAL_VALUE # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ # define YY_IGNORE_USELESS_CAST_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") # define YY_IGNORE_USELESS_CAST_END \ _Pragma ("GCC diagnostic pop") #endif #ifndef YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_END #endif #define YY_ASSERT(E) ((void) (0 && (E))) #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's 'empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined _PRELUDEYYSTYPE_IS_TRIVIAL && _PRELUDEYYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 13 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 46 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 28 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 12 /* YYNRULES -- Number of rules. */ #define YYNRULES 38 /* YYNSTATES -- Number of states. */ #define YYNSTATES 51 #define YYUNDEFTOK 2 #define YYMAXUTOK 280 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 26, 27, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }; #if _PRELUDEYYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { 0, 232, 232, 239, 243, 251, 255, 263, 267, 280, 284, 291, 295, 299, 312, 326, 345, 372, 381, 385, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 412, 413 }; #endif #if _PRELUDEYYDEBUG || YYERROR_VERBOSE || 0 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "\"\"", "\"\"", "\"\"", "\"<>\"", "\"<>*\"", "\"!<>\"", "\"!<>*\"", "\"~\"", "\"~*\"", "\"!~\"", "\"!~*\"", "\">\"", "\">=\"", "\"<\"", "\"<=\"", "\"=\"", "\"=*\"", "\"!=\"", "\"!=*\"", "\"!\"", "\"&&\"", "\"||\"", "TOK_ERROR", "'('", "')'", "$accept", "input", "criteria", "criteria_and", "criteria_not", "criteria_base", "criterion", "path", "value", "multiple_value", "relation", "operator", YY_NULLPTR }; #endif # ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 40, 41 }; # endif #define YYPACT_NINF (-36) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) #define YYTABLE_NINF (-1) #define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int8 yypact[] = { 0, -36, 0, 0, 10, -8, -2, -36, -36, -36, 21, -36, -15, -36, 0, 0, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -3, -36, -2, -36, -36, -36, -1, -36, -1, -36, -16, -9, -36, -36, -36, -1, -36, -4 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ static const yytype_int8 yydefact[] = { 0, 14, 0, 0, 0, 2, 3, 5, 7, 9, 13, 8, 0, 1, 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 10, 4, 6, 15, 16, 0, 12, 0, 19, 0, 0, 37, 38, 11, 0, 18, 17 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -36, -36, 40, 30, 2, -36, -36, -36, 12, -35, -36, -36 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { -1, 4, 5, 6, 7, 8, 9, 10, 42, 43, 33, 48 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int8 yytable[] = { 37, 38, 37, 38, 11, 1, 44, 45, 46, 14, 13, 47, 34, 50, 45, 46, 14, 36, 49, 45, 46, 15, 2, 39, 0, 41, 3, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 12, 35, 40, 32 }; static const yytype_int8 yycheck[] = { 3, 4, 3, 4, 2, 5, 41, 23, 24, 24, 0, 27, 27, 48, 23, 24, 24, 15, 27, 23, 24, 23, 22, 26, -1, 26, 26, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3, 14, 33, 25 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int8 yystos[] = { 0, 5, 22, 26, 29, 30, 31, 32, 33, 34, 35, 32, 30, 0, 24, 23, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 38, 27, 31, 32, 3, 4, 26, 36, 26, 36, 37, 37, 23, 24, 27, 39, 27, 37 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int8 yyr1[] = { 0, 28, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 34, 35, 36, 36, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_int8 yyr2[] = { 0, 2, 1, 1, 3, 1, 3, 1, 2, 1, 3, 5, 3, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ YYPOPSTACK (yylen); \ yystate = *yyssp; \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) /* Error token number */ #define YYTERROR 1 #define YYERRCODE 256 /* Enable debugging if requested. */ #if _PRELUDEYYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) /* This macro is provided for backward compatibility. */ #ifndef YY_LOCATION_PRINT # define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*-----------------------------------. | Print this symbol's value on YYO. | `-----------------------------------*/ static void yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) { FILE *yyoutput = yyo; YYUSE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyo, yytoknum[yytype], *yyvaluep); # endif YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YYUSE (yytype); YY_IGNORE_MAYBE_UNINITIALIZED_END } /*---------------------------. | Print this symbol on YYO. | `---------------------------*/ static void yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) { YYFPRINTF (yyo, "%s %s (", yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); yy_symbol_value_print (yyo, yytype, yyvaluep); YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ static void yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ static void yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule) { int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yystos[yyssp[yyi + 1 - yynrhs]], &yyvsp[(yyi + 1) - (yynrhs)] ); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyssp, yyvsp, Rule); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !_PRELUDEYYDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !_PRELUDEYYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H # define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) # else /* Return the length of YYSTR. */ static YYPTRDIFF_T yystrlen (const char *yystr) { YYPTRDIFF_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } # endif # endif # ifndef yystpcpy # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ static char * yystpcpy (char *yydest, const char *yysrc) { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYPTRDIFF_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { YYPTRDIFF_T yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; else goto append; append: default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (yyres) return yystpcpy (yyres, yystr) - yyres; else return yystrlen (yystr); } # endif /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message about the unexpected token YYTOKEN for the state stack whose top is YYSSP. Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is not large enough to hold the message. In that case, also set *YYMSG_ALLOC to the required number of bytes. Return 2 if the required number of bytes is too large to store. */ static int yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, yy_state_t *yyssp, int yytoken) { enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ const char *yyformat = YY_NULLPTR; /* Arguments of yyformat: reported tokens (one for the "unexpected", one per "expected"). */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Actual size of YYARG. */ int yycount = 0; /* Cumulated lengths of YYARG. */ YYPTRDIFF_T yysize = 0; /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected tokens because there are none. - The only way there can be no lookahead present (in yychar) is if this state is a consistent state with a default action. Thus, detecting the absence of a lookahead is sufficient to determine that there is no unexpected or expected token to report. In that case, just report a simple "syntax error". - Don't assume there isn't a lookahead just because this state is a consistent state with a default action. There might have been a previous inconsistent state, consistent state with a non-default action, or user semantic action that manipulated yychar. - Of course, the expected token list depends on states to have correct lookahead information, and it depends on the parser not to perform extra reductions after fetching a lookahead from the scanner and before detecting a syntax error. Thus, state merging (from LALR or IELR) and default reductions corrupt the expected token list. However, the list is correct for canonical LR with one exception: it will still contain any token that will not be accepted due to an error action in a later state. */ if (yytoken != YYEMPTY) { int yyn = yypact[*yyssp]; YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); yysize = yysize0; yyarg[yycount++] = yytname[yytoken]; if (!yypact_value_is_default (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. In other words, skip the first -YYN actions for this state because they are default actions. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yyx; for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR && !yytable_value_is_error (yytable[yyx + yyn])) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; break; } yyarg[yycount++] = yytname[yyx]; { YYPTRDIFF_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) yysize = yysize1; else return 2; } } } } switch (yycount) { # define YYCASE_(N, S) \ case N: \ yyformat = S; \ break default: /* Avoid compiler warnings. */ YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); # undef YYCASE_ } { /* Don't count the "%s"s in the final size, but reserve room for the terminator. */ YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) yysize = yysize1; else return 2; } if (*yymsg_alloc < yysize) { *yymsg_alloc = 2 * yysize; if (! (yysize <= *yymsg_alloc && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; return 1; } /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ { char *yyp = *yymsg; int yyi = 0; while ((*yyp = *yyformat) != '\0') if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyformat += 2; } else { ++yyp; ++yyformat; } } return 0; } #endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) { YYUSE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN switch (yytype) { case 3: /* "" */ #line 188 "idmef-criteria-string.yac.y" { free(((*yyvaluep).str)); } #line 1288 "idmef-criteria-string.yac.c" break; case 4: /* "" */ #line 188 "idmef-criteria-string.yac.y" { free(((*yyvaluep).str)); } #line 1294 "idmef-criteria-string.yac.c" break; case 5: /* "" */ #line 188 "idmef-criteria-string.yac.y" { free(((*yyvaluep).str)); } #line 1300 "idmef-criteria-string.yac.c" break; case 30: /* criteria */ #line 189 "idmef-criteria-string.yac.y" { idmef_criteria_destroy(((*yyvaluep).criteria)); } #line 1306 "idmef-criteria-string.yac.c" break; default: break; } YY_IGNORE_MAYBE_UNINITIALIZED_END } /* The lookahead symbol. */ int yychar; /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /*----------. | yyparse. | `----------*/ int yyparse (void) { yy_state_fast_t yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The stacks and their tools: 'yyss': related to states. 'yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yy_state_t yyssa[YYINITDEPTH]; yy_state_t *yyss; yy_state_t *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs; YYSTYPE *yyvsp; YYPTRDIFF_T yystacksize; int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; yyssp = yyss = yyssa; yyvsp = yyvs = yyvsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; /*------------------------------------------------------------. | yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; /*--------------------------------------------------------------------. | yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YY_ASSERT (0 <= yystate && yystate < YYNSTATES); YY_IGNORE_USELESS_CAST_BEGIN *yyssp = YY_CAST (yy_state_t, yystate); YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE goto yyexhaustedlab; #else { /* Get the current used size of the three stacks, in elements. */ YYPTRDIFF_T yysize = yyssp - yyss + 1; # if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * YYSIZEOF (*yyssp), &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } # else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yy_state_t *yyss1 = yyss; union yyalloc *yyptr = YY_CAST (union yyalloc *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YY_IGNORE_USELESS_CAST_BEGIN YYDPRINTF ((stderr, "Stack size increased to %ld\n", YY_CAST (long, yystacksize))); YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = yylex (); } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Discard the shifted token. */ yychar = YYEMPTY; goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: #line 232 "idmef-criteria-string.yac.y" { processed_criteria = (yyvsp[0].criteria); } #line 1578 "idmef-criteria-string.yac.c" break; case 3: #line 239 "idmef-criteria-string.yac.y" { (yyval.criteria) = (yyvsp[0].criteria); } #line 1586 "idmef-criteria-string.yac.c" break; case 4: #line 243 "idmef-criteria-string.yac.y" { idmef_criteria_or_criteria((yyvsp[-2].criteria), (yyvsp[0].criteria)); (yyval.criteria) = (yyvsp[-2].criteria); } #line 1595 "idmef-criteria-string.yac.c" break; case 5: #line 251 "idmef-criteria-string.yac.y" { (yyval.criteria) = (yyvsp[0].criteria); } #line 1603 "idmef-criteria-string.yac.c" break; case 6: #line 255 "idmef-criteria-string.yac.y" { idmef_criteria_and_criteria((yyvsp[-2].criteria), (yyvsp[0].criteria)); (yyval.criteria) = (yyvsp[-2].criteria); } #line 1612 "idmef-criteria-string.yac.c" break; case 7: #line 263 "idmef-criteria-string.yac.y" { (yyval.criteria) = (yyvsp[0].criteria); } #line 1620 "idmef-criteria-string.yac.c" break; case 8: #line 267 "idmef-criteria-string.yac.y" { idmef_criteria_t *criteria; real_ret = idmef_criteria_join(&criteria, NULL, IDMEF_CRITERIA_OPERATOR_NOT, (yyvsp[0].criteria)); if ( real_ret < 0 ) YYABORT; (yyval.criteria) = criteria; } #line 1634 "idmef-criteria-string.yac.c" break; case 9: #line 280 "idmef-criteria-string.yac.y" { (yyval.criteria) = (yyvsp[0].criteria); } #line 1642 "idmef-criteria-string.yac.c" break; case 10: #line 284 "idmef-criteria-string.yac.y" { (yyval.criteria) = (yyvsp[-1].criteria); } #line 1650 "idmef-criteria-string.yac.c" break; case 11: #line 291 "idmef-criteria-string.yac.y" { (yyval.criteria) = (yyvsp[-1].criteria); } #line 1658 "idmef-criteria-string.yac.c" break; case 12: #line 295 "idmef-criteria-string.yac.y" { (yyval.criteria) = (yyvsp[0].criteria); } #line 1666 "idmef-criteria-string.yac.c" break; case 13: #line 299 "idmef-criteria-string.yac.y" { idmef_criteria_t *criteria; real_ret = create_criteria(&criteria, (yyvsp[0].path), NULL, IDMEF_CRITERION_OPERATOR_NOT|IDMEF_CRITERION_OPERATOR_NULL); if ( real_ret < 0 ) YYABORT; (yyval.criteria) = criteria; } #line 1680 "idmef-criteria-string.yac.c" break; case 14: #line 312 "idmef-criteria-string.yac.y" { real_ret = idmef_path_new_fast(&cur_path, (yyvsp[0].str)); free((yyvsp[0].str)); if ( real_ret < 0 ) YYABORT; path_count = 0; (yyval.path) = cur_path; } #line 1695 "idmef-criteria-string.yac.c" break; case 15: #line 326 "idmef-criteria-string.yac.y" { idmef_criteria_t *criteria; idmef_criterion_value_t *value = NULL; prelude_string_t *out; real_ret = idmef_criterion_value_new_from_string(&value, cur_path, (yyvsp[0].str), cur_operator); free((yyvsp[0].str)); if ( real_ret < 0 ) YYABORT; real_ret = create_criteria(&criteria, cur_path, value, cur_operator); if ( real_ret < 0 ) YYABORT; (yyval.criteria) = criteria; } #line 1718 "idmef-criteria-string.yac.c" break; case 16: #line 345 "idmef-criteria-string.yac.y" { idmef_criteria_t *criteria; idmef_criterion_value_t *value = NULL; prelude_string_t *out; real_ret = escape_str(&out, (yyvsp[0].str)); free((yyvsp[0].str)); if ( real_ret < 0 ) YYABORT; real_ret = idmef_criterion_value_new_from_string(&value, cur_path, prelude_string_get_string(out), cur_operator); prelude_string_destroy(out); if ( real_ret < 0 ) YYABORT; real_ret = create_criteria(&criteria, cur_path, value, cur_operator); if ( real_ret < 0 ) YYABORT; (yyval.criteria) = criteria; } #line 1745 "idmef-criteria-string.yac.c" break; case 17: #line 372 "idmef-criteria-string.yac.y" { if ( (yyvsp[-1].operator) == operator_or ) idmef_criteria_or_criteria((yyvsp[-2].criteria), (yyvsp[0].criteria)); else idmef_criteria_and_criteria((yyvsp[-2].criteria), (yyvsp[0].criteria)); (yyval.criteria) = (yyvsp[-2].criteria); } #line 1758 "idmef-criteria-string.yac.c" break; case 18: #line 381 "idmef-criteria-string.yac.y" { (yyval.criteria) = (yyvsp[-1].criteria); } #line 1766 "idmef-criteria-string.yac.c" break; case 19: #line 385 "idmef-criteria-string.yac.y" { (yyval.criteria) = (yyvsp[0].criteria); } #line 1774 "idmef-criteria-string.yac.c" break; case 20: #line 392 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_SUBSTR; } #line 1780 "idmef-criteria-string.yac.c" break; case 21: #line 393 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_SUBSTR|IDMEF_CRITERION_OPERATOR_NOCASE; } #line 1786 "idmef-criteria-string.yac.c" break; case 22: #line 394 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_SUBSTR|IDMEF_CRITERION_OPERATOR_NOT; } #line 1792 "idmef-criteria-string.yac.c" break; case 23: #line 395 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_SUBSTR|IDMEF_CRITERION_OPERATOR_NOT|IDMEF_CRITERION_OPERATOR_NOCASE; } #line 1798 "idmef-criteria-string.yac.c" break; case 24: #line 396 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_REGEX; } #line 1804 "idmef-criteria-string.yac.c" break; case 25: #line 397 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_REGEX|IDMEF_CRITERION_OPERATOR_NOCASE; } #line 1810 "idmef-criteria-string.yac.c" break; case 26: #line 398 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_REGEX|IDMEF_CRITERION_OPERATOR_NOT; } #line 1816 "idmef-criteria-string.yac.c" break; case 27: #line 399 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_REGEX|IDMEF_CRITERION_OPERATOR_NOT|IDMEF_CRITERION_OPERATOR_NOCASE; } #line 1822 "idmef-criteria-string.yac.c" break; case 28: #line 400 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_GREATER; } #line 1828 "idmef-criteria-string.yac.c" break; case 29: #line 401 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_GREATER|IDMEF_CRITERION_OPERATOR_EQUAL; } #line 1834 "idmef-criteria-string.yac.c" break; case 30: #line 402 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_LESSER; } #line 1840 "idmef-criteria-string.yac.c" break; case 31: #line 403 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_LESSER|IDMEF_CRITERION_OPERATOR_EQUAL; } #line 1846 "idmef-criteria-string.yac.c" break; case 32: #line 404 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_EQUAL; } #line 1852 "idmef-criteria-string.yac.c" break; case 33: #line 405 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_EQUAL|IDMEF_CRITERION_OPERATOR_NOCASE; } #line 1858 "idmef-criteria-string.yac.c" break; case 34: #line 406 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_EQUAL|IDMEF_CRITERION_OPERATOR_NOT; } #line 1864 "idmef-criteria-string.yac.c" break; case 35: #line 407 "idmef-criteria-string.yac.y" { cur_operator = (yyval.relation) = IDMEF_CRITERION_OPERATOR_EQUAL|IDMEF_CRITERION_OPERATOR_NOCASE|IDMEF_CRITERION_OPERATOR_NOT; } #line 1870 "idmef-criteria-string.yac.c" break; case 36: #line 408 "idmef-criteria-string.yac.y" { real_ret = prelude_error_verbose(PRELUDE_ERROR_IDMEF_CRITERIA_PARSE, "Criteria parser reported: Invalid operator found"); YYERROR; } #line 1877 "idmef-criteria-string.yac.c" break; case 37: #line 412 "idmef-criteria-string.yac.y" { (yyval.operator) = operator_and; } #line 1883 "idmef-criteria-string.yac.c" break; case 38: #line 413 "idmef-criteria-string.yac.y" { (yyval.operator) = operator_or; } #line 1889 "idmef-criteria-string.yac.c" break; #line 1893 "idmef-criteria-string.yac.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ { const int yylhs = yyr1[yyn] - YYNTOKENS; const int yyi = yypgoto[yylhs] + *yyssp; yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp ? yytable[yyi] : yydefgoto[yylhs]); } goto yynewstate; /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ yyssp, yytoken) { char const *yymsgp = YY_("syntax error"); int yysyntax_error_status; yysyntax_error_status = YYSYNTAX_ERROR; if (yysyntax_error_status == 0) yymsgp = yymsg; else if (yysyntax_error_status == 1) { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); if (!yymsg) { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; yysyntax_error_status = 2; } else { yysyntax_error_status = YYSYNTAX_ERROR; yymsgp = yymsg; } } yyerror (yymsgp); if (yysyntax_error_status == 2) goto yyexhaustedlab; } # undef YYSYNTAX_ERROR #endif } if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (0) YYERROR; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yydestruct ("Error: popping", yystos[yystate], yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif /*-----------------------------------------------------. | yyreturn -- parsing is finished, return the result. | `-----------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); } /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif return yyresult; } #line 416 "idmef-criteria-string.yac.y" static void _preludeyyerror(const char *s) /* Called by yyparse on error */ { real_ret = prelude_error_verbose_make(PRELUDE_ERROR_SOURCE_IDMEF_CRITERIA, PRELUDE_ERROR_IDMEF_CRITERIA_PARSE, "IDMEF-Criteria parser: %s", s); } int idmef_criteria_new_from_string(idmef_criteria_t **new_criteria, const char *str) { int ret; void *state; prelude_return_val_if_fail(str, -1); gl_lock_lock(_criteria_parse_mutex); real_ret = 0; processed_criteria = NULL; state = _preludeyy_scan_string(str); ret = yyparse(); _preludeyy_delete_buffer(state); if ( ret != 0 ) { _idmef_criteria_string_init_lexer(); if ( real_ret ) ret = real_ret; else ret = prelude_error_make(PRELUDE_ERROR_SOURCE_IDMEF_CRITERIA, PRELUDE_ERROR_IDMEF_CRITERIA_PARSE); if ( processed_criteria ) idmef_criteria_destroy(processed_criteria); } else *new_criteria = processed_criteria; gl_lock_unlock(_criteria_parse_mutex); return ret; } libprelude-5.2.0/src/PaxHeaders.14770/idmef-criteria-string.lex.c0000644000000000000000000000011013726163410022555 xustar000000000000000024 mtime=1599661832.666 24 atime=1599661832.776 24 ctime=1599661999.783 libprelude-5.2.0/src/idmef-criteria-string.lex.c0000644000000000000000000020054513726163410021566 0ustar00rootroot00000000000000#include "libmissing.h" #line 3 "idmef-criteria-string.lex.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define yy_create_buffer _preludeyy_create_buffer #define yy_delete_buffer _preludeyy_delete_buffer #define yy_scan_buffer _preludeyy_scan_buffer #define yy_scan_string _preludeyy_scan_string #define yy_scan_bytes _preludeyy_scan_bytes #define yy_init_buffer _preludeyy_init_buffer #define yy_flush_buffer _preludeyy_flush_buffer #define yy_load_buffer_state _preludeyy_load_buffer_state #define yy_switch_to_buffer _preludeyy_switch_to_buffer #define yypush_buffer_state _preludeyypush_buffer_state #define yypop_buffer_state _preludeyypop_buffer_state #define yyensure_buffer_stack _preludeyyensure_buffer_stack #define yy_flex_debug _preludeyy_flex_debug #define yyin _preludeyyin #define yyleng _preludeyyleng #define yylex _preludeyylex #define yylineno _preludeyylineno #define yyout _preludeyyout #define yyrestart _preludeyyrestart #define yytext _preludeyytext #define yywrap _preludeyywrap #define yyalloc _preludeyyalloc #define yyrealloc _preludeyyrealloc #define yyfree _preludeyyfree #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 #define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif #ifdef yy_create_buffer #define _preludeyy_create_buffer_ALREADY_DEFINED #else #define yy_create_buffer _preludeyy_create_buffer #endif #ifdef yy_delete_buffer #define _preludeyy_delete_buffer_ALREADY_DEFINED #else #define yy_delete_buffer _preludeyy_delete_buffer #endif #ifdef yy_scan_buffer #define _preludeyy_scan_buffer_ALREADY_DEFINED #else #define yy_scan_buffer _preludeyy_scan_buffer #endif #ifdef yy_scan_string #define _preludeyy_scan_string_ALREADY_DEFINED #else #define yy_scan_string _preludeyy_scan_string #endif #ifdef yy_scan_bytes #define _preludeyy_scan_bytes_ALREADY_DEFINED #else #define yy_scan_bytes _preludeyy_scan_bytes #endif #ifdef yy_init_buffer #define _preludeyy_init_buffer_ALREADY_DEFINED #else #define yy_init_buffer _preludeyy_init_buffer #endif #ifdef yy_flush_buffer #define _preludeyy_flush_buffer_ALREADY_DEFINED #else #define yy_flush_buffer _preludeyy_flush_buffer #endif #ifdef yy_load_buffer_state #define _preludeyy_load_buffer_state_ALREADY_DEFINED #else #define yy_load_buffer_state _preludeyy_load_buffer_state #endif #ifdef yy_switch_to_buffer #define _preludeyy_switch_to_buffer_ALREADY_DEFINED #else #define yy_switch_to_buffer _preludeyy_switch_to_buffer #endif #ifdef yypush_buffer_state #define _preludeyypush_buffer_state_ALREADY_DEFINED #else #define yypush_buffer_state _preludeyypush_buffer_state #endif #ifdef yypop_buffer_state #define _preludeyypop_buffer_state_ALREADY_DEFINED #else #define yypop_buffer_state _preludeyypop_buffer_state #endif #ifdef yyensure_buffer_stack #define _preludeyyensure_buffer_stack_ALREADY_DEFINED #else #define yyensure_buffer_stack _preludeyyensure_buffer_stack #endif #ifdef yylex #define _preludeyylex_ALREADY_DEFINED #else #define yylex _preludeyylex #endif #ifdef yyrestart #define _preludeyyrestart_ALREADY_DEFINED #else #define yyrestart _preludeyyrestart #endif #ifdef yylex_init #define _preludeyylex_init_ALREADY_DEFINED #else #define yylex_init _preludeyylex_init #endif #ifdef yylex_init_extra #define _preludeyylex_init_extra_ALREADY_DEFINED #else #define yylex_init_extra _preludeyylex_init_extra #endif #ifdef yylex_destroy #define _preludeyylex_destroy_ALREADY_DEFINED #else #define yylex_destroy _preludeyylex_destroy #endif #ifdef yyget_debug #define _preludeyyget_debug_ALREADY_DEFINED #else #define yyget_debug _preludeyyget_debug #endif #ifdef yyset_debug #define _preludeyyset_debug_ALREADY_DEFINED #else #define yyset_debug _preludeyyset_debug #endif #ifdef yyget_extra #define _preludeyyget_extra_ALREADY_DEFINED #else #define yyget_extra _preludeyyget_extra #endif #ifdef yyset_extra #define _preludeyyset_extra_ALREADY_DEFINED #else #define yyset_extra _preludeyyset_extra #endif #ifdef yyget_in #define _preludeyyget_in_ALREADY_DEFINED #else #define yyget_in _preludeyyget_in #endif #ifdef yyset_in #define _preludeyyset_in_ALREADY_DEFINED #else #define yyset_in _preludeyyset_in #endif #ifdef yyget_out #define _preludeyyget_out_ALREADY_DEFINED #else #define yyget_out _preludeyyget_out #endif #ifdef yyset_out #define _preludeyyset_out_ALREADY_DEFINED #else #define yyset_out _preludeyyset_out #endif #ifdef yyget_leng #define _preludeyyget_leng_ALREADY_DEFINED #else #define yyget_leng _preludeyyget_leng #endif #ifdef yyget_text #define _preludeyyget_text_ALREADY_DEFINED #else #define yyget_text _preludeyyget_text #endif #ifdef yyget_lineno #define _preludeyyget_lineno_ALREADY_DEFINED #else #define yyget_lineno _preludeyyget_lineno #endif #ifdef yyset_lineno #define _preludeyyset_lineno_ALREADY_DEFINED #else #define yyset_lineno _preludeyyset_lineno #endif #ifdef yywrap #define _preludeyywrap_ALREADY_DEFINED #else #define yywrap _preludeyywrap #endif #ifdef yyalloc #define _preludeyyalloc_ALREADY_DEFINED #else #define yyalloc _preludeyyalloc #endif #ifdef yyrealloc #define _preludeyyrealloc_ALREADY_DEFINED #else #define yyrealloc _preludeyyrealloc #endif #ifdef yyfree #define _preludeyyfree_ALREADY_DEFINED #else #define yyfree _preludeyyfree #endif #ifdef yytext #define _preludeyytext_ALREADY_DEFINED #else #define yytext _preludeyytext #endif #ifdef yyleng #define _preludeyyleng_ALREADY_DEFINED #else #define yyleng _preludeyyleng #endif #ifdef yyin #define _preludeyyin_ALREADY_DEFINED #else #define yyin _preludeyyin #endif #ifdef yyout #define _preludeyyout_ALREADY_DEFINED #else #define yyout _preludeyyout #endif #ifdef yy_flex_debug #define _preludeyy_flex_debug_ALREADY_DEFINED #else #define yy_flex_debug _preludeyy_flex_debug #endif #ifdef yylineno #define _preludeyylineno_ALREADY_DEFINED #else #define yylineno _preludeyylineno #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #ifndef SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ /* TODO: this is always defined, so inline it */ #define yyconst const #if defined(__GNUC__) && __GNUC__ >= 3 #define yynoreturn __attribute__((__noreturn__)) #else #define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an * integer in range [0..255] for use as an array index. */ #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart ( FILE *input_file ); void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); void yy_delete_buffer ( YY_BUFFER_STATE b ); void yy_flush_buffer ( YY_BUFFER_STATE b ); void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); void yypop_buffer_state ( void ); static void yyensure_buffer_stack ( void ); static void yy_load_buffer_state ( void ); static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); void *yyalloc ( yy_size_t ); void *yyrealloc ( void *, yy_size_t ); void yyfree ( void * ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define _preludeyywrap() (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP typedef flex_uint8_t YY_CHAR; FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; int yylineno = 1; extern char *yytext; #ifdef yytext_ptr #undef yytext_ptr #endif #define yytext_ptr yytext static yy_state_type yy_get_previous_state ( void ); static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); static int yy_get_next_buffer ( void ); static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 45 #define YY_END_OF_BUFFER 46 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static const flex_int16_t yy_accept[103] = { 0, 0, 0, 0, 0, 46, 44, 43, 43, 23, 25, 28, 29, 5, 12, 19, 10, 5, 27, 14, 34, 35, 34, 34, 39, 34, 36, 37, 34, 41, 43, 0, 21, 0, 16, 24, 0, 5, 5, 13, 6, 20, 18, 11, 5, 26, 15, 34, 35, 34, 34, 0, 33, 34, 38, 34, 0, 32, 34, 34, 34, 40, 8, 22, 0, 17, 0, 0, 0, 0, 7, 5, 33, 0, 32, 0, 34, 0, 31, 34, 34, 0, 30, 34, 9, 0, 0, 0, 5, 5, 31, 0, 30, 0, 0, 0, 5, 0, 1, 2, 3, 4, 0 } ; static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 5, 1, 1, 1, 6, 7, 8, 9, 10, 1, 1, 11, 12, 1, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 1, 14, 15, 16, 1, 1, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 1, 18, 1, 1, 17, 1, 17, 19, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 20, 21, 22, 23, 17, 17, 17, 17, 17, 1, 24, 1, 25, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static const YY_CHAR yy_meta[26] = { 0, 1, 2, 1, 1, 3, 2, 4, 5, 2, 1, 6, 6, 6, 1, 1, 1, 6, 1, 6, 6, 6, 6, 6, 2, 1 } ; static const flex_int16_t yy_base[116] = { 0, 0, 0, 24, 47, 163, 351, 32, 34, 58, 154, 351, 351, 30, 24, 31, 144, 35, 134, 147, 0, 57, 59, 82, 150, 105, 351, 351, 58, 130, 66, 137, 142, 128, 140, 351, 125, 126, 58, 351, 138, 351, 351, 351, 55, 351, 351, 0, 73, 78, 137, 46, 0, 90, 351, 160, 78, 0, 79, 183, 206, 351, 137, 351, 125, 351, 0, 0, 89, 79, 351, 80, 351, 138, 351, 137, 229, 99, 0, 113, 252, 87, 0, 119, 351, 113, 128, 120, 113, 87, 351, 117, 351, 116, 55, 48, 101, 25, 105, 18, 351, 351, 351, 276, 278, 284, 290, 296, 302, 308, 314, 320, 326, 332, 338, 344 } ; static const flex_int16_t yy_def[116] = { 0, 102, 1, 103, 103, 102, 102, 102, 102, 102, 102, 102, 102, 104, 102, 102, 102, 104, 102, 102, 105, 102, 105, 106, 102, 107, 102, 102, 105, 102, 102, 102, 102, 102, 102, 102, 102, 17, 104, 102, 102, 102, 102, 102, 17, 102, 102, 105, 102, 105, 106, 108, 105, 50, 102, 107, 109, 105, 55, 110, 111, 102, 102, 102, 102, 102, 112, 113, 102, 102, 102, 17, 102, 108, 102, 109, 110, 114, 105, 76, 111, 115, 105, 80, 102, 102, 112, 113, 38, 17, 102, 114, 102, 115, 102, 102, 17, 102, 17, 102, 102, 102, 0, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102 } ; static const flex_int16_t yy_nxt[377] = { 0, 6, 7, 8, 9, 6, 10, 6, 11, 12, 6, 13, 6, 13, 14, 15, 16, 13, 6, 13, 13, 17, 13, 13, 18, 19, 21, 22, 101, 23, 24, 25, 26, 27, 30, 30, 30, 30, 36, 39, 40, 41, 38, 36, 28, 99, 42, 38, 29, 21, 22, 72, 23, 24, 25, 26, 27, 88, 44, 48, 48, 48, 49, 59, 73, 60, 102, 28, 30, 30, 102, 29, 31, 32, 71, 48, 48, 97, 37, 33, 48, 49, 47, 34, 51, 74, 55, 52, 51, 68, 51, 51, 68, 47, 92, 50, 75, 55, 88, 68, 53, 89, 68, 37, 90, 93, 51, 56, 50, 96, 37, 56, 57, 56, 56, 100, 47, 91, 76, 102, 102, 98, 47, 58, 37, 38, 80, 95, 37, 56, 66, 76, 67, 95, 94, 68, 69, 80, 68, 51, 102, 102, 52, 51, 85, 51, 51, 84, 70, 37, 65, 64, 63, 62, 61, 53, 54, 46, 45, 43, 35, 51, 56, 102, 102, 102, 56, 57, 56, 56, 102, 102, 102, 102, 102, 102, 102, 102, 58, 102, 102, 102, 102, 102, 56, 77, 102, 102, 78, 77, 102, 77, 77, 102, 102, 102, 102, 102, 102, 102, 102, 79, 102, 102, 102, 102, 102, 77, 81, 102, 102, 102, 81, 82, 81, 81, 102, 102, 102, 102, 102, 102, 102, 102, 83, 102, 102, 102, 102, 102, 81, 77, 102, 102, 78, 77, 102, 77, 77, 102, 102, 102, 102, 102, 102, 102, 102, 79, 102, 102, 102, 102, 102, 77, 81, 102, 102, 102, 81, 82, 81, 81, 102, 102, 102, 102, 102, 102, 102, 102, 83, 102, 102, 102, 102, 102, 81, 20, 20, 20, 20, 20, 20, 37, 37, 47, 102, 47, 47, 102, 47, 50, 50, 50, 50, 50, 50, 55, 55, 55, 55, 55, 55, 51, 51, 51, 51, 51, 51, 56, 56, 56, 56, 56, 56, 76, 76, 76, 76, 76, 76, 80, 80, 80, 80, 80, 80, 86, 86, 102, 86, 86, 86, 87, 87, 87, 102, 87, 87, 77, 77, 77, 77, 77, 77, 81, 81, 81, 81, 81, 81, 5, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102 } ; static const flex_int16_t yy_chk[377] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 99, 3, 3, 3, 3, 3, 7, 7, 8, 8, 13, 14, 14, 15, 13, 17, 3, 97, 15, 17, 3, 4, 4, 51, 4, 4, 4, 4, 4, 95, 17, 21, 21, 22, 22, 28, 51, 28, 38, 4, 30, 30, 38, 4, 9, 9, 44, 48, 48, 94, 44, 9, 49, 49, 58, 9, 23, 56, 58, 23, 23, 69, 23, 23, 69, 53, 81, 53, 56, 58, 68, 68, 23, 71, 68, 71, 77, 81, 23, 25, 53, 89, 89, 25, 25, 25, 25, 98, 79, 77, 79, 93, 91, 96, 83, 25, 96, 88, 83, 87, 98, 25, 36, 79, 36, 86, 85, 36, 36, 83, 36, 50, 75, 73, 50, 50, 64, 50, 50, 62, 40, 37, 34, 33, 32, 31, 29, 50, 24, 19, 18, 16, 10, 50, 55, 5, 0, 0, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 55, 59, 0, 0, 59, 59, 0, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 59, 60, 0, 0, 0, 60, 60, 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 60, 76, 0, 0, 76, 76, 0, 76, 76, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 76, 80, 0, 0, 0, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 80, 103, 103, 103, 103, 103, 103, 104, 104, 105, 0, 105, 105, 0, 105, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 107, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 110, 110, 110, 110, 110, 110, 111, 111, 111, 111, 111, 111, 112, 112, 0, 112, 112, 112, 113, 113, 113, 0, 113, 113, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "idmef-criteria-string.lex.l" /***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Krzysztof Zaraska * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #line 30 "idmef-criteria-string.lex.l" #include #include #include "idmef.h" #include "common.h" #include "idmef-criteria-string.yac.h" #define YY_NO_INPUT #define YY_NO_TOP_STATE #ifndef MIN # define MIN(x, y) ((x) < (y) ? (x) : (y)) #endif static void do_pop(void); static unsigned int inp = 0; #line 863 "idmef-criteria-string.lex.c" #line 865 "idmef-criteria-string.lex.c" #define INITIAL 0 #define IDMEF_VALUE 1 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy ( void ); int yyget_debug ( void ); void yyset_debug ( int debug_flag ); YY_EXTRA_TYPE yyget_extra ( void ); void yyset_extra ( YY_EXTRA_TYPE user_defined ); FILE *yyget_in ( void ); void yyset_in ( FILE * _in_str ); FILE *yyget_out ( void ); void yyset_out ( FILE * _out_str ); int yyget_leng ( void ); char *yyget_text ( void ); int yyget_lineno ( void ); void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap ( void ); #else extern int yywrap ( void ); #endif #endif #ifndef YY_NO_UNPUT #endif #ifndef yytext_ptr static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput ( void ); #else static int input ( void ); #endif #endif static int yy_start_stack_ptr = 0; static int yy_start_stack_depth = 0; static int *yy_start_stack = NULL; static void yy_push_state ( int _new_state ); static void yy_pop_state ( void ); static int yy_top_state ( void ); /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex (void); #define YY_DECL int yylex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { yy_state_type yy_current_state; char *yy_cp, *yy_bp; int yy_act; if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_load_buffer_state( ); } { #line 64 "idmef-criteria-string.lex.l" #line 1094 "idmef-criteria-string.lex.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_match: do { YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 103 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 351 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = (yy_hold_char); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; case 1: YY_RULE_SETUP #line 66 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_SUBSTRING; } YY_BREAK case 2: YY_RULE_SETUP #line 67 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_SUBSTRING; } YY_BREAK case 3: YY_RULE_SETUP #line 68 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_SUBSTRING_NOCASE; } YY_BREAK case 4: YY_RULE_SETUP #line 69 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_SUBSTRING_NOCASE; } YY_BREAK case 5: /* rule 5 can match eol */ YY_RULE_SETUP #line 71 "idmef-criteria-string.lex.l" { _preludeyylval.str = strdup(yytext); return TOK_IDMEF_PATH; } YY_BREAK case 6: YY_RULE_SETUP #line 76 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_SUBSTRING; } YY_BREAK case 7: YY_RULE_SETUP #line 77 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_SUBSTRING_NOCASE; } YY_BREAK case 8: YY_RULE_SETUP #line 78 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_SUBSTRING; } YY_BREAK case 9: YY_RULE_SETUP #line 79 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_SUBSTRING_NOCASE; } YY_BREAK case 10: YY_RULE_SETUP #line 81 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_GREATER; } YY_BREAK case 11: YY_RULE_SETUP #line 82 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_GREATER_OR_EQUAL; } YY_BREAK case 12: YY_RULE_SETUP #line 83 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_LESS; } YY_BREAK case 13: YY_RULE_SETUP #line 84 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_LESS_OR_EQUAL; } YY_BREAK case 14: YY_RULE_SETUP #line 86 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_REGEXP; } YY_BREAK case 15: YY_RULE_SETUP #line 87 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_REGEXP_NOCASE; } YY_BREAK case 16: YY_RULE_SETUP #line 88 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_REGEXP; } YY_BREAK case 17: YY_RULE_SETUP #line 89 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_REGEXP_NOCASE; } YY_BREAK case 18: YY_RULE_SETUP #line 91 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_EQUAL; } YY_BREAK case 19: YY_RULE_SETUP #line 92 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_EQUAL; } YY_BREAK case 20: YY_RULE_SETUP #line 93 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_EQUAL_NOCASE; } YY_BREAK case 21: YY_RULE_SETUP #line 94 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_EQUAL; } YY_BREAK case 22: YY_RULE_SETUP #line 95 "idmef-criteria-string.lex.l" { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_EQUAL_NOCASE; } YY_BREAK case 23: YY_RULE_SETUP #line 97 "idmef-criteria-string.lex.l" { return TOK_OPERATOR_NOT; } YY_BREAK case 24: YY_RULE_SETUP #line 98 "idmef-criteria-string.lex.l" { return TOK_OPERATOR_AND; } YY_BREAK case 25: YY_RULE_SETUP #line 99 "idmef-criteria-string.lex.l" { return TOK_OPERATOR_AND; } YY_BREAK case 26: YY_RULE_SETUP #line 100 "idmef-criteria-string.lex.l" { return TOK_OPERATOR_OR; } YY_BREAK case 27: YY_RULE_SETUP #line 101 "idmef-criteria-string.lex.l" { return TOK_OPERATOR_OR; } YY_BREAK case 28: YY_RULE_SETUP #line 103 "idmef-criteria-string.lex.l" { return '('; } YY_BREAK case 29: YY_RULE_SETUP #line 104 "idmef-criteria-string.lex.l" { return ')'; } YY_BREAK case 30: /* rule 30 can match eol */ YY_RULE_SETUP #line 106 "idmef-criteria-string.lex.l" { _preludeyylval.str = strndup(yytext + 2, yyleng - 3); if ( ! inp ) yy_pop_state(); return TOK_IDMEF_RAW_VALUE; } YY_BREAK case 31: /* rule 31 can match eol */ YY_RULE_SETUP #line 115 "idmef-criteria-string.lex.l" { _preludeyylval.str = strndup(yytext + 2, yyleng - 3); if ( ! inp ) yy_pop_state(); return TOK_IDMEF_RAW_VALUE; } YY_BREAK case 32: /* rule 32 can match eol */ YY_RULE_SETUP #line 124 "idmef-criteria-string.lex.l" { _preludeyylval.str = strndup(yytext + 1, yyleng - 2); if ( ! inp ) yy_pop_state(); return TOK_IDMEF_VALUE; } YY_BREAK case 33: /* rule 33 can match eol */ YY_RULE_SETUP #line 133 "idmef-criteria-string.lex.l" { _preludeyylval.str = strndup(yytext + 1, yyleng - 2); if ( ! inp ) yy_pop_state(); return TOK_IDMEF_VALUE; } YY_BREAK case 34: /* rule 34 can match eol */ YY_RULE_SETUP #line 142 "idmef-criteria-string.lex.l" { _preludeyylval.str = strdup(yytext); if ( ! inp ) yy_pop_state(); return TOK_IDMEF_VALUE; } YY_BREAK case 35: /* rule 35 can match eol */ YY_RULE_SETUP #line 151 "idmef-criteria-string.lex.l" { /* nop */; } YY_BREAK case 36: YY_RULE_SETUP #line 155 "idmef-criteria-string.lex.l" { inp++; return '('; } YY_BREAK case 37: YY_RULE_SETUP #line 160 "idmef-criteria-string.lex.l" { do_pop(); return ')'; } YY_BREAK case 38: YY_RULE_SETUP #line 165 "idmef-criteria-string.lex.l" { return TOK_OPERATOR_AND; } YY_BREAK case 39: YY_RULE_SETUP #line 166 "idmef-criteria-string.lex.l" { return TOK_OPERATOR_AND; } YY_BREAK case 40: YY_RULE_SETUP #line 167 "idmef-criteria-string.lex.l" { return TOK_OPERATOR_OR; } YY_BREAK case 41: YY_RULE_SETUP #line 168 "idmef-criteria-string.lex.l" { return TOK_OPERATOR_OR; } YY_BREAK case 42: YY_RULE_SETUP #line 170 "idmef-criteria-string.lex.l" { /* invalid token */ return TOK_ERROR; } YY_BREAK case 43: /* rule 43 can match eol */ YY_RULE_SETUP #line 175 "idmef-criteria-string.lex.l" { /* nop */; } YY_BREAK case 44: YY_RULE_SETUP #line 179 "idmef-criteria-string.lex.l" { /* invalid token */ _preludeyylval.str = strdup(yytext); return TOK_ERROR; } YY_BREAK case 45: YY_RULE_SETUP #line 187 "idmef-criteria-string.lex.l" ECHO; YY_BREAK #line 1439 "idmef-criteria-string.lex.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(IDMEF_VALUE): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc( (void *) b->yy_ch_buf, (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); /* "- 2" to take care of EOB's */ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (void) { yy_state_type yy_current_state; char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 103 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { int yy_is_jam; char *yy_cp = (yy_c_buf_p); YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 103 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 102); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) #else static int input (void) #endif { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_init_buffer( YY_CURRENT_BUFFER, input_file ); yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * */ void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree( (void *) b->yy_ch_buf ); yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; yyensure_buffer_stack(); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void yyensure_buffer_stack (void) { yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return NULL; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } /** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ YY_BUFFER_STATE yy_scan_string (const char * yystr ) { return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } static void yy_push_state (int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) (yy_start_stack) = (int *) yyalloc( new_size ); else (yy_start_stack) = (int *) yyrealloc( (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; BEGIN(_new_state); } static void yy_pop_state (void) { if ( --(yy_start_stack_ptr) < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); } static int yy_top_state (void) { return (yy_start_stack)[(yy_start_stack_ptr) - 1]; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yynoreturn yy_fatal_error (const char* msg ) { fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int yyget_lineno (void) { return yylineno; } /** Get the input stream. * */ FILE *yyget_in (void) { return yyin; } /** Get the output stream. * */ FILE *yyget_out (void) { return yyout; } /** Get the length of the current token. * */ int yyget_leng (void) { return yyleng; } /** Get the current token. * */ char *yyget_text (void) { return yytext; } /** Set the current line number. * @param _line_number line number * */ void yyset_lineno (int _line_number ) { yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * * @see yy_switch_to_buffer */ void yyset_in (FILE * _in_str ) { yyin = _in_str ; } void yyset_out (FILE * _out_str ) { yyout = _out_str ; } int yyget_debug (void) { return yy_flex_debug; } void yyset_debug (int _bdebug ) { yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; (yy_start_stack_ptr) = 0; (yy_start_stack_depth) = 0; (yy_start_stack) = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = NULL; yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by * yylex_init() */ return 0; } /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } /* Destroy the stack itself. */ yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Destroy the start condition stack. */ yyfree( (yy_start_stack) ); (yy_start_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, const char * s2, int n ) { int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size ) { return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return realloc(ptr, size); } void yyfree (void * ptr ) { free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 187 "idmef-criteria-string.lex.l" static void do_pop(void) { if ( --inp == 0 ) yy_pop_state(); } void _idmef_criteria_string_init_lexer(void); void _idmef_criteria_string_init_lexer(void) { inp = 0; BEGIN INITIAL; } libprelude-5.2.0/src/PaxHeaders.14770/common.c0000644000000000000000000000011013726163410017066 xustar000000000000000024 mtime=1599661832.665 24 atime=1599661832.775 24 ctime=1599661999.787 libprelude-5.2.0/src/common.c0000644000000000000000000006606113726163410016102 0ustar00rootroot00000000000000/***** * * Copyright (C) 2002-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #include #include #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) # include #endif #include "prelude-error.h" #include "idmef.h" #include "prelude-log.h" #include "common.h" extern char _prelude_init_cwd[PATH_MAX]; static prelude_string_t *get_message_ident(prelude_ident_t *ident) { int ret; prelude_string_t *str; ret = prelude_string_new(&str); if ( ret < 0 ) return NULL; ret = prelude_ident_generate(ident, str); if ( ret < 0 ) { prelude_string_destroy(str); return NULL; } return str; } static int find_absolute_path(const char *cwd, const char *file, char **path) { int ret; char buf[PATH_MAX]; const char *ptr; char *pathenv = strdup(getenv("PATH")), *old = pathenv; while ( (ptr = strsep(&pathenv, ":")) ) { ret = strcmp(ptr, "."); if ( ret == 0 ) { if ( *cwd == 0 ) continue; ptr = cwd; } snprintf(buf, sizeof(buf), "%s/%s", ptr, file); ret = access(buf, F_OK); if ( ret < 0 ) continue; *path = strdup(ptr); free(old); return 0; } free(old); return -1; } /** * _prelude_realloc: * @ptr: Pointer on a memory block. * @size: New size. * * prelude_realloc() changes the size of the memory block pointed by @ptr * to @size bytes. The contents will be unchanged to the minimum of the old * and new sizes; newly allocated memory will be uninitialized. If ptr is NULL, * the call is equivalent to malloc(@size); if @size is equal to zero, the call * is equivalent to free(ptr). Unless ptr is NULL, it must have been returned by * an earlier call to malloc(), calloc() or realloc(). * * This function exists because some versions of realloc() don't handle the * case where @ptr is NULL. Even though ANSI requires it. * * Returns: a pointer to the newly allocated memory, which is suitably * aligned for any kind of variable and may be different from ptr, or NULL if the * request fails. If size was equal to 0, either NULL or a pointer suitable to be * passed to free() is returned. If realloc() fails, the original block is left * untouched - it is not freed nor moved. */ void *_prelude_realloc(void *ptr, size_t size) { if ( ptr == NULL ) return malloc(size); else return realloc(ptr, size); } /** * prelude_read_multiline: * @fd: File descriptor to read input from. * @line: Pointer to a line counter. * @buf: Pointer to a buffer where the line should be stored. * @size: Size of the @buf buffer. * * This function handles line reading separated by the '\' character. * * Returns: 0 on success, -1 if an error occured. */ int prelude_read_multiline(FILE *fd, unsigned int *line, char *buf, size_t size) { size_t i, j, len; prelude_bool_t eol, has_data = FALSE, miss_eol=FALSE; while ( size > 1 ) { if ( ! fgets(buf, size, fd) ) return (has_data) ? 0 : prelude_error(PRELUDE_ERROR_EOF); len = strlen(buf); if ( ! len ) continue; eol = FALSE; for ( i = len - 1; isspace((int) buf[i]); i-- ) { if ( buf[i] == '\n' || buf[i] == '\r' ) { buf[i] = 0; if ( ! eol ) { eol = TRUE; (*line)++; } } if ( i == 0 ) break; } if ( miss_eol && eol && i == 0 ) continue; /* * We don't want to handle multilines in case this is a comment. */ for ( j = 0; buf[j] != '\0' && isspace((int) buf[j]); j++ ); if ( buf[j] == '#' ) continue; /* * Multiline found, continue reading. */ if ( buf[i] != '\\' ) { if ( eol ) return 0; if ( len == size - 1 ) break; has_data = TRUE; } if ( ! eol ) miss_eol = TRUE; buf += i; size -= i; } return prelude_error_verbose(PRELUDE_ERROR_EINVAL, "buffer is too small to store input line"); } /** * prelude_read_multiline2: * @fd: File descriptor to read input from. * @line: Pointer to a line counter. * @out: Pointer to a #prelude_string_t object where the line should be stored. * * This function handles line reading separated by the '\' character. * * Returns: 0 on success, a negative value if an error occured. */ int prelude_read_multiline2(FILE *fd, unsigned int *line, prelude_string_t *out) { int ret, r; char buf[8192]; prelude_string_clear(out); do { ret = prelude_read_multiline(fd, line, buf, sizeof(buf)); if ( ret < 0 && (r = prelude_error_get_code(ret)) != PRELUDE_ERROR_EINVAL ) { if ( r == PRELUDE_ERROR_EOF && ! prelude_string_is_empty(out) ) ret = 0; break; } r = prelude_string_cat(out, buf); if ( r < 0 ) return r; } while ( ret < 0 ); return ret; } /** * prelude_hton64: * @val: Value to convert to network byte order. * * The prelude_hton64() function converts the 64 bits unsigned integer @val * from host byte order to network byte order. * * Returns: @val in the network bytes order. */ uint64_t prelude_hton64(uint64_t val) { uint64_t tmp; #ifdef PRELUDE_WORDS_BIGENDIAN tmp = val; #else union { uint64_t val64; uint32_t val32[2]; } combo_r, combo_w; combo_r.val64 = val; /* * Puts in network byte order */ combo_w.val32[0] = htonl(combo_r.val32[1]); combo_w.val32[1] = htonl(combo_r.val32[0]); tmp = combo_w.val64; #endif return tmp; } uint32_t prelude_htonf(float fval) { union { float fval; uint32_t ival; } val; val.fval = fval; return htonl(val.ival); } static void normalize_path(char *path) { int cnt; char *ptr, *end; while ( (ptr = strstr(path, "./")) ) { end = ptr + 2; if ( ptr == path || *(ptr - 1) != '.' ) { memmove(ptr, end, strlen(end) + 1); continue; } cnt = 0; while ( ptr != path ) { if ( *(ptr - 1) == '/' && ++cnt == 2 ) break; ptr--; } memmove(ptr == path ? ptr + 1 : ptr, end, strlen(end) + 1); } } int _prelude_get_file_name_and_path(const char *str, char **name, char **path) { int ret = 0; char *ptr, pathname[PATH_MAX] = { 0 }; ptr = strrchr(str, '/'); if ( ! ptr ) { ret = find_absolute_path(_prelude_init_cwd, str, path); if ( ret < 0 ) return ret; *name = strdup(str); return (*name) ? 0 : prelude_error_from_errno(errno); } if ( *str != '/' ) { char needsep = 0; size_t cwdlen = strlen(_prelude_init_cwd); if ( cwdlen ) needsep = (_prelude_init_cwd[cwdlen - 1] != '/' ) ? '/' : '\0'; ret = snprintf(pathname, sizeof(pathname), "%s%c", _prelude_init_cwd, needsep); if ( ret < 0 || (size_t) ret >= sizeof(pathname) ) return prelude_error_from_errno(errno); } strncat(pathname, str, sizeof(pathname) - strlen(pathname)); normalize_path(pathname); ret = access(pathname, F_OK); if ( ret < 0 ) return prelude_error_from_errno(errno); ptr = strrchr(pathname, '/'); *path = strndup(pathname, ptr - pathname); if ( ! *path ) return prelude_error_from_errno(errno); *name = strdup(ptr + 1); if ( ! *name ) { free(*path); return prelude_error_from_errno(errno); } return 0; } int prelude_get_gmt_offset_from_time(const time_t *utc, long *gmtoff) { time_t local; struct tm lt; if ( ! localtime_r(utc, <) ) return prelude_error_from_errno(errno); local = timegm(<); *gmtoff = local - *utc; return 0; } int prelude_get_gmt_offset_from_tm(struct tm *tm, long *gmtoff) { int tmp; time_t local, utc; /* * timegm will reset tm_isdst to 0 */ tmp = tm->tm_isdst; utc = timegm(tm); tm->tm_isdst = tmp; local = mktime(tm); if ( local == (time_t) -1 ) return prelude_error_from_errno(errno); *gmtoff = utc - mktime(tm); return 0; } int prelude_get_gmt_offset(long *gmtoff) { time_t t = time(NULL); return prelude_get_gmt_offset_from_time(&t, gmtoff); } time_t prelude_timegm(struct tm *tm) { return timegm(tm); } void *prelude_sockaddr_get_inaddr(struct sockaddr *sa) { void *ret = NULL; union { struct sockaddr *sa; struct sockaddr_in *sa4; #ifdef HAVE_IPV6 struct sockaddr_in6 *sa6; #endif } val; val.sa = sa; if ( sa->sa_family == AF_INET ) ret = &val.sa4->sin_addr; #ifdef HAVE_IPV6 else if ( sa->sa_family == AF_INET6 ) ret = &val.sa6->sin6_addr; #endif return ret; } int prelude_parse_address(const char *str, char **addr, unsigned int *port) { char *input, *endptr = NULL; char *ptr, *port_ptr; ptr = strchr(str, '['); if ( ! ptr ) { input = strdup(str); port_ptr = input; } else { input = strdup(ptr + 1); ptr = strchr(input, ']'); if ( ! ptr ) { free(input); return -1; } *ptr = 0; port_ptr = ptr + 1; } *addr = input; ptr = strrchr(port_ptr, ':'); if ( ptr ) { *port = strtoul(ptr + 1, &endptr, 10); if ( endptr && *endptr != 0 ) { free(input); return -1; } *ptr = 0; } return 0; } /* * keep this function consistant with idmef_impact_severity_t value. */ prelude_msg_priority_t _idmef_impact_severity_to_msg_priority(idmef_impact_severity_t severity) { static const prelude_msg_priority_t priority[] = { PRELUDE_MSG_PRIORITY_NONE, /* not bound */ PRELUDE_MSG_PRIORITY_LOW, /* IDMEF_IMPACT_SEVERITY_INFO -> 1 */ PRELUDE_MSG_PRIORITY_LOW, /* IDMEF_IMPACT_SEVERITY_LOW -> 2 */ PRELUDE_MSG_PRIORITY_MID, /* IDMEF_IMPACT_SEVERITY_MEDIUM -> 3 */ PRELUDE_MSG_PRIORITY_HIGH, /* IDMEF_IMPACT_SEVERITY_HIGH -> 4 */ }; if ( severity < 0 || (size_t) severity >= (sizeof(priority) / sizeof(*priority)) ) return PRELUDE_MSG_PRIORITY_NONE; return priority[severity]; } static int add_analyzer(prelude_client_t *client, void *top, void *(*geta)(void *top, idmef_analyzer_t *analyzer), int (*insa)(void *top, idmef_analyzer_t *analyzer, int pos)) { int ret; prelude_string_t *str; idmef_analyzer_t *analyzer = NULL; uint64_t wanted_analyzerid, analyzerid; wanted_analyzerid = prelude_client_profile_get_analyzerid(prelude_client_get_profile(client)); while ( (analyzer = geta(top, analyzer)) ) { str = idmef_analyzer_get_analyzerid(analyzer); if ( ! str ) continue; analyzerid = strtoull(prelude_string_get_string(str), NULL, 10); if ( analyzerid == wanted_analyzerid ) return 0; } ret = idmef_analyzer_clone(prelude_client_get_analyzer(client), &analyzer); if ( ret < 0 ) return ret; return insa(top, analyzer, IDMEF_LIST_PREPEND); } int _idmef_message_assign_missing(prelude_client_t *client, idmef_message_t *msg) { idmef_alert_t *alert; idmef_heartbeat_t *heartbeat; prelude_ident_t *ident = prelude_client_get_unique_ident(client); if ( idmef_message_get_type(msg) == IDMEF_MESSAGE_TYPE_ALERT ) { alert = idmef_message_get_alert(msg); if ( ! idmef_alert_get_messageid(alert) ) idmef_alert_set_messageid(alert, get_message_ident(ident)); add_analyzer(client, alert, (void *) idmef_alert_get_next_analyzer, (void *) idmef_alert_set_analyzer); } else { heartbeat = idmef_message_get_heartbeat(msg); if ( ! idmef_heartbeat_get_messageid(heartbeat) ) idmef_heartbeat_set_messageid(heartbeat, get_message_ident(ident)); add_analyzer(client, heartbeat, (void *) idmef_heartbeat_get_next_analyzer, (void *)idmef_heartbeat_set_analyzer); } return 0; } int _prelude_load_file(const char *filename, unsigned char **fdata, size_t *outsize) { int ret, fd; struct stat st; unsigned char *dataptr; fd = open(filename, O_RDONLY); if ( fd < 0 ) return prelude_error_from_errno(errno); ret = fstat(fd, &st); if ( ret < 0 ) { close(fd); return prelude_error_from_errno(errno); } if ( st.st_size == 0 ) { close(fd); return prelude_error_verbose(prelude_error_code_from_errno(EINVAL), "could not load '%s': empty file", filename); } *outsize = st.st_size; #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) dataptr = *fdata = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0); if ( dataptr == MAP_FAILED ) { close(fd); return prelude_error_from_errno(errno); } #else dataptr = *fdata = malloc(st.st_size); if ( ! dataptr ) { close(fd); return prelude_error_from_errno(errno); } _setmode(fd, O_BINARY); do { ssize_t len; len = read(fd, dataptr, st.st_size); if ( len < 0 ) { if ( errno == EINTR ) continue; close(fd); free(*fdata); return prelude_error_from_errno(errno); } dataptr += len; st.st_size -= len; } while ( st.st_size > 0 ); #endif close(fd); return 0; } void _prelude_unload_file(unsigned char *fdata, size_t size) { #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) munmap(fdata, size); #else free(fdata); #endif } double prelude_simple_strtod(const char *s, char **endptr) { double neg = 1, ret = 0, fp = 1.0; int got_point = 0, d; if ( *s == '-' ) { neg = -1; s++; } for ( ; *s; s++) { if ( *s == '.' ) { got_point = 1; continue; } d = *s - '0'; if ( d < 0 || d > 9 ) break; else if ( ! got_point ) ret = (10 * ret) + d; else { fp *= 0.1; ret += fp * d; } } if ( endptr ) *endptr = s; return ret * neg; } /* * Table of CRCs of all 8-bit messages. Generated by running code * from RFC 1952 modified to print out the table. */ static uint32_t crc32_tab[] = { 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d }; /* * The following function was modified from RFC 1952. * * Copyright (c) 1996 L. Peter Deutsch * * Permission is granted to copy and distribute this document for * any purpose and without charge, including translations into * other languages and incorporation into compilations, provided * that the copyright notice and this notice are preserved, and * that any substantive changes or deletions from the original are * clearly marked. * * The copyright on RFCs, and consequently the function below, are * supposedly also retroactively claimed by the Internet Society * (according to rfc-editor@rfc-editor.org), with the following * copyright notice: * * Copyright (C) The Internet Society. All Rights Reserved. * * This document and translations of it may be copied and furnished * to others, and derivative works that comment on or otherwise * explain it or assist in its implementation may be prepared, * copied, published and distributed, in whole or in part, without * restriction of any kind, provided that the above copyright * notice and this paragraph are included on all such copies and * derivative works. However, this document itself may not be * modified in any way, such as by removing the copyright notice or * references to the Internet Society or other Internet * organizations, except as needed for the purpose of developing * Internet standards in which case the procedures for copyrights * defined in the Internet Standards process must be followed, or * as required to translate it into languages other than English. * * The limited permissions granted above are perpetual and will not be * revoked by the Internet Society or its successors or assigns. * * This document and the information contained herein is provided * on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET * ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE * OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A * PARTICULAR PURPOSE. * */ uint32_t prelude_crc32(const unsigned char *data, size_t size) { uint32_t crc = 0 ^ 0xffffffffL; while ( size-- ) crc = crc32_tab[(crc ^ *data++) & 0xff] ^ (crc >> 8); return crc ^ 0xffffffffL; } static int hexval(char c) { if ( c >= '0' && c <= '9' ) return c - '0'; else if ( c >= 'a' && c <= 'f' ) return c - 'a' + 10; else if ( c >= 'A' && c <= 'F' ) return c - 'A' + 10; else return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unicode to utf8 conversion failed: invalid hex value (%d)", c); } static int unescape_unicode(const char *in, size_t len, int bits) { int ret = 0, i, size = bits / 4; if ( size > len ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unicode sequence must be at least %d characters long", size); bits -= 4; for ( i = 0; i < size; i++ ) ret |= hexval(in[i]) << (bits - (4 * i)); return ret; } /* * code from http://stackoverflow.com/a/4609989/697313 */ static int unicode_to_utf8(unsigned int codepoint, prelude_string_t *out) { char val; if ( codepoint < 0x80 ) prelude_string_ncat(out, (char *) &codepoint, 1); else if ( codepoint < 0x800 ) { val = 192 + codepoint / 64; prelude_string_ncat(out, &val, 1); val = 128 + codepoint % 64; prelude_string_ncat(out, &val, 1); } else if ( codepoint - 0xd800u < 0x800 ) return 0; // surrogate must have been treated earlier else if ( codepoint < 0x10000 ) { val = 224 + codepoint / 4096; prelude_string_ncat(out, &val, 1); val = 128 + codepoint / 64 % 64; prelude_string_ncat(out, &val, 1); val = 128 + codepoint % 64; prelude_string_ncat(out, &val, 1); } else if ( codepoint < 0x110000 ) { val = 240 + codepoint / 262144; prelude_string_ncat(out, &val, 1); val = 128 + codepoint / 4096 % 64; prelude_string_ncat(out, &val, 1); val = 128 + codepoint / 64 % 64; prelude_string_ncat(out, &val, 1); val = 128 + codepoint % 64; prelude_string_ncat(out, &val, 1); } else return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unicode to utf8 conversion failed"); return 1; } int prelude_unicode_to_string(prelude_string_t *out, const char *in, size_t len) { int size, ret, codepoint; if ( *in++ != '\\') goto error; if ( *in == 'U' ) { size = 10; codepoint = unescape_unicode(++in, len - 2, 32); if ( codepoint < 0 ) return codepoint; } else if ( *in == 'u' ) { size = 6; codepoint = unescape_unicode(++in, len - 2, 16); if ( codepoint < 0 ) return codepoint; if ( (codepoint & 0xfc00) == 0xd800 ) { size += 6; /* * high surrogate; need one more unicode to succeed */ ret = unescape_unicode(in + 6, len - 8, 16); if ( ret < 0 ) return ret; if ( *(in + 4) != '\\' && *(in + 5) != 'u' ) goto error; codepoint = 0x10000 + ((codepoint - 0xd800) << 10) + (ret - 0xdc00); } } else goto error; ret = unicode_to_utf8(codepoint, out); return (ret < 0) ? ret : size; error: return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unicode sequence should start with \\u or \\U"); } libprelude-5.2.0/src/PaxHeaders.14770/config-engine.c0000644000000000000000000000011013726163410020306 xustar000000000000000024 mtime=1599661832.665 24 atime=1599661832.775 24 ctime=1599661999.789 libprelude-5.2.0/src/config-engine.c0000644000000000000000000005727313726163410017327 0ustar00rootroot00000000000000/***** * * Copyright (C) 2000-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include "prelude-inttypes.h" #include "common.h" #include "config-engine.h" #include "variable.h" #include "prelude-log.h" #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_CONFIG_ENGINE #include "prelude-error.h" struct config { char *filename; /* filename for this session */ char **content; /* content of the file */ prelude_bool_t need_sync; /* does the file need to be synced on disk ? */ unsigned int elements; /* array number of elements */ }; static void free_val(char **val) { if ( ! *val ) return; free(*val); *val = NULL; } static prelude_bool_t is_line_commented(const char *line) { line += strspn(line, " \t\r"); return ( *line == '#' ) ? TRUE : FALSE; } /* * If line contains a section, returns a pointer to * the beginning of the section name. */ static prelude_bool_t is_section(const char *line) { line += strspn(line, " \t\r\n"); if ( *line == '[' && strchr(line, ']') ) return TRUE; return FALSE; } /* * Frees old line pointed by line, * and sets to the new one. */ static void op_modify_line(char **line, char *nline) { if ( ! nline ) return; free(*line); *line = nline; } static int op_delete_line(config_t *cfg, unsigned int start, unsigned int end) { unsigned int i, j; if ( ! cfg->elements ) return 0; if ( start >= end || end > cfg->elements ) return -1; for ( i = start; i < end; i++ ) { free(cfg->content[i]); cfg->content[i] = NULL; } for ( i = end, j = start; i < cfg->elements; i++ ) cfg->content[j++] = cfg->content[i]; cfg->elements -= end - start; cfg->content = _prelude_realloc(cfg->content, cfg->elements * sizeof(char **)); if ( ! cfg->content ) return prelude_error_from_errno(errno); return 0; } /* * Appends a line to an array of line. * Takes the address of the array and the line to append as arguments. * * list must be NULL the first time this function is called, * in order to initialize indexing variable. */ static int op_append_line(config_t *cfg, char *line) { if ( ! line ) return 0; if ( cfg->elements + 1 < cfg->elements ) return -1; cfg->elements++; cfg->content = _prelude_realloc(cfg->content, cfg->elements * sizeof(char **)); if ( ! cfg->content ) return prelude_error_from_errno(errno); cfg->content[cfg->elements - 1] = line; return 0; } static unsigned int adjust_insertion_point(config_t *cfg, unsigned int l) { /* * We want to insert this entry at the end of the current section. */ while ( l < cfg->elements ) { l++; if ( l == cfg->elements ) break; if ( is_section(cfg->content[l]) ) break; } return l; } /* * */ static int op_insert_line(config_t *cfg, char *line, unsigned int lins) { unsigned int i; if ( lins > cfg->elements || ! line ) return -1; if ( cfg->elements + 1 < cfg->elements ) return -1; cfg->content = _prelude_realloc(cfg->content, ++cfg->elements * sizeof(char **)); if ( ! cfg->content ) return prelude_error_from_errno(errno); for ( i = cfg->elements - 2; i >= lins; i-- ) { cfg->content[i + 1] = cfg->content[i]; if ( i == 0 ) break; } cfg->content[lins] = line; return 0; } /* * Loads filename into memory, we use append_line() for that. */ static int load_file_in_memory(config_t *cfg) { int ret; FILE *fd; size_t len; prelude_string_t *out; char line[1024], *ptr, *tmp; ret = prelude_string_new(&out); if ( ret < 0 ) return ret; fd = fopen(cfg->filename, "r"); if ( ! fd ) { prelude_string_destroy(out); return prelude_error_verbose(prelude_error_code_from_errno(errno), "could not open '%s' for reading: %s", cfg->filename, strerror(errno)); } do { len = 0; ptr = fgets(line, sizeof(line), fd); if ( ptr ) { len = strlen(line); if ( line[len - 1] == '\n' ) line[len - 1] = 0; ret = prelude_string_cat(out, line); if ( ret < 0 ) goto err; if ( line[len - 1] != 0 ) continue; } ret = prelude_string_get_string_released(out, &tmp); if ( ret < 0 ) goto err; if ( ! tmp ) tmp = strdup(""); ret = op_append_line(cfg, tmp); if ( ret < 0 ) { free(tmp); goto err; } prelude_string_clear(out); } while ( ptr ); err: prelude_string_destroy(out); fclose(fd); return 0; } static int strip_value(char **out, const char *in, size_t tlen) { size_t slen, elen; prelude_bool_t have_start_quote = FALSE; *out = NULL; in += slen = strspn(in, " \t\r"); if ( *in == '"' ) { in++; slen++; have_start_quote = TRUE; } elen = tlen - slen; if ( ! elen ) return 0; while ( in[elen - 1] == ' ' || in[elen - 1] == '\t' || in[elen - 1] == '\r' ) elen--; if ( have_start_quote && elen ) { if ( in[elen - 1] == '"' ) elen--; else { in--; elen++; } } if ( ! elen ) return 0; *out = strndup(in, elen); return (*out) ? 0 : prelude_error_from_errno(errno); } static int value_resolve_variable(const char *ptr, char **out_p) { int ret; size_t i; char buf[512]; const char *tmp; prelude_string_t *out; ret = prelude_string_new(&out); if ( ret < 0 ) return ret; while ( *ptr ) { if ( *ptr == '$' ) { tmp = ptr; i = 0; do { buf[i++] = *ptr++; } while ( *ptr && *ptr != ' ' && *ptr != '$' && i < sizeof(buf) - 1); buf[i] = 0; if ( ! variable_get(buf + 1) ) ptr = tmp; else { prelude_string_cat(out, variable_get(buf + 1)); continue; } } prelude_string_ncat(out, ptr, 1); ptr++; } ret = prelude_string_get_string_released(out, out_p); prelude_string_destroy(out); return ret; } static int parse_buffer(const char *str, char **entry, char **value) { int ret; size_t len; char *val; const char *ptr; *value = *entry = NULL; if ( ! *str ) return -1; ptr = strchr(str, '='); len = (ptr) ? (size_t) (ptr - str) : strlen(str); ret = strip_value(entry, str, len); if ( ret < 0 ) return ret; if ( ! ptr ) return 0; ret = strip_value(&val, ptr + 1, strlen(ptr + 1)); if ( ret < 0 ) return ret; if ( val ) ret = value_resolve_variable(val, value); free_val(&val); if ( ret < 0 ) return ret; if ( **entry == '$' ) ret = variable_set((*entry) + 1, *value); return ret; } static int parse_section_buffer(const char *buf, char **entry, char **value, prelude_bool_t default_value) { int ret; char *ptr; buf += strspn(buf, "\n ["); ptr = strchr(buf, ']'); if ( ptr ) *ptr = 0; ret = parse_buffer(buf, entry, value); if ( ptr ) *ptr = ']'; if ( ! *value && default_value ) *value = strdup("default"); return ret; } static int search_section(config_t *cfg, const char *section, unsigned int i) { int ret; char *entry, *value, *wentry, *wvalue; if ( ! cfg->content ) return -1; ret = parse_section_buffer(section, &wentry, &wvalue, TRUE); if ( ret < 0 ) return ret; for ( ; i < cfg->elements; i++ ) { if ( is_line_commented(cfg->content[i]) ) continue; if ( ! is_section(cfg->content[i]) ) continue; ret = parse_section_buffer(cfg->content[i], &entry, &value, TRUE); if ( ret < 0 ) continue; ret = strcasecmp(entry, wentry); free(entry); if ( ret != 0 ) { free(value); continue; } ret = strcasecmp(value, wvalue); free(value); if ( ret == 0 ) { free(wentry); free(wvalue); return i; } } free(wentry); free(wvalue); return -1; } /* * Search an entry (delimited by '=' character) in content. * returns the line number matching 'entry' or -1. */ static int search_entry(config_t *cfg, const char *section, const char *entry, unsigned int *index, char **eout, char **vout) { int ret; unsigned int i = *index; if ( ! cfg->content || i >= cfg->elements ) return -1; if ( section && ! index ) { ret = search_section(cfg, section, 0); if ( ret < 0 ) return ret; i = (unsigned int) ret + 1; } for ( ; i < cfg->elements; i++ ) { if ( section && is_section(cfg->content[i]) ) return -1; ret = parse_buffer(cfg->content[i], eout, vout); if ( ret < 0 || ! *eout ) continue; ret = strcmp(entry, *eout); if ( ret == 0 ) { *index = i; return 0; } free_val(eout); free_val(vout); } return -1; } /* * Creates a new line using entry 'entry' & value 'val'. */ static char *create_new_line(const char *entry, const char *val) { int ret; char *line; size_t len = 0; if ( ! entry ) return NULL; if ( val ) len = strlen(entry) + strlen(val) + 2; else len = strlen(entry) + 1; line = malloc(len); if (! line ) return NULL; if ( val ) ret = snprintf(line, len, "%s=%s", entry, val); else ret = snprintf(line, len, "%s", entry); if ( ret < 0 || (size_t) ret >= len ) { free(line); return NULL; } return line; } /* * Only called if the memory dump of the file was modified, * will write the new content to filename 'filename'. */ static int sync_and_free_file_content(config_t *cfg) { FILE *fd; unsigned int i; size_t ret, len; fd = fopen(cfg->filename, "w"); if ( ! fd ) return prelude_error_verbose(prelude_error_code_from_errno(errno), "could not open '%s' for writing: %s", cfg->filename, strerror(errno)); for ( i = 0; i < cfg->elements; i++ ) { len = strlen(cfg->content[i]); ret = fwrite(cfg->content[i], 1, len, fd); if ( ret != len && ferror(fd) ) prelude_log(PRELUDE_LOG_ERR, "error writing content to '%s': %s", cfg->filename, strerror(errno)); if ( i + 1 != cfg->elements ) { ret = fwrite("\n", 1, 1, fd); if ( ret != 1 && ferror(fd) ) prelude_log(PRELUDE_LOG_ERR, "error writing content to '%s': %s", cfg->filename, strerror(errno)); } free(cfg->content[i]); } fclose(fd); free(cfg->content); return 0; } /* * frees the 'content' array, and its pointer. * 'content' is the content of the file loaded into memory. */ static void free_file_content(config_t *cfg) { unsigned int i; for ( i = 0; i < cfg->elements; i++ ) free(cfg->content[i]); free(cfg->content); } /* * */ static int new_entry_line(config_t *cfg, const char *entry, const char *val, unsigned int *index) { int ret; char *eout, *vout; ret = search_entry(cfg, NULL, entry, index, &eout, &vout); if ( ret < 0 ) return op_insert_line(cfg, create_new_line(entry, val), *index); free_val(&eout); free_val(&vout); op_modify_line(&cfg->content[*index], create_new_line(entry, val)); return 0; } /* * */ static int new_section_line(config_t *cfg, const char *section, const char *entry, const char *val, unsigned int *index) { int ret; char *eout, *vout; unsigned int eindex; ret = search_section(cfg, section, *index); if ( ret < 0 ) { char buf[1024]; snprintf(buf, sizeof(buf), "[%s]", section); if ( *index ) *index = adjust_insertion_point(cfg, *index); else *index = cfg->elements; ret = op_insert_line(cfg, strdup(buf), *index); if ( ret < 0 ) return ret; return (! entry) ? 0 : op_insert_line(cfg, create_new_line(entry, val), *index + 1); } *index = ret; if ( ! entry ) return 0; eindex = *index + 1; ret = search_entry(cfg, section, entry, &eindex, &eout, &vout); if ( ret < 0 ) return op_insert_line(cfg, create_new_line(entry, val), eindex); free_val(&eout); free_val(&vout); op_modify_line(&cfg->content[eindex], create_new_line(entry, val)); return 0; } /** * _config_set: * @cfg: Configuration file identifier. * @section: Section where the entry should be set. * @entry: Entry to set. * @val: Value for the entry. * @index: Optional position where the entry will be written. * * Sets an entry 'entry' to the specified value, and, in case * it is not NULL, in the specified section in the configuration file * identified by 'cfg'. * * Returns: 0 on success, -1 otherwise. */ int _config_set(config_t *cfg, const char *section, const char *entry, const char *val, unsigned int *index) { int ret; if ( section ) ret = new_section_line(cfg, section, entry, val, index); else ret = new_entry_line(cfg, entry, val, index); if ( ret == 0 ) cfg->need_sync = TRUE; return ret; } int _config_del(config_t *cfg, const char *section, const char *entry) { int start; char *tmp, *value; unsigned int line = 0, end; if ( ! entry ) { start = search_section(cfg, section, 0); if ( start < 0 ) return start; for ( end = (unsigned int) start + 1; end < cfg->elements && ! is_section(cfg->content[end]); end++ ); while ( start >= 2 && ! *cfg->content[start - 1] && ! *cfg->content[start - 2] ) start--; } else { start = search_entry(cfg, section, entry, &line, &tmp, &value); if ( start < 0 ) return start; free_val(&tmp); free_val(&value); end = (unsigned int) start + 1; } cfg->need_sync = TRUE; return op_delete_line(cfg, start, end); } static const char *get_variable_content(config_t *cfg, const char *variable) { const char *ptr; unsigned int line = 0; /* * Variable sets at runtime. */ ptr = variable_get(variable); if ( ! ptr ) /* * Other variable (declared in the configuration file). */ ptr = _config_get(cfg, NULL, variable, &line); return ptr; } /* * _config_get_next: * @cfg: Configuration file identifier. * @section: Pointer address where the current section should be stored. * @entry: Pointer address where the current entry should be stored. * @value: Pointer address where the current value should be stored. * @line: Pointer to a line number we should start the search at. * * Parses the whole configuration file starting at @line, * and stores the current section, entry and value within the * provided argument. * * The caller has to call config_get_next() until it returns -1 * or memory will be leaked. * * If the value gathered starts with a '$', which means it is * a variable, the variable is automatically looked up. * * Returns: 0 on success, -1 if there is nothing more to read. */ int _config_get_next(config_t *cfg, char **section, char **entry, char **value, unsigned int *line) { int ret; char *ptr; free_val(entry); free_val(value); free_val(section); if ( ! cfg->content || *line >= cfg->elements ) return -1; while ( *line < cfg->elements ) { ptr = cfg->content[*line]; ptr += strspn(ptr, " \t\r"); (*line)++; if ( ! *ptr || is_line_commented(ptr) ) continue; if ( is_section(ptr) ) return parse_section_buffer(ptr, section, value, FALSE); ret = parse_buffer(ptr, entry, value); if ( ret >= 0 && **entry == '$' ) { free_val(entry); free_val(value); continue; } return ret; } (*line)--; return -1; } /** * _config_get_section: * @cfg: Configuration file identifier. * @section: Section we are searching. * @line: Pointer to a line number we should start the search at. * * If @section is found, @line is updated to reflect * the line where the section was found. * * Returns: 0 if the section was found, -1 otherwise. */ int _config_get_section(config_t *cfg, const char *section, unsigned int *line) { int ret; if ( ! cfg->content ) return -1; ret = search_section(cfg, section, *line); if ( ret < 0 ) return -1; *line = ret; return 0; } /* * _config_get: * @cfg: Configuration file identifier. * @section: Section to gather the entry from. * @entry: Entry to gather the value from. * @line: Pointer to a line number we should start the search at. * * Gets value associated with @entry, in the optionaly specified * @section, in the configuration file represented by the @cfg * abstracted data type. If @entry is found, update @line to reflect * the line it was found at. * * If the value gathered starts with a '$', which means it is * a variable, the variable is automatically looked up. * * If both @entry and @section are NULL, config_get() will try to * look up another entry of the same name (and in the same section if * section was previously set) as the one previously searched. * * Returns: The entry value on success, an empty string if the entry * exists but has no value, NULL on error. */ char *_config_get(config_t *cfg, const char *section, const char *entry, unsigned int *line) { int ret; const char *var; char *tmp, *value; unsigned int index; if ( ! cfg->content ) return NULL; index = (*line) ? *line - 1 : 0; ret = search_entry(cfg, section, entry, &index, &tmp, &value); if ( ret < 0 ) return NULL; *line = index + 1; free(tmp); /* * The requested value point to a variable. */ if ( value[0] == '$' ) { var = get_variable_content(cfg, value + 1); if ( var ) { free(value); value = strdup(var); } } return value; } /** * _config_close: * @cfg: Configuration file identifier. * * Close the 'cfg' object, used to access the configuration file. * Any change made with the config_set() function call will be written. * * Returns: 0 on success, -1 otherwise. */ int _config_close(config_t *cfg) { int ret = 0; if ( cfg->content ) { if ( cfg->need_sync ) ret = sync_and_free_file_content(cfg); if ( ret < 0 || ! cfg->need_sync ) free_file_content(cfg); } free(cfg->filename); free(cfg); return ret; } /** * _config_open: * @new: Pointer address where to store the new #config_t object. * @filename: The configuration file. * * Opens the configuration file pointed to by 'filename' and loads it into memory, * the returned #config_t object will have to be used for any operation on this * configuration file. * * Returns: 0 on success, negative value otherwise. */ int _config_open(config_t **new, const char *filename) { int ret; config_t *cfg; cfg = calloc(1, sizeof(*cfg)); if ( ! cfg ) return prelude_error_from_errno(errno); cfg->filename = strdup(filename); if ( ! cfg->filename ) { free(cfg); return prelude_error_from_errno(errno); } ret = load_file_in_memory(cfg); if ( ret < 0 ) { free(cfg->filename); free(cfg); return ret; } *new = cfg; return ret; } libprelude-5.2.0/src/PaxHeaders.14770/daemonize.c0000644000000000000000000000010713726163410017557 xustar000000000000000024 mtime=1599661832.665 24 atime=1599661832.775 23 ctime=1599661999.79 libprelude-5.2.0/src/daemonize.c0000644000000000000000000001262113726163410016556 0ustar00rootroot00000000000000/***** * * Copyright (C) 1999-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "libmissing.h" #include #include #include #include #include #include #include #include #include #include "daemonize.h" #include "prelude-log.h" #include "prelude-error.h" static char slockfile[PATH_MAX]; static int get_absolute_filename(const char *lockfile) { if ( *lockfile == '/' ) snprintf(slockfile, sizeof(slockfile), "%s", lockfile); else { char dir[PATH_MAX]; /* * if lockfile is a relative path, * deletion on exit() will not work because of the chdir("/") call. * That's why we want to convert it to an absolute path. */ if ( ! getcwd(dir, sizeof(dir)) ) return prelude_error_from_errno(errno); snprintf(slockfile, sizeof(slockfile), "%s/%s", dir, lockfile); } return 0; } static int lockfile_get_exclusive(const char *lockfile) { int fd; #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) int ret; struct flock lock; #endif fd = open(lockfile, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR); if ( fd < 0 ) return prelude_error_from_errno(errno); #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC); lock.l_type = F_WRLCK; /* write lock */ lock.l_start = 0; /* from offset 0 */ lock.l_whence = SEEK_SET; /* at the beginning of the file */ lock.l_len = 0; /* until EOF */ ret = fcntl(fd, F_SETLK, &lock); if ( ret < 0 ) { if ( errno == EACCES || errno == EAGAIN ) return prelude_error_verbose(PRELUDE_ERROR_DAEMONIZE_LOCK_HELD, "'%s' lock is held by another process", slockfile); close(fd); return prelude_error_from_errno(errno); } #endif /* * lock is now held until program exits. */ return fd; } static int lockfile_write_pid(int fd, pid_t pid) { int ret = -1; char buf[50]; /* * Resets file size to 0. */ #ifdef HAVE_FTRUNCATE ret = ftruncate(fd, 0); #elif HAVE_CHSIZE ret = chsize(fd, 0); #endif if ( ret < 0 ) return prelude_error_from_errno(errno); snprintf(buf, sizeof(buf), "%d\n", (int) pid); ret = write(fd, buf, strlen(buf)); if ( ret < 0 ) return prelude_error_from_errno(errno); return 0; } /** * prelude_daemonize: * @lockfile: Filename to a lockfile. * * Puts caller in background. * If @lockfile is not NULL, a lock for this program is created. * * The lockfile is automatically unlinked on exit. * * Returns: 0 on success, -1 if an error occured. */ int prelude_daemonize(const char *lockfile) { pid_t pid; int fd = 0, ret, i; if ( lockfile ) { ret = get_absolute_filename(lockfile); if ( ret < 0 ) return ret; } #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ prelude_log(PRELUDE_LOG_ERR, "Daemonize call unsupported in this environment.\n"); pid = getpid(); #else pid = fork(); if ( pid < 0 ) return prelude_error_from_errno(errno); else if ( pid ) _exit(0); #endif if ( lockfile ) { fd = lockfile_get_exclusive(slockfile); if ( fd < 0 ) return fd; ret = lockfile_write_pid(fd, getpid()); if ( ret < 0 ) return ret; } #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) setsid(); ret = chdir("/"); if ( ret < 0 ) prelude_log(PRELUDE_LOG_ERR, "could not change working directory to '/': %s.\n", strerror(errno)); umask(0); fd = open("/dev/null", O_RDWR); if ( fd < 0 ) return prelude_error_from_errno(errno); for ( i = 0; i <= 2; i++ ) { do { ret = dup2(fd, i); } while ( ret < 0 && errno == EINTR ); if ( ret < 0 ) return prelude_error_from_errno(errno); } close(fd); #endif return 0; } libprelude-5.2.0/src/PaxHeaders.14770/ntp.c0000644000000000000000000000011013726163410016377 xustar000000000000000024 mtime=1599661832.699 24 atime=1599661832.791 24 ctime=1599661999.792 libprelude-5.2.0/src/ntp.c0000644000000000000000000003431613726163410015411 0ustar00rootroot00000000000000/* * Contents of this file are taken from NTP v 4 distribution, * files tvtots.c and tstotv.c, covered by the license below, * and slightly modified where necessary. */ /********************************************************************** * Copyright (c) David L. Mills 1992-2001 * * * * Permission to use, copy, modify, and distribute this software and * * its documentation for any purpose and without fee is hereby * * granted, provided that the above copyright notice appears in all * * copies and that both the copyright notice and this permission * * notice appear in supporting documentation, and that the name * * University of Delaware not be used in advertising or publicity * * pertaining to distribution of the software without specific, * * written prior permission. The University of Delaware makes no * * representations about the suitability this software for any * * purpose. It is provided "as is" without express or implied * * warranty. * * * ***********************************************************************/ #include "config.h" #include #include #include "prelude-inttypes.h" #include "ntp.h" /* * tvtots - tables for converting from Unix struct timeval's to * NTP time stamp format. */ /* * Tables to calculate time stamp fractions from usecs. The entries * in these tables are offset into using each of the two low order * bytes plus the next 4 bits in a usec value (from a struct timeval). * These are summed to produce the time stamp fraction. * * Note that these tables are rounded (not truncated) to the nearest * low order bit in the fraction. The timestamp computed should be * +- 1.5 low order bits. */ const unsigned long ustotslo[256] = { 0x00000000, 0x000010c7, 0x0000218e, 0x00003255, 0x0000431c, 0x000053e3, 0x000064aa, 0x00007571, 0x00008638, 0x000096ff, 0x0000a7c6, 0x0000b88d, 0x0000c954, 0x0000da1b, 0x0000eae2, 0x0000fba9, 0x00010c6f, 0x00011d36, 0x00012dfd, 0x00013ec4, 0x00014f8b, 0x00016052, 0x00017119, 0x000181e0, 0x000192a7, 0x0001a36e, 0x0001b435, 0x0001c4fc, 0x0001d5c3, 0x0001e68a, 0x0001f751, 0x00020818, 0x000218df, 0x000229a6, 0x00023a6d, 0x00024b34, 0x00025bfb, 0x00026cc2, 0x00027d89, 0x00028e50, 0x00029f17, 0x0002afde, 0x0002c0a5, 0x0002d16c, 0x0002e233, 0x0002f2fa, 0x000303c0, 0x00031487, 0x0003254e, 0x00033615, 0x000346dc, 0x000357a3, 0x0003686a, 0x00037931, 0x000389f8, 0x00039abf, 0x0003ab86, 0x0003bc4d, 0x0003cd14, 0x0003dddb, 0x0003eea2, 0x0003ff69, 0x00041030, 0x000420f7, 0x000431be, 0x00044285, 0x0004534c, 0x00046413, 0x000474da, 0x000485a1, 0x00049668, 0x0004a72f, 0x0004b7f6, 0x0004c8bd, 0x0004d984, 0x0004ea4b, 0x0004fb12, 0x00050bd8, 0x00051c9f, 0x00052d66, 0x00053e2d, 0x00054ef4, 0x00055fbb, 0x00057082, 0x00058149, 0x00059210, 0x0005a2d7, 0x0005b39e, 0x0005c465, 0x0005d52c, 0x0005e5f3, 0x0005f6ba, 0x00060781, 0x00061848, 0x0006290f, 0x000639d6, 0x00064a9d, 0x00065b64, 0x00066c2b, 0x00067cf2, 0x00068db9, 0x00069e80, 0x0006af47, 0x0006c00e, 0x0006d0d5, 0x0006e19c, 0x0006f263, 0x00070329, 0x000713f0, 0x000724b7, 0x0007357e, 0x00074645, 0x0007570c, 0x000767d3, 0x0007789a, 0x00078961, 0x00079a28, 0x0007aaef, 0x0007bbb6, 0x0007cc7d, 0x0007dd44, 0x0007ee0b, 0x0007fed2, 0x00080f99, 0x00082060, 0x00083127, 0x000841ee, 0x000852b5, 0x0008637c, 0x00087443, 0x0008850a, 0x000895d1, 0x0008a698, 0x0008b75f, 0x0008c826, 0x0008d8ed, 0x0008e9b4, 0x0008fa7b, 0x00090b41, 0x00091c08, 0x00092ccf, 0x00093d96, 0x00094e5d, 0x00095f24, 0x00096feb, 0x000980b2, 0x00099179, 0x0009a240, 0x0009b307, 0x0009c3ce, 0x0009d495, 0x0009e55c, 0x0009f623, 0x000a06ea, 0x000a17b1, 0x000a2878, 0x000a393f, 0x000a4a06, 0x000a5acd, 0x000a6b94, 0x000a7c5b, 0x000a8d22, 0x000a9de9, 0x000aaeb0, 0x000abf77, 0x000ad03e, 0x000ae105, 0x000af1cc, 0x000b0292, 0x000b1359, 0x000b2420, 0x000b34e7, 0x000b45ae, 0x000b5675, 0x000b673c, 0x000b7803, 0x000b88ca, 0x000b9991, 0x000baa58, 0x000bbb1f, 0x000bcbe6, 0x000bdcad, 0x000bed74, 0x000bfe3b, 0x000c0f02, 0x000c1fc9, 0x000c3090, 0x000c4157, 0x000c521e, 0x000c62e5, 0x000c73ac, 0x000c8473, 0x000c953a, 0x000ca601, 0x000cb6c8, 0x000cc78f, 0x000cd856, 0x000ce91d, 0x000cf9e4, 0x000d0aaa, 0x000d1b71, 0x000d2c38, 0x000d3cff, 0x000d4dc6, 0x000d5e8d, 0x000d6f54, 0x000d801b, 0x000d90e2, 0x000da1a9, 0x000db270, 0x000dc337, 0x000dd3fe, 0x000de4c5, 0x000df58c, 0x000e0653, 0x000e171a, 0x000e27e1, 0x000e38a8, 0x000e496f, 0x000e5a36, 0x000e6afd, 0x000e7bc4, 0x000e8c8b, 0x000e9d52, 0x000eae19, 0x000ebee0, 0x000ecfa7, 0x000ee06e, 0x000ef135, 0x000f01fb, 0x000f12c2, 0x000f2389, 0x000f3450, 0x000f4517, 0x000f55de, 0x000f66a5, 0x000f776c, 0x000f8833, 0x000f98fa, 0x000fa9c1, 0x000fba88, 0x000fcb4f, 0x000fdc16, 0x000fecdd, 0x000ffda4, 0x00100e6b, 0x00101f32, 0x00102ff9, 0x001040c0, 0x00105187, 0x0010624e, 0x00107315, 0x001083dc, 0x001094a3, 0x0010a56a, 0x0010b631, }; const unsigned long ustotsmid[256] = { 0x00000000, 0x0010c6f8, 0x00218def, 0x003254e7, 0x00431bde, 0x0053e2d6, 0x0064a9ce, 0x007570c5, 0x008637bd, 0x0096feb4, 0x00a7c5ac, 0x00b88ca4, 0x00c9539b, 0x00da1a93, 0x00eae18a, 0x00fba882, 0x010c6f7a, 0x011d3671, 0x012dfd69, 0x013ec460, 0x014f8b58, 0x01605250, 0x01711947, 0x0181e03f, 0x0192a736, 0x01a36e2e, 0x01b43526, 0x01c4fc1d, 0x01d5c315, 0x01e68a0c, 0x01f75104, 0x020817fc, 0x0218def3, 0x0229a5eb, 0x023a6ce3, 0x024b33da, 0x025bfad2, 0x026cc1c9, 0x027d88c1, 0x028e4fb9, 0x029f16b0, 0x02afdda8, 0x02c0a49f, 0x02d16b97, 0x02e2328f, 0x02f2f986, 0x0303c07e, 0x03148775, 0x03254e6d, 0x03361565, 0x0346dc5c, 0x0357a354, 0x03686a4b, 0x03793143, 0x0389f83b, 0x039abf32, 0x03ab862a, 0x03bc4d21, 0x03cd1419, 0x03dddb11, 0x03eea208, 0x03ff6900, 0x04102ff7, 0x0420f6ef, 0x0431bde7, 0x044284de, 0x04534bd6, 0x046412cd, 0x0474d9c5, 0x0485a0bd, 0x049667b4, 0x04a72eac, 0x04b7f5a3, 0x04c8bc9b, 0x04d98393, 0x04ea4a8a, 0x04fb1182, 0x050bd879, 0x051c9f71, 0x052d6669, 0x053e2d60, 0x054ef458, 0x055fbb4f, 0x05708247, 0x0581493f, 0x05921036, 0x05a2d72e, 0x05b39e25, 0x05c4651d, 0x05d52c15, 0x05e5f30c, 0x05f6ba04, 0x060780fb, 0x061847f3, 0x06290eeb, 0x0639d5e2, 0x064a9cda, 0x065b63d2, 0x066c2ac9, 0x067cf1c1, 0x068db8b8, 0x069e7fb0, 0x06af46a8, 0x06c00d9f, 0x06d0d497, 0x06e19b8e, 0x06f26286, 0x0703297e, 0x0713f075, 0x0724b76d, 0x07357e64, 0x0746455c, 0x07570c54, 0x0767d34b, 0x07789a43, 0x0789613a, 0x079a2832, 0x07aaef2a, 0x07bbb621, 0x07cc7d19, 0x07dd4410, 0x07ee0b08, 0x07fed200, 0x080f98f7, 0x08205fef, 0x083126e6, 0x0841edde, 0x0852b4d6, 0x08637bcd, 0x087442c5, 0x088509bc, 0x0895d0b4, 0x08a697ac, 0x08b75ea3, 0x08c8259b, 0x08d8ec92, 0x08e9b38a, 0x08fa7a82, 0x090b4179, 0x091c0871, 0x092ccf68, 0x093d9660, 0x094e5d58, 0x095f244f, 0x096feb47, 0x0980b23e, 0x09917936, 0x09a2402e, 0x09b30725, 0x09c3ce1d, 0x09d49514, 0x09e55c0c, 0x09f62304, 0x0a06e9fb, 0x0a17b0f3, 0x0a2877ea, 0x0a393ee2, 0x0a4a05da, 0x0a5accd1, 0x0a6b93c9, 0x0a7c5ac1, 0x0a8d21b8, 0x0a9de8b0, 0x0aaeafa7, 0x0abf769f, 0x0ad03d97, 0x0ae1048e, 0x0af1cb86, 0x0b02927d, 0x0b135975, 0x0b24206d, 0x0b34e764, 0x0b45ae5c, 0x0b567553, 0x0b673c4b, 0x0b780343, 0x0b88ca3a, 0x0b999132, 0x0baa5829, 0x0bbb1f21, 0x0bcbe619, 0x0bdcad10, 0x0bed7408, 0x0bfe3aff, 0x0c0f01f7, 0x0c1fc8ef, 0x0c308fe6, 0x0c4156de, 0x0c521dd5, 0x0c62e4cd, 0x0c73abc5, 0x0c8472bc, 0x0c9539b4, 0x0ca600ab, 0x0cb6c7a3, 0x0cc78e9b, 0x0cd85592, 0x0ce91c8a, 0x0cf9e381, 0x0d0aaa79, 0x0d1b7171, 0x0d2c3868, 0x0d3cff60, 0x0d4dc657, 0x0d5e8d4f, 0x0d6f5447, 0x0d801b3e, 0x0d90e236, 0x0da1a92d, 0x0db27025, 0x0dc3371d, 0x0dd3fe14, 0x0de4c50c, 0x0df58c03, 0x0e0652fb, 0x0e1719f3, 0x0e27e0ea, 0x0e38a7e2, 0x0e496ed9, 0x0e5a35d1, 0x0e6afcc9, 0x0e7bc3c0, 0x0e8c8ab8, 0x0e9d51b0, 0x0eae18a7, 0x0ebedf9f, 0x0ecfa696, 0x0ee06d8e, 0x0ef13486, 0x0f01fb7d, 0x0f12c275, 0x0f23896c, 0x0f345064, 0x0f45175c, 0x0f55de53, 0x0f66a54b, 0x0f776c42, 0x0f88333a, 0x0f98fa32, 0x0fa9c129, 0x0fba8821, 0x0fcb4f18, 0x0fdc1610, 0x0fecdd08, 0x0ffda3ff, 0x100e6af7, 0x101f31ee, 0x102ff8e6, 0x1040bfde, 0x105186d5, 0x10624dcd, 0x107314c4, 0x1083dbbc, 0x1094a2b4, 0x10a569ab, 0x10b630a3, }; const unsigned long ustotshi[16] = { 0x00000000, 0x10c6f79a, 0x218def35, 0x3254e6cf, 0x431bde6a, 0x53e2d604, 0x64a9cd9f, 0x7570c539, 0x8637bcd3, 0x96feb46e, 0xa7c5ac08, 0xb88ca3a3, 0xc9539b3d, 0xda1a92d7, 0xeae18a72, 0xfba8820c, }; /* * tstotv - tables for converting from NTP time stamps to struct timeval */ /* * Tables to convert from a time stamp fraction to usecs. Note that * the units of these tables are actually (usec<<3). We carry three * guard bits so that the result can be properly truncated (or rounded) * to be correct to the least significant bit. * * These tables are rounded. */ const long tstoushi[256] = { 0x000000, 0x007a12, 0x00f424, 0x016e36, 0x01e848, 0x02625a, 0x02dc6c, 0x03567e, 0x03d090, 0x044aa2, 0x04c4b4, 0x053ec6, 0x05b8d8, 0x0632ea, 0x06acfc, 0x07270e, 0x07a120, 0x081b32, 0x089544, 0x090f56, 0x098968, 0x0a037a, 0x0a7d8c, 0x0af79e, 0x0b71b0, 0x0bebc2, 0x0c65d4, 0x0cdfe6, 0x0d59f8, 0x0dd40a, 0x0e4e1c, 0x0ec82e, 0x0f4240, 0x0fbc52, 0x103664, 0x10b076, 0x112a88, 0x11a49a, 0x121eac, 0x1298be, 0x1312d0, 0x138ce2, 0x1406f4, 0x148106, 0x14fb18, 0x15752a, 0x15ef3c, 0x16694e, 0x16e360, 0x175d72, 0x17d784, 0x185196, 0x18cba8, 0x1945ba, 0x19bfcc, 0x1a39de, 0x1ab3f0, 0x1b2e02, 0x1ba814, 0x1c2226, 0x1c9c38, 0x1d164a, 0x1d905c, 0x1e0a6e, 0x1e8480, 0x1efe92, 0x1f78a4, 0x1ff2b6, 0x206cc8, 0x20e6da, 0x2160ec, 0x21dafe, 0x225510, 0x22cf22, 0x234934, 0x23c346, 0x243d58, 0x24b76a, 0x25317c, 0x25ab8e, 0x2625a0, 0x269fb2, 0x2719c4, 0x2793d6, 0x280de8, 0x2887fa, 0x29020c, 0x297c1e, 0x29f630, 0x2a7042, 0x2aea54, 0x2b6466, 0x2bde78, 0x2c588a, 0x2cd29c, 0x2d4cae, 0x2dc6c0, 0x2e40d2, 0x2ebae4, 0x2f34f6, 0x2faf08, 0x30291a, 0x30a32c, 0x311d3e, 0x319750, 0x321162, 0x328b74, 0x330586, 0x337f98, 0x33f9aa, 0x3473bc, 0x34edce, 0x3567e0, 0x35e1f2, 0x365c04, 0x36d616, 0x375028, 0x37ca3a, 0x38444c, 0x38be5e, 0x393870, 0x39b282, 0x3a2c94, 0x3aa6a6, 0x3b20b8, 0x3b9aca, 0x3c14dc, 0x3c8eee, 0x3d0900, 0x3d8312, 0x3dfd24, 0x3e7736, 0x3ef148, 0x3f6b5a, 0x3fe56c, 0x405f7e, 0x40d990, 0x4153a2, 0x41cdb4, 0x4247c6, 0x42c1d8, 0x433bea, 0x43b5fc, 0x44300e, 0x44aa20, 0x452432, 0x459e44, 0x461856, 0x469268, 0x470c7a, 0x47868c, 0x48009e, 0x487ab0, 0x48f4c2, 0x496ed4, 0x49e8e6, 0x4a62f8, 0x4add0a, 0x4b571c, 0x4bd12e, 0x4c4b40, 0x4cc552, 0x4d3f64, 0x4db976, 0x4e3388, 0x4ead9a, 0x4f27ac, 0x4fa1be, 0x501bd0, 0x5095e2, 0x510ff4, 0x518a06, 0x520418, 0x527e2a, 0x52f83c, 0x53724e, 0x53ec60, 0x546672, 0x54e084, 0x555a96, 0x55d4a8, 0x564eba, 0x56c8cc, 0x5742de, 0x57bcf0, 0x583702, 0x58b114, 0x592b26, 0x59a538, 0x5a1f4a, 0x5a995c, 0x5b136e, 0x5b8d80, 0x5c0792, 0x5c81a4, 0x5cfbb6, 0x5d75c8, 0x5defda, 0x5e69ec, 0x5ee3fe, 0x5f5e10, 0x5fd822, 0x605234, 0x60cc46, 0x614658, 0x61c06a, 0x623a7c, 0x62b48e, 0x632ea0, 0x63a8b2, 0x6422c4, 0x649cd6, 0x6516e8, 0x6590fa, 0x660b0c, 0x66851e, 0x66ff30, 0x677942, 0x67f354, 0x686d66, 0x68e778, 0x69618a, 0x69db9c, 0x6a55ae, 0x6acfc0, 0x6b49d2, 0x6bc3e4, 0x6c3df6, 0x6cb808, 0x6d321a, 0x6dac2c, 0x6e263e, 0x6ea050, 0x6f1a62, 0x6f9474, 0x700e86, 0x708898, 0x7102aa, 0x717cbc, 0x71f6ce, 0x7270e0, 0x72eaf2, 0x736504, 0x73df16, 0x745928, 0x74d33a, 0x754d4c, 0x75c75e, 0x764170, 0x76bb82, 0x773594, 0x77afa6, 0x7829b8, 0x78a3ca, 0x791ddc, 0x7997ee }; const long tstousmid[256] = { 0x0000, 0x007a, 0x00f4, 0x016e, 0x01e8, 0x0262, 0x02dc, 0x0356, 0x03d1, 0x044b, 0x04c5, 0x053f, 0x05b9, 0x0633, 0x06ad, 0x0727, 0x07a1, 0x081b, 0x0895, 0x090f, 0x0989, 0x0a03, 0x0a7e, 0x0af8, 0x0b72, 0x0bec, 0x0c66, 0x0ce0, 0x0d5a, 0x0dd4, 0x0e4e, 0x0ec8, 0x0f42, 0x0fbc, 0x1036, 0x10b0, 0x112b, 0x11a5, 0x121f, 0x1299, 0x1313, 0x138d, 0x1407, 0x1481, 0x14fb, 0x1575, 0x15ef, 0x1669, 0x16e3, 0x175d, 0x17d8, 0x1852, 0x18cc, 0x1946, 0x19c0, 0x1a3a, 0x1ab4, 0x1b2e, 0x1ba8, 0x1c22, 0x1c9c, 0x1d16, 0x1d90, 0x1e0a, 0x1e84, 0x1eff, 0x1f79, 0x1ff3, 0x206d, 0x20e7, 0x2161, 0x21db, 0x2255, 0x22cf, 0x2349, 0x23c3, 0x243d, 0x24b7, 0x2531, 0x25ac, 0x2626, 0x26a0, 0x271a, 0x2794, 0x280e, 0x2888, 0x2902, 0x297c, 0x29f6, 0x2a70, 0x2aea, 0x2b64, 0x2bde, 0x2c59, 0x2cd3, 0x2d4d, 0x2dc7, 0x2e41, 0x2ebb, 0x2f35, 0x2faf, 0x3029, 0x30a3, 0x311d, 0x3197, 0x3211, 0x328b, 0x3306, 0x3380, 0x33fa, 0x3474, 0x34ee, 0x3568, 0x35e2, 0x365c, 0x36d6, 0x3750, 0x37ca, 0x3844, 0x38be, 0x3938, 0x39b3, 0x3a2d, 0x3aa7, 0x3b21, 0x3b9b, 0x3c15, 0x3c8f, 0x3d09, 0x3d83, 0x3dfd, 0x3e77, 0x3ef1, 0x3f6b, 0x3fe5, 0x405f, 0x40da, 0x4154, 0x41ce, 0x4248, 0x42c2, 0x433c, 0x43b6, 0x4430, 0x44aa, 0x4524, 0x459e, 0x4618, 0x4692, 0x470c, 0x4787, 0x4801, 0x487b, 0x48f5, 0x496f, 0x49e9, 0x4a63, 0x4add, 0x4b57, 0x4bd1, 0x4c4b, 0x4cc5, 0x4d3f, 0x4db9, 0x4e34, 0x4eae, 0x4f28, 0x4fa2, 0x501c, 0x5096, 0x5110, 0x518a, 0x5204, 0x527e, 0x52f8, 0x5372, 0x53ec, 0x5466, 0x54e1, 0x555b, 0x55d5, 0x564f, 0x56c9, 0x5743, 0x57bd, 0x5837, 0x58b1, 0x592b, 0x59a5, 0x5a1f, 0x5a99, 0x5b13, 0x5b8d, 0x5c08, 0x5c82, 0x5cfc, 0x5d76, 0x5df0, 0x5e6a, 0x5ee4, 0x5f5e, 0x5fd8, 0x6052, 0x60cc, 0x6146, 0x61c0, 0x623a, 0x62b5, 0x632f, 0x63a9, 0x6423, 0x649d, 0x6517, 0x6591, 0x660b, 0x6685, 0x66ff, 0x6779, 0x67f3, 0x686d, 0x68e7, 0x6962, 0x69dc, 0x6a56, 0x6ad0, 0x6b4a, 0x6bc4, 0x6c3e, 0x6cb8, 0x6d32, 0x6dac, 0x6e26, 0x6ea0, 0x6f1a, 0x6f94, 0x700f, 0x7089, 0x7103, 0x717d, 0x71f7, 0x7271, 0x72eb, 0x7365, 0x73df, 0x7459, 0x74d3, 0x754d, 0x75c7, 0x7641, 0x76bc, 0x7736, 0x77b0, 0x782a, 0x78a4, 0x791e, 0x7998 }; const long tstouslo[128] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79 }; libprelude-5.2.0/src/PaxHeaders.14770/tls-auth.c0000644000000000000000000000011013726163410017337 xustar000000000000000024 mtime=1599661832.706 24 atime=1599661832.794 24 ctime=1599661999.794 libprelude-5.2.0/src/tls-auth.c0000644000000000000000000003127313726163410016350 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include #include #include #include #include #include #include #include #include #include "glthread/lock.h" #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_CONNECTION #include "prelude-error.h" #include "common.h" #include "prelude-log.h" #include "prelude-client.h" #include "prelude-message-id.h" #include "prelude-extract.h" #include "tls-util.h" #include "tls-auth.h" #ifdef HAVE_GNUTLS_STRING_PRIORITY static gnutls_priority_t tls_priority; #endif static prelude_bool_t priority_set = FALSE; static int read_auth_result(prelude_io_t *fd) { int ret; void *buf; uint8_t tag; uint32_t len; prelude_msg_t *msg = NULL; do { ret = prelude_msg_read(&msg, fd); } while ( ret < 0 && prelude_error_get_code(ret) == PRELUDE_ERROR_EAGAIN ); if ( ret < 0 ) return ret; if ( prelude_msg_get_tag(msg) != PRELUDE_MSG_AUTH ) { prelude_msg_destroy(msg); return prelude_error(PRELUDE_ERROR_INVAL_MESSAGE); } ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) { prelude_msg_destroy(msg); return ret; } if ( tag != PRELUDE_MSG_AUTH_SUCCEED ) { prelude_msg_destroy(msg); return prelude_error(PRELUDE_ERROR_TLS_AUTH_REJECTED); } prelude_msg_destroy(msg); return 0; } static int verify_certificate(gnutls_session_t session) { time_t now; int ret, alert = 0; unsigned int status; const prelude_error_code_t code = PRELUDE_ERROR_PROFILE; ret = gnutls_certificate_verify_peers2(session, &status); if ( ret < 0 ) { gnutls_alert_send_appropriate(session, ret); return prelude_error_verbose(code, "TLS certificate verification failed: %s", gnutls_strerror(ret)); } if ( status & GNUTLS_CERT_INVALID ) { alert = GNUTLS_A_BAD_CERTIFICATE; ret = prelude_error_verbose(code, "TLS server certificate is NOT trusted"); } else if ( status & GNUTLS_CERT_REVOKED ) { alert = GNUTLS_A_CERTIFICATE_REVOKED; ret = prelude_error_verbose(code, "TLS server certificate was revoked"); } else if ( status & GNUTLS_CERT_SIGNER_NOT_FOUND) { alert = GNUTLS_A_UNKNOWN_CA; ret = prelude_error_verbose(code, "TLS server certificate issuer is unknown"); } else if ( status & GNUTLS_CERT_SIGNER_NOT_CA ) { alert = GNUTLS_A_CERTIFICATE_UNKNOWN; ret = prelude_error_verbose(code, "TLS server certificate issuer is not a CA"); } #ifdef GNUTLS_CERT_INSECURE_ALGORITHM else if ( status & GNUTLS_CERT_INSECURE_ALGORITHM ) { alert = GNUTLS_A_INSUFFICIENT_SECURITY; ret = prelude_error_verbose(code, "TLS server certificate use insecure algorithm"); } #endif now = time(NULL); if ( gnutls_certificate_activation_time_peers(session) > now ) ret = prelude_error_verbose(code, "TLS server certificate not yet activated"); if ( gnutls_certificate_expiration_time_peers(session) < now ) ret = prelude_error_verbose(code, "TLS server certificate expired"); if ( ret < 0 ) gnutls_alert_send(session, GNUTLS_AL_FATAL, alert); return ret; } static int handle_gnutls_error(gnutls_session_t session, int ret) { int last_alert; if ( ret == GNUTLS_E_WARNING_ALERT_RECEIVED ) { last_alert = gnutls_alert_get(session); prelude_log(PRELUDE_LOG_WARN, "TLS: received warning alert: %s.\n", gnutls_alert_get_name(last_alert)); return 0; } else if ( ret == GNUTLS_E_FATAL_ALERT_RECEIVED ) { last_alert = gnutls_alert_get(session); prelude_log(PRELUDE_LOG_WARN, "TLS: received fatal alert: %s.\n", gnutls_alert_get_name(last_alert)); return -1; } else if ( ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED ) return 0; else if ( gnutls_error_is_fatal(ret) ) return -1; gnutls_alert_send_appropriate(session, ret); return ret; } static inline gnutls_transport_ptr_t fd_to_ptr(int fd) { union { gnutls_transport_ptr_t ptr; int fd; } data; data.fd = fd; return data.ptr; } static inline int ptr_to_fd(gnutls_transport_ptr_t ptr) { union { gnutls_transport_ptr_t ptr; int fd; } data; data.ptr = ptr; return data.fd; } static void set_default_priority(gnutls_session_t session) { #ifdef HAVE_GNUTLS_STRING_PRIORITY gnutls_priority_set(session, tls_priority); #else const int c_prio[] = { GNUTLS_COMP_NULL, 0 }; gnutls_set_default_priority(session); /* * We override the default compression method since in early GnuTLS * version, DEFLATE would be the default, and NULL would not be * available. */ gnutls_compression_set_priority(session, c_prio); #endif } int tls_auth_init_priority(const char *tlsopts) { #ifdef HAVE_GNUTLS_STRING_PRIORITY { int ret; const char *errptr; ret = gnutls_priority_init(&tls_priority, (tlsopts) ? tlsopts : "NORMAL", &errptr); if ( ret < 0 ) return prelude_error_verbose_make(PRELUDE_ERROR_SOURCE_CLIENT, PRELUDE_ERROR_TLS, "TLS options '%s': %s", errptr, gnutls_strerror(ret)); } #else if ( tlsopts ) return prelude_error_verbose_make(PRELUDE_ERROR_SOURCE_CLIENT, PRELUDE_ERROR_TLS, "settings TLS options require GnuTLS 2.2.0 or above.\n"); #endif priority_set = TRUE; return 0; } static ssize_t tls_pull(gnutls_transport_ptr_t fd, void *buf, size_t count) { return read(ptr_to_fd(fd), buf, count); } static ssize_t tls_push(gnutls_transport_ptr_t fd, const void *buf, size_t count) { return write(ptr_to_fd(fd), buf, count); } int tls_auth_connection(prelude_client_profile_t *cp, prelude_io_t *io, int crypt, uint64_t *analyzerid, prelude_connection_permission_t *permission) { void *cred; int ret, fd; gnutls_session_t session; if ( ! priority_set ) { ret = tls_auth_init_priority(NULL); if ( ret < 0 ) return ret; } ret = prelude_client_profile_get_credentials(cp, &cred); if ( ret < 0 ) return ret; ret = gnutls_init(&session, GNUTLS_CLIENT); if ( ret < 0 ) return prelude_error_verbose(PRELUDE_ERROR_PROFILE, "TLS initialization error: %s", gnutls_strerror(ret)); set_default_priority(session); gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, cred); fd = prelude_io_get_fd(io); gnutls_transport_set_ptr(session, fd_to_ptr(fd)); gnutls_transport_set_pull_function(session, tls_pull); gnutls_transport_set_push_function(session, tls_push); do { ret = gnutls_handshake(session); } while ( ret < 0 && handle_gnutls_error(session, ret) == 0 ); if ( ret < 0 ) { gnutls_deinit(session); return prelude_error_verbose(PRELUDE_ERROR_PROFILE, "TLS handshake failed: %s", gnutls_strerror(ret)); } ret = verify_certificate(session); if ( ret < 0 ) { gnutls_deinit(session); return ret; } prelude_io_set_tls_io(io, session); ret = read_auth_result(io); if ( ret < 0 ) return ret; ret = tls_certificate_get_peer_analyzerid(session, analyzerid); if ( ret < 0 ) return ret; ret = tls_certificate_get_permission(session, permission); if ( ret < 0 ) return ret; if ( ! crypt ) { do { ret = gnutls_bye(session, GNUTLS_SHUT_RDWR); } while ( ret < 0 && handle_gnutls_error(session, ret) == 0 ); if ( ret < 0 ) ret = prelude_error_verbose(PRELUDE_ERROR_TLS, "TLS bye failed: %s", gnutls_strerror(ret)); gnutls_deinit(session); prelude_io_set_sys_io(io, fd); } return ret; } int tls_auth_init(prelude_client_profile_t *cp, gnutls_certificate_credentials_t *cred) { int ret; size_t size; gnutls_datum_t data; gnutls_x509_privkey_t key; char keyfile[PATH_MAX], certfile[PATH_MAX]; *cred = NULL; prelude_client_profile_get_tls_key_filename(cp, keyfile, sizeof(keyfile)); ret = access(keyfile, F_OK); if ( ret < 0 ) return prelude_error_verbose_make(PRELUDE_ERROR_SOURCE_CLIENT, PRELUDE_ERROR_PROFILE, "access to %s failed: %s", keyfile, strerror(errno)); prelude_client_profile_get_tls_client_keycert_filename(cp, certfile, sizeof(certfile)); ret = access(certfile, F_OK); if ( ret < 0 ) return prelude_error_verbose_make(PRELUDE_ERROR_SOURCE_CLIENT, PRELUDE_ERROR_PROFILE, "access to %s failed: %s", certfile, strerror(errno)); ret = _prelude_load_file(keyfile, &data.data, &size); if ( ret < 0 ) return ret; data.size = (unsigned int) size; ret = gnutls_x509_privkey_init(&key); if ( ret < 0 ) { _prelude_unload_file(data.data, data.size); return prelude_error_verbose_make(PRELUDE_ERROR_SOURCE_CLIENT, PRELUDE_ERROR_TLS, "Error initializing X509 private key: %s", gnutls_strerror(ret)); } ret = gnutls_x509_privkey_import(key, &data, GNUTLS_X509_FMT_PEM); if ( ret < 0 ) { ret = prelude_error_verbose_make(PRELUDE_ERROR_SOURCE_CLIENT, PRELUDE_ERROR_TLS, "Error importing X509 private key: %s", gnutls_strerror(ret)); goto err; } ret = gnutls_certificate_allocate_credentials(cred); if ( ret < 0 ) { ret = prelude_error_verbose_make(PRELUDE_ERROR_SOURCE_CLIENT, PRELUDE_ERROR_TLS, "Error initializing TLS credentials: %s", gnutls_strerror(ret)); goto err; } ret = tls_certificates_load(key, certfile, *cred); if ( ret < 0 ) goto err; prelude_client_profile_get_tls_client_trusted_cert_filename(cp, certfile, sizeof(certfile)); ret = gnutls_certificate_set_x509_trust_file(*cred, certfile, GNUTLS_X509_FMT_PEM); if ( ret < 0 ) ret = prelude_error_verbose_make(PRELUDE_ERROR_SOURCE_CLIENT, PRELUDE_ERROR_PROFILE, "could not set x509 trust file '%s': %s", certfile, gnutls_strerror(ret)); err: if ( ret < 0 && *cred ) gnutls_certificate_free_credentials(*cred); gnutls_x509_privkey_deinit(key); _prelude_unload_file(data.data, data.size); return ret; } void tls_auth_deinit(void) { #ifdef HAVE_GNUTLS_STRING_PRIORITY if ( priority_set ) { gnutls_priority_deinit(tls_priority); priority_set = FALSE; } #endif } libprelude-5.2.0/src/PaxHeaders.14770/tls-util.c0000644000000000000000000000011013726163410017353 xustar000000000000000024 mtime=1599661832.707 24 atime=1599661832.794 24 ctime=1599661999.795 libprelude-5.2.0/src/tls-util.c0000644000000000000000000001714213726163410016363 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include #include #include #include #include #include #include #include #include #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_CLIENT #include "prelude-error.h" #include "common.h" #include "prelude-log.h" #include "prelude-client.h" #include "tls-util.h" #ifndef HAVE_GNUTLS_X509_CRT_LIST_IMPORT #define X509_BEGIN_STR1 "-----BEGIN X509 CERTIFICATE" #define X509_BEGIN_STR2 "-----BEGIN CERTIFICATE" int _prelude_tls_crt_list_import(gnutls_x509_crt_t *certs, unsigned int *cmax, const gnutls_datum_t *indata, gnutls_x509_crt_fmt_t format) { int ret; size_t skiplen; gnutls_datum_t data; unsigned int i = 0; unsigned char *ptr; data.size = indata->size; data.data = indata->data; while ( i < *cmax || ! certs ) { skiplen = sizeof(X509_BEGIN_STR1) - 1; ptr = memmem(data.data, data.size, X509_BEGIN_STR1, skiplen); if ( ! ptr ) { skiplen = sizeof(X509_BEGIN_STR2) - 1; ptr = memmem(data.data, data.size, X509_BEGIN_STR2, skiplen); } if ( ! ptr ) break; data.data = ptr; data.size = data.size - (ptr - data.data); if ( ! certs ) i++; else { ret = gnutls_x509_crt_init(&certs[i]); if ( ret < 0 ) goto err; ret = gnutls_x509_crt_import(certs[i++], &data, format); if ( ret < 0 ) goto err; } data.data += skiplen; data.size -= skiplen; } *cmax = i; return i; err: *cmax = 0; while ( i-- >= 0 ) gnutls_x509_crt_deinit(certs[i]); return ret; } #else int _prelude_tls_crt_list_import(gnutls_x509_crt_t *certs, unsigned int *cmax, const gnutls_datum_t *indata, gnutls_x509_crt_fmt_t format) { return gnutls_x509_crt_list_import(certs, cmax, indata, format, GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED); } #endif int tls_certificates_load(gnutls_x509_privkey_t key, const char *certfname, gnutls_certificate_credentials_t cred) { int ret; size_t size; gnutls_datum_t certfile; unsigned int cert_max, i; gnutls_x509_crt_t certs[1024]; ret = _prelude_load_file(certfname, &certfile.data, &size); if ( ret < 0 ) return ret; certfile.size = (unsigned int) size; cert_max = sizeof(certs) / sizeof(*certs); ret = _prelude_tls_crt_list_import(certs, &cert_max, &certfile, GNUTLS_X509_FMT_PEM); if ( ret < 0 ) { ret = prelude_error_verbose(PRELUDE_ERROR_PROFILE, "error importing certificate listing: %s", gnutls_strerror(ret)); goto err; } for ( i = 0; i < cert_max; i++) { ret = gnutls_certificate_set_x509_key(cred, &certs[i], 1, key); gnutls_x509_crt_deinit(certs[i]); if ( ret < 0 ) { ret = prelude_error_verbose(PRELUDE_ERROR_PROFILE, "error importing certificate: %s", gnutls_strerror(ret)); break; } } err: _prelude_unload_file(certfile.data, certfile.size); return ret; } int tls_certificate_get_peer_analyzerid(gnutls_session_t session, uint64_t *analyzerid) { int ret; char buf[1024]; gnutls_x509_crt_t cert; size_t size = sizeof(buf); unsigned int cert_list_size; const gnutls_datum_t *cert_list; cert_list = gnutls_certificate_get_peers(session, &cert_list_size); if ( ! cert_list || cert_list_size != 1 ) return prelude_error_verbose(PRELUDE_ERROR_TLS, "invalid number of peer certificate: %d", cert_list_size); ret = gnutls_x509_crt_init(&cert); if ( ret < 0 ) return prelude_error_verbose(PRELUDE_ERROR_TLS, "%s", gnutls_strerror(ret)); ret = gnutls_x509_crt_import(cert, &cert_list[0], GNUTLS_X509_FMT_DER); if ( ret < 0) { gnutls_x509_crt_deinit(cert); return prelude_error_verbose(PRELUDE_ERROR_TLS, "error importing certificate: %s", gnutls_strerror(ret)); } size = sizeof(buf); ret = gnutls_x509_crt_get_dn_by_oid(cert, GNUTLS_OID_X520_DN_QUALIFIER, 0, 0, buf, &size); if ( ret < 0 ) { gnutls_x509_crt_deinit(cert); return prelude_error_verbose(PRELUDE_ERROR_TLS, "certificate miss DN qualifier"); } ret = sscanf(buf, "%" PRELUDE_PRIu64, analyzerid); if ( ret != 1 ) { gnutls_x509_crt_deinit(cert); return prelude_error_verbose(PRELUDE_ERROR_TLS, "certificate analyzerid '%s' is invalid", buf); } gnutls_x509_crt_deinit(cert); return 0; } int tls_certificate_get_permission(gnutls_session_t session, prelude_connection_permission_t *permission) { int ret, tmp; char buf[1024]; gnutls_x509_crt_t cert; size_t size = sizeof(buf); const gnutls_datum_t *data; data = gnutls_certificate_get_ours(session); if ( ! data ) return prelude_error_verbose(PRELUDE_ERROR_TLS, "could not get own certificate"); ret = gnutls_x509_crt_init(&cert); if ( ret < 0 ) return prelude_error_verbose(PRELUDE_ERROR_TLS, "error initializing certificate: %s", gnutls_strerror(ret)); ret = gnutls_x509_crt_import(cert, data, GNUTLS_X509_FMT_DER); if ( ret < 0 ) { gnutls_x509_crt_deinit(cert); return prelude_error_verbose(PRELUDE_ERROR_TLS, "error importing certificate: %s", gnutls_strerror(ret)); } ret = gnutls_x509_crt_get_dn_by_oid(cert, GNUTLS_OID_X520_COMMON_NAME, 0, 0, buf, &size); if ( ret < 0 ) { gnutls_x509_crt_deinit(cert); return prelude_error_verbose(PRELUDE_ERROR_TLS, "could not get certificate CN field: %s", gnutls_strerror(ret)); } ret = sscanf(buf, "%d", &tmp); if ( ret != 1 ) { gnutls_x509_crt_deinit(cert); return prelude_error_verbose(PRELUDE_ERROR_TLS, "certificate analyzerid value '%s' is invalid", buf); } *permission = (prelude_connection_permission_t) tmp; gnutls_x509_crt_deinit(cert); return 0; } libprelude-5.2.0/src/PaxHeaders.14770/variable.c0000644000000000000000000000011013726163410017363 xustar000000000000000024 mtime=1599661832.707 24 atime=1599661832.794 24 ctime=1599661999.797 libprelude-5.2.0/src/variable.c0000644000000000000000000001044313726163410016370 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include #include #include #include "libmissing.h" #include "prelude-list.h" #include "prelude-error.h" #include "variable.h" typedef struct { prelude_list_t list; char *variable; char *value; } variable_t; static PRELUDE_LIST(variable_list); static variable_t *search_entry(const char *variable) { int ret; prelude_list_t *tmp; variable_t *item = NULL; prelude_list_for_each(&variable_list, tmp) { item = prelude_list_entry(tmp, variable_t, list); ret = strcasecmp(item->variable, variable); if ( ret == 0 ) return item; } return NULL; } static int create_entry(const char *variable, const char *value) { variable_t *item; item = malloc(sizeof(*item)); if ( ! item ) return prelude_error_from_errno(errno); item->variable = strdup(variable); if ( ! item->variable ) { free(item); return prelude_error_from_errno(errno); } if ( ! value ) item->value = NULL; else { item->value = strdup(value); if ( ! item->value ) { free(item->variable); free(item); return prelude_error_from_errno(errno); } } prelude_list_add_tail(&variable_list, &item->list); return 0; } static void destroy_variable(variable_t *item) { prelude_list_del(&item->list); free(item->variable); if ( item->value ) free(item->value); free(item); } /** * variable_get: * @variable: Variable to get the value from. * * Get value for the specified variable. * * Returns: Value of the variable, or NULL if the variable is not set. */ char *variable_get(const char *variable) { variable_t *item; item = search_entry(variable); return ( item ) ? item->value : NULL; } /** * variable_set: * @variable: The variable in question. * @value: Value to assign to the variable. * * Set the specified variable to the given value. * The variable is created if it doesn't exit. * * Returns: 0 on success, -1 on error. */ int variable_set(const char *variable, const char *value) { int ret = -1; variable_t *item; item = search_entry(variable); if ( ! item ) ret = create_entry(variable, value); else { if ( item->value ) free(item->value); item->value = (value) ? strdup(value) : NULL; } return ( ret == 0 || item ) ? 0 : -1; } /** * variable_unset: * @variable: The variable in question. * * Delete the specified variable from the variable lists. * * Returns: 0 on success, -1 if variable could not be found. */ int variable_unset(const char *variable) { variable_t *item; item = search_entry(variable); if ( ! item ) return -1; destroy_variable(item); return 0; } void variable_unset_all(void) { variable_t *item; prelude_list_t *tmp, *bkp; prelude_list_for_each_safe(&variable_list, tmp, bkp) { item = prelude_list_entry(tmp, variable_t, list); destroy_variable(item); } } libprelude-5.2.0/src/PaxHeaders.14770/prelude.c0000644000000000000000000000011013726163410017236 xustar000000000000000024 mtime=1599661832.706 24 atime=1599661832.794 24 ctime=1599661999.799 libprelude-5.2.0/src/prelude.c0000644000000000000000000002263613726163410016252 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include "glthread/thread.h" #include "glthread/lock.h" #include "prelude.h" #include "idmef-path.h" #include "prelude-option.h" #include "prelude-log.h" #include "prelude-timer.h" #include "variable.h" #include "tls-auth.h" int _prelude_internal_argc = 0; char *_prelude_prefix = NULL; char *_prelude_internal_argv[1024]; char _prelude_init_cwd[PATH_MAX]; static int libprelude_refcount = 0; static prelude_bool_t deinit_plugin_unload = TRUE; extern prelude_option_t *_prelude_generic_optlist; extern gl_lock_t _criteria_parse_mutex; static void tls_log_func(int level, const char *data) { prelude_log(PRELUDE_LOG_INFO, "%s", data); } static void slice_arguments(int *argc, char **argv) { int i; char *ptr; prelude_option_t *rootopt, *opt, *bkp = NULL; _prelude_client_register_options(); _prelude_internal_argc = 0; _prelude_internal_argv[0] = NULL; if ( ! argc || ! argv || *argc < 1 ) return; rootopt = _prelude_generic_optlist; _prelude_internal_argv[_prelude_internal_argc++] = argv[0]; for ( i = 0; i < *argc && (size_t) _prelude_internal_argc + 1 < sizeof(_prelude_internal_argv) / sizeof(char *); i++ ) { ptr = argv[i]; if ( *ptr != '-' ) continue; while ( *ptr == '-' ) ptr++; opt = prelude_option_search(rootopt, ptr, PRELUDE_OPTION_TYPE_CLI, FALSE); if ( ! opt ) { if ( bkp ) rootopt = bkp; continue; } if ( prelude_option_has_optlist(opt) ) { rootopt = opt; bkp = _prelude_generic_optlist; } _prelude_internal_argv[_prelude_internal_argc++] = argv[i]; if ( (i + 1) == *argc ) break; if ( prelude_option_get_has_arg(opt) == PRELUDE_OPTION_ARGUMENT_NONE ) continue; if ( *argv[i + 1] == '-' ) continue; _prelude_internal_argv[_prelude_internal_argc++] = argv[i + 1]; } } /** * prelude_init: * @argc: Address of the argc parameter of your main() function. * @argv: Address of the argv parameter of your main() function. * * Call this function before using any other Prelude functions in your applications. * It will initialize everything needed to operate the library and parses some standard * command line options. @argc and @argv are adjusted accordingly so your own code will * never see those standard arguments. * * Returns: 0 on success, a negative value if an error occured. */ int prelude_init(int *argc, char **argv) { int ret; const char *env; if ( libprelude_refcount++ > 0 ) return 0; env = getenv("LIBPRELUDE_DEBUG"); if ( env ) prelude_log_set_debug_level(atoi(env)); env = getenv("LIBPRELUDE_TLS_DEBUG"); if ( env ) { gnutls_global_set_log_level(atoi(env)); gnutls_global_set_log_function(tls_log_func); } env = getenv("LIBPRELUDE_LOGFILE"); if ( env ) prelude_log_set_logfile(env); env = getenv("LIBPRELUDE_PREFIX"); if ( env ) _prelude_prefix = strdup(env); env = getenv("LIBPRELUDE_PLUGIN_UNLOAD"); if ( env && atoi(env) <= 0 ) deinit_plugin_unload = FALSE; env = getenv("LIBPRELUDE_ABORT"); if ( env ) { if ( *env ) _prelude_log_set_abort_level_from_string(env); else _prelude_log_set_abort_level(PRELUDE_LOG_CRIT); } prelude_thread_init(NULL); if ( ! getcwd(_prelude_init_cwd, sizeof(_prelude_init_cwd)) ) _prelude_init_cwd[0] = 0; ret = _prelude_timer_init(); if ( ret < 0 ) return ret; ret = glthread_atfork(prelude_fork_prepare, prelude_fork_parent, prelude_fork_child); if ( ret != 0 ) return prelude_error_from_errno(ret); slice_arguments(argc, argv); ret = gnutls_global_init(); if ( ret < 0 ) return prelude_error_verbose(PRELUDE_ERROR_TLS, "TLS initialization failed: %s", gnutls_strerror(ret)); return 0; } /** * prelude_deinit: * * Call this function if you're done using the library and want to free global * shared ressource allocated by libprelude. */ void prelude_deinit(void) { prelude_list_t *iter = NULL; prelude_plugin_generic_t *plugin; if ( --libprelude_refcount != 0 ) return; if ( deinit_plugin_unload ) { while ( (plugin = prelude_plugin_get_next(NULL, &iter)) ) prelude_plugin_unload(plugin); } _idmef_path_cache_destroy(); prelude_option_destroy(NULL); variable_unset_all(); tls_auth_deinit(); gnutls_global_deinit(); _prelude_thread_deinit(); } static int levelstr_to_int(const char *wanted) { int i; struct { int level; const char *level_str; } tbl[] = { { LIBPRELUDE_RELEASE_LEVEL_ALPHA, "alpha" }, { LIBPRELUDE_RELEASE_LEVEL_BETA, "beta" }, { LIBPRELUDE_RELEASE_LEVEL_RC, "rc" } }; for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcmp(wanted, tbl[i].level_str) == 0 ) return tbl[i].level; } return -1; } /** * prelude_parse_version: * @version: A version string. * @out: Where to store the parsed version * * Parse version to an integer, and return it in @out. * Accepted format are: * * major.minor.micro.patchlevel * the following special level string are supported : alpha, beta, rc * * For example: 1.1.1rc1 * * Returns: The 0 on success, a negative value in case of error. */ int prelude_parse_version(const char *version, unsigned int *out) { int ret; char levels[6] = { 0 }; int major = 0, minor = 0, micro = 0, level = 0, patch = 0; ret = sscanf(version, "%d.%d.%d%5[^0-9]%d", &major, &minor, µ, levels, &patch); if ( ret <= 0 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "version formatting error with '%s'", version); if ( *levels == 0 || *levels == '.' ) level = LIBPRELUDE_RELEASE_LEVEL_FINAL; else { level = levelstr_to_int(levels); if ( level < 0 ) return level; } *out = (major << 24) | (minor << 16) | (micro << 8) | (level << 4) | (patch << 0); return 0; } /** * prelude_check_version: * @req_version: The minimum acceptable version number. * * If @req_version is NULL this function will return the version of the library. * Otherwise, @req_version will be compared to the current library version. If * the library version is higher or equal, this function will return the current * library version. Otherwise, NULL is returned. * * Returns: The current library version, or NULL if @req_version doesn't match. */ const char *prelude_check_version(const char *req_version) { int ret; unsigned int hexversion; if ( ! req_version ) return VERSION; ret = prelude_parse_version(req_version, &hexversion); if ( ret < 0 ) return NULL; return (hexversion <= LIBPRELUDE_HEXVERSION) ? VERSION : NULL; } void prelude_fork_prepare(void) { #ifdef HAVE_PTHREAD_ATFORK return; #endif _prelude_async_fork_prepare(); _prelude_timer_fork_prepare(); _idmef_path_cache_lock(); gl_lock_lock(_criteria_parse_mutex); } void prelude_fork_parent(void) { #ifdef HAVE_PTHREAD_ATFORK return; #endif _prelude_async_fork_parent(); _prelude_timer_fork_parent(); _idmef_path_cache_unlock(); gl_lock_unlock(_criteria_parse_mutex); } void prelude_fork_child(void) { #ifdef HAVE_PTHREAD_ATFORK return; #endif _prelude_async_fork_child(); _prelude_timer_fork_child(); _idmef_path_cache_reinit(); gl_lock_init(_criteria_parse_mutex); } libprelude-5.2.0/src/PaxHeaders.14770/prelude-async.c0000644000000000000000000000010413726163410020354 xustar000000000000000022 mtime=1599661832.7 24 atime=1599661832.791 22 ctime=1599661999.8 libprelude-5.2.0/src/prelude-async.c0000644000000000000000000002203013726163410017351 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #if TIME_WITH_SYS_TIME # include # include #else # if HAVE_SYS_TIME_H # include # else # include # endif #endif #include "glthread/thread.h" #include "glthread/lock.h" #include "glthread/cond.h" #include "prelude-list.h" #include "prelude-inttypes.h" #include "prelude-linked-object.h" #include "prelude-timer.h" #include "prelude-log.h" #include "prelude-io.h" #include "prelude-async.h" static PRELUDE_LIST(joblist); static prelude_async_flags_t async_flags = 0; static prelude_bool_t stop_processing = FALSE; static gl_thread_t thread; static gl_cond_t cond = gl_cond_initializer; static gl_lock_t mutex = gl_lock_initializer; static volatile sig_atomic_t is_initialized = FALSE; static int timespec_elapsed(struct timespec *end, struct timespec *start) { int diff = end->tv_sec - start->tv_sec; if ( end->tv_nsec < start->tv_nsec ) diff -= 1; return diff; } static prelude_bool_t timespec_expired(struct timespec *end, struct timespec *start) { return ( timespec_elapsed(end, start) ) ? TRUE : FALSE; } static inline struct timespec *get_timespec(struct timespec *ts) { struct timeval now; gettimeofday(&now, NULL); ts->tv_sec = now.tv_sec; ts->tv_nsec = now.tv_usec * 1000; return ts; } static int wait_timer_and_data(prelude_async_flags_t *flags) { int ret; struct timespec ts; static struct timespec last_wakeup; prelude_bool_t no_job_available = TRUE; get_timespec(&last_wakeup); last_wakeup.tv_sec--; while ( no_job_available ) { ret = 0; gl_lock_lock(mutex); ts.tv_sec = last_wakeup.tv_sec + 1; ts.tv_nsec = last_wakeup.tv_nsec; while ( (no_job_available = prelude_list_is_empty(&joblist)) && ! stop_processing && async_flags == *flags && ret != ETIMEDOUT ) { ret = glthread_cond_timedwait(&cond, &mutex, &ts); } if ( no_job_available && stop_processing ) { gl_lock_unlock(mutex); return -1; } *flags = async_flags; gl_lock_unlock(mutex); if ( ret == ETIMEDOUT || timespec_expired(get_timespec(&ts), &last_wakeup) ) { prelude_timer_wake_up(); last_wakeup.tv_sec = ts.tv_sec; last_wakeup.tv_nsec = ts.tv_nsec; } } return 0; } static int wait_data(prelude_async_flags_t *flags) { gl_lock_lock(mutex); while ( prelude_list_is_empty(&joblist) && ! stop_processing && async_flags == *flags ) gl_cond_wait(cond, mutex); if ( prelude_list_is_empty(&joblist) && stop_processing ) { gl_lock_unlock(mutex); return -1; } *flags = async_flags; gl_lock_unlock(mutex); return 0; } static prelude_async_object_t *get_next_job(void) { prelude_list_t *tmp; prelude_async_object_t *obj = NULL; gl_lock_lock(mutex); prelude_list_for_each(&joblist, tmp) { obj = prelude_linked_object_get_object(tmp); prelude_linked_object_del((prelude_linked_object_t *) obj); break; } gl_lock_unlock(mutex); return obj; } static void *async_thread(void *arg) { int ret; sigset_t set; prelude_async_object_t *obj; prelude_async_flags_t nflags = async_flags; ret = sigfillset(&set); if ( ret < 0 ) { prelude_log(PRELUDE_LOG_ERR, "sigfillset error: %s.\n", strerror(errno)); return NULL; } ret = glthread_sigmask(SIG_BLOCK, &set, NULL); if ( ret < 0 ) { prelude_log(PRELUDE_LOG_ERR, "pthread_sigmask error: %s.\n", strerror(errno)); return NULL; } while ( 1 ) { if ( nflags & PRELUDE_ASYNC_FLAGS_TIMER ) ret = wait_timer_and_data(&nflags); else ret = wait_data(&nflags); if ( ret < 0 ) { /* * On some implementation (namely, recent Linux + glibc version), * calling pthread_exit() from a shared library and joining the thread from * an atexit callback result in a deadlock. * * Appear to be related to: * http://sources.redhat.com/bugzilla/show_bug.cgi?id=654 * * Simply returning from the thread seems to fix this problem. */ break; } while ( (obj = get_next_job()) ) obj->_async_func(obj, obj->_async_data); } return NULL; } static int do_init_async(void) { int ret; ret = glthread_create(&thread, async_thread, NULL); if ( ret != 0 ) { prelude_log(PRELUDE_LOG_ERR, "error creating asynchronous thread: %s.\n", strerror(ret)); return ret; } /* * There is a problem with OpenBSD, where using atexit() from a multithread * application result in a deadlock. No workaround has been found at the moment. * */ #if ! defined(__OpenBSD__) return atexit(prelude_async_exit); #else return 0; #endif } /** * prelude_async_set_flags: * @flags: flags you want to set * * Sets flags to the asynchronous subsystem. * */ void prelude_async_set_flags(prelude_async_flags_t flags) { gl_lock_lock(mutex); async_flags = flags; gl_cond_signal(cond); gl_lock_unlock(mutex); } /** * prelude_async_get_flags: * * Retrieves flags from the asynchronous subsystem * * Returns: asynchronous flags */ prelude_async_flags_t prelude_async_get_flags(void) { return async_flags; } /** * prelude_async_init: * * Initialize the asynchronous subsystem. * * Returns: 0 on success, -1 if an error occured. */ int prelude_async_init(void) { if ( ! is_initialized ) { is_initialized = TRUE; stop_processing = FALSE; return do_init_async(); } return 0; } /** * prelude_async_add: * @obj: Pointer to a #prelude_async_t object. * * Adds @obj to the asynchronous processing list. */ void prelude_async_add(prelude_async_object_t *obj) { gl_lock_lock(mutex); prelude_linked_object_add_tail(&joblist, (prelude_linked_object_t *) obj); gl_cond_signal(cond); gl_lock_unlock(mutex); } /** * prelude_async_del: * @obj: Pointer to a #prelude_async_t object. * * Deletes @obj from the asynchronous processing list. */ void prelude_async_del(prelude_async_object_t *obj) { gl_lock_lock(mutex); prelude_linked_object_del((prelude_linked_object_t *) obj); gl_lock_unlock(mutex); } void prelude_async_exit(void) { prelude_bool_t has_job; if ( ! is_initialized ) return; gl_lock_lock(mutex); stop_processing = TRUE; gl_cond_signal(cond); has_job = ! prelude_list_is_empty(&joblist); gl_lock_unlock(mutex); if ( has_job ) prelude_log(PRELUDE_LOG_INFO, "Waiting for asynchronous operation to complete.\n"); gl_thread_join(thread, NULL); gl_cond_destroy(cond); gl_lock_destroy(mutex); is_initialized = FALSE; } void _prelude_async_fork_prepare(void) { gl_lock_lock(mutex); } void _prelude_async_fork_parent(void) { gl_lock_unlock(mutex); } void _prelude_async_fork_child(void) { is_initialized = FALSE; prelude_list_init(&joblist); gl_lock_init(mutex); gl_cond_init(cond); } libprelude-5.2.0/src/PaxHeaders.14770/prelude-client.c0000644000000000000000000000011013726163410020512 xustar000000000000000024 mtime=1599661832.701 24 atime=1599661832.791 24 ctime=1599661999.802 libprelude-5.2.0/src/prelude-client.c0000644000000000000000000016565113726163410017533 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "glthread/lock.h" #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_CLIENT #include "prelude-error.h" #include "idmef.h" #include "common.h" #include "prelude-log.h" #include "prelude-ident.h" #include "prelude-async.h" #include "prelude-option.h" #include "prelude-connection-pool.h" #include "prelude-client.h" #include "prelude-timer.h" #include "prelude-message-id.h" #include "prelude-option-wide.h" #include "idmef-message-write.h" #include "idmef-additional-data.h" #include "config-engine.h" #include "tls-auth.h" #define CLIENT_STATUS_NEED_INIT 0 #define CLIENT_STATUS_INIT_DONE 1 #define CLIENT_STATUS_STARTING 2 #define CLIENT_STATUS_STARTING_STR "starting" #define CLIENT_STATUS_RUNNING 3 #define CLIENT_STATUS_RUNNING_STR "running" #define CLIENT_STATUS_EXITING 4 #define CLIENT_STATUS_EXITING_STR "exiting" /* * directory where analyzerID file are stored. */ #define IDENT_DIR PRELUDE_CONFIG_DIR "/analyzerid" /* * send an heartbeat every 600 seconds by default. */ #define DEFAULT_HEARTBEAT_INTERVAL 600 typedef struct { prelude_client_t *client; idmef_address_t *addr; idmef_address_t *idmef_addr; } node_address_data_t; struct prelude_client { int refcount; int flags; int status; prelude_connection_permission_t permission; /* * information about the user/group this analyzer is running as */ prelude_client_profile_t *profile; /* * name, analyzerid, and config file for this analyzer. */ char *sha1sum; char *config_filename; prelude_bool_t config_external; idmef_analyzer_t *analyzer; idmef_analyzer_t *_analyzer_copy; prelude_connection_pool_t *cpool; prelude_timer_t heartbeat_timer; prelude_msgbuf_t *msgbuf; gl_lock_t msgbuf_lock; prelude_ident_t *unique_ident; prelude_option_t *config_file_opt; void (*heartbeat_cb)(prelude_client_t *client, idmef_message_t *heartbeat); }; extern int _prelude_internal_argc; extern char *_prelude_internal_argv[1024]; extern int _prelude_connection_keepalive_time; extern int _prelude_connection_keepalive_probes; extern int _prelude_connection_keepalive_intvl; prelude_option_t *_prelude_generic_optlist = NULL; static int client_write_cb(prelude_msgbuf_t *msgbuf, prelude_msg_t *msg) { prelude_client_send_msg(prelude_msgbuf_get_data(msgbuf), msg); return 0; } static int generate_sha1sum(const char *filename, prelude_string_t *out) { int ret; size_t len, i; unsigned char digest[20], *data; len = gnutls_hash_get_len(GNUTLS_DIG_SHA1); if ( len != sizeof(digest) ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "invalid SHA1 digest length"); ret = _prelude_load_file(filename, &data, &len); if ( ret < 0 ) return ret; ret = gnutls_hash_fast(GNUTLS_DIG_SHA1, data, len, digest); _prelude_unload_file(data, len); if ( ret < 0 ) return ret; for ( i = 0; i < sizeof(digest); i++ ) { ret = prelude_string_sprintf(out, "%.2x", digest[i]); if ( ret < 0 ) return ret; } return 0; } static int add_hb_data(idmef_heartbeat_t *hb, prelude_string_t *meaning, const char *data) { int ret; idmef_additional_data_t *ad; ret = idmef_heartbeat_new_additional_data(hb, &ad, -1); if ( ret < 0 ) return ret; idmef_additional_data_set_meaning(ad, meaning); idmef_additional_data_set_string_ref(ad, data); return 0; } static const char *client_get_status(prelude_client_t *client) { if ( client->status == CLIENT_STATUS_RUNNING ) return CLIENT_STATUS_RUNNING_STR; else if ( client->status == CLIENT_STATUS_STARTING ) return CLIENT_STATUS_STARTING_STR; else if ( client->status == CLIENT_STATUS_EXITING ) return CLIENT_STATUS_EXITING_STR; abort(); } static void gen_heartbeat(prelude_client_t *client) { int ret; idmef_time_t *time; prelude_string_t *str; idmef_message_t *message; idmef_heartbeat_t *heartbeat; prelude_log_debug(2, "running heartbeat callback.\n"); ret = idmef_message_new(&message); if ( ret < 0 ) { prelude_perror(ret, "error creating new IDMEF message"); goto out; } ret = idmef_message_new_heartbeat(message, &heartbeat); if ( ret < 0 ) { prelude_perror(ret, "error creating new IDMEF heartbeat.\n"); goto out; } idmef_heartbeat_set_heartbeat_interval(heartbeat, prelude_timer_get_expire(&client->heartbeat_timer)); ret = prelude_string_new_constant(&str, "Analyzer status"); if ( ret < 0 ) goto out; add_hb_data(heartbeat, str, client_get_status(client)); if ( client->sha1sum ) { ret = prelude_string_new_constant(&str, "Analyzer SHA1"); if ( ret < 0 ) goto out; add_hb_data(heartbeat, str, client->sha1sum); } ret = idmef_time_new_from_gettimeofday(&time); if ( ret < 0 ) goto out; idmef_heartbeat_set_create_time(heartbeat, time); idmef_heartbeat_set_analyzer(heartbeat, idmef_analyzer_ref(client->_analyzer_copy), IDMEF_LIST_PREPEND); if ( client->heartbeat_cb ) { client->heartbeat_cb(client, message); goto out; } prelude_client_send_idmef(client, message); out: idmef_message_destroy(message); } static void heartbeat_expire_cb(void *data) { prelude_client_t *client = data; gen_heartbeat(client); if ( client->status != CLIENT_STATUS_EXITING ) prelude_timer_reset(&client->heartbeat_timer); } static void setup_heartbeat_timer(prelude_client_t *client, int expire) { prelude_timer_set_data(&client->heartbeat_timer, client); prelude_timer_set_expire(&client->heartbeat_timer, expire); prelude_timer_set_callback(&client->heartbeat_timer, heartbeat_expire_cb); } #ifdef HAVE_IPV6 static prelude_bool_t is_loopback_ipv6(struct in6_addr *addr) { struct in6_addr lo; inet_pton(AF_INET6, "::1", &lo); return (memcmp(addr, &lo, sizeof(lo)) == 0) ? TRUE : FALSE; } #endif static prelude_bool_t is_loopback_ipv4(struct in_addr *addr) { return (ntohl(addr->s_addr) >> 24) == 127 ? TRUE : FALSE; } static prelude_bool_t is_loopback(int family, void *addr) { if ( family == AF_INET ) return is_loopback_ipv4(addr); #ifdef HAVE_IPV6 else if ( family == AF_INET6 ) return is_loopback_ipv6(addr); #endif else return FALSE; } static int set_analyzer_host_info(idmef_analyzer_t *analyzer, const char *node_str, const char *addr_str) { int ret; idmef_node_t *node; idmef_address_t *addr; prelude_string_t *str; if ( ! node_str && ! addr_str ) return 0; ret = idmef_analyzer_new_node(analyzer, &node); if ( ret < 0 ) return ret; ret = idmef_node_new_name(node, &str); if ( ret < 0 ) return ret; if ( node_str && prelude_string_is_empty(str) ) prelude_string_set_dup(str, node_str); if ( addr_str ) { if ( ! (addr = idmef_node_get_next_address(node, NULL)) ) { ret = idmef_node_new_address(node, &addr, 0); if ( ret < 0 ) return ret; } ret = idmef_address_new_address(addr, &str); if ( ret < 0 ) return ret; if ( prelude_string_is_empty(str) ) prelude_string_set_dup(str, addr_str); } return 0; } static int get_fqdn(idmef_analyzer_t *analyzer, const char *nodename) { int ret; void *in_addr; char addr[256], *addrp = NULL; struct addrinfo hints, *ai, *ais; prelude_log_debug(1, "Detected nodename: '%s'.\n", nodename); memset(&hints, 0, sizeof(hints)); hints.ai_flags = AI_CANONNAME; ret = getaddrinfo(nodename, NULL, &hints, &ai); if ( ret < 0 ) return ret; if ( ai->ai_canonname ) { nodename = ai->ai_canonname; prelude_log_debug(1, "Found canonical name: '%s'.\n", nodename); } for ( ais = ai; ai != NULL; ai = ai->ai_next ) { in_addr = prelude_sockaddr_get_inaddr(ai->ai_addr); if ( ! in_addr ) continue; if ( ! inet_ntop(ai->ai_family, in_addr, addr, sizeof(addr)) ) continue; if ( is_loopback(ai->ai_family, in_addr) ) prelude_log_debug(1, "Ignoring loopback address: '%s'.\n", addr); else { prelude_log_debug(1, "Found address: '%s'.\n", addr); addrp = addr; break; } } ret = set_analyzer_host_info(analyzer, nodename, addrp); freeaddrinfo(ais); return ret; } static int get_sys_info(idmef_analyzer_t *analyzer) { int ret; struct utsname uts; prelude_string_t *str; if ( uname(&uts) < 0 ) return prelude_error_from_errno(errno); get_fqdn(analyzer, uts.nodename); ret = prelude_string_new_dup(&str, uts.sysname); if ( ret < 0 ) return ret; idmef_analyzer_set_ostype(analyzer, str); ret = prelude_string_new_dup(&str, uts.release); if ( ret < 0 ) return ret; idmef_analyzer_set_osversion(analyzer, str); return 0; } static int fill_client_infos(prelude_client_t *client, const char *program) { int ret; prelude_string_t *str, *sha1; idmef_process_t *process; char buf[PATH_MAX], *name, *path; snprintf(buf, sizeof(buf), "%" PRELUDE_PRIu64, prelude_client_profile_get_analyzerid(client->profile)); ret = prelude_string_new_dup(&str, buf); if ( ret < 0 ) return ret; idmef_analyzer_set_analyzerid(client->analyzer, str); ret = get_sys_info(client->analyzer); if ( ret < 0 ) return ret; ret = idmef_analyzer_new_process(client->analyzer, &process); if ( ret < 0 ) return ret; idmef_process_set_pid(process, getpid()); if ( ! program || ! *program ) return 0; name = path = NULL; _prelude_get_file_name_and_path(program, &name, &path); if ( name ) { ret = prelude_string_new_nodup(&str, name); if ( ret < 0 ) return ret; idmef_process_set_name(process, str); } if ( path && name ) { ret = idmef_process_new_path(process, &str); if ( ret < 0 ) return ret; ret = prelude_string_sprintf(str, "%s/%s", path, name); if ( ret < 0 ) return ret; ret = prelude_string_new(&sha1); if ( ret < 0 ) return ret; ret = generate_sha1sum(prelude_string_get_string(str), sha1); if ( ret < 0 ) return ret; ret = prelude_string_get_string_released(sha1, &client->sha1sum); prelude_string_destroy(sha1); } if ( path ) free(path); /* copied above */ return ret; } static int set_node_address_category(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { idmef_address_category_t category; node_address_data_t *data = context; category = idmef_address_category_to_numeric(optarg); if ( category < 0 ) return category; idmef_address_set_category(data->addr, category); return 0; } static int get_node_address_category(prelude_option_t *opt, prelude_string_t *out, void *context) { node_address_data_t *data = context; idmef_address_category_t category = idmef_address_get_category(data->addr); return prelude_string_cat(out, idmef_address_category_to_string(category)); } static int set_node_address_vlan_num(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { node_address_data_t *data = context; if ( ! optarg ) idmef_address_unset_vlan_num(data->addr); else idmef_address_set_vlan_num(data->addr, atoi(optarg)); return 0; } static int get_node_address_vlan_num(prelude_option_t *opt, prelude_string_t *out, void *context) { int32_t *num; node_address_data_t *data = context; num = idmef_address_get_vlan_num(data->addr); if ( num ) return prelude_string_sprintf(out, "%" PRELUDE_PRId32, *num); return 0; } static int set_node_address_vlan_name(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { int ret; prelude_string_t *str = NULL; node_address_data_t *data = context; if ( optarg ) { ret = prelude_string_new_dup(&str, optarg); if ( ret < 0 ) return ret; } idmef_address_set_vlan_name(data->addr, str); return 0; } static int get_node_address_vlan_name(prelude_option_t *opt, prelude_string_t *out, void *context) { prelude_string_t *str; node_address_data_t *data = context; str = idmef_address_get_vlan_name(data->addr); if ( ! str ) return 0; return prelude_string_copy_ref(str, out); } static int set_node_address_address(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { int ret; prelude_string_t *str = NULL; node_address_data_t *data = context; if ( optarg ) { ret = prelude_string_new_dup(&str, optarg); if ( ret < 0 ) return ret; } idmef_address_set_address(data->addr, str); return 0; } static int get_node_address_address(prelude_option_t *opt, prelude_string_t *out, void *context) { prelude_string_t *str; node_address_data_t *data = context; str = idmef_address_get_address(data->addr); if ( ! str ) return 0; return prelude_string_copy_ref(str, out); } static int set_node_address_netmask(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { int ret; prelude_string_t *str = NULL; node_address_data_t *data = context; if ( optarg ) { ret = prelude_string_new_dup(&str, optarg); if ( ret < 0 ) return ret; } idmef_address_set_netmask(data->addr, str); return 0; } static int get_node_address_netmask(prelude_option_t *opt, prelude_string_t *out, void *context) { prelude_string_t *str; node_address_data_t *data = context; str = idmef_address_get_netmask(data->addr); if ( ! str ) return 0; return prelude_string_copy_ref(str, out); } static int set_node_address(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { int ret; node_address_data_t *data; prelude_option_context_t *octx; prelude_client_t *ptr = context; octx = prelude_option_search_context(opt, optarg); if ( octx ) return 0; data = malloc(sizeof(*data)); if ( ! data ) return prelude_error_from_errno(errno); data->client = ptr; data->idmef_addr = NULL; ret = idmef_address_new(&data->addr); if ( ret < 0 ) { free(data); return ret; } ret = prelude_option_new_context(opt, &octx, optarg, data); if ( ret < 0 ) { idmef_address_destroy(data->addr); free(data); } return ret; } static int commit_node_address(prelude_option_t *opt, prelude_string_t *out, void *context) { int ret; idmef_node_t *node; idmef_analyzer_t *analyzer; idmef_address_t *addr = NULL, *naddr; node_address_data_t *data = context; ret = idmef_analyzer_new_node(data->client->analyzer, &node); if ( ret < 0 ) return ret; if ( node && data->idmef_addr ) { while ( (addr = idmef_node_get_next_address(node, addr)) ) { if ( addr == data->idmef_addr ) { idmef_address_destroy(addr); break; } } } ret = idmef_address_clone(data->addr, &naddr); if ( ret < 0 ) return ret; data->idmef_addr = naddr; idmef_node_set_address(node, naddr, -1); if ( data->client->_analyzer_copy ) { ret = idmef_analyzer_clone(data->client->analyzer, &analyzer); if ( ret < 0 ) return ret; idmef_analyzer_destroy(data->client->_analyzer_copy); data->client->_analyzer_copy = analyzer; } return 0; } static int destroy_node_address(prelude_option_t *opt, prelude_string_t *out, void *context) { int ret; idmef_node_t *node; idmef_analyzer_t *analyzer; idmef_address_t *addr = NULL; node_address_data_t *data = context; node = idmef_analyzer_get_node(data->client->analyzer); if ( node ) { while ( (addr = idmef_node_get_next_address(node, addr)) ) { if ( addr == data->idmef_addr ) { idmef_address_destroy(addr); break; } } } if ( data->client->_analyzer_copy ) { ret = idmef_analyzer_clone(data->client->analyzer, &analyzer); if ( ret == 0 ) { idmef_analyzer_destroy(data->client->_analyzer_copy); data->client->_analyzer_copy = analyzer; } } idmef_address_destroy(data->addr); free(data); return 0; } static int set_node_category(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { int ret; idmef_node_t *node; idmef_node_category_t category; prelude_client_t *ptr = context; category = idmef_node_category_to_numeric(optarg); if ( category < 0 ) return category; ret = idmef_analyzer_new_node(ptr->analyzer, &node); if ( ret < 0 ) return -1; idmef_node_set_category(node, category); return 0; } static int get_node_category(prelude_option_t *opt, prelude_string_t *out, void *context) { const char *category; prelude_client_t *client = context; idmef_node_t *node = idmef_analyzer_get_node(client->analyzer); if ( ! node ) return 0; category = idmef_node_category_to_string(idmef_node_get_category(node)); if ( ! category ) return -1; return prelude_string_cat(out, category); } static int set_node_location(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { int ret; idmef_node_t *node; prelude_string_t *str = NULL; prelude_client_t *ptr = context; ret = idmef_analyzer_new_node(ptr->analyzer, &node); if ( ret < 0 ) return ret; if ( optarg ) { ret = prelude_string_new_dup(&str, optarg); if ( ret < 0 ) return ret; } idmef_node_set_location(node, str); return 0; } static int get_node_location(prelude_option_t *opt, prelude_string_t *out, void *context) { prelude_string_t *str; prelude_client_t *client = context; idmef_node_t *node = idmef_analyzer_get_node(client->analyzer); if ( ! node ) return 0; str = idmef_node_get_location(node); if ( ! str ) return 0; return prelude_string_copy_ref(str, out); } static int set_node_name(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { int ret; idmef_node_t *node; prelude_string_t *str = NULL; prelude_client_t *ptr = context; ret = idmef_analyzer_new_node(ptr->analyzer, &node); if ( ret < 0 ) return ret; if ( optarg ) { ret = prelude_string_new_dup(&str, optarg); if ( ret < 0 ) return ret; } idmef_node_set_name(node, str); return 0; } static int get_node_name(prelude_option_t *opt, prelude_string_t *out, void *context) { prelude_string_t *str; prelude_client_t *client = context; idmef_node_t *node = idmef_analyzer_get_node(client->analyzer); if ( ! node ) return 0; str = idmef_node_get_name(node); if ( ! str ) return 0; return prelude_string_copy_ref(str, out); } static int get_analyzer_name(prelude_option_t *opt, prelude_string_t *out, void *context) { prelude_string_t *str; prelude_client_t *client = context; str = idmef_analyzer_get_name(client->analyzer); if ( ! str ) return 0; return prelude_string_copy_ref(str, out); } static int set_analyzer_name(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { int ret; prelude_string_t *str = NULL; prelude_client_t *ptr = context; if ( optarg ) { ret = prelude_string_new_dup(&str, optarg); if ( ret < 0 ) return ret; } idmef_analyzer_set_name(ptr->analyzer, str); return 0; } static int get_manager_addr(prelude_option_t *opt, prelude_string_t *out, void *context) { prelude_client_t *ptr = context; if ( ! ptr->cpool || ! prelude_connection_pool_get_connection_string(ptr->cpool) ) return 0; return prelude_string_cat(out, prelude_connection_pool_get_connection_string(ptr->cpool)); } static int connection_pool_event_cb(prelude_connection_pool_t *pool, prelude_connection_pool_event_t event, prelude_connection_t *conn) { int ret; prelude_client_t *client; prelude_msgbuf_t *msgbuf; prelude_msg_t *msg = NULL; if ( event != PRELUDE_CONNECTION_POOL_EVENT_INPUT ) return 0; do { ret = prelude_connection_recv(conn, &msg); } while ( ret < 0 && prelude_error_get_code(ret) == PRELUDE_ERROR_EAGAIN ); if ( ret < 0 ) return ret; client = prelude_connection_pool_get_data(pool); ret = prelude_connection_new_msgbuf(conn, &msgbuf); if ( ret < 0 ) return ret; ret = prelude_client_handle_msg_default(client, msg, msgbuf); if ( ret == 0 ) ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Unexpected message type '%d' received", prelude_msg_get_tag(msg)); prelude_msg_destroy(msg); prelude_msgbuf_destroy(msgbuf); return ret; } static int set_manager_addr(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { prelude_client_t *client = context; return prelude_connection_pool_set_connection_string(client->cpool, optarg); } static int set_tcp_keepalive_time(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { _prelude_connection_keepalive_time = atoi(optarg); return 0; } static int set_tcp_keepalive_probes(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { _prelude_connection_keepalive_probes = atoi(optarg); return 0; } static int set_tcp_keepalive_intvl(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { _prelude_connection_keepalive_intvl = atoi(optarg); return 0; } static int set_tls_options(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { return tls_auth_init_priority(optarg); } static int set_heartbeat_interval(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { prelude_client_t *ptr = context; setup_heartbeat_timer(ptr, atoi(optarg)); if ( ptr->status == CLIENT_STATUS_RUNNING ) prelude_timer_reset(&ptr->heartbeat_timer); return 0; } static int get_heartbeat_interval(prelude_option_t *opt, prelude_string_t *out, void *context) { prelude_client_t *ptr = context; return prelude_string_sprintf(out, "%u", ptr->heartbeat_timer.expire); } static int set_profile(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { int ret; char buf[PATH_MAX]; prelude_client_t *client = context; ret = prelude_client_profile_set_name(client->profile, optarg); if ( ret < 0 ) return ret; if ( client->config_external == TRUE ) return 0; prelude_client_profile_get_config_filename(client->profile, buf, sizeof(buf)); prelude_client_set_config_filename(client, buf); client->config_external = FALSE; return 0; } static void _prelude_client_destroy(prelude_client_t *client) { if ( client->profile ) prelude_client_profile_destroy(client->profile); if ( client->sha1sum ) free(client->sha1sum); if ( client->msgbuf ) prelude_msgbuf_destroy(client->msgbuf); if ( client->analyzer ) idmef_analyzer_destroy(client->analyzer); if ( client->_analyzer_copy ) idmef_analyzer_destroy(client->_analyzer_copy); if ( client->config_filename ) free(client->config_filename); if ( client->cpool ) prelude_connection_pool_destroy(client->cpool); if ( client->unique_ident ) prelude_ident_destroy(client->unique_ident); free(client); } static int handle_client_error(prelude_client_t *client, int error) { char *tmp = NULL; prelude_error_code_t code; prelude_error_source_t source; code = prelude_error_get_code(error); source = prelude_error_get_source(error); if ( error < 0 && (code == PRELUDE_ERROR_PROFILE || source == PRELUDE_ERROR_SOURCE_CONFIG_ENGINE) ) { if ( _prelude_thread_get_error() ) tmp = strdup(_prelude_thread_get_error()); error = prelude_error_verbose(PRELUDE_ERROR_PROFILE, "%s%s%s", tmp ? tmp : "", tmp ? "\n" : "", prelude_client_get_setup_error(client)); free(tmp); } return error; } int _prelude_client_register_options(void) { int ret; prelude_option_t *opt; prelude_option_t *root_list; prelude_option_new_root(&_prelude_generic_optlist); ret = prelude_option_add(_prelude_generic_optlist, &root_list, PRELUDE_OPTION_TYPE_CLI|PRELUDE_OPTION_TYPE_CFG|PRELUDE_OPTION_TYPE_WIDE, 0, "prelude", "Prelude generic options", PRELUDE_OPTION_ARGUMENT_NONE, NULL, NULL); if ( ret < 0 ) return ret; ret = prelude_option_add(root_list, &opt, PRELUDE_OPTION_TYPE_CLI, 0, "profile", "Profile to use for this analyzer", PRELUDE_OPTION_ARGUMENT_REQUIRED, set_profile, NULL); if ( ret < 0 ) return ret; prelude_option_set_priority(opt, PRELUDE_OPTION_PRIORITY_IMMEDIATE); ret = prelude_option_add(root_list, NULL, PRELUDE_OPTION_TYPE_CLI|PRELUDE_OPTION_TYPE_CFG |PRELUDE_OPTION_TYPE_WIDE, 0, "heartbeat-interval", "Number of seconds between two heartbeat", PRELUDE_OPTION_ARGUMENT_REQUIRED, set_heartbeat_interval, get_heartbeat_interval); if ( ret < 0 ) return ret; ret = prelude_option_add(root_list, &opt, PRELUDE_OPTION_TYPE_CLI|PRELUDE_OPTION_TYPE_CFG |PRELUDE_OPTION_TYPE_WIDE, 0, "server-addr", "Address where this agent should report events to (addr:port)", PRELUDE_OPTION_ARGUMENT_REQUIRED, set_manager_addr, get_manager_addr); if ( ret < 0 ) return ret; prelude_option_set_priority(opt, PRELUDE_OPTION_PRIORITY_LAST); ret = prelude_option_add(root_list, &opt, PRELUDE_OPTION_TYPE_CFG|PRELUDE_OPTION_TYPE_CLI, 0, "tls-options", "TLS ciphers, key exchange methods, protocols, macs, and compression options", PRELUDE_OPTION_ARGUMENT_REQUIRED, set_tls_options, NULL); if ( ret < 0 ) return ret; ret = prelude_option_add(root_list, NULL, PRELUDE_OPTION_TYPE_CFG, 0, "tcp-keepalive-time", "Interval between the last data packet sent and the first keepalive probe", PRELUDE_OPTION_ARGUMENT_REQUIRED, set_tcp_keepalive_time, NULL); if ( ret < 0 ) return ret; ret = prelude_option_add(root_list, NULL, PRELUDE_OPTION_TYPE_CFG, 0, "tcp-keepalive-probes", "Number of not acknowledged probes to send before considering the connection dead", PRELUDE_OPTION_ARGUMENT_REQUIRED, set_tcp_keepalive_probes, NULL); if ( ret < 0 ) return ret; ret = prelude_option_add(root_list, NULL, PRELUDE_OPTION_TYPE_CFG, 0, "tcp-keepalive-intvl", "Interval between subsequential keepalive probes", PRELUDE_OPTION_ARGUMENT_REQUIRED, set_tcp_keepalive_intvl, NULL); if ( ret < 0 ) return ret; ret = prelude_option_add(root_list, NULL, PRELUDE_OPTION_TYPE_CLI|PRELUDE_OPTION_TYPE_CFG| PRELUDE_OPTION_TYPE_WIDE, 0, "analyzer-name", "Name for this analyzer", PRELUDE_OPTION_ARGUMENT_OPTIONAL, set_analyzer_name, get_analyzer_name); if ( ret < 0 ) return ret; ret = prelude_option_add(root_list, NULL, PRELUDE_OPTION_TYPE_CFG|PRELUDE_OPTION_TYPE_WIDE, 0, "node-name", "Name of the equipment", PRELUDE_OPTION_ARGUMENT_OPTIONAL, set_node_name, get_node_name); if ( ret < 0 ) return ret; ret = prelude_option_add(root_list, NULL, PRELUDE_OPTION_TYPE_CFG|PRELUDE_OPTION_TYPE_WIDE, 0, "node-location", "Location of the equipment", PRELUDE_OPTION_ARGUMENT_OPTIONAL, set_node_location, get_node_location); if ( ret < 0 ) return ret; ret = prelude_option_add(root_list, NULL, PRELUDE_OPTION_TYPE_CFG|PRELUDE_OPTION_TYPE_WIDE, 0, "node-category", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_node_category, get_node_category); if ( ret < 0 ) return ret; ret = prelude_option_add(root_list, &opt, PRELUDE_OPTION_TYPE_CFG|PRELUDE_OPTION_TYPE_WIDE |PRELUDE_OPTION_TYPE_CONTEXT, 0, "node-address", "Network or hardware address of the equipment", PRELUDE_OPTION_ARGUMENT_OPTIONAL, set_node_address, NULL); if ( ret < 0 ) return ret; prelude_option_set_commit_callback(opt, commit_node_address); prelude_option_set_destroy_callback(opt, destroy_node_address); ret = prelude_option_add(opt, NULL, PRELUDE_OPTION_TYPE_CFG|PRELUDE_OPTION_TYPE_WIDE, 0, "address", "Address information", PRELUDE_OPTION_ARGUMENT_OPTIONAL, set_node_address_address, get_node_address_address); if ( ret < 0 ) return ret; ret = prelude_option_add(opt, NULL, PRELUDE_OPTION_TYPE_CFG|PRELUDE_OPTION_TYPE_WIDE, 0, "netmask", "Network mask for the address, if appropriate", PRELUDE_OPTION_ARGUMENT_OPTIONAL, set_node_address_netmask, get_node_address_netmask); if ( ret < 0 ) return ret; ret = prelude_option_add(opt, NULL, PRELUDE_OPTION_TYPE_CFG|PRELUDE_OPTION_TYPE_WIDE, 0, "category", "Type of address represented", PRELUDE_OPTION_ARGUMENT_REQUIRED, set_node_address_category, get_node_address_category); if ( ret < 0 ) return ret; ret = prelude_option_add(opt, NULL, PRELUDE_OPTION_TYPE_CFG|PRELUDE_OPTION_TYPE_WIDE, 0, "vlan-name", "Name of the Virtual LAN to which the address belongs", PRELUDE_OPTION_ARGUMENT_OPTIONAL, set_node_address_vlan_name, get_node_address_vlan_name); if ( ret < 0 ) return ret; ret = prelude_option_add(opt, NULL, PRELUDE_OPTION_TYPE_CFG|PRELUDE_OPTION_TYPE_WIDE, 0, "vlan-num", "Number of the Virtual LAN to which the address belongs", PRELUDE_OPTION_ARGUMENT_OPTIONAL, set_node_address_vlan_num, get_node_address_vlan_num); if ( ret < 0 ) return ret; return 0; } /** * prelude_client_new: * @client: Pointer to a client object to initialize. * @profile: Default profile name for this analyzer. * * This function initialize the @client object. * * Returns: 0 on success or a negative value if an error occur. */ int prelude_client_new(prelude_client_t **client, const char *profile) { int ret; prelude_client_t *new; prelude_return_val_if_fail(profile, prelude_error(PRELUDE_ERROR_ASSERTION)); new = calloc(1, sizeof(*new)); if ( ! new ) return prelude_error_from_errno(errno); gl_lock_init(new->msgbuf_lock); prelude_timer_init_list(&new->heartbeat_timer); new->refcount = 1; new->flags = PRELUDE_CLIENT_FLAGS_HEARTBEAT|PRELUDE_CLIENT_FLAGS_CONNECT|PRELUDE_CLIENT_FLAGS_AUTOCONFIG; new->permission = PRELUDE_CONNECTION_PERMISSION_IDMEF_WRITE; ret = idmef_analyzer_new(&new->analyzer); if ( ret < 0 ) { _prelude_client_destroy(new); return ret; } set_analyzer_name(NULL, profile, NULL, new); ret = _prelude_client_profile_new(&new->profile); if ( ret < 0 ) { _prelude_client_destroy(new); return ret; } set_profile(NULL, profile, NULL, new); ret = prelude_ident_new(&new->unique_ident); if ( ret < 0 ) { _prelude_client_destroy(new); return ret; } ret = prelude_connection_pool_new(&new->cpool, new->profile, new->permission); if ( ret < 0 ) return ret; prelude_connection_pool_set_data(new->cpool, new); prelude_connection_pool_set_flags(new->cpool, prelude_connection_pool_get_flags(new->cpool) | PRELUDE_CONNECTION_POOL_FLAGS_RECONNECT | PRELUDE_CONNECTION_POOL_FLAGS_FAILOVER); prelude_connection_pool_set_event_handler(new->cpool, PRELUDE_CONNECTION_POOL_EVENT_INPUT, connection_pool_event_cb); setup_heartbeat_timer(new, DEFAULT_HEARTBEAT_INTERVAL); ret = prelude_client_new_msgbuf(new, &new->msgbuf); if ( ret < 0 ) { _prelude_client_destroy(new); return ret; } *client = new; return 0; } prelude_client_t *prelude_client_ref(prelude_client_t *client) { prelude_return_val_if_fail(client, NULL); client->refcount++; return client; } /** * prelude_client_init: * @client: Pointer to a #prelude_client_t object to initialize. * * This function initialize the @client object, meaning reading generic * options from the prelude_client_new() provided configuration file * and the array of arguments specified through prelude_init(). * * Calling this function is optional and should be done only if you need more * granularity between prelude_client_new() and prelude_client_start(): * * prelude_client_start() will call prelude_client_init() for you if needed. * * Returns: 0 on success, -1 if an error occured. */ int prelude_client_init(prelude_client_t *client) { int ret; prelude_string_t *err; prelude_option_warning_t old_warnings; /* * Calling two time init() would result in error in * fill_client_infos(), due to idmef_analyzer_t object reuse. */ if ( client->status != CLIENT_STATUS_NEED_INIT ) return 0; prelude_return_val_if_fail(client, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_option_set_warnings(0, &old_warnings); ret = prelude_option_read(_prelude_generic_optlist, (const char **)&client->config_filename, &_prelude_internal_argc, _prelude_internal_argv, &err, client); prelude_option_set_warnings(old_warnings, NULL); if ( ret < 0 ) return handle_client_error(client, ret); ret = _prelude_client_profile_init(client->profile); if ( ret < 0 ) return handle_client_error(client, ret); ret = fill_client_infos(client, _prelude_internal_argv[0]); if ( ret < 0 ) return handle_client_error(client, ret); client->status = CLIENT_STATUS_INIT_DONE; return 0; } /** * prelude_client_start: * @client: Pointer to a client object to initialize. * * This function start the @client object, triggering * a connection from the client to it's server if any were * specified, and sending the initial @client heartbeat. * * If @client was not initialized, then prelude_client_init() * will be called and thus this function might fail if the * client was not registered. * * Returns: 0 on success, -1 if an error occured. */ int prelude_client_start(prelude_client_t *client) { int ret; void *credentials; prelude_return_val_if_fail(client, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( client->status == CLIENT_STATUS_NEED_INIT ) { /* * if prelude_client_init() was not called */ ret = prelude_client_init(client); if ( ret < 0 ) return ret; } if ( client->flags & PRELUDE_CLIENT_FLAGS_CONNECT ) { if ( ! client->cpool ) return prelude_error(PRELUDE_ERROR_CONNECTION_STRING); ret = prelude_client_profile_get_credentials(client->profile, &credentials); if ( ret < 0 ) return handle_client_error(client, ret); ret = prelude_connection_pool_init(client->cpool); if ( ret < 0 ) return handle_client_error(client, ret); } if ( (client->cpool || client->heartbeat_cb) && client->flags & PRELUDE_CLIENT_FLAGS_HEARTBEAT ) { client->status = CLIENT_STATUS_STARTING; client->_analyzer_copy = client->analyzer; gen_heartbeat(client); /* * We use a copy of the analyzer object from the timer, * since it might be run asynchronously. */ ret = idmef_analyzer_clone(client->analyzer, &client->_analyzer_copy); if ( ret < 0 ) return ret; client->status = CLIENT_STATUS_RUNNING; prelude_timer_init(&client->heartbeat_timer); } return 0; } /** * prelude_client_get_analyzer: * @client: Pointer to a #prelude_client_t object. * * Provide access to the #idmef_analyzer_t object associated to @client. * This analyzer object is sent along with every alerts and heartbeats emited * by this client. The analyzer object is created by prelude_client_init(). * * Returns: the #idmef_analyzer_t object associated with @client. */ idmef_analyzer_t *prelude_client_get_analyzer(prelude_client_t *client) { prelude_return_val_if_fail(client, NULL); return client->analyzer; } /** * prelude_client_send_msg: * @client: Pointer to a #prelude_client_t object. * @msg: pointer to a message that @client should send. * * Send @msg to the peers @client is communicating with. * * The message will be sent asynchronously if @PRELUDE_CLIENT_FLAGS_ASYNC_SEND * was set using prelude_client_set_flags() in which case the caller should * not call prelude_msg_destroy() on @msg. */ void prelude_client_send_msg(prelude_client_t *client, prelude_msg_t *msg) { prelude_return_if_fail(client); prelude_return_if_fail(msg); if ( client->flags & PRELUDE_CLIENT_FLAGS_ASYNC_SEND ) prelude_connection_pool_broadcast_async(client->cpool, msg); else prelude_connection_pool_broadcast(client->cpool, msg); } /** * prelude_client_send_idmef: * @client: Pointer to a #prelude_client_t object. * @msg: pointer to an IDMEF message to be sent to @client peers. * * Send @msg to the peers @client is communicating with. * * The message will be sent asynchronously if @PRELUDE_CLIENT_FLAGS_ASYNC_SEND * was set using prelude_client_set_flags(). */ void prelude_client_send_idmef(prelude_client_t *client, idmef_message_t *msg) { prelude_return_if_fail(client); prelude_return_if_fail(msg); /* * we need to hold a lock since asynchronous heartbeat * could write the message buffer at the same time we do. */ gl_lock_lock(client->msgbuf_lock); _idmef_message_assign_missing(client, msg); idmef_message_write(msg, client->msgbuf); prelude_msgbuf_mark_end(client->msgbuf); gl_lock_unlock(client->msgbuf_lock); } /** * prelude_client_recv_msg: * @client: Pointer to a #prelude_client_t object. * @timeout: Number of millisecond to wait for a message. * @msg: Pointer where the received #prelude_msg_t should be stored. * * Wait @timeout second for a message on @client connection pool. * * A @timeout of -1, mean prelude_client_recv_msg() will block until * a message is received. A @timeout of 0 mean that it will return * immediatly. * * Returns: 0 on timeout, a negative value on error, 1 on success. */ int prelude_client_recv_msg(prelude_client_t *client, int timeout, prelude_msg_t **msg) { int ret; prelude_msg_t *m = NULL; prelude_connection_t *con; prelude_return_val_if_fail(client, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(msg, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = prelude_connection_pool_recv(client->cpool, timeout, &con, &m); if ( ret <= 0 ) return ret; ret = prelude_client_handle_msg_default(client, m, client->msgbuf); if ( ret != 0 ) { /* if we handled the message ourselve, or if there was an error */ prelude_msg_destroy(m); return ret; } /* * There was no default handler for this message */ *msg = m; return 1; } /** * prelude_client_recv_idmef: * @client: Pointer to a #prelude_client_t object. * @timeout: Number of second to wait for a message. * @idmef: Pointer where the received #idmef_message_t should be stored. * * Wait @timeout second for a message on @client connection pool. * * A @timeout of -1, mean prelude_client_recv_idmef() will block until * a message is received. A @timeout of 0 mean that it will return * immediatly. * * Returns: 0 on timeout, a negative value on error, 1 on success. */ int prelude_client_recv_idmef(prelude_client_t *client, int timeout, idmef_message_t **idmef) { int ret; prelude_msg_t *msg = NULL; prelude_return_val_if_fail(client, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(idmef, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! (client->permission & PRELUDE_CONNECTION_PERMISSION_IDMEF_READ) ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Client should use 'idmef:r' permission to read IDMEF message"); ret = prelude_client_recv_msg(client, timeout, &msg); if ( ret <= 0 ) return ret; ret = idmef_message_new(idmef); if ( ret < 0 ) { prelude_msg_destroy(msg); return ret; } ret = idmef_message_read(*idmef, msg); if ( ret < 0 ) { prelude_msg_destroy(msg); idmef_message_destroy(*idmef); return ret; } idmef_message_set_pmsg(*idmef, msg); return 1; } /** * prelude_client_get_connection_pool: * @client: pointer to a #prelude_client_t object. * * Return a pointer to the #prelude_connection_pool_t object used by @client * to send messages. * * Returns: a pointer to a #prelude_connection_pool_t object. */ prelude_connection_pool_t *prelude_client_get_connection_pool(prelude_client_t *client) { prelude_return_val_if_fail(client, NULL); return client->cpool; } /** * prelude_client_set_connection_pool: * @client: pointer to a #prelude_client_t object. * @pool: pointer to a #prelude_client_pool_t object. * * Use this function in order to set your own list of peer that @client * should send message too. This might be usefull in case you don't want * this to be automated by prelude_client_init(). */ void prelude_client_set_connection_pool(prelude_client_t *client, prelude_connection_pool_t *pool) { prelude_return_if_fail(client); prelude_return_if_fail(pool); if ( client->cpool ) prelude_connection_pool_destroy(client->cpool); client->cpool = pool; } /** * prelude_client_set_heartbeat_cb: * @client: pointer to a #prelude_client_t object. * @cb: pointer to a function handling heartbeat sending. * * Use if you want to override the default function used to * automatically send heartbeat to @client peers. */ void prelude_client_set_heartbeat_cb(prelude_client_t *client, void (*cb)(prelude_client_t *client, idmef_message_t *hb)) { prelude_return_if_fail(client); prelude_return_if_fail(cb); client->heartbeat_cb = cb; } /** * prelude_client_destroy: * @client: Pointer on a client object. * @status: Exit status for the client. * * Destroy @client, and send an heartbeat containing the 'exiting' * status in case @status is PRELUDE_CLIENT_EXIT_STATUS_SUCCESS. * * This is useful for analyzer expected to be running periodically, * and that shouldn't be treated as behaving anormaly in case no * heartbeat is sent. * * Please note that your are not supposed to run this function * from a signal handler. */ void prelude_client_destroy(prelude_client_t *client, prelude_client_exit_status_t status) { prelude_return_if_fail(client); if ( --client->refcount ) return; prelude_timer_destroy(&client->heartbeat_timer); if ( client->status >= CLIENT_STATUS_STARTING && status == PRELUDE_CLIENT_EXIT_STATUS_SUCCESS && client->flags & PRELUDE_CLIENT_FLAGS_HEARTBEAT ) { client->status = CLIENT_STATUS_EXITING; heartbeat_expire_cb(client); } _prelude_client_destroy(client); } /** * prelude_client_set_flags: * @client: Pointer on a #prelude_client_t object. * @flags: Or'd list of flags used by @client. * * Set specific flags in the @client structure. * This function can be called anytime after the creation of the * @client object. * * When settings asynchronous flags such as #PRELUDE_CLIENT_FLAGS_ASYNC_SEND * or #PRELUDE_CLIENT_FLAGS_ASYNC_TIMER, be carefull to call * prelude_client_set_flags() in the same process you want to use the * asynchronous API from. Threads aren't copied accross fork(). * * Returns: 0 if setting @flags succeed, -1 otherwise. */ int prelude_client_set_flags(prelude_client_t *client, prelude_client_flags_t flags) { int ret = 0; prelude_return_val_if_fail(client, prelude_error(PRELUDE_ERROR_ASSERTION)); client->flags = flags; if ( flags & PRELUDE_CLIENT_FLAGS_ASYNC_TIMER ) { prelude_async_set_flags(PRELUDE_ASYNC_FLAGS_TIMER); ret = prelude_async_init(); } if ( flags & PRELUDE_CLIENT_FLAGS_ASYNC_SEND ) { prelude_msgbuf_set_flags(client->msgbuf, PRELUDE_MSGBUF_FLAGS_ASYNC); ret = prelude_async_init(); } if ( ! (flags & PRELUDE_CLIENT_FLAGS_AUTOCONFIG) ) prelude_client_set_config_filename(client, NULL); return ret; } /** * prelude_client_get_flags: * @client: Pointer on a #prelude_client_t object. * * Get flags set through prelude_client_set_flags(). * * Returns: an or'ed list of #prelude_client_flags_t. */ prelude_client_flags_t prelude_client_get_flags(prelude_client_t *client) { prelude_return_val_if_fail(client, prelude_error(PRELUDE_ERROR_ASSERTION)); return client->flags; } /** * prelude_client_get_required_permission: * @client: Pointer on a #prelude_client_t object. * * Returns: @client permission as set with prelude_client_set_required_permission() */ prelude_connection_permission_t prelude_client_get_required_permission(prelude_client_t *client) { prelude_return_val_if_fail(client, prelude_error(PRELUDE_ERROR_ASSERTION)); return client->permission; } /** * prelude_client_set_required_permission: * @client: Pointer on a #prelude_client_t object. * @permission: Required permission for @client. * * Set the required @permission for @client. * The default is #PRELUDE_CONNECTION_PERMISSION_IDMEF_WRITE | #PRELUDE_CONNECTION_PERMISSION_ADMIN_READ. * Value set through this function should be set before prelude_client_start(). * * If the client certificate for connecting to one of the specified manager doesn't have theses permission * the client will reject the certificate and ask for registration. */ void prelude_client_set_required_permission(prelude_client_t *client, prelude_connection_permission_t permission) { prelude_return_if_fail(client); if ( permission & PRELUDE_CONNECTION_PERMISSION_IDMEF_READ ) prelude_connection_pool_set_event_handler(client->cpool, 0, NULL); client->permission = permission; prelude_connection_pool_set_required_permission(client->cpool, permission); } /** * prelude_client_get_config_filename: * @client: pointer on a #prelude_client_t object. * * Return the filename where @client configuration is stored. * This filename is originally set by the prelude_client_new() function. * * Returns: a pointer to @client configuration filename. */ const char *prelude_client_get_config_filename(prelude_client_t *client) { prelude_return_val_if_fail(client, NULL); return client->config_filename; } /** * prelude_client_set_config_filename: * @client: pointer on a #prelude_client_t object. * @filename: Configuration file to use for this client. * * The default for a client is to use a template configuration file (idmef-client.conf). * By using this function you might override the default and provide your own * configuration file to use for @client. The format of the configuration file need * to be compatible with the Prelude format. * * Returns: 0 on success, -1 if an error occured. */ int prelude_client_set_config_filename(prelude_client_t *client, const char *filename) { prelude_return_val_if_fail(client, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( client->config_filename ) { free(client->config_filename); client->config_filename = NULL; } if ( ! filename ) client->flags &= ~PRELUDE_CLIENT_FLAGS_AUTOCONFIG; else { client->config_filename = strdup(filename); if ( ! client->config_filename ) return prelude_error_from_errno(errno); } client->config_external = TRUE; return 0; } prelude_ident_t *prelude_client_get_unique_ident(prelude_client_t *client) { prelude_return_val_if_fail(client, NULL); return client->unique_ident; } prelude_client_profile_t *prelude_client_get_profile(prelude_client_t *client) { prelude_return_val_if_fail(client, NULL); return client->profile; } #ifndef PRELUDE_DISABLE_DEPRECATED /** * prelude_client_is_setup_needed: * @error: Error returned by prelude_client_start(). * * This function should be called as a result of an error by * the prelude_client_start() function, to know if the analyzer * need to be registered. * * DEPRECATED: use standard error API. * * Returns: TRUE if setup is needed, FALSE otherwise. */ prelude_bool_t prelude_client_is_setup_needed(int error) { /* * Deprecated. */ return FALSE; } const char *prelude_client_get_setup_error(prelude_client_t *client) { int ret; prelude_string_t *out, *perm; prelude_return_val_if_fail(client, NULL); ret = prelude_string_new(&out); if ( ret < 0 ) return NULL; if ( client->flags & PRELUDE_CLIENT_FLAGS_CONNECT ) { ret = prelude_string_new(&perm); if ( ret < 0 ) { prelude_string_destroy(out); return NULL; } prelude_connection_permission_to_string(client->permission, perm); ret = prelude_string_sprintf(out, "\nProfile '%s' does not exist. In order to create it, please run:\n" "prelude-admin register \"%s\" \"%s\" --uid %d --gid %d", prelude_client_profile_get_name(client->profile), prelude_client_profile_get_name(client->profile), prelude_string_get_string(perm), (int) prelude_client_profile_get_uid(client->profile), (int) prelude_client_profile_get_gid(client->profile)); prelude_string_destroy(perm); } else { ret = prelude_string_sprintf(out, "\nProfile '%s' does not exist. In order to create it, please run:\n" "prelude-admin add \"%s\" --uid %d --gid %d", prelude_client_profile_get_name(client->profile), prelude_client_profile_get_name(client->profile), (int) prelude_client_profile_get_uid(client->profile), (int) prelude_client_profile_get_gid(client->profile)); } if ( ret < 0 ) return NULL; _prelude_thread_set_error(prelude_string_get_string(out)); prelude_string_destroy(out); return _prelude_thread_get_error(); } #endif void prelude_client_print_setup_error(prelude_client_t *client) { prelude_return_if_fail(client); prelude_log(PRELUDE_LOG_WARN, "%s\n\n", prelude_client_get_setup_error(client)); } int prelude_client_handle_msg_default(prelude_client_t *client, prelude_msg_t *msg, prelude_msgbuf_t *msgbuf) { int ret; uint8_t tag; prelude_return_val_if_fail(client, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(msg, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(msgbuf, prelude_error(PRELUDE_ERROR_ASSERTION)); tag = prelude_msg_get_tag(msg); if ( tag != PRELUDE_MSG_OPTION_REQUEST ) return 0; /* * lock, handle the request, send reply. */ gl_lock_lock(client->msgbuf_lock); ret = prelude_option_process_request(client, msg, msgbuf); prelude_msgbuf_mark_end(client->msgbuf); gl_lock_unlock(client->msgbuf_lock); return (ret < 0) ? ret : 1; } int prelude_client_new_msgbuf(prelude_client_t *client, prelude_msgbuf_t **msgbuf) { int ret; prelude_return_val_if_fail(client, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = prelude_msgbuf_new(msgbuf); if ( ret < 0 ) return ret; prelude_msgbuf_set_data(*msgbuf, client); prelude_msgbuf_set_callback(*msgbuf, client_write_cb); return 0; } libprelude-5.2.0/src/PaxHeaders.14770/prelude-client-profile.c0000644000000000000000000000010613726163410022155 xustar000000000000000022 mtime=1599661832.7 24 atime=1599661832.791 24 ctime=1599661999.804 libprelude-5.2.0/src/prelude-client-profile.c0000644000000000000000000005272413726163410021165 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include "relocatable.h" #include "glthread/lock.h" #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_CLIENT_PROFILE #include "prelude-error.h" #include "prelude-client-profile.h" #include "tls-auth.h" #include "common.h" #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ # define geteuid(x) (0) # define getegid(x) (0) #endif #define PRELUDE_PROFILE_DIR PRELUDE_CONFIG_DIR "/profile" #define PRELUDE_CONFIG_DEFAULT_DIR PRELUDE_CONFIG_DIR "/default" #define TLS_CONFIG PRELUDE_CONFIG_DEFAULT_DIR "/tls.conf" /* * directory where TLS private keys file are stored. */ #define TLS_KEY_DIR PRELUDE_CONFIG_DIR "/keys" /* * directory where TLS client certificate file are stored. */ #define TLS_CLIENT_CERT_DIR PRELUDE_CONFIG_DIR "/tls/client" /* * directory where TLS server certificate file are stored. */ #define TLS_SERVER_CERT_DIR PRELUDE_CONFIG_DIR "/tls/server" struct prelude_client_profile { int refcount; prelude_uid_t uid; prelude_gid_t gid; char *name; uint64_t analyzerid; gnutls_certificate_credentials_t credentials; }; extern char *_prelude_prefix; static char *user_prefix = NULL; static const char *relocated_prefix; static const char *relative_spool_dir = NULL; static const char *relative_config_default_dir = NULL; static const char *relative_profile_dir = NULL; static gl_lock_t lock = gl_lock_initializer; gl_once_define(static, relocate_once); static const char *get_relpath(const char *path) { return ( strstr(path, INSTALLPREFIX) ) ? path + sizeof(INSTALLPREFIX) : NULL; } static void _get_dir_once(void) { relocated_prefix = (_prelude_prefix) ? _prelude_prefix : relocate(INSTALLPREFIX); relative_spool_dir = get_relpath(PRELUDE_SPOOL_DIR); relative_profile_dir = get_relpath(PRELUDE_PROFILE_DIR); relative_config_default_dir = get_relpath(PRELUDE_CONFIG_DEFAULT_DIR); prelude_log_debug(2, "install prefix=%s", INSTALLPREFIX); prelude_log_debug(2, "relocated prefix=%s\n", relocated_prefix); prelude_log_debug(2, "relative spool=%s\n", relative_spool_dir ? relative_spool_dir : PRELUDE_SPOOL_DIR); prelude_log_debug(2, "relative config=%s\n", relative_config_default_dir ? relative_config_default_dir : PRELUDE_CONFIG_DEFAULT_DIR); prelude_log_debug(2, "relative profile=%s\n", relative_profile_dir ? relative_profile_dir : PRELUDE_PROFILE_DIR); } static const char *init_once_and_get_prefix(void) { gl_once(relocate_once, _get_dir_once); return (user_prefix) ? user_prefix : relocated_prefix; } static int get_profile_analyzerid(prelude_client_profile_t *cp) { int ret; FILE *fd; char *ptr, filename[256], buf[256]; prelude_client_profile_get_profile_dirname(cp, filename, sizeof(filename)); if ( access(filename, R_OK|X_OK) < 0 ) { if ( errno == ENOENT ) return prelude_error_verbose(PRELUDE_ERROR_PROFILE, "profile '%s' does not exist", cp->name); else if ( errno == EACCES ) return prelude_error_verbose(PRELUDE_ERROR_PROFILE, "could not open profile '%s': insufficient permission", cp->name); } prelude_client_profile_get_analyzerid_filename(cp, filename, sizeof(filename)); fd = fopen(filename, "r"); if ( ! fd ) return prelude_error_verbose(PRELUDE_ERROR_PROFILE, "could not open '%s' for reading", filename); ptr = fgets(buf, sizeof(buf), fd); fclose(fd); if ( ! ptr ) return prelude_error_verbose(PRELUDE_ERROR_PROFILE, "could not read analyzerID from '%s'", filename); ret = sscanf(buf, "%" PRELUDE_PRIu64, &cp->analyzerid); if ( ret != 1 ) return prelude_error_verbose(PRELUDE_ERROR_PROFILE, "'%s' is not a valid analyzerID", buf); return 0; } /** * prelude_client_profile_set_prefix: * @cp: pointer on a #prelude_client_profile_t object. * @prefix: Prefix to use for various libprelude files. * * This function allow to dynamically change the prefix used to acess * libprelude related file. This is particularly usefull in case of * application running under certain condition (chroot). * * Returns: 0 on success, a negative value if an error occured. */ int prelude_client_profile_set_prefix(prelude_client_profile_t *cp, const char *prefix) { char *n; n = strdup(prefix); gl_lock_lock(lock); if ( user_prefix ) free(user_prefix); user_prefix = n; gl_lock_unlock(lock); return (n) ? 0 : prelude_error_from_errno(errno); } /** * prelude_client_profile_get_prefix: * @cp: pointer on a #prelude_client_profile_t object. * @buf: buffer to write the returned filename to. * @size: size of @buf. * * Retrieve current prefix used with this profile. */ void prelude_client_profile_get_prefix(const prelude_client_profile_t *cp, char *buf, size_t size) { const char *prefix; prelude_return_if_fail(buf); gl_lock_lock(lock); prefix = init_once_and_get_prefix(); snprintf(buf, size, "%s", prefix); gl_lock_unlock(lock); } /** * prelude_client_profile_get_analyzerid_filename: * @cp: pointer on a #prelude_client_profile_t object. * @buf: buffer to write the returned filename to. * @size: size of @buf. * * Writes the filename used to store @cp unique and permanent analyzer ident. */ void prelude_client_profile_get_default_config_dirname(const prelude_client_profile_t *cp, char *buf, size_t size) { const char *prefix; prelude_return_if_fail(buf); gl_lock_lock(lock); prefix = init_once_and_get_prefix(); if ( ! relative_config_default_dir ) snprintf(buf, size, "%s", PRELUDE_CONFIG_DEFAULT_DIR); else snprintf(buf, size, "%s/%s", prefix, relative_config_default_dir); gl_lock_unlock(lock); } /** * prelude_client_profile_get_analyzerid_filename: * @cp: pointer on a #prelude_client_profile_t object. * @buf: buffer to write the returned filename to. * @size: size of @buf. * * Writes the filename used to store @cp unique and permanent analyzer ident. */ void prelude_client_profile_get_analyzerid_filename(const prelude_client_profile_t *cp, char *buf, size_t size) { const char *prefix; prelude_return_if_fail(cp); prelude_return_if_fail(buf); gl_lock_lock(lock); prefix = init_once_and_get_prefix(); if ( ! relative_profile_dir ) snprintf(buf, size, "%s/%s/analyzerid", PRELUDE_PROFILE_DIR, cp->name); else snprintf(buf, size, "%s/%s/%s/analyzerid", prefix, relative_profile_dir, cp->name); gl_lock_unlock(lock); } /** * prelude_client_profile_get_config_filename: * @cp: pointer on a #prelude_client_profile_t object. * @buf: buffer to write the returned filename to. * @size: size of @buf. * * Writes the filename used to store @cp configuration template. */ void prelude_client_profile_get_config_filename(const prelude_client_profile_t *cp, char *buf, size_t size) { const char *prefix; prelude_return_if_fail(cp); prelude_return_if_fail(buf); gl_lock_lock(lock); prefix = init_once_and_get_prefix(); if ( ! relative_profile_dir ) snprintf(buf, size, "%s/%s/config", PRELUDE_PROFILE_DIR, cp->name); else snprintf(buf, size, "%s/%s/%s/config", prefix, relative_profile_dir, cp->name); gl_lock_unlock(lock); } /** * prelude_client_profile_get_tls_key_filename: * @cp: pointer on a #prelude_client_profile_t object. * @buf: buffer to write the returned filename to. * @size: size of @buf. * * Writes the filename used to store @cp private key. */ void prelude_client_profile_get_tls_key_filename(const prelude_client_profile_t *cp, char *buf, size_t size) { const char *prefix; prelude_return_if_fail(cp); prelude_return_if_fail(buf); gl_lock_lock(lock); prefix = init_once_and_get_prefix(); if ( ! relative_profile_dir ) snprintf(buf, size, "%s/%s/key", PRELUDE_PROFILE_DIR, cp->name); else snprintf(buf, size, "%s/%s/%s/key", prefix, relative_profile_dir, cp->name); gl_lock_unlock(lock); } /** * prelude_client_profile_get_tls_server_ca_cert_filename: * @cp: pointer on a #prelude_client_profile_t object. * @buf: buffer to write the returned filename to. * @size: size of @buf. * * Writes the filename used to store @cp related CA certificate. * This only apply to @cp receiving connection from analyzer (server). */ void prelude_client_profile_get_tls_server_ca_cert_filename(const prelude_client_profile_t *cp, char *buf, size_t size) { const char *prefix; prelude_return_if_fail(cp); prelude_return_if_fail(buf); gl_lock_lock(lock); prefix = init_once_and_get_prefix(); if ( ! relative_profile_dir ) snprintf(buf, size, "%s/%s/server.ca", PRELUDE_PROFILE_DIR, cp->name); else snprintf(buf, size, "%s/%s/%s/server.ca", prefix, relative_profile_dir, cp->name); gl_lock_unlock(lock); } /** * prelude_client_profile_get_tls_server_keycert_filename: * @cp: pointer on a #prelude_client_profile_t object. * @buf: buffer to write the returned filename to. * @size: size of @buf. * * Writes the filename used to store certificate for @cp server. * This only apply to @cp receiving connection from analyzer (server). */ void prelude_client_profile_get_tls_server_keycert_filename(const prelude_client_profile_t *cp, char *buf, size_t size) { const char *prefix; prelude_return_if_fail(cp); prelude_return_if_fail(buf); gl_lock_lock(lock); prefix = init_once_and_get_prefix(); if ( ! relative_profile_dir ) snprintf(buf, size, "%s/%s/server.keycrt", PRELUDE_PROFILE_DIR, cp->name); else snprintf(buf, size, "%s/%s/%s/server.keycrt", prefix, relative_profile_dir, cp->name); gl_lock_unlock(lock); } /** * prelude_client_profile_get_tls_server_crl_filename: * @cp: pointer on a #prelude_client_profile_t object. * @buf: buffer to write the returned filename to. * @size: size of @buf. * * Writes the filename used to store CRL for @cp server. * This only apply to @cp receiving connection from analyzer (server). */ void prelude_client_profile_get_tls_server_crl_filename(const prelude_client_profile_t *cp, char *buf, size_t size) { const char *prefix; prelude_return_if_fail(cp); prelude_return_if_fail(buf); gl_lock_lock(lock); prefix = init_once_and_get_prefix(); if ( ! relative_profile_dir ) snprintf(buf, size, "%s/%s/server.crl", PRELUDE_PROFILE_DIR, cp->name); else snprintf(buf, size, "%s/%s/%s/server.crl", prefix, relative_profile_dir, cp->name); gl_lock_unlock(lock); } /** * prelude_client_profile_get_tls_client_trusted_cert_filename: * @cp: pointer on a #prelude_client_profile_t object. * @buf: buffer to write the returned filename to. * @size: size of @buf. * * Writes the filename used to store peers public certificates that @cp trust. * This only apply to client connecting to a peer. */ void prelude_client_profile_get_tls_client_trusted_cert_filename(const prelude_client_profile_t *cp, char *buf, size_t size) { const char *prefix; prelude_return_if_fail(cp); prelude_return_if_fail(buf); gl_lock_lock(lock); prefix = init_once_and_get_prefix(); if ( ! relative_profile_dir ) snprintf(buf, size, "%s/%s/client.trusted", PRELUDE_PROFILE_DIR, cp->name); else snprintf(buf, size, "%s/%s/%s/client.trusted", prefix, relative_profile_dir, cp->name); gl_lock_unlock(lock); } /** * prelude_client_profile_get_tls_client_keycert_filename: * @cp: pointer on a #prelude_client_profile_t object. * @buf: buffer to write the returned filename to. * @size: size of @buf. * * Writes the filename used to store public certificate for @cp private key. * This only apply to client connecting to a peer. */ void prelude_client_profile_get_tls_client_keycert_filename(const prelude_client_profile_t *cp, char *buf, size_t size) { const char *prefix; prelude_return_if_fail(cp); prelude_return_if_fail(buf); gl_lock_lock(lock); prefix = init_once_and_get_prefix(); if ( ! relative_profile_dir ) snprintf(buf, size, "%s/%s/client.keycrt", PRELUDE_PROFILE_DIR, cp->name); else snprintf(buf, size, "%s/%s/%s/client.keycrt", prefix, relative_profile_dir, cp->name); gl_lock_unlock(lock); } /** * prelude_client_profile_get_backup_dirname: * @cp: pointer on a #prelude_client_profile_t object. * @buf: buffer to write the returned filename to. * @size: size of @buf. * * Writes the directory name where message sent by @cp will be stored, * in case writing the message to the peer fail. */ void prelude_client_profile_get_backup_dirname(const prelude_client_profile_t *cp, char *buf, size_t size) { const char *prefix; prelude_return_if_fail(cp); prelude_return_if_fail(buf); gl_lock_lock(lock); prefix = init_once_and_get_prefix(); if ( ! relative_spool_dir ) snprintf(buf, size, "%s/%s", PRELUDE_SPOOL_DIR, cp->name); else snprintf(buf, size, "%s/%s/%s", prefix, relative_spool_dir, cp->name); gl_lock_unlock(lock); } /** * prelude_client_profile_get_backup_dirname: * @cp: pointer on a #prelude_client_profile_t object. * @buf: buffer to write the returned filename to. * @size: size of @buf. * * Writes the directory name where the profile for @cp is stored. If * @cp is NULL or has no name, then this function will provide the main * profile directory. */ void prelude_client_profile_get_profile_dirname(const prelude_client_profile_t *cp, char *buf, size_t size) { const char *prefix, *name_sep = "", *name = ""; prelude_return_if_fail(buf); if ( cp && cp->name ) { name_sep = "/"; name = cp->name; } gl_lock_lock(lock); prefix = init_once_and_get_prefix(); if ( ! relative_profile_dir ) snprintf(buf, size, "%s/%s%s", PRELUDE_PROFILE_DIR, name_sep, name); else snprintf(buf, size, "%s/%s%s%s", prefix, relative_profile_dir, name_sep, name); gl_lock_unlock(lock); } int _prelude_client_profile_new(prelude_client_profile_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->refcount = 1; (*ret)->uid = geteuid(); (*ret)->gid = getegid(); return 0; } int _prelude_client_profile_init(prelude_client_profile_t *cp) { int ret; prelude_return_val_if_fail(cp, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = get_profile_analyzerid(cp); if ( ret < 0 ) return ret; return 0; } /** * prelude_client_profile_new: * @ret: Pointer where to store the address of the created object. * @name: Name for this profile. * * Creates a new #prelude_client_profile_t object and store its * address into @ret. * * Returns: 0 on success or a negative value if an error occured. */ int prelude_client_profile_new(prelude_client_profile_t **ret, const char *name) { int retval; prelude_client_profile_t *cp; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = _prelude_client_profile_new(&cp); if ( retval < 0 ) return retval; cp->name = strdup(name); if ( ! cp->name ) { free(cp); return prelude_error_from_errno(errno); } retval = _prelude_client_profile_init(cp); if ( retval < 0 ) return retval; *ret = cp; return 0; } /** * prelude_client_profile_destroy: * @cp: Pointer to a #prelude_client_profile_t. * * Destroys @cp. */ void prelude_client_profile_destroy(prelude_client_profile_t *cp) { prelude_return_if_fail(cp); if ( --cp->refcount ) return; if ( cp->credentials ) gnutls_certificate_free_credentials(cp->credentials); if ( cp->name ) free(cp->name); free(cp); } /** * prelude_client_profile_get_uid: * @cp: Pointer to a #prelude_client_profile_t object. * * Gets the UID associated with @cp. * * Returns: the UID associated used by @cp. */ prelude_uid_t prelude_client_profile_get_uid(const prelude_client_profile_t *cp) { prelude_return_val_if_fail(cp, 0); return cp->uid; } /** * prelude_client_profile_set_uid: * @cp: Pointer to a #prelude_client_profile_t object. * @uid: UID to be used by @cp. * * Sets the UID used by @cp to @uid. */ void prelude_client_profile_set_uid(prelude_client_profile_t *cp, prelude_uid_t uid) { prelude_return_if_fail(cp); cp->uid = uid; } /** * prelude_client_profile_get_gid: * @cp: Pointer to a #prelude_client_profile_t object. * * Gets the GID associated with @cp. * * Returns: the GID associated used by @cp. */ prelude_gid_t prelude_client_profile_get_gid(const prelude_client_profile_t *cp) { prelude_return_val_if_fail(cp, 0); return cp->gid; } /** * prelude_client_profile_set_gid: * @cp: Pointer to a #prelude_client_profile_t object. * @gid: GID to be used by @cp. * * Sets the GID used by @cp to @gid. */ void prelude_client_profile_set_gid(prelude_client_profile_t *cp, prelude_gid_t gid) { prelude_return_if_fail(cp); cp->gid = gid; } /** * prelude_client_profile_set_analyzerid: * @cp: Pointer to a #prelude_client_profile_t object. * @analyzerid: Analyzer ID to be used by @cp. * * Sets the Analyzer ID used by @cp to @analyzerid. */ void prelude_client_profile_set_analyzerid(prelude_client_profile_t *cp, uint64_t analyzerid) { prelude_return_if_fail(cp); cp->analyzerid = analyzerid; } /** * prelude_client_profile_get_analyzerid: * @cp: Pointer to a #prelude_client_profile_t object. * * Gets the unique and permanent analyzer ident associated with @cp. * * Returns: the analyzer ident used by @cp. */ uint64_t prelude_client_profile_get_analyzerid(const prelude_client_profile_t *cp) { prelude_return_val_if_fail(cp, 0); return cp->analyzerid; } /** * prelude_client_profile_get_name: * @cp: Pointer to a #prelude_client_profile_t object. * * Gets the name of @cp client profile. * * Returns: the name used by @cp. */ const char *prelude_client_profile_get_name(const prelude_client_profile_t *cp) { prelude_return_val_if_fail(cp, NULL); return cp->name; } /** * prelude_client_profile_set_name: * @cp: Pointer to a #prelude_client_profile_t object. * @name: Name to associate the profile with. * * Sets the prelude client profile name. * * Returns: 0 on success or a negative value if an error occured. */ int prelude_client_profile_set_name(prelude_client_profile_t *cp, const char *name) { prelude_return_val_if_fail(cp, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( cp->name ) free(cp->name); cp->name = strdup(name); if ( ! cp->name ) return prelude_error_from_errno(errno); return 0; } /** * prelude_client_profile_get_crendentials: * @cp: Pointer to a #prelude_client_profile_t object. * @credentials: The GNU TLS certificate credentials retrieved. * * Gets the prelude client profile credentials * * Returns: 0 on success or a negative value if an error occured. */ int prelude_client_profile_get_credentials(prelude_client_profile_t *cp, void **credentials) { int ret; prelude_return_val_if_fail(cp, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( cp->credentials ) { *credentials = cp->credentials; return 0; } ret = tls_auth_init(cp, &cp->credentials); if ( ret < 0 ) return ret; *credentials = cp->credentials; return 0; } prelude_client_profile_t *prelude_client_profile_ref(prelude_client_profile_t *cp) { prelude_return_val_if_fail(cp, NULL); cp->refcount++; return cp; } libprelude-5.2.0/src/PaxHeaders.14770/prelude-connection.c0000644000000000000000000000011013726163410021373 xustar000000000000000024 mtime=1599661832.701 24 atime=1599661832.792 24 ctime=1599661999.806 libprelude-5.2.0/src/prelude-connection.c0000644000000000000000000007314713726163410020412 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_SYS_UN_H # include #endif #ifdef HAVE_SYS_IOCTL_H # include #endif #ifdef HAVE_NETINET_TCP_H # include /* TCP keepalive stuff */ #endif #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_CONNECTION #include "prelude-error.h" #include "common.h" #include "prelude-inttypes.h" #include "prelude-client.h" #include "prelude-log.h" #include "prelude-io.h" #include "prelude-msg.h" #include "prelude-message-id.h" #include "prelude-client.h" #include "prelude-option.h" #include "prelude-list.h" #include "prelude-linked-object.h" #include "tls-auth.h" #define PRELUDE_CONNECTION_OWN_FD 0x02 /* * Default port to connect to. */ #define DEFAULT_PORT 4690 /* * Path to the default Unix socket. */ #define UNIX_SOCKET "/tmp/.prelude-unix" /* * FIXME: we need a high level configuration object allowing * to fetch per-client settings easily. */ int _prelude_connection_keepalive_time = 0; int _prelude_connection_keepalive_probes = 0; int _prelude_connection_keepalive_intvl = 0; struct prelude_connection { PRELUDE_LINKED_OBJECT; int refcount; char *saddr; unsigned int sport; char *daddr; unsigned int dport; socklen_t salen; struct sockaddr *sa; prelude_io_t *fd; uint64_t peer_analyzerid; prelude_connection_permission_t permission; void *data; prelude_msg_t *msg; prelude_connection_state_t state; }; static int connection_write_msgbuf(prelude_msgbuf_t *msgbuf, prelude_msg_t *msg) { return prelude_connection_send(prelude_msgbuf_get_data(msgbuf), msg); } static int auth_error(prelude_connection_t *cnx, prelude_connection_permission_t reqperms, prelude_client_profile_t *cp, prelude_error_t error, const char *fmt, ...) { int ret; va_list ap; char *tmp, buf[1024]; prelude_string_t *out; prelude_string_new(&out); prelude_connection_permission_to_string(reqperms, out); tmp = strrchr(cnx->daddr, ':'); if ( tmp ) *tmp = '\0'; va_start(ap, fmt); vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); ret = prelude_error_verbose_make(prelude_error_get_source(error), prelude_error_get_code(error), "%s.\n\n" "In order to register this sensor, please run:\n" "prelude-admin register %s \"%s\" %s --uid %d --gid %d", buf, prelude_client_profile_get_name(cp), prelude_string_get_string(out), (cnx->sa->sa_family == AF_UNIX) ? "" : cnx->daddr, (int) prelude_client_profile_get_uid(cp), (int) prelude_client_profile_get_gid(cp)); prelude_string_destroy(out); if ( tmp ) *tmp = ':'; return ret; } /* * Check if the tcp connection has been closed by peer * i.e if peer has sent a FIN tcp segment. * * It is important to call this function before writing on * a tcp socket, otherwise the write will succeed despite * the remote socket has been closed and next write will lead * to a broken pipe */ static int is_tcp_connection_still_established(prelude_io_t *pio) { int pending, ret; struct pollfd pfd; pfd.events = POLLIN; pfd.fd = prelude_io_get_fd(pio); ret = poll(&pfd, 1, 0); if ( ret < 0 ) return prelude_error_from_errno(errno); if ( ret == 0 ) return 0; if ( pfd.revents & POLLERR || pfd.revents & POLLHUP ) return prelude_error_from_errno(EPIPE); if ( ! (pfd.revents & POLLIN) ) return 0; /* * Get the number of bytes to read */ pending = prelude_io_pending(pio); if ( pending <= 0 ) return prelude_error_from_errno(EPIPE); return 0; } static void set_single_socket_option(int sock, const char *name, int level, int option, int value) { int ret; if ( ! value ) return; if ( option < 0 ) { prelude_log(PRELUDE_LOG_ERR, "'%s' socket option is unavailable on this system.\n", name); return; } ret = setsockopt(sock, level, option, (void *) &value, sizeof(value)); if ( ret < 0 ) prelude_log(PRELUDE_LOG_ERR, "could not set '%s' socket option: %s.\n", name, strerror(errno)); } static void set_inet_socket_option(int sock, struct sockaddr *sa) { # ifdef TCP_KEEPIDLE set_single_socket_option(sock, "tcp-keepalive-time", IPPROTO_TCP, TCP_KEEPIDLE, _prelude_connection_keepalive_time); # else set_single_socket_option(sock, "tcp-keepalive-time", IPPROTO_TCP, -1, _prelude_connection_keepalive_time); # endif # ifdef TCP_KEEPINTVL set_single_socket_option(sock, "tcp-keepalive-intvl", IPPROTO_TCP, TCP_KEEPINTVL, _prelude_connection_keepalive_intvl); # else set_single_socket_option(sock, "tcp-keepalive-intvl", IPPROTO_TCP, -1, _prelude_connection_keepalive_intvl); # endif # ifdef TCP_KEEPCNT set_single_socket_option(sock, "tcp-keepalive-probes", IPPROTO_TCP, TCP_KEEPCNT, _prelude_connection_keepalive_probes); # else set_single_socket_option(sock, "tcp-keepalive-probes", IPPROTO_TCP, -1, _prelude_connection_keepalive_probes); # endif } /* * Connect to the specified address in a generic manner * (can be Unix or Inet ). */ static int generic_connect(struct sockaddr *sa, socklen_t salen) { int ret, sock; sock = socket(sa->sa_family, SOCK_STREAM, 0); if ( sock < 0 ) return prelude_error_from_errno(errno); #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) fcntl(sock, F_SETFD, fcntl(sock, F_GETFD) | FD_CLOEXEC); ret = fcntl(sock, F_SETOWN, getpid()); if ( ret < 0 ) { close(sock); return prelude_error_from_errno(errno); } #endif set_single_socket_option(sock, "SO_KEEPALIVE", SOL_SOCKET, SO_KEEPALIVE, 1); if ( sa->sa_family != AF_UNIX ) set_inet_socket_option(sock, sa); ret = connect(sock, sa, salen); if ( ret < 0 ) { close(sock); return prelude_error_from_errno(errno); } return sock; } static int handle_authentication(prelude_connection_t *cnx, prelude_connection_permission_t reqperms, prelude_client_profile_t *cp, int crypt) { int ret; prelude_string_t *gbuf, *wbuf; ret = tls_auth_connection(cp, cnx->fd, crypt, &cnx->peer_analyzerid, &cnx->permission); if ( ret < 0 ) return auth_error(cnx, reqperms, cp, ret, "%s", prelude_strerror(ret)); if ( (cnx->permission & reqperms) != reqperms ) { ret = prelude_string_new(&gbuf); if ( ret < 0 ) goto err; ret = prelude_string_new(&wbuf); if ( ret < 0 ) { prelude_string_destroy(gbuf); goto err; } prelude_connection_permission_to_string(cnx->permission, gbuf); prelude_connection_permission_to_string(reqperms, wbuf); ret = auth_error(cnx, reqperms, cp, prelude_error(PRELUDE_ERROR_PROFILE), "Insufficient credentials: got '%s' but at least '%s' required", prelude_string_get_string(gbuf), prelude_string_get_string(wbuf)); prelude_string_destroy(gbuf); prelude_string_destroy(wbuf); err: return ret; } prelude_log(PRELUDE_LOG_INFO, "TLS authentication succeed with Prelude Manager.\n"); return 0; } static int start_inet_connection(prelude_connection_t *cnx, prelude_connection_permission_t reqperms, prelude_client_profile_t *profile) { socklen_t len; int sock, ret, tmp; union { struct sockaddr sa; #ifdef HAVE_IPV6 struct sockaddr_in6 addr; # define ADDR_PORT(x) (x).sin6_port #else struct sockaddr_in addr; # define ADDR_PORT(x) (x).sin_port #endif } addr; sock = generic_connect(cnx->sa, cnx->salen); if ( sock < 0 ) return sock; prelude_io_set_sys_io(cnx->fd, sock); ret = handle_authentication(cnx, reqperms, profile, 1); if ( ret < 0 ) { do { tmp = prelude_io_close(cnx->fd); } while ( tmp < 0 && ! prelude_io_is_error_fatal(cnx->fd, tmp) ); return ret; } /* * Get information about the connection, * because the sensor might want to know source addr/port used. */ len = sizeof(addr.addr); ret = getsockname(sock, &addr.sa, &len); if ( ret < 0 ) ret = prelude_error_verbose(PRELUDE_ERROR_SYSTEM_ERROR, "getsockname failed: %s", strerror(errno)); else { char buf[512]; if ( inet_ntop(addr.sa.sa_family, prelude_sockaddr_get_inaddr(&addr.sa), buf, sizeof(buf)) ) cnx->saddr = strdup(buf); else cnx->saddr = NULL; cnx->sport = ntohs(ADDR_PORT(addr.addr)); } return ret; } #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) static int start_unix_connection(prelude_connection_t *cnx, prelude_connection_permission_t reqperms, prelude_client_profile_t *profile) { int ret, sock, tmp; sock = generic_connect(cnx->sa, cnx->salen); if ( sock < 0 ) return sock; prelude_io_set_sys_io(cnx->fd, sock); ret = handle_authentication(cnx, reqperms, profile, 0); if ( ret < 0 ) do { tmp = prelude_io_close(cnx->fd); } while ( tmp < 0 && ! prelude_io_is_error_fatal(cnx->fd, tmp) ); return ret; } #endif static int do_connect(prelude_connection_t *cnx, prelude_connection_permission_t reqperms, prelude_client_profile_t *profile) { int ret = 0; if ( cnx->sa->sa_family != AF_UNIX ) { prelude_log(PRELUDE_LOG_INFO, "Connecting to %s prelude Manager server.\n", cnx->daddr); ret = start_inet_connection(cnx, reqperms, profile); } #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) else { prelude_log(PRELUDE_LOG_INFO, "Connecting to %s (UNIX) prelude Manager server.\n", ((struct sockaddr_un *) cnx->sa)->sun_path); ret = start_unix_connection(cnx, reqperms, profile); } #endif return ret; } static int close_connection_fd(prelude_connection_t *cnx) { int ret; if ( ! (cnx->state & PRELUDE_CONNECTION_STATE_ESTABLISHED) ) return -1; ret = prelude_io_close(cnx->fd); if ( ret >= 0 || prelude_io_is_error_fatal(cnx->fd, ret) ) { if ( cnx->saddr ) { free(cnx->saddr); cnx->saddr = NULL; } cnx->state &= ~PRELUDE_CONNECTION_STATE_ESTABLISHED; } return ret; } static int close_connection_fd_block(prelude_connection_t *cnx) { int ret; if ( ! (cnx->state & PRELUDE_CONNECTION_STATE_ESTABLISHED) ) return -1; do { ret = close_connection_fd(cnx); } while ( ret < 0 && ! prelude_io_is_error_fatal(cnx->fd, ret) ); return ret; } static void destroy_connection_fd(prelude_connection_t *cnx) { close_connection_fd_block(cnx); if ( cnx->state & PRELUDE_CONNECTION_OWN_FD ) prelude_io_destroy(cnx->fd); } static prelude_bool_t is_unix_addr(prelude_connection_t *cnx, const char *addr) { int ret; const char *ptr; ret = strncmp(addr, "unix", 4); if ( ret != 0 ) return FALSE; ptr = strchr(addr, ':'); if ( ptr && *(ptr + 1) ) cnx->daddr = strdup(ptr + 1); else cnx->daddr = strdup(UNIX_SOCKET); return TRUE; } static int do_getaddrinfo(prelude_connection_t *cnx, struct addrinfo **ai, const char *addr_string) { int ret; struct addrinfo hints; char buf[1024], *addr; unsigned int port = DEFAULT_PORT; ret = prelude_parse_address(addr_string, &addr, &port); if ( ret < 0 ) return ret; memset(&hints, 0, sizeof(hints)); snprintf(buf, sizeof(buf), "%u", port); #ifdef AI_ADDRCONFIG hints.ai_flags = AI_ADDRCONFIG; #endif hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; ret = getaddrinfo(addr, buf, &hints, ai); if ( ret != 0 ) { ret = prelude_error_verbose(PRELUDE_ERROR_CANT_RESOLVE, "could not resolve '%s': %s", addr, (ret == EAI_SYSTEM) ? strerror(errno) : gai_strerror(ret)); free(addr); return ret; } snprintf(buf, sizeof(buf), "%s:%d", addr, port); free(addr); cnx->daddr = strdup(buf); return 0; } static int resolve_addr(prelude_connection_t *cnx, const char *addr) { struct addrinfo *ai = NULL; int ret, ai_family, ai_addrlen; #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) struct sockaddr_un *un; #endif if ( is_unix_addr(cnx, addr) ) { #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "UNIX socket are not supported under this environment"); #else ai_family = AF_UNIX; ai_addrlen = sizeof(*un); #endif } else { ret = do_getaddrinfo(cnx, &ai, addr); if ( ret < 0 ) return ret; ai_family = ai->ai_family; ai_addrlen = ai->ai_addrlen; } cnx->sa = malloc(ai_addrlen); if ( ! cnx->sa ) { if ( ai ) freeaddrinfo(ai); return prelude_error_from_errno(errno); } cnx->salen = ai_addrlen; cnx->sa->sa_family = ai_family; if ( ai_family != AF_UNIX ) { memcpy(cnx->sa, ai->ai_addr, ai->ai_addrlen); freeaddrinfo(ai); } #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) else { un = (struct sockaddr_un *) cnx->sa; strncpy(un->sun_path, cnx->daddr, sizeof(un->sun_path)); } #endif return 0; } /** * prelude_connection_destroy: * @conn: Pointer to a #prelude_connection_t object. * * Destroy the connection referenced by @conn. * * In case the connection is still alive, it is closed in a blocking * manner. Use prelude_connection_close() if you want to close the * connection in a non blocking manner prior prelude_connection_destroy(). */ void prelude_connection_destroy(prelude_connection_t *conn) { prelude_return_if_fail(conn); if ( --conn->refcount > 0 ) return; destroy_connection_fd(conn); free(conn->daddr); free(conn->sa); free(conn); } int prelude_connection_new(prelude_connection_t **out, const char *addr) { int ret; prelude_connection_t *new; prelude_return_val_if_fail(addr, prelude_error(PRELUDE_ERROR_ASSERTION)); #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) signal(SIGPIPE, SIG_IGN); #endif new = calloc(1, sizeof(*new)); if ( ! new ) return prelude_error_from_errno(errno); new->refcount = 1; ret = prelude_io_new(&new->fd); if ( ret < 0 ) { free(new); return ret; } if ( addr ) { ret = resolve_addr(new, addr); if ( ret < 0 ) { prelude_io_destroy(new->fd); free(new); return ret; } } new->state = PRELUDE_CONNECTION_OWN_FD; *out = new; return 0; } void prelude_connection_set_fd_ref(prelude_connection_t *cnx, prelude_io_t *fd) { prelude_return_if_fail(cnx); prelude_return_if_fail(fd); destroy_connection_fd(cnx); cnx->fd = fd; cnx->state &= ~PRELUDE_CONNECTION_OWN_FD; } void prelude_connection_set_fd_nodup(prelude_connection_t *cnx, prelude_io_t *fd) { prelude_return_if_fail(cnx); prelude_return_if_fail(fd); destroy_connection_fd(cnx); cnx->fd = fd; cnx->state |= PRELUDE_CONNECTION_OWN_FD; } int prelude_connection_connect(prelude_connection_t *conn, prelude_client_profile_t *profile, prelude_connection_permission_t permission) { int ret; prelude_msg_t *msg; prelude_return_val_if_fail(conn, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(profile, prelude_error(PRELUDE_ERROR_ASSERTION)); close_connection_fd_block(conn); ret = do_connect(conn, permission, profile); if ( ret < 0 ) return ret; ret = prelude_msg_new(&msg, 1, sizeof(uint8_t), PRELUDE_MSG_CONNECTION_CAPABILITY, 0); if ( ret < 0 ) goto err; prelude_msg_set(msg, permission, 0, NULL); ret = prelude_msg_write(msg, conn->fd); prelude_msg_destroy(msg); if ( ret < 0 ) goto err; conn->state |= PRELUDE_CONNECTION_STATE_ESTABLISHED; return ret; err: close_connection_fd_block(conn); return ret; } int prelude_connection_close(prelude_connection_t *cnx) { prelude_return_val_if_fail(cnx, prelude_error(PRELUDE_ERROR_ASSERTION)); return close_connection_fd(cnx); } int prelude_connection_send(prelude_connection_t *cnx, prelude_msg_t *msg) { ssize_t ret; prelude_return_val_if_fail(cnx, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(msg, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! (cnx->state & PRELUDE_CONNECTION_STATE_ESTABLISHED) ) return -1; ret = prelude_msg_write(msg, cnx->fd); if ( ret < 0 ) return ret; ret = is_tcp_connection_still_established(cnx->fd); if ( ret < 0 ) return ret; return ret; } int prelude_connection_recv(prelude_connection_t *cnx, prelude_msg_t **msg) { int ret; uint8_t tag; prelude_return_val_if_fail(cnx, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! (cnx->state & PRELUDE_CONNECTION_STATE_ESTABLISHED) ) return -1; ret = prelude_msg_read(msg, cnx->fd); if ( ret < 0 ) return ret; tag = prelude_msg_get_tag(*msg); if ( tag == PRELUDE_MSG_IDMEF && !(cnx->permission & PRELUDE_CONNECTION_PERMISSION_IDMEF_READ) ) return prelude_error_verbose(PRELUDE_ERROR_PROFILE, "Insufficient credentials for receiving IDMEF message"); if ( tag == PRELUDE_MSG_OPTION_REQUEST && !(cnx->permission & PRELUDE_CONNECTION_PERMISSION_ADMIN_READ) ) return prelude_error_verbose(PRELUDE_ERROR_PROFILE, "Insufficient credentials for receiving administrative message"); return ret; } int prelude_connection_recv_idmef(prelude_connection_t *con, idmef_message_t **idmef) { int ret; ret = prelude_connection_recv(con, &con->msg); if ( ret < 0 ) { if ( prelude_error_get_code(ret) != PRELUDE_ERROR_EAGAIN ) con->msg = NULL; return ret; } if ( prelude_msg_get_tag(con->msg) != PRELUDE_MSG_IDMEF ) { prelude_msg_destroy(con->msg); con->msg = NULL; return prelude_error_from_errno(EINVAL); } ret = idmef_message_new(idmef); if ( ret < 0 ) { prelude_msg_destroy(con->msg); con->msg = NULL; return ret; } ret = idmef_message_read(*idmef, con->msg); if ( ret < 0 ) { idmef_message_destroy(*idmef); prelude_msg_destroy(con->msg); con->msg = NULL; return ret; } idmef_message_set_pmsg(*idmef, con->msg); con->msg = NULL; return ret; } /** * prelude_connection_get_fd: * @cnx: Pointer to a #prelude_connection_t object. * * Returns: A pointer to the #prelude_io_t object used for * communicating with the peer. */ prelude_io_t *prelude_connection_get_fd(prelude_connection_t *cnx) { prelude_return_val_if_fail(cnx, NULL); return cnx->fd; } /** * prelude_connection_get_local_addr: * @cnx: Pointer to a #prelude_connection_t object. * * Returns: the local address used to connect. */ const char *prelude_connection_get_local_addr(prelude_connection_t *cnx) { prelude_return_val_if_fail(cnx, NULL); return cnx->saddr; } /** * prelude_connection_get_local_port: * @cnx: Pointer to a #prelude_connection_t object. * * Returns: the local port used to connect. */ unsigned int prelude_connection_get_local_port(prelude_connection_t *cnx) { prelude_return_val_if_fail(cnx, 0); return cnx->sport; } /** * prelude_connection_is_alive: * @cnx: Pointer to a #prelude_connection_t object. * * Returns: 0 if the connection associated with @cnx is alive, -1 otherwise. */ prelude_bool_t prelude_connection_is_alive(prelude_connection_t *cnx) { prelude_return_val_if_fail(cnx, FALSE); return (cnx->state & PRELUDE_CONNECTION_STATE_ESTABLISHED) ? TRUE : FALSE; } void prelude_connection_set_state(prelude_connection_t *cnx, prelude_connection_state_t state) { prelude_return_if_fail(cnx); cnx->state = state; } prelude_connection_state_t prelude_connection_get_state(prelude_connection_t *cnx) { prelude_return_val_if_fail(cnx, prelude_error(PRELUDE_ERROR_ASSERTION)); return cnx->state; } ssize_t prelude_connection_forward(prelude_connection_t *cnx, prelude_io_t *src, size_t count) { ssize_t ret; prelude_return_val_if_fail(cnx, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! (cnx->state & PRELUDE_CONNECTION_STATE_ESTABLISHED) ) return -1; ret = prelude_io_forward(cnx->fd, src, count); if ( ret < 0 ) return ret; ret = is_tcp_connection_still_established(cnx->fd); if ( ret < 0 ) return ret; return 0; } const char *prelude_connection_get_default_socket_filename(void) { return UNIX_SOCKET; } unsigned int prelude_connection_get_peer_port(prelude_connection_t *cnx) { prelude_return_val_if_fail(cnx, 0); return cnx->dport; } const char *prelude_connection_get_peer_addr(prelude_connection_t *cnx) { prelude_return_val_if_fail(cnx, NULL); return cnx->daddr; } uint64_t prelude_connection_get_peer_analyzerid(prelude_connection_t *cnx) { prelude_return_val_if_fail(cnx, 0); return cnx->peer_analyzerid; } void prelude_connection_set_peer_analyzerid(prelude_connection_t *cnx, uint64_t analyzerid) { prelude_return_if_fail(cnx); cnx->peer_analyzerid = analyzerid; } int prelude_connection_new_msgbuf(prelude_connection_t *connection, prelude_msgbuf_t **msgbuf) { int ret; prelude_return_val_if_fail(connection, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = prelude_msgbuf_new(msgbuf); if ( ret < 0 ) return ret; prelude_msgbuf_set_data(*msgbuf, connection); prelude_msgbuf_set_callback(*msgbuf, connection_write_msgbuf); return 0; } void prelude_connection_set_data(prelude_connection_t *conn, void *data) { prelude_return_if_fail(conn); conn->data = data; } void *prelude_connection_get_data(prelude_connection_t *conn) { prelude_return_val_if_fail(conn, NULL); return conn->data; } int prelude_connection_permission_new_from_string(prelude_connection_permission_t *out, const char *permission) { int i, c; const char *tptr; char buf[1024], *tmp; const struct { const char *name; prelude_connection_permission_t val_read; prelude_connection_permission_t val_write; } tbl[] = { { "idmef", PRELUDE_CONNECTION_PERMISSION_IDMEF_READ, PRELUDE_CONNECTION_PERMISSION_IDMEF_WRITE }, { "admin", PRELUDE_CONNECTION_PERMISSION_ADMIN_READ, PRELUDE_CONNECTION_PERMISSION_ADMIN_WRITE }, { NULL, 0, 0 }, }; prelude_return_val_if_fail(out, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(permission, prelude_error(PRELUDE_ERROR_ASSERTION)); *out = 0; strncpy(buf, permission, sizeof(buf)); tmp = buf; while ( (tptr = strsep(&tmp, ":")) ) { if ( ! tmp ) continue; while ( *tptr == ' ' ) tptr++; if ( ! *tptr ) continue; for ( i = 0; tbl[i].name; i++ ) { if ( strcmp(tbl[i].name, tptr) != 0 ) continue; break; } if ( ! tbl[i].name ) return prelude_error_verbose(PRELUDE_ERROR_UNKNOWN_PERMISSION_TYPE, "unknown permission type '%s'", tptr); while ( *tmp == ' ' ) tmp++; while ( (c = *tmp++) ) { if ( c == 'r' ) *out |= tbl[i].val_read; else if ( c == 'w' ) *out |= tbl[i].val_write; else if ( c == ' ' ) break; else return prelude_error_verbose(PRELUDE_ERROR_UNKNOWN_PERMISSION_BIT, "unknown permission bit: '%c'", c); } } return 0; } int prelude_connection_permission_to_string(prelude_connection_permission_t permission, prelude_string_t *out) { size_t i; int ret = 0; const struct { const char *name; prelude_connection_permission_t val_read; prelude_connection_permission_t val_write; } tbl[] = { { "idmef", PRELUDE_CONNECTION_PERMISSION_IDMEF_READ, PRELUDE_CONNECTION_PERMISSION_IDMEF_WRITE }, { "admin", PRELUDE_CONNECTION_PERMISSION_ADMIN_READ, PRELUDE_CONNECTION_PERMISSION_ADMIN_WRITE }, }; prelude_return_val_if_fail(out, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < (sizeof(tbl) / sizeof(*tbl)); i++ ) { if ( ! (permission & (tbl[i].val_read|tbl[i].val_write)) ) continue; ret = prelude_string_sprintf(out, "%s%s:", (! prelude_string_is_empty(out)) ? " " : "", tbl[i].name); if ( ret < 0 ) return ret; if ( (permission & tbl[i].val_read) == tbl[i].val_read ) prelude_string_cat(out, "r"); if ( (permission & tbl[i].val_write) == tbl[i].val_write ) prelude_string_cat(out, "w"); } return 0; } prelude_connection_permission_t prelude_connection_get_permission(prelude_connection_t *conn) { prelude_return_val_if_fail(conn, 0); return conn->permission; } /** * prelude_connection_ref: * @conn: Pointer to a #prelude_connection_t object to reference. * * Increases @conn reference count. * * prelude_connection_destroy() will decrease the refcount until it * reaches 0, at which point @conn will be destroyed. * * Returns: @conn. */ prelude_connection_t *prelude_connection_ref(prelude_connection_t *conn) { prelude_return_val_if_fail(conn, NULL); conn->refcount++; return conn; } libprelude-5.2.0/src/PaxHeaders.14770/prelude-connection-pool.c0000644000000000000000000000011013726163410022342 xustar000000000000000024 mtime=1599661832.701 24 atime=1599661832.792 24 ctime=1599661999.807 libprelude-5.2.0/src/prelude-connection-pool.c0000644000000000000000000013350613726163410021355 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #include #include #include #include "glthread/lock.h" #include "common.h" #include "prelude-timer.h" #include "prelude-log.h" #include "prelude-message-id.h" #include "prelude-async.h" #include "prelude-client.h" #include "prelude-option.h" #include "prelude-option-wide.h" #include "prelude-failover.h" #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ # undef FD_SETSIZE # define FD_SETSIZE 1024 #endif #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_CONNECTION_POOL #include "prelude-error.h" #define INITIAL_EXPIRATION_TIME 10 #define MAXIMUM_EXPIRATION_TIME 3600 /* * This list is in fact a boolean AND of client. * When emitting a message, if one of the connection in this * list fail, we'll have to consider a OR (if available), or backup * our message for later emission. */ typedef struct cnx_list { struct cnx *and; struct cnx_list *or; /* * If dead is non zero, * it means one of the client in the list is down. */ unsigned int dead; unsigned int total; prelude_connection_pool_t *parent; } cnx_list_t; typedef struct cnx { struct cnx *and; /* * Timer for client reconnection. */ prelude_timer_t timer; prelude_failover_t *failover; /* * Pointer on a client object. */ prelude_connection_t *cnx; /* * Pointer to the message being read. */ prelude_msg_t *msg; /* * Pointer to the parent of this client. */ cnx_list_t *parent; } cnx_t; struct prelude_connection_pool { gl_recursive_lock_t mutex; cnx_list_t *or_list; prelude_bool_t initialized; prelude_failover_t *failover; int nfd; fd_set fds; int refcount; char *connection_string; prelude_connection_permission_t permission; prelude_client_profile_t *client_profile; prelude_connection_pool_flags_t flags; prelude_bool_t connection_string_changed; prelude_timer_t timer; prelude_list_t all_cnx; void *data; prelude_connection_pool_event_t global_wanted_event; int (*global_event_handler)(prelude_connection_pool_t *pool, prelude_connection_pool_event_t event); prelude_connection_pool_event_t wanted_event; int (*event_handler)(prelude_connection_pool_t *pool, prelude_connection_pool_event_t event, prelude_connection_t *connection); }; static void set_state_dead(cnx_t *cnx, prelude_error_t error, prelude_bool_t init_time, prelude_bool_t global_notice); static int do_send(prelude_connection_t *conn, prelude_msg_t *msg) { int ret; /* * handle EAGAIN in case the caller use non blocking IO. */ do { ret = prelude_connection_send(conn, msg); } while ( ret < 0 && prelude_error_get_code(ret) == PRELUDE_ERROR_EAGAIN ); return ret; } static int global_event_handler(prelude_connection_pool_t *pool, int event) { int ret = 0; if ( event & pool->global_wanted_event && pool->global_event_handler ) ret = pool->global_event_handler(pool, event); return ret; } static int event_handler(prelude_connection_pool_t *pool, int event, prelude_connection_t *con) { int ret = 0; if ( event & pool->wanted_event && pool->event_handler ) ret = pool->event_handler(pool, event, con); return ret; } static int check_connection_event(prelude_connection_pool_t *pool, cnx_t *cnx, prelude_connection_pool_event_t *global_event, int (*event_cb)(prelude_connection_pool_t *pool, prelude_connection_pool_event_t event, prelude_connection_t *cnx, void *extra), void *extra, prelude_connection_t **conn, prelude_msg_t **outmsg) { int ret = 0; if ( conn ) { *conn = cnx->cnx; if ( ! outmsg ) return 1; ret = prelude_connection_recv(cnx->cnx, &cnx->msg); if ( ret < 0 ) { if ( prelude_error_get_code(ret) != PRELUDE_ERROR_EAGAIN ) { if ( cnx->msg ) { prelude_msg_destroy(cnx->msg); cnx->msg = NULL; } goto error; } return 0; } *outmsg = cnx->msg; cnx->msg = NULL; return 1; } else if ( event_cb ) ret = event_cb(pool, PRELUDE_CONNECTION_POOL_EVENT_INPUT, cnx->cnx, extra); else ret = event_handler(pool, PRELUDE_CONNECTION_POOL_EVENT_INPUT, cnx->cnx); if ( ret < 0 || ! prelude_connection_is_alive(cnx->cnx) ) goto error; return 0; error: *global_event |= PRELUDE_CONNECTION_POOL_EVENT_DEAD; set_state_dead(cnx, ret, FALSE, FALSE); return ret; } static int timeval_subtract(struct timeval *x, struct timeval *y) { int nsec; /* Perform the carry for the later subtraction by updating y. */ if ( x->tv_usec < y->tv_usec ) { nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; y->tv_usec -= 1000000 * nsec; y->tv_sec += nsec; } if ( x->tv_usec - y->tv_usec > 1000000 ) { nsec = (x->tv_usec - y->tv_usec) / 1000000; y->tv_usec += 1000000 * nsec; y->tv_sec -= nsec; } return ((x->tv_sec - y->tv_sec) * 1000) + ((x->tv_usec - y->tv_usec) / 1000); } static int connection_pool_check_event(prelude_connection_pool_t *pool, int timeout, int (*event_cb)(prelude_connection_pool_t *pool, prelude_connection_pool_event_t event, prelude_connection_t *cnx, void *extra), void *extra, prelude_connection_t **outcon, prelude_msg_t **outmsg) { cnx_t *cnx; fd_set rfds; cnx_list_t *or; int ret, i = 0, nfd, fd; struct timeval ts, to, te; prelude_connection_pool_event_t global_event = 0; again: gettimeofday(&ts, NULL); do { if ( timeout > 0 ) { to.tv_sec = timeout / 1000; to.tv_usec = timeout % 1000; } else { to.tv_usec = 0; to.tv_sec = (timeout < 0) ? 1 : 0; } gl_recursive_lock_lock(pool->mutex); rfds = pool->fds; nfd = pool->nfd; gl_recursive_lock_unlock(pool->mutex); ret = select(nfd, &rfds, NULL, NULL, &to); if ( ret < 0 ) return prelude_error_from_errno(errno); } while ( ret == 0 && timeout == -1 ); if ( ret == 0 ) return 0; gl_recursive_lock_lock(pool->mutex); for ( or = pool->or_list; or != NULL; or = or->or ) { for ( cnx = or->and; cnx != NULL; cnx = cnx->and ) { if ( ! prelude_connection_is_alive(cnx->cnx) ) continue; fd = prelude_io_get_fd(prelude_connection_get_fd(cnx->cnx)); if ( ! FD_ISSET(fd, &rfds) ) continue; i++; global_event |= PRELUDE_CONNECTION_POOL_EVENT_INPUT; ret = check_connection_event(pool, cnx, &global_event, event_cb, extra, outcon, outmsg); if ( ret == 1 ) break; else if ( ret <= 0 ) i--; }} gl_recursive_lock_unlock(pool->mutex); global_event_handler(pool, global_event); if ( pool->connection_string_changed ) prelude_connection_pool_init(pool); if ( timeout == -1 && i == 0 ) goto again; gettimeofday(&te, NULL); ret = timeval_subtract(&te, &ts); if ( i == 0 && ret < timeout ) { timeout -= ret; goto again; } return i; } static int get_connection_backup_path(prelude_connection_t *cn, const char *path, char **out) { int ret; char c, buf[512]; const char *addr; prelude_string_t *str; ret = prelude_string_new_dup(&str, path); if ( ret < 0 ) return ret; prelude_string_cat(str, "/"); /* * FIXME: ideally we should only use peer analyzerid. This would * imply creating the failover after the first connection. */ addr = prelude_connection_get_peer_addr(cn); if ( ! addr ) prelude_string_sprintf(str, "%" PRELUDE_PRIu64, prelude_connection_get_peer_analyzerid(cn)); else { snprintf(buf, sizeof(buf), "%s:%u", prelude_connection_get_peer_addr(cn), prelude_connection_get_peer_port(cn)); while ( (c = *addr++) ) { if ( c == '/' ) c = '_'; prelude_string_ncat(str, &c, 1); } } ret = prelude_string_get_string_released(str, out); prelude_string_destroy(str); return ret; } static void notify_event(prelude_connection_pool_t *pool, prelude_connection_pool_event_t event, prelude_connection_t *connection, prelude_bool_t global_notice) { event_handler(pool, event, connection); if ( global_notice ) global_event_handler(pool, event); } static void init_cnx_timer(cnx_t *cnx) { if ( cnx->parent->parent->flags & PRELUDE_CONNECTION_POOL_FLAGS_RECONNECT ) prelude_timer_init(&cnx->timer); } static void destroy_connection_single(cnx_t *cnx) { prelude_timer_destroy(&cnx->timer); prelude_connection_destroy(cnx->cnx); if ( cnx->failover ) prelude_failover_destroy(cnx->failover); free(cnx); } static void connection_list_destroy(cnx_list_t *clist) { void *bkp; cnx_t *cnx; for ( ; clist != NULL; clist = bkp ) { for ( cnx = clist->and; cnx != NULL; cnx = bkp ) { bkp = cnx->and; destroy_connection_single(cnx); } bkp = clist->or; free(clist); } } static int failover_save_msg(prelude_failover_t *failover, prelude_msg_t *msg) { int ret; ret = prelude_failover_save_msg(failover, msg); if ( ret < 0 ) prelude_log(PRELUDE_LOG_WARN, "failover error: %s.\n", prelude_strerror(ret)); return ret; } static void broadcast_message(prelude_msg_t *msg, cnx_t *cnx) { int ret = -1; if ( ! cnx ) return; if ( prelude_connection_is_alive(cnx->cnx) ) { ret = do_send(cnx->cnx, msg); if ( ret < 0 ) set_state_dead(cnx, ret, FALSE, TRUE); } if ( ret < 0 && cnx->failover ) failover_save_msg(cnx->failover, msg); broadcast_message(msg, cnx->and); } static int failover_flush(prelude_failover_t *failover, cnx_list_t *clist, cnx_t *cnx) { char name[128]; prelude_msg_t *msg; size_t totsize = 0; ssize_t size, ret = 0; unsigned int available, count = 0; if ( ! failover ) return 0; available = prelude_failover_get_available_msg_count(failover); if ( ! available ) return 0; if ( clist ) snprintf(name, sizeof(name), "any"); else snprintf(name, sizeof(name), "0x%" PRELUDE_PRIx64, prelude_connection_get_peer_analyzerid(cnx->cnx)); prelude_log(PRELUDE_LOG_INFO, "Flushing %u message to %s (%lu erased due to quota)...\n", available, name, prelude_failover_get_deleted_msg_count(failover)); do { size = prelude_failover_get_saved_msg(failover, &msg); if ( size == 0 ) break; if ( size < 0 ) { prelude_log(PRELUDE_LOG_ERR, "error reading message from failover: %s", prelude_strerror(size)); break; } if ( clist ) { broadcast_message(msg, clist->and); if ( clist->dead ) ret = -1; } else { ret = do_send(cnx->cnx, msg); if ( ret < 0 ) { set_state_dead(cnx, ret, FALSE, TRUE); if ( cnx->failover ) failover_save_msg(cnx->failover, msg); } } prelude_msg_destroy(msg); if ( ret < 0 ) break; count++; totsize += size; } while ( 1 ); prelude_log(PRELUDE_LOG_WARN, "Failover recovery: %u/%u messages flushed (%" PRELUDE_PRIu64 " bytes).\n", count, available, (uint64_t) totsize); return ret; } static int set_state_alive(cnx_t *cnx, prelude_bool_t global_notice) { int ret, fd; cnx_list_t *clist = cnx->parent; prelude_connection_pool_t *pool = clist->parent; prelude_timer_destroy(&cnx->timer); prelude_timer_set_expire(&cnx->timer, INITIAL_EXPIRATION_TIME); if ( clist->dead ) clist->dead--; prelude_log_debug(3, "notify alive: total=%d dead=%d\n", clist->total, clist->dead); notify_event(pool, PRELUDE_CONNECTION_POOL_EVENT_ALIVE, cnx->cnx, global_notice); ret = failover_flush(cnx->failover, NULL, cnx); if ( ret < 0 ) return ret; if ( pool->failover && clist->dead == 0 ) { ret = failover_flush(pool->failover, clist, NULL); if ( ret < 0 ) return ret; } fd = prelude_io_get_fd(prelude_connection_get_fd(cnx->cnx)); assert(fd < FD_SETSIZE); FD_SET(fd, &pool->fds); pool->nfd = MAX(fd + 1, pool->nfd); return 0; } static void set_state_dead(cnx_t *cnx, prelude_error_t error, prelude_bool_t init_time, prelude_bool_t global_notice) { int fd; cnx_list_t *clist = cnx->parent; prelude_connection_pool_t *pool = clist->parent; prelude_connection_close(cnx->cnx); if ( ! init_time || prelude_error_get_code(error) != PRELUDE_ERROR_PROFILE ) prelude_log(PRELUDE_LOG_WARN, "%sconnection error with %s: %s\n", (pool->flags & PRELUDE_CONNECTION_POOL_FLAGS_FAILOVER) ? "Failover enabled: " : "", prelude_connection_get_peer_addr(cnx->cnx), prelude_strerror(error)); clist->dead++; prelude_log_debug(3, "notify dead: total=%d dead=%d\n", clist->total, clist->dead); init_cnx_timer(cnx); notify_event(pool, PRELUDE_CONNECTION_POOL_EVENT_DEAD, cnx->cnx, global_notice); fd = prelude_io_get_fd(prelude_connection_get_fd(cnx->cnx)); assert(fd < FD_SETSIZE); FD_CLR(fd, &pool->fds); } static void check_for_data_cb(void *arg) { prelude_connection_pool_t *pool = arg; prelude_connection_pool_check_event(pool, 0, NULL, NULL); prelude_timer_reset(&pool->timer); } /* * Returns 0 on sucess, -1 on a new failure, * -2 on an already signaled failure. */ static int walk_manager_lists(prelude_connection_pool_t *pool, prelude_msg_t *msg) { int ret = 0; cnx_list_t *or; for ( or = pool->or_list; or != NULL; or = or->or ) { /* * if all connections are dead and we have a or, go to next. */ if ( or->dead == or->total && (pool->flags & PRELUDE_CONNECTION_POOL_FLAGS_FAILOVER) ) { ret = -2; continue; } broadcast_message(msg, or->and); return 0; } if ( pool->failover ) failover_save_msg(pool->failover, msg); return ret; } /* * Function called back when one of the client reconnection timer expires. */ static void connection_timer_expire(void *data) { int ret; cnx_t *cnx = data; prelude_connection_pool_t *pool = cnx->parent->parent; gl_recursive_lock_lock(pool->mutex); ret = prelude_connection_connect(cnx->cnx, pool->client_profile, pool->permission); if ( ret >= 0 ) { set_state_alive(cnx, TRUE); goto out; } prelude_log(PRELUDE_LOG_WARN, "%sconnection error with %s: %s\n", (pool->flags & PRELUDE_CONNECTION_POOL_FLAGS_FAILOVER) ? "Failover enabled: " : "", prelude_connection_get_peer_addr(cnx->cnx), prelude_strerror(ret)); /* * Connection failed, expand timeout and reset the timer. */ if ( prelude_timer_get_expire(&cnx->timer) < MAXIMUM_EXPIRATION_TIME ) prelude_timer_set_expire(&cnx->timer, prelude_timer_get_expire(&cnx->timer) * 2); prelude_timer_reset(&cnx->timer); out: gl_recursive_lock_unlock(pool->mutex); } static int new_connection(cnx_t **ncnx, prelude_client_profile_t *cp, cnx_list_t *clist, prelude_connection_t *cnx, prelude_connection_pool_flags_t flags) { int ret; cnx_t *nc; char *dirname, buf[PATH_MAX]; nc = malloc(sizeof(*nc)); if ( ! nc ) return prelude_error_from_errno(errno); nc->msg = NULL; nc->failover = NULL; nc->parent = clist; prelude_timer_init_list(&nc->timer); if ( flags & PRELUDE_CONNECTION_POOL_FLAGS_RECONNECT ) { prelude_timer_set_data(&nc->timer, nc); prelude_timer_set_expire(&nc->timer, INITIAL_EXPIRATION_TIME); prelude_timer_set_callback(&nc->timer, connection_timer_expire); } if ( flags & PRELUDE_CONNECTION_POOL_FLAGS_FAILOVER ) { prelude_client_profile_get_backup_dirname(cp, buf, sizeof(buf)); ret = get_connection_backup_path(cnx, buf, &dirname); if ( ret < 0 ) goto err; ret = prelude_failover_new(&nc->failover, dirname); free(dirname); if ( ret < 0 ) goto err; } nc->cnx = cnx; nc->and = NULL; clist->total++; prelude_linked_object_add(&clist->parent->all_cnx, (prelude_linked_object_t *) cnx); *ncnx = nc; return 0; err: free(nc); return ret; } static int new_connection_from_connection(cnx_t **new, prelude_client_profile_t *cp, cnx_list_t *clist, prelude_connection_t *cnx, prelude_connection_pool_flags_t flags) { return new_connection(new, cp, clist, cnx, flags); } static int new_connection_from_address(cnx_t **new, prelude_client_profile_t *cp, cnx_list_t *clist, char *addr, prelude_connection_pool_flags_t flags) { int ret; prelude_connection_t *cnx; ret = prelude_connection_new(&cnx, addr); if ( ret < 0 ) return ret; ret = new_connection_from_connection(new, cp, clist, cnx, flags); if ( ret < 0 ) prelude_connection_destroy(cnx); return ret; } /* * Creates a list (boolean AND) of connections. */ static int create_connection_list(cnx_list_t **new, prelude_connection_pool_t *pool) { *new = calloc(1, sizeof(**new)); if ( ! *new ) return prelude_error_from_errno(errno); (*new)->parent = pool; return 0; } static char *parse_config_string(char **line) { char *out, *str = *line; if ( ! *line ) return NULL; /* * Walk until next word. */ while ( *str != '\0' && *str == ' ' ) str++; /* * save it */ out = str; /* * walk until end of word. */ while ( *str != '\0' && *str != ' ' ) str++; if ( *str == ' ' ) { *str = '\0'; *line = str + 1; } else if ( *str == '\0' ) *line = NULL; return out; } /* * Parse Manager configuration line: x.x.x.x && y.y.y.y || z.z.z.z */ static int parse_config_line(prelude_connection_pool_t *pool) { int ret; cnx_t **cnx; cnx_list_t *clist = NULL; char *ptr, *cfgline = pool->connection_string; ret = create_connection_list(&pool->or_list, pool); if ( ret < 0 ) return ret; clist = pool->or_list; cnx = &clist->and; while ( 1 ) { ptr = parse_config_string(&cfgline); /* * If we meet end of line or "||", * it means we just finished adding a AND list. */ if ( ! ptr || (ret = strcmp(ptr, "||") == 0) ) { /* * end of line ? */ if ( ! ptr ) break; /* * we met the || operator, prepare a new list. */ ret = create_connection_list(&clist->or, pool); if ( ret < 0 ) return ret; clist = clist->or; cnx = &clist->and; continue; } ret = strcmp(ptr, "&&"); if ( ret == 0 ) continue; ret = new_connection_from_address(cnx, pool->client_profile, clist, ptr, pool->flags); if ( ret < 0 ) return ret; cnx = &(*cnx)->and; } return 0; } static cnx_t *search_cnx(prelude_connection_pool_t *pool, prelude_connection_t *cnx) { cnx_t *c; cnx_list_t *clist; for ( clist = pool->or_list; clist != NULL; clist = clist->or ) { for ( c = clist->and; c != NULL; c = c->and ) { if ( c->cnx == cnx ) return c; } } return NULL; } static void broadcast_async_cb(void *obj, void *data) { prelude_msg_t *msg = obj; prelude_connection_pool_t *pool = data; prelude_connection_pool_broadcast(pool, msg); prelude_msg_destroy(msg); prelude_connection_pool_destroy(pool); } /** * prelude_connection_pool_broadcast: * @pool: Pointer to a #prelude_connection_pool_t object. * @msg: Pointer on a #prelude_msg_t object. * * Sends the message contained in @msg to all the connection in @pool. */ void prelude_connection_pool_broadcast(prelude_connection_pool_t *pool, prelude_msg_t *msg) { prelude_return_if_fail(pool); prelude_return_if_fail(msg); gl_recursive_lock_lock(pool->mutex); walk_manager_lists(pool, msg); gl_recursive_lock_unlock(pool->mutex); } /** * prelude_connection_pool_broadcast_async: * @pool: Pointer to a #prelude_connection_pool_t object * @msg: Pointer on a #prelude_msg_t object. * * Sends the message contained in @msg to all connections * in @pool asynchronously. After the request is processed, * the @msg message will be freed. */ void prelude_connection_pool_broadcast_async(prelude_connection_pool_t *pool, prelude_msg_t *msg) { prelude_return_if_fail(pool); prelude_return_if_fail(msg); gl_recursive_lock_lock(pool->mutex); pool->refcount++; gl_recursive_lock_unlock(pool->mutex); prelude_async_set_callback((prelude_async_object_t *) msg, &broadcast_async_cb); prelude_async_set_data((prelude_async_object_t *) msg, pool); prelude_async_add((prelude_async_object_t *) msg); } /** * prelude_connection_pool_init: * @pool: Pointer to a #prelude_connection_pool_t object. * * Initializes @pool. This means that connection associated with @pool * using prelude_connection_pool_set_connection_string() will be * established. * * Returns: 0 on success, a negative value on error. */ int prelude_connection_pool_init(prelude_connection_pool_t *pool) { cnx_t *cnx; cnx_list_t *clist; int ret = 0, event = 0; char dirname[PATH_MAX], buf[PATH_MAX]; gl_recursive_lock_lock(pool->mutex); prelude_return_val_if_fail(pool, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! pool->failover && (pool->flags & PRELUDE_CONNECTION_POOL_FLAGS_FAILOVER) ) { prelude_client_profile_get_backup_dirname(pool->client_profile, buf, sizeof(buf)); snprintf(dirname, sizeof(dirname), "%s/global", buf); ret = prelude_failover_new(&pool->failover, dirname); if ( ret < 0 ) goto err; } if ( (! pool->connection_string_changed || ! pool->connection_string) && ! pool->or_list ) { ret = prelude_error(PRELUDE_ERROR_CONNECTION_STRING); goto err; } if ( pool->connection_string_changed ) { pool->connection_string_changed = FALSE; connection_list_destroy(pool->or_list); pool->nfd = 0; pool->or_list = NULL; prelude_list_init(&pool->all_cnx); ret = parse_config_line(pool); if ( ret < 0 || ! pool->or_list ) goto err; } for ( clist = pool->or_list; clist != NULL; clist = clist->or ) { for ( cnx = clist->and; cnx != NULL; cnx = cnx->and ) { if ( prelude_connection_is_alive(cnx->cnx) ) continue; ret = prelude_connection_connect(cnx->cnx, clist->parent->client_profile, clist->parent->permission); if ( ret < 0 ) { if ( prelude_error_get_code(ret) == PRELUDE_ERROR_PROFILE ) goto err; event |= PRELUDE_CONNECTION_POOL_EVENT_DEAD; set_state_dead(cnx, ret, TRUE, FALSE); ret = 0; } else if ( prelude_connection_is_alive(cnx->cnx) ) { event |= PRELUDE_CONNECTION_POOL_EVENT_DEAD; set_state_alive(cnx, FALSE); } } if ( clist->dead ) continue; } global_event_handler(pool, event); if ( ret < 0 ) prelude_log(PRELUDE_LOG_WARN, "Can't contact configured Manager - Enabling failsafe mode.\n"); if ( pool->wanted_event & PRELUDE_CONNECTION_POOL_EVENT_INPUT ) { prelude_timer_set_data(&pool->timer, pool); prelude_timer_set_expire(&pool->timer, 1); prelude_timer_set_callback(&pool->timer, check_for_data_cb); prelude_timer_init(&pool->timer); } pool->initialized = TRUE; err: gl_recursive_lock_unlock(pool->mutex); return ret; } /** * prelude_connection_pool_new: * @ret: Pointer to an address where to store the created #prelude_connection_pool_t object. * @cp: The #prelude_client_profile_t to use for connection. * @permission: Permission the connection in this connection-pool will require. * * prelude_connection_pool_new() initializes a new Connection Manager object. * * Returns: 0 on success or a negative value if an error occured. */ int prelude_connection_pool_new(prelude_connection_pool_t **ret, prelude_client_profile_t *cp, prelude_connection_permission_t permission) { prelude_connection_pool_t *new; prelude_return_val_if_fail(cp, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = new = calloc(1, sizeof(*new)); if ( ! new ) return prelude_error_from_errno(errno); FD_ZERO(&new->fds); new->refcount = 1; new->client_profile = cp; new->permission = permission; new->connection_string_changed = FALSE; new->flags = PRELUDE_CONNECTION_POOL_FLAGS_FAILOVER; prelude_list_init(&new->all_cnx); prelude_timer_init_list(&new->timer); gl_recursive_lock_init(new->mutex); return 0; } /** * prelude_connection_pool_destroy: * @pool: Pointer to a #prelude_connection_pool_t object. * * Destroys @pool and all connections handled. */ void prelude_connection_pool_destroy(prelude_connection_pool_t *pool) { prelude_return_if_fail(pool); gl_recursive_lock_lock(pool->mutex); if ( --pool->refcount != 0 ) { gl_recursive_lock_unlock(pool->mutex); return; } prelude_timer_destroy(&pool->timer); if ( pool->connection_string ) free(pool->connection_string); connection_list_destroy(pool->or_list); if ( pool->failover ) prelude_failover_destroy(pool->failover); gl_recursive_lock_unlock(pool->mutex); gl_recursive_lock_destroy(pool->mutex); free(pool); } /** * prelude_connection_pool_ref: * @pool: Pointer to a #prelude_connection_pool_t object. * * Increases @pool reference count. * * prelude_connection_pool_destroy() will decrease the refcount until * it reaches 0, at which point the @pool will be destroyed. * * Returns: The provided @pool is returned. */ prelude_connection_pool_t *prelude_connection_pool_ref(prelude_connection_pool_t *pool) { prelude_return_val_if_fail(pool, NULL); pool->refcount++; return pool; } /** * prelude_connection_pool_add_connection: * @pool: Pointer to a #prelude_connection_pool_t object. * @cnx: Pointer to a #prelude_connection_t object to add to @pool. * * Adds @cnx to @pool set of connections. * * If @pool is already initialized (prelude_connection_pool_init() called) * and @cnx is not alive, it will attempt a reconnection. * * Returns: 0 on success, a negative value if an error occured. */ int prelude_connection_pool_add_connection(prelude_connection_pool_t *pool, prelude_connection_t *cnx) { int ret; cnx_t **c; prelude_return_val_if_fail(pool, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(cnx, prelude_error(PRELUDE_ERROR_ASSERTION)); gl_recursive_lock_lock(pool->mutex); if ( ! pool->or_list ) { ret = create_connection_list(&pool->or_list, pool); if ( ret < 0 ) goto out; } for ( c = &pool->or_list->and; (*c); c = &(*c)->and ); ret = new_connection_from_connection(c, pool->client_profile, pool->or_list, cnx, pool->flags); if ( ret < 0 ) goto out; if ( pool->initialized && ! prelude_connection_is_alive(cnx) ) { ret = prelude_connection_connect(cnx, pool->client_profile, pool->permission); if ( ret < 0 ) set_state_dead(*c, ret, FALSE, TRUE); else if ( prelude_connection_is_alive(cnx) ) set_state_alive(*c, TRUE); } if ( (*c)->parent->dead == 0 && pool->failover ) { ret = failover_flush(pool->failover, (*c)->parent, NULL); if ( ret < 0 ) goto out; } out: gl_recursive_lock_unlock(pool->mutex); return ret; } /** * prelude_connection_pool_del_connection: * @pool: Pointer to a #prelude_connection_pool_t object. * @cnx: Pointer to a #prelude_connection_t object to remove from @pool. * * Remove @cnx from @pool of connections. * * Returns: 0 on success, a negative value if an error occured. */ int prelude_connection_pool_del_connection(prelude_connection_pool_t *pool, prelude_connection_t *cnx) { cnx_t *c; int ret = 0; prelude_return_val_if_fail(pool, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(cnx, prelude_error(PRELUDE_ERROR_ASSERTION)); gl_recursive_lock_lock(pool->mutex); c = search_cnx(pool, cnx); if ( ! c ) { ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Connection is not within pool"); goto out; } destroy_connection_single(c); out: gl_recursive_lock_unlock(pool->mutex); return ret; } /** * prelude_connection_pool_set_global_event_handler: * @pool: Pointer to a #prelude_connection_pool_t object. * @wanted_events: Event the user want to be notified about. * @callback: User specific callback to call when an event is available. * * @callback will be called each time one of the event specified in * @wanted_events happen to @pool. However, contrary to * prelude_connection_pool_set_event_handler(), the callback will be called * only once per set of event. */ void prelude_connection_pool_set_global_event_handler(prelude_connection_pool_t *pool, prelude_connection_pool_event_t wanted_events, int (*callback)(prelude_connection_pool_t *pool, prelude_connection_pool_event_t events)) { prelude_return_if_fail(pool); pool->global_wanted_event = wanted_events; pool->global_event_handler = callback; } /** * prelude_connection_pool_set_event_handler: * @pool: Pointer to a #prelude_connection_pool_t object. * @wanted_events: Event the user want to be notified about. * @callback: User specific callback to call when an event is available. * * @callback will be called each time one of the event specified in * @wanted_events happens to @pool. */ void prelude_connection_pool_set_event_handler(prelude_connection_pool_t *pool, prelude_connection_pool_event_t wanted_events, int (*callback)(prelude_connection_pool_t *pool, prelude_connection_pool_event_t events, prelude_connection_t *cnx)) { prelude_return_if_fail(pool); pool->wanted_event = wanted_events; pool->event_handler = callback; } /** * prelude_connection_pool_get_connection_list: * @pool: Pointer to a #prelude_connection_pool_t object. * * Returns: The list of connections handled by @pool. */ prelude_list_t *prelude_connection_pool_get_connection_list(prelude_connection_pool_t *pool) { prelude_return_val_if_fail(pool, NULL); return &pool->all_cnx; } /** * prelude_connection_pool_set_connection_dead: * @pool: Pointer to a #prelude_connection_pool_t object. * @cnx: Pointer to a #prelude_connection_t object used within @pool. * * Notifies @pool that the connection identified by @cnx is dead. * * Usually, this function should not be used since @pool is * self sufficient, and handles connections issues internally. However, * it is sometime useful when the user has several mechanisms using the * connection, and that its own mechanism detects a connection problem * before @pool notice. * * Returns: 0 on success, a negative value if an error occured. */ int prelude_connection_pool_set_connection_dead(prelude_connection_pool_t *pool, prelude_connection_t *cnx) { cnx_t *c; int ret = 0; prelude_return_val_if_fail(pool, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(cnx, prelude_error(PRELUDE_ERROR_ASSERTION)); gl_recursive_lock_lock(pool->mutex); c = search_cnx(pool, cnx); if ( ! c ) { ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Connection is not within pool"); goto out; } if ( ! prelude_connection_is_alive(cnx) ) goto out; prelude_connection_set_state(cnx, 0); set_state_dead(c, 0, FALSE, FALSE); out: gl_recursive_lock_unlock(pool->mutex); return ret; } /** * prelude_connection_pool_set_connection_alive: * @pool: Pointer to a #prelude_connection_pool_t object. * @cnx: Pointer to a #prelude_connection_t object used within @pool. * * Notifies @pool that the connection identified by @cnx went back alive. * * Usually, this function should not be used since @pool is * self sufficient, and handles connection issues internally. However, * it is sometime useful when the user has several mechanisms using the * connection, and that its own mechanism detects a connection problem * before @pool notice. * * Returns: 0 on success, a negative value if an error occured. */ int prelude_connection_pool_set_connection_alive(prelude_connection_pool_t *pool, prelude_connection_t *cnx) { cnx_t *c; int ret = 0; prelude_return_val_if_fail(pool, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(cnx, prelude_error(PRELUDE_ERROR_ASSERTION)); gl_recursive_lock_lock(pool->mutex); c = search_cnx(pool, cnx); if ( ! c ) { ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Connection is not within pool"); goto out; } if ( c->parent->dead == 0 ) goto out; ret = set_state_alive(c, FALSE); out: gl_recursive_lock_unlock(pool->mutex); return ret; } /** * prelude_connection_pool_set_connection_string: * @pool: Pointer to a #prelude_connection_pool_t object. * @cfgstr: Connection string. * * Sets the connection string for @pool. The connection string should be * in the form of : "address". Special operand like || (OR) and && (AND), * are also accepted: "address && address". * * Where && means that alert sent using @pool will go to both configured * addresses, and || means that if the left address fails, the right address * will be used. * * prelude_connection_pool_init() should be used to initiates the connection. * * Returns: 0 on success, a negative value if an error occured. */ int prelude_connection_pool_set_connection_string(prelude_connection_pool_t *pool, const char *cfgstr) { char *new; prelude_return_val_if_fail(pool, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(cfgstr, prelude_error(PRELUDE_ERROR_ASSERTION)); new = strdup(cfgstr); if ( ! new ) return prelude_error_from_errno(errno); gl_recursive_lock_lock(pool->mutex); if ( pool->connection_string ) free(pool->connection_string); pool->connection_string = new; pool->connection_string_changed = TRUE; gl_recursive_lock_unlock(pool->mutex); return 0; } /** * prelude_connection_pool_get_connection_string: * @pool: Pointer to a #prelude_connection_pool_t object. * * Used to query the connection string used by @pool. * * Returns: The connection string. */ const char *prelude_connection_pool_get_connection_string(prelude_connection_pool_t *pool) { prelude_return_val_if_fail(pool, NULL); return pool->connection_string; } /** * prelude_connection_pool_set_flags: * @pool: Pointer to a #prelude_connection_pool_t object. * @flags: Flags to use for @pool. * * Sets @flags within @pools. */ void prelude_connection_pool_set_flags(prelude_connection_pool_t *pool, prelude_connection_pool_flags_t flags) { prelude_return_if_fail(pool); pool->flags = flags; } void prelude_connection_pool_set_required_permission(prelude_connection_pool_t *pool, prelude_connection_permission_t req_perm) { prelude_return_if_fail(pool); pool->permission = req_perm; } /** * prelude_connection_pool_get_flags: * @pool: Pointer to a #prelude_connection_pool_t object. * * Returns: the #prelude_connection_pool_flags_t used in @pool. */ prelude_connection_pool_flags_t prelude_connection_pool_get_flags(prelude_connection_pool_t *pool) { prelude_return_val_if_fail(pool, prelude_error(PRELUDE_ERROR_ASSERTION)); return pool->flags; } /** * prelude_connection_pool_check_event: * @pool: Pointer to a #prelude_connection_pool_t object. * @timeout: Time to wait for an event. * @event_cb: User provided callback function to call on received events. * @extra: Pointer to user specific data provided to @event_cb. * * This function queries the set of connections available in @pool to see if * events are waiting to be handled. If timeout is zero, then this function * will return immediatly in case there is no event to be handled. * * If timeout is -1, this function won't return until an event is available. * Otherwise this function will return if there is no event after the specified * number of second. * * For each event, @event_cb is called with the concerned @pool, the provided * @extra data, and the @cnx where an event has occured. * * Returns: The number of handled events, or a negative value if an error occured. */ int prelude_connection_pool_check_event(prelude_connection_pool_t *pool, int timeout, int (*event_cb)(prelude_connection_pool_t *pool, prelude_connection_pool_event_t event, prelude_connection_t *cnx, void *extra), void *extra) { prelude_return_val_if_fail(pool, prelude_error(PRELUDE_ERROR_ASSERTION)); /* * We don't assert on NULL event_cb since there might be a global * event handler. */ return connection_pool_check_event(pool, timeout, event_cb, extra, NULL, NULL); } /** * prelude_connection_pool_recv: * @pool: Pointer to a #prelude_connection_pool_t object. * @timeout: Time to wait for an event. * @outcon: Pointer where the connection where an event happened should be stored. * @outmsg: Pointer where the next message that will be read should be stored. * * This function queries the set of connections available in @pool to see if * events are waiting to be handled. If timeout is zero, then this function * will return immediatly in case there is no event to be handled. * * If timeout is -1, this function won't return until an event is available. * Otherwise this function will return if there is no event after the specified * number of second. * * If an event is available, it will be read and store the #prelude_connection_t * object in the @outcon pointer. If @outmsg was specified, the message will be * read and stored in there. * * Returns: The number of handled events (0 or 1) or a negative value if an error occured. */ int prelude_connection_pool_recv(prelude_connection_pool_t *pool, int timeout, prelude_connection_t **outcon, prelude_msg_t **outmsg) { prelude_return_val_if_fail(pool, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(outcon, prelude_error(PRELUDE_ERROR_ASSERTION)); return connection_pool_check_event(pool, timeout, NULL, NULL, outcon, outmsg); } /** * prelude_connection_pool_set_data: * @pool: Pointer to a #prelude_connection_pool_t object. * @data: Pointer to user specific data. * * The user might use this function to associate data with @pool. * The data associated might be retrieved using prelude_connection_pool_get_data(). */ void prelude_connection_pool_set_data(prelude_connection_pool_t *pool, void *data) { prelude_return_if_fail(pool); pool->data = data; } /** * prelude_connection_pool_get_data: * @pool: Pointer to a #prelude_connection_pool_t object. * * The user might use this function to query data associated with * @pool using prelude_connection_pool_set_data(). * * Returns: the user data associated to @pool. */ void *prelude_connection_pool_get_data(prelude_connection_pool_t *pool) { prelude_return_val_if_fail(pool, NULL); return pool->data; } libprelude-5.2.0/src/PaxHeaders.14770/prelude-failover.c0000644000000000000000000000011013726163410021043 xustar000000000000000024 mtime=1599661832.702 24 atime=1599661832.792 24 ctime=1599661999.809 libprelude-5.2.0/src/prelude-failover.c0000644000000000000000000004521313726163410020053 0ustar00rootroot00000000000000/***** * * Copyright (C) 2007-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "glthread/thread.h" #include "common.h" #include "prelude-log.h" #include "prelude-io.h" #include "prelude-msg.h" #include "prelude-failover.h" #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_FAILOVER #include "prelude-error.h" #define FAILOVER_CHECKSUM_SIZE 4 #define FAILOVER_JOURNAL_ENTRY_SIZE 20 struct prelude_failover { int jfd; prelude_io_t *wfd; prelude_io_t *rfd; uint64_t count; uint64_t rindex; prelude_bool_t transaction_enabled; }; typedef union { struct { uint64_t count; uint64_t rindex; unsigned char checksum[FAILOVER_CHECKSUM_SIZE]; } value; unsigned char data[FAILOVER_JOURNAL_ENTRY_SIZE]; } failover_journal_entry_t; static void mask_signal(sigset_t *oldmask) { sigset_t newmask; prelude_return_if_fail( sigfillset(&newmask) == 0 ); prelude_return_if_fail( glthread_sigmask(SIG_BLOCK, &newmask, oldmask) == 0 ); } static void unmask_signal(sigset_t *oldmask) { prelude_return_if_fail( glthread_sigmask(SIG_SETMASK, oldmask, NULL) == 0 ); } static void journal_checksum(failover_journal_entry_t *fj, unsigned char *digest) { uint32_t crc = prelude_crc32(fj->data, sizeof(fj->data) - FAILOVER_CHECKSUM_SIZE); digest[0] = (crc >> 24) & 0xff; digest[1] = (crc >> 16) & 0xff; digest[2] = (crc >> 8) & 0xff; digest[3] = crc & 0xff; } static int journal_write(prelude_failover_t *failover) { ssize_t ret; size_t rcount = 0; failover_journal_entry_t fj; fj.value.count = failover->count; fj.value.rindex = failover->rindex; journal_checksum(&fj, fj.value.checksum); do { ret = write(failover->jfd, fj.data + rcount, sizeof(fj.data) - rcount); if ( ret < 0 ) { ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error writing failover journal: %s", strerror(errno)); break; } rcount += ret; } while ( ret >= 0 && rcount != sizeof(fj.data) ); return ret; } static int truncate_failover(prelude_failover_t *failover) { off_t off; sigset_t oldmask; int ret = 0, wfd, rfd; wfd = prelude_io_get_fd(failover->wfd); rfd = prelude_io_get_fd(failover->rfd); mask_signal(&oldmask); /* * Crash before messages truncate: journal is not updated but on restart * rindex equal the size of the file (previous journal update) -> truncate message. */ ret = ftruncate(wfd, 0); if ( ret != 0 ) { ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error truncating failover: %s", strerror(errno)); goto error; } /* * Crash after messages truncate, but before journal update: on restart * wfd is zero: journal is truncated. */ ret = ftruncate(failover->jfd, 0); if ( ret != 0 ) { ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error truncating failover journal: %s", strerror(errno)); goto error; } off = lseek(rfd, 0, SEEK_SET); if ( off == (off_t) -1 ) { ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error setting failover read position: %s", strerror(errno)); goto error; } off = lseek(failover->jfd, 0, SEEK_SET); if ( off == (off_t) -1 ) { ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error setting failover journal position: %s", strerror(errno)); goto error; } failover->count = failover->rindex = 0; journal_write(failover); error: unmask_signal(&oldmask); return ret; } static int journal_read(prelude_failover_t *failover, failover_journal_entry_t *ent) { ssize_t ret; size_t count = 0; do { ret = read(failover->jfd, ent->data + count, sizeof(ent->data) - count); if ( ret < 0 ) { ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error reading failover journal: %s", strerror(errno)); break; } count += ret; } while ( count != sizeof(ent->data) ); return ret; } static int journal_check(prelude_failover_t *failover, failover_journal_entry_t *jentry, struct stat *wst) { int ret; unsigned char digest[FAILOVER_CHECKSUM_SIZE]; journal_checksum(jentry, digest); ret = memcmp(digest, jentry->value.checksum, sizeof(digest)); if ( ret != 0 ) { prelude_log(PRELUDE_LOG_WARN, "Failover: incorrect CRC in journal entry, skipping.\n"); return -1; } prelude_log_debug(7, "rindex=%" PRELUDE_PRIu64 " size=%" PRELUDE_PRId64 "\n", jentry->value.rindex, (int64_t) wst->st_size); if ( jentry->value.rindex > (uint64_t) wst->st_size ) { /* * Latest journal entry has a read index that is higher than the size * of our data file. This mean that the data file is corrupted, and we * cannot recover message after the rindex value. We start over. */ prelude_log(PRELUDE_LOG_WARN, "Failover: data file corrupted, %" PRELUDE_PRIu64 " messages truncated.\n", jentry->value.count); jentry->value.rindex = jentry->value.count = 0; truncate_failover(failover); return 0; } else if ( jentry->value.rindex == (uint64_t) wst->st_size ) { /* * Read-Index and size are the same, but file was not truncated. */ jentry->value.rindex = jentry->value.count = 0; truncate_failover(failover); } return 0; } static int journal_read_last_entry(prelude_failover_t *failover, failover_journal_entry_t *jentry, struct stat *jst, struct stat *wst) { int ret, garbage; off_t lret, offset = jst->st_size; garbage = offset % FAILOVER_JOURNAL_ENTRY_SIZE; if ( garbage != 0 ) { /* * The journal is corrupted, not on the correct boundary. */ prelude_log(PRELUDE_LOG_WARN, "Failover: journal corrupted, recovering from invalid boundary.\n"); offset -= garbage; } do { offset -= FAILOVER_JOURNAL_ENTRY_SIZE; lret = lseek(failover->jfd, offset, SEEK_SET); if ( lret == (off_t) -1 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error seeking to end of journal: %s", strerror(errno)); ret = journal_read(failover, jentry); if ( ret < 0 ) return ret; prelude_log_debug(7, "[%" PRELUDE_PRId64 "] found jentry with count=%" PRELUDE_PRIu64 " rindex=%" PRELUDE_PRIu64 "\n", (int64_t) offset, jentry->value.count, jentry->value.rindex); ret = journal_check(failover, jentry, wst); } while ( offset > 0 && ret != 0 ); if ( ret != 0 ) { truncate_failover(failover); return 0; } return ret; } static int journal_initialize(prelude_failover_t *failover, const char *filename) { int ret; off_t off; struct stat jst, wst; failover_journal_entry_t jentry; failover->jfd = open(filename, O_CREAT|O_RDWR, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP); if ( failover->jfd < 0 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "could not open '%s': %s", filename, strerror(errno)); #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) fcntl(failover->jfd, F_SETFD, fcntl(failover->jfd, F_GETFD) | FD_CLOEXEC); #endif ret = fstat(failover->jfd, &jst); if ( ret < 0 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "could not stat failover journal: %s", strerror(errno)); ret = fstat(prelude_io_get_fd(failover->wfd), &wst); if ( ret < 0 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "could not stat failover journal: %s", strerror(errno)); if ( jst.st_size == 0 && wst.st_size > 0 ) { truncate_failover(failover); prelude_log(PRELUDE_LOG_WARN, "Failover inconsistency: message data with no journal.\n"); return 0; } else if ( jst.st_size == 0 && wst.st_size == 0 ) return 0; memset(&jentry.value, 0, sizeof(jentry.value)); ret = journal_read_last_entry(failover, &jentry, &jst, &wst); if ( ret < 0 ) return ret; failover->count = jentry.value.count; failover->rindex = jentry.value.rindex; off = lseek(prelude_io_get_fd(failover->rfd), failover->rindex, SEEK_SET); if ( off == (off_t) -1 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error setting failover read offset: %s", strerror(errno)); return 0; } #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) static int lock_cmd(const char *filename, int fd, int cmd, int type) { int ret; struct flock lock; lock.l_type = type; /* write lock */ lock.l_start = 0; /* from offset 0 */ lock.l_whence = SEEK_SET; /* at the beginning of the file */ lock.l_len = 0; /* until EOF */ ret = fcntl(fd, cmd, &lock); if ( ret < 0 ) { if ( errno == EAGAIN || errno == EACCES ) return 0; return prelude_error_verbose(prelude_error_code_from_errno(errno), "error locking '%s': %s", filename, strerror(errno)); } return 1; } #endif static int open_exclusive(const char *filename, int flags, int *fd) { int ret = 1; *fd = open(filename, flags, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP); if ( *fd < 0 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error opening '%s': %s", filename, strerror(errno)); #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) ret = lock_cmd(filename, *fd, F_SETLK, F_RDLCK|F_WRLCK); if ( ret <= 0 ) close(*fd); #endif return ret; } static int get_failover_data_filename_and_fd(const char *dirname, char *filename, size_t size) { DIR *dir; int i = 0, fd, ret = 0; struct dirent *de; dir = opendir(dirname); if ( ! dir ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error opening '%s': %s", dirname, strerror(errno)); while ( (de = readdir(dir)) && ret != 1 ) { if ( strlen(de->d_name) <= 4 || ! isdigit(de->d_name[4]) ) continue; if ( strncmp(de->d_name, "data", 4) != 0 || strchr(de->d_name, '.') ) continue; ret = snprintf(filename, size, "%s/%s", dirname, de->d_name); if ( ret < 0 || (size_t) ret >= size ) continue; ret = open_exclusive(filename, O_CREAT|O_WRONLY|O_APPEND, &fd); if ( ret < 0 ) return ret; } while ( ret != 1 ) { ret = snprintf(filename, size, "%s/data%d", dirname, i++); if ( ret < 0 || (size_t) ret >= size ) continue; ret = open_exclusive(filename, O_CREAT|O_WRONLY|O_APPEND, &fd); if ( ret < 0 ) return ret; } closedir(dir); return fd; } int prelude_failover_commit(prelude_failover_t *failover, prelude_msg_t *msg) { /* * Make sure that we don't go down zero. This might happen with a message * data file with more message than what the journal specified. */ if ( failover->count > 0 ) failover->count--; failover->rindex += prelude_msg_get_len(msg); journal_write(failover); return 0; } int prelude_failover_rollback(prelude_failover_t *failover, prelude_msg_t *msg) { off_t off; off = lseek(prelude_io_get_fd(failover->rfd), - prelude_msg_get_len(msg), SEEK_CUR); if ( off == (off_t) -1 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error setting failover read position: %s", strerror(errno)); return 0; } ssize_t prelude_failover_get_saved_msg(prelude_failover_t *failover, prelude_msg_t **msg) { int ret; *msg = NULL; ret = prelude_msg_read(msg, failover->rfd); if ( ret < 0 ) { uint64_t bkp = failover->count; truncate_failover(failover); if ( prelude_error_get_code(ret) == PRELUDE_ERROR_EOF ) return 0; else return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "%" PRELUDE_PRIu64 " messages failed to recover: %s", bkp, prelude_strerror(ret)); } if ( ! failover->transaction_enabled ) prelude_failover_commit(failover, *msg); return prelude_msg_get_len(*msg); } int prelude_failover_save_msg(prelude_failover_t *failover, prelude_msg_t *msg) { int ret; sigset_t oldset; mask_signal(&oldset); do { ret = prelude_msg_write(msg, failover->wfd); } while ( ret < 0 && prelude_error_get_code(ret) == PRELUDE_ERROR_EINTR ); if ( ret < 0 ) goto error; if ( ! prelude_msg_is_fragment(msg) ) { failover->count++; journal_write(failover); } error: unmask_signal(&oldset); return ret; } int prelude_failover_new(prelude_failover_t **out, const char *dirname) { mode_t mode; size_t flen; int ret, wfd, rfd; char filename[PATH_MAX]; prelude_failover_t *new; mode = umask(S_IRWXO); ret = mkdir(dirname, S_IRWXU|S_IRWXG); if ( ret < 0 && errno != EEXIST ) { umask(mode); return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "could not create directory '%s': %s", dirname, strerror(errno)); } wfd = get_failover_data_filename_and_fd(dirname, filename, sizeof(filename)); if ( wfd < 0 ) { umask(mode); return wfd; } #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) fcntl(wfd, F_SETFD, fcntl(wfd, F_GETFD) | FD_CLOEXEC); #endif rfd = open(filename, O_RDONLY); if ( rfd < 0 ) { umask(mode); close(wfd); return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "could not open '%s' for reading: %s", filename, strerror(errno)); } #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) fcntl(rfd, F_SETFD, fcntl(rfd, F_GETFD) | FD_CLOEXEC); #endif new = calloc(1, sizeof(*new)); if ( ! new ) { umask(mode); close(rfd); close(wfd); return prelude_error_from_errno(errno); } new->jfd = -1; ret = prelude_io_new(&new->wfd); if ( ret < 0 ) { umask(mode); close(rfd); close(wfd); free(new); return ret; } ret = prelude_io_new(&new->rfd); if ( ret < 0 ) { umask(mode); close(rfd); close(wfd); free(new); return ret; } prelude_io_set_sys_io(new->wfd, wfd); prelude_io_set_sys_io(new->rfd, rfd); flen = strlen(filename); ret = snprintf(filename + flen, sizeof(filename) - flen, ".journal"); if ( ret < 0 || (size_t) ret >= (sizeof(filename) - flen) ) { umask(mode); prelude_failover_destroy(new); return -1; } ret = journal_initialize(new, filename); if ( ret < 0 ) { umask(mode); prelude_failover_destroy(new); return ret; } umask(mode); *out = new; return 0; } void prelude_failover_destroy(prelude_failover_t *failover) { close(failover->jfd); if ( failover->wfd ) { prelude_io_close(failover->wfd); prelude_io_destroy(failover->wfd); } if ( failover->rfd ) { prelude_io_close(failover->rfd); prelude_io_destroy(failover->rfd); } free(failover); } void prelude_failover_set_quota(prelude_failover_t *failover, size_t limit) { /* FIXME: quota */ } unsigned long prelude_failover_get_deleted_msg_count(prelude_failover_t *failover) { /* FIXME: quota */ return 0; } unsigned long prelude_failover_get_available_msg_count(prelude_failover_t *failover) { return (unsigned long) failover->count; } void prelude_failover_enable_transaction(prelude_failover_t *failover) { failover->transaction_enabled = TRUE; } void prelude_failover_disable_transaction(prelude_failover_t *failover) { failover->transaction_enabled = FALSE; } libprelude-5.2.0/src/PaxHeaders.14770/prelude-hash.c0000644000000000000000000000011013726163410020157 xustar000000000000000024 mtime=1599661832.702 24 atime=1599661832.792 24 ctime=1599661999.811 libprelude-5.2.0/src/prelude-hash.c0000644000000000000000000001575713726163410017201 0ustar00rootroot00000000000000/***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include #include #include "prelude-log.h" #include "prelude-list.h" #include "prelude-error.h" #include "prelude-hash.h" #define HASH_DEFAULT_SIZE 128 typedef struct hash_elem { prelude_list_t list; void *key; void *value; } hash_elem_t; struct prelude_hash { size_t lists_size; prelude_list_t *lists; unsigned int (*hash_func)(const void *key); int (*key_cmp_func)(const void *key1, const void *key2); void (*key_destroy_func)(void *key); void (*value_destroy_func)(void *value); }; /* * This function's code was taken from glib */ static unsigned int default_hash_func(const void *key) { const char *ptr = key; unsigned int hv = *ptr; if ( hv ) for ( ptr += 1; *ptr; ptr++ ) hv = (hv << 5) - hv + *ptr; return hv; } static int default_key_cmp_func(const void *key1, const void *key2) { return strcmp((const char *) key1, (const char *) key2); } static unsigned int hash_value_calc(prelude_hash_t *hash, const void *key) { return (hash->hash_func(key) % hash->lists_size); } static hash_elem_t *hash_elem_get(prelude_hash_t *hash, const void *key) { prelude_list_t *list; prelude_list_t *ptr; hash_elem_t *hash_elem; list = hash->lists + hash_value_calc(hash, key); prelude_list_for_each(list, ptr) { hash_elem = prelude_list_entry(ptr, hash_elem_t, list); if ( hash->key_cmp_func(key, hash_elem->key) == 0 ) return hash_elem; } return NULL; } static void hash_elem_key_destroy(prelude_hash_t *hash, hash_elem_t *hash_elem) { if ( hash->key_destroy_func ) hash->key_destroy_func(hash_elem->key); } static void hash_elem_value_destroy(prelude_hash_t *hash, hash_elem_t *hash_elem) { if ( hash->value_destroy_func ) hash->value_destroy_func(hash_elem->value); } int prelude_hash_new(prelude_hash_t **nhash, unsigned int (*hash_func)(const void *), int (*key_cmp_func)(const void *, const void *), void (*key_destroy_func)(void *), void (*value_destroy_func)(void *)) { return prelude_hash_new2(nhash, HASH_DEFAULT_SIZE, hash_func, key_cmp_func, key_destroy_func, value_destroy_func); } int prelude_hash_new2(prelude_hash_t **nhash, size_t size, unsigned int (*hash_func)(const void *), int (*key_cmp_func)(const void *, const void *), void (*key_destroy_func)(void *), void (*value_destroy_func)(void *)) { size_t i; prelude_hash_t *hash; *nhash = hash = calloc(1, sizeof (*hash)); if ( ! hash ) return prelude_error_from_errno(errno); hash->lists_size = size; hash->lists = malloc(hash->lists_size * sizeof(*hash->lists)); if ( ! hash->lists ) { free(hash); return prelude_error_from_errno(errno); } hash->hash_func = hash_func ? hash_func : default_hash_func; hash->key_cmp_func = key_cmp_func ? key_cmp_func : default_key_cmp_func; hash->key_destroy_func = key_destroy_func; hash->value_destroy_func = value_destroy_func; for ( i = 0; i < hash->lists_size; i++ ) prelude_list_init(hash->lists + i); return 0; } void prelude_hash_destroy(prelude_hash_t *hash) { size_t cnt; prelude_list_t *list; prelude_list_t *ptr; prelude_list_t *tmp; hash_elem_t *hash_elem; for ( cnt = 0; cnt < hash->lists_size; cnt++ ) { list = hash->lists + cnt; prelude_list_for_each_safe(list, ptr, tmp) { hash_elem = prelude_list_entry(ptr, hash_elem_t, list); hash_elem_key_destroy(hash, hash_elem); hash_elem_value_destroy(hash, hash_elem); prelude_list_del(&hash_elem->list); free(hash_elem); } } free(hash->lists); free(hash); } int prelude_hash_add(prelude_hash_t *hash, void *key, void *value) { hash_elem_t *hash_elem; prelude_list_t *list; hash_elem = calloc(1, sizeof(*hash_elem)); if ( ! hash_elem ) return prelude_error_from_errno(errno); hash_elem->key = key; hash_elem->value = value; list = hash->lists + hash_value_calc(hash, key); prelude_list_add(list, &hash_elem->list); return 1; } int prelude_hash_set(prelude_hash_t *hash, void *key, void *value) { hash_elem_t *hash_elem = hash_elem_get(hash, key); if ( hash_elem ) { hash_elem_key_destroy(hash, hash_elem); hash_elem_value_destroy(hash, hash_elem); hash_elem->key = key; hash_elem->value = value; return 0; } return prelude_hash_add(hash, key, value); } void *prelude_hash_get(prelude_hash_t *hash, const void *key) { hash_elem_t *hash_elem; return (hash_elem = hash_elem_get(hash, key)) ? hash_elem->value : NULL; } int prelude_hash_elem_destroy(prelude_hash_t *hash, const void *key) { hash_elem_t *hash_elem; hash_elem = hash_elem_get(hash, key); if ( ! hash_elem ) return -1; hash_elem_key_destroy(hash, hash_elem); hash_elem_value_destroy(hash, hash_elem); prelude_list_del(&hash_elem->list); free(hash_elem); return 0; } void prelude_hash_iterate(prelude_hash_t *hash, void (*cb)(void *data)) { unsigned int i; prelude_list_t *tmp; hash_elem_t *hash_elem; for ( i = 0; i < hash->lists_size; i++ ) { prelude_list_for_each(&hash->lists[i], tmp) { hash_elem = prelude_list_entry(tmp, hash_elem_t, list); cb(hash_elem->value); } } } libprelude-5.2.0/src/PaxHeaders.14770/prelude-ident.c0000644000000000000000000000011013726163410020337 xustar000000000000000024 mtime=1599661832.702 24 atime=1599661832.792 24 ctime=1599661999.812 libprelude-5.2.0/src/prelude-ident.c0000644000000000000000000001421413726163410017344 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #if TIME_WITH_SYS_TIME # include # include #else # if HAVE_SYS_TIME_H # include # else # include # endif #endif #include "prelude-log.h" #include "prelude-error.h" #include "prelude-inttypes.h" #include "prelude-ident.h" /* * Partial (no state, no node since the messageid is local to an * analyzer) UUIDv1 implementation. * * Based on RFC4122 reference implementation. */ /* * This is the number of UUID the system is capable of generating * within one resolution of our system clock (the lower the better). * * - UUID has 100ns resolution, so one UUID every 100ns max (RFC 4122). * - gettimeofday() has microsecond resolution (1000ns). * - We can generate 1000 / 100 = 10 UUID per tick. */ #define UUIDS_PER_TICK 10 /* * Time offset between UUID and Unix Epoch time according to standards. * UUID UTC base time is October 15, 1582 - Unix UTC base time is * January 1, 1970) */ #define UUID_TIMEOFFSET 0x01b21dd213814000 struct prelude_ident { uint16_t tick; uint64_t last; uint16_t clockseq; struct { uint32_t time_low; /* bits 0-31 of time field */ uint16_t time_mid; /* bits 32-47 of time field */ uint16_t time_hi_and_version; /* bits 48-59 of time field plus 4 bit version */ uint8_t clock_seq_hi_and_reserved; /* bits 8-13 of clock sequence field plus 2 bit variant */ uint8_t clock_seq_low; /* bits 0-7 of clock sequence field */ } uuid; }; /* * Return the system time as 100ns ticks since UUID epoch. */ static uint64_t get_system_time(void) { struct timeval tv; gettimeofday(&tv, NULL); return ((uint64_t) tv.tv_sec * 10000000) + ((uint64_t) tv.tv_usec * 10) + UUID_TIMEOFFSET; } static uint64_t get_current_time(prelude_ident_t *ident) { uint64_t now; do { now = get_system_time(); /* * if clock value changed since the last UUID generated */ if ( ident->last != now ) { ident->last = now; ident->tick = 0; break; } if ( ident->tick < UUIDS_PER_TICK ) { ident->tick++; break; } /* * We're generating ident faster than our clock resolution * can afford: spin. */ } while ( 1 ); /* * add the count of uuids to low order bits of the clock reading */ return now + ident->tick; } static void uuidgen(prelude_ident_t *ident) { uint64_t timestamp; timestamp = get_current_time(ident); if ( timestamp < ident->last ) ident->clockseq++; ident->uuid.time_low = (uint32_t) (timestamp & 0xffffffff); ident->uuid.time_mid = (uint16_t) ((timestamp >> 32) & 0xffff); ident->uuid.time_hi_and_version = (uint16_t) ((timestamp >> 48) & 0x0fff); ident->uuid.time_hi_and_version |= (1 << 12); ident->uuid.clock_seq_low = ident->clockseq & 0xff; ident->uuid.clock_seq_hi_and_reserved = (ident->clockseq & 0x3f00) >> 8; ident->uuid.clock_seq_hi_and_reserved |= 0x80; } /** * prelude_ident_new: * @ret: Pointer where to store the created object. * * Create a new #prelude_ident_t object with an unique value. * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_ident_new(prelude_ident_t **ret) { struct timeval tv; prelude_ident_t *new; *ret = new = malloc(sizeof(*new)); if ( ! new ) return prelude_error_from_errno(errno); new->last = 0; new->tick = 0; gettimeofday(&tv, NULL); srand((getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec ^ (long) new); new->clockseq = rand() % 65536; return 0; } /** * prelude_ident_generate: * @ident: Pointer to a #prelude_ident_t object. * @out: #prelude_string_t where the ident will be generated. * * Generate an UUID and store it in @out. * * Returns: A negative value if an error occur. */ int prelude_ident_generate(prelude_ident_t *ident, prelude_string_t *out) { uuidgen(ident); return prelude_string_sprintf(out, "%8.8x-%4.4x-%4.4x-%2.2x%2.2x", ident->uuid.time_low, ident->uuid.time_mid, ident->uuid.time_hi_and_version, ident->uuid.clock_seq_hi_and_reserved, ident->uuid.clock_seq_low); } /** * prelude_ident_inc: * @ident: Pointer to a #prelude_ident_t object. * * Deprecated. * * Returns: A new ident. */ uint64_t prelude_ident_inc(prelude_ident_t *ident) { return get_system_time(); } /** * prelude_ident_destroy: * @ident: Pointer to a #prelude_ident_t object. * * Destroy a #prelude_ident_t object. */ void prelude_ident_destroy(prelude_ident_t *ident) { free(ident); } libprelude-5.2.0/src/PaxHeaders.14770/prelude-io.c0000644000000000000000000000011013726163410017643 xustar000000000000000024 mtime=1599661832.703 24 atime=1599661832.792 24 ctime=1599661999.814 libprelude-5.2.0/src/prelude-io.c0000644000000000000000000006036113726163410016654 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #include #include #include "prelude-inttypes.h" #ifdef HAVE_SYS_FILIO_H # include #endif #include "prelude-log.h" #include "prelude-io.h" #include "common.h" #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_IO #include "prelude-error.h" #define CHUNK_SIZE 1024 #ifndef MIN # define MIN(x, y) ((x) < (y) ? (x) : (y)) #endif struct prelude_io { int fd; void *fd_ptr; size_t size; size_t rindex; int (*close)(prelude_io_t *pio); ssize_t (*read)(prelude_io_t *pio, void *buf, size_t count); ssize_t (*write)(prelude_io_t *pio, const void *buf, size_t count); ssize_t (*pending)(prelude_io_t *pio); }; /* * Buffer IO functions. */ static ssize_t buffer_read(prelude_io_t *pio, void *buf, size_t count) { if ( pio->size - pio->rindex == 0 ) return 0; count = MIN(count, pio->size - pio->rindex); memcpy(buf, (unsigned char *) pio->fd_ptr + pio->rindex, count); pio->rindex += count; return count; } static ssize_t buffer_write(prelude_io_t *pio, const void *buf, size_t count) { unsigned char *new; if ( pio->size + count <= pio->size ) return -1; new = _prelude_realloc(pio->fd_ptr, pio->size + count); if ( ! new ) return prelude_error_from_errno(errno); memcpy(new + pio->size, buf, count); pio->fd_ptr = new; pio->size += count; return count; } static int buffer_close(prelude_io_t *pio) { if ( pio->fd_ptr ) { free(pio->fd_ptr); pio->fd_ptr = NULL; pio->size = pio->rindex = 0; } return 0; } static ssize_t buffer_pending(prelude_io_t *pio) { return pio->size - pio->rindex; } /* * System IO functions. */ static ssize_t sys_read(prelude_io_t *pio, void *buf, size_t count) { ssize_t ret; do { ret = read(pio->fd, buf, count); } while ( ret < 0 && errno == EINTR ); if ( ret == 0 ) return prelude_error(PRELUDE_ERROR_EOF); if ( ret < 0 ) { #ifdef ECONNRESET if ( errno == ECONNRESET ) return prelude_error(PRELUDE_ERROR_EOF); #endif return prelude_error_from_errno(errno); } return ret; } static ssize_t sys_write(prelude_io_t *pio, const void *buf, size_t count) { ssize_t ret; do { ret = write(pio->fd, buf, count); } while ( ret < 0 && errno == EINTR ); if ( ret < 0 ) return prelude_error_from_errno(errno); return ret; } static int sys_close(prelude_io_t *pio) { int ret; do { ret = close(pio->fd); } while ( ret < 0 && errno == EINTR ); return (ret >= 0) ? ret : prelude_error_from_errno(errno); } static ssize_t sys_pending(prelude_io_t *pio) { long ret = 0; if ( ioctl(pio->fd, FIONREAD, &ret) < 0 ) return prelude_error_from_errno(errno); return ret; } /* * Buffered IO functions. */ static ssize_t file_read(prelude_io_t *pio, void *buf, size_t count) { FILE *fd; size_t ret; /* * ferror / clearerror can be macro that might dereference fd_ptr. */ fd = pio->fd_ptr; prelude_return_val_if_fail(fd, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = fread(buf, count, 1, fd); if ( ret <= 0 ) { ret = ferror(fd) ? prelude_error_from_errno(errno) : prelude_error(PRELUDE_ERROR_EOF); clearerr(fd); return ret; } /* * fread return the number of *item* read. */ return count; } static ssize_t file_write(prelude_io_t *pio, const void *buf, size_t count) { size_t ret; prelude_return_val_if_fail(pio->fd_ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = fwrite(buf, count, 1, pio->fd_ptr); if ( ret <= 0 ) return ret; /* * fwrite return the number of *item* written. */ return count; } static int file_close(prelude_io_t *pio) { prelude_return_val_if_fail(pio->fd_ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); return fclose(pio->fd_ptr); } static ssize_t file_pending(prelude_io_t *pio) { #ifdef ENOTSUP return prelude_error_from_errno(ENOTSUP); #else return prelude_error(PRELUDE_ERROR_GENERIC); #endif } /* * TLS IO functions */ static int tls_check_error(prelude_io_t *pio, int error) { int ret = 0; const char *alert; switch(error) { case GNUTLS_E_AGAIN: ret = prelude_error(PRELUDE_ERROR_EAGAIN); break; case GNUTLS_E_WARNING_ALERT_RECEIVED: alert = gnutls_alert_get_name(gnutls_alert_get(pio->fd_ptr)); ret = prelude_error_verbose(PRELUDE_ERROR_TLS_WARNING_ALERT, "TLS warning alert from peer: %s", alert); break; case GNUTLS_E_FATAL_ALERT_RECEIVED: alert = gnutls_alert_get_name(gnutls_alert_get(pio->fd_ptr)); ret = prelude_error_verbose(PRELUDE_ERROR_TLS_FATAL_ALERT, "TLS fatal alert from peer: %s", alert); break; case GNUTLS_E_PUSH_ERROR: case GNUTLS_E_PULL_ERROR: case GNUTLS_E_UNEXPECTED_PACKET_LENGTH: ret = prelude_error(PRELUDE_ERROR_EOF); break; default: ret = prelude_error_verbose(PRELUDE_ERROR_TLS, "TLS: %s", gnutls_strerror(error)); } /* * If the error is fatal, deinitialize the session and revert * to system IO. The caller is then expected to call prelude_io_close() * again until it return 0. * * If it's non fatal, simply return the error. The caller is supposed * to resume the prelude_io_close() call still. */ if ( gnutls_error_is_fatal(error) ) { gnutls_deinit(pio->fd_ptr); prelude_io_set_sys_io(pio, pio->fd); } return ret; } static ssize_t tls_read(prelude_io_t *pio, void *buf, size_t count) { ssize_t ret; do { ret = gnutls_record_recv(pio->fd_ptr, buf, count); } while ( ret < 0 && ret == GNUTLS_E_INTERRUPTED ); if ( ret < 0 ) return tls_check_error(pio, ret); if ( ret == 0 ) return prelude_error(PRELUDE_ERROR_EOF); return ret; } static ssize_t tls_write(prelude_io_t *pio, const void *buf, size_t count) { ssize_t ret; do { ret = gnutls_record_send(pio->fd_ptr, buf, count); } while ( ret < 0 && ret == GNUTLS_E_INTERRUPTED ); if ( ret < 0 ) return tls_check_error(pio, ret); return ret; } static int tls_close(prelude_io_t *pio) { int ret; do { ret = gnutls_bye(pio->fd_ptr, GNUTLS_SHUT_RDWR); } while ( ret < 0 && ret == GNUTLS_E_INTERRUPTED ); if ( ret < 0 ) { ret = tls_check_error(pio, ret); if ( prelude_io_is_error_fatal(pio, ret) ) sys_close(pio); return ret; } gnutls_deinit(pio->fd_ptr); /* * this is not expected to fail */ prelude_io_set_sys_io(pio, pio->fd); return sys_close(pio); } static ssize_t tls_pending(prelude_io_t *pio) { ssize_t ret; ret = gnutls_record_check_pending(pio->fd_ptr); if ( ret > 0 ) return ret; ret = sys_pending(pio); if ( ret > 0 ) return ret; return 0; } /* * Forward data from one fd to another using copy. */ static ssize_t copy_forward(prelude_io_t *dst, prelude_io_t *src, size_t count) { int ret; size_t scount; unsigned char buf[8192]; scount = count; while ( count ) { ret = (count < sizeof(buf)) ? count : sizeof(buf); ret = prelude_io_read(src, buf, ret); if ( ret <= 0 ) return ret; count -= ret; ret = prelude_io_write(dst, buf, ret); if ( ret < 0 ) return ret; } return scount; } /** * prelude_io_forward: * @src: Pointer to a #prelude_io_t object. * @dst: Pointer to a #prelude_io_t object. * @count: Number of byte to forward from @src to @dst. * * prelude_io_forward() attempts to transfer up to @count bytes from * the file descriptor identified by @src into the file descriptor * identified by @dst. * * Returns: If the transfer was successful, the number of bytes written * to @dst is returned. On error, -1 is returned, and errno is set appropriately. */ ssize_t prelude_io_forward(prelude_io_t *dst, prelude_io_t *src, size_t count) { prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); return copy_forward(dst, src, count); } /** * prelude_io_read: * @pio: Pointer to a #prelude_io_t object. * @buf: Pointer to the buffer to store data into. * @count: Number of bytes to read. * * prelude_io_read() attempts to read up to @count bytes from the * file descriptor identified by @pio into the buffer starting at @buf. * * If @count is zero, prelude_io_read() returns zero and has no other * results. If @count is greater than SSIZE_MAX, the result is unspecified. * * The case where the read function would be interrupted by a signal is * handled internally. So you don't have to check for EINTR. * * Returns: On success, the number of bytes read is returned (zero * indicates end of file). It is not an error if this number is smaller * than the number of bytes requested; this may happen for example because * fewer bytes are actually available right now or because read() was * interrupted by a signal. * * On error, a negative value is returned. In this case it is left unspecified * whether the file position (if any) changes. */ ssize_t prelude_io_read(prelude_io_t *pio, void *buf, size_t count) { prelude_return_val_if_fail(pio, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(pio->read, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); return pio->read(pio, buf, count); } /** * prelude_io_read_wait: * @pio: Pointer to a #prelude_io_t object. * @buf: Pointer to the buffer to store data into. * @count: Number of bytes to read. * * prelude_io_read_wait() attempts to read up to @count bytes from the * file descriptor identified by @pio into the buffer starting at @buf. * * If @count is zero, prelude_io_read() returns zero and has no other * results. If @count is greater than SSIZE_MAX, the result is unspecified. * * The case where the read function would be interrupted by a signal is * handled internally. So you don't have to check for EINTR. * * prelude_io_read_wait() always return the number of bytes requested. * Be carefull that this function is blocking. * * Returns: On success, the number of bytes read is returned (zero * indicates end of file). * * On error, -1 is returned, and errno is set appropriately. In this * case it is left unspecified whether the file position (if any) changes. */ ssize_t prelude_io_read_wait(prelude_io_t *pio, void *buf, size_t count) { ssize_t ret; size_t n = 0; struct pollfd pfd; unsigned char *in = buf; prelude_return_val_if_fail(pio, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); pfd.fd = prelude_io_get_fd(pio); pfd.events = POLLIN; do { ret = poll(&pfd, 1, -1); if ( ret < 0 ) return prelude_error_from_errno(errno); if ( ! (pfd.revents & POLLIN) ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected POLLIN event"); ret = prelude_io_read(pio, &in[n], count - n); if ( ret < 0 ) return ret; n += (size_t) ret; } while ( n != count ); return (ssize_t) n; } /** * prelude_io_read_delimited: * @pio: Pointer to a #prelude_io_t object. * @buf: Pointer to the address of a buffer to store address of data into. * * prelude_io_read_delimited() read message written by prelude_write_delimited(). * Theses messages are sents along with the len of the message. * * Uppon return the @buf argument is updated to point on a newly allocated * buffer containing the data read. The @count argument is set to the number of * bytes the message was containing. * * The case where the read function would be interrupted by a signal is * handled internally. So you don't have to check for EINTR. * * Returns: On success, the number of bytes read is returned (zero * indicates end of file). * * On error, -1 is returned, and errno is set appropriately. In this * case it is left unspecified whether the file position (if any) changes. */ ssize_t prelude_io_read_delimited(prelude_io_t *pio, unsigned char **buf) { ssize_t ret; size_t count; uint16_t msglen; prelude_return_val_if_fail(pio, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = prelude_io_read_wait(pio, &msglen, sizeof(msglen)); if ( ret <= 0 ) return ret; count = ntohs(msglen); *buf = malloc(count); if ( ! *buf ) return prelude_error_from_errno(errno); ret = prelude_io_read_wait(pio, *buf, count); if ( ret < 0 ) return ret; return count; } /** * prelude_io_write: * @pio: Pointer to a #prelude_io_t object. * @buf: Pointer to the buffer to write data from. * @count: Number of bytes to write. * * prelude_io_write() writes up to @count bytes to the file descriptor * identified by @pio from the buffer starting at @buf. POSIX requires * that a read() which can be proved to occur after a write() has returned * returns the new data. Note that not all file systems are POSIX conforming. * * The case where the write() function would be interrupted by a signal is * handled internally. So you don't have to check for EINTR. * * Returns: On success, the number of bytes written are returned (zero * indicates nothing was written). On error, -1 is returned, and errno * is set appropriately. If @count is zero and the file descriptor refers * to a regular file, 0 will be returned without causing any other effect. * For a special file, the results are not portable. */ ssize_t prelude_io_write(prelude_io_t *pio, const void *buf, size_t count) { prelude_return_val_if_fail(pio, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(pio->write, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); return pio->write(pio, buf, count); } /** * prelude_io_write_delimited: * @pio: Pointer to a #prelude_io_t object. * @buf: Pointer to the buffer to write data from. * @count: Number of bytes to write. * * prelude_io_write_delimited() writes up to @count bytes to the file descriptor * identified by @pio from the buffer starting at @buf. POSIX requires * that a read() which can be proved to occur after a write() has returned * returns the new data. Note that not all file systems are POSIX conforming. * * prelude_io_write_delimited() also write the len of the data to be sent. * which allow prelude_io_read_delimited() to safely know if it got all the * data a given write contain. * * The case where the write() function would be interrupted by a signal is * handled internally. So you don't have to check for EINTR. * * Returns: On success, the number of bytes written are returned (zero * indicates nothing was written). On error, -1 is returned, and errno * is set appropriately. */ ssize_t prelude_io_write_delimited(prelude_io_t *pio, const void *buf, uint16_t count) { int ret; uint16_t nlen; prelude_return_val_if_fail(pio, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); nlen = htons(count); ret = prelude_io_write(pio, &nlen, sizeof(nlen)); if ( ret <= 0 ) return ret; ret = prelude_io_write(pio, buf, count); if ( ret <= 0 ) return ret; return count; } /** * prelude_io_close: * @pio: Pointer to a #prelude_io_t object. * * prelude_io_close() closes the file descriptor indentified by @pio, * * The case where the close() function would be interrupted by a signal is * handled internally. So you don't have to check for EINTR. * * However, and especially when the underlaying layer is TLS, prelude_io_close() * might return error. If this happen, you should continue calling the function * until it return zero. * * Returns: zero on success, or -1 if an error occurred. */ int prelude_io_close(prelude_io_t *pio) { prelude_return_val_if_fail(pio, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(pio->close, prelude_error(PRELUDE_ERROR_ASSERTION)); return pio->close(pio); } /** * prelude_io_new: * @ret: Pointer where to store the created #prelude_io_t object. * * Create a new prelude IO object. * * Returns: 0 on success, or a negative value if an error occur. */ int prelude_io_new(prelude_io_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); return 0; } /** * prelude_io_set_file_io: * @pio: A pointer on the #prelude_io_t object. * @fd: File descriptor identifying a file. * * Setup the @pio object to work with file I/O function. * The @pio object is then associated with @fd. */ void prelude_io_set_file_io(prelude_io_t *pio, FILE *fdptr) { prelude_return_if_fail(pio); prelude_return_if_fail(fdptr); pio->fd = fileno(fdptr); pio->fd_ptr = fdptr; pio->read = file_read; pio->write = file_write; pio->close = file_close; pio->pending = file_pending; } /** * prelude_io_set_tls_io: * @pio: A pointer on the #prelude_io_t object. * @tls: Pointer on the TLS structure holding the TLS connection data. * * Setup the @pio object to work with TLS based I/O function. * The @pio object is then associated with @tls. */ void prelude_io_set_tls_io(prelude_io_t *pio, void *tls) { union { void *ptr; int fd; } data; prelude_return_if_fail(pio); prelude_return_if_fail(tls); data.ptr = gnutls_transport_get_ptr(tls); pio->fd = data.fd; pio->fd_ptr = tls; pio->read = tls_read; pio->write = tls_write; pio->close = tls_close; pio->pending = tls_pending; } /** * prelude_io_set_sys_io: * @pio: A pointer on the #prelude_io_t object. * @fd: A file descriptor. * * Setup the @pio object to work with system based I/O function. * The @pio object is then associated with @fd. */ void prelude_io_set_sys_io(prelude_io_t *pio, int fd) { prelude_return_if_fail(pio); pio->fd = fd; pio->fd_ptr = NULL; pio->read = sys_read; pio->write = sys_write; pio->close = sys_close; pio->pending = sys_pending; } int prelude_io_set_buffer_io(prelude_io_t *pio) { prelude_return_val_if_fail(pio, prelude_error(PRELUDE_ERROR_ASSERTION)); pio->fd_ptr = NULL; pio->size = pio->rindex = 0; pio->read = buffer_read; pio->write = buffer_write; pio->close = buffer_close; pio->pending = buffer_pending; return 0; } /** * prelude_io_get_fd: * @pio: A pointer on a #prelude_io_t object. * * Returns: The FD associated with this object. */ int prelude_io_get_fd(prelude_io_t *pio) { prelude_return_val_if_fail(pio, prelude_error(PRELUDE_ERROR_ASSERTION)); return pio->fd; } /** * prelude_io_get_fdptr: * @pio: A pointer on a #prelude_io_t object. * * Returns: Pointer associated with this object (file, tls, buffer, or NULL). */ void *prelude_io_get_fdptr(prelude_io_t *pio) { prelude_return_val_if_fail(pio, NULL); return pio->fd_ptr; } /** * prelude_io_destroy: * @pio: Pointer to a #prelude_io_t object. * * Destroy the @pio object. */ void prelude_io_destroy(prelude_io_t *pio) { prelude_return_if_fail(pio); free(pio); } /** * prelude_io_pending: * @pio: Pointer to a #prelude_io_t object. * * prelude_io_pending return the number of bytes waiting to * be read on an TLS or socket fd. * * Returns: Number of byte waiting to be read on @pio, or -1 * if @pio is not of type TLS or socket. */ ssize_t prelude_io_pending(prelude_io_t *pio) { prelude_return_val_if_fail(pio, prelude_error(PRELUDE_ERROR_ASSERTION)); return pio->pending(pio); } /** * prelude_io_is_error_fatal: * @pio: Pointer to a #prelude_io_t object. * @error: Error returned by one of the #prelude_io_t function. * * Check whether the returned error is fatal, or not. * * Returns: TRUE if error is fatal, FALSE if it is not. */ prelude_bool_t prelude_io_is_error_fatal(prelude_io_t *pio, int error) { prelude_error_code_t code; prelude_return_val_if_fail(pio, FALSE); if ( ! error ) return FALSE; code = prelude_error_get_code(error); if ( code == PRELUDE_ERROR_EAGAIN || code == PRELUDE_ERROR_EINTR || code == PRELUDE_ERROR_TLS_WARNING_ALERT ) return FALSE; return TRUE; } /** * prelude_io_set_write_callback: * @pio: Pointer to a #prelude_io_t object. * @write: Callback function to be called on prelude_io_write(). * * Set an user defined write callback function to be called on * prelude_io_write(). */ void prelude_io_set_write_callback(prelude_io_t *pio, ssize_t (*write)(prelude_io_t *io, const void *buf, size_t count)) { pio->write = write; } /** * prelude_io_set_read_callback: * @pio: Pointer to a #prelude_io_t object. * @read: Callback function to be called on prelude_io_read(). * * Set an user defined read callback function to be called on * prelude_io_read(). */ void prelude_io_set_read_callback(prelude_io_t *pio, ssize_t (*read)(prelude_io_t *io, void *buf, size_t count)) { pio->read = read; } /** * prelude_io_set_pending_callback: * @pio: Pointer to a #prelude_io_t object. * @pending: Callback function to be called on prelude_io_pending(). * * Set an user defined read callback function to be called on * prelude_io_pending(). */ void prelude_io_set_pending_callback(prelude_io_t *pio, ssize_t (*pending)(prelude_io_t *io)) { pio->pending = pending; } /** * prelude_io_set_fdptr: * @pio: Pointer to a #prelude_io_t object. * @ptr: Pointer to user defined data. * * Set an user defined pointer that might be retrieved using * prelude_io_get_fdptr(). */ void prelude_io_set_fdptr(prelude_io_t *pio, void *ptr) { pio->fd_ptr = ptr; } libprelude-5.2.0/src/PaxHeaders.14770/prelude-log.c0000644000000000000000000000011013726163410020015 xustar000000000000000024 mtime=1599661832.703 24 atime=1599661832.792 24 ctime=1599661999.816 libprelude-5.2.0/src/prelude-log.c0000644000000000000000000002707713726163410017035 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "libmissing.h" #include #include #include #include #include #include #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) # include #else # include #endif #include "common.h" #include "prelude-log.h" #include "prelude-error.h" #include "prelude-inttypes.h" #if ! defined (PRELUDE_VA_COPY) # if defined (__GNUC__) && defined (__PPC__) && (defined (_CALL_SYSV) || defined (_WIN32)) # define PRELUDE_VA_COPY(ap1, ap2) (*(ap1) = *(ap2)) # elif defined (PRELUDE_VA_COPY_AS_ARRAY) # define PRELUDE_VA_COPY(ap1, ap2) memmove ((ap1), (ap2), sizeof(va_list)) # else /* va_list is a pointer */ # define PRELUDE_VA_COPY(ap1, ap2) ((ap1) = (ap2)) # endif #endif static int do_log_print(prelude_log_t level, const char *str); static int debug_level = 0; static int raise_abort_level = 0; prelude_bool_t raise_abort_set = FALSE; static int log_level = PRELUDE_LOG_INFO; static char *global_prefix = NULL; static FILE *debug_logfile = NULL; static prelude_log_flags_t log_flags = 0; static int (*global_log_cb)(prelude_log_t level, const char *str) = do_log_print; static void (*external_log_cb)(prelude_log_t level, const char *str) = NULL; #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ #define LOG_CRIT EVENTLOG_WARNING_TYPE #define LOG_ERR EVENTLOG_ERROR_TYPE #define LOG_WARNING EVENTLOG_WARNING_TYPE #define LOG_INFO EVENTLOG_INFORMATION_TYPE #define LOG_DEBUG EVENTLOG_INFORMATION_TYPE static void syslog_win32(int priority, const char *log) { static HANDLE event_source = NULL; if ( ! event_source ) event_source = RegisterEventSource(NULL, TEXT("Prelude")); ReportEvent(event_source, /* handle of event source */ (WORD)priority, /* event type */ 0, /* event category */ 0, /* event ID */ NULL, /* current user's SID */ 1, /* strings in szMsg */ 0, /* no bytes of raw data */ &log, /* array of error strings */ NULL); /* no raw data */ } #endif static int do_log_syslog(prelude_log_t level, const char *str) { int slevel = LOG_INFO; if ( level == PRELUDE_LOG_CRIT ) slevel = LOG_CRIT; else if ( level == PRELUDE_LOG_ERR ) slevel = LOG_ERR; else if ( level == PRELUDE_LOG_WARN ) slevel = LOG_WARNING; else if ( level == PRELUDE_LOG_INFO ) slevel = LOG_INFO; else if ( level >= PRELUDE_LOG_DEBUG ) slevel = LOG_DEBUG; while (*str == '\n' ) str++; #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) syslog(slevel, "%s", str); #else syslog_win32(slevel, str); #endif return 0; } static inline FILE *get_out_fd(prelude_log_t level) { return (level < PRELUDE_LOG_INFO) ? stderr : stdout; } static int do_log_print(prelude_log_t level, const char *str) { int ret; FILE *out = get_out_fd(level); ret = fprintf(out, "%s", str); if ( ret < 0 && errno == EBADF ) return -1; return 0; } static int do_log_external(prelude_log_t level, const char *str) { external_log_cb(level, str); return 0; } static inline prelude_bool_t need_to_log(prelude_log_t level, prelude_log_t cur) { return (level > cur) ? FALSE : TRUE; } static const char *level_to_string(prelude_log_t level) { if ( level >= PRELUDE_LOG_DEBUG ) return "DEBUG"; else if ( level == PRELUDE_LOG_ERR ) return "ERROR"; else if ( level == PRELUDE_LOG_INFO ) return "INFO"; else if ( level == PRELUDE_LOG_WARN ) return "WARNING"; else if ( level == PRELUDE_LOG_CRIT ) return "CRITICAL"; return ""; } static ssize_t get_header(prelude_log_t level, char *buf, size_t size) { int ret; struct tm *t; size_t len = 0; time_t now = time(NULL); buf[0] = 0; if ( ! (log_flags & PRELUDE_LOG_FLAGS_SYSLOG) ) { t = localtime(&now); if ( t ) len = strftime(buf, size, "%d %b %H:%M:%S ", t); ret = snprintf(buf + len, size - len, "(process:%d) %s: ", (int) getpid(), level_to_string(level)); if ( ret < 0 || (size_t) ret >= (size - len) ) return -1; } else { ret = snprintf(buf + len, size - len, "%s: ", level_to_string(level)); if ( ret < 0 || (size_t) ret >= (size - len) ) return -1; } return (size_t) len + ret; } static void do_log_v(prelude_log_t level, const char *file, const char *function, int line, const char *fmt, va_list ap) { int ret; va_list bkp; char buf[1024]; ssize_t len = 0; if ( global_log_cb == do_log_print || global_log_cb == do_log_syslog ) { len = get_header(level, buf, sizeof(buf)); if ( len < 0 ) return; } PRELUDE_VA_COPY(bkp, ap); ret = vsnprintf(buf + len, sizeof(buf) - len, fmt, ap); if ( ret < 0 || (size_t) ret >= (sizeof(buf) - len) ) goto out; if ( level <= PRELUDE_LOG_ERR || level >= PRELUDE_LOG_DEBUG ) { for ( len += ret; buf[len - 1] == '\n' ; len-- ); snprintf(buf + len, sizeof(buf) - len, " (%s:%d %s)\n", file, line, function); } if ( need_to_log(level, log_level) || need_to_log(level, debug_level) ) { ret = global_log_cb(level, buf); if ( ret < 0 && global_log_cb == do_log_print ) { prelude_log_set_flags(PRELUDE_LOG_FLAGS_SYSLOG); do_log_v(level, file, function, line, fmt, bkp); goto out; } if ( debug_logfile ) fprintf(debug_logfile, "%s", buf); } out: va_end(bkp); } void _prelude_log_v(prelude_log_t level, const char *file, const char *function, int line, const char *fmt, va_list ap) { if ( ! need_to_log(level, log_level) && ! need_to_log(level, debug_level) ) return; do_log_v(level, file, function, line, fmt, ap); } /** * _prelude_log: * @level: PRELUDE_LOG_PRIORITY_INFO or PRELUDE_LOG_PRIORITY_ERROR. * @file: The caller filename. * @function: The caller function name. * @line: The caller line number. * @fmt: Format string. * @...: Variable argument list. * * This function should not be called directly. * Use the #log macro defined in prelude-log.h */ void _prelude_log(prelude_log_t level, const char *file, const char *function, int line, const char *fmt, ...) { va_list ap; if ( ! need_to_log(level, log_level) && ! need_to_log(level, debug_level) ) return; va_start(ap, fmt); do_log_v(level, file, function, line, fmt, ap); va_end(ap); if ( raise_abort_set && level == raise_abort_level ) abort(); } /** * prelude_log_set_flags: * @flags: */ void prelude_log_set_flags(prelude_log_flags_t flags) { if ( flags & PRELUDE_LOG_FLAGS_QUIET ) log_level = PRELUDE_LOG_WARN; if ( flags & PRELUDE_LOG_FLAGS_SYSLOG ) global_log_cb = do_log_syslog; else global_log_cb = do_log_print; log_flags = flags; } prelude_log_flags_t prelude_log_get_flags(void) { return log_flags; } void prelude_log_set_level(prelude_log_t level) { log_level = level; } void prelude_log_set_debug_level(int level) { debug_level = PRELUDE_LOG_DEBUG + level; } /** * prelude_log_set_prefix: * @prefix: Pointer to the prefix to use. * * Tell the Prelude standard logger to add @prefix before logging * a line. */ void prelude_log_set_prefix(char *prefix) { global_prefix = prefix; } char *prelude_log_get_prefix(void) { return global_prefix; } /** * prelude_log_set_callback: * @log_cb: Callback function. * * @log_cb() will be called in place of the prelude function usally * used for loging. */ void prelude_log_set_callback(void log_cb(prelude_log_t level, const char *str)) { external_log_cb = log_cb; global_log_cb = do_log_external; } int prelude_log_set_logfile(const char *filename) { if ( ! filename && debug_logfile ) { fclose(debug_logfile); debug_logfile = NULL; } else { debug_logfile = fopen(filename, "a"); if ( ! debug_logfile ) return prelude_error_from_errno(errno); } return 0; } void _prelude_log_set_abort_level(prelude_log_t level) { raise_abort_set = TRUE; raise_abort_level = level; } int _prelude_log_set_abort_level_from_string(const char *level) { size_t i; char *eptr; long lvalue; struct { const char *prefix; prelude_log_t level; } tbl[] = { { "CRIT", PRELUDE_LOG_CRIT }, { "ERR", PRELUDE_LOG_ERR }, { "WARN", PRELUDE_LOG_WARN }, { "INFO", PRELUDE_LOG_INFO }, { "DEBUG", PRELUDE_LOG_DEBUG } }; prelude_return_val_if_fail(level != NULL, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strncasecmp(tbl[i].prefix, level, strlen(tbl[i].prefix)) == 0 ) { _prelude_log_set_abort_level(tbl[i].level); return 0; } } lvalue = strtol(level, &eptr, 10); if ( eptr != (level + strlen(level)) || lvalue == LONG_MIN || lvalue == LONG_MAX ) { prelude_log(PRELUDE_LOG_WARN, "Invalid abort level specified: '%s'.\n", level); return -1; } _prelude_log_set_abort_level(lvalue); return 0; } #ifndef HAVE_VARIADIC_MACROS void prelude_log(prelude_log_t level, const char *fmt, ...) { va_list ap; va_start(ap, fmt); _prelude_log_v(level, "", "", 0, fmt, ap); va_end(ap); } void prelude_log_debug(prelude_log_t level, const char *fmt, ...) { va_list ap; va_start(ap, fmt); _prelude_log_v(PRELUDE_LOG_DEBUG + level, "", "", 0, fmt, ap); va_end(ap); } #endif libprelude-5.2.0/src/PaxHeaders.14770/prelude-msg.c0000644000000000000000000000011013726163410020022 xustar000000000000000024 mtime=1599661832.703 24 atime=1599661832.793 24 ctime=1599661999.817 libprelude-5.2.0/src/prelude-msg.c0000644000000000000000000007012013726163410017025 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #if TIME_WITH_SYS_TIME # include # include #else # if HAVE_SYS_TIME_H # include # else # include # endif #endif #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_MESSAGE #include "prelude-error.h" #include "common.h" #include "prelude-log.h" #include "prelude-inttypes.h" #include "prelude-extract.h" #include "prelude-io.h" #include "prelude-linked-object.h" #include "prelude-async.h" #include "prelude-msg.h" #define MSGBUF_SIZE 8192 #define PRELUDE_MSG_VERSION 1 #define PRELUDE_MSG_HDR_SIZE 16 #define MINIMUM_FRAGMENT_DATA_SIZE 1 typedef struct { uint8_t version; uint8_t tag; uint8_t priority; uint8_t is_fragment; uint32_t datalen; uint32_t tv_sec; uint32_t tv_usec; } prelude_msg_hdr_t; struct prelude_msg { PRELUDE_ASYNC_OBJECT; int refcount; uint32_t read_index; uint32_t header_index; uint32_t write_index; uint32_t fd_write_index; prelude_msg_hdr_t hdr; unsigned char hdrbuf[PRELUDE_MSG_HDR_SIZE]; unsigned char *payload; void *send_msg_data; int (*flush_msg_cb)(prelude_msg_t **msg, void *data); }; /* * Anything bigger than this will be discarded. */ static const size_t max_message_size = 100 * 1024 * 1024; static int call_alloc_cb(prelude_msg_t **msg) { int ret; ret = (*msg)->flush_msg_cb(msg, (*msg)->send_msg_data); if ( ret < 0 ) return ret; /* * Within the callback, the caller have the choise to use * a newly allocated message or to flush the current message and * reuse it. * * We have to reset write_index and is_fragment header member * in order to properly address the message buffer. And in order * for not all message to not look like fragment. */ (*msg)->header_index = 0; (*msg)->write_index = PRELUDE_MSG_HDR_SIZE; (*msg)->hdr.is_fragment = 0; return 0; } static void write_message_header(prelude_msg_t *msg) { uint32_t dlen; struct timeval tv; uint32_t hdr_offset = msg->header_index; dlen = htonl(msg->write_index - msg->header_index - PRELUDE_MSG_HDR_SIZE); msg->payload[hdr_offset++] = PRELUDE_MSG_VERSION; msg->payload[hdr_offset++] = msg->hdr.tag; msg->payload[hdr_offset++] = msg->hdr.priority; msg->payload[hdr_offset++] = msg->hdr.is_fragment; gettimeofday(&tv, NULL); msg->hdr.tv_sec = htonl(tv.tv_sec); msg->hdr.tv_usec = htonl(tv.tv_usec); memcpy(&msg->payload[hdr_offset], &dlen, sizeof(dlen)); memcpy(&msg->payload[hdr_offset + 4], &msg->hdr.tv_sec, sizeof(msg->hdr.tv_sec)); memcpy(&msg->payload[hdr_offset + 8], &msg->hdr.tv_usec, sizeof(msg->hdr.tv_usec)); } static int set_data(prelude_msg_t **m, const void *buf, size_t size) { int ret; size_t remaining; prelude_msg_t *msg = *m; remaining = (msg->hdr.datalen - msg->write_index); assert(msg->flush_msg_cb != NULL || remaining >= size); if ( size > remaining ) { /* * there is not enough free buffer space to store the whole * data in the message. Store what we can, and call the message * flushing function, which'll emit the current buffer * and allocate a new one. */ memcpy(msg->payload + msg->write_index, buf, remaining); size -= remaining; msg->write_index += remaining; buf = (const uint8_t *) buf + remaining; /* * this is a fragment of message. */ msg->hdr.is_fragment = 1; /* * the caller might destroy the message after this and re-allocate * one... or use synchronous send and reuse the same message. */ ret = call_alloc_cb(m); if ( ret < 0 ) return ret; return set_data(m, buf, size); } memcpy(msg->payload + msg->write_index, buf, size); msg->write_index += size; return 0; } inline static int read_message_data(unsigned char *dst, size_t *size, prelude_io_t *fd) { ssize_t ret; size_t count = *size; *size = 0; /* * Read the whole header. */ do { ret = prelude_io_read(fd, dst + *size, count - *size); if ( ret < 0 ) return ret; *size += ret; } while ( *size != count ); return 0; } inline static int slice_message_header(prelude_msg_t *msg, unsigned char *hdrbuf) { uint32_t tmp; if ( ! msg->hdr.datalen ) { /* * tag and priority are set on first fragment only. */ msg->hdr.version = hdrbuf[0]; msg->hdr.tag = hdrbuf[1]; msg->hdr.tv_sec = prelude_extract_uint32(hdrbuf + 8); msg->hdr.tv_usec = prelude_extract_uint32(hdrbuf + 12); } /* * message priority might be set in any fragment. */ if ( msg->hdr.priority == PRELUDE_MSG_PRIORITY_NONE ) msg->hdr.priority = hdrbuf[2]; msg->hdr.is_fragment = hdrbuf[3]; tmp = prelude_extract_uint32(hdrbuf + 4); if ( (msg->hdr.datalen + tmp) <= msg->hdr.datalen ) return prelude_error(PRELUDE_ERROR_INVAL_LENGTH); if ( (msg->hdr.datalen + tmp) >= max_message_size ) return prelude_error_verbose(PRELUDE_ERROR_INVAL_LENGTH, "maximum message size exceeded: %" PRELUDE_PRIu64 " > %" PRELUDE_PRIu64, (uint64_t) (msg->hdr.datalen + tmp), (uint64_t) max_message_size); msg->hdr.datalen += tmp; return 0; } static int read_message_header(prelude_msg_t **msgptr, prelude_io_t *fd) { int ret; size_t count; uint32_t old_dlen; prelude_msg_t *msg = *msgptr; unsigned char *hdrptr = &msg->hdrbuf[msg->header_index]; count = PRELUDE_MSG_HDR_SIZE - msg->header_index; ret = read_message_data(hdrptr, &count, fd); msg->header_index += count; if ( ret < 0 ) return ret; /* * we have a full header. Move it from our buffer * into a real header structure. */ old_dlen = msg->hdr.datalen; ret = slice_message_header(msg, msg->hdrbuf); if ( ret < 0 ) return ret; /* * sanity check. An attacker could arrange to make datalen * wrap arround by specifying an odd dlen in a fragment header. */ if ( (msg->hdr.datalen + PRELUDE_MSG_HDR_SIZE) <= old_dlen ) return prelude_error(PRELUDE_ERROR_INVAL_LENGTH); /* * Check protocol version. */ if ( msg->hdr.version != PRELUDE_MSG_VERSION ) return prelude_error_verbose(PRELUDE_ERROR_PROTOCOL_VERSION, "invalid protocol version '%d' (expected %d)", msg->hdr.version, PRELUDE_MSG_VERSION); msg->write_index = msg->hdr.datalen + PRELUDE_MSG_HDR_SIZE; /* * allocate our data buffer. We also want our buffer to be able to contain an * header so that it can be eventually sent... */ msg = _prelude_realloc(msg, sizeof(*msg) + PRELUDE_MSG_HDR_SIZE + msg->hdr.datalen); if ( ! msg ) return prelude_error_from_errno(errno); *msgptr = msg; msg->payload = ((unsigned char *) msg) + sizeof(*msg); return 0; } static int read_message_content(prelude_msg_t **m, prelude_io_t *fd) { int ret; size_t count; prelude_msg_t *msg = *m; count = (msg->hdr.datalen + PRELUDE_MSG_HDR_SIZE) - msg->read_index; ret = read_message_data(&msg->payload[msg->read_index], &count, fd); msg->read_index += count; if ( ret != 0 ) /* * there is still data to be read. */ return ret; if ( msg->hdr.is_fragment ) { /* * We just finished reading one fragment (not the last one). * Next bytes will be another message header. So reset header_index * to trigger header read on next prelude_msg_read() call. */ msg->header_index = 0; return prelude_msg_read(m, fd); } /* * we now have a full message. * * reset is_fragment to 0, so that if the message is written in the future, * it won't be marked as fragmented (we already defragmented it). * * Reset header_index to 0 because we would compute an invalid datalen * if this message is to be written in the future. * * Set read index to the point where data start, so that our buffer is correctly * addressed. */ msg->hdr.is_fragment = 0; msg->header_index = 0; msg->read_index = PRELUDE_MSG_HDR_SIZE; return ret; } /** * prelude_msg_read: * @msg: Pointer on a #prelude_msg_t object address. * @pio: Pointer on a #prelude_io_t object. * * Read a message on @pio into @msg. If @msg is NULL, it is * allocated. This function will never block. * * Returns: 0 if reading the message is complete, or a #prelude_error_t * error if an error occured. Take particular attention to #PRELUDE_ERROR_EAGAIN * and PRELUDE_ERROR_EOF. */ int prelude_msg_read(prelude_msg_t **msg, prelude_io_t *pio) { int ret = 0; /* * *msg is NULL, * this mean the caller want to work on a new message. */ if ( ! *msg ) { *msg = malloc(sizeof(prelude_msg_t)); if ( ! *msg ) return prelude_error_from_errno(errno); (*msg)->refcount = 1; (*msg)->hdr.datalen = 0; (*msg)->hdr.priority = PRELUDE_MSG_PRIORITY_NONE; (*msg)->payload = NULL; (*msg)->write_index = 0; (*msg)->header_index = 0; (*msg)->fd_write_index = 0; (*msg)->read_index = PRELUDE_MSG_HDR_SIZE; } /* * We didn't finished reading the message header yet. */ if ( (*msg)->header_index != PRELUDE_MSG_HDR_SIZE ) ret = read_message_header(msg, pio); /* * Notice that ret is initialized to 0 so that we will read * the message if this function is called and we already have * the header. * * In case read_message_header return PRELUDE_ERROR_EAGAIN, * we don't want to try to read the rest of the message right now, * as it is unlikely we can read something. * * In case it return 0, there is some chance there are other data * waiting to be read. */ if ( (*msg)->payload && ret == 0 ) ret = read_message_content(msg, pio); /* * check for msg as well since this function can be called recursively. */ if ( *msg && ret < 0 && prelude_error_get_code(ret) != PRELUDE_ERROR_EAGAIN ) { prelude_msg_destroy(*msg); /* * reset message to NULL, because the caller might not take * care of the return value enough (and may call us again with an * undefined *msg address. */ *msg = NULL; } return ret; } /** * prelude_msg_get: * @msg: Pointer on a #prelude_msg_t object representing the message to get data from. * @tag: Pointer on a 8 bits unsigned integer to store the message tag. * @len: Pointer on a 32 bits unsigned integer to store the message len to. * @buf: Address of a pointer to store the buffer starting address. * * prelude_msg_get() read the next data chunk contained in the message. * @tag is updated to contain the kind of data the chunk contain. * @len is updated to contain the len of the data chunk. * @buf is updated to point on the data chunk. * * Returns: 0 on success, or a #prelude_error_t value on error. */ int prelude_msg_get(prelude_msg_t *msg, uint8_t *tag, uint32_t *len, void **buf) { if ( msg->read_index == (msg->hdr.datalen + PRELUDE_MSG_HDR_SIZE) ) { /* * no more sub - messages in the buffer. */ return prelude_error(PRELUDE_ERROR_EOF); } /* * bound check our buffer, * so that we won't overflow if it doesn't contain tag and len. */ if ( msg->read_index > (msg->hdr.datalen + PRELUDE_MSG_HDR_SIZE - 5) ) return prelude_error(PRELUDE_ERROR_INVAL_LENGTH); /* * slice wanted data. */ *tag = msg->payload[msg->read_index++]; *len = prelude_extract_uint32(&msg->payload[msg->read_index]); msg->read_index += sizeof(uint32_t); if ( ! *len ) return 0; /* * bound check again, against specified len. */ if ( (msg->read_index + *len) <= msg->read_index ) return prelude_error(PRELUDE_ERROR_INVAL_LENGTH); if ( (msg->read_index + *len) > (msg->hdr.datalen + PRELUDE_MSG_HDR_SIZE) ) return prelude_error(PRELUDE_ERROR_INVAL_LENGTH); *buf = &msg->payload[msg->read_index]; msg->read_index += *len; return 0; } /** * prelude_msg_forward: * @msg: Pointer on a #prelude_msg_t object containing a message header. * @dst: Pointer on a #prelude_io_t object to send message to. * @src: Pointer on a #prelude_io_t object to read message from. * * prelude_msg_forward() read the message corresponding to the @msg object * containing the message header previously gathered using prelude_msg_read_header() * from the @src object, and transfer it to @dst. The header is also transfered. * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_msg_forward(prelude_msg_t *msg, prelude_io_t *dst, prelude_io_t *src) { ssize_t ret; uint32_t dlen = htonl(msg->hdr.datalen); unsigned char buf[PRELUDE_MSG_HDR_SIZE]; buf[0] = msg->hdr.version; buf[1] = msg->hdr.tag; buf[2] = msg->hdr.priority; buf[3] = msg->hdr.is_fragment; memcpy(&buf[4], &dlen, sizeof(dlen)); ret = prelude_io_write(dst, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = prelude_io_forward(dst, src, msg->hdr.datalen); if ( ret < 0 ) return ret; return 0; } /** * prelude_msg_write_r: * @msg: Pointer on a #prelude_msg_t object containing the message. * @dst: Pointer on a #prelude_io_t object to send the message to. * @windex: Number of byte written to @dst * * prelude_msg_write_r() write the message corresponding to the @msg * object to @dst. The message should have been created using the * prelude_msg_new() and prelude_msg_set() functions. * * @windex is used to hold the number of byte written to @dst in case * the write could not complete (PRELUDE_ERROR_EAGAIN). In case the write * is complete, it's value is reset to 0. * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_msg_write_r(prelude_msg_t *msg, prelude_io_t *dst, uint32_t *windex) { ssize_t ret; uint32_t dlen = msg->write_index; /* * no need to send... There's no data in this message. */ if ( msg->write_index - PRELUDE_MSG_HDR_SIZE <= 0 ) return 0; /* * if the message header index is 0 (write called, without * prelude_msg_mark_end() first), mark end of the message * cause the caller didn't do it in this case. */ if ( msg->header_index == 0 ) write_message_header(msg); /* * in this case, prelude_msg_mark_end() was called. */ else if ( ! msg->hdr.is_fragment ) dlen -= PRELUDE_MSG_HDR_SIZE; ret = prelude_io_write(dst, msg->payload + *windex, dlen - *windex); if ( ret < 0 ) return ret; *windex += ret; if ( *windex == dlen ) { *windex = 0; return 0; } return prelude_error(PRELUDE_ERROR_EAGAIN); } /** * prelude_msg_write: * @msg: Pointer on a #prelude_msg_t object containing the message. * @dst: Pointer on a #prelude_io_t object to send the message to. * * prelude_msg_write() write the message corresponding to the @msg * object to @dst. The message should have been created using the * prelude_msg_new() and prelude_msg_set() functions. * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_msg_write(prelude_msg_t *msg, prelude_io_t *dst) { return prelude_msg_write_r(msg, dst, &msg->fd_write_index); } /** * prelude_msg_recycle: * @msg: Pointer on #prelude_msg_t object. * * Recycle @msg so you can write at it again, even * thought it was written. */ void prelude_msg_recycle(prelude_msg_t *msg) { msg->header_index = 0; msg->fd_write_index = 0; msg->write_index = PRELUDE_MSG_HDR_SIZE; msg->payload = (unsigned char *) msg + sizeof(*msg); if ( msg->read_index ) msg->read_index = PRELUDE_MSG_HDR_SIZE; } /** * prelude_msg_mark_end: * @msg: Pointer on #prelude_msg_t object. * * Mark end of message in the @msg buffer, so you can continue * adding different message in the same buffer. */ void prelude_msg_mark_end(prelude_msg_t *msg) { int ret; if ( msg->write_index - msg->header_index - PRELUDE_MSG_HDR_SIZE <= 0 ) return; write_message_header(msg); if ( msg->write_index + PRELUDE_MSG_HDR_SIZE + MINIMUM_FRAGMENT_DATA_SIZE > msg->hdr.datalen ) { ret = call_alloc_cb(&msg); if ( ret < 0 ) return; } else { msg->header_index = msg->write_index; msg->write_index += PRELUDE_MSG_HDR_SIZE; } } /** * prelude_msg_set: * @msg: Pointer on a #prelude_msg_t object to store the data to. * @tag: 8 bits unsigned integer describing the kind of data. * @len: len of the data chunk. * @data: Pointer to the starting address of the data. * * prelude_msg_set() append @len bytes of data from the @data buffer * to the @msg object representing a message. The data is tagged with @tag. * * Returns: 0 on success, or a negative value if the remaining space is not * available. You might check the return value mostly if using a dynamic message * through prelude_msg_dynamic_new() */ int prelude_msg_set(prelude_msg_t *msg, uint8_t tag, uint32_t len, const void *data) { int ret; uint32_t l; l = htonl(len); ret = set_data(&msg, &tag, sizeof(tag)); if ( ret < 0 ) return ret; ret = set_data(&msg, &l, sizeof(l)); if ( ret < 0 ) return ret; return set_data(&msg, data, len); } /** * prelude_msg_new: * @ret: Pointer where to store the created #prelude_msg_t. * @msgcount: Number of chunk of data the created object can accept. * @msglen: Maximum number of bytes the object should handle for all the chunks. * @tag: A tag identifying the kind of message. * @priority: The priority of this message. * * Allocate a new #prelude_msg_t object and store it into @ret. prelude_msg_set() * can then be used to add chunk of data to the message, and prelude_msg_write() * to send it. * * Returns: 0 on success, a negative value if an error occured. */ int prelude_msg_new(prelude_msg_t **ret, size_t msgcount, size_t msglen, uint8_t tag, prelude_msg_priority_t priority) { size_t len; prelude_msg_t *msg; len = msglen; /* * 5 bytes of header by chunks : * - 1 byte: tag * - 4 bytes: len */ len += msgcount * 5; /* * For alert header. */ len += PRELUDE_MSG_HDR_SIZE; msg = malloc(sizeof(prelude_msg_t) + len); if ( ! msg ) return prelude_error_from_errno(errno); msg->payload = (unsigned char *) msg + sizeof(prelude_msg_t); msg->refcount = 1; msg->header_index = 0; msg->hdr.version = PRELUDE_MSG_VERSION; msg->hdr.tag = tag; msg->hdr.priority = priority; msg->hdr.is_fragment = 0; msg->hdr.datalen = len; msg->read_index = 0; msg->write_index = PRELUDE_MSG_HDR_SIZE; msg->fd_write_index = 0; msg->flush_msg_cb = NULL; *ret = msg; return 0; } /** * prelude_msg_dynamic_new: * @ret: Pointer where to store the create #prelude_msg_t. * @flush_msg_cb: Callback function to call when the buffer need to be flushed. * @data: Data to pass to the @flush_msg_cb callback function. * * Allocate a new #prelude_msg_t object. prelude_msg_set() can then be used to * add chunk of data to the message, and prelude_msg_mark_start() to separate * different message in the same buffer. * * This function use memory chunk of static size to store the message in. If * the size of the data you want to store is bigger than the actual chunk size, * @flush_msg_cb callback will be called for the current message to be flushed, * and the returned message will be used in order to store remaining data. * * Returns: 0 on success, a negative value if an error occured. */ int prelude_msg_dynamic_new(prelude_msg_t **ret, int (*flush_msg_cb)(prelude_msg_t **msg, void *data), void *data) { prelude_msg_t *msg; msg = malloc(sizeof(prelude_msg_t) + MSGBUF_SIZE); if ( ! msg ) return prelude_error_from_errno(errno); msg->refcount = 1; msg->hdr.tag = 0; msg->hdr.priority = 0; msg->hdr.is_fragment = 0; msg->hdr.version = PRELUDE_MSG_VERSION; msg->hdr.datalen = MSGBUF_SIZE; msg->payload = (unsigned char *) msg + sizeof(prelude_msg_t); msg->header_index = 0; msg->send_msg_data = data; msg->read_index = 0; msg->flush_msg_cb = flush_msg_cb; msg->write_index = PRELUDE_MSG_HDR_SIZE; msg->fd_write_index = 0; *ret = msg; return 0; } /** * prelude_msg_set_tag: * @msg: Pointer on a #prelude_msg_t object. * @tag: Tag to associate with @msg. * * Tag @msg. */ void prelude_msg_set_tag(prelude_msg_t *msg, uint8_t tag) { msg->hdr.tag = tag; } /** * prelude_msg_set_priority: * @msg: Pointer on a #prelude_msg_t object. * @priority: Priority to associate with @msg. * * Associate @priority with @msg. */ void prelude_msg_set_priority(prelude_msg_t *msg, prelude_msg_priority_t priority) { msg->hdr.priority = priority; } /** * prelude_msg_get_tag: * @msg: Pointer on a #prelude_msg_t object. * * prelude_msg_get_tag() return the tag contained in the @msg header. * * Returns: A tag. */ uint8_t prelude_msg_get_tag(prelude_msg_t *msg) { return msg->hdr.tag; } /** * prelude_msg_get_priority: * @msg: Pointer on a #prelude_msg_t object. * * prelude_msg_get_priority() return the priority contained in the @msg header. * * Returns: A priority. */ prelude_msg_priority_t prelude_msg_get_priority(prelude_msg_t *msg) { return msg->hdr.priority; } /** * prelude_msg_get_datalen: * @msg: Pointer on a #prelude_msg_t object. * * prelude_msg_get_datalen() return the len of the whole message * contained in the @msg header. * * Returns: Len of the message. */ uint32_t prelude_msg_get_datalen(prelude_msg_t *msg) { return msg->hdr.datalen; } /** * prelude_msg_get_len: * @msg: Pointer on a #prelude_msg_t object. * * prelude_msg_get_len() return the currently used * len for the @msg message. * * Returns: Len of the message. */ uint32_t prelude_msg_get_len(prelude_msg_t *msg) { return msg->write_index; } /** * prelude_msg_destroy: * @msg: Pointer on a #prelude_msg_t object. * * prelude_msg_destroy() destroy the #prelude_msg_t object pointed * to by @msg. All the ressources for this message are freed. */ void prelude_msg_destroy(prelude_msg_t *msg) { if ( --msg->refcount == 0 ) free(msg); } /** * prelude_msg_set_callback: * @msg: Pointer on a #prelude_msg_t object. * @flush_msg_cb: Pointer on a function responssible of sending the message. * * prelude_msg_set_callback() allow to change the callback used * to flush a message created with prelude_msg_dynamic_new(). */ void prelude_msg_set_callback(prelude_msg_t *msg, int (*flush_msg_cb)(prelude_msg_t **msg, void *data)) { msg->flush_msg_cb = flush_msg_cb; } /** * prelude_msg_set_data: * @msg: Pointer on a #prelude_msg_t object. * @data: Pointer on the data to associate to this message. * * prelude_msg_set_data() allow to change the data passed * to the message sending callback. */ void prelude_msg_set_data(prelude_msg_t *msg, void *data) { msg->send_msg_data = data; } /** * prelude_msg_get_data: * @msg: Pointer on a #prelude_msg_t object. * * prelude_msg_get_data() allow to retrieve the data passed * to the message sending callback. * * Returns: Pointer to the data */ void *prelude_msg_get_data(prelude_msg_t *msg) { return msg->send_msg_data; } /** * prelude_msg_is_fragment: * @msg: Pointer on a #prelude_msg_t object. * * Returns: true if @msg only contain a fragment of message. */ int prelude_msg_is_fragment(prelude_msg_t *msg) { return msg->hdr.is_fragment ? 1 : 0; } /** * prelude_msg_is_empty: * @msg: Pointer on a #prelude_msg_t object. * * Returns: true if @msg doesn't contain any data to send. */ int prelude_msg_is_empty(prelude_msg_t *msg) { return (msg->write_index - msg->header_index - PRELUDE_MSG_HDR_SIZE <= 0) ? 1 : 0; } struct timeval *prelude_msg_get_time(prelude_msg_t *msg, struct timeval *tv) { tv->tv_sec = msg->hdr.tv_sec; tv->tv_usec = msg->hdr.tv_usec; return tv; } prelude_msg_t *prelude_msg_ref(prelude_msg_t *msg) { msg->refcount++; return msg; } const unsigned char *prelude_msg_get_message_data(prelude_msg_t *msg) { /* * if the message header index is 0 (write called, without * prelude_msg_mark_end() first), mark end of the message * cause the caller didn't do it in this case. */ if ( msg->header_index == 0 ) write_message_header(msg); return msg->payload + msg->fd_write_index; } int prelude_msg_clone(prelude_msg_t **dst, const prelude_msg_t *src) { size_t size = sizeof(*src) + src->hdr.datalen; *dst = malloc(size); if ( ! *dst ) return prelude_error_from_errno(errno); memcpy(*dst, src, size); if ( src->payload ) (*dst)->payload = (unsigned char *) (*dst) + sizeof(**dst); return 0; } libprelude-5.2.0/src/PaxHeaders.14770/prelude-msgbuf.c0000644000000000000000000000011013726163410020517 xustar000000000000000024 mtime=1599661832.703 24 atime=1599661832.793 24 ctime=1599661999.819 libprelude-5.2.0/src/prelude-msgbuf.c0000644000000000000000000001371713726163410017533 0ustar00rootroot00000000000000/***** * * Copyright (C) 2002-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include #include #include #include "prelude-log.h" #include "prelude-list.h" #include "prelude-inttypes.h" #include "prelude-linked-object.h" #include "prelude-async.h" #include "prelude-io.h" #include "prelude-msg.h" #include "prelude-msgbuf.h" #include "prelude-error.h" struct prelude_msgbuf { int flags; void *data; prelude_msg_t *msg; int (*send_msg)(prelude_msgbuf_t *msgbuf, prelude_msg_t *msg); }; static int default_send_msg_cb(prelude_msg_t **msg, void *data); static int do_send_msg(prelude_msgbuf_t *msgbuf, prelude_msg_t *msg) { int ret; ret = msgbuf->send_msg(msgbuf, msg); if ( ret < 0 && prelude_error_get_code(ret) == PRELUDE_ERROR_EAGAIN ) return ret; prelude_msg_recycle(msg); prelude_msg_set_priority(msg, PRELUDE_MSG_PRIORITY_NONE); return ret; } static int do_send_msg_async(prelude_msgbuf_t *msgbuf, prelude_msg_t *msg) { int ret; ret = msgbuf->send_msg(msgbuf, msg); if ( ret < 0 && prelude_error_get_code(ret) == PRELUDE_ERROR_EAGAIN ) return ret; ret = prelude_msg_dynamic_new(&msgbuf->msg, default_send_msg_cb, msgbuf); if ( ret < 0 ) return ret; return 0; } static int default_send_msg_cb(prelude_msg_t **msg, void *data) { int ret; prelude_msgbuf_t *msgbuf = data; if ( msgbuf->flags & PRELUDE_MSGBUF_FLAGS_ASYNC ) ret = do_send_msg_async(msgbuf, *msg); else ret = do_send_msg(msgbuf, *msg); *msg = msgbuf->msg; return ret; } /** * prelude_msgbuf_set: * @msgbuf: Pointer on a #prelude_msgbuf_t object to store the data to. * @tag: 8 bits unsigned integer describing the kind of data. * @len: len of the data chunk. * @data: Pointer to the data. * * prelude_msgbuf_set() append @len bytes of data from the @data buffer * to the @msgbuf object representing a message. The data is tagged with @tag. * * Returns: 0 on success, a negative value if an error occured. */ int prelude_msgbuf_set(prelude_msgbuf_t *msgbuf, uint8_t tag, uint32_t len, const void *data) { return prelude_msg_set(msgbuf->msg, tag, len, data); } /** * prelude_msgbuf_new: * @msgbuf: Pointer where to store the created #prelude_msgbuf_t object. * * Create a new #prelude_msgbuf_t object and store it into @msgbuf. * You can then write data to @msgbuf using the prelude_msgbuf_set() function. * * When the message buffer is full, the message will be flushed using the * user provided callback. * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_msgbuf_new(prelude_msgbuf_t **msgbuf) { int ret; *msgbuf = calloc(1, sizeof(**msgbuf)); if ( ! *msgbuf ) return prelude_error_from_errno(errno); ret = prelude_msg_dynamic_new(&(*msgbuf)->msg, default_send_msg_cb, *msgbuf); if ( ret < 0 ) return ret; return 0; } /** * prelude_msgbuf_get_msg: * @msgbuf: Pointer on a #prelude_msgbuf_t object. * * Returns: This function return the current message associated with * the message buffer. */ prelude_msg_t *prelude_msgbuf_get_msg(prelude_msgbuf_t *msgbuf) { return msgbuf->msg; } /** * prelude_msgbuf_mark_end: * @msgbuf: Pointer on #prelude_msgbuf_t object. * * This function should be called to tell the msgbuf subsystem * that you finished writing your message. */ void prelude_msgbuf_mark_end(prelude_msgbuf_t *msgbuf) { prelude_msg_mark_end(msgbuf->msg); /* * FIXME: * only flush the message if we're not under an alert burst. */ default_send_msg_cb(&msgbuf->msg, msgbuf); } /** * prelude_msgbuf_destroy: * @msgbuf: Pointer on a #prelude_msgbuf_t object. * * Destroy @msgbuf, all data remaining will be flushed. */ void prelude_msgbuf_destroy(prelude_msgbuf_t *msgbuf) { if ( msgbuf->msg && ! prelude_msg_is_empty(msgbuf->msg) ) default_send_msg_cb(&msgbuf->msg, msgbuf); if ( msgbuf->msg ) prelude_msg_destroy(msgbuf->msg); free(msgbuf); } /** * prelude_msgbuf_set_callback: * @msgbuf: Pointer on a #prelude_msgbuf_t object. * @send_msg: Pointer to a function for sending a message. * * Associate an application specific callback to this @msgbuf. */ void prelude_msgbuf_set_callback(prelude_msgbuf_t *msgbuf, int (*send_msg)(prelude_msgbuf_t *msgbuf, prelude_msg_t *msg)) { msgbuf->send_msg = send_msg; } void prelude_msgbuf_set_data(prelude_msgbuf_t *msgbuf, void *data) { msgbuf->data = data; } void *prelude_msgbuf_get_data(prelude_msgbuf_t *msgbuf) { return msgbuf->data; } void prelude_msgbuf_set_flags(prelude_msgbuf_t *msgbuf, prelude_msgbuf_flags_t flags) { msgbuf->flags = flags; } prelude_msgbuf_flags_t prelude_msgbuf_get_flags(prelude_msgbuf_t *msgbuf) { return msgbuf->flags; } libprelude-5.2.0/src/PaxHeaders.14770/prelude-option.c0000644000000000000000000000011013726163410020544 xustar000000000000000024 mtime=1599661832.705 24 atime=1599661832.793 24 ctime=1599661999.821 libprelude-5.2.0/src/prelude-option.c0000644000000000000000000013605713726163410017563 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #include "prelude-inttypes.h" #include "prelude-message-id.h" #include "prelude-msgbuf.h" #include "prelude-linked-object.h" #include "prelude-list.h" #include "prelude-log.h" #include "variable.h" #include "config-engine.h" #include "prelude-option.h" #include "prelude-client.h" #include "prelude-error.h" #include "common.h" #define SET_FROM_CLI 1 #define SET_FROM_CFG 2 #define DEFAULT_INSTANCE_NAME "default" struct prelude_option_context { prelude_list_t list; void *data; char *name; }; struct prelude_option { PRELUDE_LINKED_OBJECT; prelude_list_t optlist; prelude_option_t *parent; prelude_option_type_t type; prelude_option_priority_t priority; char shortopt; char *value; const char *longopt; const char *description; prelude_option_argument_t has_arg; int (*commit)(prelude_option_t *opt, prelude_string_t *out, void *context); int (*set)(prelude_option_t *opt, const char *optarg, prelude_string_t *out, void *context); int (*get)(prelude_option_t *opt, prelude_string_t *out, void *context); int (*destroy)(prelude_option_t *opt, prelude_string_t *out, void *context); const char *help; const char *input_validation_regex; prelude_option_input_type_t input_type; void *data; void *private_data; prelude_list_t value_list; void *default_context; prelude_list_t context_list; }; struct cb_list { prelude_list_t list; char *arg; int set_from; prelude_list_t children; prelude_option_t *option; }; static int get_missing_options(void *context, config_t *cfg, const char *filename, prelude_list_t *cblist, prelude_option_t *rootlist, unsigned int *line, int depth, prelude_string_t *err); /* * contain all option */ static prelude_option_t *root_optlist = NULL; extern prelude_option_t *_prelude_generic_optlist; /* * Warning are turned on by default. */ static int warnings_flags = PRELUDE_OPTION_WARNING_OPTION|PRELUDE_OPTION_WARNING_ARG; static void option_err(int flag, const char *fmt, ...) { if ( warnings_flags & flag ) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); } } static int option_ret_error(prelude_error_code_t code, prelude_string_t *err, const char *fmt, ...) { int ret; va_list ap; va_start(ap, fmt); prelude_string_vprintf(err, fmt, ap); ret = prelude_error_verbose(code, "%s", prelude_string_get_string(err)); va_end(ap); return ret; } static int cmp_option(prelude_option_t *opt, const char *optname, size_t optnamelen, prelude_option_type_t type) { if ( ! (opt->type & type) ) return -1; if ( opt->longopt && strncasecmp(optname, opt->longopt, optnamelen) == 0 && strlen(opt->longopt) == optnamelen ) return 0; if ( optnamelen == 1 && opt->shortopt == *optname ) return 0; return -1; } /* * Search an option of a given name in the given option list. */ static prelude_option_t *search_option_fast(prelude_option_t *root, const char *optname, size_t optnamelen, prelude_option_type_t type, prelude_bool_t walk_children) { int cmp; prelude_list_t *tmp; prelude_option_t *item, *ret; if ( ! root ) return NULL; #if 0 cmp = cmp_option(root, optname, type); if ( cmp == 0 ) return root; #endif prelude_list_for_each(&root->optlist, tmp) { item = prelude_linked_object_get_object(tmp); if ( walk_children || (! item->longopt && ! item->shortopt) ) { ret = search_option_fast(item, optname, optnamelen, type, walk_children); if ( ret ) return ret; } cmp = cmp_option(item, optname, optnamelen, type); if ( cmp == 0 ) return item; } return NULL; } static prelude_option_t *search_option(prelude_option_t *root, const char *optname, prelude_option_type_t type, prelude_bool_t walk_children) { return search_option_fast(root, optname, strcspn(optname, "="), type, walk_children); } static prelude_bool_t is_an_argument(const char *stuff) { prelude_option_t *opt; size_t len = strlen(stuff); if ( stuff[0] == '-' && (len == 2 || (len > 2 && stuff[1] == '-')) ) { opt = prelude_option_search(NULL, stuff + strspn(stuff, "-"), ~0, TRUE); return opt ? FALSE : TRUE; } return TRUE; } static int check_option(prelude_option_t *option, const char *arg, prelude_string_t *err) { int ret = 0; switch (option->has_arg) { case PRELUDE_OPTION_ARGUMENT_NONE: if ( arg ) ret = option_ret_error(PRELUDE_ERROR_GENERIC, err, "option '%s' does not take an argument", option->longopt); case PRELUDE_OPTION_ARGUMENT_OPTIONAL: break; case PRELUDE_OPTION_ARGUMENT_REQUIRED: if ( ! arg || ! is_an_argument(arg) ) ret = option_ret_error(PRELUDE_ERROR_GENERIC, err, "option '%s' require an argument", option->longopt); break; } return ret; } static int process_cfg_file(void *context, prelude_list_t *cblist, prelude_option_t *optlist, const char *filename, prelude_string_t *err) { int ret; config_t *cfg; unsigned int line = 0; prelude_log_debug(3, "Using configuration file: %s.\n", filename); ret = _config_open(&cfg, filename); if ( ret < 0 ) return ret; ret = get_missing_options(context, cfg, filename, cblist, optlist, &line, 0, err); _config_close(cfg); return ret; } static int do_set(prelude_option_t *opt, const char *value, prelude_string_t *out, void **context) { int ret; prelude_option_context_t *oc; if ( opt->default_context ) *context = opt->default_context; if ( ! opt->set ) return 0; if ( opt->has_arg == PRELUDE_OPTION_ARGUMENT_OPTIONAL && value && ! *value ) value = NULL; ret = opt->set(opt, value, out, *context); if ( ret < 0 ) { if ( prelude_string_is_empty(out) ) { prelude_string_sprintf(out, "error while setting option '%s'", opt->longopt); if ( prelude_error_is_verbose(ret) || prelude_error_get_code(ret) != PRELUDE_ERROR_GENERIC ) prelude_string_sprintf(out, ": %s", prelude_strerror(ret)); } return ret; } if ( opt->type & PRELUDE_OPTION_TYPE_CONTEXT ) { oc = prelude_option_search_context(opt, value); if ( ! oc ) return -1; *context = oc->data; } return ret; } static int call_option_cb(void *context, struct cb_list **cbl, prelude_list_t *cblist, prelude_option_t *option, const char *arg, prelude_string_t *err, int set_from) { struct cb_list *new, *cb; prelude_option_priority_t pri; prelude_list_t *tmp, *prev = NULL; if ( option->priority == PRELUDE_OPTION_PRIORITY_IMMEDIATE ) { prelude_log_debug(3, "[immediate] %s(%s)\n", option->longopt, arg ? arg : ""); return do_set(option, arg, err, &context); } prelude_log_debug(3, "[queue=%p] %s(%s)\n", cblist, option->longopt, arg ? arg : ""); prelude_list_for_each(cblist, tmp) { cb = prelude_list_entry(tmp, struct cb_list, list); pri = option->priority; if ( set_from == SET_FROM_CFG && option->priority == cb->option->priority && cb->set_from == SET_FROM_CLI ) { prev = tmp; break; } else if ( pri < cb->option->priority ) { prev = tmp; break; } } *cbl = new = malloc(sizeof(*new)); if ( ! new ) return prelude_error_from_errno(errno); prelude_list_init(&new->children); new->option = option; new->set_from = set_from; new->arg = (arg) ? strdup(arg) : NULL; if ( option->priority == PRELUDE_OPTION_PRIORITY_LAST ) { prelude_list_add_tail(cblist, &new->list); return 0; } if ( ! prev ) prev = cblist; prelude_list_add_tail(prev, &new->list); *cbl = new; return 0; } static int call_option_from_cb_list(prelude_list_t *cblist, prelude_string_t *err, void *default_context, int depth) { int ret = 0; struct cb_list *cb; prelude_list_t *tmp, *bkp; void *context = default_context; prelude_list_for_each_safe(cblist, tmp, bkp) { cb = prelude_list_entry(tmp, struct cb_list, list); prelude_log_debug(2, "%s(%s) context=%p default=%p\n", cb->option->longopt, cb->arg ? cb->arg : "", context, default_context); ret = do_set(cb->option, cb->arg, err, &context); if ( ret < 0 ) return ret; if ( ! prelude_list_is_empty(&cb->children) ) { ret = call_option_from_cb_list(&cb->children, err, context, depth + 1); if ( ret < 0 ) return ret; } if ( cb->option->commit ) { prelude_log_debug(2, "commit %s\n", cb->option->longopt); ret = cb->option->commit(cb->option, err, context); if ( ret < 0 ) { return ret; } } context = default_context; if ( cb->arg ) free(cb->arg); prelude_list_del(&cb->list); free(cb); } return 0; } /* * Try to get all option that were not set from the command line in the config file. */ static int get_missing_options(void *context, config_t *cfg, const char *filename, prelude_list_t *cblist, prelude_option_t *rootlist, unsigned int *line, int depth, prelude_string_t *err) { int ret; prelude_option_t *opt; struct cb_list *cbitem; char *section = NULL, *entry = NULL, *value = NULL; while ( (_config_get_next(cfg, §ion, &entry, &value, line)) == 0 ) { opt = search_option(rootlist, (section && ! entry) ? section : entry, PRELUDE_OPTION_TYPE_CFG, FALSE); if ( ! opt && entry && value && strcmp(entry, "include") == 0 ) { ret = process_cfg_file(context, cblist, rootlist, value, err); if ( ret < 0 ) return ret; continue; } if ( ! opt ) { if ( (opt = search_option(_prelude_generic_optlist, (section && ! entry) ? section : entry, ~0, FALSE)) ) { get_missing_options(context, cfg, filename, NULL, opt, line, depth + 1, err); continue; } if ( depth != 0 ) { (*line)--; if ( entry ) free(entry); if ( value ) free(value); if ( section ) free(section); return 0; } if ( section && ! entry ) option_err(PRELUDE_OPTION_WARNING_OPTION, "%s:%d: invalid section : \"%s\".\n", filename, *line, section); else option_err(PRELUDE_OPTION_WARNING_ARG, "%s:%d: invalid option \"%s\" in \"%s\" section.\n", filename, *line, entry, (section) ? section : "global"); continue; } if ( section && ! entry ) { if ( cblist ) { ret = check_option(opt, value, err); if ( ret < 0 ) { const char *tmp = _prelude_thread_get_error(); return prelude_error_verbose(prelude_error_get_code(ret), "%s:%d: %s", filename, *line, tmp); } ret = call_option_cb(context, &cbitem, cblist, opt, value, err, SET_FROM_CFG); if ( ret < 0 ) return ret; } ret = get_missing_options(context, cfg, filename, (cblist) ? &cbitem->children : NULL, opt, line, depth + 1, err); if ( ret < 0 ) return ret; } else if ( cblist ) { ret = check_option(opt, value, err); if ( ret < 0 ) { const char *tmp = _prelude_thread_get_error(); return prelude_error_verbose(prelude_error_get_code(ret), "%s:%d: %s", filename, *line, tmp); } ret = call_option_cb(context, &cbitem, cblist, opt, value, err, SET_FROM_CFG); if ( ret < 0 ) return ret; } } return 0; } static void remove_argv(int argc, char **argv, char **unhandled, int *unhandled_index, int removed) { int i; unhandled[(*unhandled_index)++] = argv[removed]; for ( i = removed; (i + 1) < argc; i++ ) argv[i] = argv[i + 1]; } static int parse_option(prelude_option_t *root_optlist, prelude_option_t *optlist, int *argc, char **argv, int *argv_index, char **unhandled, int *unhandled_index, char **option, const char **value, prelude_option_t **opt, prelude_bool_t *ignore) { size_t len; int ret, optch = 0; prelude_option_t *tmp; *value = NULL; *option = argv[(*argv_index)++]; len = strlen(*option); if ( **option != '-' || len == 1 ) { remove_argv(*argc, argv, unhandled, unhandled_index, --(*argv_index)); return 0; } if ( strcmp(*option, "--") == 0 ) { for ( ret = *argv_index; ret < *argc; ret++ ) remove_argv(*argc, argv, unhandled, unhandled_index, ret); return -1; /* break */ } while ( **option == '-' ) { (*option)++; optch++; } if ( ! isalnum((int) **option) ) return 0; /* * FIXME: handle consecutive shortopt */ *value = strchr(*option, '='); if ( ! *value ) *option = strdup(*option); else { *option = strndup(*option, strcspn(*option, "=")); (*value)++; } *opt = search_option(optlist, *option, PRELUDE_OPTION_TYPE_CLI, FALSE); if ( root_optlist != _prelude_generic_optlist && (tmp = search_option(_prelude_generic_optlist, *option, ~0, FALSE)) ) { *opt = tmp; *ignore = TRUE; } if ( ! *opt ) return 1; if ( (*opt)->has_arg == PRELUDE_OPTION_ARGUMENT_REQUIRED && ! *value && (*argv_index < *argc) ) *value = argv[(*argv_index)++]; return 1; } static int parse_argument(void *context, prelude_list_t *cb_list, prelude_option_t *root_optlist, prelude_option_t *optlist, int *argc, char **argv, int *argv_index, char **unhandled, int *unhandled_index, int depth, prelude_string_t *err, prelude_bool_t ignore) { int ret; char *option; const char *arg; prelude_option_t *opt; struct cb_list *cbitem; while ( *argv_index < (*argc - *unhandled_index) ) { ret = parse_option(root_optlist, optlist, argc, argv, argv_index, unhandled, unhandled_index, &option, &arg, &opt, &ignore); if ( ret < 0 ) break; else if ( ret == 0 ) continue; if ( ! opt ) { if ( depth ) { free(option); (*argv_index)--; return 0; } remove_argv(*argc, argv, unhandled, unhandled_index, --(*argv_index)); option_err(PRELUDE_OPTION_WARNING_OPTION, "Invalid option -- \"%s\" (%d).\n", option, depth); free(option); continue; } free(option); ret = check_option(opt, arg, err); if ( ret < 0 ) return ret; if ( ! ignore ) { ret = call_option_cb(context, &cbitem, cb_list, opt, arg, err, SET_FROM_CLI); if ( ret < 0 ) return ret; } /* * If the option we just found have sub-option. * Try to match the rest of our argument against them. */ if ( ! prelude_list_is_empty(&opt->optlist) ) { ret = parse_argument(context, &cbitem->children, root_optlist, opt, argc, argv, argv_index, unhandled, unhandled_index, depth + 1, err, ignore); if ( ret < 0 ) return ret; ignore = FALSE; } } return 0; } static int get_option_from_optlist(void *context, prelude_option_t *optlist, const char **filename, int *argc, char **argv, prelude_string_t **err) { char **unhandled; prelude_list_t cblist; int i, unhandled_index = 0, argv_index = 1, ret = 0; prelude_list_init(&cblist); if ( argc ) { unhandled = malloc(*argc * sizeof(*unhandled)); if ( ! unhandled ) return prelude_error_from_errno(errno); ret = parse_argument(context, &cblist, optlist, optlist, argc, argv, &argv_index, unhandled, &unhandled_index, 0, *err, FALSE); for ( i = 0; i < unhandled_index; i++) argv[*argc - unhandled_index + i] = unhandled[i]; free(unhandled); if ( ret < 0 ) return ret; unhandled_index += ret; } if ( filename && *filename ) { ret = process_cfg_file(context, &cblist, optlist, *filename, *err); if ( ret < 0 ) return ret; } ret = call_option_from_cb_list(&cblist, *err, context, 0); if ( ret < 0 ) return ret; return *argc - unhandled_index; } /** * prelude_option_read: * @option: A pointer on an option (list). * @filename: Pointer to the config filename. * @argc: Number of argument. * @argv: Argument list. * @err: Pointer to a #prelude_string_t object where to store an error string. * @context: Pointer to an optional option context. * * prelude_option_read(), parse the given argument and try to * match them against option in @option. If an option match, it's associated * callback function is called with the eventual option argument if any. * * Option not matched on the command line are searched in the configuration file * specified by @filename. * * if @option is NULL, all system option will be matched against argc, and argv. * * Returns: The index of the first unhandled parameter if option parsing succeeded, * or a negative value if an error occured. */ int prelude_option_read(prelude_option_t *option, const char **filename, int *argc, char **argv, prelude_string_t **err, void *context) { int ret; PRELUDE_LIST(optlist); ret = prelude_string_new(err); if ( ret < 0 ) return ret; if ( option ) ret = get_option_from_optlist(context, option, filename, argc, argv, err); else ret = get_option_from_optlist(context, root_optlist, filename, argc, argv, err); if ( ret < 0 ) goto err; err: if ( prelude_string_is_empty(*err) ) { prelude_string_destroy(*err); *err = NULL; } return ret; } /** * prelude_option_add: * @parent: Pointer on a parent option. * @retopt: Pointer where to store the created option. * @type: bitfields. * @shortopt: Short option name. * @longopt: Long option name. * @desc: Description of the option. * @has_arg: Define if the option has argument. * @set: Callback to be called when the value for this option change. * @get: Callback to be called to get the value for this option. * * prelude_option_add() create a new option. The option is set to be the child * of @parent, unless it is NULL. In this case the option is a root option. * * The @type parameters can be set to PRELUDE_OPTION_TYPE_CLI (telling the * option may be searched on the command line), PRELUDE_OPTION_TYPE_CFG (telling * the option may be searched in the configuration file) or both. * * Returns: Pointer on the option object, or NULL if an error occured. */ int prelude_option_add(prelude_option_t *parent, prelude_option_t **retopt, prelude_option_type_t type, char shortopt, const char *longopt, const char *desc, prelude_option_argument_t has_arg, int (*set)(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context), int (*get)(prelude_option_t *opt, prelude_string_t *out, void *context)) { int ret; prelude_option_t *new; if ( parent ) { prelude_option_t *dup; char tmp[2] = { shortopt, 0 }; if ( longopt && (dup = prelude_option_search(parent, longopt, ~0, FALSE)) ) { prelude_log(PRELUDE_LOG_WARN, "New option '%s' ('%c') conflict with '%s' ('%c').\n", longopt, shortopt, dup->longopt, dup->shortopt); return -1; } if ( shortopt && (dup = prelude_option_search(parent, tmp, ~0, FALSE)) ) { prelude_log(PRELUDE_LOG_WARN, "New option '%s' ('%c') conflict with '%s' ('%c').\n", longopt, shortopt, dup->longopt, dup->shortopt); return -1; } } if ( type & PRELUDE_OPTION_TYPE_WIDE && ! longopt ) return -1; ret = prelude_option_new(parent, &new); if ( ret < 0 ) return ret; prelude_list_init(&new->optlist); prelude_list_init(&new->context_list); new->priority = PRELUDE_OPTION_PRIORITY_NONE; new->input_type = PRELUDE_OPTION_INPUT_TYPE_STRING; new->type = type; new->has_arg = has_arg; new->longopt = longopt; new->shortopt = shortopt; new->description = desc; new->set = set; new->get = get; if ( retopt ) *retopt = new; return 0; } static int uint32_write(uint32_t data, prelude_msgbuf_t *msg, uint8_t tag) { data = htonl(data); return prelude_msgbuf_set(msg, tag, sizeof(data), &data); } static void send_option_msg(prelude_bool_t parent_need_context, void *context, prelude_option_t *opt, const char *iname, prelude_msgbuf_t *msg) { int ret; prelude_string_t *value; const char *name = (iname) ? iname : opt->longopt; prelude_msgbuf_set(msg, PRELUDE_MSG_OPTION_START, 0, NULL); prelude_msgbuf_set(msg, PRELUDE_MSG_OPTION_NAME, strlen(name) + 1, name); uint32_write(opt->type, msg, PRELUDE_MSG_OPTION_TYPE); uint32_write(opt->has_arg, msg, PRELUDE_MSG_OPTION_HAS_ARG); uint32_write(opt->input_type, msg, PRELUDE_MSG_OPTION_INPUT_TYPE); if ( opt->description ) prelude_msgbuf_set(msg, PRELUDE_MSG_OPTION_DESC, strlen(opt->description) + 1, opt->description); if ( opt->type & PRELUDE_OPTION_TYPE_CONTEXT && ! context ) return; if ( parent_need_context && ! context ) return; if ( ! opt->get ) return; ret = prelude_string_new(&value); if ( ret < 0 ) return; ret = opt->get(opt, value, context); if ( ret < 0 ) { prelude_string_destroy(value); return; } if ( ! prelude_string_is_empty(value) ) prelude_msgbuf_set(msg, PRELUDE_MSG_OPTION_VALUE, prelude_string_get_len(value) + 1, prelude_string_get_string(value)); prelude_string_destroy(value); } static void construct_option_msg(prelude_bool_t parent_need_context, void *default_context, prelude_msgbuf_t *msg, prelude_option_t *root) { char value[1024]; prelude_option_t *opt; prelude_list_t *tmp, *tmp2; prelude_option_context_t *oc; prelude_list_for_each(&root->optlist, tmp) { opt = prelude_linked_object_get_object(tmp); prelude_list_for_each(&opt->context_list, tmp2) { oc = prelude_list_entry(tmp2, prelude_option_context_t, list); snprintf(value, sizeof(value), "%s[%s]", opt->longopt, oc->name); if ( opt->type & PRELUDE_OPTION_TYPE_WIDE ) send_option_msg(TRUE, oc->data, opt, value, msg); construct_option_msg(TRUE, oc->data, msg, opt); if ( opt->type & PRELUDE_OPTION_TYPE_WIDE ) prelude_msgbuf_set(msg, PRELUDE_MSG_OPTION_END, 0, NULL); } if ( prelude_list_is_empty(&opt->context_list) ) { void *ctx = NULL; prelude_bool_t need_ctx = opt->type & PRELUDE_OPTION_TYPE_CONTEXT ? TRUE : parent_need_context; if ( ! (opt->type & PRELUDE_OPTION_TYPE_CONTEXT) ) ctx = opt->default_context ? opt->default_context : default_context; if ( opt->type & PRELUDE_OPTION_TYPE_WIDE ) send_option_msg(need_ctx, ctx, opt, NULL, msg); construct_option_msg(need_ctx, ctx, msg, opt); if ( opt->type & PRELUDE_OPTION_TYPE_WIDE ) prelude_msgbuf_set(msg, PRELUDE_MSG_OPTION_END, 0, NULL); } } } int prelude_option_wide_send_msg(prelude_msgbuf_t *msgbuf, void *context) { prelude_msgbuf_set(msgbuf, PRELUDE_MSG_OPTION_LIST, 0, NULL); prelude_msgbuf_set(msgbuf, PRELUDE_MSG_OPTION_START, 0, NULL); construct_option_msg(FALSE, context, msgbuf, root_optlist); return 0; } static int get_max_char(const char *line, int descoff) { int desclen; int max = 0 , i; desclen = 80 - descoff; for ( i = 0; i < desclen; i++ ) { if ( line[i] == '\0' ) return i; if ( line[i] == ' ' ) max = i; } return max; } static int print_space(FILE *fd, size_t num) { char buf[3]; size_t len, totlen = 0; do { len = MIN(sizeof(buf), num - totlen); memset(buf, ' ', len); fwrite(buf, 1, len, fd); totlen += len; } while ( totlen < num ); return num; } static void print_wrapped(FILE *fd, const char *line, int descoff) { int max; size_t size = 0, i; while ( 1 ) { max = get_max_char(line + size, descoff); size += i= fwrite(line + size, 1, max, fd); if ( line[size] == '\0' ) { fputc('\n', fd); return; } fputc('\n', fd); print_space(fd, descoff - 1); } } static void print_options(FILE *fd, prelude_option_t *root, prelude_option_type_t type, int descoff, int depth) { int i; prelude_option_t *opt; prelude_list_t *tmp; prelude_list_for_each(&root->optlist, tmp) { opt = prelude_linked_object_get_object(tmp); /* * If type is not there, continue. */ if ( opt->type == PRELUDE_OPTION_TYPE_ROOT ) print_options(fd, opt, type, descoff, depth); else { i = 0; if ( type && ! (opt->type & type) ) continue; if ( depth ) { i += depth; print_space(fd, depth * 2); } if ( ! prelude_list_is_empty(&opt->optlist) ) fputc('\n', fd); if ( opt->shortopt != 0 ) i += fprintf(fd, "-%c%s", opt->shortopt, opt->longopt ? ", " : " "); if ( opt->longopt ) { if ( ! opt->shortopt && prelude_list_is_empty(&opt->optlist) ) i += fprintf(fd, " "); i += fprintf(fd, "--%s", opt->longopt); if ( (opt->has_arg == PRELUDE_OPTION_ARGUMENT_OPTIONAL || opt->has_arg == PRELUDE_OPTION_ARGUMENT_REQUIRED) && ! prelude_list_is_empty(&opt->optlist) ) i += fprintf(fd, "=[INAME] "); else if ( opt->has_arg == PRELUDE_OPTION_ARGUMENT_REQUIRED ) i += fprintf(fd, "=ARG "); else if ( opt->has_arg == PRELUDE_OPTION_ARGUMENT_OPTIONAL ) i += fprintf(fd, "=[ARG] "); else i+= fprintf(fd, " "); } if ( i < descoff ) i += print_space(fd, descoff - i); if ( opt->description ) print_wrapped(fd, opt->description, depth + descoff); else fputc('\n', fd); if ( ! prelude_list_is_empty(&opt->optlist) ) print_options(fd, opt, type, descoff, depth + 1); } } fputc('\n', fd); } /** * prelude_option_print: * @opt: Option(s) to print out. * @type: Only option with specified types will be printed. * @descoff: offset from the begining of the line where the description should start. * @fd: File descriptor where the option should be dumped. * * Dump option available in @opt and hooked to the given types. * If @opt is NULL, then the root of the option list is used. */ void prelude_option_print(prelude_option_t *opt, prelude_option_type_t type, int descoff, FILE *fd) { descoff += 9; print_options(fd, opt ? opt : root_optlist, type, descoff, 0); } /** * prelude_option_set_priority: * @option: Pointer on an option object. * @priority: Priority of the option object. * * prelude_option_set_priority() can be used to associate a priority * with an option. This can be used to solve dependancies problem within * differents options. * * A priority of -1 mean an option will always be executed last (with * all other option with a -1 priority). * * The default priority for an option is 0, the caller is responssible * for the way it assign priority (knowing that highest priority are always * executed first). */ void prelude_option_set_priority(prelude_option_t *option, prelude_option_priority_t priority) { assert(prelude_list_is_empty(&option->optlist)); option->priority = priority; } /** * prelude_option_destroy: * @option: Pointer on an option object. * * Destroy a #prelude_option_t object and all data associated * with it (including all suboption). */ void prelude_option_destroy(prelude_option_t *option) { prelude_list_t *tmp, *bkp; prelude_option_t *opt; if ( ! option ) { option = root_optlist; root_optlist = NULL; } prelude_list_for_each_safe(&option->optlist, tmp, bkp) { opt = prelude_linked_object_get_object(tmp); prelude_option_destroy(opt); } if ( option->value ) free(option->value); prelude_list_for_each_safe(&option->context_list, tmp, bkp) prelude_option_context_destroy(prelude_list_entry(tmp, prelude_option_context_t, list)); if ( ! prelude_list_is_empty(&option->_list) ) prelude_linked_object_del((prelude_linked_object_t *) option); free(option); } /** * prelude_option_set_warnings; * @new_warnings: bitwise OR of #prelude_option_warning_t. * @old_warnings: Pointer where to store the old #prelude_option_warning_t to. * * Set current warnings flags to @new_warnings. * * Uppon return, if not NULL, the pointer to @old_warnings is updated * to contain the old warnings. */ void prelude_option_set_warnings(prelude_option_warning_t new_warnings, prelude_option_warning_t *old_warnings) { if ( old_warnings ) *old_warnings = warnings_flags; warnings_flags = new_warnings; } void prelude_option_set_commit_callback(prelude_option_t *opt, prelude_option_commit_callback_t commit) { opt->commit = commit; } prelude_option_commit_callback_t prelude_option_get_commit_callback(prelude_option_t *opt) { return opt->commit; } void prelude_option_set_get_callback(prelude_option_t *opt, prelude_option_get_callback_t get) { opt->get = get; } prelude_option_get_callback_t prelude_option_get_get_callback(prelude_option_t *opt) { return opt->get; } void prelude_option_set_set_callback(prelude_option_t *opt, int (*set)(prelude_option_t *opt, const char *optarg, prelude_string_t *out, void *context)) { opt->set = set; } prelude_option_set_callback_t prelude_option_get_set_callback(prelude_option_t *opt) { return opt->set; } void prelude_option_set_destroy_callback(prelude_option_t *opt, prelude_option_destroy_callback_t destroy) { opt->destroy = destroy; opt->type |= PRELUDE_OPTION_TYPE_DESTROY; } prelude_option_destroy_callback_t prelude_option_get_destroy_callback(prelude_option_t *opt) { return opt->destroy; } char prelude_option_get_shortname(prelude_option_t *opt) { return opt->shortopt; } const char *prelude_option_get_longname(prelude_option_t *opt) { return opt->longopt; } void prelude_option_set_value(prelude_option_t *opt, const char *value) { if ( opt->value ) free(opt->value); opt->value = strdup(value); } prelude_list_t *prelude_option_get_optlist(prelude_option_t *opt) { return &opt->optlist; } prelude_option_t *prelude_option_get_next(prelude_option_t *start, prelude_option_t *cur) { prelude_list_t *tmp = (cur) ? &cur->_list : NULL; prelude_list_for_each_continue(&start->optlist, tmp) return prelude_linked_object_get_object(tmp); return NULL; } prelude_bool_t prelude_option_has_optlist(prelude_option_t *opt) { return ! prelude_list_is_empty(&opt->optlist); } const char *prelude_option_get_value(prelude_option_t *opt) { return opt->value; } void _prelude_option_set_private_data(prelude_option_t *opt, void *data) { opt->private_data = data; } void *_prelude_option_get_private_data(prelude_option_t *opt) { return opt->private_data; } void prelude_option_set_data(prelude_option_t *opt, void *data) { opt->data = data; } void *prelude_option_get_data(prelude_option_t *opt) { return opt->data; } int prelude_option_invoke_set(prelude_option_t *opt, const char *value, prelude_string_t *err, void **context) { int ret; ret = check_option(opt, value, err); if ( ret < 0 ) return ret; prelude_log_debug(3, "opt=%s value=%s\n", opt->longopt, value ? value : ""); return do_set(opt, value, err, context); } int prelude_option_invoke_commit(prelude_option_t *opt, const char *ctname, prelude_string_t *value, void *context) { int ret; prelude_option_context_t *oc = NULL; if ( ! opt->commit ) return 0; if ( opt->default_context ) context = opt->default_context; if ( opt->type & PRELUDE_OPTION_TYPE_CONTEXT ) { oc = prelude_option_search_context(opt, ctname); if ( ! oc ) return option_ret_error(PRELUDE_ERROR_GENERIC, value, "could not find option with context %s[%s]", opt->longopt, ctname); context = oc->data; } ret = opt->commit(opt, value, context); if ( ret < 0 && prelude_string_is_empty(value) ) ret = option_ret_error(prelude_error_get_code(ret), value, "could not find option with context %s[%s]", opt->longopt, ctname); return ret; } int prelude_option_invoke_destroy(prelude_option_t *opt, const char *ctname, prelude_string_t *value, void *context) { int ret; prelude_option_context_t *oc = NULL; if ( ! opt->destroy ) return option_ret_error(PRELUDE_ERROR_GENERIC, value, "%s does not support destruction", opt->longopt); if ( opt->default_context ) context = opt->default_context; if ( opt->type & PRELUDE_OPTION_TYPE_CONTEXT ) { oc = prelude_option_search_context(opt, ctname); if ( ! oc ) return option_ret_error(PRELUDE_ERROR_GENERIC, value, "could not find option with context %s[%s]", opt->longopt, ctname); context = oc->data; } ret = opt->destroy(opt, value, context); if ( ret < 0 && prelude_string_is_empty(value) ) return option_ret_error(PRELUDE_ERROR_GENERIC, value, "destruction for %s[%s] failed", opt->longopt, ctname); if ( oc ) prelude_option_context_destroy(oc); return 0; } int prelude_option_invoke_get(prelude_option_t *opt, const char *ctname, prelude_string_t *value, void *context) { prelude_option_context_t *oc; if ( ! opt->get ) { prelude_string_sprintf(value, "%s doesn't support value retrieval", opt->longopt); return -1; } if ( opt->default_context ) context = opt->default_context; if ( opt->type & PRELUDE_OPTION_TYPE_CONTEXT ) { oc = prelude_option_search_context(opt, ctname); if ( ! oc ) { prelude_string_sprintf(value, "could not find option with context %s[%s]", opt->longopt, ctname); return -1; } context = oc->data; } return opt->get(opt, value, context); } int prelude_option_new(prelude_option_t *parent, prelude_option_t **retopt) { prelude_option_t *new; if ( ! parent ) { if ( ! root_optlist ) { root_optlist = calloc(1, sizeof(*root_optlist)); if ( ! root_optlist ) return prelude_error_from_errno(errno); root_optlist->parent = parent; prelude_list_init(&root_optlist->optlist); prelude_list_init(&root_optlist->context_list); prelude_list_init(&root_optlist->_list); } parent = root_optlist; } new = *retopt = calloc(1, sizeof(**retopt)); if ( ! new ) return prelude_error_from_errno(errno); new->parent = parent; prelude_list_init(&new->optlist); prelude_list_init(&new->context_list); prelude_linked_object_add_tail(&parent->optlist, (prelude_linked_object_t *) new); return 0; } int prelude_option_new_root(prelude_option_t **retopt) { int ret; prelude_option_t *new; ret = prelude_option_new(NULL, &new); if ( ret < 0 ) return ret; new->longopt = NULL; new->type = PRELUDE_OPTION_TYPE_ROOT; if ( retopt ) *retopt = new; return 0; } void prelude_option_set_longopt(prelude_option_t *opt, const char *longopt) { opt->longopt = longopt; } const char *prelude_option_get_longopt(prelude_option_t *opt) { return opt->longopt; } void prelude_option_set_description(prelude_option_t *opt, const char *description) { opt->description = description; } const char *prelude_option_get_description(prelude_option_t *opt) { return opt->description; } void prelude_option_set_type(prelude_option_t *opt, prelude_option_type_t type) { opt->type = type; } prelude_option_type_t prelude_option_get_type(prelude_option_t *opt) { return opt->type; } void prelude_option_set_has_arg(prelude_option_t *opt, prelude_option_argument_t has_arg) { opt->has_arg = has_arg; } prelude_option_argument_t prelude_option_get_has_arg(prelude_option_t *opt) { return opt->has_arg; } void prelude_option_set_help(prelude_option_t *opt, const char *help) { opt->help = help; } const char *prelude_option_get_help(prelude_option_t *opt) { return opt->help; } void prelude_option_set_input_validation_regex(prelude_option_t *opt, const char *regex) { opt->input_validation_regex = regex; } const char *prelude_option_get_input_validation_regex(prelude_option_t *opt) { return opt->input_validation_regex; } void prelude_option_set_input_type(prelude_option_t *opt, prelude_option_input_type_t input_type) { opt->input_type = input_type; } prelude_option_input_type_t prelude_option_get_input_type(prelude_option_t *opt) { return opt->input_type; } prelude_option_t *prelude_option_get_parent(prelude_option_t *opt) { return opt->parent; } void prelude_option_set_default_context(prelude_option_t *opt, void *data) { opt->default_context = data; } int prelude_option_new_context(prelude_option_t *opt, prelude_option_context_t **ctx, const char *name, void *data) { prelude_option_context_t *new; new = malloc(sizeof(*new)); if ( ! new ) return prelude_error_from_errno(errno); if ( ! name || ! *name ) name = DEFAULT_INSTANCE_NAME; new->data = data; new->name = strdup(name); if ( ! new->name ) { free(new); return prelude_error_from_errno(errno); } if ( ! opt ) prelude_list_init(&new->list); else { opt->type |= PRELUDE_OPTION_TYPE_CONTEXT; prelude_list_add_tail(&opt->context_list, &new->list); } *ctx = new; return 0; } void prelude_option_context_set_data(prelude_option_context_t *oc, void *data) { oc->data = data; } void *prelude_option_context_get_data(prelude_option_context_t *oc) { return oc->data; } void prelude_option_context_destroy(prelude_option_context_t *oc) { if ( ! prelude_list_is_empty(&oc->list) ) prelude_list_del(&oc->list); if ( oc->name ) free(oc->name); free(oc); } prelude_option_t *prelude_option_search(prelude_option_t *parent, const char *name, prelude_option_type_t type, prelude_bool_t walk_children) { return search_option(parent ? parent : root_optlist, name, type, walk_children); } prelude_option_context_t *prelude_option_search_context(prelude_option_t *opt, const char *name) { int ret; prelude_list_t *tmp; prelude_option_context_t *ptr; if ( ! name || ! *name ) name = DEFAULT_INSTANCE_NAME; prelude_list_for_each(&opt->context_list, tmp) { ptr = prelude_list_entry(tmp, prelude_option_context_t, list); ret = strcasecmp(ptr->name, name); if ( ret == 0 ) return ptr; } return NULL; } libprelude-5.2.0/src/PaxHeaders.14770/prelude-option-wide.c0000644000000000000000000000011013726163410021472 xustar000000000000000024 mtime=1599661832.704 24 atime=1599661832.793 24 ctime=1599661999.823 libprelude-5.2.0/src/prelude-option-wide.c0000644000000000000000000004113013726163410020474 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include "prelude-error.h" #include "prelude-log.h" #include "prelude-extract.h" #include "prelude-io.h" #include "prelude-msgbuf.h" #include "prelude-client.h" #include "prelude-message-id.h" #include "prelude-option.h" #include "prelude-option-wide.h" #include "common.h" #include "config-engine.h" static int config_save_value(config_t *cfg, int rtype, prelude_option_t *last, int is_last_cmd, char **prev, const char *option, const char *value, unsigned int *line) { int ret = 0; char buf[1024]; if ( ! (prelude_option_get_type(last) & PRELUDE_OPTION_TYPE_CFG) ) return -1; if ( rtype != PRELUDE_MSG_OPTION_SET && rtype != PRELUDE_MSG_OPTION_DESTROY ) return -1; if ( prelude_option_has_optlist(last) ) { if ( prelude_option_get_type(last) & PRELUDE_OPTION_TYPE_CONTEXT ) snprintf(buf, sizeof(buf), "%s=%s", option, (value) ? value : "default"); else snprintf(buf, sizeof(buf), "%s", option); if ( *prev ) free(*prev); *prev = strdup(buf); if ( ! *prev ) return prelude_error_from_errno(errno); if ( rtype == PRELUDE_MSG_OPTION_SET ) return _config_set(cfg, buf, NULL, NULL, line); else if ( is_last_cmd ) return _config_del(cfg, buf, NULL); } if ( rtype == PRELUDE_MSG_OPTION_SET ) ret = _config_set(cfg, *prev, option, value, line); else if ( is_last_cmd ) ret = _config_del(cfg, *prev, option); return ret; } static int parse_single(void **context, prelude_option_t **last, int is_last_cmd, int rtype, const char *option, const char *value, prelude_string_t *out) { int ret = 0; *last = prelude_option_search(*last, option, PRELUDE_OPTION_TYPE_WIDE, 0); if ( ! *last ) { prelude_string_sprintf(out, "Unknown option: %s.\n", option); return -1; } if ( rtype == PRELUDE_MSG_OPTION_SET ) ret = prelude_option_invoke_set(*last, value, out, context); else if ( is_last_cmd ) { if ( rtype == PRELUDE_MSG_OPTION_DESTROY ) ret = prelude_option_invoke_destroy(*last, value, out, *context); else if ( rtype == PRELUDE_MSG_OPTION_GET ) ret = prelude_option_invoke_get(*last, value, out, *context); else if ( rtype == PRELUDE_MSG_OPTION_COMMIT ) ret = prelude_option_invoke_commit(*last, value, out, *context); } return ret; } static char *option_strsep(char **request) { char *start = *request; prelude_bool_t ignore = FALSE; if ( ! *request ) return NULL; while ( **request ) { if ( ignore == TRUE && **request == ']' ) ignore = FALSE; if ( ignore == FALSE && **request == '[' ) ignore = TRUE; if ( ignore == FALSE && **request == '.' ) { **request = 0; *request = *request + 1; return start; } (*request)++; } if ( start != *request ) { *request = NULL; return start; } return NULL; } static int parse_request(prelude_client_t *client, int rtype, char *request, prelude_string_t *out) { config_t *cfg; void *context = client; char pname[256], iname[256]; prelude_option_t *last = NULL; int ret = 0, last_cmd = 0, ent; char *str, *value, *prev = NULL, *ptr = NULL; unsigned int line = 0; ret = _config_open(&cfg, prelude_client_get_config_filename(client)); if ( ret < 0 ) return ret; value = request; strsep(&value, "="); while ( (str = (option_strsep(&request))) ) { if ( ! request ) { last_cmd = 1; ptr = value; } *pname = 0; *iname = 0; ent = ret = sscanf(str, "%255[^[][%255[^]]", pname, iname); if ( ret < 1 ) { prelude_string_sprintf(out, "Error parsing option path"); break; } ret = parse_single(&context, &last, last_cmd, rtype, pname, (ent == 2) ? iname : ptr, out); if ( ret < 0 ) break; config_save_value(cfg, rtype, last, last_cmd, &prev, pname, (ent == 2) ? iname : ptr, &line); } _config_close(cfg); free(prev); return ret; } static void send_string(prelude_msgbuf_t *msgbuf, prelude_string_t *out, int type) { size_t len; len = prelude_string_is_empty(out) ? 0 : (prelude_string_get_len(out) + 1); if ( type == PRELUDE_MSG_OPTION_VALUE && ! len ) return; prelude_msgbuf_set(msgbuf, type, len, prelude_string_get_string(out)); } static void send_error(prelude_msgbuf_t *msgbuf, const char *fmt, ...) { int ret; va_list ap; prelude_string_t *out; va_start(ap, fmt); ret = prelude_string_new(&out); if ( ret < 0 ) return; prelude_string_vprintf(out, fmt, ap); va_end(ap); send_string(msgbuf, out, PRELUDE_MSG_OPTION_ERROR); prelude_string_destroy(out); } static int read_option_request(prelude_client_t *client, prelude_msgbuf_t *msgbuf, prelude_msg_t *msg) { void *buf; uint8_t tag; char *request; uint32_t len, hop; int ret, type = -1; prelude_string_t *out; while ( prelude_msg_get(msg, &tag, &len, &buf) == 0 ) { switch (tag) { case PRELUDE_MSG_OPTION_SET: case PRELUDE_MSG_OPTION_GET: case PRELUDE_MSG_OPTION_COMMIT: case PRELUDE_MSG_OPTION_DESTROY: type = tag; break; case PRELUDE_MSG_OPTION_HOP: ret = prelude_extract_uint32_safe(&hop, buf, len); if ( ret < 0 ) return ret; hop = htonl(hop - 1); prelude_msgbuf_set(msgbuf, tag, len, &hop); break; case PRELUDE_MSG_OPTION_TARGET_ID: case PRELUDE_MSG_OPTION_TARGET_INSTANCE_ID: case PRELUDE_MSG_OPTION_REQUEST_ID: prelude_msgbuf_set(msgbuf, tag, len, buf); break; case PRELUDE_MSG_OPTION_LIST: return prelude_option_wide_send_msg(msgbuf, client); case PRELUDE_MSG_OPTION_VALUE: ret = prelude_extract_characters_safe((const char **) &request, buf, len); if ( ret < 0 ) return ret; if ( type < 0 || ! request ) { send_error(msgbuf, "No request specified"); return -1; } ret = prelude_string_new(&out); if ( ret < 0 ) return ret; ret = parse_request(client, type, request, out); send_string(msgbuf, out, (ret < 0) ? PRELUDE_MSG_OPTION_ERROR : PRELUDE_MSG_OPTION_VALUE); prelude_string_destroy(out); break; default: send_error(msgbuf, "Unknown option tag: %d", tag); return -1; } } return 0; } static int read_option_list(prelude_msg_t *msg, prelude_option_t *opt, uint64_t *source_id) { int ret; void *buf; uint8_t tag; const char *tmp = NULL; uint32_t dlen, tmpint = 0; prelude_option_t *newopt; if ( ! opt ) return -1; while ( (ret = prelude_msg_get(msg, &tag, &dlen, &buf)) == 0 ) { switch (tag) { case PRELUDE_MSG_OPTION_START: ret = prelude_option_new(opt, &newopt); if ( ret < 0 ) break; read_option_list(msg, newopt, source_id); break; case PRELUDE_MSG_OPTION_END: return 0; case PRELUDE_MSG_OPTION_VALUE: ret = prelude_extract_characters_safe(&tmp, buf, dlen); if ( ret < 0 ) return ret; prelude_option_set_value(opt, tmp); break; case PRELUDE_MSG_OPTION_NAME: ret = prelude_extract_characters_safe(&tmp, buf, dlen); if ( ret < 0 ) return ret; prelude_option_set_longopt(opt, tmp); break; case PRELUDE_MSG_OPTION_DESC: ret = prelude_extract_characters_safe(&tmp, buf, dlen); if ( ret < 0 ) return ret; prelude_option_set_description(opt, tmp); break; case PRELUDE_MSG_OPTION_HELP: ret = prelude_extract_characters_safe(&tmp, buf, dlen); if ( ret < 0 ) return ret; prelude_option_set_help(opt, tmp); break; case PRELUDE_MSG_OPTION_INPUT_VALIDATION: ret = prelude_extract_characters_safe(&tmp, buf, dlen); if ( ret < 0 ) return ret; prelude_option_set_input_validation_regex(opt, tmp); break; case PRELUDE_MSG_OPTION_HAS_ARG: ret = prelude_extract_uint32_safe(&tmpint, buf, dlen); if ( ret < 0 ) return ret; prelude_option_set_has_arg(opt, tmpint); break; case PRELUDE_MSG_OPTION_TYPE: ret = prelude_extract_uint32_safe(&tmpint, buf, dlen); if ( ret < 0 ) return ret; prelude_option_set_type(opt, tmpint); break; case PRELUDE_MSG_OPTION_INPUT_TYPE: ret = prelude_extract_uint32_safe(&tmpint, buf, dlen); if ( ret < 0 ) return ret; prelude_option_set_input_type(opt, tmpint); break; default: /* * for compatibility purpose, don't return an error on unknow tag. */ prelude_log(PRELUDE_LOG_WARN, "unknown option tag %d.\n", tag); } } return 0; } int prelude_option_process_request(prelude_client_t *client, prelude_msg_t *msg, prelude_msgbuf_t *out) { uint8_t tag; tag = prelude_msg_get_tag(msg); if ( tag != PRELUDE_MSG_OPTION_REQUEST ) return -1; prelude_msg_set_tag(prelude_msgbuf_get_msg(out), PRELUDE_MSG_OPTION_REPLY); return read_option_request(client, out, msg); } int prelude_option_push_request(prelude_msgbuf_t *msg, int type, const char *request) { prelude_msgbuf_set(msg, type, 0, 0); if ( request ) prelude_msgbuf_set(msg, PRELUDE_MSG_OPTION_VALUE, strlen(request) + 1, request); return 0; } int prelude_option_new_request(prelude_msgbuf_t *msgbuf, uint32_t request_id, uint64_t *target_id, size_t size) { size_t i; uint32_t hop, instance_id = 0; prelude_msg_set_tag(prelude_msgbuf_get_msg(msgbuf), PRELUDE_MSG_OPTION_REQUEST); /* * the caller is supposed to provide a full path, * from him to the destination, to the original hop is 1. */ hop = htonl(1); for ( i = 0; i < size; i++ ) target_id[i] = prelude_hton64(target_id[i]); request_id = htonl(request_id); prelude_msgbuf_set(msgbuf, PRELUDE_MSG_OPTION_REQUEST_ID, sizeof(request_id), &request_id); prelude_msgbuf_set(msgbuf, PRELUDE_MSG_OPTION_TARGET_ID, i * sizeof(*target_id), target_id); prelude_msgbuf_set(msgbuf, PRELUDE_MSG_OPTION_TARGET_INSTANCE_ID, sizeof(instance_id), &instance_id); prelude_msgbuf_set(msgbuf, PRELUDE_MSG_OPTION_HOP, sizeof(hop), &hop); return 0; } int prelude_option_recv_reply(prelude_msg_t *msg, uint64_t *source_id, uint32_t *request_id, void **value) { void *buf; uint8_t tag; uint32_t dlen; int ret, type = -1; *value = NULL; while ( (ret = prelude_msg_get(msg, &tag, &dlen, &buf)) == 0 ) { switch (tag) { case PRELUDE_MSG_OPTION_HOP: break; case PRELUDE_MSG_OPTION_REQUEST_ID: type = PRELUDE_OPTION_REPLY_TYPE_SET; ret = prelude_extract_uint32_safe(request_id, buf, dlen); if ( ret < 0 ) return ret; break; case PRELUDE_MSG_OPTION_VALUE: type = PRELUDE_OPTION_REPLY_TYPE_GET; ret = prelude_extract_characters_safe((const char **) value, buf, dlen); if ( ret < 0 ) return ret; break; case PRELUDE_MSG_OPTION_ERROR: type = PRELUDE_OPTION_REPLY_TYPE_ERROR; if ( ! dlen ) { *value = "No error message"; break; } ret = prelude_extract_characters_safe((const char **) value, buf, dlen); if ( ret < 0 ) return ret; break; case PRELUDE_MSG_OPTION_TARGET_ID: if ( dlen % sizeof(uint64_t) != 0 || dlen < (2 * sizeof(uint64_t)) ) return -1; *source_id = prelude_extract_uint64((unsigned char *) buf + (dlen - sizeof(uint64_t))); break; case PRELUDE_MSG_OPTION_LIST: type = PRELUDE_OPTION_REPLY_TYPE_LIST; ret = prelude_option_new(NULL, (prelude_option_t **) value); if ( ret < 0 ) return ret; ret = read_option_list(msg, *value, NULL); if ( ret < 0 ) return ret; break; default: prelude_log(PRELUDE_LOG_WARN, "unknown option tag %d.\n", tag); } } return type; } libprelude-5.2.0/src/PaxHeaders.14770/prelude-plugin.c0000644000000000000000000000011013726163410020532 xustar000000000000000024 mtime=1599661832.705 24 atime=1599661832.793 24 ctime=1599661999.824 libprelude-5.2.0/src/prelude-plugin.c0000644000000000000000000005756413726163410017556 0ustar00rootroot00000000000000/***** * * Copyright (C) 1998-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #include #include #if TIME_WITH_SYS_TIME # include # include #else # if HAVE_SYS_TIME_H # include # else # include # endif #endif #include #include "prelude-log.h" #include "variable.h" #include "prelude-inttypes.h" #include "prelude-io.h" #include "prelude-option.h" #include "prelude-linked-object.h" #include "prelude-plugin.h" #include "prelude-error.h" #include "config-engine.h" #define DEFAULT_INSTANCE_NAME "default" typedef struct { int count; void *data; const char *symbol; prelude_list_t *head; int (*subscribe)(prelude_plugin_instance_t *pc); void (*unsubscribe)(prelude_plugin_instance_t *pc); } libltdl_data_t; struct prelude_plugin_entry { prelude_list_t list; void *handle; prelude_list_t instance_list; prelude_option_t *root_opt; prelude_plugin_generic_t *plugin; int (*subscribe)(prelude_plugin_instance_t *pc); void (*unsubscribe)(prelude_plugin_instance_t *pc); int (*commit_instance)(prelude_plugin_instance_t *pi, prelude_string_t *out); int (*create_instance)(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context); }; struct prelude_plugin_instance { /* * List members for external list (outside library). */ PRELUDE_LINKED_OBJECT; /* * List members for internal list (inside plugin_entry). */ prelude_list_t int_list; /* * pointer to the plugin */ prelude_plugin_entry_t *entry; /* * information about this instance. */ void *data; void *plugin_data; char *name; /* * Instance running time and count. */ double time; unsigned count; unsigned int already_used; prelude_bool_t already_subscribed; }; /* * Some definition : * - Plugin Entry (plugin_entry_t) : * only used here, keep track of all plugin and their container. * * - Plugin Instance (plugin_instance_t) : * Contain a pointer on the plugin, and informations about the * plugin that can't be shared. The instances are what the * structure that external application should use to access the * plugin. * * - The Plugin (plugin_generic_t) : * Contain shared plugin data. */ static PRELUDE_LIST(all_plugins); static unsigned int plugin_count = 0; static prelude_bool_t ltdl_need_init = TRUE; static prelude_plugin_entry_t *search_plugin_entry_by_name(prelude_list_t *head, const char *name) { prelude_list_t *tmp; prelude_plugin_entry_t *pe; if ( ! head ) head = &all_plugins; prelude_list_for_each(head, tmp) { pe = prelude_list_entry(tmp, prelude_plugin_entry_t, list); if ( pe->plugin && strcasecmp(pe->plugin->name, name) == 0 ) return pe; } return NULL; } static prelude_plugin_instance_t *search_instance_from_entry(prelude_plugin_entry_t *pe, const char *name) { prelude_list_t *tmp; prelude_plugin_instance_t *pi; prelude_list_for_each(&pe->instance_list, tmp) { pi = prelude_list_entry(tmp, prelude_plugin_instance_t, int_list); if ( strcasecmp(pi->name, name) == 0 ) return pi; } return NULL; } static int create_instance(prelude_plugin_instance_t **npi, prelude_plugin_entry_t *pe, const char *name, void *data) { prelude_plugin_instance_t *pi; *npi = pi = calloc(1, sizeof(*pi)); if ( ! pi ) return prelude_error_from_errno(errno); if ( ! name || *name == 0 ) name = DEFAULT_INSTANCE_NAME; pi->name = strdup(name); if ( ! pi->name ) { free(pi); return prelude_error_from_errno(errno); } pi->entry = pe; pi->data = data; prelude_list_add_tail(&pe->instance_list, &pi->int_list); return 0; } static void destroy_instance(prelude_plugin_instance_t *instance) { free(instance->name); prelude_list_del(&instance->int_list); free(instance); } static int plugin_desactivate(prelude_option_t *opt, prelude_string_t *out, void *context) { prelude_plugin_instance_t *pi = context; if ( ! pi ) { prelude_string_sprintf(out, "referenced instance not available"); return -1; } if ( pi->entry->plugin->destroy ) { int ret; prelude_bool_t need_free = FALSE; if ( ! out ) { ret = prelude_string_new(&out); if ( ret < 0 ) return ret; need_free = TRUE; } pi->entry->plugin->destroy(pi, out); if ( need_free ) prelude_string_destroy(out); /* * prevent unsubscribe from destroying it again */ pi->entry->plugin->destroy = NULL; } return prelude_plugin_instance_unsubscribe(pi); } static int intercept_plugin_activation_option(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { int ret = 0; prelude_plugin_entry_t *pe; prelude_plugin_instance_t *pi; prelude_option_context_t *octx; pe = _prelude_option_get_private_data(opt); assert(pe); if ( ! optarg || ! *optarg ) optarg = DEFAULT_INSTANCE_NAME; pi = search_instance_from_entry(pe, optarg); if ( ! pi ) { ret = create_instance(&pi, pe, optarg, NULL); if ( ret < 0 ) return ret; ret = pi->entry->create_instance(opt, optarg, err, pi); if ( ret < 0 ) return ret; ret = prelude_option_new_context(opt, &octx, optarg, pi); if ( ret < 0 ) { destroy_instance(pi); return ret; } if ( ! pe->commit_instance ) ret = prelude_plugin_instance_subscribe(pi); } return ret; } static int intercept_plugin_commit_option(prelude_option_t *opt, prelude_string_t *out, void *context) { int ret; prelude_plugin_entry_t *pe; prelude_plugin_instance_t *pi = context; if ( ! pi ) { prelude_string_sprintf(out, "referenced instance not available"); return -1; } pe = pi->entry; ret = pe->commit_instance(pi, out); if ( pi->already_subscribed ) return ret; if ( ret == 0 ) prelude_plugin_instance_subscribe(pi); return ret; } /* * Initialize a new plugin entry, and add it to * the entry list. */ static int add_plugin_entry(prelude_list_t *head, prelude_plugin_entry_t **pe) { *pe = calloc(1, sizeof(**pe)); if ( ! *pe ) return prelude_error_from_errno(errno); (*pe)->plugin = NULL; prelude_list_init(&(*pe)->instance_list); prelude_list_add_tail(head, &(*pe)->list); return 0; } /* * Copy an existing container (because the plugin will probably * linked in several part of the program, and that the container * contain not shared information). */ static int copy_instance(prelude_plugin_instance_t **dst, prelude_plugin_instance_t *src) { *dst = malloc(sizeof(**dst)); if ( ! *dst ) return prelude_error_from_errno(errno); memcpy(*dst, src, sizeof(**dst)); (*dst)->name = strdup(src->name); if ( ! (*dst)->name ) { free(*dst); return prelude_error_from_errno(errno); } prelude_list_add_tail(&src->entry->instance_list, &(*dst)->int_list); return 0; } /* * lt_dlopenext will fail looking up the symbol in case the libtool * archive is missing. */ static const char *libtool_is_buggy(const char *pname, const char *sym, char *out, size_t size) { size_t i; for ( i = 0; i < size && pname[i]; i++ ) { if ( isalnum((int) pname[i]) ) out[i] = pname[i]; else out[i] = '_'; } snprintf(out + i, size - i, "_LTX_%s", sym); return out; } /* * Load a single plugin pointed to by 'filename'. */ static int plugin_load_single(prelude_list_t *head, const char *filename, const char *symbol, void *data, int (*subscribe)(prelude_plugin_instance_t *pc), void (*unsubscribe)(prelude_plugin_instance_t *pc)) { int ret; void *handle; const char *pname; prelude_plugin_entry_t *pe; char buf[1024]; prelude_bool_t buggy_libtool = FALSE; int (*plugin_version)(void); int (*plugin_init)(prelude_plugin_entry_t *pe, void *data); handle = lt_dlopenext(filename); if ( ! handle ) { prelude_log(PRELUDE_LOG_WARN, "%s: %s.\n", filename, lt_dlerror()); return -1; } pname = strrchr(filename, '/'); pname = (pname) ? pname + 1 : filename; plugin_version = lt_dlsym(handle, "prelude_plugin_version"); if ( ! plugin_version ) { buggy_libtool = TRUE; plugin_version = lt_dlsym(handle, libtool_is_buggy(pname, "prelude_plugin_version", buf, sizeof(buf))); } if ( ! plugin_version ) { prelude_log(PRELUDE_LOG_WARN, "%s: %s.\n", pname, lt_dlerror()); lt_dlclose(handle); return -1; } ret = plugin_version(); if ( ret != PRELUDE_PLUGIN_API_VERSION ) { prelude_log(PRELUDE_LOG_WARN, "%s: API version %d does not match plugin API version %d.\n", pname, ret, PRELUDE_PLUGIN_API_VERSION); lt_dlclose(handle); return -1; } plugin_init = lt_dlsym(handle, buggy_libtool ? libtool_is_buggy(pname, symbol, buf, sizeof(buf)) : symbol); if ( ! plugin_init ) { prelude_log(PRELUDE_LOG_WARN, "%s: plugin initialization failed: '%s'.\n", pname, lt_dlerror()); lt_dlclose(handle); return -1; } ret = add_plugin_entry(head, &pe); if ( ret < 0 ) { lt_dlclose(handle); return ret; } pe->handle = handle; pe->subscribe = subscribe; pe->unsubscribe = unsubscribe; ret = plugin_init(pe, data); if ( ret < 0 || ! pe->plugin ) { prelude_log(PRELUDE_LOG_WARN, "%s initialization failure : %s.\n", filename, prelude_strerror(ret)); prelude_list_del(&pe->list); lt_dlclose(handle); free(pe); return -1; } return 0; } static int libltdl_load_cb(const char *filename, lt_ptr ptr) { int ret; libltdl_data_t *data = ptr; ret = plugin_load_single(data->head, filename, data->symbol, data->data, data->subscribe, data->unsubscribe); if ( ret == 0 ) data->count++; return 0; } /** * prelude_plugin_load_from_dir: * @head: List where the loaded plugin should be added. * @dirname: The directory to load the plugin from. * @symbol: Symbol to lookup within loaded plugin. * @ptr: Extra pointer to provide to the plugin initialization function. * @subscribe: Pointer to a callback function for plugin subscribtion. * @unsubscribe: Pointer to a callback function for plugin un-subscribtion. * * Load all plugins in directory 'dirname', using @symbol entry point. * Each plugin have a @subscribe and @unsubscribe callback associated with it. * * The plugins are loaded, but not active, until someone call prelude_plugin_subscribe() * on one of the plugin. Which'll call @subscribe in order to register it. * * @ptr is an extra argument provided to the plugin at initialization time. * * Returns: The number of loaded plugins on success, -1 on error. */ int prelude_plugin_load_from_dir(prelude_list_t *head, const char *dirname, const char *symbol, void *ptr, int (*subscribe)(prelude_plugin_instance_t *p), void (*unsubscribe)(prelude_plugin_instance_t *pc)) { int ret; libltdl_data_t data; if ( plugin_count == 0 && ltdl_need_init ) { ret = lt_dlinit(); if ( ret < 0 ) return prelude_error(PRELUDE_ERROR_PLUGIN_LTDL_INIT); ltdl_need_init = FALSE; } data.count = 0; data.data = ptr; data.symbol = symbol; data.subscribe = subscribe; data.unsubscribe = unsubscribe; data.head = head ? head : &all_plugins; lt_dlforeachfile(dirname, libltdl_load_cb, &data); plugin_count += data.count; return data.count; } int prelude_plugin_new_instance(prelude_plugin_instance_t **pi, prelude_plugin_generic_t *plugin, const char *name, void *data) { int ret = 0; prelude_plugin_entry_t *pe; prelude_option_context_t *octx; if ( ! name || ! *name ) name = DEFAULT_INSTANCE_NAME; pe = plugin->_pe; /* * might be NULL in case the plugin subscribe from the commit function. */ pe->plugin = plugin; *pi = search_instance_from_entry(pe, name); if ( ! *pi ) { ret = create_instance(pi, pe, name, data); if ( ret < 0 ) return ret; if ( pe->create_instance ) { ret = pe->create_instance(pe->root_opt, name, NULL, *pi); if ( ret < 0 ) return ret; } if ( pe->root_opt ) { ret = prelude_option_new_context(pe->root_opt, &octx, name, *pi); if ( ret < 0 ) { destroy_instance(*pi); return ret; } } if ( ! pe->commit_instance ) ret = prelude_plugin_instance_subscribe(*pi); } return ret; } int prelude_plugin_instance_subscribe(prelude_plugin_instance_t *pi) { int ret = 0; if ( pi->entry->subscribe ) ret = pi->entry->subscribe(pi); pi->already_subscribed = TRUE; return ret; } /** * prelude_plugin_instance_unsubscribe: * @pi: Pointer to a plugin instance. * * Set @pi to be inactive. * * The unsubscribe function specified in plugin_load_from_dir() * is called for plugin un-registration and the instance for this * plugin is freed. * * Returns: 0 on success, -1 if an error occured. */ int prelude_plugin_instance_unsubscribe(prelude_plugin_instance_t *pi) { int ret; if ( pi->entry->plugin->destroy ) { prelude_string_t *tmp; ret = prelude_string_new(&tmp); if ( ret < 0 ) return ret; pi->entry->plugin->destroy(pi, tmp); prelude_string_destroy(tmp); } if ( pi->already_subscribed && pi->entry->unsubscribe ) pi->entry->unsubscribe(pi); destroy_instance(pi); return 0; } int prelude_plugin_set_activation_option(prelude_plugin_entry_t *pe, prelude_option_t *opt, int (*commit)(prelude_plugin_instance_t *pi, prelude_string_t *out)) { pe->root_opt = opt; prelude_option_set_destroy_callback(opt, plugin_desactivate); prelude_option_set_type(opt, prelude_option_get_type(opt) | PRELUDE_OPTION_TYPE_CONTEXT); pe->create_instance = prelude_option_get_set_callback(opt); prelude_option_set_get_callback(opt, NULL); prelude_option_set_set_callback(opt, intercept_plugin_activation_option); _prelude_option_set_private_data(opt, pe); /* * if a commit function is provided, set it up. */ if ( commit ) { prelude_option_set_commit_callback(opt, intercept_plugin_commit_option); pe->commit_instance = commit; } return 0; } /** * prelude_plugin_instance_add: * @pi: Pointer to a plugin instance * @h: Pointer to a linked list * * This function add the plugin instance associated with @pi to the linked list * specified by @h. If this instance is already used somewhere else, a copy is * made, since instance does not share information). * * Returns: 0 on success or -1 if an error occured. */ int prelude_plugin_instance_add(prelude_plugin_instance_t *pi, prelude_list_t *h) { int ret; if ( pi->already_used++ ) { ret = copy_instance(&pi, pi); if ( ret < 0 ) return ret; } prelude_linked_object_add_tail(h, (prelude_linked_object_t *) pi); return 0; } /** * prelude_plugin_instance_del: * @pi: Pointer to a plugin instance. * * Delete @pi from the list specified at prelude_plugin_instance_add() time. */ void prelude_plugin_instance_del(prelude_plugin_instance_t *pi) { assert(pi->already_used); pi->already_used--; prelude_linked_object_del((prelude_linked_object_t *) pi); } /** * prelude_plugin_search_by_name: * @head: List where to search the plugin from. * @name: Name of the plugin to search. * * Search @head list of plugin for a plugin with name @name. * * Returns: the a #prelude_plugin_t on success, or NULL if the plugin does not exist. */ prelude_plugin_generic_t *prelude_plugin_search_by_name(prelude_list_t *head, const char *name) { prelude_plugin_entry_t *pe; pe = search_plugin_entry_by_name(head, name); if ( ! pe ) return NULL; return pe->plugin; } /** * prelude_plugin_instance_search_by_name: * @head: List where to search the plugin from. * @pname: Name of the plugin to search. * @iname: Name of the instance for this plugin. * * Search @head list of plugin for a plugin @pname with instance @iname. * * Returns: A #prelude_plugin_instance_t on success, or NULL if the instance does not exit. */ prelude_plugin_instance_t *prelude_plugin_search_instance_by_name(prelude_list_t *head, const char *pname, const char *iname) { prelude_plugin_entry_t *pe; if ( ! iname ) iname = DEFAULT_INSTANCE_NAME; pe = search_plugin_entry_by_name(head, pname); if ( ! pe ) return NULL; return search_instance_from_entry(pe, iname); } void prelude_plugin_instance_set_plugin_data(prelude_plugin_instance_t *pi, void *data) { pi->plugin_data = data; } void prelude_plugin_instance_set_data(prelude_plugin_instance_t *pi, void *data) { pi->data = data; } void *prelude_plugin_instance_get_data(prelude_plugin_instance_t *pi) { return pi->data; } void *prelude_plugin_instance_get_plugin_data(prelude_plugin_instance_t *pi) { return pi->plugin_data; } const char *prelude_plugin_instance_get_name(prelude_plugin_instance_t *pi) { return pi->name; } prelude_plugin_generic_t *prelude_plugin_instance_get_plugin(prelude_plugin_instance_t *pi) { return pi->entry->plugin; } void prelude_plugin_instance_compute_time(prelude_plugin_instance_t *pi, struct timeval *start, struct timeval *end) { pi->time += (double) end->tv_sec + (double) (end->tv_usec * 1e-6); pi->time -= (double) start->tv_sec + (double) (start->tv_usec * 1e-6); pi->count++; } int prelude_plugin_instance_call_commit_func(prelude_plugin_instance_t *pi, prelude_string_t *err) { return pi->entry->commit_instance(pi, err); } prelude_bool_t prelude_plugin_instance_has_commit_func(prelude_plugin_instance_t *pi) { return (pi->entry->commit_instance) ? TRUE : FALSE; } void prelude_plugin_entry_set_plugin(prelude_plugin_entry_t *pe, prelude_plugin_generic_t *pl) { pl->_pe = pe; pe->plugin = pl; } void prelude_plugin_set_preloaded_symbols(void *symlist) { unsigned long len; lt_dlsymlist *s = symlist; static lt_dlsymlist rpl_sym[65535] = { { "@PROGNAME@", NULL }, { NULL, NULL } }; if ( s[0].name == NULL || strcmp(s[0].name, "@PROGNAME@") != 0 ) { /* * Check size of the input symlist. */ for ( len = 0; s[len].name != NULL; len++ ); if ( len + 1 >= sizeof(rpl_sym) / sizeof(*rpl_sym) ) { prelude_log(PRELUDE_LOG_CRIT, "replacement symlist is not large enough (%lu entry).\n", len); len = (sizeof(rpl_sym) / sizeof(*rpl_sym)) - 2; } /* * Copy as many symbols as possible, and set the last entry to NULL. */ memcpy(&rpl_sym[1], s, len * sizeof(*rpl_sym)); rpl_sym[len + 1].name = NULL; s = rpl_sym; } lt_dlpreload_default(s); } prelude_plugin_generic_t *prelude_plugin_get_next(prelude_list_t *head, prelude_list_t **iter) { prelude_list_t *tmp; prelude_plugin_entry_t *pe; if ( ! head ) head = &all_plugins; prelude_list_for_each_continue_safe(head, tmp, *iter) { pe = prelude_list_entry(tmp, prelude_plugin_entry_t, list); return pe->plugin; } return NULL; } void prelude_plugin_unload(prelude_plugin_generic_t *plugin) { prelude_list_t *tmp, *bkp; prelude_plugin_entry_t *pe; prelude_plugin_instance_t *pi; prelude_list_for_each_safe(&plugin->_pe->instance_list, tmp, bkp) { pi = prelude_list_entry(tmp, prelude_plugin_instance_t, int_list); plugin_desactivate(NULL, NULL, pi); } pe = plugin->_pe; prelude_list_del(&pe->list); lt_dlclose(pe->handle); free(pe); if ( --plugin_count == 0 && ! ltdl_need_init ) { lt_dlexit(); ltdl_need_init = TRUE; } } libprelude-5.2.0/src/PaxHeaders.14770/prelude-string.c0000644000000000000000000000011013726163410020542 xustar000000000000000024 mtime=1599661832.705 24 atime=1599661832.793 24 ctime=1599661999.826 libprelude-5.2.0/src/prelude-string.c0000644000000000000000000006753413726163410017564 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* * This code include an heavily modified version of the prelude-strbuf * API made by Krzysztof Zaraska, that is now part of prelude-string. */ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include "common.h" #include "prelude-log.h" #include "prelude-inttypes.h" #include "prelude-string.h" #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_STRING #include "prelude-error.h" #define BUFFER_CHUNK_SIZE 16 #define BUFFER_GROWTH_FACTOR 1.5 /* * String structure may be free'd */ #define PRELUDE_STRING_OWN_STRUCTURE 0x1 /* * String data may be free'd */ #define PRELUDE_STRING_OWN_DATA 0x2 #if ! defined (PRELUDE_VA_COPY) # if defined (__GNUC__) && defined (__PPC__) && (defined (_CALL_SYSV) || defined (_WIN32)) # define PRELUDE_VA_COPY(ap1, ap2) (*(ap1) = *(ap2)) # elif defined (PRELUDE_VA_COPY_AS_ARRAY) # define PRELUDE_VA_COPY(ap1, ap2) memmove ((ap1), (ap2), sizeof(va_list)) # else /* va_list is a pointer */ # define PRELUDE_VA_COPY(ap1, ap2) ((ap1) = (ap2)) # endif #endif #define STRING_RETURN_IF_INVALID(str, len) do { \ prelude_return_val_if_fail((len + 1) > len, \ prelude_error_verbose(PRELUDE_ERROR_INVAL_LENGTH, \ "string length warning: wrap around would occur")); \ \ prelude_return_val_if_fail(str[len] == 0, \ prelude_error_verbose(PRELUDE_ERROR_STRING_NOT_NULL_TERMINATED, \ "string warning: not nul terminated")); \ } while(0) struct prelude_string { PRELUDE_LINKED_OBJECT; int flags; int refcount; union { char *rwbuf; const char *robuf; } data; size_t size; size_t index; }; static int string_buf_alloc(prelude_string_t *string, size_t len) { /* * include room for terminating \0. */ string->data.rwbuf = malloc(len + 1); if ( ! string->data.rwbuf ) return prelude_error_from_errno(errno); string->index = len; string->size = len + 1; return 0; } static void string_buf_copy(prelude_string_t *string, const char *buf, size_t len) { assert(len < string->size); memcpy(string->data.rwbuf, buf, len); string->data.rwbuf[len] = '\0'; } static int make_string_own(prelude_string_t *s, size_t len) { char *ptr; ptr = malloc(len); if ( ! ptr ) return prelude_error_from_errno(errno); if ( s->data.robuf ) memcpy(ptr, s->data.robuf, s->index + 1); s->size = len; s->data.rwbuf = ptr; s->flags |= PRELUDE_STRING_OWN_DATA; return 0; } static int allocate_more_chunk_if_needed(prelude_string_t *s, size_t needed_len) { int ret; char *ptr; size_t len; if ( ! needed_len ) len = BUFFER_CHUNK_SIZE; else len = MAX(needed_len - (s->size - s->index), s->size * BUFFER_GROWTH_FACTOR); if ( s->size + len < s->size ) return prelude_error(PRELUDE_ERROR_INVAL_LENGTH); if ( s->flags & PRELUDE_STRING_OWN_DATA ) { ptr = _prelude_realloc(s->data.rwbuf, s->size + len); if ( ! ptr ) return prelude_error_from_errno(errno); s->size += len; s->data.rwbuf = ptr; } else { ret = make_string_own(s, s->size + len); if ( ret < 0 ) return ret; } return 0; } /** * prelude_string_new: * @string: Pointer where to store the created #prelude_string_t. * * Create a new #prelude_string_t object, and store in in @string. * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_string_new(prelude_string_t **string) { *string = calloc(1, sizeof(**string)); if ( ! *string ) return prelude_error_from_errno(errno); (*string)->refcount = 1; prelude_list_init(&(*string)->_list); (*string)->flags = PRELUDE_STRING_OWN_STRUCTURE; return 0; } /** * prelude_string_ref: * @string: Pointer to a #prelude_string_t object to reference. * * Increase @string reference count. * * Returns: @string. */ prelude_string_t *prelude_string_ref(prelude_string_t *string) { prelude_return_val_if_fail(string, NULL); string->refcount++; return string; } /** * prelude_string_new_dup_fast: * @string: Pointer where to store the created #prelude_string_t object. * @str: Initial string value. * @len: Lenght of @str. * * Create a new #prelude_string_t object with a copy of @str as it's * initial value. The copy is owned by the @string and will be freed * upon prelude_string_destroy(). * * Returns: 0 on success, a negative value if an error occured. */ int prelude_string_new_dup_fast(prelude_string_t **string, const char *str, size_t len) { int ret; prelude_return_val_if_fail(str, prelude_error(PRELUDE_ERROR_ASSERTION)); STRING_RETURN_IF_INVALID(str, len); ret = prelude_string_new(string); if ( ret < 0 ) return ret; ret = string_buf_alloc(*string, len); if ( ret < 0 ) return ret; string_buf_copy(*string, str, len); (*string)->flags |= PRELUDE_STRING_OWN_DATA; return 0; } /** * prelude_string_new_dup: * @string: Pointer where to store the created #prelude_string_t object. * @str: Initial string value. * * Create a new #prelude_string_t object with a copy of @str as it's * initial value. The copy is owned by the @string and will be freed * upon prelude_string_destroy(). * * Returns: 0 on success, a negative value if an error occured. */ int prelude_string_new_dup(prelude_string_t **string, const char *str) { prelude_return_val_if_fail(str, prelude_error(PRELUDE_ERROR_ASSERTION)); return prelude_string_new_dup_fast(string, str, strlen(str)); } /** * prelude_string_new_nodup_fast: * @string: Pointer where to store the created #prelude_string_t object. * @str: Initial string value. * @len: Lenght of @str. * * Create a new #prelude_string_t object with a reference to @str as * initial value. @str is owned by @string and will be freed upon * prelude_string_destroy(). * * Returns: 0 on success, a negative value if an error occured. */ int prelude_string_new_nodup_fast(prelude_string_t **string, char *str, size_t len) { int ret; prelude_return_val_if_fail(str, prelude_error(PRELUDE_ERROR_ASSERTION)); STRING_RETURN_IF_INVALID(str, len); ret = prelude_string_new(string); if ( ret < 0 ) return ret; (*string)->index = len; (*string)->size = len + 1; (*string)->data.rwbuf = str; (*string)->flags |= PRELUDE_STRING_OWN_DATA; return 0; } /** * prelude_string_new_nodup: * @string: Pointer where to store the created #prelude_string_t object. * @str: Initial string value. * * Create a new #prelude_string_t object with a reference to @str as * initial value. @str is owned by @string and will be freed upon * prelude_string_destroy(). * * Returns: 0 on success, a negative value if an error occured. */ int prelude_string_new_nodup(prelude_string_t **string, char *str) { prelude_return_val_if_fail(str, prelude_error(PRELUDE_ERROR_ASSERTION)); return prelude_string_new_nodup_fast(string, str, strlen(str)); } /** * prelude_string_new_ref_fast: * @string: Pointer where to store the created #prelude_string_t object. * @str: Initial string value. * @len: Length of @str. * * Create a new #prelude_string_t object with a reference to @str as * initial value. @str won't be freed upon prelude_string_destroy(). * * Returns: 0 on success, a negative value if an error occured. */ int prelude_string_new_ref_fast(prelude_string_t **string, const char *buf, size_t len) { int ret; prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); STRING_RETURN_IF_INVALID(buf, len); ret = prelude_string_new(string); if ( ret < 0 ) return ret; (*string)->index = len; (*string)->size = len + 1; (*string)->data.robuf = buf; return 0; } /** * prelude_string_new_ref: * @string: Pointer where to store the created #prelude_string_t object. * @str: Initial string value. * * Create a new #prelude_string_t object with a reference to @str as * initial value. @str won't be freed upon prelude_string_destroy(). * * Returns: 0 on success, a negative value if an error occured. */ int prelude_string_new_ref(prelude_string_t **string, const char *str) { prelude_return_val_if_fail(str, prelude_error(PRELUDE_ERROR_ASSERTION)); return prelude_string_new_ref_fast(string, str, strlen(str)); } /** * prelude_string_set_dup_fast: * @string: Pointer to a #prelude_string_t object. * @buf: String to store in @string. * @len: Lenght of @buf. * * Store a copy of the string pointed by @buf in @string. * The @buf copy will be freed upon prelude_string_destroy(). * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_string_set_dup_fast(prelude_string_t *string, const char *buf, size_t len) { int ret; prelude_return_val_if_fail(string, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); STRING_RETURN_IF_INVALID(buf, len); prelude_string_destroy_internal(string); ret = string_buf_alloc(string, len); if ( ret < 0 ) return ret; string_buf_copy(string, buf, len); string->flags |= PRELUDE_STRING_OWN_DATA; return 0; } /** * prelude_string_set_dup: * @string: Pointer to a #prelude_string_t object. * @buf: String to store in @string. * * Store a copy of the string pointed by @buf in @string. * The @buf copy will be freed upon prelude_string_destroy(). * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_string_set_dup(prelude_string_t *string, const char *buf) { prelude_return_val_if_fail(string, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); return prelude_string_set_dup_fast(string, buf, strlen(buf)); } /** * prelude_string_set_nodup_fast: * @string: Pointer to a #prelude_string_t object. * @buf: String to store in @string. * @len: Lenght of @buf. * * Store a reference to the string pointed by @buf in @string. * The referenced @buf will be freed upon prelude_string_destroy(). * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_string_set_nodup_fast(prelude_string_t *string, char *buf, size_t len) { prelude_return_val_if_fail(string, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); STRING_RETURN_IF_INVALID(buf, len); prelude_string_destroy_internal(string); string->index = len; string->size = len + 1; string->data.rwbuf = buf; string->flags |= PRELUDE_STRING_OWN_DATA; return 0; } /** * prelude_string_set_nodup: * @string: Pointer to a #prelude_string_t object. * @buf: String to store in @string. * * Store a reference to the string pointed by @buf in @string. * The referenced @buf will be freed upon prelude_string_destroy(). * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_string_set_nodup(prelude_string_t *string, char *buf) { prelude_return_val_if_fail(string, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); return prelude_string_set_nodup_fast(string, buf, strlen(buf)); } /** * prelude_string_set_ref_fast: * @string: Pointer to a #prelude_string_t object. * @buf: String to store in @string. * @len: Lenght of @buf. * * Store a reference to the string pointed by @buf in @string. * The referenced @buf value won't be modified or freed. * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_string_set_ref_fast(prelude_string_t *string, const char *buf, size_t len) { prelude_return_val_if_fail(string, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); STRING_RETURN_IF_INVALID(buf, len); prelude_string_destroy_internal(string); string->index = len; string->size = len + 1; string->data.robuf = buf; string->flags &= ~PRELUDE_STRING_OWN_DATA; return 0; } /** * prelude_string_set_ref: * @string: Pointer to a #prelude_string_t object. * @buf: String to store in @string. * * Store a reference to the string pointed by @buf in @string. * The referenced @buf value won't be modified or freed. * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_string_set_ref(prelude_string_t *string, const char *buf) { prelude_return_val_if_fail(string, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); return prelude_string_set_ref_fast(string, buf, strlen(buf)); } /** * prelude_string_copy_ref: * @src: Pointer to a #prelude_string_t object to copy data from. * @dst: Pointer to a #prelude_string_t object to copy data to. * * Reference @src content within @dst. * The referenced content won't be modified or freed. * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_string_copy_ref(const prelude_string_t *src, prelude_string_t *dst) { prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_string_destroy_internal(dst); dst->size = src->size; dst->index = src->index; dst->data.robuf = src->data.robuf; dst->flags &= ~PRELUDE_STRING_OWN_DATA; return 0; } /** * prelude_string_copy_dup: * @src: Pointer to a #prelude_string_t object to copy data from. * @dst: Pointer to a #prelude_string_t object to copy data to. * * Copy @src content within @dst. * The content is owned by @src and independent of @dst. * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_string_copy_dup(const prelude_string_t *src, prelude_string_t *dst) { prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_string_destroy_internal(dst); dst->size = src->size; dst->index = src->index; dst->flags |= PRELUDE_STRING_OWN_DATA; if ( src->size ) { dst->data.rwbuf = malloc(src->size); if ( ! dst->data.rwbuf ) return prelude_error_from_errno(errno); string_buf_copy(dst, src->data.robuf, src->index); } return 0; } /** * prelude_string_clone: * @src: Pointer to an existing #prelude_string_t object. * @dst: Pointer to an address where to store the created #prelude_string_t object. * * Clone @src within a new #prelude_string_t object stored into @dst. * Data carried by @dst and @src are independant. * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_string_clone(const prelude_string_t *src, prelude_string_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = prelude_string_new(dst); if ( ret < 0 ) return ret; (*dst)->size = src->size; (*dst)->index = src->index; (*dst)->flags |= PRELUDE_STRING_OWN_DATA; if ( src->size ) { (*dst)->data.rwbuf = malloc(src->size); if ( ! (*dst)->data.rwbuf ) { prelude_string_destroy(*dst); return prelude_error_from_errno(errno); } string_buf_copy(*dst, src->data.robuf, src->index); } return 0; } /** * prelude_string_get_len: * @string: Pointer to a #prelude_string_t object. * * Return the length of the string carried by @string object. * * Returns: The length of the string owned by @string. */ size_t prelude_string_get_len(const prelude_string_t *string) { prelude_return_val_if_fail(string, 0); return string->index; } /** * prelude_string_get_string_or_default: * @string: Pointer to a #prelude_string_t object. * @def: Default value to a return in case @string is empty. * * Return the string carried on by @string object, or @def if it is empty. * There should be no operation done on the returned string since it is still * owned by @string. * * Returns: The string owned by @string or @def. */ const char *prelude_string_get_string_or_default(const prelude_string_t *string, const char *def) { prelude_return_val_if_fail(string, NULL); return string->data.robuf ? string->data.robuf : def; } /** * prelude_string_get_string: * @string: Pointer to a #prelude_string_t object. * * Return the string carried on by @string object. * There should be no operation done on the returned string since * it is still owned by @string. * * Returns: The string owned by @string if any. */ const char *prelude_string_get_string(const prelude_string_t *string) { prelude_return_val_if_fail(string, NULL); return string->data.robuf; } /** * prelude_string_get_string_released: * @string: Pointer to a #prelude_string_t object. * @outptr: Pointer to an address where to store the released string. * * Get @string content, and release it so that further operation on * @string won't modify the returned content. * * Returns: 0 on success, or a negative value if an error occured. */ int prelude_string_get_string_released(prelude_string_t *string, char **outptr) { prelude_return_val_if_fail(string, prelude_error(PRELUDE_ERROR_ASSERTION)); *outptr = NULL; if ( ! string->index ) return 0; if ( ! (string->flags & PRELUDE_STRING_OWN_DATA) ) { *outptr = strdup(string->data.robuf); return (*outptr) ? 0 : prelude_error_from_errno(errno); } if ( string->index + 1 <= string->index ) return prelude_error(PRELUDE_ERROR_INVAL_LENGTH); *outptr = _prelude_realloc(string->data.rwbuf, string->index + 1); if ( ! *outptr ) return prelude_error_from_errno(errno); string->size = 0; string->index = 0; string->data.rwbuf = NULL; return 0; } /** * prelude_string_is_empty: * @string: Pointer to a #prelude_string_t object. * * Check whether @string is empty. * * Returns: TRUE if @string is empty, FALSE otherwise. */ prelude_bool_t prelude_string_is_empty(const prelude_string_t *string) { prelude_return_val_if_fail(string, TRUE); return (string->index == 0) ? TRUE : FALSE; } /* * This function cannot be declared static because its invoked * from idmef-tree-wrap.c */ void prelude_string_destroy_internal(prelude_string_t *string) { prelude_return_if_fail(string); if ( (string->flags & PRELUDE_STRING_OWN_DATA) && string->data.rwbuf ) free(string->data.rwbuf); string->data.rwbuf = NULL; string->index = string->size = 0; /* * free() should be done by the caller */ } /** * prelude_string_destroy: * @string: Pointer to a #prelude_string_t object. * * Decrease refcount and destroy @string. * @string content content is destroyed if applicable (dup and nodup, * or a referenced string that have been modified. */ void prelude_string_destroy(prelude_string_t *string) { prelude_return_if_fail(string); if ( --string->refcount ) return; if ( ! prelude_list_is_empty(&string->_list) ) prelude_list_del_init(&string->_list); prelude_string_destroy_internal(string); if ( string->flags & PRELUDE_STRING_OWN_STRUCTURE ) free(string); } /** * prelude_string_vprintf: * @string: Pointer to a #prelude_string_t object. * @fmt: Format string to use. * @ap: Variable argument list. * * Produce output according to @fmt, storing argument provided in @ap * variable argument list, and write the output to the given @string. * See sprintf(3) for more information on @fmt format. * * Returns: The number of characters written, or a negative value if an error occured. */ int prelude_string_vprintf(prelude_string_t *string, const char *fmt, va_list ap) { int ret; va_list bkp; prelude_return_val_if_fail(string, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(fmt, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! (string->flags & PRELUDE_STRING_OWN_DATA) ) { ret = allocate_more_chunk_if_needed(string, 0); if ( ret < 0 ) return ret; } PRELUDE_VA_COPY(bkp, ap); ret = vsnprintf(string->data.rwbuf + string->index, string->size - string->index, fmt, ap); /* * From sprintf(3) on GNU/Linux: * * snprintf and vsnprintf do not write more than * size bytes (including the trailing '\0'), and return -1 if * the output was truncated due to this limit. (Thus until * glibc 2.0.6. Since glibc 2.1 these functions follow the * C99 standard and return the number of characters (exclud- * ing the trailing '\0') which would have been written to * the final string if enough space had been available.) */ if ( ret >= 0 && (size_t) ret < string->size - string->index ) { string->index += ret; goto end; } ret = allocate_more_chunk_if_needed(string, (ret < 0) ? 0 : ret + 1); if ( ret < 0 ) goto end; ret = prelude_string_vprintf(string, fmt, bkp); end: va_end(bkp); return ret; } /** * prelude_string_sprintf: * @string: Pointer to a #prelude_string_t object. * @fmt: Format string to use. * @...: Variable argument list. * * Produce output according to @fmt, and write output to the given * @string. See snprintf(3) to learn more about @fmt format. * * Returns: The number of characters written, or a negative value if an error occured. */ int prelude_string_sprintf(prelude_string_t *string, const char *fmt, ...) { int ret; va_list ap; prelude_return_val_if_fail(string, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(fmt, prelude_error(PRELUDE_ERROR_ASSERTION)); va_start(ap, fmt); ret = prelude_string_vprintf(string, fmt, ap); va_end(ap); return ret; } /** * prelude_string_ncat: * @dst: Pointer to a #prelude_string_t object. * @str: Pointer to a string. * @len: Length of @str to copy. * * The prelude_string_ncat() function appends @len characters from @str to * the @dst #prelude_string_t object over-writing the `\0' character at the * end of @dst, and then adds a terminating `\0' character. * * Returns: @len, or a negative value if an error occurred. */ int prelude_string_ncat(prelude_string_t *dst, const char *str, size_t len) { int ret; prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(str, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( dst->flags & PRELUDE_STRING_OWN_DATA && len < (dst->size - dst->index) ) { memcpy(dst->data.rwbuf + dst->index, str, len); dst->index += len; dst->data.rwbuf[dst->index] = '\0'; return len; } if ( len + 1 < len ) return prelude_error(PRELUDE_ERROR_INVAL_LENGTH); ret = allocate_more_chunk_if_needed(dst, len + 1); if ( ret < 0 ) return ret; return prelude_string_ncat(dst, str, len); } /** * prelude_string_cat: * @dst: Pointer to a #prelude_string_t object. * @str: Pointer to a string. * * The prelude_string_cat() function appends the @str string to the @dst * prelude_string_t object over-writing the `\0' character at the end of * @dst, and then adds a terminating `\0' character. * * Returns: @len, or a negative value if an error occurred. */ int prelude_string_cat(prelude_string_t *dst, const char *str) { prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(str, prelude_error(PRELUDE_ERROR_ASSERTION)); return prelude_string_ncat(dst, str, strlen(str)); } /** * prelude_string_truncate: * @string: Pointer to a #prelude_string_t object. * @len: New @string size * * Truncate @string content. */ int prelude_string_truncate(prelude_string_t *string, size_t len) { int ret; prelude_return_val_if_fail(string, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(len <= string->index, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( len && ! (string->flags & PRELUDE_STRING_OWN_DATA) ) { ret = make_string_own(string, 0); if ( ret < 0 ) return ret; } if ( string->data.rwbuf ) *(string->data.rwbuf + len) = '\0'; else string->data.robuf = NULL; string->index = len; return 0; } /** * prelude_string_clear: * @string: Pointer to a #prelude_string_t object. * * Reset @string content to zero. */ void prelude_string_clear(prelude_string_t *string) { prelude_string_truncate(string, 0); } /** * prelude_string_compare: * @str1: Pointer to a #prelude_string_t object to compare with @str2. * @str2: Pointer to a #prelude_string_t object to compare with @str1. * * Compare @str1 and @str2. * * Returns: 0 if @str1 and @str2 value are equal, a negative value otherwise. */ int prelude_string_compare(const prelude_string_t *str1, const prelude_string_t *str2) { if ( ! str1 && ! str2 ) return 0; else if ( ! str1 || ! str2 ) return -1; else if ( str1->index != str2->index ) return -1; if ( str1->index == 0 ) return 0; return strcmp(str1->data.robuf, str2->data.robuf) == 0 ? 0 : -1; } libprelude-5.2.0/src/PaxHeaders.14770/prelude-timer.c0000644000000000000000000000011013726163410020354 xustar000000000000000024 mtime=1599661832.706 24 atime=1599661832.794 24 ctime=1599661999.828 libprelude-5.2.0/src/prelude-timer.c0000644000000000000000000002740413726163410017366 0ustar00rootroot00000000000000/***** * * Copyright (C) 1999-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include #include #include #include #include "glthread/thread.h" #include "glthread/lock.h" #include "glthread/cond.h" #include "prelude-log.h" #include "prelude-list.h" #include "prelude-linked-object.h" #include "prelude-async.h" #include "prelude-error.h" #include "prelude-timer.h" #ifndef MIN # define MIN(x, y) (((x) < (y)) ? (x) : (y)) #endif static PRELUDE_LIST(timer_list); static int next_wakeup = 0; static time_t last_wakeup = 0; static gl_lock_t mutex = gl_lock_initializer; inline static void timer_lock_list(void) { gl_lock_lock(mutex); } inline static void timer_unlock_list(void) { gl_lock_unlock(mutex); } /* * Return the time elapsed by a timer 'timer' from now, * to the time it was created / reset. */ static time_t time_elapsed(prelude_timer_t *timer, time_t now) { return now - timer->start_time; } static time_t time_remaining(prelude_timer_t *timer, time_t now) { return timer->expire - time_elapsed(timer, now); } /* * If timer 'timer' need to be waked up (it elapsed >= time * for it to expire), call it's callback function, with it's * registered argument. * * All expired timer should be destroyed. */ static int wake_up_if_needed(prelude_timer_t *timer, time_t now) { assert(timer->start_time != -1); if ( now == -1 || time_elapsed(timer, now) >= prelude_timer_get_expire(timer) ) { timer->start_time = -1; prelude_timer_get_callback(timer)(prelude_timer_get_data(timer)); return 0; } return (int) time_remaining(timer, now); } static prelude_timer_t *get_next_timer(void) { prelude_list_t *tmp; prelude_timer_t *timer = NULL; gl_lock_lock(mutex); prelude_list_for_each(&timer_list, tmp) { timer = prelude_list_entry(tmp, prelude_timer_t, list); break; } gl_lock_unlock(mutex); return timer; } /* * Walk the list of timer, * call the wake_up_if_need_function on each timer. */ static void walk_and_wake_up_timer(time_t now) { int ret, woke = 0; prelude_timer_t *timer; while ( (timer = get_next_timer()) ) { ret = wake_up_if_needed(timer, now); if ( ret != 0 ) { next_wakeup = ret; break; } woke++; } prelude_log_debug(5, "woke up %d timer, next wakeup in %d seconds\n", woke, next_wakeup); } /* * search the timer list forward for the timer entry * that should be before our inserted timer. */ static prelude_list_t *search_previous_forward(prelude_timer_t *timer, time_t expire) { int hop = 0; prelude_timer_t *cur; prelude_list_t *tmp, *prev = NULL; prelude_list_for_each(&timer_list, tmp) { cur = prelude_list_entry(tmp, prelude_timer_t, list); hop++; if ( (cur->start_time + cur->expire) < expire ) { /* * we found a previous timer (expiring before us), * but we're walking the list forward, and there could be more... * save and continue. */ prev = tmp; continue; } else if ( (cur->start_time + cur->expire) == expire ) { /* * we found a timer that's expiring at the same time * as us. Return it as the previous insertion point. */ prelude_log_debug(5, "[expire=%d] found forward in %d hop at %p\n", timer->expire, hop, cur); return tmp; } else if ( (cur->start_time + cur->expire) > expire ) { /* * we found a timer expiring after us. We can return * the previously saved entry. */ prelude_log_debug(5, "[expire=%d] found forward in %d hop at %p\n", timer->expire, hop, cur); assert(prev); return prev; } } /* * this should never happen, as search_previous_timer verify * if timer should be inserted last. */ abort(); } /* * search the timer list backward for the timer entry * that should be before our inserted timer. */ static prelude_list_t *search_previous_backward(prelude_timer_t *timer, time_t expire) { int hop = 0; prelude_timer_t *cur; prelude_list_t *tmp; for ( tmp = timer_list.prev; tmp != &timer_list; tmp = tmp->prev ) { cur = prelude_list_entry(tmp, prelude_timer_t, list); if ( (cur->start_time + cur->expire) <= expire ) { prelude_log_debug(5, "[expire=%d] found backward in %d hop at %p\n", timer->expire, hop + 1, cur); assert(tmp); return tmp; } hop++; } /* * this should never happen, as search_previous_timer verify * if timer should be inserted first. */ abort(); } inline static prelude_timer_t *get_first_timer(void) { return prelude_list_entry(timer_list.next, prelude_timer_t, list); } inline static prelude_timer_t *get_last_timer(void) { return prelude_list_entry(timer_list.prev, prelude_timer_t, list); } /* * On entering in this function, we know that : * - expire is > than first_expire. * - expire is < than last_expire. */ static prelude_list_t *search_previous_timer(prelude_timer_t *timer) { prelude_timer_t *last, *first; time_t last_remaining, first_remaining; last = get_last_timer(); first = get_first_timer(); /* * timer we want to insert expire after (or at the same time) the known * to be expiring last timer. This mean we should insert the new timer * at the end of the list. */ if ( timer->expire >= time_remaining(last, timer->start_time) ) { assert(timer_list.prev); prelude_log_debug(5, "[expire=%d] found without search (insert last)\n", timer->expire); return timer_list.prev; } /* * timer we want to insert expire before (or at the same time), the known * to be expiring first timer. This mean we should insert the new timer at * the beginning of the list. */ if ( timer->expire <= time_remaining(first, timer->start_time) ) { prelude_log_debug(5, "[expire=%d] found without search (insert first)\n", timer->expire); return &timer_list; } /* * we now know we expire after the first expiring timer, * but before the last expiring one. * * compute expiration time for current, last, and first timer. */ last_remaining = time_remaining(last, timer->start_time); first_remaining = time_remaining(first, timer->start_time); /* * use the better list iterating function to find the previous timer. */ if ( (last_remaining - timer->expire) > (timer->expire - first_remaining) ) /* * previous is probably near the beginning of the list. */ return search_previous_forward(timer, timer->expire + timer->start_time); else /* * previous is probably near the end of the list. */ return search_previous_backward(timer, timer->expire + timer->start_time); } static void timer_destroy_unlocked(prelude_timer_t *timer) { if ( ! prelude_list_is_empty(&timer->list) ) prelude_list_del_init(&timer->list); } static void timer_init_unlocked(prelude_timer_t *timer) { prelude_list_t *prev; timer->start_time = time(NULL); if ( ! prelude_list_is_empty(&timer_list) ) prev = search_previous_timer(timer); else prev = &timer_list; prelude_list_add(prev, &timer->list); next_wakeup = MIN(next_wakeup, prelude_timer_get_expire(timer)); } /** * prelude_timer_init: * @timer: timer to initialize. * * Initialize a timer (add it to the timer list). */ void prelude_timer_init(prelude_timer_t *timer) { timer_lock_list(); timer_init_unlocked(timer); timer_unlock_list(); } /** * prelude_timer_init_list: * @timer: Pointer to a #prelude_timer_t object. * * Initialize @timer list member. This is useful if * you're going to call prelude_timer_destroy() on timer * for which prelude_timer_init() was never called. * */ void prelude_timer_init_list(prelude_timer_t *timer) { prelude_list_init(&timer->list); } /** * prelude_timer_reset: * @timer: the timer to reset. * * Reset timer 'timer', as if it was just started. */ void prelude_timer_reset(prelude_timer_t *timer) { timer_lock_list(); timer_destroy_unlocked(timer); timer_init_unlocked(timer); timer_unlock_list(); } /** * prelude_timer_destroy: * @timer: the timer to destroy. * * Destroy the timer 'timer', * this remove it from the active timer list. */ void prelude_timer_destroy(prelude_timer_t *timer) { timer_lock_list(); timer_destroy_unlocked(timer); timer_unlock_list(); } /** * prelude_timer_wake_up: * * Wake up timer that need it. * This function should be called every second to work properly. * * Returns: Number of second in which prelude_timer_wake_up() should be called again. */ int prelude_timer_wake_up(void) { time_t now = time(NULL); if ( now - last_wakeup >= next_wakeup ) { walk_and_wake_up_timer(now); last_wakeup = now; } return next_wakeup; } /** * prelude_timer_flush: * * Expire every timer. */ void prelude_timer_flush(void) { walk_and_wake_up_timer(-1); } /** * prelude_timer_lock_critical_region: * * Deactivate timer wake-up until timer_unlock_critical_region() is called. */ void prelude_timer_lock_critical_region(void) { timer_lock_list(); } /** * prelude_timer_unlock_critical_region: * * Reactivate timer wake-up after timer_lock_critical_regions() has been called. */ void prelude_timer_unlock_critical_region(void) { timer_unlock_list(); } int _prelude_timer_init(void) { return 0; } void _prelude_timer_fork_prepare(void) { prelude_timer_lock_critical_region(); } void _prelude_timer_fork_parent(void) { prelude_timer_unlock_critical_region(); } void _prelude_timer_fork_child(void) { prelude_list_init(&timer_list); gl_lock_init(mutex); } libprelude-5.2.0/src/PaxHeaders.14770/prelude-thread.c0000644000000000000000000000011013726163410020503 xustar000000000000000024 mtime=1599661832.706 24 atime=1599661832.794 24 ctime=1599661999.829 libprelude-5.2.0/src/prelude-thread.c0000644000000000000000000000452213726163410017511 0ustar00rootroot00000000000000/***** * * Copyright (C) 2005-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include #include #include #include #include "glthread/tls.h" #include "glthread/lock.h" #include "prelude.h" #include "prelude-inttypes.h" #include "prelude-thread.h" #include "prelude-log.h" gl_once_define(static, init_once); static gl_tls_key_t thread_error_key; static void thread_error_key_destroy(void *value) { free(value); } static void thread_init(void) { gl_tls_key_init(thread_error_key, thread_error_key_destroy); } /* * */ int prelude_thread_init(void *nil) { int ret; ret = glthread_once(&init_once, thread_init); if ( ret < 0 ) return prelude_error_from_errno(ret); return 0; } /* * */ void _prelude_thread_deinit(void) { char *previous; previous = gl_tls_get(thread_error_key); if ( previous ) free(previous); gl_tls_key_destroy(thread_error_key); } int _prelude_thread_set_error(const char *error) { char *previous; /* * Make sure prelude_thread_init() has been called before using * thread local storage. */ prelude_thread_init(NULL); previous = gl_tls_get(thread_error_key); if ( previous ) free(previous); gl_tls_set(thread_error_key, strdup(error)); return 0; } const char *_prelude_thread_get_error(void) { return gl_tls_get(thread_error_key); } libprelude-5.2.0/src/PaxHeaders.14770/idmef-additional-data.c0000644000000000000000000000011013726163410021677 xustar000000000000000024 mtime=1599661832.665 24 atime=1599661832.775 24 ctime=1599661999.831 libprelude-5.2.0/src/idmef-additional-data.c0000644000000000000000000005377713726163410020725 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "libmissing.h" #include #include #include #include #include #include "prelude-log.h" #include "prelude-string.h" #include "prelude-error.h" #include "prelude-inttypes.h" #include "idmef.h" #include "idmef-tree-wrap.h" #include "idmef-additional-data.h" #include "idmef-message-id.h" #define IDMEF_ADDITIONAL_DATA_ACCESSOR(name, type) \ int idmef_additional_data_new_ ## name ## _ref_fast(idmef_additional_data_t **ad, const char *data, size_t len) \ { \ return idmef_additional_data_new_ptr_ref_fast(ad, IDMEF_ADDITIONAL_DATA_TYPE_ ## type, data, len + 1); \ } \ \ int idmef_additional_data_new_ ## name ## _ref(idmef_additional_data_t **ad, const char *data) \ { \ return idmef_additional_data_new_ ## name ## _ref_fast(ad, data, strlen(data)); \ } \ \ int idmef_additional_data_set_ ## name ## _ref_fast(idmef_additional_data_t *ad, const char *data, size_t len) \ { \ return idmef_additional_data_set_ptr_ref_fast(ad, IDMEF_ADDITIONAL_DATA_TYPE_ ## type, data, len + 1); \ } \ \ int idmef_additional_data_set_ ## name ## _ref(idmef_additional_data_t *ad, const char *data) \ { \ return idmef_additional_data_set_ ## name ## _ref_fast(ad, data, strlen(data)); \ } \ \ int idmef_additional_data_new_ ## name ## _dup_fast(idmef_additional_data_t **ad, const char *data, size_t len) \ { \ return idmef_additional_data_new_ptr_dup_fast(ad, IDMEF_ADDITIONAL_DATA_TYPE_ ## type, data, len + 1); \ } \ \ int idmef_additional_data_new_ ## name ## _dup(idmef_additional_data_t **ad, const char *data) \ { \ return idmef_additional_data_new_ ## name ## _dup_fast(ad, data, strlen(data)); \ } \ \ int idmef_additional_data_set_ ## name ## _dup_fast(idmef_additional_data_t *ad, const char *data, size_t len) \ { \ return idmef_additional_data_set_ptr_dup_fast(ad, IDMEF_ADDITIONAL_DATA_TYPE_ ## type, data, len + 1); \ } \ \ int idmef_additional_data_set_ ## name ## _dup(idmef_additional_data_t *ad, const char *data) \ { \ return idmef_additional_data_set_ ## name ## _dup_fast(ad, data, strlen(data)); \ } \ \ int idmef_additional_data_new_ ## name ## _nodup_fast(idmef_additional_data_t **ad, char *data, size_t len) \ { \ return idmef_additional_data_new_ptr_nodup_fast(ad, IDMEF_ADDITIONAL_DATA_TYPE_ ## type, data, len + 1);\ } \ \ int idmef_additional_data_new_ ## name ## _nodup(idmef_additional_data_t **ad, char *data) \ { \ return idmef_additional_data_new_ ## name ## _nodup_fast(ad, data, strlen(data)); \ } \ \ int idmef_additional_data_set_ ## name ## _nodup_fast(idmef_additional_data_t *ad, char *data, size_t len) \ { \ return idmef_additional_data_set_ptr_nodup_fast(ad, IDMEF_ADDITIONAL_DATA_TYPE_ ## type, data, len + 1);\ } \ \ int idmef_additional_data_set_ ## name ## _nodup(idmef_additional_data_t *ad, char *data) \ { \ return idmef_additional_data_set_ ## name ## _nodup_fast(ad, data, strlen(data)); \ } #define IDMEF_ADDITIONAL_DATA_SIMPLE(d_type, d_name, ad_type, c_type, name) \ int idmef_additional_data_new_ ## name(idmef_additional_data_t **ret, c_type val) \ { \ int retval; \ \ retval = idmef_additional_data_new(ret); \ if ( retval < 0 ) \ return retval; \ \ idmef_additional_data_set_type(*ret, ad_type); \ idmef_data_set_ ## d_name(idmef_additional_data_get_data(*ret), val); \ \ return retval; \ } \ \ void idmef_additional_data_set_ ## name(idmef_additional_data_t *ptr, c_type val) \ { \ idmef_additional_data_set_type(ptr, ad_type); \ idmef_data_set_ ## d_name(idmef_additional_data_get_data(ptr), val); \ } \ \ c_type idmef_additional_data_get_ ## name(idmef_additional_data_t *ptr) \ { \ return idmef_data_get_ ## d_name(idmef_additional_data_get_data(ptr)); \ } /* * Backward compatibility stuff, remove once 0.9.0 is released. */ int idmef_additional_data_new_ptr_ref_fast(idmef_additional_data_t **nd, idmef_additional_data_type_t type, const void *ptr, size_t len); int idmef_additional_data_new_ptr_dup_fast(idmef_additional_data_t **nd, idmef_additional_data_type_t type, const void *ptr, size_t len); int idmef_additional_data_new_ptr_nodup_fast(idmef_additional_data_t **nd, idmef_additional_data_type_t type, void *ptr, size_t len); int idmef_additional_data_set_ptr_ref_fast(idmef_additional_data_t *data, idmef_additional_data_type_t type, const void *ptr, size_t len); int idmef_additional_data_set_ptr_dup_fast(idmef_additional_data_t *data, idmef_additional_data_type_t type, const void *ptr, size_t len); int idmef_additional_data_set_ptr_nodup_fast(idmef_additional_data_t *data, idmef_additional_data_type_t type, void *ptr, size_t len); static const struct { idmef_additional_data_type_t ad_type; idmef_data_type_t d_type; size_t len; } idmef_additional_data_type_table[] = { { IDMEF_ADDITIONAL_DATA_TYPE_STRING, IDMEF_DATA_TYPE_CHAR_STRING, 0 }, { IDMEF_ADDITIONAL_DATA_TYPE_BYTE, IDMEF_DATA_TYPE_BYTE, sizeof(uint8_t) }, { IDMEF_ADDITIONAL_DATA_TYPE_CHARACTER, IDMEF_DATA_TYPE_CHAR, sizeof(char) }, { IDMEF_ADDITIONAL_DATA_TYPE_DATE_TIME, IDMEF_DATA_TYPE_CHAR_STRING, 0 }, { IDMEF_ADDITIONAL_DATA_TYPE_INTEGER, IDMEF_DATA_TYPE_INT, sizeof(uint64_t) }, { IDMEF_ADDITIONAL_DATA_TYPE_NTPSTAMP, IDMEF_DATA_TYPE_INT, sizeof(uint64_t) }, { IDMEF_ADDITIONAL_DATA_TYPE_PORTLIST, IDMEF_DATA_TYPE_CHAR_STRING, 0 }, { IDMEF_ADDITIONAL_DATA_TYPE_REAL, IDMEF_DATA_TYPE_FLOAT, sizeof(float) }, { IDMEF_ADDITIONAL_DATA_TYPE_BOOLEAN, IDMEF_DATA_TYPE_BYTE, sizeof(prelude_bool_t) }, { IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING, IDMEF_DATA_TYPE_BYTE_STRING, 0 }, { IDMEF_ADDITIONAL_DATA_TYPE_XML, IDMEF_DATA_TYPE_CHAR_STRING, 0 } }; static int check_type(idmef_additional_data_type_t type, const unsigned char *buf, size_t len) { if ( type < 0 || (size_t) type >= sizeof(idmef_additional_data_type_table) / sizeof(*idmef_additional_data_type_table) ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Invalid IDMEFAdditionalData type specified"); if ( idmef_additional_data_type_table[type].len != 0 && len > idmef_additional_data_type_table[type].len ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Provided value length does not match specified type length"); if ( idmef_additional_data_type_table[type].len == 0 && len < 1 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Invalid value length for this type"); if ( type == IDMEF_ADDITIONAL_DATA_TYPE_STRING || type == IDMEF_ADDITIONAL_DATA_TYPE_DATE_TIME || type == IDMEF_ADDITIONAL_DATA_TYPE_PORTLIST || type == IDMEF_ADDITIONAL_DATA_TYPE_XML ) return buf[len - 1] == '\0' ? 0 : prelude_error_verbose(PRELUDE_ERROR_GENERIC, "String is not nul terminated"); return 0; } static idmef_data_type_t idmef_additional_data_type_to_data_type(idmef_additional_data_type_t type) { if ( type < 0 || (size_t) type >= sizeof(idmef_additional_data_type_table) / sizeof(*idmef_additional_data_type_table) ) return IDMEF_DATA_TYPE_UNKNOWN; return idmef_additional_data_type_table[type].d_type; } int idmef_additional_data_new_ptr_ref_fast(idmef_additional_data_t **nd, idmef_additional_data_type_t type, const void *ptr, size_t len) { int ret; idmef_data_type_t dtype; ret = check_type(type, ptr, len); if ( ret < 0 ) return ret; ret = idmef_additional_data_new(nd); if ( ret < 0 ) return ret; idmef_additional_data_set_type(*nd, type); dtype = idmef_additional_data_type_to_data_type(type); ret = idmef_data_set_ptr_ref_fast(idmef_additional_data_get_data(*nd), dtype, ptr, len); if ( ret < 0 ) { idmef_additional_data_destroy(*nd); return ret; } return 0; } int idmef_additional_data_new_ptr_dup_fast(idmef_additional_data_t **nd, idmef_additional_data_type_t type, const void *ptr, size_t len) { int ret; idmef_data_type_t dtype; ret = check_type(type, ptr, len); if ( ret < 0 ) return ret; ret = idmef_additional_data_new(nd); if ( ret < 0 ) return ret; idmef_additional_data_set_type(*nd, type); dtype = idmef_additional_data_type_to_data_type(type); ret = idmef_data_set_ptr_dup_fast(idmef_additional_data_get_data(*nd), dtype, ptr, len); if ( ret < 0 ) { idmef_additional_data_destroy(*nd); return ret; } return 0; } int idmef_additional_data_new_ptr_nodup_fast(idmef_additional_data_t **nd, idmef_additional_data_type_t type, void *ptr, size_t len) { int ret; idmef_data_type_t dtype; ret = check_type(type, ptr, len); if ( ret < 0 ) return ret; ret = idmef_additional_data_new(nd); if ( ret < 0 ) return ret; idmef_additional_data_set_type(*nd, type); dtype = idmef_additional_data_type_to_data_type(type); ret = idmef_data_set_ptr_nodup_fast(idmef_additional_data_get_data(*nd), dtype, ptr, len); if ( ret < 0 ) { idmef_additional_data_destroy(*nd); return ret; } return ret; } int idmef_additional_data_set_ptr_ref_fast(idmef_additional_data_t *data, idmef_additional_data_type_t type, const void *ptr, size_t len) { int ret; ret = check_type(type, ptr, len); if ( ret < 0 ) return ret; idmef_additional_data_set_type(data, type); return idmef_data_set_ptr_ref_fast(idmef_additional_data_get_data(data), idmef_additional_data_type_to_data_type(type), ptr, len); } int idmef_additional_data_set_ptr_dup_fast(idmef_additional_data_t *data, idmef_additional_data_type_t type, const void *ptr, size_t len) { int ret; ret = check_type(type, ptr, len); if ( ret < 0 ) return ret; idmef_additional_data_set_type(data, type); return idmef_data_set_ptr_dup_fast(idmef_additional_data_get_data(data), idmef_additional_data_type_to_data_type(type), ptr, len); } int idmef_additional_data_set_ptr_nodup_fast(idmef_additional_data_t *data, idmef_additional_data_type_t type, void *ptr, size_t len) { int ret; ret = check_type(type, ptr, len); if ( ret < 0 ) return ret; idmef_additional_data_set_type(data, type); return idmef_data_set_ptr_nodup_fast(idmef_additional_data_get_data(data), idmef_additional_data_type_to_data_type(type), ptr, len); } /* * Declare stuff */ IDMEF_ADDITIONAL_DATA_SIMPLE(IDMEF_DATA_TYPE_FLOAT, float, IDMEF_ADDITIONAL_DATA_TYPE_REAL, float, real) IDMEF_ADDITIONAL_DATA_SIMPLE(IDMEF_DATA_TYPE_INT, int, IDMEF_ADDITIONAL_DATA_TYPE_INTEGER, uint32_t, integer) IDMEF_ADDITIONAL_DATA_SIMPLE(IDMEF_DATA_TYPE_BYTE, byte, IDMEF_ADDITIONAL_DATA_TYPE_BOOLEAN, prelude_bool_t, boolean) IDMEF_ADDITIONAL_DATA_SIMPLE(IDMEF_DATA_TYPE_BYTE, byte, IDMEF_ADDITIONAL_DATA_TYPE_BYTE, uint8_t, byte) IDMEF_ADDITIONAL_DATA_SIMPLE(IDMEF_DATA_TYPE_CHAR, char, IDMEF_ADDITIONAL_DATA_TYPE_CHARACTER, char, character) IDMEF_ADDITIONAL_DATA_ACCESSOR(xml, XML) IDMEF_ADDITIONAL_DATA_ACCESSOR(string, STRING) IDMEF_ADDITIONAL_DATA_ACCESSOR(ntpstamp, NTPSTAMP) IDMEF_ADDITIONAL_DATA_ACCESSOR(portlist, PORTLIST) IDMEF_ADDITIONAL_DATA_ACCESSOR(date_time, DATE_TIME) /* * just make a pointer copy of the embedded data */ int idmef_additional_data_copy_ref(idmef_additional_data_t *src, idmef_additional_data_t *dst) { int ret; ret = prelude_string_copy_ref(idmef_additional_data_get_meaning(src), idmef_additional_data_get_meaning(dst)); if ( ret < 0 ) return ret; idmef_additional_data_set_type(dst, idmef_additional_data_get_type(src)); return idmef_data_copy_ref(idmef_additional_data_get_data(src), idmef_additional_data_get_data(dst)); } /* * also copy the content of the embedded data */ int idmef_additional_data_copy_dup(idmef_additional_data_t *src, idmef_additional_data_t *dst) { int ret; ret = prelude_string_copy_dup(idmef_additional_data_get_meaning(src), idmef_additional_data_get_meaning(dst)); if ( ret < 0 ) return ret; idmef_additional_data_set_type(dst, idmef_additional_data_get_type(src)); return idmef_data_copy_dup(idmef_additional_data_get_data(src), idmef_additional_data_get_data(dst)); } size_t idmef_additional_data_get_len(idmef_additional_data_t *data) { return idmef_data_get_len(idmef_additional_data_get_data(data)); } prelude_bool_t idmef_additional_data_is_empty(idmef_additional_data_t *data) { return idmef_data_is_empty(idmef_additional_data_get_data(data)); } int idmef_additional_data_data_to_string(idmef_additional_data_t *ad, prelude_string_t *out) { int ret; uint64_t i; idmef_data_t *data; data = idmef_additional_data_get_data(ad); if ( idmef_data_is_empty(data) ) return 0; switch ( idmef_additional_data_get_type(ad) ) { case IDMEF_ADDITIONAL_DATA_TYPE_NTPSTAMP: i = idmef_data_get_int(data); ret = prelude_string_sprintf(out, "0x%" PRELUDE_PRIx32 ".0x%" PRELUDE_PRIx32, (uint32_t) (i >> 32), (uint32_t) i); break; default: ret = idmef_data_to_string(data, out); break; } return ret; } /* * byte-string specific stuff */ int idmef_additional_data_new_byte_string_ref(idmef_additional_data_t **ad, const unsigned char *data, size_t len) { return idmef_additional_data_new_ptr_ref_fast(ad, IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING, data, len); } int idmef_additional_data_set_byte_string_ref(idmef_additional_data_t *ad, const unsigned char *data, size_t len) { return idmef_additional_data_set_ptr_ref_fast(ad, IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING, data, len); } int idmef_additional_data_new_byte_string_dup(idmef_additional_data_t **ad, const unsigned char *data, size_t len) { return idmef_additional_data_new_ptr_dup_fast(ad, IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING, data, len); } int idmef_additional_data_set_byte_string_dup(idmef_additional_data_t *ad, const unsigned char *data, size_t len) { return idmef_additional_data_set_ptr_dup_fast(ad, IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING, data, len); } int idmef_additional_data_new_byte_string_nodup(idmef_additional_data_t **ad, unsigned char *data, size_t len) { return idmef_additional_data_new_ptr_nodup_fast(ad, IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING, data, len); } int idmef_additional_data_set_byte_string_nodup(idmef_additional_data_t *ad, unsigned char *data, size_t len) { return idmef_additional_data_set_ptr_nodup_fast(ad, IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING, data, len); } libprelude-5.2.0/src/PaxHeaders.14770/idmef-class.c0000644000000000000000000000011013726163410017765 xustar000000000000000024 mtime=1599661832.666 24 atime=1599661832.776 24 ctime=1599661999.833 libprelude-5.2.0/src/idmef-class.c0000644000000000000000000002321013726163410016766 0ustar00rootroot00000000000000/***** * * Copyright (C) 2002-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * Author: Krzysztof Zaraska * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include #include #include #include #include #include "libmissing.h" #include "prelude-list.h" #include "prelude-log.h" #include "prelude-inttypes.h" #include "prelude-string.h" #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_IDMEF_TYPE #include "prelude-error.h" #include "idmef-time.h" #include "idmef-data.h" #include "idmef-value.h" #include "idmef-class.h" #include "idmef-tree-wrap.h" #include "idmef-message-print.h" #include "idmef-message-print-json.h" #include "idmef-tree-data.h" #include "idmef-path.h" static inline int is_class_valid(idmef_class_id_t class) { if ( class < 0 || (size_t) class >= sizeof(object_data) / sizeof(*object_data) ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN, "Unknown IDMEF class '%d'", (int) class); return 0; } static inline int is_child_valid(idmef_class_id_t class, idmef_class_child_id_t child) { int ret; ret = is_class_valid(class); if ( ret < 0 ) return ret; if ( child < 0 || (size_t) child >= object_data[class].children_list_elem ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD, "Unknown IDMEF child '%d' for class '%s'", (int) child, object_data[class].name); return 0; } idmef_class_child_id_t idmef_class_find_child(idmef_class_id_t class, const char *name) { int ret; size_t i; const children_list_t *list; ret = is_class_valid(class); if ( ret < 0 ) return ret; list = object_data[class].children_list; if ( list ) { for ( i = 0; i < object_data[class].children_list_elem; i++ ) if ( strcasecmp(list[i].name, name) == 0) return i; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD, "Unknown IDMEF child '%s' for class '%s'", name, idmef_class_get_name(class)); } prelude_bool_t idmef_class_is_child_union_member(idmef_class_id_t class, idmef_class_child_id_t child) { int ret; ret = is_child_valid(class, child); if ( ret < 0 ) return ret; return (object_data[class].children_list[child].union_id > 0) ? TRUE : FALSE; } prelude_bool_t idmef_class_is_child_list(idmef_class_id_t class, idmef_class_child_id_t child) { int ret; ret = is_child_valid(class, child); if ( ret < 0 ) return ret; return object_data[class].children_list[child].list; } prelude_bool_t idmef_class_is_child_keyed_list(idmef_class_id_t class, idmef_class_child_id_t child) { int ret; ret = is_child_valid(class, child); if ( ret < 0 ) return ret; return object_data[class].children_list[child].keyed_list; } idmef_value_type_id_t idmef_class_get_child_value_type(idmef_class_id_t class, idmef_class_child_id_t child) { int ret; ret = is_child_valid(class, child); if ( ret < 0 ) return ret; return object_data[class].children_list[child].type; } const char **idmef_class_get_child_attributes(idmef_class_id_t class, idmef_class_child_id_t child) { int ret; ret = is_child_valid(class, child); if ( ret < 0 ) return ret; return object_data[class].children_list[child].attributes; } size_t idmef_class_get_child_count(idmef_class_id_t class) { int ret; ret = is_class_valid(class); if ( ret < 0 ) return ret; return object_data[class].children_list_elem; } int idmef_class_get_child_union_id(idmef_class_id_t class, idmef_class_child_id_t child) { int ret; const children_list_t *c; ret = is_child_valid(class, child); if ( ret < 0 ) return ret; c = &object_data[class].children_list[child]; if ( ! c->union_id ) return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_CHILD_NOT_UNION); return c->union_id; } idmef_class_id_t idmef_class_get_child_class(idmef_class_id_t class, idmef_class_child_id_t child) { int ret; const children_list_t *c; ret = is_child_valid(class, child); if ( ret < 0 ) return ret; c = &object_data[class].children_list[child]; if ( c->type != IDMEF_VALUE_TYPE_CLASS && c->type != IDMEF_VALUE_TYPE_ENUM ) return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_CHILD_NOT_CLASS); return c->class; } const char *idmef_class_get_child_name(idmef_class_id_t class, idmef_class_child_id_t child) { int ret; ret = is_child_valid(class, child); if ( ret < 0 ) return NULL; return object_data[class].children_list[child].name; } idmef_class_id_t idmef_class_find(const char *name) { idmef_class_id_t i; for ( i = 0; object_data[i].name != NULL; i++ ) if ( strcasecmp(object_data[i].name, name) == 0 ) return i; return prelude_error_verbose(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_NAME, "Unknown IDMEF class '%s'", name); } int idmef_class_enum_to_numeric(idmef_class_id_t class, const char *val) { int ret; ret = is_class_valid(class); if ( ret < 0 ) return ret; if ( ! object_data[class].to_numeric ) return -1; return object_data[class].to_numeric(val); } const char *idmef_class_enum_to_string(idmef_class_id_t class, int val) { int ret; ret = is_class_valid(class); if ( ret < 0 ) return NULL; if ( ! object_data[class].to_string ) return NULL; return object_data[class].to_string(val); } int idmef_class_get_child(void *ptr, idmef_class_id_t class, idmef_class_child_id_t child, void **childptr) { int ret; ret = is_child_valid(class, child); if ( ret < 0 ) return ret; return object_data[class].get_child(ptr, child, childptr); } int idmef_class_new_child(void *ptr, idmef_class_id_t class, idmef_class_child_id_t child, int n, void **childptr) { int ret; ret = is_child_valid(class, child); if ( ret < 0 ) return ret; return object_data[class].new_child(ptr, child, n, childptr); } int idmef_class_destroy_child(void *ptr, idmef_class_id_t class, idmef_class_child_id_t child, int n) { int ret; ret = is_child_valid(class, child); if ( ret < 0 ) return ret; return object_data[class].destroy_child(ptr, child, n); } int idmef_class_copy(idmef_class_id_t class, const void *src, void *dst) { int ret; ret = is_class_valid(class); if ( ret < 0 ) return ret; return object_data[class].copy(src, dst); } int idmef_class_clone(idmef_class_id_t class, const void *src, void **dst) { int ret; ret = is_class_valid(class); if ( ret < 0 ) return ret; return object_data[class].clone(src, dst); } int idmef_class_compare(idmef_class_id_t class, const void *c1, const void *c2) { int ret; ret = is_class_valid(class); if ( ret < 0 ) return ret; return object_data[class].compare(c1, c2); } int idmef_class_destroy(idmef_class_id_t class, void *obj) { int ret; ret = is_class_valid(class); if ( ret < 0 ) return ret; object_data[class].destroy(obj); return 0; } int idmef_class_ref(idmef_class_id_t class, void *obj) { int ret; ret = is_class_valid(class); if ( ret < 0 ) return ret; object_data[class].ref(obj); return 0; } int idmef_class_print(idmef_class_id_t class, void *obj, prelude_io_t *fd) { int ret; ret = is_class_valid(class); if ( ret < 0 ) return ret; return object_data[class].print(obj, fd); } int idmef_class_print_json(idmef_class_id_t class, void *obj, prelude_io_t *fd) { int ret; ret = is_class_valid(class); if ( ret < 0 ) return ret; return object_data[class].print_json(obj, fd); } const char *idmef_class_get_name(idmef_class_id_t class) { if ( is_class_valid(class) < 0 ) return NULL; return object_data[class].name; } prelude_bool_t idmef_class_is_listed(idmef_class_id_t class) { int ret; ret = is_class_valid(class); if ( ret < 0 ) return ret; return object_data[class].is_listed; } libprelude-5.2.0/src/PaxHeaders.14770/idmef-criteria.c0000644000000000000000000000011013726163410020462 xustar000000000000000024 mtime=1599661832.668 24 atime=1599661832.777 24 ctime=1599661999.834 libprelude-5.2.0/src/idmef-criteria.c0000644000000000000000000004272713726163410017501 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_IDMEF_CRITERIA #include "prelude.h" #include "idmef-criteria.h" struct idmef_criteria { int refcount; void *left; void *right; int operator; }; /** * idmef_criteria_operator_to_string: * @op: #idmef_criteria_operator_t type. * * Transforms @op to string. * * Returns: A pointer to a boolean operator string or NULL. */ const char *idmef_criteria_operator_to_string(idmef_criteria_operator_t op) { int i; const struct { int operator; const char *name; } tbl[] = { { IDMEF_CRITERIA_OPERATOR_AND, "&&"}, { IDMEF_CRITERIA_OPERATOR_OR, "||"}, { IDMEF_CRITERION_OPERATOR_EQUAL, "=" }, { IDMEF_CRITERION_OPERATOR_EQUAL_NOCASE, "=*" }, { IDMEF_CRITERION_OPERATOR_NOT_EQUAL, "!=" }, { IDMEF_CRITERION_OPERATOR_NOT_EQUAL_NOCASE, "!=*" }, { IDMEF_CRITERION_OPERATOR_LESSER, "<" }, { IDMEF_CRITERION_OPERATOR_GREATER, ">" }, { IDMEF_CRITERION_OPERATOR_LESSER_OR_EQUAL, "<=" }, { IDMEF_CRITERION_OPERATOR_GREATER_OR_EQUAL, ">=" }, { IDMEF_CRITERION_OPERATOR_REGEX, "~" }, { IDMEF_CRITERION_OPERATOR_REGEX_NOCASE, "~*" }, { IDMEF_CRITERION_OPERATOR_NOT_REGEX, "!~" }, { IDMEF_CRITERION_OPERATOR_NOT_REGEX_NOCASE, "!~*" }, { IDMEF_CRITERION_OPERATOR_SUBSTR, "<>" }, { IDMEF_CRITERION_OPERATOR_SUBSTR_NOCASE, "<>*" }, { IDMEF_CRITERION_OPERATOR_NOT_SUBSTR, "!<>" }, { IDMEF_CRITERION_OPERATOR_NOT_SUBSTR_NOCASE, "!<>*" }, { IDMEF_CRITERION_OPERATOR_NOT_NULL, "" }, { IDMEF_CRITERION_OPERATOR_NULL, "!" }, }; for ( i = 0; tbl[i].operator != 0; i++ ) if ( op == tbl[i].operator ) return tbl[i].name; return NULL; } /** * idmef_criterion_new: * @criterion: Address where to store the created #idmef_criteria_t object. * @path: Pointer to an #idmef_path_t object. * @value: Pointer to an #idmef_criterion_value_t object. * @op: #idmef_criterion_operator_t to use for matching this criterion. * * Creates a new #idmef_criteria_t object and store it in @criterion. * Matching this criterion will result in comparing the object value * pointed by @path against the provided @value, using @op. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_criterion_new(idmef_criteria_t **criterion, idmef_path_t *path, idmef_criterion_value_t *value, idmef_criterion_operator_t op) { int ret; prelude_return_val_if_fail(path != NULL, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(! (value == NULL && ! (op & IDMEF_CRITERION_OPERATOR_NULL)), prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_criteria_new(criterion); if ( ret < 0 ) return ret; (*criterion)->left = path; (*criterion)->right = value; (*criterion)->operator = op; return 0; } static int criterion_clone(const idmef_criteria_t *criterion, idmef_criteria_t **dst) { int ret; idmef_path_t *path; idmef_criterion_value_t *value = NULL; prelude_return_val_if_fail(criterion, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_path_clone(criterion->left, &path); if ( ret < 0 ) return ret; if ( criterion->right ) { ret = idmef_criterion_value_clone(criterion->right, &value); if ( ret < 0 ) { idmef_path_destroy(path); return ret; } } ret = idmef_criterion_new(dst, path, value, criterion->operator); if ( ret < 0 ) { idmef_path_destroy(path); idmef_criterion_value_destroy(value); return ret; } return 0; } static int criterion_to_string(const idmef_criteria_t *criterion, prelude_string_t *out) { const char *name, *operator; prelude_return_val_if_fail(criterion && idmef_criteria_is_criterion(criterion), prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(out, prelude_error(PRELUDE_ERROR_ASSERTION)); operator = idmef_criteria_operator_to_string(criterion->operator); if ( ! operator ) return -1; name = idmef_path_get_name(criterion->left, -1); if ( ! criterion->right ) return prelude_string_sprintf(out, "%s%s%s", operator, (*operator) ? " " : "", name); prelude_string_sprintf(out, "%s %s ", name, operator); return idmef_criterion_value_to_string(criterion->right, out); } /** * idmef_criteria_get_path: * @criteria: Pointer to a #idmef_criteria_t object. * * Used to access the #idmef_path_t object associated with @criteria. * * Returns: the #idmef_path_t object associated with @criteria. */ idmef_path_t *idmef_criteria_get_path(const idmef_criteria_t *criterion) { prelude_return_val_if_fail(criterion && idmef_criteria_is_criterion(criterion), NULL); return criterion->left; } /** * idmef_criteria_get_value: * @criterion: Pointer to a #idmef_criteria_t object. * * Used to access the #idmef_criterion_value_t associated with @criterion. * There might be no value specifically if the provided #idmef_criterion_operator_t * was IDMEF_CRITERION_OPERATOR_NULL or IDMEF_CRITERION_OPERATOR_NOT_NULL. * * Returns: the #idmef_criterion_value_t object associated with @criterion. */ idmef_criterion_value_t *idmef_criteria_get_value(const idmef_criteria_t *criterion) { prelude_return_val_if_fail(criterion && idmef_criteria_is_criterion(criterion), NULL); return criterion->right; } static int criterion_match(const idmef_criteria_t *criterion, void *object) { int ret; idmef_value_t *value = NULL; prelude_return_val_if_fail(criterion, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(idmef_criteria_is_criterion(criterion), prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(object, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_path_get(criterion->left, object, &value); if ( ret < 0 ) return ret; ret = idmef_criterion_value_match(criterion->right, value, criterion->operator); if ( value ) idmef_value_destroy(value); if ( ret < 0 ) return ret; return (ret > 0) ? 1 : 0; } /** * idmef_criteria_new: * @criteria: Address where to store the created #idmef_criteria_t object. * * Creates a new #idmef_criteria_t object and store it into @criteria. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_criteria_new(idmef_criteria_t **criteria) { *criteria = calloc(1, sizeof(**criteria)); if ( ! *criteria ) return prelude_error_from_errno(errno); (*criteria)->refcount = 1; return 0; } /** * idmef_criteria_destroy: * @criteria: Pointer to a #idmef_criteria_t object. * * Destroys @criteria and its content. */ void idmef_criteria_destroy(idmef_criteria_t *criteria) { prelude_return_if_fail(criteria); if ( --criteria->refcount ) return; if ( idmef_criteria_is_criterion(criteria) ) { idmef_path_destroy(criteria->left); if ( criteria->right ) /* can be NULL if operator is is_null or is_not_null */ idmef_criterion_value_destroy(criteria->right); } else { if ( criteria->left ) idmef_criteria_destroy(criteria->left); if ( criteria->right ) idmef_criteria_destroy(criteria->right); } free(criteria); } /** * idmef_criteria_ref: * @criteria: Pointer to a #idmef_criteria_t object to reference. * * Increases @criteria reference count. * * idmef_criteria_destroy() will decrease the refcount until it reaches * 0, at which point @criteria will be destroyed. * * Returns: @criteria. */ idmef_criteria_t *idmef_criteria_ref(idmef_criteria_t *criteria) { prelude_return_val_if_fail(criteria, NULL); criteria->refcount++; return criteria; } /** * idmef_criteria_clone: * @src: Pointer to a #idmef_criteria_t object to clone. * @dst: Address where to store the cloned #idmef_criteria_t object. * * Clones @src and stores the cloned criteria within @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_criteria_clone(idmef_criteria_t *src, idmef_criteria_t **dst) { int ret; idmef_criteria_t *new; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( idmef_criteria_is_criterion(src) ) return criterion_clone(src, dst); ret = idmef_criteria_new(dst); if ( ret < 0 ) return ret; new = *dst; new->operator = src->operator; if ( src->left ) { ret = idmef_criteria_clone(src->left, (idmef_criteria_t **) &new->left); if ( ret < 0 ) { idmef_criteria_destroy(new); return ret; } } if ( src->right ) { ret = idmef_criteria_clone(src->right, (idmef_criteria_t **) &new->right); if ( ret < 0 ) { idmef_criteria_destroy(new); return ret; } } return 0; } void idmef_criteria_set_operator(idmef_criteria_t *criteria, idmef_criteria_operator_t op) { prelude_return_if_fail(criteria); criteria->operator = op; } int idmef_criteria_get_operator(const idmef_criteria_t *criteria) { prelude_return_val_if_fail(criteria, prelude_error(PRELUDE_ERROR_ASSERTION)); return criteria->operator; } idmef_criteria_t *idmef_criteria_get_left(const idmef_criteria_t *criteria) { prelude_return_val_if_fail(criteria && ! idmef_criteria_is_criterion(criteria), NULL); return criteria->left; } idmef_criteria_t *idmef_criteria_get_right(const idmef_criteria_t *criteria) { prelude_return_val_if_fail(criteria && ! idmef_criteria_is_criterion(criteria), NULL); return criteria->right; } int idmef_criteria_print(const idmef_criteria_t *criteria, prelude_io_t *fd) { int ret; prelude_string_t *out; prelude_return_val_if_fail(criteria, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(fd, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = prelude_string_new(&out); if ( ret < 0 ) return ret; ret = idmef_criteria_to_string(criteria, out); if ( ret < 0 ) return ret; ret = prelude_io_write(fd, prelude_string_get_string(out), prelude_string_get_len(out)); prelude_string_destroy(out); return ret; } static int criteria_to_string(const idmef_criteria_t *criteria, prelude_string_t *out, unsigned int depth) { const char *operator; prelude_bool_t negated = FALSE; prelude_return_val_if_fail(criteria, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(out, prelude_error(PRELUDE_ERROR_ASSERTION)); negated = criteria->operator == IDMEF_CRITERIA_OPERATOR_NOT; if ( idmef_criteria_is_criterion(criteria) ) return criterion_to_string(criteria, out); if ( depth > 0 ) prelude_string_cat(out, "("); if ( negated ) prelude_string_cat(out, "!"); if ( criteria->left ) criteria_to_string(criteria->left, out, depth + 1); if ( ! negated ) { operator = idmef_criteria_operator_to_string(criteria->operator); if ( ! operator ) return -1; prelude_string_sprintf(out, " %s ", operator); } criteria_to_string(criteria->right, out, depth + 1); if ( depth > 0 ) prelude_string_cat(out, ")"); return 0; } int idmef_criteria_to_string(const idmef_criteria_t *criteria, prelude_string_t *out) { return criteria_to_string(criteria, out, 0); } inline prelude_bool_t idmef_criteria_is_criterion(const idmef_criteria_t *criteria) { prelude_return_val_if_fail(criteria, FALSE); return ! (criteria->operator & (IDMEF_CRITERIA_OPERATOR_OR|IDMEF_CRITERIA_OPERATOR_AND) || criteria->operator == IDMEF_CRITERIA_OPERATOR_NOT); } static int _idmef_criteria_append_criteria(idmef_criteria_t *criteria, idmef_criteria_t *criteria2, idmef_criteria_operator_t op) { int ret; idmef_criteria_t *new; prelude_return_val_if_fail(criteria, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(criteria2, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_criteria_new(&new); if ( ret < 0 ) return ret; new->operator = criteria->operator; new->left = criteria->left; new->right = criteria->right; criteria->operator = op; criteria->left = new; criteria->right = criteria2; return 0; } int idmef_criteria_or_criteria(idmef_criteria_t *criteria, idmef_criteria_t *criteria2) { return _idmef_criteria_append_criteria(criteria, criteria2, IDMEF_CRITERIA_OPERATOR_OR); } int idmef_criteria_and_criteria(idmef_criteria_t *criteria, idmef_criteria_t *criteria2) { return _idmef_criteria_append_criteria(criteria, criteria2, IDMEF_CRITERIA_OPERATOR_AND); } int idmef_criteria_join(idmef_criteria_t **criteria, idmef_criteria_t *left, idmef_criteria_operator_t op, idmef_criteria_t *right) { int ret; prelude_return_val_if_fail(right, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(left || op == IDMEF_CRITERIA_OPERATOR_NOT, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_criteria_new(criteria); if ( ret < 0 ) return ret; (*criteria)->operator = op; (*criteria)->left = left; (*criteria)->right = right; return 0; } /** * idmef_criteria_match: * @criteria: Pointer to a #idmef_criteria_t object. * @object: Pointer to a #idmef_object_t object. * * Matches @object against the provided criteria. * * Returns: 1 if criteria match, 0 if it did not, a negative value if an error occured. */ int idmef_criteria_match(const idmef_criteria_t *criteria, void *object) { int ret; prelude_bool_t not = FALSE; prelude_return_val_if_fail(criteria, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(object, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( idmef_criteria_is_criterion(criteria) ) return criterion_match(criteria, object); not = criteria->operator == IDMEF_CRITERIA_OPERATOR_NOT; if ( ! not ) { ret = idmef_criteria_match(criteria->left, object); if ( ret < 0 ) return ret; } if ( not || (ret == 0 && criteria->operator & IDMEF_CRITERIA_OPERATOR_OR) || (ret == 1 && criteria->operator & IDMEF_CRITERIA_OPERATOR_AND) ) ret = idmef_criteria_match(criteria->right, object); return (criteria->operator & IDMEF_CRITERIA_OPERATOR_NOT) ? !ret : ret; } idmef_class_id_t idmef_criteria_get_class(const idmef_criteria_t *criteria) { int pc, ret; while ( criteria ) { if ( idmef_criteria_is_criterion(criteria) ) { pc = idmef_path_get_class(criteria->left, 0); if ( pc == IDMEF_CLASS_ID_ALERT || IDMEF_CLASS_ID_HEARTBEAT ) return pc; } if ( idmef_criteria_get_left(criteria) ) { ret = idmef_criteria_get_class(criteria->left); if ( ret >= 0 ) return ret; } criteria = idmef_criteria_get_right(criteria); } return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "could not get message class from criteria"); } libprelude-5.2.0/src/PaxHeaders.14770/idmef-criteria-string.yac.y0000644000000000000000000000011013726163410022567 xustar000000000000000024 mtime=1599661832.668 24 atime=1599661832.777 24 ctime=1599661999.836 libprelude-5.2.0/src/idmef-criteria-string.yac.y0000644000000000000000000003267313726163410021605 0ustar00rootroot00000000000000/***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Krzysztof Zaraska * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ %define api.prefix {_preludeyy} %{ #include "libmissing.h" %} %{ #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_IDMEF_CRITERIA #include #include #include #include #include #include #include "glthread/lock.h" #include "prelude-log.h" #include "prelude-error.h" #include "prelude-inttypes.h" #include "idmef.h" #include "idmef-criteria.h" #include "common.h" static int path_count = 0; static int real_ret = 0; static idmef_path_t *cur_path; static idmef_criteria_t *processed_criteria; static idmef_criterion_operator_t cur_operator; gl_lock_t _criteria_parse_mutex = gl_lock_initializer; #define operator_or 1 #define operator_and 2 extern int yylex(void); static void _preludeyyerror(const char *s); extern void *_preludeyy_scan_string(const char *); extern void _preludeyy_delete_buffer(void *); void _idmef_criteria_string_init_lexer(void); #define YYERROR_VERBOSE static int escape_str(prelude_string_t **out, char *str) { char c; int ret; size_t i = 0, len = strlen(str); ret = prelude_string_new(out); if ( ret < 0 ) return ret; for ( i = 0; i < len; ) { c = str[i++]; if ( ! (c == '\\' && i < len) ) ret = prelude_string_ncat(*out, &c, 1); else { c = str[i++]; if ( c == '0' ) ret = prelude_string_ncat(*out, "\0", 1); else if ( c == 'a' ) ret = prelude_string_ncat(*out, "\a", 1); else if ( c == 'b' ) ret = prelude_string_ncat(*out, "\b", 1); else if ( c == 'f' ) ret = prelude_string_ncat(*out, "\f", 1); else if ( c == 'n' ) ret = prelude_string_ncat(*out, "\n", 1); else if ( c == 'r' ) ret = prelude_string_ncat(*out, "\r", 1); else if ( c == 't' ) ret = prelude_string_ncat(*out, "\t", 1); else if ( c == 'v' ) ret = prelude_string_ncat(*out, "\v", 1); else if ( !(cur_operator & (IDMEF_CRITERION_OPERATOR_SUBSTR|IDMEF_CRITERION_OPERATOR_REGEX)) && c == '\\' ) ret = prelude_string_ncat(*out, "\\", 1); else if ( c == 'u' || c == 'U' ) { ret = prelude_unicode_to_string(*out, str + (i - 2), len - (i - 2)); if ( ret < 0 ) return ret; i += ret - 2; } else if ( c == 'x' ) { if ( (len - i) < 2 ) { ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "truncated \\xXX escape"); break; } sscanf(&str[i], "%2hhx", &c); ret = prelude_string_ncat(*out, &c, 1); i += 2; } else { char buf[2] = { '\\', c }; ret = prelude_string_ncat(*out, buf, 2); } } if ( ret < 0 ) break; } if ( ret < 0 ) prelude_string_destroy(*out); return ret; } static int create_criteria(idmef_criteria_t **criteria, idmef_path_t *path, idmef_criterion_value_t *value, idmef_criterion_operator_t operator) { if ( path_count++ > 0 ) idmef_path_ref(path); real_ret = idmef_criterion_new(criteria, path, value, operator); if ( real_ret < 0 ) goto err; return 0; err: idmef_path_destroy(path); cur_path = NULL; return real_ret; } %} %union { char *str; int operator; idmef_path_t *path; idmef_criteria_t *criteria; idmef_criteria_operator_t relation; } /* BISON Declarations */ %token TOK_IDMEF_RAW_VALUE "" %token TOK_IDMEF_VALUE "" %token TOK_IDMEF_PATH "" %destructor { free($$); } TOK_IDMEF_RAW_VALUE TOK_IDMEF_VALUE TOK_IDMEF_PATH %destructor { idmef_criteria_destroy($$); } criteria %token TOK_RELATION_SUBSTRING "<>" %token TOK_RELATION_SUBSTRING_NOCASE "<>*" %token TOK_RELATION_NOT_SUBSTRING "!<>" %token TOK_RELATION_NOT_SUBSTRING_NOCASE "!<>*" %token TOK_RELATION_REGEXP "~" %token TOK_RELATION_REGEXP_NOCASE "~*" %token TOK_RELATION_NOT_REGEXP "!~" %token TOK_RELATION_NOT_REGEXP_NOCASE "!~*" %token TOK_RELATION_GREATER ">" %token TOK_RELATION_GREATER_OR_EQUAL ">=" %token TOK_RELATION_LESS "<" %token TOK_RELATION_LESS_OR_EQUAL "<=" %token TOK_RELATION_EQUAL "=" %token TOK_RELATION_EQUAL_NOCASE "=*" %token TOK_RELATION_NOT_EQUAL "!=" %token TOK_RELATION_NOT_EQUAL_NOCASE "!=*" %token TOK_OPERATOR_NOT "!" %token TOK_OPERATOR_AND "&&" %token TOK_OPERATOR_OR "||" %token TOK_ERROR %type criteria %type criteria_base %type criteria_and %type criteria_not %type value %type multiple_value %type criterion %type path %type relation %type operator /* Grammar follows */ %% input: criteria { processed_criteria = $1; } ; criteria: criteria_and { $$ = $1; } | criteria TOK_OPERATOR_OR criteria_and { idmef_criteria_or_criteria($1, $3); $$ = $1; } ; criteria_and: criteria_not { $$ = $1; } | criteria_and TOK_OPERATOR_AND criteria_not { idmef_criteria_and_criteria($1, $3); $$ = $1; } ; criteria_not: criteria_base { $$ = $1; } | TOK_OPERATOR_NOT criteria_not { idmef_criteria_t *criteria; real_ret = idmef_criteria_join(&criteria, NULL, IDMEF_CRITERIA_OPERATOR_NOT, $2); if ( real_ret < 0 ) YYABORT; $$ = criteria; } ; criteria_base: criterion { $$ = $1; } | '(' criteria ')' { $$ = $2; } ; criterion: path relation '(' multiple_value ')' { $$ = $4; } | path relation value { $$ = $3; } | path { idmef_criteria_t *criteria; real_ret = create_criteria(&criteria, $1, NULL, IDMEF_CRITERION_OPERATOR_NOT|IDMEF_CRITERION_OPERATOR_NULL); if ( real_ret < 0 ) YYABORT; $$ = criteria; } ; path: TOK_IDMEF_PATH { real_ret = idmef_path_new_fast(&cur_path, $1); free($1); if ( real_ret < 0 ) YYABORT; path_count = 0; $$ = cur_path; } ; value: TOK_IDMEF_RAW_VALUE { idmef_criteria_t *criteria; idmef_criterion_value_t *value = NULL; prelude_string_t *out; real_ret = idmef_criterion_value_new_from_string(&value, cur_path, $1, cur_operator); free($1); if ( real_ret < 0 ) YYABORT; real_ret = create_criteria(&criteria, cur_path, value, cur_operator); if ( real_ret < 0 ) YYABORT; $$ = criteria; } | TOK_IDMEF_VALUE { idmef_criteria_t *criteria; idmef_criterion_value_t *value = NULL; prelude_string_t *out; real_ret = escape_str(&out, $1); free($1); if ( real_ret < 0 ) YYABORT; real_ret = idmef_criterion_value_new_from_string(&value, cur_path, prelude_string_get_string(out), cur_operator); prelude_string_destroy(out); if ( real_ret < 0 ) YYABORT; real_ret = create_criteria(&criteria, cur_path, value, cur_operator); if ( real_ret < 0 ) YYABORT; $$ = criteria; } ; multiple_value: multiple_value operator multiple_value { if ( $2 == operator_or ) idmef_criteria_or_criteria($1, $3); else idmef_criteria_and_criteria($1, $3); $$ = $1; } | '(' multiple_value ')' { $$ = $2; } | value { $$ = $1; } ; relation: TOK_RELATION_SUBSTRING { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_SUBSTR; } | TOK_RELATION_SUBSTRING_NOCASE { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_SUBSTR|IDMEF_CRITERION_OPERATOR_NOCASE; } | TOK_RELATION_NOT_SUBSTRING { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_SUBSTR|IDMEF_CRITERION_OPERATOR_NOT; } | TOK_RELATION_NOT_SUBSTRING_NOCASE { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_SUBSTR|IDMEF_CRITERION_OPERATOR_NOT|IDMEF_CRITERION_OPERATOR_NOCASE; } | TOK_RELATION_REGEXP { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_REGEX; } | TOK_RELATION_REGEXP_NOCASE { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_REGEX|IDMEF_CRITERION_OPERATOR_NOCASE; } | TOK_RELATION_NOT_REGEXP { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_REGEX|IDMEF_CRITERION_OPERATOR_NOT; } | TOK_RELATION_NOT_REGEXP_NOCASE { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_REGEX|IDMEF_CRITERION_OPERATOR_NOT|IDMEF_CRITERION_OPERATOR_NOCASE; } | TOK_RELATION_GREATER { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_GREATER; } | TOK_RELATION_GREATER_OR_EQUAL { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_GREATER|IDMEF_CRITERION_OPERATOR_EQUAL; } | TOK_RELATION_LESS { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_LESSER; } | TOK_RELATION_LESS_OR_EQUAL { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_LESSER|IDMEF_CRITERION_OPERATOR_EQUAL; } | TOK_RELATION_EQUAL { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_EQUAL; } | TOK_RELATION_EQUAL_NOCASE { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_EQUAL|IDMEF_CRITERION_OPERATOR_NOCASE; } | TOK_RELATION_NOT_EQUAL { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_EQUAL|IDMEF_CRITERION_OPERATOR_NOT; } | TOK_RELATION_NOT_EQUAL_NOCASE { cur_operator = $$ = IDMEF_CRITERION_OPERATOR_EQUAL|IDMEF_CRITERION_OPERATOR_NOCASE|IDMEF_CRITERION_OPERATOR_NOT; } | TOK_ERROR { real_ret = prelude_error_verbose(PRELUDE_ERROR_IDMEF_CRITERIA_PARSE, "Criteria parser reported: Invalid operator found"); YYERROR; } ; operator: TOK_OPERATOR_AND { $$ = operator_and; } | TOK_OPERATOR_OR { $$ = operator_or; } ; %% static void _preludeyyerror(const char *s) /* Called by yyparse on error */ { real_ret = prelude_error_verbose_make(PRELUDE_ERROR_SOURCE_IDMEF_CRITERIA, PRELUDE_ERROR_IDMEF_CRITERIA_PARSE, "IDMEF-Criteria parser: %s", s); } int idmef_criteria_new_from_string(idmef_criteria_t **new_criteria, const char *str) { int ret; void *state; prelude_return_val_if_fail(str, -1); gl_lock_lock(_criteria_parse_mutex); real_ret = 0; processed_criteria = NULL; state = _preludeyy_scan_string(str); ret = yyparse(); _preludeyy_delete_buffer(state); if ( ret != 0 ) { _idmef_criteria_string_init_lexer(); if ( real_ret ) ret = real_ret; else ret = prelude_error_make(PRELUDE_ERROR_SOURCE_IDMEF_CRITERIA, PRELUDE_ERROR_IDMEF_CRITERIA_PARSE); if ( processed_criteria ) idmef_criteria_destroy(processed_criteria); } else *new_criteria = processed_criteria; gl_lock_unlock(_criteria_parse_mutex); return ret; } libprelude-5.2.0/src/PaxHeaders.14770/idmef-criteria-string.lex.l0000644000000000000000000000011013726163410022566 xustar000000000000000024 mtime=1599661832.667 24 atime=1599661832.776 24 ctime=1599661999.838 libprelude-5.2.0/src/idmef-criteria-string.lex.l0000644000000000000000000001515113726163410021574 0ustar00rootroot00000000000000/***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Krzysztof Zaraska * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ %top{ #include "libmissing.h" } %{ #include #include #include "idmef.h" #include "common.h" #include "idmef-criteria-string.yac.h" #define YY_NO_INPUT #define YY_NO_TOP_STATE #ifndef MIN # define MIN(x, y) ((x) < (y) ? (x) : (y)) #endif static void do_pop(void); static unsigned int inp = 0; %} IDMEF_PATH ([a-zA-Z0-9_\-]+(\(((\-?[0-9\*]+)|(\"[^"]+\")|(\'[^']+\'))\))?\.?)+ SQSTRING \'([^\\\']|\\.)*\' DQSTRING \"([^\\\"]|\\.)*\" RSQSTRING r\'([^\\\']|\\.)*\' RDQSTRING r\"([^\\\"]|\\.)*\" BLANK [ \t\n]+ %option nounput %option noyywrap %option stack %option prefix="_preludeyy" %x IDMEF_VALUE %% substr { yy_push_state(IDMEF_VALUE); return TOK_RELATION_SUBSTRING; } \!substr { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_SUBSTRING; } substr\* { yy_push_state(IDMEF_VALUE); return TOK_RELATION_SUBSTRING_NOCASE; } \!substr\* { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_SUBSTRING_NOCASE; } {IDMEF_PATH} { _preludeyylval.str = strdup(yytext); return TOK_IDMEF_PATH; } \<\> { yy_push_state(IDMEF_VALUE); return TOK_RELATION_SUBSTRING; } \<\>\* { yy_push_state(IDMEF_VALUE); return TOK_RELATION_SUBSTRING_NOCASE; } \!\<\> { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_SUBSTRING; } \!\<\>\* { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_SUBSTRING_NOCASE; } \> { yy_push_state(IDMEF_VALUE); return TOK_RELATION_GREATER; } \>\= { yy_push_state(IDMEF_VALUE); return TOK_RELATION_GREATER_OR_EQUAL; } \< { yy_push_state(IDMEF_VALUE); return TOK_RELATION_LESS; } \<\= { yy_push_state(IDMEF_VALUE); return TOK_RELATION_LESS_OR_EQUAL; } \~ { yy_push_state(IDMEF_VALUE); return TOK_RELATION_REGEXP; } \~\* { yy_push_state(IDMEF_VALUE); return TOK_RELATION_REGEXP_NOCASE; } \!\~ { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_REGEXP; } \!\~\* { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_REGEXP_NOCASE; } \=\= { yy_push_state(IDMEF_VALUE); return TOK_RELATION_EQUAL; } \= { yy_push_state(IDMEF_VALUE); return TOK_RELATION_EQUAL; } \=\* { yy_push_state(IDMEF_VALUE); return TOK_RELATION_EQUAL_NOCASE; } \!\= { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_EQUAL; } \!\=\* { yy_push_state(IDMEF_VALUE); return TOK_RELATION_NOT_EQUAL_NOCASE; } \! { return TOK_OPERATOR_NOT; } \&\& { return TOK_OPERATOR_AND; } \& { return TOK_OPERATOR_AND; } \|\| { return TOK_OPERATOR_OR; } \| { return TOK_OPERATOR_OR; } \( { return '('; } \) { return ')'; } {RSQSTRING} { _preludeyylval.str = strndup(yytext + 2, yyleng - 3); if ( ! inp ) yy_pop_state(); return TOK_IDMEF_RAW_VALUE; } {RDQSTRING} { _preludeyylval.str = strndup(yytext + 2, yyleng - 3); if ( ! inp ) yy_pop_state(); return TOK_IDMEF_RAW_VALUE; } {SQSTRING} { _preludeyylval.str = strndup(yytext + 1, yyleng - 2); if ( ! inp ) yy_pop_state(); return TOK_IDMEF_VALUE; } {DQSTRING} { _preludeyylval.str = strndup(yytext + 1, yyleng - 2); if ( ! inp ) yy_pop_state(); return TOK_IDMEF_VALUE; } [^ \t\(\)\&\|]+ { _preludeyylval.str = strdup(yytext); if ( ! inp ) yy_pop_state(); return TOK_IDMEF_VALUE; } {BLANK} { /* nop */; } \( { inp++; return '('; } \) { do_pop(); return ')'; } \&\& { return TOK_OPERATOR_AND; } \& { return TOK_OPERATOR_AND; } \|\| { return TOK_OPERATOR_OR; } \| { return TOK_OPERATOR_OR; } . { /* invalid token */ return TOK_ERROR; } {BLANK} { /* nop */; } . { /* invalid token */ _preludeyylval.str = strdup(yytext); return TOK_ERROR; } %% static void do_pop(void) { if ( --inp == 0 ) yy_pop_state(); } void _idmef_criteria_string_init_lexer(void); void _idmef_criteria_string_init_lexer(void) { inp = 0; BEGIN INITIAL; } libprelude-5.2.0/src/PaxHeaders.14770/idmef-criterion-value.c0000644000000000000000000000010713726163410021776 xustar000000000000000024 mtime=1599661832.669 24 atime=1599661832.777 23 ctime=1599661999.84 libprelude-5.2.0/src/idmef-criterion-value.c0000644000000000000000000005473013726163410021004 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Nicolas Delon * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #include #include "common.h" #include "prelude-log.h" #include "prelude-error.h" #include "prelude-inttypes.h" #include "idmef.h" #include "idmef-criterion-value.h" #ifdef HAVE_PCRE # include # define _CRITERION_REGEX_FLAGS 0 # define _CRITERION_REGEX_FLAGS_CASELESS PCRE_CASELESS #else # define _CRITERION_REGEX_FLAGS REG_EXTENDED|REG_NOSUB # define _CRITERION_REGEX_FLAGS_CASELESS REG_ICASE #endif struct match_cb { unsigned int nmatch; unsigned int match; idmef_criterion_value_t *cv; idmef_criterion_operator_t operator; }; struct regex_value { #ifdef HAVE_PCRE pcre *regex; #else regex_t regex; #endif char *regex_string; }; struct idmef_criterion_value { void *value; prelude_bool_t value_need_free; idmef_criterion_value_type_t type; int (*clone)(const idmef_criterion_value_t *cv, idmef_criterion_value_t *dst); int (*print)(const idmef_criterion_value_t *cv, prelude_io_t *fd); int (*to_string)(const idmef_criterion_value_t *cv, prelude_string_t *out); int (*match)(const idmef_criterion_value_t *cv, idmef_criterion_operator_t operator, idmef_value_t *value); void (*destroy)(idmef_criterion_value_t *cv); }; /* * time stuff */ static int btime_parse_simple(const char *integer, int *out) { *out = atoi(integer); return 0; } static int btime_parse_year(const char *integer, int *out) { *out = atoi(integer) - 1900; return 0; } static int btime_parse_month(const char *value, int *out) { int i; const char *months[] = { "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december" }; if ( isdigit((int) *value) ) { *out = atoi(value) - 1; return 0; } for ( i = 0; i < (int) (sizeof(months) / sizeof(*months)); i++ ) { if ( strcasecmp(value, months[i]) == 0 ) { *out = i; /* Numbered 0 to 11 */ return 0; } } return -1; } static int btime_parse_wday(const char *value, int *out) { int i; const char *days[] = { "sunday", "monday", "tuesday", /* happy days ! ;) */ "wednesday", "thursday", "friday", "saturday", }; if ( isdigit((int) *value) ) { *out = atoi(value) - 1; return 0; } for ( i = 0; i < (int) (sizeof(days) / sizeof(*days)); i++ ) { if ( strcasecmp(value, days[i]) == 0 ) { *out = i; /* Numbered 0 (sunday) to 6 */ return 0; } } return -1; } static int integer_compare(time_t matched, time_t wanted, idmef_criterion_operator_t op) { if ( op & IDMEF_CRITERION_OPERATOR_EQUAL && matched == wanted ) return 1; if ( op & IDMEF_CRITERION_OPERATOR_LESSER && matched < wanted) return 1; if ( op & IDMEF_CRITERION_OPERATOR_GREATER && matched > wanted ) return 1; return 0; } static int do_btime_match(const idmef_criterion_value_t *cv, idmef_criterion_operator_t op, idmef_value_t *value) { int ret; time_t sec; struct tm lt, comp = *(struct tm *) cv->value; prelude_bool_t need_full_compare = FALSE; if ( idmef_value_get_type(value) != IDMEF_VALUE_TYPE_TIME ) return -1; sec = idmef_time_get_sec(idmef_value_get_time(value)); if ( ! gmtime_r(&sec, <) ) return prelude_error_from_errno(errno); /* * Apply mask */ if ( comp.tm_sec < 0 ) lt.tm_sec = -1; else need_full_compare = TRUE; if ( comp.tm_min < 0 ) lt.tm_min = -1; else need_full_compare = TRUE; if ( comp.tm_mon < 0 ) lt.tm_mon = -1; else need_full_compare = TRUE; if ( comp.tm_hour < 0 ) lt.tm_hour = -1; else need_full_compare = TRUE; if ( comp.tm_mday < 0 ) lt.tm_mday = -1; else need_full_compare = TRUE; if ( comp.tm_year < 0 ) lt.tm_year = -1; else need_full_compare = TRUE; if ( comp.tm_wday < 0 ) lt.tm_wday = -1; if ( comp.tm_yday < 0 ) lt.tm_yday = -1; /* * The timegm() function ignores values supplied in the tm_wday * and tm_yday fields, match them manually: */ if ( comp.tm_wday >= 0 ) { ret = integer_compare(lt.tm_wday, comp.tm_wday, (need_full_compare) ? op | IDMEF_CRITERION_OPERATOR_EQUAL : op); if ( ret != 1 ) return ret; } if ( comp.tm_yday >= 0 ) { ret = integer_compare(lt.tm_yday, comp.tm_yday, (need_full_compare) ? op | IDMEF_CRITERION_OPERATOR_EQUAL : op); if ( ret != 1 ) return ret; } if ( ! need_full_compare ) return 1; return integer_compare(timegm(<), timegm(&comp), op); } static int btime_match(const idmef_criterion_value_t *cv, idmef_criterion_operator_t operator, idmef_value_t *value) { int ret; ret = do_btime_match(cv, operator, value); if ( ret < 0 ) return ret; if ( operator & IDMEF_CRITERION_OPERATOR_NOT ) return (ret == 1) ? 0 : 1; else return (ret == 1) ? 1 : 0; } static int btime_to_string(const idmef_criterion_value_t *cv, prelude_string_t *out) { struct tm *lt = cv->value; if ( lt->tm_year != -1 ) prelude_string_sprintf(out, "year:%d ", lt->tm_year + 1900); if ( lt->tm_yday != -1 ) prelude_string_sprintf(out, "yday:%d ", lt->tm_yday); if ( lt->tm_mon != -1 ) prelude_string_sprintf(out, "month:%d ", lt->tm_mon); if ( lt->tm_mday != -1 ) prelude_string_sprintf(out, "mday:%d ", lt->tm_mday); if ( lt->tm_wday != -1 ) prelude_string_sprintf(out, "wday:%d ", lt->tm_wday); if ( lt->tm_hour != -1 ) prelude_string_sprintf(out, "hour:%d ", lt->tm_hour); if ( lt->tm_min != -1 ) prelude_string_sprintf(out, "min:%d ", lt->tm_min); if ( lt->tm_sec != -1 ) prelude_string_sprintf(out, "sec:%d ", lt->tm_sec); return 0; } static int btime_print(const idmef_criterion_value_t *cv, prelude_io_t *fd) { int ret; prelude_string_t *out; ret = prelude_string_new(&out); if ( ret < 0 ) return ret; ret = btime_to_string(cv, out); if ( ret < 0 ) { prelude_string_destroy(out); return ret; } ret = prelude_io_write(fd, prelude_string_get_string(out), prelude_string_get_len(out)); prelude_string_destroy(out); return ret; } static int btime_clone(const idmef_criterion_value_t *src, idmef_criterion_value_t *dst) { /* * The API does not allow to change the value of an existing * idmef_criterion_value_t object, so we can simply regerence the source. */ dst->value_need_free = FALSE; dst->value = src->value; return 0; } static void btime_destroy(idmef_criterion_value_t *cv) { if ( cv->value_need_free ) free(cv->value); } /* * regex stuff */ static int regex_match(const idmef_criterion_value_t *cv, idmef_criterion_operator_t operator, idmef_value_t *value) { int ret; const char *str = NULL; idmef_class_id_t class; struct regex_value *rv = cv->value; if ( ! value ) return 0; if ( idmef_value_get_type(value) == IDMEF_VALUE_TYPE_STRING ) str = prelude_string_get_string(idmef_value_get_string(value)); else if ( idmef_value_get_type(value) == IDMEF_VALUE_TYPE_ENUM ) { class = idmef_value_get_class(value); str = idmef_class_enum_to_string(class, idmef_value_get_enum(value)); } else if ( idmef_value_get_type(value) == IDMEF_VALUE_TYPE_DATA ) { idmef_data_t *data; data = idmef_value_get_data(value); if ( idmef_data_get_type(data) == IDMEF_DATA_TYPE_CHAR_STRING ) str = idmef_data_get_data(data); } if ( ! str ) return 0; #ifdef HAVE_PCRE ret = (pcre_exec(rv->regex, NULL, str, strlen(str), 0, 0, NULL, 0) < 0) ? 0 : 1; #else ret = (regexec(&rv->regex, str, 0, NULL, 0) == REG_NOMATCH) ? 0 : 1; #endif return (operator & IDMEF_CRITERION_OPERATOR_NOT) ? !ret : ret; } static int regex_print(const idmef_criterion_value_t *cv, prelude_io_t *fd) { struct regex_value *rv = cv->value; prelude_io_write(fd, rv->regex_string, strlen(rv->regex_string)); return 0; } static int regex_to_string(const idmef_criterion_value_t *cv, prelude_string_t *out) { struct regex_value *rv = cv->value; return prelude_string_cat(out, rv->regex_string); } static int regex_clone(const idmef_criterion_value_t *src, idmef_criterion_value_t *dst) { /* * The API does not allow to change the value of an existing * idmef_criterion_value_t object, so we can simply regerence the source. */ dst->value_need_free = FALSE; dst->value = src->value; return 0; } static void regex_destroy(idmef_criterion_value_t *cv) { struct regex_value *rv; if ( ! cv->value_need_free ) return; rv = cv->value; free(rv->regex_string); #ifdef HAVE_PCRE pcre_free(rv->regex); #else regfree(&rv->regex); #endif free(rv); } /* * value stuff */ static int value_match(const idmef_criterion_value_t *cv, idmef_criterion_operator_t operator, idmef_value_t *value) { return idmef_value_match(value, cv->value, operator); } static int value_print(const idmef_criterion_value_t *cv, prelude_io_t *fd) { return idmef_value_print(cv->value, fd); } static int value_to_string(const idmef_criterion_value_t *cv, prelude_string_t *out) { return idmef_value_to_string(cv->value, out); } static int value_clone(const idmef_criterion_value_t *cv, idmef_criterion_value_t *dst) { int ret; idmef_value_t *res; ret = idmef_value_clone(cv->value, &res); dst->value = res; return ret; } static void value_destroy(idmef_criterion_value_t *cv) { idmef_value_destroy(cv->value); } /* * */ static int do_match_cb(idmef_value_t *value, void *extra) { int ret; struct match_cb *mcb = extra; idmef_criterion_value_t *cv = mcb->cv; idmef_criterion_operator_t operator = mcb->operator; if ( ! cv ) ret = (operator == IDMEF_CRITERION_OPERATOR_NOT_NULL) ? (value != NULL) : (value == NULL); else { if ( value && idmef_value_is_list(value) ) return idmef_value_iterate(value, do_match_cb, mcb); ret = cv->match(cv, operator, value); if ( ret < 0 ) return ret; } if ( ret > 0 ) mcb->match++; else mcb->nmatch++; return 0; } void idmef_criterion_value_destroy(idmef_criterion_value_t *value) { value->destroy(value); free(value); } int idmef_criterion_value_clone(const idmef_criterion_value_t *src, idmef_criterion_value_t **dst) { int ret; ret = idmef_criterion_value_new(dst); if ( ret < 0 ) return ret; (*dst)->type = src->type; (*dst)->clone = src->clone; (*dst)->print = src->print; (*dst)->to_string = src->to_string; (*dst)->match = src->match; (*dst)->destroy = src->destroy; ret = src->clone(src, *dst); if ( ret < 0 ) { free(*dst); return ret; } return 0; } int idmef_criterion_value_print(idmef_criterion_value_t *cv, prelude_io_t *fd) { return cv->print(cv, fd); } int idmef_criterion_value_to_string(idmef_criterion_value_t *cv, prelude_string_t *out) { return cv->to_string(cv, out); } static int my_value_match(idmef_value_t *value, struct match_cb *mcb) { if ( value ) return idmef_value_iterate(value, do_match_cb, mcb); else return do_match_cb(value, mcb); } int idmef_criterion_value_match(idmef_criterion_value_t *cv, idmef_value_t *value, idmef_criterion_operator_t op) { int ret; struct match_cb mcb; mcb.cv = cv; mcb.operator = op; mcb.match = mcb.nmatch = 0; ret = my_value_match(value, &mcb); if ( ret < 0 ) return ret; if ( value && idmef_value_is_list(value) && op != IDMEF_CRITERION_OPERATOR_NOT_NULL ) { if ( op == IDMEF_CRITERION_OPERATOR_NULL ) return (mcb.nmatch == 0) ? 1 : 0; if ( op & IDMEF_CRITERION_OPERATOR_NOT && mcb.nmatch > 0 ) return 0; } return mcb.match; } int idmef_criterion_value_new(idmef_criterion_value_t **cv) { *cv = calloc(1, sizeof(**cv)); if ( ! *cv ) return prelude_error_from_errno(errno); (*cv)->value_need_free = TRUE; return 0; } static int btime_parse_gmtoff(const char *param, int *out) { *out = atoi(param) * 60 * 60; return 0; } static int btime_parse(struct tm *lt, const char *time) { int ret; size_t i; long gmt_offset; char *end = NULL; struct { const char *field; size_t len; void *ptr; int (*func)(const char *param, int *output); } tbl[] = { { "month", 5, <->tm_mon, btime_parse_month }, { "wday", 4, <->tm_wday, btime_parse_wday }, { "year", 4, <->tm_year, btime_parse_year }, { "mday", 4, <->tm_mday, btime_parse_simple }, { "yday", 4, <->tm_yday, btime_parse_simple }, { "hour", 4, <->tm_hour, btime_parse_simple }, { "min", 3, <->tm_min, btime_parse_simple }, { "sec", 3, <->tm_sec, btime_parse_simple }, { "gmtoff", 6, &gmt_offset, btime_parse_gmtoff } }; ret = prelude_get_gmt_offset(&gmt_offset); if ( ret < 0 ) return ret; do { for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strncmp(time, tbl[i].field, tbl[i].len) != 0 ) continue; if ( time[tbl[i].len] != ':' ) continue; time += tbl[i].len + 1; end = strchr(time, ' '); if ( end ) { *end++ = 0; while ( *end == ' ' ) end++; } ret = tbl[i].func(time, tbl[i].ptr); if ( ret < 0 ) return -1; time = end + 1; break; } if ( i == sizeof(tbl) / sizeof(*tbl) ) return -1; time = end; } while ( time ); if ( lt->tm_hour != -1 ) lt->tm_hour -= (gmt_offset / (60 * 60)); return 0; } int idmef_criterion_value_new_broken_down_time(idmef_criterion_value_t **cv, const char *time, idmef_criterion_operator_t op) { int ret; struct tm *lt; ret = idmef_criterion_value_new(cv); if ( ret < 0 ) return ret; lt = malloc(sizeof(struct tm)); if ( ! lt ) { free(*cv); return prelude_error_from_errno(errno); } memset(lt, -1, sizeof(*lt)); ret = btime_parse(lt, time); if ( ret < 0 ) { free(lt); free(*cv); return ret; } (*cv)->value = lt; (*cv)->match = btime_match; (*cv)->clone = btime_clone; (*cv)->print = btime_print; (*cv)->destroy = btime_destroy; (*cv)->to_string = btime_to_string; (*cv)->type = IDMEF_CRITERION_VALUE_TYPE_BROKEN_DOWN_TIME; return 0; } int idmef_criterion_value_new_regex(idmef_criterion_value_t **cv, const char *regex, idmef_criterion_operator_t op) { int ret; char errbuf[1024]; const char *errptr = errbuf; struct regex_value *rv; int flags = _CRITERION_REGEX_FLAGS; ret = idmef_criterion_value_new(cv); if ( ret < 0 ) return ret; rv = (*cv)->value = malloc(sizeof(*rv)); if ( ! rv ) { free(*cv); return prelude_error_from_errno(errno); } rv->regex_string = strdup(regex); if ( ! rv->regex_string ) { free(rv); free(*cv); return prelude_error_from_errno(errno); } if ( op & IDMEF_CRITERION_OPERATOR_NOCASE ) flags |= _CRITERION_REGEX_FLAGS_CASELESS; #ifdef HAVE_PCRE int erroffset; rv->regex = pcre_compile(rv->regex_string, flags, &errptr, &erroffset, NULL); if ( ! rv->regex ) { #else ret = regcomp(&rv->regex, rv->regex_string, flags); if ( ret != 0 ) { regerror(ret, &rv->regex, errbuf, sizeof(errbuf)); #endif free(rv->regex_string); free(rv); free(*cv); return prelude_error_verbose(PRELUDE_ERROR_IDMEF_CRITERION_INVALID_REGEX, "error compiling regex: %s", errptr); } (*cv)->match = regex_match; (*cv)->clone = regex_clone; (*cv)->print = regex_print; (*cv)->destroy = regex_destroy; (*cv)->to_string = regex_to_string; (*cv)->type = IDMEF_CRITERION_VALUE_TYPE_REGEX; return 0; } int idmef_criterion_value_new_value(idmef_criterion_value_t **cv, idmef_value_t *value, idmef_criterion_operator_t op) { int ret; ret = idmef_value_check_operator(value, op); if ( ret < 0 ) return ret; ret = idmef_criterion_value_new(cv); if ( ret < 0 ) return ret; (*cv)->value = value; (*cv)->match = value_match; (*cv)->clone = value_clone; (*cv)->print = value_print; (*cv)->destroy = value_destroy; (*cv)->to_string = value_to_string; (*cv)->type = IDMEF_CRITERION_VALUE_TYPE_VALUE; return 0; } int idmef_criterion_value_new_from_string(idmef_criterion_value_t **cv, idmef_path_t *path, const char *value, idmef_criterion_operator_t operator) { int ret; idmef_value_t *val; idmef_value_type_id_t tid; tid = idmef_path_get_value_type(path, -1); if ( tid == IDMEF_VALUE_TYPE_TIME ) { ret = idmef_criterion_value_new_broken_down_time(cv, value, operator); if ( ret == 0 ) return ret; } else if ( operator & IDMEF_CRITERION_OPERATOR_REGEX && (tid == IDMEF_VALUE_TYPE_STRING || tid == IDMEF_VALUE_TYPE_ENUM || tid == IDMEF_VALUE_TYPE_DATA) ) return idmef_criterion_value_new_regex(cv, value, operator); /* * It's more understandable for the user if we check the operator * prior to checking the value. */ ret = idmef_value_type_check_operator(tid, operator); if ( ret < 0 ) return ret; if ( tid == IDMEF_VALUE_TYPE_ENUM && operator & IDMEF_CRITERION_OPERATOR_SUBSTR ) ret = idmef_value_new_from_string(&val, IDMEF_VALUE_TYPE_STRING, value); else ret = idmef_value_new_from_path(&val, path, value); if ( ret < 0 ) return ret; ret = idmef_criterion_value_new_value(cv, val, operator); if ( ret < 0 ) { idmef_value_destroy(val); return ret; } return 0; } const idmef_value_t *idmef_criterion_value_get_value(idmef_criterion_value_t *cv) { return cv->type == IDMEF_CRITERION_VALUE_TYPE_VALUE ? cv->value : NULL; } const struct tm *idmef_criterion_value_get_broken_down_time(idmef_criterion_value_t *cv) { return cv->type == IDMEF_CRITERION_VALUE_TYPE_BROKEN_DOWN_TIME ? cv->value : NULL; } const char *idmef_criterion_value_get_regex(idmef_criterion_value_t *cv) { return cv->type == IDMEF_CRITERION_VALUE_TYPE_REGEX ? ((struct regex_value *)cv->value)->regex_string : NULL; } idmef_criterion_value_type_t idmef_criterion_value_get_type(idmef_criterion_value_t *cv) { return cv->type; } libprelude-5.2.0/src/PaxHeaders.14770/idmef-data.c0000644000000000000000000000011013726163410017571 xustar000000000000000024 mtime=1599661832.669 24 atime=1599661832.777 24 ctime=1599661999.841 libprelude-5.2.0/src/idmef-data.c0000644000000000000000000004731213726163410016603 0ustar00rootroot00000000000000/***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "libmissing.h" #include #include #include #include #include "prelude-error.h" #include "prelude-inttypes.h" #include "prelude-string.h" #include "common.h" #include "idmef-data.h" /* * Data structure may be free'd */ #define IDMEF_DATA_OWN_STRUCTURE 0x1 /* * Data content may be free'd */ #define IDMEF_DATA_OWN_DATA 0x2 #define IDMEF_DATA_DECL(idmef_data_type, c_type, name, fname) \ int idmef_data_new_ ## name(idmef_data_t **nd, c_type val) \ { \ int ret; \ \ ret = idmef_data_new(nd); \ if ( ret < 0 ) \ return ret; \ \ idmef_data_set_ ## fname(*nd, val); \ \ return ret; \ } \ \ void idmef_data_set_ ## name(idmef_data_t *ptr, c_type val) \ { \ prelude_return_if_fail(ptr); \ idmef_data_destroy_internal(ptr); \ ptr->type = idmef_data_type; \ ptr->len = sizeof(val); \ ptr->data.fname ## _data = val; \ } \ \ c_type idmef_data_get_ ## name(const idmef_data_t *ptr) \ { \ return ptr->data.fname ## _data; \ } IDMEF_DATA_DECL(IDMEF_DATA_TYPE_CHAR, char, char, char) IDMEF_DATA_DECL(IDMEF_DATA_TYPE_BYTE, uint8_t, byte, byte) IDMEF_DATA_DECL(IDMEF_DATA_TYPE_INT, uint32_t, uint32, int) IDMEF_DATA_DECL(IDMEF_DATA_TYPE_INT, uint64_t, uint64, int) IDMEF_DATA_DECL(IDMEF_DATA_TYPE_INT, int64_t, int, int) IDMEF_DATA_DECL(IDMEF_DATA_TYPE_FLOAT, float, float, float) int idmef_data_new(idmef_data_t **data) { *data = calloc(1, sizeof(**data)); if ( ! *data ) return prelude_error_from_errno(errno); (*data)->refcount = 1; (*data)->flags |= IDMEF_DATA_OWN_STRUCTURE; return 0; } int idmef_data_new_time(idmef_data_t **data, idmef_time_t *time) { int ret; ret = idmef_data_new(data); if ( ret < 0 ) return ret; (*data)->len = 1; (*data)->type = IDMEF_DATA_TYPE_TIME; (*data)->flags |= IDMEF_DATA_OWN_DATA; (*data)->data.ro_data = time; return 0; } void idmef_data_set_time(idmef_data_t *data, idmef_time_t *time) { data->len = 1; data->type = IDMEF_DATA_TYPE_TIME; data->flags |= IDMEF_DATA_OWN_DATA; data->data.ro_data = time; } idmef_data_t *idmef_data_ref(idmef_data_t *data) { prelude_return_val_if_fail(data, NULL); data->refcount++; return data; } int idmef_data_set_ptr_ref_fast(idmef_data_t *data, idmef_data_type_t type, const void *ptr, size_t len) { prelude_return_val_if_fail(data, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); idmef_data_destroy_internal(data); data->type = type; data->data.ro_data = ptr; data->len = len; return 0; } int idmef_data_set_ptr_dup_fast(idmef_data_t *data, idmef_data_type_t type, const void *ptr, size_t len) { void *new; prelude_return_val_if_fail(data, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); idmef_data_destroy_internal(data); new = malloc(len); if ( ! new ) return -1; memcpy(new, ptr, len); data->type = type; data->data.rw_data = new; data->len = len; data->flags |= IDMEF_DATA_OWN_DATA; return 0; } int idmef_data_set_ptr_nodup_fast(idmef_data_t *data, idmef_data_type_t type, void *ptr, size_t len) { prelude_return_val_if_fail(data, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); idmef_data_destroy_internal(data); data->type = type; data->data.rw_data= ptr; data->len = len; data->flags |= IDMEF_DATA_OWN_DATA; return 0; } int idmef_data_new_ptr_ref_fast(idmef_data_t **data, idmef_data_type_t type, const void *ptr, size_t len) { int ret; ret = idmef_data_new(data); if ( ret < 0 ) return ret; ret = idmef_data_set_ptr_ref_fast(*data, type, ptr, len); if ( ret < 0 ) idmef_data_destroy(*data); return ret; } int idmef_data_new_ptr_dup_fast(idmef_data_t **data, idmef_data_type_t type, const void *ptr, size_t len) { int ret; ret = idmef_data_new(data); if ( ret < 0 ) return ret; ret = idmef_data_set_ptr_dup_fast(*data, type, ptr, len); if ( ret < 0 ) idmef_data_destroy(*data); return ret; } int idmef_data_new_ptr_nodup_fast(idmef_data_t **data, idmef_data_type_t type, void *ptr, size_t len) { int ret; ret = idmef_data_new(data); if ( ret < 0 ) return ret; ret = idmef_data_set_ptr_nodup_fast(*data, type, ptr, len); if ( ret < 0 ) idmef_data_destroy(*data); return ret; } /** * idmef_data_copy_ref: * @src: Source #idmef_data_t object. * @dst: Destination #idmef_data_t object. * * Makes @dst reference the same buffer as @src. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_data_copy_ref(const idmef_data_t *src, idmef_data_t *dst) { prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); idmef_data_destroy_internal(dst); dst->type = src->type; dst->len = src->len; dst->data = src->data; dst->flags &= ~IDMEF_DATA_OWN_DATA; return 0; } /** * idmef_data_copy_dup: * @src: Source #idmef_data_t object. * @dst: Destination #idmef_data_t object. * * Copies @src to @dst, including the associated buffer. * This is an alternative to idmef_data_clone(). * * Returns: 0 on success, a negative value if an error occured. */ int idmef_data_copy_dup(const idmef_data_t *src, idmef_data_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); idmef_data_destroy_internal(dst); dst->type = src->type; dst->flags |= IDMEF_DATA_OWN_DATA; dst->len = src->len; if ( src->type == IDMEF_DATA_TYPE_TIME ) { ret = idmef_time_clone((idmef_time_t *) src->data.rw_data, (idmef_time_t **) &dst->data.rw_data); if ( ret < 0 ) return ret; } else if ( src->type == IDMEF_DATA_TYPE_CHAR_STRING || src->type == IDMEF_DATA_TYPE_BYTE_STRING ) { dst->data.rw_data = malloc(src->len); if ( ! dst->data.rw_data ) return -1; memcpy(dst->data.rw_data, src->data.ro_data, src->len); } else { dst->data = src->data; } return 0; } int idmef_data_clone(const idmef_data_t *src, idmef_data_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_data_new(dst); if ( ret < 0 ) return ret; ret = idmef_data_copy_dup(src, *dst); if ( ret < 0 ) idmef_data_destroy(*dst); return ret; } const char *idmef_data_get_char_string(const idmef_data_t *data) { prelude_return_val_if_fail(data, NULL); return data->data.ro_data; } const unsigned char *idmef_data_get_byte_string(const idmef_data_t *data) { prelude_return_val_if_fail(data, NULL); return data->data.ro_data; } /** * idmef_data_get_type * @data: Pointer to an #idmef_data_t object. * * Returns: the type of the embedded data. */ idmef_data_type_t idmef_data_get_type(const idmef_data_t *data) { prelude_return_val_if_fail(data, prelude_error(PRELUDE_ERROR_ASSERTION)); return data->type; } /** * idmef_data_get_len: * @data: Pointer to an #idmef_data_t object. * * Returns: the length of data contained within @data object. */ size_t idmef_data_get_len(const idmef_data_t *data) { prelude_return_val_if_fail(data, 0); return data->len; } /** * idmef_data_get_data: * @data: Pointer to an #idmef_data_t object. * * Returns: the data contained within @data object. */ const void *idmef_data_get_data(const idmef_data_t *data) { prelude_return_val_if_fail(data, NULL); switch ( data->type ) { case IDMEF_DATA_TYPE_UNKNOWN: return NULL; case IDMEF_DATA_TYPE_CHAR_STRING: case IDMEF_DATA_TYPE_BYTE_STRING: case IDMEF_DATA_TYPE_TIME: return data->data.ro_data; default: return &data->data; } return NULL; } /** * idmef_data_is_empty: * @data: Pointer to an #idmef_data_t object. * * Returns: TRUE if empty, FALSE otherwise. */ prelude_bool_t idmef_data_is_empty(const idmef_data_t *data) { prelude_return_val_if_fail(data, TRUE); return (data->len == 0) ? TRUE : FALSE; } static int bytes_to_string(prelude_string_t *out, const unsigned char *src, size_t size) { char c; int ret; static const char b64tbl[64] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; while ( size ) { ret = prelude_string_ncat(out, &b64tbl[(src[0] >> 2) & 0x3f], 1); if ( ret < 0 ) return ret; c = b64tbl[((src[0] << 4) + ((--size) ? src[1] >> 4 : 0)) & 0x3f]; ret = prelude_string_ncat(out, &c, 1); if ( ret < 0 ) return ret; c = (size) ? b64tbl[((src[1] << 2) + ((--size) ? src[2] >> 6 : 0)) & 0x3f] : '='; ret = prelude_string_ncat(out, &c, 1); if ( ret < 0 ) return ret; c = (size && size--) ? b64tbl[src[2] & 0x3f] : '='; ret = prelude_string_ncat(out, &c, 1); if ( ret < 0 ) return ret; src += 3; } return 0; } /** * idmef_data_to_string: * @data: Pointer to an #idmef_data_t object. * @out: Pointer to a #prelude_string_t to store the formated data into. * * Formats data contained within @data to be printable, * and stores the result in the provided @out buffer. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_data_to_string(const idmef_data_t *data, prelude_string_t *out) { int ret = 0; prelude_return_val_if_fail(data, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(out, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( data->type ) { case IDMEF_DATA_TYPE_UNKNOWN: return 0; case IDMEF_DATA_TYPE_CHAR: ret = prelude_string_sprintf(out, "%c", data->data.char_data); break; case IDMEF_DATA_TYPE_BYTE: /* * %hh convertion specifier is not portable. */ ret = prelude_string_sprintf(out, "%u", (unsigned int) data->data.byte_data); break; case IDMEF_DATA_TYPE_UINT32: case IDMEF_DATA_TYPE_INT: ret = prelude_string_sprintf(out, "%" PRELUDE_PRId64, data->data.int_data); break; case IDMEF_DATA_TYPE_FLOAT: ret = prelude_string_sprintf(out, "%f", data->data.float_data); break; case IDMEF_DATA_TYPE_CHAR_STRING: if ( data->len ) ret = prelude_string_ncat(out, (const char *) data->data.ro_data, data->len - 1); break; case IDMEF_DATA_TYPE_BYTE_STRING: ret = bytes_to_string(out, data->data.ro_data, data->len); break; case IDMEF_DATA_TYPE_TIME: ret = idmef_time_to_string(data->data.ro_data, out); break; } return ret; } /* * This function cannot be declared static because it is invoked * from idmef-tree-wrap.c */ void idmef_data_destroy_internal(idmef_data_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->type == IDMEF_DATA_TYPE_TIME && ptr->flags & IDMEF_DATA_OWN_DATA ) idmef_time_destroy(ptr->data.rw_data); else if ( (ptr->type == IDMEF_DATA_TYPE_CHAR_STRING || ptr->type == IDMEF_DATA_TYPE_BYTE_STRING) && ptr->flags & IDMEF_DATA_OWN_DATA ) { free(ptr->data.rw_data); ptr->data.rw_data = NULL; } /* * free() should be done by the caller */ } /** * idmef_data_destroy: * @data: Pointer to an #idmef_data_t object. * * Frees @data. The buffer pointed by @data will be freed if * the @data object is marked as _dup or _nodup. */ void idmef_data_destroy(idmef_data_t *data) { prelude_return_if_fail(data); if ( --data->refcount ) return; idmef_data_destroy_internal(data); if ( data->flags & IDMEF_DATA_OWN_STRUCTURE ) free(data); } int idmef_data_new_char_string_ref_fast(idmef_data_t **data, const char *ptr, size_t len) { return idmef_data_new_ptr_ref_fast(data, IDMEF_DATA_TYPE_CHAR_STRING, ptr, len + 1); } int idmef_data_new_char_string_dup_fast(idmef_data_t **data, const char *ptr, size_t len) { return idmef_data_new_ptr_dup_fast(data, IDMEF_DATA_TYPE_CHAR_STRING, ptr, len + 1); } int idmef_data_new_char_string_nodup_fast(idmef_data_t **data, char *ptr, size_t len) { return idmef_data_new_ptr_nodup_fast(data, IDMEF_DATA_TYPE_CHAR_STRING, ptr, len + 1); } int idmef_data_set_char_string_ref_fast(idmef_data_t *data, const char *ptr, size_t len) { return idmef_data_set_ptr_ref_fast(data, IDMEF_DATA_TYPE_CHAR_STRING, ptr, len + 1); } int idmef_data_set_char_string_dup_fast(idmef_data_t *data, const char *ptr, size_t len) { return idmef_data_set_ptr_dup_fast(data, IDMEF_DATA_TYPE_CHAR_STRING, ptr, len + 1); } int idmef_data_set_char_string_nodup_fast(idmef_data_t *data, char *ptr, size_t len) { return idmef_data_set_ptr_nodup_fast(data, IDMEF_DATA_TYPE_CHAR_STRING, ptr, len + 1); } int idmef_data_new_char_string_ref(idmef_data_t **data, const char *ptr) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_data_new_char_string_ref_fast(data, ptr, strlen(ptr)); } int idmef_data_new_char_string_dup(idmef_data_t **data, const char *ptr) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_data_new_char_string_dup_fast(data, ptr, strlen(ptr)); } int idmef_data_new_char_string_nodup(idmef_data_t **data, char *ptr) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_data_new_char_string_nodup_fast(data, ptr, strlen(ptr)); } int idmef_data_set_char_string_ref(idmef_data_t *data, const char *ptr) { prelude_return_val_if_fail(data, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_data_set_char_string_ref_fast(data, ptr, strlen(ptr)); } int idmef_data_set_char_string_dup(idmef_data_t *data, const char *ptr) { prelude_return_val_if_fail(data, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_data_set_char_string_dup_fast(data, ptr, strlen(ptr)); } int idmef_data_set_char_string_nodup(idmef_data_t *data, char *ptr) { prelude_return_val_if_fail(data, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_data_set_char_string_nodup_fast(data, ptr, strlen(ptr)); } /* * */ int idmef_data_new_byte_string_ref(idmef_data_t **data, const unsigned char *ptr, size_t len) { return idmef_data_new_ptr_ref_fast(data, IDMEF_DATA_TYPE_BYTE_STRING, ptr, len); } int idmef_data_new_byte_string_dup(idmef_data_t **data, const unsigned char *ptr, size_t len) { return idmef_data_new_ptr_dup_fast(data, IDMEF_DATA_TYPE_BYTE_STRING, ptr, len); } int idmef_data_new_byte_string_nodup(idmef_data_t **data, unsigned char *ptr, size_t len) { return idmef_data_new_ptr_nodup_fast(data, IDMEF_DATA_TYPE_BYTE_STRING, ptr, len); } int idmef_data_set_byte_string_ref(idmef_data_t *data, const unsigned char *ptr, size_t len) { return idmef_data_set_ptr_ref_fast(data, IDMEF_DATA_TYPE_BYTE_STRING, ptr, len); } int idmef_data_set_byte_string_dup(idmef_data_t *data, const unsigned char *ptr, size_t len) { return idmef_data_set_ptr_dup_fast(data, IDMEF_DATA_TYPE_BYTE_STRING, ptr, len); } int idmef_data_set_byte_string_nodup(idmef_data_t *data, unsigned char *ptr, size_t len) { return idmef_data_set_ptr_nodup_fast(data, IDMEF_DATA_TYPE_BYTE_STRING, ptr, len); } int idmef_data_compare(const idmef_data_t *data1, const idmef_data_t *data2) { if ( ! data1 && ! data2 ) return 0; else if ( ! data1 || ! data2 ) return (data1) ? 1 : -1; else if ( data1->len != data2->len ) return (data1->len > data2->len) ? 1 : -1; else if ( data1->type != data2->type ) return -1; if ( data1->type == IDMEF_DATA_TYPE_TIME ) return idmef_time_compare(data1->data.ro_data, data2->data.ro_data); else if ( data1->type == IDMEF_DATA_TYPE_CHAR_STRING || data1->type == IDMEF_DATA_TYPE_BYTE_STRING ) return memcmp(data1->data.ro_data, data2->data.ro_data, data1->len); else return memcmp(&data1->data.char_data, &data2->data.char_data, data1->len); } libprelude-5.2.0/src/PaxHeaders.14770/idmef-message-helpers.c0000644000000000000000000000011013726163410021744 xustar000000000000000024 mtime=1599661832.669 24 atime=1599661832.777 24 ctime=1599661999.843 libprelude-5.2.0/src/idmef-message-helpers.c0000644000000000000000000002074513726163410020757 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include #include #include "prelude.h" #include "idmef-message-helpers.h" /** * idmef_message_set_value: * @message: Pointer to an #idmef_message_t object. * @path: Path to be set within @message. * @value: Value to associate @message[@path] with. * * This function will set the @path member within @message to the * provided @value. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_message_set_value(idmef_message_t *message, const char *path, idmef_value_t *value) { int ret; idmef_path_t *ip; ret = idmef_path_new_fast(&ip, path); if ( ret < 0 ) return ret; ret = idmef_path_set(ip, message, value); idmef_path_destroy(ip); return ret; } /** * idmef_message_get_value: * @message: Pointer to an #idmef_message_t object. * @path: Path to retrieve the value from within @message. * @value: Pointer where the result should be stored. * * Retrieve the value stored within @path of @message and store it * in the user provided @value. * * Returns: A positive value in case @path was successfully retrieved * 0 if the path is empty, or a negative value if an error occured. */ int idmef_message_get_value(idmef_message_t *message, const char *path, idmef_value_t **value) { int ret; idmef_path_t *ip; ret = idmef_path_new_fast(&ip, path); if ( ret < 0 ) return ret; ret = idmef_path_get(ip, message, value); idmef_path_destroy(ip); return ret; } /** * idmef_message_set_string: * @message: Pointer to an #idmef_message_t object. * @path: Path to be set within @message. * @value: Value to associate @message[@path] with. * * This function will set the @path member within @message to the * provided @value, which will be converted to the corresponding * @path value type. * * Example: * idmef_message_set_string(message, "alert.classification.text", "MyText"); * idmef_message_set_string(message, "alert.source(0).service.port", "1024"); * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_message_set_string(idmef_message_t *message, const char *path, const char *value) { int ret; idmef_value_t *iv; prelude_string_t *str; ret = prelude_string_new_dup(&str, value); if ( ret < 0 ) return ret; ret = idmef_value_new_string(&iv, str); if ( ret < 0 ) { prelude_string_destroy(str); return ret; } ret = idmef_message_set_value(message, path, iv); idmef_value_destroy(iv); return ret; } /** * idmef_message_get_string: * @message: Pointer to an #idmef_message_t object. * @path: Path to retrieve the string from within @message. * @result: Pointer where the result should be stored. * * Retrieve the string stored within @path of @message and store it * in the user provided @result. * * The caller is responssible for freeing @result. * * Returns: A positive value in case @path was successfully retrieved * 0 if the path is empty, or a negative value if an error occured. */ int idmef_message_get_string(idmef_message_t *message, const char *path, char **result) { int ret; idmef_value_t *iv; prelude_string_t *str; ret = idmef_message_get_value(message, path, &iv); if ( ret <= 0 ) return ret; if ( idmef_value_get_type(iv) != IDMEF_VALUE_TYPE_STRING ) { ret = _idmef_value_cast(iv, IDMEF_VALUE_TYPE_STRING, 0); if ( ret < 0 ) goto err; } if ( ! (str = idmef_value_get_string(iv)) ) { ret = -1; goto err; } if ( prelude_string_is_empty(str) ) { *result = NULL; return 0; } *result = strdup(prelude_string_get_string(str)); ret = prelude_string_get_len(str); err: idmef_value_destroy(iv); return ret; } /** * idmef_message_set_number: * @message: Pointer to an #idmef_message_t object. * @path: Path to be set within @message. * @number: Value to associate @message[@path] with. * * This function will set the @path member within @message to the * provided @value, which will be converted to the @path value type. * * Example: * idmef_message_set_number(message, "alert.assessment.confidence.confidence", 0.123456); * idmef_message_set_number(message, "alert.source(0).service.port", 1024); * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_message_set_number(idmef_message_t *message, const char *path, double number) { int ret; idmef_value_t *iv; ret = idmef_value_new_double(&iv, number); if ( ret < 0 ) return ret; ret = idmef_message_set_value(message, path, iv); idmef_value_destroy(iv); return ret; } /** * idmef_message_get_number: * @message: Pointer to an #idmef_message_t object. * @path: Path to retrieve the number from within @message. * @result: Pointer where the result should be stored. * * Retrieve the number stored within @path of @message and store it * in the user provided @result. * * Returns: A positive value in case @path was successfully retrieved * 0 if the path is empty, or a negative value if an error occured. */ int idmef_message_get_number(idmef_message_t *message, const char *path, double *result) { int ret; idmef_value_t *iv; ret = idmef_message_get_value(message, path, &iv); if ( ret <= 0 ) return ret; if ( idmef_value_get_type(iv) != IDMEF_VALUE_TYPE_DOUBLE ) { ret = _idmef_value_cast(iv, IDMEF_VALUE_TYPE_DOUBLE, 0); if ( ret < 0 ) goto err; } ret = 1; *result = idmef_value_get_double(iv); err: idmef_value_destroy(iv); return ret; } /** * idmef_message_set_data: * @message: Pointer to an #idmef_message_t object. * @path: Path to be set within @message. * @data: Pointer to data to associate @message[@path] with. * @size: Size of the data pointed to by @data. * * This function will set the @path member within @message to the * provided @data of size @size. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_message_set_data(idmef_message_t *message, const char *path, const unsigned char *data, size_t size) { int ret; idmef_data_t *id; idmef_value_t *iv; ret = idmef_data_new_byte_string_dup(&id, data, size); if ( ret < 0 ) return ret; ret = idmef_value_new_data(&iv, id); if ( ret < 0 ) { idmef_data_destroy(id); return ret; } ret = idmef_message_set_value(message, path, iv); idmef_value_destroy(iv); return ret; } int idmef_message_get_data(idmef_message_t *message, const char *path, unsigned char **data, size_t *size) { int ret; idmef_data_t *dp; idmef_value_t *iv; ret = idmef_message_get_value(message, path, &iv); if ( ret <= 0 ) return ret; if ( idmef_value_get_type(iv) != IDMEF_VALUE_TYPE_DATA || ! (dp = idmef_value_get_data(iv)) ) { ret = -1; goto err; } *size = idmef_data_get_len(dp); *data = malloc(*size); if ( ! *data ) { ret = -1; goto err; } memcpy(*data, idmef_data_get_data(dp), *size); err: idmef_value_destroy(iv); return ret; } libprelude-5.2.0/src/PaxHeaders.14770/idmef-message-read-json.c0000644000000000000000000000011013726163410022164 xustar000000000000000024 mtime=1599661832.672 24 atime=1599661832.778 24 ctime=1599661999.845 libprelude-5.2.0/src/idmef-message-read-json.c0000644000000000000000000045615213726163410021204 0ustar00rootroot00000000000000 /***** * * Copyright (C) 2016-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* Auto-generated by the GenerateIDMEFMessageReadJSONC package */ #include "config.h" #include #include #include #include #include "prelude-error.h" #include "prelude-inttypes.h" #include "prelude-list.h" #include "prelude-extract.h" #include "prelude-io.h" #include "idmef-message-id.h" #include "idmef.h" #include "idmef-tree-wrap.h" #include "common.h" #define JSMN_PARENT_LINKS #include "jsmn/jsmn.h" #include "jsmn/jsmn.c" #ifndef MIN # define MIN(x, y) ((x) < (y) ? (x) : (y)) #endif typedef struct { const char *input; jsmntok_t jtok[1024]; int jtoksize; unsigned int idx; } json_data_t; static int idmef_linkage_read_json(idmef_linkage_t *linkage, json_data_t *ctrl); static const char *jsmn_type_to_string(int type) { switch(type) { case JSMN_STRING: return "string"; case JSMN_PRIMITIVE: return "primitive"; case JSMN_OBJECT: return "object"; case JSMN_ARRAY: return "array"; default: return "unknown"; } } static int unescape_string(prelude_string_t *out, const char *in, size_t size) { int ret; const char *end = in + size; for ( ; in < end; in++ ) { if ( *in != '\\' ) { ret = prelude_string_ncat(out, in, 1); continue; } in++; switch(*in) { case '"': case '/': case '\\': ret = prelude_string_ncat(out, in, 1); break; case 'b': ret = prelude_string_ncat(out, "\b", 1); break; case 't': ret = prelude_string_ncat(out, "\t", 1); break; case 'n': ret = prelude_string_ncat(out, "\n", 1); break; case 'f': ret = prelude_string_ncat(out, "\f", 1); break; case 'r': ret = prelude_string_ncat(out, "\r", 1); break; case 'u': { ret = prelude_unicode_to_string(out, in - 2, end - (in - 2)); if ( ret < 0 ) return ret; in += ret - 1; break; } default: ret = prelude_string_ncat(out, in, 1); break; } if ( ret < 0 ) return ret; } return 0; } static int __get_float(json_data_t *ctrl, float *value) { char *end = NULL; jsmntok_t *j = &ctrl->jtok[ctrl->idx]; size_t len = j->end - j->start; const char *str = ctrl->input + j->start; *value = strtof(ctrl->input + j->start, &end); if ( end != (str + len) ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error decoding to real"); return 0; } static int __get_integer(json_data_t *ctrl, int64_t *out) { char *end = NULL; jsmntok_t *j = &ctrl->jtok[ctrl->idx]; size_t len = j->end - j->start; const char *str = ctrl->input + j->start; if ( j->type != JSMN_PRIMITIVE ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON integer got '%s'", jsmn_type_to_string(j->type)); *out = strtoll(ctrl->input + j->start, &end, 10); if ( end != (str + len) ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error decoding to integer"); return 0; } static int __get_string_copy(json_data_t *ctrl, unsigned int idx, char *out, size_t size) { size_t insize; jsmntok_t *j = &ctrl->jtok[idx]; const char *input = ctrl->input + j->start; insize = j->end - j->start; if ( insize == 0 ) { *out = '\0'; return 0; } else if ( insize >= size ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "buffer is too small"); strncpy(out, input, MIN(size, j->end - j->start)); out[j->end - j->start] = 0; return 0; } static int __get_string(json_data_t *ctrl, prelude_string_t *out) { jsmntok_t *j = &ctrl->jtok[ctrl->idx]; const char *input = ctrl->input + j->start; if ( j->type != JSMN_STRING ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "JSON value is not string : %s", jsmn_type_to_string(j->type)); if ( j->end - j->start == 0 ) return 0; return unescape_string(out, input, j->end - j->start); } static int jsoneq(json_data_t *data, jsmntok_t *tok, const char *wanted) { size_t size = tok->end - tok->start; const char *start = data->input + tok->start; if ( tok->type == JSMN_STRING && strlen(wanted) == size && strncmp(start, wanted, size) == 0) return 0; return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "jsoneq failed"); } static int __get_json_key(json_data_t *ctrl, const char *wanted, unsigned int sidx) { unsigned int i; for ( i = 0; i < ctrl->jtok[sidx].size * 2; i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[sidx + i], wanted) == 0 ) return i; } return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "failed to get json key '%s'", wanted); } /** * idmef_additional_data_read: * @additional_data: Pointer to a #idmef_additional_data_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_additional_data from the @json message, and * store it into @additional_data. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_additional_data_read_json(idmef_additional_data_t *additional_data, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; unsigned int obj_idx = ctrl->idx; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "meaning") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_additional_data_new_meaning(additional_data, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "type") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_additional_data_type_to_numeric(buf); if ( ret != -1 ) idmef_additional_data_set_type(additional_data, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "data") == 0 ) { ctrl->idx++; int ret; char buf[128]; idmef_data_t *data; idmef_additional_data_type_t type; ret = __get_json_key(ctrl, "type", obj_idx); if ( ret < 0 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "type argument required for additional data object"); ret = __get_string_copy(ctrl, obj_idx + ret + 1, buf, sizeof(buf)); if ( ret < 0 ) return ret; type = idmef_additional_data_type_to_numeric(buf); if ( type < 0 ) return type; ret = idmef_additional_data_new_data(additional_data, &data); if ( ret < 0 ) return ret; switch(type) { case IDMEF_ADDITIONAL_DATA_TYPE_REAL: { float val; ret = __get_float(ctrl, &val); if ( ret < 0 ) return ret; idmef_data_set_float(data, val); break; } case IDMEF_ADDITIONAL_DATA_TYPE_BYTE: case IDMEF_ADDITIONAL_DATA_TYPE_BOOLEAN: case IDMEF_ADDITIONAL_DATA_TYPE_NTPSTAMP: case IDMEF_ADDITIONAL_DATA_TYPE_INTEGER: { int ret; int64_t val; ret = __get_integer(ctrl, &val); if ( ret < 0 ) return ret; idmef_data_set_int(data, val); break; } case IDMEF_ADDITIONAL_DATA_TYPE_DATE_TIME: { idmef_time_t *time; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_time_new_from_string(&time, buf); if ( ret < 0 ) return ret; idmef_data_set_time(data, time); break; } case IDMEF_ADDITIONAL_DATA_TYPE_STRING: case IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING: case IDMEF_ADDITIONAL_DATA_TYPE_CHARACTER: case IDMEF_ADDITIONAL_DATA_TYPE_PORTLIST: case IDMEF_ADDITIONAL_DATA_TYPE_XML: { prelude_string_t *str; ret = prelude_string_new(&str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) { prelude_string_destroy(str); return ret; } if ( type == IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING ) ret = idmef_data_set_byte_string_dup(data, (const unsigned char *) prelude_string_get_string(str), prelude_string_get_len(str)); else ret = idmef_data_set_char_string_dup_fast(data, prelude_string_get_string(str), prelude_string_get_len(str)); prelude_string_destroy(str); break; } default: return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unhandled IDMEF additional data type"); ; } } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading additional_data", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_reference_read: * @reference: Pointer to a #idmef_reference_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_reference from the @json message, and * store it into @reference. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_reference_read_json(idmef_reference_t *reference, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "origin") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_reference_origin_to_numeric(buf); if ( ret != -1 ) idmef_reference_set_origin(reference, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_reference_new_name(reference, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "url") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_reference_new_url(reference, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "meaning") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_reference_new_meaning(reference, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading reference", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_classification_read: * @classification: Pointer to a #idmef_classification_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_classification from the @json message, and * store it into @classification. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_classification_read_json(idmef_classification_t *classification, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "ident") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_classification_new_ident(classification, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "text") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_classification_new_text(classification, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "reference") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_reference_t *reference; ret = idmef_classification_new_reference(classification, &reference, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_reference_read_json(reference, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading classification", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_user_id_read: * @user_id: Pointer to a #idmef_user_id_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_user_id from the @json message, and * store it into @user_id. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_user_id_read_json(idmef_user_id_t *user_id, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "ident") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_user_id_new_ident(user_id, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "type") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_user_id_type_to_numeric(buf); if ( ret != -1 ) idmef_user_id_set_type(user_id, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "tty") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_user_id_new_tty(user_id, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_user_id_new_name(user_id, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "number") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_user_id_set_number(user_id, out); } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading user_id", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_user_read: * @user: Pointer to a #idmef_user_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_user from the @json message, and * store it into @user. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_user_read_json(idmef_user_t *user, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "ident") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_user_new_ident(user, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "category") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_user_category_to_numeric(buf); if ( ret != -1 ) idmef_user_set_category(user, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "user_id") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_user_id_t *user_id; ret = idmef_user_new_user_id(user, &user_id, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_user_id_read_json(user_id, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading user", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_address_read: * @address: Pointer to a #idmef_address_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_address from the @json message, and * store it into @address. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_address_read_json(idmef_address_t *address, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "ident") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_address_new_ident(address, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "category") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_address_category_to_numeric(buf); if ( ret != -1 ) idmef_address_set_category(address, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "vlan_name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_address_new_vlan_name(address, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "vlan_num") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_address_set_vlan_num(address, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "address") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_address_new_address(address, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "netmask") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_address_new_netmask(address, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading address", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_process_read: * @process: Pointer to a #idmef_process_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_process from the @json message, and * store it into @process. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_process_read_json(idmef_process_t *process, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "ident") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_process_new_ident(process, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_process_new_name(process, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "pid") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_process_set_pid(process, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "path") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_process_new_path(process, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "arg") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; prelude_string_t *str; ret = idmef_process_new_arg(process, &str, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; ctrl->idx += 1; } ctrl->idx -= 1; } } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "env") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; prelude_string_t *str; ret = idmef_process_new_env(process, &str, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; ctrl->idx += 1; } ctrl->idx -= 1; } } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading process", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_web_service_read: * @web_service: Pointer to a #idmef_web_service_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_web_service from the @json message, and * store it into @web_service. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_web_service_read_json(idmef_web_service_t *web_service, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "url") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_web_service_new_url(web_service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "cgi") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_web_service_new_cgi(web_service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "http_method") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_web_service_new_http_method(web_service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "arg") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; prelude_string_t *str; ret = idmef_web_service_new_arg(web_service, &str, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; ctrl->idx += 1; } ctrl->idx -= 1; } } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading web_service", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_snmp_service_read: * @snmp_service: Pointer to a #idmef_snmp_service_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_snmp_service from the @json message, and * store it into @snmp_service. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_snmp_service_read_json(idmef_snmp_service_t *snmp_service, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "oid") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_snmp_service_new_oid(snmp_service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "message_processing_model") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_snmp_service_set_message_processing_model(snmp_service, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "security_model") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_snmp_service_set_security_model(snmp_service, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "security_name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_snmp_service_new_security_name(snmp_service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "security_level") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_snmp_service_set_security_level(snmp_service, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "context_name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_snmp_service_new_context_name(snmp_service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "context_engine_id") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_snmp_service_new_context_engine_id(snmp_service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "command") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_snmp_service_new_command(snmp_service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading snmp_service", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_service_read: * @service: Pointer to a #idmef_service_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_service from the @json message, and * store it into @service. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_service_read_json(idmef_service_t *service, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "ident") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_service_new_ident(service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "ip_version") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_service_set_ip_version(service, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "iana_protocol_number") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_service_set_iana_protocol_number(service, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "iana_protocol_name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_service_new_iana_protocol_name(service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_service_new_name(service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "port") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_service_set_port(service, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "portlist") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_service_new_portlist(service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "protocol") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_service_new_protocol(service, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "web_service") == 0){ ctrl->idx++; int ret; idmef_web_service_t *web_service; ret = idmef_service_new_web_service(service, &web_service); if ( ret < 0 ) return ret; ret = idmef_web_service_read_json(web_service, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "snmp_service") == 0){ ctrl->idx++; int ret; idmef_snmp_service_t *snmp_service; ret = idmef_service_new_snmp_service(service, &snmp_service); if ( ret < 0 ) return ret; ret = idmef_snmp_service_read_json(snmp_service, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading service", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_node_read: * @node: Pointer to a #idmef_node_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_node from the @json message, and * store it into @node. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_node_read_json(idmef_node_t *node, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "ident") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_node_new_ident(node, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "category") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_node_category_to_numeric(buf); if ( ret != -1 ) idmef_node_set_category(node, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_node_new_name(node, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "location") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_node_new_location(node, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "address") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_address_t *address; ret = idmef_node_new_address(node, &address, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_address_read_json(address, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading node", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_source_read: * @source: Pointer to a #idmef_source_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_source from the @json message, and * store it into @source. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_source_read_json(idmef_source_t *source, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "ident") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_source_new_ident(source, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "spoofed") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_source_spoofed_to_numeric(buf); if ( ret != -1 ) idmef_source_set_spoofed(source, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "interface") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_source_new_interface(source, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "node") == 0 ) { ctrl->idx++; int ret; idmef_node_t *node; ret = idmef_source_new_node(source, &node); if ( ret < 0 ) return ret; ret = idmef_node_read_json(node, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "user") == 0 ) { ctrl->idx++; int ret; idmef_user_t *user; ret = idmef_source_new_user(source, &user); if ( ret < 0 ) return ret; ret = idmef_user_read_json(user, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "process") == 0 ) { ctrl->idx++; int ret; idmef_process_t *process; ret = idmef_source_new_process(source, &process); if ( ret < 0 ) return ret; ret = idmef_process_read_json(process, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "service") == 0 ) { ctrl->idx++; int ret; idmef_service_t *service; ret = idmef_source_new_service(source, &service); if ( ret < 0 ) return ret; ret = idmef_service_read_json(service, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading source", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_file_access_read: * @file_access: Pointer to a #idmef_file_access_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_file_access from the @json message, and * store it into @file_access. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_file_access_read_json(idmef_file_access_t *file_access, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "user_id") == 0 ) { ctrl->idx++; int ret; idmef_user_id_t *user_id; ret = idmef_file_access_new_user_id(file_access, &user_id); if ( ret < 0 ) return ret; ret = idmef_user_id_read_json(user_id, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "permission") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; prelude_string_t *str; ret = idmef_file_access_new_permission(file_access, &str, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; ctrl->idx += 1; } ctrl->idx -= 1; } } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading file_access", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_inode_read: * @inode: Pointer to a #idmef_inode_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_inode from the @json message, and * store it into @inode. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_inode_read_json(idmef_inode_t *inode, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "change_time") == 0 ) { ctrl->idx++; int ret; char buf[128]; idmef_time_t *time; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_time_new_from_string(&time, buf); if (ret < 0) return ret; idmef_inode_set_change_time(inode, time); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "number") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_inode_set_number(inode, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "major_device") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_inode_set_major_device(inode, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "minor_device") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_inode_set_minor_device(inode, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "c_major_device") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_inode_set_c_major_device(inode, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "c_minor_device") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_inode_set_c_minor_device(inode, out); } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading inode", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_checksum_read: * @checksum: Pointer to a #idmef_checksum_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_checksum from the @json message, and * store it into @checksum. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_checksum_read_json(idmef_checksum_t *checksum, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "value") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_checksum_new_value(checksum, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "key") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_checksum_new_key(checksum, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "algorithm") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_checksum_algorithm_to_numeric(buf); if ( ret != -1 ) idmef_checksum_set_algorithm(checksum, ret); } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading checksum", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_file_read: * @file: Pointer to a #idmef_file_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_file from the @json message, and * store it into @file. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_file_read_json(idmef_file_t *file, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "ident") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_file_new_ident(file, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_file_new_name(file, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "path") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_file_new_path(file, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "create_time") == 0 ) { ctrl->idx++; int ret; char buf[128]; idmef_time_t *time; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_time_new_from_string(&time, buf); if (ret < 0) return ret; idmef_file_set_create_time(file, time); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "modify_time") == 0 ) { ctrl->idx++; int ret; char buf[128]; idmef_time_t *time; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_time_new_from_string(&time, buf); if (ret < 0) return ret; idmef_file_set_modify_time(file, time); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "access_time") == 0 ) { ctrl->idx++; int ret; char buf[128]; idmef_time_t *time; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_time_new_from_string(&time, buf); if (ret < 0) return ret; idmef_file_set_access_time(file, time); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "data_size") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_file_set_data_size(file, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "disk_size") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_file_set_disk_size(file, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "file_access") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_file_access_t *file_access; ret = idmef_file_new_file_access(file, &file_access, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_file_access_read_json(file_access, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "linkage") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_linkage_t *linkage; ret = idmef_file_new_linkage(file, &linkage, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_linkage_read_json(linkage, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "inode") == 0 ) { ctrl->idx++; int ret; idmef_inode_t *inode; ret = idmef_file_new_inode(file, &inode); if ( ret < 0 ) return ret; ret = idmef_inode_read_json(inode, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "checksum") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_checksum_t *checksum; ret = idmef_file_new_checksum(file, &checksum, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_checksum_read_json(checksum, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "category") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_file_category_to_numeric(buf); if ( ret != -1 ) idmef_file_set_category(file, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "fstype") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_file_fstype_to_numeric(buf); if ( ret != -1 ) idmef_file_set_fstype(file, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "file_type") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_file_new_file_type(file, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading file", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_linkage_read: * @linkage: Pointer to a #idmef_linkage_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_linkage from the @json message, and * store it into @linkage. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_linkage_read_json(idmef_linkage_t *linkage, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "category") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_linkage_category_to_numeric(buf); if ( ret != -1 ) idmef_linkage_set_category(linkage, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_linkage_new_name(linkage, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "path") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_linkage_new_path(linkage, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "file") == 0 ) { ctrl->idx++; int ret; idmef_file_t *file; ret = idmef_linkage_new_file(linkage, &file); if ( ret < 0 ) return ret; ret = idmef_file_read_json(file, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading linkage", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_target_read: * @target: Pointer to a #idmef_target_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_target from the @json message, and * store it into @target. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_target_read_json(idmef_target_t *target, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "ident") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_target_new_ident(target, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "decoy") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_target_decoy_to_numeric(buf); if ( ret != -1 ) idmef_target_set_decoy(target, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "interface") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_target_new_interface(target, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "node") == 0 ) { ctrl->idx++; int ret; idmef_node_t *node; ret = idmef_target_new_node(target, &node); if ( ret < 0 ) return ret; ret = idmef_node_read_json(node, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "user") == 0 ) { ctrl->idx++; int ret; idmef_user_t *user; ret = idmef_target_new_user(target, &user); if ( ret < 0 ) return ret; ret = idmef_user_read_json(user, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "process") == 0 ) { ctrl->idx++; int ret; idmef_process_t *process; ret = idmef_target_new_process(target, &process); if ( ret < 0 ) return ret; ret = idmef_process_read_json(process, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "service") == 0 ) { ctrl->idx++; int ret; idmef_service_t *service; ret = idmef_target_new_service(target, &service); if ( ret < 0 ) return ret; ret = idmef_service_read_json(service, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "file") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_file_t *file; ret = idmef_target_new_file(target, &file, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_file_read_json(file, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading target", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_analyzer_read: * @analyzer: Pointer to a #idmef_analyzer_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_analyzer from the @json message, and * store it into @analyzer. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_analyzer_read_json(idmef_analyzer_t *analyzer, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "analyzerid") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_analyzer_new_analyzerid(analyzer, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_analyzer_new_name(analyzer, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "manufacturer") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_analyzer_new_manufacturer(analyzer, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "model") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_analyzer_new_model(analyzer, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "version") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_analyzer_new_version(analyzer, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "class") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_analyzer_new_class(analyzer, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "ostype") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_analyzer_new_ostype(analyzer, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "osversion") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_analyzer_new_osversion(analyzer, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "node") == 0 ) { ctrl->idx++; int ret; idmef_node_t *node; ret = idmef_analyzer_new_node(analyzer, &node); if ( ret < 0 ) return ret; ret = idmef_node_read_json(node, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "process") == 0 ) { ctrl->idx++; int ret; idmef_process_t *process; ret = idmef_analyzer_new_process(analyzer, &process); if ( ret < 0 ) return ret; ret = idmef_process_read_json(process, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading analyzer", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_alertident_read: * @alertident: Pointer to a #idmef_alertident_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_alertident from the @json message, and * store it into @alertident. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_alertident_read_json(idmef_alertident_t *alertident, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "alertident") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_alertident_new_alertident(alertident, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "analyzerid") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_alertident_new_analyzerid(alertident, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading alertident", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_impact_read: * @impact: Pointer to a #idmef_impact_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_impact from the @json message, and * store it into @impact. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_impact_read_json(idmef_impact_t *impact, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "severity") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_impact_severity_to_numeric(buf); if ( ret != -1 ) idmef_impact_set_severity(impact, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "completion") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_impact_completion_to_numeric(buf); if ( ret != -1 ) idmef_impact_set_completion(impact, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "type") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_impact_type_to_numeric(buf); if ( ret != -1 ) idmef_impact_set_type(impact, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "description") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_impact_new_description(impact, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading impact", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_action_read: * @action: Pointer to a #idmef_action_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_action from the @json message, and * store it into @action. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_action_read_json(idmef_action_t *action, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "category") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_action_category_to_numeric(buf); if ( ret != -1 ) idmef_action_set_category(action, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "description") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_action_new_description(action, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading action", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_confidence_read: * @confidence: Pointer to a #idmef_confidence_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_confidence from the @json message, and * store it into @confidence. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_confidence_read_json(idmef_confidence_t *confidence, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "rating") == 0 ) { ctrl->idx++; int ret; char buf[128]; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_confidence_rating_to_numeric(buf); if ( ret != -1 ) idmef_confidence_set_rating(confidence, ret); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "confidence") == 0 ) { ctrl->idx++; int ret; float *value; ret = idmef_confidence_new_confidence(confidence, &value); if ( ret < 0 ) return ret; ret = __get_float(ctrl, value); if ( ret < 0 ) return ret; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading confidence", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_assessment_read: * @assessment: Pointer to a #idmef_assessment_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_assessment from the @json message, and * store it into @assessment. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_assessment_read_json(idmef_assessment_t *assessment, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "impact") == 0 ) { ctrl->idx++; int ret; idmef_impact_t *impact; ret = idmef_assessment_new_impact(assessment, &impact); if ( ret < 0 ) return ret; ret = idmef_impact_read_json(impact, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "action") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_action_t *action; ret = idmef_assessment_new_action(assessment, &action, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_action_read_json(action, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "confidence") == 0 ) { ctrl->idx++; int ret; idmef_confidence_t *confidence; ret = idmef_assessment_new_confidence(assessment, &confidence); if ( ret < 0 ) return ret; ret = idmef_confidence_read_json(confidence, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading assessment", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_tool_alert_read: * @tool_alert: Pointer to a #idmef_tool_alert_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_tool_alert from the @json message, and * store it into @tool_alert. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_tool_alert_read_json(idmef_tool_alert_t *tool_alert, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_tool_alert_new_name(tool_alert, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "command") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_tool_alert_new_command(tool_alert, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "alertident") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_alertident_t *alertident; ret = idmef_tool_alert_new_alertident(tool_alert, &alertident, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_alertident_read_json(alertident, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading tool_alert", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_correlation_alert_read: * @correlation_alert: Pointer to a #idmef_correlation_alert_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_correlation_alert from the @json message, and * store it into @correlation_alert. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_correlation_alert_read_json(idmef_correlation_alert_t *correlation_alert, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "name") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_correlation_alert_new_name(correlation_alert, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "alertident") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_alertident_t *alertident; ret = idmef_correlation_alert_new_alertident(correlation_alert, &alertident, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_alertident_read_json(alertident, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading correlation_alert", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_overflow_alert_read: * @overflow_alert: Pointer to a #idmef_overflow_alert_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_overflow_alert from the @json message, and * store it into @overflow_alert. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_overflow_alert_read_json(idmef_overflow_alert_t *overflow_alert, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "program") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_overflow_alert_new_program(overflow_alert, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "size") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_overflow_alert_set_size(overflow_alert, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "buffer") == 0 ) { ctrl->idx++; int ret; idmef_data_t *data; prelude_string_t *str; ret = idmef_overflow_alert_new_buffer(overflow_alert, &data); if ( ret < 0 ) return ret; ret = prelude_string_new(&str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) { prelude_string_destroy(str); return ret; } ret = idmef_data_set_byte_string_dup(data, (const unsigned char *) prelude_string_get_string(str), prelude_string_get_len(str)); prelude_string_destroy(str); } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading overflow_alert", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_alert_read: * @alert: Pointer to a #idmef_alert_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_alert from the @json message, and * store it into @alert. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_alert_read_json(idmef_alert_t *alert, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "messageid") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_alert_new_messageid(alert, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "analyzer") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_analyzer_t *analyzer; ret = idmef_alert_new_analyzer(alert, &analyzer, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_analyzer_read_json(analyzer, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "create_time") == 0 ) { ctrl->idx++; int ret; char buf[128]; idmef_time_t *time; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_time_new_from_string(&time, buf); if (ret < 0) return ret; idmef_alert_set_create_time(alert, time); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "classification") == 0 ) { ctrl->idx++; int ret; idmef_classification_t *classification; ret = idmef_alert_new_classification(alert, &classification); if ( ret < 0 ) return ret; ret = idmef_classification_read_json(classification, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "detect_time") == 0 ) { ctrl->idx++; int ret; char buf[128]; idmef_time_t *time; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_time_new_from_string(&time, buf); if (ret < 0) return ret; idmef_alert_set_detect_time(alert, time); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "analyzer_time") == 0 ) { ctrl->idx++; int ret; char buf[128]; idmef_time_t *time; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_time_new_from_string(&time, buf); if (ret < 0) return ret; idmef_alert_set_analyzer_time(alert, time); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "source") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_source_t *source; ret = idmef_alert_new_source(alert, &source, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_source_read_json(source, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "target") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_target_t *target; ret = idmef_alert_new_target(alert, &target, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_target_read_json(target, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "assessment") == 0 ) { ctrl->idx++; int ret; idmef_assessment_t *assessment; ret = idmef_alert_new_assessment(alert, &assessment); if ( ret < 0 ) return ret; ret = idmef_assessment_read_json(assessment, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "additional_data") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_additional_data_t *additional_data; ret = idmef_alert_new_additional_data(alert, &additional_data, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_additional_data_read_json(additional_data, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "tool_alert") == 0){ ctrl->idx++; int ret; idmef_tool_alert_t *tool_alert; ret = idmef_alert_new_tool_alert(alert, &tool_alert); if ( ret < 0 ) return ret; ret = idmef_tool_alert_read_json(tool_alert, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "correlation_alert") == 0){ ctrl->idx++; int ret; idmef_correlation_alert_t *correlation_alert; ret = idmef_alert_new_correlation_alert(alert, &correlation_alert); if ( ret < 0 ) return ret; ret = idmef_correlation_alert_read_json(correlation_alert, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "overflow_alert") == 0){ ctrl->idx++; int ret; idmef_overflow_alert_t *overflow_alert; ret = idmef_alert_new_overflow_alert(alert, &overflow_alert); if ( ret < 0 ) return ret; ret = idmef_overflow_alert_read_json(overflow_alert, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading alert", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_heartbeat_read: * @heartbeat: Pointer to a #idmef_heartbeat_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_heartbeat from the @json message, and * store it into @heartbeat. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_heartbeat_read_json(idmef_heartbeat_t *heartbeat, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "messageid") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_heartbeat_new_messageid(heartbeat, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "analyzer") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_analyzer_t *analyzer; ret = idmef_heartbeat_new_analyzer(heartbeat, &analyzer, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_analyzer_read_json(analyzer, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "create_time") == 0 ) { ctrl->idx++; int ret; char buf[128]; idmef_time_t *time; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_time_new_from_string(&time, buf); if (ret < 0) return ret; idmef_heartbeat_set_create_time(heartbeat, time); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "analyzer_time") == 0 ) { ctrl->idx++; int ret; char buf[128]; idmef_time_t *time; ret = __get_string_copy(ctrl, ctrl->idx, buf, sizeof(buf)); if ( ret < 0 ) return ret; ret = idmef_time_new_from_string(&time, buf); if (ret < 0) return ret; idmef_heartbeat_set_analyzer_time(heartbeat, time); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "heartbeat_interval") == 0 ) { ctrl->idx++; int ret; int64_t out; ret = __get_integer(ctrl, &out); if ( ret < 0 ) return ret; idmef_heartbeat_set_heartbeat_interval(heartbeat, out); } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "additional_data") == 0 ) { ctrl->idx++; if ( ctrl->jtok[ctrl->idx].type == JSMN_ARRAY) { size_t lsize = ctrl->jtok[ctrl->idx].size; ctrl->idx += 1; for ( unsigned int j = 0; j < lsize; j++ ) { int ret; idmef_additional_data_t *additional_data; ret = idmef_heartbeat_new_additional_data(heartbeat, &additional_data, IDMEF_LIST_APPEND); if ( ret < 0 ) return ret; ret = idmef_additional_data_read_json(additional_data, ctrl); if ( ret < 0 ) return ret; } ctrl->idx -= 1; } } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading heartbeat", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } /** * idmef_message_read: * @message: Pointer to a #idmef_message_t object. * @json: Pointer to a #json_t object, containing a message. * * Read an idmef_message from the @json message, and * store it into @message. * * Returns: 0 on success, a negative value if an error occured. */ static int idmef_message_read_json(idmef_message_t *message, json_data_t *ctrl) { unsigned int i = 0; size_t size = ctrl->jtok[ctrl->idx].size; if ( ctrl->jtok[ctrl->idx].type != JSMN_OBJECT ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "expected JSON object got '%s'", jsmn_type_to_string(ctrl->jtok[ctrl->idx].type)); for ( ctrl->idx += 1; i < size && ctrl->idx < ctrl->jtoksize; ctrl->idx++, i++ ) { if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "_self") == 0 ) { ctrl->idx++; continue; } if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "version") == 0 ) { ctrl->idx++; int ret; prelude_string_t *str; ret = idmef_message_new_version(message, &str); if ( ret < 0 ) return ret; ret = __get_string(ctrl, str); if ( ret < 0 ) return ret; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "alert") == 0){ ctrl->idx++; int ret; idmef_alert_t *alert; ret = idmef_message_new_alert(message, &alert); if ( ret < 0 ) return ret; ret = idmef_alert_read_json(alert, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else if ( jsoneq(ctrl, &ctrl->jtok[ctrl->idx], "heartbeat") == 0){ ctrl->idx++; int ret; idmef_heartbeat_t *heartbeat; ret = idmef_message_new_heartbeat(message, &heartbeat); if ( ret < 0 ) return ret; ret = idmef_heartbeat_read_json(heartbeat, ctrl); if ( ret < 0 ) return ret; ctrl->idx -= 1; } else { return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unexpected field '%.*s' while reading message", ctrl->jtok[ctrl->idx].end - ctrl->jtok[ctrl->idx].start, ctrl->input + ctrl->jtok[ctrl->idx].start); } } return 0; } int idmef_object_new_from_json(idmef_object_t **object, const char *json_message) { int ret, selfkey; jsmn_parser parser; json_data_t ctrl; jsmn_init(&parser); ctrl.idx = 0; ctrl.input = json_message; ret = ctrl.jtoksize = jsmn_parse(&parser, json_message, strlen(json_message), ctrl.jtok, sizeof(ctrl.jtok) / sizeof(*ctrl.jtok)); if ( ret < 0 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "JSON parser error"); selfkey = __get_json_key(&ctrl, "_self", 0); if ( selfkey < 0 ) { ret = idmef_message_new((idmef_message_t **) object); if ( ret < 0 ) return ret; ret = idmef_message_read_json(*(idmef_message_t **) object, &ctrl); if ( ret < 0 ) { idmef_message_destroy(*(idmef_message_t **) object); return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "json message miss '_self' attribute and is not a complete message"); } return ret; } if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_additional_data_t") == 0 ) { ret = idmef_additional_data_new((idmef_additional_data_t **) object); if ( ret < 0 ) return ret; ret = idmef_additional_data_read_json((idmef_additional_data_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_classification_t") == 0 ) { ret = idmef_classification_new((idmef_classification_t **) object); if ( ret < 0 ) return ret; ret = idmef_classification_read_json((idmef_classification_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_user_id_t") == 0 ) { ret = idmef_user_id_new((idmef_user_id_t **) object); if ( ret < 0 ) return ret; ret = idmef_user_id_read_json((idmef_user_id_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_user_t") == 0 ) { ret = idmef_user_new((idmef_user_t **) object); if ( ret < 0 ) return ret; ret = idmef_user_read_json((idmef_user_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_address_t") == 0 ) { ret = idmef_address_new((idmef_address_t **) object); if ( ret < 0 ) return ret; ret = idmef_address_read_json((idmef_address_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_process_t") == 0 ) { ret = idmef_process_new((idmef_process_t **) object); if ( ret < 0 ) return ret; ret = idmef_process_read_json((idmef_process_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_web_service_t") == 0 ) { ret = idmef_web_service_new((idmef_web_service_t **) object); if ( ret < 0 ) return ret; ret = idmef_web_service_read_json((idmef_web_service_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_snmp_service_t") == 0 ) { ret = idmef_snmp_service_new((idmef_snmp_service_t **) object); if ( ret < 0 ) return ret; ret = idmef_snmp_service_read_json((idmef_snmp_service_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_service_t") == 0 ) { ret = idmef_service_new((idmef_service_t **) object); if ( ret < 0 ) return ret; ret = idmef_service_read_json((idmef_service_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_node_t") == 0 ) { ret = idmef_node_new((idmef_node_t **) object); if ( ret < 0 ) return ret; ret = idmef_node_read_json((idmef_node_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_source_t") == 0 ) { ret = idmef_source_new((idmef_source_t **) object); if ( ret < 0 ) return ret; ret = idmef_source_read_json((idmef_source_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_file_access_t") == 0 ) { ret = idmef_file_access_new((idmef_file_access_t **) object); if ( ret < 0 ) return ret; ret = idmef_file_access_read_json((idmef_file_access_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_inode_t") == 0 ) { ret = idmef_inode_new((idmef_inode_t **) object); if ( ret < 0 ) return ret; ret = idmef_inode_read_json((idmef_inode_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_file_t") == 0 ) { ret = idmef_file_new((idmef_file_t **) object); if ( ret < 0 ) return ret; ret = idmef_file_read_json((idmef_file_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_linkage_t") == 0 ) { ret = idmef_linkage_new((idmef_linkage_t **) object); if ( ret < 0 ) return ret; ret = idmef_linkage_read_json((idmef_linkage_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_target_t") == 0 ) { ret = idmef_target_new((idmef_target_t **) object); if ( ret < 0 ) return ret; ret = idmef_target_read_json((idmef_target_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_analyzer_t") == 0 ) { ret = idmef_analyzer_new((idmef_analyzer_t **) object); if ( ret < 0 ) return ret; ret = idmef_analyzer_read_json((idmef_analyzer_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_alertident_t") == 0 ) { ret = idmef_alertident_new((idmef_alertident_t **) object); if ( ret < 0 ) return ret; ret = idmef_alertident_read_json((idmef_alertident_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_impact_t") == 0 ) { ret = idmef_impact_new((idmef_impact_t **) object); if ( ret < 0 ) return ret; ret = idmef_impact_read_json((idmef_impact_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_action_t") == 0 ) { ret = idmef_action_new((idmef_action_t **) object); if ( ret < 0 ) return ret; ret = idmef_action_read_json((idmef_action_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_confidence_t") == 0 ) { ret = idmef_confidence_new((idmef_confidence_t **) object); if ( ret < 0 ) return ret; ret = idmef_confidence_read_json((idmef_confidence_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_assessment_t") == 0 ) { ret = idmef_assessment_new((idmef_assessment_t **) object); if ( ret < 0 ) return ret; ret = idmef_assessment_read_json((idmef_assessment_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_tool_alert_t") == 0 ) { ret = idmef_tool_alert_new((idmef_tool_alert_t **) object); if ( ret < 0 ) return ret; ret = idmef_tool_alert_read_json((idmef_tool_alert_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_correlation_alert_t") == 0 ) { ret = idmef_correlation_alert_new((idmef_correlation_alert_t **) object); if ( ret < 0 ) return ret; ret = idmef_correlation_alert_read_json((idmef_correlation_alert_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_overflow_alert_t") == 0 ) { ret = idmef_overflow_alert_new((idmef_overflow_alert_t **) object); if ( ret < 0 ) return ret; ret = idmef_overflow_alert_read_json((idmef_overflow_alert_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_alert_t") == 0 ) { ret = idmef_alert_new((idmef_alert_t **) object); if ( ret < 0 ) return ret; ret = idmef_alert_read_json((idmef_alert_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_heartbeat_t") == 0 ) { ret = idmef_heartbeat_new((idmef_heartbeat_t **) object); if ( ret < 0 ) return ret; ret = idmef_heartbeat_read_json((idmef_heartbeat_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_message_t") == 0 ) { ret = idmef_message_new((idmef_message_t **) object); if ( ret < 0 ) return ret; ret = idmef_message_read_json((idmef_message_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_reference_t") == 0 ) { ret = idmef_reference_new((idmef_reference_t **) object); if ( ret < 0 ) return ret; ret = idmef_reference_read_json((idmef_reference_t *) *object, &ctrl); } else if ( jsoneq(&ctrl, &ctrl.jtok[selfkey + 1], "idmef_checksum_t") == 0 ) { ret = idmef_checksum_new((idmef_checksum_t **) object); if ( ret < 0 ) return ret; ret = idmef_checksum_read_json((idmef_checksum_t *) *object, &ctrl); } else { ret = prelude_error_verbose(PRELUDE_ERROR_GENERIC, "unknown object type '%s'", ""); } return ret; } libprelude-5.2.0/src/PaxHeaders.14770/idmef-message-print.c0000644000000000000000000000011013726163410021436 xustar000000000000000024 mtime=1599661832.671 24 atime=1599661832.778 24 ctime=1599661999.847 libprelude-5.2.0/src/idmef-message-print.c0000644000000000000000000024644013726163410020453 0ustar00rootroot00000000000000 /***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* Auto-generated by the GenerateIDMEFMessagePrintC package */ #include "config.h" #include "libmissing.h" #include #include "idmef.h" #include "idmef-tree-wrap.h" #include "idmef-message-print.h" static int indent = 0; static void print_indent(prelude_io_t *fd) { int cnt; for ( cnt = 0; cnt < indent; cnt++ ) prelude_io_write(fd, " ", 1); } static void print_string(prelude_string_t *string, prelude_io_t *fd) { if ( prelude_string_is_empty(string) ) prelude_io_write(fd, "", 7); else prelude_io_write(fd, prelude_string_get_string(string), prelude_string_get_len(string)); } static void print_uint8(uint8_t i, prelude_io_t *fd) { int len; char buf[sizeof("255")]; /* * %hh convertion specifier is not portable. */ len = snprintf(buf, sizeof(buf), "%u", (unsigned int) i); prelude_io_write(fd, buf, len); } static void print_uint16(uint16_t i, prelude_io_t *fd) { int len; char buf[sizeof("65535")]; len = snprintf(buf, sizeof(buf), "%hu", i); prelude_io_write(fd, buf, len); } static void print_int32(int32_t i, prelude_io_t *fd) { int len; char buf[sizeof("4294967296")]; len = snprintf(buf, sizeof(buf), "%d", i); prelude_io_write(fd, buf, len); } static void print_uint32(uint32_t i, prelude_io_t *fd) { int len; char buf[sizeof("4294967296")]; len = snprintf(buf, sizeof(buf), "%u", i); prelude_io_write(fd, buf, len); } static void print_uint64(uint64_t i, prelude_io_t *fd) { int len; char buf[sizeof("18446744073709551616")]; len = snprintf(buf, sizeof(buf), "%" PRELUDE_PRIu64, i); prelude_io_write(fd, buf, len); } static void print_float(float f, prelude_io_t *fd) { int len; char buf[32]; len = snprintf(buf, sizeof(buf), "%f", f); prelude_io_write(fd, buf, len); } static void print_time(idmef_time_t *t, prelude_io_t *fd) { int len; time_t _time; struct tm _tm; char tmp[32], buf[128]; _time = idmef_time_get_sec(t) + idmef_time_get_gmt_offset(t); if ( ! gmtime_r(&_time, &_tm) ) return; len = strftime(tmp, sizeof(tmp), "%d/%m/%Y %H:%M:%S", &_tm); if ( len == 0 ) return; len = snprintf(buf, sizeof(buf), "%s.%u %+.2d:%.2d", tmp, idmef_time_get_usec(t), idmef_time_get_gmt_offset(t) / 3600, idmef_time_get_gmt_offset(t) % 3600 / 60); prelude_io_write(fd, buf, len); } /* print data as a string */ static int print_data(idmef_data_t *data, prelude_io_t *fd) { int ret; prelude_string_t *out; ret = prelude_string_new(&out); if ( ret < 0 ) return ret; ret = idmef_data_to_string(data, out); if ( ret < 0 ) { prelude_string_destroy(out); return ret; } prelude_io_write(fd, prelude_string_get_string(out), prelude_string_get_len(out)); prelude_string_destroy(out); return 0; } static void print_enum(const char *s, int i, prelude_io_t *fd) { int len; char buf[512]; if ( ! s ) s = ""; len = snprintf(buf, sizeof(buf), "%s (%d)", s, i); prelude_io_write(fd, buf, len); } /** * idmef_additional_data_print: * @ptr: Pointer to an idmef_additional_data_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_additional_data_print(idmef_additional_data_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "meaning: "; field = idmef_additional_data_get_meaning(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { int i = idmef_additional_data_get_type(ptr); { print_indent(fd); prelude_io_write(fd, "type: ", sizeof("type: ") - 1); print_enum(idmef_additional_data_type_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { idmef_data_t *field; const char tmp[] = "data: "; field = idmef_additional_data_get_data(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); if ( idmef_additional_data_get_type(ptr) != IDMEF_ADDITIONAL_DATA_TYPE_NTPSTAMP ) print_data(field, fd); else { int ret; uint64_t i; prelude_string_t *out; ret = prelude_string_new(&out); if ( ret < 0 ) return; i = idmef_data_get_int(field); ret = prelude_string_sprintf(out, "0x%" PRELUDE_PRIx32 ".0x%" PRELUDE_PRIx32 "", (uint32_t) (i >> 32), (uint32_t) i); if ( ret < 0 ) { prelude_string_destroy(out); return; } prelude_io_write(fd, prelude_string_get_string(out), prelude_string_get_len(out)); prelude_string_destroy(out); } prelude_io_write(fd, "\n", sizeof("\n") - 1); } } indent -= 8; } /** * idmef_reference_print: * @ptr: Pointer to an idmef_reference_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_reference_print(idmef_reference_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { int i = idmef_reference_get_origin(ptr); { print_indent(fd); prelude_io_write(fd, "origin: ", sizeof("origin: ") - 1); print_enum(idmef_reference_origin_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "name: "; field = idmef_reference_get_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "url: "; field = idmef_reference_get_url(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "meaning: "; field = idmef_reference_get_meaning(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } indent -= 8; } /** * idmef_classification_print: * @ptr: Pointer to an idmef_classification_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_classification_print(idmef_classification_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "ident: "; field = idmef_classification_get_ident(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "text: "; field = idmef_classification_get_text(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { char buf[128]; idmef_reference_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_classification_get_next_reference(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "reference(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_reference_print(elem, fd); cnt++; } } indent -= 8; } /** * idmef_user_id_print: * @ptr: Pointer to an idmef_user_id_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_user_id_print(idmef_user_id_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "ident: "; field = idmef_user_id_get_ident(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { int i = idmef_user_id_get_type(ptr); { print_indent(fd); prelude_io_write(fd, "type: ", sizeof("type: ") - 1); print_enum(idmef_user_id_type_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "tty: "; field = idmef_user_id_get_tty(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "name: "; field = idmef_user_id_get_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint32_t *field; const char tmp[] = "number: "; field = idmef_user_id_get_number(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } indent -= 8; } /** * idmef_user_print: * @ptr: Pointer to an idmef_user_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_user_print(idmef_user_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "ident: "; field = idmef_user_get_ident(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { int i = idmef_user_get_category(ptr); { print_indent(fd); prelude_io_write(fd, "category: ", sizeof("category: ") - 1); print_enum(idmef_user_category_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { char buf[128]; idmef_user_id_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_user_get_next_user_id(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "user_id(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_user_id_print(elem, fd); cnt++; } } indent -= 8; } /** * idmef_address_print: * @ptr: Pointer to an idmef_address_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_address_print(idmef_address_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "ident: "; field = idmef_address_get_ident(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { int i = idmef_address_get_category(ptr); { print_indent(fd); prelude_io_write(fd, "category: ", sizeof("category: ") - 1); print_enum(idmef_address_category_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "vlan_name: "; field = idmef_address_get_vlan_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { int32_t *field; const char tmp[] = "vlan_num: "; field = idmef_address_get_vlan_num(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_int32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "address: "; field = idmef_address_get_address(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "netmask: "; field = idmef_address_get_netmask(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } indent -= 8; } /** * idmef_process_print: * @ptr: Pointer to an idmef_process_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_process_print(idmef_process_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "ident: "; field = idmef_process_get_ident(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "name: "; field = idmef_process_get_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint32_t *field; const char tmp[] = "pid: "; field = idmef_process_get_pid(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "path: "; field = idmef_process_get_path(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { char buf[128]; prelude_string_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_process_get_next_arg(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "arg(%d): ", cnt); prelude_io_write(fd, buf, len); print_string(elem, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); cnt++; } } { char buf[128]; prelude_string_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_process_get_next_env(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "env(%d): ", cnt); prelude_io_write(fd, buf, len); print_string(elem, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); cnt++; } } indent -= 8; } /** * idmef_web_service_print: * @ptr: Pointer to an idmef_web_service_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_web_service_print(idmef_web_service_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "url: "; field = idmef_web_service_get_url(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "cgi: "; field = idmef_web_service_get_cgi(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "http_method: "; field = idmef_web_service_get_http_method(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { char buf[128]; prelude_string_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_web_service_get_next_arg(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "arg(%d): ", cnt); prelude_io_write(fd, buf, len); print_string(elem, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); cnt++; } } indent -= 8; } /** * idmef_snmp_service_print: * @ptr: Pointer to an idmef_snmp_service_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_snmp_service_print(idmef_snmp_service_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "oid: "; field = idmef_snmp_service_get_oid(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint32_t *field; const char tmp[] = "message_processing_model: "; field = idmef_snmp_service_get_message_processing_model(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint32_t *field; const char tmp[] = "security_model: "; field = idmef_snmp_service_get_security_model(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "security_name: "; field = idmef_snmp_service_get_security_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint32_t *field; const char tmp[] = "security_level: "; field = idmef_snmp_service_get_security_level(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "context_name: "; field = idmef_snmp_service_get_context_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "context_engine_id: "; field = idmef_snmp_service_get_context_engine_id(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "command: "; field = idmef_snmp_service_get_command(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } indent -= 8; } /** * idmef_service_print: * @ptr: Pointer to an idmef_service_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_service_print(idmef_service_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "ident: "; field = idmef_service_get_ident(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint8_t *field; const char tmp[] = "ip_version: "; field = idmef_service_get_ip_version(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint8(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint8_t *field; const char tmp[] = "iana_protocol_number: "; field = idmef_service_get_iana_protocol_number(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint8(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "iana_protocol_name: "; field = idmef_service_get_iana_protocol_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "name: "; field = idmef_service_get_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint16_t *field; const char tmp[] = "port: "; field = idmef_service_get_port(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint16(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "portlist: "; field = idmef_service_get_portlist(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "protocol: "; field = idmef_service_get_protocol(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } switch ( idmef_service_get_type(ptr) ) { case IDMEF_SERVICE_TYPE_WEB: print_indent(fd); prelude_io_write(fd, "web_service:\n", sizeof("web_service:\n") - 1); idmef_web_service_print(idmef_service_get_web_service(ptr), fd); break; case IDMEF_SERVICE_TYPE_SNMP: print_indent(fd); prelude_io_write(fd, "snmp_service:\n", sizeof("snmp_service:\n") - 1); idmef_snmp_service_print(idmef_service_get_snmp_service(ptr), fd); break; default: break; } indent -= 8; } /** * idmef_node_print: * @ptr: Pointer to an idmef_node_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_node_print(idmef_node_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "ident: "; field = idmef_node_get_ident(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { int i = idmef_node_get_category(ptr); { print_indent(fd); prelude_io_write(fd, "category: ", sizeof("category: ") - 1); print_enum(idmef_node_category_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "name: "; field = idmef_node_get_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "location: "; field = idmef_node_get_location(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { char buf[128]; idmef_address_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_node_get_next_address(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "address(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_address_print(elem, fd); cnt++; } } indent -= 8; } /** * idmef_source_print: * @ptr: Pointer to an idmef_source_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_source_print(idmef_source_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "ident: "; field = idmef_source_get_ident(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { int i = idmef_source_get_spoofed(ptr); { print_indent(fd); prelude_io_write(fd, "spoofed: ", sizeof("spoofed: ") - 1); print_enum(idmef_source_spoofed_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "interface: "; field = idmef_source_get_interface(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { idmef_node_t *field; field = idmef_source_get_node(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "node:\n", sizeof("node:\n") - 1); idmef_node_print(field, fd); } } { idmef_user_t *field; field = idmef_source_get_user(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "user:\n", sizeof("user:\n") - 1); idmef_user_print(field, fd); } } { idmef_process_t *field; field = idmef_source_get_process(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "process:\n", sizeof("process:\n") - 1); idmef_process_print(field, fd); } } { idmef_service_t *field; field = idmef_source_get_service(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "service:\n", sizeof("service:\n") - 1); idmef_service_print(field, fd); } } indent -= 8; } /** * idmef_file_access_print: * @ptr: Pointer to an idmef_file_access_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_file_access_print(idmef_file_access_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { idmef_user_id_t *field; field = idmef_file_access_get_user_id(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "user_id:\n", sizeof("user_id:\n") - 1); idmef_user_id_print(field, fd); } } { char buf[128]; prelude_string_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_file_access_get_next_permission(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "permission(%d): ", cnt); prelude_io_write(fd, buf, len); print_string(elem, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); cnt++; } } indent -= 8; } /** * idmef_inode_print: * @ptr: Pointer to an idmef_inode_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_inode_print(idmef_inode_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { idmef_time_t *field; const char tmp[] = "change_time: "; field = idmef_inode_get_change_time(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_time(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint32_t *field; const char tmp[] = "number: "; field = idmef_inode_get_number(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint32_t *field; const char tmp[] = "major_device: "; field = idmef_inode_get_major_device(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint32_t *field; const char tmp[] = "minor_device: "; field = idmef_inode_get_minor_device(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint32_t *field; const char tmp[] = "c_major_device: "; field = idmef_inode_get_c_major_device(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint32_t *field; const char tmp[] = "c_minor_device: "; field = idmef_inode_get_c_minor_device(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } indent -= 8; } /** * idmef_checksum_print: * @ptr: Pointer to an idmef_checksum_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_checksum_print(idmef_checksum_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "value: "; field = idmef_checksum_get_value(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "key: "; field = idmef_checksum_get_key(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { int i = idmef_checksum_get_algorithm(ptr); { print_indent(fd); prelude_io_write(fd, "algorithm: ", sizeof("algorithm: ") - 1); print_enum(idmef_checksum_algorithm_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } indent -= 8; } /** * idmef_file_print: * @ptr: Pointer to an idmef_file_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_file_print(idmef_file_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "ident: "; field = idmef_file_get_ident(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "name: "; field = idmef_file_get_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "path: "; field = idmef_file_get_path(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { idmef_time_t *field; const char tmp[] = "create_time: "; field = idmef_file_get_create_time(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_time(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { idmef_time_t *field; const char tmp[] = "modify_time: "; field = idmef_file_get_modify_time(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_time(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { idmef_time_t *field; const char tmp[] = "access_time: "; field = idmef_file_get_access_time(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_time(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint64_t *field; const char tmp[] = "data_size: "; field = idmef_file_get_data_size(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint64(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint64_t *field; const char tmp[] = "disk_size: "; field = idmef_file_get_disk_size(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint64(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { char buf[128]; idmef_file_access_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_file_get_next_file_access(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "file_access(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_file_access_print(elem, fd); cnt++; } } { char buf[128]; idmef_linkage_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_file_get_next_linkage(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "linkage(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_linkage_print(elem, fd); cnt++; } } { idmef_inode_t *field; field = idmef_file_get_inode(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "inode:\n", sizeof("inode:\n") - 1); idmef_inode_print(field, fd); } } { char buf[128]; idmef_checksum_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_file_get_next_checksum(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "checksum(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_checksum_print(elem, fd); cnt++; } } { int i = idmef_file_get_category(ptr); { print_indent(fd); prelude_io_write(fd, "category: ", sizeof("category: ") - 1); print_enum(idmef_file_category_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { int *i = idmef_file_get_fstype(ptr); if ( i ) { print_indent(fd); prelude_io_write(fd, "fstype: ", sizeof("fstype: ") - 1); print_enum(idmef_file_fstype_to_string(*i), *i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "file_type: "; field = idmef_file_get_file_type(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } indent -= 8; } /** * idmef_linkage_print: * @ptr: Pointer to an idmef_linkage_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_linkage_print(idmef_linkage_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { int i = idmef_linkage_get_category(ptr); { print_indent(fd); prelude_io_write(fd, "category: ", sizeof("category: ") - 1); print_enum(idmef_linkage_category_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "name: "; field = idmef_linkage_get_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "path: "; field = idmef_linkage_get_path(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { idmef_file_t *field; field = idmef_linkage_get_file(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "file:\n", sizeof("file:\n") - 1); idmef_file_print(field, fd); } } indent -= 8; } /** * idmef_target_print: * @ptr: Pointer to an idmef_target_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_target_print(idmef_target_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "ident: "; field = idmef_target_get_ident(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { int i = idmef_target_get_decoy(ptr); { print_indent(fd); prelude_io_write(fd, "decoy: ", sizeof("decoy: ") - 1); print_enum(idmef_target_decoy_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "interface: "; field = idmef_target_get_interface(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { idmef_node_t *field; field = idmef_target_get_node(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "node:\n", sizeof("node:\n") - 1); idmef_node_print(field, fd); } } { idmef_user_t *field; field = idmef_target_get_user(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "user:\n", sizeof("user:\n") - 1); idmef_user_print(field, fd); } } { idmef_process_t *field; field = idmef_target_get_process(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "process:\n", sizeof("process:\n") - 1); idmef_process_print(field, fd); } } { idmef_service_t *field; field = idmef_target_get_service(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "service:\n", sizeof("service:\n") - 1); idmef_service_print(field, fd); } } { char buf[128]; idmef_file_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_target_get_next_file(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "file(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_file_print(elem, fd); cnt++; } } indent -= 8; } /** * idmef_analyzer_print: * @ptr: Pointer to an idmef_analyzer_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_analyzer_print(idmef_analyzer_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "analyzerid: "; field = idmef_analyzer_get_analyzerid(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "name: "; field = idmef_analyzer_get_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "manufacturer: "; field = idmef_analyzer_get_manufacturer(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "model: "; field = idmef_analyzer_get_model(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "version: "; field = idmef_analyzer_get_version(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "class: "; field = idmef_analyzer_get_class(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "ostype: "; field = idmef_analyzer_get_ostype(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "osversion: "; field = idmef_analyzer_get_osversion(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { idmef_node_t *field; field = idmef_analyzer_get_node(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "node:\n", sizeof("node:\n") - 1); idmef_node_print(field, fd); } } { idmef_process_t *field; field = idmef_analyzer_get_process(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "process:\n", sizeof("process:\n") - 1); idmef_process_print(field, fd); } } indent -= 8; } /** * idmef_alertident_print: * @ptr: Pointer to an idmef_alertident_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_alertident_print(idmef_alertident_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "alertident: "; field = idmef_alertident_get_alertident(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "analyzerid: "; field = idmef_alertident_get_analyzerid(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } indent -= 8; } /** * idmef_impact_print: * @ptr: Pointer to an idmef_impact_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_impact_print(idmef_impact_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { int *i = idmef_impact_get_severity(ptr); if ( i ) { print_indent(fd); prelude_io_write(fd, "severity: ", sizeof("severity: ") - 1); print_enum(idmef_impact_severity_to_string(*i), *i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { int *i = idmef_impact_get_completion(ptr); if ( i ) { print_indent(fd); prelude_io_write(fd, "completion: ", sizeof("completion: ") - 1); print_enum(idmef_impact_completion_to_string(*i), *i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { int i = idmef_impact_get_type(ptr); { print_indent(fd); prelude_io_write(fd, "type: ", sizeof("type: ") - 1); print_enum(idmef_impact_type_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "description: "; field = idmef_impact_get_description(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } indent -= 8; } /** * idmef_action_print: * @ptr: Pointer to an idmef_action_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_action_print(idmef_action_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { int i = idmef_action_get_category(ptr); { print_indent(fd); prelude_io_write(fd, "category: ", sizeof("category: ") - 1); print_enum(idmef_action_category_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "description: "; field = idmef_action_get_description(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } indent -= 8; } /** * idmef_confidence_print: * @ptr: Pointer to an idmef_confidence_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_confidence_print(idmef_confidence_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { int i = idmef_confidence_get_rating(ptr); { print_indent(fd); prelude_io_write(fd, "rating: ", sizeof("rating: ") - 1); print_enum(idmef_confidence_rating_to_string(i), i, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } print_indent(fd); prelude_io_write(fd, "confidence: ", sizeof("confidence: ") - 1); print_float(idmef_confidence_get_confidence(ptr), fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); indent -= 8; } /** * idmef_assessment_print: * @ptr: Pointer to an idmef_assessment_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_assessment_print(idmef_assessment_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { idmef_impact_t *field; field = idmef_assessment_get_impact(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "impact:\n", sizeof("impact:\n") - 1); idmef_impact_print(field, fd); } } { char buf[128]; idmef_action_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_assessment_get_next_action(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "action(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_action_print(elem, fd); cnt++; } } { idmef_confidence_t *field; field = idmef_assessment_get_confidence(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "confidence:\n", sizeof("confidence:\n") - 1); idmef_confidence_print(field, fd); } } indent -= 8; } /** * idmef_tool_alert_print: * @ptr: Pointer to an idmef_tool_alert_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_tool_alert_print(idmef_tool_alert_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "name: "; field = idmef_tool_alert_get_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { prelude_string_t *field; const char tmp[] = "command: "; field = idmef_tool_alert_get_command(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { char buf[128]; idmef_alertident_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_tool_alert_get_next_alertident(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "alertident(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_alertident_print(elem, fd); cnt++; } } indent -= 8; } /** * idmef_correlation_alert_print: * @ptr: Pointer to an idmef_correlation_alert_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_correlation_alert_print(idmef_correlation_alert_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "name: "; field = idmef_correlation_alert_get_name(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { char buf[128]; idmef_alertident_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_correlation_alert_get_next_alertident(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "alertident(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_alertident_print(elem, fd); cnt++; } } indent -= 8; } /** * idmef_overflow_alert_print: * @ptr: Pointer to an idmef_overflow_alert_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_overflow_alert_print(idmef_overflow_alert_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "program: "; field = idmef_overflow_alert_get_program(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint32_t *field; const char tmp[] = "size: "; field = idmef_overflow_alert_get_size(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { idmef_data_t *field; const char tmp[] = "buffer: "; field = idmef_overflow_alert_get_buffer(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_data(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } indent -= 8; } /** * idmef_alert_print: * @ptr: Pointer to an idmef_alert_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_alert_print(idmef_alert_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "messageid: "; field = idmef_alert_get_messageid(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { char buf[128]; idmef_analyzer_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_alert_get_next_analyzer(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "analyzer(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_analyzer_print(elem, fd); cnt++; } } { idmef_time_t *field; const char tmp[] = "create_time: "; field = idmef_alert_get_create_time(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_time(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { idmef_classification_t *field; field = idmef_alert_get_classification(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "classification:\n", sizeof("classification:\n") - 1); idmef_classification_print(field, fd); } } { idmef_time_t *field; const char tmp[] = "detect_time: "; field = idmef_alert_get_detect_time(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_time(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { idmef_time_t *field; const char tmp[] = "analyzer_time: "; field = idmef_alert_get_analyzer_time(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_time(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { char buf[128]; idmef_source_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_alert_get_next_source(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "source(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_source_print(elem, fd); cnt++; } } { char buf[128]; idmef_target_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_alert_get_next_target(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "target(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_target_print(elem, fd); cnt++; } } { idmef_assessment_t *field; field = idmef_alert_get_assessment(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, "assessment:\n", sizeof("assessment:\n") - 1); idmef_assessment_print(field, fd); } } { char buf[128]; idmef_additional_data_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_alert_get_next_additional_data(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "additional_data(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_additional_data_print(elem, fd); cnt++; } } switch ( idmef_alert_get_type(ptr) ) { case IDMEF_ALERT_TYPE_TOOL: print_indent(fd); prelude_io_write(fd, "tool_alert:\n", sizeof("tool_alert:\n") - 1); idmef_tool_alert_print(idmef_alert_get_tool_alert(ptr), fd); break; case IDMEF_ALERT_TYPE_CORRELATION: print_indent(fd); prelude_io_write(fd, "correlation_alert:\n", sizeof("correlation_alert:\n") - 1); idmef_correlation_alert_print(idmef_alert_get_correlation_alert(ptr), fd); break; case IDMEF_ALERT_TYPE_OVERFLOW: print_indent(fd); prelude_io_write(fd, "overflow_alert:\n", sizeof("overflow_alert:\n") - 1); idmef_overflow_alert_print(idmef_alert_get_overflow_alert(ptr), fd); break; default: break; } indent -= 8; } /** * idmef_heartbeat_print: * @ptr: Pointer to an idmef_heartbeat_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_heartbeat_print(idmef_heartbeat_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; indent += 8; { prelude_string_t *field; const char tmp[] = "messageid: "; field = idmef_heartbeat_get_messageid(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { char buf[128]; idmef_analyzer_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_heartbeat_get_next_analyzer(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "analyzer(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_analyzer_print(elem, fd); cnt++; } } { idmef_time_t *field; const char tmp[] = "create_time: "; field = idmef_heartbeat_get_create_time(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_time(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { idmef_time_t *field; const char tmp[] = "analyzer_time: "; field = idmef_heartbeat_get_analyzer_time(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_time(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { uint32_t *field; const char tmp[] = "heartbeat_interval: "; field = idmef_heartbeat_get_heartbeat_interval(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_uint32(*field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } { char buf[128]; idmef_additional_data_t *elem = NULL; int cnt = 0, len; while ( (elem = idmef_heartbeat_get_next_additional_data(ptr, elem)) ) { print_indent(fd); len = snprintf(buf, sizeof(buf), "additional_data(%d): \n", cnt); prelude_io_write(fd, buf, len); idmef_additional_data_print(elem, fd); cnt++; } } indent -= 8; } /** * idmef_message_print: * @ptr: Pointer to an idmef_message_t object. * @fd: Pointer to a #prelude_io_t object where to print @ptr to. * * This function will convert @ptr to a string suitable for writing, * and write it to the provided @fd descriptor. */ void idmef_message_print(idmef_message_t *ptr, prelude_io_t *fd) { if ( ! ptr ) return; { prelude_string_t *field; const char tmp[] = "version: "; field = idmef_message_get_version(ptr); if ( field ) { print_indent(fd); prelude_io_write(fd, tmp, sizeof(tmp) - 1); print_string(field, fd); prelude_io_write(fd, "\n", sizeof("\n") - 1); } } switch ( idmef_message_get_type(ptr) ) { case IDMEF_MESSAGE_TYPE_ALERT: print_indent(fd); prelude_io_write(fd, "alert:\n", sizeof("alert:\n") - 1); idmef_alert_print(idmef_message_get_alert(ptr), fd); break; case IDMEF_MESSAGE_TYPE_HEARTBEAT: print_indent(fd); prelude_io_write(fd, "heartbeat:\n", sizeof("heartbeat:\n") - 1); idmef_heartbeat_print(idmef_message_get_heartbeat(ptr), fd); break; default: break; } } libprelude-5.2.0/src/PaxHeaders.14770/idmef-message-print-json.c0000644000000000000000000000010713726163410022413 xustar000000000000000023 mtime=1599661832.67 24 atime=1599661832.777 24 ctime=1599661999.848 libprelude-5.2.0/src/idmef-message-print-json.c0000644000000000000000000030752413726163410021423 0ustar00rootroot00000000000000 /***** * * Copyright (C) 2016-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* Auto-generated by the GenerateIDMEFMessagePrintJSONC package */ #include "config.h" #include "libmissing.h" #include #include #include "idmef.h" #include "idmef-tree-wrap.h" #include "idmef-message-print-json.h" #define conv_uint8 conv_uint64 #define conv_uint16 conv_uint64 #define conv_uint32 conv_uint64 #define conv_int8 conv_int64 #define conv_int16 conv_int64 #define conv_int32 conv_int64 static int conv_uint64(prelude_io_t *fd, uint64_t value) { int ret; char buf[32]; ret = snprintf(buf, sizeof(buf), "%" PRELUDE_PRIu64, value); if ( ret < 0 || ret >= sizeof(buf) ) return -1; return prelude_io_write(fd, buf, ret); } static int conv_int64(prelude_io_t *fd, int64_t value) { int ret; char buf[32]; ret = snprintf(buf, sizeof(buf), "%" PRELUDE_PRId64, value); if ( ret < 0 || ret >= sizeof(buf) ) return -1; return prelude_io_write(fd, buf, ret); } static int conv_float(prelude_io_t *fd, float value) { int ret; char buf[32]; ret = snprintf(buf, sizeof(buf), "%f", value); if ( ret < 0 || ret >= sizeof(buf) ) return -1; return prelude_io_write(fd, buf, ret); } static int conv_string(prelude_io_t *fd, prelude_string_t *string) { size_t i; ssize_t ret; const unsigned char *content; content = (const unsigned char *) prelude_string_get_string_or_default(string, ""); ret = prelude_io_write(fd, "\"", 1); if ( ret < 0 ) return ret; for ( i = 0; i < prelude_string_get_len(string); i++, content++ ) { switch(*content) { case '\\': case '"': case '/': ret = prelude_io_write(fd, "\\", 1); if ( ret < 0 ) return ret; ret = prelude_io_write(fd, content, 1); break; case '\b': ret = prelude_io_write(fd, "\\b", 2); break; case '\t': ret = prelude_io_write(fd, "\\t", 2); break; case '\n': ret = prelude_io_write(fd, "\\n", 2); break; case '\f': ret = prelude_io_write(fd, "\\f", 2); break; case '\r': ret = prelude_io_write(fd, "\\r", 2); break; default: if ( *content >= 0x20 ) ret = prelude_io_write(fd, content, 1); else { char seq[7]; snprintf(seq, sizeof(seq), "\\u%04X", *content); ret = prelude_io_write(fd, seq, strlen(seq)); } } if ( ret < 0 ) return ret; } return prelude_io_write(fd, "\"", 1); } static int conv_time(prelude_io_t *fd, idmef_time_t *t) { int ret; prelude_string_t *str; if ( ! t ) return 0; ret = prelude_string_new(&str); if ( ret < 0 ) return ret; ret = idmef_time_to_string(t, str); if ( ret < 0 ) goto error; ret = conv_string(fd, str); error: prelude_string_destroy(str); return ret; } static int conv_data(prelude_io_t *fd, idmef_data_t *data) { int ret; prelude_string_t *out; ret = prelude_string_new(&out); if ( ret < 0 ) return ret; ret = idmef_data_to_string(data, out); if ( ret < 0 ) goto error; switch (idmef_data_get_type(data)) { case IDMEF_DATA_TYPE_INT: case IDMEF_DATA_TYPE_FLOAT: ret = prelude_io_write(fd, prelude_string_get_string(out), prelude_string_get_len(out)); break; default: ret = conv_string(fd, out); break; } error: prelude_string_destroy(out); return ret; } static int do_write(prelude_io_t *fd, const char *str) { return prelude_io_write(fd, str, strlen(str)); } /** * idmef_additional_data_json: * @ptr: Pointer to an idmef_additional_data_t object. * * This function will convert @ptr to a json, */ int idmef_additional_data_print_json(idmef_additional_data_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_additional_data_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_additional_data_get_meaning(ptr); if ( field ) { ret = do_write(fd, ", \"meaning\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { int i = idmef_additional_data_get_type(ptr); { const char *enumstr = idmef_additional_data_type_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"type\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { idmef_data_t *field; field = idmef_additional_data_get_data(ptr); if ( field ) { ret = do_write(fd, ", \"data\": "); if ( ret < 0 ) return ret; ret = conv_data(fd, field); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_reference_json: * @ptr: Pointer to an idmef_reference_t object. * * This function will convert @ptr to a json, */ int idmef_reference_print_json(idmef_reference_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_reference_t\""); if ( ret < 0 ) return ret; { int i = idmef_reference_get_origin(ptr); { const char *enumstr = idmef_reference_origin_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"origin\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { prelude_string_t *field; field = idmef_reference_get_name(ptr); if ( field ) { ret = do_write(fd, ", \"name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_reference_get_url(ptr); if ( field ) { ret = do_write(fd, ", \"url\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_reference_get_meaning(ptr); if ( field ) { ret = do_write(fd, ", \"meaning\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_classification_json: * @ptr: Pointer to an idmef_classification_t object. * * This function will convert @ptr to a json, */ int idmef_classification_print_json(idmef_classification_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_classification_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_classification_get_ident(ptr); if ( field ) { ret = do_write(fd, ", \"ident\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_classification_get_text(ptr); if ( field ) { ret = do_write(fd, ", \"text\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { idmef_reference_t *elem = NULL; int first = 1; while ( (elem = idmef_classification_get_next_reference(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"reference\": ["); } if ( ret < 0 ) return ret; ret = idmef_reference_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_user_id_json: * @ptr: Pointer to an idmef_user_id_t object. * * This function will convert @ptr to a json, */ int idmef_user_id_print_json(idmef_user_id_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_user_id_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_user_id_get_ident(ptr); if ( field ) { ret = do_write(fd, ", \"ident\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { int i = idmef_user_id_get_type(ptr); { const char *enumstr = idmef_user_id_type_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"type\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { prelude_string_t *field; field = idmef_user_id_get_tty(ptr); if ( field ) { ret = do_write(fd, ", \"tty\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_user_id_get_name(ptr); if ( field ) { ret = do_write(fd, ", \"name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { uint32_t *field; field = idmef_user_id_get_number(ptr); if ( field ) { ret = do_write(fd, ", \"number\": "); if ( ret < 0 ) return ret; ret = conv_uint32(fd, *field); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_user_json: * @ptr: Pointer to an idmef_user_t object. * * This function will convert @ptr to a json, */ int idmef_user_print_json(idmef_user_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_user_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_user_get_ident(ptr); if ( field ) { ret = do_write(fd, ", \"ident\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { int i = idmef_user_get_category(ptr); { const char *enumstr = idmef_user_category_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"category\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { idmef_user_id_t *elem = NULL; int first = 1; while ( (elem = idmef_user_get_next_user_id(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"user_id\": ["); } if ( ret < 0 ) return ret; ret = idmef_user_id_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_address_json: * @ptr: Pointer to an idmef_address_t object. * * This function will convert @ptr to a json, */ int idmef_address_print_json(idmef_address_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_address_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_address_get_ident(ptr); if ( field ) { ret = do_write(fd, ", \"ident\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { int i = idmef_address_get_category(ptr); { const char *enumstr = idmef_address_category_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"category\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { prelude_string_t *field; field = idmef_address_get_vlan_name(ptr); if ( field ) { ret = do_write(fd, ", \"vlan_name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { int32_t *field; field = idmef_address_get_vlan_num(ptr); if ( field ) { ret = do_write(fd, ", \"vlan_num\": "); if ( ret < 0 ) return ret; ret = conv_int32(fd, *field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_address_get_address(ptr); if ( field ) { ret = do_write(fd, ", \"address\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_address_get_netmask(ptr); if ( field ) { ret = do_write(fd, ", \"netmask\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_process_json: * @ptr: Pointer to an idmef_process_t object. * * This function will convert @ptr to a json, */ int idmef_process_print_json(idmef_process_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_process_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_process_get_ident(ptr); if ( field ) { ret = do_write(fd, ", \"ident\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_process_get_name(ptr); if ( field ) { ret = do_write(fd, ", \"name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { uint32_t *field; field = idmef_process_get_pid(ptr); if ( field ) { ret = do_write(fd, ", \"pid\": "); if ( ret < 0 ) return ret; ret = conv_uint32(fd, *field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_process_get_path(ptr); if ( field ) { ret = do_write(fd, ", \"path\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *elem = NULL; int first = 1; while ( (elem = idmef_process_get_next_arg(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"arg\": ["); } if ( ret < 0 ) return ret; ret = conv_string(fd, elem); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } { prelude_string_t *elem = NULL; int first = 1; while ( (elem = idmef_process_get_next_env(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"env\": ["); } if ( ret < 0 ) return ret; ret = conv_string(fd, elem); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_web_service_json: * @ptr: Pointer to an idmef_web_service_t object. * * This function will convert @ptr to a json, */ int idmef_web_service_print_json(idmef_web_service_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_web_service_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_web_service_get_url(ptr); if ( field ) { ret = do_write(fd, ", \"url\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_web_service_get_cgi(ptr); if ( field ) { ret = do_write(fd, ", \"cgi\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_web_service_get_http_method(ptr); if ( field ) { ret = do_write(fd, ", \"http_method\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *elem = NULL; int first = 1; while ( (elem = idmef_web_service_get_next_arg(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"arg\": ["); } if ( ret < 0 ) return ret; ret = conv_string(fd, elem); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_snmp_service_json: * @ptr: Pointer to an idmef_snmp_service_t object. * * This function will convert @ptr to a json, */ int idmef_snmp_service_print_json(idmef_snmp_service_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_snmp_service_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_snmp_service_get_oid(ptr); if ( field ) { ret = do_write(fd, ", \"oid\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { uint32_t *field; field = idmef_snmp_service_get_message_processing_model(ptr); if ( field ) { ret = do_write(fd, ", \"message_processing_model\": "); if ( ret < 0 ) return ret; ret = conv_uint32(fd, *field); if ( ret < 0 ) return ret; } } { uint32_t *field; field = idmef_snmp_service_get_security_model(ptr); if ( field ) { ret = do_write(fd, ", \"security_model\": "); if ( ret < 0 ) return ret; ret = conv_uint32(fd, *field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_snmp_service_get_security_name(ptr); if ( field ) { ret = do_write(fd, ", \"security_name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { uint32_t *field; field = idmef_snmp_service_get_security_level(ptr); if ( field ) { ret = do_write(fd, ", \"security_level\": "); if ( ret < 0 ) return ret; ret = conv_uint32(fd, *field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_snmp_service_get_context_name(ptr); if ( field ) { ret = do_write(fd, ", \"context_name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_snmp_service_get_context_engine_id(ptr); if ( field ) { ret = do_write(fd, ", \"context_engine_id\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_snmp_service_get_command(ptr); if ( field ) { ret = do_write(fd, ", \"command\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_service_json: * @ptr: Pointer to an idmef_service_t object. * * This function will convert @ptr to a json, */ int idmef_service_print_json(idmef_service_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_service_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_service_get_ident(ptr); if ( field ) { ret = do_write(fd, ", \"ident\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { uint8_t *field; field = idmef_service_get_ip_version(ptr); if ( field ) { ret = do_write(fd, ", \"ip_version\": "); if ( ret < 0 ) return ret; ret = conv_uint8(fd, *field); if ( ret < 0 ) return ret; } } { uint8_t *field; field = idmef_service_get_iana_protocol_number(ptr); if ( field ) { ret = do_write(fd, ", \"iana_protocol_number\": "); if ( ret < 0 ) return ret; ret = conv_uint8(fd, *field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_service_get_iana_protocol_name(ptr); if ( field ) { ret = do_write(fd, ", \"iana_protocol_name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_service_get_name(ptr); if ( field ) { ret = do_write(fd, ", \"name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { uint16_t *field; field = idmef_service_get_port(ptr); if ( field ) { ret = do_write(fd, ", \"port\": "); if ( ret < 0 ) return ret; ret = conv_uint16(fd, *field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_service_get_portlist(ptr); if ( field ) { ret = do_write(fd, ", \"portlist\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_service_get_protocol(ptr); if ( field ) { ret = do_write(fd, ", \"protocol\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } switch ( idmef_service_get_type(ptr) ) { case IDMEF_SERVICE_TYPE_WEB: ret = do_write(fd, ", \"web_service\": "); if ( ret < 0 ) return ret; ret = idmef_web_service_print_json(idmef_service_get_web_service(ptr), fd); if ( ret < 0 ) return ret; break; case IDMEF_SERVICE_TYPE_SNMP: ret = do_write(fd, ", \"snmp_service\": "); if ( ret < 0 ) return ret; ret = idmef_snmp_service_print_json(idmef_service_get_snmp_service(ptr), fd); if ( ret < 0 ) return ret; break; default: break; } return do_write(fd, "}"); } /** * idmef_node_json: * @ptr: Pointer to an idmef_node_t object. * * This function will convert @ptr to a json, */ int idmef_node_print_json(idmef_node_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_node_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_node_get_ident(ptr); if ( field ) { ret = do_write(fd, ", \"ident\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { int i = idmef_node_get_category(ptr); { const char *enumstr = idmef_node_category_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"category\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { prelude_string_t *field; field = idmef_node_get_name(ptr); if ( field ) { ret = do_write(fd, ", \"name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_node_get_location(ptr); if ( field ) { ret = do_write(fd, ", \"location\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { idmef_address_t *elem = NULL; int first = 1; while ( (elem = idmef_node_get_next_address(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"address\": ["); } if ( ret < 0 ) return ret; ret = idmef_address_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_source_json: * @ptr: Pointer to an idmef_source_t object. * * This function will convert @ptr to a json, */ int idmef_source_print_json(idmef_source_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_source_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_source_get_ident(ptr); if ( field ) { ret = do_write(fd, ", \"ident\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { int i = idmef_source_get_spoofed(ptr); { const char *enumstr = idmef_source_spoofed_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"spoofed\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { prelude_string_t *field; field = idmef_source_get_interface(ptr); if ( field ) { ret = do_write(fd, ", \"interface\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { idmef_node_t *field; field = idmef_source_get_node(ptr); if ( field ) { ret = do_write(fd, ", \"node\": "); if ( ret < 0 ) return ret; ret = idmef_node_print_json(field, fd); if ( ret < 0 ) return ret; } } { idmef_user_t *field; field = idmef_source_get_user(ptr); if ( field ) { ret = do_write(fd, ", \"user\": "); if ( ret < 0 ) return ret; ret = idmef_user_print_json(field, fd); if ( ret < 0 ) return ret; } } { idmef_process_t *field; field = idmef_source_get_process(ptr); if ( field ) { ret = do_write(fd, ", \"process\": "); if ( ret < 0 ) return ret; ret = idmef_process_print_json(field, fd); if ( ret < 0 ) return ret; } } { idmef_service_t *field; field = idmef_source_get_service(ptr); if ( field ) { ret = do_write(fd, ", \"service\": "); if ( ret < 0 ) return ret; ret = idmef_service_print_json(field, fd); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_file_access_json: * @ptr: Pointer to an idmef_file_access_t object. * * This function will convert @ptr to a json, */ int idmef_file_access_print_json(idmef_file_access_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_file_access_t\""); if ( ret < 0 ) return ret; { idmef_user_id_t *field; field = idmef_file_access_get_user_id(ptr); if ( field ) { ret = do_write(fd, ", \"user_id\": "); if ( ret < 0 ) return ret; ret = idmef_user_id_print_json(field, fd); if ( ret < 0 ) return ret; } } { prelude_string_t *elem = NULL; int first = 1; while ( (elem = idmef_file_access_get_next_permission(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"permission\": ["); } if ( ret < 0 ) return ret; ret = conv_string(fd, elem); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_inode_json: * @ptr: Pointer to an idmef_inode_t object. * * This function will convert @ptr to a json, */ int idmef_inode_print_json(idmef_inode_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_inode_t\""); if ( ret < 0 ) return ret; { idmef_time_t *field; field = idmef_inode_get_change_time(ptr); if ( field ) { ret = do_write(fd, ", \"change_time\": "); if ( ret < 0 ) return ret; ret = conv_time(fd, field); if ( ret < 0 ) return ret; } } { uint32_t *field; field = idmef_inode_get_number(ptr); if ( field ) { ret = do_write(fd, ", \"number\": "); if ( ret < 0 ) return ret; ret = conv_uint32(fd, *field); if ( ret < 0 ) return ret; } } { uint32_t *field; field = idmef_inode_get_major_device(ptr); if ( field ) { ret = do_write(fd, ", \"major_device\": "); if ( ret < 0 ) return ret; ret = conv_uint32(fd, *field); if ( ret < 0 ) return ret; } } { uint32_t *field; field = idmef_inode_get_minor_device(ptr); if ( field ) { ret = do_write(fd, ", \"minor_device\": "); if ( ret < 0 ) return ret; ret = conv_uint32(fd, *field); if ( ret < 0 ) return ret; } } { uint32_t *field; field = idmef_inode_get_c_major_device(ptr); if ( field ) { ret = do_write(fd, ", \"c_major_device\": "); if ( ret < 0 ) return ret; ret = conv_uint32(fd, *field); if ( ret < 0 ) return ret; } } { uint32_t *field; field = idmef_inode_get_c_minor_device(ptr); if ( field ) { ret = do_write(fd, ", \"c_minor_device\": "); if ( ret < 0 ) return ret; ret = conv_uint32(fd, *field); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_checksum_json: * @ptr: Pointer to an idmef_checksum_t object. * * This function will convert @ptr to a json, */ int idmef_checksum_print_json(idmef_checksum_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_checksum_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_checksum_get_value(ptr); if ( field ) { ret = do_write(fd, ", \"value\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_checksum_get_key(ptr); if ( field ) { ret = do_write(fd, ", \"key\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { int i = idmef_checksum_get_algorithm(ptr); { const char *enumstr = idmef_checksum_algorithm_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"algorithm\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } return do_write(fd, "}"); } /** * idmef_file_json: * @ptr: Pointer to an idmef_file_t object. * * This function will convert @ptr to a json, */ int idmef_file_print_json(idmef_file_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_file_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_file_get_ident(ptr); if ( field ) { ret = do_write(fd, ", \"ident\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_file_get_name(ptr); if ( field ) { ret = do_write(fd, ", \"name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_file_get_path(ptr); if ( field ) { ret = do_write(fd, ", \"path\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { idmef_time_t *field; field = idmef_file_get_create_time(ptr); if ( field ) { ret = do_write(fd, ", \"create_time\": "); if ( ret < 0 ) return ret; ret = conv_time(fd, field); if ( ret < 0 ) return ret; } } { idmef_time_t *field; field = idmef_file_get_modify_time(ptr); if ( field ) { ret = do_write(fd, ", \"modify_time\": "); if ( ret < 0 ) return ret; ret = conv_time(fd, field); if ( ret < 0 ) return ret; } } { idmef_time_t *field; field = idmef_file_get_access_time(ptr); if ( field ) { ret = do_write(fd, ", \"access_time\": "); if ( ret < 0 ) return ret; ret = conv_time(fd, field); if ( ret < 0 ) return ret; } } { uint64_t *field; field = idmef_file_get_data_size(ptr); if ( field ) { ret = do_write(fd, ", \"data_size\": "); if ( ret < 0 ) return ret; ret = conv_uint64(fd, *field); if ( ret < 0 ) return ret; } } { uint64_t *field; field = idmef_file_get_disk_size(ptr); if ( field ) { ret = do_write(fd, ", \"disk_size\": "); if ( ret < 0 ) return ret; ret = conv_uint64(fd, *field); if ( ret < 0 ) return ret; } } { idmef_file_access_t *elem = NULL; int first = 1; while ( (elem = idmef_file_get_next_file_access(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"file_access\": ["); } if ( ret < 0 ) return ret; ret = idmef_file_access_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } { idmef_linkage_t *elem = NULL; int first = 1; while ( (elem = idmef_file_get_next_linkage(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"linkage\": ["); } if ( ret < 0 ) return ret; ret = idmef_linkage_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } { idmef_inode_t *field; field = idmef_file_get_inode(ptr); if ( field ) { ret = do_write(fd, ", \"inode\": "); if ( ret < 0 ) return ret; ret = idmef_inode_print_json(field, fd); if ( ret < 0 ) return ret; } } { idmef_checksum_t *elem = NULL; int first = 1; while ( (elem = idmef_file_get_next_checksum(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"checksum\": ["); } if ( ret < 0 ) return ret; ret = idmef_checksum_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } { int i = idmef_file_get_category(ptr); { const char *enumstr = idmef_file_category_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"category\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { int *i = idmef_file_get_fstype(ptr); if ( i ) { const char *enumstr = idmef_file_fstype_to_string(*i); if ( enumstr ) { ret = do_write(fd, ", \"fstype\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { prelude_string_t *field; field = idmef_file_get_file_type(ptr); if ( field ) { ret = do_write(fd, ", \"file_type\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_linkage_json: * @ptr: Pointer to an idmef_linkage_t object. * * This function will convert @ptr to a json, */ int idmef_linkage_print_json(idmef_linkage_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_linkage_t\""); if ( ret < 0 ) return ret; { int i = idmef_linkage_get_category(ptr); { const char *enumstr = idmef_linkage_category_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"category\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { prelude_string_t *field; field = idmef_linkage_get_name(ptr); if ( field ) { ret = do_write(fd, ", \"name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_linkage_get_path(ptr); if ( field ) { ret = do_write(fd, ", \"path\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { idmef_file_t *field; field = idmef_linkage_get_file(ptr); if ( field ) { ret = do_write(fd, ", \"file\": "); if ( ret < 0 ) return ret; ret = idmef_file_print_json(field, fd); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_target_json: * @ptr: Pointer to an idmef_target_t object. * * This function will convert @ptr to a json, */ int idmef_target_print_json(idmef_target_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_target_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_target_get_ident(ptr); if ( field ) { ret = do_write(fd, ", \"ident\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { int i = idmef_target_get_decoy(ptr); { const char *enumstr = idmef_target_decoy_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"decoy\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { prelude_string_t *field; field = idmef_target_get_interface(ptr); if ( field ) { ret = do_write(fd, ", \"interface\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { idmef_node_t *field; field = idmef_target_get_node(ptr); if ( field ) { ret = do_write(fd, ", \"node\": "); if ( ret < 0 ) return ret; ret = idmef_node_print_json(field, fd); if ( ret < 0 ) return ret; } } { idmef_user_t *field; field = idmef_target_get_user(ptr); if ( field ) { ret = do_write(fd, ", \"user\": "); if ( ret < 0 ) return ret; ret = idmef_user_print_json(field, fd); if ( ret < 0 ) return ret; } } { idmef_process_t *field; field = idmef_target_get_process(ptr); if ( field ) { ret = do_write(fd, ", \"process\": "); if ( ret < 0 ) return ret; ret = idmef_process_print_json(field, fd); if ( ret < 0 ) return ret; } } { idmef_service_t *field; field = idmef_target_get_service(ptr); if ( field ) { ret = do_write(fd, ", \"service\": "); if ( ret < 0 ) return ret; ret = idmef_service_print_json(field, fd); if ( ret < 0 ) return ret; } } { idmef_file_t *elem = NULL; int first = 1; while ( (elem = idmef_target_get_next_file(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"file\": ["); } if ( ret < 0 ) return ret; ret = idmef_file_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_analyzer_json: * @ptr: Pointer to an idmef_analyzer_t object. * * This function will convert @ptr to a json, */ int idmef_analyzer_print_json(idmef_analyzer_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_analyzer_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_analyzer_get_analyzerid(ptr); if ( field ) { ret = do_write(fd, ", \"analyzerid\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_analyzer_get_name(ptr); if ( field ) { ret = do_write(fd, ", \"name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_analyzer_get_manufacturer(ptr); if ( field ) { ret = do_write(fd, ", \"manufacturer\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_analyzer_get_model(ptr); if ( field ) { ret = do_write(fd, ", \"model\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_analyzer_get_version(ptr); if ( field ) { ret = do_write(fd, ", \"version\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_analyzer_get_class(ptr); if ( field ) { ret = do_write(fd, ", \"class\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_analyzer_get_ostype(ptr); if ( field ) { ret = do_write(fd, ", \"ostype\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_analyzer_get_osversion(ptr); if ( field ) { ret = do_write(fd, ", \"osversion\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { idmef_node_t *field; field = idmef_analyzer_get_node(ptr); if ( field ) { ret = do_write(fd, ", \"node\": "); if ( ret < 0 ) return ret; ret = idmef_node_print_json(field, fd); if ( ret < 0 ) return ret; } } { idmef_process_t *field; field = idmef_analyzer_get_process(ptr); if ( field ) { ret = do_write(fd, ", \"process\": "); if ( ret < 0 ) return ret; ret = idmef_process_print_json(field, fd); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_alertident_json: * @ptr: Pointer to an idmef_alertident_t object. * * This function will convert @ptr to a json, */ int idmef_alertident_print_json(idmef_alertident_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_alertident_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_alertident_get_alertident(ptr); if ( field ) { ret = do_write(fd, ", \"alertident\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_alertident_get_analyzerid(ptr); if ( field ) { ret = do_write(fd, ", \"analyzerid\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_impact_json: * @ptr: Pointer to an idmef_impact_t object. * * This function will convert @ptr to a json, */ int idmef_impact_print_json(idmef_impact_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_impact_t\""); if ( ret < 0 ) return ret; { int *i = idmef_impact_get_severity(ptr); if ( i ) { const char *enumstr = idmef_impact_severity_to_string(*i); if ( enumstr ) { ret = do_write(fd, ", \"severity\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { int *i = idmef_impact_get_completion(ptr); if ( i ) { const char *enumstr = idmef_impact_completion_to_string(*i); if ( enumstr ) { ret = do_write(fd, ", \"completion\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { int i = idmef_impact_get_type(ptr); { const char *enumstr = idmef_impact_type_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"type\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { prelude_string_t *field; field = idmef_impact_get_description(ptr); if ( field ) { ret = do_write(fd, ", \"description\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_action_json: * @ptr: Pointer to an idmef_action_t object. * * This function will convert @ptr to a json, */ int idmef_action_print_json(idmef_action_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_action_t\""); if ( ret < 0 ) return ret; { int i = idmef_action_get_category(ptr); { const char *enumstr = idmef_action_category_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"category\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { prelude_string_t *field; field = idmef_action_get_description(ptr); if ( field ) { ret = do_write(fd, ", \"description\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_confidence_json: * @ptr: Pointer to an idmef_confidence_t object. * * This function will convert @ptr to a json, */ int idmef_confidence_print_json(idmef_confidence_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_confidence_t\""); if ( ret < 0 ) return ret; { int i = idmef_confidence_get_rating(ptr); { const char *enumstr = idmef_confidence_rating_to_string(i); if ( enumstr ) { ret = do_write(fd, ", \"rating\": \""); if ( ret < 0 ) return ret; ret = do_write(fd, enumstr); if ( ret < 0 ) return ret; ret = do_write(fd, "\""); if ( ret < 0 ) return ret; } } } { float field; field = idmef_confidence_get_confidence(ptr); if ( field ) { ret = do_write(fd, ", \"confidence\": "); if ( ret < 0 ) return ret; ret = conv_float(fd, field); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_assessment_json: * @ptr: Pointer to an idmef_assessment_t object. * * This function will convert @ptr to a json, */ int idmef_assessment_print_json(idmef_assessment_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_assessment_t\""); if ( ret < 0 ) return ret; { idmef_impact_t *field; field = idmef_assessment_get_impact(ptr); if ( field ) { ret = do_write(fd, ", \"impact\": "); if ( ret < 0 ) return ret; ret = idmef_impact_print_json(field, fd); if ( ret < 0 ) return ret; } } { idmef_action_t *elem = NULL; int first = 1; while ( (elem = idmef_assessment_get_next_action(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"action\": ["); } if ( ret < 0 ) return ret; ret = idmef_action_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } { idmef_confidence_t *field; field = idmef_assessment_get_confidence(ptr); if ( field ) { ret = do_write(fd, ", \"confidence\": "); if ( ret < 0 ) return ret; ret = idmef_confidence_print_json(field, fd); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_tool_alert_json: * @ptr: Pointer to an idmef_tool_alert_t object. * * This function will convert @ptr to a json, */ int idmef_tool_alert_print_json(idmef_tool_alert_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_tool_alert_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_tool_alert_get_name(ptr); if ( field ) { ret = do_write(fd, ", \"name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { prelude_string_t *field; field = idmef_tool_alert_get_command(ptr); if ( field ) { ret = do_write(fd, ", \"command\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { idmef_alertident_t *elem = NULL; int first = 1; while ( (elem = idmef_tool_alert_get_next_alertident(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"alertident\": ["); } if ( ret < 0 ) return ret; ret = idmef_alertident_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_correlation_alert_json: * @ptr: Pointer to an idmef_correlation_alert_t object. * * This function will convert @ptr to a json, */ int idmef_correlation_alert_print_json(idmef_correlation_alert_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_correlation_alert_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_correlation_alert_get_name(ptr); if ( field ) { ret = do_write(fd, ", \"name\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { idmef_alertident_t *elem = NULL; int first = 1; while ( (elem = idmef_correlation_alert_get_next_alertident(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"alertident\": ["); } if ( ret < 0 ) return ret; ret = idmef_alertident_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_overflow_alert_json: * @ptr: Pointer to an idmef_overflow_alert_t object. * * This function will convert @ptr to a json, */ int idmef_overflow_alert_print_json(idmef_overflow_alert_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_overflow_alert_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_overflow_alert_get_program(ptr); if ( field ) { ret = do_write(fd, ", \"program\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { uint32_t *field; field = idmef_overflow_alert_get_size(ptr); if ( field ) { ret = do_write(fd, ", \"size\": "); if ( ret < 0 ) return ret; ret = conv_uint32(fd, *field); if ( ret < 0 ) return ret; } } { idmef_data_t *field; field = idmef_overflow_alert_get_buffer(ptr); if ( field ) { ret = do_write(fd, ", \"buffer\": "); if ( ret < 0 ) return ret; ret = conv_data(fd, field); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_alert_json: * @ptr: Pointer to an idmef_alert_t object. * * This function will convert @ptr to a json, */ int idmef_alert_print_json(idmef_alert_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_alert_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_alert_get_messageid(ptr); if ( field ) { ret = do_write(fd, ", \"messageid\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { idmef_analyzer_t *elem = NULL; int first = 1; while ( (elem = idmef_alert_get_next_analyzer(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"analyzer\": ["); } if ( ret < 0 ) return ret; ret = idmef_analyzer_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } { idmef_time_t *field; field = idmef_alert_get_create_time(ptr); if ( field ) { ret = do_write(fd, ", \"create_time\": "); if ( ret < 0 ) return ret; ret = conv_time(fd, field); if ( ret < 0 ) return ret; } } { idmef_classification_t *field; field = idmef_alert_get_classification(ptr); if ( field ) { ret = do_write(fd, ", \"classification\": "); if ( ret < 0 ) return ret; ret = idmef_classification_print_json(field, fd); if ( ret < 0 ) return ret; } } { idmef_time_t *field; field = idmef_alert_get_detect_time(ptr); if ( field ) { ret = do_write(fd, ", \"detect_time\": "); if ( ret < 0 ) return ret; ret = conv_time(fd, field); if ( ret < 0 ) return ret; } } { idmef_time_t *field; field = idmef_alert_get_analyzer_time(ptr); if ( field ) { ret = do_write(fd, ", \"analyzer_time\": "); if ( ret < 0 ) return ret; ret = conv_time(fd, field); if ( ret < 0 ) return ret; } } { idmef_source_t *elem = NULL; int first = 1; while ( (elem = idmef_alert_get_next_source(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"source\": ["); } if ( ret < 0 ) return ret; ret = idmef_source_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } { idmef_target_t *elem = NULL; int first = 1; while ( (elem = idmef_alert_get_next_target(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"target\": ["); } if ( ret < 0 ) return ret; ret = idmef_target_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } { idmef_assessment_t *field; field = idmef_alert_get_assessment(ptr); if ( field ) { ret = do_write(fd, ", \"assessment\": "); if ( ret < 0 ) return ret; ret = idmef_assessment_print_json(field, fd); if ( ret < 0 ) return ret; } } { idmef_additional_data_t *elem = NULL; int first = 1; while ( (elem = idmef_alert_get_next_additional_data(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"additional_data\": ["); } if ( ret < 0 ) return ret; ret = idmef_additional_data_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } switch ( idmef_alert_get_type(ptr) ) { case IDMEF_ALERT_TYPE_TOOL: ret = do_write(fd, ", \"tool_alert\": "); if ( ret < 0 ) return ret; ret = idmef_tool_alert_print_json(idmef_alert_get_tool_alert(ptr), fd); if ( ret < 0 ) return ret; break; case IDMEF_ALERT_TYPE_CORRELATION: ret = do_write(fd, ", \"correlation_alert\": "); if ( ret < 0 ) return ret; ret = idmef_correlation_alert_print_json(idmef_alert_get_correlation_alert(ptr), fd); if ( ret < 0 ) return ret; break; case IDMEF_ALERT_TYPE_OVERFLOW: ret = do_write(fd, ", \"overflow_alert\": "); if ( ret < 0 ) return ret; ret = idmef_overflow_alert_print_json(idmef_alert_get_overflow_alert(ptr), fd); if ( ret < 0 ) return ret; break; default: break; } return do_write(fd, "}"); } /** * idmef_heartbeat_json: * @ptr: Pointer to an idmef_heartbeat_t object. * * This function will convert @ptr to a json, */ int idmef_heartbeat_print_json(idmef_heartbeat_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_heartbeat_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_heartbeat_get_messageid(ptr); if ( field ) { ret = do_write(fd, ", \"messageid\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } { idmef_analyzer_t *elem = NULL; int first = 1; while ( (elem = idmef_heartbeat_get_next_analyzer(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"analyzer\": ["); } if ( ret < 0 ) return ret; ret = idmef_analyzer_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } { idmef_time_t *field; field = idmef_heartbeat_get_create_time(ptr); if ( field ) { ret = do_write(fd, ", \"create_time\": "); if ( ret < 0 ) return ret; ret = conv_time(fd, field); if ( ret < 0 ) return ret; } } { idmef_time_t *field; field = idmef_heartbeat_get_analyzer_time(ptr); if ( field ) { ret = do_write(fd, ", \"analyzer_time\": "); if ( ret < 0 ) return ret; ret = conv_time(fd, field); if ( ret < 0 ) return ret; } } { uint32_t *field; field = idmef_heartbeat_get_heartbeat_interval(ptr); if ( field ) { ret = do_write(fd, ", \"heartbeat_interval\": "); if ( ret < 0 ) return ret; ret = conv_uint32(fd, *field); if ( ret < 0 ) return ret; } } { idmef_additional_data_t *elem = NULL; int first = 1; while ( (elem = idmef_heartbeat_get_next_additional_data(ptr, elem)) ) { if ( ! first ) ret = do_write(fd, ", "); else { first = 0; ret = do_write(fd, ", \"additional_data\": ["); } if ( ret < 0 ) return ret; ret = idmef_additional_data_print_json(elem, fd); if ( ret < 0 ) return ret; } if ( ! first ) { ret = do_write(fd, "]"); if ( ret < 0 ) return ret; } } return do_write(fd, "}"); } /** * idmef_message_json: * @ptr: Pointer to an idmef_message_t object. * * This function will convert @ptr to a json, */ int idmef_message_print_json(idmef_message_t *ptr, prelude_io_t *fd) { int ret; if ( ! ptr ) return 0; ret = do_write(fd, "{\"_self\": \"idmef_message_t\""); if ( ret < 0 ) return ret; { prelude_string_t *field; field = idmef_message_get_version(ptr); if ( field ) { ret = do_write(fd, ", \"version\": "); if ( ret < 0 ) return ret; ret = conv_string(fd, field); if ( ret < 0 ) return ret; } } switch ( idmef_message_get_type(ptr) ) { case IDMEF_MESSAGE_TYPE_ALERT: ret = do_write(fd, ", \"alert\": "); if ( ret < 0 ) return ret; ret = idmef_alert_print_json(idmef_message_get_alert(ptr), fd); if ( ret < 0 ) return ret; break; case IDMEF_MESSAGE_TYPE_HEARTBEAT: ret = do_write(fd, ", \"heartbeat\": "); if ( ret < 0 ) return ret; ret = idmef_heartbeat_print_json(idmef_message_get_heartbeat(ptr), fd); if ( ret < 0 ) return ret; break; default: break; } return do_write(fd, "}"); }libprelude-5.2.0/src/PaxHeaders.14770/idmef-message-read.c0000644000000000000000000000010713726163410021223 xustar000000000000000024 mtime=1599661832.672 24 atime=1599661832.779 23 ctime=1599661999.85 libprelude-5.2.0/src/idmef-message-read.c0000644000000000000000000032532213726163410020227 0ustar00rootroot00000000000000 /***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* Auto-generated by the GenerateIDMEFMessageReadC package */ #include "config.h" #include #include #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_IDMEF_MESSAGE_READ #include "prelude-error.h" #include "prelude-inttypes.h" #include "prelude-list.h" #include "prelude-extract.h" #include "prelude-io.h" #include "idmef-message-id.h" #include "idmef.h" #include "idmef-tree-wrap.h" #include "idmef-message-read.h" #define prelude_extract_string_safe(out, buf, len, msg) extract_string_safe_f(__FUNCTION__, __LINE__, out, buf, len) static inline int extract_string_safe_f(const char *f, int line, prelude_string_t **out, char *buf, size_t len) { int ret; /* * we use len - 1 since len is supposed to include \0 to avoid making a dup. */ ret = prelude_string_new_ref_fast(out, buf, len - 1); if ( ret < 0 ) ret = prelude_error_verbose(prelude_error_get_code(ret), "%s:%d could not extract IDMEF string: %s", f, line, prelude_strerror(ret)); return ret; } static inline int prelude_extract_time_safe(idmef_time_t **out, void *buf, size_t len, prelude_msg_t *msg) { int ret; /* * sizeof(sec) + sizeof(usec) + sizeof(gmt offset). */ if ( len != 12 ) return prelude_error_make(PRELUDE_ERROR_SOURCE_EXTRACT, PRELUDE_ERROR_INVAL_IDMEF_TIME); ret = idmef_time_new(out); if ( ret < 0 ) return ret; idmef_time_set_sec(*out, prelude_extract_uint32(buf)); idmef_time_set_usec(*out, prelude_extract_uint32((unsigned char *) buf + 4)); idmef_time_set_gmt_offset(*out, prelude_extract_int32((unsigned char *) buf + 8)); return 0; } static inline int prelude_extract_data_safe(idmef_data_t **out, void *buf, uint32_t len, prelude_msg_t *msg) { int ret; uint8_t tag; idmef_data_type_t type = 0; ret = prelude_extract_uint32_safe(&type, buf, len); if ( ret < 0 ) return ret; ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; *out = NULL; switch ( type ) { case IDMEF_DATA_TYPE_CHAR: { uint8_t tmp = 0; ret = prelude_extract_uint8_safe(&tmp, buf, len); if ( ret < 0 ) return ret; ret = idmef_data_new_char(out, (char) tmp); break; } case IDMEF_DATA_TYPE_BYTE: { uint8_t tmp = 0; ret = prelude_extract_uint8_safe(&tmp, buf, len); if ( ret < 0 ) return ret; ret = idmef_data_new_byte(out, tmp); break; } case IDMEF_DATA_TYPE_UINT32: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; ret = idmef_data_new_int(out, tmp); break; } case IDMEF_DATA_TYPE_INT: { uint64_t tmp = 0; ret = prelude_extract_uint64_safe(&tmp, buf, len); if ( ret < 0 ) return ret; ret = idmef_data_new_int(out, tmp); break; } case IDMEF_DATA_TYPE_FLOAT: { float tmp = 0; ret = prelude_extract_float_safe(&tmp, buf, len); if ( ret < 0 ) return ret; ret = idmef_data_new_float(out, tmp); break; } case IDMEF_DATA_TYPE_BYTE_STRING: { ret = idmef_data_new_ptr_ref_fast(out, type, buf, len); break; } case IDMEF_DATA_TYPE_CHAR_STRING: { const char *tmp = NULL; ret = prelude_extract_characters_safe(&tmp, buf, len); if ( ret < 0 ) return ret; ret = idmef_data_new_ptr_ref_fast(out, type, tmp, len); break; } case IDMEF_DATA_TYPE_TIME: { idmef_time_t *time; ret = prelude_extract_time_safe(&time, buf, len, msg); if ( ret < 0 ) return ret; ret = idmef_data_new_time(out, time); break; } case IDMEF_DATA_TYPE_UNKNOWN: /* nop */; } return ret; } /** * idmef_additional_data_read: * @additional_data: Pointer to a #idmef_additional_data_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_additional_data from the @msg message, and * store it into @additional_data. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_additional_data_read(idmef_additional_data_t *additional_data, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_ADDITIONAL_DATA_MEANING: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_additional_data_set_meaning(additional_data, tmp); break; } case IDMEF_MSG_ADDITIONAL_DATA_TYPE: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_additional_data_set_type(additional_data, tmp); break; } case IDMEF_MSG_ADDITIONAL_DATA_DATA: { idmef_data_t *tmp = NULL; ret = prelude_extract_data_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_additional_data_set_data(additional_data, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_additional_data_t: '%u'", tag); } } return 0; } /** * idmef_reference_read: * @reference: Pointer to a #idmef_reference_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_reference from the @msg message, and * store it into @reference. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_reference_read(idmef_reference_t *reference, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_REFERENCE_ORIGIN: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_reference_set_origin(reference, tmp); break; } case IDMEF_MSG_REFERENCE_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_reference_set_name(reference, tmp); break; } case IDMEF_MSG_REFERENCE_URL: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_reference_set_url(reference, tmp); break; } case IDMEF_MSG_REFERENCE_MEANING: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_reference_set_meaning(reference, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_reference_t: '%u'", tag); } } return 0; } /** * idmef_classification_read: * @classification: Pointer to a #idmef_classification_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_classification from the @msg message, and * store it into @classification. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_classification_read(idmef_classification_t *classification, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_CLASSIFICATION_IDENT: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_classification_set_ident(classification, tmp); break; } case IDMEF_MSG_CLASSIFICATION_TEXT: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_classification_set_text(classification, tmp); break; } case IDMEF_MSG_REFERENCE_TAG: { int ret; idmef_reference_t *tmp = NULL; ret = idmef_classification_new_reference(classification, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_reference_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_classification_t: '%u'", tag); } } return 0; } /** * idmef_user_id_read: * @user_id: Pointer to a #idmef_user_id_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_user_id from the @msg message, and * store it into @user_id. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_user_id_read(idmef_user_id_t *user_id, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_USER_ID_IDENT: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_user_id_set_ident(user_id, tmp); break; } case IDMEF_MSG_USER_ID_TYPE: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_user_id_set_type(user_id, tmp); break; } case IDMEF_MSG_USER_ID_TTY: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_user_id_set_tty(user_id, tmp); break; } case IDMEF_MSG_USER_ID_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_user_id_set_name(user_id, tmp); break; } case IDMEF_MSG_USER_ID_NUMBER: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_user_id_set_number(user_id, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_user_id_t: '%u'", tag); } } return 0; } /** * idmef_user_read: * @user: Pointer to a #idmef_user_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_user from the @msg message, and * store it into @user. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_user_read(idmef_user_t *user, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_USER_IDENT: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_user_set_ident(user, tmp); break; } case IDMEF_MSG_USER_CATEGORY: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_user_set_category(user, tmp); break; } case IDMEF_MSG_USER_ID_TAG: { int ret; idmef_user_id_t *tmp = NULL; ret = idmef_user_new_user_id(user, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_user_id_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_user_t: '%u'", tag); } } return 0; } /** * idmef_address_read: * @address: Pointer to a #idmef_address_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_address from the @msg message, and * store it into @address. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_address_read(idmef_address_t *address, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_ADDRESS_IDENT: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_address_set_ident(address, tmp); break; } case IDMEF_MSG_ADDRESS_CATEGORY: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_address_set_category(address, tmp); break; } case IDMEF_MSG_ADDRESS_VLAN_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_address_set_vlan_name(address, tmp); break; } case IDMEF_MSG_ADDRESS_VLAN_NUM: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_address_set_vlan_num(address, tmp); break; } case IDMEF_MSG_ADDRESS_ADDRESS: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_address_set_address(address, tmp); break; } case IDMEF_MSG_ADDRESS_NETMASK: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_address_set_netmask(address, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_address_t: '%u'", tag); } } return 0; } /** * idmef_process_read: * @process: Pointer to a #idmef_process_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_process from the @msg message, and * store it into @process. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_process_read(idmef_process_t *process, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_PROCESS_IDENT: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_process_set_ident(process, tmp); break; } case IDMEF_MSG_PROCESS_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_process_set_name(process, tmp); break; } case IDMEF_MSG_PROCESS_PID: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_process_set_pid(process, tmp); break; } case IDMEF_MSG_PROCESS_PATH: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_process_set_path(process, tmp); break; } case IDMEF_MSG_PROCESS_ARG: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_process_set_arg(process, tmp, -1); break; } case IDMEF_MSG_PROCESS_ENV: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_process_set_env(process, tmp, -1); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_process_t: '%u'", tag); } } return 0; } /** * idmef_web_service_read: * @web_service: Pointer to a #idmef_web_service_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_web_service from the @msg message, and * store it into @web_service. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_web_service_read(idmef_web_service_t *web_service, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_WEB_SERVICE_URL: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_web_service_set_url(web_service, tmp); break; } case IDMEF_MSG_WEB_SERVICE_CGI: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_web_service_set_cgi(web_service, tmp); break; } case IDMEF_MSG_WEB_SERVICE_HTTP_METHOD: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_web_service_set_http_method(web_service, tmp); break; } case IDMEF_MSG_WEB_SERVICE_ARG: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_web_service_set_arg(web_service, tmp, -1); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_web_service_t: '%u'", tag); } } return 0; } /** * idmef_snmp_service_read: * @snmp_service: Pointer to a #idmef_snmp_service_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_snmp_service from the @msg message, and * store it into @snmp_service. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_snmp_service_read(idmef_snmp_service_t *snmp_service, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_SNMP_SERVICE_OID: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_snmp_service_set_oid(snmp_service, tmp); break; } case IDMEF_MSG_SNMP_SERVICE_MESSAGE_PROCESSING_MODEL: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_snmp_service_set_message_processing_model(snmp_service, tmp); break; } case IDMEF_MSG_SNMP_SERVICE_SECURITY_MODEL: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_snmp_service_set_security_model(snmp_service, tmp); break; } case IDMEF_MSG_SNMP_SERVICE_SECURITY_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_snmp_service_set_security_name(snmp_service, tmp); break; } case IDMEF_MSG_SNMP_SERVICE_SECURITY_LEVEL: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_snmp_service_set_security_level(snmp_service, tmp); break; } case IDMEF_MSG_SNMP_SERVICE_CONTEXT_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_snmp_service_set_context_name(snmp_service, tmp); break; } case IDMEF_MSG_SNMP_SERVICE_CONTEXT_ENGINE_ID: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_snmp_service_set_context_engine_id(snmp_service, tmp); break; } case IDMEF_MSG_SNMP_SERVICE_COMMAND: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_snmp_service_set_command(snmp_service, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_snmp_service_t: '%u'", tag); } } return 0; } /** * idmef_service_read: * @service: Pointer to a #idmef_service_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_service from the @msg message, and * store it into @service. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_service_read(idmef_service_t *service, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_SERVICE_IDENT: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_service_set_ident(service, tmp); break; } case IDMEF_MSG_SERVICE_IP_VERSION: { uint8_t tmp = 0; ret = prelude_extract_uint8_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_service_set_ip_version(service, tmp); break; } case IDMEF_MSG_SERVICE_IANA_PROTOCOL_NUMBER: { uint8_t tmp = 0; ret = prelude_extract_uint8_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_service_set_iana_protocol_number(service, tmp); break; } case IDMEF_MSG_SERVICE_IANA_PROTOCOL_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_service_set_iana_protocol_name(service, tmp); break; } case IDMEF_MSG_SERVICE_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_service_set_name(service, tmp); break; } case IDMEF_MSG_SERVICE_PORT: { uint16_t tmp = 0; ret = prelude_extract_uint16_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_service_set_port(service, tmp); break; } case IDMEF_MSG_SERVICE_PORTLIST: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_service_set_portlist(service, tmp); break; } case IDMEF_MSG_SERVICE_PROTOCOL: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_service_set_protocol(service, tmp); break; } case IDMEF_MSG_WEB_SERVICE_TAG: { int ret; idmef_web_service_t *tmp = NULL; ret = idmef_service_new_web_service(service, &tmp); if ( ret < 0 ) return ret; ret = idmef_web_service_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_SNMP_SERVICE_TAG: { int ret; idmef_snmp_service_t *tmp = NULL; ret = idmef_service_new_snmp_service(service, &tmp); if ( ret < 0 ) return ret; ret = idmef_snmp_service_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_service_t: '%u'", tag); } } return 0; } /** * idmef_node_read: * @node: Pointer to a #idmef_node_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_node from the @msg message, and * store it into @node. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_node_read(idmef_node_t *node, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_NODE_IDENT: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_node_set_ident(node, tmp); break; } case IDMEF_MSG_NODE_CATEGORY: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_node_set_category(node, tmp); break; } case IDMEF_MSG_NODE_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_node_set_name(node, tmp); break; } case IDMEF_MSG_NODE_LOCATION: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_node_set_location(node, tmp); break; } case IDMEF_MSG_ADDRESS_TAG: { int ret; idmef_address_t *tmp = NULL; ret = idmef_node_new_address(node, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_address_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_node_t: '%u'", tag); } } return 0; } /** * idmef_source_read: * @source: Pointer to a #idmef_source_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_source from the @msg message, and * store it into @source. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_source_read(idmef_source_t *source, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_SOURCE_IDENT: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_source_set_ident(source, tmp); break; } case IDMEF_MSG_SOURCE_SPOOFED: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_source_set_spoofed(source, tmp); break; } case IDMEF_MSG_SOURCE_INTERFACE: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_source_set_interface(source, tmp); break; } case IDMEF_MSG_NODE_TAG: { int ret; idmef_node_t *tmp = NULL; ret = idmef_source_new_node(source, &tmp); if ( ret < 0 ) return ret; ret = idmef_node_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_USER_TAG: { int ret; idmef_user_t *tmp = NULL; ret = idmef_source_new_user(source, &tmp); if ( ret < 0 ) return ret; ret = idmef_user_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_PROCESS_TAG: { int ret; idmef_process_t *tmp = NULL; ret = idmef_source_new_process(source, &tmp); if ( ret < 0 ) return ret; ret = idmef_process_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_SERVICE_TAG: { int ret; idmef_service_t *tmp = NULL; ret = idmef_source_new_service(source, &tmp); if ( ret < 0 ) return ret; ret = idmef_service_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_source_t: '%u'", tag); } } return 0; } /** * idmef_file_access_read: * @file_access: Pointer to a #idmef_file_access_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_file_access from the @msg message, and * store it into @file_access. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_file_access_read(idmef_file_access_t *file_access, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_USER_ID_TAG: { int ret; idmef_user_id_t *tmp = NULL; ret = idmef_file_access_new_user_id(file_access, &tmp); if ( ret < 0 ) return ret; ret = idmef_user_id_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_FILE_ACCESS_PERMISSION: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_file_access_set_permission(file_access, tmp, -1); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_file_access_t: '%u'", tag); } } return 0; } /** * idmef_inode_read: * @inode: Pointer to a #idmef_inode_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_inode from the @msg message, and * store it into @inode. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_inode_read(idmef_inode_t *inode, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_INODE_CHANGE_TIME: { idmef_time_t *tmp = NULL; ret = prelude_extract_time_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_inode_set_change_time(inode, tmp); break; } case IDMEF_MSG_INODE_NUMBER: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_inode_set_number(inode, tmp); break; } case IDMEF_MSG_INODE_MAJOR_DEVICE: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_inode_set_major_device(inode, tmp); break; } case IDMEF_MSG_INODE_MINOR_DEVICE: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_inode_set_minor_device(inode, tmp); break; } case IDMEF_MSG_INODE_C_MAJOR_DEVICE: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_inode_set_c_major_device(inode, tmp); break; } case IDMEF_MSG_INODE_C_MINOR_DEVICE: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_inode_set_c_minor_device(inode, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_inode_t: '%u'", tag); } } return 0; } /** * idmef_checksum_read: * @checksum: Pointer to a #idmef_checksum_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_checksum from the @msg message, and * store it into @checksum. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_checksum_read(idmef_checksum_t *checksum, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_CHECKSUM_VALUE: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_checksum_set_value(checksum, tmp); break; } case IDMEF_MSG_CHECKSUM_KEY: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_checksum_set_key(checksum, tmp); break; } case IDMEF_MSG_CHECKSUM_ALGORITHM: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_checksum_set_algorithm(checksum, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_checksum_t: '%u'", tag); } } return 0; } /** * idmef_file_read: * @file: Pointer to a #idmef_file_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_file from the @msg message, and * store it into @file. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_file_read(idmef_file_t *file, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_FILE_IDENT: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_file_set_ident(file, tmp); break; } case IDMEF_MSG_FILE_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_file_set_name(file, tmp); break; } case IDMEF_MSG_FILE_PATH: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_file_set_path(file, tmp); break; } case IDMEF_MSG_FILE_CREATE_TIME: { idmef_time_t *tmp = NULL; ret = prelude_extract_time_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_file_set_create_time(file, tmp); break; } case IDMEF_MSG_FILE_MODIFY_TIME: { idmef_time_t *tmp = NULL; ret = prelude_extract_time_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_file_set_modify_time(file, tmp); break; } case IDMEF_MSG_FILE_ACCESS_TIME: { idmef_time_t *tmp = NULL; ret = prelude_extract_time_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_file_set_access_time(file, tmp); break; } case IDMEF_MSG_FILE_DATA_SIZE: { uint64_t tmp = 0; ret = prelude_extract_uint64_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_file_set_data_size(file, tmp); break; } case IDMEF_MSG_FILE_DISK_SIZE: { uint64_t tmp = 0; ret = prelude_extract_uint64_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_file_set_disk_size(file, tmp); break; } case IDMEF_MSG_FILE_ACCESS_TAG: { int ret; idmef_file_access_t *tmp = NULL; ret = idmef_file_new_file_access(file, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_file_access_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_LINKAGE_TAG: { int ret; idmef_linkage_t *tmp = NULL; ret = idmef_file_new_linkage(file, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_linkage_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_INODE_TAG: { int ret; idmef_inode_t *tmp = NULL; ret = idmef_file_new_inode(file, &tmp); if ( ret < 0 ) return ret; ret = idmef_inode_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_CHECKSUM_TAG: { int ret; idmef_checksum_t *tmp = NULL; ret = idmef_file_new_checksum(file, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_checksum_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_FILE_CATEGORY: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_file_set_category(file, tmp); break; } case IDMEF_MSG_FILE_FSTYPE: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_file_set_fstype(file, tmp); break; } case IDMEF_MSG_FILE_FILE_TYPE: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_file_set_file_type(file, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_file_t: '%u'", tag); } } return 0; } /** * idmef_linkage_read: * @linkage: Pointer to a #idmef_linkage_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_linkage from the @msg message, and * store it into @linkage. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_linkage_read(idmef_linkage_t *linkage, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_LINKAGE_CATEGORY: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_linkage_set_category(linkage, tmp); break; } case IDMEF_MSG_LINKAGE_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_linkage_set_name(linkage, tmp); break; } case IDMEF_MSG_LINKAGE_PATH: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_linkage_set_path(linkage, tmp); break; } case IDMEF_MSG_FILE_TAG: { int ret; idmef_file_t *tmp = NULL; ret = idmef_linkage_new_file(linkage, &tmp); if ( ret < 0 ) return ret; ret = idmef_file_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_linkage_t: '%u'", tag); } } return 0; } /** * idmef_target_read: * @target: Pointer to a #idmef_target_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_target from the @msg message, and * store it into @target. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_target_read(idmef_target_t *target, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_TARGET_IDENT: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_target_set_ident(target, tmp); break; } case IDMEF_MSG_TARGET_DECOY: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_target_set_decoy(target, tmp); break; } case IDMEF_MSG_TARGET_INTERFACE: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_target_set_interface(target, tmp); break; } case IDMEF_MSG_NODE_TAG: { int ret; idmef_node_t *tmp = NULL; ret = idmef_target_new_node(target, &tmp); if ( ret < 0 ) return ret; ret = idmef_node_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_USER_TAG: { int ret; idmef_user_t *tmp = NULL; ret = idmef_target_new_user(target, &tmp); if ( ret < 0 ) return ret; ret = idmef_user_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_PROCESS_TAG: { int ret; idmef_process_t *tmp = NULL; ret = idmef_target_new_process(target, &tmp); if ( ret < 0 ) return ret; ret = idmef_process_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_SERVICE_TAG: { int ret; idmef_service_t *tmp = NULL; ret = idmef_target_new_service(target, &tmp); if ( ret < 0 ) return ret; ret = idmef_service_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_FILE_TAG: { int ret; idmef_file_t *tmp = NULL; ret = idmef_target_new_file(target, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_file_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_target_t: '%u'", tag); } } return 0; } /** * idmef_analyzer_read: * @analyzer: Pointer to a #idmef_analyzer_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_analyzer from the @msg message, and * store it into @analyzer. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_analyzer_read(idmef_analyzer_t *analyzer, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_ANALYZER_ANALYZERID: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_analyzer_set_analyzerid(analyzer, tmp); break; } case IDMEF_MSG_ANALYZER_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_analyzer_set_name(analyzer, tmp); break; } case IDMEF_MSG_ANALYZER_MANUFACTURER: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_analyzer_set_manufacturer(analyzer, tmp); break; } case IDMEF_MSG_ANALYZER_MODEL: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_analyzer_set_model(analyzer, tmp); break; } case IDMEF_MSG_ANALYZER_VERSION: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_analyzer_set_version(analyzer, tmp); break; } case IDMEF_MSG_ANALYZER_CLASS: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_analyzer_set_class(analyzer, tmp); break; } case IDMEF_MSG_ANALYZER_OSTYPE: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_analyzer_set_ostype(analyzer, tmp); break; } case IDMEF_MSG_ANALYZER_OSVERSION: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_analyzer_set_osversion(analyzer, tmp); break; } case IDMEF_MSG_NODE_TAG: { int ret; idmef_node_t *tmp = NULL; ret = idmef_analyzer_new_node(analyzer, &tmp); if ( ret < 0 ) return ret; ret = idmef_node_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_PROCESS_TAG: { int ret; idmef_process_t *tmp = NULL; ret = idmef_analyzer_new_process(analyzer, &tmp); if ( ret < 0 ) return ret; ret = idmef_process_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_analyzer_t: '%u'", tag); } } return 0; } /** * idmef_alertident_read: * @alertident: Pointer to a #idmef_alertident_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_alertident from the @msg message, and * store it into @alertident. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_alertident_read(idmef_alertident_t *alertident, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_ALERTIDENT_ALERTIDENT: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_alertident_set_alertident(alertident, tmp); break; } case IDMEF_MSG_ALERTIDENT_ANALYZERID: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_alertident_set_analyzerid(alertident, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_alertident_t: '%u'", tag); } } return 0; } /** * idmef_impact_read: * @impact: Pointer to a #idmef_impact_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_impact from the @msg message, and * store it into @impact. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_impact_read(idmef_impact_t *impact, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_IMPACT_SEVERITY: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_impact_set_severity(impact, tmp); break; } case IDMEF_MSG_IMPACT_COMPLETION: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_impact_set_completion(impact, tmp); break; } case IDMEF_MSG_IMPACT_TYPE: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_impact_set_type(impact, tmp); break; } case IDMEF_MSG_IMPACT_DESCRIPTION: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_impact_set_description(impact, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_impact_t: '%u'", tag); } } return 0; } /** * idmef_action_read: * @action: Pointer to a #idmef_action_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_action from the @msg message, and * store it into @action. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_action_read(idmef_action_t *action, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_ACTION_CATEGORY: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_action_set_category(action, tmp); break; } case IDMEF_MSG_ACTION_DESCRIPTION: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_action_set_description(action, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_action_t: '%u'", tag); } } return 0; } /** * idmef_confidence_read: * @confidence: Pointer to a #idmef_confidence_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_confidence from the @msg message, and * store it into @confidence. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_confidence_read(idmef_confidence_t *confidence, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_CONFIDENCE_RATING: { int32_t tmp = 0; ret = prelude_extract_int32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_confidence_set_rating(confidence, tmp); break; } case IDMEF_MSG_CONFIDENCE_CONFIDENCE: { float tmp = 0; ret = prelude_extract_float_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_confidence_set_confidence(confidence, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_confidence_t: '%u'", tag); } } return 0; } /** * idmef_assessment_read: * @assessment: Pointer to a #idmef_assessment_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_assessment from the @msg message, and * store it into @assessment. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_assessment_read(idmef_assessment_t *assessment, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_IMPACT_TAG: { int ret; idmef_impact_t *tmp = NULL; ret = idmef_assessment_new_impact(assessment, &tmp); if ( ret < 0 ) return ret; ret = idmef_impact_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_ACTION_TAG: { int ret; idmef_action_t *tmp = NULL; ret = idmef_assessment_new_action(assessment, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_action_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_CONFIDENCE_TAG: { int ret; idmef_confidence_t *tmp = NULL; ret = idmef_assessment_new_confidence(assessment, &tmp); if ( ret < 0 ) return ret; ret = idmef_confidence_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_assessment_t: '%u'", tag); } } return 0; } /** * idmef_tool_alert_read: * @tool_alert: Pointer to a #idmef_tool_alert_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_tool_alert from the @msg message, and * store it into @tool_alert. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_tool_alert_read(idmef_tool_alert_t *tool_alert, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_TOOL_ALERT_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_tool_alert_set_name(tool_alert, tmp); break; } case IDMEF_MSG_TOOL_ALERT_COMMAND: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_tool_alert_set_command(tool_alert, tmp); break; } case IDMEF_MSG_ALERTIDENT_TAG: { int ret; idmef_alertident_t *tmp = NULL; ret = idmef_tool_alert_new_alertident(tool_alert, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_alertident_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_tool_alert_t: '%u'", tag); } } return 0; } /** * idmef_correlation_alert_read: * @correlation_alert: Pointer to a #idmef_correlation_alert_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_correlation_alert from the @msg message, and * store it into @correlation_alert. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_correlation_alert_read(idmef_correlation_alert_t *correlation_alert, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_CORRELATION_ALERT_NAME: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_correlation_alert_set_name(correlation_alert, tmp); break; } case IDMEF_MSG_ALERTIDENT_TAG: { int ret; idmef_alertident_t *tmp = NULL; ret = idmef_correlation_alert_new_alertident(correlation_alert, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_alertident_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_correlation_alert_t: '%u'", tag); } } return 0; } /** * idmef_overflow_alert_read: * @overflow_alert: Pointer to a #idmef_overflow_alert_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_overflow_alert from the @msg message, and * store it into @overflow_alert. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_overflow_alert_read(idmef_overflow_alert_t *overflow_alert, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_OVERFLOW_ALERT_PROGRAM: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_overflow_alert_set_program(overflow_alert, tmp); break; } case IDMEF_MSG_OVERFLOW_ALERT_SIZE: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_overflow_alert_set_size(overflow_alert, tmp); break; } case IDMEF_MSG_OVERFLOW_ALERT_BUFFER: { idmef_data_t *tmp = NULL; ret = prelude_extract_data_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_overflow_alert_set_buffer(overflow_alert, tmp); break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_overflow_alert_t: '%u'", tag); } } return 0; } /** * idmef_alert_read: * @alert: Pointer to a #idmef_alert_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_alert from the @msg message, and * store it into @alert. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_alert_read(idmef_alert_t *alert, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_ALERT_MESSAGEID: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_alert_set_messageid(alert, tmp); break; } case IDMEF_MSG_ANALYZER_TAG: { int ret; idmef_analyzer_t *tmp = NULL; ret = idmef_alert_new_analyzer(alert, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_analyzer_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_ALERT_CREATE_TIME: { idmef_time_t *tmp = NULL; ret = prelude_extract_time_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_alert_set_create_time(alert, tmp); break; } case IDMEF_MSG_CLASSIFICATION_TAG: { int ret; idmef_classification_t *tmp = NULL; ret = idmef_alert_new_classification(alert, &tmp); if ( ret < 0 ) return ret; ret = idmef_classification_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_ALERT_DETECT_TIME: { idmef_time_t *tmp = NULL; ret = prelude_extract_time_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_alert_set_detect_time(alert, tmp); break; } case IDMEF_MSG_ALERT_ANALYZER_TIME: { idmef_time_t *tmp = NULL; ret = prelude_extract_time_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_alert_set_analyzer_time(alert, tmp); break; } case IDMEF_MSG_SOURCE_TAG: { int ret; idmef_source_t *tmp = NULL; ret = idmef_alert_new_source(alert, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_source_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_TARGET_TAG: { int ret; idmef_target_t *tmp = NULL; ret = idmef_alert_new_target(alert, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_target_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_ASSESSMENT_TAG: { int ret; idmef_assessment_t *tmp = NULL; ret = idmef_alert_new_assessment(alert, &tmp); if ( ret < 0 ) return ret; ret = idmef_assessment_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_ADDITIONAL_DATA_TAG: { int ret; idmef_additional_data_t *tmp = NULL; ret = idmef_alert_new_additional_data(alert, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_additional_data_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_TOOL_ALERT_TAG: { int ret; idmef_tool_alert_t *tmp = NULL; ret = idmef_alert_new_tool_alert(alert, &tmp); if ( ret < 0 ) return ret; ret = idmef_tool_alert_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_CORRELATION_ALERT_TAG: { int ret; idmef_correlation_alert_t *tmp = NULL; ret = idmef_alert_new_correlation_alert(alert, &tmp); if ( ret < 0 ) return ret; ret = idmef_correlation_alert_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_OVERFLOW_ALERT_TAG: { int ret; idmef_overflow_alert_t *tmp = NULL; ret = idmef_alert_new_overflow_alert(alert, &tmp); if ( ret < 0 ) return ret; ret = idmef_overflow_alert_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_alert_t: '%u'", tag); } } return 0; } /** * idmef_heartbeat_read: * @heartbeat: Pointer to a #idmef_heartbeat_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_heartbeat from the @msg message, and * store it into @heartbeat. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_heartbeat_read(idmef_heartbeat_t *heartbeat, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_HEARTBEAT_MESSAGEID: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_heartbeat_set_messageid(heartbeat, tmp); break; } case IDMEF_MSG_ANALYZER_TAG: { int ret; idmef_analyzer_t *tmp = NULL; ret = idmef_heartbeat_new_analyzer(heartbeat, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_analyzer_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_HEARTBEAT_CREATE_TIME: { idmef_time_t *tmp = NULL; ret = prelude_extract_time_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_heartbeat_set_create_time(heartbeat, tmp); break; } case IDMEF_MSG_HEARTBEAT_ANALYZER_TIME: { idmef_time_t *tmp = NULL; ret = prelude_extract_time_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_heartbeat_set_analyzer_time(heartbeat, tmp); break; } case IDMEF_MSG_HEARTBEAT_HEARTBEAT_INTERVAL: { uint32_t tmp = 0; ret = prelude_extract_uint32_safe(&tmp, buf, len); if ( ret < 0 ) return ret; idmef_heartbeat_set_heartbeat_interval(heartbeat, tmp); break; } case IDMEF_MSG_ADDITIONAL_DATA_TAG: { int ret; idmef_additional_data_t *tmp = NULL; ret = idmef_heartbeat_new_additional_data(heartbeat, &tmp, -1); if ( ret < 0 ) return ret; ret = idmef_additional_data_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_heartbeat_t: '%u'", tag); } } return 0; } /** * idmef_message_read: * @message: Pointer to a #idmef_message_t object. * @msg: Pointer to a #prelude_msg_t object, containing a message. * * Read an idmef_message from the @msg message, and * store it into @message. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_message_read(idmef_message_t *message, prelude_msg_t *msg) { int ret; void *buf; uint8_t tag; uint32_t len; while ( 1 ) { ret = prelude_msg_get(msg, &tag, &len, &buf); if ( ret < 0 ) return ret; switch ( tag ) { case IDMEF_MSG_MESSAGE_VERSION: { prelude_string_t *tmp = NULL; ret = prelude_extract_string_safe(&tmp, buf, len, msg); if ( ret < 0 ) return ret; idmef_message_set_version(message, tmp); break; } case IDMEF_MSG_ALERT_TAG: { int ret; idmef_alert_t *tmp = NULL; ret = idmef_message_new_alert(message, &tmp); if ( ret < 0 ) return ret; ret = idmef_alert_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_HEARTBEAT_TAG: { int ret; idmef_heartbeat_t *tmp = NULL; ret = idmef_message_new_heartbeat(message, &tmp); if ( ret < 0 ) return ret; ret = idmef_heartbeat_read(tmp, msg); if ( ret < 0 ) return ret; break; } case IDMEF_MSG_END_OF_TAG: return 0; default: return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_TAG, "Unknown tag while reading idmef_message_t: '%u'", tag); } } return 0; } libprelude-5.2.0/src/PaxHeaders.14770/idmef-message-write.c0000644000000000000000000000010713726163410021442 xustar000000000000000024 mtime=1599661832.673 23 atime=1599661832.78 24 ctime=1599661999.852 libprelude-5.2.0/src/idmef-message-write.c0000644000000000000000000016341513726163410020451 0ustar00rootroot00000000000000 /***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* Auto-generated by the GenerateIDMEFMessageWriteC package */ #include "config.h" #include #include #include #include "prelude-inttypes.h" #include "prelude-list.h" #include "prelude-log.h" #include "prelude-io.h" #include "prelude-ident.h" #include "prelude-message-id.h" #include "idmef-message-id.h" #include "idmef.h" #include "idmef-tree-wrap.h" #include "idmef-message-write.h" #include "prelude-client.h" #include "common.h" /* * If you wonder why we do this, and why life is complicated, * then wonder why the hell the guys that wrote IDMEF choose to use XML. * XML is dog slow. And XML'll never achieve performance needed for real time IDS. * * Here we are trying to communicate using a home made, binary version of IDMEF. */ static inline int prelude_string_write(prelude_string_t *string, prelude_msgbuf_t *msg, uint8_t tag) { if ( ! string || prelude_string_is_empty(string) ) return 0; return prelude_msgbuf_set(msg, tag, prelude_string_get_len(string) + 1, prelude_string_get_string(string)); } static inline int uint64_write(uint64_t data, prelude_msgbuf_t *msg, uint8_t tag) { uint64_t dst; dst = prelude_hton64(data); return prelude_msgbuf_set(msg, tag, sizeof(dst), &dst); } static inline int uint32_write(uint32_t data, prelude_msgbuf_t *msg, uint8_t tag) { data = htonl(data); return prelude_msgbuf_set(msg, tag, sizeof(data), &data); } static inline int int32_write(uint32_t data, prelude_msgbuf_t *msg, uint8_t tag) { return uint32_write(data, msg, tag); } static inline int uint8_write(uint8_t data, prelude_msgbuf_t *msg, uint8_t tag) { return prelude_msgbuf_set(msg, tag, sizeof (data), &data); } static inline int uint16_write(uint16_t data, prelude_msgbuf_t *msg, uint8_t tag) { data = htons(data); return prelude_msgbuf_set(msg, tag, sizeof(data), &data); } static inline int float_write(float data, prelude_msgbuf_t *msg, uint8_t tag) { uint32_t tmp = prelude_htonf(data); return prelude_msgbuf_set(msg, tag, sizeof(tmp), &tmp); } static inline int idmef_time_write(const idmef_time_t *data, prelude_msgbuf_t *msg, uint8_t tag) { uint32_t tmp; unsigned char buf[12]; if ( ! data ) return 0; tmp = htonl(idmef_time_get_sec(data)); memcpy(buf, &tmp, sizeof(tmp)); tmp = htonl(idmef_time_get_usec(data)); memcpy(buf + 4, &tmp, sizeof(tmp)); tmp = htonl(idmef_time_get_gmt_offset(data)); memcpy(buf + 8, &tmp, sizeof(tmp)); return prelude_msgbuf_set(msg, tag, sizeof (buf), buf); } static inline int idmef_data_write(idmef_data_t *data, prelude_msgbuf_t *msg, uint8_t tag) { int ret; idmef_data_type_t type; if ( ! data ) return 0; type = idmef_data_get_type(data); if ( type == IDMEF_DATA_TYPE_UNKNOWN ) return 0; ret = uint32_write(idmef_data_get_type(data), msg, tag); if ( ret < 0 ) return ret; switch ( type ) { case IDMEF_DATA_TYPE_CHAR: case IDMEF_DATA_TYPE_BYTE: ret = uint8_write(* (const uint8_t *) idmef_data_get_data(data), msg, tag); break; case IDMEF_DATA_TYPE_UINT32: ret = uint32_write(idmef_data_get_int(data), msg, tag); break; case IDMEF_DATA_TYPE_INT: ret = uint64_write(idmef_data_get_int(data), msg, tag); break; case IDMEF_DATA_TYPE_FLOAT: ret = float_write(idmef_data_get_float(data), msg, tag); break; case IDMEF_DATA_TYPE_CHAR_STRING: case IDMEF_DATA_TYPE_BYTE_STRING: ret = prelude_msgbuf_set(msg, tag, idmef_data_get_len(data), idmef_data_get_data(data)); break; case IDMEF_DATA_TYPE_TIME: ret = idmef_time_write(idmef_data_get_data(data), msg, tag); break; case IDMEF_DATA_TYPE_UNKNOWN: /* nop */; } return ret; } /** * idmef_additional_data_write: * @additional_data: Pointer to a #idmef_additional_data_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @additional_data within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_additional_data_write(idmef_additional_data_t *additional_data, prelude_msgbuf_t *msg) { int ret; if ( ! additional_data ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_ADDITIONAL_DATA_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_additional_data_get_meaning(additional_data), msg, IDMEF_MSG_ADDITIONAL_DATA_MEANING); if ( ret < 0 ) return ret; ret = uint32_write(idmef_additional_data_get_type(additional_data), msg, IDMEF_MSG_ADDITIONAL_DATA_TYPE); if ( ret < 0 ) return ret; ret = idmef_data_write(idmef_additional_data_get_data(additional_data), msg, IDMEF_MSG_ADDITIONAL_DATA_DATA); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_reference_write: * @reference: Pointer to a #idmef_reference_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @reference within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_reference_write(idmef_reference_t *reference, prelude_msgbuf_t *msg) { int ret; if ( ! reference ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_REFERENCE_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = uint32_write(idmef_reference_get_origin(reference), msg, IDMEF_MSG_REFERENCE_ORIGIN); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_reference_get_name(reference), msg, IDMEF_MSG_REFERENCE_NAME); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_reference_get_url(reference), msg, IDMEF_MSG_REFERENCE_URL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_reference_get_meaning(reference), msg, IDMEF_MSG_REFERENCE_MEANING); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_classification_write: * @classification: Pointer to a #idmef_classification_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @classification within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_classification_write(idmef_classification_t *classification, prelude_msgbuf_t *msg) { int ret; if ( ! classification ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_CLASSIFICATION_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_classification_get_ident(classification), msg, IDMEF_MSG_CLASSIFICATION_IDENT); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_classification_get_text(classification), msg, IDMEF_MSG_CLASSIFICATION_TEXT); if ( ret < 0 ) return ret; { idmef_reference_t *reference = NULL; while ( (reference = idmef_classification_get_next_reference(classification, reference)) ) { ret = idmef_reference_write(reference, msg); if ( ret < 0 ) return ret; } } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_user_id_write: * @user_id: Pointer to a #idmef_user_id_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @user_id within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_user_id_write(idmef_user_id_t *user_id, prelude_msgbuf_t *msg) { int ret; if ( ! user_id ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_USER_ID_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_user_id_get_ident(user_id), msg, IDMEF_MSG_USER_ID_IDENT); if ( ret < 0 ) return ret; ret = uint32_write(idmef_user_id_get_type(user_id), msg, IDMEF_MSG_USER_ID_TYPE); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_user_id_get_tty(user_id), msg, IDMEF_MSG_USER_ID_TTY); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_user_id_get_name(user_id), msg, IDMEF_MSG_USER_ID_NAME); if ( ret < 0 ) return ret; { uint32_t *tmp; tmp = idmef_user_id_get_number(user_id); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_USER_ID_NUMBER); if ( ret < 0 ) return ret; } } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_user_write: * @user: Pointer to a #idmef_user_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @user within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_user_write(idmef_user_t *user, prelude_msgbuf_t *msg) { int ret; if ( ! user ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_USER_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_user_get_ident(user), msg, IDMEF_MSG_USER_IDENT); if ( ret < 0 ) return ret; ret = uint32_write(idmef_user_get_category(user), msg, IDMEF_MSG_USER_CATEGORY); if ( ret < 0 ) return ret; { idmef_user_id_t *user_id = NULL; while ( (user_id = idmef_user_get_next_user_id(user, user_id)) ) { ret = idmef_user_id_write(user_id, msg); if ( ret < 0 ) return ret; } } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_address_write: * @address: Pointer to a #idmef_address_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @address within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_address_write(idmef_address_t *address, prelude_msgbuf_t *msg) { int ret; if ( ! address ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_ADDRESS_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_address_get_ident(address), msg, IDMEF_MSG_ADDRESS_IDENT); if ( ret < 0 ) return ret; ret = uint32_write(idmef_address_get_category(address), msg, IDMEF_MSG_ADDRESS_CATEGORY); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_address_get_vlan_name(address), msg, IDMEF_MSG_ADDRESS_VLAN_NAME); if ( ret < 0 ) return ret; { int32_t *tmp; tmp = idmef_address_get_vlan_num(address); if ( tmp ) { ret = int32_write(*tmp, msg, IDMEF_MSG_ADDRESS_VLAN_NUM); if ( ret < 0 ) return ret; } } ret = prelude_string_write(idmef_address_get_address(address), msg, IDMEF_MSG_ADDRESS_ADDRESS); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_address_get_netmask(address), msg, IDMEF_MSG_ADDRESS_NETMASK); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_process_write: * @process: Pointer to a #idmef_process_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @process within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_process_write(idmef_process_t *process, prelude_msgbuf_t *msg) { int ret; if ( ! process ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_PROCESS_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_process_get_ident(process), msg, IDMEF_MSG_PROCESS_IDENT); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_process_get_name(process), msg, IDMEF_MSG_PROCESS_NAME); if ( ret < 0 ) return ret; { uint32_t *tmp; tmp = idmef_process_get_pid(process); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_PROCESS_PID); if ( ret < 0 ) return ret; } } ret = prelude_string_write(idmef_process_get_path(process), msg, IDMEF_MSG_PROCESS_PATH); if ( ret < 0 ) return ret; { prelude_string_t *arg = NULL; while ( (arg = idmef_process_get_next_arg(process, arg)) ) { ret = prelude_string_write(arg, msg, IDMEF_MSG_PROCESS_ARG); if ( ret < 0 ) return ret; } } { prelude_string_t *env = NULL; while ( (env = idmef_process_get_next_env(process, env)) ) { ret = prelude_string_write(env, msg, IDMEF_MSG_PROCESS_ENV); if ( ret < 0 ) return ret; } } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_web_service_write: * @web_service: Pointer to a #idmef_web_service_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @web_service within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_web_service_write(idmef_web_service_t *web_service, prelude_msgbuf_t *msg) { int ret; if ( ! web_service ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_WEB_SERVICE_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_web_service_get_url(web_service), msg, IDMEF_MSG_WEB_SERVICE_URL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_web_service_get_cgi(web_service), msg, IDMEF_MSG_WEB_SERVICE_CGI); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_web_service_get_http_method(web_service), msg, IDMEF_MSG_WEB_SERVICE_HTTP_METHOD); if ( ret < 0 ) return ret; { prelude_string_t *arg = NULL; while ( (arg = idmef_web_service_get_next_arg(web_service, arg)) ) { ret = prelude_string_write(arg, msg, IDMEF_MSG_WEB_SERVICE_ARG); if ( ret < 0 ) return ret; } } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_snmp_service_write: * @snmp_service: Pointer to a #idmef_snmp_service_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @snmp_service within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_snmp_service_write(idmef_snmp_service_t *snmp_service, prelude_msgbuf_t *msg) { int ret; if ( ! snmp_service ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_SNMP_SERVICE_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_snmp_service_get_oid(snmp_service), msg, IDMEF_MSG_SNMP_SERVICE_OID); if ( ret < 0 ) return ret; { uint32_t *tmp; tmp = idmef_snmp_service_get_message_processing_model(snmp_service); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_SNMP_SERVICE_MESSAGE_PROCESSING_MODEL); if ( ret < 0 ) return ret; } } { uint32_t *tmp; tmp = idmef_snmp_service_get_security_model(snmp_service); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_SNMP_SERVICE_SECURITY_MODEL); if ( ret < 0 ) return ret; } } ret = prelude_string_write(idmef_snmp_service_get_security_name(snmp_service), msg, IDMEF_MSG_SNMP_SERVICE_SECURITY_NAME); if ( ret < 0 ) return ret; { uint32_t *tmp; tmp = idmef_snmp_service_get_security_level(snmp_service); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_SNMP_SERVICE_SECURITY_LEVEL); if ( ret < 0 ) return ret; } } ret = prelude_string_write(idmef_snmp_service_get_context_name(snmp_service), msg, IDMEF_MSG_SNMP_SERVICE_CONTEXT_NAME); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_snmp_service_get_context_engine_id(snmp_service), msg, IDMEF_MSG_SNMP_SERVICE_CONTEXT_ENGINE_ID); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_snmp_service_get_command(snmp_service), msg, IDMEF_MSG_SNMP_SERVICE_COMMAND); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_service_write: * @service: Pointer to a #idmef_service_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @service within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_service_write(idmef_service_t *service, prelude_msgbuf_t *msg) { int ret; if ( ! service ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_SERVICE_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_service_get_ident(service), msg, IDMEF_MSG_SERVICE_IDENT); if ( ret < 0 ) return ret; { uint8_t *tmp; tmp = idmef_service_get_ip_version(service); if ( tmp ) { ret = uint8_write(*tmp, msg, IDMEF_MSG_SERVICE_IP_VERSION); if ( ret < 0 ) return ret; } } { uint8_t *tmp; tmp = idmef_service_get_iana_protocol_number(service); if ( tmp ) { ret = uint8_write(*tmp, msg, IDMEF_MSG_SERVICE_IANA_PROTOCOL_NUMBER); if ( ret < 0 ) return ret; } } ret = prelude_string_write(idmef_service_get_iana_protocol_name(service), msg, IDMEF_MSG_SERVICE_IANA_PROTOCOL_NAME); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_service_get_name(service), msg, IDMEF_MSG_SERVICE_NAME); if ( ret < 0 ) return ret; { uint16_t *tmp; tmp = idmef_service_get_port(service); if ( tmp ) { ret = uint16_write(*tmp, msg, IDMEF_MSG_SERVICE_PORT); if ( ret < 0 ) return ret; } } ret = prelude_string_write(idmef_service_get_portlist(service), msg, IDMEF_MSG_SERVICE_PORTLIST); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_service_get_protocol(service), msg, IDMEF_MSG_SERVICE_PROTOCOL); if ( ret < 0 ) return ret; switch ( idmef_service_get_type(service) ) { case IDMEF_SERVICE_TYPE_WEB: ret = idmef_web_service_write(idmef_service_get_web_service(service), msg); break; case IDMEF_SERVICE_TYPE_SNMP: ret = idmef_snmp_service_write(idmef_service_get_snmp_service(service), msg); break; default: /* nop */; } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_node_write: * @node: Pointer to a #idmef_node_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @node within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_node_write(idmef_node_t *node, prelude_msgbuf_t *msg) { int ret; if ( ! node ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_NODE_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_node_get_ident(node), msg, IDMEF_MSG_NODE_IDENT); if ( ret < 0 ) return ret; ret = uint32_write(idmef_node_get_category(node), msg, IDMEF_MSG_NODE_CATEGORY); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_node_get_name(node), msg, IDMEF_MSG_NODE_NAME); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_node_get_location(node), msg, IDMEF_MSG_NODE_LOCATION); if ( ret < 0 ) return ret; { idmef_address_t *address = NULL; while ( (address = idmef_node_get_next_address(node, address)) ) { ret = idmef_address_write(address, msg); if ( ret < 0 ) return ret; } } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_source_write: * @source: Pointer to a #idmef_source_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @source within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_source_write(idmef_source_t *source, prelude_msgbuf_t *msg) { int ret; if ( ! source ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_SOURCE_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_source_get_ident(source), msg, IDMEF_MSG_SOURCE_IDENT); if ( ret < 0 ) return ret; ret = uint32_write(idmef_source_get_spoofed(source), msg, IDMEF_MSG_SOURCE_SPOOFED); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_source_get_interface(source), msg, IDMEF_MSG_SOURCE_INTERFACE); if ( ret < 0 ) return ret; ret = idmef_node_write(idmef_source_get_node(source), msg); if ( ret < 0 ) return ret; ret = idmef_user_write(idmef_source_get_user(source), msg); if ( ret < 0 ) return ret; ret = idmef_process_write(idmef_source_get_process(source), msg); if ( ret < 0 ) return ret; ret = idmef_service_write(idmef_source_get_service(source), msg); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_file_access_write: * @file_access: Pointer to a #idmef_file_access_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @file_access within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_file_access_write(idmef_file_access_t *file_access, prelude_msgbuf_t *msg) { int ret; if ( ! file_access ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_FILE_ACCESS_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = idmef_user_id_write(idmef_file_access_get_user_id(file_access), msg); if ( ret < 0 ) return ret; { prelude_string_t *permission = NULL; while ( (permission = idmef_file_access_get_next_permission(file_access, permission)) ) { ret = prelude_string_write(permission, msg, IDMEF_MSG_FILE_ACCESS_PERMISSION); if ( ret < 0 ) return ret; } } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_inode_write: * @inode: Pointer to a #idmef_inode_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @inode within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_inode_write(idmef_inode_t *inode, prelude_msgbuf_t *msg) { int ret; if ( ! inode ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_INODE_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = idmef_time_write(idmef_inode_get_change_time(inode), msg, IDMEF_MSG_INODE_CHANGE_TIME); if ( ret < 0 ) return ret; { uint32_t *tmp; tmp = idmef_inode_get_number(inode); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_INODE_NUMBER); if ( ret < 0 ) return ret; } } { uint32_t *tmp; tmp = idmef_inode_get_major_device(inode); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_INODE_MAJOR_DEVICE); if ( ret < 0 ) return ret; } } { uint32_t *tmp; tmp = idmef_inode_get_minor_device(inode); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_INODE_MINOR_DEVICE); if ( ret < 0 ) return ret; } } { uint32_t *tmp; tmp = idmef_inode_get_c_major_device(inode); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_INODE_C_MAJOR_DEVICE); if ( ret < 0 ) return ret; } } { uint32_t *tmp; tmp = idmef_inode_get_c_minor_device(inode); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_INODE_C_MINOR_DEVICE); if ( ret < 0 ) return ret; } } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } int idmef_linkage_write(idmef_linkage_t *, prelude_msgbuf_t *); /** * idmef_checksum_write: * @checksum: Pointer to a #idmef_checksum_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @checksum within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_checksum_write(idmef_checksum_t *checksum, prelude_msgbuf_t *msg) { int ret; if ( ! checksum ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_CHECKSUM_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_checksum_get_value(checksum), msg, IDMEF_MSG_CHECKSUM_VALUE); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_checksum_get_key(checksum), msg, IDMEF_MSG_CHECKSUM_KEY); if ( ret < 0 ) return ret; ret = uint32_write(idmef_checksum_get_algorithm(checksum), msg, IDMEF_MSG_CHECKSUM_ALGORITHM); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_file_write: * @file: Pointer to a #idmef_file_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @file within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_file_write(idmef_file_t *file, prelude_msgbuf_t *msg) { int ret; if ( ! file ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_FILE_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_file_get_ident(file), msg, IDMEF_MSG_FILE_IDENT); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_file_get_name(file), msg, IDMEF_MSG_FILE_NAME); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_file_get_path(file), msg, IDMEF_MSG_FILE_PATH); if ( ret < 0 ) return ret; ret = idmef_time_write(idmef_file_get_create_time(file), msg, IDMEF_MSG_FILE_CREATE_TIME); if ( ret < 0 ) return ret; ret = idmef_time_write(idmef_file_get_modify_time(file), msg, IDMEF_MSG_FILE_MODIFY_TIME); if ( ret < 0 ) return ret; ret = idmef_time_write(idmef_file_get_access_time(file), msg, IDMEF_MSG_FILE_ACCESS_TIME); if ( ret < 0 ) return ret; { uint64_t *tmp; tmp = idmef_file_get_data_size(file); if ( tmp ) { ret = uint64_write(*tmp, msg, IDMEF_MSG_FILE_DATA_SIZE); if ( ret < 0 ) return ret; } } { uint64_t *tmp; tmp = idmef_file_get_disk_size(file); if ( tmp ) { ret = uint64_write(*tmp, msg, IDMEF_MSG_FILE_DISK_SIZE); if ( ret < 0 ) return ret; } } { idmef_file_access_t *file_access = NULL; while ( (file_access = idmef_file_get_next_file_access(file, file_access)) ) { ret = idmef_file_access_write(file_access, msg); if ( ret < 0 ) return ret; } } { idmef_linkage_t *linkage = NULL; while ( (linkage = idmef_file_get_next_linkage(file, linkage)) ) { ret = idmef_linkage_write(linkage, msg); if ( ret < 0 ) return ret; } } ret = idmef_inode_write(idmef_file_get_inode(file), msg); if ( ret < 0 ) return ret; { idmef_checksum_t *checksum = NULL; while ( (checksum = idmef_file_get_next_checksum(file, checksum)) ) { ret = idmef_checksum_write(checksum, msg); if ( ret < 0 ) return ret; } } ret = uint32_write(idmef_file_get_category(file), msg, IDMEF_MSG_FILE_CATEGORY); if ( ret < 0 ) return ret; { idmef_file_fstype_t *tmp; tmp = idmef_file_get_fstype(file); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_FILE_FSTYPE); if ( ret < 0 ) return ret; } } ret = prelude_string_write(idmef_file_get_file_type(file), msg, IDMEF_MSG_FILE_FILE_TYPE); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_linkage_write: * @linkage: Pointer to a #idmef_linkage_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @linkage within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_linkage_write(idmef_linkage_t *linkage, prelude_msgbuf_t *msg) { int ret; if ( ! linkage ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_LINKAGE_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = uint32_write(idmef_linkage_get_category(linkage), msg, IDMEF_MSG_LINKAGE_CATEGORY); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_linkage_get_name(linkage), msg, IDMEF_MSG_LINKAGE_NAME); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_linkage_get_path(linkage), msg, IDMEF_MSG_LINKAGE_PATH); if ( ret < 0 ) return ret; ret = idmef_file_write(idmef_linkage_get_file(linkage), msg); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_target_write: * @target: Pointer to a #idmef_target_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @target within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_target_write(idmef_target_t *target, prelude_msgbuf_t *msg) { int ret; if ( ! target ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_TARGET_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_target_get_ident(target), msg, IDMEF_MSG_TARGET_IDENT); if ( ret < 0 ) return ret; ret = uint32_write(idmef_target_get_decoy(target), msg, IDMEF_MSG_TARGET_DECOY); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_target_get_interface(target), msg, IDMEF_MSG_TARGET_INTERFACE); if ( ret < 0 ) return ret; ret = idmef_node_write(idmef_target_get_node(target), msg); if ( ret < 0 ) return ret; ret = idmef_user_write(idmef_target_get_user(target), msg); if ( ret < 0 ) return ret; ret = idmef_process_write(idmef_target_get_process(target), msg); if ( ret < 0 ) return ret; ret = idmef_service_write(idmef_target_get_service(target), msg); if ( ret < 0 ) return ret; { idmef_file_t *file = NULL; while ( (file = idmef_target_get_next_file(target, file)) ) { ret = idmef_file_write(file, msg); if ( ret < 0 ) return ret; } } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_analyzer_write: * @analyzer: Pointer to a #idmef_analyzer_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @analyzer within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_analyzer_write(idmef_analyzer_t *analyzer, prelude_msgbuf_t *msg) { int ret; if ( ! analyzer ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_ANALYZER_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_analyzer_get_analyzerid(analyzer), msg, IDMEF_MSG_ANALYZER_ANALYZERID); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_analyzer_get_name(analyzer), msg, IDMEF_MSG_ANALYZER_NAME); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_analyzer_get_manufacturer(analyzer), msg, IDMEF_MSG_ANALYZER_MANUFACTURER); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_analyzer_get_model(analyzer), msg, IDMEF_MSG_ANALYZER_MODEL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_analyzer_get_version(analyzer), msg, IDMEF_MSG_ANALYZER_VERSION); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_analyzer_get_class(analyzer), msg, IDMEF_MSG_ANALYZER_CLASS); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_analyzer_get_ostype(analyzer), msg, IDMEF_MSG_ANALYZER_OSTYPE); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_analyzer_get_osversion(analyzer), msg, IDMEF_MSG_ANALYZER_OSVERSION); if ( ret < 0 ) return ret; ret = idmef_node_write(idmef_analyzer_get_node(analyzer), msg); if ( ret < 0 ) return ret; ret = idmef_process_write(idmef_analyzer_get_process(analyzer), msg); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_alertident_write: * @alertident: Pointer to a #idmef_alertident_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @alertident within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_alertident_write(idmef_alertident_t *alertident, prelude_msgbuf_t *msg) { int ret; if ( ! alertident ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_ALERTIDENT_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_alertident_get_alertident(alertident), msg, IDMEF_MSG_ALERTIDENT_ALERTIDENT); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_alertident_get_analyzerid(alertident), msg, IDMEF_MSG_ALERTIDENT_ANALYZERID); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_impact_write: * @impact: Pointer to a #idmef_impact_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @impact within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_impact_write(idmef_impact_t *impact, prelude_msgbuf_t *msg) { int ret; if ( ! impact ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_IMPACT_TAG, 0, NULL); if ( ret < 0 ) return ret; { idmef_impact_severity_t *tmp; tmp = idmef_impact_get_severity(impact); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_IMPACT_SEVERITY); if ( ret < 0 ) return ret; prelude_msg_set_priority(prelude_msgbuf_get_msg(msg), _idmef_impact_severity_to_msg_priority(*tmp)); } } { idmef_impact_completion_t *tmp; tmp = idmef_impact_get_completion(impact); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_IMPACT_COMPLETION); if ( ret < 0 ) return ret; } } ret = uint32_write(idmef_impact_get_type(impact), msg, IDMEF_MSG_IMPACT_TYPE); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_impact_get_description(impact), msg, IDMEF_MSG_IMPACT_DESCRIPTION); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_action_write: * @action: Pointer to a #idmef_action_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @action within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_action_write(idmef_action_t *action, prelude_msgbuf_t *msg) { int ret; if ( ! action ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_ACTION_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = uint32_write(idmef_action_get_category(action), msg, IDMEF_MSG_ACTION_CATEGORY); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_action_get_description(action), msg, IDMEF_MSG_ACTION_DESCRIPTION); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_confidence_write: * @confidence: Pointer to a #idmef_confidence_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @confidence within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_confidence_write(idmef_confidence_t *confidence, prelude_msgbuf_t *msg) { int ret; if ( ! confidence ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_CONFIDENCE_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = uint32_write(idmef_confidence_get_rating(confidence), msg, IDMEF_MSG_CONFIDENCE_RATING); if ( ret < 0 ) return ret; ret = float_write(idmef_confidence_get_confidence(confidence), msg, IDMEF_MSG_CONFIDENCE_CONFIDENCE); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_assessment_write: * @assessment: Pointer to a #idmef_assessment_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @assessment within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_assessment_write(idmef_assessment_t *assessment, prelude_msgbuf_t *msg) { int ret; if ( ! assessment ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_ASSESSMENT_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = idmef_impact_write(idmef_assessment_get_impact(assessment), msg); if ( ret < 0 ) return ret; { idmef_action_t *action = NULL; while ( (action = idmef_assessment_get_next_action(assessment, action)) ) { ret = idmef_action_write(action, msg); if ( ret < 0 ) return ret; } } ret = idmef_confidence_write(idmef_assessment_get_confidence(assessment), msg); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_tool_alert_write: * @tool_alert: Pointer to a #idmef_tool_alert_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @tool_alert within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_tool_alert_write(idmef_tool_alert_t *tool_alert, prelude_msgbuf_t *msg) { int ret; if ( ! tool_alert ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_TOOL_ALERT_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_tool_alert_get_name(tool_alert), msg, IDMEF_MSG_TOOL_ALERT_NAME); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_tool_alert_get_command(tool_alert), msg, IDMEF_MSG_TOOL_ALERT_COMMAND); if ( ret < 0 ) return ret; { idmef_alertident_t *alertident = NULL; while ( (alertident = idmef_tool_alert_get_next_alertident(tool_alert, alertident)) ) { ret = idmef_alertident_write(alertident, msg); if ( ret < 0 ) return ret; } } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_correlation_alert_write: * @correlation_alert: Pointer to a #idmef_correlation_alert_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @correlation_alert within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_correlation_alert_write(idmef_correlation_alert_t *correlation_alert, prelude_msgbuf_t *msg) { int ret; if ( ! correlation_alert ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_CORRELATION_ALERT_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_correlation_alert_get_name(correlation_alert), msg, IDMEF_MSG_CORRELATION_ALERT_NAME); if ( ret < 0 ) return ret; { idmef_alertident_t *alertident = NULL; while ( (alertident = idmef_correlation_alert_get_next_alertident(correlation_alert, alertident)) ) { ret = idmef_alertident_write(alertident, msg); if ( ret < 0 ) return ret; } } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_overflow_alert_write: * @overflow_alert: Pointer to a #idmef_overflow_alert_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @overflow_alert within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_overflow_alert_write(idmef_overflow_alert_t *overflow_alert, prelude_msgbuf_t *msg) { int ret; if ( ! overflow_alert ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_OVERFLOW_ALERT_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_overflow_alert_get_program(overflow_alert), msg, IDMEF_MSG_OVERFLOW_ALERT_PROGRAM); if ( ret < 0 ) return ret; { uint32_t *tmp; tmp = idmef_overflow_alert_get_size(overflow_alert); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_OVERFLOW_ALERT_SIZE); if ( ret < 0 ) return ret; } } ret = idmef_data_write(idmef_overflow_alert_get_buffer(overflow_alert), msg, IDMEF_MSG_OVERFLOW_ALERT_BUFFER); if ( ret < 0 ) return ret; return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_alert_write: * @alert: Pointer to a #idmef_alert_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @alert within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_alert_write(idmef_alert_t *alert, prelude_msgbuf_t *msg) { int ret; if ( ! alert ) return 0; ret = prelude_msgbuf_set(msg, IDMEF_MSG_ALERT_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_alert_get_messageid(alert), msg, IDMEF_MSG_ALERT_MESSAGEID); if ( ret < 0 ) return ret; { idmef_analyzer_t *analyzer = NULL; while ( (analyzer = idmef_alert_get_next_analyzer(alert, analyzer)) ) { ret = idmef_analyzer_write(analyzer, msg); if ( ret < 0 ) return ret; } } ret = idmef_time_write(idmef_alert_get_create_time(alert), msg, IDMEF_MSG_ALERT_CREATE_TIME); if ( ret < 0 ) return ret; ret = idmef_classification_write(idmef_alert_get_classification(alert), msg); if ( ret < 0 ) return ret; ret = idmef_time_write(idmef_alert_get_detect_time(alert), msg, IDMEF_MSG_ALERT_DETECT_TIME); if ( ret < 0 ) return ret; ret = idmef_time_write(idmef_alert_get_analyzer_time(alert), msg, IDMEF_MSG_ALERT_ANALYZER_TIME); if ( ret < 0 ) return ret; { idmef_source_t *source = NULL; while ( (source = idmef_alert_get_next_source(alert, source)) ) { ret = idmef_source_write(source, msg); if ( ret < 0 ) return ret; } } { idmef_target_t *target = NULL; while ( (target = idmef_alert_get_next_target(alert, target)) ) { ret = idmef_target_write(target, msg); if ( ret < 0 ) return ret; } } ret = idmef_assessment_write(idmef_alert_get_assessment(alert), msg); if ( ret < 0 ) return ret; { idmef_additional_data_t *additional_data = NULL; while ( (additional_data = idmef_alert_get_next_additional_data(alert, additional_data)) ) { ret = idmef_additional_data_write(additional_data, msg); if ( ret < 0 ) return ret; } } switch ( idmef_alert_get_type(alert) ) { case IDMEF_ALERT_TYPE_TOOL: ret = idmef_tool_alert_write(idmef_alert_get_tool_alert(alert), msg); break; case IDMEF_ALERT_TYPE_CORRELATION: ret = idmef_correlation_alert_write(idmef_alert_get_correlation_alert(alert), msg); break; case IDMEF_ALERT_TYPE_OVERFLOW: ret = idmef_overflow_alert_write(idmef_alert_get_overflow_alert(alert), msg); break; default: /* nop */; } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_heartbeat_write: * @heartbeat: Pointer to a #idmef_heartbeat_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @heartbeat within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_heartbeat_write(idmef_heartbeat_t *heartbeat, prelude_msgbuf_t *msg) { int ret; if ( ! heartbeat ) return 0; prelude_msg_set_priority(prelude_msgbuf_get_msg(msg), PRELUDE_MSG_PRIORITY_HIGH); ret = prelude_msgbuf_set(msg, IDMEF_MSG_HEARTBEAT_TAG, 0, NULL); if ( ret < 0 ) return ret; ret = prelude_string_write(idmef_heartbeat_get_messageid(heartbeat), msg, IDMEF_MSG_HEARTBEAT_MESSAGEID); if ( ret < 0 ) return ret; { idmef_analyzer_t *analyzer = NULL; while ( (analyzer = idmef_heartbeat_get_next_analyzer(heartbeat, analyzer)) ) { ret = idmef_analyzer_write(analyzer, msg); if ( ret < 0 ) return ret; } } ret = idmef_time_write(idmef_heartbeat_get_create_time(heartbeat), msg, IDMEF_MSG_HEARTBEAT_CREATE_TIME); if ( ret < 0 ) return ret; ret = idmef_time_write(idmef_heartbeat_get_analyzer_time(heartbeat), msg, IDMEF_MSG_HEARTBEAT_ANALYZER_TIME); if ( ret < 0 ) return ret; { uint32_t *tmp; tmp = idmef_heartbeat_get_heartbeat_interval(heartbeat); if ( tmp ) { ret = uint32_write(*tmp, msg, IDMEF_MSG_HEARTBEAT_HEARTBEAT_INTERVAL); if ( ret < 0 ) return ret; } } { idmef_additional_data_t *additional_data = NULL; while ( (additional_data = idmef_heartbeat_get_next_additional_data(heartbeat, additional_data)) ) { ret = idmef_additional_data_write(additional_data, msg); if ( ret < 0 ) return ret; } } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } /** * idmef_message_write: * @message: Pointer to a #idmef_message_t object. * @msg: Pointer to a #prelude_msgbuf_t object, where the message should be written. * * Write @message within @msg message buffer. The buffer is * associated with a #prelude_io_t file descriptor where the data will be written. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_message_write(idmef_message_t *message, prelude_msgbuf_t *msg) { int ret; if ( ! message ) return 0; ret = prelude_string_write(idmef_message_get_version(message), msg, IDMEF_MSG_MESSAGE_VERSION); if ( ret < 0 ) return ret; switch ( idmef_message_get_type(message) ) { case IDMEF_MESSAGE_TYPE_ALERT: ret = idmef_alert_write(idmef_message_get_alert(message), msg); break; case IDMEF_MESSAGE_TYPE_HEARTBEAT: ret = idmef_heartbeat_write(idmef_message_get_heartbeat(message), msg); break; default: /* nop */; } return prelude_msgbuf_set(msg, IDMEF_MSG_END_OF_TAG, 0, NULL); } libprelude-5.2.0/src/PaxHeaders.14770/idmef-object.c0000644000000000000000000000010713726163410020134 xustar000000000000000024 mtime=1599661832.673 23 atime=1599661832.78 24 ctime=1599661999.854 libprelude-5.2.0/src/idmef-object.c0000644000000000000000000000646213726163410017141 0ustar00rootroot00000000000000/***** * * Copyright (C) 2014-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "prelude.h" #include "idmef-object-prv.h" #include "idmef-object.h" #include "idmef-class.h" typedef struct idmef_linked_object idmef_linked_object_t; idmef_class_id_t idmef_object_get_class(idmef_object_t *obj) { return obj->_idmef_object_id; } idmef_object_t *idmef_object_ref(idmef_object_t *obj) { int ret; ret = idmef_class_ref(obj->_idmef_object_id, obj); prelude_return_val_if_fail(ret == 0, NULL); return obj; } void idmef_object_destroy(idmef_object_t *obj) { idmef_class_destroy(obj->_idmef_object_id, obj); } int idmef_object_compare(idmef_object_t *obj1, idmef_object_t *obj2) { if ( obj1->_idmef_object_id != obj2->_idmef_object_id ) return -1; return idmef_class_compare(obj1->_idmef_object_id, obj1, obj2); } int idmef_object_clone(idmef_object_t *obj, idmef_object_t **dst) { return idmef_class_clone(obj->_idmef_object_id, obj, (void **) dst); } int idmef_object_copy(idmef_object_t *src, idmef_object_t *dst) { return idmef_class_copy(src->_idmef_object_id, src, dst); } int idmef_object_print(idmef_object_t *obj, prelude_io_t *fd) { return idmef_class_print(obj->_idmef_object_id, obj, fd); } int idmef_object_print_json(idmef_object_t *obj, prelude_io_t *fd) { return idmef_class_print_json(obj->_idmef_object_id, obj, fd); } void idmef_object_add(prelude_list_t *head, idmef_object_t *object) { prelude_return_if_fail(idmef_class_is_listed(object->_idmef_object_id)); prelude_list_add(head, &((idmef_linked_object_t *) object)->_list); } void idmef_object_add_tail(prelude_list_t *head, idmef_object_t *object) { prelude_return_if_fail(idmef_class_is_listed(object->_idmef_object_id)); prelude_list_add_tail(head, &((idmef_linked_object_t *) object)->_list); } void idmef_object_del(idmef_object_t *object) { prelude_return_if_fail(idmef_class_is_listed(object->_idmef_object_id)); prelude_list_del(&((idmef_linked_object_t *) object)->_list); } void idmef_object_del_init(idmef_object_t *object) { prelude_return_if_fail(idmef_class_is_listed(object->_idmef_object_id)); prelude_list_del(&((idmef_linked_object_t *) object)->_list); prelude_list_init(&((idmef_linked_object_t *) object)->_list); } void *idmef_object_get_list_entry(prelude_list_t *elem) { return prelude_list_entry(elem, idmef_linked_object_t, _list); } libprelude-5.2.0/src/PaxHeaders.14770/idmef-path.c0000644000000000000000000000010713726163410017622 xustar000000000000000024 mtime=1599661832.673 23 atime=1599661832.78 24 ctime=1599661999.855 libprelude-5.2.0/src/idmef-path.c0000644000000000000000000013515613726163410016632 0ustar00rootroot00000000000000/***** * * Copyright (C) 2002-2020 CS GROUP - France. All Rights Reserved. * Author: Krzysztof Zaraska * Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "libmissing.h" #include #include #include #include #include #include #include #include "glthread/lock.h" #include "prelude-hash.h" #include "prelude-log.h" #include "prelude-inttypes.h" #include "prelude-string.h" #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_IDMEF_PATH #include "prelude-error.h" #include "idmef-time.h" #include "idmef-data.h" #include "idmef-class.h" #include "idmef-value.h" #include "idmef-object-prv.h" #include "idmef-tree-wrap.h" #include "idmef-path.h" #include "prelude-string.h" #include "prelude-linked-object.h" #include "common.h" #define MAX_DEPTH 16 #define MAX_NAME_LEN 128 #define HASH_DEFAULT_SIZE 128 #define INDEX_UNDEFINED INT_MIN #define INDEX_KEY (INT_MIN + 1) #define INDEX_FORBIDDEN (INT_MIN + 2) typedef struct idmef_key_listed_object { IDMEF_OBJECT; prelude_list_t list; prelude_string_t *objkey; } idmef_key_listed_object_t; typedef struct idmef_path_element { int index; char *index_key; idmef_class_id_t class; idmef_class_child_id_t position; idmef_value_type_id_t value_type; } idmef_path_element_t; struct idmef_path { gl_lock_t mutex; char name[MAX_NAME_LEN]; int refcount; unsigned int depth; idmef_class_id_t top_class; idmef_path_element_t elem[MAX_DEPTH]; }; static int _idmef_path_set(const idmef_path_t *path, idmef_class_id_t class, size_t i, int index_override, void *ptr, idmef_value_t *value); static prelude_bool_t flush_cache = FALSE; static prelude_hash_t *cached_path = NULL; static gl_lock_t cached_path_mutex = gl_lock_initializer; static void path_lock_cb(void *data) { idmef_path_t *path = data; gl_lock_lock(path->mutex); } static void path_reinit_cb(void *data) { idmef_path_t *path = data; gl_lock_init(path->mutex); } static void path_unlock_cb(void *data) { idmef_path_t *path = data; gl_lock_unlock(path->mutex); } static void flush_cache_if_wanted(void *ptr) { if ( flush_cache ) idmef_path_destroy(ptr); } static unsigned int path_hash_func(const void *path) { const char *ptr = ((const idmef_path_t *) path)->name; unsigned int hv = *ptr; if ( hv ) for ( ptr += 1; *ptr; ptr++ ) hv = (hv << 5) - hv + *ptr; return hv; } static int path_key_cmp_func(const void *p1, const void *p2) { const idmef_path_t *path1 = p1; const idmef_path_t *path2 = p2; if ( path1->top_class != path2->top_class ) return -1; return strcmp(path1->name, path2->name); } static int initialize_path_cache_if_needed(void) { if ( cached_path ) return 0; return prelude_hash_new2(&cached_path, HASH_DEFAULT_SIZE, path_hash_func, path_key_cmp_func, NULL, flush_cache_if_wanted); } static int build_name(idmef_path_t *path) { unsigned int i; const char *name; idmef_class_id_t class; /* * we don't need gl_lock_{,un}lock since the path has no name * it means that it is not in the cache and thus, not shared */ path->name[0] = '\0'; class = IDMEF_CLASS_ID_MESSAGE; for ( i = 0; i < path->depth; i++ ) { if ( i > 0 ) strncat(path->name, ".", sizeof(path->name) - strlen(path->name)); name = idmef_path_get_name(path, i); if ( ! name ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_INTEGRITY); strncat(path->name, name, sizeof(path->name) - strlen(path->name)); if ( path->elem[i].index != INDEX_UNDEFINED && path->elem[i].index != INDEX_FORBIDDEN ) { strncat(path->name, "(", sizeof(path->name) - strlen(path->name)); if ( path->elem[i].index != INDEX_KEY ) snprintf(path->name + strlen(path->name), sizeof(path->name) - strlen(path->name), "%d", path->elem[i].index); else if ( path->elem[i].index_key ) strncat(path->name, path->elem[i].index_key, sizeof(path->name) - strlen(path->name)); strncat(path->name, ")", sizeof(path->name) - strlen(path->name)); } class = idmef_class_get_child_class(class, path->elem[i].position); if ( class < 0 && i < path->depth - 1 ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_INTEGRITY); } return 0; } static int idmef_path_get_internal(idmef_value_t **ret, const idmef_path_t *path, unsigned int depth, void *parent, idmef_class_id_t parent_class); static inline prelude_bool_t has_index_key(prelude_list_t *elem, const char *index_key) { idmef_key_listed_object_t *obj = prelude_list_entry(elem, idmef_key_listed_object_t, list); return (obj->objkey && strcmp(prelude_string_get_string_or_default(obj->objkey, ""), index_key) == 0) ? TRUE : FALSE; } static int set_index_key(const idmef_path_element_t *elem, void *ptr) { idmef_key_listed_object_t *obj = ptr; if ( ! elem->index_key ) return 0; if ( obj->objkey ) prelude_string_destroy(obj->objkey); return prelude_string_new_dup(&obj->objkey, elem->index_key); } static int get_internal(idmef_value_t **value, const idmef_path_t *path, int depth, void *parent, idmef_class_id_t parent_class) { int ret; idmef_value_type_t vt; idmef_value_type_id_t type; if ( parent_class >= 0 ) return idmef_path_get_internal(value, path, depth, parent, parent_class); type = path->elem[depth - 1].value_type; ret = idmef_value_new(value, type, parent); if ( ret < 0 ) return ret; vt.id = type; vt.data.string_val = (void *) parent; ret = idmef_value_type_ref(&vt); if ( ret < 0 ) idmef_value_destroy(*value); return 1; } static int idmef_path_get_list_internal(idmef_value_t **value_list, const idmef_path_t *path, int depth, prelude_list_t *list, idmef_class_id_t parent_class) { int ret; prelude_list_t *tmp; idmef_value_t *value; unsigned int cnt = 0; ret = idmef_value_new_list(value_list); if ( ret < 0 ) return ret; prelude_list_for_each(list, tmp) { value = NULL; if ( path->elem[depth - 1].index_key && ! has_index_key(tmp, path->elem[depth - 1].index_key) ) continue; ret = get_internal(&value, path, depth, idmef_linked_object_get_object(tmp), parent_class); if ( ret < 0 ) { idmef_value_destroy(*value_list); return ret; } ret = idmef_value_list_add(*value_list, value); if ( ret < 0 ) { idmef_value_destroy(*value_list); return ret; } cnt++; } if ( ! cnt ) { idmef_value_destroy(*value_list); *value_list = NULL; } return cnt; } static prelude_list_t *list_get_nth(prelude_list_t *head, int which) { int cnt = 0; prelude_list_t *tmp; if ( which >= 0 ) { prelude_list_for_each(head, tmp) { if ( cnt++ == which ) return tmp; } } else { prelude_list_for_each_reversed(head, tmp) { if ( --cnt == which ) return tmp; } } return NULL; } static int idmef_path_get_nth_internal(idmef_value_t **value, const idmef_path_t *path, unsigned int depth, prelude_list_t *list, idmef_class_id_t parent_class, int which, const char *index_key) { prelude_list_t *tmp; tmp = list_get_nth(list, which); if ( ! tmp ) { *value = NULL; return 0; } return get_internal(value, path, depth, idmef_linked_object_get_object(tmp), parent_class); } static int idmef_path_get_internal(idmef_value_t **value, const idmef_path_t *path, unsigned int depth, void *parent, idmef_class_id_t parent_class) { void *child; int ret, which; idmef_class_id_t child_class; idmef_class_child_id_t child_id; if ( depth < path->depth ) { child_id = path->elem[depth].position; ret = idmef_class_get_child(parent, parent_class, child_id, &child); if ( ret < 0 ) return ret; if ( ! child ) { *value = NULL; return 0; } child_class = idmef_class_get_child_class(parent_class, child_id); which = path->elem[depth].index; if ( which == INDEX_FORBIDDEN ) return idmef_path_get_internal(value, path, depth + 1, child, child_class); if ( which == INDEX_UNDEFINED || which == INDEX_KEY || which == IDMEF_LIST_APPEND || which == IDMEF_LIST_PREPEND ) return idmef_path_get_list_internal(value, path, depth + 1, child, child_class); return idmef_path_get_nth_internal(value, path, depth + 1, child, child_class, which, path->elem[depth].index_key); } if ( parent_class < 0 || (path->depth > 0 && path->elem[path->depth - 1].value_type == IDMEF_VALUE_TYPE_ENUM) ) { *value = parent; return 1; } ret = (ret = idmef_value_new_class(value, parent_class, parent) < 0) ? ret : 1; if ( ret == 1 ) idmef_class_ref(parent_class, parent); return ret; } static void delete_listed_child(void *parent, idmef_class_id_t class, const idmef_path_element_t *elem) { int ret; void *obj; prelude_list_t *head, *tmp, *bkp; ret = idmef_class_get_child(parent, class, elem->position, (void *) &head); if ( ret < 0 ) return; prelude_list_for_each_safe(head, tmp, bkp) { obj = idmef_linked_object_get_object(tmp); if ( elem->index_key && ! has_index_key(obj, elem->index_key) ) continue; /* * The object might be referenced from other place than * this message, in which case idmef_class_destroy() * will only decrease it's reference count. * * We manually call prelude_list_del_init() in order to * disassociate the object from the message. */ prelude_list_del_init(tmp); idmef_class_destroy(idmef_class_get_child_class(class, elem->position), obj); } } static int _idmef_path_set_undefined_not_last(const idmef_path_t *path, const idmef_path_element_t *elem, idmef_class_id_t class, size_t i, void *ptr, idmef_value_t *value) { int j = 0, ret; idmef_value_t *val; prelude_list_t *head, *tmp, *bkp; assert(idmef_class_is_child_list(class, elem->position)); ret = idmef_class_get_child(ptr, class, elem->position, (void *) &head); if ( ret < 0 ) return ret; prelude_list_for_each_safe(head, tmp, bkp) { if ( elem->index_key && ! has_index_key(tmp, elem->index_key) ) continue; if ( value && idmef_value_is_list(value) ) { ret = idmef_value_get_nth2(value, j++, &val); if ( ret <= 0 ) return ret; } else { j = 1; val = value; } ret = _idmef_path_set(path, elem->class, i + 1, 0, idmef_linked_object_get_object(tmp), val); if ( ret < 0 ) return ret; } for ( ; value && j < idmef_value_get_count(value); j++ ) { ret = _idmef_path_set(path, class, i, IDMEF_LIST_APPEND, ptr, idmef_value_get_nth(value, j)); if ( ret < 0 ) return ret; ret = set_index_key(elem, idmef_linked_object_get_object(head->prev)); if ( ret < 0 ) return ret; } return ret; } static void ad_magic_set_datatype(idmef_additional_data_t *data, idmef_value_type_id_t vtype) { idmef_additional_data_type_t type; /* * In case the user has already set the type member, do nothing. */ if ( _idmef_additional_data_type_is_set(data) != 0 ) return; if ( vtype >= IDMEF_VALUE_TYPE_INT8 && vtype <= IDMEF_VALUE_TYPE_UINT64 ) type = IDMEF_ADDITIONAL_DATA_TYPE_INTEGER; else if ( vtype == IDMEF_VALUE_TYPE_FLOAT || vtype == IDMEF_VALUE_TYPE_DOUBLE ) type = IDMEF_ADDITIONAL_DATA_TYPE_REAL; else if ( vtype == IDMEF_VALUE_TYPE_STRING ) type = IDMEF_ADDITIONAL_DATA_TYPE_STRING; else if ( vtype == IDMEF_VALUE_TYPE_DATA ) type = IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING; else if ( vtype == IDMEF_VALUE_TYPE_TIME ) type = IDMEF_ADDITIONAL_DATA_TYPE_DATE_TIME; else return; idmef_additional_data_set_type(data, type); } static int _idmef_path_set(const idmef_path_t *path, idmef_class_id_t class, size_t i, int index_override, void *ptr, idmef_value_t *value) { void *prevptr = NULL; int ret, index, j; prelude_bool_t is_last_element; idmef_value_type_id_t tid; const idmef_path_element_t *elem; idmef_class_id_t parent_class; parent_class = (class == IDMEF_CLASS_ID_MESSAGE) ? class : path->elem[i - 1].class; for ( ; i < path->depth; i++ ) { elem = &path->elem[i]; index = (index_override) ? index_override : elem->index; index_override = 0; is_last_element = (i == (path->depth - 1)); if ( index == INDEX_UNDEFINED || index == INDEX_KEY ) { if ( ! is_last_element ) return _idmef_path_set_undefined_not_last(path, elem, class, i, ptr, value); else { delete_listed_child(ptr, class, elem); for ( j = 0; value && j < idmef_value_get_count(value); j++ ) { ret = _idmef_path_set(path, class, i, IDMEF_LIST_APPEND, ptr, idmef_value_get_nth(value, j)); if ( ret < 0 ) return ret; if ( index == INDEX_KEY ) { prelude_list_t *head; ret = idmef_class_get_child(ptr, class, elem->position, (void *) &head); if ( ret < 0 ) return ret; ret = set_index_key(elem, head->prev); if ( ret < 0 ) return ret; } } return 0; } } parent_class = class; if ( value || ! is_last_element ) { prevptr = ptr; ret = idmef_class_new_child(ptr, class, elem->position, index, &ptr); if ( ret < 0 ) return ret; class = idmef_class_get_child_class(class, elem->position); assert( ! (class < 0 && i < path->depth - 1) ); } } elem = &path->elem[path->depth - 1]; if ( ! value ) return idmef_class_destroy_child(ptr, parent_class, elem->position, elem->index); tid = idmef_class_get_child_value_type(parent_class, elem->position); if ( parent_class == IDMEF_CLASS_ID_ADDITIONAL_DATA && tid == IDMEF_VALUE_TYPE_DATA && prevptr ) ad_magic_set_datatype(prevptr, idmef_value_get_type(value)); return _idmef_value_copy_internal(value, tid, class, ptr); } /** * idmef_path_get: * @path: Pointer to a #idmef_path_t object. * @obj: Pointer to a #idmef_object_t object. * @ret: Address where to store the retrieved #idmef_value_t. * * This function retrieves the value for @path within @message, * and stores it into the provided @ret address of type #idmef_value_t. * * Returns: The number of element retrieved, or a negative value if an error occured. */ int idmef_path_get(const idmef_path_t *path, void *obj, idmef_value_t **ret) { idmef_object_t *object = obj; if ( object->_idmef_object_id != path->top_class ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "path for object '%s' used with '%s' object root", idmef_class_get_name(path->top_class), idmef_class_get_name(object->_idmef_object_id)); return idmef_path_get_internal(ret, path, 0, object, object->_idmef_object_id); } /** * idmef_path_set: * @path: Pointer to a #idmef_path_t object. * @obj: Pointer to a #idmef_object_t object. * @value: Pointer to a #idmef_value_t object. * * This function sets the provided @value for @path within @message. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_path_set(const idmef_path_t *path, void *obj, idmef_value_t *value) { idmef_object_t *object = obj; if ( path->depth < 1 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Path with depth of 0 are not allowed"); if ( object->_idmef_object_id != path->top_class ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "path for object '%s' used with '%s' object root", idmef_class_get_name(path->top_class), idmef_class_get_name(object->_idmef_object_id)); return _idmef_path_set(path, object->_idmef_object_id, 0, 0, object, value); } static int copy_path_name(idmef_path_t *path, const char *buffer) { size_t len; len = strlen(buffer) + 1; if ( len >= sizeof(path->name) ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_LENGTH); memcpy(path->name, buffer, len); return 0; } /* * idmef_object_create returns: * -1 if something wrong happen * 0 for a new empty object * 1 for an existing object already in the cache */ static int idmef_path_create(idmef_path_t **path, idmef_class_id_t rootclass, const char *buffer) { int ret; idmef_path_t tmp; ret = copy_path_name(&tmp, buffer); if ( ret < 0 ) return ret; tmp.top_class = rootclass; gl_lock_lock(cached_path_mutex); ret = initialize_path_cache_if_needed(); if ( ret < 0 ) { gl_lock_unlock(cached_path_mutex); return ret; } *path = prelude_hash_get(cached_path, &tmp); gl_lock_unlock(cached_path_mutex); if ( *path ) return 1; *path = calloc(1, sizeof(**path)); if ( ! *path ) return prelude_error_from_errno(errno); (*path)->refcount = 1; gl_lock_init((*path)->mutex); return 0; } /* * return 1 if we are reading the last object. * return 0 if reading an object. * return -1 if there is no more things to read. */ static int parse_path_token(char **sptr, char **out) { char *buf = *sptr, *ptr; if ( *buf == '\0' ) *buf++ = '.'; *out = buf; ptr = strchr(buf, '.'); if ( ! ptr ) return -1; *ptr = '\0'; *sptr = ptr; return 0; } static int idmef_path_parse_new(idmef_path_t *path, idmef_class_id_t rootclass, const char *buffer) { int ret, index = -1, is_last; unsigned int depth = 0; char *endptr, *ptr, *ptr2, *end; idmef_class_child_id_t child = 0; idmef_class_id_t class; idmef_value_type_id_t vtype; ret = copy_path_name(path, buffer); if ( ret < 0 ) return ret; end = ptr = NULL; endptr = path->name; path->top_class = class = rootclass; do { index = INDEX_UNDEFINED; is_last = parse_path_token(&endptr, &ptr); ptr2 = strchr(ptr, '('); if ( ptr2 ) { char *errptr = NULL; char *tok = ptr2 + 1; end = strchr(ptr2, ')'); if ( ! end ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Malformed IDMEFPath index : missing ')' character"); *end = *ptr2 = '\0'; if ( strcmp(tok, "<<") == 0 ) index = IDMEF_LIST_PREPEND; else if ( strcmp(tok, ">>") == 0 ) index = IDMEF_LIST_APPEND; else if ( (*tok == '\'' || *tok == '"') && *(tok + strlen(tok) - 1) == *tok ) { index = INDEX_KEY; path->elem[depth].index_key = strndup(tok + 1, strlen(tok) - 2); } else if ( strcmp(ptr2 + 1, "*") != 0 ) { index = strtol(ptr2 + 1, &errptr, 0); if ( index == 0 && errptr == tok ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Invalid index specified : `%s`", tok); } *end = ')'; } child = idmef_class_find_child(class, ptr); if ( child < 0 ) return child; path->elem[depth].position = child; if ( ptr2 ) *ptr2 = '('; if ( index == INDEX_UNDEFINED ) path->elem[depth].index = idmef_class_is_child_list(class, child) ? INDEX_UNDEFINED : INDEX_FORBIDDEN; else { if ( ! idmef_class_is_child_list(class, child) ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_PATH_INDEX_FORBIDDEN, "Invalid IDMEF path element '%s': indexing not supported", ptr); if ( index == INDEX_KEY && ! idmef_class_is_child_keyed_list(class, child) ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_PATH_INDEX_FORBIDDEN, "Invalid IDMEF path element '%s': key not supported as index", ptr); path->elem[depth].index = index; } /* The last object may not be a structure */ vtype = path->elem[depth].value_type = idmef_class_get_child_value_type(class, child); if ( vtype != IDMEF_VALUE_TYPE_CLASS && ! is_last ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "IDMEF element '%s' is a leaf and thus has no child '%s'", ptr, endptr + 1); class = path->elem[depth].class = idmef_class_get_child_class(class, child); if ( ++depth == MAX_DEPTH ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_DEPTH); } while ( ! is_last ); path->depth = depth; return 0; } /** * idmef_path_new_from_root_fast: * @path: Address where to store the created #idmef_path_t object. * @rootclass: #idmef_class_id_t ID of the root path. * @buffer: Name of the path to create. * * Creates a #idmef_path_t object whom root is @rootclass pointing * to @buffer, and stores it within @path. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_path_new_from_root_fast(idmef_path_t **path, idmef_class_id_t rootclass, const char *buffer) { int ret; prelude_return_val_if_fail(buffer, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_path_create(path, rootclass, buffer); if ( ret < 0 ) return ret; if ( ret == 1 ) { idmef_path_ref(*path); return 0; } if ( *buffer == '\0' ) (*path)->top_class = rootclass; else { ret = idmef_path_parse_new(*path, rootclass, buffer); if ( ret < 0 ) { gl_lock_destroy((*path)->mutex); free(*path); return ret; } } gl_lock_lock(cached_path_mutex); if ( prelude_hash_add(cached_path, *path, *path) < 0 ) { gl_lock_destroy((*path)->mutex); free(*path); gl_lock_unlock(cached_path_mutex); return ret; } gl_lock_unlock(cached_path_mutex); idmef_path_ref(*path); return 0; } /** * idmef_path_new_fast: * @path: Address where to store the created #idmef_path_t object. * @buffer: Name of the path to create. * * Creates a #idmef_path_t object pointing to @buffer, and stores it within @path. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_path_new_fast(idmef_path_t **path, const char *buffer) { return idmef_path_new_from_root_fast(path, IDMEF_CLASS_ID_MESSAGE, buffer); } /** * idmef_path_new_v: * @path: Address where to store the created #idmef_path_t object. * @format: Format string. * @args: Pointer to a variable argument list. * * Creates an #idmef_path_t object pointing to the provided format * string @format and @args, and stores it within @path. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_path_new_v(idmef_path_t **path, const char *format, va_list args) { int ret; char buffer[MAX_NAME_LEN]; prelude_return_val_if_fail(format, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = vsnprintf(buffer, sizeof(buffer), format, args); if ( ret < 0 || (size_t) ret > sizeof(buffer) - 1 ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_LENGTH); return idmef_path_new_fast(path, buffer); } /** * idmef_path_new: * @path: Address where to store the created #idmef_path_t object. * @format: Format string. * @...: Arguments list. * * Creates an #idmef_path_t object pointing to the provided format * string @format and @..., and stores it within @path. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_path_new(idmef_path_t **path, const char *format, ...) { int ret; va_list args; prelude_return_val_if_fail(format, prelude_error(PRELUDE_ERROR_ASSERTION)); va_start(args, format); ret = idmef_path_new_v(path, format, args); va_end(args); return ret; } /** * idmef_path_get_class: * @path: Pointer to an #idmef_path_t object. * @depth: Depth of @path to retrieve the #idmef_class_id_t from. * * Retrieves the #idmef_class_id_t value for the element of @path * located at @depth. If depth is -1, the last element depth is addressed. * * Returns: The #idmef_class_id_t for the elemnt, or a negative value if an error occured. */ idmef_class_id_t idmef_path_get_class(const idmef_path_t *path, int depth) { prelude_return_val_if_fail(path, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( depth < 0 ) depth = path->depth - 1; if ( path->depth == 0 && depth < 0 ) return path->top_class; return path->elem[depth].class; } /** * idmef_path_get_value_type: * @path: Pointer to an #idmef_path_t object. * @depth: Depth of @path to retrieve the #idmef_value_type_id_t from. * * Retrieves the #idmef_value_type_id_t identifying the type of value * acceptable for this path element, for the @path element located at * @depth. If depth is -1, the last element depth is addressed. * * Returns: The #idmef_value_type_id_t for the element, or a negative value if an error occured. */ idmef_value_type_id_t idmef_path_get_value_type(const idmef_path_t *path, int depth) { prelude_return_val_if_fail(path, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( depth < 0 ) depth = path->depth - 1; if ( path->depth == 0 && depth < 0 ) return IDMEF_VALUE_TYPE_CLASS; return path->elem[depth].value_type; } static inline int invalidate(idmef_path_t *path) { int ret; gl_lock_lock(path->mutex); if ( path->refcount == 1 ) { gl_lock_unlock(path->mutex); return 0; /* not cached */ } /* * We can modify the path only if the caller * is the only entity that has pointer to it. * * The path should have refcount equal to 1 or 2. * If refcount is equal to 1, it means that only the caller * has the pointer to the path, so we can modify it. * * If refcount is equal to 2, that means that the path * can also be present in the cached_path hash, * so it should be removed from the hash before modification. * If, however, refcount is 2 but the path is not present * in the hash, we cannot continue, as there exists * another entity that has pointer to the path. */ if ( path->refcount > 2 ) { gl_lock_unlock(path->mutex); return -1; } if ( path->refcount == 2 ) { gl_lock_lock(cached_path_mutex); ret = prelude_hash_elem_destroy(cached_path, path); gl_lock_unlock(cached_path_mutex); if ( ret == 0 ) path->refcount--; /* path was present in a hash */ else { gl_lock_unlock(path->mutex); return -1; /* path was not present in a hash and refcount != 1 */ } } gl_lock_unlock(path->mutex); return 0; /* successfully invalidated */ } /** * idmef_path_set_index: * @path: Pointer to an #idmef_path_t object. * @depth: Depth of @path to set @index for. * @index: Index for the provided element @depth. * * Modifies @index for the element located at @depth of provided @path. * This function is only applicable for element that accept listed value. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_path_set_index(idmef_path_t *path, unsigned int depth, int index) { int ret; prelude_return_val_if_fail(path, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(depth < path->depth, prelude_error(PRELUDE_ERROR_IDMEF_PATH_DEPTH)); if ( index == INDEX_FORBIDDEN || index == INDEX_KEY ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_INDEX_RESERVED); if ( path->elem[depth].index == INDEX_FORBIDDEN ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_INDEX_FORBIDDEN); ret = invalidate(path); if ( ret < 0 ) return ret; if ( path->elem[depth].index == INDEX_KEY ) free(path->elem[depth].index_key); path->elem[depth].index = index; ret = build_name(path); if ( ret < 0 ) return ret; return 0; } /** * idmef_path_undefine_index: * @path: Pointer to an #idmef_path_t object. * @depth: Depth of @path to undefine the index for. * * Modifies the element located at @depth of provided @path so that it's * index is undefined. * * This function is only applicable for element that accept listed value. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_path_undefine_index(idmef_path_t *path, unsigned int depth) { prelude_return_val_if_fail(path, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_path_set_index(path, depth, INDEX_UNDEFINED); } /** * idmef_path_get_index: * @path: Pointer to an #idmef_path_t object. * @depth: Depth of @path to retrieve the index from. * * Gets the current index for element located at @depth of @path. * This function is only applicable for element that accepts listed value. * * Returns: The element index, or a negative value if an error occured. */ int idmef_path_get_index(const idmef_path_t *path, unsigned int depth) { prelude_return_val_if_fail(path, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(depth < path->depth, prelude_error(PRELUDE_ERROR_IDMEF_PATH_DEPTH)); if ( path->elem[depth].index == INDEX_UNDEFINED ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_INDEX_UNDEFINED); if ( path->elem[depth].index == INDEX_FORBIDDEN ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_INDEX_FORBIDDEN); return path->elem[depth].index; } int idmef_path_get_key(const idmef_path_t *path, unsigned int depth, const char **key) { prelude_return_val_if_fail(path, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(depth < path->depth, prelude_error(PRELUDE_ERROR_IDMEF_PATH_DEPTH)); if ( path->elem[depth].index == INDEX_UNDEFINED ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_INDEX_UNDEFINED); if ( path->elem[depth].index == INDEX_FORBIDDEN ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_INDEX_FORBIDDEN); if ( path->elem[depth].index != INDEX_KEY ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_INDEX_FORBIDDEN); *key = path->elem[depth].index_key; return 0; } /** * idmef_path_make_child: * @path: Pointer to an #idmef_path_t object. * @child_name: Name of the child element to create. * @index: Index for @child_name, if applicable. * * Modifies @path so that it points to the child node identified by @child_name, * children of the current path. That is if the path is currently pointing to * alert.classification, and @child_name is set to "text", @path will be * modified to point to alert.classification.text. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_path_make_child(idmef_path_t *path, const char *child_name, int index) { int ret; char buf[16] = { 0 }; idmef_class_id_t class; idmef_class_child_id_t child; prelude_return_val_if_fail(path, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(child_name, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( path->depth > MAX_DEPTH - 1 ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_DEPTH); class = idmef_path_get_class(path, -1); child = idmef_class_find_child(class, child_name); if ( child < 0 ) return child; ret = invalidate(path); if ( ret < 0 ) return ret; if ( index >= 0 && idmef_class_is_child_list(class, child) ) snprintf(buf, sizeof(buf), "(%d)", index); snprintf(path->name + strlen(path->name), sizeof(path->name) - strlen(path->name), "%s%s%s", (path->depth > 0) ? "." : "", child_name, buf); path->depth++; path->elem[path->depth - 1].position = child; if ( idmef_class_is_child_list(class, child) ) path->elem[path->depth - 1].index = (index < 0) ? INDEX_UNDEFINED : index; else path->elem[path->depth - 1].index = INDEX_FORBIDDEN; path->elem[path->depth - 1].class = idmef_class_get_child_class(class, child); path->elem[path->depth - 1].value_type = idmef_class_get_child_value_type(class, child); return 0; } /** * idmef_path_make_parent: * @path: Pointer to an #idmef_path_t object. * * Removes the last element of the path. That is, if @path is currently pointing to * alert.classification, @path will be modified to point to alert. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_path_make_parent(idmef_path_t *path) { int ret; char *ptr; prelude_return_val_if_fail(path, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( path->depth == 0 ) return prelude_error(PRELUDE_ERROR_IDMEF_PATH_PARENT_ROOT); ret = invalidate(path); if ( ret < 0 ) return ret; path->depth--; if ( path->name[0] ) { ptr = strrchr(path->name, '.'); if ( ! ptr ) ptr = path->name; /* top-level path */ *ptr = '\0'; } return 0; } /** * idmef_path_destroy: * @path: Pointer to an #idmef_path_t object. * * Destroys the provided @path object. */ void idmef_path_destroy(idmef_path_t *path) { prelude_return_if_fail(path); gl_lock_lock(path->mutex); if ( --path->refcount ) { gl_lock_unlock(path->mutex); return; } gl_lock_unlock(path->mutex); gl_lock_destroy(path->mutex); free(path); } /** * idmef_path_ncompare: * @p1: Pointer to an #idmef_path_t object. * @p2: Pointer to another #idmef_path_t object. * @depth: Maximum depth to use for path comparison. * * Compares @p1 and @p2 elements up to @depth. * * Returns: 0 if both element match, a negative value otherwise. */ int idmef_path_ncompare(const idmef_path_t *p1, const idmef_path_t *p2, unsigned int depth) { unsigned int i; prelude_return_val_if_fail(p1, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(p2, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < depth; i++ ) { if ( p1->elem[i].index != p2->elem[i].index ) return -1; if ( p1->elem[i].index == INDEX_KEY && strcmp(p1->elem[i].index_key, p2->elem[i].index_key) != 0 ) return -1; if ( p1->elem[i].position - p2->elem[i].position ) return -1; } return 0; } /** * idmef_path_compare: * @p1: Pointer to an #idmef_path_t object. * @p2: Pointer to another #idmef_path_t object. * * Compares @p1 and @p2 elements. * * Returns: 0 if both element match, a negative value otherwise. */ int idmef_path_compare(const idmef_path_t *p1, const idmef_path_t *p2) { prelude_return_val_if_fail(p1, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(p2, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( p1->depth != p2->depth ) return -1; return idmef_path_ncompare(p1, p2, p1->depth); } /** * idmef_path_clone: * @src: Pointer to an #idmef_path_t object. * @dst: Address where to store the copy of @src. * * Clones @src and stores the result in the provided @dst address. * * Returns: 0 on success, a negative value otherwise. */ int idmef_path_clone(const idmef_path_t *src, idmef_path_t **dst) { unsigned int i; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); *dst = calloc(1, sizeof(**dst)); if ( ! *dst ) return prelude_error_from_errno(errno); memcpy(*dst, src, sizeof(**dst)); for ( i = 0; i < src->depth; i++ ) { if ( ! src->elem[i].index_key ) continue; (*dst)->elem[i].index_key = strdup(src->elem[i].index_key); if ( ! (*dst)->elem[i].index_key ) { while ( --i ) { if ( (*dst)->elem[i].index_key ) free((*dst)->elem[i].index_key); } free(*dst); return prelude_error_from_errno(errno); } } (*dst)->refcount = 1; gl_lock_init((*dst)->mutex); return 0; } /** * idmef_path_check_operator: * @path: Pointer to a #idmef_path_t object. * @op: Operator to check compatibility with. * * Check whether @op can apply to value pointed to by @path. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_path_check_operator(const idmef_path_t *path, idmef_criterion_operator_t op) { prelude_return_val_if_fail(path, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_value_type_check_operator(idmef_path_get_value_type(path, -1), op); } /** * idmef_path_get_applicable_operators: * @path: Pointer to a #idmef_path_t object. * @result: Pointer to storage for applicable operator. * * Retrieve all applicable operator that might be used by the type of * value pointed to by @path. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_path_get_applicable_operators(const idmef_path_t *path, idmef_criterion_operator_t *result) { prelude_return_val_if_fail(path && result, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_value_type_get_applicable_operators(idmef_path_get_value_type(path, -1), result); } /** * idmef_path_ref: * @path: Pointer to an #idmef_path_t object. * * Increases @path reference count. * * idmef_path_destroy() will destroy the refcount until it reaches 0, * at which point the path will be destroyed. * * Returns: The provided @path is returned. */ idmef_path_t *idmef_path_ref(idmef_path_t *path) { prelude_return_val_if_fail(path, NULL); gl_lock_lock(path->mutex); path->refcount++; gl_lock_unlock(path->mutex); return path; } /** * idmef_path_is_ambiguous: * @path: Pointer to an #idmef_path_t object. * * Returns TRUE if @path contain elements that are supposed * to be listed, but for which no index were provided. * * Returns: TRUE if the object is ambiguous, FALSE otherwise. */ prelude_bool_t idmef_path_is_ambiguous(const idmef_path_t *path) { size_t i; prelude_return_val_if_fail(path, FALSE); for ( i = 0; i < path->depth; i++ ) { if ( path->elem[i].index == INDEX_UNDEFINED ) return TRUE; } return FALSE; } /** * idmef_path_has_lists: * @path: Pointer to an #idmef_path_t object. * * Returns: the number of listed element within @path. */ int idmef_path_has_lists(const idmef_path_t *path) { size_t i; int ret = 0; prelude_return_val_if_fail(path, 0); for ( i = 0; i < path->depth; i++ ) { if ( path->elem[i].index != INDEX_FORBIDDEN ) ret++; } return ret; } prelude_bool_t idmef_path_is_list(const idmef_path_t *path, int depth) { prelude_return_val_if_fail(path, FALSE); if ( depth < 0 ) depth = path->depth - 1; return path->elem[depth].index != INDEX_FORBIDDEN; } /** * idmef_path_get_depth: * @path: Pointer to an #idmef_path_t object. * * Returns: @depth number of elements. */ unsigned int idmef_path_get_depth(const idmef_path_t *path) { prelude_return_val_if_fail(path, 0); return path->depth; } /** * idmef_path_get_name: * @path: Pointer to an #idmef_path_t object. * @depth: Depth of the @path element to get the name from. * * Returns the full path name if the provided @depth is -1, or the specific * element name if depth is set. That is, for a @path pointing to * "alert.classification.text": A depth of -1 would return "alert.classification.text"; * a depth of 0 would return "alert"; a depth of 1 would return "classification"; and * a depth of 2 would return "text". * * Returns: @path name relative to the provided @dept. */ const char *idmef_path_get_name(const idmef_path_t *path, int depth) { const char *ret; const idmef_path_element_t *elem; prelude_return_val_if_fail(path, NULL); prelude_return_val_if_fail(depth < 0 || (size_t) depth < path->depth, NULL); if ( depth < 0 ) return path->name; elem = &path->elem[depth]; if ( depth > 0 && (elem->class < 0 || elem->value_type == IDMEF_VALUE_TYPE_ENUM) ) ret = idmef_class_get_child_name(path->elem[depth - 1].class, elem->position); else ret = idmef_class_get_name(elem->class); return ret; } void _idmef_path_cache_lock(void) { gl_lock_lock(cached_path_mutex); if ( cached_path ) prelude_hash_iterate(cached_path, path_lock_cb); } void _idmef_path_cache_reinit(void) { gl_lock_init(cached_path_mutex); if ( cached_path ) prelude_hash_iterate(cached_path, path_reinit_cb); } void _idmef_path_cache_unlock(void) { if ( cached_path ) prelude_hash_iterate(cached_path, path_unlock_cb); gl_lock_unlock(cached_path_mutex); } void _idmef_path_cache_destroy(void) { if ( ! cached_path ) return; flush_cache = TRUE; prelude_hash_destroy(cached_path); flush_cache = FALSE; } libprelude-5.2.0/src/PaxHeaders.14770/idmef-time.c0000644000000000000000000000011013726163410017616 xustar000000000000000024 mtime=1599661832.674 24 atime=1599661832.781 24 ctime=1599661999.857 libprelude-5.2.0/src/idmef-time.c0000644000000000000000000005143313726163410016627 0ustar00rootroot00000000000000/***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* * This is required on Solaris so that multiple call to * strptime() won't reset the tm structure. */ #define _STRPTIME_DONTZERO #include "config.h" #include "libmissing.h" #include #include #include #include #include #if defined(__linux__) && ! defined(__USE_XOPEN) # define __USE_XOPEN #endif #if TIME_WITH_SYS_TIME # include # include #else # if HAVE_SYS_TIME_H # include # else # include # endif #endif #include "prelude-inttypes.h" #include "prelude-string.h" #include "prelude-error.h" #include "ntp.h" #include "prelude-log.h" #include "common.h" #include "idmef-time.h" static char *parse_time_ymd(struct tm *tm, const char *buf) { char *ptr; ptr = strptime(buf, "%Y-%m-%d", tm); if ( ! ptr ) return NULL; /* * The IDMEF draft only permits the 'T' variant here */ while ( isspace((int) *ptr) ) ptr++; if ( *ptr == 'T' ) ptr++; return ptr; } static int digit2usec(uint32_t n, int digit_count) { int i; const size_t max_digit = 6; /* 999999 */ if ( digit_count > max_digit ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Invalid number of digits for time fraction"); for ( i = 0; i < (max_digit - digit_count); i++ ) n *= 10; return n; } static int parse_time_hmsu(struct tm *tm, uint32_t *usec, char **buf) { int fraction; char *eptr = NULL; *buf = strptime(*buf, "%H:%M:%S", tm); if ( ! *buf ) goto fmterror; if ( **buf == '.' || **buf == ',' ) { (*buf)++; fraction = strtoul(*buf, &eptr, 10); if ( eptr == *buf ) goto fmterror; fraction = digit2usec(fraction, eptr - *buf); if ( fraction < 0 ) return fraction; *buf = eptr; *usec = fraction; } return 0; fmterror: return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error parsing time field, format should be: HH:MM:SS(.fraction)"); } static int parse_time_gmt(struct tm *tm, int32_t *gmtoff, const char *buf) { int ret; unsigned int offset_hour, offset_min; /* * if UTC, do nothing. */ if ( *buf == 'Z' ) return 0; ret = sscanf(buf + 1, "%2u:%2u", &offset_hour, &offset_min); if ( ret != 2 ) return -1; if ( *buf == '+' ) { tm->tm_min -= offset_min; tm->tm_hour -= offset_hour; *gmtoff = offset_hour * 3600 + offset_min * 60; } else if ( *buf == '-' ) { tm->tm_min += offset_min; tm->tm_hour += offset_hour; *gmtoff = - (offset_hour * 3600 + offset_min * 60); } else return -1; return 0; } /** * idmef_time_set_from_string: * @time: Pointer to an #idmef_time_t object. * @buf: Pointer to a string describing a time in an IDMEF conforming format. * * Fills @time object with information retrieved from the user provided * @buf, containing a string describing a time in a format conforming * to the IDMEF definition (v. 0.10, section 3.2.6). * * Additionally, the provided time might be separated with white spaces, * instead of the IDMEF defined 'T' character. * * If there is no UTC offset specified, we assume that the provided * time is local, and compute the GMT offset by ourselve. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_time_set_from_string(idmef_time_t *time, const char *buf) { int ret; char *ptr; struct tm tm; prelude_bool_t miss_gmt = FALSE; prelude_return_val_if_fail(time, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); memset(&tm, 0, sizeof(tm)); tm.tm_isdst = -1; ptr = parse_time_ymd(&tm, buf); if ( ! ptr ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error parsing date field, format should be: YYYY-MM-DD"); time->usec = 0; time->gmt_offset = 0; if ( *ptr ) { ret = parse_time_hmsu(&tm, &time->usec, &ptr); if ( ret < 0 ) return ret; miss_gmt = TRUE; if ( *ptr ) { ret = parse_time_gmt(&tm, &time->gmt_offset, ptr); if ( ret < 0 ) return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "error parsing GMT offset field (Z)?(+|-)?HH:MM"); miss_gmt = FALSE; } } if ( miss_gmt ) { long gmtoff; prelude_get_gmt_offset_from_tm(&tm, &gmtoff); time->gmt_offset = (int32_t) gmtoff; } time->sec = miss_gmt ? mktime(&tm) : prelude_timegm(&tm); return 0; } /** * idmef_time_new_from_string: * @time: Address where to store the created #idmef_time_t object. * @buf: Pointer to a string describing a time in an IDMEF conforming format. * * Creates an #idmef_time_t object filled with information retrieved * from the user provided @buf, containing a string describing a time in a format * conforming to the IDMEF definition (v. 0.10, section 3.2.6). * * Additionally, the provided time might be separated with white spaces, instead * of the IDMEF define 'T' character. The format might not specify a timezone * (will assume UTC in this case). * * The resulting #idmef_time_t object is stored in @time. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_time_new_from_string(idmef_time_t **time, const char *buf) { int ret; prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_time_new(time); if ( ret < 0 ) return ret; ret = idmef_time_set_from_string(*time, buf); if ( ret < 0 ) { free(*time); return ret; } return 0; } /** * idmef_time_set_from_ntpstamp: * @time: Pointer to a #idmef_time_t object. * @buf: Pointer to a string containing an NTP timestamp. * * Fills the @time object with information provided within the @buf NTP timestamp. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_time_set_from_ntpstamp(idmef_time_t *time, const char *buf) { l_fp ts; struct timeval tv; unsigned ts_mask = TS_MASK; unsigned ts_roundbit = TS_ROUNDBIT; prelude_return_val_if_fail(time, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( sscanf(buf, "%x.%x", &ts.l_ui, &ts.l_uf) < 2 ) return -1; /* * This transformation is a reverse form of the one found in * idmef_get_ntp_timestamp() */ ts.l_ui -= JAN_1970; ts.l_uf -= ts_roundbit; ts.l_uf &= ts_mask; TSTOTV(&ts, &tv); time->sec = tv.tv_sec; time->usec = tv.tv_usec; time->gmt_offset = 0; return 0; } /** * idmef_time_to_ntpstamp: * @time: Pointer to an IDMEF time structure. * @out: Pointer to a #prelude_string_t output buffer. * * Translates @time to an user readable NTP timestamp string, * conforming to the IDMEF defined time format. * * Returns: number of bytes written on success, a negative value if an error occured. */ int idmef_time_to_ntpstamp(const idmef_time_t *time, prelude_string_t *out) { l_fp ts; struct timeval tv; unsigned ts_mask = TS_MASK; /* defaults to 20 bits (us) */ unsigned ts_roundbit = TS_ROUNDBIT; /* defaults to 20 bits (us) */ int ret; prelude_return_val_if_fail(time, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(out, prelude_error(PRELUDE_ERROR_ASSERTION)); tv.tv_sec = idmef_time_get_sec(time); tv.tv_usec = idmef_time_get_usec(time); sTVTOTS(&tv, &ts); ts.l_ui += JAN_1970; /* make it time since 1900 */ ts.l_uf += ts_roundbit; ts.l_uf &= ts_mask; ret = prelude_string_sprintf(out, "0x%08lx.0x%08lx", (unsigned long) ts.l_ui, (unsigned long) ts.l_uf); return ret; } /** * idmef_time_to_string: * @time: Pointer to an IDMEF time structure. * @out: Pointer to a #prelude_string_t output buffer. * * Translates @time to an user readable string conforming to the IDMEF * defined time format. * * Returns: number of bytes written on success, a negative value if an error occured. */ int idmef_time_to_string(const idmef_time_t *time, prelude_string_t *out) { time_t t; struct tm utc; uint32_t hour_off, min_off; prelude_return_val_if_fail(time, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(out, prelude_error(PRELUDE_ERROR_ASSERTION)); t = time->sec + time->gmt_offset; if ( ! gmtime_r((const time_t *) &t, &utc) ) return prelude_error_from_errno(errno); hour_off = time->gmt_offset / 3600; min_off = time->gmt_offset % 3600 / 60; return prelude_string_sprintf(out, "%d-%.2d-%.2dT%.2d:%.2d:%.2d.%.6u%+.2d:%.2d", utc.tm_year + 1900, utc.tm_mon + 1, utc.tm_mday, utc.tm_hour, utc.tm_min, utc.tm_sec, idmef_time_get_usec(time), hour_off, min_off); } /** * idmef_time_new_from_ntpstamp: * @time: Address where to store the created #idmef_time_t object. * @buf: Pointer to a string containing an NTP timestamp. * * Creates an #idmef_time_t object filled with information provided * from the @buf NTP timestamp, and stores it in @time. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_time_new_from_ntpstamp(idmef_time_t **time, const char *buf) { int ret; prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_time_new(time); if ( ret < 0 ) return ret; ret = idmef_time_set_from_ntpstamp(*time, buf); if ( ret < 0 ) { free(*time); return ret; } return 0; } /** * idmef_time_set_from_timeval: * @time: Pointer to an #idmef_time_t object. * @tv: Pointer to a struct timeval (see gettimeofday()). * * Fills @time object filled with information provided within the @tv structure. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_time_set_from_timeval(idmef_time_t *time, const struct timeval *tv) { int ret; long gmtoff; prelude_return_val_if_fail(time, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(tv, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = prelude_get_gmt_offset_from_time((const time_t *) &tv->tv_sec, &gmtoff); if ( ret < 0 ) return ret; time->sec = tv->tv_sec; time->usec = tv->tv_usec; time->gmt_offset = (int32_t) gmtoff; return 0; } /** * idmef_time_new_from_timeval: * @time: Address where to store the created #idmef_time_t object. * @tv: Pointer to a struct timeval (see gettimeofday()). * * Creates an #idmef_time_t object filled with information provided * within the @tv structure. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_time_new_from_timeval(idmef_time_t **time, const struct timeval *tv) { int ret; prelude_return_val_if_fail(tv, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_time_new(time); if ( ret < 0 ) return ret; return idmef_time_set_from_timeval(*time, tv); } /** * idmef_time_set_from_gettimeofday: * @time: Pointer to an #idmef_time_t object. * * Fills @time with information retrieved using gettimeofday(). * * Returns: 0 on success, a negative value if an error occured. */ int idmef_time_set_from_gettimeofday(idmef_time_t *time) { int ret; struct timeval tv; prelude_return_val_if_fail(time, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = gettimeofday(&tv, NULL); if ( ret < 0 ) return prelude_error_from_errno(errno); return idmef_time_set_from_timeval(time, &tv); } /** * idmef_time_new_from_gettimeofday: * @time: Address where to store the created #idmef_time_t object. * * Creates an #idmef_time_t object filled with information retrieved * using gettimeofday(), and stores it in @time. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_time_new_from_gettimeofday(idmef_time_t **time) { int ret; struct timeval tv; ret = gettimeofday(&tv, NULL); if ( ret < 0 ) return prelude_error_from_errno(errno); return idmef_time_new_from_timeval(time, &tv); } /** * idmef_time_ref: * @time: Pointer to an #idmef_time_t object. * * Increases @time reference count. * idmef_time_destroy() won't destroy @time until the refcount * reach 0. * * Returns: The @time provided argument. */ idmef_time_t *idmef_time_ref(idmef_time_t *time) { prelude_return_val_if_fail(time, NULL); time->refcount++; return time; } /** * idmef_time_new: * @time: Address where to store the created #idmef_time_t object. * * Creates an empty #idmef_time_t object and store it in @time. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_time_new(idmef_time_t **time) { *time = calloc(1, sizeof(**time)); if ( ! *time ) return prelude_error_from_errno(errno); (*time)->refcount = 1; return 0; } /** * idmef_time_clone: * @src: Pointer to a #idmef_time_t to clone. * @dst: Address where to store the cloned @src object. * * Clones @src and stores the result in the @dst address. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_time_clone(const idmef_time_t *src, idmef_time_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_time_new(dst); if ( ret < 0 ) return ret; return idmef_time_copy(src, *dst); } /** * idmef_time_set_from_time: * @time: Pointer to an #idmef_time_t object. * @t: Pointer to a time_t. * * Fills @time from the information described by @t. * @time won't contain micro seconds information, since theses are not * available within @t. */ void idmef_time_set_from_time(idmef_time_t *time, const time_t *t) { long gmtoff; prelude_return_if_fail(time); prelude_return_if_fail(t); prelude_get_gmt_offset_from_time(t, &gmtoff); time->gmt_offset = (int32_t) gmtoff; time->sec = *t; } /** * idmef_time_new_from_time: * @time: Address where to store the created #idmef_time_t object. * @t: Pointer to a time_t. * * Creates a new #idmef_time_t object and store it in @time. * This object will be filled with information available in @t. The created * @time won't contain micro seconds information, since theses are not * available within @t. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_time_new_from_time(idmef_time_t **time, const time_t *t) { int ret; prelude_return_val_if_fail(t, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_time_new(time); if ( ret < 0 ) return ret; idmef_time_set_from_time(*time, t); return 0; } /** * idmef_time_set_gmt_offset: * @time: Pointer to a #idmef_time_t. * @gmtoff: GMT offset for @time, in seconds. * * Sets the GMT offset @gmtoff, in seconds, within @time. * * WARNING: this is just an accessor function, and using it to * set @time current time also requires the use of idmef_time_set_sec() * and idmef_time_set_usec(). */ void idmef_time_set_gmt_offset(idmef_time_t *time, int32_t gmtoff) { prelude_return_if_fail(time); time->gmt_offset = gmtoff; } /** * idmef_time_set_sec: * @time: Pointer to a #idmef_time_t. * @sec: Number of seconds since the Epoch. * * Sets the number of second from the Epoch to @sec within @time. * * WARNING: this is just an accessor function, and using it to * set @time current time also requires the use of idmef_time_set_usec() * and idmef_time_set_gmt_offset(). */ void idmef_time_set_sec(idmef_time_t *time, uint32_t sec) { prelude_return_if_fail(time); time->sec = sec; } /** * idmef_time_set_usec: * @time: Pointer to a #idmef_time_t. * @usec: Number of micro seconds to set within @time. * * Sets the number of micro second to @usec within @time. * * WARNING: this is just an accessor function, and using it to * set @time current time also requires the use of idmef_time_set_sec() * and idmef_time_set_gmt_offset(). */ void idmef_time_set_usec(idmef_time_t *time, uint32_t usec) { prelude_return_if_fail(time); time->usec = usec; } /** * idmef_time_get_gmt_offset: * @time: Pointer to a #idmef_time_t. * * Returns the GMT offset that applies to @time. * * Returns: The GMT offset, in seconds. */ int32_t idmef_time_get_gmt_offset(const idmef_time_t *time) { prelude_return_val_if_fail(time, 0); return time->gmt_offset; } /** * idmef_time_get_sec: * @time: Pointer to a #idmef_time_t. * * Returns the number of second since the Epoch (00:00:00 UTC, January 1, 1970), * previously set within @time. * * Returns: The number of seconds. */ uint32_t idmef_time_get_sec(const idmef_time_t *time) { prelude_return_val_if_fail(time, 0); return time->sec; } /** * idmef_time_get_usec: * @time: Pointer to a #idmef_time_t. * * Returns the u-second member of @time. * * Returns: The number of u-seconds. */ uint32_t idmef_time_get_usec(const idmef_time_t *time) { prelude_return_val_if_fail(time, 0); return time->usec; } /** * idmef_time_copy: * @src: Pointer to a #idmef_time_t to copy data from. * @dst: Pointer to a #idmef_time_t to copy data to. * * Copies @src internal to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_time_copy(const idmef_time_t *src, idmef_time_t *dst) { prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); dst->sec = src->sec; dst->usec = src->usec; dst->gmt_offset = src->gmt_offset; return 0; } void idmef_time_destroy_internal(idmef_time_t *time) { /* nop */ } /** * idmef_time_destroy: * @time: Pointer to an #idmef_time_t object. * * Destroys @time if refcount reach 0. */ void idmef_time_destroy(idmef_time_t *time) { prelude_return_if_fail(time); if ( --time->refcount ) return; free(time); } /** * idmef_time_compare: * @time1: Pointer to an #idmef_time_t object to compare with @time2. * @time2: Pointer to an #idmef_time_t object to compare with @time1. * * Returns: 0 if @time1 and @time2 match, 1 if @time1 is greater than * @time2, -1 if @time1 is lesser than @time2. */ int idmef_time_compare(const idmef_time_t *time1, const idmef_time_t *time2) { unsigned long t1, t2; if ( ! time1 && ! time2 ) return 0; else if ( ! time1 || ! time2 ) return -1; t1 = time1->sec + time1->gmt_offset; t2 = time2->sec + time2->gmt_offset; if ( t1 == t2 ) { if ( time1->usec == time2->usec ) return 0; else return (time1->usec < time2->usec) ? -1 : 1; } else return (t1 < t2) ? -1 : 1; } libprelude-5.2.0/src/PaxHeaders.14770/idmef-tree-wrap.c0000644000000000000000000000011013726163410020566 xustar000000000000000024 mtime=1599661832.678 24 atime=1599661832.781 24 ctime=1599661999.859 libprelude-5.2.0/src/idmef-tree-wrap.c0000644000000000000000000260544013726163410017604 0ustar00rootroot00000000000000 /***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* Auto-generated by the GenerateIDMEFTreeWrapC package */ #include "config.h" #include #include #include #include #include #include "prelude-inttypes.h" #include "prelude-list.h" #include "prelude-msg.h" #include "prelude-string.h" #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_IDMEF_TREE_WRAP #include "prelude-error.h" #include "idmef-time.h" #include "idmef-data.h" #include "idmef-class.h" #include "idmef-value.h" #include "idmef-object-prv.h" #include "idmef-tree-wrap.h" #include "libmissing.h" #include "common.h" #ifdef WIN32 # undef interface #endif #define LISTED_OBJECT(name, type) prelude_list_t name #define KEYLISTED_OBJECT(name, type) prelude_list_t name #define IS_KEY_LISTED(keyfield) IDMEF_LINKED_OBJECT; prelude_string_t *keyfield #define UNION(type, var) type var; union #define UNION_MEMBER(value, type, name) type name #define ENUM(...) typedef enum #define PRE_DECLARE(type, class) #define TYPE_ID(type, id) type #define PRIMITIVE_TYPE(type) #define PRIMITIVE_TYPE_STRUCT(type) #define HIDE(type, name) type name #define REFCOUNT int refcount #define REQUIRED(type, name) type name #define IGNORED(type, name) type name #define DYNAMIC_IDENT(x) uint64_t x #define OPTIONAL_INT(type, name) type name; unsigned int name ## _is_set:1 #define DISPLAY_ATTRS(...) #define IDENT(name) uint64_t name #define idmef_data_copy idmef_data_copy_dup #ifndef ABS # define ABS(x) (((x) < 0) ? -(x) : (x)) #endif /* * If we subtract the integer representations of two floats then that * will tell us how close they are. If the difference is zero, they are * identical. If the difference is one, they are adjacent floats. * In general, if the difference is n then there are n-1 floats between * them. * * http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm */ static int float_compare(float a, float b) { union { float fval; int32_t ival; } au, bu; au.fval = a; bu.fval = b; /* Make aInt lexicographically ordered as a twos-complement int */ if ( au.ival < 0 ) au.ival = 0x80000000 - au.ival; /* Make bInt lexicographically ordered as a twos-complement int */ if ( bu.ival < 0 ) bu.ival = 0x80000000 - bu.ival; return (ABS(au.ival - bu.ival) <= 0) ? 0 : -1; } static int prelude_string_copy(const prelude_string_t *src, prelude_string_t *dst) { prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! prelude_string_is_empty(src) ) return prelude_string_copy_dup(src, dst); return 0; } static int get_value_from_string(idmef_value_t **value, prelude_string_t *str, prelude_bool_t is_ptr) { int ret; if ( ! str ) { *value = NULL; return 0; } if ( ! is_ptr ) { ret = prelude_string_clone(str, &str); if ( ret < 0 ) return ret; } ret = idmef_value_new_string(value, str); if ( ret < 0 ) { prelude_string_destroy(str); return ret; } if ( is_ptr ) prelude_string_ref(str); return 0; } static int get_value_from_data(idmef_value_t **value, idmef_data_t *data, prelude_bool_t is_ptr) { int ret; if ( ! data ) { *value = NULL; return 0; } if ( ! is_ptr ) { ret = idmef_data_clone(data, &data); if ( ret < 0 ) return ret; } ret = idmef_value_new_data(value, data); if ( ret < 0 ) { idmef_data_destroy(data); return ret; } if ( is_ptr ) idmef_data_ref(data); return 0; } static int get_value_from_time(idmef_value_t **value, idmef_time_t *time, prelude_bool_t is_ptr) { int ret; if ( ! time ) { *value = NULL; return 0; } if ( ! is_ptr ) { ret = idmef_time_clone(time, &time); if ( ret < 0 ) return ret; } ret = idmef_value_new_time(value, time); if ( ret < 0 ) { idmef_time_destroy(time); return ret; } if ( is_ptr ) idmef_time_ref(time); return 0; } static void list_insert(prelude_list_t *head, prelude_list_t *item, int pos) { int i = 0; prelude_list_t *tmp; if ( pos == IDMEF_LIST_APPEND ) prelude_list_add_tail(head, item); else if ( pos == IDMEF_LIST_PREPEND ) prelude_list_add(head, item); else if ( pos >= 0 ) { prelude_list_for_each(head, tmp) { if ( i == pos ) break; i++; } prelude_list_add_tail(tmp, item); } else if ( pos < 0 ) { pos = -pos; pos--; prelude_list_for_each_reversed(head, tmp) { if ( i == pos ) break; i++; } prelude_list_add(tmp, item); } } /** * idmef_additional_data_type_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_additional_data_type_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_additional_data_type_t idmef_additional_data_type_to_numeric(const char *name) { size_t i; const struct { idmef_additional_data_type_t val; const char *name; } tbl[] = { { IDMEF_ADDITIONAL_DATA_TYPE_STRING, "string" }, { IDMEF_ADDITIONAL_DATA_TYPE_BYTE, "byte" }, { IDMEF_ADDITIONAL_DATA_TYPE_CHARACTER, "character" }, { IDMEF_ADDITIONAL_DATA_TYPE_DATE_TIME, "date-time" }, { IDMEF_ADDITIONAL_DATA_TYPE_INTEGER, "integer" }, { IDMEF_ADDITIONAL_DATA_TYPE_NTPSTAMP, "ntpstamp" }, { IDMEF_ADDITIONAL_DATA_TYPE_PORTLIST, "portlist" }, { IDMEF_ADDITIONAL_DATA_TYPE_REAL, "real" }, { IDMEF_ADDITIONAL_DATA_TYPE_BOOLEAN, "boolean" }, { IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING, "byte-string" }, { IDMEF_ADDITIONAL_DATA_TYPE_XML, "xml" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for additional_data_type", name); } /** * idmef_additional_data_type_to_string: * @val: an enumeration value for #idmef_additional_data_type_t. * * Return the IDMEF string equivalent of @val provided #idmef_additional_data_type_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_additional_data_type_to_string(idmef_additional_data_type_t val) { const struct { idmef_additional_data_type_t val; const char *name; } tbl[] = { { IDMEF_ADDITIONAL_DATA_TYPE_STRING, "string" }, { IDMEF_ADDITIONAL_DATA_TYPE_BYTE, "byte" }, { IDMEF_ADDITIONAL_DATA_TYPE_CHARACTER, "character" }, { IDMEF_ADDITIONAL_DATA_TYPE_DATE_TIME, "date-time" }, { IDMEF_ADDITIONAL_DATA_TYPE_INTEGER, "integer" }, { IDMEF_ADDITIONAL_DATA_TYPE_NTPSTAMP, "ntpstamp" }, { IDMEF_ADDITIONAL_DATA_TYPE_PORTLIST, "portlist" }, { IDMEF_ADDITIONAL_DATA_TYPE_REAL, "real" }, { IDMEF_ADDITIONAL_DATA_TYPE_BOOLEAN, "boolean" }, { IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING, "byte-string" }, { IDMEF_ADDITIONAL_DATA_TYPE_XML, "xml" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_additional_data { IS_KEY_LISTED(meaning); REFCOUNT; IGNORED(prelude_bool_t, _type_is_set); idmef_additional_data_type_t type; REQUIRED(idmef_data_t, *data); }; /** * idmef_reference_origin_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_reference_origin_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_reference_origin_t idmef_reference_origin_to_numeric(const char *name) { size_t i; const struct { idmef_reference_origin_t val; const char *name; } tbl[] = { { IDMEF_REFERENCE_ORIGIN_UNKNOWN, "unknown" }, { IDMEF_REFERENCE_ORIGIN_VENDOR_SPECIFIC, "vendor-specific" }, { IDMEF_REFERENCE_ORIGIN_USER_SPECIFIC, "user-specific" }, { IDMEF_REFERENCE_ORIGIN_BUGTRAQID, "bugtraqid" }, { IDMEF_REFERENCE_ORIGIN_CVE, "cve" }, { IDMEF_REFERENCE_ORIGIN_OSVDB, "osvdb" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for reference_origin", name); } /** * idmef_reference_origin_to_string: * @val: an enumeration value for #idmef_reference_origin_t. * * Return the IDMEF string equivalent of @val provided #idmef_reference_origin_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_reference_origin_to_string(idmef_reference_origin_t val) { const struct { idmef_reference_origin_t val; const char *name; } tbl[] = { { IDMEF_REFERENCE_ORIGIN_UNKNOWN, "unknown" }, { IDMEF_REFERENCE_ORIGIN_VENDOR_SPECIFIC, "vendor-specific" }, { IDMEF_REFERENCE_ORIGIN_USER_SPECIFIC, "user-specific" }, { IDMEF_REFERENCE_ORIGIN_BUGTRAQID, "bugtraqid" }, { IDMEF_REFERENCE_ORIGIN_CVE, "cve" }, { IDMEF_REFERENCE_ORIGIN_OSVDB, "osvdb" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_reference { IDMEF_LINKED_OBJECT; REFCOUNT; idmef_reference_origin_t origin; REQUIRED(prelude_string_t, *name); DISPLAY_ATTRS({"priority", "0", NULL}) REQUIRED(prelude_string_t, *url); prelude_string_t *meaning; }; struct idmef_classification { IDMEF_OBJECT; REFCOUNT; prelude_string_t *ident; REQUIRED(prelude_string_t, *text); DISPLAY_ATTRS({"priority", "0", NULL}) LISTED_OBJECT(reference_list, idmef_reference_t); DISPLAY_ATTRS({"priority", "0", NULL}) }; /** * idmef_user_id_type_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_user_id_type_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_user_id_type_t idmef_user_id_type_to_numeric(const char *name) { size_t i; const struct { idmef_user_id_type_t val; const char *name; } tbl[] = { { IDMEF_USER_ID_TYPE_ORIGINAL_USER, "original-user" }, { IDMEF_USER_ID_TYPE_CURRENT_USER, "current-user" }, { IDMEF_USER_ID_TYPE_TARGET_USER, "target-user" }, { IDMEF_USER_ID_TYPE_USER_PRIVS, "user-privs" }, { IDMEF_USER_ID_TYPE_CURRENT_GROUP, "current-group" }, { IDMEF_USER_ID_TYPE_GROUP_PRIVS, "group-privs" }, { IDMEF_USER_ID_TYPE_OTHER_PRIVS, "other-privs" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for user_id_type", name); } /** * idmef_user_id_type_to_string: * @val: an enumeration value for #idmef_user_id_type_t. * * Return the IDMEF string equivalent of @val provided #idmef_user_id_type_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_user_id_type_to_string(idmef_user_id_type_t val) { const struct { idmef_user_id_type_t val; const char *name; } tbl[] = { { IDMEF_USER_ID_TYPE_ORIGINAL_USER, "original-user" }, { IDMEF_USER_ID_TYPE_CURRENT_USER, "current-user" }, { IDMEF_USER_ID_TYPE_TARGET_USER, "target-user" }, { IDMEF_USER_ID_TYPE_USER_PRIVS, "user-privs" }, { IDMEF_USER_ID_TYPE_CURRENT_GROUP, "current-group" }, { IDMEF_USER_ID_TYPE_GROUP_PRIVS, "group-privs" }, { IDMEF_USER_ID_TYPE_OTHER_PRIVS, "other-privs" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_user_id { IDMEF_LINKED_OBJECT; REFCOUNT; prelude_string_t *ident; idmef_user_id_type_t type; prelude_string_t *tty; prelude_string_t *name; DISPLAY_ATTRS({"priority", "0", NULL}) OPTIONAL_INT(uint32_t, number); DISPLAY_ATTRS({"priority", "0", NULL}) }; /** * idmef_user_category_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_user_category_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_user_category_t idmef_user_category_to_numeric(const char *name) { size_t i; const struct { idmef_user_category_t val; const char *name; } tbl[] = { { IDMEF_USER_CATEGORY_UNKNOWN, "unknown" }, { IDMEF_USER_CATEGORY_APPLICATION, "application" }, { IDMEF_USER_CATEGORY_OS_DEVICE, "os-device" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for user_category", name); } /** * idmef_user_category_to_string: * @val: an enumeration value for #idmef_user_category_t. * * Return the IDMEF string equivalent of @val provided #idmef_user_category_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_user_category_to_string(idmef_user_category_t val) { const struct { idmef_user_category_t val; const char *name; } tbl[] = { { IDMEF_USER_CATEGORY_UNKNOWN, "unknown" }, { IDMEF_USER_CATEGORY_APPLICATION, "application" }, { IDMEF_USER_CATEGORY_OS_DEVICE, "os-device" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_user { IDMEF_OBJECT; REFCOUNT; prelude_string_t *ident; idmef_user_category_t category; LISTED_OBJECT(user_id_list, idmef_user_id_t); DISPLAY_ATTRS({"priority", "0", NULL}) }; /** * idmef_address_category_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_address_category_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_address_category_t idmef_address_category_to_numeric(const char *name) { size_t i; const struct { idmef_address_category_t val; const char *name; } tbl[] = { { IDMEF_ADDRESS_CATEGORY_UNKNOWN, "unknown" }, { IDMEF_ADDRESS_CATEGORY_ATM, "atm" }, { IDMEF_ADDRESS_CATEGORY_E_MAIL, "e-mail" }, { IDMEF_ADDRESS_CATEGORY_LOTUS_NOTES, "lotus-notes" }, { IDMEF_ADDRESS_CATEGORY_MAC, "mac" }, { IDMEF_ADDRESS_CATEGORY_SNA, "sna" }, { IDMEF_ADDRESS_CATEGORY_VM, "vm" }, { IDMEF_ADDRESS_CATEGORY_IPV4_ADDR, "ipv4-addr" }, { IDMEF_ADDRESS_CATEGORY_IPV4_ADDR_HEX, "ipv4-addr-hex" }, { IDMEF_ADDRESS_CATEGORY_IPV4_NET, "ipv4-net" }, { IDMEF_ADDRESS_CATEGORY_IPV4_NET_MASK, "ipv4-net-mask" }, { IDMEF_ADDRESS_CATEGORY_IPV6_ADDR, "ipv6-addr" }, { IDMEF_ADDRESS_CATEGORY_IPV6_ADDR_HEX, "ipv6-addr-hex" }, { IDMEF_ADDRESS_CATEGORY_IPV6_NET, "ipv6-net" }, { IDMEF_ADDRESS_CATEGORY_IPV6_NET_MASK, "ipv6-net-mask" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for address_category", name); } /** * idmef_address_category_to_string: * @val: an enumeration value for #idmef_address_category_t. * * Return the IDMEF string equivalent of @val provided #idmef_address_category_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_address_category_to_string(idmef_address_category_t val) { const struct { idmef_address_category_t val; const char *name; } tbl[] = { { IDMEF_ADDRESS_CATEGORY_UNKNOWN, "unknown" }, { IDMEF_ADDRESS_CATEGORY_ATM, "atm" }, { IDMEF_ADDRESS_CATEGORY_E_MAIL, "e-mail" }, { IDMEF_ADDRESS_CATEGORY_LOTUS_NOTES, "lotus-notes" }, { IDMEF_ADDRESS_CATEGORY_MAC, "mac" }, { IDMEF_ADDRESS_CATEGORY_SNA, "sna" }, { IDMEF_ADDRESS_CATEGORY_VM, "vm" }, { IDMEF_ADDRESS_CATEGORY_IPV4_ADDR, "ipv4-addr" }, { IDMEF_ADDRESS_CATEGORY_IPV4_ADDR_HEX, "ipv4-addr-hex" }, { IDMEF_ADDRESS_CATEGORY_IPV4_NET, "ipv4-net" }, { IDMEF_ADDRESS_CATEGORY_IPV4_NET_MASK, "ipv4-net-mask" }, { IDMEF_ADDRESS_CATEGORY_IPV6_ADDR, "ipv6-addr" }, { IDMEF_ADDRESS_CATEGORY_IPV6_ADDR_HEX, "ipv6-addr-hex" }, { IDMEF_ADDRESS_CATEGORY_IPV6_NET, "ipv6-net" }, { IDMEF_ADDRESS_CATEGORY_IPV6_NET_MASK, "ipv6-net-mask" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_address { IDMEF_LINKED_OBJECT; REFCOUNT; prelude_string_t *ident; idmef_address_category_t category; prelude_string_t *vlan_name; OPTIONAL_INT(int32_t, vlan_num); REQUIRED(prelude_string_t, *address); DISPLAY_ATTRS({"priority", "0", NULL}) prelude_string_t *netmask; }; struct idmef_process { IDMEF_OBJECT; REFCOUNT; prelude_string_t *ident; REQUIRED(prelude_string_t, *name); OPTIONAL_INT(uint32_t, pid); prelude_string_t *path; LISTED_OBJECT(arg_list, prelude_string_t); LISTED_OBJECT(env_list, prelude_string_t); }; struct idmef_web_service { IDMEF_OBJECT; REFCOUNT; REQUIRED(prelude_string_t, *url); prelude_string_t *cgi; prelude_string_t *http_method; LISTED_OBJECT(arg_list, prelude_string_t); }; struct idmef_snmp_service { IDMEF_OBJECT; REFCOUNT; prelude_string_t *oid; OPTIONAL_INT(uint32_t, message_processing_model); OPTIONAL_INT(uint32_t, security_model); prelude_string_t *security_name; OPTIONAL_INT(uint32_t, security_level); prelude_string_t *context_name; prelude_string_t *context_engine_id; prelude_string_t *command; }; /** * idmef_service_type_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_service_type_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_service_type_t idmef_service_type_to_numeric(const char *name) { size_t i; const struct { idmef_service_type_t val; const char *name; } tbl[] = { { IDMEF_SERVICE_TYPE_DEFAULT, "default" }, { IDMEF_SERVICE_TYPE_WEB, "web" }, { IDMEF_SERVICE_TYPE_SNMP, "snmp" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for service_type", name); } /** * idmef_service_type_to_string: * @val: an enumeration value for #idmef_service_type_t. * * Return the IDMEF string equivalent of @val provided #idmef_service_type_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_service_type_to_string(idmef_service_type_t val) { const struct { idmef_service_type_t val; const char *name; } tbl[] = { { IDMEF_SERVICE_TYPE_DEFAULT, "default" }, { IDMEF_SERVICE_TYPE_WEB, "web" }, { IDMEF_SERVICE_TYPE_SNMP, "snmp" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_service { IDMEF_OBJECT; REFCOUNT; prelude_string_t *ident; OPTIONAL_INT(uint8_t, ip_version); OPTIONAL_INT(uint8_t, iana_protocol_number); prelude_string_t *iana_protocol_name; prelude_string_t *name; OPTIONAL_INT(uint16_t, port); DISPLAY_ATTRS({"priority", "0", NULL}) prelude_string_t *portlist; DISPLAY_ATTRS({"priority", "0", NULL}) prelude_string_t *protocol; UNION(idmef_service_type_t, type) { UNION_MEMBER(IDMEF_SERVICE_TYPE_WEB, idmef_web_service_t, *web_service); UNION_MEMBER(IDMEF_SERVICE_TYPE_SNMP, idmef_snmp_service_t, *snmp_service); } specific; }; /** * idmef_node_category_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_node_category_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_node_category_t idmef_node_category_to_numeric(const char *name) { size_t i; const struct { idmef_node_category_t val; const char *name; } tbl[] = { { IDMEF_NODE_CATEGORY_UNKNOWN, "unknown" }, { IDMEF_NODE_CATEGORY_ADS, "ads" }, { IDMEF_NODE_CATEGORY_AFS, "afs" }, { IDMEF_NODE_CATEGORY_CODA, "coda" }, { IDMEF_NODE_CATEGORY_DFS, "dfs" }, { IDMEF_NODE_CATEGORY_DNS, "dns" }, { IDMEF_NODE_CATEGORY_HOSTS, "hosts" }, { IDMEF_NODE_CATEGORY_KERBEROS, "kerberos" }, { IDMEF_NODE_CATEGORY_NDS, "nds" }, { IDMEF_NODE_CATEGORY_NIS, "nis" }, { IDMEF_NODE_CATEGORY_NISPLUS, "nisplus" }, { IDMEF_NODE_CATEGORY_NT, "nt" }, { IDMEF_NODE_CATEGORY_WFW, "wfw" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for node_category", name); } /** * idmef_node_category_to_string: * @val: an enumeration value for #idmef_node_category_t. * * Return the IDMEF string equivalent of @val provided #idmef_node_category_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_node_category_to_string(idmef_node_category_t val) { const struct { idmef_node_category_t val; const char *name; } tbl[] = { { IDMEF_NODE_CATEGORY_UNKNOWN, "unknown" }, { IDMEF_NODE_CATEGORY_ADS, "ads" }, { IDMEF_NODE_CATEGORY_AFS, "afs" }, { IDMEF_NODE_CATEGORY_CODA, "coda" }, { IDMEF_NODE_CATEGORY_DFS, "dfs" }, { IDMEF_NODE_CATEGORY_DNS, "dns" }, { IDMEF_NODE_CATEGORY_HOSTS, "hosts" }, { IDMEF_NODE_CATEGORY_KERBEROS, "kerberos" }, { IDMEF_NODE_CATEGORY_NDS, "nds" }, { IDMEF_NODE_CATEGORY_NIS, "nis" }, { IDMEF_NODE_CATEGORY_NISPLUS, "nisplus" }, { IDMEF_NODE_CATEGORY_NT, "nt" }, { IDMEF_NODE_CATEGORY_WFW, "wfw" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_node { IDMEF_OBJECT; REFCOUNT; prelude_string_t *ident; idmef_node_category_t category; prelude_string_t *name; DISPLAY_ATTRS({"priority", "0", NULL}); prelude_string_t *location; DISPLAY_ATTRS({"priority", "0", NULL}); LISTED_OBJECT(address_list, idmef_address_t); DISPLAY_ATTRS({"priority", "0", NULL}) }; /** * idmef_source_spoofed_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_source_spoofed_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_source_spoofed_t idmef_source_spoofed_to_numeric(const char *name) { size_t i; const struct { idmef_source_spoofed_t val; const char *name; } tbl[] = { { IDMEF_SOURCE_SPOOFED_UNKNOWN, "unknown" }, { IDMEF_SOURCE_SPOOFED_YES, "yes" }, { IDMEF_SOURCE_SPOOFED_NO, "no" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for source_spoofed", name); } /** * idmef_source_spoofed_to_string: * @val: an enumeration value for #idmef_source_spoofed_t. * * Return the IDMEF string equivalent of @val provided #idmef_source_spoofed_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_source_spoofed_to_string(idmef_source_spoofed_t val) { const struct { idmef_source_spoofed_t val; const char *name; } tbl[] = { { IDMEF_SOURCE_SPOOFED_UNKNOWN, "unknown" }, { IDMEF_SOURCE_SPOOFED_YES, "yes" }, { IDMEF_SOURCE_SPOOFED_NO, "no" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_source { IDMEF_LINKED_OBJECT; REFCOUNT; prelude_string_t *ident; idmef_source_spoofed_t spoofed; prelude_string_t *interface; idmef_node_t *node; DISPLAY_ATTRS({"priority", "0", NULL}) idmef_user_t *user; DISPLAY_ATTRS({"priority", "0", NULL}) idmef_process_t *process; DISPLAY_ATTRS({"priority", "0", NULL}) idmef_service_t *service; DISPLAY_ATTRS({"priority", "0", NULL}) }; struct idmef_file_access { IDMEF_LINKED_OBJECT; REFCOUNT; REQUIRED(idmef_user_id_t, *user_id); LISTED_OBJECT(permission_list, prelude_string_t); }; struct idmef_inode { IDMEF_OBJECT; REFCOUNT; idmef_time_t *change_time; OPTIONAL_INT(uint32_t, number); OPTIONAL_INT(uint32_t, major_device); OPTIONAL_INT(uint32_t, minor_device); OPTIONAL_INT(uint32_t, c_major_device); OPTIONAL_INT(uint32_t, c_minor_device); }; /** * idmef_checksum_algorithm_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_checksum_algorithm_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_checksum_algorithm_t idmef_checksum_algorithm_to_numeric(const char *name) { size_t i; const struct { idmef_checksum_algorithm_t val; const char *name; } tbl[] = { { IDMEF_CHECKSUM_ALGORITHM_MD4, "MD4" }, { IDMEF_CHECKSUM_ALGORITHM_MD5, "MD5" }, { IDMEF_CHECKSUM_ALGORITHM_SHA1, "SHA1" }, { IDMEF_CHECKSUM_ALGORITHM_SHA2_256, "SHA2-256" }, { IDMEF_CHECKSUM_ALGORITHM_SHA2_384, "SHA2-384" }, { IDMEF_CHECKSUM_ALGORITHM_SHA2_512, "SHA2-512" }, { IDMEF_CHECKSUM_ALGORITHM_CRC_32, "CRC-32" }, { IDMEF_CHECKSUM_ALGORITHM_HAVAL, "Haval" }, { IDMEF_CHECKSUM_ALGORITHM_TIGER, "Tiger" }, { IDMEF_CHECKSUM_ALGORITHM_GOST, "Gost" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for checksum_algorithm", name); } /** * idmef_checksum_algorithm_to_string: * @val: an enumeration value for #idmef_checksum_algorithm_t. * * Return the IDMEF string equivalent of @val provided #idmef_checksum_algorithm_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_checksum_algorithm_to_string(idmef_checksum_algorithm_t val) { const struct { idmef_checksum_algorithm_t val; const char *name; } tbl[] = {{ 0, NULL }, { IDMEF_CHECKSUM_ALGORITHM_MD4, "MD4" }, { IDMEF_CHECKSUM_ALGORITHM_MD5, "MD5" }, { IDMEF_CHECKSUM_ALGORITHM_SHA1, "SHA1" }, { IDMEF_CHECKSUM_ALGORITHM_SHA2_256, "SHA2-256" }, { IDMEF_CHECKSUM_ALGORITHM_SHA2_384, "SHA2-384" }, { IDMEF_CHECKSUM_ALGORITHM_SHA2_512, "SHA2-512" }, { IDMEF_CHECKSUM_ALGORITHM_CRC_32, "CRC-32" }, { IDMEF_CHECKSUM_ALGORITHM_HAVAL, "Haval" }, { IDMEF_CHECKSUM_ALGORITHM_TIGER, "Tiger" }, { IDMEF_CHECKSUM_ALGORITHM_GOST, "Gost" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_checksum { IDMEF_LINKED_OBJECT; REFCOUNT; REQUIRED(prelude_string_t, *value); prelude_string_t *key; idmef_checksum_algorithm_t algorithm; }; /** * idmef_file_category_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_file_category_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_file_category_t idmef_file_category_to_numeric(const char *name) { size_t i; const struct { idmef_file_category_t val; const char *name; } tbl[] = { { IDMEF_FILE_CATEGORY_CURRENT, "current" }, { IDMEF_FILE_CATEGORY_ORIGINAL, "original" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for file_category", name); } /** * idmef_file_category_to_string: * @val: an enumeration value for #idmef_file_category_t. * * Return the IDMEF string equivalent of @val provided #idmef_file_category_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_file_category_to_string(idmef_file_category_t val) { const struct { idmef_file_category_t val; const char *name; } tbl[] = {{ 0, NULL }, { IDMEF_FILE_CATEGORY_CURRENT, "current" }, { IDMEF_FILE_CATEGORY_ORIGINAL, "original" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } /** * idmef_file_fstype_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_file_fstype_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_file_fstype_t idmef_file_fstype_to_numeric(const char *name) { size_t i; const struct { idmef_file_fstype_t val; const char *name; } tbl[] = { { IDMEF_FILE_FSTYPE_UFS, "ufs" }, { IDMEF_FILE_FSTYPE_EFS, "efs" }, { IDMEF_FILE_FSTYPE_NFS, "nfs" }, { IDMEF_FILE_FSTYPE_AFS, "afs" }, { IDMEF_FILE_FSTYPE_NTFS, "ntfs" }, { IDMEF_FILE_FSTYPE_FAT16, "fat16" }, { IDMEF_FILE_FSTYPE_FAT32, "fat32" }, { IDMEF_FILE_FSTYPE_PCFS, "pcfs" }, { IDMEF_FILE_FSTYPE_JOLIET, "joliet" }, { IDMEF_FILE_FSTYPE_ISO9660, "iso9660" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for file_fstype", name); } /** * idmef_file_fstype_to_string: * @val: an enumeration value for #idmef_file_fstype_t. * * Return the IDMEF string equivalent of @val provided #idmef_file_fstype_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_file_fstype_to_string(idmef_file_fstype_t val) { const struct { idmef_file_fstype_t val; const char *name; } tbl[] = {{ 0, NULL }, { IDMEF_FILE_FSTYPE_UFS, "ufs" }, { IDMEF_FILE_FSTYPE_EFS, "efs" }, { IDMEF_FILE_FSTYPE_NFS, "nfs" }, { IDMEF_FILE_FSTYPE_AFS, "afs" }, { IDMEF_FILE_FSTYPE_NTFS, "ntfs" }, { IDMEF_FILE_FSTYPE_FAT16, "fat16" }, { IDMEF_FILE_FSTYPE_FAT32, "fat32" }, { IDMEF_FILE_FSTYPE_PCFS, "pcfs" }, { IDMEF_FILE_FSTYPE_JOLIET, "joliet" }, { IDMEF_FILE_FSTYPE_ISO9660, "iso9660" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_file { IDMEF_LINKED_OBJECT; REFCOUNT; prelude_string_t *ident; REQUIRED(prelude_string_t, *name); REQUIRED(prelude_string_t, *path); idmef_time_t *create_time; idmef_time_t *modify_time; idmef_time_t *access_time; OPTIONAL_INT(uint64_t, data_size); OPTIONAL_INT(uint64_t, disk_size); LISTED_OBJECT(file_access_list, idmef_file_access_t); LISTED_OBJECT(linkage_list, idmef_linkage_t); idmef_inode_t *inode; LISTED_OBJECT(checksum_list, idmef_checksum_t); idmef_file_category_t category; OPTIONAL_INT(idmef_file_fstype_t, fstype); prelude_string_t *file_type; }; /** * idmef_linkage_category_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_linkage_category_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_linkage_category_t idmef_linkage_category_to_numeric(const char *name) { size_t i; const struct { idmef_linkage_category_t val; const char *name; } tbl[] = { { IDMEF_LINKAGE_CATEGORY_HARD_LINK, "hard-link" }, { IDMEF_LINKAGE_CATEGORY_MOUNT_POINT, "mount-point" }, { IDMEF_LINKAGE_CATEGORY_REPARSE_POINT, "reparse-point" }, { IDMEF_LINKAGE_CATEGORY_SHORTCUT, "shortcut" }, { IDMEF_LINKAGE_CATEGORY_STREAM, "stream" }, { IDMEF_LINKAGE_CATEGORY_SYMBOLIC_LINK, "symbolic-link" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for linkage_category", name); } /** * idmef_linkage_category_to_string: * @val: an enumeration value for #idmef_linkage_category_t. * * Return the IDMEF string equivalent of @val provided #idmef_linkage_category_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_linkage_category_to_string(idmef_linkage_category_t val) { const struct { idmef_linkage_category_t val; const char *name; } tbl[] = {{ 0, NULL }, { IDMEF_LINKAGE_CATEGORY_HARD_LINK, "hard-link" }, { IDMEF_LINKAGE_CATEGORY_MOUNT_POINT, "mount-point" }, { IDMEF_LINKAGE_CATEGORY_REPARSE_POINT, "reparse-point" }, { IDMEF_LINKAGE_CATEGORY_SHORTCUT, "shortcut" }, { IDMEF_LINKAGE_CATEGORY_STREAM, "stream" }, { IDMEF_LINKAGE_CATEGORY_SYMBOLIC_LINK, "symbolic-link" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_linkage { IDMEF_LINKED_OBJECT; REFCOUNT; idmef_linkage_category_t category; REQUIRED(prelude_string_t, *name); REQUIRED(prelude_string_t, *path); REQUIRED(idmef_file_t, *file); }; /** * idmef_target_decoy_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_target_decoy_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_target_decoy_t idmef_target_decoy_to_numeric(const char *name) { size_t i; const struct { idmef_target_decoy_t val; const char *name; } tbl[] = { { IDMEF_TARGET_DECOY_UNKNOWN, "unknown" }, { IDMEF_TARGET_DECOY_YES, "yes" }, { IDMEF_TARGET_DECOY_NO, "no" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for target_decoy", name); } /** * idmef_target_decoy_to_string: * @val: an enumeration value for #idmef_target_decoy_t. * * Return the IDMEF string equivalent of @val provided #idmef_target_decoy_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_target_decoy_to_string(idmef_target_decoy_t val) { const struct { idmef_target_decoy_t val; const char *name; } tbl[] = { { IDMEF_TARGET_DECOY_UNKNOWN, "unknown" }, { IDMEF_TARGET_DECOY_YES, "yes" }, { IDMEF_TARGET_DECOY_NO, "no" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_target { IDMEF_LINKED_OBJECT; REFCOUNT; prelude_string_t *ident; idmef_target_decoy_t decoy; prelude_string_t *interface; idmef_node_t *node; DISPLAY_ATTRS({"priority", "0", NULL}) idmef_user_t *user; DISPLAY_ATTRS({"priority", "0", NULL}) idmef_process_t *process; DISPLAY_ATTRS({"priority", "0", NULL}) idmef_service_t *service; DISPLAY_ATTRS({"priority", "0", NULL}) LISTED_OBJECT(file_list, idmef_file_t); DISPLAY_ATTRS({"priority", "0", NULL}) }; struct idmef_analyzer { IDMEF_LINKED_OBJECT; REFCOUNT; prelude_string_t *analyzerid; prelude_string_t *name; DISPLAY_ATTRS({"priority", "0", NULL}) prelude_string_t *manufacturer; prelude_string_t *model; DISPLAY_ATTRS({"priority", "0", NULL}) prelude_string_t *version; prelude_string_t *class; DISPLAY_ATTRS({"priority", "0", NULL}) prelude_string_t *ostype; prelude_string_t *osversion; idmef_node_t *node; DISPLAY_ATTRS({"priority", "0", NULL}) idmef_process_t *process; }; struct idmef_alertident { IDMEF_LINKED_OBJECT; REFCOUNT; REQUIRED(prelude_string_t, *alertident); prelude_string_t *analyzerid; }; /** * idmef_impact_severity_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_impact_severity_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_impact_severity_t idmef_impact_severity_to_numeric(const char *name) { size_t i; const struct { idmef_impact_severity_t val; const char *name; } tbl[] = { { IDMEF_IMPACT_SEVERITY_INFO, "info" }, { IDMEF_IMPACT_SEVERITY_LOW, "low" }, { IDMEF_IMPACT_SEVERITY_MEDIUM, "medium" }, { IDMEF_IMPACT_SEVERITY_HIGH, "high" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for impact_severity", name); } /** * idmef_impact_severity_to_string: * @val: an enumeration value for #idmef_impact_severity_t. * * Return the IDMEF string equivalent of @val provided #idmef_impact_severity_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_impact_severity_to_string(idmef_impact_severity_t val) { const struct { idmef_impact_severity_t val; const char *name; } tbl[] = {{ 0, NULL }, { IDMEF_IMPACT_SEVERITY_INFO, "info" }, { IDMEF_IMPACT_SEVERITY_LOW, "low" }, { IDMEF_IMPACT_SEVERITY_MEDIUM, "medium" }, { IDMEF_IMPACT_SEVERITY_HIGH, "high" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } /** * idmef_impact_completion_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_impact_completion_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_impact_completion_t idmef_impact_completion_to_numeric(const char *name) { size_t i; const struct { idmef_impact_completion_t val; const char *name; } tbl[] = { { IDMEF_IMPACT_COMPLETION_FAILED, "failed" }, { IDMEF_IMPACT_COMPLETION_SUCCEEDED, "succeeded" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for impact_completion", name); } /** * idmef_impact_completion_to_string: * @val: an enumeration value for #idmef_impact_completion_t. * * Return the IDMEF string equivalent of @val provided #idmef_impact_completion_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_impact_completion_to_string(idmef_impact_completion_t val) { const struct { idmef_impact_completion_t val; const char *name; } tbl[] = {{ 0, NULL }, { IDMEF_IMPACT_COMPLETION_FAILED, "failed" }, { IDMEF_IMPACT_COMPLETION_SUCCEEDED, "succeeded" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } /** * idmef_impact_type_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_impact_type_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_impact_type_t idmef_impact_type_to_numeric(const char *name) { size_t i; const struct { idmef_impact_type_t val; const char *name; } tbl[] = { { IDMEF_IMPACT_TYPE_OTHER, "other" }, { IDMEF_IMPACT_TYPE_ADMIN, "admin" }, { IDMEF_IMPACT_TYPE_DOS, "dos" }, { IDMEF_IMPACT_TYPE_FILE, "file" }, { IDMEF_IMPACT_TYPE_RECON, "recon" }, { IDMEF_IMPACT_TYPE_USER, "user" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for impact_type", name); } /** * idmef_impact_type_to_string: * @val: an enumeration value for #idmef_impact_type_t. * * Return the IDMEF string equivalent of @val provided #idmef_impact_type_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_impact_type_to_string(idmef_impact_type_t val) { const struct { idmef_impact_type_t val; const char *name; } tbl[] = { { IDMEF_IMPACT_TYPE_OTHER, "other" }, { IDMEF_IMPACT_TYPE_ADMIN, "admin" }, { IDMEF_IMPACT_TYPE_DOS, "dos" }, { IDMEF_IMPACT_TYPE_FILE, "file" }, { IDMEF_IMPACT_TYPE_RECON, "recon" }, { IDMEF_IMPACT_TYPE_USER, "user" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_impact { IDMEF_OBJECT; REFCOUNT; OPTIONAL_INT(idmef_impact_severity_t, severity); OPTIONAL_INT(idmef_impact_completion_t, completion); idmef_impact_type_t type; prelude_string_t *description; DISPLAY_ATTRS({"priority", "0", NULL}) }; /** * idmef_action_category_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_action_category_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_action_category_t idmef_action_category_to_numeric(const char *name) { size_t i; const struct { idmef_action_category_t val; const char *name; } tbl[] = { { IDMEF_ACTION_CATEGORY_OTHER, "other" }, { IDMEF_ACTION_CATEGORY_BLOCK_INSTALLED, "block-installed" }, { IDMEF_ACTION_CATEGORY_NOTIFICATION_SENT, "notification-sent" }, { IDMEF_ACTION_CATEGORY_TAKEN_OFFLINE, "taken-offline" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for action_category", name); } /** * idmef_action_category_to_string: * @val: an enumeration value for #idmef_action_category_t. * * Return the IDMEF string equivalent of @val provided #idmef_action_category_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_action_category_to_string(idmef_action_category_t val) { const struct { idmef_action_category_t val; const char *name; } tbl[] = { { IDMEF_ACTION_CATEGORY_OTHER, "other" }, { IDMEF_ACTION_CATEGORY_BLOCK_INSTALLED, "block-installed" }, { IDMEF_ACTION_CATEGORY_NOTIFICATION_SENT, "notification-sent" }, { IDMEF_ACTION_CATEGORY_TAKEN_OFFLINE, "taken-offline" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_action { IDMEF_LINKED_OBJECT; REFCOUNT; idmef_action_category_t category; prelude_string_t *description; }; /** * idmef_confidence_rating_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_confidence_rating_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_confidence_rating_t idmef_confidence_rating_to_numeric(const char *name) { size_t i; const struct { idmef_confidence_rating_t val; const char *name; } tbl[] = { { IDMEF_CONFIDENCE_RATING_NUMERIC, "numeric" }, { IDMEF_CONFIDENCE_RATING_LOW, "low" }, { IDMEF_CONFIDENCE_RATING_MEDIUM, "medium" }, { IDMEF_CONFIDENCE_RATING_HIGH, "high" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for confidence_rating", name); } /** * idmef_confidence_rating_to_string: * @val: an enumeration value for #idmef_confidence_rating_t. * * Return the IDMEF string equivalent of @val provided #idmef_confidence_rating_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_confidence_rating_to_string(idmef_confidence_rating_t val) { const struct { idmef_confidence_rating_t val; const char *name; } tbl[] = { { IDMEF_CONFIDENCE_RATING_NUMERIC, "numeric" }, { IDMEF_CONFIDENCE_RATING_LOW, "low" }, { IDMEF_CONFIDENCE_RATING_MEDIUM, "medium" }, { IDMEF_CONFIDENCE_RATING_HIGH, "high" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_confidence { IDMEF_OBJECT; REFCOUNT; idmef_confidence_rating_t rating; float confidence; }; struct idmef_assessment { IDMEF_OBJECT; REFCOUNT; idmef_impact_t *impact; DISPLAY_ATTRS({"priority", "0", NULL}) LISTED_OBJECT(action_list, idmef_action_t); idmef_confidence_t *confidence; DISPLAY_ATTRS({"priority", "0", NULL}) }; struct idmef_tool_alert { IDMEF_OBJECT; REFCOUNT; REQUIRED(prelude_string_t, *name); DISPLAY_ATTRS({"priority", "0", NULL}) prelude_string_t *command; DISPLAY_ATTRS({"priority", "0", NULL}) LISTED_OBJECT(alertident_list, idmef_alertident_t); }; struct idmef_correlation_alert { IDMEF_OBJECT; REFCOUNT; REQUIRED(prelude_string_t, *name); DISPLAY_ATTRS({"priority", "0", NULL}) LISTED_OBJECT(alertident_list, idmef_alertident_t); }; struct idmef_overflow_alert { IDMEF_OBJECT; REFCOUNT; REQUIRED(prelude_string_t, *program); DISPLAY_ATTRS({"priority", "0", NULL}) OPTIONAL_INT(uint32_t, size); idmef_data_t *buffer; }; /** * idmef_alert_type_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_alert_type_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_alert_type_t idmef_alert_type_to_numeric(const char *name) { size_t i; const struct { idmef_alert_type_t val; const char *name; } tbl[] = { { IDMEF_ALERT_TYPE_DEFAULT, "default" }, { IDMEF_ALERT_TYPE_TOOL, "tool" }, { IDMEF_ALERT_TYPE_CORRELATION, "correlation" }, { IDMEF_ALERT_TYPE_OVERFLOW, "overflow" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for alert_type", name); } /** * idmef_alert_type_to_string: * @val: an enumeration value for #idmef_alert_type_t. * * Return the IDMEF string equivalent of @val provided #idmef_alert_type_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_alert_type_to_string(idmef_alert_type_t val) { const struct { idmef_alert_type_t val; const char *name; } tbl[] = { { IDMEF_ALERT_TYPE_DEFAULT, "default" }, { IDMEF_ALERT_TYPE_TOOL, "tool" }, { IDMEF_ALERT_TYPE_CORRELATION, "correlation" }, { IDMEF_ALERT_TYPE_OVERFLOW, "overflow" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_alert { IDMEF_OBJECT; REFCOUNT; prelude_string_t *messageid; LISTED_OBJECT(analyzer_list, idmef_analyzer_t); REQUIRED(idmef_time_t, *create_time); REQUIRED(idmef_classification_t, *classification); idmef_time_t *detect_time; idmef_time_t *analyzer_time; LISTED_OBJECT(source_list, idmef_source_t); LISTED_OBJECT(target_list, idmef_target_t); idmef_assessment_t *assessment; KEYLISTED_OBJECT(additional_data_list, idmef_additional_data_t); UNION(idmef_alert_type_t, type) { UNION_MEMBER(IDMEF_ALERT_TYPE_TOOL, idmef_tool_alert_t, *tool_alert); UNION_MEMBER(IDMEF_ALERT_TYPE_CORRELATION, idmef_correlation_alert_t, *correlation_alert); UNION_MEMBER(IDMEF_ALERT_TYPE_OVERFLOW, idmef_overflow_alert_t, *overflow_alert); } detail; }; struct idmef_heartbeat { IDMEF_OBJECT; REFCOUNT; prelude_string_t *messageid; LISTED_OBJECT(analyzer_list, idmef_analyzer_t); REQUIRED(idmef_time_t, *create_time); idmef_time_t *analyzer_time; OPTIONAL_INT(uint32_t, heartbeat_interval); KEYLISTED_OBJECT(additional_data_list, idmef_additional_data_t); }; /** * idmef_message_type_to_numeric: * @name: pointer to an IDMEF string representation of a #idmef_message_type_t value. * * Returns: the numeric equivalent of @name, or -1 if @name is not valid. */ idmef_message_type_t idmef_message_type_to_numeric(const char *name) { size_t i; const struct { idmef_message_type_t val; const char *name; } tbl[] = { { IDMEF_MESSAGE_TYPE_ALERT, "alert" }, { IDMEF_MESSAGE_TYPE_HEARTBEAT, "heartbeat" }, }; prelude_return_val_if_fail(name, prelude_error(PRELUDE_ERROR_ASSERTION)); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcasecmp(name, tbl[i].name) == 0 ) return tbl[i].val; } return prelude_error_verbose(PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING, "Unknown enumeration value '%s' for message_type", name); } /** * idmef_message_type_to_string: * @val: an enumeration value for #idmef_message_type_t. * * Return the IDMEF string equivalent of @val provided #idmef_message_type_t value. * * Returns: a pointer to the string describing @val, or NULL if @val is invalid. */ const char *idmef_message_type_to_string(idmef_message_type_t val) { const struct { idmef_message_type_t val; const char *name; } tbl[] = {{ 0, NULL }, { IDMEF_MESSAGE_TYPE_ALERT, "alert" }, { IDMEF_MESSAGE_TYPE_HEARTBEAT, "heartbeat" }, }; if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) ) return NULL; return tbl[val].name; } struct idmef_message { IDMEF_OBJECT; REFCOUNT; REQUIRED(prelude_string_t, *version); UNION(idmef_message_type_t, type) { UNION_MEMBER(IDMEF_MESSAGE_TYPE_ALERT, idmef_alert_t, *alert); UNION_MEMBER(IDMEF_MESSAGE_TYPE_HEARTBEAT, idmef_heartbeat_t, *heartbeat); } message; HIDE(prelude_msg_t *, pmsg); }; /** * idmef_additional_data_new: * @ret: Pointer where to store the created #idmef_additional_data_t object. * * Create a new #idmef_additional_data_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_additional_data_new(idmef_additional_data_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_ADDITIONAL_DATA; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; { int retval = idmef_data_new(&(*ret)->data); if ( retval < 0 ) { idmef_additional_data_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_additional_data_ref: * @additional_data: pointer to a #idmef_additional_data_t object. * * Increase @additional_data reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @additional_data. */ idmef_additional_data_t *idmef_additional_data_ref(idmef_additional_data_t *additional_data) { prelude_return_val_if_fail(additional_data, NULL); additional_data->refcount++; return additional_data; } int _idmef_additional_data_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_additional_data_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->meaning, TRUE); case 1: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_ADDITIONAL_DATA_TYPE, ptr->type); case 2: return get_value_from_data((idmef_value_t **) childptr, ptr->data, TRUE); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_additional_data_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_additional_data_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_additional_data_new_meaning(ptr, (prelude_string_t **) ret); case 1: return idmef_additional_data_new_type(ptr, (idmef_additional_data_type_t **) ret); case 2: return idmef_additional_data_new_data(ptr, (idmef_data_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_additional_data_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_additional_data_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->meaning ) { prelude_string_destroy(ptr->meaning); ptr->meaning = NULL; } return 0; case 1: ptr->type = 0; return 0; case 2: if ( ptr->data ) { idmef_data_destroy(ptr->data); ptr->data = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_additional_data_destroy_internal(idmef_additional_data_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->meaning ) { prelude_string_destroy(ptr->meaning); ptr->meaning = NULL; } if ( ptr->data ) { idmef_data_destroy(ptr->data); ptr->data = NULL; } /* free() should be done by the caller */ } /** * idmef_additional_data_destroy: * @ptr: pointer to a #idmef_additional_data_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_additional_data_destroy(idmef_additional_data_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_additional_data_destroy_internal(ptr); free(ptr); } /** * idmef_additional_data_get_meaning: * @ptr: pointer to a #idmef_additional_data_t object. * * Get meaning children of the #idmef_additional_data_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_additional_data_get_meaning(idmef_additional_data_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->meaning; } /** * idmef_additional_data_set_meaning: * @ptr: pointer to a #idmef_additional_data_t object. * @meaning: pointer to a #prelude_string_t object. * * Set @meaning object as a children of @ptr. * if @ptr already contain an @meaning object, then it is destroyed, * and updated to point to the provided @meaning object. */ void idmef_additional_data_set_meaning(idmef_additional_data_t *ptr, prelude_string_t *meaning) { prelude_return_if_fail(ptr); if ( ptr->meaning ) prelude_string_destroy(ptr->meaning); ptr->meaning = meaning; } /** * idmef_additional_data_new_meaning: * @ptr: pointer to a #idmef_additional_data_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new meaning object, children of #idmef_additional_data_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_additional_data_new_meaning(idmef_additional_data_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->meaning ) { retval = prelude_string_new(&ptr->meaning); if ( retval < 0 ) return retval; } *ret = ptr->meaning; return 0; } /** * idmef_additional_data_get_type: * @ptr: pointer to a #idmef_additional_data_t object. * * Get type children of the #idmef_additional_data_t object. * * Returns: a pointer to a idmef_additional_data_type_t object, or NULL if the children object is not set. */ idmef_additional_data_type_t idmef_additional_data_get_type(idmef_additional_data_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->type; } /** * idmef_additional_data_set_type: * @ptr: pointer to a #idmef_additional_data_t object. * @type: pointer to a #idmef_additional_data_type_t object. * * Set @type object as a children of @ptr. * if @ptr already contain an @type object, then it is destroyed, * and updated to point to the provided @type object. */ void idmef_additional_data_set_type(idmef_additional_data_t *ptr, idmef_additional_data_type_t type) { prelude_return_if_fail(ptr); ptr->type = type; ptr->_type_is_set = TRUE; } /** * idmef_additional_data_new_type: * @ptr: pointer to a #idmef_additional_data_t object. * @ret: pointer to an address where to store the created #idmef_additional_data_type_t object. * * Create a new type object, children of #idmef_additional_data_t. * If @ptr already contain a #idmef_additional_data_type_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_additional_data_new_type(idmef_additional_data_t *ptr, idmef_additional_data_type_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->_type_is_set = TRUE; *ret = &ptr->type; return 0; } /** * idmef_additional_data_get_data: * @ptr: pointer to a #idmef_additional_data_t object. * * Get data children of the #idmef_additional_data_t object. * * Returns: a pointer to a idmef_data_t object, or NULL if the children object is not set. */ idmef_data_t *idmef_additional_data_get_data(idmef_additional_data_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->data; } /** * idmef_additional_data_set_data: * @ptr: pointer to a #idmef_additional_data_t object. * @data: pointer to a #idmef_data_t object. * * Set @data object as a children of @ptr. * if @ptr already contain an @data object, then it is destroyed, * and updated to point to the provided @data object. */ void idmef_additional_data_set_data(idmef_additional_data_t *ptr, idmef_data_t *data) { prelude_return_if_fail(ptr); if ( ptr->data ) idmef_data_destroy(ptr->data); ptr->data = data; } /** * idmef_additional_data_new_data: * @ptr: pointer to a #idmef_additional_data_t object. * @ret: pointer to an address where to store the created #idmef_data_t object. * * Create a new data object, children of #idmef_additional_data_t. * If @ptr already contain a #idmef_data_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_additional_data_new_data(idmef_additional_data_t *ptr, idmef_data_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->data ) { retval = idmef_data_new(&ptr->data); if ( retval < 0 ) return retval; } *ret = ptr->data; return 0; } /** * idmef_additional_data_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_additional_data_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_additional_data_copy(const idmef_additional_data_t *src, idmef_additional_data_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->meaning ) { prelude_string_destroy(dst->meaning); dst->meaning = NULL; } if ( src->meaning ) { ret = prelude_string_clone(src->meaning, &dst->meaning); if ( ret < 0 ) return ret; } dst->type = src->type; if ( src->data ) { ret = idmef_data_copy(src->data, dst->data); if ( ret < 0 ) return ret; } return 0; } /** * idmef_additional_data_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_additional_data_clone(idmef_additional_data_t *src, idmef_additional_data_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_additional_data_new(dst); if ( ret < 0 ) return ret; return idmef_additional_data_copy(src, *dst); } /** * idmef_additional_data_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_additional_data_compare(const idmef_additional_data_t *obj1, const idmef_additional_data_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->meaning, obj2->meaning); if ( ret != 0 ) return ret; if ( obj1->type != obj2->type ) return -1; ret = idmef_data_compare(obj1->data, obj2->data); if ( ret != 0 ) return ret; return ret; } /** * idmef_reference_new: * @ret: Pointer where to store the created #idmef_reference_t object. * * Create a new #idmef_reference_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_reference_new(idmef_reference_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_REFERENCE; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; { int retval = prelude_string_new(&(*ret)->name); if ( retval < 0 ) { idmef_reference_destroy(*ret); *ret = NULL; return retval; } } { int retval = prelude_string_new(&(*ret)->url); if ( retval < 0 ) { idmef_reference_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_reference_ref: * @reference: pointer to a #idmef_reference_t object. * * Increase @reference reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @reference. */ idmef_reference_t *idmef_reference_ref(idmef_reference_t *reference) { prelude_return_val_if_fail(reference, NULL); reference->refcount++; return reference; } int _idmef_reference_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_reference_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_REFERENCE_ORIGIN, ptr->origin); case 1: return get_value_from_string((idmef_value_t **) childptr, ptr->name, TRUE); case 2: return get_value_from_string((idmef_value_t **) childptr, ptr->url, TRUE); case 3: return get_value_from_string((idmef_value_t **) childptr, ptr->meaning, TRUE); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_reference_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_reference_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_reference_new_origin(ptr, (idmef_reference_origin_t **) ret); case 1: return idmef_reference_new_name(ptr, (prelude_string_t **) ret); case 2: return idmef_reference_new_url(ptr, (prelude_string_t **) ret); case 3: return idmef_reference_new_meaning(ptr, (prelude_string_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_reference_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_reference_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: ptr->origin = 0; return 0; case 1: if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } return 0; case 2: if ( ptr->url ) { prelude_string_destroy(ptr->url); ptr->url = NULL; } return 0; case 3: if ( ptr->meaning ) { prelude_string_destroy(ptr->meaning); ptr->meaning = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_reference_destroy_internal(idmef_reference_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } if ( ptr->url ) { prelude_string_destroy(ptr->url); ptr->url = NULL; } if ( ptr->meaning ) { prelude_string_destroy(ptr->meaning); ptr->meaning = NULL; } /* free() should be done by the caller */ } /** * idmef_reference_destroy: * @ptr: pointer to a #idmef_reference_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_reference_destroy(idmef_reference_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_reference_destroy_internal(ptr); free(ptr); } /** * idmef_reference_get_origin: * @ptr: pointer to a #idmef_reference_t object. * * Get origin children of the #idmef_reference_t object. * * Returns: a pointer to a idmef_reference_origin_t object, or NULL if the children object is not set. */ idmef_reference_origin_t idmef_reference_get_origin(idmef_reference_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->origin; } /** * idmef_reference_set_origin: * @ptr: pointer to a #idmef_reference_t object. * @origin: pointer to a #idmef_reference_origin_t object. * * Set @origin object as a children of @ptr. * if @ptr already contain an @origin object, then it is destroyed, * and updated to point to the provided @origin object. */ void idmef_reference_set_origin(idmef_reference_t *ptr, idmef_reference_origin_t origin) { prelude_return_if_fail(ptr); ptr->origin = origin; } /** * idmef_reference_new_origin: * @ptr: pointer to a #idmef_reference_t object. * @ret: pointer to an address where to store the created #idmef_reference_origin_t object. * * Create a new origin object, children of #idmef_reference_t. * If @ptr already contain a #idmef_reference_origin_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_reference_new_origin(idmef_reference_t *ptr, idmef_reference_origin_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->origin; return 0; } /** * idmef_reference_get_name: * @ptr: pointer to a #idmef_reference_t object. * * Get name children of the #idmef_reference_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_reference_get_name(idmef_reference_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->name; } /** * idmef_reference_set_name: * @ptr: pointer to a #idmef_reference_t object. * @name: pointer to a #prelude_string_t object. * * Set @name object as a children of @ptr. * if @ptr already contain an @name object, then it is destroyed, * and updated to point to the provided @name object. */ void idmef_reference_set_name(idmef_reference_t *ptr, prelude_string_t *name) { prelude_return_if_fail(ptr); if ( ptr->name ) prelude_string_destroy(ptr->name); ptr->name = name; } /** * idmef_reference_new_name: * @ptr: pointer to a #idmef_reference_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new name object, children of #idmef_reference_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_reference_new_name(idmef_reference_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->name ) { retval = prelude_string_new(&ptr->name); if ( retval < 0 ) return retval; } *ret = ptr->name; return 0; } /** * idmef_reference_get_url: * @ptr: pointer to a #idmef_reference_t object. * * Get url children of the #idmef_reference_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_reference_get_url(idmef_reference_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->url; } /** * idmef_reference_set_url: * @ptr: pointer to a #idmef_reference_t object. * @url: pointer to a #prelude_string_t object. * * Set @url object as a children of @ptr. * if @ptr already contain an @url object, then it is destroyed, * and updated to point to the provided @url object. */ void idmef_reference_set_url(idmef_reference_t *ptr, prelude_string_t *url) { prelude_return_if_fail(ptr); if ( ptr->url ) prelude_string_destroy(ptr->url); ptr->url = url; } /** * idmef_reference_new_url: * @ptr: pointer to a #idmef_reference_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new url object, children of #idmef_reference_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_reference_new_url(idmef_reference_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->url ) { retval = prelude_string_new(&ptr->url); if ( retval < 0 ) return retval; } *ret = ptr->url; return 0; } /** * idmef_reference_get_meaning: * @ptr: pointer to a #idmef_reference_t object. * * Get meaning children of the #idmef_reference_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_reference_get_meaning(idmef_reference_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->meaning; } /** * idmef_reference_set_meaning: * @ptr: pointer to a #idmef_reference_t object. * @meaning: pointer to a #prelude_string_t object. * * Set @meaning object as a children of @ptr. * if @ptr already contain an @meaning object, then it is destroyed, * and updated to point to the provided @meaning object. */ void idmef_reference_set_meaning(idmef_reference_t *ptr, prelude_string_t *meaning) { prelude_return_if_fail(ptr); if ( ptr->meaning ) prelude_string_destroy(ptr->meaning); ptr->meaning = meaning; } /** * idmef_reference_new_meaning: * @ptr: pointer to a #idmef_reference_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new meaning object, children of #idmef_reference_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_reference_new_meaning(idmef_reference_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->meaning ) { retval = prelude_string_new(&ptr->meaning); if ( retval < 0 ) return retval; } *ret = ptr->meaning; return 0; } /** * idmef_reference_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_reference_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_reference_copy(const idmef_reference_t *src, idmef_reference_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; dst->origin = src->origin; if ( src->name ) { ret = prelude_string_copy(src->name, dst->name); if ( ret < 0 ) return ret; } if ( src->url ) { ret = prelude_string_copy(src->url, dst->url); if ( ret < 0 ) return ret; } if ( dst->meaning ) { prelude_string_destroy(dst->meaning); dst->meaning = NULL; } if ( src->meaning ) { ret = prelude_string_clone(src->meaning, &dst->meaning); if ( ret < 0 ) return ret; } return 0; } /** * idmef_reference_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_reference_clone(idmef_reference_t *src, idmef_reference_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_reference_new(dst); if ( ret < 0 ) return ret; return idmef_reference_copy(src, *dst); } /** * idmef_reference_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_reference_compare(const idmef_reference_t *obj1, const idmef_reference_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; if ( obj1->origin != obj2->origin ) return -1; ret = prelude_string_compare(obj1->name, obj2->name); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->url, obj2->url); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->meaning, obj2->meaning); if ( ret != 0 ) return ret; return ret; } /** * idmef_classification_new: * @ret: Pointer where to store the created #idmef_classification_t object. * * Create a new #idmef_classification_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_classification_new(idmef_classification_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_CLASSIFICATION; (*ret)->refcount = 1; prelude_list_init(&(*ret)->reference_list); { int retval = prelude_string_new(&(*ret)->text); if ( retval < 0 ) { idmef_classification_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_classification_ref: * @classification: pointer to a #idmef_classification_t object. * * Increase @classification reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @classification. */ idmef_classification_t *idmef_classification_ref(idmef_classification_t *classification) { prelude_return_val_if_fail(classification, NULL); classification->refcount++; return classification; } int _idmef_classification_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_classification_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->ident, TRUE); case 1: return get_value_from_string((idmef_value_t **) childptr, ptr->text, TRUE); case 2: *childptr = &ptr->reference_list; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_classification_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_classification_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_classification_new_ident(ptr, (prelude_string_t **) ret); case 1: return idmef_classification_new_text(ptr, (prelude_string_t **) ret); case 2: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_classification_new_reference(ptr, (idmef_reference_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->reference_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->reference_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_classification_new_reference(ptr, (idmef_reference_t **) ret, n); } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_classification_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_classification_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } return 0; case 1: if ( ptr->text ) { prelude_string_destroy(ptr->text); ptr->text = NULL; } return 0; case 2: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->reference_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_reference_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->reference_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_reference_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_classification_destroy_internal(idmef_classification_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } if ( ptr->text ) { prelude_string_destroy(ptr->text); ptr->text = NULL; } { prelude_list_t *n, *tmp; idmef_reference_t *entry; prelude_list_for_each_safe(&ptr->reference_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_reference_destroy(entry); } } /* free() should be done by the caller */ } /** * idmef_classification_destroy: * @ptr: pointer to a #idmef_classification_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_classification_destroy(idmef_classification_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_classification_destroy_internal(ptr); free(ptr); } /** * idmef_classification_get_ident: * @ptr: pointer to a #idmef_classification_t object. * * Get ident children of the #idmef_classification_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_classification_get_ident(idmef_classification_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->ident; } /** * idmef_classification_set_ident: * @ptr: pointer to a #idmef_classification_t object. * @ident: pointer to a #prelude_string_t object. * * Set @ident object as a children of @ptr. * if @ptr already contain an @ident object, then it is destroyed, * and updated to point to the provided @ident object. */ void idmef_classification_set_ident(idmef_classification_t *ptr, prelude_string_t *ident) { prelude_return_if_fail(ptr); if ( ptr->ident ) prelude_string_destroy(ptr->ident); ptr->ident = ident; } /** * idmef_classification_new_ident: * @ptr: pointer to a #idmef_classification_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new ident object, children of #idmef_classification_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_classification_new_ident(idmef_classification_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->ident ) { retval = prelude_string_new(&ptr->ident); if ( retval < 0 ) return retval; } *ret = ptr->ident; return 0; } /** * idmef_classification_get_text: * @ptr: pointer to a #idmef_classification_t object. * * Get text children of the #idmef_classification_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_classification_get_text(idmef_classification_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->text; } /** * idmef_classification_set_text: * @ptr: pointer to a #idmef_classification_t object. * @text: pointer to a #prelude_string_t object. * * Set @text object as a children of @ptr. * if @ptr already contain an @text object, then it is destroyed, * and updated to point to the provided @text object. */ void idmef_classification_set_text(idmef_classification_t *ptr, prelude_string_t *text) { prelude_return_if_fail(ptr); if ( ptr->text ) prelude_string_destroy(ptr->text); ptr->text = text; } /** * idmef_classification_new_text: * @ptr: pointer to a #idmef_classification_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new text object, children of #idmef_classification_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_classification_new_text(idmef_classification_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->text ) { retval = prelude_string_new(&ptr->text); if ( retval < 0 ) return retval; } *ret = ptr->text; return 0; } /** * idmef_classification_get_next_reference: * @classification: pointer to a #idmef_classification_t object. * @reference_cur: pointer to a #idmef_reference_t object. * * Get the next #idmef_reference_t object listed in @ptr. * When iterating over the idmef_reference_t object listed in @ptr, * @object should be set to the latest returned #idmef_reference_t object. * * Returns: the next #idmef_reference_t in the list. */ idmef_reference_t *idmef_classification_get_next_reference(idmef_classification_t *classification, idmef_reference_t *reference_cur) { prelude_list_t *tmp = (reference_cur) ? &((prelude_linked_object_t *) reference_cur)->_list : NULL; prelude_return_val_if_fail(classification, NULL); prelude_list_for_each_continue(&classification->reference_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_classification_set_reference: * @ptr: pointer to a #idmef_classification_t object. * @object: pointer to a #idmef_reference_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_reference_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_classification_set_reference(idmef_classification_t *ptr, idmef_reference_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->reference_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_classification_new_reference: * @ptr: pointer to a #idmef_classification_t object. * @ret: pointer to an address where to store the created #idmef_reference_t object. * @pos: position in the list. * * Create a new #idmef_reference_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_reference_t object. The created #idmef_reference_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_classification_new_reference(idmef_classification_t *ptr, idmef_reference_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_reference_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->reference_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_classification_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_classification_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_classification_copy(const idmef_classification_t *src, idmef_classification_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->ident ) { prelude_string_destroy(dst->ident); dst->ident = NULL; } if ( src->ident ) { ret = prelude_string_clone(src->ident, &dst->ident); if ( ret < 0 ) return ret; } if ( src->text ) { ret = prelude_string_copy(src->text, dst->text); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; idmef_reference_t *entry, *new; prelude_list_for_each_safe(&dst->reference_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_reference_destroy(entry); } prelude_list_for_each_safe(&src->reference_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_reference_clone(entry, &new); prelude_list_add_tail(&dst->reference_list, &((prelude_linked_object_t *) new)->_list); } } return 0; } /** * idmef_classification_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_classification_clone(idmef_classification_t *src, idmef_classification_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_classification_new(dst); if ( ret < 0 ) return ret; return idmef_classification_copy(src, *dst); } /** * idmef_classification_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_classification_compare(const idmef_classification_t *obj1, const idmef_classification_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->ident, obj2->ident); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->text, obj2->text); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; idmef_reference_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->reference_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->reference_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_reference_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } return ret; } /** * idmef_user_id_new: * @ret: Pointer where to store the created #idmef_user_id_t object. * * Create a new #idmef_user_id_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_user_id_new(idmef_user_id_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_USER_ID; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; return 0; } /** * idmef_user_id_ref: * @user_id: pointer to a #idmef_user_id_t object. * * Increase @user_id reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @user_id. */ idmef_user_id_t *idmef_user_id_ref(idmef_user_id_t *user_id) { prelude_return_val_if_fail(user_id, NULL); user_id->refcount++; return user_id; } int _idmef_user_id_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_user_id_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->ident, TRUE); case 1: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_USER_ID_TYPE, ptr->type); case 2: return get_value_from_string((idmef_value_t **) childptr, ptr->tty, TRUE); case 3: return get_value_from_string((idmef_value_t **) childptr, ptr->name, TRUE); case 4: return (ptr->number_is_set) ? idmef_value_new_uint32((idmef_value_t **) childptr, ptr->number) : 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_user_id_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_user_id_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_user_id_new_ident(ptr, (prelude_string_t **) ret); case 1: return idmef_user_id_new_type(ptr, (idmef_user_id_type_t **) ret); case 2: return idmef_user_id_new_tty(ptr, (prelude_string_t **) ret); case 3: return idmef_user_id_new_name(ptr, (prelude_string_t **) ret); case 4: return idmef_user_id_new_number(ptr, (uint32_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_user_id_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_user_id_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } return 0; case 1: ptr->type = 0; return 0; case 2: if ( ptr->tty ) { prelude_string_destroy(ptr->tty); ptr->tty = NULL; } return 0; case 3: if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } return 0; case 4: ptr->number_is_set = 0; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_user_id_destroy_internal(idmef_user_id_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } if ( ptr->tty ) { prelude_string_destroy(ptr->tty); ptr->tty = NULL; } if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } /* free() should be done by the caller */ } /** * idmef_user_id_destroy: * @ptr: pointer to a #idmef_user_id_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_user_id_destroy(idmef_user_id_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_user_id_destroy_internal(ptr); free(ptr); } /** * idmef_user_id_get_ident: * @ptr: pointer to a #idmef_user_id_t object. * * Get ident children of the #idmef_user_id_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_user_id_get_ident(idmef_user_id_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->ident; } /** * idmef_user_id_set_ident: * @ptr: pointer to a #idmef_user_id_t object. * @ident: pointer to a #prelude_string_t object. * * Set @ident object as a children of @ptr. * if @ptr already contain an @ident object, then it is destroyed, * and updated to point to the provided @ident object. */ void idmef_user_id_set_ident(idmef_user_id_t *ptr, prelude_string_t *ident) { prelude_return_if_fail(ptr); if ( ptr->ident ) prelude_string_destroy(ptr->ident); ptr->ident = ident; } /** * idmef_user_id_new_ident: * @ptr: pointer to a #idmef_user_id_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new ident object, children of #idmef_user_id_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_user_id_new_ident(idmef_user_id_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->ident ) { retval = prelude_string_new(&ptr->ident); if ( retval < 0 ) return retval; } *ret = ptr->ident; return 0; } /** * idmef_user_id_get_type: * @ptr: pointer to a #idmef_user_id_t object. * * Get type children of the #idmef_user_id_t object. * * Returns: a pointer to a idmef_user_id_type_t object, or NULL if the children object is not set. */ idmef_user_id_type_t idmef_user_id_get_type(idmef_user_id_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->type; } /** * idmef_user_id_set_type: * @ptr: pointer to a #idmef_user_id_t object. * @type: pointer to a #idmef_user_id_type_t object. * * Set @type object as a children of @ptr. * if @ptr already contain an @type object, then it is destroyed, * and updated to point to the provided @type object. */ void idmef_user_id_set_type(idmef_user_id_t *ptr, idmef_user_id_type_t type) { prelude_return_if_fail(ptr); ptr->type = type; } /** * idmef_user_id_new_type: * @ptr: pointer to a #idmef_user_id_t object. * @ret: pointer to an address where to store the created #idmef_user_id_type_t object. * * Create a new type object, children of #idmef_user_id_t. * If @ptr already contain a #idmef_user_id_type_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_user_id_new_type(idmef_user_id_t *ptr, idmef_user_id_type_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->type; return 0; } /** * idmef_user_id_get_tty: * @ptr: pointer to a #idmef_user_id_t object. * * Get tty children of the #idmef_user_id_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_user_id_get_tty(idmef_user_id_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->tty; } /** * idmef_user_id_set_tty: * @ptr: pointer to a #idmef_user_id_t object. * @tty: pointer to a #prelude_string_t object. * * Set @tty object as a children of @ptr. * if @ptr already contain an @tty object, then it is destroyed, * and updated to point to the provided @tty object. */ void idmef_user_id_set_tty(idmef_user_id_t *ptr, prelude_string_t *tty) { prelude_return_if_fail(ptr); if ( ptr->tty ) prelude_string_destroy(ptr->tty); ptr->tty = tty; } /** * idmef_user_id_new_tty: * @ptr: pointer to a #idmef_user_id_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new tty object, children of #idmef_user_id_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_user_id_new_tty(idmef_user_id_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->tty ) { retval = prelude_string_new(&ptr->tty); if ( retval < 0 ) return retval; } *ret = ptr->tty; return 0; } /** * idmef_user_id_get_name: * @ptr: pointer to a #idmef_user_id_t object. * * Get name children of the #idmef_user_id_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_user_id_get_name(idmef_user_id_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->name; } /** * idmef_user_id_set_name: * @ptr: pointer to a #idmef_user_id_t object. * @name: pointer to a #prelude_string_t object. * * Set @name object as a children of @ptr. * if @ptr already contain an @name object, then it is destroyed, * and updated to point to the provided @name object. */ void idmef_user_id_set_name(idmef_user_id_t *ptr, prelude_string_t *name) { prelude_return_if_fail(ptr); if ( ptr->name ) prelude_string_destroy(ptr->name); ptr->name = name; } /** * idmef_user_id_new_name: * @ptr: pointer to a #idmef_user_id_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new name object, children of #idmef_user_id_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_user_id_new_name(idmef_user_id_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->name ) { retval = prelude_string_new(&ptr->name); if ( retval < 0 ) return retval; } *ret = ptr->name; return 0; } /** * idmef_user_id_get_number: * @ptr: pointer to a #idmef_user_id_t object. * * Get number children of the #idmef_user_id_t object. * * Returns: a pointer to a uint32_t object, or NULL if the children object is not set. */ uint32_t *idmef_user_id_get_number(idmef_user_id_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->number_is_set ? &ptr->number : NULL; } /** * idmef_user_id_set_number: * @ptr: pointer to a #idmef_user_id_t object. * @number: pointer to a #uint32_t object. * * Set @number object as a children of @ptr. * if @ptr already contain an @number object, then it is destroyed, * and updated to point to the provided @number object. */ void idmef_user_id_set_number(idmef_user_id_t *ptr, uint32_t number) { prelude_return_if_fail(ptr); ptr->number = number; ptr->number_is_set = 1; } void idmef_user_id_unset_number(idmef_user_id_t *ptr) { prelude_return_if_fail(ptr); ptr->number_is_set = 0; } /** * idmef_user_id_new_number: * @ptr: pointer to a #idmef_user_id_t object. * @ret: pointer to an address where to store the created #uint32_t object. * * Create a new number object, children of #idmef_user_id_t. * If @ptr already contain a #uint32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_user_id_new_number(idmef_user_id_t *ptr, uint32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->number_is_set = 1; *ret = &ptr->number; return 0; } /** * idmef_user_id_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_user_id_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_user_id_copy(const idmef_user_id_t *src, idmef_user_id_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->ident ) { prelude_string_destroy(dst->ident); dst->ident = NULL; } if ( src->ident ) { ret = prelude_string_clone(src->ident, &dst->ident); if ( ret < 0 ) return ret; } dst->type = src->type; if ( dst->tty ) { prelude_string_destroy(dst->tty); dst->tty = NULL; } if ( src->tty ) { ret = prelude_string_clone(src->tty, &dst->tty); if ( ret < 0 ) return ret; } if ( dst->name ) { prelude_string_destroy(dst->name); dst->name = NULL; } if ( src->name ) { ret = prelude_string_clone(src->name, &dst->name); if ( ret < 0 ) return ret; } dst->number_is_set = src->number_is_set; dst->number = src->number; return 0; } /** * idmef_user_id_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_user_id_clone(idmef_user_id_t *src, idmef_user_id_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_user_id_new(dst); if ( ret < 0 ) return ret; return idmef_user_id_copy(src, *dst); } /** * idmef_user_id_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_user_id_compare(const idmef_user_id_t *obj1, const idmef_user_id_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->ident, obj2->ident); if ( ret != 0 ) return ret; if ( obj1->type != obj2->type ) return -1; ret = prelude_string_compare(obj1->tty, obj2->tty); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->name, obj2->name); if ( ret != 0 ) return ret; if ( obj1->number_is_set != obj2->number_is_set ) return -1; if ( obj1->number_is_set && obj1->number != obj2->number ) return -1; return ret; } /** * idmef_user_new: * @ret: Pointer where to store the created #idmef_user_t object. * * Create a new #idmef_user_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_user_new(idmef_user_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_USER; (*ret)->refcount = 1; prelude_list_init(&(*ret)->user_id_list); return 0; } /** * idmef_user_ref: * @user: pointer to a #idmef_user_t object. * * Increase @user reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @user. */ idmef_user_t *idmef_user_ref(idmef_user_t *user) { prelude_return_val_if_fail(user, NULL); user->refcount++; return user; } int _idmef_user_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_user_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->ident, TRUE); case 1: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_USER_CATEGORY, ptr->category); case 2: *childptr = &ptr->user_id_list; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_user_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_user_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_user_new_ident(ptr, (prelude_string_t **) ret); case 1: return idmef_user_new_category(ptr, (idmef_user_category_t **) ret); case 2: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_user_new_user_id(ptr, (idmef_user_id_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->user_id_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->user_id_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_user_new_user_id(ptr, (idmef_user_id_t **) ret, n); } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_user_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_user_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } return 0; case 1: ptr->category = 0; return 0; case 2: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->user_id_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_user_id_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->user_id_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_user_id_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_user_destroy_internal(idmef_user_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } { prelude_list_t *n, *tmp; idmef_user_id_t *entry; prelude_list_for_each_safe(&ptr->user_id_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_user_id_destroy(entry); } } /* free() should be done by the caller */ } /** * idmef_user_destroy: * @ptr: pointer to a #idmef_user_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_user_destroy(idmef_user_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_user_destroy_internal(ptr); free(ptr); } /** * idmef_user_get_ident: * @ptr: pointer to a #idmef_user_t object. * * Get ident children of the #idmef_user_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_user_get_ident(idmef_user_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->ident; } /** * idmef_user_set_ident: * @ptr: pointer to a #idmef_user_t object. * @ident: pointer to a #prelude_string_t object. * * Set @ident object as a children of @ptr. * if @ptr already contain an @ident object, then it is destroyed, * and updated to point to the provided @ident object. */ void idmef_user_set_ident(idmef_user_t *ptr, prelude_string_t *ident) { prelude_return_if_fail(ptr); if ( ptr->ident ) prelude_string_destroy(ptr->ident); ptr->ident = ident; } /** * idmef_user_new_ident: * @ptr: pointer to a #idmef_user_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new ident object, children of #idmef_user_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_user_new_ident(idmef_user_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->ident ) { retval = prelude_string_new(&ptr->ident); if ( retval < 0 ) return retval; } *ret = ptr->ident; return 0; } /** * idmef_user_get_category: * @ptr: pointer to a #idmef_user_t object. * * Get category children of the #idmef_user_t object. * * Returns: a pointer to a idmef_user_category_t object, or NULL if the children object is not set. */ idmef_user_category_t idmef_user_get_category(idmef_user_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->category; } /** * idmef_user_set_category: * @ptr: pointer to a #idmef_user_t object. * @category: pointer to a #idmef_user_category_t object. * * Set @category object as a children of @ptr. * if @ptr already contain an @category object, then it is destroyed, * and updated to point to the provided @category object. */ void idmef_user_set_category(idmef_user_t *ptr, idmef_user_category_t category) { prelude_return_if_fail(ptr); ptr->category = category; } /** * idmef_user_new_category: * @ptr: pointer to a #idmef_user_t object. * @ret: pointer to an address where to store the created #idmef_user_category_t object. * * Create a new category object, children of #idmef_user_t. * If @ptr already contain a #idmef_user_category_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_user_new_category(idmef_user_t *ptr, idmef_user_category_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->category; return 0; } /** * idmef_user_get_next_user_id: * @user: pointer to a #idmef_user_t object. * @user_id_cur: pointer to a #idmef_user_id_t object. * * Get the next #idmef_user_id_t object listed in @ptr. * When iterating over the idmef_user_id_t object listed in @ptr, * @object should be set to the latest returned #idmef_user_id_t object. * * Returns: the next #idmef_user_id_t in the list. */ idmef_user_id_t *idmef_user_get_next_user_id(idmef_user_t *user, idmef_user_id_t *user_id_cur) { prelude_list_t *tmp = (user_id_cur) ? &((prelude_linked_object_t *) user_id_cur)->_list : NULL; prelude_return_val_if_fail(user, NULL); prelude_list_for_each_continue(&user->user_id_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_user_set_user_id: * @ptr: pointer to a #idmef_user_t object. * @object: pointer to a #idmef_user_id_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_user_id_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_user_set_user_id(idmef_user_t *ptr, idmef_user_id_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->user_id_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_user_new_user_id: * @ptr: pointer to a #idmef_user_t object. * @ret: pointer to an address where to store the created #idmef_user_id_t object. * @pos: position in the list. * * Create a new #idmef_user_id_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_user_id_t object. The created #idmef_user_id_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_user_new_user_id(idmef_user_t *ptr, idmef_user_id_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_user_id_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->user_id_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_user_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_user_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_user_copy(const idmef_user_t *src, idmef_user_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->ident ) { prelude_string_destroy(dst->ident); dst->ident = NULL; } if ( src->ident ) { ret = prelude_string_clone(src->ident, &dst->ident); if ( ret < 0 ) return ret; } dst->category = src->category; { prelude_list_t *n, *tmp; idmef_user_id_t *entry, *new; prelude_list_for_each_safe(&dst->user_id_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_user_id_destroy(entry); } prelude_list_for_each_safe(&src->user_id_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_user_id_clone(entry, &new); prelude_list_add_tail(&dst->user_id_list, &((prelude_linked_object_t *) new)->_list); } } return 0; } /** * idmef_user_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_user_clone(idmef_user_t *src, idmef_user_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_user_new(dst); if ( ret < 0 ) return ret; return idmef_user_copy(src, *dst); } /** * idmef_user_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_user_compare(const idmef_user_t *obj1, const idmef_user_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->ident, obj2->ident); if ( ret != 0 ) return ret; if ( obj1->category != obj2->category ) return -1; { prelude_list_t *tmp1, *tmp2; idmef_user_id_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->user_id_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->user_id_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_user_id_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } return ret; } /** * idmef_address_new: * @ret: Pointer where to store the created #idmef_address_t object. * * Create a new #idmef_address_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_address_new(idmef_address_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_ADDRESS; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; { int retval = prelude_string_new(&(*ret)->address); if ( retval < 0 ) { idmef_address_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_address_ref: * @address: pointer to a #idmef_address_t object. * * Increase @address reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @address. */ idmef_address_t *idmef_address_ref(idmef_address_t *address) { prelude_return_val_if_fail(address, NULL); address->refcount++; return address; } int _idmef_address_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_address_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->ident, TRUE); case 1: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_ADDRESS_CATEGORY, ptr->category); case 2: return get_value_from_string((idmef_value_t **) childptr, ptr->vlan_name, TRUE); case 3: return (ptr->vlan_num_is_set) ? idmef_value_new_int32((idmef_value_t **) childptr, ptr->vlan_num) : 0; case 4: return get_value_from_string((idmef_value_t **) childptr, ptr->address, TRUE); case 5: return get_value_from_string((idmef_value_t **) childptr, ptr->netmask, TRUE); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_address_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_address_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_address_new_ident(ptr, (prelude_string_t **) ret); case 1: return idmef_address_new_category(ptr, (idmef_address_category_t **) ret); case 2: return idmef_address_new_vlan_name(ptr, (prelude_string_t **) ret); case 3: return idmef_address_new_vlan_num(ptr, (int32_t **) ret); case 4: return idmef_address_new_address(ptr, (prelude_string_t **) ret); case 5: return idmef_address_new_netmask(ptr, (prelude_string_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_address_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_address_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } return 0; case 1: ptr->category = 0; return 0; case 2: if ( ptr->vlan_name ) { prelude_string_destroy(ptr->vlan_name); ptr->vlan_name = NULL; } return 0; case 3: ptr->vlan_num_is_set = 0; return 0; case 4: if ( ptr->address ) { prelude_string_destroy(ptr->address); ptr->address = NULL; } return 0; case 5: if ( ptr->netmask ) { prelude_string_destroy(ptr->netmask); ptr->netmask = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_address_destroy_internal(idmef_address_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } if ( ptr->vlan_name ) { prelude_string_destroy(ptr->vlan_name); ptr->vlan_name = NULL; } if ( ptr->address ) { prelude_string_destroy(ptr->address); ptr->address = NULL; } if ( ptr->netmask ) { prelude_string_destroy(ptr->netmask); ptr->netmask = NULL; } /* free() should be done by the caller */ } /** * idmef_address_destroy: * @ptr: pointer to a #idmef_address_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_address_destroy(idmef_address_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_address_destroy_internal(ptr); free(ptr); } /** * idmef_address_get_ident: * @ptr: pointer to a #idmef_address_t object. * * Get ident children of the #idmef_address_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_address_get_ident(idmef_address_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->ident; } /** * idmef_address_set_ident: * @ptr: pointer to a #idmef_address_t object. * @ident: pointer to a #prelude_string_t object. * * Set @ident object as a children of @ptr. * if @ptr already contain an @ident object, then it is destroyed, * and updated to point to the provided @ident object. */ void idmef_address_set_ident(idmef_address_t *ptr, prelude_string_t *ident) { prelude_return_if_fail(ptr); if ( ptr->ident ) prelude_string_destroy(ptr->ident); ptr->ident = ident; } /** * idmef_address_new_ident: * @ptr: pointer to a #idmef_address_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new ident object, children of #idmef_address_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_address_new_ident(idmef_address_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->ident ) { retval = prelude_string_new(&ptr->ident); if ( retval < 0 ) return retval; } *ret = ptr->ident; return 0; } /** * idmef_address_get_category: * @ptr: pointer to a #idmef_address_t object. * * Get category children of the #idmef_address_t object. * * Returns: a pointer to a idmef_address_category_t object, or NULL if the children object is not set. */ idmef_address_category_t idmef_address_get_category(idmef_address_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->category; } /** * idmef_address_set_category: * @ptr: pointer to a #idmef_address_t object. * @category: pointer to a #idmef_address_category_t object. * * Set @category object as a children of @ptr. * if @ptr already contain an @category object, then it is destroyed, * and updated to point to the provided @category object. */ void idmef_address_set_category(idmef_address_t *ptr, idmef_address_category_t category) { prelude_return_if_fail(ptr); ptr->category = category; } /** * idmef_address_new_category: * @ptr: pointer to a #idmef_address_t object. * @ret: pointer to an address where to store the created #idmef_address_category_t object. * * Create a new category object, children of #idmef_address_t. * If @ptr already contain a #idmef_address_category_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_address_new_category(idmef_address_t *ptr, idmef_address_category_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->category; return 0; } /** * idmef_address_get_vlan_name: * @ptr: pointer to a #idmef_address_t object. * * Get vlan_name children of the #idmef_address_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_address_get_vlan_name(idmef_address_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->vlan_name; } /** * idmef_address_set_vlan_name: * @ptr: pointer to a #idmef_address_t object. * @vlan_name: pointer to a #prelude_string_t object. * * Set @vlan_name object as a children of @ptr. * if @ptr already contain an @vlan_name object, then it is destroyed, * and updated to point to the provided @vlan_name object. */ void idmef_address_set_vlan_name(idmef_address_t *ptr, prelude_string_t *vlan_name) { prelude_return_if_fail(ptr); if ( ptr->vlan_name ) prelude_string_destroy(ptr->vlan_name); ptr->vlan_name = vlan_name; } /** * idmef_address_new_vlan_name: * @ptr: pointer to a #idmef_address_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new vlan_name object, children of #idmef_address_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_address_new_vlan_name(idmef_address_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->vlan_name ) { retval = prelude_string_new(&ptr->vlan_name); if ( retval < 0 ) return retval; } *ret = ptr->vlan_name; return 0; } /** * idmef_address_get_vlan_num: * @ptr: pointer to a #idmef_address_t object. * * Get vlan_num children of the #idmef_address_t object. * * Returns: a pointer to a int32_t object, or NULL if the children object is not set. */ int32_t *idmef_address_get_vlan_num(idmef_address_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->vlan_num_is_set ? &ptr->vlan_num : NULL; } /** * idmef_address_set_vlan_num: * @ptr: pointer to a #idmef_address_t object. * @vlan_num: pointer to a #int32_t object. * * Set @vlan_num object as a children of @ptr. * if @ptr already contain an @vlan_num object, then it is destroyed, * and updated to point to the provided @vlan_num object. */ void idmef_address_set_vlan_num(idmef_address_t *ptr, int32_t vlan_num) { prelude_return_if_fail(ptr); ptr->vlan_num = vlan_num; ptr->vlan_num_is_set = 1; } void idmef_address_unset_vlan_num(idmef_address_t *ptr) { prelude_return_if_fail(ptr); ptr->vlan_num_is_set = 0; } /** * idmef_address_new_vlan_num: * @ptr: pointer to a #idmef_address_t object. * @ret: pointer to an address where to store the created #int32_t object. * * Create a new vlan_num object, children of #idmef_address_t. * If @ptr already contain a #int32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_address_new_vlan_num(idmef_address_t *ptr, int32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->vlan_num_is_set = 1; *ret = &ptr->vlan_num; return 0; } /** * idmef_address_get_address: * @ptr: pointer to a #idmef_address_t object. * * Get address children of the #idmef_address_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_address_get_address(idmef_address_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->address; } /** * idmef_address_set_address: * @ptr: pointer to a #idmef_address_t object. * @address: pointer to a #prelude_string_t object. * * Set @address object as a children of @ptr. * if @ptr already contain an @address object, then it is destroyed, * and updated to point to the provided @address object. */ void idmef_address_set_address(idmef_address_t *ptr, prelude_string_t *address) { prelude_return_if_fail(ptr); if ( ptr->address ) prelude_string_destroy(ptr->address); ptr->address = address; } /** * idmef_address_new_address: * @ptr: pointer to a #idmef_address_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new address object, children of #idmef_address_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_address_new_address(idmef_address_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->address ) { retval = prelude_string_new(&ptr->address); if ( retval < 0 ) return retval; } *ret = ptr->address; return 0; } /** * idmef_address_get_netmask: * @ptr: pointer to a #idmef_address_t object. * * Get netmask children of the #idmef_address_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_address_get_netmask(idmef_address_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->netmask; } /** * idmef_address_set_netmask: * @ptr: pointer to a #idmef_address_t object. * @netmask: pointer to a #prelude_string_t object. * * Set @netmask object as a children of @ptr. * if @ptr already contain an @netmask object, then it is destroyed, * and updated to point to the provided @netmask object. */ void idmef_address_set_netmask(idmef_address_t *ptr, prelude_string_t *netmask) { prelude_return_if_fail(ptr); if ( ptr->netmask ) prelude_string_destroy(ptr->netmask); ptr->netmask = netmask; } /** * idmef_address_new_netmask: * @ptr: pointer to a #idmef_address_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new netmask object, children of #idmef_address_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_address_new_netmask(idmef_address_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->netmask ) { retval = prelude_string_new(&ptr->netmask); if ( retval < 0 ) return retval; } *ret = ptr->netmask; return 0; } /** * idmef_address_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_address_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_address_copy(const idmef_address_t *src, idmef_address_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->ident ) { prelude_string_destroy(dst->ident); dst->ident = NULL; } if ( src->ident ) { ret = prelude_string_clone(src->ident, &dst->ident); if ( ret < 0 ) return ret; } dst->category = src->category; if ( dst->vlan_name ) { prelude_string_destroy(dst->vlan_name); dst->vlan_name = NULL; } if ( src->vlan_name ) { ret = prelude_string_clone(src->vlan_name, &dst->vlan_name); if ( ret < 0 ) return ret; } dst->vlan_num_is_set = src->vlan_num_is_set; dst->vlan_num = src->vlan_num; if ( src->address ) { ret = prelude_string_copy(src->address, dst->address); if ( ret < 0 ) return ret; } if ( dst->netmask ) { prelude_string_destroy(dst->netmask); dst->netmask = NULL; } if ( src->netmask ) { ret = prelude_string_clone(src->netmask, &dst->netmask); if ( ret < 0 ) return ret; } return 0; } /** * idmef_address_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_address_clone(idmef_address_t *src, idmef_address_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_address_new(dst); if ( ret < 0 ) return ret; return idmef_address_copy(src, *dst); } /** * idmef_address_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_address_compare(const idmef_address_t *obj1, const idmef_address_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->ident, obj2->ident); if ( ret != 0 ) return ret; if ( obj1->category != obj2->category ) return -1; ret = prelude_string_compare(obj1->vlan_name, obj2->vlan_name); if ( ret != 0 ) return ret; if ( obj1->vlan_num_is_set != obj2->vlan_num_is_set ) return -1; if ( obj1->vlan_num_is_set && obj1->vlan_num != obj2->vlan_num ) return -1; ret = prelude_string_compare(obj1->address, obj2->address); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->netmask, obj2->netmask); if ( ret != 0 ) return ret; return ret; } /** * idmef_process_new: * @ret: Pointer where to store the created #idmef_process_t object. * * Create a new #idmef_process_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_process_new(idmef_process_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_PROCESS; (*ret)->refcount = 1; prelude_list_init(&(*ret)->arg_list); prelude_list_init(&(*ret)->env_list); { int retval = prelude_string_new(&(*ret)->name); if ( retval < 0 ) { idmef_process_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_process_ref: * @process: pointer to a #idmef_process_t object. * * Increase @process reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @process. */ idmef_process_t *idmef_process_ref(idmef_process_t *process) { prelude_return_val_if_fail(process, NULL); process->refcount++; return process; } int _idmef_process_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_process_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->ident, TRUE); case 1: return get_value_from_string((idmef_value_t **) childptr, ptr->name, TRUE); case 2: return (ptr->pid_is_set) ? idmef_value_new_uint32((idmef_value_t **) childptr, ptr->pid) : 0; case 3: return get_value_from_string((idmef_value_t **) childptr, ptr->path, TRUE); case 4: *childptr = &ptr->arg_list; return 0; case 5: *childptr = &ptr->env_list; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_process_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_process_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_process_new_ident(ptr, (prelude_string_t **) ret); case 1: return idmef_process_new_name(ptr, (prelude_string_t **) ret); case 2: return idmef_process_new_pid(ptr, (uint32_t **) ret); case 3: return idmef_process_new_path(ptr, (prelude_string_t **) ret); case 4: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_process_new_arg(ptr, (prelude_string_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->arg_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->arg_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_process_new_arg(ptr, (prelude_string_t **) ret, n); } case 5: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_process_new_env(ptr, (prelude_string_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->env_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->env_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_process_new_env(ptr, (prelude_string_t **) ret, n); } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_process_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_process_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } return 0; case 1: if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } return 0; case 2: ptr->pid_is_set = 0; return 0; case 3: if ( ptr->path ) { prelude_string_destroy(ptr->path); ptr->path = NULL; } return 0; case 4: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->arg_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); prelude_string_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->arg_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); prelude_string_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } case 5: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->env_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); prelude_string_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->env_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); prelude_string_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_process_destroy_internal(idmef_process_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } if ( ptr->path ) { prelude_string_destroy(ptr->path); ptr->path = NULL; } { prelude_list_t *n, *tmp; prelude_string_t *entry; prelude_list_for_each_safe(&ptr->arg_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); prelude_string_destroy(entry); } } { prelude_list_t *n, *tmp; prelude_string_t *entry; prelude_list_for_each_safe(&ptr->env_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); prelude_string_destroy(entry); } } /* free() should be done by the caller */ } /** * idmef_process_destroy: * @ptr: pointer to a #idmef_process_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_process_destroy(idmef_process_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_process_destroy_internal(ptr); free(ptr); } /** * idmef_process_get_ident: * @ptr: pointer to a #idmef_process_t object. * * Get ident children of the #idmef_process_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_process_get_ident(idmef_process_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->ident; } /** * idmef_process_set_ident: * @ptr: pointer to a #idmef_process_t object. * @ident: pointer to a #prelude_string_t object. * * Set @ident object as a children of @ptr. * if @ptr already contain an @ident object, then it is destroyed, * and updated to point to the provided @ident object. */ void idmef_process_set_ident(idmef_process_t *ptr, prelude_string_t *ident) { prelude_return_if_fail(ptr); if ( ptr->ident ) prelude_string_destroy(ptr->ident); ptr->ident = ident; } /** * idmef_process_new_ident: * @ptr: pointer to a #idmef_process_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new ident object, children of #idmef_process_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_process_new_ident(idmef_process_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->ident ) { retval = prelude_string_new(&ptr->ident); if ( retval < 0 ) return retval; } *ret = ptr->ident; return 0; } /** * idmef_process_get_name: * @ptr: pointer to a #idmef_process_t object. * * Get name children of the #idmef_process_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_process_get_name(idmef_process_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->name; } /** * idmef_process_set_name: * @ptr: pointer to a #idmef_process_t object. * @name: pointer to a #prelude_string_t object. * * Set @name object as a children of @ptr. * if @ptr already contain an @name object, then it is destroyed, * and updated to point to the provided @name object. */ void idmef_process_set_name(idmef_process_t *ptr, prelude_string_t *name) { prelude_return_if_fail(ptr); if ( ptr->name ) prelude_string_destroy(ptr->name); ptr->name = name; } /** * idmef_process_new_name: * @ptr: pointer to a #idmef_process_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new name object, children of #idmef_process_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_process_new_name(idmef_process_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->name ) { retval = prelude_string_new(&ptr->name); if ( retval < 0 ) return retval; } *ret = ptr->name; return 0; } /** * idmef_process_get_pid: * @ptr: pointer to a #idmef_process_t object. * * Get pid children of the #idmef_process_t object. * * Returns: a pointer to a uint32_t object, or NULL if the children object is not set. */ uint32_t *idmef_process_get_pid(idmef_process_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->pid_is_set ? &ptr->pid : NULL; } /** * idmef_process_set_pid: * @ptr: pointer to a #idmef_process_t object. * @pid: pointer to a #uint32_t object. * * Set @pid object as a children of @ptr. * if @ptr already contain an @pid object, then it is destroyed, * and updated to point to the provided @pid object. */ void idmef_process_set_pid(idmef_process_t *ptr, uint32_t pid) { prelude_return_if_fail(ptr); ptr->pid = pid; ptr->pid_is_set = 1; } void idmef_process_unset_pid(idmef_process_t *ptr) { prelude_return_if_fail(ptr); ptr->pid_is_set = 0; } /** * idmef_process_new_pid: * @ptr: pointer to a #idmef_process_t object. * @ret: pointer to an address where to store the created #uint32_t object. * * Create a new pid object, children of #idmef_process_t. * If @ptr already contain a #uint32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_process_new_pid(idmef_process_t *ptr, uint32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->pid_is_set = 1; *ret = &ptr->pid; return 0; } /** * idmef_process_get_path: * @ptr: pointer to a #idmef_process_t object. * * Get path children of the #idmef_process_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_process_get_path(idmef_process_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->path; } /** * idmef_process_set_path: * @ptr: pointer to a #idmef_process_t object. * @path: pointer to a #prelude_string_t object. * * Set @path object as a children of @ptr. * if @ptr already contain an @path object, then it is destroyed, * and updated to point to the provided @path object. */ void idmef_process_set_path(idmef_process_t *ptr, prelude_string_t *path) { prelude_return_if_fail(ptr); if ( ptr->path ) prelude_string_destroy(ptr->path); ptr->path = path; } /** * idmef_process_new_path: * @ptr: pointer to a #idmef_process_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new path object, children of #idmef_process_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_process_new_path(idmef_process_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->path ) { retval = prelude_string_new(&ptr->path); if ( retval < 0 ) return retval; } *ret = ptr->path; return 0; } /** * idmef_process_get_next_arg: * @process: pointer to a #idmef_process_t object. * @prelude_string_cur: pointer to a #prelude_string_t object. * * Get the next #prelude_string_t object listed in @ptr. * When iterating over the prelude_string_t object listed in @ptr, * @object should be set to the latest returned #prelude_string_t object. * * Returns: the next #prelude_string_t in the list. */ prelude_string_t *idmef_process_get_next_arg(idmef_process_t *process, prelude_string_t *prelude_string_cur) { prelude_list_t *tmp = (prelude_string_cur) ? &((prelude_linked_object_t *) prelude_string_cur)->_list : NULL; prelude_return_val_if_fail(process, NULL); prelude_list_for_each_continue(&process->arg_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_process_set_arg: * @ptr: pointer to a #idmef_process_t object. * @object: pointer to a #prelude_string_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #prelude_string_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_process_set_arg(idmef_process_t *ptr, prelude_string_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->arg_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_process_new_arg: * @ptr: pointer to a #idmef_process_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * @pos: position in the list. * * Create a new #prelude_string_t children of @ptr, and add it to position @pos of * @ptr list of #prelude_string_t object. The created #prelude_string_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_process_new_arg(idmef_process_t *ptr, prelude_string_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = prelude_string_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->arg_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_process_get_next_env: * @process: pointer to a #idmef_process_t object. * @prelude_string_cur: pointer to a #prelude_string_t object. * * Get the next #prelude_string_t object listed in @ptr. * When iterating over the prelude_string_t object listed in @ptr, * @object should be set to the latest returned #prelude_string_t object. * * Returns: the next #prelude_string_t in the list. */ prelude_string_t *idmef_process_get_next_env(idmef_process_t *process, prelude_string_t *prelude_string_cur) { prelude_list_t *tmp = (prelude_string_cur) ? &((prelude_linked_object_t *) prelude_string_cur)->_list : NULL; prelude_return_val_if_fail(process, NULL); prelude_list_for_each_continue(&process->env_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_process_set_env: * @ptr: pointer to a #idmef_process_t object. * @object: pointer to a #prelude_string_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #prelude_string_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_process_set_env(idmef_process_t *ptr, prelude_string_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->env_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_process_new_env: * @ptr: pointer to a #idmef_process_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * @pos: position in the list. * * Create a new #prelude_string_t children of @ptr, and add it to position @pos of * @ptr list of #prelude_string_t object. The created #prelude_string_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_process_new_env(idmef_process_t *ptr, prelude_string_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = prelude_string_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->env_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_process_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_process_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_process_copy(const idmef_process_t *src, idmef_process_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->ident ) { prelude_string_destroy(dst->ident); dst->ident = NULL; } if ( src->ident ) { ret = prelude_string_clone(src->ident, &dst->ident); if ( ret < 0 ) return ret; } if ( src->name ) { ret = prelude_string_copy(src->name, dst->name); if ( ret < 0 ) return ret; } dst->pid_is_set = src->pid_is_set; dst->pid = src->pid; if ( dst->path ) { prelude_string_destroy(dst->path); dst->path = NULL; } if ( src->path ) { ret = prelude_string_clone(src->path, &dst->path); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; prelude_string_t *entry, *new; prelude_list_for_each_safe(&dst->arg_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_string_destroy(entry); } prelude_list_for_each_safe(&src->arg_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_string_clone(entry, &new); prelude_list_add_tail(&dst->arg_list, &((prelude_linked_object_t *) new)->_list); } } { prelude_list_t *n, *tmp; prelude_string_t *entry, *new; prelude_list_for_each_safe(&dst->env_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_string_destroy(entry); } prelude_list_for_each_safe(&src->env_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_string_clone(entry, &new); prelude_list_add_tail(&dst->env_list, &((prelude_linked_object_t *) new)->_list); } } return 0; } /** * idmef_process_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_process_clone(idmef_process_t *src, idmef_process_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_process_new(dst); if ( ret < 0 ) return ret; return idmef_process_copy(src, *dst); } /** * idmef_process_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_process_compare(const idmef_process_t *obj1, const idmef_process_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->ident, obj2->ident); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->name, obj2->name); if ( ret != 0 ) return ret; if ( obj1->pid_is_set != obj2->pid_is_set ) return -1; if ( obj1->pid_is_set && obj1->pid != obj2->pid ) return -1; ret = prelude_string_compare(obj1->path, obj2->path); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; prelude_string_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->arg_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->arg_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = prelude_string_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } { prelude_list_t *tmp1, *tmp2; prelude_string_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->env_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->env_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = prelude_string_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } return ret; } /** * idmef_web_service_new: * @ret: Pointer where to store the created #idmef_web_service_t object. * * Create a new #idmef_web_service_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_web_service_new(idmef_web_service_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_WEB_SERVICE; (*ret)->refcount = 1; prelude_list_init(&(*ret)->arg_list); { int retval = prelude_string_new(&(*ret)->url); if ( retval < 0 ) { idmef_web_service_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_web_service_ref: * @web_service: pointer to a #idmef_web_service_t object. * * Increase @web_service reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @web_service. */ idmef_web_service_t *idmef_web_service_ref(idmef_web_service_t *web_service) { prelude_return_val_if_fail(web_service, NULL); web_service->refcount++; return web_service; } int _idmef_web_service_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_web_service_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->url, TRUE); case 1: return get_value_from_string((idmef_value_t **) childptr, ptr->cgi, TRUE); case 2: return get_value_from_string((idmef_value_t **) childptr, ptr->http_method, TRUE); case 3: *childptr = &ptr->arg_list; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_web_service_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_web_service_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_web_service_new_url(ptr, (prelude_string_t **) ret); case 1: return idmef_web_service_new_cgi(ptr, (prelude_string_t **) ret); case 2: return idmef_web_service_new_http_method(ptr, (prelude_string_t **) ret); case 3: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_web_service_new_arg(ptr, (prelude_string_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->arg_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->arg_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_web_service_new_arg(ptr, (prelude_string_t **) ret, n); } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_web_service_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_web_service_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->url ) { prelude_string_destroy(ptr->url); ptr->url = NULL; } return 0; case 1: if ( ptr->cgi ) { prelude_string_destroy(ptr->cgi); ptr->cgi = NULL; } return 0; case 2: if ( ptr->http_method ) { prelude_string_destroy(ptr->http_method); ptr->http_method = NULL; } return 0; case 3: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->arg_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); prelude_string_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->arg_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); prelude_string_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_web_service_destroy_internal(idmef_web_service_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->url ) { prelude_string_destroy(ptr->url); ptr->url = NULL; } if ( ptr->cgi ) { prelude_string_destroy(ptr->cgi); ptr->cgi = NULL; } if ( ptr->http_method ) { prelude_string_destroy(ptr->http_method); ptr->http_method = NULL; } { prelude_list_t *n, *tmp; prelude_string_t *entry; prelude_list_for_each_safe(&ptr->arg_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); prelude_string_destroy(entry); } } /* free() should be done by the caller */ } /** * idmef_web_service_destroy: * @ptr: pointer to a #idmef_web_service_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_web_service_destroy(idmef_web_service_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_web_service_destroy_internal(ptr); free(ptr); } /** * idmef_web_service_get_url: * @ptr: pointer to a #idmef_web_service_t object. * * Get url children of the #idmef_web_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_web_service_get_url(idmef_web_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->url; } /** * idmef_web_service_set_url: * @ptr: pointer to a #idmef_web_service_t object. * @url: pointer to a #prelude_string_t object. * * Set @url object as a children of @ptr. * if @ptr already contain an @url object, then it is destroyed, * and updated to point to the provided @url object. */ void idmef_web_service_set_url(idmef_web_service_t *ptr, prelude_string_t *url) { prelude_return_if_fail(ptr); if ( ptr->url ) prelude_string_destroy(ptr->url); ptr->url = url; } /** * idmef_web_service_new_url: * @ptr: pointer to a #idmef_web_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new url object, children of #idmef_web_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_web_service_new_url(idmef_web_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->url ) { retval = prelude_string_new(&ptr->url); if ( retval < 0 ) return retval; } *ret = ptr->url; return 0; } /** * idmef_web_service_get_cgi: * @ptr: pointer to a #idmef_web_service_t object. * * Get cgi children of the #idmef_web_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_web_service_get_cgi(idmef_web_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->cgi; } /** * idmef_web_service_set_cgi: * @ptr: pointer to a #idmef_web_service_t object. * @cgi: pointer to a #prelude_string_t object. * * Set @cgi object as a children of @ptr. * if @ptr already contain an @cgi object, then it is destroyed, * and updated to point to the provided @cgi object. */ void idmef_web_service_set_cgi(idmef_web_service_t *ptr, prelude_string_t *cgi) { prelude_return_if_fail(ptr); if ( ptr->cgi ) prelude_string_destroy(ptr->cgi); ptr->cgi = cgi; } /** * idmef_web_service_new_cgi: * @ptr: pointer to a #idmef_web_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new cgi object, children of #idmef_web_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_web_service_new_cgi(idmef_web_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->cgi ) { retval = prelude_string_new(&ptr->cgi); if ( retval < 0 ) return retval; } *ret = ptr->cgi; return 0; } /** * idmef_web_service_get_http_method: * @ptr: pointer to a #idmef_web_service_t object. * * Get http_method children of the #idmef_web_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_web_service_get_http_method(idmef_web_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->http_method; } /** * idmef_web_service_set_http_method: * @ptr: pointer to a #idmef_web_service_t object. * @http_method: pointer to a #prelude_string_t object. * * Set @http_method object as a children of @ptr. * if @ptr already contain an @http_method object, then it is destroyed, * and updated to point to the provided @http_method object. */ void idmef_web_service_set_http_method(idmef_web_service_t *ptr, prelude_string_t *http_method) { prelude_return_if_fail(ptr); if ( ptr->http_method ) prelude_string_destroy(ptr->http_method); ptr->http_method = http_method; } /** * idmef_web_service_new_http_method: * @ptr: pointer to a #idmef_web_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new http_method object, children of #idmef_web_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_web_service_new_http_method(idmef_web_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->http_method ) { retval = prelude_string_new(&ptr->http_method); if ( retval < 0 ) return retval; } *ret = ptr->http_method; return 0; } /** * idmef_web_service_get_next_arg: * @web_service: pointer to a #idmef_web_service_t object. * @prelude_string_cur: pointer to a #prelude_string_t object. * * Get the next #prelude_string_t object listed in @ptr. * When iterating over the prelude_string_t object listed in @ptr, * @object should be set to the latest returned #prelude_string_t object. * * Returns: the next #prelude_string_t in the list. */ prelude_string_t *idmef_web_service_get_next_arg(idmef_web_service_t *web_service, prelude_string_t *prelude_string_cur) { prelude_list_t *tmp = (prelude_string_cur) ? &((prelude_linked_object_t *) prelude_string_cur)->_list : NULL; prelude_return_val_if_fail(web_service, NULL); prelude_list_for_each_continue(&web_service->arg_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_web_service_set_arg: * @ptr: pointer to a #idmef_web_service_t object. * @object: pointer to a #prelude_string_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #prelude_string_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_web_service_set_arg(idmef_web_service_t *ptr, prelude_string_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->arg_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_web_service_new_arg: * @ptr: pointer to a #idmef_web_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * @pos: position in the list. * * Create a new #prelude_string_t children of @ptr, and add it to position @pos of * @ptr list of #prelude_string_t object. The created #prelude_string_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_web_service_new_arg(idmef_web_service_t *ptr, prelude_string_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = prelude_string_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->arg_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_web_service_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_web_service_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_web_service_copy(const idmef_web_service_t *src, idmef_web_service_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( src->url ) { ret = prelude_string_copy(src->url, dst->url); if ( ret < 0 ) return ret; } if ( dst->cgi ) { prelude_string_destroy(dst->cgi); dst->cgi = NULL; } if ( src->cgi ) { ret = prelude_string_clone(src->cgi, &dst->cgi); if ( ret < 0 ) return ret; } if ( dst->http_method ) { prelude_string_destroy(dst->http_method); dst->http_method = NULL; } if ( src->http_method ) { ret = prelude_string_clone(src->http_method, &dst->http_method); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; prelude_string_t *entry, *new; prelude_list_for_each_safe(&dst->arg_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_string_destroy(entry); } prelude_list_for_each_safe(&src->arg_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_string_clone(entry, &new); prelude_list_add_tail(&dst->arg_list, &((prelude_linked_object_t *) new)->_list); } } return 0; } /** * idmef_web_service_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_web_service_clone(idmef_web_service_t *src, idmef_web_service_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_web_service_new(dst); if ( ret < 0 ) return ret; return idmef_web_service_copy(src, *dst); } /** * idmef_web_service_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_web_service_compare(const idmef_web_service_t *obj1, const idmef_web_service_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->url, obj2->url); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->cgi, obj2->cgi); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->http_method, obj2->http_method); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; prelude_string_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->arg_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->arg_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = prelude_string_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } return ret; } /** * idmef_snmp_service_new: * @ret: Pointer where to store the created #idmef_snmp_service_t object. * * Create a new #idmef_snmp_service_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_snmp_service_new(idmef_snmp_service_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_SNMP_SERVICE; (*ret)->refcount = 1; return 0; } /** * idmef_snmp_service_ref: * @snmp_service: pointer to a #idmef_snmp_service_t object. * * Increase @snmp_service reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @snmp_service. */ idmef_snmp_service_t *idmef_snmp_service_ref(idmef_snmp_service_t *snmp_service) { prelude_return_val_if_fail(snmp_service, NULL); snmp_service->refcount++; return snmp_service; } int _idmef_snmp_service_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_snmp_service_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->oid, TRUE); case 1: return (ptr->message_processing_model_is_set) ? idmef_value_new_uint32((idmef_value_t **) childptr, ptr->message_processing_model) : 0; case 2: return (ptr->security_model_is_set) ? idmef_value_new_uint32((idmef_value_t **) childptr, ptr->security_model) : 0; case 3: return get_value_from_string((idmef_value_t **) childptr, ptr->security_name, TRUE); case 4: return (ptr->security_level_is_set) ? idmef_value_new_uint32((idmef_value_t **) childptr, ptr->security_level) : 0; case 5: return get_value_from_string((idmef_value_t **) childptr, ptr->context_name, TRUE); case 6: return get_value_from_string((idmef_value_t **) childptr, ptr->context_engine_id, TRUE); case 7: return get_value_from_string((idmef_value_t **) childptr, ptr->command, TRUE); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_snmp_service_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_snmp_service_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_snmp_service_new_oid(ptr, (prelude_string_t **) ret); case 1: return idmef_snmp_service_new_message_processing_model(ptr, (uint32_t **) ret); case 2: return idmef_snmp_service_new_security_model(ptr, (uint32_t **) ret); case 3: return idmef_snmp_service_new_security_name(ptr, (prelude_string_t **) ret); case 4: return idmef_snmp_service_new_security_level(ptr, (uint32_t **) ret); case 5: return idmef_snmp_service_new_context_name(ptr, (prelude_string_t **) ret); case 6: return idmef_snmp_service_new_context_engine_id(ptr, (prelude_string_t **) ret); case 7: return idmef_snmp_service_new_command(ptr, (prelude_string_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_snmp_service_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_snmp_service_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->oid ) { prelude_string_destroy(ptr->oid); ptr->oid = NULL; } return 0; case 1: ptr->message_processing_model_is_set = 0; return 0; case 2: ptr->security_model_is_set = 0; return 0; case 3: if ( ptr->security_name ) { prelude_string_destroy(ptr->security_name); ptr->security_name = NULL; } return 0; case 4: ptr->security_level_is_set = 0; return 0; case 5: if ( ptr->context_name ) { prelude_string_destroy(ptr->context_name); ptr->context_name = NULL; } return 0; case 6: if ( ptr->context_engine_id ) { prelude_string_destroy(ptr->context_engine_id); ptr->context_engine_id = NULL; } return 0; case 7: if ( ptr->command ) { prelude_string_destroy(ptr->command); ptr->command = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_snmp_service_destroy_internal(idmef_snmp_service_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->oid ) { prelude_string_destroy(ptr->oid); ptr->oid = NULL; } if ( ptr->security_name ) { prelude_string_destroy(ptr->security_name); ptr->security_name = NULL; } if ( ptr->context_name ) { prelude_string_destroy(ptr->context_name); ptr->context_name = NULL; } if ( ptr->context_engine_id ) { prelude_string_destroy(ptr->context_engine_id); ptr->context_engine_id = NULL; } if ( ptr->command ) { prelude_string_destroy(ptr->command); ptr->command = NULL; } /* free() should be done by the caller */ } /** * idmef_snmp_service_destroy: * @ptr: pointer to a #idmef_snmp_service_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_snmp_service_destroy(idmef_snmp_service_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_snmp_service_destroy_internal(ptr); free(ptr); } /** * idmef_snmp_service_get_oid: * @ptr: pointer to a #idmef_snmp_service_t object. * * Get oid children of the #idmef_snmp_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_snmp_service_get_oid(idmef_snmp_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->oid; } /** * idmef_snmp_service_set_oid: * @ptr: pointer to a #idmef_snmp_service_t object. * @oid: pointer to a #prelude_string_t object. * * Set @oid object as a children of @ptr. * if @ptr already contain an @oid object, then it is destroyed, * and updated to point to the provided @oid object. */ void idmef_snmp_service_set_oid(idmef_snmp_service_t *ptr, prelude_string_t *oid) { prelude_return_if_fail(ptr); if ( ptr->oid ) prelude_string_destroy(ptr->oid); ptr->oid = oid; } /** * idmef_snmp_service_new_oid: * @ptr: pointer to a #idmef_snmp_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new oid object, children of #idmef_snmp_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_snmp_service_new_oid(idmef_snmp_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->oid ) { retval = prelude_string_new(&ptr->oid); if ( retval < 0 ) return retval; } *ret = ptr->oid; return 0; } /** * idmef_snmp_service_get_message_processing_model: * @ptr: pointer to a #idmef_snmp_service_t object. * * Get message_processing_model children of the #idmef_snmp_service_t object. * * Returns: a pointer to a uint32_t object, or NULL if the children object is not set. */ uint32_t *idmef_snmp_service_get_message_processing_model(idmef_snmp_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->message_processing_model_is_set ? &ptr->message_processing_model : NULL; } /** * idmef_snmp_service_set_message_processing_model: * @ptr: pointer to a #idmef_snmp_service_t object. * @message_processing_model: pointer to a #uint32_t object. * * Set @message_processing_model object as a children of @ptr. * if @ptr already contain an @message_processing_model object, then it is destroyed, * and updated to point to the provided @message_processing_model object. */ void idmef_snmp_service_set_message_processing_model(idmef_snmp_service_t *ptr, uint32_t message_processing_model) { prelude_return_if_fail(ptr); ptr->message_processing_model = message_processing_model; ptr->message_processing_model_is_set = 1; } void idmef_snmp_service_unset_message_processing_model(idmef_snmp_service_t *ptr) { prelude_return_if_fail(ptr); ptr->message_processing_model_is_set = 0; } /** * idmef_snmp_service_new_message_processing_model: * @ptr: pointer to a #idmef_snmp_service_t object. * @ret: pointer to an address where to store the created #uint32_t object. * * Create a new message_processing_model object, children of #idmef_snmp_service_t. * If @ptr already contain a #uint32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_snmp_service_new_message_processing_model(idmef_snmp_service_t *ptr, uint32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->message_processing_model_is_set = 1; *ret = &ptr->message_processing_model; return 0; } /** * idmef_snmp_service_get_security_model: * @ptr: pointer to a #idmef_snmp_service_t object. * * Get security_model children of the #idmef_snmp_service_t object. * * Returns: a pointer to a uint32_t object, or NULL if the children object is not set. */ uint32_t *idmef_snmp_service_get_security_model(idmef_snmp_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->security_model_is_set ? &ptr->security_model : NULL; } /** * idmef_snmp_service_set_security_model: * @ptr: pointer to a #idmef_snmp_service_t object. * @security_model: pointer to a #uint32_t object. * * Set @security_model object as a children of @ptr. * if @ptr already contain an @security_model object, then it is destroyed, * and updated to point to the provided @security_model object. */ void idmef_snmp_service_set_security_model(idmef_snmp_service_t *ptr, uint32_t security_model) { prelude_return_if_fail(ptr); ptr->security_model = security_model; ptr->security_model_is_set = 1; } void idmef_snmp_service_unset_security_model(idmef_snmp_service_t *ptr) { prelude_return_if_fail(ptr); ptr->security_model_is_set = 0; } /** * idmef_snmp_service_new_security_model: * @ptr: pointer to a #idmef_snmp_service_t object. * @ret: pointer to an address where to store the created #uint32_t object. * * Create a new security_model object, children of #idmef_snmp_service_t. * If @ptr already contain a #uint32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_snmp_service_new_security_model(idmef_snmp_service_t *ptr, uint32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->security_model_is_set = 1; *ret = &ptr->security_model; return 0; } /** * idmef_snmp_service_get_security_name: * @ptr: pointer to a #idmef_snmp_service_t object. * * Get security_name children of the #idmef_snmp_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_snmp_service_get_security_name(idmef_snmp_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->security_name; } /** * idmef_snmp_service_set_security_name: * @ptr: pointer to a #idmef_snmp_service_t object. * @security_name: pointer to a #prelude_string_t object. * * Set @security_name object as a children of @ptr. * if @ptr already contain an @security_name object, then it is destroyed, * and updated to point to the provided @security_name object. */ void idmef_snmp_service_set_security_name(idmef_snmp_service_t *ptr, prelude_string_t *security_name) { prelude_return_if_fail(ptr); if ( ptr->security_name ) prelude_string_destroy(ptr->security_name); ptr->security_name = security_name; } /** * idmef_snmp_service_new_security_name: * @ptr: pointer to a #idmef_snmp_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new security_name object, children of #idmef_snmp_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_snmp_service_new_security_name(idmef_snmp_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->security_name ) { retval = prelude_string_new(&ptr->security_name); if ( retval < 0 ) return retval; } *ret = ptr->security_name; return 0; } /** * idmef_snmp_service_get_security_level: * @ptr: pointer to a #idmef_snmp_service_t object. * * Get security_level children of the #idmef_snmp_service_t object. * * Returns: a pointer to a uint32_t object, or NULL if the children object is not set. */ uint32_t *idmef_snmp_service_get_security_level(idmef_snmp_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->security_level_is_set ? &ptr->security_level : NULL; } /** * idmef_snmp_service_set_security_level: * @ptr: pointer to a #idmef_snmp_service_t object. * @security_level: pointer to a #uint32_t object. * * Set @security_level object as a children of @ptr. * if @ptr already contain an @security_level object, then it is destroyed, * and updated to point to the provided @security_level object. */ void idmef_snmp_service_set_security_level(idmef_snmp_service_t *ptr, uint32_t security_level) { prelude_return_if_fail(ptr); ptr->security_level = security_level; ptr->security_level_is_set = 1; } void idmef_snmp_service_unset_security_level(idmef_snmp_service_t *ptr) { prelude_return_if_fail(ptr); ptr->security_level_is_set = 0; } /** * idmef_snmp_service_new_security_level: * @ptr: pointer to a #idmef_snmp_service_t object. * @ret: pointer to an address where to store the created #uint32_t object. * * Create a new security_level object, children of #idmef_snmp_service_t. * If @ptr already contain a #uint32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_snmp_service_new_security_level(idmef_snmp_service_t *ptr, uint32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->security_level_is_set = 1; *ret = &ptr->security_level; return 0; } /** * idmef_snmp_service_get_context_name: * @ptr: pointer to a #idmef_snmp_service_t object. * * Get context_name children of the #idmef_snmp_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_snmp_service_get_context_name(idmef_snmp_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->context_name; } /** * idmef_snmp_service_set_context_name: * @ptr: pointer to a #idmef_snmp_service_t object. * @context_name: pointer to a #prelude_string_t object. * * Set @context_name object as a children of @ptr. * if @ptr already contain an @context_name object, then it is destroyed, * and updated to point to the provided @context_name object. */ void idmef_snmp_service_set_context_name(idmef_snmp_service_t *ptr, prelude_string_t *context_name) { prelude_return_if_fail(ptr); if ( ptr->context_name ) prelude_string_destroy(ptr->context_name); ptr->context_name = context_name; } /** * idmef_snmp_service_new_context_name: * @ptr: pointer to a #idmef_snmp_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new context_name object, children of #idmef_snmp_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_snmp_service_new_context_name(idmef_snmp_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->context_name ) { retval = prelude_string_new(&ptr->context_name); if ( retval < 0 ) return retval; } *ret = ptr->context_name; return 0; } /** * idmef_snmp_service_get_context_engine_id: * @ptr: pointer to a #idmef_snmp_service_t object. * * Get context_engine_id children of the #idmef_snmp_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_snmp_service_get_context_engine_id(idmef_snmp_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->context_engine_id; } /** * idmef_snmp_service_set_context_engine_id: * @ptr: pointer to a #idmef_snmp_service_t object. * @context_engine_id: pointer to a #prelude_string_t object. * * Set @context_engine_id object as a children of @ptr. * if @ptr already contain an @context_engine_id object, then it is destroyed, * and updated to point to the provided @context_engine_id object. */ void idmef_snmp_service_set_context_engine_id(idmef_snmp_service_t *ptr, prelude_string_t *context_engine_id) { prelude_return_if_fail(ptr); if ( ptr->context_engine_id ) prelude_string_destroy(ptr->context_engine_id); ptr->context_engine_id = context_engine_id; } /** * idmef_snmp_service_new_context_engine_id: * @ptr: pointer to a #idmef_snmp_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new context_engine_id object, children of #idmef_snmp_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_snmp_service_new_context_engine_id(idmef_snmp_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->context_engine_id ) { retval = prelude_string_new(&ptr->context_engine_id); if ( retval < 0 ) return retval; } *ret = ptr->context_engine_id; return 0; } /** * idmef_snmp_service_get_command: * @ptr: pointer to a #idmef_snmp_service_t object. * * Get command children of the #idmef_snmp_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_snmp_service_get_command(idmef_snmp_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->command; } /** * idmef_snmp_service_set_command: * @ptr: pointer to a #idmef_snmp_service_t object. * @command: pointer to a #prelude_string_t object. * * Set @command object as a children of @ptr. * if @ptr already contain an @command object, then it is destroyed, * and updated to point to the provided @command object. */ void idmef_snmp_service_set_command(idmef_snmp_service_t *ptr, prelude_string_t *command) { prelude_return_if_fail(ptr); if ( ptr->command ) prelude_string_destroy(ptr->command); ptr->command = command; } /** * idmef_snmp_service_new_command: * @ptr: pointer to a #idmef_snmp_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new command object, children of #idmef_snmp_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_snmp_service_new_command(idmef_snmp_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->command ) { retval = prelude_string_new(&ptr->command); if ( retval < 0 ) return retval; } *ret = ptr->command; return 0; } /** * idmef_snmp_service_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_snmp_service_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_snmp_service_copy(const idmef_snmp_service_t *src, idmef_snmp_service_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->oid ) { prelude_string_destroy(dst->oid); dst->oid = NULL; } if ( src->oid ) { ret = prelude_string_clone(src->oid, &dst->oid); if ( ret < 0 ) return ret; } dst->message_processing_model_is_set = src->message_processing_model_is_set; dst->message_processing_model = src->message_processing_model; dst->security_model_is_set = src->security_model_is_set; dst->security_model = src->security_model; if ( dst->security_name ) { prelude_string_destroy(dst->security_name); dst->security_name = NULL; } if ( src->security_name ) { ret = prelude_string_clone(src->security_name, &dst->security_name); if ( ret < 0 ) return ret; } dst->security_level_is_set = src->security_level_is_set; dst->security_level = src->security_level; if ( dst->context_name ) { prelude_string_destroy(dst->context_name); dst->context_name = NULL; } if ( src->context_name ) { ret = prelude_string_clone(src->context_name, &dst->context_name); if ( ret < 0 ) return ret; } if ( dst->context_engine_id ) { prelude_string_destroy(dst->context_engine_id); dst->context_engine_id = NULL; } if ( src->context_engine_id ) { ret = prelude_string_clone(src->context_engine_id, &dst->context_engine_id); if ( ret < 0 ) return ret; } if ( dst->command ) { prelude_string_destroy(dst->command); dst->command = NULL; } if ( src->command ) { ret = prelude_string_clone(src->command, &dst->command); if ( ret < 0 ) return ret; } return 0; } /** * idmef_snmp_service_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_snmp_service_clone(idmef_snmp_service_t *src, idmef_snmp_service_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_snmp_service_new(dst); if ( ret < 0 ) return ret; return idmef_snmp_service_copy(src, *dst); } /** * idmef_snmp_service_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_snmp_service_compare(const idmef_snmp_service_t *obj1, const idmef_snmp_service_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->oid, obj2->oid); if ( ret != 0 ) return ret; if ( obj1->message_processing_model_is_set != obj2->message_processing_model_is_set ) return -1; if ( obj1->message_processing_model_is_set && obj1->message_processing_model != obj2->message_processing_model ) return -1; if ( obj1->security_model_is_set != obj2->security_model_is_set ) return -1; if ( obj1->security_model_is_set && obj1->security_model != obj2->security_model ) return -1; ret = prelude_string_compare(obj1->security_name, obj2->security_name); if ( ret != 0 ) return ret; if ( obj1->security_level_is_set != obj2->security_level_is_set ) return -1; if ( obj1->security_level_is_set && obj1->security_level != obj2->security_level ) return -1; ret = prelude_string_compare(obj1->context_name, obj2->context_name); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->context_engine_id, obj2->context_engine_id); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->command, obj2->command); if ( ret != 0 ) return ret; return ret; } /** * idmef_service_new: * @ret: Pointer where to store the created #idmef_service_t object. * * Create a new #idmef_service_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_service_new(idmef_service_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_SERVICE; (*ret)->refcount = 1; return 0; } /** * idmef_service_ref: * @service: pointer to a #idmef_service_t object. * * Increase @service reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @service. */ idmef_service_t *idmef_service_ref(idmef_service_t *service) { prelude_return_val_if_fail(service, NULL); service->refcount++; return service; } int _idmef_service_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_service_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->ident, TRUE); case 1: return (ptr->ip_version_is_set) ? idmef_value_new_uint8((idmef_value_t **) childptr, ptr->ip_version) : 0; case 2: return (ptr->iana_protocol_number_is_set) ? idmef_value_new_uint8((idmef_value_t **) childptr, ptr->iana_protocol_number) : 0; case 3: return get_value_from_string((idmef_value_t **) childptr, ptr->iana_protocol_name, TRUE); case 4: return get_value_from_string((idmef_value_t **) childptr, ptr->name, TRUE); case 5: return (ptr->port_is_set) ? idmef_value_new_uint16((idmef_value_t **) childptr, ptr->port) : 0; case 6: return get_value_from_string((idmef_value_t **) childptr, ptr->portlist, TRUE); case 7: return get_value_from_string((idmef_value_t **) childptr, ptr->protocol, TRUE); case 8: *childptr = ( ptr->type == IDMEF_SERVICE_TYPE_WEB ) ? ptr->specific.web_service : NULL; return 0; case 9: *childptr = ( ptr->type == IDMEF_SERVICE_TYPE_SNMP ) ? ptr->specific.snmp_service : NULL; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_service_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_service_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_service_new_ident(ptr, (prelude_string_t **) ret); case 1: return idmef_service_new_ip_version(ptr, (uint8_t **) ret); case 2: return idmef_service_new_iana_protocol_number(ptr, (uint8_t **) ret); case 3: return idmef_service_new_iana_protocol_name(ptr, (prelude_string_t **) ret); case 4: return idmef_service_new_name(ptr, (prelude_string_t **) ret); case 5: return idmef_service_new_port(ptr, (uint16_t **) ret); case 6: return idmef_service_new_portlist(ptr, (prelude_string_t **) ret); case 7: return idmef_service_new_protocol(ptr, (prelude_string_t **) ret); case 8: return idmef_service_new_web_service(ptr, (idmef_web_service_t **) ret); case 9: return idmef_service_new_snmp_service(ptr, (idmef_snmp_service_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_service_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_service_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } return 0; case 1: ptr->ip_version_is_set = 0; return 0; case 2: ptr->iana_protocol_number_is_set = 0; return 0; case 3: if ( ptr->iana_protocol_name ) { prelude_string_destroy(ptr->iana_protocol_name); ptr->iana_protocol_name = NULL; } return 0; case 4: if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } return 0; case 5: ptr->port_is_set = 0; return 0; case 6: if ( ptr->portlist ) { prelude_string_destroy(ptr->portlist); ptr->portlist = NULL; } return 0; case 7: if ( ptr->protocol ) { prelude_string_destroy(ptr->protocol); ptr->protocol = NULL; } return 0; case 8: if ( ptr->type != IDMEF_SERVICE_TYPE_WEB ) return 0; idmef_web_service_destroy(ptr->specific.web_service); ptr->specific.web_service = NULL; ptr->type = 0; return 0; case 9: if ( ptr->type != IDMEF_SERVICE_TYPE_SNMP ) return 0; idmef_snmp_service_destroy(ptr->specific.snmp_service); ptr->specific.snmp_service = NULL; ptr->type = 0; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_service_destroy_internal(idmef_service_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } if ( ptr->iana_protocol_name ) { prelude_string_destroy(ptr->iana_protocol_name); ptr->iana_protocol_name = NULL; } if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } if ( ptr->portlist ) { prelude_string_destroy(ptr->portlist); ptr->portlist = NULL; } if ( ptr->protocol ) { prelude_string_destroy(ptr->protocol); ptr->protocol = NULL; } switch ( ptr->type ) { case IDMEF_SERVICE_TYPE_WEB: idmef_web_service_destroy(ptr->specific.web_service); ptr->specific.web_service = NULL; break; case IDMEF_SERVICE_TYPE_SNMP: idmef_snmp_service_destroy(ptr->specific.snmp_service); ptr->specific.snmp_service = NULL; break; default: break; } /* free() should be done by the caller */ } /** * idmef_service_destroy: * @ptr: pointer to a #idmef_service_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_service_destroy(idmef_service_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_service_destroy_internal(ptr); free(ptr); } /** * idmef_service_get_ident: * @ptr: pointer to a #idmef_service_t object. * * Get ident children of the #idmef_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_service_get_ident(idmef_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->ident; } /** * idmef_service_set_ident: * @ptr: pointer to a #idmef_service_t object. * @ident: pointer to a #prelude_string_t object. * * Set @ident object as a children of @ptr. * if @ptr already contain an @ident object, then it is destroyed, * and updated to point to the provided @ident object. */ void idmef_service_set_ident(idmef_service_t *ptr, prelude_string_t *ident) { prelude_return_if_fail(ptr); if ( ptr->ident ) prelude_string_destroy(ptr->ident); ptr->ident = ident; } /** * idmef_service_new_ident: * @ptr: pointer to a #idmef_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new ident object, children of #idmef_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_service_new_ident(idmef_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->ident ) { retval = prelude_string_new(&ptr->ident); if ( retval < 0 ) return retval; } *ret = ptr->ident; return 0; } /** * idmef_service_get_ip_version: * @ptr: pointer to a #idmef_service_t object. * * Get ip_version children of the #idmef_service_t object. * * Returns: a pointer to a uint8_t object, or NULL if the children object is not set. */ uint8_t *idmef_service_get_ip_version(idmef_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->ip_version_is_set ? &ptr->ip_version : NULL; } /** * idmef_service_set_ip_version: * @ptr: pointer to a #idmef_service_t object. * @ip_version: pointer to a #uint8_t object. * * Set @ip_version object as a children of @ptr. * if @ptr already contain an @ip_version object, then it is destroyed, * and updated to point to the provided @ip_version object. */ void idmef_service_set_ip_version(idmef_service_t *ptr, uint8_t ip_version) { prelude_return_if_fail(ptr); ptr->ip_version = ip_version; ptr->ip_version_is_set = 1; } void idmef_service_unset_ip_version(idmef_service_t *ptr) { prelude_return_if_fail(ptr); ptr->ip_version_is_set = 0; } /** * idmef_service_new_ip_version: * @ptr: pointer to a #idmef_service_t object. * @ret: pointer to an address where to store the created #uint8_t object. * * Create a new ip_version object, children of #idmef_service_t. * If @ptr already contain a #uint8_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_service_new_ip_version(idmef_service_t *ptr, uint8_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->ip_version_is_set = 1; *ret = &ptr->ip_version; return 0; } /** * idmef_service_get_iana_protocol_number: * @ptr: pointer to a #idmef_service_t object. * * Get iana_protocol_number children of the #idmef_service_t object. * * Returns: a pointer to a uint8_t object, or NULL if the children object is not set. */ uint8_t *idmef_service_get_iana_protocol_number(idmef_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->iana_protocol_number_is_set ? &ptr->iana_protocol_number : NULL; } /** * idmef_service_set_iana_protocol_number: * @ptr: pointer to a #idmef_service_t object. * @iana_protocol_number: pointer to a #uint8_t object. * * Set @iana_protocol_number object as a children of @ptr. * if @ptr already contain an @iana_protocol_number object, then it is destroyed, * and updated to point to the provided @iana_protocol_number object. */ void idmef_service_set_iana_protocol_number(idmef_service_t *ptr, uint8_t iana_protocol_number) { prelude_return_if_fail(ptr); ptr->iana_protocol_number = iana_protocol_number; ptr->iana_protocol_number_is_set = 1; } void idmef_service_unset_iana_protocol_number(idmef_service_t *ptr) { prelude_return_if_fail(ptr); ptr->iana_protocol_number_is_set = 0; } /** * idmef_service_new_iana_protocol_number: * @ptr: pointer to a #idmef_service_t object. * @ret: pointer to an address where to store the created #uint8_t object. * * Create a new iana_protocol_number object, children of #idmef_service_t. * If @ptr already contain a #uint8_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_service_new_iana_protocol_number(idmef_service_t *ptr, uint8_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->iana_protocol_number_is_set = 1; *ret = &ptr->iana_protocol_number; return 0; } /** * idmef_service_get_iana_protocol_name: * @ptr: pointer to a #idmef_service_t object. * * Get iana_protocol_name children of the #idmef_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_service_get_iana_protocol_name(idmef_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->iana_protocol_name; } /** * idmef_service_set_iana_protocol_name: * @ptr: pointer to a #idmef_service_t object. * @iana_protocol_name: pointer to a #prelude_string_t object. * * Set @iana_protocol_name object as a children of @ptr. * if @ptr already contain an @iana_protocol_name object, then it is destroyed, * and updated to point to the provided @iana_protocol_name object. */ void idmef_service_set_iana_protocol_name(idmef_service_t *ptr, prelude_string_t *iana_protocol_name) { prelude_return_if_fail(ptr); if ( ptr->iana_protocol_name ) prelude_string_destroy(ptr->iana_protocol_name); ptr->iana_protocol_name = iana_protocol_name; } /** * idmef_service_new_iana_protocol_name: * @ptr: pointer to a #idmef_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new iana_protocol_name object, children of #idmef_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_service_new_iana_protocol_name(idmef_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->iana_protocol_name ) { retval = prelude_string_new(&ptr->iana_protocol_name); if ( retval < 0 ) return retval; } *ret = ptr->iana_protocol_name; return 0; } /** * idmef_service_get_name: * @ptr: pointer to a #idmef_service_t object. * * Get name children of the #idmef_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_service_get_name(idmef_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->name; } /** * idmef_service_set_name: * @ptr: pointer to a #idmef_service_t object. * @name: pointer to a #prelude_string_t object. * * Set @name object as a children of @ptr. * if @ptr already contain an @name object, then it is destroyed, * and updated to point to the provided @name object. */ void idmef_service_set_name(idmef_service_t *ptr, prelude_string_t *name) { prelude_return_if_fail(ptr); if ( ptr->name ) prelude_string_destroy(ptr->name); ptr->name = name; } /** * idmef_service_new_name: * @ptr: pointer to a #idmef_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new name object, children of #idmef_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_service_new_name(idmef_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->name ) { retval = prelude_string_new(&ptr->name); if ( retval < 0 ) return retval; } *ret = ptr->name; return 0; } /** * idmef_service_get_port: * @ptr: pointer to a #idmef_service_t object. * * Get port children of the #idmef_service_t object. * * Returns: a pointer to a uint16_t object, or NULL if the children object is not set. */ uint16_t *idmef_service_get_port(idmef_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->port_is_set ? &ptr->port : NULL; } /** * idmef_service_set_port: * @ptr: pointer to a #idmef_service_t object. * @port: pointer to a #uint16_t object. * * Set @port object as a children of @ptr. * if @ptr already contain an @port object, then it is destroyed, * and updated to point to the provided @port object. */ void idmef_service_set_port(idmef_service_t *ptr, uint16_t port) { prelude_return_if_fail(ptr); ptr->port = port; ptr->port_is_set = 1; } void idmef_service_unset_port(idmef_service_t *ptr) { prelude_return_if_fail(ptr); ptr->port_is_set = 0; } /** * idmef_service_new_port: * @ptr: pointer to a #idmef_service_t object. * @ret: pointer to an address where to store the created #uint16_t object. * * Create a new port object, children of #idmef_service_t. * If @ptr already contain a #uint16_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_service_new_port(idmef_service_t *ptr, uint16_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->port_is_set = 1; *ret = &ptr->port; return 0; } /** * idmef_service_get_portlist: * @ptr: pointer to a #idmef_service_t object. * * Get portlist children of the #idmef_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_service_get_portlist(idmef_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->portlist; } /** * idmef_service_set_portlist: * @ptr: pointer to a #idmef_service_t object. * @portlist: pointer to a #prelude_string_t object. * * Set @portlist object as a children of @ptr. * if @ptr already contain an @portlist object, then it is destroyed, * and updated to point to the provided @portlist object. */ void idmef_service_set_portlist(idmef_service_t *ptr, prelude_string_t *portlist) { prelude_return_if_fail(ptr); if ( ptr->portlist ) prelude_string_destroy(ptr->portlist); ptr->portlist = portlist; } /** * idmef_service_new_portlist: * @ptr: pointer to a #idmef_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new portlist object, children of #idmef_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_service_new_portlist(idmef_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->portlist ) { retval = prelude_string_new(&ptr->portlist); if ( retval < 0 ) return retval; } *ret = ptr->portlist; return 0; } /** * idmef_service_get_protocol: * @ptr: pointer to a #idmef_service_t object. * * Get protocol children of the #idmef_service_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_service_get_protocol(idmef_service_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->protocol; } /** * idmef_service_set_protocol: * @ptr: pointer to a #idmef_service_t object. * @protocol: pointer to a #prelude_string_t object. * * Set @protocol object as a children of @ptr. * if @ptr already contain an @protocol object, then it is destroyed, * and updated to point to the provided @protocol object. */ void idmef_service_set_protocol(idmef_service_t *ptr, prelude_string_t *protocol) { prelude_return_if_fail(ptr); if ( ptr->protocol ) prelude_string_destroy(ptr->protocol); ptr->protocol = protocol; } /** * idmef_service_new_protocol: * @ptr: pointer to a #idmef_service_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new protocol object, children of #idmef_service_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_service_new_protocol(idmef_service_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->protocol ) { retval = prelude_string_new(&ptr->protocol); if ( retval < 0 ) return retval; } *ret = ptr->protocol; return 0; } /** * idmef_service_get_type: * @ptr: pointer to a #idmef_service_t object. * * Access the type children of @ptr. * * Returns: a pointer to the #idmef_service_type_t children, or NULL if it is not set. */ idmef_service_type_t idmef_service_get_type(idmef_service_t *ptr) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); return ptr->type; } /** * idmef_service_get_web_service: * @ptr: pointer to a #idmef_service_t object. * * Access the web_service children of @ptr. * * Returns: a pointer to the #idmef_web_service_t children, or NULL if it is not set. */ idmef_web_service_t *idmef_service_get_web_service(idmef_service_t *ptr) { prelude_return_val_if_fail(ptr, NULL); return (ptr->type == IDMEF_SERVICE_TYPE_WEB) ? ptr->specific.web_service : NULL; } /** * idmef_service_set_web_service: * @ptr: pointer to a #idmef_service_t object. * @web_service: pointer to a #idmef_web_service_t object. * * Set @web_service object as a children of @ptr. * if @ptr already contain a @web_service object, then it is destroyed, * and updated to point to the provided @web_service object. */ void idmef_service_set_web_service(idmef_service_t *ptr, idmef_web_service_t *web_service) { prelude_return_if_fail(ptr); switch ( ptr->type ) { case IDMEF_SERVICE_TYPE_WEB: idmef_web_service_destroy(ptr->specific.web_service); break; case IDMEF_SERVICE_TYPE_SNMP: idmef_snmp_service_destroy(ptr->specific.snmp_service); break; default: break; } ptr->specific.web_service = web_service; ptr->type = (web_service) ? IDMEF_SERVICE_TYPE_WEB : 0; } /** * idmef_service_new_web_service: * @ptr: pointer to a #idmef_service_t object. * @ret: pointer where to store the created #idmef_web_service_t object. * * Create a new idmef_web_service_t object, children of #idmef_service_t. * If @ptr already contain a #idmef_web_service_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_service_new_web_service(idmef_service_t *ptr, idmef_web_service_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( ptr->type ) { case IDMEF_SERVICE_TYPE_WEB: *ret = ptr->specific.web_service; return 0; case IDMEF_SERVICE_TYPE_SNMP: idmef_snmp_service_destroy(ptr->specific.snmp_service); break; default: break; } retval = idmef_web_service_new(ret); if ( retval < 0 ) return retval; ptr->type = IDMEF_SERVICE_TYPE_WEB; ptr->specific.web_service = *ret; return 0; } /** * idmef_service_get_snmp_service: * @ptr: pointer to a #idmef_service_t object. * * Access the snmp_service children of @ptr. * * Returns: a pointer to the #idmef_snmp_service_t children, or NULL if it is not set. */ idmef_snmp_service_t *idmef_service_get_snmp_service(idmef_service_t *ptr) { prelude_return_val_if_fail(ptr, NULL); return (ptr->type == IDMEF_SERVICE_TYPE_SNMP) ? ptr->specific.snmp_service : NULL; } /** * idmef_service_set_snmp_service: * @ptr: pointer to a #idmef_service_t object. * @snmp_service: pointer to a #idmef_snmp_service_t object. * * Set @snmp_service object as a children of @ptr. * if @ptr already contain a @snmp_service object, then it is destroyed, * and updated to point to the provided @snmp_service object. */ void idmef_service_set_snmp_service(idmef_service_t *ptr, idmef_snmp_service_t *snmp_service) { prelude_return_if_fail(ptr); switch ( ptr->type ) { case IDMEF_SERVICE_TYPE_WEB: idmef_web_service_destroy(ptr->specific.web_service); break; case IDMEF_SERVICE_TYPE_SNMP: idmef_snmp_service_destroy(ptr->specific.snmp_service); break; default: break; } ptr->specific.snmp_service = snmp_service; ptr->type = (snmp_service) ? IDMEF_SERVICE_TYPE_SNMP : 0; } /** * idmef_service_new_snmp_service: * @ptr: pointer to a #idmef_service_t object. * @ret: pointer where to store the created #idmef_snmp_service_t object. * * Create a new idmef_snmp_service_t object, children of #idmef_service_t. * If @ptr already contain a #idmef_snmp_service_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_service_new_snmp_service(idmef_service_t *ptr, idmef_snmp_service_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( ptr->type ) { case IDMEF_SERVICE_TYPE_WEB: idmef_web_service_destroy(ptr->specific.web_service); break; case IDMEF_SERVICE_TYPE_SNMP: *ret = ptr->specific.snmp_service; return 0; default: break; } retval = idmef_snmp_service_new(ret); if ( retval < 0 ) return retval; ptr->type = IDMEF_SERVICE_TYPE_SNMP; ptr->specific.snmp_service = *ret; return 0; } /** * idmef_service_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_service_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_service_copy(const idmef_service_t *src, idmef_service_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->ident ) { prelude_string_destroy(dst->ident); dst->ident = NULL; } if ( src->ident ) { ret = prelude_string_clone(src->ident, &dst->ident); if ( ret < 0 ) return ret; } dst->ip_version_is_set = src->ip_version_is_set; dst->ip_version = src->ip_version; dst->iana_protocol_number_is_set = src->iana_protocol_number_is_set; dst->iana_protocol_number = src->iana_protocol_number; if ( dst->iana_protocol_name ) { prelude_string_destroy(dst->iana_protocol_name); dst->iana_protocol_name = NULL; } if ( src->iana_protocol_name ) { ret = prelude_string_clone(src->iana_protocol_name, &dst->iana_protocol_name); if ( ret < 0 ) return ret; } if ( dst->name ) { prelude_string_destroy(dst->name); dst->name = NULL; } if ( src->name ) { ret = prelude_string_clone(src->name, &dst->name); if ( ret < 0 ) return ret; } dst->port_is_set = src->port_is_set; dst->port = src->port; if ( dst->portlist ) { prelude_string_destroy(dst->portlist); dst->portlist = NULL; } if ( src->portlist ) { ret = prelude_string_clone(src->portlist, &dst->portlist); if ( ret < 0 ) return ret; } if ( dst->protocol ) { prelude_string_destroy(dst->protocol); dst->protocol = NULL; } if ( src->protocol ) { ret = prelude_string_clone(src->protocol, &dst->protocol); if ( ret < 0 ) return ret; } switch ( dst->type ) { case IDMEF_SERVICE_TYPE_WEB: idmef_web_service_destroy(dst->specific.web_service); break; case IDMEF_SERVICE_TYPE_SNMP: idmef_snmp_service_destroy(dst->specific.snmp_service); break; default: break; } switch ( src->type ) { case IDMEF_SERVICE_TYPE_WEB: ret = idmef_web_service_clone(src->specific.web_service, &dst->specific.web_service); break; case IDMEF_SERVICE_TYPE_SNMP: ret = idmef_snmp_service_clone(src->specific.snmp_service, &dst->specific.snmp_service); break; default: break; } if ( ret < 0 ) return ret; dst->type = src->type; return 0; } /** * idmef_service_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_service_clone(idmef_service_t *src, idmef_service_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_service_new(dst); if ( ret < 0 ) return ret; return idmef_service_copy(src, *dst); } /** * idmef_service_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_service_compare(const idmef_service_t *obj1, const idmef_service_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->ident, obj2->ident); if ( ret != 0 ) return ret; if ( obj1->ip_version_is_set != obj2->ip_version_is_set ) return -1; if ( obj1->ip_version_is_set && obj1->ip_version != obj2->ip_version ) return -1; if ( obj1->iana_protocol_number_is_set != obj2->iana_protocol_number_is_set ) return -1; if ( obj1->iana_protocol_number_is_set && obj1->iana_protocol_number != obj2->iana_protocol_number ) return -1; ret = prelude_string_compare(obj1->iana_protocol_name, obj2->iana_protocol_name); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->name, obj2->name); if ( ret != 0 ) return ret; if ( obj1->port_is_set != obj2->port_is_set ) return -1; if ( obj1->port_is_set && obj1->port != obj2->port ) return -1; ret = prelude_string_compare(obj1->portlist, obj2->portlist); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->protocol, obj2->protocol); if ( ret != 0 ) return ret; if ( obj1->type != obj2->type ) return -1; switch ( obj1->type ) { case IDMEF_SERVICE_TYPE_WEB: ret = idmef_web_service_compare(obj1->specific.web_service, obj2->specific.web_service); break; case IDMEF_SERVICE_TYPE_SNMP: ret = idmef_snmp_service_compare(obj1->specific.snmp_service, obj2->specific.snmp_service); break; default: break; } return ret; } /** * idmef_node_new: * @ret: Pointer where to store the created #idmef_node_t object. * * Create a new #idmef_node_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_node_new(idmef_node_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_NODE; (*ret)->refcount = 1; prelude_list_init(&(*ret)->address_list); return 0; } /** * idmef_node_ref: * @node: pointer to a #idmef_node_t object. * * Increase @node reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @node. */ idmef_node_t *idmef_node_ref(idmef_node_t *node) { prelude_return_val_if_fail(node, NULL); node->refcount++; return node; } int _idmef_node_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_node_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->ident, TRUE); case 1: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_NODE_CATEGORY, ptr->category); case 2: return get_value_from_string((idmef_value_t **) childptr, ptr->name, TRUE); case 3: return get_value_from_string((idmef_value_t **) childptr, ptr->location, TRUE); case 4: *childptr = &ptr->address_list; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_node_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_node_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_node_new_ident(ptr, (prelude_string_t **) ret); case 1: return idmef_node_new_category(ptr, (idmef_node_category_t **) ret); case 2: return idmef_node_new_name(ptr, (prelude_string_t **) ret); case 3: return idmef_node_new_location(ptr, (prelude_string_t **) ret); case 4: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_node_new_address(ptr, (idmef_address_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->address_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->address_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_node_new_address(ptr, (idmef_address_t **) ret, n); } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_node_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_node_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } return 0; case 1: ptr->category = 0; return 0; case 2: if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } return 0; case 3: if ( ptr->location ) { prelude_string_destroy(ptr->location); ptr->location = NULL; } return 0; case 4: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->address_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_address_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->address_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_address_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_node_destroy_internal(idmef_node_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } if ( ptr->location ) { prelude_string_destroy(ptr->location); ptr->location = NULL; } { prelude_list_t *n, *tmp; idmef_address_t *entry; prelude_list_for_each_safe(&ptr->address_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_address_destroy(entry); } } /* free() should be done by the caller */ } /** * idmef_node_destroy: * @ptr: pointer to a #idmef_node_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_node_destroy(idmef_node_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_node_destroy_internal(ptr); free(ptr); } /** * idmef_node_get_ident: * @ptr: pointer to a #idmef_node_t object. * * Get ident children of the #idmef_node_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_node_get_ident(idmef_node_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->ident; } /** * idmef_node_set_ident: * @ptr: pointer to a #idmef_node_t object. * @ident: pointer to a #prelude_string_t object. * * Set @ident object as a children of @ptr. * if @ptr already contain an @ident object, then it is destroyed, * and updated to point to the provided @ident object. */ void idmef_node_set_ident(idmef_node_t *ptr, prelude_string_t *ident) { prelude_return_if_fail(ptr); if ( ptr->ident ) prelude_string_destroy(ptr->ident); ptr->ident = ident; } /** * idmef_node_new_ident: * @ptr: pointer to a #idmef_node_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new ident object, children of #idmef_node_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_node_new_ident(idmef_node_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->ident ) { retval = prelude_string_new(&ptr->ident); if ( retval < 0 ) return retval; } *ret = ptr->ident; return 0; } /** * idmef_node_get_category: * @ptr: pointer to a #idmef_node_t object. * * Get category children of the #idmef_node_t object. * * Returns: a pointer to a idmef_node_category_t object, or NULL if the children object is not set. */ idmef_node_category_t idmef_node_get_category(idmef_node_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->category; } /** * idmef_node_set_category: * @ptr: pointer to a #idmef_node_t object. * @category: pointer to a #idmef_node_category_t object. * * Set @category object as a children of @ptr. * if @ptr already contain an @category object, then it is destroyed, * and updated to point to the provided @category object. */ void idmef_node_set_category(idmef_node_t *ptr, idmef_node_category_t category) { prelude_return_if_fail(ptr); ptr->category = category; } /** * idmef_node_new_category: * @ptr: pointer to a #idmef_node_t object. * @ret: pointer to an address where to store the created #idmef_node_category_t object. * * Create a new category object, children of #idmef_node_t. * If @ptr already contain a #idmef_node_category_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_node_new_category(idmef_node_t *ptr, idmef_node_category_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->category; return 0; } /** * idmef_node_get_name: * @ptr: pointer to a #idmef_node_t object. * * Get name children of the #idmef_node_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_node_get_name(idmef_node_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->name; } /** * idmef_node_set_name: * @ptr: pointer to a #idmef_node_t object. * @name: pointer to a #prelude_string_t object. * * Set @name object as a children of @ptr. * if @ptr already contain an @name object, then it is destroyed, * and updated to point to the provided @name object. */ void idmef_node_set_name(idmef_node_t *ptr, prelude_string_t *name) { prelude_return_if_fail(ptr); if ( ptr->name ) prelude_string_destroy(ptr->name); ptr->name = name; } /** * idmef_node_new_name: * @ptr: pointer to a #idmef_node_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new name object, children of #idmef_node_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_node_new_name(idmef_node_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->name ) { retval = prelude_string_new(&ptr->name); if ( retval < 0 ) return retval; } *ret = ptr->name; return 0; } /** * idmef_node_get_location: * @ptr: pointer to a #idmef_node_t object. * * Get location children of the #idmef_node_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_node_get_location(idmef_node_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->location; } /** * idmef_node_set_location: * @ptr: pointer to a #idmef_node_t object. * @location: pointer to a #prelude_string_t object. * * Set @location object as a children of @ptr. * if @ptr already contain an @location object, then it is destroyed, * and updated to point to the provided @location object. */ void idmef_node_set_location(idmef_node_t *ptr, prelude_string_t *location) { prelude_return_if_fail(ptr); if ( ptr->location ) prelude_string_destroy(ptr->location); ptr->location = location; } /** * idmef_node_new_location: * @ptr: pointer to a #idmef_node_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new location object, children of #idmef_node_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_node_new_location(idmef_node_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->location ) { retval = prelude_string_new(&ptr->location); if ( retval < 0 ) return retval; } *ret = ptr->location; return 0; } /** * idmef_node_get_next_address: * @node: pointer to a #idmef_node_t object. * @address_cur: pointer to a #idmef_address_t object. * * Get the next #idmef_address_t object listed in @ptr. * When iterating over the idmef_address_t object listed in @ptr, * @object should be set to the latest returned #idmef_address_t object. * * Returns: the next #idmef_address_t in the list. */ idmef_address_t *idmef_node_get_next_address(idmef_node_t *node, idmef_address_t *address_cur) { prelude_list_t *tmp = (address_cur) ? &((prelude_linked_object_t *) address_cur)->_list : NULL; prelude_return_val_if_fail(node, NULL); prelude_list_for_each_continue(&node->address_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_node_set_address: * @ptr: pointer to a #idmef_node_t object. * @object: pointer to a #idmef_address_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_address_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_node_set_address(idmef_node_t *ptr, idmef_address_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->address_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_node_new_address: * @ptr: pointer to a #idmef_node_t object. * @ret: pointer to an address where to store the created #idmef_address_t object. * @pos: position in the list. * * Create a new #idmef_address_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_address_t object. The created #idmef_address_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_node_new_address(idmef_node_t *ptr, idmef_address_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_address_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->address_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_node_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_node_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_node_copy(const idmef_node_t *src, idmef_node_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->ident ) { prelude_string_destroy(dst->ident); dst->ident = NULL; } if ( src->ident ) { ret = prelude_string_clone(src->ident, &dst->ident); if ( ret < 0 ) return ret; } dst->category = src->category; if ( dst->name ) { prelude_string_destroy(dst->name); dst->name = NULL; } if ( src->name ) { ret = prelude_string_clone(src->name, &dst->name); if ( ret < 0 ) return ret; } if ( dst->location ) { prelude_string_destroy(dst->location); dst->location = NULL; } if ( src->location ) { ret = prelude_string_clone(src->location, &dst->location); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; idmef_address_t *entry, *new; prelude_list_for_each_safe(&dst->address_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_address_destroy(entry); } prelude_list_for_each_safe(&src->address_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_address_clone(entry, &new); prelude_list_add_tail(&dst->address_list, &((prelude_linked_object_t *) new)->_list); } } return 0; } /** * idmef_node_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_node_clone(idmef_node_t *src, idmef_node_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_node_new(dst); if ( ret < 0 ) return ret; return idmef_node_copy(src, *dst); } /** * idmef_node_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_node_compare(const idmef_node_t *obj1, const idmef_node_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->ident, obj2->ident); if ( ret != 0 ) return ret; if ( obj1->category != obj2->category ) return -1; ret = prelude_string_compare(obj1->name, obj2->name); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->location, obj2->location); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; idmef_address_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->address_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->address_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_address_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } return ret; } /** * idmef_source_new: * @ret: Pointer where to store the created #idmef_source_t object. * * Create a new #idmef_source_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_source_new(idmef_source_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_SOURCE; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; return 0; } /** * idmef_source_ref: * @source: pointer to a #idmef_source_t object. * * Increase @source reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @source. */ idmef_source_t *idmef_source_ref(idmef_source_t *source) { prelude_return_val_if_fail(source, NULL); source->refcount++; return source; } int _idmef_source_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_source_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->ident, TRUE); case 1: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_SOURCE_SPOOFED, ptr->spoofed); case 2: return get_value_from_string((idmef_value_t **) childptr, ptr->interface, TRUE); case 3: *childptr = ptr->node; return 0; case 4: *childptr = ptr->user; return 0; case 5: *childptr = ptr->process; return 0; case 6: *childptr = ptr->service; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_source_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_source_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_source_new_ident(ptr, (prelude_string_t **) ret); case 1: return idmef_source_new_spoofed(ptr, (idmef_source_spoofed_t **) ret); case 2: return idmef_source_new_interface(ptr, (prelude_string_t **) ret); case 3: return idmef_source_new_node(ptr, (idmef_node_t **) ret); case 4: return idmef_source_new_user(ptr, (idmef_user_t **) ret); case 5: return idmef_source_new_process(ptr, (idmef_process_t **) ret); case 6: return idmef_source_new_service(ptr, (idmef_service_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_source_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_source_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } return 0; case 1: ptr->spoofed = 0; return 0; case 2: if ( ptr->interface ) { prelude_string_destroy(ptr->interface); ptr->interface = NULL; } return 0; case 3: if ( ptr->node ) { idmef_node_destroy(ptr->node); ptr->node = NULL; } return 0; case 4: if ( ptr->user ) { idmef_user_destroy(ptr->user); ptr->user = NULL; } return 0; case 5: if ( ptr->process ) { idmef_process_destroy(ptr->process); ptr->process = NULL; } return 0; case 6: if ( ptr->service ) { idmef_service_destroy(ptr->service); ptr->service = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_source_destroy_internal(idmef_source_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } if ( ptr->interface ) { prelude_string_destroy(ptr->interface); ptr->interface = NULL; } if ( ptr->node ) { idmef_node_destroy(ptr->node); ptr->node = NULL; } if ( ptr->user ) { idmef_user_destroy(ptr->user); ptr->user = NULL; } if ( ptr->process ) { idmef_process_destroy(ptr->process); ptr->process = NULL; } if ( ptr->service ) { idmef_service_destroy(ptr->service); ptr->service = NULL; } /* free() should be done by the caller */ } /** * idmef_source_destroy: * @ptr: pointer to a #idmef_source_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_source_destroy(idmef_source_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_source_destroy_internal(ptr); free(ptr); } /** * idmef_source_get_ident: * @ptr: pointer to a #idmef_source_t object. * * Get ident children of the #idmef_source_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_source_get_ident(idmef_source_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->ident; } /** * idmef_source_set_ident: * @ptr: pointer to a #idmef_source_t object. * @ident: pointer to a #prelude_string_t object. * * Set @ident object as a children of @ptr. * if @ptr already contain an @ident object, then it is destroyed, * and updated to point to the provided @ident object. */ void idmef_source_set_ident(idmef_source_t *ptr, prelude_string_t *ident) { prelude_return_if_fail(ptr); if ( ptr->ident ) prelude_string_destroy(ptr->ident); ptr->ident = ident; } /** * idmef_source_new_ident: * @ptr: pointer to a #idmef_source_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new ident object, children of #idmef_source_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_source_new_ident(idmef_source_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->ident ) { retval = prelude_string_new(&ptr->ident); if ( retval < 0 ) return retval; } *ret = ptr->ident; return 0; } /** * idmef_source_get_spoofed: * @ptr: pointer to a #idmef_source_t object. * * Get spoofed children of the #idmef_source_t object. * * Returns: a pointer to a idmef_source_spoofed_t object, or NULL if the children object is not set. */ idmef_source_spoofed_t idmef_source_get_spoofed(idmef_source_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->spoofed; } /** * idmef_source_set_spoofed: * @ptr: pointer to a #idmef_source_t object. * @spoofed: pointer to a #idmef_source_spoofed_t object. * * Set @spoofed object as a children of @ptr. * if @ptr already contain an @spoofed object, then it is destroyed, * and updated to point to the provided @spoofed object. */ void idmef_source_set_spoofed(idmef_source_t *ptr, idmef_source_spoofed_t spoofed) { prelude_return_if_fail(ptr); ptr->spoofed = spoofed; } /** * idmef_source_new_spoofed: * @ptr: pointer to a #idmef_source_t object. * @ret: pointer to an address where to store the created #idmef_source_spoofed_t object. * * Create a new spoofed object, children of #idmef_source_t. * If @ptr already contain a #idmef_source_spoofed_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_source_new_spoofed(idmef_source_t *ptr, idmef_source_spoofed_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->spoofed; return 0; } /** * idmef_source_get_interface: * @ptr: pointer to a #idmef_source_t object. * * Get interface children of the #idmef_source_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_source_get_interface(idmef_source_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->interface; } /** * idmef_source_set_interface: * @ptr: pointer to a #idmef_source_t object. * @interface: pointer to a #prelude_string_t object. * * Set @interface object as a children of @ptr. * if @ptr already contain an @interface object, then it is destroyed, * and updated to point to the provided @interface object. */ void idmef_source_set_interface(idmef_source_t *ptr, prelude_string_t *interface) { prelude_return_if_fail(ptr); if ( ptr->interface ) prelude_string_destroy(ptr->interface); ptr->interface = interface; } /** * idmef_source_new_interface: * @ptr: pointer to a #idmef_source_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new interface object, children of #idmef_source_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_source_new_interface(idmef_source_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->interface ) { retval = prelude_string_new(&ptr->interface); if ( retval < 0 ) return retval; } *ret = ptr->interface; return 0; } /** * idmef_source_get_node: * @ptr: pointer to a #idmef_source_t object. * * Get node children of the #idmef_source_t object. * * Returns: a pointer to a idmef_node_t object, or NULL if the children object is not set. */ idmef_node_t *idmef_source_get_node(idmef_source_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->node; } /** * idmef_source_set_node: * @ptr: pointer to a #idmef_source_t object. * @node: pointer to a #idmef_node_t object. * * Set @node object as a children of @ptr. * if @ptr already contain an @node object, then it is destroyed, * and updated to point to the provided @node object. */ void idmef_source_set_node(idmef_source_t *ptr, idmef_node_t *node) { prelude_return_if_fail(ptr); if ( ptr->node ) idmef_node_destroy(ptr->node); ptr->node = node; } /** * idmef_source_new_node: * @ptr: pointer to a #idmef_source_t object. * @ret: pointer to an address where to store the created #idmef_node_t object. * * Create a new node object, children of #idmef_source_t. * If @ptr already contain a #idmef_node_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_source_new_node(idmef_source_t *ptr, idmef_node_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->node ) { retval = idmef_node_new(&ptr->node); if ( retval < 0 ) return retval; } *ret = ptr->node; return 0; } /** * idmef_source_get_user: * @ptr: pointer to a #idmef_source_t object. * * Get user children of the #idmef_source_t object. * * Returns: a pointer to a idmef_user_t object, or NULL if the children object is not set. */ idmef_user_t *idmef_source_get_user(idmef_source_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->user; } /** * idmef_source_set_user: * @ptr: pointer to a #idmef_source_t object. * @user: pointer to a #idmef_user_t object. * * Set @user object as a children of @ptr. * if @ptr already contain an @user object, then it is destroyed, * and updated to point to the provided @user object. */ void idmef_source_set_user(idmef_source_t *ptr, idmef_user_t *user) { prelude_return_if_fail(ptr); if ( ptr->user ) idmef_user_destroy(ptr->user); ptr->user = user; } /** * idmef_source_new_user: * @ptr: pointer to a #idmef_source_t object. * @ret: pointer to an address where to store the created #idmef_user_t object. * * Create a new user object, children of #idmef_source_t. * If @ptr already contain a #idmef_user_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_source_new_user(idmef_source_t *ptr, idmef_user_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->user ) { retval = idmef_user_new(&ptr->user); if ( retval < 0 ) return retval; } *ret = ptr->user; return 0; } /** * idmef_source_get_process: * @ptr: pointer to a #idmef_source_t object. * * Get process children of the #idmef_source_t object. * * Returns: a pointer to a idmef_process_t object, or NULL if the children object is not set. */ idmef_process_t *idmef_source_get_process(idmef_source_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->process; } /** * idmef_source_set_process: * @ptr: pointer to a #idmef_source_t object. * @process: pointer to a #idmef_process_t object. * * Set @process object as a children of @ptr. * if @ptr already contain an @process object, then it is destroyed, * and updated to point to the provided @process object. */ void idmef_source_set_process(idmef_source_t *ptr, idmef_process_t *process) { prelude_return_if_fail(ptr); if ( ptr->process ) idmef_process_destroy(ptr->process); ptr->process = process; } /** * idmef_source_new_process: * @ptr: pointer to a #idmef_source_t object. * @ret: pointer to an address where to store the created #idmef_process_t object. * * Create a new process object, children of #idmef_source_t. * If @ptr already contain a #idmef_process_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_source_new_process(idmef_source_t *ptr, idmef_process_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->process ) { retval = idmef_process_new(&ptr->process); if ( retval < 0 ) return retval; } *ret = ptr->process; return 0; } /** * idmef_source_get_service: * @ptr: pointer to a #idmef_source_t object. * * Get service children of the #idmef_source_t object. * * Returns: a pointer to a idmef_service_t object, or NULL if the children object is not set. */ idmef_service_t *idmef_source_get_service(idmef_source_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->service; } /** * idmef_source_set_service: * @ptr: pointer to a #idmef_source_t object. * @service: pointer to a #idmef_service_t object. * * Set @service object as a children of @ptr. * if @ptr already contain an @service object, then it is destroyed, * and updated to point to the provided @service object. */ void idmef_source_set_service(idmef_source_t *ptr, idmef_service_t *service) { prelude_return_if_fail(ptr); if ( ptr->service ) idmef_service_destroy(ptr->service); ptr->service = service; } /** * idmef_source_new_service: * @ptr: pointer to a #idmef_source_t object. * @ret: pointer to an address where to store the created #idmef_service_t object. * * Create a new service object, children of #idmef_source_t. * If @ptr already contain a #idmef_service_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_source_new_service(idmef_source_t *ptr, idmef_service_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->service ) { retval = idmef_service_new(&ptr->service); if ( retval < 0 ) return retval; } *ret = ptr->service; return 0; } /** * idmef_source_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_source_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_source_copy(const idmef_source_t *src, idmef_source_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->ident ) { prelude_string_destroy(dst->ident); dst->ident = NULL; } if ( src->ident ) { ret = prelude_string_clone(src->ident, &dst->ident); if ( ret < 0 ) return ret; } dst->spoofed = src->spoofed; if ( dst->interface ) { prelude_string_destroy(dst->interface); dst->interface = NULL; } if ( src->interface ) { ret = prelude_string_clone(src->interface, &dst->interface); if ( ret < 0 ) return ret; } if ( dst->node ) { idmef_node_destroy(dst->node); dst->node = NULL; } if ( src->node ) { ret = idmef_node_clone(src->node, &dst->node); if ( ret < 0 ) return ret; } if ( dst->user ) { idmef_user_destroy(dst->user); dst->user = NULL; } if ( src->user ) { ret = idmef_user_clone(src->user, &dst->user); if ( ret < 0 ) return ret; } if ( dst->process ) { idmef_process_destroy(dst->process); dst->process = NULL; } if ( src->process ) { ret = idmef_process_clone(src->process, &dst->process); if ( ret < 0 ) return ret; } if ( dst->service ) { idmef_service_destroy(dst->service); dst->service = NULL; } if ( src->service ) { ret = idmef_service_clone(src->service, &dst->service); if ( ret < 0 ) return ret; } return 0; } /** * idmef_source_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_source_clone(idmef_source_t *src, idmef_source_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_source_new(dst); if ( ret < 0 ) return ret; return idmef_source_copy(src, *dst); } /** * idmef_source_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_source_compare(const idmef_source_t *obj1, const idmef_source_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->ident, obj2->ident); if ( ret != 0 ) return ret; if ( obj1->spoofed != obj2->spoofed ) return -1; ret = prelude_string_compare(obj1->interface, obj2->interface); if ( ret != 0 ) return ret; ret = idmef_node_compare(obj1->node, obj2->node); if ( ret != 0 ) return ret; ret = idmef_user_compare(obj1->user, obj2->user); if ( ret != 0 ) return ret; ret = idmef_process_compare(obj1->process, obj2->process); if ( ret != 0 ) return ret; ret = idmef_service_compare(obj1->service, obj2->service); if ( ret != 0 ) return ret; return ret; } /** * idmef_file_access_new: * @ret: Pointer where to store the created #idmef_file_access_t object. * * Create a new #idmef_file_access_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_file_access_new(idmef_file_access_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_FILE_ACCESS; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; prelude_list_init(&(*ret)->permission_list); { int retval = idmef_user_id_new(&(*ret)->user_id); if ( retval < 0 ) { idmef_file_access_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_file_access_ref: * @file_access: pointer to a #idmef_file_access_t object. * * Increase @file_access reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @file_access. */ idmef_file_access_t *idmef_file_access_ref(idmef_file_access_t *file_access) { prelude_return_val_if_fail(file_access, NULL); file_access->refcount++; return file_access; } int _idmef_file_access_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_file_access_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: *childptr = ptr->user_id; return 0; case 1: *childptr = &ptr->permission_list; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_file_access_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_file_access_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_file_access_new_user_id(ptr, (idmef_user_id_t **) ret); case 1: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_file_access_new_permission(ptr, (prelude_string_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->permission_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->permission_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_file_access_new_permission(ptr, (prelude_string_t **) ret, n); } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_file_access_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_file_access_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->user_id ) { idmef_user_id_destroy(ptr->user_id); ptr->user_id = NULL; } return 0; case 1: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->permission_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); prelude_string_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->permission_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); prelude_string_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_file_access_destroy_internal(idmef_file_access_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->user_id ) { idmef_user_id_destroy(ptr->user_id); ptr->user_id = NULL; } { prelude_list_t *n, *tmp; prelude_string_t *entry; prelude_list_for_each_safe(&ptr->permission_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); prelude_string_destroy(entry); } } /* free() should be done by the caller */ } /** * idmef_file_access_destroy: * @ptr: pointer to a #idmef_file_access_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_file_access_destroy(idmef_file_access_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_file_access_destroy_internal(ptr); free(ptr); } /** * idmef_file_access_get_user_id: * @ptr: pointer to a #idmef_file_access_t object. * * Get user_id children of the #idmef_file_access_t object. * * Returns: a pointer to a idmef_user_id_t object, or NULL if the children object is not set. */ idmef_user_id_t *idmef_file_access_get_user_id(idmef_file_access_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->user_id; } /** * idmef_file_access_set_user_id: * @ptr: pointer to a #idmef_file_access_t object. * @user_id: pointer to a #idmef_user_id_t object. * * Set @user_id object as a children of @ptr. * if @ptr already contain an @user_id object, then it is destroyed, * and updated to point to the provided @user_id object. */ void idmef_file_access_set_user_id(idmef_file_access_t *ptr, idmef_user_id_t *user_id) { prelude_return_if_fail(ptr); if ( ptr->user_id ) idmef_user_id_destroy(ptr->user_id); ptr->user_id = user_id; } /** * idmef_file_access_new_user_id: * @ptr: pointer to a #idmef_file_access_t object. * @ret: pointer to an address where to store the created #idmef_user_id_t object. * * Create a new user_id object, children of #idmef_file_access_t. * If @ptr already contain a #idmef_user_id_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_access_new_user_id(idmef_file_access_t *ptr, idmef_user_id_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->user_id ) { retval = idmef_user_id_new(&ptr->user_id); if ( retval < 0 ) return retval; } *ret = ptr->user_id; return 0; } /** * idmef_file_access_get_next_permission: * @file_access: pointer to a #idmef_file_access_t object. * @prelude_string_cur: pointer to a #prelude_string_t object. * * Get the next #prelude_string_t object listed in @ptr. * When iterating over the prelude_string_t object listed in @ptr, * @object should be set to the latest returned #prelude_string_t object. * * Returns: the next #prelude_string_t in the list. */ prelude_string_t *idmef_file_access_get_next_permission(idmef_file_access_t *file_access, prelude_string_t *prelude_string_cur) { prelude_list_t *tmp = (prelude_string_cur) ? &((prelude_linked_object_t *) prelude_string_cur)->_list : NULL; prelude_return_val_if_fail(file_access, NULL); prelude_list_for_each_continue(&file_access->permission_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_file_access_set_permission: * @ptr: pointer to a #idmef_file_access_t object. * @object: pointer to a #prelude_string_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #prelude_string_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_file_access_set_permission(idmef_file_access_t *ptr, prelude_string_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->permission_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_file_access_new_permission: * @ptr: pointer to a #idmef_file_access_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * @pos: position in the list. * * Create a new #prelude_string_t children of @ptr, and add it to position @pos of * @ptr list of #prelude_string_t object. The created #prelude_string_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_access_new_permission(idmef_file_access_t *ptr, prelude_string_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = prelude_string_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->permission_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_file_access_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_file_access_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_file_access_copy(const idmef_file_access_t *src, idmef_file_access_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( src->user_id ) { ret = idmef_user_id_copy(src->user_id, dst->user_id); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; prelude_string_t *entry, *new; prelude_list_for_each_safe(&dst->permission_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_string_destroy(entry); } prelude_list_for_each_safe(&src->permission_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_string_clone(entry, &new); prelude_list_add_tail(&dst->permission_list, &((prelude_linked_object_t *) new)->_list); } } return 0; } /** * idmef_file_access_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_file_access_clone(idmef_file_access_t *src, idmef_file_access_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_file_access_new(dst); if ( ret < 0 ) return ret; return idmef_file_access_copy(src, *dst); } /** * idmef_file_access_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_file_access_compare(const idmef_file_access_t *obj1, const idmef_file_access_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = idmef_user_id_compare(obj1->user_id, obj2->user_id); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; prelude_string_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->permission_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->permission_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = prelude_string_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } return ret; } /** * idmef_inode_new: * @ret: Pointer where to store the created #idmef_inode_t object. * * Create a new #idmef_inode_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_inode_new(idmef_inode_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_INODE; (*ret)->refcount = 1; return 0; } /** * idmef_inode_ref: * @inode: pointer to a #idmef_inode_t object. * * Increase @inode reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @inode. */ idmef_inode_t *idmef_inode_ref(idmef_inode_t *inode) { prelude_return_val_if_fail(inode, NULL); inode->refcount++; return inode; } int _idmef_inode_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_inode_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_time((idmef_value_t **) childptr, ptr->change_time, TRUE); case 1: return (ptr->number_is_set) ? idmef_value_new_uint32((idmef_value_t **) childptr, ptr->number) : 0; case 2: return (ptr->major_device_is_set) ? idmef_value_new_uint32((idmef_value_t **) childptr, ptr->major_device) : 0; case 3: return (ptr->minor_device_is_set) ? idmef_value_new_uint32((idmef_value_t **) childptr, ptr->minor_device) : 0; case 4: return (ptr->c_major_device_is_set) ? idmef_value_new_uint32((idmef_value_t **) childptr, ptr->c_major_device) : 0; case 5: return (ptr->c_minor_device_is_set) ? idmef_value_new_uint32((idmef_value_t **) childptr, ptr->c_minor_device) : 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_inode_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_inode_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_inode_new_change_time(ptr, (idmef_time_t **) ret); case 1: return idmef_inode_new_number(ptr, (uint32_t **) ret); case 2: return idmef_inode_new_major_device(ptr, (uint32_t **) ret); case 3: return idmef_inode_new_minor_device(ptr, (uint32_t **) ret); case 4: return idmef_inode_new_c_major_device(ptr, (uint32_t **) ret); case 5: return idmef_inode_new_c_minor_device(ptr, (uint32_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_inode_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_inode_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->change_time ) { idmef_time_destroy(ptr->change_time); ptr->change_time = NULL; } return 0; case 1: ptr->number_is_set = 0; return 0; case 2: ptr->major_device_is_set = 0; return 0; case 3: ptr->minor_device_is_set = 0; return 0; case 4: ptr->c_major_device_is_set = 0; return 0; case 5: ptr->c_minor_device_is_set = 0; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_inode_destroy_internal(idmef_inode_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->change_time ) { idmef_time_destroy(ptr->change_time); ptr->change_time = NULL; } /* free() should be done by the caller */ } /** * idmef_inode_destroy: * @ptr: pointer to a #idmef_inode_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_inode_destroy(idmef_inode_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_inode_destroy_internal(ptr); free(ptr); } /** * idmef_inode_get_change_time: * @ptr: pointer to a #idmef_inode_t object. * * Get change_time children of the #idmef_inode_t object. * * Returns: a pointer to a idmef_time_t object, or NULL if the children object is not set. */ idmef_time_t *idmef_inode_get_change_time(idmef_inode_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->change_time; } /** * idmef_inode_set_change_time: * @ptr: pointer to a #idmef_inode_t object. * @change_time: pointer to a #idmef_time_t object. * * Set @change_time object as a children of @ptr. * if @ptr already contain an @change_time object, then it is destroyed, * and updated to point to the provided @change_time object. */ void idmef_inode_set_change_time(idmef_inode_t *ptr, idmef_time_t *change_time) { prelude_return_if_fail(ptr); if ( ptr->change_time ) idmef_time_destroy(ptr->change_time); ptr->change_time = change_time; } /** * idmef_inode_new_change_time: * @ptr: pointer to a #idmef_inode_t object. * @ret: pointer to an address where to store the created #idmef_time_t object. * * Create a new change_time object, children of #idmef_inode_t. * If @ptr already contain a #idmef_time_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_inode_new_change_time(idmef_inode_t *ptr, idmef_time_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->change_time ) { retval = idmef_time_new(&ptr->change_time); if ( retval < 0 ) return retval; } *ret = ptr->change_time; return 0; } /** * idmef_inode_get_number: * @ptr: pointer to a #idmef_inode_t object. * * Get number children of the #idmef_inode_t object. * * Returns: a pointer to a uint32_t object, or NULL if the children object is not set. */ uint32_t *idmef_inode_get_number(idmef_inode_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->number_is_set ? &ptr->number : NULL; } /** * idmef_inode_set_number: * @ptr: pointer to a #idmef_inode_t object. * @number: pointer to a #uint32_t object. * * Set @number object as a children of @ptr. * if @ptr already contain an @number object, then it is destroyed, * and updated to point to the provided @number object. */ void idmef_inode_set_number(idmef_inode_t *ptr, uint32_t number) { prelude_return_if_fail(ptr); ptr->number = number; ptr->number_is_set = 1; } void idmef_inode_unset_number(idmef_inode_t *ptr) { prelude_return_if_fail(ptr); ptr->number_is_set = 0; } /** * idmef_inode_new_number: * @ptr: pointer to a #idmef_inode_t object. * @ret: pointer to an address where to store the created #uint32_t object. * * Create a new number object, children of #idmef_inode_t. * If @ptr already contain a #uint32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_inode_new_number(idmef_inode_t *ptr, uint32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->number_is_set = 1; *ret = &ptr->number; return 0; } /** * idmef_inode_get_major_device: * @ptr: pointer to a #idmef_inode_t object. * * Get major_device children of the #idmef_inode_t object. * * Returns: a pointer to a uint32_t object, or NULL if the children object is not set. */ uint32_t *idmef_inode_get_major_device(idmef_inode_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->major_device_is_set ? &ptr->major_device : NULL; } /** * idmef_inode_set_major_device: * @ptr: pointer to a #idmef_inode_t object. * @major_device: pointer to a #uint32_t object. * * Set @major_device object as a children of @ptr. * if @ptr already contain an @major_device object, then it is destroyed, * and updated to point to the provided @major_device object. */ void idmef_inode_set_major_device(idmef_inode_t *ptr, uint32_t major_device) { prelude_return_if_fail(ptr); ptr->major_device = major_device; ptr->major_device_is_set = 1; } void idmef_inode_unset_major_device(idmef_inode_t *ptr) { prelude_return_if_fail(ptr); ptr->major_device_is_set = 0; } /** * idmef_inode_new_major_device: * @ptr: pointer to a #idmef_inode_t object. * @ret: pointer to an address where to store the created #uint32_t object. * * Create a new major_device object, children of #idmef_inode_t. * If @ptr already contain a #uint32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_inode_new_major_device(idmef_inode_t *ptr, uint32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->major_device_is_set = 1; *ret = &ptr->major_device; return 0; } /** * idmef_inode_get_minor_device: * @ptr: pointer to a #idmef_inode_t object. * * Get minor_device children of the #idmef_inode_t object. * * Returns: a pointer to a uint32_t object, or NULL if the children object is not set. */ uint32_t *idmef_inode_get_minor_device(idmef_inode_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->minor_device_is_set ? &ptr->minor_device : NULL; } /** * idmef_inode_set_minor_device: * @ptr: pointer to a #idmef_inode_t object. * @minor_device: pointer to a #uint32_t object. * * Set @minor_device object as a children of @ptr. * if @ptr already contain an @minor_device object, then it is destroyed, * and updated to point to the provided @minor_device object. */ void idmef_inode_set_minor_device(idmef_inode_t *ptr, uint32_t minor_device) { prelude_return_if_fail(ptr); ptr->minor_device = minor_device; ptr->minor_device_is_set = 1; } void idmef_inode_unset_minor_device(idmef_inode_t *ptr) { prelude_return_if_fail(ptr); ptr->minor_device_is_set = 0; } /** * idmef_inode_new_minor_device: * @ptr: pointer to a #idmef_inode_t object. * @ret: pointer to an address where to store the created #uint32_t object. * * Create a new minor_device object, children of #idmef_inode_t. * If @ptr already contain a #uint32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_inode_new_minor_device(idmef_inode_t *ptr, uint32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->minor_device_is_set = 1; *ret = &ptr->minor_device; return 0; } /** * idmef_inode_get_c_major_device: * @ptr: pointer to a #idmef_inode_t object. * * Get c_major_device children of the #idmef_inode_t object. * * Returns: a pointer to a uint32_t object, or NULL if the children object is not set. */ uint32_t *idmef_inode_get_c_major_device(idmef_inode_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->c_major_device_is_set ? &ptr->c_major_device : NULL; } /** * idmef_inode_set_c_major_device: * @ptr: pointer to a #idmef_inode_t object. * @c_major_device: pointer to a #uint32_t object. * * Set @c_major_device object as a children of @ptr. * if @ptr already contain an @c_major_device object, then it is destroyed, * and updated to point to the provided @c_major_device object. */ void idmef_inode_set_c_major_device(idmef_inode_t *ptr, uint32_t c_major_device) { prelude_return_if_fail(ptr); ptr->c_major_device = c_major_device; ptr->c_major_device_is_set = 1; } void idmef_inode_unset_c_major_device(idmef_inode_t *ptr) { prelude_return_if_fail(ptr); ptr->c_major_device_is_set = 0; } /** * idmef_inode_new_c_major_device: * @ptr: pointer to a #idmef_inode_t object. * @ret: pointer to an address where to store the created #uint32_t object. * * Create a new c_major_device object, children of #idmef_inode_t. * If @ptr already contain a #uint32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_inode_new_c_major_device(idmef_inode_t *ptr, uint32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->c_major_device_is_set = 1; *ret = &ptr->c_major_device; return 0; } /** * idmef_inode_get_c_minor_device: * @ptr: pointer to a #idmef_inode_t object. * * Get c_minor_device children of the #idmef_inode_t object. * * Returns: a pointer to a uint32_t object, or NULL if the children object is not set. */ uint32_t *idmef_inode_get_c_minor_device(idmef_inode_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->c_minor_device_is_set ? &ptr->c_minor_device : NULL; } /** * idmef_inode_set_c_minor_device: * @ptr: pointer to a #idmef_inode_t object. * @c_minor_device: pointer to a #uint32_t object. * * Set @c_minor_device object as a children of @ptr. * if @ptr already contain an @c_minor_device object, then it is destroyed, * and updated to point to the provided @c_minor_device object. */ void idmef_inode_set_c_minor_device(idmef_inode_t *ptr, uint32_t c_minor_device) { prelude_return_if_fail(ptr); ptr->c_minor_device = c_minor_device; ptr->c_minor_device_is_set = 1; } void idmef_inode_unset_c_minor_device(idmef_inode_t *ptr) { prelude_return_if_fail(ptr); ptr->c_minor_device_is_set = 0; } /** * idmef_inode_new_c_minor_device: * @ptr: pointer to a #idmef_inode_t object. * @ret: pointer to an address where to store the created #uint32_t object. * * Create a new c_minor_device object, children of #idmef_inode_t. * If @ptr already contain a #uint32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_inode_new_c_minor_device(idmef_inode_t *ptr, uint32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->c_minor_device_is_set = 1; *ret = &ptr->c_minor_device; return 0; } /** * idmef_inode_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_inode_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_inode_copy(const idmef_inode_t *src, idmef_inode_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->change_time ) { idmef_time_destroy(dst->change_time); dst->change_time = NULL; } if ( src->change_time ) { ret = idmef_time_clone(src->change_time, &dst->change_time); if ( ret < 0 ) return ret; } dst->number_is_set = src->number_is_set; dst->number = src->number; dst->major_device_is_set = src->major_device_is_set; dst->major_device = src->major_device; dst->minor_device_is_set = src->minor_device_is_set; dst->minor_device = src->minor_device; dst->c_major_device_is_set = src->c_major_device_is_set; dst->c_major_device = src->c_major_device; dst->c_minor_device_is_set = src->c_minor_device_is_set; dst->c_minor_device = src->c_minor_device; return 0; } /** * idmef_inode_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_inode_clone(idmef_inode_t *src, idmef_inode_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_inode_new(dst); if ( ret < 0 ) return ret; return idmef_inode_copy(src, *dst); } /** * idmef_inode_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_inode_compare(const idmef_inode_t *obj1, const idmef_inode_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = idmef_time_compare(obj1->change_time, obj2->change_time); if ( ret != 0 ) return ret; if ( obj1->number_is_set != obj2->number_is_set ) return -1; if ( obj1->number_is_set && obj1->number != obj2->number ) return -1; if ( obj1->major_device_is_set != obj2->major_device_is_set ) return -1; if ( obj1->major_device_is_set && obj1->major_device != obj2->major_device ) return -1; if ( obj1->minor_device_is_set != obj2->minor_device_is_set ) return -1; if ( obj1->minor_device_is_set && obj1->minor_device != obj2->minor_device ) return -1; if ( obj1->c_major_device_is_set != obj2->c_major_device_is_set ) return -1; if ( obj1->c_major_device_is_set && obj1->c_major_device != obj2->c_major_device ) return -1; if ( obj1->c_minor_device_is_set != obj2->c_minor_device_is_set ) return -1; if ( obj1->c_minor_device_is_set && obj1->c_minor_device != obj2->c_minor_device ) return -1; return ret; } /** * idmef_checksum_new: * @ret: Pointer where to store the created #idmef_checksum_t object. * * Create a new #idmef_checksum_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_checksum_new(idmef_checksum_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_CHECKSUM; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; { int retval = prelude_string_new(&(*ret)->value); if ( retval < 0 ) { idmef_checksum_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_checksum_ref: * @checksum: pointer to a #idmef_checksum_t object. * * Increase @checksum reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @checksum. */ idmef_checksum_t *idmef_checksum_ref(idmef_checksum_t *checksum) { prelude_return_val_if_fail(checksum, NULL); checksum->refcount++; return checksum; } int _idmef_checksum_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_checksum_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->value, TRUE); case 1: return get_value_from_string((idmef_value_t **) childptr, ptr->key, TRUE); case 2: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_CHECKSUM_ALGORITHM, ptr->algorithm); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_checksum_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_checksum_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_checksum_new_value(ptr, (prelude_string_t **) ret); case 1: return idmef_checksum_new_key(ptr, (prelude_string_t **) ret); case 2: return idmef_checksum_new_algorithm(ptr, (idmef_checksum_algorithm_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_checksum_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_checksum_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->value ) { prelude_string_destroy(ptr->value); ptr->value = NULL; } return 0; case 1: if ( ptr->key ) { prelude_string_destroy(ptr->key); ptr->key = NULL; } return 0; case 2: ptr->algorithm = 0; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_checksum_destroy_internal(idmef_checksum_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->value ) { prelude_string_destroy(ptr->value); ptr->value = NULL; } if ( ptr->key ) { prelude_string_destroy(ptr->key); ptr->key = NULL; } /* free() should be done by the caller */ } /** * idmef_checksum_destroy: * @ptr: pointer to a #idmef_checksum_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_checksum_destroy(idmef_checksum_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_checksum_destroy_internal(ptr); free(ptr); } /** * idmef_checksum_get_value: * @ptr: pointer to a #idmef_checksum_t object. * * Get value children of the #idmef_checksum_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_checksum_get_value(idmef_checksum_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->value; } /** * idmef_checksum_set_value: * @ptr: pointer to a #idmef_checksum_t object. * @value: pointer to a #prelude_string_t object. * * Set @value object as a children of @ptr. * if @ptr already contain an @value object, then it is destroyed, * and updated to point to the provided @value object. */ void idmef_checksum_set_value(idmef_checksum_t *ptr, prelude_string_t *value) { prelude_return_if_fail(ptr); if ( ptr->value ) prelude_string_destroy(ptr->value); ptr->value = value; } /** * idmef_checksum_new_value: * @ptr: pointer to a #idmef_checksum_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new value object, children of #idmef_checksum_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_checksum_new_value(idmef_checksum_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->value ) { retval = prelude_string_new(&ptr->value); if ( retval < 0 ) return retval; } *ret = ptr->value; return 0; } /** * idmef_checksum_get_key: * @ptr: pointer to a #idmef_checksum_t object. * * Get key children of the #idmef_checksum_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_checksum_get_key(idmef_checksum_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->key; } /** * idmef_checksum_set_key: * @ptr: pointer to a #idmef_checksum_t object. * @key: pointer to a #prelude_string_t object. * * Set @key object as a children of @ptr. * if @ptr already contain an @key object, then it is destroyed, * and updated to point to the provided @key object. */ void idmef_checksum_set_key(idmef_checksum_t *ptr, prelude_string_t *key) { prelude_return_if_fail(ptr); if ( ptr->key ) prelude_string_destroy(ptr->key); ptr->key = key; } /** * idmef_checksum_new_key: * @ptr: pointer to a #idmef_checksum_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new key object, children of #idmef_checksum_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_checksum_new_key(idmef_checksum_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->key ) { retval = prelude_string_new(&ptr->key); if ( retval < 0 ) return retval; } *ret = ptr->key; return 0; } /** * idmef_checksum_get_algorithm: * @ptr: pointer to a #idmef_checksum_t object. * * Get algorithm children of the #idmef_checksum_t object. * * Returns: a pointer to a idmef_checksum_algorithm_t object, or NULL if the children object is not set. */ idmef_checksum_algorithm_t idmef_checksum_get_algorithm(idmef_checksum_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->algorithm; } /** * idmef_checksum_set_algorithm: * @ptr: pointer to a #idmef_checksum_t object. * @algorithm: pointer to a #idmef_checksum_algorithm_t object. * * Set @algorithm object as a children of @ptr. * if @ptr already contain an @algorithm object, then it is destroyed, * and updated to point to the provided @algorithm object. */ void idmef_checksum_set_algorithm(idmef_checksum_t *ptr, idmef_checksum_algorithm_t algorithm) { prelude_return_if_fail(ptr); ptr->algorithm = algorithm; } /** * idmef_checksum_new_algorithm: * @ptr: pointer to a #idmef_checksum_t object. * @ret: pointer to an address where to store the created #idmef_checksum_algorithm_t object. * * Create a new algorithm object, children of #idmef_checksum_t. * If @ptr already contain a #idmef_checksum_algorithm_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_checksum_new_algorithm(idmef_checksum_t *ptr, idmef_checksum_algorithm_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->algorithm; return 0; } /** * idmef_checksum_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_checksum_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_checksum_copy(const idmef_checksum_t *src, idmef_checksum_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( src->value ) { ret = prelude_string_copy(src->value, dst->value); if ( ret < 0 ) return ret; } if ( dst->key ) { prelude_string_destroy(dst->key); dst->key = NULL; } if ( src->key ) { ret = prelude_string_clone(src->key, &dst->key); if ( ret < 0 ) return ret; } dst->algorithm = src->algorithm; return 0; } /** * idmef_checksum_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_checksum_clone(idmef_checksum_t *src, idmef_checksum_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_checksum_new(dst); if ( ret < 0 ) return ret; return idmef_checksum_copy(src, *dst); } /** * idmef_checksum_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_checksum_compare(const idmef_checksum_t *obj1, const idmef_checksum_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->value, obj2->value); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->key, obj2->key); if ( ret != 0 ) return ret; if ( obj1->algorithm != obj2->algorithm ) return -1; return ret; } /** * idmef_file_new: * @ret: Pointer where to store the created #idmef_file_t object. * * Create a new #idmef_file_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_file_new(idmef_file_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_FILE; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; prelude_list_init(&(*ret)->file_access_list); prelude_list_init(&(*ret)->linkage_list); prelude_list_init(&(*ret)->checksum_list); { int retval = prelude_string_new(&(*ret)->name); if ( retval < 0 ) { idmef_file_destroy(*ret); *ret = NULL; return retval; } } { int retval = prelude_string_new(&(*ret)->path); if ( retval < 0 ) { idmef_file_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_file_ref: * @file: pointer to a #idmef_file_t object. * * Increase @file reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @file. */ idmef_file_t *idmef_file_ref(idmef_file_t *file) { prelude_return_val_if_fail(file, NULL); file->refcount++; return file; } int _idmef_file_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_file_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->ident, TRUE); case 1: return get_value_from_string((idmef_value_t **) childptr, ptr->name, TRUE); case 2: return get_value_from_string((idmef_value_t **) childptr, ptr->path, TRUE); case 3: return get_value_from_time((idmef_value_t **) childptr, ptr->create_time, TRUE); case 4: return get_value_from_time((idmef_value_t **) childptr, ptr->modify_time, TRUE); case 5: return get_value_from_time((idmef_value_t **) childptr, ptr->access_time, TRUE); case 6: return (ptr->data_size_is_set) ? idmef_value_new_uint64((idmef_value_t **) childptr, ptr->data_size) : 0; case 7: return (ptr->disk_size_is_set) ? idmef_value_new_uint64((idmef_value_t **) childptr, ptr->disk_size) : 0; case 8: *childptr = &ptr->file_access_list; return 0; case 9: *childptr = &ptr->linkage_list; return 0; case 10: *childptr = ptr->inode; return 0; case 11: *childptr = &ptr->checksum_list; return 0; case 12: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_FILE_CATEGORY, ptr->category); case 13: if ( ! ptr->fstype_is_set ) return 0; return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_FILE_FSTYPE, ptr->fstype); case 14: return get_value_from_string((idmef_value_t **) childptr, ptr->file_type, TRUE); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_file_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_file_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_file_new_ident(ptr, (prelude_string_t **) ret); case 1: return idmef_file_new_name(ptr, (prelude_string_t **) ret); case 2: return idmef_file_new_path(ptr, (prelude_string_t **) ret); case 3: return idmef_file_new_create_time(ptr, (idmef_time_t **) ret); case 4: return idmef_file_new_modify_time(ptr, (idmef_time_t **) ret); case 5: return idmef_file_new_access_time(ptr, (idmef_time_t **) ret); case 6: return idmef_file_new_data_size(ptr, (uint64_t **) ret); case 7: return idmef_file_new_disk_size(ptr, (uint64_t **) ret); case 8: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_file_new_file_access(ptr, (idmef_file_access_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->file_access_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->file_access_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_file_new_file_access(ptr, (idmef_file_access_t **) ret, n); } case 9: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_file_new_linkage(ptr, (idmef_linkage_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->linkage_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->linkage_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_file_new_linkage(ptr, (idmef_linkage_t **) ret, n); } case 10: return idmef_file_new_inode(ptr, (idmef_inode_t **) ret); case 11: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_file_new_checksum(ptr, (idmef_checksum_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->checksum_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->checksum_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_file_new_checksum(ptr, (idmef_checksum_t **) ret, n); } case 12: return idmef_file_new_category(ptr, (idmef_file_category_t **) ret); case 13: return idmef_file_new_fstype(ptr, (idmef_file_fstype_t **) ret); case 14: return idmef_file_new_file_type(ptr, (prelude_string_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_file_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_file_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } return 0; case 1: if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } return 0; case 2: if ( ptr->path ) { prelude_string_destroy(ptr->path); ptr->path = NULL; } return 0; case 3: if ( ptr->create_time ) { idmef_time_destroy(ptr->create_time); ptr->create_time = NULL; } return 0; case 4: if ( ptr->modify_time ) { idmef_time_destroy(ptr->modify_time); ptr->modify_time = NULL; } return 0; case 5: if ( ptr->access_time ) { idmef_time_destroy(ptr->access_time); ptr->access_time = NULL; } return 0; case 6: ptr->data_size_is_set = 0; return 0; case 7: ptr->disk_size_is_set = 0; return 0; case 8: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->file_access_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_file_access_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->file_access_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_file_access_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } case 9: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->linkage_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_linkage_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->linkage_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_linkage_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } case 10: if ( ptr->inode ) { idmef_inode_destroy(ptr->inode); ptr->inode = NULL; } return 0; case 11: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->checksum_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_checksum_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->checksum_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_checksum_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } case 12: ptr->category = 0; return 0; case 13: ptr->fstype_is_set = 0; return 0; case 14: if ( ptr->file_type ) { prelude_string_destroy(ptr->file_type); ptr->file_type = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_file_destroy_internal(idmef_file_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } if ( ptr->path ) { prelude_string_destroy(ptr->path); ptr->path = NULL; } if ( ptr->create_time ) { idmef_time_destroy(ptr->create_time); ptr->create_time = NULL; } if ( ptr->modify_time ) { idmef_time_destroy(ptr->modify_time); ptr->modify_time = NULL; } if ( ptr->access_time ) { idmef_time_destroy(ptr->access_time); ptr->access_time = NULL; } { prelude_list_t *n, *tmp; idmef_file_access_t *entry; prelude_list_for_each_safe(&ptr->file_access_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_file_access_destroy(entry); } } { prelude_list_t *n, *tmp; idmef_linkage_t *entry; prelude_list_for_each_safe(&ptr->linkage_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_linkage_destroy(entry); } } if ( ptr->inode ) { idmef_inode_destroy(ptr->inode); ptr->inode = NULL; } { prelude_list_t *n, *tmp; idmef_checksum_t *entry; prelude_list_for_each_safe(&ptr->checksum_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_checksum_destroy(entry); } } if ( ptr->file_type ) { prelude_string_destroy(ptr->file_type); ptr->file_type = NULL; } /* free() should be done by the caller */ } /** * idmef_file_destroy: * @ptr: pointer to a #idmef_file_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_file_destroy(idmef_file_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_file_destroy_internal(ptr); free(ptr); } /** * idmef_file_get_ident: * @ptr: pointer to a #idmef_file_t object. * * Get ident children of the #idmef_file_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_file_get_ident(idmef_file_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->ident; } /** * idmef_file_set_ident: * @ptr: pointer to a #idmef_file_t object. * @ident: pointer to a #prelude_string_t object. * * Set @ident object as a children of @ptr. * if @ptr already contain an @ident object, then it is destroyed, * and updated to point to the provided @ident object. */ void idmef_file_set_ident(idmef_file_t *ptr, prelude_string_t *ident) { prelude_return_if_fail(ptr); if ( ptr->ident ) prelude_string_destroy(ptr->ident); ptr->ident = ident; } /** * idmef_file_new_ident: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new ident object, children of #idmef_file_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_ident(idmef_file_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->ident ) { retval = prelude_string_new(&ptr->ident); if ( retval < 0 ) return retval; } *ret = ptr->ident; return 0; } /** * idmef_file_get_name: * @ptr: pointer to a #idmef_file_t object. * * Get name children of the #idmef_file_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_file_get_name(idmef_file_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->name; } /** * idmef_file_set_name: * @ptr: pointer to a #idmef_file_t object. * @name: pointer to a #prelude_string_t object. * * Set @name object as a children of @ptr. * if @ptr already contain an @name object, then it is destroyed, * and updated to point to the provided @name object. */ void idmef_file_set_name(idmef_file_t *ptr, prelude_string_t *name) { prelude_return_if_fail(ptr); if ( ptr->name ) prelude_string_destroy(ptr->name); ptr->name = name; } /** * idmef_file_new_name: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new name object, children of #idmef_file_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_name(idmef_file_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->name ) { retval = prelude_string_new(&ptr->name); if ( retval < 0 ) return retval; } *ret = ptr->name; return 0; } /** * idmef_file_get_path: * @ptr: pointer to a #idmef_file_t object. * * Get path children of the #idmef_file_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_file_get_path(idmef_file_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->path; } /** * idmef_file_set_path: * @ptr: pointer to a #idmef_file_t object. * @path: pointer to a #prelude_string_t object. * * Set @path object as a children of @ptr. * if @ptr already contain an @path object, then it is destroyed, * and updated to point to the provided @path object. */ void idmef_file_set_path(idmef_file_t *ptr, prelude_string_t *path) { prelude_return_if_fail(ptr); if ( ptr->path ) prelude_string_destroy(ptr->path); ptr->path = path; } /** * idmef_file_new_path: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new path object, children of #idmef_file_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_path(idmef_file_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->path ) { retval = prelude_string_new(&ptr->path); if ( retval < 0 ) return retval; } *ret = ptr->path; return 0; } /** * idmef_file_get_create_time: * @ptr: pointer to a #idmef_file_t object. * * Get create_time children of the #idmef_file_t object. * * Returns: a pointer to a idmef_time_t object, or NULL if the children object is not set. */ idmef_time_t *idmef_file_get_create_time(idmef_file_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->create_time; } /** * idmef_file_set_create_time: * @ptr: pointer to a #idmef_file_t object. * @create_time: pointer to a #idmef_time_t object. * * Set @create_time object as a children of @ptr. * if @ptr already contain an @create_time object, then it is destroyed, * and updated to point to the provided @create_time object. */ void idmef_file_set_create_time(idmef_file_t *ptr, idmef_time_t *create_time) { prelude_return_if_fail(ptr); if ( ptr->create_time ) idmef_time_destroy(ptr->create_time); ptr->create_time = create_time; } /** * idmef_file_new_create_time: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #idmef_time_t object. * * Create a new create_time object, children of #idmef_file_t. * If @ptr already contain a #idmef_time_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_create_time(idmef_file_t *ptr, idmef_time_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->create_time ) { retval = idmef_time_new(&ptr->create_time); if ( retval < 0 ) return retval; } *ret = ptr->create_time; return 0; } /** * idmef_file_get_modify_time: * @ptr: pointer to a #idmef_file_t object. * * Get modify_time children of the #idmef_file_t object. * * Returns: a pointer to a idmef_time_t object, or NULL if the children object is not set. */ idmef_time_t *idmef_file_get_modify_time(idmef_file_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->modify_time; } /** * idmef_file_set_modify_time: * @ptr: pointer to a #idmef_file_t object. * @modify_time: pointer to a #idmef_time_t object. * * Set @modify_time object as a children of @ptr. * if @ptr already contain an @modify_time object, then it is destroyed, * and updated to point to the provided @modify_time object. */ void idmef_file_set_modify_time(idmef_file_t *ptr, idmef_time_t *modify_time) { prelude_return_if_fail(ptr); if ( ptr->modify_time ) idmef_time_destroy(ptr->modify_time); ptr->modify_time = modify_time; } /** * idmef_file_new_modify_time: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #idmef_time_t object. * * Create a new modify_time object, children of #idmef_file_t. * If @ptr already contain a #idmef_time_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_modify_time(idmef_file_t *ptr, idmef_time_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->modify_time ) { retval = idmef_time_new(&ptr->modify_time); if ( retval < 0 ) return retval; } *ret = ptr->modify_time; return 0; } /** * idmef_file_get_access_time: * @ptr: pointer to a #idmef_file_t object. * * Get access_time children of the #idmef_file_t object. * * Returns: a pointer to a idmef_time_t object, or NULL if the children object is not set. */ idmef_time_t *idmef_file_get_access_time(idmef_file_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->access_time; } /** * idmef_file_set_access_time: * @ptr: pointer to a #idmef_file_t object. * @access_time: pointer to a #idmef_time_t object. * * Set @access_time object as a children of @ptr. * if @ptr already contain an @access_time object, then it is destroyed, * and updated to point to the provided @access_time object. */ void idmef_file_set_access_time(idmef_file_t *ptr, idmef_time_t *access_time) { prelude_return_if_fail(ptr); if ( ptr->access_time ) idmef_time_destroy(ptr->access_time); ptr->access_time = access_time; } /** * idmef_file_new_access_time: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #idmef_time_t object. * * Create a new access_time object, children of #idmef_file_t. * If @ptr already contain a #idmef_time_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_access_time(idmef_file_t *ptr, idmef_time_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->access_time ) { retval = idmef_time_new(&ptr->access_time); if ( retval < 0 ) return retval; } *ret = ptr->access_time; return 0; } /** * idmef_file_get_data_size: * @ptr: pointer to a #idmef_file_t object. * * Get data_size children of the #idmef_file_t object. * * Returns: a pointer to a uint64_t object, or NULL if the children object is not set. */ uint64_t *idmef_file_get_data_size(idmef_file_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->data_size_is_set ? &ptr->data_size : NULL; } /** * idmef_file_set_data_size: * @ptr: pointer to a #idmef_file_t object. * @data_size: pointer to a #uint64_t object. * * Set @data_size object as a children of @ptr. * if @ptr already contain an @data_size object, then it is destroyed, * and updated to point to the provided @data_size object. */ void idmef_file_set_data_size(idmef_file_t *ptr, uint64_t data_size) { prelude_return_if_fail(ptr); ptr->data_size = data_size; ptr->data_size_is_set = 1; } void idmef_file_unset_data_size(idmef_file_t *ptr) { prelude_return_if_fail(ptr); ptr->data_size_is_set = 0; } /** * idmef_file_new_data_size: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #uint64_t object. * * Create a new data_size object, children of #idmef_file_t. * If @ptr already contain a #uint64_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_data_size(idmef_file_t *ptr, uint64_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->data_size_is_set = 1; *ret = &ptr->data_size; return 0; } /** * idmef_file_get_disk_size: * @ptr: pointer to a #idmef_file_t object. * * Get disk_size children of the #idmef_file_t object. * * Returns: a pointer to a uint64_t object, or NULL if the children object is not set. */ uint64_t *idmef_file_get_disk_size(idmef_file_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->disk_size_is_set ? &ptr->disk_size : NULL; } /** * idmef_file_set_disk_size: * @ptr: pointer to a #idmef_file_t object. * @disk_size: pointer to a #uint64_t object. * * Set @disk_size object as a children of @ptr. * if @ptr already contain an @disk_size object, then it is destroyed, * and updated to point to the provided @disk_size object. */ void idmef_file_set_disk_size(idmef_file_t *ptr, uint64_t disk_size) { prelude_return_if_fail(ptr); ptr->disk_size = disk_size; ptr->disk_size_is_set = 1; } void idmef_file_unset_disk_size(idmef_file_t *ptr) { prelude_return_if_fail(ptr); ptr->disk_size_is_set = 0; } /** * idmef_file_new_disk_size: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #uint64_t object. * * Create a new disk_size object, children of #idmef_file_t. * If @ptr already contain a #uint64_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_disk_size(idmef_file_t *ptr, uint64_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->disk_size_is_set = 1; *ret = &ptr->disk_size; return 0; } /** * idmef_file_get_next_file_access: * @file: pointer to a #idmef_file_t object. * @file_access_cur: pointer to a #idmef_file_access_t object. * * Get the next #idmef_file_access_t object listed in @ptr. * When iterating over the idmef_file_access_t object listed in @ptr, * @object should be set to the latest returned #idmef_file_access_t object. * * Returns: the next #idmef_file_access_t in the list. */ idmef_file_access_t *idmef_file_get_next_file_access(idmef_file_t *file, idmef_file_access_t *file_access_cur) { prelude_list_t *tmp = (file_access_cur) ? &((prelude_linked_object_t *) file_access_cur)->_list : NULL; prelude_return_val_if_fail(file, NULL); prelude_list_for_each_continue(&file->file_access_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_file_set_file_access: * @ptr: pointer to a #idmef_file_t object. * @object: pointer to a #idmef_file_access_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_file_access_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_file_set_file_access(idmef_file_t *ptr, idmef_file_access_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->file_access_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_file_new_file_access: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #idmef_file_access_t object. * @pos: position in the list. * * Create a new #idmef_file_access_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_file_access_t object. The created #idmef_file_access_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_file_access(idmef_file_t *ptr, idmef_file_access_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_file_access_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->file_access_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_file_get_next_linkage: * @file: pointer to a #idmef_file_t object. * @linkage_cur: pointer to a #idmef_linkage_t object. * * Get the next #idmef_linkage_t object listed in @ptr. * When iterating over the idmef_linkage_t object listed in @ptr, * @object should be set to the latest returned #idmef_linkage_t object. * * Returns: the next #idmef_linkage_t in the list. */ idmef_linkage_t *idmef_file_get_next_linkage(idmef_file_t *file, idmef_linkage_t *linkage_cur) { prelude_list_t *tmp = (linkage_cur) ? &((prelude_linked_object_t *) linkage_cur)->_list : NULL; prelude_return_val_if_fail(file, NULL); prelude_list_for_each_continue(&file->linkage_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_file_set_linkage: * @ptr: pointer to a #idmef_file_t object. * @object: pointer to a #idmef_linkage_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_linkage_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_file_set_linkage(idmef_file_t *ptr, idmef_linkage_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->linkage_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_file_new_linkage: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #idmef_linkage_t object. * @pos: position in the list. * * Create a new #idmef_linkage_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_linkage_t object. The created #idmef_linkage_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_linkage(idmef_file_t *ptr, idmef_linkage_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_linkage_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->linkage_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_file_get_inode: * @ptr: pointer to a #idmef_file_t object. * * Get inode children of the #idmef_file_t object. * * Returns: a pointer to a idmef_inode_t object, or NULL if the children object is not set. */ idmef_inode_t *idmef_file_get_inode(idmef_file_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->inode; } /** * idmef_file_set_inode: * @ptr: pointer to a #idmef_file_t object. * @inode: pointer to a #idmef_inode_t object. * * Set @inode object as a children of @ptr. * if @ptr already contain an @inode object, then it is destroyed, * and updated to point to the provided @inode object. */ void idmef_file_set_inode(idmef_file_t *ptr, idmef_inode_t *inode) { prelude_return_if_fail(ptr); if ( ptr->inode ) idmef_inode_destroy(ptr->inode); ptr->inode = inode; } /** * idmef_file_new_inode: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #idmef_inode_t object. * * Create a new inode object, children of #idmef_file_t. * If @ptr already contain a #idmef_inode_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_inode(idmef_file_t *ptr, idmef_inode_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->inode ) { retval = idmef_inode_new(&ptr->inode); if ( retval < 0 ) return retval; } *ret = ptr->inode; return 0; } /** * idmef_file_get_next_checksum: * @file: pointer to a #idmef_file_t object. * @checksum_cur: pointer to a #idmef_checksum_t object. * * Get the next #idmef_checksum_t object listed in @ptr. * When iterating over the idmef_checksum_t object listed in @ptr, * @object should be set to the latest returned #idmef_checksum_t object. * * Returns: the next #idmef_checksum_t in the list. */ idmef_checksum_t *idmef_file_get_next_checksum(idmef_file_t *file, idmef_checksum_t *checksum_cur) { prelude_list_t *tmp = (checksum_cur) ? &((prelude_linked_object_t *) checksum_cur)->_list : NULL; prelude_return_val_if_fail(file, NULL); prelude_list_for_each_continue(&file->checksum_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_file_set_checksum: * @ptr: pointer to a #idmef_file_t object. * @object: pointer to a #idmef_checksum_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_checksum_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_file_set_checksum(idmef_file_t *ptr, idmef_checksum_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->checksum_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_file_new_checksum: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #idmef_checksum_t object. * @pos: position in the list. * * Create a new #idmef_checksum_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_checksum_t object. The created #idmef_checksum_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_checksum(idmef_file_t *ptr, idmef_checksum_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_checksum_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->checksum_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_file_get_category: * @ptr: pointer to a #idmef_file_t object. * * Get category children of the #idmef_file_t object. * * Returns: a pointer to a idmef_file_category_t object, or NULL if the children object is not set. */ idmef_file_category_t idmef_file_get_category(idmef_file_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->category; } /** * idmef_file_set_category: * @ptr: pointer to a #idmef_file_t object. * @category: pointer to a #idmef_file_category_t object. * * Set @category object as a children of @ptr. * if @ptr already contain an @category object, then it is destroyed, * and updated to point to the provided @category object. */ void idmef_file_set_category(idmef_file_t *ptr, idmef_file_category_t category) { prelude_return_if_fail(ptr); ptr->category = category; } /** * idmef_file_new_category: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #idmef_file_category_t object. * * Create a new category object, children of #idmef_file_t. * If @ptr already contain a #idmef_file_category_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_category(idmef_file_t *ptr, idmef_file_category_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->category; return 0; } /** * idmef_file_get_fstype: * @ptr: pointer to a #idmef_file_t object. * * Get fstype children of the #idmef_file_t object. * * Returns: a pointer to a idmef_file_fstype_t object, or NULL if the children object is not set. */ idmef_file_fstype_t *idmef_file_get_fstype(idmef_file_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->fstype_is_set ? &ptr->fstype : NULL; } /** * idmef_file_set_fstype: * @ptr: pointer to a #idmef_file_t object. * @fstype: pointer to a #idmef_file_fstype_t object. * * Set @fstype object as a children of @ptr. * if @ptr already contain an @fstype object, then it is destroyed, * and updated to point to the provided @fstype object. */ void idmef_file_set_fstype(idmef_file_t *ptr, idmef_file_fstype_t fstype) { prelude_return_if_fail(ptr); ptr->fstype = fstype; ptr->fstype_is_set = 1; } void idmef_file_unset_fstype(idmef_file_t *ptr) { prelude_return_if_fail(ptr); ptr->fstype_is_set = 0; } /** * idmef_file_new_fstype: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #idmef_file_fstype_t object. * * Create a new fstype object, children of #idmef_file_t. * If @ptr already contain a #idmef_file_fstype_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_fstype(idmef_file_t *ptr, idmef_file_fstype_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->fstype_is_set = 1; *ret = &ptr->fstype; return 0; } /** * idmef_file_get_file_type: * @ptr: pointer to a #idmef_file_t object. * * Get file_type children of the #idmef_file_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_file_get_file_type(idmef_file_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->file_type; } /** * idmef_file_set_file_type: * @ptr: pointer to a #idmef_file_t object. * @file_type: pointer to a #prelude_string_t object. * * Set @file_type object as a children of @ptr. * if @ptr already contain an @file_type object, then it is destroyed, * and updated to point to the provided @file_type object. */ void idmef_file_set_file_type(idmef_file_t *ptr, prelude_string_t *file_type) { prelude_return_if_fail(ptr); if ( ptr->file_type ) prelude_string_destroy(ptr->file_type); ptr->file_type = file_type; } /** * idmef_file_new_file_type: * @ptr: pointer to a #idmef_file_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new file_type object, children of #idmef_file_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_file_new_file_type(idmef_file_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->file_type ) { retval = prelude_string_new(&ptr->file_type); if ( retval < 0 ) return retval; } *ret = ptr->file_type; return 0; } /** * idmef_file_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_file_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_file_copy(const idmef_file_t *src, idmef_file_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->ident ) { prelude_string_destroy(dst->ident); dst->ident = NULL; } if ( src->ident ) { ret = prelude_string_clone(src->ident, &dst->ident); if ( ret < 0 ) return ret; } if ( src->name ) { ret = prelude_string_copy(src->name, dst->name); if ( ret < 0 ) return ret; } if ( src->path ) { ret = prelude_string_copy(src->path, dst->path); if ( ret < 0 ) return ret; } if ( dst->create_time ) { idmef_time_destroy(dst->create_time); dst->create_time = NULL; } if ( src->create_time ) { ret = idmef_time_clone(src->create_time, &dst->create_time); if ( ret < 0 ) return ret; } if ( dst->modify_time ) { idmef_time_destroy(dst->modify_time); dst->modify_time = NULL; } if ( src->modify_time ) { ret = idmef_time_clone(src->modify_time, &dst->modify_time); if ( ret < 0 ) return ret; } if ( dst->access_time ) { idmef_time_destroy(dst->access_time); dst->access_time = NULL; } if ( src->access_time ) { ret = idmef_time_clone(src->access_time, &dst->access_time); if ( ret < 0 ) return ret; } dst->data_size_is_set = src->data_size_is_set; dst->data_size = src->data_size; dst->disk_size_is_set = src->disk_size_is_set; dst->disk_size = src->disk_size; { prelude_list_t *n, *tmp; idmef_file_access_t *entry, *new; prelude_list_for_each_safe(&dst->file_access_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_file_access_destroy(entry); } prelude_list_for_each_safe(&src->file_access_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_file_access_clone(entry, &new); prelude_list_add_tail(&dst->file_access_list, &((prelude_linked_object_t *) new)->_list); } } { prelude_list_t *n, *tmp; idmef_linkage_t *entry, *new; prelude_list_for_each_safe(&dst->linkage_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_linkage_destroy(entry); } prelude_list_for_each_safe(&src->linkage_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_linkage_clone(entry, &new); prelude_list_add_tail(&dst->linkage_list, &((prelude_linked_object_t *) new)->_list); } } if ( dst->inode ) { idmef_inode_destroy(dst->inode); dst->inode = NULL; } if ( src->inode ) { ret = idmef_inode_clone(src->inode, &dst->inode); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; idmef_checksum_t *entry, *new; prelude_list_for_each_safe(&dst->checksum_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_checksum_destroy(entry); } prelude_list_for_each_safe(&src->checksum_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_checksum_clone(entry, &new); prelude_list_add_tail(&dst->checksum_list, &((prelude_linked_object_t *) new)->_list); } } dst->category = src->category; dst->fstype_is_set = src->fstype_is_set; dst->fstype = src->fstype; if ( dst->file_type ) { prelude_string_destroy(dst->file_type); dst->file_type = NULL; } if ( src->file_type ) { ret = prelude_string_clone(src->file_type, &dst->file_type); if ( ret < 0 ) return ret; } return 0; } /** * idmef_file_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_file_clone(idmef_file_t *src, idmef_file_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_file_new(dst); if ( ret < 0 ) return ret; return idmef_file_copy(src, *dst); } /** * idmef_file_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_file_compare(const idmef_file_t *obj1, const idmef_file_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->ident, obj2->ident); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->name, obj2->name); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->path, obj2->path); if ( ret != 0 ) return ret; ret = idmef_time_compare(obj1->create_time, obj2->create_time); if ( ret != 0 ) return ret; ret = idmef_time_compare(obj1->modify_time, obj2->modify_time); if ( ret != 0 ) return ret; ret = idmef_time_compare(obj1->access_time, obj2->access_time); if ( ret != 0 ) return ret; if ( obj1->data_size_is_set != obj2->data_size_is_set ) return -1; if ( obj1->data_size_is_set && obj1->data_size != obj2->data_size ) return -1; if ( obj1->disk_size_is_set != obj2->disk_size_is_set ) return -1; if ( obj1->disk_size_is_set && obj1->disk_size != obj2->disk_size ) return -1; { prelude_list_t *tmp1, *tmp2; idmef_file_access_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->file_access_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->file_access_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_file_access_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } { prelude_list_t *tmp1, *tmp2; idmef_linkage_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->linkage_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->linkage_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_linkage_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } ret = idmef_inode_compare(obj1->inode, obj2->inode); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; idmef_checksum_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->checksum_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->checksum_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_checksum_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } if ( obj1->category != obj2->category ) return -1; if ( obj1->fstype_is_set != obj2->fstype_is_set ) return -1; if ( obj1->fstype_is_set && obj1->fstype != obj2->fstype ) return -1; ret = prelude_string_compare(obj1->file_type, obj2->file_type); if ( ret != 0 ) return ret; return ret; } /** * idmef_linkage_new: * @ret: Pointer where to store the created #idmef_linkage_t object. * * Create a new #idmef_linkage_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_linkage_new(idmef_linkage_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_LINKAGE; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; { int retval = prelude_string_new(&(*ret)->name); if ( retval < 0 ) { idmef_linkage_destroy(*ret); *ret = NULL; return retval; } } { int retval = prelude_string_new(&(*ret)->path); if ( retval < 0 ) { idmef_linkage_destroy(*ret); *ret = NULL; return retval; } } { int retval = idmef_file_new(&(*ret)->file); if ( retval < 0 ) { idmef_linkage_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_linkage_ref: * @linkage: pointer to a #idmef_linkage_t object. * * Increase @linkage reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @linkage. */ idmef_linkage_t *idmef_linkage_ref(idmef_linkage_t *linkage) { prelude_return_val_if_fail(linkage, NULL); linkage->refcount++; return linkage; } int _idmef_linkage_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_linkage_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_LINKAGE_CATEGORY, ptr->category); case 1: return get_value_from_string((idmef_value_t **) childptr, ptr->name, TRUE); case 2: return get_value_from_string((idmef_value_t **) childptr, ptr->path, TRUE); case 3: *childptr = ptr->file; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_linkage_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_linkage_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_linkage_new_category(ptr, (idmef_linkage_category_t **) ret); case 1: return idmef_linkage_new_name(ptr, (prelude_string_t **) ret); case 2: return idmef_linkage_new_path(ptr, (prelude_string_t **) ret); case 3: return idmef_linkage_new_file(ptr, (idmef_file_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_linkage_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_linkage_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: ptr->category = 0; return 0; case 1: if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } return 0; case 2: if ( ptr->path ) { prelude_string_destroy(ptr->path); ptr->path = NULL; } return 0; case 3: if ( ptr->file ) { idmef_file_destroy(ptr->file); ptr->file = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_linkage_destroy_internal(idmef_linkage_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } if ( ptr->path ) { prelude_string_destroy(ptr->path); ptr->path = NULL; } if ( ptr->file ) { idmef_file_destroy(ptr->file); ptr->file = NULL; } /* free() should be done by the caller */ } /** * idmef_linkage_destroy: * @ptr: pointer to a #idmef_linkage_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_linkage_destroy(idmef_linkage_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_linkage_destroy_internal(ptr); free(ptr); } /** * idmef_linkage_get_category: * @ptr: pointer to a #idmef_linkage_t object. * * Get category children of the #idmef_linkage_t object. * * Returns: a pointer to a idmef_linkage_category_t object, or NULL if the children object is not set. */ idmef_linkage_category_t idmef_linkage_get_category(idmef_linkage_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->category; } /** * idmef_linkage_set_category: * @ptr: pointer to a #idmef_linkage_t object. * @category: pointer to a #idmef_linkage_category_t object. * * Set @category object as a children of @ptr. * if @ptr already contain an @category object, then it is destroyed, * and updated to point to the provided @category object. */ void idmef_linkage_set_category(idmef_linkage_t *ptr, idmef_linkage_category_t category) { prelude_return_if_fail(ptr); ptr->category = category; } /** * idmef_linkage_new_category: * @ptr: pointer to a #idmef_linkage_t object. * @ret: pointer to an address where to store the created #idmef_linkage_category_t object. * * Create a new category object, children of #idmef_linkage_t. * If @ptr already contain a #idmef_linkage_category_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_linkage_new_category(idmef_linkage_t *ptr, idmef_linkage_category_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->category; return 0; } /** * idmef_linkage_get_name: * @ptr: pointer to a #idmef_linkage_t object. * * Get name children of the #idmef_linkage_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_linkage_get_name(idmef_linkage_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->name; } /** * idmef_linkage_set_name: * @ptr: pointer to a #idmef_linkage_t object. * @name: pointer to a #prelude_string_t object. * * Set @name object as a children of @ptr. * if @ptr already contain an @name object, then it is destroyed, * and updated to point to the provided @name object. */ void idmef_linkage_set_name(idmef_linkage_t *ptr, prelude_string_t *name) { prelude_return_if_fail(ptr); if ( ptr->name ) prelude_string_destroy(ptr->name); ptr->name = name; } /** * idmef_linkage_new_name: * @ptr: pointer to a #idmef_linkage_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new name object, children of #idmef_linkage_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_linkage_new_name(idmef_linkage_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->name ) { retval = prelude_string_new(&ptr->name); if ( retval < 0 ) return retval; } *ret = ptr->name; return 0; } /** * idmef_linkage_get_path: * @ptr: pointer to a #idmef_linkage_t object. * * Get path children of the #idmef_linkage_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_linkage_get_path(idmef_linkage_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->path; } /** * idmef_linkage_set_path: * @ptr: pointer to a #idmef_linkage_t object. * @path: pointer to a #prelude_string_t object. * * Set @path object as a children of @ptr. * if @ptr already contain an @path object, then it is destroyed, * and updated to point to the provided @path object. */ void idmef_linkage_set_path(idmef_linkage_t *ptr, prelude_string_t *path) { prelude_return_if_fail(ptr); if ( ptr->path ) prelude_string_destroy(ptr->path); ptr->path = path; } /** * idmef_linkage_new_path: * @ptr: pointer to a #idmef_linkage_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new path object, children of #idmef_linkage_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_linkage_new_path(idmef_linkage_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->path ) { retval = prelude_string_new(&ptr->path); if ( retval < 0 ) return retval; } *ret = ptr->path; return 0; } /** * idmef_linkage_get_file: * @ptr: pointer to a #idmef_linkage_t object. * * Get file children of the #idmef_linkage_t object. * * Returns: a pointer to a idmef_file_t object, or NULL if the children object is not set. */ idmef_file_t *idmef_linkage_get_file(idmef_linkage_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->file; } /** * idmef_linkage_set_file: * @ptr: pointer to a #idmef_linkage_t object. * @file: pointer to a #idmef_file_t object. * * Set @file object as a children of @ptr. * if @ptr already contain an @file object, then it is destroyed, * and updated to point to the provided @file object. */ void idmef_linkage_set_file(idmef_linkage_t *ptr, idmef_file_t *file) { prelude_return_if_fail(ptr); if ( ptr->file ) idmef_file_destroy(ptr->file); ptr->file = file; } /** * idmef_linkage_new_file: * @ptr: pointer to a #idmef_linkage_t object. * @ret: pointer to an address where to store the created #idmef_file_t object. * * Create a new file object, children of #idmef_linkage_t. * If @ptr already contain a #idmef_file_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_linkage_new_file(idmef_linkage_t *ptr, idmef_file_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->file ) { retval = idmef_file_new(&ptr->file); if ( retval < 0 ) return retval; } *ret = ptr->file; return 0; } /** * idmef_linkage_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_linkage_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_linkage_copy(const idmef_linkage_t *src, idmef_linkage_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; dst->category = src->category; if ( src->name ) { ret = prelude_string_copy(src->name, dst->name); if ( ret < 0 ) return ret; } if ( src->path ) { ret = prelude_string_copy(src->path, dst->path); if ( ret < 0 ) return ret; } if ( src->file ) { ret = idmef_file_copy(src->file, dst->file); if ( ret < 0 ) return ret; } return 0; } /** * idmef_linkage_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_linkage_clone(idmef_linkage_t *src, idmef_linkage_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_linkage_new(dst); if ( ret < 0 ) return ret; return idmef_linkage_copy(src, *dst); } /** * idmef_linkage_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_linkage_compare(const idmef_linkage_t *obj1, const idmef_linkage_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; if ( obj1->category != obj2->category ) return -1; ret = prelude_string_compare(obj1->name, obj2->name); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->path, obj2->path); if ( ret != 0 ) return ret; ret = idmef_file_compare(obj1->file, obj2->file); if ( ret != 0 ) return ret; return ret; } /** * idmef_target_new: * @ret: Pointer where to store the created #idmef_target_t object. * * Create a new #idmef_target_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_target_new(idmef_target_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_TARGET; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; prelude_list_init(&(*ret)->file_list); return 0; } /** * idmef_target_ref: * @target: pointer to a #idmef_target_t object. * * Increase @target reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @target. */ idmef_target_t *idmef_target_ref(idmef_target_t *target) { prelude_return_val_if_fail(target, NULL); target->refcount++; return target; } int _idmef_target_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_target_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->ident, TRUE); case 1: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_TARGET_DECOY, ptr->decoy); case 2: return get_value_from_string((idmef_value_t **) childptr, ptr->interface, TRUE); case 3: *childptr = ptr->node; return 0; case 4: *childptr = ptr->user; return 0; case 5: *childptr = ptr->process; return 0; case 6: *childptr = ptr->service; return 0; case 7: *childptr = &ptr->file_list; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_target_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_target_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_target_new_ident(ptr, (prelude_string_t **) ret); case 1: return idmef_target_new_decoy(ptr, (idmef_target_decoy_t **) ret); case 2: return idmef_target_new_interface(ptr, (prelude_string_t **) ret); case 3: return idmef_target_new_node(ptr, (idmef_node_t **) ret); case 4: return idmef_target_new_user(ptr, (idmef_user_t **) ret); case 5: return idmef_target_new_process(ptr, (idmef_process_t **) ret); case 6: return idmef_target_new_service(ptr, (idmef_service_t **) ret); case 7: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_target_new_file(ptr, (idmef_file_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->file_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->file_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_target_new_file(ptr, (idmef_file_t **) ret, n); } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_target_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_target_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } return 0; case 1: ptr->decoy = 0; return 0; case 2: if ( ptr->interface ) { prelude_string_destroy(ptr->interface); ptr->interface = NULL; } return 0; case 3: if ( ptr->node ) { idmef_node_destroy(ptr->node); ptr->node = NULL; } return 0; case 4: if ( ptr->user ) { idmef_user_destroy(ptr->user); ptr->user = NULL; } return 0; case 5: if ( ptr->process ) { idmef_process_destroy(ptr->process); ptr->process = NULL; } return 0; case 6: if ( ptr->service ) { idmef_service_destroy(ptr->service); ptr->service = NULL; } return 0; case 7: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->file_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_file_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->file_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_file_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_target_destroy_internal(idmef_target_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->ident ) { prelude_string_destroy(ptr->ident); ptr->ident = NULL; } if ( ptr->interface ) { prelude_string_destroy(ptr->interface); ptr->interface = NULL; } if ( ptr->node ) { idmef_node_destroy(ptr->node); ptr->node = NULL; } if ( ptr->user ) { idmef_user_destroy(ptr->user); ptr->user = NULL; } if ( ptr->process ) { idmef_process_destroy(ptr->process); ptr->process = NULL; } if ( ptr->service ) { idmef_service_destroy(ptr->service); ptr->service = NULL; } { prelude_list_t *n, *tmp; idmef_file_t *entry; prelude_list_for_each_safe(&ptr->file_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_file_destroy(entry); } } /* free() should be done by the caller */ } /** * idmef_target_destroy: * @ptr: pointer to a #idmef_target_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_target_destroy(idmef_target_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_target_destroy_internal(ptr); free(ptr); } /** * idmef_target_get_ident: * @ptr: pointer to a #idmef_target_t object. * * Get ident children of the #idmef_target_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_target_get_ident(idmef_target_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->ident; } /** * idmef_target_set_ident: * @ptr: pointer to a #idmef_target_t object. * @ident: pointer to a #prelude_string_t object. * * Set @ident object as a children of @ptr. * if @ptr already contain an @ident object, then it is destroyed, * and updated to point to the provided @ident object. */ void idmef_target_set_ident(idmef_target_t *ptr, prelude_string_t *ident) { prelude_return_if_fail(ptr); if ( ptr->ident ) prelude_string_destroy(ptr->ident); ptr->ident = ident; } /** * idmef_target_new_ident: * @ptr: pointer to a #idmef_target_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new ident object, children of #idmef_target_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_target_new_ident(idmef_target_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->ident ) { retval = prelude_string_new(&ptr->ident); if ( retval < 0 ) return retval; } *ret = ptr->ident; return 0; } /** * idmef_target_get_decoy: * @ptr: pointer to a #idmef_target_t object. * * Get decoy children of the #idmef_target_t object. * * Returns: a pointer to a idmef_target_decoy_t object, or NULL if the children object is not set. */ idmef_target_decoy_t idmef_target_get_decoy(idmef_target_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->decoy; } /** * idmef_target_set_decoy: * @ptr: pointer to a #idmef_target_t object. * @decoy: pointer to a #idmef_target_decoy_t object. * * Set @decoy object as a children of @ptr. * if @ptr already contain an @decoy object, then it is destroyed, * and updated to point to the provided @decoy object. */ void idmef_target_set_decoy(idmef_target_t *ptr, idmef_target_decoy_t decoy) { prelude_return_if_fail(ptr); ptr->decoy = decoy; } /** * idmef_target_new_decoy: * @ptr: pointer to a #idmef_target_t object. * @ret: pointer to an address where to store the created #idmef_target_decoy_t object. * * Create a new decoy object, children of #idmef_target_t. * If @ptr already contain a #idmef_target_decoy_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_target_new_decoy(idmef_target_t *ptr, idmef_target_decoy_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->decoy; return 0; } /** * idmef_target_get_interface: * @ptr: pointer to a #idmef_target_t object. * * Get interface children of the #idmef_target_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_target_get_interface(idmef_target_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->interface; } /** * idmef_target_set_interface: * @ptr: pointer to a #idmef_target_t object. * @interface: pointer to a #prelude_string_t object. * * Set @interface object as a children of @ptr. * if @ptr already contain an @interface object, then it is destroyed, * and updated to point to the provided @interface object. */ void idmef_target_set_interface(idmef_target_t *ptr, prelude_string_t *interface) { prelude_return_if_fail(ptr); if ( ptr->interface ) prelude_string_destroy(ptr->interface); ptr->interface = interface; } /** * idmef_target_new_interface: * @ptr: pointer to a #idmef_target_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new interface object, children of #idmef_target_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_target_new_interface(idmef_target_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->interface ) { retval = prelude_string_new(&ptr->interface); if ( retval < 0 ) return retval; } *ret = ptr->interface; return 0; } /** * idmef_target_get_node: * @ptr: pointer to a #idmef_target_t object. * * Get node children of the #idmef_target_t object. * * Returns: a pointer to a idmef_node_t object, or NULL if the children object is not set. */ idmef_node_t *idmef_target_get_node(idmef_target_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->node; } /** * idmef_target_set_node: * @ptr: pointer to a #idmef_target_t object. * @node: pointer to a #idmef_node_t object. * * Set @node object as a children of @ptr. * if @ptr already contain an @node object, then it is destroyed, * and updated to point to the provided @node object. */ void idmef_target_set_node(idmef_target_t *ptr, idmef_node_t *node) { prelude_return_if_fail(ptr); if ( ptr->node ) idmef_node_destroy(ptr->node); ptr->node = node; } /** * idmef_target_new_node: * @ptr: pointer to a #idmef_target_t object. * @ret: pointer to an address where to store the created #idmef_node_t object. * * Create a new node object, children of #idmef_target_t. * If @ptr already contain a #idmef_node_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_target_new_node(idmef_target_t *ptr, idmef_node_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->node ) { retval = idmef_node_new(&ptr->node); if ( retval < 0 ) return retval; } *ret = ptr->node; return 0; } /** * idmef_target_get_user: * @ptr: pointer to a #idmef_target_t object. * * Get user children of the #idmef_target_t object. * * Returns: a pointer to a idmef_user_t object, or NULL if the children object is not set. */ idmef_user_t *idmef_target_get_user(idmef_target_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->user; } /** * idmef_target_set_user: * @ptr: pointer to a #idmef_target_t object. * @user: pointer to a #idmef_user_t object. * * Set @user object as a children of @ptr. * if @ptr already contain an @user object, then it is destroyed, * and updated to point to the provided @user object. */ void idmef_target_set_user(idmef_target_t *ptr, idmef_user_t *user) { prelude_return_if_fail(ptr); if ( ptr->user ) idmef_user_destroy(ptr->user); ptr->user = user; } /** * idmef_target_new_user: * @ptr: pointer to a #idmef_target_t object. * @ret: pointer to an address where to store the created #idmef_user_t object. * * Create a new user object, children of #idmef_target_t. * If @ptr already contain a #idmef_user_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_target_new_user(idmef_target_t *ptr, idmef_user_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->user ) { retval = idmef_user_new(&ptr->user); if ( retval < 0 ) return retval; } *ret = ptr->user; return 0; } /** * idmef_target_get_process: * @ptr: pointer to a #idmef_target_t object. * * Get process children of the #idmef_target_t object. * * Returns: a pointer to a idmef_process_t object, or NULL if the children object is not set. */ idmef_process_t *idmef_target_get_process(idmef_target_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->process; } /** * idmef_target_set_process: * @ptr: pointer to a #idmef_target_t object. * @process: pointer to a #idmef_process_t object. * * Set @process object as a children of @ptr. * if @ptr already contain an @process object, then it is destroyed, * and updated to point to the provided @process object. */ void idmef_target_set_process(idmef_target_t *ptr, idmef_process_t *process) { prelude_return_if_fail(ptr); if ( ptr->process ) idmef_process_destroy(ptr->process); ptr->process = process; } /** * idmef_target_new_process: * @ptr: pointer to a #idmef_target_t object. * @ret: pointer to an address where to store the created #idmef_process_t object. * * Create a new process object, children of #idmef_target_t. * If @ptr already contain a #idmef_process_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_target_new_process(idmef_target_t *ptr, idmef_process_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->process ) { retval = idmef_process_new(&ptr->process); if ( retval < 0 ) return retval; } *ret = ptr->process; return 0; } /** * idmef_target_get_service: * @ptr: pointer to a #idmef_target_t object. * * Get service children of the #idmef_target_t object. * * Returns: a pointer to a idmef_service_t object, or NULL if the children object is not set. */ idmef_service_t *idmef_target_get_service(idmef_target_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->service; } /** * idmef_target_set_service: * @ptr: pointer to a #idmef_target_t object. * @service: pointer to a #idmef_service_t object. * * Set @service object as a children of @ptr. * if @ptr already contain an @service object, then it is destroyed, * and updated to point to the provided @service object. */ void idmef_target_set_service(idmef_target_t *ptr, idmef_service_t *service) { prelude_return_if_fail(ptr); if ( ptr->service ) idmef_service_destroy(ptr->service); ptr->service = service; } /** * idmef_target_new_service: * @ptr: pointer to a #idmef_target_t object. * @ret: pointer to an address where to store the created #idmef_service_t object. * * Create a new service object, children of #idmef_target_t. * If @ptr already contain a #idmef_service_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_target_new_service(idmef_target_t *ptr, idmef_service_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->service ) { retval = idmef_service_new(&ptr->service); if ( retval < 0 ) return retval; } *ret = ptr->service; return 0; } /** * idmef_target_get_next_file: * @target: pointer to a #idmef_target_t object. * @file_cur: pointer to a #idmef_file_t object. * * Get the next #idmef_file_t object listed in @ptr. * When iterating over the idmef_file_t object listed in @ptr, * @object should be set to the latest returned #idmef_file_t object. * * Returns: the next #idmef_file_t in the list. */ idmef_file_t *idmef_target_get_next_file(idmef_target_t *target, idmef_file_t *file_cur) { prelude_list_t *tmp = (file_cur) ? &((prelude_linked_object_t *) file_cur)->_list : NULL; prelude_return_val_if_fail(target, NULL); prelude_list_for_each_continue(&target->file_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_target_set_file: * @ptr: pointer to a #idmef_target_t object. * @object: pointer to a #idmef_file_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_file_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_target_set_file(idmef_target_t *ptr, idmef_file_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->file_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_target_new_file: * @ptr: pointer to a #idmef_target_t object. * @ret: pointer to an address where to store the created #idmef_file_t object. * @pos: position in the list. * * Create a new #idmef_file_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_file_t object. The created #idmef_file_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_target_new_file(idmef_target_t *ptr, idmef_file_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_file_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->file_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_target_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_target_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_target_copy(const idmef_target_t *src, idmef_target_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->ident ) { prelude_string_destroy(dst->ident); dst->ident = NULL; } if ( src->ident ) { ret = prelude_string_clone(src->ident, &dst->ident); if ( ret < 0 ) return ret; } dst->decoy = src->decoy; if ( dst->interface ) { prelude_string_destroy(dst->interface); dst->interface = NULL; } if ( src->interface ) { ret = prelude_string_clone(src->interface, &dst->interface); if ( ret < 0 ) return ret; } if ( dst->node ) { idmef_node_destroy(dst->node); dst->node = NULL; } if ( src->node ) { ret = idmef_node_clone(src->node, &dst->node); if ( ret < 0 ) return ret; } if ( dst->user ) { idmef_user_destroy(dst->user); dst->user = NULL; } if ( src->user ) { ret = idmef_user_clone(src->user, &dst->user); if ( ret < 0 ) return ret; } if ( dst->process ) { idmef_process_destroy(dst->process); dst->process = NULL; } if ( src->process ) { ret = idmef_process_clone(src->process, &dst->process); if ( ret < 0 ) return ret; } if ( dst->service ) { idmef_service_destroy(dst->service); dst->service = NULL; } if ( src->service ) { ret = idmef_service_clone(src->service, &dst->service); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; idmef_file_t *entry, *new; prelude_list_for_each_safe(&dst->file_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_file_destroy(entry); } prelude_list_for_each_safe(&src->file_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_file_clone(entry, &new); prelude_list_add_tail(&dst->file_list, &((prelude_linked_object_t *) new)->_list); } } return 0; } /** * idmef_target_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_target_clone(idmef_target_t *src, idmef_target_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_target_new(dst); if ( ret < 0 ) return ret; return idmef_target_copy(src, *dst); } /** * idmef_target_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_target_compare(const idmef_target_t *obj1, const idmef_target_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->ident, obj2->ident); if ( ret != 0 ) return ret; if ( obj1->decoy != obj2->decoy ) return -1; ret = prelude_string_compare(obj1->interface, obj2->interface); if ( ret != 0 ) return ret; ret = idmef_node_compare(obj1->node, obj2->node); if ( ret != 0 ) return ret; ret = idmef_user_compare(obj1->user, obj2->user); if ( ret != 0 ) return ret; ret = idmef_process_compare(obj1->process, obj2->process); if ( ret != 0 ) return ret; ret = idmef_service_compare(obj1->service, obj2->service); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; idmef_file_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->file_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->file_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_file_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } return ret; } /** * idmef_analyzer_new: * @ret: Pointer where to store the created #idmef_analyzer_t object. * * Create a new #idmef_analyzer_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_analyzer_new(idmef_analyzer_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_ANALYZER; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; return 0; } /** * idmef_analyzer_ref: * @analyzer: pointer to a #idmef_analyzer_t object. * * Increase @analyzer reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @analyzer. */ idmef_analyzer_t *idmef_analyzer_ref(idmef_analyzer_t *analyzer) { prelude_return_val_if_fail(analyzer, NULL); analyzer->refcount++; return analyzer; } int _idmef_analyzer_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_analyzer_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->analyzerid, TRUE); case 1: return get_value_from_string((idmef_value_t **) childptr, ptr->name, TRUE); case 2: return get_value_from_string((idmef_value_t **) childptr, ptr->manufacturer, TRUE); case 3: return get_value_from_string((idmef_value_t **) childptr, ptr->model, TRUE); case 4: return get_value_from_string((idmef_value_t **) childptr, ptr->version, TRUE); case 5: return get_value_from_string((idmef_value_t **) childptr, ptr->class, TRUE); case 6: return get_value_from_string((idmef_value_t **) childptr, ptr->ostype, TRUE); case 7: return get_value_from_string((idmef_value_t **) childptr, ptr->osversion, TRUE); case 8: *childptr = ptr->node; return 0; case 9: *childptr = ptr->process; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_analyzer_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_analyzer_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_analyzer_new_analyzerid(ptr, (prelude_string_t **) ret); case 1: return idmef_analyzer_new_name(ptr, (prelude_string_t **) ret); case 2: return idmef_analyzer_new_manufacturer(ptr, (prelude_string_t **) ret); case 3: return idmef_analyzer_new_model(ptr, (prelude_string_t **) ret); case 4: return idmef_analyzer_new_version(ptr, (prelude_string_t **) ret); case 5: return idmef_analyzer_new_class(ptr, (prelude_string_t **) ret); case 6: return idmef_analyzer_new_ostype(ptr, (prelude_string_t **) ret); case 7: return idmef_analyzer_new_osversion(ptr, (prelude_string_t **) ret); case 8: return idmef_analyzer_new_node(ptr, (idmef_node_t **) ret); case 9: return idmef_analyzer_new_process(ptr, (idmef_process_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_analyzer_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_analyzer_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->analyzerid ) { prelude_string_destroy(ptr->analyzerid); ptr->analyzerid = NULL; } return 0; case 1: if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } return 0; case 2: if ( ptr->manufacturer ) { prelude_string_destroy(ptr->manufacturer); ptr->manufacturer = NULL; } return 0; case 3: if ( ptr->model ) { prelude_string_destroy(ptr->model); ptr->model = NULL; } return 0; case 4: if ( ptr->version ) { prelude_string_destroy(ptr->version); ptr->version = NULL; } return 0; case 5: if ( ptr->class ) { prelude_string_destroy(ptr->class); ptr->class = NULL; } return 0; case 6: if ( ptr->ostype ) { prelude_string_destroy(ptr->ostype); ptr->ostype = NULL; } return 0; case 7: if ( ptr->osversion ) { prelude_string_destroy(ptr->osversion); ptr->osversion = NULL; } return 0; case 8: if ( ptr->node ) { idmef_node_destroy(ptr->node); ptr->node = NULL; } return 0; case 9: if ( ptr->process ) { idmef_process_destroy(ptr->process); ptr->process = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_analyzer_destroy_internal(idmef_analyzer_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->analyzerid ) { prelude_string_destroy(ptr->analyzerid); ptr->analyzerid = NULL; } if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } if ( ptr->manufacturer ) { prelude_string_destroy(ptr->manufacturer); ptr->manufacturer = NULL; } if ( ptr->model ) { prelude_string_destroy(ptr->model); ptr->model = NULL; } if ( ptr->version ) { prelude_string_destroy(ptr->version); ptr->version = NULL; } if ( ptr->class ) { prelude_string_destroy(ptr->class); ptr->class = NULL; } if ( ptr->ostype ) { prelude_string_destroy(ptr->ostype); ptr->ostype = NULL; } if ( ptr->osversion ) { prelude_string_destroy(ptr->osversion); ptr->osversion = NULL; } if ( ptr->node ) { idmef_node_destroy(ptr->node); ptr->node = NULL; } if ( ptr->process ) { idmef_process_destroy(ptr->process); ptr->process = NULL; } /* free() should be done by the caller */ } /** * idmef_analyzer_destroy: * @ptr: pointer to a #idmef_analyzer_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_analyzer_destroy(idmef_analyzer_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_analyzer_destroy_internal(ptr); free(ptr); } /** * idmef_analyzer_get_analyzerid: * @ptr: pointer to a #idmef_analyzer_t object. * * Get analyzerid children of the #idmef_analyzer_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_analyzer_get_analyzerid(idmef_analyzer_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->analyzerid; } /** * idmef_analyzer_set_analyzerid: * @ptr: pointer to a #idmef_analyzer_t object. * @analyzerid: pointer to a #prelude_string_t object. * * Set @analyzerid object as a children of @ptr. * if @ptr already contain an @analyzerid object, then it is destroyed, * and updated to point to the provided @analyzerid object. */ void idmef_analyzer_set_analyzerid(idmef_analyzer_t *ptr, prelude_string_t *analyzerid) { prelude_return_if_fail(ptr); if ( ptr->analyzerid ) prelude_string_destroy(ptr->analyzerid); ptr->analyzerid = analyzerid; } /** * idmef_analyzer_new_analyzerid: * @ptr: pointer to a #idmef_analyzer_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new analyzerid object, children of #idmef_analyzer_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_analyzer_new_analyzerid(idmef_analyzer_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->analyzerid ) { retval = prelude_string_new(&ptr->analyzerid); if ( retval < 0 ) return retval; } *ret = ptr->analyzerid; return 0; } /** * idmef_analyzer_get_name: * @ptr: pointer to a #idmef_analyzer_t object. * * Get name children of the #idmef_analyzer_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_analyzer_get_name(idmef_analyzer_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->name; } /** * idmef_analyzer_set_name: * @ptr: pointer to a #idmef_analyzer_t object. * @name: pointer to a #prelude_string_t object. * * Set @name object as a children of @ptr. * if @ptr already contain an @name object, then it is destroyed, * and updated to point to the provided @name object. */ void idmef_analyzer_set_name(idmef_analyzer_t *ptr, prelude_string_t *name) { prelude_return_if_fail(ptr); if ( ptr->name ) prelude_string_destroy(ptr->name); ptr->name = name; } /** * idmef_analyzer_new_name: * @ptr: pointer to a #idmef_analyzer_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new name object, children of #idmef_analyzer_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_analyzer_new_name(idmef_analyzer_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->name ) { retval = prelude_string_new(&ptr->name); if ( retval < 0 ) return retval; } *ret = ptr->name; return 0; } /** * idmef_analyzer_get_manufacturer: * @ptr: pointer to a #idmef_analyzer_t object. * * Get manufacturer children of the #idmef_analyzer_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_analyzer_get_manufacturer(idmef_analyzer_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->manufacturer; } /** * idmef_analyzer_set_manufacturer: * @ptr: pointer to a #idmef_analyzer_t object. * @manufacturer: pointer to a #prelude_string_t object. * * Set @manufacturer object as a children of @ptr. * if @ptr already contain an @manufacturer object, then it is destroyed, * and updated to point to the provided @manufacturer object. */ void idmef_analyzer_set_manufacturer(idmef_analyzer_t *ptr, prelude_string_t *manufacturer) { prelude_return_if_fail(ptr); if ( ptr->manufacturer ) prelude_string_destroy(ptr->manufacturer); ptr->manufacturer = manufacturer; } /** * idmef_analyzer_new_manufacturer: * @ptr: pointer to a #idmef_analyzer_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new manufacturer object, children of #idmef_analyzer_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_analyzer_new_manufacturer(idmef_analyzer_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->manufacturer ) { retval = prelude_string_new(&ptr->manufacturer); if ( retval < 0 ) return retval; } *ret = ptr->manufacturer; return 0; } /** * idmef_analyzer_get_model: * @ptr: pointer to a #idmef_analyzer_t object. * * Get model children of the #idmef_analyzer_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_analyzer_get_model(idmef_analyzer_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->model; } /** * idmef_analyzer_set_model: * @ptr: pointer to a #idmef_analyzer_t object. * @model: pointer to a #prelude_string_t object. * * Set @model object as a children of @ptr. * if @ptr already contain an @model object, then it is destroyed, * and updated to point to the provided @model object. */ void idmef_analyzer_set_model(idmef_analyzer_t *ptr, prelude_string_t *model) { prelude_return_if_fail(ptr); if ( ptr->model ) prelude_string_destroy(ptr->model); ptr->model = model; } /** * idmef_analyzer_new_model: * @ptr: pointer to a #idmef_analyzer_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new model object, children of #idmef_analyzer_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_analyzer_new_model(idmef_analyzer_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->model ) { retval = prelude_string_new(&ptr->model); if ( retval < 0 ) return retval; } *ret = ptr->model; return 0; } /** * idmef_analyzer_get_version: * @ptr: pointer to a #idmef_analyzer_t object. * * Get version children of the #idmef_analyzer_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_analyzer_get_version(idmef_analyzer_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->version; } /** * idmef_analyzer_set_version: * @ptr: pointer to a #idmef_analyzer_t object. * @version: pointer to a #prelude_string_t object. * * Set @version object as a children of @ptr. * if @ptr already contain an @version object, then it is destroyed, * and updated to point to the provided @version object. */ void idmef_analyzer_set_version(idmef_analyzer_t *ptr, prelude_string_t *version) { prelude_return_if_fail(ptr); if ( ptr->version ) prelude_string_destroy(ptr->version); ptr->version = version; } /** * idmef_analyzer_new_version: * @ptr: pointer to a #idmef_analyzer_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new version object, children of #idmef_analyzer_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_analyzer_new_version(idmef_analyzer_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->version ) { retval = prelude_string_new(&ptr->version); if ( retval < 0 ) return retval; } *ret = ptr->version; return 0; } /** * idmef_analyzer_get_class: * @ptr: pointer to a #idmef_analyzer_t object. * * Get class children of the #idmef_analyzer_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_analyzer_get_class(idmef_analyzer_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->class; } /** * idmef_analyzer_set_class: * @ptr: pointer to a #idmef_analyzer_t object. * @class_str: pointer to a #prelude_string_t object. * * Set @class_str object as a children of @ptr. * if @ptr already contain an @class_str object, then it is destroyed, * and updated to point to the provided @class_str object. */ void idmef_analyzer_set_class(idmef_analyzer_t *ptr, prelude_string_t *class_str) { prelude_return_if_fail(ptr); if ( ptr->class ) prelude_string_destroy(ptr->class); ptr->class = class_str; } /** * idmef_analyzer_new_class: * @ptr: pointer to a #idmef_analyzer_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new class object, children of #idmef_analyzer_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_analyzer_new_class(idmef_analyzer_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->class ) { retval = prelude_string_new(&ptr->class); if ( retval < 0 ) return retval; } *ret = ptr->class; return 0; } /** * idmef_analyzer_get_ostype: * @ptr: pointer to a #idmef_analyzer_t object. * * Get ostype children of the #idmef_analyzer_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_analyzer_get_ostype(idmef_analyzer_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->ostype; } /** * idmef_analyzer_set_ostype: * @ptr: pointer to a #idmef_analyzer_t object. * @ostype: pointer to a #prelude_string_t object. * * Set @ostype object as a children of @ptr. * if @ptr already contain an @ostype object, then it is destroyed, * and updated to point to the provided @ostype object. */ void idmef_analyzer_set_ostype(idmef_analyzer_t *ptr, prelude_string_t *ostype) { prelude_return_if_fail(ptr); if ( ptr->ostype ) prelude_string_destroy(ptr->ostype); ptr->ostype = ostype; } /** * idmef_analyzer_new_ostype: * @ptr: pointer to a #idmef_analyzer_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new ostype object, children of #idmef_analyzer_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_analyzer_new_ostype(idmef_analyzer_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->ostype ) { retval = prelude_string_new(&ptr->ostype); if ( retval < 0 ) return retval; } *ret = ptr->ostype; return 0; } /** * idmef_analyzer_get_osversion: * @ptr: pointer to a #idmef_analyzer_t object. * * Get osversion children of the #idmef_analyzer_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_analyzer_get_osversion(idmef_analyzer_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->osversion; } /** * idmef_analyzer_set_osversion: * @ptr: pointer to a #idmef_analyzer_t object. * @osversion: pointer to a #prelude_string_t object. * * Set @osversion object as a children of @ptr. * if @ptr already contain an @osversion object, then it is destroyed, * and updated to point to the provided @osversion object. */ void idmef_analyzer_set_osversion(idmef_analyzer_t *ptr, prelude_string_t *osversion) { prelude_return_if_fail(ptr); if ( ptr->osversion ) prelude_string_destroy(ptr->osversion); ptr->osversion = osversion; } /** * idmef_analyzer_new_osversion: * @ptr: pointer to a #idmef_analyzer_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new osversion object, children of #idmef_analyzer_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_analyzer_new_osversion(idmef_analyzer_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->osversion ) { retval = prelude_string_new(&ptr->osversion); if ( retval < 0 ) return retval; } *ret = ptr->osversion; return 0; } /** * idmef_analyzer_get_node: * @ptr: pointer to a #idmef_analyzer_t object. * * Get node children of the #idmef_analyzer_t object. * * Returns: a pointer to a idmef_node_t object, or NULL if the children object is not set. */ idmef_node_t *idmef_analyzer_get_node(idmef_analyzer_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->node; } /** * idmef_analyzer_set_node: * @ptr: pointer to a #idmef_analyzer_t object. * @node: pointer to a #idmef_node_t object. * * Set @node object as a children of @ptr. * if @ptr already contain an @node object, then it is destroyed, * and updated to point to the provided @node object. */ void idmef_analyzer_set_node(idmef_analyzer_t *ptr, idmef_node_t *node) { prelude_return_if_fail(ptr); if ( ptr->node ) idmef_node_destroy(ptr->node); ptr->node = node; } /** * idmef_analyzer_new_node: * @ptr: pointer to a #idmef_analyzer_t object. * @ret: pointer to an address where to store the created #idmef_node_t object. * * Create a new node object, children of #idmef_analyzer_t. * If @ptr already contain a #idmef_node_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_analyzer_new_node(idmef_analyzer_t *ptr, idmef_node_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->node ) { retval = idmef_node_new(&ptr->node); if ( retval < 0 ) return retval; } *ret = ptr->node; return 0; } /** * idmef_analyzer_get_process: * @ptr: pointer to a #idmef_analyzer_t object. * * Get process children of the #idmef_analyzer_t object. * * Returns: a pointer to a idmef_process_t object, or NULL if the children object is not set. */ idmef_process_t *idmef_analyzer_get_process(idmef_analyzer_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->process; } /** * idmef_analyzer_set_process: * @ptr: pointer to a #idmef_analyzer_t object. * @process: pointer to a #idmef_process_t object. * * Set @process object as a children of @ptr. * if @ptr already contain an @process object, then it is destroyed, * and updated to point to the provided @process object. */ void idmef_analyzer_set_process(idmef_analyzer_t *ptr, idmef_process_t *process) { prelude_return_if_fail(ptr); if ( ptr->process ) idmef_process_destroy(ptr->process); ptr->process = process; } /** * idmef_analyzer_new_process: * @ptr: pointer to a #idmef_analyzer_t object. * @ret: pointer to an address where to store the created #idmef_process_t object. * * Create a new process object, children of #idmef_analyzer_t. * If @ptr already contain a #idmef_process_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_analyzer_new_process(idmef_analyzer_t *ptr, idmef_process_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->process ) { retval = idmef_process_new(&ptr->process); if ( retval < 0 ) return retval; } *ret = ptr->process; return 0; } /** * idmef_analyzer_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_analyzer_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_analyzer_copy(const idmef_analyzer_t *src, idmef_analyzer_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->analyzerid ) { prelude_string_destroy(dst->analyzerid); dst->analyzerid = NULL; } if ( src->analyzerid ) { ret = prelude_string_clone(src->analyzerid, &dst->analyzerid); if ( ret < 0 ) return ret; } if ( dst->name ) { prelude_string_destroy(dst->name); dst->name = NULL; } if ( src->name ) { ret = prelude_string_clone(src->name, &dst->name); if ( ret < 0 ) return ret; } if ( dst->manufacturer ) { prelude_string_destroy(dst->manufacturer); dst->manufacturer = NULL; } if ( src->manufacturer ) { ret = prelude_string_clone(src->manufacturer, &dst->manufacturer); if ( ret < 0 ) return ret; } if ( dst->model ) { prelude_string_destroy(dst->model); dst->model = NULL; } if ( src->model ) { ret = prelude_string_clone(src->model, &dst->model); if ( ret < 0 ) return ret; } if ( dst->version ) { prelude_string_destroy(dst->version); dst->version = NULL; } if ( src->version ) { ret = prelude_string_clone(src->version, &dst->version); if ( ret < 0 ) return ret; } if ( dst->class ) { prelude_string_destroy(dst->class); dst->class = NULL; } if ( src->class ) { ret = prelude_string_clone(src->class, &dst->class); if ( ret < 0 ) return ret; } if ( dst->ostype ) { prelude_string_destroy(dst->ostype); dst->ostype = NULL; } if ( src->ostype ) { ret = prelude_string_clone(src->ostype, &dst->ostype); if ( ret < 0 ) return ret; } if ( dst->osversion ) { prelude_string_destroy(dst->osversion); dst->osversion = NULL; } if ( src->osversion ) { ret = prelude_string_clone(src->osversion, &dst->osversion); if ( ret < 0 ) return ret; } if ( dst->node ) { idmef_node_destroy(dst->node); dst->node = NULL; } if ( src->node ) { ret = idmef_node_clone(src->node, &dst->node); if ( ret < 0 ) return ret; } if ( dst->process ) { idmef_process_destroy(dst->process); dst->process = NULL; } if ( src->process ) { ret = idmef_process_clone(src->process, &dst->process); if ( ret < 0 ) return ret; } return 0; } /** * idmef_analyzer_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_analyzer_clone(idmef_analyzer_t *src, idmef_analyzer_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_analyzer_new(dst); if ( ret < 0 ) return ret; return idmef_analyzer_copy(src, *dst); } /** * idmef_analyzer_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_analyzer_compare(const idmef_analyzer_t *obj1, const idmef_analyzer_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->analyzerid, obj2->analyzerid); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->name, obj2->name); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->manufacturer, obj2->manufacturer); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->model, obj2->model); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->version, obj2->version); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->class, obj2->class); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->ostype, obj2->ostype); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->osversion, obj2->osversion); if ( ret != 0 ) return ret; ret = idmef_node_compare(obj1->node, obj2->node); if ( ret != 0 ) return ret; ret = idmef_process_compare(obj1->process, obj2->process); if ( ret != 0 ) return ret; return ret; } /** * idmef_alertident_new: * @ret: Pointer where to store the created #idmef_alertident_t object. * * Create a new #idmef_alertident_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_alertident_new(idmef_alertident_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_ALERTIDENT; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; { int retval = prelude_string_new(&(*ret)->alertident); if ( retval < 0 ) { idmef_alertident_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_alertident_ref: * @alertident: pointer to a #idmef_alertident_t object. * * Increase @alertident reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @alertident. */ idmef_alertident_t *idmef_alertident_ref(idmef_alertident_t *alertident) { prelude_return_val_if_fail(alertident, NULL); alertident->refcount++; return alertident; } int _idmef_alertident_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_alertident_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->alertident, TRUE); case 1: return get_value_from_string((idmef_value_t **) childptr, ptr->analyzerid, TRUE); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_alertident_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_alertident_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_alertident_new_alertident(ptr, (prelude_string_t **) ret); case 1: return idmef_alertident_new_analyzerid(ptr, (prelude_string_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_alertident_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_alertident_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->alertident ) { prelude_string_destroy(ptr->alertident); ptr->alertident = NULL; } return 0; case 1: if ( ptr->analyzerid ) { prelude_string_destroy(ptr->analyzerid); ptr->analyzerid = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_alertident_destroy_internal(idmef_alertident_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->alertident ) { prelude_string_destroy(ptr->alertident); ptr->alertident = NULL; } if ( ptr->analyzerid ) { prelude_string_destroy(ptr->analyzerid); ptr->analyzerid = NULL; } /* free() should be done by the caller */ } /** * idmef_alertident_destroy: * @ptr: pointer to a #idmef_alertident_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_alertident_destroy(idmef_alertident_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_alertident_destroy_internal(ptr); free(ptr); } /** * idmef_alertident_get_alertident: * @ptr: pointer to a #idmef_alertident_t object. * * Get alertident children of the #idmef_alertident_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_alertident_get_alertident(idmef_alertident_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->alertident; } /** * idmef_alertident_set_alertident: * @ptr: pointer to a #idmef_alertident_t object. * @alertident: pointer to a #prelude_string_t object. * * Set @alertident object as a children of @ptr. * if @ptr already contain an @alertident object, then it is destroyed, * and updated to point to the provided @alertident object. */ void idmef_alertident_set_alertident(idmef_alertident_t *ptr, prelude_string_t *alertident) { prelude_return_if_fail(ptr); if ( ptr->alertident ) prelude_string_destroy(ptr->alertident); ptr->alertident = alertident; } /** * idmef_alertident_new_alertident: * @ptr: pointer to a #idmef_alertident_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new alertident object, children of #idmef_alertident_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alertident_new_alertident(idmef_alertident_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->alertident ) { retval = prelude_string_new(&ptr->alertident); if ( retval < 0 ) return retval; } *ret = ptr->alertident; return 0; } /** * idmef_alertident_get_analyzerid: * @ptr: pointer to a #idmef_alertident_t object. * * Get analyzerid children of the #idmef_alertident_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_alertident_get_analyzerid(idmef_alertident_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->analyzerid; } /** * idmef_alertident_set_analyzerid: * @ptr: pointer to a #idmef_alertident_t object. * @analyzerid: pointer to a #prelude_string_t object. * * Set @analyzerid object as a children of @ptr. * if @ptr already contain an @analyzerid object, then it is destroyed, * and updated to point to the provided @analyzerid object. */ void idmef_alertident_set_analyzerid(idmef_alertident_t *ptr, prelude_string_t *analyzerid) { prelude_return_if_fail(ptr); if ( ptr->analyzerid ) prelude_string_destroy(ptr->analyzerid); ptr->analyzerid = analyzerid; } /** * idmef_alertident_new_analyzerid: * @ptr: pointer to a #idmef_alertident_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new analyzerid object, children of #idmef_alertident_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alertident_new_analyzerid(idmef_alertident_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->analyzerid ) { retval = prelude_string_new(&ptr->analyzerid); if ( retval < 0 ) return retval; } *ret = ptr->analyzerid; return 0; } /** * idmef_alertident_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_alertident_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_alertident_copy(const idmef_alertident_t *src, idmef_alertident_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( src->alertident ) { ret = prelude_string_copy(src->alertident, dst->alertident); if ( ret < 0 ) return ret; } if ( dst->analyzerid ) { prelude_string_destroy(dst->analyzerid); dst->analyzerid = NULL; } if ( src->analyzerid ) { ret = prelude_string_clone(src->analyzerid, &dst->analyzerid); if ( ret < 0 ) return ret; } return 0; } /** * idmef_alertident_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_alertident_clone(idmef_alertident_t *src, idmef_alertident_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_alertident_new(dst); if ( ret < 0 ) return ret; return idmef_alertident_copy(src, *dst); } /** * idmef_alertident_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_alertident_compare(const idmef_alertident_t *obj1, const idmef_alertident_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->alertident, obj2->alertident); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->analyzerid, obj2->analyzerid); if ( ret != 0 ) return ret; return ret; } /** * idmef_impact_new: * @ret: Pointer where to store the created #idmef_impact_t object. * * Create a new #idmef_impact_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_impact_new(idmef_impact_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_IMPACT; (*ret)->refcount = 1; return 0; } /** * idmef_impact_ref: * @impact: pointer to a #idmef_impact_t object. * * Increase @impact reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @impact. */ idmef_impact_t *idmef_impact_ref(idmef_impact_t *impact) { prelude_return_val_if_fail(impact, NULL); impact->refcount++; return impact; } int _idmef_impact_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_impact_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: if ( ! ptr->severity_is_set ) return 0; return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_IMPACT_SEVERITY, ptr->severity); case 1: if ( ! ptr->completion_is_set ) return 0; return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_IMPACT_COMPLETION, ptr->completion); case 2: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_IMPACT_TYPE, ptr->type); case 3: return get_value_from_string((idmef_value_t **) childptr, ptr->description, TRUE); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_impact_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_impact_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_impact_new_severity(ptr, (idmef_impact_severity_t **) ret); case 1: return idmef_impact_new_completion(ptr, (idmef_impact_completion_t **) ret); case 2: return idmef_impact_new_type(ptr, (idmef_impact_type_t **) ret); case 3: return idmef_impact_new_description(ptr, (prelude_string_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_impact_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_impact_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: ptr->severity_is_set = 0; return 0; case 1: ptr->completion_is_set = 0; return 0; case 2: ptr->type = 0; return 0; case 3: if ( ptr->description ) { prelude_string_destroy(ptr->description); ptr->description = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_impact_destroy_internal(idmef_impact_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->description ) { prelude_string_destroy(ptr->description); ptr->description = NULL; } /* free() should be done by the caller */ } /** * idmef_impact_destroy: * @ptr: pointer to a #idmef_impact_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_impact_destroy(idmef_impact_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_impact_destroy_internal(ptr); free(ptr); } /** * idmef_impact_get_severity: * @ptr: pointer to a #idmef_impact_t object. * * Get severity children of the #idmef_impact_t object. * * Returns: a pointer to a idmef_impact_severity_t object, or NULL if the children object is not set. */ idmef_impact_severity_t *idmef_impact_get_severity(idmef_impact_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->severity_is_set ? &ptr->severity : NULL; } /** * idmef_impact_set_severity: * @ptr: pointer to a #idmef_impact_t object. * @severity: pointer to a #idmef_impact_severity_t object. * * Set @severity object as a children of @ptr. * if @ptr already contain an @severity object, then it is destroyed, * and updated to point to the provided @severity object. */ void idmef_impact_set_severity(idmef_impact_t *ptr, idmef_impact_severity_t severity) { prelude_return_if_fail(ptr); ptr->severity = severity; ptr->severity_is_set = 1; } void idmef_impact_unset_severity(idmef_impact_t *ptr) { prelude_return_if_fail(ptr); ptr->severity_is_set = 0; } /** * idmef_impact_new_severity: * @ptr: pointer to a #idmef_impact_t object. * @ret: pointer to an address where to store the created #idmef_impact_severity_t object. * * Create a new severity object, children of #idmef_impact_t. * If @ptr already contain a #idmef_impact_severity_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_impact_new_severity(idmef_impact_t *ptr, idmef_impact_severity_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->severity_is_set = 1; *ret = &ptr->severity; return 0; } /** * idmef_impact_get_completion: * @ptr: pointer to a #idmef_impact_t object. * * Get completion children of the #idmef_impact_t object. * * Returns: a pointer to a idmef_impact_completion_t object, or NULL if the children object is not set. */ idmef_impact_completion_t *idmef_impact_get_completion(idmef_impact_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->completion_is_set ? &ptr->completion : NULL; } /** * idmef_impact_set_completion: * @ptr: pointer to a #idmef_impact_t object. * @completion: pointer to a #idmef_impact_completion_t object. * * Set @completion object as a children of @ptr. * if @ptr already contain an @completion object, then it is destroyed, * and updated to point to the provided @completion object. */ void idmef_impact_set_completion(idmef_impact_t *ptr, idmef_impact_completion_t completion) { prelude_return_if_fail(ptr); ptr->completion = completion; ptr->completion_is_set = 1; } void idmef_impact_unset_completion(idmef_impact_t *ptr) { prelude_return_if_fail(ptr); ptr->completion_is_set = 0; } /** * idmef_impact_new_completion: * @ptr: pointer to a #idmef_impact_t object. * @ret: pointer to an address where to store the created #idmef_impact_completion_t object. * * Create a new completion object, children of #idmef_impact_t. * If @ptr already contain a #idmef_impact_completion_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_impact_new_completion(idmef_impact_t *ptr, idmef_impact_completion_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->completion_is_set = 1; *ret = &ptr->completion; return 0; } /** * idmef_impact_get_type: * @ptr: pointer to a #idmef_impact_t object. * * Get type children of the #idmef_impact_t object. * * Returns: a pointer to a idmef_impact_type_t object, or NULL if the children object is not set. */ idmef_impact_type_t idmef_impact_get_type(idmef_impact_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->type; } /** * idmef_impact_set_type: * @ptr: pointer to a #idmef_impact_t object. * @type: pointer to a #idmef_impact_type_t object. * * Set @type object as a children of @ptr. * if @ptr already contain an @type object, then it is destroyed, * and updated to point to the provided @type object. */ void idmef_impact_set_type(idmef_impact_t *ptr, idmef_impact_type_t type) { prelude_return_if_fail(ptr); ptr->type = type; } /** * idmef_impact_new_type: * @ptr: pointer to a #idmef_impact_t object. * @ret: pointer to an address where to store the created #idmef_impact_type_t object. * * Create a new type object, children of #idmef_impact_t. * If @ptr already contain a #idmef_impact_type_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_impact_new_type(idmef_impact_t *ptr, idmef_impact_type_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->type; return 0; } /** * idmef_impact_get_description: * @ptr: pointer to a #idmef_impact_t object. * * Get description children of the #idmef_impact_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_impact_get_description(idmef_impact_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->description; } /** * idmef_impact_set_description: * @ptr: pointer to a #idmef_impact_t object. * @description: pointer to a #prelude_string_t object. * * Set @description object as a children of @ptr. * if @ptr already contain an @description object, then it is destroyed, * and updated to point to the provided @description object. */ void idmef_impact_set_description(idmef_impact_t *ptr, prelude_string_t *description) { prelude_return_if_fail(ptr); if ( ptr->description ) prelude_string_destroy(ptr->description); ptr->description = description; } /** * idmef_impact_new_description: * @ptr: pointer to a #idmef_impact_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new description object, children of #idmef_impact_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_impact_new_description(idmef_impact_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->description ) { retval = prelude_string_new(&ptr->description); if ( retval < 0 ) return retval; } *ret = ptr->description; return 0; } /** * idmef_impact_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_impact_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_impact_copy(const idmef_impact_t *src, idmef_impact_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; dst->severity_is_set = src->severity_is_set; dst->severity = src->severity; dst->completion_is_set = src->completion_is_set; dst->completion = src->completion; dst->type = src->type; if ( dst->description ) { prelude_string_destroy(dst->description); dst->description = NULL; } if ( src->description ) { ret = prelude_string_clone(src->description, &dst->description); if ( ret < 0 ) return ret; } return 0; } /** * idmef_impact_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_impact_clone(idmef_impact_t *src, idmef_impact_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_impact_new(dst); if ( ret < 0 ) return ret; return idmef_impact_copy(src, *dst); } /** * idmef_impact_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_impact_compare(const idmef_impact_t *obj1, const idmef_impact_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; if ( obj1->severity_is_set != obj2->severity_is_set ) return -1; if ( obj1->severity_is_set && obj1->severity != obj2->severity ) return -1; if ( obj1->completion_is_set != obj2->completion_is_set ) return -1; if ( obj1->completion_is_set && obj1->completion != obj2->completion ) return -1; if ( obj1->type != obj2->type ) return -1; ret = prelude_string_compare(obj1->description, obj2->description); if ( ret != 0 ) return ret; return ret; } /** * idmef_action_new: * @ret: Pointer where to store the created #idmef_action_t object. * * Create a new #idmef_action_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_action_new(idmef_action_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_ACTION; prelude_list_init(&((prelude_linked_object_t *) (*ret))->_list); (*ret)->refcount = 1; return 0; } /** * idmef_action_ref: * @action: pointer to a #idmef_action_t object. * * Increase @action reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @action. */ idmef_action_t *idmef_action_ref(idmef_action_t *action) { prelude_return_val_if_fail(action, NULL); action->refcount++; return action; } int _idmef_action_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_action_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_ACTION_CATEGORY, ptr->category); case 1: return get_value_from_string((idmef_value_t **) childptr, ptr->description, TRUE); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_action_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_action_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_action_new_category(ptr, (idmef_action_category_t **) ret); case 1: return idmef_action_new_description(ptr, (prelude_string_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_action_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_action_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: ptr->category = 0; return 0; case 1: if ( ptr->description ) { prelude_string_destroy(ptr->description); ptr->description = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_action_destroy_internal(idmef_action_t *ptr) { prelude_return_if_fail(ptr); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *)ptr)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *)ptr)->_list); if ( ptr->description ) { prelude_string_destroy(ptr->description); ptr->description = NULL; } /* free() should be done by the caller */ } /** * idmef_action_destroy: * @ptr: pointer to a #idmef_action_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_action_destroy(idmef_action_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_action_destroy_internal(ptr); free(ptr); } /** * idmef_action_get_category: * @ptr: pointer to a #idmef_action_t object. * * Get category children of the #idmef_action_t object. * * Returns: a pointer to a idmef_action_category_t object, or NULL if the children object is not set. */ idmef_action_category_t idmef_action_get_category(idmef_action_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->category; } /** * idmef_action_set_category: * @ptr: pointer to a #idmef_action_t object. * @category: pointer to a #idmef_action_category_t object. * * Set @category object as a children of @ptr. * if @ptr already contain an @category object, then it is destroyed, * and updated to point to the provided @category object. */ void idmef_action_set_category(idmef_action_t *ptr, idmef_action_category_t category) { prelude_return_if_fail(ptr); ptr->category = category; } /** * idmef_action_new_category: * @ptr: pointer to a #idmef_action_t object. * @ret: pointer to an address where to store the created #idmef_action_category_t object. * * Create a new category object, children of #idmef_action_t. * If @ptr already contain a #idmef_action_category_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_action_new_category(idmef_action_t *ptr, idmef_action_category_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->category; return 0; } /** * idmef_action_get_description: * @ptr: pointer to a #idmef_action_t object. * * Get description children of the #idmef_action_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_action_get_description(idmef_action_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->description; } /** * idmef_action_set_description: * @ptr: pointer to a #idmef_action_t object. * @description: pointer to a #prelude_string_t object. * * Set @description object as a children of @ptr. * if @ptr already contain an @description object, then it is destroyed, * and updated to point to the provided @description object. */ void idmef_action_set_description(idmef_action_t *ptr, prelude_string_t *description) { prelude_return_if_fail(ptr); if ( ptr->description ) prelude_string_destroy(ptr->description); ptr->description = description; } /** * idmef_action_new_description: * @ptr: pointer to a #idmef_action_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new description object, children of #idmef_action_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_action_new_description(idmef_action_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->description ) { retval = prelude_string_new(&ptr->description); if ( retval < 0 ) return retval; } *ret = ptr->description; return 0; } /** * idmef_action_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_action_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_action_copy(const idmef_action_t *src, idmef_action_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; dst->category = src->category; if ( dst->description ) { prelude_string_destroy(dst->description); dst->description = NULL; } if ( src->description ) { ret = prelude_string_clone(src->description, &dst->description); if ( ret < 0 ) return ret; } return 0; } /** * idmef_action_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_action_clone(idmef_action_t *src, idmef_action_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_action_new(dst); if ( ret < 0 ) return ret; return idmef_action_copy(src, *dst); } /** * idmef_action_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_action_compare(const idmef_action_t *obj1, const idmef_action_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; if ( obj1->category != obj2->category ) return -1; ret = prelude_string_compare(obj1->description, obj2->description); if ( ret != 0 ) return ret; return ret; } /** * idmef_confidence_new: * @ret: Pointer where to store the created #idmef_confidence_t object. * * Create a new #idmef_confidence_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_confidence_new(idmef_confidence_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_CONFIDENCE; (*ret)->refcount = 1; return 0; } /** * idmef_confidence_ref: * @confidence: pointer to a #idmef_confidence_t object. * * Increase @confidence reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @confidence. */ idmef_confidence_t *idmef_confidence_ref(idmef_confidence_t *confidence) { prelude_return_val_if_fail(confidence, NULL); confidence->refcount++; return confidence; } int _idmef_confidence_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_confidence_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return idmef_value_new_enum_from_numeric((idmef_value_t **) childptr, IDMEF_CLASS_ID_CONFIDENCE_RATING, ptr->rating); case 1: return idmef_value_new_float((idmef_value_t **) childptr, ptr->confidence); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_confidence_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_confidence_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_confidence_new_rating(ptr, (idmef_confidence_rating_t **) ret); case 1: return idmef_confidence_new_confidence(ptr, (float **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_confidence_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_confidence_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: ptr->rating = 0; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_confidence_destroy_internal(idmef_confidence_t *ptr) { prelude_return_if_fail(ptr); /* free() should be done by the caller */ } /** * idmef_confidence_destroy: * @ptr: pointer to a #idmef_confidence_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_confidence_destroy(idmef_confidence_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_confidence_destroy_internal(ptr); free(ptr); } /** * idmef_confidence_get_rating: * @ptr: pointer to a #idmef_confidence_t object. * * Get rating children of the #idmef_confidence_t object. * * Returns: a pointer to a idmef_confidence_rating_t object, or NULL if the children object is not set. */ idmef_confidence_rating_t idmef_confidence_get_rating(idmef_confidence_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->rating; } /** * idmef_confidence_set_rating: * @ptr: pointer to a #idmef_confidence_t object. * @rating: pointer to a #idmef_confidence_rating_t object. * * Set @rating object as a children of @ptr. * if @ptr already contain an @rating object, then it is destroyed, * and updated to point to the provided @rating object. */ void idmef_confidence_set_rating(idmef_confidence_t *ptr, idmef_confidence_rating_t rating) { prelude_return_if_fail(ptr); ptr->rating = rating; } /** * idmef_confidence_new_rating: * @ptr: pointer to a #idmef_confidence_t object. * @ret: pointer to an address where to store the created #idmef_confidence_rating_t object. * * Create a new rating object, children of #idmef_confidence_t. * If @ptr already contain a #idmef_confidence_rating_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_confidence_new_rating(idmef_confidence_t *ptr, idmef_confidence_rating_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->rating; return 0; } /** * idmef_confidence_get_confidence: * @ptr: pointer to a #idmef_confidence_t object. * * Get confidence children of the #idmef_confidence_t object. * * Returns: a pointer to a float object, or NULL if the children object is not set. */ float idmef_confidence_get_confidence(idmef_confidence_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->confidence; } /** * idmef_confidence_set_confidence: * @ptr: pointer to a #idmef_confidence_t object. * @confidence: pointer to a #float object. * * Set @confidence object as a children of @ptr. * if @ptr already contain an @confidence object, then it is destroyed, * and updated to point to the provided @confidence object. */ void idmef_confidence_set_confidence(idmef_confidence_t *ptr, float confidence) { prelude_return_if_fail(ptr); ptr->confidence = confidence; } /** * idmef_confidence_new_confidence: * @ptr: pointer to a #idmef_confidence_t object. * @ret: pointer to an address where to store the created #float object. * * Create a new confidence object, children of #idmef_confidence_t. * If @ptr already contain a #float object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_confidence_new_confidence(idmef_confidence_t *ptr, float **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); *ret = &ptr->confidence; return 0; } /** * idmef_confidence_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_confidence_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_confidence_copy(const idmef_confidence_t *src, idmef_confidence_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; dst->rating = src->rating; dst->confidence = src->confidence; return 0; } /** * idmef_confidence_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_confidence_clone(idmef_confidence_t *src, idmef_confidence_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_confidence_new(dst); if ( ret < 0 ) return ret; return idmef_confidence_copy(src, *dst); } /** * idmef_confidence_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_confidence_compare(const idmef_confidence_t *obj1, const idmef_confidence_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; if ( obj1->rating != obj2->rating ) return -1; ret = float_compare(obj1->confidence, obj2->confidence); return ret; } /** * idmef_assessment_new: * @ret: Pointer where to store the created #idmef_assessment_t object. * * Create a new #idmef_assessment_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_assessment_new(idmef_assessment_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_ASSESSMENT; (*ret)->refcount = 1; prelude_list_init(&(*ret)->action_list); return 0; } /** * idmef_assessment_ref: * @assessment: pointer to a #idmef_assessment_t object. * * Increase @assessment reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @assessment. */ idmef_assessment_t *idmef_assessment_ref(idmef_assessment_t *assessment) { prelude_return_val_if_fail(assessment, NULL); assessment->refcount++; return assessment; } int _idmef_assessment_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_assessment_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: *childptr = ptr->impact; return 0; case 1: *childptr = &ptr->action_list; return 0; case 2: *childptr = ptr->confidence; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_assessment_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_assessment_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_assessment_new_impact(ptr, (idmef_impact_t **) ret); case 1: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_assessment_new_action(ptr, (idmef_action_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->action_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->action_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_assessment_new_action(ptr, (idmef_action_t **) ret, n); } case 2: return idmef_assessment_new_confidence(ptr, (idmef_confidence_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_assessment_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_assessment_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->impact ) { idmef_impact_destroy(ptr->impact); ptr->impact = NULL; } return 0; case 1: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->action_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_action_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->action_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_action_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } case 2: if ( ptr->confidence ) { idmef_confidence_destroy(ptr->confidence); ptr->confidence = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_assessment_destroy_internal(idmef_assessment_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->impact ) { idmef_impact_destroy(ptr->impact); ptr->impact = NULL; } { prelude_list_t *n, *tmp; idmef_action_t *entry; prelude_list_for_each_safe(&ptr->action_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_action_destroy(entry); } } if ( ptr->confidence ) { idmef_confidence_destroy(ptr->confidence); ptr->confidence = NULL; } /* free() should be done by the caller */ } /** * idmef_assessment_destroy: * @ptr: pointer to a #idmef_assessment_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_assessment_destroy(idmef_assessment_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_assessment_destroy_internal(ptr); free(ptr); } /** * idmef_assessment_get_impact: * @ptr: pointer to a #idmef_assessment_t object. * * Get impact children of the #idmef_assessment_t object. * * Returns: a pointer to a idmef_impact_t object, or NULL if the children object is not set. */ idmef_impact_t *idmef_assessment_get_impact(idmef_assessment_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->impact; } /** * idmef_assessment_set_impact: * @ptr: pointer to a #idmef_assessment_t object. * @impact: pointer to a #idmef_impact_t object. * * Set @impact object as a children of @ptr. * if @ptr already contain an @impact object, then it is destroyed, * and updated to point to the provided @impact object. */ void idmef_assessment_set_impact(idmef_assessment_t *ptr, idmef_impact_t *impact) { prelude_return_if_fail(ptr); if ( ptr->impact ) idmef_impact_destroy(ptr->impact); ptr->impact = impact; } /** * idmef_assessment_new_impact: * @ptr: pointer to a #idmef_assessment_t object. * @ret: pointer to an address where to store the created #idmef_impact_t object. * * Create a new impact object, children of #idmef_assessment_t. * If @ptr already contain a #idmef_impact_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_assessment_new_impact(idmef_assessment_t *ptr, idmef_impact_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->impact ) { retval = idmef_impact_new(&ptr->impact); if ( retval < 0 ) return retval; } *ret = ptr->impact; return 0; } /** * idmef_assessment_get_next_action: * @assessment: pointer to a #idmef_assessment_t object. * @action_cur: pointer to a #idmef_action_t object. * * Get the next #idmef_action_t object listed in @ptr. * When iterating over the idmef_action_t object listed in @ptr, * @object should be set to the latest returned #idmef_action_t object. * * Returns: the next #idmef_action_t in the list. */ idmef_action_t *idmef_assessment_get_next_action(idmef_assessment_t *assessment, idmef_action_t *action_cur) { prelude_list_t *tmp = (action_cur) ? &((prelude_linked_object_t *) action_cur)->_list : NULL; prelude_return_val_if_fail(assessment, NULL); prelude_list_for_each_continue(&assessment->action_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_assessment_set_action: * @ptr: pointer to a #idmef_assessment_t object. * @object: pointer to a #idmef_action_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_action_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_assessment_set_action(idmef_assessment_t *ptr, idmef_action_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->action_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_assessment_new_action: * @ptr: pointer to a #idmef_assessment_t object. * @ret: pointer to an address where to store the created #idmef_action_t object. * @pos: position in the list. * * Create a new #idmef_action_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_action_t object. The created #idmef_action_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_assessment_new_action(idmef_assessment_t *ptr, idmef_action_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_action_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->action_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_assessment_get_confidence: * @ptr: pointer to a #idmef_assessment_t object. * * Get confidence children of the #idmef_assessment_t object. * * Returns: a pointer to a idmef_confidence_t object, or NULL if the children object is not set. */ idmef_confidence_t *idmef_assessment_get_confidence(idmef_assessment_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->confidence; } /** * idmef_assessment_set_confidence: * @ptr: pointer to a #idmef_assessment_t object. * @confidence: pointer to a #idmef_confidence_t object. * * Set @confidence object as a children of @ptr. * if @ptr already contain an @confidence object, then it is destroyed, * and updated to point to the provided @confidence object. */ void idmef_assessment_set_confidence(idmef_assessment_t *ptr, idmef_confidence_t *confidence) { prelude_return_if_fail(ptr); if ( ptr->confidence ) idmef_confidence_destroy(ptr->confidence); ptr->confidence = confidence; } /** * idmef_assessment_new_confidence: * @ptr: pointer to a #idmef_assessment_t object. * @ret: pointer to an address where to store the created #idmef_confidence_t object. * * Create a new confidence object, children of #idmef_assessment_t. * If @ptr already contain a #idmef_confidence_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_assessment_new_confidence(idmef_assessment_t *ptr, idmef_confidence_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->confidence ) { retval = idmef_confidence_new(&ptr->confidence); if ( retval < 0 ) return retval; } *ret = ptr->confidence; return 0; } /** * idmef_assessment_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_assessment_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_assessment_copy(const idmef_assessment_t *src, idmef_assessment_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->impact ) { idmef_impact_destroy(dst->impact); dst->impact = NULL; } if ( src->impact ) { ret = idmef_impact_clone(src->impact, &dst->impact); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; idmef_action_t *entry, *new; prelude_list_for_each_safe(&dst->action_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_action_destroy(entry); } prelude_list_for_each_safe(&src->action_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_action_clone(entry, &new); prelude_list_add_tail(&dst->action_list, &((prelude_linked_object_t *) new)->_list); } } if ( dst->confidence ) { idmef_confidence_destroy(dst->confidence); dst->confidence = NULL; } if ( src->confidence ) { ret = idmef_confidence_clone(src->confidence, &dst->confidence); if ( ret < 0 ) return ret; } return 0; } /** * idmef_assessment_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_assessment_clone(idmef_assessment_t *src, idmef_assessment_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_assessment_new(dst); if ( ret < 0 ) return ret; return idmef_assessment_copy(src, *dst); } /** * idmef_assessment_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_assessment_compare(const idmef_assessment_t *obj1, const idmef_assessment_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = idmef_impact_compare(obj1->impact, obj2->impact); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; idmef_action_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->action_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->action_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_action_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } ret = idmef_confidence_compare(obj1->confidence, obj2->confidence); if ( ret != 0 ) return ret; return ret; } /** * idmef_tool_alert_new: * @ret: Pointer where to store the created #idmef_tool_alert_t object. * * Create a new #idmef_tool_alert_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_tool_alert_new(idmef_tool_alert_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_TOOL_ALERT; (*ret)->refcount = 1; prelude_list_init(&(*ret)->alertident_list); { int retval = prelude_string_new(&(*ret)->name); if ( retval < 0 ) { idmef_tool_alert_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_tool_alert_ref: * @tool_alert: pointer to a #idmef_tool_alert_t object. * * Increase @tool_alert reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @tool_alert. */ idmef_tool_alert_t *idmef_tool_alert_ref(idmef_tool_alert_t *tool_alert) { prelude_return_val_if_fail(tool_alert, NULL); tool_alert->refcount++; return tool_alert; } int _idmef_tool_alert_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_tool_alert_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->name, TRUE); case 1: return get_value_from_string((idmef_value_t **) childptr, ptr->command, TRUE); case 2: *childptr = &ptr->alertident_list; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_tool_alert_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_tool_alert_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_tool_alert_new_name(ptr, (prelude_string_t **) ret); case 1: return idmef_tool_alert_new_command(ptr, (prelude_string_t **) ret); case 2: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_tool_alert_new_alertident(ptr, (idmef_alertident_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->alertident_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->alertident_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_tool_alert_new_alertident(ptr, (idmef_alertident_t **) ret, n); } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_tool_alert_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_tool_alert_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } return 0; case 1: if ( ptr->command ) { prelude_string_destroy(ptr->command); ptr->command = NULL; } return 0; case 2: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->alertident_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_alertident_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->alertident_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_alertident_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_tool_alert_destroy_internal(idmef_tool_alert_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } if ( ptr->command ) { prelude_string_destroy(ptr->command); ptr->command = NULL; } { prelude_list_t *n, *tmp; idmef_alertident_t *entry; prelude_list_for_each_safe(&ptr->alertident_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_alertident_destroy(entry); } } /* free() should be done by the caller */ } /** * idmef_tool_alert_destroy: * @ptr: pointer to a #idmef_tool_alert_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_tool_alert_destroy(idmef_tool_alert_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_tool_alert_destroy_internal(ptr); free(ptr); } /** * idmef_tool_alert_get_name: * @ptr: pointer to a #idmef_tool_alert_t object. * * Get name children of the #idmef_tool_alert_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_tool_alert_get_name(idmef_tool_alert_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->name; } /** * idmef_tool_alert_set_name: * @ptr: pointer to a #idmef_tool_alert_t object. * @name: pointer to a #prelude_string_t object. * * Set @name object as a children of @ptr. * if @ptr already contain an @name object, then it is destroyed, * and updated to point to the provided @name object. */ void idmef_tool_alert_set_name(idmef_tool_alert_t *ptr, prelude_string_t *name) { prelude_return_if_fail(ptr); if ( ptr->name ) prelude_string_destroy(ptr->name); ptr->name = name; } /** * idmef_tool_alert_new_name: * @ptr: pointer to a #idmef_tool_alert_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new name object, children of #idmef_tool_alert_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_tool_alert_new_name(idmef_tool_alert_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->name ) { retval = prelude_string_new(&ptr->name); if ( retval < 0 ) return retval; } *ret = ptr->name; return 0; } /** * idmef_tool_alert_get_command: * @ptr: pointer to a #idmef_tool_alert_t object. * * Get command children of the #idmef_tool_alert_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_tool_alert_get_command(idmef_tool_alert_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->command; } /** * idmef_tool_alert_set_command: * @ptr: pointer to a #idmef_tool_alert_t object. * @command: pointer to a #prelude_string_t object. * * Set @command object as a children of @ptr. * if @ptr already contain an @command object, then it is destroyed, * and updated to point to the provided @command object. */ void idmef_tool_alert_set_command(idmef_tool_alert_t *ptr, prelude_string_t *command) { prelude_return_if_fail(ptr); if ( ptr->command ) prelude_string_destroy(ptr->command); ptr->command = command; } /** * idmef_tool_alert_new_command: * @ptr: pointer to a #idmef_tool_alert_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new command object, children of #idmef_tool_alert_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_tool_alert_new_command(idmef_tool_alert_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->command ) { retval = prelude_string_new(&ptr->command); if ( retval < 0 ) return retval; } *ret = ptr->command; return 0; } /** * idmef_tool_alert_get_next_alertident: * @tool_alert: pointer to a #idmef_tool_alert_t object. * @alertident_cur: pointer to a #idmef_alertident_t object. * * Get the next #idmef_alertident_t object listed in @ptr. * When iterating over the idmef_alertident_t object listed in @ptr, * @object should be set to the latest returned #idmef_alertident_t object. * * Returns: the next #idmef_alertident_t in the list. */ idmef_alertident_t *idmef_tool_alert_get_next_alertident(idmef_tool_alert_t *tool_alert, idmef_alertident_t *alertident_cur) { prelude_list_t *tmp = (alertident_cur) ? &((prelude_linked_object_t *) alertident_cur)->_list : NULL; prelude_return_val_if_fail(tool_alert, NULL); prelude_list_for_each_continue(&tool_alert->alertident_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_tool_alert_set_alertident: * @ptr: pointer to a #idmef_tool_alert_t object. * @object: pointer to a #idmef_alertident_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_alertident_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_tool_alert_set_alertident(idmef_tool_alert_t *ptr, idmef_alertident_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->alertident_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_tool_alert_new_alertident: * @ptr: pointer to a #idmef_tool_alert_t object. * @ret: pointer to an address where to store the created #idmef_alertident_t object. * @pos: position in the list. * * Create a new #idmef_alertident_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_alertident_t object. The created #idmef_alertident_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_tool_alert_new_alertident(idmef_tool_alert_t *ptr, idmef_alertident_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_alertident_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->alertident_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_tool_alert_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_tool_alert_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_tool_alert_copy(const idmef_tool_alert_t *src, idmef_tool_alert_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( src->name ) { ret = prelude_string_copy(src->name, dst->name); if ( ret < 0 ) return ret; } if ( dst->command ) { prelude_string_destroy(dst->command); dst->command = NULL; } if ( src->command ) { ret = prelude_string_clone(src->command, &dst->command); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; idmef_alertident_t *entry, *new; prelude_list_for_each_safe(&dst->alertident_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_alertident_destroy(entry); } prelude_list_for_each_safe(&src->alertident_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_alertident_clone(entry, &new); prelude_list_add_tail(&dst->alertident_list, &((prelude_linked_object_t *) new)->_list); } } return 0; } /** * idmef_tool_alert_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_tool_alert_clone(idmef_tool_alert_t *src, idmef_tool_alert_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_tool_alert_new(dst); if ( ret < 0 ) return ret; return idmef_tool_alert_copy(src, *dst); } /** * idmef_tool_alert_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_tool_alert_compare(const idmef_tool_alert_t *obj1, const idmef_tool_alert_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->name, obj2->name); if ( ret != 0 ) return ret; ret = prelude_string_compare(obj1->command, obj2->command); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; idmef_alertident_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->alertident_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->alertident_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_alertident_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } return ret; } /** * idmef_correlation_alert_new: * @ret: Pointer where to store the created #idmef_correlation_alert_t object. * * Create a new #idmef_correlation_alert_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_correlation_alert_new(idmef_correlation_alert_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_CORRELATION_ALERT; (*ret)->refcount = 1; prelude_list_init(&(*ret)->alertident_list); { int retval = prelude_string_new(&(*ret)->name); if ( retval < 0 ) { idmef_correlation_alert_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_correlation_alert_ref: * @correlation_alert: pointer to a #idmef_correlation_alert_t object. * * Increase @correlation_alert reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @correlation_alert. */ idmef_correlation_alert_t *idmef_correlation_alert_ref(idmef_correlation_alert_t *correlation_alert) { prelude_return_val_if_fail(correlation_alert, NULL); correlation_alert->refcount++; return correlation_alert; } int _idmef_correlation_alert_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_correlation_alert_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->name, TRUE); case 1: *childptr = &ptr->alertident_list; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_correlation_alert_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_correlation_alert_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_correlation_alert_new_name(ptr, (prelude_string_t **) ret); case 1: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_correlation_alert_new_alertident(ptr, (idmef_alertident_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->alertident_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->alertident_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_correlation_alert_new_alertident(ptr, (idmef_alertident_t **) ret, n); } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_correlation_alert_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_correlation_alert_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } return 0; case 1: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->alertident_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_alertident_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->alertident_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_alertident_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_correlation_alert_destroy_internal(idmef_correlation_alert_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->name ) { prelude_string_destroy(ptr->name); ptr->name = NULL; } { prelude_list_t *n, *tmp; idmef_alertident_t *entry; prelude_list_for_each_safe(&ptr->alertident_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_alertident_destroy(entry); } } /* free() should be done by the caller */ } /** * idmef_correlation_alert_destroy: * @ptr: pointer to a #idmef_correlation_alert_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_correlation_alert_destroy(idmef_correlation_alert_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_correlation_alert_destroy_internal(ptr); free(ptr); } /** * idmef_correlation_alert_get_name: * @ptr: pointer to a #idmef_correlation_alert_t object. * * Get name children of the #idmef_correlation_alert_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_correlation_alert_get_name(idmef_correlation_alert_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->name; } /** * idmef_correlation_alert_set_name: * @ptr: pointer to a #idmef_correlation_alert_t object. * @name: pointer to a #prelude_string_t object. * * Set @name object as a children of @ptr. * if @ptr already contain an @name object, then it is destroyed, * and updated to point to the provided @name object. */ void idmef_correlation_alert_set_name(idmef_correlation_alert_t *ptr, prelude_string_t *name) { prelude_return_if_fail(ptr); if ( ptr->name ) prelude_string_destroy(ptr->name); ptr->name = name; } /** * idmef_correlation_alert_new_name: * @ptr: pointer to a #idmef_correlation_alert_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new name object, children of #idmef_correlation_alert_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_correlation_alert_new_name(idmef_correlation_alert_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->name ) { retval = prelude_string_new(&ptr->name); if ( retval < 0 ) return retval; } *ret = ptr->name; return 0; } /** * idmef_correlation_alert_get_next_alertident: * @correlation_alert: pointer to a #idmef_correlation_alert_t object. * @alertident_cur: pointer to a #idmef_alertident_t object. * * Get the next #idmef_alertident_t object listed in @ptr. * When iterating over the idmef_alertident_t object listed in @ptr, * @object should be set to the latest returned #idmef_alertident_t object. * * Returns: the next #idmef_alertident_t in the list. */ idmef_alertident_t *idmef_correlation_alert_get_next_alertident(idmef_correlation_alert_t *correlation_alert, idmef_alertident_t *alertident_cur) { prelude_list_t *tmp = (alertident_cur) ? &((prelude_linked_object_t *) alertident_cur)->_list : NULL; prelude_return_val_if_fail(correlation_alert, NULL); prelude_list_for_each_continue(&correlation_alert->alertident_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_correlation_alert_set_alertident: * @ptr: pointer to a #idmef_correlation_alert_t object. * @object: pointer to a #idmef_alertident_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_alertident_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_correlation_alert_set_alertident(idmef_correlation_alert_t *ptr, idmef_alertident_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->alertident_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_correlation_alert_new_alertident: * @ptr: pointer to a #idmef_correlation_alert_t object. * @ret: pointer to an address where to store the created #idmef_alertident_t object. * @pos: position in the list. * * Create a new #idmef_alertident_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_alertident_t object. The created #idmef_alertident_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_correlation_alert_new_alertident(idmef_correlation_alert_t *ptr, idmef_alertident_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_alertident_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->alertident_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_correlation_alert_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_correlation_alert_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_correlation_alert_copy(const idmef_correlation_alert_t *src, idmef_correlation_alert_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( src->name ) { ret = prelude_string_copy(src->name, dst->name); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; idmef_alertident_t *entry, *new; prelude_list_for_each_safe(&dst->alertident_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_alertident_destroy(entry); } prelude_list_for_each_safe(&src->alertident_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_alertident_clone(entry, &new); prelude_list_add_tail(&dst->alertident_list, &((prelude_linked_object_t *) new)->_list); } } return 0; } /** * idmef_correlation_alert_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_correlation_alert_clone(idmef_correlation_alert_t *src, idmef_correlation_alert_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_correlation_alert_new(dst); if ( ret < 0 ) return ret; return idmef_correlation_alert_copy(src, *dst); } /** * idmef_correlation_alert_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_correlation_alert_compare(const idmef_correlation_alert_t *obj1, const idmef_correlation_alert_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->name, obj2->name); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; idmef_alertident_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->alertident_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->alertident_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_alertident_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } return ret; } /** * idmef_overflow_alert_new: * @ret: Pointer where to store the created #idmef_overflow_alert_t object. * * Create a new #idmef_overflow_alert_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_overflow_alert_new(idmef_overflow_alert_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_OVERFLOW_ALERT; (*ret)->refcount = 1; { int retval = prelude_string_new(&(*ret)->program); if ( retval < 0 ) { idmef_overflow_alert_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_overflow_alert_ref: * @overflow_alert: pointer to a #idmef_overflow_alert_t object. * * Increase @overflow_alert reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @overflow_alert. */ idmef_overflow_alert_t *idmef_overflow_alert_ref(idmef_overflow_alert_t *overflow_alert) { prelude_return_val_if_fail(overflow_alert, NULL); overflow_alert->refcount++; return overflow_alert; } int _idmef_overflow_alert_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_overflow_alert_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->program, TRUE); case 1: return (ptr->size_is_set) ? idmef_value_new_uint32((idmef_value_t **) childptr, ptr->size) : 0; case 2: return get_value_from_data((idmef_value_t **) childptr, ptr->buffer, TRUE); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_overflow_alert_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_overflow_alert_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_overflow_alert_new_program(ptr, (prelude_string_t **) ret); case 1: return idmef_overflow_alert_new_size(ptr, (uint32_t **) ret); case 2: return idmef_overflow_alert_new_buffer(ptr, (idmef_data_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_overflow_alert_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_overflow_alert_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->program ) { prelude_string_destroy(ptr->program); ptr->program = NULL; } return 0; case 1: ptr->size_is_set = 0; return 0; case 2: if ( ptr->buffer ) { idmef_data_destroy(ptr->buffer); ptr->buffer = NULL; } return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_overflow_alert_destroy_internal(idmef_overflow_alert_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->program ) { prelude_string_destroy(ptr->program); ptr->program = NULL; } if ( ptr->buffer ) { idmef_data_destroy(ptr->buffer); ptr->buffer = NULL; } /* free() should be done by the caller */ } /** * idmef_overflow_alert_destroy: * @ptr: pointer to a #idmef_overflow_alert_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_overflow_alert_destroy(idmef_overflow_alert_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_overflow_alert_destroy_internal(ptr); free(ptr); } /** * idmef_overflow_alert_get_program: * @ptr: pointer to a #idmef_overflow_alert_t object. * * Get program children of the #idmef_overflow_alert_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_overflow_alert_get_program(idmef_overflow_alert_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->program; } /** * idmef_overflow_alert_set_program: * @ptr: pointer to a #idmef_overflow_alert_t object. * @program: pointer to a #prelude_string_t object. * * Set @program object as a children of @ptr. * if @ptr already contain an @program object, then it is destroyed, * and updated to point to the provided @program object. */ void idmef_overflow_alert_set_program(idmef_overflow_alert_t *ptr, prelude_string_t *program) { prelude_return_if_fail(ptr); if ( ptr->program ) prelude_string_destroy(ptr->program); ptr->program = program; } /** * idmef_overflow_alert_new_program: * @ptr: pointer to a #idmef_overflow_alert_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new program object, children of #idmef_overflow_alert_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_overflow_alert_new_program(idmef_overflow_alert_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->program ) { retval = prelude_string_new(&ptr->program); if ( retval < 0 ) return retval; } *ret = ptr->program; return 0; } /** * idmef_overflow_alert_get_size: * @ptr: pointer to a #idmef_overflow_alert_t object. * * Get size children of the #idmef_overflow_alert_t object. * * Returns: a pointer to a uint32_t object, or NULL if the children object is not set. */ uint32_t *idmef_overflow_alert_get_size(idmef_overflow_alert_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->size_is_set ? &ptr->size : NULL; } /** * idmef_overflow_alert_set_size: * @ptr: pointer to a #idmef_overflow_alert_t object. * @size: pointer to a #uint32_t object. * * Set @size object as a children of @ptr. * if @ptr already contain an @size object, then it is destroyed, * and updated to point to the provided @size object. */ void idmef_overflow_alert_set_size(idmef_overflow_alert_t *ptr, uint32_t size) { prelude_return_if_fail(ptr); ptr->size = size; ptr->size_is_set = 1; } void idmef_overflow_alert_unset_size(idmef_overflow_alert_t *ptr) { prelude_return_if_fail(ptr); ptr->size_is_set = 0; } /** * idmef_overflow_alert_new_size: * @ptr: pointer to a #idmef_overflow_alert_t object. * @ret: pointer to an address where to store the created #uint32_t object. * * Create a new size object, children of #idmef_overflow_alert_t. * If @ptr already contain a #uint32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_overflow_alert_new_size(idmef_overflow_alert_t *ptr, uint32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->size_is_set = 1; *ret = &ptr->size; return 0; } /** * idmef_overflow_alert_get_buffer: * @ptr: pointer to a #idmef_overflow_alert_t object. * * Get buffer children of the #idmef_overflow_alert_t object. * * Returns: a pointer to a idmef_data_t object, or NULL if the children object is not set. */ idmef_data_t *idmef_overflow_alert_get_buffer(idmef_overflow_alert_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->buffer; } /** * idmef_overflow_alert_set_buffer: * @ptr: pointer to a #idmef_overflow_alert_t object. * @buffer: pointer to a #idmef_data_t object. * * Set @buffer object as a children of @ptr. * if @ptr already contain an @buffer object, then it is destroyed, * and updated to point to the provided @buffer object. */ void idmef_overflow_alert_set_buffer(idmef_overflow_alert_t *ptr, idmef_data_t *buffer) { prelude_return_if_fail(ptr); if ( ptr->buffer ) idmef_data_destroy(ptr->buffer); ptr->buffer = buffer; } /** * idmef_overflow_alert_new_buffer: * @ptr: pointer to a #idmef_overflow_alert_t object. * @ret: pointer to an address where to store the created #idmef_data_t object. * * Create a new buffer object, children of #idmef_overflow_alert_t. * If @ptr already contain a #idmef_data_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_overflow_alert_new_buffer(idmef_overflow_alert_t *ptr, idmef_data_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->buffer ) { retval = idmef_data_new(&ptr->buffer); if ( retval < 0 ) return retval; } *ret = ptr->buffer; return 0; } /** * idmef_overflow_alert_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_overflow_alert_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_overflow_alert_copy(const idmef_overflow_alert_t *src, idmef_overflow_alert_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( src->program ) { ret = prelude_string_copy(src->program, dst->program); if ( ret < 0 ) return ret; } dst->size_is_set = src->size_is_set; dst->size = src->size; if ( dst->buffer ) { idmef_data_destroy(dst->buffer); dst->buffer = NULL; } if ( src->buffer ) { ret = idmef_data_clone(src->buffer, &dst->buffer); if ( ret < 0 ) return ret; } return 0; } /** * idmef_overflow_alert_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_overflow_alert_clone(idmef_overflow_alert_t *src, idmef_overflow_alert_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_overflow_alert_new(dst); if ( ret < 0 ) return ret; return idmef_overflow_alert_copy(src, *dst); } /** * idmef_overflow_alert_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_overflow_alert_compare(const idmef_overflow_alert_t *obj1, const idmef_overflow_alert_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->program, obj2->program); if ( ret != 0 ) return ret; if ( obj1->size_is_set != obj2->size_is_set ) return -1; if ( obj1->size_is_set && obj1->size != obj2->size ) return -1; ret = idmef_data_compare(obj1->buffer, obj2->buffer); if ( ret != 0 ) return ret; return ret; } /** * idmef_alert_new: * @ret: Pointer where to store the created #idmef_alert_t object. * * Create a new #idmef_alert_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_alert_new(idmef_alert_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_ALERT; (*ret)->refcount = 1; prelude_list_init(&(*ret)->analyzer_list); prelude_list_init(&(*ret)->source_list); prelude_list_init(&(*ret)->target_list); prelude_list_init(&(*ret)->additional_data_list); { int retval = idmef_time_new(&(*ret)->create_time); if ( retval < 0 ) { idmef_alert_destroy(*ret); *ret = NULL; return retval; } } idmef_time_set_from_gettimeofday((*ret)->create_time); { int retval = idmef_classification_new(&(*ret)->classification); if ( retval < 0 ) { idmef_alert_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_alert_ref: * @alert: pointer to a #idmef_alert_t object. * * Increase @alert reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @alert. */ idmef_alert_t *idmef_alert_ref(idmef_alert_t *alert) { prelude_return_val_if_fail(alert, NULL); alert->refcount++; return alert; } int _idmef_alert_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_alert_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->messageid, TRUE); case 1: *childptr = &ptr->analyzer_list; return 0; case 2: return get_value_from_time((idmef_value_t **) childptr, ptr->create_time, TRUE); case 3: *childptr = ptr->classification; return 0; case 4: return get_value_from_time((idmef_value_t **) childptr, ptr->detect_time, TRUE); case 5: return get_value_from_time((idmef_value_t **) childptr, ptr->analyzer_time, TRUE); case 6: *childptr = &ptr->source_list; return 0; case 7: *childptr = &ptr->target_list; return 0; case 8: *childptr = ptr->assessment; return 0; case 9: *childptr = &ptr->additional_data_list; return 0; case 10: *childptr = ( ptr->type == IDMEF_ALERT_TYPE_TOOL ) ? ptr->detail.tool_alert : NULL; return 0; case 11: *childptr = ( ptr->type == IDMEF_ALERT_TYPE_CORRELATION ) ? ptr->detail.correlation_alert : NULL; return 0; case 12: *childptr = ( ptr->type == IDMEF_ALERT_TYPE_OVERFLOW ) ? ptr->detail.overflow_alert : NULL; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_alert_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_alert_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_alert_new_messageid(ptr, (prelude_string_t **) ret); case 1: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_alert_new_analyzer(ptr, (idmef_analyzer_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->analyzer_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->analyzer_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_alert_new_analyzer(ptr, (idmef_analyzer_t **) ret, n); } case 2: return idmef_alert_new_create_time(ptr, (idmef_time_t **) ret); case 3: return idmef_alert_new_classification(ptr, (idmef_classification_t **) ret); case 4: return idmef_alert_new_detect_time(ptr, (idmef_time_t **) ret); case 5: return idmef_alert_new_analyzer_time(ptr, (idmef_time_t **) ret); case 6: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_alert_new_source(ptr, (idmef_source_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->source_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->source_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_alert_new_source(ptr, (idmef_source_t **) ret, n); } case 7: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_alert_new_target(ptr, (idmef_target_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->target_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->target_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_alert_new_target(ptr, (idmef_target_t **) ret, n); } case 8: return idmef_alert_new_assessment(ptr, (idmef_assessment_t **) ret); case 9: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_alert_new_additional_data(ptr, (idmef_additional_data_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->additional_data_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->additional_data_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_alert_new_additional_data(ptr, (idmef_additional_data_t **) ret, n); } case 10: return idmef_alert_new_tool_alert(ptr, (idmef_tool_alert_t **) ret); case 11: return idmef_alert_new_correlation_alert(ptr, (idmef_correlation_alert_t **) ret); case 12: return idmef_alert_new_overflow_alert(ptr, (idmef_overflow_alert_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_alert_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_alert_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->messageid ) { prelude_string_destroy(ptr->messageid); ptr->messageid = NULL; } return 0; case 1: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->analyzer_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_analyzer_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->analyzer_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_analyzer_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } case 2: if ( ptr->create_time ) { idmef_time_destroy(ptr->create_time); ptr->create_time = NULL; } return 0; case 3: if ( ptr->classification ) { idmef_classification_destroy(ptr->classification); ptr->classification = NULL; } return 0; case 4: if ( ptr->detect_time ) { idmef_time_destroy(ptr->detect_time); ptr->detect_time = NULL; } return 0; case 5: if ( ptr->analyzer_time ) { idmef_time_destroy(ptr->analyzer_time); ptr->analyzer_time = NULL; } return 0; case 6: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->source_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_source_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->source_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_source_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } case 7: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->target_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_target_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->target_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_target_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } case 8: if ( ptr->assessment ) { idmef_assessment_destroy(ptr->assessment); ptr->assessment = NULL; } return 0; case 9: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->additional_data_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_additional_data_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->additional_data_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_additional_data_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } case 10: if ( ptr->type != IDMEF_ALERT_TYPE_TOOL ) return 0; idmef_tool_alert_destroy(ptr->detail.tool_alert); ptr->detail.tool_alert = NULL; ptr->type = 0; return 0; case 11: if ( ptr->type != IDMEF_ALERT_TYPE_CORRELATION ) return 0; idmef_correlation_alert_destroy(ptr->detail.correlation_alert); ptr->detail.correlation_alert = NULL; ptr->type = 0; return 0; case 12: if ( ptr->type != IDMEF_ALERT_TYPE_OVERFLOW ) return 0; idmef_overflow_alert_destroy(ptr->detail.overflow_alert); ptr->detail.overflow_alert = NULL; ptr->type = 0; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_alert_destroy_internal(idmef_alert_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->messageid ) { prelude_string_destroy(ptr->messageid); ptr->messageid = NULL; } { prelude_list_t *n, *tmp; idmef_analyzer_t *entry; prelude_list_for_each_safe(&ptr->analyzer_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_analyzer_destroy(entry); } } if ( ptr->create_time ) { idmef_time_destroy(ptr->create_time); ptr->create_time = NULL; } if ( ptr->classification ) { idmef_classification_destroy(ptr->classification); ptr->classification = NULL; } if ( ptr->detect_time ) { idmef_time_destroy(ptr->detect_time); ptr->detect_time = NULL; } if ( ptr->analyzer_time ) { idmef_time_destroy(ptr->analyzer_time); ptr->analyzer_time = NULL; } { prelude_list_t *n, *tmp; idmef_source_t *entry; prelude_list_for_each_safe(&ptr->source_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_source_destroy(entry); } } { prelude_list_t *n, *tmp; idmef_target_t *entry; prelude_list_for_each_safe(&ptr->target_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_target_destroy(entry); } } if ( ptr->assessment ) { idmef_assessment_destroy(ptr->assessment); ptr->assessment = NULL; } { prelude_list_t *n, *tmp; idmef_additional_data_t *entry; prelude_list_for_each_safe(&ptr->additional_data_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_additional_data_destroy(entry); } } switch ( ptr->type ) { case IDMEF_ALERT_TYPE_TOOL: idmef_tool_alert_destroy(ptr->detail.tool_alert); ptr->detail.tool_alert = NULL; break; case IDMEF_ALERT_TYPE_CORRELATION: idmef_correlation_alert_destroy(ptr->detail.correlation_alert); ptr->detail.correlation_alert = NULL; break; case IDMEF_ALERT_TYPE_OVERFLOW: idmef_overflow_alert_destroy(ptr->detail.overflow_alert); ptr->detail.overflow_alert = NULL; break; default: break; } /* free() should be done by the caller */ } /** * idmef_alert_destroy: * @ptr: pointer to a #idmef_alert_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_alert_destroy(idmef_alert_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_alert_destroy_internal(ptr); free(ptr); } /** * idmef_alert_get_messageid: * @ptr: pointer to a #idmef_alert_t object. * * Get messageid children of the #idmef_alert_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_alert_get_messageid(idmef_alert_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->messageid; } /** * idmef_alert_set_messageid: * @ptr: pointer to a #idmef_alert_t object. * @messageid: pointer to a #prelude_string_t object. * * Set @messageid object as a children of @ptr. * if @ptr already contain an @messageid object, then it is destroyed, * and updated to point to the provided @messageid object. */ void idmef_alert_set_messageid(idmef_alert_t *ptr, prelude_string_t *messageid) { prelude_return_if_fail(ptr); if ( ptr->messageid ) prelude_string_destroy(ptr->messageid); ptr->messageid = messageid; } /** * idmef_alert_new_messageid: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new messageid object, children of #idmef_alert_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_messageid(idmef_alert_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->messageid ) { retval = prelude_string_new(&ptr->messageid); if ( retval < 0 ) return retval; } *ret = ptr->messageid; return 0; } /** * idmef_alert_get_next_analyzer: * @alert: pointer to a #idmef_alert_t object. * @analyzer_cur: pointer to a #idmef_analyzer_t object. * * Get the next #idmef_analyzer_t object listed in @ptr. * When iterating over the idmef_analyzer_t object listed in @ptr, * @object should be set to the latest returned #idmef_analyzer_t object. * * Returns: the next #idmef_analyzer_t in the list. */ idmef_analyzer_t *idmef_alert_get_next_analyzer(idmef_alert_t *alert, idmef_analyzer_t *analyzer_cur) { prelude_list_t *tmp = (analyzer_cur) ? &((prelude_linked_object_t *) analyzer_cur)->_list : NULL; prelude_return_val_if_fail(alert, NULL); prelude_list_for_each_continue(&alert->analyzer_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_alert_set_analyzer: * @ptr: pointer to a #idmef_alert_t object. * @object: pointer to a #idmef_analyzer_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_analyzer_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_alert_set_analyzer(idmef_alert_t *ptr, idmef_analyzer_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->analyzer_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_alert_new_analyzer: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer to an address where to store the created #idmef_analyzer_t object. * @pos: position in the list. * * Create a new #idmef_analyzer_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_analyzer_t object. The created #idmef_analyzer_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_analyzer(idmef_alert_t *ptr, idmef_analyzer_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_analyzer_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->analyzer_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_alert_get_create_time: * @ptr: pointer to a #idmef_alert_t object. * * Get create_time children of the #idmef_alert_t object. * * Returns: a pointer to a idmef_time_t object, or NULL if the children object is not set. */ idmef_time_t *idmef_alert_get_create_time(idmef_alert_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->create_time; } /** * idmef_alert_set_create_time: * @ptr: pointer to a #idmef_alert_t object. * @create_time: pointer to a #idmef_time_t object. * * Set @create_time object as a children of @ptr. * if @ptr already contain an @create_time object, then it is destroyed, * and updated to point to the provided @create_time object. */ void idmef_alert_set_create_time(idmef_alert_t *ptr, idmef_time_t *create_time) { prelude_return_if_fail(ptr); if ( ptr->create_time ) idmef_time_destroy(ptr->create_time); ptr->create_time = create_time; } /** * idmef_alert_new_create_time: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer to an address where to store the created #idmef_time_t object. * * Create a new create_time object, children of #idmef_alert_t. * If @ptr already contain a #idmef_time_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_create_time(idmef_alert_t *ptr, idmef_time_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->create_time ) { retval = idmef_time_new(&ptr->create_time); if ( retval < 0 ) return retval; } *ret = ptr->create_time; return 0; } /** * idmef_alert_get_classification: * @ptr: pointer to a #idmef_alert_t object. * * Get classification children of the #idmef_alert_t object. * * Returns: a pointer to a idmef_classification_t object, or NULL if the children object is not set. */ idmef_classification_t *idmef_alert_get_classification(idmef_alert_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->classification; } /** * idmef_alert_set_classification: * @ptr: pointer to a #idmef_alert_t object. * @classification: pointer to a #idmef_classification_t object. * * Set @classification object as a children of @ptr. * if @ptr already contain an @classification object, then it is destroyed, * and updated to point to the provided @classification object. */ void idmef_alert_set_classification(idmef_alert_t *ptr, idmef_classification_t *classification) { prelude_return_if_fail(ptr); if ( ptr->classification ) idmef_classification_destroy(ptr->classification); ptr->classification = classification; } /** * idmef_alert_new_classification: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer to an address where to store the created #idmef_classification_t object. * * Create a new classification object, children of #idmef_alert_t. * If @ptr already contain a #idmef_classification_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_classification(idmef_alert_t *ptr, idmef_classification_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->classification ) { retval = idmef_classification_new(&ptr->classification); if ( retval < 0 ) return retval; } *ret = ptr->classification; return 0; } /** * idmef_alert_get_detect_time: * @ptr: pointer to a #idmef_alert_t object. * * Get detect_time children of the #idmef_alert_t object. * * Returns: a pointer to a idmef_time_t object, or NULL if the children object is not set. */ idmef_time_t *idmef_alert_get_detect_time(idmef_alert_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->detect_time; } /** * idmef_alert_set_detect_time: * @ptr: pointer to a #idmef_alert_t object. * @detect_time: pointer to a #idmef_time_t object. * * Set @detect_time object as a children of @ptr. * if @ptr already contain an @detect_time object, then it is destroyed, * and updated to point to the provided @detect_time object. */ void idmef_alert_set_detect_time(idmef_alert_t *ptr, idmef_time_t *detect_time) { prelude_return_if_fail(ptr); if ( ptr->detect_time ) idmef_time_destroy(ptr->detect_time); ptr->detect_time = detect_time; } /** * idmef_alert_new_detect_time: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer to an address where to store the created #idmef_time_t object. * * Create a new detect_time object, children of #idmef_alert_t. * If @ptr already contain a #idmef_time_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_detect_time(idmef_alert_t *ptr, idmef_time_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->detect_time ) { retval = idmef_time_new(&ptr->detect_time); if ( retval < 0 ) return retval; } *ret = ptr->detect_time; return 0; } /** * idmef_alert_get_analyzer_time: * @ptr: pointer to a #idmef_alert_t object. * * Get analyzer_time children of the #idmef_alert_t object. * * Returns: a pointer to a idmef_time_t object, or NULL if the children object is not set. */ idmef_time_t *idmef_alert_get_analyzer_time(idmef_alert_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->analyzer_time; } /** * idmef_alert_set_analyzer_time: * @ptr: pointer to a #idmef_alert_t object. * @analyzer_time: pointer to a #idmef_time_t object. * * Set @analyzer_time object as a children of @ptr. * if @ptr already contain an @analyzer_time object, then it is destroyed, * and updated to point to the provided @analyzer_time object. */ void idmef_alert_set_analyzer_time(idmef_alert_t *ptr, idmef_time_t *analyzer_time) { prelude_return_if_fail(ptr); if ( ptr->analyzer_time ) idmef_time_destroy(ptr->analyzer_time); ptr->analyzer_time = analyzer_time; } /** * idmef_alert_new_analyzer_time: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer to an address where to store the created #idmef_time_t object. * * Create a new analyzer_time object, children of #idmef_alert_t. * If @ptr already contain a #idmef_time_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_analyzer_time(idmef_alert_t *ptr, idmef_time_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->analyzer_time ) { retval = idmef_time_new(&ptr->analyzer_time); if ( retval < 0 ) return retval; } *ret = ptr->analyzer_time; return 0; } /** * idmef_alert_get_next_source: * @alert: pointer to a #idmef_alert_t object. * @source_cur: pointer to a #idmef_source_t object. * * Get the next #idmef_source_t object listed in @ptr. * When iterating over the idmef_source_t object listed in @ptr, * @object should be set to the latest returned #idmef_source_t object. * * Returns: the next #idmef_source_t in the list. */ idmef_source_t *idmef_alert_get_next_source(idmef_alert_t *alert, idmef_source_t *source_cur) { prelude_list_t *tmp = (source_cur) ? &((prelude_linked_object_t *) source_cur)->_list : NULL; prelude_return_val_if_fail(alert, NULL); prelude_list_for_each_continue(&alert->source_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_alert_set_source: * @ptr: pointer to a #idmef_alert_t object. * @object: pointer to a #idmef_source_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_source_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_alert_set_source(idmef_alert_t *ptr, idmef_source_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->source_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_alert_new_source: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer to an address where to store the created #idmef_source_t object. * @pos: position in the list. * * Create a new #idmef_source_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_source_t object. The created #idmef_source_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_source(idmef_alert_t *ptr, idmef_source_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_source_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->source_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_alert_get_next_target: * @alert: pointer to a #idmef_alert_t object. * @target_cur: pointer to a #idmef_target_t object. * * Get the next #idmef_target_t object listed in @ptr. * When iterating over the idmef_target_t object listed in @ptr, * @object should be set to the latest returned #idmef_target_t object. * * Returns: the next #idmef_target_t in the list. */ idmef_target_t *idmef_alert_get_next_target(idmef_alert_t *alert, idmef_target_t *target_cur) { prelude_list_t *tmp = (target_cur) ? &((prelude_linked_object_t *) target_cur)->_list : NULL; prelude_return_val_if_fail(alert, NULL); prelude_list_for_each_continue(&alert->target_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_alert_set_target: * @ptr: pointer to a #idmef_alert_t object. * @object: pointer to a #idmef_target_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_target_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_alert_set_target(idmef_alert_t *ptr, idmef_target_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->target_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_alert_new_target: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer to an address where to store the created #idmef_target_t object. * @pos: position in the list. * * Create a new #idmef_target_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_target_t object. The created #idmef_target_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_target(idmef_alert_t *ptr, idmef_target_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_target_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->target_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_alert_get_assessment: * @ptr: pointer to a #idmef_alert_t object. * * Get assessment children of the #idmef_alert_t object. * * Returns: a pointer to a idmef_assessment_t object, or NULL if the children object is not set. */ idmef_assessment_t *idmef_alert_get_assessment(idmef_alert_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->assessment; } /** * idmef_alert_set_assessment: * @ptr: pointer to a #idmef_alert_t object. * @assessment: pointer to a #idmef_assessment_t object. * * Set @assessment object as a children of @ptr. * if @ptr already contain an @assessment object, then it is destroyed, * and updated to point to the provided @assessment object. */ void idmef_alert_set_assessment(idmef_alert_t *ptr, idmef_assessment_t *assessment) { prelude_return_if_fail(ptr); if ( ptr->assessment ) idmef_assessment_destroy(ptr->assessment); ptr->assessment = assessment; } /** * idmef_alert_new_assessment: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer to an address where to store the created #idmef_assessment_t object. * * Create a new assessment object, children of #idmef_alert_t. * If @ptr already contain a #idmef_assessment_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_assessment(idmef_alert_t *ptr, idmef_assessment_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->assessment ) { retval = idmef_assessment_new(&ptr->assessment); if ( retval < 0 ) return retval; } *ret = ptr->assessment; return 0; } /** * idmef_alert_get_next_additional_data: * @alert: pointer to a #idmef_alert_t object. * @additional_data_cur: pointer to a #idmef_additional_data_t object. * * Get the next #idmef_additional_data_t object listed in @ptr. * When iterating over the idmef_additional_data_t object listed in @ptr, * @object should be set to the latest returned #idmef_additional_data_t object. * * Returns: the next #idmef_additional_data_t in the list. */ idmef_additional_data_t *idmef_alert_get_next_additional_data(idmef_alert_t *alert, idmef_additional_data_t *additional_data_cur) { prelude_list_t *tmp = (additional_data_cur) ? &((prelude_linked_object_t *) additional_data_cur)->_list : NULL; prelude_return_val_if_fail(alert, NULL); prelude_list_for_each_continue(&alert->additional_data_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_alert_set_additional_data: * @ptr: pointer to a #idmef_alert_t object. * @object: pointer to a #idmef_additional_data_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_additional_data_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_alert_set_additional_data(idmef_alert_t *ptr, idmef_additional_data_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->additional_data_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_alert_new_additional_data: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer to an address where to store the created #idmef_additional_data_t object. * @pos: position in the list. * * Create a new #idmef_additional_data_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_additional_data_t object. The created #idmef_additional_data_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_additional_data(idmef_alert_t *ptr, idmef_additional_data_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_additional_data_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->additional_data_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_alert_get_type: * @ptr: pointer to a #idmef_alert_t object. * * Access the type children of @ptr. * * Returns: a pointer to the #idmef_alert_type_t children, or NULL if it is not set. */ idmef_alert_type_t idmef_alert_get_type(idmef_alert_t *ptr) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); return ptr->type; } /** * idmef_alert_get_tool_alert: * @ptr: pointer to a #idmef_alert_t object. * * Access the tool_alert children of @ptr. * * Returns: a pointer to the #idmef_tool_alert_t children, or NULL if it is not set. */ idmef_tool_alert_t *idmef_alert_get_tool_alert(idmef_alert_t *ptr) { prelude_return_val_if_fail(ptr, NULL); return (ptr->type == IDMEF_ALERT_TYPE_TOOL) ? ptr->detail.tool_alert : NULL; } /** * idmef_alert_set_tool_alert: * @ptr: pointer to a #idmef_alert_t object. * @tool_alert: pointer to a #idmef_tool_alert_t object. * * Set @tool_alert object as a children of @ptr. * if @ptr already contain a @tool_alert object, then it is destroyed, * and updated to point to the provided @tool_alert object. */ void idmef_alert_set_tool_alert(idmef_alert_t *ptr, idmef_tool_alert_t *tool_alert) { prelude_return_if_fail(ptr); switch ( ptr->type ) { case IDMEF_ALERT_TYPE_TOOL: idmef_tool_alert_destroy(ptr->detail.tool_alert); break; case IDMEF_ALERT_TYPE_CORRELATION: idmef_correlation_alert_destroy(ptr->detail.correlation_alert); break; case IDMEF_ALERT_TYPE_OVERFLOW: idmef_overflow_alert_destroy(ptr->detail.overflow_alert); break; default: break; } ptr->detail.tool_alert = tool_alert; ptr->type = (tool_alert) ? IDMEF_ALERT_TYPE_TOOL : 0; } /** * idmef_alert_new_tool_alert: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer where to store the created #idmef_tool_alert_t object. * * Create a new idmef_tool_alert_t object, children of #idmef_alert_t. * If @ptr already contain a #idmef_tool_alert_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_tool_alert(idmef_alert_t *ptr, idmef_tool_alert_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( ptr->type ) { case IDMEF_ALERT_TYPE_TOOL: *ret = ptr->detail.tool_alert; return 0; case IDMEF_ALERT_TYPE_CORRELATION: idmef_correlation_alert_destroy(ptr->detail.correlation_alert); break; case IDMEF_ALERT_TYPE_OVERFLOW: idmef_overflow_alert_destroy(ptr->detail.overflow_alert); break; default: break; } retval = idmef_tool_alert_new(ret); if ( retval < 0 ) return retval; ptr->type = IDMEF_ALERT_TYPE_TOOL; ptr->detail.tool_alert = *ret; return 0; } /** * idmef_alert_get_correlation_alert: * @ptr: pointer to a #idmef_alert_t object. * * Access the correlation_alert children of @ptr. * * Returns: a pointer to the #idmef_correlation_alert_t children, or NULL if it is not set. */ idmef_correlation_alert_t *idmef_alert_get_correlation_alert(idmef_alert_t *ptr) { prelude_return_val_if_fail(ptr, NULL); return (ptr->type == IDMEF_ALERT_TYPE_CORRELATION) ? ptr->detail.correlation_alert : NULL; } /** * idmef_alert_set_correlation_alert: * @ptr: pointer to a #idmef_alert_t object. * @correlation_alert: pointer to a #idmef_correlation_alert_t object. * * Set @correlation_alert object as a children of @ptr. * if @ptr already contain a @correlation_alert object, then it is destroyed, * and updated to point to the provided @correlation_alert object. */ void idmef_alert_set_correlation_alert(idmef_alert_t *ptr, idmef_correlation_alert_t *correlation_alert) { prelude_return_if_fail(ptr); switch ( ptr->type ) { case IDMEF_ALERT_TYPE_TOOL: idmef_tool_alert_destroy(ptr->detail.tool_alert); break; case IDMEF_ALERT_TYPE_CORRELATION: idmef_correlation_alert_destroy(ptr->detail.correlation_alert); break; case IDMEF_ALERT_TYPE_OVERFLOW: idmef_overflow_alert_destroy(ptr->detail.overflow_alert); break; default: break; } ptr->detail.correlation_alert = correlation_alert; ptr->type = (correlation_alert) ? IDMEF_ALERT_TYPE_CORRELATION : 0; } /** * idmef_alert_new_correlation_alert: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer where to store the created #idmef_correlation_alert_t object. * * Create a new idmef_correlation_alert_t object, children of #idmef_alert_t. * If @ptr already contain a #idmef_correlation_alert_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_correlation_alert(idmef_alert_t *ptr, idmef_correlation_alert_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( ptr->type ) { case IDMEF_ALERT_TYPE_TOOL: idmef_tool_alert_destroy(ptr->detail.tool_alert); break; case IDMEF_ALERT_TYPE_CORRELATION: *ret = ptr->detail.correlation_alert; return 0; case IDMEF_ALERT_TYPE_OVERFLOW: idmef_overflow_alert_destroy(ptr->detail.overflow_alert); break; default: break; } retval = idmef_correlation_alert_new(ret); if ( retval < 0 ) return retval; ptr->type = IDMEF_ALERT_TYPE_CORRELATION; ptr->detail.correlation_alert = *ret; return 0; } /** * idmef_alert_get_overflow_alert: * @ptr: pointer to a #idmef_alert_t object. * * Access the overflow_alert children of @ptr. * * Returns: a pointer to the #idmef_overflow_alert_t children, or NULL if it is not set. */ idmef_overflow_alert_t *idmef_alert_get_overflow_alert(idmef_alert_t *ptr) { prelude_return_val_if_fail(ptr, NULL); return (ptr->type == IDMEF_ALERT_TYPE_OVERFLOW) ? ptr->detail.overflow_alert : NULL; } /** * idmef_alert_set_overflow_alert: * @ptr: pointer to a #idmef_alert_t object. * @overflow_alert: pointer to a #idmef_overflow_alert_t object. * * Set @overflow_alert object as a children of @ptr. * if @ptr already contain a @overflow_alert object, then it is destroyed, * and updated to point to the provided @overflow_alert object. */ void idmef_alert_set_overflow_alert(idmef_alert_t *ptr, idmef_overflow_alert_t *overflow_alert) { prelude_return_if_fail(ptr); switch ( ptr->type ) { case IDMEF_ALERT_TYPE_TOOL: idmef_tool_alert_destroy(ptr->detail.tool_alert); break; case IDMEF_ALERT_TYPE_CORRELATION: idmef_correlation_alert_destroy(ptr->detail.correlation_alert); break; case IDMEF_ALERT_TYPE_OVERFLOW: idmef_overflow_alert_destroy(ptr->detail.overflow_alert); break; default: break; } ptr->detail.overflow_alert = overflow_alert; ptr->type = (overflow_alert) ? IDMEF_ALERT_TYPE_OVERFLOW : 0; } /** * idmef_alert_new_overflow_alert: * @ptr: pointer to a #idmef_alert_t object. * @ret: pointer where to store the created #idmef_overflow_alert_t object. * * Create a new idmef_overflow_alert_t object, children of #idmef_alert_t. * If @ptr already contain a #idmef_overflow_alert_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_alert_new_overflow_alert(idmef_alert_t *ptr, idmef_overflow_alert_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( ptr->type ) { case IDMEF_ALERT_TYPE_TOOL: idmef_tool_alert_destroy(ptr->detail.tool_alert); break; case IDMEF_ALERT_TYPE_CORRELATION: idmef_correlation_alert_destroy(ptr->detail.correlation_alert); break; case IDMEF_ALERT_TYPE_OVERFLOW: *ret = ptr->detail.overflow_alert; return 0; default: break; } retval = idmef_overflow_alert_new(ret); if ( retval < 0 ) return retval; ptr->type = IDMEF_ALERT_TYPE_OVERFLOW; ptr->detail.overflow_alert = *ret; return 0; } /** * idmef_alert_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_alert_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_alert_copy(const idmef_alert_t *src, idmef_alert_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->messageid ) { prelude_string_destroy(dst->messageid); dst->messageid = NULL; } if ( src->messageid ) { ret = prelude_string_clone(src->messageid, &dst->messageid); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; idmef_analyzer_t *entry, *new; prelude_list_for_each_safe(&dst->analyzer_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_analyzer_destroy(entry); } prelude_list_for_each_safe(&src->analyzer_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_analyzer_clone(entry, &new); prelude_list_add_tail(&dst->analyzer_list, &((prelude_linked_object_t *) new)->_list); } } if ( src->create_time ) { ret = idmef_time_copy(src->create_time, dst->create_time); if ( ret < 0 ) return ret; } if ( src->classification ) { ret = idmef_classification_copy(src->classification, dst->classification); if ( ret < 0 ) return ret; } if ( dst->detect_time ) { idmef_time_destroy(dst->detect_time); dst->detect_time = NULL; } if ( src->detect_time ) { ret = idmef_time_clone(src->detect_time, &dst->detect_time); if ( ret < 0 ) return ret; } if ( dst->analyzer_time ) { idmef_time_destroy(dst->analyzer_time); dst->analyzer_time = NULL; } if ( src->analyzer_time ) { ret = idmef_time_clone(src->analyzer_time, &dst->analyzer_time); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; idmef_source_t *entry, *new; prelude_list_for_each_safe(&dst->source_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_source_destroy(entry); } prelude_list_for_each_safe(&src->source_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_source_clone(entry, &new); prelude_list_add_tail(&dst->source_list, &((prelude_linked_object_t *) new)->_list); } } { prelude_list_t *n, *tmp; idmef_target_t *entry, *new; prelude_list_for_each_safe(&dst->target_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_target_destroy(entry); } prelude_list_for_each_safe(&src->target_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_target_clone(entry, &new); prelude_list_add_tail(&dst->target_list, &((prelude_linked_object_t *) new)->_list); } } if ( dst->assessment ) { idmef_assessment_destroy(dst->assessment); dst->assessment = NULL; } if ( src->assessment ) { ret = idmef_assessment_clone(src->assessment, &dst->assessment); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; idmef_additional_data_t *entry, *new; prelude_list_for_each_safe(&dst->additional_data_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_additional_data_destroy(entry); } prelude_list_for_each_safe(&src->additional_data_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_additional_data_clone(entry, &new); prelude_list_add_tail(&dst->additional_data_list, &((prelude_linked_object_t *) new)->_list); } } switch ( dst->type ) { case IDMEF_ALERT_TYPE_TOOL: idmef_tool_alert_destroy(dst->detail.tool_alert); break; case IDMEF_ALERT_TYPE_CORRELATION: idmef_correlation_alert_destroy(dst->detail.correlation_alert); break; case IDMEF_ALERT_TYPE_OVERFLOW: idmef_overflow_alert_destroy(dst->detail.overflow_alert); break; default: break; } switch ( src->type ) { case IDMEF_ALERT_TYPE_TOOL: ret = idmef_tool_alert_clone(src->detail.tool_alert, &dst->detail.tool_alert); break; case IDMEF_ALERT_TYPE_CORRELATION: ret = idmef_correlation_alert_clone(src->detail.correlation_alert, &dst->detail.correlation_alert); break; case IDMEF_ALERT_TYPE_OVERFLOW: ret = idmef_overflow_alert_clone(src->detail.overflow_alert, &dst->detail.overflow_alert); break; default: break; } if ( ret < 0 ) return ret; dst->type = src->type; return 0; } /** * idmef_alert_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_alert_clone(idmef_alert_t *src, idmef_alert_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_alert_new(dst); if ( ret < 0 ) return ret; return idmef_alert_copy(src, *dst); } /** * idmef_alert_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_alert_compare(const idmef_alert_t *obj1, const idmef_alert_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->messageid, obj2->messageid); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; idmef_analyzer_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->analyzer_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->analyzer_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_analyzer_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } ret = idmef_time_compare(obj1->create_time, obj2->create_time); if ( ret != 0 ) return ret; ret = idmef_classification_compare(obj1->classification, obj2->classification); if ( ret != 0 ) return ret; ret = idmef_time_compare(obj1->detect_time, obj2->detect_time); if ( ret != 0 ) return ret; ret = idmef_time_compare(obj1->analyzer_time, obj2->analyzer_time); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; idmef_source_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->source_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->source_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_source_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } { prelude_list_t *tmp1, *tmp2; idmef_target_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->target_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->target_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_target_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } ret = idmef_assessment_compare(obj1->assessment, obj2->assessment); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; idmef_additional_data_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->additional_data_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->additional_data_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_additional_data_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } if ( obj1->type != obj2->type ) return -1; switch ( obj1->type ) { case IDMEF_ALERT_TYPE_TOOL: ret = idmef_tool_alert_compare(obj1->detail.tool_alert, obj2->detail.tool_alert); break; case IDMEF_ALERT_TYPE_CORRELATION: ret = idmef_correlation_alert_compare(obj1->detail.correlation_alert, obj2->detail.correlation_alert); break; case IDMEF_ALERT_TYPE_OVERFLOW: ret = idmef_overflow_alert_compare(obj1->detail.overflow_alert, obj2->detail.overflow_alert); break; default: break; } return ret; } /** * idmef_heartbeat_new: * @ret: Pointer where to store the created #idmef_heartbeat_t object. * * Create a new #idmef_heartbeat_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_heartbeat_new(idmef_heartbeat_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_HEARTBEAT; (*ret)->refcount = 1; prelude_list_init(&(*ret)->analyzer_list); prelude_list_init(&(*ret)->additional_data_list); { int retval = idmef_time_new(&(*ret)->create_time); if ( retval < 0 ) { idmef_heartbeat_destroy(*ret); *ret = NULL; return retval; } } idmef_time_set_from_gettimeofday((*ret)->create_time); return 0; } /** * idmef_heartbeat_ref: * @heartbeat: pointer to a #idmef_heartbeat_t object. * * Increase @heartbeat reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @heartbeat. */ idmef_heartbeat_t *idmef_heartbeat_ref(idmef_heartbeat_t *heartbeat) { prelude_return_val_if_fail(heartbeat, NULL); heartbeat->refcount++; return heartbeat; } int _idmef_heartbeat_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_heartbeat_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->messageid, TRUE); case 1: *childptr = &ptr->analyzer_list; return 0; case 2: return get_value_from_time((idmef_value_t **) childptr, ptr->create_time, TRUE); case 3: return get_value_from_time((idmef_value_t **) childptr, ptr->analyzer_time, TRUE); case 4: return (ptr->heartbeat_interval_is_set) ? idmef_value_new_uint32((idmef_value_t **) childptr, ptr->heartbeat_interval) : 0; case 5: *childptr = &ptr->additional_data_list; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_heartbeat_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_heartbeat_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_heartbeat_new_messageid(ptr, (prelude_string_t **) ret); case 1: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_heartbeat_new_analyzer(ptr, (idmef_analyzer_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->analyzer_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->analyzer_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_heartbeat_new_analyzer(ptr, (idmef_analyzer_t **) ret, n); } case 2: return idmef_heartbeat_new_create_time(ptr, (idmef_time_t **) ret); case 3: return idmef_heartbeat_new_analyzer_time(ptr, (idmef_time_t **) ret); case 4: return idmef_heartbeat_new_heartbeat_interval(ptr, (uint32_t **) ret); case 5: { int i = 0; prelude_list_t *tmp; if ( n == IDMEF_LIST_APPEND || n == IDMEF_LIST_PREPEND ) return idmef_heartbeat_new_additional_data(ptr, (idmef_additional_data_t **) ret, n); if ( n >= 0 ) { prelude_list_for_each(&ptr->additional_data_list, tmp) { if ( i++ == n ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->additional_data_list, tmp) { if ( i++ == pos ) { *ret = prelude_linked_object_get_object(tmp); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } return idmef_heartbeat_new_additional_data(ptr, (idmef_additional_data_t **) ret, n); } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_heartbeat_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_heartbeat_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->messageid ) { prelude_string_destroy(ptr->messageid); ptr->messageid = NULL; } return 0; case 1: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->analyzer_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_analyzer_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->analyzer_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_analyzer_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } case 2: if ( ptr->create_time ) { idmef_time_destroy(ptr->create_time); ptr->create_time = NULL; } return 0; case 3: if ( ptr->analyzer_time ) { idmef_time_destroy(ptr->analyzer_time); ptr->analyzer_time = NULL; } return 0; case 4: ptr->heartbeat_interval_is_set = 0; return 0; case 5: { int i = 0; prelude_list_t *tmp; if ( n >= 0 ) { prelude_list_for_each(&ptr->additional_data_list, tmp) { if ( i++ == n ) { void *b = prelude_linked_object_get_object(tmp); idmef_additional_data_destroy(b); return 0; } } if ( i != n ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } else { int pos = (-n) - 1; /* With negative value, -1 is the base, translate to 0 */ prelude_list_for_each_reversed(&ptr->additional_data_list, tmp) { if ( i++ == pos ) { void *b = prelude_linked_object_get_object(tmp); idmef_additional_data_destroy(b); return 0; } } if ( i != pos ) return prelude_error(PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED); } } default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_heartbeat_destroy_internal(idmef_heartbeat_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->messageid ) { prelude_string_destroy(ptr->messageid); ptr->messageid = NULL; } { prelude_list_t *n, *tmp; idmef_analyzer_t *entry; prelude_list_for_each_safe(&ptr->analyzer_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_analyzer_destroy(entry); } } if ( ptr->create_time ) { idmef_time_destroy(ptr->create_time); ptr->create_time = NULL; } if ( ptr->analyzer_time ) { idmef_time_destroy(ptr->analyzer_time); ptr->analyzer_time = NULL; } { prelude_list_t *n, *tmp; idmef_additional_data_t *entry; prelude_list_for_each_safe(&ptr->additional_data_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); prelude_list_del_init(tmp); idmef_additional_data_destroy(entry); } } /* free() should be done by the caller */ } /** * idmef_heartbeat_destroy: * @ptr: pointer to a #idmef_heartbeat_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_heartbeat_destroy(idmef_heartbeat_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_heartbeat_destroy_internal(ptr); free(ptr); } /** * idmef_heartbeat_get_messageid: * @ptr: pointer to a #idmef_heartbeat_t object. * * Get messageid children of the #idmef_heartbeat_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_heartbeat_get_messageid(idmef_heartbeat_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->messageid; } /** * idmef_heartbeat_set_messageid: * @ptr: pointer to a #idmef_heartbeat_t object. * @messageid: pointer to a #prelude_string_t object. * * Set @messageid object as a children of @ptr. * if @ptr already contain an @messageid object, then it is destroyed, * and updated to point to the provided @messageid object. */ void idmef_heartbeat_set_messageid(idmef_heartbeat_t *ptr, prelude_string_t *messageid) { prelude_return_if_fail(ptr); if ( ptr->messageid ) prelude_string_destroy(ptr->messageid); ptr->messageid = messageid; } /** * idmef_heartbeat_new_messageid: * @ptr: pointer to a #idmef_heartbeat_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new messageid object, children of #idmef_heartbeat_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_heartbeat_new_messageid(idmef_heartbeat_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->messageid ) { retval = prelude_string_new(&ptr->messageid); if ( retval < 0 ) return retval; } *ret = ptr->messageid; return 0; } /** * idmef_heartbeat_get_next_analyzer: * @heartbeat: pointer to a #idmef_heartbeat_t object. * @analyzer_cur: pointer to a #idmef_analyzer_t object. * * Get the next #idmef_analyzer_t object listed in @ptr. * When iterating over the idmef_analyzer_t object listed in @ptr, * @object should be set to the latest returned #idmef_analyzer_t object. * * Returns: the next #idmef_analyzer_t in the list. */ idmef_analyzer_t *idmef_heartbeat_get_next_analyzer(idmef_heartbeat_t *heartbeat, idmef_analyzer_t *analyzer_cur) { prelude_list_t *tmp = (analyzer_cur) ? &((prelude_linked_object_t *) analyzer_cur)->_list : NULL; prelude_return_val_if_fail(heartbeat, NULL); prelude_list_for_each_continue(&heartbeat->analyzer_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_heartbeat_set_analyzer: * @ptr: pointer to a #idmef_heartbeat_t object. * @object: pointer to a #idmef_analyzer_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_analyzer_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_heartbeat_set_analyzer(idmef_heartbeat_t *ptr, idmef_analyzer_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->analyzer_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_heartbeat_new_analyzer: * @ptr: pointer to a #idmef_heartbeat_t object. * @ret: pointer to an address where to store the created #idmef_analyzer_t object. * @pos: position in the list. * * Create a new #idmef_analyzer_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_analyzer_t object. The created #idmef_analyzer_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_heartbeat_new_analyzer(idmef_heartbeat_t *ptr, idmef_analyzer_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_analyzer_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->analyzer_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_heartbeat_get_create_time: * @ptr: pointer to a #idmef_heartbeat_t object. * * Get create_time children of the #idmef_heartbeat_t object. * * Returns: a pointer to a idmef_time_t object, or NULL if the children object is not set. */ idmef_time_t *idmef_heartbeat_get_create_time(idmef_heartbeat_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->create_time; } /** * idmef_heartbeat_set_create_time: * @ptr: pointer to a #idmef_heartbeat_t object. * @create_time: pointer to a #idmef_time_t object. * * Set @create_time object as a children of @ptr. * if @ptr already contain an @create_time object, then it is destroyed, * and updated to point to the provided @create_time object. */ void idmef_heartbeat_set_create_time(idmef_heartbeat_t *ptr, idmef_time_t *create_time) { prelude_return_if_fail(ptr); if ( ptr->create_time ) idmef_time_destroy(ptr->create_time); ptr->create_time = create_time; } /** * idmef_heartbeat_new_create_time: * @ptr: pointer to a #idmef_heartbeat_t object. * @ret: pointer to an address where to store the created #idmef_time_t object. * * Create a new create_time object, children of #idmef_heartbeat_t. * If @ptr already contain a #idmef_time_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_heartbeat_new_create_time(idmef_heartbeat_t *ptr, idmef_time_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->create_time ) { retval = idmef_time_new(&ptr->create_time); if ( retval < 0 ) return retval; } *ret = ptr->create_time; return 0; } /** * idmef_heartbeat_get_analyzer_time: * @ptr: pointer to a #idmef_heartbeat_t object. * * Get analyzer_time children of the #idmef_heartbeat_t object. * * Returns: a pointer to a idmef_time_t object, or NULL if the children object is not set. */ idmef_time_t *idmef_heartbeat_get_analyzer_time(idmef_heartbeat_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->analyzer_time; } /** * idmef_heartbeat_set_analyzer_time: * @ptr: pointer to a #idmef_heartbeat_t object. * @analyzer_time: pointer to a #idmef_time_t object. * * Set @analyzer_time object as a children of @ptr. * if @ptr already contain an @analyzer_time object, then it is destroyed, * and updated to point to the provided @analyzer_time object. */ void idmef_heartbeat_set_analyzer_time(idmef_heartbeat_t *ptr, idmef_time_t *analyzer_time) { prelude_return_if_fail(ptr); if ( ptr->analyzer_time ) idmef_time_destroy(ptr->analyzer_time); ptr->analyzer_time = analyzer_time; } /** * idmef_heartbeat_new_analyzer_time: * @ptr: pointer to a #idmef_heartbeat_t object. * @ret: pointer to an address where to store the created #idmef_time_t object. * * Create a new analyzer_time object, children of #idmef_heartbeat_t. * If @ptr already contain a #idmef_time_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_heartbeat_new_analyzer_time(idmef_heartbeat_t *ptr, idmef_time_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->analyzer_time ) { retval = idmef_time_new(&ptr->analyzer_time); if ( retval < 0 ) return retval; } *ret = ptr->analyzer_time; return 0; } /** * idmef_heartbeat_get_heartbeat_interval: * @ptr: pointer to a #idmef_heartbeat_t object. * * Get heartbeat_interval children of the #idmef_heartbeat_t object. * * Returns: a pointer to a uint32_t object, or NULL if the children object is not set. */ uint32_t *idmef_heartbeat_get_heartbeat_interval(idmef_heartbeat_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->heartbeat_interval_is_set ? &ptr->heartbeat_interval : NULL; } /** * idmef_heartbeat_set_heartbeat_interval: * @ptr: pointer to a #idmef_heartbeat_t object. * @heartbeat_interval: pointer to a #uint32_t object. * * Set @heartbeat_interval object as a children of @ptr. * if @ptr already contain an @heartbeat_interval object, then it is destroyed, * and updated to point to the provided @heartbeat_interval object. */ void idmef_heartbeat_set_heartbeat_interval(idmef_heartbeat_t *ptr, uint32_t heartbeat_interval) { prelude_return_if_fail(ptr); ptr->heartbeat_interval = heartbeat_interval; ptr->heartbeat_interval_is_set = 1; } void idmef_heartbeat_unset_heartbeat_interval(idmef_heartbeat_t *ptr) { prelude_return_if_fail(ptr); ptr->heartbeat_interval_is_set = 0; } /** * idmef_heartbeat_new_heartbeat_interval: * @ptr: pointer to a #idmef_heartbeat_t object. * @ret: pointer to an address where to store the created #uint32_t object. * * Create a new heartbeat_interval object, children of #idmef_heartbeat_t. * If @ptr already contain a #uint32_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_heartbeat_new_heartbeat_interval(idmef_heartbeat_t *ptr, uint32_t **ret) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ptr->heartbeat_interval_is_set = 1; *ret = &ptr->heartbeat_interval; return 0; } /** * idmef_heartbeat_get_next_additional_data: * @heartbeat: pointer to a #idmef_heartbeat_t object. * @additional_data_cur: pointer to a #idmef_additional_data_t object. * * Get the next #idmef_additional_data_t object listed in @ptr. * When iterating over the idmef_additional_data_t object listed in @ptr, * @object should be set to the latest returned #idmef_additional_data_t object. * * Returns: the next #idmef_additional_data_t in the list. */ idmef_additional_data_t *idmef_heartbeat_get_next_additional_data(idmef_heartbeat_t *heartbeat, idmef_additional_data_t *additional_data_cur) { prelude_list_t *tmp = (additional_data_cur) ? &((prelude_linked_object_t *) additional_data_cur)->_list : NULL; prelude_return_val_if_fail(heartbeat, NULL); prelude_list_for_each_continue(&heartbeat->additional_data_list, tmp) return prelude_linked_object_get_object(tmp); return NULL; } /** * idmef_heartbeat_set_additional_data: * @ptr: pointer to a #idmef_heartbeat_t object. * @object: pointer to a #idmef_additional_data_t object. * @pos: Position in the list. * * Add @object to position @pos of @ptr list of #idmef_additional_data_t object. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. */ void idmef_heartbeat_set_additional_data(idmef_heartbeat_t *ptr, idmef_additional_data_t *object, int pos) { prelude_return_if_fail(ptr); prelude_return_if_fail(object); if ( ! prelude_list_is_empty(&((prelude_linked_object_t *) object)->_list) ) prelude_list_del_init(&((prelude_linked_object_t *) object)->_list); list_insert(&ptr->additional_data_list, &((prelude_linked_object_t *) object)->_list, pos); } /** * idmef_heartbeat_new_additional_data: * @ptr: pointer to a #idmef_heartbeat_t object. * @ret: pointer to an address where to store the created #idmef_additional_data_t object. * @pos: position in the list. * * Create a new #idmef_additional_data_t children of @ptr, and add it to position @pos of * @ptr list of #idmef_additional_data_t object. The created #idmef_additional_data_t object is * stored in @ret. * * If @pos is #IDMEF_LIST_APPEND, @object will be inserted at the tail of the list. * If @pos is #IDMEF_LIST_PREPEND, @object will be inserted at the head of the list. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_heartbeat_new_additional_data(idmef_heartbeat_t *ptr, idmef_additional_data_t **ret, int pos) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); retval = idmef_additional_data_new(ret); if ( retval < 0 ) return retval; list_insert(&ptr->additional_data_list, &((prelude_linked_object_t *)(*ret))->_list, pos); return 0; } /** * idmef_heartbeat_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_heartbeat_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_heartbeat_copy(const idmef_heartbeat_t *src, idmef_heartbeat_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( dst->messageid ) { prelude_string_destroy(dst->messageid); dst->messageid = NULL; } if ( src->messageid ) { ret = prelude_string_clone(src->messageid, &dst->messageid); if ( ret < 0 ) return ret; } { prelude_list_t *n, *tmp; idmef_analyzer_t *entry, *new; prelude_list_for_each_safe(&dst->analyzer_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_analyzer_destroy(entry); } prelude_list_for_each_safe(&src->analyzer_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_analyzer_clone(entry, &new); prelude_list_add_tail(&dst->analyzer_list, &((prelude_linked_object_t *) new)->_list); } } if ( src->create_time ) { ret = idmef_time_copy(src->create_time, dst->create_time); if ( ret < 0 ) return ret; } if ( dst->analyzer_time ) { idmef_time_destroy(dst->analyzer_time); dst->analyzer_time = NULL; } if ( src->analyzer_time ) { ret = idmef_time_clone(src->analyzer_time, &dst->analyzer_time); if ( ret < 0 ) return ret; } dst->heartbeat_interval_is_set = src->heartbeat_interval_is_set; dst->heartbeat_interval = src->heartbeat_interval; { prelude_list_t *n, *tmp; idmef_additional_data_t *entry, *new; prelude_list_for_each_safe(&dst->additional_data_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_additional_data_destroy(entry); } prelude_list_for_each_safe(&src->additional_data_list, tmp, n) { entry = prelude_linked_object_get_object(tmp); idmef_additional_data_clone(entry, &new); prelude_list_add_tail(&dst->additional_data_list, &((prelude_linked_object_t *) new)->_list); } } return 0; } /** * idmef_heartbeat_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_heartbeat_clone(idmef_heartbeat_t *src, idmef_heartbeat_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_heartbeat_new(dst); if ( ret < 0 ) return ret; return idmef_heartbeat_copy(src, *dst); } /** * idmef_heartbeat_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_heartbeat_compare(const idmef_heartbeat_t *obj1, const idmef_heartbeat_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->messageid, obj2->messageid); if ( ret != 0 ) return ret; { prelude_list_t *tmp1, *tmp2; idmef_analyzer_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->analyzer_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->analyzer_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_analyzer_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } ret = idmef_time_compare(obj1->create_time, obj2->create_time); if ( ret != 0 ) return ret; ret = idmef_time_compare(obj1->analyzer_time, obj2->analyzer_time); if ( ret != 0 ) return ret; if ( obj1->heartbeat_interval_is_set != obj2->heartbeat_interval_is_set ) return -1; if ( obj1->heartbeat_interval_is_set && obj1->heartbeat_interval != obj2->heartbeat_interval ) return -1; { prelude_list_t *tmp1, *tmp2; idmef_additional_data_t *entry1, *entry2; tmp1 = tmp2 = NULL; do { entry1 = entry2 = NULL; prelude_list_for_each_continue(&obj1->additional_data_list, tmp1) { entry1 = prelude_linked_object_get_object(tmp1); break; } prelude_list_for_each_continue(&obj2->additional_data_list, tmp2) { entry2 = prelude_linked_object_get_object(tmp2); break; } ret = idmef_additional_data_compare(entry1, entry2); if ( ret != 0 ) return ret; } while ( entry1 && entry2 ); } return ret; } /** * idmef_message_new: * @ret: Pointer where to store the created #idmef_message_t object. * * Create a new #idmef_message_t object. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_message_new(idmef_message_t **ret) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->_idmef_object_id = IDMEF_CLASS_ID_MESSAGE; (*ret)->refcount = 1; { int retval = prelude_string_new(&(*ret)->version); if ( retval < 0 ) { idmef_message_destroy(*ret); *ret = NULL; return retval; } } return 0; } /** * idmef_message_ref: * @message: pointer to a #idmef_message_t object. * * Increase @message reference count, so that it can be referenced * multiple time. * * Returns: a pointer to @message. */ idmef_message_t *idmef_message_ref(idmef_message_t *message) { prelude_return_val_if_fail(message, NULL); message->refcount++; return message; } int _idmef_message_get_child(void *p, idmef_class_child_id_t child, void **childptr) { idmef_message_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); *childptr = NULL; switch ( child ) { case 0: return get_value_from_string((idmef_value_t **) childptr, ptr->version, TRUE); case 1: *childptr = ( ptr->type == IDMEF_MESSAGE_TYPE_ALERT ) ? ptr->message.alert : NULL; return 0; case 2: *childptr = ( ptr->type == IDMEF_MESSAGE_TYPE_HEARTBEAT ) ? ptr->message.heartbeat : NULL; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_message_new_child(void *p, idmef_class_child_id_t child, int n, void **ret) { idmef_message_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: return idmef_message_new_version(ptr, (prelude_string_t **) ret); case 1: return idmef_message_new_alert(ptr, (idmef_alert_t **) ret); case 2: return idmef_message_new_heartbeat(ptr, (idmef_heartbeat_t **) ret); default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } int _idmef_message_destroy_child(void *p, idmef_class_child_id_t child, int n) { idmef_message_t *ptr = p; prelude_return_val_if_fail(p, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( child ) { case 0: if ( ptr->version ) { prelude_string_destroy(ptr->version); ptr->version = NULL; } return 0; case 1: if ( ptr->type != IDMEF_MESSAGE_TYPE_ALERT ) return 0; idmef_alert_destroy(ptr->message.alert); ptr->message.alert = NULL; ptr->type = 0; return 0; case 2: if ( ptr->type != IDMEF_MESSAGE_TYPE_HEARTBEAT ) return 0; idmef_heartbeat_destroy(ptr->message.heartbeat); ptr->message.heartbeat = NULL; ptr->type = 0; return 0; default: return prelude_error(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD); } } static void idmef_message_destroy_internal(idmef_message_t *ptr) { prelude_return_if_fail(ptr); if ( ptr->version ) { prelude_string_destroy(ptr->version); ptr->version = NULL; } switch ( ptr->type ) { case IDMEF_MESSAGE_TYPE_ALERT: idmef_alert_destroy(ptr->message.alert); ptr->message.alert = NULL; break; case IDMEF_MESSAGE_TYPE_HEARTBEAT: idmef_heartbeat_destroy(ptr->message.heartbeat); ptr->message.heartbeat = NULL; break; default: break; } /* free() should be done by the caller */ } /** * idmef_message_get_version: * @ptr: pointer to a #idmef_message_t object. * * Get version children of the #idmef_message_t object. * * Returns: a pointer to a prelude_string_t object, or NULL if the children object is not set. */ prelude_string_t *idmef_message_get_version(idmef_message_t *ptr) { prelude_return_val_if_fail(ptr, 0); /* FIXME */ return ptr->version; } /** * idmef_message_set_version: * @ptr: pointer to a #idmef_message_t object. * @version: pointer to a #prelude_string_t object. * * Set @version object as a children of @ptr. * if @ptr already contain an @version object, then it is destroyed, * and updated to point to the provided @version object. */ void idmef_message_set_version(idmef_message_t *ptr, prelude_string_t *version) { prelude_return_if_fail(ptr); if ( ptr->version ) prelude_string_destroy(ptr->version); ptr->version = version; } /** * idmef_message_new_version: * @ptr: pointer to a #idmef_message_t object. * @ret: pointer to an address where to store the created #prelude_string_t object. * * Create a new version object, children of #idmef_message_t. * If @ptr already contain a #prelude_string_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_message_new_version(idmef_message_t *ptr, prelude_string_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! ptr->version ) { retval = prelude_string_new(&ptr->version); if ( retval < 0 ) return retval; } *ret = ptr->version; return 0; } /** * idmef_message_get_type: * @ptr: pointer to a #idmef_message_t object. * * Access the type children of @ptr. * * Returns: a pointer to the #idmef_message_type_t children, or NULL if it is not set. */ idmef_message_type_t idmef_message_get_type(idmef_message_t *ptr) { prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); return ptr->type; } /** * idmef_message_get_alert: * @ptr: pointer to a #idmef_message_t object. * * Access the alert children of @ptr. * * Returns: a pointer to the #idmef_alert_t children, or NULL if it is not set. */ idmef_alert_t *idmef_message_get_alert(idmef_message_t *ptr) { prelude_return_val_if_fail(ptr, NULL); return (ptr->type == IDMEF_MESSAGE_TYPE_ALERT) ? ptr->message.alert : NULL; } /** * idmef_message_set_alert: * @ptr: pointer to a #idmef_message_t object. * @alert: pointer to a #idmef_alert_t object. * * Set @alert object as a children of @ptr. * if @ptr already contain a @alert object, then it is destroyed, * and updated to point to the provided @alert object. */ void idmef_message_set_alert(idmef_message_t *ptr, idmef_alert_t *alert) { prelude_return_if_fail(ptr); switch ( ptr->type ) { case IDMEF_MESSAGE_TYPE_ALERT: idmef_alert_destroy(ptr->message.alert); break; case IDMEF_MESSAGE_TYPE_HEARTBEAT: idmef_heartbeat_destroy(ptr->message.heartbeat); break; default: break; } ptr->message.alert = alert; ptr->type = (alert) ? IDMEF_MESSAGE_TYPE_ALERT : 0; } /** * idmef_message_new_alert: * @ptr: pointer to a #idmef_message_t object. * @ret: pointer where to store the created #idmef_alert_t object. * * Create a new idmef_alert_t object, children of #idmef_message_t. * If @ptr already contain a #idmef_alert_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_message_new_alert(idmef_message_t *ptr, idmef_alert_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( ptr->type ) { case IDMEF_MESSAGE_TYPE_ALERT: *ret = ptr->message.alert; return 0; case IDMEF_MESSAGE_TYPE_HEARTBEAT: idmef_heartbeat_destroy(ptr->message.heartbeat); break; default: break; } retval = idmef_alert_new(ret); if ( retval < 0 ) return retval; ptr->type = IDMEF_MESSAGE_TYPE_ALERT; ptr->message.alert = *ret; return 0; } /** * idmef_message_get_heartbeat: * @ptr: pointer to a #idmef_message_t object. * * Access the heartbeat children of @ptr. * * Returns: a pointer to the #idmef_heartbeat_t children, or NULL if it is not set. */ idmef_heartbeat_t *idmef_message_get_heartbeat(idmef_message_t *ptr) { prelude_return_val_if_fail(ptr, NULL); return (ptr->type == IDMEF_MESSAGE_TYPE_HEARTBEAT) ? ptr->message.heartbeat : NULL; } /** * idmef_message_set_heartbeat: * @ptr: pointer to a #idmef_message_t object. * @heartbeat: pointer to a #idmef_heartbeat_t object. * * Set @heartbeat object as a children of @ptr. * if @ptr already contain a @heartbeat object, then it is destroyed, * and updated to point to the provided @heartbeat object. */ void idmef_message_set_heartbeat(idmef_message_t *ptr, idmef_heartbeat_t *heartbeat) { prelude_return_if_fail(ptr); switch ( ptr->type ) { case IDMEF_MESSAGE_TYPE_ALERT: idmef_alert_destroy(ptr->message.alert); break; case IDMEF_MESSAGE_TYPE_HEARTBEAT: idmef_heartbeat_destroy(ptr->message.heartbeat); break; default: break; } ptr->message.heartbeat = heartbeat; ptr->type = (heartbeat) ? IDMEF_MESSAGE_TYPE_HEARTBEAT : 0; } /** * idmef_message_new_heartbeat: * @ptr: pointer to a #idmef_message_t object. * @ret: pointer where to store the created #idmef_heartbeat_t object. * * Create a new idmef_heartbeat_t object, children of #idmef_message_t. * If @ptr already contain a #idmef_heartbeat_t object, then it is destroyed. * * Returns: 0 on success, or a negative value if an error occured. */ int idmef_message_new_heartbeat(idmef_message_t *ptr, idmef_heartbeat_t **ret) { int retval; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); switch ( ptr->type ) { case IDMEF_MESSAGE_TYPE_ALERT: idmef_alert_destroy(ptr->message.alert); break; case IDMEF_MESSAGE_TYPE_HEARTBEAT: *ret = ptr->message.heartbeat; return 0; default: break; } retval = idmef_heartbeat_new(ret); if ( retval < 0 ) return retval; ptr->type = IDMEF_MESSAGE_TYPE_HEARTBEAT; ptr->message.heartbeat = *ret; return 0; } /** * idmef_message_copy: * @src: Source of the copy. * @dst: Where to copy the object. * * Copy a new #idmef_message_t object from @src to @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_message_copy(const idmef_message_t *src, idmef_message_t *dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(dst, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = 0; if ( src->version ) { ret = prelude_string_copy(src->version, dst->version); if ( ret < 0 ) return ret; } switch ( dst->type ) { case IDMEF_MESSAGE_TYPE_ALERT: idmef_alert_destroy(dst->message.alert); break; case IDMEF_MESSAGE_TYPE_HEARTBEAT: idmef_heartbeat_destroy(dst->message.heartbeat); break; default: break; } switch ( src->type ) { case IDMEF_MESSAGE_TYPE_ALERT: ret = idmef_alert_clone(src->message.alert, &dst->message.alert); break; case IDMEF_MESSAGE_TYPE_HEARTBEAT: ret = idmef_heartbeat_clone(src->message.heartbeat, &dst->message.heartbeat); break; default: break; } if ( ret < 0 ) return ret; dst->type = src->type; return 0; } /** * idmef_message_clone: * @src: Object to be cloned. * @dst: Address where to store the pointer to the cloned object. * * Create a copy of @src, and store it in @dst. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_message_clone(idmef_message_t *src, idmef_message_t **dst) { int ret; prelude_return_val_if_fail(src, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_message_new(dst); if ( ret < 0 ) return ret; return idmef_message_copy(src, *dst); } /** * idmef_message_compare: * @obj1: Object to compare with @obj2. * @obj2: Object to compare with @obj1. * * Compare @obj1 with @obj2. * * Returns: 0 on match, a negative value on comparison failure. */ int idmef_message_compare(const idmef_message_t *obj1, const idmef_message_t *obj2) { int ret = 0; if ( obj1 == NULL && obj2 == NULL ) return 0; else if ( obj1 == NULL || obj2 == NULL ) return -1; ret = prelude_string_compare(obj1->version, obj2->version); if ( ret != 0 ) return ret; if ( obj1->type != obj2->type ) return -1; switch ( obj1->type ) { case IDMEF_MESSAGE_TYPE_ALERT: ret = idmef_alert_compare(obj1->message.alert, obj2->message.alert); break; case IDMEF_MESSAGE_TYPE_HEARTBEAT: ret = idmef_heartbeat_compare(obj1->message.heartbeat, obj2->message.heartbeat); break; default: break; } return ret; } int _idmef_additional_data_type_is_set(idmef_additional_data_t *ad) { return ad->_type_is_set; } void idmef_message_set_pmsg(idmef_message_t *message, prelude_msg_t *msg) { prelude_return_if_fail(message); message->pmsg = msg; } prelude_msg_t *idmef_message_get_pmsg(idmef_message_t *message) { prelude_return_val_if_fail(message, NULL); return message->pmsg; } /** * idmef_message_destroy: * @ptr: pointer to a #idmef_message_t object. * * Destroy @ptr and all of it's children. * The objects are only destroyed if their reference count reach zero. */ void idmef_message_destroy(idmef_message_t *ptr) { prelude_return_if_fail(ptr); if ( --ptr->refcount ) return; idmef_message_destroy_internal(ptr); if ( ptr->pmsg ) prelude_msg_destroy(ptr->pmsg); free(ptr); } libprelude-5.2.0/src/PaxHeaders.14770/idmef-value.c0000644000000000000000000000011013726163410017774 xustar000000000000000024 mtime=1599661832.679 24 atime=1599661832.785 24 ctime=1599661999.861 libprelude-5.2.0/src/idmef-value.c0000644000000000000000000011476113726163410017011 0ustar00rootroot00000000000000/***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Nicolas Delon * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include #include #include #include #include #include #include "prelude-list.h" #include "prelude-log.h" #include "prelude-inttypes.h" #include "prelude-string.h" #include "prelude-error.h" #include "common.h" #include "idmef.h" #include "idmef-value-type.h" #define CHUNK_SIZE 16 #define FLOAT_TOLERANCE 0.0001 #ifndef MAX # define MAX(x, y) ((x) > (y) ? (x) : (y)) #endif #ifndef ABS # define ABS(x) (((x) < 0) ? -(x) : (x)) #endif #define idmef_value_new_decl(mtype, vname, vtype) \ int idmef_value_new_ ## vname (idmef_value_t **value, vtype val) { \ int ret; \ \ ret = idmef_value_create(value, IDMEF_VALUE_TYPE_ ## mtype); \ if ( ret < 0 ) \ return ret; \ \ (*value)->type.data. vname ## _val = val; \ \ return 0; \ } #define idmef_value_set_decl(mtype, vname, vtype) \ int idmef_value_set_ ## vname (idmef_value_t *value, vtype val) \ { \ prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); \ \ if ( value->own_data ) \ idmef_value_type_destroy(&value->type); \ \ value->type.id = IDMEF_VALUE_TYPE_ ## mtype; \ value->type.data. vname ## _val = val; \ value->own_data = TRUE; \ \ return 0; \ } #define idmef_value_get_decl(mtype, vname, vtype) \ vtype idmef_value_get_ ## vname (const idmef_value_t *val) \ { \ prelude_return_val_if_fail(val, (vtype) 0); \ \ if ( val->type.id != IDMEF_VALUE_TYPE_ ## mtype ) \ return (vtype) 0; \ \ return val->type.data. vname ## _val; \ } #define idmef_value_decl(mtype, vname, vtype) \ idmef_value_new_decl(mtype, vname, vtype) \ idmef_value_get_decl(mtype, vname, vtype) \ idmef_value_set_decl(mtype, vname, vtype) #define CASTCHK(ntype, fval, src, dst) \ if ( ! (src == dst && (src < 1) == (dst < 1)) ) \ return prelude_error_verbose(PRELUDE_ERROR_GENERIC, \ "Value '%" fval "' is incompatible with output type '%s'", \ src, idmef_value_type_to_string(ntype)) #define FLOATCHK(ntype, fval, src, dst) \ if ( reldif(src, dst) > FLOAT_TOLERANCE ) \ return prelude_error_verbose(PRELUDE_ERROR_GENERIC, \ "Value '%" fval "' is incompatible with output type '%s'", \ src, idmef_value_type_to_string(ntype)) #define VALUE_CAST_CHECK(v, itype_t, itype, iformat, ntype) do { \ itype_t src = idmef_value_get_ ##itype(value); \ \ if ( ntype == IDMEF_VALUE_TYPE_INT8 ) { \ CASTCHK(ntype, iformat, src, (int8_t) src); \ idmef_value_set_int8(value, src); \ \ } else if ( ntype == IDMEF_VALUE_TYPE_UINT8 ) { \ CASTCHK(ntype, iformat, src, (uint8_t) src); \ idmef_value_set_uint8(value, src); \ \ } else if ( ntype == IDMEF_VALUE_TYPE_INT16 ) { \ CASTCHK(ntype, iformat, src, (int16_t) src); \ idmef_value_set_int16(value, src); \ \ } else if ( ntype == IDMEF_VALUE_TYPE_UINT16 ) { \ CASTCHK(ntype, iformat, src, (uint16_t) src); \ idmef_value_set_uint16(value, src); \ \ } else if ( ntype == IDMEF_VALUE_TYPE_INT32 ) { \ CASTCHK(ntype, iformat, src, (int32_t) src); \ idmef_value_set_int32(value, src); \ \ } else if ( ntype == IDMEF_VALUE_TYPE_UINT32 ) { \ CASTCHK(ntype, iformat, src, (uint32_t) src); \ idmef_value_set_uint32(value, src); \ \ } else if ( ntype == IDMEF_VALUE_TYPE_INT64 ) { \ CASTCHK(ntype, iformat, src, (int64_t) src); \ idmef_value_set_int64(value, src); \ \ } else if ( ntype == IDMEF_VALUE_TYPE_UINT64 ) { \ CASTCHK(ntype, iformat, src, (uint64_t) src); \ idmef_value_set_uint64(value, src); \ \ } else if ( ntype == IDMEF_VALUE_TYPE_FLOAT ) { \ FLOATCHK(ntype, iformat, src, (float) src); \ idmef_value_set_float(value, src); \ \ } else if ( ntype == IDMEF_VALUE_TYPE_DOUBLE ) { \ FLOATCHK(ntype, iformat, src, (double) src); \ idmef_value_set_double(value, src); \ \ } else return prelude_error_verbose(PRELUDE_ERROR_GENERIC, \ "Unable to handle output type '%s' for integer cast", \ idmef_value_type_to_string(ntype)); \ } while(0) typedef struct compare { unsigned int match; idmef_value_t *val2; idmef_criterion_operator_t operator; } compare_t; struct idmef_value { int list_elems; int list_max; int refcount; prelude_bool_t own_data; idmef_value_t **list; idmef_value_type_t type; }; /* * Returns the relative difference of two real numbers: 0.0 if they are * exactly the same, otherwise, the ratio of the difference to the * larger of the two. */ static double reldif(double a, double b) { double c = ABS(a); double d = ABS(b); d = MAX(c, d); return d == 0.0 ? 0.0 : ABS(a - b) / d; } static int string_isdigit(const char *s) { while ( *s ) { if ( ! isdigit((int) *s) ) return -1; s++; } return 0; } static int idmef_value_create(idmef_value_t **ret, idmef_value_type_id_t type_id) { *ret = calloc(1, sizeof(**ret)); if ( ! *ret ) return prelude_error_from_errno(errno); (*ret)->refcount = 1; (*ret)->own_data = TRUE; (*ret)->type.id = type_id; return 0; } idmef_value_decl(INT8, int8, int8_t) idmef_value_decl(UINT8, uint8, uint8_t) idmef_value_decl(INT16, int16, int16_t) idmef_value_decl(UINT16, uint16, uint16_t) idmef_value_decl(INT32, int32, int32_t) idmef_value_decl(UINT32, uint32, uint32_t) idmef_value_decl(INT64, int64, int64_t) idmef_value_decl(UINT64, uint64, uint64_t) idmef_value_decl(FLOAT, float, float) idmef_value_decl(DOUBLE, double, double) idmef_value_decl(STRING, string, prelude_string_t *) idmef_value_decl(DATA, data, idmef_data_t *) idmef_value_decl(TIME, time, idmef_time_t *) int idmef_value_get_enum(const idmef_value_t *value) { prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( value->type.id != IDMEF_VALUE_TYPE_ENUM ) return 0; return value->type.data.enum_val.value; } int idmef_value_set_class(idmef_value_t *value, idmef_class_id_t class, void *object) { prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(object, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( value->own_data ) idmef_value_type_destroy(&value->type); value->own_data = TRUE; value->type.data.class_val.object = object; value->type.data.class_val.class_id = class; return 0; } int idmef_value_new_class(idmef_value_t **value, idmef_class_id_t class, void *object) { int ret; prelude_return_val_if_fail(object, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_value_create(value, IDMEF_VALUE_TYPE_CLASS); if ( ret < 0 ) return ret; (*value)->type.data.class_val.object = object; (*value)->type.data.class_val.class_id = class; return ret; } int idmef_value_set_enum_from_numeric(idmef_value_t *value, idmef_class_id_t class, int val) { prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( value->own_data ) idmef_value_type_destroy(&value->type); value->own_data = TRUE; value->type.id = IDMEF_VALUE_TYPE_ENUM; value->type.data.enum_val.value = val; value->type.data.enum_val.class_id = class; return 0; } int idmef_value_set_enum_from_string(idmef_value_t *value, idmef_class_id_t class, const char *buf) { int ret; prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_class_enum_to_numeric(class, buf); if ( ret < 0 ) return ret; return idmef_value_set_enum_from_numeric(value, class, ret); } int idmef_value_set_enum(idmef_value_t *value, idmef_class_id_t class, const char *buf) { int ret; prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( string_isdigit(buf) == 0 ) ret = idmef_value_set_enum_from_numeric(value, class, atoi(buf)); else ret = idmef_value_set_enum_from_string(value, class, buf); return ret; } int idmef_value_new_enum_from_numeric(idmef_value_t **value, idmef_class_id_t class, int val) { int ret; ret = idmef_value_create(value, IDMEF_VALUE_TYPE_ENUM); if ( ret < 0 ) return ret; (*value)->type.data.enum_val.value = val; (*value)->type.data.enum_val.class_id = class; return ret; } int idmef_value_new_enum_from_string(idmef_value_t **value, idmef_class_id_t class, const char *buf) { int ret; prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_class_enum_to_numeric(class, buf); if ( ret < 0 ) return ret; return idmef_value_new_enum_from_numeric(value, class, ret); } int idmef_value_new_enum(idmef_value_t **value, idmef_class_id_t class, const char *buf) { int ret; prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( string_isdigit(buf) == 0 ) ret = idmef_value_new_enum_from_numeric(value, class, atoi(buf)); else ret = idmef_value_new_enum_from_string(value, class, buf); return ret; } int idmef_value_new_list(idmef_value_t **value) { int ret; ret = idmef_value_create(value, IDMEF_VALUE_TYPE_LIST); if ( ret < 0 ) return ret; (*value)->list = malloc(CHUNK_SIZE * sizeof(idmef_value_t *)); if ( ! (*value)->list ) { free(*value); return prelude_error_from_errno(errno); } (*value)->list_elems = 0; (*value)->list_max = CHUNK_SIZE - 1; return 0; } int idmef_value_list_add(idmef_value_t *list, idmef_value_t *item) { prelude_return_val_if_fail(list, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( list->list_elems == list->list_max ) { list->list = realloc(list->list, (list->list_max + 1 + CHUNK_SIZE) * sizeof(idmef_value_t *)); if ( ! list->list ) return prelude_error_from_errno(errno); list->list_max += CHUNK_SIZE; } list->list[list->list_elems++] = item; return 0; } prelude_bool_t idmef_value_is_list(const idmef_value_t *list) { prelude_return_val_if_fail(list, FALSE); return (list->list) ? TRUE : FALSE; } prelude_bool_t idmef_value_list_is_empty(const idmef_value_t *list) { prelude_return_val_if_fail(list, TRUE); return (list->list_elems) ? FALSE : TRUE; } int idmef_value_new(idmef_value_t **value, idmef_value_type_id_t type, void *ptr) { int ret; prelude_return_val_if_fail(ptr, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_value_create(value, type); if ( ret < 0 ) return ret; (*value)->type.data.data_val = ptr; return 0; } int idmef_value_new_from_string(idmef_value_t **value, idmef_value_type_id_t type, const char *buf) { int ret; prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = idmef_value_create(value, type); if ( ret < 0 ) return ret; ret = idmef_value_type_read(&(*value)->type, buf); if ( ret < 0 ) { free(*value); return ret; } return 0; } int idmef_value_new_from_path(idmef_value_t **value, idmef_path_t *path, const char *buf) { int ret; idmef_class_id_t class; idmef_value_type_id_t value_type; prelude_return_val_if_fail(path, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(buf, prelude_error(PRELUDE_ERROR_ASSERTION)); value_type = idmef_path_get_value_type(path, -1); if ( value_type < 0 ) return value_type; if ( value_type != IDMEF_VALUE_TYPE_ENUM ) ret = idmef_value_new_from_string(value, value_type, buf); else { class = idmef_path_get_class(path, -1); if ( class < 0 ) return class; ret = idmef_value_new_enum(value, class, buf); } return ret; } static int idmef_value_set_own_data(idmef_value_t *value, prelude_bool_t own_data) { int cnt; if ( ! value->list ) value->own_data = own_data; else for ( cnt = 0 ; cnt < value->list_elems; cnt++ ) { if ( value->list[cnt] ) idmef_value_set_own_data(value->list[cnt], own_data); } return 0; } int idmef_value_have_own_data(idmef_value_t *value) { prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_value_set_own_data(value, TRUE); } int idmef_value_dont_have_own_data(idmef_value_t *value) { prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_value_set_own_data(value, FALSE); } idmef_value_type_id_t idmef_value_get_type(const idmef_value_t *value) { prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); return value->type.id; } idmef_class_id_t idmef_value_get_class(const idmef_value_t *value) { prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( value->type.id == IDMEF_VALUE_TYPE_CLASS ) return value->type.data.class_val.class_id; else if ( value->type.id == IDMEF_VALUE_TYPE_ENUM ) return value->type.data.enum_val.class_id; return -1; } void *idmef_value_get_object(const idmef_value_t *value) { prelude_return_val_if_fail(value, NULL); return (value->type.id == IDMEF_VALUE_TYPE_CLASS) ? value->type.data.class_val.object : NULL; } inline static idmef_value_t *value_ro2rw(const idmef_value_t *value) { union { idmef_value_t *rw; const idmef_value_t *ro; } val; val.ro = value; return val.rw; } int idmef_value_iterate(const idmef_value_t *value, int (*callback)(idmef_value_t *ptr, void *extra), void *extra) { int i, ret; prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(callback, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! value->list ) return callback(value_ro2rw(value), extra); for ( i = 0; i < value->list_elems; i++ ) { ret = callback(value->list[i], extra); if ( ret < 0 ) return ret; } return 0; } int idmef_value_iterate_reversed(const idmef_value_t *value, int (*callback)(idmef_value_t *ptr, void *extra), void *extra) { int i, ret; prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(callback, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( ! value->list ) return callback(value_ro2rw(value), extra); for ( i = value->list_elems - 1; i >= 0; i-- ) { ret = callback(value->list[i], extra); if ( ret < 0 ) return ret; } return 0; } int idmef_value_get_nth2(const idmef_value_t *val, int index, idmef_value_t **ret) { prelude_return_val_if_fail(val, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(index <= val->list_elems, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( index == 0 && ! val->list ) { *ret = value_ro2rw(val); return 1; } else if ( index >= 0 && index < val->list_elems ) { *ret = val->list[index]; return 1; } else if ( index >= val->list_elems ) return 0; else return -1; } idmef_value_t *idmef_value_get_nth(const idmef_value_t *val, int n) { int ret; idmef_value_t *rv; prelude_return_val_if_fail(val, NULL); ret = idmef_value_get_nth2(val, n, &rv); if ( ret != 1 ) return NULL; return rv; } int idmef_value_get_count(const idmef_value_t *val) { prelude_return_val_if_fail(val, prelude_error(PRELUDE_ERROR_ASSERTION)); return val->list ? val->list_elems : 1; } static int idmef_value_list_clone(const idmef_value_t *val, idmef_value_t **dst) { int cnt, ret; ret = idmef_value_create(dst, val->type.id); if ( ret < 0 ) return ret; (*dst)->list_elems = val->list_elems; (*dst)->list_max = val->list_max; (*dst)->list = malloc(((*dst)->list_elems + 1) * sizeof((*dst)->list)); for ( cnt = 0; cnt < (*dst)->list_elems; cnt++ ) { if ( ! val->list[cnt] ) { (*dst)->list[cnt] = NULL; continue; } ret = idmef_value_clone(val->list[cnt], &((*dst)->list[cnt])); if ( ret < 0 ) { while ( --cnt >= 0 ) { if ( (*dst)->list[cnt] ) idmef_value_destroy((*dst)->list[cnt]); } } free((*dst)->list); free(*dst); return -1; } return 0; } int idmef_value_clone(const idmef_value_t *val, idmef_value_t **dst) { int ret; prelude_return_val_if_fail(val, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( val->list ) return idmef_value_list_clone(val, dst); ret = idmef_value_create(dst, val->type.id); if ( ret < 0 ) return ret; ret = idmef_value_type_clone(&val->type, &(*dst)->type); if ( ret < 0 ) free(*dst); return ret; } idmef_value_t *idmef_value_ref(idmef_value_t *val) { prelude_return_val_if_fail(val, NULL); val->refcount++; return val; } int idmef_value_to_string(const idmef_value_t *value, prelude_string_t *out) { int i, ret; idmef_value_t *val; prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(out, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( idmef_value_is_list(value) ) { ret = prelude_string_cat(out, "("); if ( ret < 0 ) return ret; } for ( i = 0; i < idmef_value_get_count(value); i++ ) { val = idmef_value_get_nth(value, i); if ( idmef_value_is_list(val) ) { ret = prelude_string_cat(out, "("); if ( ret < 0 ) return ret; ret = idmef_value_to_string(val, out); if ( ret < 0 ) return ret; ret = prelude_string_cat(out, ")"); if ( ret < 0 ) return ret; } else { if ( i ) { ret = prelude_string_cat(out, ", "); if ( ret < 0 ) return ret; } ret = idmef_value_type_write(&val->type, out); if ( ret < 0 ) return ret; } } if ( idmef_value_is_list(value) ) { ret = prelude_string_cat(out, ")"); if ( ret < 0 ) return ret; } return 0; } int idmef_value_print(const idmef_value_t *val, prelude_io_t *fd) { int ret; prelude_string_t *out; prelude_return_val_if_fail(val, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(fd, prelude_error(PRELUDE_ERROR_ASSERTION)); ret = prelude_string_new(&out); if ( ret < 0 ) return ret; ret = idmef_value_type_write(&val->type, out); if ( ret < 0 ) { prelude_string_destroy(out); return ret; } return prelude_io_write(fd, prelude_string_get_string(out), prelude_string_get_len(out)); } int idmef_value_get(const idmef_value_t *val, void *res) { prelude_return_val_if_fail(val, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(res, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_value_type_copy(&val->type, res); } static int idmef_value_match_internal(idmef_value_t *val1, void *extra) { int ret; compare_t *compare = extra; if ( val1 && idmef_value_is_list(val1) ) ret = idmef_value_iterate(val1, idmef_value_match_internal, extra); else if ( compare->val2 && idmef_value_is_list(compare->val2) ) { ret = idmef_value_match(compare->val2, val1, compare->operator); if ( ret < 0 ) return ret; compare->match += ret; } else { ret = idmef_value_type_compare((val1) ? &val1->type : NULL, &compare->val2->type, compare->operator); if ( ret == 0 ) compare->match++; } return ret; } /** * idmef_value_match: * @val1: Pointer to a #idmef_value_t object. * @val2: Pointer to a #idmef_value_t object. * @op: operator to use for matching. * * Match @val1 and @val2 using @op. * * Returns: the number of match, 0 for none, a negative value if an error occured. */ int idmef_value_match(idmef_value_t *val1, idmef_value_t *val2, idmef_criterion_operator_t op) { int ret; compare_t compare; prelude_return_val_if_fail(val1 || val2, prelude_error(PRELUDE_ERROR_ASSERTION)); compare.match = 0; compare.val2 = val2; compare.operator = op; if ( val1 ) ret = idmef_value_iterate(val1, idmef_value_match_internal, &compare); else ret = idmef_value_match_internal(val1, &compare); if ( ret < 0 ) return ret; return compare.match; } /** * idmef_value_check_operator: * @value: Pointer to a #idmef_value_t object. * @op: Type of operator to check @value for. * * Check whether @op can apply to @value. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_value_check_operator(const idmef_value_t *value, idmef_criterion_operator_t op) { prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_value_type_check_operator(value->type.id, op); } /** * idmef_value_get_applicable_operators: * @value: Pointer to a #idmef_value_t object. * @result: Pointer where the result will be stored. * * Store all operator supported by @value in @result. * * Returns: 0 on success, a negative value if an error occured. */ int idmef_value_get_applicable_operators(const idmef_value_t *value, idmef_criterion_operator_t *result) { prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); return idmef_value_type_get_applicable_operators(value->type.id, result); } /** * idmef_value_destroy: * @val: Pointer to a #idmef_value_t object. * * Decrement refcount and destroy @value if it reach 0. */ void idmef_value_destroy(idmef_value_t *val) { int i; prelude_return_if_fail(val); if ( --val->refcount ) return; if ( val->list ) { for ( i = 0; i < val->list_elems; i++ ) { if ( val->list[i] ) idmef_value_destroy(val->list[i]); } free(val->list); } /* * Actual destructor starts here */ if ( val->own_data ) idmef_value_type_destroy(&val->type); free(val); } static int cast_to_data(idmef_value_t *input) { int ret; idmef_data_t *data; idmef_value_type_id_t vtype = idmef_value_get_type(input); if ( vtype == IDMEF_VALUE_TYPE_STRING ) { prelude_string_t *str = idmef_value_get_string(input); ret = idmef_data_new_char_string_dup_fast(&data, prelude_string_get_string(str), prelude_string_get_len(str)); if ( ret < 0 ) return ret; return idmef_value_set_data(input, data); } else if ( vtype == IDMEF_VALUE_TYPE_INT8 ) { ret = idmef_data_new_int(&data, idmef_value_get_int8(input)); if ( ret < 0 ) return ret; return idmef_value_set_data(input, data); } else if ( vtype == IDMEF_VALUE_TYPE_UINT8 ) { ret = idmef_data_new_int(&data, idmef_value_get_uint8(input)); if ( ret < 0 ) return ret; return idmef_value_set_data(input, data); } else if ( vtype == IDMEF_VALUE_TYPE_INT16 ) { ret = idmef_data_new_int(&data, idmef_value_get_int16(input)); if ( ret < 0 ) return ret; return idmef_value_set_data(input, data); } else if ( vtype == IDMEF_VALUE_TYPE_UINT16 ) { ret = idmef_data_new_int(&data, idmef_value_get_uint16(input)); if ( ret < 0 ) return ret; return idmef_value_set_data(input, data); } else if ( vtype == IDMEF_VALUE_TYPE_INT32 ) { ret = idmef_data_new_int(&data, idmef_value_get_int32(input)); if ( ret < 0 ) return ret; return idmef_value_set_data(input, data); } else if ( vtype == IDMEF_VALUE_TYPE_UINT32 ) { ret = idmef_data_new_int(&data, idmef_value_get_uint32(input)); if ( ret < 0 ) return ret; return idmef_value_set_data(input, data); } else if ( vtype == IDMEF_VALUE_TYPE_INT64 ) { ret = idmef_data_new_int(&data, idmef_value_get_int64(input)); if ( ret < 0 ) return ret; return idmef_value_set_data(input, data); } else if ( vtype == IDMEF_VALUE_TYPE_UINT64 ) { ret = idmef_data_new_int(&data, idmef_value_get_uint64(input)); if ( ret < 0 ) return ret; return idmef_value_set_data(input, data); } else if ( vtype == IDMEF_VALUE_TYPE_TIME ) { ret = idmef_data_new_time(&data, idmef_time_ref(idmef_value_get_time(input))); if ( ret < 0 ) return ret; return idmef_value_set_data(input, data); } else if ( vtype == IDMEF_VALUE_TYPE_FLOAT ) { int64_t v = idmef_value_get_float(input); if ( v == idmef_value_get_float(input) ) ret = idmef_data_new_int(&data, v); else ret = idmef_data_new_float(&data, idmef_value_get_float(input)); if ( ret < 0 ) return ret; return idmef_value_set_data(input, data); } else if ( vtype == IDMEF_VALUE_TYPE_DOUBLE ) { int64_t v = idmef_value_get_double(input); if ( v == idmef_value_get_double(input) ) ret = idmef_data_new_int(&data, v); else ret = idmef_data_new_float(&data, idmef_value_get_double(input)); if ( ret < 0 ) return ret; return idmef_value_set_data(input, data); } return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Unable to cast input type '%s' to 'data'", idmef_value_type_to_string(vtype)); } static int cast_to_time(idmef_value_t *value) { int ret = -1; idmef_time_t *time; if ( idmef_value_get_type(value) == IDMEF_VALUE_TYPE_STRING ) { ret = idmef_time_new_from_string(&time, prelude_string_get_string(idmef_value_get_string(value))); if ( ret < 0 ) return ret; idmef_value_set_time(value, time); } else if ( idmef_value_get_type(value) == IDMEF_VALUE_TYPE_INT32 ) { time_t val = idmef_value_get_int32(value); ret = idmef_time_new_from_time(&time, &val); if ( ret < 0 ) return ret; idmef_value_set_time(value, time); } else if ( idmef_value_get_type(value) == IDMEF_VALUE_TYPE_UINT32 ) { time_t val = idmef_value_get_uint32(value); ret = idmef_time_new_from_time(&time, &val); if ( ret < 0 ) return ret; idmef_value_set_time(value, time); } else if ( idmef_value_get_type(value) == IDMEF_VALUE_TYPE_INT64 ) { time_t val = idmef_value_get_int64(value); ret = idmef_time_new_from_time(&time, &val); if ( ret < 0 ) return ret; idmef_value_set_time(value, time); } else if ( idmef_value_get_type(value) == IDMEF_VALUE_TYPE_UINT64 ) { time_t val = idmef_value_get_uint64(value); ret = idmef_time_new_from_time(&time, &val); if ( ret < 0 ) return ret; idmef_value_set_time(value, time); } return ret; } static int cast_to_string(idmef_value_t *value) { int ret; prelude_string_t *out; ret = prelude_string_new(&out); if ( ret < 0 ) return ret; ret = idmef_value_type_write(&value->type, out); if ( ret < 0 ) { prelude_string_destroy(out); return ret; } idmef_value_set_string(value, out); return 0; } static int cast_from_string(idmef_value_t *value, idmef_value_type_id_t ntype) { int ret; idmef_value_type_t vt; prelude_string_t *str = idmef_value_get_string(value); vt.id = ntype; ret = idmef_value_type_read(&vt, prelude_string_get_string(str)); if ( ret < 0 ) return ret; if ( value->own_data ) idmef_value_type_destroy(&value->type); memcpy(&value->type, &vt, sizeof(value->type)); return 0; } int _idmef_value_cast(idmef_value_t *value, idmef_value_type_id_t ntype, idmef_class_id_t id) { idmef_value_type_id_t otype; prelude_return_val_if_fail(value, prelude_error(PRELUDE_ERROR_ASSERTION)); otype = idmef_value_get_type(value); prelude_log_debug(3, "converting '%s' to '%s'.\n", idmef_value_type_to_string(otype), idmef_value_type_to_string(ntype)); if ( ntype == IDMEF_VALUE_TYPE_DATA ) return cast_to_data(value); else if ( ntype == IDMEF_VALUE_TYPE_TIME ) return cast_to_time(value); else if ( ntype == IDMEF_VALUE_TYPE_STRING ) return cast_to_string(value); else if ( ntype == IDMEF_VALUE_TYPE_ENUM && idmef_value_get_type(value) == IDMEF_VALUE_TYPE_STRING ) { prelude_string_t *str = idmef_value_get_string(value); return idmef_value_set_enum_from_string(value, id, prelude_string_get_string(str)); } else if ( otype == IDMEF_VALUE_TYPE_INT8 ) VALUE_CAST_CHECK(value, int8_t, int8, PRELUDE_PRId8, ntype); else if ( otype == IDMEF_VALUE_TYPE_UINT8 ) VALUE_CAST_CHECK(value, uint8_t, uint8, PRELUDE_PRIu8, ntype); else if ( otype == IDMEF_VALUE_TYPE_INT16 ) VALUE_CAST_CHECK(value, int16_t, int16, PRELUDE_PRId16, ntype); else if ( otype == IDMEF_VALUE_TYPE_UINT16 ) VALUE_CAST_CHECK(value, uint16_t, uint16, PRELUDE_PRIu16, ntype); else if ( otype == IDMEF_VALUE_TYPE_INT32 ) VALUE_CAST_CHECK(value, int32_t, int32, PRELUDE_PRId32, ntype); else if ( otype == IDMEF_VALUE_TYPE_UINT32 ) VALUE_CAST_CHECK(value, uint32_t, uint32, PRELUDE_PRIu32, ntype); else if ( otype == IDMEF_VALUE_TYPE_INT64 ) VALUE_CAST_CHECK(value, int64_t, int64, PRELUDE_PRId64, ntype); else if ( otype == IDMEF_VALUE_TYPE_UINT64 ) VALUE_CAST_CHECK(value, uint64_t, uint64, PRELUDE_PRIu64, ntype); else if ( otype == IDMEF_VALUE_TYPE_FLOAT ) VALUE_CAST_CHECK(value, float, float, "f", ntype); else if ( otype == IDMEF_VALUE_TYPE_DOUBLE ) VALUE_CAST_CHECK(value, double, double, "f", ntype); else if ( otype == IDMEF_VALUE_TYPE_STRING ) return cast_from_string(value, ntype); else return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "Unable to cast input type '%s' to '%s'", idmef_value_type_to_string(value->type.id), idmef_value_type_to_string(ntype)); return 0; } int _idmef_value_copy_internal(const idmef_value_t *val, idmef_value_type_id_t res_type, idmef_class_id_t res_id, void *res) { int ret; prelude_return_val_if_fail(val, prelude_error(PRELUDE_ERROR_ASSERTION)); prelude_return_val_if_fail(res, prelude_error(PRELUDE_ERROR_ASSERTION)); if ( res_type == val->type.id ) ret = idmef_value_type_copy(&val->type, res); else { idmef_value_t copy; memcpy(©, val, sizeof(copy)); idmef_value_dont_have_own_data(©); ret = _idmef_value_cast(©, res_type, res_id); if ( ret < 0 ) return ret; ret = idmef_value_type_copy(©.type, res); if ( val->own_data ) idmef_value_type_destroy(©.type); } return ret; } libprelude-5.2.0/src/PaxHeaders.14770/idmef-value-type.c0000644000000000000000000000011013726163410020753 xustar000000000000000024 mtime=1599661832.679 24 atime=1599661832.785 24 ctime=1599661999.863 libprelude-5.2.0/src/idmef-value-type.c0000644000000000000000000007324713726163410017773 0ustar00rootroot00000000000000/***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "libmissing.h" #include #include #include #include #include #include #include "common.h" #include "prelude-inttypes.h" #include "prelude-string.h" #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_IDMEF_VALUE_TYPE #include "prelude-error.h" #include "prelude-inttypes.h" #include "prelude-linked-object.h" #include "idmef-object-prv.h" #include "idmef-time.h" #include "idmef-data.h" #include "idmef-value-type.h" #define CLASS_OPERATOR IDMEF_CRITERION_OPERATOR_NULL|IDMEF_CRITERION_OPERATOR_NOT| \ IDMEF_CRITERION_OPERATOR_EQUAL #define DATA_OPERATOR IDMEF_CRITERION_OPERATOR_EQUAL|IDMEF_CRITERION_OPERATOR_NOT| \ IDMEF_CRITERION_OPERATOR_LESSER|IDMEF_CRITERION_OPERATOR_GREATER|IDMEF_CRITERION_OPERATOR_SUBSTR #define TIME_OPERATOR IDMEF_CRITERION_OPERATOR_LESSER|IDMEF_CRITERION_OPERATOR_GREATER| \ IDMEF_CRITERION_OPERATOR_EQUAL|IDMEF_CRITERION_OPERATOR_NOT #define STRING_OPERATOR IDMEF_CRITERION_OPERATOR_SUBSTR|IDMEF_CRITERION_OPERATOR_EQUAL| \ IDMEF_CRITERION_OPERATOR_NOT|IDMEF_CRITERION_OPERATOR_NOCASE #define INTEGER_OPERATOR IDMEF_CRITERION_OPERATOR_LESSER|IDMEF_CRITERION_OPERATOR_GREATER|\ IDMEF_CRITERION_OPERATOR_EQUAL|IDMEF_CRITERION_OPERATOR_NOT #define ENUM_OPERATOR STRING_OPERATOR|INTEGER_OPERATOR #define GENERIC_ONE_BASE_RW_FUNC(scanfmt, printfmt, name, type) \ static int name ## _read(idmef_value_type_t *dst, const char *buf) \ { \ char *endptr; \ \ errno = 0; \ \ (dst)->data. name ##_val = strtod(buf, &endptr); \ if ( buf == endptr || *endptr != '\0' || errno == ERANGE ) \ return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_PARSE, \ "Reading " #name " value failed with '%s'", buf); \ return 1; \ } \ \ static int name ## _write(const idmef_value_type_t *src, prelude_string_t *out) \ { \ return prelude_string_sprintf(out, (printfmt), src->data.name ##_val); \ } #define GENERIC_TWO_BASES_RW_FUNC(rfunc, fmt_dec, name, type, min, max) \ static int name ## _read(idmef_value_type_t *dst, const char *buf) \ { \ type tmp; \ char *endptr; \ \ errno = 0; \ \ tmp = rfunc(buf, &endptr, 0); \ if ( buf == endptr || *endptr != '\0' || tmp < min || tmp > max || errno == ERANGE ) \ return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_PARSE, \ "Value " #name " out of range, required: [" # min " - " # max "], got '%s'", buf); \ \ dst->data.name ##_val = tmp; \ return 0; \ } \ \ static int name ## _write(const idmef_value_type_t *src, prelude_string_t *out) \ { \ return prelude_string_sprintf(out, (fmt_dec), src->data.name ##_val); \ } typedef struct { const char *name; size_t len; idmef_criterion_operator_t operator; int (*copy)(const idmef_value_type_t *src, void *dst, size_t size); int (*clone)(const idmef_value_type_t *src, idmef_value_type_t *dst, size_t size); int (*ref)(const idmef_value_type_t *src); void (*destroy)(idmef_value_type_t *type); int (*compare)(const idmef_value_type_t *t1, const idmef_value_type_t *t2, size_t size, idmef_criterion_operator_t op); int (*read)(idmef_value_type_t *dst, const char *buf); int (*write)(const idmef_value_type_t *src, prelude_string_t *out); } idmef_value_type_operation_t; /* * We specify a type bigger than the one handled, in order to catch min/max error. */ GENERIC_TWO_BASES_RW_FUNC(strtol, "%d", int8, int, PRELUDE_INT8_MIN, PRELUDE_INT8_MAX) GENERIC_TWO_BASES_RW_FUNC(strtol, "%d", uint8, unsigned int, 0, PRELUDE_UINT8_MAX) GENERIC_TWO_BASES_RW_FUNC(strtol, "%hd", int16, int, PRELUDE_INT16_MIN, PRELUDE_INT16_MAX) GENERIC_TWO_BASES_RW_FUNC(strtoul, "%hu", uint16, unsigned int, 0, PRELUDE_UINT16_MAX) GENERIC_TWO_BASES_RW_FUNC(strtol, "%d", int32, int64_t, PRELUDE_INT32_MIN, PRELUDE_INT32_MAX) GENERIC_TWO_BASES_RW_FUNC(strtoul, "%u", uint32, uint64_t, 0, PRELUDE_UINT32_MAX) GENERIC_TWO_BASES_RW_FUNC(strtoll, "%" PRELUDE_PRId64, int64, int64_t, PRELUDE_INT64_MIN, PRELUDE_INT64_MAX) GENERIC_TWO_BASES_RW_FUNC(strtoull, "%" PRELUDE_PRIu64, uint64, uint64_t, 0, PRELUDE_UINT64_MAX) GENERIC_ONE_BASE_RW_FUNC("%f", "%f", float, float) GENERIC_ONE_BASE_RW_FUNC("%lf", "%f", double, double) /* * generic functions. */ static int charstring_compare(const char *s1, const char *s2, idmef_criterion_operator_t op) { if ( (s1 && !s2) || (s2 && !s1) ) return -1; if ( op == (IDMEF_CRITERION_OPERATOR_EQUAL|IDMEF_CRITERION_OPERATOR_NOCASE) && strcasecmp(s1, s2) == 0 ) return 0; else if ( op == IDMEF_CRITERION_OPERATOR_EQUAL && strcmp(s1, s2) == 0 ) return 0; else if ( op == (IDMEF_CRITERION_OPERATOR_SUBSTR|IDMEF_CRITERION_OPERATOR_NOCASE) && fnmatch(s2, s1, FNM_CASEFOLD) == 0 ) return 0; else if ( op == IDMEF_CRITERION_OPERATOR_SUBSTR && fnmatch(s2, s1, 0) == 0 ) return 0; return -1; } static int generic_copy(const idmef_value_type_t *src, void *dst, size_t size) { memcpy(dst, &src->data, size); return 0; } static int generic_clone(const idmef_value_type_t *src, idmef_value_type_t *dst, size_t size) { memcpy(&dst->data, &src->data, size); return 0; } static int generic_compare(const idmef_value_type_t *t1, const idmef_value_type_t *t2, size_t size, idmef_criterion_operator_t op) { int ret; if ( (t1 && ! t2) || (t2 && ! t1) ) return -1; ret = memcmp(&t1->data, &t2->data, size); if ( ret == 0 && op & IDMEF_CRITERION_OPERATOR_EQUAL ) return 0; if ( ret < 0 && op & IDMEF_CRITERION_OPERATOR_LESSER ) return 0; if ( ret > 0 && op & IDMEF_CRITERION_OPERATOR_GREATER ) return 0; return -1; } /* * Enum specific */ static int enum_copy(const idmef_value_type_t *src, void *dst, size_t size) { *(int *)dst = src->data.enum_val.value; return 0; } static int enum_read(idmef_value_type_t *dst, const char *buf) { int ret; ret = sscanf(buf, "%d", &(dst)->data.enum_val.value); return (ret == 1) ? 0 : prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_PARSE, "Reading enum value failed"); } static int enum_write(const idmef_value_type_t *src, prelude_string_t *out) { const char *str; str = idmef_class_enum_to_string(src->data.enum_val.class_id, src->data.enum_val.value); if ( ! str ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_PARSE, "Enumeration conversion from numeric to string failed"); return prelude_string_cat(out, str); } static int enum_compare(const idmef_value_type_t *src, const idmef_value_type_t *dst, size_t size, idmef_criterion_operator_t op) { const char *s1; if ( (src && ! dst) || (dst && ! src) ) return -1; if ( dst->id == IDMEF_VALUE_TYPE_STRING ) { s1 = idmef_class_enum_to_string(src->data.enum_val.class_id, src->data.enum_val.value); if ( ! s1 ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_PARSE, "Enumeration conversion from numeric to string failed"); return charstring_compare(s1, prelude_string_get_string(dst->data.string_val), op); } return generic_compare(src, dst, size, op); } /* * time specific function. */ static int time_compare(const idmef_value_type_t *t1, const idmef_value_type_t *t2, size_t size, idmef_criterion_operator_t op) { int ret; if ( (t1 && ! t2) || (t2 && ! t1) ) return -1; ret = idmef_time_compare(t1->data.time_val, t2->data.time_val); if ( op & IDMEF_CRITERION_OPERATOR_EQUAL && ret == 0 ) return 0; else if ( op & IDMEF_CRITERION_OPERATOR_LESSER && ret < 0 ) return 0; else if ( op & IDMEF_CRITERION_OPERATOR_GREATER && ret > 0 ) return 0; return -1; } static int time_read(idmef_value_type_t *dst, const char *buf) { int ret; ret = idmef_time_new_from_ntpstamp(&dst->data.time_val, buf); if ( ret == 0 ) return 0; ret = idmef_time_new_from_string(&dst->data.time_val, buf); if ( ret == 0 ) return 0; return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_PARSE, "Invalid time format specified: '%s'", buf); } static int time_write(const idmef_value_type_t *src, prelude_string_t *out) { return idmef_time_to_string(src->data.time_val, out); } static int time_copy(const idmef_value_type_t *src, void *dst, size_t size) { return idmef_time_copy(src->data.time_val, dst); } static int time_clone(const idmef_value_type_t *src, idmef_value_type_t *dst, size_t size) { return idmef_time_clone(src->data.time_val, &dst->data.time_val); } static int time_ref(const idmef_value_type_t *src) { idmef_time_ref(src->data.time_val); return 0; } static void time_destroy(idmef_value_type_t *type) { idmef_time_destroy(type->data.time_val); } /* * */ static int string_compare(const idmef_value_type_t *t1, const idmef_value_type_t *t2, size_t size, idmef_criterion_operator_t op) { const char *s1 = NULL, *s2 = NULL; if ( t1 && t1->data.string_val ) s1 = prelude_string_get_string(t1->data.string_val); if ( t2 && t2->data.string_val ) s2 = prelude_string_get_string(t2->data.string_val); return charstring_compare(s1, s2, op); } static int string_read(idmef_value_type_t *dst, const char *buf) { return prelude_string_new_dup(&dst->data.string_val, buf); } static int string_copy(const idmef_value_type_t *src, void *dst, size_t size) { return prelude_string_copy_dup(src->data.string_val, dst); } static int string_ref(const idmef_value_type_t *src) { prelude_string_ref(src->data.string_val); return 0; } static int string_clone(const idmef_value_type_t *src, idmef_value_type_t *dst, size_t size) { return prelude_string_clone(src->data.string_val, &dst->data.string_val); } static void string_destroy(idmef_value_type_t *type) { prelude_string_destroy(type->data.string_val); } static int string_write(const idmef_value_type_t *src, prelude_string_t *out) { return prelude_string_sprintf(out, "%s", prelude_string_get_string_or_default(src->data.string_val, "")); } /* * data specific functions */ static int data_compare(const idmef_value_type_t *t1, const idmef_value_type_t *t2, size_t len, idmef_criterion_operator_t op) { int ret; size_t s1_len, s2_len; const void *s1 = NULL, *s2 = NULL; if ( t1 && t1->data.data_val ) s1 = idmef_data_get_data(t1->data.data_val); if ( t2 && t2->data.string_val ) s2 = idmef_data_get_data(t2->data.data_val); if ( (s1 && !s2) || (s2 && !s1) ) return -1; if ( op & IDMEF_CRITERION_OPERATOR_SUBSTR ) { s1_len = idmef_data_get_len(t1->data.data_val); s2_len = idmef_data_get_len(t2->data.data_val); return ( memmem(s1, s1_len, s2, s2_len) ) ? 0 : -1; } ret = idmef_data_compare(t1->data.data_val, t2->data.data_val); if ( ret == 0 && op & IDMEF_CRITERION_OPERATOR_EQUAL ) return 0; else if ( ret < 0 && op & IDMEF_CRITERION_OPERATOR_LESSER ) return 0; else if ( ret > 0 && op & IDMEF_CRITERION_OPERATOR_GREATER ) return 0; return -1; } static int data_read(idmef_value_type_t *dst, const char *src) { return idmef_data_new_char_string_dup_fast(&dst->data.data_val, src, strlen(src)); } static int data_write(const idmef_value_type_t *src, prelude_string_t *out) { return idmef_data_to_string(src->data.data_val, out); } static int data_copy(const idmef_value_type_t *src, void *dst, size_t size) { return idmef_data_copy_dup(src->data.data_val, dst); } static int data_clone(const idmef_value_type_t *src, idmef_value_type_t *dst, size_t size) { return idmef_data_clone(src->data.data_val, &dst->data.data_val); } static int data_ref(const idmef_value_type_t *src) { idmef_data_ref(src->data.data_val); return 0; } static void data_destroy(idmef_value_type_t *type) { idmef_data_destroy(type->data.data_val); } /* * class specific */ static int class_compare(const idmef_value_type_t *c1, const idmef_value_type_t *c2, size_t len, idmef_criterion_operator_t op) { if ( (c1 && !c2) || (c2 && !c1) ) return -1; return idmef_class_compare(c1->data.class_val.class_id, c1->data.class_val.object, c2->data.class_val.object); } static int class_copy(const idmef_value_type_t *src, void *dst, size_t size) { return idmef_class_copy(src->data.class_val.class_id, src->data.class_val.object, dst); } static int class_clone(const idmef_value_type_t *src, idmef_value_type_t *dst, size_t size) { dst->data.class_val.class_id = src->data.class_val.class_id; return idmef_class_clone(src->data.class_val.class_id, src->data.class_val.object, &dst->data.class_val.object); } static int class_ref(const idmef_value_type_t *src) { return idmef_class_ref(src->data.class_val.class_id, src->data.class_val.object); } static void class_destroy(idmef_value_type_t *type) { idmef_class_destroy(type->data.class_val.class_id, type->data.class_val.object); } static int list_to_string(const char *cname, idmef_class_id_t class, prelude_list_t *head, prelude_string_t *out, int (*item_to_string_cb)(int class, void *item, prelude_string_t *out)) { void *obj; int ret, j; prelude_list_t *tmp; if ( prelude_list_is_empty(head) ) return 0; if ( cname ) ret = prelude_string_sprintf(out, " %s:", cname); else ret = prelude_string_cat(out, " "); if ( ret < 0 ) return ret; ret = prelude_string_cat(out, "("); if ( ret < 0 ) return ret; j = 0; prelude_list_for_each(head, tmp) { if ( j++ > 0 ) { ret = prelude_string_cat(out, ", "); if ( ret < 0 ) return ret; } if ( ! cname ) obj = idmef_linked_object_get_object(tmp); else obj = prelude_linked_object_get_object(tmp); ret = item_to_string_cb(class, obj, out); if ( ret < 0 ) return ret; } return prelude_string_cat(out, ")"); } static int listed_str_to_string(idmef_class_id_t parent_class, void *parent, prelude_string_t *out) { return prelude_string_cat(out, prelude_string_get_string(parent)); } static int class_to_string(idmef_class_id_t parent_class, void *parent, prelude_string_t *out) { int ret, i; void *childptr; idmef_class_id_t childclass; idmef_value_type_id_t vtype; const char *pname = idmef_class_get_name(parent_class); ret = prelude_string_sprintf(out, ""); } static int class_write(const idmef_value_type_t *src, prelude_string_t *out) { return class_to_string(src->data.class_val.class_id, src->data.class_val.object, out); } static const idmef_value_type_operation_t ops_tbl[] = { { "unknown", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, { "int8", sizeof(int8_t), INTEGER_OPERATOR, generic_copy, generic_clone, NULL, NULL, generic_compare, int8_read, int8_write }, { "uint8", sizeof(uint8_t), INTEGER_OPERATOR, generic_copy, generic_clone, NULL, NULL, generic_compare, uint8_read, uint8_write }, { "int16", sizeof(int16_t), INTEGER_OPERATOR, generic_copy, generic_clone, NULL, NULL, generic_compare, int16_read, int16_write }, { "uint16", sizeof(uint16_t), INTEGER_OPERATOR, generic_copy, generic_clone, NULL, NULL, generic_compare, uint16_read, uint16_write }, { "int32", sizeof(int32_t), INTEGER_OPERATOR, generic_copy, generic_clone, NULL, NULL, generic_compare, int32_read, int32_write }, { "uint32", sizeof(uint32_t), INTEGER_OPERATOR, generic_copy, generic_clone, NULL, NULL, generic_compare, uint32_read, uint32_write }, { "int64", sizeof(int64_t), INTEGER_OPERATOR, generic_copy, generic_clone, NULL, NULL, generic_compare, int64_read, int64_write }, { "uint64", sizeof(uint64_t), INTEGER_OPERATOR, generic_copy, generic_clone, NULL, NULL, generic_compare, uint64_read, uint64_write }, { "float", sizeof(float), INTEGER_OPERATOR, generic_copy, generic_clone, NULL, NULL, generic_compare, float_read, float_write }, { "double", sizeof(double), INTEGER_OPERATOR, generic_copy, generic_clone, NULL, NULL, generic_compare, double_read, double_write }, { "string", 0, STRING_OPERATOR, string_copy, string_clone, string_ref, string_destroy, string_compare, string_read, string_write }, { "time", 0, TIME_OPERATOR, time_copy, time_clone, time_ref, time_destroy, time_compare, time_read, time_write }, { "data", 0, DATA_OPERATOR, data_copy, data_clone, data_ref, data_destroy, data_compare, data_read, data_write }, { "enum", sizeof(idmef_value_type_enum_t), ENUM_OPERATOR, enum_copy, generic_clone, NULL, NULL, enum_compare, enum_read, enum_write, }, { "list", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, { "class", 0, CLASS_OPERATOR, class_copy, class_clone, class_ref, class_destroy, class_compare, NULL, class_write }, }; static int is_type_valid(idmef_value_type_id_t type) { if ( type < 0 || (size_t) type >= (sizeof(ops_tbl) / sizeof(*ops_tbl)) ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_UNKNOWN, "Unknown IDMEF type id: '%d'", type); return 0; } const char *idmef_value_type_to_string(idmef_value_type_id_t type) { int ret; ret = is_type_valid(type); if ( ret < 0 ) return NULL; return ops_tbl[type].name; } int idmef_value_type_clone(const idmef_value_type_t *src, idmef_value_type_t *dst) { int ret; assert(dst->id == src->id); ret = is_type_valid(dst->id); if ( ret < 0 ) return ret; if ( ! ops_tbl[dst->id].clone ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_CLONE_UNAVAILABLE, "Object type '%s' does not support clone operation", idmef_value_type_to_string(dst->id)); return ops_tbl[dst->id].clone(src, dst, ops_tbl[dst->id].len); } int idmef_value_type_copy(const idmef_value_type_t *src, void *dst) { int ret; ret = is_type_valid(src->id); if ( ret < 0 ) return ret; if ( ! ops_tbl[src->id].copy ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_COPY_UNAVAILABLE, "Object type '%s' does not support copy operation", idmef_value_type_to_string(src->id)); return ops_tbl[src->id].copy(src, dst, ops_tbl[src->id].len); } int idmef_value_type_ref(const idmef_value_type_t *vt) { int ret; ret = is_type_valid(vt->id); if ( ret < 0 ) return ret; if ( ! ops_tbl[vt->id].ref ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_REF_UNAVAILABLE, "Object type '%s' does not support ref operation", idmef_value_type_to_string(vt->id)); return ops_tbl[vt->id].ref(vt); } int idmef_value_type_compare(const idmef_value_type_t *type1, const idmef_value_type_t *type2, idmef_criterion_operator_t op) { int ret; idmef_value_type_id_t tid; prelude_return_val_if_fail(type1 || type2, prelude_error(PRELUDE_ERROR_ASSERTION)); tid = (type1) ? type1->id : type2->id; ret = is_type_valid(tid); if ( ret < 0 ) return ret; if ( type1 && type2 && type1->id != type2->id ) { if ( type1->id != IDMEF_VALUE_TYPE_ENUM && type2->id != IDMEF_VALUE_TYPE_STRING ) return prelude_error(PRELUDE_ERROR_IDMEF_VALUE_TYPE_COMPARE_MISMATCH); } if ( ! (op & ops_tbl[tid].operator) ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_COMPARE_UNAVAILABLE, "Object type '%s' does not support operator '%s'", idmef_value_type_to_string(tid), idmef_criteria_operator_to_string(op)); if ( ! ops_tbl[tid].compare ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_COMPARE_UNAVAILABLE, "Object type '%s' does not support compare operation", idmef_value_type_to_string(tid)); ret = ops_tbl[tid].compare(type1, type2, ops_tbl[tid].len, op & ~IDMEF_CRITERION_OPERATOR_NOT); if ( ret < 0 ) /* not an error -> no match */ ret = 1; if ( op & IDMEF_CRITERION_OPERATOR_NOT ) return (ret == 0) ? 1 : 0; else return ret; } int idmef_value_type_read(idmef_value_type_t *dst, const char *buf) { int ret; ret = is_type_valid(dst->id); if ( ret < 0 ) return ret; if ( ! ops_tbl[dst->id].read ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_READ_UNAVAILABLE, "Object type '%s' does not support read operation", idmef_value_type_to_string(dst->id)); ret = ops_tbl[dst->id].read(dst, buf); return (ret < 0) ? ret : 0; } int idmef_value_type_write(const idmef_value_type_t *src, prelude_string_t *out) { int ret; ret = is_type_valid(src->id); if ( ret < 0 ) return ret; if ( ! ops_tbl[src->id].write ) return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_WRITE_UNAVAILABLE, "Object type '%s' does not support write operation", idmef_value_type_to_string(src->id)); return ops_tbl[src->id].write(src, out); } void idmef_value_type_destroy(idmef_value_type_t *type) { int ret; ret = is_type_valid(type->id); if ( ret < 0 ) return; if ( ! ops_tbl[type->id].destroy ) return; ops_tbl[type->id].destroy(type); } int idmef_value_type_check_operator(idmef_value_type_id_t type, idmef_criterion_operator_t op) { int ret; ret = is_type_valid(type); if ( ret < 0 ) return ret; if ( (~ops_tbl[type].operator & op) == 0 ) return 0; return prelude_error_verbose(PRELUDE_ERROR_IDMEF_CRITERION_UNSUPPORTED_OPERATOR, "Object type '%s' does not support operator '%s'", idmef_value_type_to_string(type), idmef_criteria_operator_to_string(op)); } int idmef_value_type_get_applicable_operators(idmef_value_type_id_t type, idmef_criterion_operator_t *result) { int ret; ret = is_type_valid(type); if ( ret < 0 ) return ret; *result = ops_tbl[type].operator; return 0; } libprelude-5.2.0/src/PaxHeaders.14770/libprelude-error0000644000000000000000000000011013726163657020650 xustar000000000000000024 mtime=1599661999.955 24 atime=1599662006.649 24 ctime=1599661999.955 libprelude-5.2.0/src/libprelude-error/0000755000000000000000000000000013726163657017730 5ustar00rootroot00000000000000libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163516022764 xustar000000000000000024 mtime=1599661902.775 24 atime=1599661945.479 24 ctime=1599661999.923 libprelude-5.2.0/src/libprelude-error/Makefile.in0000644000000000000000000020224313726163516021772 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/libprelude-error DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libprelude_error_la_DEPENDENCIES = am_libprelude_error_la_OBJECTS = prelude-error.lo strsource.lo \ strerror.lo libprelude_error_la_OBJECTS = $(am_libprelude_error_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libprelude_error_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libprelude_error_la_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libprelude_error_la_SOURCES) DIST_SOURCES = $(libprelude_error_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(nodist_include_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = $(prefix)/include/libprelude infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = @PCFLAGS@ -I$(top_srcdir)/libmissing -I$(top_srcdir)/src/include -I$(top_builddir)/src/include EXTRA_DIST = mkstrtable.awk err-sources.h.in err-codes.h.in \ mkerrnos.awk errnos.in mkerrcodes.awk mkerrcodes1.awk mkerrcodes2.awk mkerrcodes.c \ mkheader.awk prelude-error.h.in err-sources.h err-codes.h BUILT_SOURCES = err-sources.h err-codes.h code-from-errno.h code-to-errno.h err-sources-sym.h err-codes-sym.h errnos-sym.h prelude-error.h CLEANFILES = err-sources.h err-codes.h code-to-errno.h code-from-errno.h \ prelude-error.h mkerrcodes mkerrcodes.h \ err-sources-sym.h err-codes-sym.h errnos-sym.h nodist_include_HEADERS = prelude-error.h noinst_LTLIBRARIES = libprelude-error.la libprelude_error_la_LIBADD = @LTLIBTHREAD@ libprelude_error_la_LDFLAGS = -no-undefined libprelude_error_la_SOURCES = prelude-error.h prelude-error.c strsource.c strerror.c all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/libprelude-error/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/libprelude-error/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libprelude-error.la: $(libprelude_error_la_OBJECTS) $(libprelude_error_la_DEPENDENCIES) $(EXTRA_libprelude_error_la_DEPENDENCIES) $(AM_V_CCLD)$(libprelude_error_la_LINK) $(libprelude_error_la_OBJECTS) $(libprelude_error_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strsource.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-nodist_includeHEADERS: $(nodist_include_HEADERS) @$(NORMAL_INSTALL) @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-nodist_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-nodist_includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-nodist_includeHEADERS .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-nodist_includeHEADERS \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-nodist_includeHEADERS err-sources.h: Makefile mkstrtable.awk err-sources.h.in LANG="" $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=3 \ $(srcdir)/err-sources.h.in >$@ err-sources-sym.h: Makefile mkstrtable.awk err-sources.h.in LANG="" $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ $(srcdir)/err-sources.h.in >$@ err-codes.h: Makefile mkstrtable.awk err-codes.h.in LANG="" $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=3 \ $(srcdir)/err-codes.h.in >$@ err-codes-sym.h: Makefile mkstrtable.awk err-codes.h.in LANG="" $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ $(srcdir)/err-codes.h.in >$@ code-to-errno.h: Makefile mkerrnos.awk errnos.in LANG="" $(AWK) -f $(srcdir)/mkerrnos.awk $(srcdir)/errnos.in >$@ mkerrcodes.h: Makefile mkerrcodes.awk LANG="" $(AWK) -f $(srcdir)/mkerrcodes1.awk $(srcdir)/errnos.in >_$@ $(CPP) -P _$@ | grep PRELUDE_ERROR_ | LANG="" $(AWK) -f $(srcdir)/mkerrcodes.awk >$@ -rm _$@ # It is correct to use $(CC_FOR_BUILD) here. We want to run the # program at build time. mkerrcodes: mkerrcodes.c mkerrcodes.h Makefile $(CC_FOR_BUILD) $(CFLAGS) -I. -I$(srcdir) -o $@ $(srcdir)/mkerrcodes.c code-from-errno.h: mkerrcodes Makefile ./mkerrcodes | LANG="" $(AWK) -f $(srcdir)/mkerrcodes2.awk >$@ errnos-sym.h: Makefile mkstrtable.awk errnos.in LANG="" $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ -v prefix=PRELUDE_ERROR_ -v pkg_namespace=errnos_ \ $(srcdir)/errnos.in >$@ prelude-error.h: Makefile mkheader.awk err-sources.h.in err-codes.h.in errnos.in prelude-error.h.in LANG="" $(AWK) -f $(srcdir)/mkheader.awk \ $(srcdir)/err-sources.h.in \ $(srcdir)/err-codes.h.in \ $(srcdir)/errnos.in \ $(srcdir)/prelude-error.h.in > $@ -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163410022752 xustar000000000000000024 mtime=1599661832.696 23 atime=1599661832.79 24 ctime=1599661999.925 libprelude-5.2.0/src/libprelude-error/Makefile.am0000644000000000000000000000520313726163410021747 0ustar00rootroot00000000000000includedir = $(prefix)/include/libprelude AM_CPPFLAGS = @PCFLAGS@ -I$(top_srcdir)/libmissing -I$(top_srcdir)/src/include -I$(top_builddir)/src/include EXTRA_DIST = mkstrtable.awk err-sources.h.in err-codes.h.in \ mkerrnos.awk errnos.in mkerrcodes.awk mkerrcodes1.awk mkerrcodes2.awk mkerrcodes.c \ mkheader.awk prelude-error.h.in err-sources.h err-codes.h BUILT_SOURCES = err-sources.h err-codes.h code-from-errno.h code-to-errno.h err-sources-sym.h err-codes-sym.h errnos-sym.h prelude-error.h CLEANFILES = err-sources.h err-codes.h code-to-errno.h code-from-errno.h \ prelude-error.h mkerrcodes mkerrcodes.h \ err-sources-sym.h err-codes-sym.h errnos-sym.h nodist_include_HEADERS = prelude-error.h noinst_LTLIBRARIES = libprelude-error.la libprelude_error_la_LIBADD = @LTLIBTHREAD@ libprelude_error_la_LDFLAGS = -no-undefined libprelude_error_la_SOURCES = prelude-error.h prelude-error.c strsource.c strerror.c err-sources.h: Makefile mkstrtable.awk err-sources.h.in LANG="" $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=3 \ $(srcdir)/err-sources.h.in >$@ err-sources-sym.h: Makefile mkstrtable.awk err-sources.h.in LANG="" $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ $(srcdir)/err-sources.h.in >$@ err-codes.h: Makefile mkstrtable.awk err-codes.h.in LANG="" $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=3 \ $(srcdir)/err-codes.h.in >$@ err-codes-sym.h: Makefile mkstrtable.awk err-codes.h.in LANG="" $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ $(srcdir)/err-codes.h.in >$@ code-to-errno.h: Makefile mkerrnos.awk errnos.in LANG="" $(AWK) -f $(srcdir)/mkerrnos.awk $(srcdir)/errnos.in >$@ mkerrcodes.h: Makefile mkerrcodes.awk LANG="" $(AWK) -f $(srcdir)/mkerrcodes1.awk $(srcdir)/errnos.in >_$@ $(CPP) -P _$@ | grep PRELUDE_ERROR_ | LANG="" $(AWK) -f $(srcdir)/mkerrcodes.awk >$@ -rm _$@ # It is correct to use $(CC_FOR_BUILD) here. We want to run the # program at build time. mkerrcodes: mkerrcodes.c mkerrcodes.h Makefile $(CC_FOR_BUILD) $(CFLAGS) -I. -I$(srcdir) -o $@ $(srcdir)/mkerrcodes.c code-from-errno.h: mkerrcodes Makefile ./mkerrcodes | LANG="" $(AWK) -f $(srcdir)/mkerrcodes2.awk >$@ errnos-sym.h: Makefile mkstrtable.awk errnos.in LANG="" $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ -v prefix=PRELUDE_ERROR_ -v pkg_namespace=errnos_ \ $(srcdir)/errnos.in >$@ prelude-error.h: Makefile mkheader.awk err-sources.h.in err-codes.h.in errnos.in prelude-error.h.in LANG="" $(AWK) -f $(srcdir)/mkheader.awk \ $(srcdir)/err-sources.h.in \ $(srcdir)/err-codes.h.in \ $(srcdir)/errnos.in \ $(srcdir)/prelude-error.h.in > $@ -include $(top_srcdir)/git.mk libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/README0000644000000000000000000000010713726163410021576 xustar000000000000000024 mtime=1599661832.696 23 atime=1599661832.79 24 ctime=1599661999.926 libprelude-5.2.0/src/libprelude-error/README0000644000000000000000000000012013726163410020564 0ustar00rootroot00000000000000Most of this code is adaptated from libgpg-error error handling implementation. libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/prelude-error.h0000644000000000000000000000011013726163657023665 xustar000000000000000024 mtime=1599661999.897 24 atime=1599661999.893 24 ctime=1599661999.928 libprelude-5.2.0/src/libprelude-error/prelude-error.h0000644000000000000000000003677513726163657022712 0ustar00rootroot00000000000000/* Output of mkheader.awk. DO NOT EDIT. */ /***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_ERROR_H #define _LIBPRELUDE_PRELUDE_ERROR_H #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "prelude-macros.h" #include "prelude-thread.h" #include "prelude-string.h" #ifdef __cplusplus extern "C" { #endif /* * This is inspired from the GPG error interface. * * Bit 1 of prelude_error_t remain set (negative value). * Bit 2 to 9 are set to the source of the error. * Bit 10 specify whether there is a verbose error available. * Bit 11 to 15 are unspecified. * Bit 16 to 32 are set to the code of the error. */ #define PRELUDE_ERROR_SYSTEM_ERROR (1 << 15) typedef enum { PRELUDE_ERROR_SOURCE_UNKNOWN = 0, PRELUDE_ERROR_SOURCE_IO = 1, PRELUDE_ERROR_SOURCE_MESSAGE = 2, PRELUDE_ERROR_SOURCE_FAILOVER = 3, PRELUDE_ERROR_SOURCE_CLIENT = 4, PRELUDE_ERROR_SOURCE_CLIENT_PROFILE = 5, PRELUDE_ERROR_SOURCE_EXTRACT = 6, PRELUDE_ERROR_SOURCE_CONNECTION = 7, PRELUDE_ERROR_SOURCE_CONNECTION_POOL = 8, PRELUDE_ERROR_SOURCE_CONFIG_ENGINE = 9, PRELUDE_ERROR_SOURCE_STRING = 10, PRELUDE_ERROR_SOURCE_IDMEF_TREE_WRAP = 11, PRELUDE_ERROR_SOURCE_IDMEF_PATH = 12, PRELUDE_ERROR_SOURCE_IDMEF_TYPE = 13, PRELUDE_ERROR_SOURCE_IDMEF_MESSAGE_READ = 14, PRELUDE_ERROR_SOURCE_IDMEF_CRITERIA = 15, PRELUDE_ERROR_SOURCE_IDMEF_VALUE_TYPE = 16, PRELUDE_ERROR_SOURCE_PRELUDEDB = 255, } prelude_error_source_t; typedef enum { PRELUDE_ERROR_NO_ERROR = 0, PRELUDE_ERROR_GENERIC = 1, PRELUDE_ERROR_TLS = 2, PRELUDE_ERROR_INVAL_LENGTH = 3, PRELUDE_ERROR_INVAL_MESSAGE = 4, PRELUDE_ERROR_PROTOCOL_VERSION = 5, PRELUDE_ERROR_EOF = 6, PRELUDE_ERROR_PROFILE = 8, PRELUDE_ERROR_TLS_AUTH_REJECTED = 16, PRELUDE_ERROR_INVAL_INT8 = 17, PRELUDE_ERROR_INVAL_INT16 = 18, PRELUDE_ERROR_INVAL_INT32 = 19, PRELUDE_ERROR_INVAL_INT64 = 20, PRELUDE_ERROR_INVAL_FLOAT = 21, PRELUDE_ERROR_INVAL_CHAR = 22, PRELUDE_ERROR_INVAL_IDMEF_TIME = 23, PRELUDE_ERROR_CONNECTION_STRING = 24, PRELUDE_ERROR_IDMEF_VALUE_TYPE_UNKNOWN = 25, PRELUDE_ERROR_IDMEF_VALUE_TYPE_COPY_UNAVAILABLE = 26, PRELUDE_ERROR_IDMEF_VALUE_TYPE_CLONE_UNAVAILABLE = 27, PRELUDE_ERROR_IDMEF_VALUE_TYPE_COMPARE_UNAVAILABLE = 28, PRELUDE_ERROR_IDMEF_VALUE_TYPE_READ_UNAVAILABLE = 29, PRELUDE_ERROR_IDMEF_VALUE_TYPE_WRITE_UNAVAILABLE = 30, PRELUDE_ERROR_IDMEF_VALUE_TYPE_COMPARE_MISMATCH = 31, PRELUDE_ERROR_IDMEF_VALUE_TYPE_PARSE = 32, PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN = 33, PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD = 34, PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_NAME = 35, PRELUDE_ERROR_IDMEF_PATH_LENGTH = 36, PRELUDE_ERROR_IDMEF_PATH_DEPTH = 37, PRELUDE_ERROR_IDMEF_PATH_PARENT_ROOT = 38, PRELUDE_ERROR_IDMEF_PATH_NTH = 39, PRELUDE_ERROR_IDMEF_PATH_MISS_INDEX = 40, PRELUDE_ERROR_IDMEF_PATH_INTEGRITY = 41, PRELUDE_ERROR_IDMEF_PATH_INDEX_RESERVED = 42, PRELUDE_ERROR_IDMEF_PATH_INDEX_FORBIDDEN = 43, PRELUDE_ERROR_IDMEF_PATH_INDEX_UNDEFINED = 44, PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED = 45, PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING = 46, PRELUDE_ERROR_IDMEF_UNKNOWN_TAG = 47, PRELUDE_ERROR_DAEMONIZE_LOCK_HELD = 48, PRELUDE_ERROR_PLUGIN_LTDL_INIT = 49, PRELUDE_ERROR_STRING_NOT_NULL_TERMINATED = 50, PRELUDE_ERROR_CANT_RESOLVE = 51, PRELUDE_ERROR_UNKNOWN_PERMISSION_TYPE = 52, PRELUDE_ERROR_UNKNOWN_PERMISSION_BIT = 53, PRELUDE_ERROR_IDMEF_CRITERIA_PARSE = 55, PRELUDE_ERROR_IDMEF_CRITERION_UNSUPPORTED_OPERATOR = 56, PRELUDE_ERROR_IDMEF_CRITERION_INVALID_REGEX = 57, PRELUDE_ERROR_TLS_WARNING_ALERT = 58, PRELUDE_ERROR_TLS_FATAL_ALERT = 59, PRELUDE_ERROR_IDMEF_CLASS_CHILD_NOT_CLASS = 60, PRELUDE_ERROR_ASSERTION = 61, PRELUDE_ERROR_IDMEF_VALUE_TYPE_REF_UNAVAILABLE = 62, PRELUDE_ERROR_IDMEF_CLASS_CHILD_NOT_UNION = 63, PRELUDE_ERROR_UNKNOWN_ERRNO = 16382, PRELUDE_ERROR_E2BIG = PRELUDE_ERROR_SYSTEM_ERROR | 0, PRELUDE_ERROR_EACCES = PRELUDE_ERROR_SYSTEM_ERROR | 1, PRELUDE_ERROR_EADDRINUSE = PRELUDE_ERROR_SYSTEM_ERROR | 2, PRELUDE_ERROR_EADDRNOTAVAIL = PRELUDE_ERROR_SYSTEM_ERROR | 3, PRELUDE_ERROR_EADV = PRELUDE_ERROR_SYSTEM_ERROR | 4, PRELUDE_ERROR_EAFNOSUPPORT = PRELUDE_ERROR_SYSTEM_ERROR | 5, PRELUDE_ERROR_EAGAIN = PRELUDE_ERROR_SYSTEM_ERROR | 6, PRELUDE_ERROR_EALREADY = PRELUDE_ERROR_SYSTEM_ERROR | 7, PRELUDE_ERROR_EAUTH = PRELUDE_ERROR_SYSTEM_ERROR | 8, PRELUDE_ERROR_EBACKGROUND = PRELUDE_ERROR_SYSTEM_ERROR | 9, PRELUDE_ERROR_EBADE = PRELUDE_ERROR_SYSTEM_ERROR | 10, PRELUDE_ERROR_EBADF = PRELUDE_ERROR_SYSTEM_ERROR | 11, PRELUDE_ERROR_EBADFD = PRELUDE_ERROR_SYSTEM_ERROR | 12, PRELUDE_ERROR_EBADMSG = PRELUDE_ERROR_SYSTEM_ERROR | 13, PRELUDE_ERROR_EBADR = PRELUDE_ERROR_SYSTEM_ERROR | 14, PRELUDE_ERROR_EBADRPC = PRELUDE_ERROR_SYSTEM_ERROR | 15, PRELUDE_ERROR_EBADRQC = PRELUDE_ERROR_SYSTEM_ERROR | 16, PRELUDE_ERROR_EBADSLT = PRELUDE_ERROR_SYSTEM_ERROR | 17, PRELUDE_ERROR_EBFONT = PRELUDE_ERROR_SYSTEM_ERROR | 18, PRELUDE_ERROR_EBUSY = PRELUDE_ERROR_SYSTEM_ERROR | 19, PRELUDE_ERROR_ECANCELED = PRELUDE_ERROR_SYSTEM_ERROR | 20, PRELUDE_ERROR_ECHILD = PRELUDE_ERROR_SYSTEM_ERROR | 21, PRELUDE_ERROR_ECHRNG = PRELUDE_ERROR_SYSTEM_ERROR | 22, PRELUDE_ERROR_ECOMM = PRELUDE_ERROR_SYSTEM_ERROR | 23, PRELUDE_ERROR_ECONNABORTED = PRELUDE_ERROR_SYSTEM_ERROR | 24, PRELUDE_ERROR_ECONNREFUSED = PRELUDE_ERROR_SYSTEM_ERROR | 25, PRELUDE_ERROR_ECONNRESET = PRELUDE_ERROR_SYSTEM_ERROR | 26, PRELUDE_ERROR_ED = PRELUDE_ERROR_SYSTEM_ERROR | 27, PRELUDE_ERROR_EDEADLK = PRELUDE_ERROR_SYSTEM_ERROR | 28, PRELUDE_ERROR_EDEADLOCK = PRELUDE_ERROR_SYSTEM_ERROR | 29, PRELUDE_ERROR_EDESTADDRREQ = PRELUDE_ERROR_SYSTEM_ERROR | 30, PRELUDE_ERROR_EDIED = PRELUDE_ERROR_SYSTEM_ERROR | 31, PRELUDE_ERROR_EDOM = PRELUDE_ERROR_SYSTEM_ERROR | 32, PRELUDE_ERROR_EDOTDOT = PRELUDE_ERROR_SYSTEM_ERROR | 33, PRELUDE_ERROR_EDQUOT = PRELUDE_ERROR_SYSTEM_ERROR | 34, PRELUDE_ERROR_EEXIST = PRELUDE_ERROR_SYSTEM_ERROR | 35, PRELUDE_ERROR_EFAULT = PRELUDE_ERROR_SYSTEM_ERROR | 36, PRELUDE_ERROR_EFBIG = PRELUDE_ERROR_SYSTEM_ERROR | 37, PRELUDE_ERROR_EFTYPE = PRELUDE_ERROR_SYSTEM_ERROR | 38, PRELUDE_ERROR_EGRATUITOUS = PRELUDE_ERROR_SYSTEM_ERROR | 39, PRELUDE_ERROR_EGREGIOUS = PRELUDE_ERROR_SYSTEM_ERROR | 40, PRELUDE_ERROR_EHOSTDOWN = PRELUDE_ERROR_SYSTEM_ERROR | 41, PRELUDE_ERROR_EHOSTUNREACH = PRELUDE_ERROR_SYSTEM_ERROR | 42, PRELUDE_ERROR_EIDRM = PRELUDE_ERROR_SYSTEM_ERROR | 43, PRELUDE_ERROR_EIEIO = PRELUDE_ERROR_SYSTEM_ERROR | 44, PRELUDE_ERROR_EILSEQ = PRELUDE_ERROR_SYSTEM_ERROR | 45, PRELUDE_ERROR_EINPROGRESS = PRELUDE_ERROR_SYSTEM_ERROR | 46, PRELUDE_ERROR_EINTR = PRELUDE_ERROR_SYSTEM_ERROR | 47, PRELUDE_ERROR_EINVAL = PRELUDE_ERROR_SYSTEM_ERROR | 48, PRELUDE_ERROR_EIO = PRELUDE_ERROR_SYSTEM_ERROR | 49, PRELUDE_ERROR_EISCONN = PRELUDE_ERROR_SYSTEM_ERROR | 50, PRELUDE_ERROR_EISDIR = PRELUDE_ERROR_SYSTEM_ERROR | 51, PRELUDE_ERROR_EISNAM = PRELUDE_ERROR_SYSTEM_ERROR | 52, PRELUDE_ERROR_EL2HLT = PRELUDE_ERROR_SYSTEM_ERROR | 53, PRELUDE_ERROR_EL2NSYNC = PRELUDE_ERROR_SYSTEM_ERROR | 54, PRELUDE_ERROR_EL3HLT = PRELUDE_ERROR_SYSTEM_ERROR | 55, PRELUDE_ERROR_EL3RST = PRELUDE_ERROR_SYSTEM_ERROR | 56, PRELUDE_ERROR_ELIBACC = PRELUDE_ERROR_SYSTEM_ERROR | 57, PRELUDE_ERROR_ELIBBAD = PRELUDE_ERROR_SYSTEM_ERROR | 58, PRELUDE_ERROR_ELIBEXEC = PRELUDE_ERROR_SYSTEM_ERROR | 59, PRELUDE_ERROR_ELIBMAX = PRELUDE_ERROR_SYSTEM_ERROR | 60, PRELUDE_ERROR_ELIBSCN = PRELUDE_ERROR_SYSTEM_ERROR | 61, PRELUDE_ERROR_ELNRNG = PRELUDE_ERROR_SYSTEM_ERROR | 62, PRELUDE_ERROR_ELOOP = PRELUDE_ERROR_SYSTEM_ERROR | 63, PRELUDE_ERROR_EMEDIUMTYPE = PRELUDE_ERROR_SYSTEM_ERROR | 64, PRELUDE_ERROR_EMFILE = PRELUDE_ERROR_SYSTEM_ERROR | 65, PRELUDE_ERROR_EMLINK = PRELUDE_ERROR_SYSTEM_ERROR | 66, PRELUDE_ERROR_EMSGSIZE = PRELUDE_ERROR_SYSTEM_ERROR | 67, PRELUDE_ERROR_EMULTIHOP = PRELUDE_ERROR_SYSTEM_ERROR | 68, PRELUDE_ERROR_ENAMETOOLONG = PRELUDE_ERROR_SYSTEM_ERROR | 69, PRELUDE_ERROR_ENAVAIL = PRELUDE_ERROR_SYSTEM_ERROR | 70, PRELUDE_ERROR_ENEEDAUTH = PRELUDE_ERROR_SYSTEM_ERROR | 71, PRELUDE_ERROR_ENETDOWN = PRELUDE_ERROR_SYSTEM_ERROR | 72, PRELUDE_ERROR_ENETRESET = PRELUDE_ERROR_SYSTEM_ERROR | 73, PRELUDE_ERROR_ENETUNREACH = PRELUDE_ERROR_SYSTEM_ERROR | 74, PRELUDE_ERROR_ENFILE = PRELUDE_ERROR_SYSTEM_ERROR | 75, PRELUDE_ERROR_ENOANO = PRELUDE_ERROR_SYSTEM_ERROR | 76, PRELUDE_ERROR_ENOBUFS = PRELUDE_ERROR_SYSTEM_ERROR | 77, PRELUDE_ERROR_ENOCSI = PRELUDE_ERROR_SYSTEM_ERROR | 78, PRELUDE_ERROR_ENODATA = PRELUDE_ERROR_SYSTEM_ERROR | 79, PRELUDE_ERROR_ENODEV = PRELUDE_ERROR_SYSTEM_ERROR | 80, PRELUDE_ERROR_ENOENT = PRELUDE_ERROR_SYSTEM_ERROR | 81, PRELUDE_ERROR_ENOEXEC = PRELUDE_ERROR_SYSTEM_ERROR | 82, PRELUDE_ERROR_ENOLCK = PRELUDE_ERROR_SYSTEM_ERROR | 83, PRELUDE_ERROR_ENOLINK = PRELUDE_ERROR_SYSTEM_ERROR | 84, PRELUDE_ERROR_ENOMEDIUM = PRELUDE_ERROR_SYSTEM_ERROR | 85, PRELUDE_ERROR_ENOMEM = PRELUDE_ERROR_SYSTEM_ERROR | 86, PRELUDE_ERROR_ENOMSG = PRELUDE_ERROR_SYSTEM_ERROR | 87, PRELUDE_ERROR_ENONET = PRELUDE_ERROR_SYSTEM_ERROR | 88, PRELUDE_ERROR_ENOPKG = PRELUDE_ERROR_SYSTEM_ERROR | 89, PRELUDE_ERROR_ENOPROTOOPT = PRELUDE_ERROR_SYSTEM_ERROR | 90, PRELUDE_ERROR_ENOSPC = PRELUDE_ERROR_SYSTEM_ERROR | 91, PRELUDE_ERROR_ENOSR = PRELUDE_ERROR_SYSTEM_ERROR | 92, PRELUDE_ERROR_ENOSTR = PRELUDE_ERROR_SYSTEM_ERROR | 93, PRELUDE_ERROR_ENOSYS = PRELUDE_ERROR_SYSTEM_ERROR | 94, PRELUDE_ERROR_ENOTBLK = PRELUDE_ERROR_SYSTEM_ERROR | 95, PRELUDE_ERROR_ENOTCONN = PRELUDE_ERROR_SYSTEM_ERROR | 96, PRELUDE_ERROR_ENOTDIR = PRELUDE_ERROR_SYSTEM_ERROR | 97, PRELUDE_ERROR_ENOTEMPTY = PRELUDE_ERROR_SYSTEM_ERROR | 98, PRELUDE_ERROR_ENOTNAM = PRELUDE_ERROR_SYSTEM_ERROR | 99, PRELUDE_ERROR_ENOTSOCK = PRELUDE_ERROR_SYSTEM_ERROR | 100, PRELUDE_ERROR_ENOTSUP = PRELUDE_ERROR_SYSTEM_ERROR | 101, PRELUDE_ERROR_ENOTTY = PRELUDE_ERROR_SYSTEM_ERROR | 102, PRELUDE_ERROR_ENOTUNIQ = PRELUDE_ERROR_SYSTEM_ERROR | 103, PRELUDE_ERROR_ENXIO = PRELUDE_ERROR_SYSTEM_ERROR | 104, PRELUDE_ERROR_EOPNOTSUPP = PRELUDE_ERROR_SYSTEM_ERROR | 105, PRELUDE_ERROR_EOVERFLOW = PRELUDE_ERROR_SYSTEM_ERROR | 106, PRELUDE_ERROR_EPERM = PRELUDE_ERROR_SYSTEM_ERROR | 107, PRELUDE_ERROR_EPFNOSUPPORT = PRELUDE_ERROR_SYSTEM_ERROR | 108, PRELUDE_ERROR_EPIPE = PRELUDE_ERROR_SYSTEM_ERROR | 109, PRELUDE_ERROR_EPROCLIM = PRELUDE_ERROR_SYSTEM_ERROR | 110, PRELUDE_ERROR_EPROCUNAVAIL = PRELUDE_ERROR_SYSTEM_ERROR | 111, PRELUDE_ERROR_EPROGMISMATCH = PRELUDE_ERROR_SYSTEM_ERROR | 112, PRELUDE_ERROR_EPROGUNAVAIL = PRELUDE_ERROR_SYSTEM_ERROR | 113, PRELUDE_ERROR_EPROTO = PRELUDE_ERROR_SYSTEM_ERROR | 114, PRELUDE_ERROR_EPROTONOSUPPORT = PRELUDE_ERROR_SYSTEM_ERROR | 115, PRELUDE_ERROR_EPROTOTYPE = PRELUDE_ERROR_SYSTEM_ERROR | 116, PRELUDE_ERROR_ERANGE = PRELUDE_ERROR_SYSTEM_ERROR | 117, PRELUDE_ERROR_EREMCHG = PRELUDE_ERROR_SYSTEM_ERROR | 118, PRELUDE_ERROR_EREMOTE = PRELUDE_ERROR_SYSTEM_ERROR | 119, PRELUDE_ERROR_EREMOTEIO = PRELUDE_ERROR_SYSTEM_ERROR | 120, PRELUDE_ERROR_ERESTART = PRELUDE_ERROR_SYSTEM_ERROR | 121, PRELUDE_ERROR_EROFS = PRELUDE_ERROR_SYSTEM_ERROR | 122, PRELUDE_ERROR_ERPCMISMATCH = PRELUDE_ERROR_SYSTEM_ERROR | 123, PRELUDE_ERROR_ESHUTDOWN = PRELUDE_ERROR_SYSTEM_ERROR | 124, PRELUDE_ERROR_ESOCKTNOSUPPORT = PRELUDE_ERROR_SYSTEM_ERROR | 125, PRELUDE_ERROR_ESPIPE = PRELUDE_ERROR_SYSTEM_ERROR | 126, PRELUDE_ERROR_ESRCH = PRELUDE_ERROR_SYSTEM_ERROR | 127, PRELUDE_ERROR_ESRMNT = PRELUDE_ERROR_SYSTEM_ERROR | 128, PRELUDE_ERROR_ESTALE = PRELUDE_ERROR_SYSTEM_ERROR | 129, PRELUDE_ERROR_ESTRPIPE = PRELUDE_ERROR_SYSTEM_ERROR | 130, PRELUDE_ERROR_ETIME = PRELUDE_ERROR_SYSTEM_ERROR | 131, PRELUDE_ERROR_ETIMEDOUT = PRELUDE_ERROR_SYSTEM_ERROR | 132, PRELUDE_ERROR_ETOOMANYREFS = PRELUDE_ERROR_SYSTEM_ERROR | 133, PRELUDE_ERROR_ETXTBSY = PRELUDE_ERROR_SYSTEM_ERROR | 134, PRELUDE_ERROR_EUCLEAN = PRELUDE_ERROR_SYSTEM_ERROR | 135, PRELUDE_ERROR_EUNATCH = PRELUDE_ERROR_SYSTEM_ERROR | 136, PRELUDE_ERROR_EUSERS = PRELUDE_ERROR_SYSTEM_ERROR | 137, PRELUDE_ERROR_EWOULDBLOCK = PRELUDE_ERROR_SYSTEM_ERROR | 138, PRELUDE_ERROR_EXDEV = PRELUDE_ERROR_SYSTEM_ERROR | 139, PRELUDE_ERROR_EXFULL = PRELUDE_ERROR_SYSTEM_ERROR | 140, } prelude_error_code_t; #ifndef PRELUDE_ERROR_SOURCE_DEFAULT #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_UNKNOWN #endif typedef signed int prelude_error_t; prelude_bool_t prelude_error_is_verbose(prelude_error_t error); prelude_error_code_t prelude_error_get_code(prelude_error_t error); prelude_error_source_t prelude_error_get_source(prelude_error_t error); prelude_error_code_t prelude_error_code_from_errno(int err); prelude_error_t prelude_error_make(prelude_error_source_t source, prelude_error_code_t code); prelude_error_t prelude_error_make_from_errno(prelude_error_source_t source, int err); void prelude_perror(prelude_error_t error, const char *fmt, ...) PRELUDE_FMT_PRINTF(2, 3); const char *prelude_strerror(prelude_error_t err); const char *prelude_strsource(prelude_error_t err); int prelude_error_code_to_errno(prelude_error_code_t code); prelude_error_t prelude_error_verbose_make_v(prelude_error_source_t source, prelude_error_code_t code, const char *fmt, va_list ap) PRELUDE_FMT_PRINTF(3, 0); prelude_error_t prelude_error_verbose_make(prelude_error_source_t source, prelude_error_code_t code, const char *fmt, ...) PRELUDE_FMT_PRINTF(3, 4); static inline prelude_error_t prelude_error(prelude_error_code_t code) { return prelude_error_make(PRELUDE_ERROR_SOURCE_DEFAULT, code); } static inline prelude_error_t prelude_error_verbose(prelude_error_code_t code, const char *fmt, ...) PRELUDE_FMT_PRINTF(2, 3); static inline prelude_error_t prelude_error_verbose(prelude_error_code_t code, const char *fmt, ...) { int ret; va_list ap; va_start(ap, fmt); ret = prelude_error_verbose_make_v(PRELUDE_ERROR_SOURCE_DEFAULT, code, fmt, ap); va_end(ap); return ret; } static inline prelude_error_t prelude_error_from_errno(int err) { return prelude_error_make(PRELUDE_ERROR_SOURCE_DEFAULT, prelude_error_code_from_errno(err)); } #ifdef __cplusplus } #endif #endif libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/prelude-error.c0000644000000000000000000000010713726163410023651 xustar000000000000000024 mtime=1599661832.698 24 atime=1599661832.791 23 ctime=1599661999.93 libprelude-5.2.0/src/libprelude-error/prelude-error.c0000644000000000000000000001342313726163410022651 0ustar00rootroot00000000000000#include "config.h" #include #include #include #include #include #include "prelude.h" #include "prelude-log.h" #include "prelude-error.h" #include "code-to-errno.h" #include "code-from-errno.h" #define PRELUDE_ERROR_CODE_DIM 65536 #define PRELUDE_ERROR_SOURCE_DIM 256 #define PRELUDE_ERROR_SOURCE_SHIFT 23 #define PRELUDE_ERROR_VERBOSE_SHIFT 22 #define PRELUDE_ERROR_CODE_MASK (PRELUDE_ERROR_CODE_DIM - 1) #define PRELUDE_ERROR_SOURCE_MASK (PRELUDE_ERROR_SOURCE_DIM - 1) #define PRELUDE_ERROR_VERBOSE_MASK (1) /** * prelude_error_make: * @source: Error source. * @code: Error code. * * Create a new #prelude_error_t error using @source and @code. * * Returns: The created #prelude_error_t integer. */ prelude_error_t prelude_error_make(prelude_error_source_t source, prelude_error_code_t code) { return (code == PRELUDE_ERROR_NO_ERROR) ? code : -((source << PRELUDE_ERROR_SOURCE_SHIFT) | code); } /** * prelude_error_make_from_errno: * @source: Error source. * @err: errno value. * * Create a new #prelude_error_t error using @source and @errno. * * Returns: The created #prelude_error_t integer. */ prelude_error_t prelude_error_make_from_errno(prelude_error_source_t source, int err) { prelude_error_code_t code = prelude_error_code_from_errno(err); return prelude_error_make(source, code); } /** * prelude_error_verbose_make_v: * @source: Error source. * @code: Error code. * @fmt: Format string. * @ap: Argument list. * * Create a new error using @source and @code, using the detailed error message * specified within @fmt. * * Returns: The created #prelude_error_t integer. */ prelude_error_t prelude_error_verbose_make_v(prelude_error_source_t source, prelude_error_code_t code, const char *fmt, va_list ap) { int ret; prelude_string_t *str; ret = prelude_string_new(&str); if ( ret < 0 ) return ret; ret = prelude_string_vprintf(str, fmt, ap); if ( ret < 0 ) { prelude_string_destroy(str); return ret; } ret = _prelude_thread_set_error(prelude_string_get_string(str)); prelude_string_destroy(str); if ( ret < 0 ) return ret; ret = prelude_error_make(source, code); ret = -ret; ret |= (1 << PRELUDE_ERROR_VERBOSE_SHIFT); return -ret; } /** * prelude_error_verbose_make: * @source: Error source. * @code: Error code. * @fmt: Format string. * @...: Argument list. * * Create a new error using @source and @code, using the detailed error message * specified within @fmt. * * Returns: The created #prelude_error_t integer. */ prelude_error_t prelude_error_verbose_make(prelude_error_source_t source, prelude_error_code_t code, const char *fmt, ...) { int ret; va_list ap; va_start(ap, fmt); ret = prelude_error_verbose_make_v(source, code, fmt, ap); va_end(ap); return ret; } /** * prelude_error_get_code: * @error: A #prelude_error_t return value. * * Returns: the #prelude_code_t code contained within the @prelude_error_t integer. */ prelude_error_code_t prelude_error_get_code(prelude_error_t error) { error = -error; return (prelude_error_code_t) (error & PRELUDE_ERROR_CODE_MASK); } /** * prelude_error_get_source: * @error: A #prelude_error_t return value. * * Returns: the #prelude_source_t source contained within the @prelude_error_t integer. */ prelude_error_source_t prelude_error_get_source(prelude_error_t error) { error = -error; return (prelude_error_source_t) ((error >> PRELUDE_ERROR_SOURCE_SHIFT) & PRELUDE_ERROR_SOURCE_MASK); } /** * prelude_error_is_verbose: * @error: A #prelude_error_t return value. * * Returns: #PRELUDE_BOOL_TRUE if there is a detailed message for this error, #PRELUDE_BOOL_FALSE otherwise. */ prelude_bool_t prelude_error_is_verbose(prelude_error_t error) { error = -error; return ((error >> PRELUDE_ERROR_VERBOSE_SHIFT) & PRELUDE_ERROR_VERBOSE_MASK) ? PRELUDE_BOOL_TRUE : PRELUDE_BOOL_FALSE; } /** * prelude_error_code_from_errno: * @err: errno value. * * Returns: the #prelude_error_code_t value corresponding to @err. */ prelude_error_code_t prelude_error_code_from_errno(int err) { int idx; if ( ! err ) return PRELUDE_ERROR_NO_ERROR; idx = errno_to_idx(err); if ( idx < 0 ) return PRELUDE_ERROR_UNKNOWN_ERRNO; return PRELUDE_ERROR_SYSTEM_ERROR | err_code_from_index[idx]; } /** * prelude_error_code_to_errno: * @code: Error code. * * Returns: the errno value corresponding to @code. */ int prelude_error_code_to_errno(prelude_error_code_t code) { if ( ! (code & PRELUDE_ERROR_SYSTEM_ERROR) ) return 0; code &= ~PRELUDE_ERROR_SYSTEM_ERROR; if ( code < sizeof(err_code_to_errno) / sizeof(err_code_to_errno[0]) ) return err_code_to_errno[code]; else return 0; } /** * prelude_perror: * @error: A #prelude_error_t return value. * @fmt: Format string. * @...: Argument list. * * Print the error to stderr, or to syslog() in case stderr is unavailable. */ void prelude_perror(prelude_error_t error, const char *fmt, ...) { va_list ap; char buf[1024]; va_start(ap, fmt); vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); if ( prelude_error_get_source(error) ) prelude_log(PRELUDE_LOG_WARN, "%s: %s: %s.\n", prelude_strsource(error), buf, prelude_strerror(error)); else prelude_log(PRELUDE_LOG_WARN, "%s: %s.\n", buf, prelude_strerror(error)); } libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/strsource.c0000644000000000000000000000011013726163410023105 xustar000000000000000024 mtime=1599661832.699 24 atime=1599661832.791 24 ctime=1599661999.931 libprelude-5.2.0/src/libprelude-error/strsource.c0000644000000000000000000000236613726163410022117 0ustar00rootroot00000000000000/* strsource.c - Describing an error source. Copyright (C) 2003 g10 Code GmbH This file is part of libgpg-error. libgpg-error is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. libgpg-error 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with libgpg-error; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include "prelude-error.h" #include "gettext.h" #include "err-sources.h" /* Return a pointer to a string containing a description of the error source in the error value ERR. */ const char *prelude_strsource(prelude_error_t err) { prelude_error_source_t source = prelude_error_get_source(err); return dgettext(PACKAGE, msgstr + msgidx[msgidxof((int) source)]); } libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/strerror.c0000644000000000000000000000011013726163410022736 xustar000000000000000024 mtime=1599661832.699 24 atime=1599661832.791 24 ctime=1599661999.933 libprelude-5.2.0/src/libprelude-error/strerror.c0000644000000000000000000000321313726163410021740 0ustar00rootroot00000000000000/* strerror.c - Describing an error code. Copyright (C) 2003 g10 Code GmbH This file is part of libgpg-error. libgpg-error is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. libgpg-error 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with libgpg-error; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include #include #include #include #include "prelude-error.h" #include "gettext.h" #include "err-codes.h" /* Return a pointer to a string containing a description of the error code in the error value ERR. This function is not thread-safe. */ const char *prelude_strerror(prelude_error_t err) { int no; prelude_error_code_t code = prelude_error_get_code(err); if ( prelude_error_is_verbose(err) ) return _prelude_thread_get_error(); if ( code & PRELUDE_ERROR_SYSTEM_ERROR ) { no = prelude_error_code_to_errno(code); if ( no ) return strerror(no); else code = PRELUDE_ERROR_UNKNOWN_ERRNO; } return dgettext(PACKAGE, msgstr + msgidx[msgidxof((int)code)]); } libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/mkstrtable.awk0000644000000000000000000000011013726163410023564 xustar000000000000000024 mtime=1599661832.698 24 atime=1599661832.791 24 ctime=1599661999.935 libprelude-5.2.0/src/libprelude-error/mkstrtable.awk0000644000000000000000000001410213726163410022565 0ustar00rootroot00000000000000# mkstrtable.awk # Copyright (C) 2003, 2004 g10 Code GmbH # # 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 of # the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. # # As a special exception, g10 Code GmbH gives unlimited permission to # copy, distribute and modify the C source files that are the output # of mkstrtable.awk. You need not follow the terms of the GNU General # Public License when using or distributing such scripts, even though # portions of the text of mkstrtable.awk appear in them. The GNU # General Public License (GPL) does govern all other use of the material # that constitutes the mkstrtable.awk program. # # Certain portions of the mkstrtable.awk source text are designed to be # copied (in certain cases, depending on the input) into the output of # mkstrtable.awk. We call these the "data" portions. The rest of the # mkstrtable.awk source text consists of comments plus executable code # that decides which of the data portions to output in any given case. # We call these comments and executable code the "non-data" portions. # mkstrtable.h never copies any of the non-data portions into its output. # # This special exception to the GPL applies to versions of mkstrtable.awk # released by g10 Code GmbH. When you make and distribute a modified version # of mkstrtable.awk, you may extend this special exception to the GPL to # apply to your modified version as well, *unless* your modified version # has the potential to copy into its output some of the text that was the # non-data portion of the version that you started with. (In other words, # unless your change moves or copies text from the non-data portions to the # data portions.) If your modification has such potential, you must delete # any notice of this special exception to the GPL from your modified version. # This script outputs a source file that does define the following # symbols: # # static const char msgstr[]; # A string containing all messages in the list. # # static const int msgidx[]; # A list of index numbers, one for each message, that points to the # beginning of the string in msgstr. # # msgidxof (code); # A macro that maps code numbers to idx numbers. If a DEFAULT MESSAGE # is provided (see below), its index will be returned for unknown codes. # Otherwise -1 is returned for codes that do not appear in the list. # You can lookup the message with code CODE with: # msgstr + msgidx[msgidxof (code)]. # # The input file has the following format: # CODE1 ... MESSAGE1 (code nr, , something, , msg) # CODE2 ... MESSAGE2 (code nr, , something, , msg) # ... # CODEn ... MESSAGEn (code nr, , something, , msg) # ... DEFAULT-MESSAGE (, something, , fall-back msg) # # Comments (starting with # and ending at the end of the line) are removed, # as is trailing whitespace. The last line is optional; if no DEFAULT # MESSAGE is given, msgidxof will return the number -1 for unknown # index numbers. # # The field to be used is specified with the variable "textidx" on # the command line. It defaults to 2. # # The variable nogettext can be set to 1 to suppress gettext markers. # # The variable prefix can be used to prepend a string to each message. # # The variable pkg_namespace can be used to prepend a string to each # variable and macro name. BEGIN { FS = "[\t]+"; # cpos holds the current position in the message string. cpos = 0; # msg holds the number of messages. msg = 0; print "/* Output of mkstrtable.awk. DO NOT EDIT. */"; print ""; header = 1; if (textidx == 0) textidx = 2; # nogettext can be set to 1 to suppress gettext noop markers. } /^#/ { next; } header { if ($1 ~ /^[0123456789]+$/) { print "/* The purpose of this complex string table is to produce"; print " optimal code with a minimum of relocations. */"; print ""; print "static const char " pkg_namespace "msgstr[] = "; header = 0; } else print; } !header { sub (/#.+/, ""); sub (/[ ]+$/, ""); # Strip trailing space and tab characters. if (/^$/) next; # Print the string msgstr line by line. We delay output by one line to be able # to treat the last line differently (see END). if (last_msgstr) { if (nogettext) print " \"" last_msgstr "\" \"\\0\""; else print " gettext_noop (\"" last_msgstr "\") \"\\0\""; } last_msgstr = prefix $textidx; # Remember the error code and msgidx of each error message. code[msg] = $1; pos[msg] = cpos; cpos += length (last_msgstr) + 1; msg++; if ($1 == "") { has_default = 1; exit; } } END { if (has_default) coded_msgs = msg - 1; else coded_msgs = msg; if (nogettext) print " \"" prefix last_msgstr "\";"; else print " gettext_noop (\"" prefix last_msgstr "\");"; print ""; print "static const int " pkg_namespace "msgidx[] ="; print " {"; for (i = 0; i < coded_msgs; i++) print " " pos[i] ","; print " " pos[coded_msgs]; print " };"; print ""; print "#define " pkg_namespace "msgidxof(code) (0 ? -1 \\"; # Gather the ranges. skip = code[0]; start = code[0]; stop = code[0]; for (i = 1; i < coded_msgs; i++) { if (code[i] == stop + 1) stop++; else { print " : ((code >= " start ") && (code <= " stop ")) ? (code - " \ skip ") \\"; skip += code[i] - stop - 1; start = code[i]; stop = code[i]; } } print " : ((code >= " start ") && (code <= " stop ")) ? (code - " \ skip ") \\"; if (has_default) print " : " stop + 1 " - " skip ")"; else print " : -1)"; } libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/err-sources.h.in0000644000000000000000000000010713726163410023745 xustar000000000000000024 mtime=1599661832.696 23 atime=1599661832.79 24 ctime=1599661999.936 libprelude-5.2.0/src/libprelude-error/err-sources.h.in0000644000000000000000000000475213726163410022752 0ustar00rootroot00000000000000# err-sources.h.in - List of error sources and their description input file. /* err-sources.h - List of error sources and their description. Copyright (C) 2003, 2004 g10 Code GmbH This file is part of libgpg-error. libgpg-error is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. libgpg-error 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with libgpg-error; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ # Everything up to the first line that starts with a number in the # first column is copied into the output verbatim. Then, empty lines # are ignored. Other lines must have an error source number, followed # by one or more characters, followed by the error source # symbol, followed by one or more characters, followed by the # error source name. Trailing whitespace is removed. The error # sources should be sorted. The last line should not have a number, # but only a , followed by a description for error sources that # are not in the list. 0 PRELUDE_ERROR_SOURCE_UNKNOWN Unspecified source 1 PRELUDE_ERROR_SOURCE_IO prelude-io 2 PRELUDE_ERROR_SOURCE_MESSAGE prelude-message 3 PRELUDE_ERROR_SOURCE_FAILOVER prelude-failover 4 PRELUDE_ERROR_SOURCE_CLIENT prelude-client 5 PRELUDE_ERROR_SOURCE_CLIENT_PROFILE prelude-client-profile 6 PRELUDE_ERROR_SOURCE_EXTRACT prelude-extract 7 PRELUDE_ERROR_SOURCE_CONNECTION prelude-connection 8 PRELUDE_ERROR_SOURCE_CONNECTION_POOL prelude-connection-pool 9 PRELUDE_ERROR_SOURCE_CONFIG_ENGINE config-file 10 PRELUDE_ERROR_SOURCE_STRING prelude-string 11 PRELUDE_ERROR_SOURCE_IDMEF_TREE_WRAP idmef-tree-wrap 12 PRELUDE_ERROR_SOURCE_IDMEF_PATH idmef-path 13 PRELUDE_ERROR_SOURCE_IDMEF_TYPE idmef-type 14 PRELUDE_ERROR_SOURCE_IDMEF_MESSAGE_READ idmef-message-read 15 PRELUDE_ERROR_SOURCE_IDMEF_CRITERIA idmef-criteria 16 PRELUDE_ERROR_SOURCE_IDMEF_VALUE_TYPE idmef-value-type 255 PRELUDE_ERROR_SOURCE_PRELUDEDB libpreludedb # 15 to 254 are free to be used. PRELUDE_ERROR_SOURCE_DIM Unknown source libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/err-codes.h.in0000644000000000000000000000010713726163410023357 xustar000000000000000024 mtime=1599661832.696 23 atime=1599661832.79 24 ctime=1599661999.938 libprelude-5.2.0/src/libprelude-error/err-codes.h.in0000644000000000000000000001325713726163410022364 0ustar00rootroot00000000000000# err-codes.h.in - List of error codes and their description input file. /* err-codes.h - List of error codes and their description. Copyright (C) 2003, 2004 g10 Code GmbH This file is part of libgpg-error. libgpg-error is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. libgpg-error 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with libgpg-error; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ # Everything up to the first line that starts with a number in the # first column is copied into the output verbatim. Then, empty lines # are ignored. Other lines must have an error code number, followed # by one or more characters, followed by the error code symbol, # followed by one or more characters, followed by the error # message. Trailing whitespace is removed. The error codes should be # sorted. The last line should not have a number, but only a , # followed by a dummy field, followed by a , followed by a # description for error codes that are not in the list. 0 PRELUDE_ERROR_NO_ERROR Success 1 PRELUDE_ERROR_GENERIC Unknown generic error 2 PRELUDE_ERROR_TLS Unknown TLS error 3 PRELUDE_ERROR_INVAL_LENGTH Invalid length specified 4 PRELUDE_ERROR_INVAL_MESSAGE Invalid message 5 PRELUDE_ERROR_PROTOCOL_VERSION Invalid protocol version 6 PRELUDE_ERROR_EOF End of file 8 PRELUDE_ERROR_PROFILE Client profile does not exist or have wrong permissions 16 PRELUDE_ERROR_TLS_AUTH_REJECTED Peer rejected authentication 17 PRELUDE_ERROR_INVAL_INT8 Buffer does not contain a 8 bits integer 18 PRELUDE_ERROR_INVAL_INT16 Buffer does not contain a 16 bits integer 19 PRELUDE_ERROR_INVAL_INT32 Buffer does not contain a 32 bits integer 20 PRELUDE_ERROR_INVAL_INT64 Buffer does not contain a 64 bits integer 21 PRELUDE_ERROR_INVAL_FLOAT Buffer does not contain a 32 bits float 22 PRELUDE_ERROR_INVAL_CHAR Buffer is not zero terminated 23 PRELUDE_ERROR_INVAL_IDMEF_TIME Buffer does not contain an IDMEF time type 24 PRELUDE_ERROR_CONNECTION_STRING No connection information provided 25 PRELUDE_ERROR_IDMEF_VALUE_TYPE_UNKNOWN Unknown IDMEF value type 26 PRELUDE_ERROR_IDMEF_VALUE_TYPE_COPY_UNAVAILABLE Copy operation unavailable for specified IDMEF type 27 PRELUDE_ERROR_IDMEF_VALUE_TYPE_CLONE_UNAVAILABLE Clone operation unavailable for specified IDMEF type 28 PRELUDE_ERROR_IDMEF_VALUE_TYPE_COMPARE_UNAVAILABLE Compare operation unavailable for specified IDMEF type 29 PRELUDE_ERROR_IDMEF_VALUE_TYPE_READ_UNAVAILABLE Read operation unavailable for specified IDMEF type 30 PRELUDE_ERROR_IDMEF_VALUE_TYPE_WRITE_UNAVAILABLE Write operation unavailable for specified IDMEF type 31 PRELUDE_ERROR_IDMEF_VALUE_TYPE_COMPARE_MISMATCH Can not compare data of different type 32 PRELUDE_ERROR_IDMEF_VALUE_TYPE_PARSE Could not parse IDMEF value 33 PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN Unknown IDMEF class specified 34 PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD Unknown IDMEF child specified 35 PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_NAME Unknown IDMEF element name 36 PRELUDE_ERROR_IDMEF_PATH_LENGTH IDMEF path name too long 37 PRELUDE_ERROR_IDMEF_PATH_DEPTH IDMEF path maximum depth exceeded 38 PRELUDE_ERROR_IDMEF_PATH_PARENT_ROOT Can not make parent from IDMEF root path 39 PRELUDE_ERROR_IDMEF_PATH_NTH Specified object index does not exist 40 PRELUDE_ERROR_IDMEF_PATH_MISS_INDEX Listed element require an index to be specified 41 PRELUDE_ERROR_IDMEF_PATH_INTEGRITY Element integrity failed 42 PRELUDE_ERROR_IDMEF_PATH_INDEX_RESERVED Provided index value is reserved 43 PRELUDE_ERROR_IDMEF_PATH_INDEX_FORBIDDEN Element forbid indexing 44 PRELUDE_ERROR_IDMEF_PATH_INDEX_UNDEFINED Element index is undefined 45 PRELUDE_ERROR_IDMEF_TREE_INDEX_UNDEFINED An index below the one specified is undefined 46 PRELUDE_ERROR_IDMEF_UNKNOWN_ENUM_STRING Unknown enumeration string 47 PRELUDE_ERROR_IDMEF_UNKNOWN_TAG IDMEF message tag is unknown 48 PRELUDE_ERROR_DAEMONIZE_LOCK_HELD File lock is held by another process 49 PRELUDE_ERROR_PLUGIN_LTDL_INIT Unable to initialize LTDL 50 PRELUDE_ERROR_STRING_NOT_NULL_TERMINATED String is not 'nul' terminated 51 PRELUDE_ERROR_CANT_RESOLVE Could not resolve address 52 PRELUDE_ERROR_UNKNOWN_PERMISSION_TYPE Specified permission type is unknown 53 PRELUDE_ERROR_UNKNOWN_PERMISSION_BIT Specified permission bit is not known 55 PRELUDE_ERROR_IDMEF_CRITERIA_PARSE Could not parse IDMEF criteria 56 PRELUDE_ERROR_IDMEF_CRITERION_UNSUPPORTED_OPERATOR Unsupported criterion operator 57 PRELUDE_ERROR_IDMEF_CRITERION_INVALID_REGEX Criterion regular expression is not valid 58 PRELUDE_ERROR_TLS_WARNING_ALERT TLS layer returned a warning alert 59 PRELUDE_ERROR_TLS_FATAL_ALERT TLS layer returned a fatal alert 60 PRELUDE_ERROR_IDMEF_CLASS_CHILD_NOT_CLASS IDMEF child is not a class 61 PRELUDE_ERROR_ASSERTION Critical assertion occurred 62 PRELUDE_ERROR_IDMEF_VALUE_TYPE_REF_UNAVAILABLE Reference operation unavailable for specified IDMEF type 63 PRELUDE_ERROR_IDMEF_CLASS_CHILD_NOT_UNION IDMEF child is not an union #62 to 16381 are free to be used. 16382 PRELUDE_ERROR_UNKNOWN_ERRNO Unknown system error # 16384 - 32767 are reserved for future extensions. # PRELUDE_ERROR_SYSTEM_ERROR | (141 to 32767) are to be used for system errors. PRELUDE_ERROR_CODE_DIM Unknown error code libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/mkerrnos.awk0000644000000000000000000000010613726163410023261 xustar000000000000000024 mtime=1599661832.697 23 atime=1599661832.79 23 ctime=1599661999.94 libprelude-5.2.0/src/libprelude-error/mkerrnos.awk0000644000000000000000000000664713726163410022274 0ustar00rootroot00000000000000# mkerrnos.awk # Copyright (C) 2003, 2004 g10 Code GmbH # # 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 of # the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. # # As a special exception, g10 Code GmbH gives unlimited permission to # copy, distribute and modify the C source files that are the output # of mkerrnos.awk. You need not follow the terms of the GNU General # Public License when using or distributing such scripts, even though # portions of the text of mkerrnos.awk appear in them. The GNU # General Public License (GPL) does govern all other use of the material # that constitutes the mkerrnos.awk program. # # Certain portions of the mkerrnos.awk source text are designed to be # copied (in certain cases, depending on the input) into the output of # mkerrnos.awk. We call these the "data" portions. The rest of the # mkerrnos.awk source text consists of comments plus executable code # that decides which of the data portions to output in any given case. # We call these comments and executable code the "non-data" portions. # mkerrnos.h never copies any of the non-data portions into its output. # # This special exception to the GPL applies to versions of mkerrnos.awk # released by g10 Code GmbH. When you make and distribute a modified version # of mkerrnos.awk, you may extend this special exception to the GPL to # apply to your modified version as well, *unless* your modified version # has the potential to copy into its output some of the text that was the # non-data portion of the version that you started with. (In other words, # unless your change moves or copies text from the non-data portions to the # data portions.) If your modification has such potential, you must delete # any notice of this special exception to the GPL from your modified version. # This script outputs a source file that does define the following # symbols: # # static const int err_code_to_errno[]; # A mapping of gpg_err_code_t numbers to system errno. The index of an # error code in the table can be obtained after removing the system error # code indication bit. # # The input file is a list of possible system errors in the column errnoidx # (defaults to 2). # # Comments (starting with # and ending at the end of the line) are removed, # as is trailing whitespace. BEGIN { FS="[\t]+"; header = 1; if (errnoidx == 0) errnoidx = 2; print "/* Output of mkerrnos.awk. DO NOT EDIT. */"; print ""; } /^#/ { next; } header { if ($1 ~ /^[0-9]/) { print "#include "; print ""; print "static const int err_code_to_errno [] = {"; header = 0; } else print; } !header { sub (/#.+/, ""); sub (/[ ]+$/, ""); # Strip trailing space and tab characters. if (/^$/) next; print "#ifdef " $errnoidx; print " " $errnoidx ","; print "#else"; print " 0,"; print "#endif"; } END { print "};"; } libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/errnos.in0000644000000000000000000000010713726163410022556 xustar000000000000000024 mtime=1599661832.696 23 atime=1599661832.79 24 ctime=1599661999.941 libprelude-5.2.0/src/libprelude-error/errnos.in0000644000000000000000000000571113726163410021557 0ustar00rootroot00000000000000# errnos.h.in - List of system error values input file. /* errnos.h - List of system error values. Copyright (C) 2003, 2004 g10 Code GmbH This file is part of libgpg-error. libgpg-error is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. libgpg-error 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with libgpg-error; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ # Everything up to the first line that starts with a number in the # first column is copied into the output verbatim. Then, empty lines # are ignored. Other lines must have an error code number, followed # by one or more characters, followed by the error name. # # IMPORTANT: For now, the numbering must be consecutive. Some of the # scripts (notably mkerrnos.h) do not deal correctly with a numbering # that is out of order or has gaps. 0 E2BIG 1 EACCES 2 EADDRINUSE 3 EADDRNOTAVAIL 4 EADV 5 EAFNOSUPPORT 6 EAGAIN 7 EALREADY 8 EAUTH 9 EBACKGROUND 10 EBADE 11 EBADF 12 EBADFD 13 EBADMSG 14 EBADR 15 EBADRPC 16 EBADRQC 17 EBADSLT 18 EBFONT 19 EBUSY 20 ECANCELED 21 ECHILD 22 ECHRNG 23 ECOMM 24 ECONNABORTED 25 ECONNREFUSED 26 ECONNRESET 27 ED 28 EDEADLK 29 EDEADLOCK 30 EDESTADDRREQ 31 EDIED 32 EDOM 33 EDOTDOT 34 EDQUOT 35 EEXIST 36 EFAULT 37 EFBIG 38 EFTYPE 39 EGRATUITOUS 40 EGREGIOUS 41 EHOSTDOWN 42 EHOSTUNREACH 43 EIDRM 44 EIEIO 45 EILSEQ 46 EINPROGRESS 47 EINTR 48 EINVAL 49 EIO 50 EISCONN 51 EISDIR 52 EISNAM 53 EL2HLT 54 EL2NSYNC 55 EL3HLT 56 EL3RST 57 ELIBACC 58 ELIBBAD 59 ELIBEXEC 60 ELIBMAX 61 ELIBSCN 62 ELNRNG 63 ELOOP 64 EMEDIUMTYPE 65 EMFILE 66 EMLINK 67 EMSGSIZE 68 EMULTIHOP 69 ENAMETOOLONG 70 ENAVAIL 71 ENEEDAUTH 72 ENETDOWN 73 ENETRESET 74 ENETUNREACH 75 ENFILE 76 ENOANO 77 ENOBUFS 78 ENOCSI 79 ENODATA 80 ENODEV 81 ENOENT 82 ENOEXEC 83 ENOLCK 84 ENOLINK 85 ENOMEDIUM 86 ENOMEM 87 ENOMSG 88 ENONET 89 ENOPKG 90 ENOPROTOOPT 91 ENOSPC 92 ENOSR 93 ENOSTR 94 ENOSYS 95 ENOTBLK 96 ENOTCONN 97 ENOTDIR 98 ENOTEMPTY 99 ENOTNAM 100 ENOTSOCK 101 ENOTSUP 102 ENOTTY 103 ENOTUNIQ 104 ENXIO 105 EOPNOTSUPP 106 EOVERFLOW 107 EPERM 108 EPFNOSUPPORT 109 EPIPE 110 EPROCLIM 111 EPROCUNAVAIL 112 EPROGMISMATCH 113 EPROGUNAVAIL 114 EPROTO 115 EPROTONOSUPPORT 116 EPROTOTYPE 117 ERANGE 118 EREMCHG 119 EREMOTE 120 EREMOTEIO 121 ERESTART 122 EROFS 123 ERPCMISMATCH 124 ESHUTDOWN 125 ESOCKTNOSUPPORT 126 ESPIPE 127 ESRCH 128 ESRMNT 129 ESTALE 130 ESTRPIPE 131 ETIME 132 ETIMEDOUT 133 ETOOMANYREFS 134 ETXTBSY 135 EUCLEAN 136 EUNATCH 137 EUSERS 138 EWOULDBLOCK 139 EXDEV 140 EXFULL libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/mkerrcodes.awk0000644000000000000000000000010713726163410023560 xustar000000000000000024 mtime=1599661832.697 23 atime=1599661832.79 24 ctime=1599661999.943 libprelude-5.2.0/src/libprelude-error/mkerrcodes.awk0000644000000000000000000000636113726163410022563 0ustar00rootroot00000000000000# mkerrcodes.awk # Copyright (C) 2004 g10 Code GmbH # # 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 of # the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. # # As a special exception, g10 Code GmbH gives unlimited permission to # copy, distribute and modify the C source files that are the output # of mkerrcodes.awk. You need not follow the terms of the GNU General # Public License when using or distributing such scripts, even though # portions of the text of mkerrcodes.awk appear in them. The GNU # General Public License (GPL) does govern all other use of the material # that constitutes the mkerrcodes.awk program. # # Certain portions of the mkerrcodes.awk source text are designed to be # copied (in certain cases, depending on the input) into the output of # mkerrcodes.awk. We call these the "data" portions. The rest of the # mkerrcodes.awk source text consists of comments plus executable code # that decides which of the data portions to output in any given case. # We call these comments and executable code the "non-data" portions. # mkerrcodes.h never copies any of the non-data portions into its output. # # This special exception to the GPL applies to versions of mkerrcodes.awk # released by g10 Code GmbH. When you make and distribute a modified version # of mkerrcodes.awk, you may extend this special exception to the GPL to # apply to your modified version as well, *unless* your modified version # has the potential to copy into its output some of the text that was the # non-data portion of the version that you started with. (In other words, # unless your change moves or copies text from the non-data portions to the # data portions.) If your modification has such potential, you must delete # any notice of this special exception to the GPL from your modified version. # This script outputs an intermediate file that contains the following block # for each error value symbol in the input file (example for EINVAL): # # #ifdef EINVAL # EINVAL GPG_ERR_EINVAL # #endif # # The input file is a list of possible system errors. # # Comments (starting with # and ending at the end of the line) are removed, # as is trailing whitespace. BEGIN { print "/* Output of mkerrcodes.awk. DO NOT EDIT. */"; print ""; header = 1; } /^#/ { next; } header { if ($0 ~ /^[ \t]*[0-9]+/) { header = 0; print "static struct"; print " {"; print " int err;"; print " const char *err_sym;"; print " } err_table[] = "; print "{"; } else print; } !header { sub (/#.+/, ""); sub (/[ ]+$/, ""); # Strip trailing space and tab characters. if (/^$/) next; print " { " $1 ", \"" $2 "\" },"; } END { print "};"; } libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/mkerrcodes1.awk0000644000000000000000000000010713726163410023641 xustar000000000000000024 mtime=1599661832.697 23 atime=1599661832.79 24 ctime=1599661999.945 libprelude-5.2.0/src/libprelude-error/mkerrcodes1.awk0000644000000000000000000000641013726163410022637 0ustar00rootroot00000000000000# mkerrcodes.awk # Copyright (C) 2003, 2004 g10 Code GmbH # # 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 of # the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. # # As a special exception, g10 Code GmbH gives unlimited permission to # copy, distribute and modify the C source files that are the output # of mkerrcodes.awk. You need not follow the terms of the GNU General # Public License when using or distributing such scripts, even though # portions of the text of mkerrcodes.awk appear in them. The GNU # General Public License (GPL) does govern all other use of the material # that constitutes the mkerrcodes.awk program. # # Certain portions of the mkerrcodes.awk source text are designed to be # copied (in certain cases, depending on the input) into the output of # mkerrcodes.awk. We call these the "data" portions. The rest of the # mkerrcodes.awk source text consists of comments plus executable code # that decides which of the data portions to output in any given case. # We call these comments and executable code the "non-data" portions. # mkerrcodes.h never copies any of the non-data portions into its output. # # This special exception to the GPL applies to versions of mkerrcodes.awk # released by g10 Code GmbH. When you make and distribute a modified version # of mkerrcodes.awk, you may extend this special exception to the GPL to # apply to your modified version as well, *unless* your modified version # has the potential to copy into its output some of the text that was the # non-data portion of the version that you started with. (In other words, # unless your change moves or copies text from the non-data portions to the # data portions.) If your modification has such potential, you must delete # any notice of this special exception to the GPL from your modified version. # This script outputs an intermediate file that contains the following block # for each error value symbol in the input file (example for EINVAL): # # #ifdef EINVAL # EINVAL PRELUDE_ERROR_EINVAL # #endif # # The input file is a list of possible system errors in the column errnoidx # (defaults to 2). # # Comments (starting with # and ending at the end of the line) are removed, # as is trailing whitespace. BEGIN { FS="[\t]+"; header = 1; if (errnoidx == 0) errnoidx = 2; print "/* Output of mkerrcodes.awk. DO NOT EDIT. */"; print ""; } /^#/ { next; } header { if ($1 ~ /^[0-9]/) { print "#include "; print ""; header = 0; } else print; } !header { sub (/#.+/, ""); sub (/[ ]+$/, ""); # Strip trailing space and tab characters. if (/^$/) next; print "#ifdef " $errnoidx; print $errnoidx "\tPRELUDE_ERROR_" $errnoidx; print "#endif"; } libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/mkerrcodes2.awk0000644000000000000000000000010713726163410023642 xustar000000000000000024 mtime=1599661832.697 23 atime=1599661832.79 24 ctime=1599661999.947 libprelude-5.2.0/src/libprelude-error/mkerrcodes2.awk0000644000000000000000000001120313726163410022634 0ustar00rootroot00000000000000# mkstrtable.awk # Copyright (C) 2003 g10 Code GmbH # # 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 of # the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. # # As a special exception, g10 Code GmbH gives unlimited permission to # copy, distribute and modify the C source files that are the output # of mkerrcodes2.awk. You need not follow the terms of the GNU General # Public License when using or distributing such scripts, even though # portions of the text of mkerrcodes2.awk appear in them. The GNU # General Public License (GPL) does govern all other use of the material # that constitutes the mkerrcodes2.awk program. # # Certain portions of the mkerrcodes2.awk source text are designed to be # copied (in certain cases, depending on the input) into the output of # mkerrcodes2.awk. We call these the "data" portions. The rest of the # mkerrcodes2.awk source text consists of comments plus executable code # that decides which of the data portions to output in any given case. # We call these comments and executable code the "non-data" portions. # mkstrtable.h never copies any of the non-data portions into its output. # # This special exception to the GPL applies to versions of mkerrcodes2.awk # released by g10 Code GmbH. When you make and distribute a modified version # of mkerrcodes2.awk, you may extend this special exception to the GPL to # apply to your modified version as well, *unless* your modified version # has the potential to copy into its output some of the text that was the # non-data portion of the version that you started with. (In other words, # unless your change moves or copies text from the non-data portions to the # data portions.) If your modification has such potential, you must delete # any notice of this special exception to the GPL from your modified version. # This script outputs a source file that does define the following # symbols: # # static const char msgstr[]; # A string containing all messages in the list. # # static const int msgidx[]; # A list of index numbers, one for each message, that points to the # beginning of the string in msgstr. # # msgidxof (code); # A macro that maps code numbers to idx numbers. If a DEFAULT MESSAGE # is provided (see below), its index will be returned for unknown codes. # Otherwise -1 is returned for codes that do not appear in the list. # You can lookup the message with code CODE with: # msgstr + msgidx[msgidxof (code)]. # # The input file has the following format: # CODE1 MESSAGE1 (Code number, , message string) # CODE2 MESSAGE2 (Code number, , message string) # ... # CODEn MESSAGEn (Code number, , message string) # DEFAULT MESSAGE (, fall-back message string) # # Comments (starting with # and ending at the end of the line) are removed, # as is trailing whitespace. The last line is optional; if no DEFAULT # MESSAGE is given, msgidxof will return the number -1 for unknown # index numbers. BEGIN { # msg holds the number of messages. msg = 0; print "/* Output of mkerrcodes2.awk. DO NOT EDIT. */"; print ""; header = 1; } /^#/ { next; } header { if ($1 ~ /^[0123456789]+$/) { print "static const int err_code_from_index[] = {"; header = 0; } else print; } !header { sub (/#.+/, ""); sub (/[ ]+$/, ""); # Strip trailing space and tab characters. if (/^$/) next; # Print the string msgstr line by line. We delay output by one line to be able # to treat the last line differently (see END). print " " $2 ","; # Remember the error value and index of each error code. code[msg] = $1; pos[msg] = $2; msg++; } END { print "};"; print ""; print "#define errno_to_idx(code) (0 ? -1 \\"; # Gather the ranges. skip = code[0]; start = code[0]; stop = code[0]; for (i = 1; i < msg; i++) { if (code[i] == stop + 1) stop++; else { print " : ((code >= " start ") && (code <= " stop ")) ? (code - " \ skip ") \\"; skip += code[i] - stop - 1; start = code[i]; stop = code[i]; } } print " : ((code >= " start ") && (code <= " stop ")) ? (code - " \ skip ") \\"; print " : -1)"; } libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/mkerrcodes.c0000644000000000000000000000010713726163410023220 xustar000000000000000024 mtime=1599661832.697 23 atime=1599661832.79 24 ctime=1599661999.948 libprelude-5.2.0/src/libprelude-error/mkerrcodes.c0000644000000000000000000000523013726163410022215 0ustar00rootroot00000000000000/* mkerrcodes.c - Generate list of system error values. Copyright (C) 2004 g10 Code GmbH This file is part of libgpg-error. libgpg-error is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. libgpg-error 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with libgpg-error; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This file must not include config.h, as that is for the host system, while this file will be run on the build system. */ #include #include "mkerrcodes.h" static const char header[] = "/* errnos.h - List of system error values.\n" " Copyright (C) 2004 g10 Code GmbH\n" " This file is part of libgpg-error.\n" "\n" " libgpg-error is free software; you can redistribute it and/or\n" " modify it under the terms of the GNU Lesser General Public License\n" " as published by the Free Software Foundation; either version 2.1 of\n" " the License, or (at your option) any later version.\n" "\n" " libgpg-error is distributed in the hope that it will be useful, but\n" " WITHOUT ANY WARRANTY; without even the implied warranty of\n" " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" " Lesser General Public License for more details.\n" "\n" " You should have received a copy of the GNU Lesser General Public\n" " License along with libgpg-error; if not, write to the Free\n" " Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA\n" " 02111-1307, USA. */\n" "\n"; int main (int argc, char **argv) { int sorted; int i; printf ("%s", header); do { sorted = 1; for (i = 0; i < sizeof (err_table) / sizeof (err_table[0]) - 1; i++) if (err_table[i].err > err_table[i + 1].err) { int err = err_table[i].err; const char *err_sym = err_table[i].err_sym; err_table[i].err = err_table[i + 1].err; err_table[i].err_sym = err_table[i + 1].err_sym; err_table[i + 1].err = err; err_table[i + 1].err_sym = err_sym; sorted = 0; } } while (!sorted); for (i = 0; i < sizeof (err_table) / sizeof (err_table[0]); i++) printf ("%i\t%s\n", err_table[i].err, err_table[i].err_sym); return 0; } libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/mkheader.awk0000644000000000000000000000010713726163410023202 xustar000000000000000024 mtime=1599661832.698 24 atime=1599661832.791 23 ctime=1599661999.95 libprelude-5.2.0/src/libprelude-error/mkheader.awk0000644000000000000000000001272513726163410022206 0ustar00rootroot00000000000000# mkheader.awk # Copyright (C) 2003, 2004 g10 Code GmbH # # 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 of # the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. # # As a special exception, g10 Code GmbH gives unlimited permission to # copy, distribute and modify the C source files that are the output # of mkheader.awk. You need not follow the terms of the GNU General # Public License when using or distributing such scripts, even though # portions of the text of mkheader.awk appear in them. The GNU # General Public License (GPL) does govern all other use of the material # that constitutes the mkheader.awk program. # # Certain portions of the mkheader.awk source text are designed to be # copied (in certain cases, depending on the input) into the output of # mkheader.awk. We call these the "data" portions. The rest of the # mkheader.awk source text consists of comments plus executable code # that decides which of the data portions to output in any given case. # We call these comments and executable code the "non-data" portions. # mkheader.h never copies any of the non-data portions into its output. # # This special exception to the GPL applies to versions of mkheader.awk # released by g10 Code GmbH. When you make and distribute a modified version # of mkheader.awk, you may extend this special exception to the GPL to # apply to your modified version as well, *unless* your modified version # has the potential to copy into its output some of the text that was the # non-data portion of the version that you started with. (In other words, # unless your change moves or copies text from the non-data portions to the # data portions.) If your modification has such potential, you must delete # any notice of this special exception to the GPL from your modified version. # This script processes gpg-error.h.in in an awful way. # Its input is, one after another, the content of the err-sources.h.in file, # the err-codes.h.in file, the errnos.in file, and then gpg-error.h.in. # There is nothing fancy about this. # # An alternative would be to use getline to get the content of the first three files, # but then we need to pre-process gpg-error.h.in with configure to get # at the full path of the files in @srcdir@. BEGIN { FS = "[\t]+"; # sources_nr holds the number of error sources. sources_nr = 0; # codes_nr holds the number of error codes. codes_nr = 0; # errnos_nr holds the number of system errors. errnos_nr = 0; # These variables walk us through our input. sources_header = 1; sources_body = 0; between_sources_and_codes = 0; codes_body = 0; between_codes_and_errnos = 0; errnos_body = 0; prelude_error_h = 0; print "/* Output of mkheader.awk. DO NOT EDIT. */"; print ""; } sources_header { if ($1 ~ /^[0123456789]+$/) { sources_header = 0; sources_body = 1; } } sources_body { sub (/\#.+/, ""); sub (/[ ]+$/, ""); # Strip trailing space and tab characters. if (/^$/) next; if ($1 == "") { sources_body = 0; between_sources_and_codes = 1; } else { # Remember the error source number and symbol of each error source. sources_idx[sources_nr] = $1; sources_sym[sources_nr] = $2; sources_nr++; } } between_sources_and_codes { if ($1 ~ /^[0123456789]+$/) { between_sources_and_codes = 0; codes_body = 1; } } codes_body { sub (/\#.+/, ""); sub (/[ ]+$/, ""); # Strip trailing space and tab characters. if (/^$/) next; if ($1 == "") { codes_body = 0; between_codes_and_errnos = 1; } else { # Remember the error code number and symbol of each error source. codes_idx[codes_nr] = $1; codes_sym[codes_nr] = $2; codes_nr++; } } between_codes_and_errnos { if ($1 ~ /^[0-9]/) { between_codes_and_errnos = 0; errnos_body = 1; } } errnos_body { sub (/\#.+/, ""); sub (/[ ]+$/, ""); # Strip trailing space and tab characters. if (/^$/) next; if ($1 !~ /^[0-9]/) { # Note that this assumes that prelude-error.h.in doesn't start with a digit. errnos_body = 0; prelude_error_h = 1; } else { errnos_idx[errnos_nr] = "PRELUDE_ERROR_SYSTEM_ERROR | " $1; errnos_sym[errnos_nr] = "PRELUDE_ERROR_" $2; errnos_nr++; } } prelude_error_h { if ($0 ~ /^@include err-sources/) { for (i = 0; i < sources_nr; i++) { print " " sources_sym[i] " = " sources_idx[i] ","; # print "#define " sources_sym[i] " (" sources_idx[i] ")"; } } else if ($0 ~ /^@include err-codes/) { for (i = 0; i < codes_nr; i++) { print " " codes_sym[i] " = " codes_idx[i] ","; # print "#define " codes_sym[i] " (" codes_idx[i] ")"; } } else if ($0 ~ /^@include errnos/) { for (i = 0; i < errnos_nr; i++) { print " " errnos_sym[i] " = " errnos_idx[i] ","; # print "#define " errnos_sym[i] " (" errnos_idx[i] ")"; } } else print; } libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/prelude-error.h.in0000644000000000000000000000011013726163410024255 xustar000000000000000024 mtime=1599661832.698 24 atime=1599661832.791 24 ctime=1599661999.952 libprelude-5.2.0/src/libprelude-error/prelude-error.h.in0000644000000000000000000000755313726163410023272 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_ERROR_H #define _LIBPRELUDE_PRELUDE_ERROR_H #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "prelude-macros.h" #include "prelude-thread.h" #include "prelude-string.h" #ifdef __cplusplus extern "C" { #endif /* * This is inspired from the GPG error interface. * * Bit 1 of prelude_error_t remain set (negative value). * Bit 2 to 9 are set to the source of the error. * Bit 10 specify whether there is a verbose error available. * Bit 11 to 15 are unspecified. * Bit 16 to 32 are set to the code of the error. */ #define PRELUDE_ERROR_SYSTEM_ERROR (1 << 15) typedef enum { @include err-sources.in } prelude_error_source_t; typedef enum { @include err-codes.in @include errnos.in } prelude_error_code_t; #ifndef PRELUDE_ERROR_SOURCE_DEFAULT #define PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SOURCE_UNKNOWN #endif typedef signed int prelude_error_t; prelude_bool_t prelude_error_is_verbose(prelude_error_t error); prelude_error_code_t prelude_error_get_code(prelude_error_t error); prelude_error_source_t prelude_error_get_source(prelude_error_t error); prelude_error_code_t prelude_error_code_from_errno(int err); prelude_error_t prelude_error_make(prelude_error_source_t source, prelude_error_code_t code); prelude_error_t prelude_error_make_from_errno(prelude_error_source_t source, int err); void prelude_perror(prelude_error_t error, const char *fmt, ...) PRELUDE_FMT_PRINTF(2, 3); const char *prelude_strerror(prelude_error_t err); const char *prelude_strsource(prelude_error_t err); int prelude_error_code_to_errno(prelude_error_code_t code); prelude_error_t prelude_error_verbose_make_v(prelude_error_source_t source, prelude_error_code_t code, const char *fmt, va_list ap) PRELUDE_FMT_PRINTF(3, 0); prelude_error_t prelude_error_verbose_make(prelude_error_source_t source, prelude_error_code_t code, const char *fmt, ...) PRELUDE_FMT_PRINTF(3, 4); static inline prelude_error_t prelude_error(prelude_error_code_t code) { return prelude_error_make(PRELUDE_ERROR_SOURCE_DEFAULT, code); } static inline prelude_error_t prelude_error_verbose(prelude_error_code_t code, const char *fmt, ...) PRELUDE_FMT_PRINTF(2, 3); static inline prelude_error_t prelude_error_verbose(prelude_error_code_t code, const char *fmt, ...) { int ret; va_list ap; va_start(ap, fmt); ret = prelude_error_verbose_make_v(PRELUDE_ERROR_SOURCE_DEFAULT, code, fmt, ap); va_end(ap); return ret; } static inline prelude_error_t prelude_error_from_errno(int err) { return prelude_error_make(PRELUDE_ERROR_SOURCE_DEFAULT, prelude_error_code_from_errno(err)); } #ifdef __cplusplus } #endif #endif libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/err-sources.h0000644000000000000000000000011013726163657023347 xustar000000000000000024 mtime=1599661999.901 24 atime=1599661999.899 24 ctime=1599661999.953 libprelude-5.2.0/src/libprelude-error/err-sources.h0000644000000000000000000000421313726163657022352 0ustar00rootroot00000000000000/* Output of mkstrtable.awk. DO NOT EDIT. */ /* err-sources.h - List of error sources and their description. Copyright (C) 2003, 2004 g10 Code GmbH This file is part of libgpg-error. libgpg-error is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. libgpg-error 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with libgpg-error; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* The purpose of this complex string table is to produce optimal code with a minimum of relocations. */ static const char msgstr[] = gettext_noop ("Unspecified source") "\0" gettext_noop ("prelude-io") "\0" gettext_noop ("prelude-message") "\0" gettext_noop ("prelude-failover") "\0" gettext_noop ("prelude-client") "\0" gettext_noop ("prelude-client-profile") "\0" gettext_noop ("prelude-extract") "\0" gettext_noop ("prelude-connection") "\0" gettext_noop ("prelude-connection-pool") "\0" gettext_noop ("config-file") "\0" gettext_noop ("prelude-string") "\0" gettext_noop ("idmef-tree-wrap") "\0" gettext_noop ("idmef-path") "\0" gettext_noop ("idmef-type") "\0" gettext_noop ("idmef-message-read") "\0" gettext_noop ("idmef-criteria") "\0" gettext_noop ("idmef-value-type") "\0" gettext_noop ("libpreludedb") "\0" gettext_noop ("Unknown source"); static const int msgidx[] = { 0, 19, 30, 46, 63, 78, 101, 117, 136, 160, 172, 187, 203, 214, 225, 244, 259, 276, 289 }; #define msgidxof(code) (0 ? -1 \ : ((code >= 0) && (code <= 16)) ? (code - 0) \ : ((code >= 255) && (code <= 255)) ? (code - 238) \ : 256 - 238) libprelude-5.2.0/src/libprelude-error/PaxHeaders.14770/err-codes.h0000644000000000000000000000011013726163657022761 xustar000000000000000024 mtime=1599661999.905 24 atime=1599661999.903 24 ctime=1599661999.955 libprelude-5.2.0/src/libprelude-error/err-codes.h0000644000000000000000000001215613726163657021771 0ustar00rootroot00000000000000/* Output of mkstrtable.awk. DO NOT EDIT. */ /* err-codes.h - List of error codes and their description. Copyright (C) 2003, 2004 g10 Code GmbH This file is part of libgpg-error. libgpg-error is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. libgpg-error 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with libgpg-error; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* The purpose of this complex string table is to produce optimal code with a minimum of relocations. */ static const char msgstr[] = gettext_noop ("Success") "\0" gettext_noop ("Unknown generic error") "\0" gettext_noop ("Unknown TLS error") "\0" gettext_noop ("Invalid length specified") "\0" gettext_noop ("Invalid message") "\0" gettext_noop ("Invalid protocol version") "\0" gettext_noop ("End of file") "\0" gettext_noop ("Client profile does not exist or have wrong permissions") "\0" gettext_noop ("Peer rejected authentication") "\0" gettext_noop ("Buffer does not contain a 8 bits integer") "\0" gettext_noop ("Buffer does not contain a 16 bits integer") "\0" gettext_noop ("Buffer does not contain a 32 bits integer") "\0" gettext_noop ("Buffer does not contain a 64 bits integer") "\0" gettext_noop ("Buffer does not contain a 32 bits float") "\0" gettext_noop ("Buffer is not zero terminated") "\0" gettext_noop ("Buffer does not contain an IDMEF time type") "\0" gettext_noop ("No connection information provided") "\0" gettext_noop ("Unknown IDMEF value type") "\0" gettext_noop ("Copy operation unavailable for specified IDMEF type") "\0" gettext_noop ("Clone operation unavailable for specified IDMEF type") "\0" gettext_noop ("Compare operation unavailable for specified IDMEF type") "\0" gettext_noop ("Read operation unavailable for specified IDMEF type") "\0" gettext_noop ("Write operation unavailable for specified IDMEF type") "\0" gettext_noop ("Can not compare data of different type") "\0" gettext_noop ("Could not parse IDMEF value") "\0" gettext_noop ("Unknown IDMEF class specified") "\0" gettext_noop ("Unknown IDMEF child specified") "\0" gettext_noop ("Unknown IDMEF element name") "\0" gettext_noop ("IDMEF path name too long") "\0" gettext_noop ("IDMEF path maximum depth exceeded") "\0" gettext_noop ("Can not make parent from IDMEF root path") "\0" gettext_noop ("Specified object index does not exist") "\0" gettext_noop ("Listed element require an index to be specified") "\0" gettext_noop ("Element integrity failed") "\0" gettext_noop ("Provided index value is reserved") "\0" gettext_noop ("Element forbid indexing") "\0" gettext_noop ("Element index is undefined") "\0" gettext_noop ("An index below the one specified is undefined") "\0" gettext_noop ("Unknown enumeration string") "\0" gettext_noop ("IDMEF message tag is unknown") "\0" gettext_noop ("File lock is held by another process") "\0" gettext_noop ("Unable to initialize LTDL") "\0" gettext_noop ("String is not 'nul' terminated") "\0" gettext_noop ("Could not resolve address") "\0" gettext_noop ("Specified permission type is unknown") "\0" gettext_noop ("Specified permission bit is not known") "\0" gettext_noop ("Could not parse IDMEF criteria") "\0" gettext_noop ("Unsupported criterion operator") "\0" gettext_noop ("Criterion regular expression is not valid") "\0" gettext_noop ("TLS layer returned a warning alert") "\0" gettext_noop ("TLS layer returned a fatal alert") "\0" gettext_noop ("IDMEF child is not a class") "\0" gettext_noop ("Critical assertion occurred") "\0" gettext_noop ("Reference operation unavailable for specified IDMEF type") "\0" gettext_noop ("IDMEF child is not an union") "\0" gettext_noop ("Unknown system error") "\0" gettext_noop ("Unknown error code"); static const int msgidx[] = { 0, 8, 30, 48, 73, 89, 114, 126, 182, 211, 252, 294, 336, 378, 418, 448, 491, 526, 551, 603, 656, 711, 763, 816, 855, 883, 913, 943, 970, 995, 1029, 1070, 1108, 1156, 1181, 1214, 1238, 1265, 1311, 1338, 1367, 1404, 1430, 1461, 1487, 1524, 1562, 1593, 1624, 1666, 1701, 1734, 1761, 1789, 1846, 1874, 1895 }; #define msgidxof(code) (0 ? -1 \ : ((code >= 0) && (code <= 6)) ? (code - 0) \ : ((code >= 8) && (code <= 8)) ? (code - 1) \ : ((code >= 16) && (code <= 53)) ? (code - 8) \ : ((code >= 55) && (code <= 63)) ? (code - 9) \ : ((code >= 16382) && (code <= 16382)) ? (code - 16327) \ : 16383 - 16327) libprelude-5.2.0/src/PaxHeaders.14770/jsmn0000644000000000000000000000011013726163657016341 xustar000000000000000024 mtime=1599661999.996 24 atime=1599662006.649 24 ctime=1599661999.996 libprelude-5.2.0/src/jsmn/0000755000000000000000000000000013726163657015421 5ustar00rootroot00000000000000libprelude-5.2.0/src/jsmn/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163516020455 xustar000000000000000024 mtime=1599661902.582 24 atime=1599661945.514 24 ctime=1599661999.991 libprelude-5.2.0/src/jsmn/Makefile.in0000644000000000000000000015436013726163516017471 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/jsmn DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = jsmn.c jsmn.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/jsmn/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/jsmn/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/src/jsmn/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163410020443 xustar000000000000000024 mtime=1599661832.695 23 atime=1599661832.79 24 ctime=1599661999.993 libprelude-5.2.0/src/jsmn/Makefile.am0000644000000000000000000000003313726163410017434 0ustar00rootroot00000000000000EXTRA_DIST = jsmn.c jsmn.h libprelude-5.2.0/src/jsmn/PaxHeaders.14770/jsmn.c0000644000000000000000000000010713726163410017522 xustar000000000000000024 mtime=1599661832.695 23 atime=1599661832.79 24 ctime=1599661999.995 libprelude-5.2.0/src/jsmn/jsmn.c0000644000000000000000000001711113726163410016520 0ustar00rootroot00000000000000#include "jsmn.h" /** * Allocates a fresh unused token from the token pull. */ static jsmntok_t *jsmn_alloc_token(jsmn_parser *parser, jsmntok_t *tokens, size_t num_tokens) { jsmntok_t *tok; if (parser->toknext >= num_tokens) { return NULL; } tok = &tokens[parser->toknext++]; tok->start = tok->end = -1; tok->size = 0; #ifdef JSMN_PARENT_LINKS tok->parent = -1; #endif return tok; } /** * Fills token type and boundaries. */ static void jsmn_fill_token(jsmntok_t *token, jsmntype_t type, int start, int end) { token->type = type; token->start = start; token->end = end; token->size = 0; } /** * Fills next available token with JSON primitive. */ static int jsmn_parse_primitive(jsmn_parser *parser, const char *js, size_t len, jsmntok_t *tokens, size_t num_tokens) { jsmntok_t *token; int start; start = parser->pos; for (; parser->pos < len && js[parser->pos] != '\0'; parser->pos++) { switch (js[parser->pos]) { #ifndef JSMN_STRICT /* In strict mode primitive must be followed by "," or "}" or "]" */ case ':': #endif case '\t' : case '\r' : case '\n' : case ' ' : case ',' : case ']' : case '}' : goto found; } if (js[parser->pos] < 32 || js[parser->pos] >= 127) { parser->pos = start; return JSMN_ERROR_INVAL; } } #ifdef JSMN_STRICT /* In strict mode primitive must be followed by a comma/object/array */ parser->pos = start; return JSMN_ERROR_PART; #endif found: if (tokens == NULL) { parser->pos--; return 0; } token = jsmn_alloc_token(parser, tokens, num_tokens); if (token == NULL) { parser->pos = start; return JSMN_ERROR_NOMEM; } jsmn_fill_token(token, JSMN_PRIMITIVE, start, parser->pos); #ifdef JSMN_PARENT_LINKS token->parent = parser->toksuper; #endif parser->pos--; return 0; } /** * Fills next token with JSON string. */ static int jsmn_parse_string(jsmn_parser *parser, const char *js, size_t len, jsmntok_t *tokens, size_t num_tokens) { jsmntok_t *token; int start = parser->pos; parser->pos++; /* Skip starting quote */ for (; parser->pos < len && js[parser->pos] != '\0'; parser->pos++) { char c = js[parser->pos]; /* Quote: end of string */ if (c == '\"') { if (tokens == NULL) { return 0; } token = jsmn_alloc_token(parser, tokens, num_tokens); if (token == NULL) { parser->pos = start; return JSMN_ERROR_NOMEM; } jsmn_fill_token(token, JSMN_STRING, start+1, parser->pos); #ifdef JSMN_PARENT_LINKS token->parent = parser->toksuper; #endif return 0; } /* Backslash: Quoted symbol expected */ if (c == '\\' && parser->pos + 1 < len) { int i; parser->pos++; switch (js[parser->pos]) { /* Allowed escaped symbols */ case '\"': case '/' : case '\\' : case 'b' : case 'f' : case 'r' : case 'n' : case 't' : break; /* Allows escaped symbol \uXXXX */ case 'u': parser->pos++; for(i = 0; i < 4 && parser->pos < len && js[parser->pos] != '\0'; i++) { /* If it isn't a hex character we have an error */ if(!((js[parser->pos] >= 48 && js[parser->pos] <= 57) || /* 0-9 */ (js[parser->pos] >= 65 && js[parser->pos] <= 70) || /* A-F */ (js[parser->pos] >= 97 && js[parser->pos] <= 102))) { /* a-f */ parser->pos = start; return JSMN_ERROR_INVAL; } parser->pos++; } parser->pos--; break; /* Unexpected symbol */ default: parser->pos = start; return JSMN_ERROR_INVAL; } } } parser->pos = start; return JSMN_ERROR_PART; } /** * Parse JSON string and fill tokens. */ int jsmn_parse(jsmn_parser *parser, const char *js, size_t len, jsmntok_t *tokens, unsigned int num_tokens) { int r; int i; jsmntok_t *token; int count = parser->toknext; for (; parser->pos < len && js[parser->pos] != '\0'; parser->pos++) { char c; jsmntype_t type; c = js[parser->pos]; switch (c) { case '{': case '[': count++; if (tokens == NULL) { break; } token = jsmn_alloc_token(parser, tokens, num_tokens); if (token == NULL) return JSMN_ERROR_NOMEM; if (parser->toksuper != -1) { tokens[parser->toksuper].size++; #ifdef JSMN_PARENT_LINKS token->parent = parser->toksuper; #endif } token->type = (c == '{' ? JSMN_OBJECT : JSMN_ARRAY); token->start = parser->pos; parser->toksuper = parser->toknext - 1; break; case '}': case ']': if (tokens == NULL) break; type = (c == '}' ? JSMN_OBJECT : JSMN_ARRAY); #ifdef JSMN_PARENT_LINKS if (parser->toknext < 1) { return JSMN_ERROR_INVAL; } token = &tokens[parser->toknext - 1]; for (;;) { if (token->start != -1 && token->end == -1) { if (token->type != type) { return JSMN_ERROR_INVAL; } token->end = parser->pos + 1; parser->toksuper = token->parent; break; } if (token->parent == -1) { break; } token = &tokens[token->parent]; } #else for (i = parser->toknext - 1; i >= 0; i--) { token = &tokens[i]; if (token->start != -1 && token->end == -1) { if (token->type != type) { return JSMN_ERROR_INVAL; } parser->toksuper = -1; token->end = parser->pos + 1; break; } } /* Error if unmatched closing bracket */ if (i == -1) return JSMN_ERROR_INVAL; for (; i >= 0; i--) { token = &tokens[i]; if (token->start != -1 && token->end == -1) { parser->toksuper = i; break; } } #endif break; case '\"': r = jsmn_parse_string(parser, js, len, tokens, num_tokens); if (r < 0) return r; count++; if (parser->toksuper != -1 && tokens != NULL) tokens[parser->toksuper].size++; break; case '\t' : case '\r' : case '\n' : case ' ': break; case ':': parser->toksuper = parser->toknext - 1; break; case ',': if (tokens != NULL && parser->toksuper != -1 && tokens[parser->toksuper].type != JSMN_ARRAY && tokens[parser->toksuper].type != JSMN_OBJECT) { #ifdef JSMN_PARENT_LINKS parser->toksuper = tokens[parser->toksuper].parent; #else for (i = parser->toknext - 1; i >= 0; i--) { if (tokens[i].type == JSMN_ARRAY || tokens[i].type == JSMN_OBJECT) { if (tokens[i].start != -1 && tokens[i].end == -1) { parser->toksuper = i; break; } } } #endif } break; #ifdef JSMN_STRICT /* In strict mode primitives are: numbers and booleans */ case '-': case '0': case '1' : case '2': case '3' : case '4': case '5': case '6': case '7' : case '8': case '9': case 't': case 'f': case 'n' : /* And they must not be keys of the object */ if (tokens != NULL && parser->toksuper != -1) { jsmntok_t *t = &tokens[parser->toksuper]; if (t->type == JSMN_OBJECT || (t->type == JSMN_STRING && t->size != 0)) { return JSMN_ERROR_INVAL; } } #else /* In non-strict mode every unquoted value is a primitive */ default: #endif r = jsmn_parse_primitive(parser, js, len, tokens, num_tokens); if (r < 0) return r; count++; if (parser->toksuper != -1 && tokens != NULL) tokens[parser->toksuper].size++; break; #ifdef JSMN_STRICT /* Unexpected char in strict mode */ default: return JSMN_ERROR_INVAL; #endif } } if (tokens != NULL) { for (i = parser->toknext - 1; i >= 0; i--) { /* Unmatched opened object or array */ if (tokens[i].start != -1 && tokens[i].end == -1) { return JSMN_ERROR_PART; } } } return count; } /** * Creates a new parser based over a given buffer with an array of tokens * available. */ void jsmn_init(jsmn_parser *parser) { parser->pos = 0; parser->toknext = 0; parser->toksuper = -1; } libprelude-5.2.0/src/jsmn/PaxHeaders.14770/jsmn.h0000644000000000000000000000010713726163410017527 xustar000000000000000024 mtime=1599661832.696 23 atime=1599661832.79 24 ctime=1599661999.996 libprelude-5.2.0/src/jsmn/jsmn.h0000644000000000000000000000316513726163410016531 0ustar00rootroot00000000000000#ifndef __JSMN_H_ #define __JSMN_H_ #include #ifdef __cplusplus extern "C" { #endif /** * JSON type identifier. Basic types are: * o Object * o Array * o String * o Other primitive: number, boolean (true/false) or null */ typedef enum { JSMN_UNDEFINED = 0, JSMN_OBJECT = 1, JSMN_ARRAY = 2, JSMN_STRING = 3, JSMN_PRIMITIVE = 4 } jsmntype_t; enum jsmnerr { /* Not enough tokens were provided */ JSMN_ERROR_NOMEM = -1, /* Invalid character inside JSON string */ JSMN_ERROR_INVAL = -2, /* The string is not a full JSON packet, more bytes expected */ JSMN_ERROR_PART = -3 }; /** * JSON token description. * @param type type (object, array, string etc.) * @param start start position in JSON data string * @param end end position in JSON data string */ typedef struct { jsmntype_t type; int start; int end; int size; #ifdef JSMN_PARENT_LINKS int parent; #endif } jsmntok_t; /** * JSON parser. Contains an array of token blocks available. Also stores * the string being parsed now and current position in that string */ typedef struct { unsigned int pos; /* offset in the JSON string */ unsigned int toknext; /* next token to allocate */ int toksuper; /* superior token node, e.g parent object or array */ } jsmn_parser; /** * Create JSON parser over an array of tokens */ void jsmn_init(jsmn_parser *parser); /** * Run JSON parser. It parses a JSON data string into and array of tokens, each describing * a single JSON object. */ int jsmn_parse(jsmn_parser *parser, const char *js, size_t len, jsmntok_t *tokens, unsigned int num_tokens); #ifdef __cplusplus } #endif #endif /* __JSMN_H_ */ libprelude-5.2.0/src/PaxHeaders.14770/include0000644000000000000000000000011013726163660017007 xustar000000000000000024 mtime=1599662000.128 24 atime=1599662006.649 24 ctime=1599662000.128 libprelude-5.2.0/src/include/0000755000000000000000000000000013726163660016067 5ustar00rootroot00000000000000libprelude-5.2.0/src/include/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163516021131 xustar000000000000000024 mtime=1599661902.422 24 atime=1599661945.548 24 ctime=1599662000.035 libprelude-5.2.0/src/include/Makefile.in0000644000000000000000000017236013726163516020145 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/include DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/prelude.h.in $(srcdir)/prelude-inttypes.h.in \ $(include_HEADERS) $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = prelude.h prelude-inttypes.h CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)" HEADERS = $(include_HEADERS) $(nodist_include_HEADERS) \ $(noinst_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = $(prefix)/include/libprelude infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ include_HEADERS = common.h \ daemonize.h \ idmef.h \ idmef-additional-data.h \ idmef-class.h \ idmef-criteria.h \ idmef-criterion-value.h \ idmef-data.h \ idmef-message-helpers.h \ idmef-message-id.h \ idmef-message-read.h \ idmef-message-print.h \ idmef-message-write.h \ idmef-message-print-json.h \ idmef-object.h \ idmef-path.h \ idmef-time.h \ idmef-tree-data.h \ idmef-tree-wrap.h \ idmef-value.h \ idmef-value-type.h \ prelude.h \ prelude-async.h \ prelude-extract.h \ prelude-hash.h \ prelude-linked-object.h \ prelude-list.h \ prelude-log.h \ prelude-client.h \ prelude-client-profile.h \ prelude-connection.h \ prelude-connection-pool.h \ prelude-failover.h \ prelude-ident.h \ prelude-io.h \ prelude-macros.h \ prelude-msg.h \ prelude-msgbuf.h \ prelude-message-id.h \ prelude-option.h \ prelude-option-wide.h \ prelude-plugin.h \ prelude-string.h \ prelude-timer.h \ prelude-thread.h nodist_include_HEADERS = prelude.h prelude-inttypes.h noinst_HEADERS = config-engine.h idmef-object-prv.h libmissing.h idmef-tree-data.h ntp.h tls-auth.h tls-util.h variable.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): prelude.h: $(top_builddir)/config.status $(srcdir)/prelude.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ prelude-inttypes.h: $(top_builddir)/config.status $(srcdir)/prelude-inttypes.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) install-nodist_includeHEADERS: $(nodist_include_HEADERS) @$(NORMAL_INSTALL) @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-nodist_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-includeHEADERS install-nodist_includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeHEADERS uninstall-nodist_includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-man install-nodist_includeHEADERS install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-includeHEADERS \ uninstall-nodist_includeHEADERS -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/src/include/PaxHeaders.14770/Makefile.am0000644000000000000000000000011013726163410021111 xustar000000000000000024 mtime=1599661832.685 24 atime=1599661832.787 24 ctime=1599662000.037 libprelude-5.2.0/src/include/Makefile.am0000644000000000000000000000260713726163410020121 0ustar00rootroot00000000000000includedir = $(prefix)/include/libprelude include_HEADERS = common.h \ daemonize.h \ idmef.h \ idmef-additional-data.h \ idmef-class.h \ idmef-criteria.h \ idmef-criterion-value.h \ idmef-data.h \ idmef-message-helpers.h \ idmef-message-id.h \ idmef-message-read.h \ idmef-message-print.h \ idmef-message-write.h \ idmef-message-print-json.h \ idmef-object.h \ idmef-path.h \ idmef-time.h \ idmef-tree-data.h \ idmef-tree-wrap.h \ idmef-value.h \ idmef-value-type.h \ prelude.h \ prelude-async.h \ prelude-extract.h \ prelude-hash.h \ prelude-linked-object.h \ prelude-list.h \ prelude-log.h \ prelude-client.h \ prelude-client-profile.h \ prelude-connection.h \ prelude-connection-pool.h \ prelude-failover.h \ prelude-ident.h \ prelude-io.h \ prelude-macros.h \ prelude-msg.h \ prelude-msgbuf.h \ prelude-message-id.h \ prelude-option.h \ prelude-option-wide.h \ prelude-plugin.h \ prelude-string.h \ prelude-timer.h \ prelude-thread.h nodist_include_HEADERS = prelude.h prelude-inttypes.h noinst_HEADERS = config-engine.h idmef-object-prv.h libmissing.h idmef-tree-data.h ntp.h tls-auth.h tls-util.h variable.h -include $(top_srcdir)/git.mk libprelude-5.2.0/src/include/PaxHeaders.14770/prelude.h.in0000644000000000000000000000010713726163410021301 xustar000000000000000024 mtime=1599661832.695 23 atime=1599661832.79 24 ctime=1599662000.038 libprelude-5.2.0/src/include/prelude.h.in0000644000000000000000000000561313726163410020303 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_H #define _LIBPRELUDE_PRELUDE_H /* * LIBPRELUDE_VERSION: * Version of libprelude this header come from. * * This is mostly used by the libprelude detection routine in libprelude.m4 * to make sure that the header version is consistant with the linked library. */ #define LIBPRELUDE_VERSION "@VERSION@" #define LIBPRELUDE_RELEASE_LEVEL_ALPHA 0xa #define LIBPRELUDE_RELEASE_LEVEL_BETA 0xb #define LIBPRELUDE_RELEASE_LEVEL_RC 0xc #define LIBPRELUDE_RELEASE_LEVEL_FINAL 0xf #define LIBPRELUDE_MAJOR_VERSION @LIBPRELUDE_MAJOR_VERSION@ #define LIBPRELUDE_MINOR_VERSION @LIBPRELUDE_MINOR_VERSION@ #define LIBPRELUDE_MICRO_VERSION @LIBPRELUDE_MICRO_VERSION@ #define LIBPRELUDE_LEVEL_VERSION @LIBPRELUDE_LEVEL_VERSION@ #define LIBPRELUDE_SERIAL_VERSION @LIBPRELUDE_SERIAL_VERSION@ #define LIBPRELUDE_HEXVERSION ((LIBPRELUDE_MAJOR_VERSION << 24) | \ (LIBPRELUDE_MINOR_VERSION << 16) | \ (LIBPRELUDE_MICRO_VERSION << 8) | \ (LIBPRELUDE_LEVEL_VERSION << 4) | \ (LIBPRELUDE_SERIAL_VERSION << 0)) #include "prelude-inttypes.h" #include "prelude-macros.h" #include "common.h" #include "prelude-client.h" #include "prelude-connection.h" #include "prelude-connection-pool.h" #include "prelude-error.h" #include "prelude-io.h" #include "prelude-option.h" #include "prelude-async.h" #include "prelude-error.h" #include "prelude-plugin.h" #include "prelude-msg.h" #include "prelude-msgbuf.h" #include "prelude-timer.h" #include "idmef.h" #ifdef __cplusplus extern "C" { #endif int prelude_init(int *argc, char **argv); void prelude_deinit(void); int prelude_parse_version(const char *version, unsigned int *out); const char *prelude_check_version(const char *req_version); int prelude_thread_init(void *future_use); void prelude_fork_prepare(void); void prelude_fork_parent(void); void prelude_fork_child(void); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-inttypes.h.in0000644000000000000000000000010713726163410023156 xustar000000000000000024 mtime=1599661832.692 24 atime=1599661832.789 23 ctime=1599662000.04 libprelude-5.2.0/src/include/prelude-inttypes.h.in0000644000000000000000000001333013726163410022153 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_INTTYPES_H #define _LIBPRELUDE_INTTYPES_H #ifdef __cplusplus extern "C" { #endif /* * Defined by ax_create_prelude_inttypes_h.m4 */ @__PRELUDE_HAVE_STDINT_H@ @__PRELUDE_HAVE_INTTYPES_H@ @__PRELUDE_HAVE_64BIT_LONG@ @__PRELUDE_STDINT_HAVE_UINT8@ @__PRELUDE_STDINT_HAVE_UINT16@ @__PRELUDE_STDINT_HAVE_UINT32@ @__PRELUDE_STDINT_HAVE_UINT64@ @__PRELUDE_64BIT_FORMAT_PREFIX@ #ifdef __PRELUDE_HAVE_64BIT_LONG #define __PRELUDE_INT64_SUFFIX(x) x ## L #define __PRELUDE_UINT64_SUFFIX(x) x ## UL #else #define __PRELUDE_INT64_SUFFIX(x) x ## LL #define __PRELUDE_UINT64_SUFFIX(x) x ##ULL #endif #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef __PRELUDE_HAVE_STDINT_H # include #endif #ifdef __PRELUDE_HAVE_INTTYPES_H # include #endif #include #ifndef TRUE # define TRUE 1 #endif #ifndef FALSE # define FALSE 0 #endif /* * Minimum of signed integral types. */ #define PRELUDE_INT8_MIN (-128) #define PRELUDE_INT16_MIN (-32767 - 1) #define PRELUDE_INT32_MIN (-2147483647 - 1) #define PRELUDE_INT64_MIN (-__PRELUDE_INT64_SUFFIX(9223372036854775807) - 1) /* * Maximum of signed integral types. */ #define PRELUDE_INT8_MAX (127) #define PRELUDE_INT16_MAX (32767) #define PRELUDE_INT32_MAX (2147483647) #define PRELUDE_INT64_MAX (__PRELUDE_INT64_SUFFIX(9223372036854775807)) /* * Maximum of unsigned integral types. */ #define PRELUDE_UINT8_MAX (255) #define PRELUDE_UINT16_MAX (65535) #define PRELUDE_UINT32_MAX (4294967295U) #define PRELUDE_UINT64_MAX (__PRELUDE_UINT64_SUFFIX(18446744073709551615)) /* * Other */ #define PRELUDE_INTMAX_MIN INT64_MIN #define PRELUDE_INTMAX_MAX INT64_MAX #define PRELUDE_UINTMAX_MAX UINT64_MAX /* * Tandem NonStop R series and compatible platforms released before * July 2005 support %Ld but not %lld. */ # if defined _TNS_R_TARGET # define _LONG_LONG_FORMAT_PREFIX "L" # else # define _LONG_LONG_FORMAT_PREFIX "ll" # endif #if PRELUDE_INT64_MAX == LONG_MAX # define __PRELUDE_64BIT_FORMAT_PREFIX "l" #elif defined _MSC_VER || defined __MINGW32__ # define __PRELUDE_64BIT_FORMAT_PREFIX "I64" #elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define __PRELUDE_64BIT_FORMAT_PREFIX _LONG_LONG_FORMAT_PREFIX #endif /* * format specifier */ #define PRELUDE_PRId64 __PRELUDE_64BIT_FORMAT_PREFIX "d" #define PRELUDE_PRIi64 __PRELUDE_64BIT_FORMAT_PREFIX "i" #define PRELUDE_PRIo64 __PRELUDE_64BIT_FORMAT_PREFIX "o" #define PRELUDE_PRIx64 __PRELUDE_64BIT_FORMAT_PREFIX "x" #define PRELUDE_PRIX64 __PRELUDE_64BIT_FORMAT_PREFIX "X" #define PRELUDE_PRIu64 __PRELUDE_64BIT_FORMAT_PREFIX "u" #define PRELUDE_PRId32 "d" #define PRELUDE_PRIi32 "i" #define PRELUDE_PRIo32 "o" #define PRELUDE_PRIx32 "x" #define PRELUDE_PRIX32 "X" #define PRELUDE_PRIu32 "u" #define PRELUDE_PRId16 "d" #define PRELUDE_PRIi16 "i" #define PRELUDE_PRIo16 "o" #define PRELUDE_PRIx16 "x" #define PRELUDE_PRIX16 "X" #define PRELUDE_PRIu16 "u" #define PRELUDE_PRId8 "d" #define PRELUDE_PRIi8 "i" #define PRELUDE_PRIo8 "o" #define PRELUDE_PRIx8 "x" #define PRELUDE_PRIX8 "X" #define PRELUDE_PRIu8 "u" #define PRELUDE_SCNd64 __PRELUDE_64BIT_FORMAT_PREFIX "d" #define PRELUDE_SCNi64 __PRELUDE_64BIT_FORMAT_PREFIX "i" #define PRELUDE_SCNo64 __PRELUDE_64BIT_FORMAT_PREFIX "o" #define PRELUDE_SCNx64 __PRELUDE_64BIT_FORMAT_PREFIX "x" #define PRELUDE_SCNu64 __PRELUDE_64BIT_FORMAT_PREFIX "u" #define PRELUDE_SCNd32 "d" #define PRELUDE_SCNi32 "i" #define PRELUDE_SCNo32 "o" #define PRELUDE_SCNx32 "x" #define PRELUDE_SCNu32 "u" #define PRELUDE_SCNd16 "hd" #define PRELUDE_SCNi16 "hi" #define PRELUDE_SCNo16 "ho" #define PRELUDE_SCNx16 "hx" #define PRELUDE_SCNu16 "hu" #define PRELUDE_SCNd8 "hhd" #define PRELUDE_SCNi8 "hhi" #define PRELUDE_SCNo8 "hho" #define PRELUDE_SCNx8 "hhx" #define PRELUDE_SCNu8 "hhu" /* * Type definition */ typedef enum { PRELUDE_BOOL_TRUE = TRUE, PRELUDE_BOOL_FALSE = FALSE } prelude_bool_t; #ifndef __PRELUDE_STDINT_HAVE_UINT8 typedef signed char int8_t; typedef unsigned char uint8_t; #endif #ifndef __PRELUDE_STDINT_HAVE_UINT16 typedef short int16_t; typedef unsigned short uint16_t; #endif #ifndef __PRELUDE_STDINT_HAVE_UINT32 typedef int int32_t; typedef unsigned int uint32_t; #endif #ifndef __PRELUDE_STDINT_HAVE_UINT64 # ifdef __PRELUDE_HAVE_64BIT_LONG typedef long int64_t; typedef unsigned long uint64_t; # else typedef long long int64_t; typedef unsigned long long uint64_t; # endif #endif #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_INTTYPES_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/common.h0000644000000000000000000000011013726163410020516 xustar000000000000000024 mtime=1599661832.685 24 atime=1599661832.787 24 ctime=1599662000.042 libprelude-5.2.0/src/include/common.h0000644000000000000000000000664213726163410017531 0ustar00rootroot00000000000000/***** * * Copyright (C) 2002-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_COMMON_H #define _LIBPRELUDE_COMMON_H #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "idmef.h" #include "prelude-msg.h" #include "prelude-inttypes.h" #include "prelude-log.h" #include #ifdef WIN32 # include #else # include # include #endif #include #ifdef __cplusplus extern "C" { #endif #define prelude_return_val_if_fail(cond, val) do { \ if ( ! (cond) ) { \ prelude_log(PRELUDE_LOG_CRIT, "assertion '%s' failed\n", #cond); \ return val; \ } \ } while(0) #define prelude_return_if_fail(cond) do { \ if ( ! (cond) ) { \ prelude_log(PRELUDE_LOG_CRIT, "assertion '%s' failed\n", #cond); \ return; \ } \ } while(0) int prelude_parse_address(const char *str, char **addr, unsigned int *port); uint64_t prelude_hton64(uint64_t val); uint32_t prelude_htonf(float fval); time_t prelude_timegm(struct tm *tm); int prelude_get_gmt_offset(long *gmt_offset); int prelude_get_gmt_offset_from_tm(struct tm *tm, long *gmtoff); int prelude_get_gmt_offset_from_time(const time_t *utc, long *gmtoff); int prelude_read_multiline(FILE *fd, unsigned int *line, char *buf, size_t size); int prelude_read_multiline2(FILE *fd, unsigned int *line, prelude_string_t *out); void *prelude_sockaddr_get_inaddr(struct sockaddr *sa); void *_prelude_realloc(void *ptr, size_t size); int _prelude_get_file_name_and_path(const char *str, char **name, char **path); prelude_msg_priority_t _idmef_impact_severity_to_msg_priority(idmef_impact_severity_t severity); int _idmef_message_assign_missing(prelude_client_t *client, idmef_message_t *msg); int _prelude_load_file(const char *filename, unsigned char **fdata, size_t *outsize); void _prelude_unload_file(unsigned char *fdata, size_t size); double prelude_simple_strtod(const char *s, char **endptr); uint32_t prelude_crc32(const unsigned char *data, size_t length); int prelude_unicode_to_string(prelude_string_t *out, const char *in, size_t len); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_COMMON_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/daemonize.h0000644000000000000000000000011013726163410021201 xustar000000000000000024 mtime=1599661832.685 24 atime=1599661832.787 24 ctime=1599662000.043 libprelude-5.2.0/src/include/daemonize.h0000644000000000000000000000203313726163410020202 0ustar00rootroot00000000000000/***** * * Copyright (C) 2000-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_DAEMONIZE_H #define _LIBPRELUDE_DAEMONIZE_H int prelude_daemonize(const char *lockfile); #endif /* _LIBPRELUDE_DAEMONIZE_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef.h0000644000000000000000000000010713726163410020320 xustar000000000000000023 mtime=1599661832.69 24 atime=1599661832.789 24 ctime=1599662000.045 libprelude-5.2.0/src/include/idmef.h0000644000000000000000000000306413726163410017320 0ustar00rootroot00000000000000/***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * Author: Krzysztof Zaraska * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_H #define _LIBPRELUDE_IDMEF_H #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "prelude-inttypes.h" #include "prelude-list.h" #include "prelude-string.h" #include "idmef-time.h" #include "idmef-data.h" #include "idmef-class.h" #include "idmef-value.h" #include "idmef-object.h" #include "idmef-tree-wrap.h" #include "idmef-path.h" #include "idmef-criterion-value.h" #include "idmef-criteria.h" #include "idmef-message-helpers.h" #include "idmef-message-read.h" #include "idmef-message-write.h" #include "idmef-additional-data.h" #endif /* _LIBPRELUDE_IDMEF_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-additional-data.h0000644000000000000000000000011013726163410023327 xustar000000000000000024 mtime=1599661832.685 24 atime=1599661832.787 24 ctime=1599662000.047 libprelude-5.2.0/src/include/idmef-additional-data.h0000644000000000000000000001164713726163410022343 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_ADDITIONAL_DATA_H #define _LIBPRELUDE_IDMEF_ADDITIONAL_DATA_H #ifdef __cplusplus extern "C" { #endif /* * basic type */ int idmef_additional_data_new_real(idmef_additional_data_t **ret, float data); int idmef_additional_data_new_byte(idmef_additional_data_t **ret, uint8_t byte); int idmef_additional_data_new_integer(idmef_additional_data_t **ret, uint32_t data); int idmef_additional_data_new_boolean(idmef_additional_data_t **ret, prelude_bool_t data); int idmef_additional_data_new_character(idmef_additional_data_t **ret, char data); void idmef_additional_data_set_real(idmef_additional_data_t *ptr, float data); void idmef_additional_data_set_byte(idmef_additional_data_t *ptr, uint8_t byte); void idmef_additional_data_set_integer(idmef_additional_data_t *ptr, uint32_t data); void idmef_additional_data_set_boolean(idmef_additional_data_t *ptr, prelude_bool_t data); void idmef_additional_data_set_character(idmef_additional_data_t *ptr, char data); #define _IDMEF_ADDITIONAL_DATA_DECL(name) \ int idmef_additional_data_new_ ## name ## _ref_fast(idmef_additional_data_t **ad, const char *data, size_t len); \ int idmef_additional_data_new_ ## name ## _ref(idmef_additional_data_t **ad, const char *data); \ int idmef_additional_data_set_ ## name ## _ref_fast(idmef_additional_data_t *ad, const char *data, size_t len); \ int idmef_additional_data_set_ ## name ## _ref(idmef_additional_data_t *ad, const char *data); \ int idmef_additional_data_new_ ## name ## _dup_fast(idmef_additional_data_t **ad, const char *data, size_t len); \ int idmef_additional_data_new_ ## name ## _dup(idmef_additional_data_t **ad, const char *data); \ int idmef_additional_data_set_ ## name ## _dup_fast(idmef_additional_data_t *ad, const char *data, size_t len); \ int idmef_additional_data_set_ ## name ## _dup(idmef_additional_data_t *ad, const char *data); \ int idmef_additional_data_new_ ## name ## _nodup_fast(idmef_additional_data_t **ad, char *data, size_t len); \ int idmef_additional_data_new_ ## name ## _nodup(idmef_additional_data_t **ad, char *data); \ int idmef_additional_data_set_ ## name ## _nodup_fast(idmef_additional_data_t *ad, char *data, size_t len); \ int idmef_additional_data_set_ ## name ## _nodup(idmef_additional_data_t *ad, char *data); _IDMEF_ADDITIONAL_DATA_DECL(string) _IDMEF_ADDITIONAL_DATA_DECL(ntpstamp) _IDMEF_ADDITIONAL_DATA_DECL(date_time) _IDMEF_ADDITIONAL_DATA_DECL(portlist) _IDMEF_ADDITIONAL_DATA_DECL(xml) int idmef_additional_data_new_byte_string_ref(idmef_additional_data_t **ad, const unsigned char *data, size_t len); int idmef_additional_data_set_byte_string_ref(idmef_additional_data_t *ad, const unsigned char *data, size_t len); int idmef_additional_data_new_byte_string_dup(idmef_additional_data_t **ad, const unsigned char *data, size_t len); int idmef_additional_data_set_byte_string_dup(idmef_additional_data_t *ad, const unsigned char *data, size_t len); int idmef_additional_data_new_byte_string_nodup(idmef_additional_data_t **ad, unsigned char *data, size_t len); int idmef_additional_data_set_byte_string_nodup(idmef_additional_data_t *ad, unsigned char *data, size_t len); /* * copy / clone / destroy */ int idmef_additional_data_copy_ref(idmef_additional_data_t *src, idmef_additional_data_t *dst); int idmef_additional_data_copy_dup(idmef_additional_data_t *src, idmef_additional_data_t *dst); /* * Accessors */ float idmef_additional_data_get_real(idmef_additional_data_t *data); uint32_t idmef_additional_data_get_integer(idmef_additional_data_t *data); prelude_bool_t idmef_additional_data_get_boolean(idmef_additional_data_t *data); char idmef_additional_data_get_character(idmef_additional_data_t *data); uint8_t idmef_additional_data_get_byte(idmef_additional_data_t *data); size_t idmef_additional_data_get_len(idmef_additional_data_t *data); prelude_bool_t idmef_additional_data_is_empty(idmef_additional_data_t *data); int idmef_additional_data_data_to_string(idmef_additional_data_t *ad, prelude_string_t *out); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_DATA_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-class.h0000644000000000000000000000011013726163410021415 xustar000000000000000024 mtime=1599661832.686 24 atime=1599661832.787 24 ctime=1599662000.048 libprelude-5.2.0/src/include/idmef-class.h0000644000000000000000000000653013726163410020424 0ustar00rootroot00000000000000/***** * * Copyright (C) 2002-2020 CS GROUP - France. All Rights Reserved. * Author: Krzysztof Zaraska * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_CLASS_H #define _LIBPRELUDE_IDMEF_CLASS_H #ifdef __cplusplus extern "C" { #endif typedef int idmef_class_id_t; typedef int idmef_class_child_id_t; #include "idmef-value.h" /* * */ prelude_bool_t idmef_class_is_child_list(idmef_class_id_t classid, idmef_class_child_id_t child); prelude_bool_t idmef_class_is_child_keyed_list(idmef_class_id_t classid, idmef_class_child_id_t child); prelude_bool_t idmef_class_is_child_union_member(idmef_class_id_t classid, idmef_class_child_id_t child); int idmef_class_get_child_union_id(idmef_class_id_t classid, idmef_class_child_id_t child); idmef_class_id_t idmef_class_get_child_class(idmef_class_id_t classid, idmef_class_child_id_t child); size_t idmef_class_get_child_count(idmef_class_id_t classid); idmef_value_type_id_t idmef_class_get_child_value_type(idmef_class_id_t classid, idmef_class_child_id_t child); const char **idmef_class_get_child_attributes(idmef_class_id_t classid, idmef_class_child_id_t child); /* * */ int idmef_class_enum_to_numeric(idmef_class_id_t classid, const char *val); const char *idmef_class_enum_to_string(idmef_class_id_t classid, int val); /* * */ int idmef_class_get_child(void *ptr, idmef_class_id_t classid, idmef_class_child_id_t child, void **childptr); int idmef_class_new_child(void *ptr, idmef_class_id_t classid, idmef_class_child_id_t child, int n, void **childptr); int idmef_class_destroy_child(void *ptr, idmef_class_id_t classid, idmef_class_child_id_t child, int n); /* * */ idmef_class_id_t idmef_class_find(const char *name); idmef_class_child_id_t idmef_class_find_child(idmef_class_id_t classid, const char *name); /* * */ const char *idmef_class_get_name(idmef_class_id_t classid); const char *idmef_class_get_child_name(idmef_class_id_t classid, idmef_class_child_id_t child); /* * */ int idmef_class_copy(idmef_class_id_t classid, const void *src, void *dst); int idmef_class_clone(idmef_class_id_t classid, const void *src, void **dst); int idmef_class_compare(idmef_class_id_t classid, const void *c1, const void *c2); int idmef_class_ref(idmef_class_id_t classid, void *obj); int idmef_class_print(idmef_class_id_t classid, void *obj, prelude_io_t *fd); int idmef_class_print_json(idmef_class_id_t classid, void *obj, prelude_io_t *fd); int idmef_class_destroy(idmef_class_id_t classid, void *obj); prelude_bool_t idmef_class_is_listed(idmef_class_id_t classid); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_CLASS_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-criteria.h0000644000000000000000000000010713726163410022120 xustar000000000000000024 mtime=1599661832.686 24 atime=1599661832.787 23 ctime=1599662000.05 libprelude-5.2.0/src/include/idmef-criteria.h0000644000000000000000000001203513726163410021116 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_CRITERIA_H #define _LIBPRELUDE_IDMEF_CRITERIA_H #ifdef __cplusplus extern "C" { #endif typedef enum { IDMEF_CRITERIA_OPERATOR_NOT = 0x8000, IDMEF_CRITERIA_OPERATOR_AND = 0x0040, IDMEF_CRITERIA_OPERATOR_OR = 0x0080, } idmef_criteria_operator_t; typedef enum { IDMEF_CRITERION_OPERATOR_NOT = 0x8000, IDMEF_CRITERION_OPERATOR_NOCASE = 0x4000, IDMEF_CRITERION_OPERATOR_EQUAL = 0x0001, IDMEF_CRITERION_OPERATOR_EQUAL_NOCASE = IDMEF_CRITERION_OPERATOR_EQUAL|IDMEF_CRITERION_OPERATOR_NOCASE, IDMEF_CRITERION_OPERATOR_NOT_EQUAL = IDMEF_CRITERION_OPERATOR_NOT|IDMEF_CRITERION_OPERATOR_EQUAL, IDMEF_CRITERION_OPERATOR_NOT_EQUAL_NOCASE = IDMEF_CRITERION_OPERATOR_NOT_EQUAL|IDMEF_CRITERION_OPERATOR_EQUAL_NOCASE, IDMEF_CRITERION_OPERATOR_LESSER = 0x0002, IDMEF_CRITERION_OPERATOR_LESSER_OR_EQUAL = IDMEF_CRITERION_OPERATOR_LESSER|IDMEF_CRITERION_OPERATOR_EQUAL, IDMEF_CRITERION_OPERATOR_GREATER = 0x0004, IDMEF_CRITERION_OPERATOR_GREATER_OR_EQUAL = IDMEF_CRITERION_OPERATOR_GREATER|IDMEF_CRITERION_OPERATOR_EQUAL, IDMEF_CRITERION_OPERATOR_SUBSTR = 0x0008, IDMEF_CRITERION_OPERATOR_SUBSTR_NOCASE = IDMEF_CRITERION_OPERATOR_SUBSTR|IDMEF_CRITERION_OPERATOR_NOCASE, IDMEF_CRITERION_OPERATOR_NOT_SUBSTR = IDMEF_CRITERION_OPERATOR_NOT|IDMEF_CRITERION_OPERATOR_SUBSTR, IDMEF_CRITERION_OPERATOR_NOT_SUBSTR_NOCASE = IDMEF_CRITERION_OPERATOR_NOT|IDMEF_CRITERION_OPERATOR_SUBSTR_NOCASE, IDMEF_CRITERION_OPERATOR_REGEX = 0x0010, IDMEF_CRITERION_OPERATOR_REGEX_NOCASE = IDMEF_CRITERION_OPERATOR_REGEX|IDMEF_CRITERION_OPERATOR_NOCASE, IDMEF_CRITERION_OPERATOR_NOT_REGEX = IDMEF_CRITERION_OPERATOR_NOT|IDMEF_CRITERION_OPERATOR_REGEX, IDMEF_CRITERION_OPERATOR_NOT_REGEX_NOCASE = IDMEF_CRITERION_OPERATOR_NOT|IDMEF_CRITERION_OPERATOR_REGEX_NOCASE, IDMEF_CRITERION_OPERATOR_NULL = 0x0020, IDMEF_CRITERION_OPERATOR_NOT_NULL = IDMEF_CRITERION_OPERATOR_NULL|IDMEF_CRITERION_OPERATOR_NOT, } idmef_criterion_operator_t; typedef struct idmef_criteria idmef_criteria_t; #include "idmef-path.h" #include "idmef-criterion-value.h" const char *idmef_criteria_operator_to_string(idmef_criteria_operator_t op); int idmef_criterion_new(idmef_criteria_t **criterion, idmef_path_t *path, idmef_criterion_value_t *value, idmef_criterion_operator_t op); idmef_criteria_t *idmef_criteria_ref(idmef_criteria_t *criteria); int idmef_criteria_new(idmef_criteria_t **criteria); void idmef_criteria_destroy(idmef_criteria_t *criteria); int idmef_criteria_clone(idmef_criteria_t *src, idmef_criteria_t **dst); int idmef_criteria_print(const idmef_criteria_t *criteria, prelude_io_t *fd); int idmef_criteria_to_string(const idmef_criteria_t *criteria, prelude_string_t *out); prelude_bool_t idmef_criteria_is_criterion(const idmef_criteria_t *criteria); int idmef_criteria_or_criteria(idmef_criteria_t *criteria, idmef_criteria_t *criteria2); int idmef_criteria_and_criteria(idmef_criteria_t *criteria, idmef_criteria_t *criteria2); int idmef_criteria_join(idmef_criteria_t **criteria, idmef_criteria_t *left, idmef_criteria_operator_t op, idmef_criteria_t *right); int idmef_criteria_match(const idmef_criteria_t *criteria, void *object); void idmef_criteria_set_operator(idmef_criteria_t *criteria, idmef_criteria_operator_t op); int idmef_criteria_get_operator(const idmef_criteria_t *criteria); idmef_criteria_t *idmef_criteria_get_left(const idmef_criteria_t *criteria); idmef_criteria_t *idmef_criteria_get_right(const idmef_criteria_t *criteria); idmef_path_t *idmef_criteria_get_path(const idmef_criteria_t *criterion); idmef_criterion_value_t *idmef_criteria_get_value(const idmef_criteria_t *criterion); int idmef_criteria_new_from_string(idmef_criteria_t **criteria, const char *str); idmef_class_id_t idmef_criteria_get_class(const idmef_criteria_t *criteria); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_CRITERIA_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-criterion-value.h0000644000000000000000000000011013726163410023420 xustar000000000000000024 mtime=1599661832.686 24 atime=1599661832.787 24 ctime=1599662000.052 libprelude-5.2.0/src/include/idmef-criterion-value.h0000644000000000000000000000562413726163410022432 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_CRITERION_VALUE_H #define _LIBPRELUDE_IDMEF_CRITERION_VALUE_H #ifdef __cplusplus extern "C" { #endif typedef struct idmef_criterion_value idmef_criterion_value_t; typedef enum { IDMEF_CRITERION_VALUE_TYPE_ERROR = -1, IDMEF_CRITERION_VALUE_TYPE_VALUE = 0, IDMEF_CRITERION_VALUE_TYPE_REGEX = 1, IDMEF_CRITERION_VALUE_TYPE_BROKEN_DOWN_TIME = 2 } idmef_criterion_value_type_t; #include "idmef-criteria.h" #include "idmef-value.h" int idmef_criterion_value_new(idmef_criterion_value_t **cv); int idmef_criterion_value_new_regex(idmef_criterion_value_t **cv, const char *regex, idmef_criterion_operator_t op); int idmef_criterion_value_new_value(idmef_criterion_value_t **cv, idmef_value_t *value, idmef_criterion_operator_t op); int idmef_criterion_value_new_from_string(idmef_criterion_value_t **cv, idmef_path_t *path, const char *value, idmef_criterion_operator_t op); int idmef_criterion_value_new_broken_down_time(idmef_criterion_value_t **cv, const char *time, idmef_criterion_operator_t op); int idmef_criterion_value_clone(const idmef_criterion_value_t *src, idmef_criterion_value_t **dst); void idmef_criterion_value_destroy(idmef_criterion_value_t *value); int idmef_criterion_value_print(idmef_criterion_value_t *value, prelude_io_t *fd); int idmef_criterion_value_to_string(idmef_criterion_value_t *value, prelude_string_t *out); int idmef_criterion_value_match(idmef_criterion_value_t *cv, idmef_value_t *value, idmef_criterion_operator_t op); const idmef_value_t *idmef_criterion_value_get_value(idmef_criterion_value_t *cv); const char *idmef_criterion_value_get_regex(idmef_criterion_value_t *cv); const struct tm *idmef_criterion_value_get_broken_down_time(idmef_criterion_value_t *cv); idmef_criterion_value_type_t idmef_criterion_value_get_type(idmef_criterion_value_t *cv); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_CRITERION_VALUE_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-data.h0000644000000000000000000000011013726163410021221 xustar000000000000000024 mtime=1599661832.686 24 atime=1599661832.787 24 ctime=1599662000.053 libprelude-5.2.0/src/include/idmef-data.h0000644000000000000000000001463413726163410020234 0ustar00rootroot00000000000000/***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_DATA_H #define _LIBPRELUDE_IDMEF_DATA_H #include "prelude-list.h" #ifdef __cplusplus extern "C" { #endif typedef enum { IDMEF_DATA_TYPE_UNKNOWN = 0, IDMEF_DATA_TYPE_CHAR = 1, IDMEF_DATA_TYPE_BYTE = 2, IDMEF_DATA_TYPE_UINT32 = 3, IDMEF_DATA_TYPE_UINT64 = 4, IDMEF_DATA_TYPE_INT = 4, IDMEF_DATA_TYPE_FLOAT = 5, IDMEF_DATA_TYPE_CHAR_STRING = 6, IDMEF_DATA_TYPE_BYTE_STRING = 7, IDMEF_DATA_TYPE_TIME = 8 } idmef_data_type_t; typedef struct { int refcount; int flags; idmef_data_type_t type; size_t len; union { char char_data; uint8_t byte_data; int64_t int_data; float float_data; void *rw_data; const void *ro_data; } data; prelude_list_t list; } idmef_data_t; int idmef_data_new(idmef_data_t **data); idmef_data_t *idmef_data_ref(idmef_data_t *data); int idmef_data_new_char(idmef_data_t **data, char c); int idmef_data_new_byte(idmef_data_t **data, uint8_t i); int idmef_data_new_uint32(idmef_data_t **data, uint32_t i) PRELUDE_DEPRECATED; int idmef_data_new_uint64(idmef_data_t **data, uint64_t i) PRELUDE_DEPRECATED; int idmef_data_new_int(idmef_data_t **data, int64_t i); int idmef_data_new_float(idmef_data_t **data, float f); int idmef_data_new_time(idmef_data_t **data, idmef_time_t *time); void idmef_data_set_char(idmef_data_t *data, char c); void idmef_data_set_byte(idmef_data_t *data, uint8_t i); void idmef_data_set_uint32(idmef_data_t *data, uint32_t i) PRELUDE_DEPRECATED; void idmef_data_set_uint64(idmef_data_t *data, uint64_t i) PRELUDE_DEPRECATED; void idmef_data_set_int(idmef_data_t *data, int64_t i); void idmef_data_set_float(idmef_data_t *data, float f); void idmef_data_set_time(idmef_data_t *data, idmef_time_t *time); int idmef_data_set_ptr_dup_fast(idmef_data_t *data, idmef_data_type_t type, const void *ptr, size_t len); int idmef_data_set_ptr_ref_fast(idmef_data_t *data, idmef_data_type_t type, const void *ptr, size_t len); int idmef_data_set_ptr_nodup_fast(idmef_data_t *data, idmef_data_type_t type, void *ptr, size_t len); int idmef_data_new_ptr_dup_fast(idmef_data_t **data, idmef_data_type_t type, const void *ptr, size_t len); int idmef_data_new_ptr_ref_fast(idmef_data_t **data, idmef_data_type_t type, const void *ptr, size_t len); int idmef_data_new_ptr_nodup_fast(idmef_data_t **data, idmef_data_type_t type, void *ptr, size_t len); /* * String functions */ int idmef_data_set_char_string_dup_fast(idmef_data_t *data, const char *str, size_t len); int idmef_data_new_char_string_dup_fast(idmef_data_t **data, const char *str, size_t len); int idmef_data_new_char_string_ref_fast(idmef_data_t **data, const char *ptr, size_t len); int idmef_data_new_char_string_nodup_fast(idmef_data_t **data, char *ptr, size_t len); int idmef_data_set_char_string_ref_fast(idmef_data_t *data, const char *ptr, size_t len); int idmef_data_set_char_string_nodup_fast(idmef_data_t *data, char *ptr, size_t len); int idmef_data_new_char_string_ref(idmef_data_t **data, const char *ptr); int idmef_data_new_char_string_dup(idmef_data_t **data, const char *ptr); int idmef_data_new_char_string_nodup(idmef_data_t **data, char *ptr); int idmef_data_set_char_string_ref(idmef_data_t *data, const char *ptr); int idmef_data_set_char_string_dup(idmef_data_t *data, const char *ptr); int idmef_data_set_char_string_nodup(idmef_data_t *data, char *ptr); #define idmef_data_set_char_string_constant(string, str) \ idmef_data_set_char_string_ref_fast((string), (str), sizeof((str)) - 1) /* * Byte functions */ int idmef_data_new_byte_string_ref(idmef_data_t **data, const unsigned char *ptr, size_t len); int idmef_data_new_byte_string_dup(idmef_data_t **data, const unsigned char *ptr, size_t len); int idmef_data_new_byte_string_nodup(idmef_data_t **data, unsigned char *ptr, size_t len); int idmef_data_set_byte_string_ref(idmef_data_t *data, const unsigned char *ptr, size_t len); int idmef_data_set_byte_string_dup(idmef_data_t *data, const unsigned char *ptr, size_t len); int idmef_data_set_byte_string_nodup(idmef_data_t *data, unsigned char *ptr, size_t len); /* * */ void idmef_data_destroy(idmef_data_t *data); int idmef_data_copy_ref(const idmef_data_t *src, idmef_data_t *dst); int idmef_data_copy_dup(const idmef_data_t *src, idmef_data_t *dst); int idmef_data_clone(const idmef_data_t *src, idmef_data_t **dst); idmef_data_type_t idmef_data_get_type(const idmef_data_t *data); size_t idmef_data_get_len(const idmef_data_t *data); const void *idmef_data_get_data(const idmef_data_t *data); char idmef_data_get_char(const idmef_data_t *data); uint8_t idmef_data_get_byte(const idmef_data_t *data); uint32_t idmef_data_get_uint32(const idmef_data_t *data) PRELUDE_DEPRECATED; uint64_t idmef_data_get_uint64(const idmef_data_t *data) PRELUDE_DEPRECATED; int64_t idmef_data_get_int(const idmef_data_t *data); float idmef_data_get_float(const idmef_data_t *data); const char *idmef_data_get_char_string(const idmef_data_t *data); const unsigned char *idmef_data_get_byte_string(const idmef_data_t *data); prelude_bool_t idmef_data_is_empty(const idmef_data_t *data); int idmef_data_to_string(const idmef_data_t *data, prelude_string_t *out); void idmef_data_destroy_internal(idmef_data_t *data); int idmef_data_compare(const idmef_data_t *data1, const idmef_data_t *data2); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_DATA_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-message-helpers.h0000644000000000000000000000011013726163410023374 xustar000000000000000024 mtime=1599661832.686 24 atime=1599661832.787 24 ctime=1599662000.055 libprelude-5.2.0/src/include/idmef-message-helpers.h0000644000000000000000000000322213726163410022376 0ustar00rootroot00000000000000/***** * * Copyright (C) 2008-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ int idmef_message_set_value(idmef_message_t *message, const char *path, idmef_value_t *value); int idmef_message_get_value(idmef_message_t *message, const char *path, idmef_value_t **value); int idmef_message_set_string(idmef_message_t *message, const char *path, const char *value); int idmef_message_get_string(idmef_message_t *message, const char *path, char **result); int idmef_message_set_number(idmef_message_t *message, const char *path, double number); int idmef_message_get_number(idmef_message_t *message, const char *path, double *result); int idmef_message_set_data(idmef_message_t *message, const char *path, const unsigned char *data, size_t size); int idmef_message_get_data(idmef_message_t *message, const char *path, unsigned char **data, size_t *size); libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-message-id.h0000644000000000000000000000011013726163410022326 xustar000000000000000024 mtime=1599661832.687 24 atime=1599661832.787 24 ctime=1599662000.057 libprelude-5.2.0/src/include/idmef-message-id.h0000644000000000000000000001472313726163410021340 0ustar00rootroot00000000000000 /* Auto-generated by the GenerateIDMEFMessageIdH package */ #ifndef _LIBPRELUDE_IDMEF_MESSAGE_ID_H #define _LIBPRELUDE_IDMEF_MESSAGE_ID_H /* * Misc value */ #define IDMEF_MSG_OWN_FORMAT 253 #define IDMEF_MSG_END_OF_TAG 254 /* * Tag value */ #define IDMEF_MSG_ADDITIONAL_DATA_TAG 0 #define IDMEF_MSG_REFERENCE_TAG 1 #define IDMEF_MSG_CLASSIFICATION_TAG 2 #define IDMEF_MSG_USER_ID_TAG 3 #define IDMEF_MSG_USER_TAG 4 #define IDMEF_MSG_ADDRESS_TAG 5 #define IDMEF_MSG_PROCESS_TAG 6 #define IDMEF_MSG_WEB_SERVICE_TAG 7 #define IDMEF_MSG_SNMP_SERVICE_TAG 8 #define IDMEF_MSG_SERVICE_TAG 9 #define IDMEF_MSG_NODE_TAG 10 #define IDMEF_MSG_SOURCE_TAG 11 #define IDMEF_MSG_FILE_ACCESS_TAG 12 #define IDMEF_MSG_INODE_TAG 13 #define IDMEF_MSG_CHECKSUM_TAG 14 #define IDMEF_MSG_FILE_TAG 15 #define IDMEF_MSG_LINKAGE_TAG 16 #define IDMEF_MSG_TARGET_TAG 17 #define IDMEF_MSG_ANALYZER_TAG 18 #define IDMEF_MSG_ALERTIDENT_TAG 19 #define IDMEF_MSG_IMPACT_TAG 20 #define IDMEF_MSG_ACTION_TAG 21 #define IDMEF_MSG_CONFIDENCE_TAG 22 #define IDMEF_MSG_ASSESSMENT_TAG 23 #define IDMEF_MSG_TOOL_ALERT_TAG 24 #define IDMEF_MSG_CORRELATION_ALERT_TAG 25 #define IDMEF_MSG_OVERFLOW_ALERT_TAG 26 #define IDMEF_MSG_ALERT_TAG 27 #define IDMEF_MSG_HEARTBEAT_TAG 28 /* * IDMEF Additional_data */ #define IDMEF_MSG_ADDITIONAL_DATA_MEANING 30 #define IDMEF_MSG_ADDITIONAL_DATA_TYPE 29 #define IDMEF_MSG_ADDITIONAL_DATA_DATA 31 /* * IDMEF Reference */ #define IDMEF_MSG_REFERENCE_ORIGIN 29 #define IDMEF_MSG_REFERENCE_NAME 30 #define IDMEF_MSG_REFERENCE_URL 31 #define IDMEF_MSG_REFERENCE_MEANING 32 /* * IDMEF Classification */ #define IDMEF_MSG_CLASSIFICATION_IDENT 29 #define IDMEF_MSG_CLASSIFICATION_TEXT 30 /* * IDMEF User_id */ #define IDMEF_MSG_USER_ID_IDENT 29 #define IDMEF_MSG_USER_ID_TYPE 30 #define IDMEF_MSG_USER_ID_TTY 31 #define IDMEF_MSG_USER_ID_NAME 32 #define IDMEF_MSG_USER_ID_NUMBER 33 /* * IDMEF User */ #define IDMEF_MSG_USER_IDENT 29 #define IDMEF_MSG_USER_CATEGORY 30 /* * IDMEF Address */ #define IDMEF_MSG_ADDRESS_IDENT 29 #define IDMEF_MSG_ADDRESS_CATEGORY 30 #define IDMEF_MSG_ADDRESS_VLAN_NAME 31 #define IDMEF_MSG_ADDRESS_VLAN_NUM 32 #define IDMEF_MSG_ADDRESS_ADDRESS 33 #define IDMEF_MSG_ADDRESS_NETMASK 34 /* * IDMEF Process */ #define IDMEF_MSG_PROCESS_IDENT 29 #define IDMEF_MSG_PROCESS_NAME 30 #define IDMEF_MSG_PROCESS_PID 31 #define IDMEF_MSG_PROCESS_PATH 32 #define IDMEF_MSG_PROCESS_ARG 33 #define IDMEF_MSG_PROCESS_ENV 34 /* * IDMEF Web_service */ #define IDMEF_MSG_WEB_SERVICE_URL 29 #define IDMEF_MSG_WEB_SERVICE_CGI 30 #define IDMEF_MSG_WEB_SERVICE_HTTP_METHOD 31 #define IDMEF_MSG_WEB_SERVICE_ARG 32 /* * IDMEF Snmp_service */ #define IDMEF_MSG_SNMP_SERVICE_OID 29 #define IDMEF_MSG_SNMP_SERVICE_MESSAGE_PROCESSING_MODEL 30 #define IDMEF_MSG_SNMP_SERVICE_SECURITY_MODEL 31 #define IDMEF_MSG_SNMP_SERVICE_SECURITY_NAME 32 #define IDMEF_MSG_SNMP_SERVICE_SECURITY_LEVEL 33 #define IDMEF_MSG_SNMP_SERVICE_CONTEXT_NAME 34 #define IDMEF_MSG_SNMP_SERVICE_CONTEXT_ENGINE_ID 35 #define IDMEF_MSG_SNMP_SERVICE_COMMAND 36 /* * IDMEF Service */ #define IDMEF_MSG_SERVICE_IDENT 29 #define IDMEF_MSG_SERVICE_IP_VERSION 30 #define IDMEF_MSG_SERVICE_IANA_PROTOCOL_NUMBER 31 #define IDMEF_MSG_SERVICE_IANA_PROTOCOL_NAME 32 #define IDMEF_MSG_SERVICE_NAME 33 #define IDMEF_MSG_SERVICE_PORT 34 #define IDMEF_MSG_SERVICE_PORTLIST 35 #define IDMEF_MSG_SERVICE_PROTOCOL 36 /* * IDMEF Node */ #define IDMEF_MSG_NODE_IDENT 29 #define IDMEF_MSG_NODE_CATEGORY 30 #define IDMEF_MSG_NODE_NAME 32 #define IDMEF_MSG_NODE_LOCATION 31 /* * IDMEF Source */ #define IDMEF_MSG_SOURCE_IDENT 29 #define IDMEF_MSG_SOURCE_SPOOFED 30 #define IDMEF_MSG_SOURCE_INTERFACE 31 /* * IDMEF File_access */ #define IDMEF_MSG_FILE_ACCESS_PERMISSION 29 /* * IDMEF Inode */ #define IDMEF_MSG_INODE_CHANGE_TIME 29 #define IDMEF_MSG_INODE_NUMBER 30 #define IDMEF_MSG_INODE_MAJOR_DEVICE 31 #define IDMEF_MSG_INODE_MINOR_DEVICE 32 #define IDMEF_MSG_INODE_C_MAJOR_DEVICE 33 #define IDMEF_MSG_INODE_C_MINOR_DEVICE 34 /* * IDMEF Checksum */ #define IDMEF_MSG_CHECKSUM_VALUE 29 #define IDMEF_MSG_CHECKSUM_KEY 30 #define IDMEF_MSG_CHECKSUM_ALGORITHM 31 /* * IDMEF File */ #define IDMEF_MSG_FILE_IDENT 29 #define IDMEF_MSG_FILE_NAME 30 #define IDMEF_MSG_FILE_PATH 31 #define IDMEF_MSG_FILE_CREATE_TIME 32 #define IDMEF_MSG_FILE_MODIFY_TIME 33 #define IDMEF_MSG_FILE_ACCESS_TIME 34 #define IDMEF_MSG_FILE_DATA_SIZE 35 #define IDMEF_MSG_FILE_DISK_SIZE 36 #define IDMEF_MSG_FILE_CATEGORY 37 #define IDMEF_MSG_FILE_FSTYPE 38 #define IDMEF_MSG_FILE_FILE_TYPE 39 /* * IDMEF Linkage */ #define IDMEF_MSG_LINKAGE_CATEGORY 29 #define IDMEF_MSG_LINKAGE_NAME 30 #define IDMEF_MSG_LINKAGE_PATH 31 /* * IDMEF Target */ #define IDMEF_MSG_TARGET_IDENT 29 #define IDMEF_MSG_TARGET_DECOY 30 #define IDMEF_MSG_TARGET_INTERFACE 31 /* * IDMEF Analyzer */ #define IDMEF_MSG_ANALYZER_ANALYZERID 29 #define IDMEF_MSG_ANALYZER_NAME 30 #define IDMEF_MSG_ANALYZER_MANUFACTURER 31 #define IDMEF_MSG_ANALYZER_MODEL 32 #define IDMEF_MSG_ANALYZER_VERSION 33 #define IDMEF_MSG_ANALYZER_CLASS 34 #define IDMEF_MSG_ANALYZER_OSTYPE 35 #define IDMEF_MSG_ANALYZER_OSVERSION 36 /* * IDMEF Alertident */ #define IDMEF_MSG_ALERTIDENT_ALERTIDENT 29 #define IDMEF_MSG_ALERTIDENT_ANALYZERID 30 /* * IDMEF Impact */ #define IDMEF_MSG_IMPACT_SEVERITY 29 #define IDMEF_MSG_IMPACT_COMPLETION 30 #define IDMEF_MSG_IMPACT_TYPE 31 #define IDMEF_MSG_IMPACT_DESCRIPTION 32 /* * IDMEF Action */ #define IDMEF_MSG_ACTION_CATEGORY 29 #define IDMEF_MSG_ACTION_DESCRIPTION 30 /* * IDMEF Confidence */ #define IDMEF_MSG_CONFIDENCE_RATING 29 #define IDMEF_MSG_CONFIDENCE_CONFIDENCE 30 /* * IDMEF Assessment */ /* * IDMEF Tool_alert */ #define IDMEF_MSG_TOOL_ALERT_NAME 29 #define IDMEF_MSG_TOOL_ALERT_COMMAND 30 /* * IDMEF Correlation_alert */ #define IDMEF_MSG_CORRELATION_ALERT_NAME 29 /* * IDMEF Overflow_alert */ #define IDMEF_MSG_OVERFLOW_ALERT_PROGRAM 29 #define IDMEF_MSG_OVERFLOW_ALERT_SIZE 30 #define IDMEF_MSG_OVERFLOW_ALERT_BUFFER 31 /* * IDMEF Alert */ #define IDMEF_MSG_ALERT_MESSAGEID 29 #define IDMEF_MSG_ALERT_CREATE_TIME 30 #define IDMEF_MSG_ALERT_DETECT_TIME 31 #define IDMEF_MSG_ALERT_ANALYZER_TIME 32 /* * IDMEF Heartbeat */ #define IDMEF_MSG_HEARTBEAT_MESSAGEID 29 #define IDMEF_MSG_HEARTBEAT_CREATE_TIME 30 #define IDMEF_MSG_HEARTBEAT_ANALYZER_TIME 31 #define IDMEF_MSG_HEARTBEAT_HEARTBEAT_INTERVAL 32 /* * IDMEF Message */ #define IDMEF_MSG_MESSAGE_VERSION 29 #endif /* _LIBPRELUDE_IDMEF_MESSAGE_ID_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-message-read.h0000644000000000000000000000011013726163410022645 xustar000000000000000024 mtime=1599661832.687 24 atime=1599661832.788 24 ctime=1599662000.058 libprelude-5.2.0/src/include/idmef-message-read.h0000644000000000000000000000673713726163410021665 0ustar00rootroot00000000000000 /***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* Auto-generated by the GenerateIDMEFMessageReadH package */ #ifndef _LIBPRELUDE_IDMEF_MESSAGE_READ_H #define _LIBPRELUDE_IDMEF_MESSAGE_READ_H #include "prelude-inttypes.h" #include "prelude-msgbuf.h" #ifdef __cplusplus extern "C" { #endif int idmef_additional_data_read(idmef_additional_data_t *additional_data, prelude_msg_t *msg); int idmef_reference_read(idmef_reference_t *reference, prelude_msg_t *msg); int idmef_classification_read(idmef_classification_t *classification, prelude_msg_t *msg); int idmef_user_id_read(idmef_user_id_t *user_id, prelude_msg_t *msg); int idmef_user_read(idmef_user_t *user, prelude_msg_t *msg); int idmef_address_read(idmef_address_t *address, prelude_msg_t *msg); int idmef_process_read(idmef_process_t *process, prelude_msg_t *msg); int idmef_web_service_read(idmef_web_service_t *web_service, prelude_msg_t *msg); int idmef_snmp_service_read(idmef_snmp_service_t *snmp_service, prelude_msg_t *msg); int idmef_service_read(idmef_service_t *service, prelude_msg_t *msg); int idmef_node_read(idmef_node_t *node, prelude_msg_t *msg); int idmef_source_read(idmef_source_t *source, prelude_msg_t *msg); int idmef_file_access_read(idmef_file_access_t *file_access, prelude_msg_t *msg); int idmef_inode_read(idmef_inode_t *inode, prelude_msg_t *msg); int idmef_checksum_read(idmef_checksum_t *checksum, prelude_msg_t *msg); int idmef_file_read(idmef_file_t *file, prelude_msg_t *msg); int idmef_linkage_read(idmef_linkage_t *linkage, prelude_msg_t *msg); int idmef_target_read(idmef_target_t *target, prelude_msg_t *msg); int idmef_analyzer_read(idmef_analyzer_t *analyzer, prelude_msg_t *msg); int idmef_alertident_read(idmef_alertident_t *alertident, prelude_msg_t *msg); int idmef_impact_read(idmef_impact_t *impact, prelude_msg_t *msg); int idmef_action_read(idmef_action_t *action, prelude_msg_t *msg); int idmef_confidence_read(idmef_confidence_t *confidence, prelude_msg_t *msg); int idmef_assessment_read(idmef_assessment_t *assessment, prelude_msg_t *msg); int idmef_tool_alert_read(idmef_tool_alert_t *tool_alert, prelude_msg_t *msg); int idmef_correlation_alert_read(idmef_correlation_alert_t *correlation_alert, prelude_msg_t *msg); int idmef_overflow_alert_read(idmef_overflow_alert_t *overflow_alert, prelude_msg_t *msg); int idmef_alert_read(idmef_alert_t *alert, prelude_msg_t *msg); int idmef_heartbeat_read(idmef_heartbeat_t *heartbeat, prelude_msg_t *msg); int idmef_message_read(idmef_message_t *message, prelude_msg_t *msg); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_MESSAGE_READ_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-message-print.h0000644000000000000000000000010713726163410023074 xustar000000000000000024 mtime=1599661832.687 24 atime=1599661832.788 23 ctime=1599662000.06 libprelude-5.2.0/src/include/idmef-message-print.h0000644000000000000000000000625113726163410022075 0ustar00rootroot00000000000000 /***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* Auto-generated by the GenerateIDMEFTreePrintH package */ #ifndef _LIBPRELUDE_IDMEF_MESSAGE_PRINT_H #define _LIBPRELUDE_IDMEF_MESSAGE_PRINT_H #ifdef __cplusplus extern "C" { #endif void idmef_additional_data_print(idmef_additional_data_t *ptr, prelude_io_t *fd); void idmef_reference_print(idmef_reference_t *ptr, prelude_io_t *fd); void idmef_classification_print(idmef_classification_t *ptr, prelude_io_t *fd); void idmef_user_id_print(idmef_user_id_t *ptr, prelude_io_t *fd); void idmef_user_print(idmef_user_t *ptr, prelude_io_t *fd); void idmef_address_print(idmef_address_t *ptr, prelude_io_t *fd); void idmef_process_print(idmef_process_t *ptr, prelude_io_t *fd); void idmef_web_service_print(idmef_web_service_t *ptr, prelude_io_t *fd); void idmef_snmp_service_print(idmef_snmp_service_t *ptr, prelude_io_t *fd); void idmef_service_print(idmef_service_t *ptr, prelude_io_t *fd); void idmef_node_print(idmef_node_t *ptr, prelude_io_t *fd); void idmef_source_print(idmef_source_t *ptr, prelude_io_t *fd); void idmef_file_access_print(idmef_file_access_t *ptr, prelude_io_t *fd); void idmef_inode_print(idmef_inode_t *ptr, prelude_io_t *fd); void idmef_checksum_print(idmef_checksum_t *ptr, prelude_io_t *fd); void idmef_file_print(idmef_file_t *ptr, prelude_io_t *fd); void idmef_linkage_print(idmef_linkage_t *ptr, prelude_io_t *fd); void idmef_target_print(idmef_target_t *ptr, prelude_io_t *fd); void idmef_analyzer_print(idmef_analyzer_t *ptr, prelude_io_t *fd); void idmef_alertident_print(idmef_alertident_t *ptr, prelude_io_t *fd); void idmef_impact_print(idmef_impact_t *ptr, prelude_io_t *fd); void idmef_action_print(idmef_action_t *ptr, prelude_io_t *fd); void idmef_confidence_print(idmef_confidence_t *ptr, prelude_io_t *fd); void idmef_assessment_print(idmef_assessment_t *ptr, prelude_io_t *fd); void idmef_tool_alert_print(idmef_tool_alert_t *ptr, prelude_io_t *fd); void idmef_correlation_alert_print(idmef_correlation_alert_t *ptr, prelude_io_t *fd); void idmef_overflow_alert_print(idmef_overflow_alert_t *ptr, prelude_io_t *fd); void idmef_alert_print(idmef_alert_t *ptr, prelude_io_t *fd); void idmef_heartbeat_print(idmef_heartbeat_t *ptr, prelude_io_t *fd); void idmef_message_print(idmef_message_t *ptr, prelude_io_t *fd); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_MESSAGE_PRINT_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-message-write.h0000644000000000000000000000011013726163410023064 xustar000000000000000024 mtime=1599661832.687 24 atime=1599661832.788 24 ctime=1599662000.062 libprelude-5.2.0/src/include/idmef-message-write.h0000644000000000000000000000707113726163410022074 0ustar00rootroot00000000000000 /***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* Auto-generated by the GenerateIDMEFMessageWriteH package */ #ifndef _LIBPRELUDE_IDMEF_MESSAGE_WRITE_H #define _LIBPRELUDE_IDMEF_MESSAGE_WRITE_H #include "prelude-inttypes.h" #include "idmef-time.h" #include "prelude-string.h" #include "prelude-msgbuf.h" #ifdef __cplusplus extern "C" { #endif int idmef_additional_data_write(idmef_additional_data_t *additional_data, prelude_msgbuf_t *msg); int idmef_reference_write(idmef_reference_t *reference, prelude_msgbuf_t *msg); int idmef_classification_write(idmef_classification_t *classification, prelude_msgbuf_t *msg); int idmef_user_id_write(idmef_user_id_t *user_id, prelude_msgbuf_t *msg); int idmef_user_write(idmef_user_t *user, prelude_msgbuf_t *msg); int idmef_address_write(idmef_address_t *address, prelude_msgbuf_t *msg); int idmef_process_write(idmef_process_t *process, prelude_msgbuf_t *msg); int idmef_web_service_write(idmef_web_service_t *web_service, prelude_msgbuf_t *msg); int idmef_snmp_service_write(idmef_snmp_service_t *snmp_service, prelude_msgbuf_t *msg); int idmef_service_write(idmef_service_t *service, prelude_msgbuf_t *msg); int idmef_node_write(idmef_node_t *node, prelude_msgbuf_t *msg); int idmef_source_write(idmef_source_t *source, prelude_msgbuf_t *msg); int idmef_file_access_write(idmef_file_access_t *file_access, prelude_msgbuf_t *msg); int idmef_inode_write(idmef_inode_t *inode, prelude_msgbuf_t *msg); int idmef_checksum_write(idmef_checksum_t *checksum, prelude_msgbuf_t *msg); int idmef_file_write(idmef_file_t *file, prelude_msgbuf_t *msg); int idmef_linkage_write(idmef_linkage_t *linkage, prelude_msgbuf_t *msg); int idmef_target_write(idmef_target_t *target, prelude_msgbuf_t *msg); int idmef_analyzer_write(idmef_analyzer_t *analyzer, prelude_msgbuf_t *msg); int idmef_alertident_write(idmef_alertident_t *alertident, prelude_msgbuf_t *msg); int idmef_impact_write(idmef_impact_t *impact, prelude_msgbuf_t *msg); int idmef_action_write(idmef_action_t *action, prelude_msgbuf_t *msg); int idmef_confidence_write(idmef_confidence_t *confidence, prelude_msgbuf_t *msg); int idmef_assessment_write(idmef_assessment_t *assessment, prelude_msgbuf_t *msg); int idmef_tool_alert_write(idmef_tool_alert_t *tool_alert, prelude_msgbuf_t *msg); int idmef_correlation_alert_write(idmef_correlation_alert_t *correlation_alert, prelude_msgbuf_t *msg); int idmef_overflow_alert_write(idmef_overflow_alert_t *overflow_alert, prelude_msgbuf_t *msg); int idmef_alert_write(idmef_alert_t *alert, prelude_msgbuf_t *msg); int idmef_heartbeat_write(idmef_heartbeat_t *heartbeat, prelude_msgbuf_t *msg); int idmef_message_write(idmef_message_t *message, prelude_msgbuf_t *msg); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_MESSAGE_WRITE_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-message-print-json.h0000644000000000000000000000011013726163410024035 xustar000000000000000024 mtime=1599661832.687 24 atime=1599661832.788 24 ctime=1599662000.063 libprelude-5.2.0/src/include/idmef-message-print-json.h0000644000000000000000000000655113726163410023047 0ustar00rootroot00000000000000 /***** * * Copyright (C) 2016-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* Auto-generated by the GenerateIDMEFTreeJSONH package */ #ifndef _LIBPRELUDE_IDMEF_MESSAGE_PRINT_JSON_H #define _LIBPRELUDE_IDMEF_MESSAGE_PRINT_JSON_H #ifdef __cplusplus extern "C" { #endif int idmef_additional_data_print_json(idmef_additional_data_t *ptr, prelude_io_t *fd); int idmef_reference_print_json(idmef_reference_t *ptr, prelude_io_t *fd); int idmef_classification_print_json(idmef_classification_t *ptr, prelude_io_t *fd); int idmef_user_id_print_json(idmef_user_id_t *ptr, prelude_io_t *fd); int idmef_user_print_json(idmef_user_t *ptr, prelude_io_t *fd); int idmef_address_print_json(idmef_address_t *ptr, prelude_io_t *fd); int idmef_process_print_json(idmef_process_t *ptr, prelude_io_t *fd); int idmef_web_service_print_json(idmef_web_service_t *ptr, prelude_io_t *fd); int idmef_snmp_service_print_json(idmef_snmp_service_t *ptr, prelude_io_t *fd); int idmef_service_print_json(idmef_service_t *ptr, prelude_io_t *fd); int idmef_node_print_json(idmef_node_t *ptr, prelude_io_t *fd); int idmef_source_print_json(idmef_source_t *ptr, prelude_io_t *fd); int idmef_file_access_print_json(idmef_file_access_t *ptr, prelude_io_t *fd); int idmef_inode_print_json(idmef_inode_t *ptr, prelude_io_t *fd); int idmef_checksum_print_json(idmef_checksum_t *ptr, prelude_io_t *fd); int idmef_file_print_json(idmef_file_t *ptr, prelude_io_t *fd); int idmef_linkage_print_json(idmef_linkage_t *ptr, prelude_io_t *fd); int idmef_target_print_json(idmef_target_t *ptr, prelude_io_t *fd); int idmef_analyzer_print_json(idmef_analyzer_t *ptr, prelude_io_t *fd); int idmef_alertident_print_json(idmef_alertident_t *ptr, prelude_io_t *fd); int idmef_impact_print_json(idmef_impact_t *ptr, prelude_io_t *fd); int idmef_action_print_json(idmef_action_t *ptr, prelude_io_t *fd); int idmef_confidence_print_json(idmef_confidence_t *ptr, prelude_io_t *fd); int idmef_assessment_print_json(idmef_assessment_t *ptr, prelude_io_t *fd); int idmef_tool_alert_print_json(idmef_tool_alert_t *ptr, prelude_io_t *fd); int idmef_correlation_alert_print_json(idmef_correlation_alert_t *ptr, prelude_io_t *fd); int idmef_overflow_alert_print_json(idmef_overflow_alert_t *ptr, prelude_io_t *fd); int idmef_alert_print_json(idmef_alert_t *ptr, prelude_io_t *fd); int idmef_heartbeat_print_json(idmef_heartbeat_t *ptr, prelude_io_t *fd); int idmef_message_print_json(idmef_message_t *ptr, prelude_io_t *fd); int idmef_message_print_json(idmef_message_t *ptr, prelude_io_t *fd); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_MESSAGE_JSON_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-object.h0000644000000000000000000000011013726163410021556 xustar000000000000000024 mtime=1599661832.688 24 atime=1599661832.788 24 ctime=1599662000.065 libprelude-5.2.0/src/include/idmef-object.h0000644000000000000000000000410313726163410020557 0ustar00rootroot00000000000000/***** * * Copyright (C) 2014-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_OBJECT_H #define _LIBPRELUDE_IDMEF_OBJECT_H #ifdef __cplusplus extern "C" { #endif #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "prelude-io.h" #include "prelude-list.h" typedef struct idmef_object idmef_object_t; idmef_class_id_t idmef_object_get_class(idmef_object_t *obj); idmef_object_t *idmef_object_ref(idmef_object_t *obj); void idmef_object_destroy(idmef_object_t *obj); int idmef_object_compare(idmef_object_t *obj1, idmef_object_t *obj2); int idmef_object_clone(idmef_object_t *obj, idmef_object_t **dst); int idmef_object_copy(idmef_object_t *src, idmef_object_t *dst); int idmef_object_print(idmef_object_t *obj, prelude_io_t *fd); int idmef_object_print_json(idmef_object_t *obj, prelude_io_t *fd); void idmef_object_add(prelude_list_t *head, idmef_object_t *obj); void idmef_object_add_tail(prelude_list_t *head, idmef_object_t *obj); void idmef_object_del(idmef_object_t *object); void idmef_object_del_init(idmef_object_t *object); void *idmef_object_get_list_entry(prelude_list_t *listm); int idmef_object_new_from_json(idmef_object_t **object, const char * json_message); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_OBJECT_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-path.h0000644000000000000000000000011013726163410021244 xustar000000000000000024 mtime=1599661832.688 24 atime=1599661832.788 24 ctime=1599662000.067 libprelude-5.2.0/src/include/idmef-path.h0000644000000000000000000000665213726163410020260 0ustar00rootroot00000000000000/***** * * * Copyright (C) 2002-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * Author: Krzysztof Zaraska * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_PATH_H #define _LIBPRELUDE_IDMEF_PATH_H #ifdef __cplusplus extern "C" { #endif #ifdef HAVE_CONFIG_H # include "config.h" #endif typedef struct idmef_path idmef_path_t; #include #include "prelude-macros.h" #include "idmef-value.h" #include "idmef-tree-wrap.h" int idmef_path_get(const idmef_path_t *path, void *object, idmef_value_t **ret); int idmef_path_set(const idmef_path_t *path, void *object, idmef_value_t *value); int idmef_path_new(idmef_path_t **path, const char *format, ...) PRELUDE_FMT_PRINTF(2, 3); int idmef_path_new_v(idmef_path_t **path, const char *format, va_list args) PRELUDE_FMT_PRINTF(2, 0); int idmef_path_new_from_root_fast(idmef_path_t **path, idmef_class_id_t rootclass, const char *buffer); int idmef_path_new_fast(idmef_path_t **path, const char *buffer); idmef_class_id_t idmef_path_get_class(const idmef_path_t *path, int depth); idmef_value_type_id_t idmef_path_get_value_type(const idmef_path_t *path, int depth); int idmef_path_set_index(idmef_path_t *path, unsigned int depth, int index); int idmef_path_undefine_index(idmef_path_t *path, unsigned int depth); int idmef_path_get_index(const idmef_path_t *path, unsigned int depth); int idmef_path_get_key(const idmef_path_t *path, unsigned int depth, const char **key); int idmef_path_make_child(idmef_path_t *path, const char *child_name, int index); int idmef_path_make_parent(idmef_path_t *path); void idmef_path_destroy(idmef_path_t *path); int idmef_path_ncompare(const idmef_path_t *p1, const idmef_path_t *p2, unsigned int depth); int idmef_path_compare(const idmef_path_t *p1, const idmef_path_t *p2); int idmef_path_clone(const idmef_path_t *src, idmef_path_t **dst); idmef_path_t *idmef_path_ref(idmef_path_t *path); const char *idmef_path_get_name(const idmef_path_t *path, int depth); prelude_bool_t idmef_path_is_ambiguous(const idmef_path_t *path); int idmef_path_has_lists(const idmef_path_t *path); prelude_bool_t idmef_path_is_list(const idmef_path_t *path, int depth); unsigned int idmef_path_get_depth(const idmef_path_t *path); int idmef_path_check_operator(const idmef_path_t *path, idmef_criterion_operator_t op); int idmef_path_get_applicable_operators(const idmef_path_t *path, idmef_criterion_operator_t *result); #ifndef SWIG void _idmef_path_cache_lock(void); void _idmef_path_cache_reinit(void); void _idmef_path_cache_unlock(void); void _idmef_path_cache_destroy(void); #endif #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_PATH_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-time.h0000644000000000000000000000011013726163410021246 xustar000000000000000024 mtime=1599661832.688 24 atime=1599661832.788 24 ctime=1599662000.068 libprelude-5.2.0/src/include/idmef-time.h0000644000000000000000000000607413726163410020260 0ustar00rootroot00000000000000/***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_TIME_H #define _LIBPRELUDE_IDMEF_TIME_H #include "prelude-config.h" #ifdef HAVE_CONFIG_H # include "config.h" #endif #if TIME_WITH_SYS_TIME # include # include #else # if HAVE_SYS_TIME_H # include # else # include # endif #endif #ifdef __cplusplus extern "C" { #endif struct idmef_time { /* */ int refcount; uint32_t sec; uint32_t usec; int32_t gmt_offset; }; typedef struct idmef_time idmef_time_t; idmef_time_t *idmef_time_ref(idmef_time_t *time); int idmef_time_new(idmef_time_t **time); int idmef_time_new_from_time(idmef_time_t **time, const time_t *t); int idmef_time_new_from_gettimeofday(idmef_time_t **time); int idmef_time_new_from_string(idmef_time_t **time, const char *buf); int idmef_time_new_from_ntpstamp(idmef_time_t **time, const char *buf); int idmef_time_new_from_timeval(idmef_time_t **time, const struct timeval *tv); void idmef_time_set_from_time(idmef_time_t *time, const time_t *t); int idmef_time_set_from_gettimeofday(idmef_time_t *time); int idmef_time_set_from_string(idmef_time_t *time, const char *buf); int idmef_time_set_from_ntpstamp(idmef_time_t *time, const char *buf); int idmef_time_set_from_timeval(idmef_time_t *time, const struct timeval *tv); void idmef_time_destroy_internal(idmef_time_t *time); void idmef_time_destroy(idmef_time_t *time); int idmef_time_clone(const idmef_time_t *src, idmef_time_t **dst); int idmef_time_copy(const idmef_time_t *src, idmef_time_t *dst); void idmef_time_set_sec(idmef_time_t *time, uint32_t sec); void idmef_time_set_usec(idmef_time_t *time, uint32_t usec); void idmef_time_set_gmt_offset(idmef_time_t *time, int32_t gmtoff); uint32_t idmef_time_get_sec(const idmef_time_t *time); uint32_t idmef_time_get_usec(const idmef_time_t *time); int32_t idmef_time_get_gmt_offset(const idmef_time_t *time); int idmef_time_to_string(const idmef_time_t *time, prelude_string_t *out); int idmef_time_to_ntpstamp(const idmef_time_t *time, prelude_string_t *out); int idmef_time_compare(const idmef_time_t *time1, const idmef_time_t *time2); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_TIME_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-tree-data.h0000644000000000000000000000010713726163410022164 xustar000000000000000024 mtime=1599661832.689 24 atime=1599661832.788 23 ctime=1599662000.07 libprelude-5.2.0/src/include/idmef-tree-data.h0000644000000000000000000010704513726163410021170 0ustar00rootroot00000000000000 /* Auto-generated by the GenerateIDMEFTreeData package */ typedef struct { const char *name; prelude_bool_t list; prelude_bool_t keyed_list; idmef_value_type_id_t type; idmef_class_id_t class; int union_id; const char **attributes; } children_list_t; const children_list_t idmef_additional_data_children_list[] = { { "meaning", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "type", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_ADDITIONAL_DATA_TYPE, 0, NULL }, { "data", 0, 0, IDMEF_VALUE_TYPE_DATA, 0, 0, NULL }, }; static const char *reference_name_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_reference_children_list[] = { { "origin", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_REFERENCE_ORIGIN, 0, NULL }, { "name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, reference_name_attributes }, { "url", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "meaning", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, }; static const char *classification_text_attributes[] = {"priority", "0", NULL}; static const char *classification_reference_list_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_classification_children_list[] = { { "ident", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "text", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, classification_text_attributes }, { "reference", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_REFERENCE, 0, classification_reference_list_attributes }, }; static const char *user_id_name_attributes[] = {"priority", "0", NULL}; static const char *user_id_number_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_user_id_children_list[] = { { "ident", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "type", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_USER_ID_TYPE, 0, NULL }, { "tty", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, user_id_name_attributes }, { "number", 0, 0, IDMEF_VALUE_TYPE_UINT32, 0, 0, user_id_number_attributes }, }; static const char *user_user_id_list_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_user_children_list[] = { { "ident", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "category", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_USER_CATEGORY, 0, NULL }, { "user_id", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_USER_ID, 0, user_user_id_list_attributes }, }; static const char *address_address_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_address_children_list[] = { { "ident", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "category", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_ADDRESS_CATEGORY, 0, NULL }, { "vlan_name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "vlan_num", 0, 0, IDMEF_VALUE_TYPE_INT32, 0, 0, NULL }, { "address", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, address_address_attributes }, { "netmask", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, }; const children_list_t idmef_process_children_list[] = { { "ident", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "pid", 0, 0, IDMEF_VALUE_TYPE_UINT32, 0, 0, NULL }, { "path", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "arg", 1, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "env", 1, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, }; const children_list_t idmef_web_service_children_list[] = { { "url", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "cgi", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "http_method", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "arg", 1, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, }; const children_list_t idmef_snmp_service_children_list[] = { { "oid", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "message_processing_model", 0, 0, IDMEF_VALUE_TYPE_UINT32, 0, 0, NULL }, { "security_model", 0, 0, IDMEF_VALUE_TYPE_UINT32, 0, 0, NULL }, { "security_name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "security_level", 0, 0, IDMEF_VALUE_TYPE_UINT32, 0, 0, NULL }, { "context_name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "context_engine_id", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "command", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, }; static const char *service_port_attributes[] = {"priority", "0", NULL}; static const char *service_portlist_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_service_children_list[] = { { "ident", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "ip_version", 0, 0, IDMEF_VALUE_TYPE_UINT8, 0, 0, NULL }, { "iana_protocol_number", 0, 0, IDMEF_VALUE_TYPE_UINT8, 0, 0, NULL }, { "iana_protocol_name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "port", 0, 0, IDMEF_VALUE_TYPE_UINT16, 0, 0, service_port_attributes }, { "portlist", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, service_portlist_attributes }, { "protocol", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "web_service", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_WEB_SERVICE, /* union ID */ 1, NULL}, { "snmp_service", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_SNMP_SERVICE, /* union ID */ 1, NULL}, }; static const char *node_name_attributes[] = {"priority", "0", NULL}; static const char *node_location_attributes[] = {"priority", "0", NULL}; static const char *node_address_list_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_node_children_list[] = { { "ident", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "category", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_NODE_CATEGORY, 0, NULL }, { "name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, node_name_attributes }, { "location", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, node_location_attributes }, { "address", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_ADDRESS, 0, node_address_list_attributes }, }; static const char *source_node_attributes[] = {"priority", "0", NULL}; static const char *source_user_attributes[] = {"priority", "0", NULL}; static const char *source_process_attributes[] = {"priority", "0", NULL}; static const char *source_service_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_source_children_list[] = { { "ident", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "spoofed", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_SOURCE_SPOOFED, 0, NULL }, { "interface", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "node", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_NODE, 0, source_node_attributes }, { "user", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_USER, 0, source_user_attributes }, { "process", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_PROCESS, 0, source_process_attributes }, { "service", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_SERVICE, 0, source_service_attributes }, }; const children_list_t idmef_file_access_children_list[] = { { "user_id", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_USER_ID, 0, NULL }, { "permission", 1, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, }; const children_list_t idmef_inode_children_list[] = { { "change_time", 0, 0, IDMEF_VALUE_TYPE_TIME, 0, 0, NULL }, { "number", 0, 0, IDMEF_VALUE_TYPE_UINT32, 0, 0, NULL }, { "major_device", 0, 0, IDMEF_VALUE_TYPE_UINT32, 0, 0, NULL }, { "minor_device", 0, 0, IDMEF_VALUE_TYPE_UINT32, 0, 0, NULL }, { "c_major_device", 0, 0, IDMEF_VALUE_TYPE_UINT32, 0, 0, NULL }, { "c_minor_device", 0, 0, IDMEF_VALUE_TYPE_UINT32, 0, 0, NULL }, }; const children_list_t idmef_checksum_children_list[] = { { "value", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "key", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "algorithm", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_CHECKSUM_ALGORITHM, 0, NULL }, }; const children_list_t idmef_file_children_list[] = { { "ident", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "path", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "create_time", 0, 0, IDMEF_VALUE_TYPE_TIME, 0, 0, NULL }, { "modify_time", 0, 0, IDMEF_VALUE_TYPE_TIME, 0, 0, NULL }, { "access_time", 0, 0, IDMEF_VALUE_TYPE_TIME, 0, 0, NULL }, { "data_size", 0, 0, IDMEF_VALUE_TYPE_UINT64, 0, 0, NULL }, { "disk_size", 0, 0, IDMEF_VALUE_TYPE_UINT64, 0, 0, NULL }, { "file_access", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_FILE_ACCESS, 0, NULL }, { "linkage", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_LINKAGE, 0, NULL }, { "inode", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_INODE, 0, NULL }, { "checksum", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_CHECKSUM, 0, NULL }, { "category", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_FILE_CATEGORY, 0, NULL }, { "fstype", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_FILE_FSTYPE, 0, NULL }, { "file_type", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, }; const children_list_t idmef_linkage_children_list[] = { { "category", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_LINKAGE_CATEGORY, 0, NULL }, { "name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "path", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "file", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_FILE, 0, NULL }, }; static const char *target_node_attributes[] = {"priority", "0", NULL}; static const char *target_user_attributes[] = {"priority", "0", NULL}; static const char *target_process_attributes[] = {"priority", "0", NULL}; static const char *target_service_attributes[] = {"priority", "0", NULL}; static const char *target_file_list_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_target_children_list[] = { { "ident", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "decoy", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_TARGET_DECOY, 0, NULL }, { "interface", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "node", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_NODE, 0, target_node_attributes }, { "user", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_USER, 0, target_user_attributes }, { "process", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_PROCESS, 0, target_process_attributes }, { "service", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_SERVICE, 0, target_service_attributes }, { "file", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_FILE, 0, target_file_list_attributes }, }; static const char *analyzer_name_attributes[] = {"priority", "0", NULL}; static const char *analyzer_model_attributes[] = {"priority", "0", NULL}; static const char *analyzer_class_attributes[] = {"priority", "0", NULL}; static const char *analyzer_node_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_analyzer_children_list[] = { { "analyzerid", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, analyzer_name_attributes }, { "manufacturer", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "model", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, analyzer_model_attributes }, { "version", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "class", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, analyzer_class_attributes }, { "ostype", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "osversion", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "node", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_NODE, 0, analyzer_node_attributes }, { "process", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_PROCESS, 0, NULL }, }; const children_list_t idmef_alertident_children_list[] = { { "alertident", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "analyzerid", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, }; static const char *impact_description_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_impact_children_list[] = { { "severity", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_IMPACT_SEVERITY, 0, NULL }, { "completion", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_IMPACT_COMPLETION, 0, NULL }, { "type", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_IMPACT_TYPE, 0, NULL }, { "description", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, impact_description_attributes }, }; const children_list_t idmef_action_children_list[] = { { "category", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_ACTION_CATEGORY, 0, NULL }, { "description", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, }; const children_list_t idmef_confidence_children_list[] = { { "rating", 0, 0, IDMEF_VALUE_TYPE_ENUM, IDMEF_CLASS_ID_CONFIDENCE_RATING, 0, NULL }, { "confidence", 0, 0, IDMEF_VALUE_TYPE_FLOAT, 0, 0, NULL }, }; static const char *assessment_impact_attributes[] = {"priority", "0", NULL}; static const char *assessment_confidence_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_assessment_children_list[] = { { "impact", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_IMPACT, 0, assessment_impact_attributes }, { "action", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_ACTION, 0, NULL }, { "confidence", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_CONFIDENCE, 0, assessment_confidence_attributes }, }; static const char *tool_alert_name_attributes[] = {"priority", "0", NULL}; static const char *tool_alert_command_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_tool_alert_children_list[] = { { "name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, tool_alert_name_attributes }, { "command", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, tool_alert_command_attributes }, { "alertident", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_ALERTIDENT, 0, NULL }, }; static const char *correlation_alert_name_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_correlation_alert_children_list[] = { { "name", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, correlation_alert_name_attributes }, { "alertident", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_ALERTIDENT, 0, NULL }, }; static const char *overflow_alert_program_attributes[] = {"priority", "0", NULL}; const children_list_t idmef_overflow_alert_children_list[] = { { "program", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, overflow_alert_program_attributes }, { "size", 0, 0, IDMEF_VALUE_TYPE_UINT32, 0, 0, NULL }, { "buffer", 0, 0, IDMEF_VALUE_TYPE_DATA, 0, 0, NULL }, }; const children_list_t idmef_alert_children_list[] = { { "messageid", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "analyzer", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_ANALYZER, 0, NULL }, { "create_time", 0, 0, IDMEF_VALUE_TYPE_TIME, 0, 0, NULL }, { "classification", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_CLASSIFICATION, 0, NULL }, { "detect_time", 0, 0, IDMEF_VALUE_TYPE_TIME, 0, 0, NULL }, { "analyzer_time", 0, 0, IDMEF_VALUE_TYPE_TIME, 0, 0, NULL }, { "source", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_SOURCE, 0, NULL }, { "target", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_TARGET, 0, NULL }, { "assessment", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_ASSESSMENT, 0, NULL }, { "additional_data", 1, 1, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_ADDITIONAL_DATA, 0, NULL }, { "tool_alert", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_TOOL_ALERT, /* union ID */ 1, NULL}, { "correlation_alert", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_CORRELATION_ALERT, /* union ID */ 1, NULL}, { "overflow_alert", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_OVERFLOW_ALERT, /* union ID */ 1, NULL}, }; const children_list_t idmef_heartbeat_children_list[] = { { "messageid", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "analyzer", 1, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_ANALYZER, 0, NULL }, { "create_time", 0, 0, IDMEF_VALUE_TYPE_TIME, 0, 0, NULL }, { "analyzer_time", 0, 0, IDMEF_VALUE_TYPE_TIME, 0, 0, NULL }, { "heartbeat_interval", 0, 0, IDMEF_VALUE_TYPE_UINT32, 0, 0, NULL }, { "additional_data", 1, 1, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_ADDITIONAL_DATA, 0, NULL }, }; const children_list_t idmef_message_children_list[] = { { "version", 0, 0, IDMEF_VALUE_TYPE_STRING, 0, 0, NULL }, { "alert", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_ALERT, /* union ID */ 1, NULL}, { "heartbeat", 0, 0, IDMEF_VALUE_TYPE_CLASS, IDMEF_CLASS_ID_HEARTBEAT, /* union ID */ 1, NULL}, }; typedef struct { const char *name; size_t children_list_elem; const children_list_t *children_list; int (*get_child)(void *ptr, idmef_class_child_id_t child, void **ret); int (*new_child)(void *ptr, idmef_class_child_id_t child, int n, void **ret); int (*destroy_child)(void *ptr, idmef_class_child_id_t child, int n); int (*to_numeric)(const char *name); const char *(*to_string)(int val); int (*copy)(const void *src, void *dst); int (*clone)(const void *src, void **dst); int (*compare)(const void *obj1, const void *obj2); int (*print)(const void *obj, prelude_io_t *fd); int (*print_json)(const void *obj, prelude_io_t *fd); void *(*ref)(void *src); void (*destroy)(void *obj); prelude_bool_t is_listed; } object_data_t; const object_data_t object_data[] = { { "(unassigned)", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, /* ID: 0 */ { "(unassigned)", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, /* ID: 1 */ { "(unassigned)", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, /* ID: 2 */ { "additional_data_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_additional_data_type_to_numeric, (void *) idmef_additional_data_type_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 3 */ { "additional_data", sizeof(idmef_additional_data_children_list) / sizeof(*idmef_additional_data_children_list), idmef_additional_data_children_list, _idmef_additional_data_get_child, _idmef_additional_data_new_child, _idmef_additional_data_destroy_child, NULL, NULL, (void *) idmef_additional_data_copy, (void *) idmef_additional_data_clone, (void *) idmef_additional_data_compare, (void *) idmef_additional_data_print, (void *) idmef_additional_data_print_json, (void *) idmef_additional_data_ref, (void *) idmef_additional_data_destroy, 1 },/* ID: 4 */ { "reference_origin", 0, NULL, NULL, NULL, NULL, (void *) idmef_reference_origin_to_numeric, (void *) idmef_reference_origin_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 5 */ { "classification", sizeof(idmef_classification_children_list) / sizeof(*idmef_classification_children_list), idmef_classification_children_list, _idmef_classification_get_child, _idmef_classification_new_child, _idmef_classification_destroy_child, NULL, NULL, (void *) idmef_classification_copy, (void *) idmef_classification_clone, (void *) idmef_classification_compare, (void *) idmef_classification_print, (void *) idmef_classification_print_json, (void *) idmef_classification_ref, (void *) idmef_classification_destroy, 0 },/* ID: 6 */ { "user_id_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_user_id_type_to_numeric, (void *) idmef_user_id_type_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 7 */ { "user_id", sizeof(idmef_user_id_children_list) / sizeof(*idmef_user_id_children_list), idmef_user_id_children_list, _idmef_user_id_get_child, _idmef_user_id_new_child, _idmef_user_id_destroy_child, NULL, NULL, (void *) idmef_user_id_copy, (void *) idmef_user_id_clone, (void *) idmef_user_id_compare, (void *) idmef_user_id_print, (void *) idmef_user_id_print_json, (void *) idmef_user_id_ref, (void *) idmef_user_id_destroy, 1 },/* ID: 8 */ { "user_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_user_category_to_numeric, (void *) idmef_user_category_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 9 */ { "user", sizeof(idmef_user_children_list) / sizeof(*idmef_user_children_list), idmef_user_children_list, _idmef_user_get_child, _idmef_user_new_child, _idmef_user_destroy_child, NULL, NULL, (void *) idmef_user_copy, (void *) idmef_user_clone, (void *) idmef_user_compare, (void *) idmef_user_print, (void *) idmef_user_print_json, (void *) idmef_user_ref, (void *) idmef_user_destroy, 0 },/* ID: 10 */ { "address_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_address_category_to_numeric, (void *) idmef_address_category_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 11 */ { "address", sizeof(idmef_address_children_list) / sizeof(*idmef_address_children_list), idmef_address_children_list, _idmef_address_get_child, _idmef_address_new_child, _idmef_address_destroy_child, NULL, NULL, (void *) idmef_address_copy, (void *) idmef_address_clone, (void *) idmef_address_compare, (void *) idmef_address_print, (void *) idmef_address_print_json, (void *) idmef_address_ref, (void *) idmef_address_destroy, 1 },/* ID: 12 */ { "process", sizeof(idmef_process_children_list) / sizeof(*idmef_process_children_list), idmef_process_children_list, _idmef_process_get_child, _idmef_process_new_child, _idmef_process_destroy_child, NULL, NULL, (void *) idmef_process_copy, (void *) idmef_process_clone, (void *) idmef_process_compare, (void *) idmef_process_print, (void *) idmef_process_print_json, (void *) idmef_process_ref, (void *) idmef_process_destroy, 0 },/* ID: 13 */ { "web_service", sizeof(idmef_web_service_children_list) / sizeof(*idmef_web_service_children_list), idmef_web_service_children_list, _idmef_web_service_get_child, _idmef_web_service_new_child, _idmef_web_service_destroy_child, NULL, NULL, (void *) idmef_web_service_copy, (void *) idmef_web_service_clone, (void *) idmef_web_service_compare, (void *) idmef_web_service_print, (void *) idmef_web_service_print_json, (void *) idmef_web_service_ref, (void *) idmef_web_service_destroy, 0 },/* ID: 14 */ { "snmp_service", sizeof(idmef_snmp_service_children_list) / sizeof(*idmef_snmp_service_children_list), idmef_snmp_service_children_list, _idmef_snmp_service_get_child, _idmef_snmp_service_new_child, _idmef_snmp_service_destroy_child, NULL, NULL, (void *) idmef_snmp_service_copy, (void *) idmef_snmp_service_clone, (void *) idmef_snmp_service_compare, (void *) idmef_snmp_service_print, (void *) idmef_snmp_service_print_json, (void *) idmef_snmp_service_ref, (void *) idmef_snmp_service_destroy, 0 },/* ID: 15 */ { "service_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_service_type_to_numeric, (void *) idmef_service_type_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 16 */ { "service", sizeof(idmef_service_children_list) / sizeof(*idmef_service_children_list), idmef_service_children_list, _idmef_service_get_child, _idmef_service_new_child, _idmef_service_destroy_child, NULL, NULL, (void *) idmef_service_copy, (void *) idmef_service_clone, (void *) idmef_service_compare, (void *) idmef_service_print, (void *) idmef_service_print_json, (void *) idmef_service_ref, (void *) idmef_service_destroy, 0 },/* ID: 17 */ { "node_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_node_category_to_numeric, (void *) idmef_node_category_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 18 */ { "node", sizeof(idmef_node_children_list) / sizeof(*idmef_node_children_list), idmef_node_children_list, _idmef_node_get_child, _idmef_node_new_child, _idmef_node_destroy_child, NULL, NULL, (void *) idmef_node_copy, (void *) idmef_node_clone, (void *) idmef_node_compare, (void *) idmef_node_print, (void *) idmef_node_print_json, (void *) idmef_node_ref, (void *) idmef_node_destroy, 0 },/* ID: 19 */ { "source_spoofed", 0, NULL, NULL, NULL, NULL, (void *) idmef_source_spoofed_to_numeric, (void *) idmef_source_spoofed_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 20 */ { "source", sizeof(idmef_source_children_list) / sizeof(*idmef_source_children_list), idmef_source_children_list, _idmef_source_get_child, _idmef_source_new_child, _idmef_source_destroy_child, NULL, NULL, (void *) idmef_source_copy, (void *) idmef_source_clone, (void *) idmef_source_compare, (void *) idmef_source_print, (void *) idmef_source_print_json, (void *) idmef_source_ref, (void *) idmef_source_destroy, 1 },/* ID: 21 */ { "file_access", sizeof(idmef_file_access_children_list) / sizeof(*idmef_file_access_children_list), idmef_file_access_children_list, _idmef_file_access_get_child, _idmef_file_access_new_child, _idmef_file_access_destroy_child, NULL, NULL, (void *) idmef_file_access_copy, (void *) idmef_file_access_clone, (void *) idmef_file_access_compare, (void *) idmef_file_access_print, (void *) idmef_file_access_print_json, (void *) idmef_file_access_ref, (void *) idmef_file_access_destroy, 1 },/* ID: 22 */ { "inode", sizeof(idmef_inode_children_list) / sizeof(*idmef_inode_children_list), idmef_inode_children_list, _idmef_inode_get_child, _idmef_inode_new_child, _idmef_inode_destroy_child, NULL, NULL, (void *) idmef_inode_copy, (void *) idmef_inode_clone, (void *) idmef_inode_compare, (void *) idmef_inode_print, (void *) idmef_inode_print_json, (void *) idmef_inode_ref, (void *) idmef_inode_destroy, 0 },/* ID: 23 */ { "file_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_file_category_to_numeric, (void *) idmef_file_category_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 24 */ { "file_fstype", 0, NULL, NULL, NULL, NULL, (void *) idmef_file_fstype_to_numeric, (void *) idmef_file_fstype_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 25 */ { "file", sizeof(idmef_file_children_list) / sizeof(*idmef_file_children_list), idmef_file_children_list, _idmef_file_get_child, _idmef_file_new_child, _idmef_file_destroy_child, NULL, NULL, (void *) idmef_file_copy, (void *) idmef_file_clone, (void *) idmef_file_compare, (void *) idmef_file_print, (void *) idmef_file_print_json, (void *) idmef_file_ref, (void *) idmef_file_destroy, 1 },/* ID: 26 */ { "linkage_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_linkage_category_to_numeric, (void *) idmef_linkage_category_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 27 */ { "linkage", sizeof(idmef_linkage_children_list) / sizeof(*idmef_linkage_children_list), idmef_linkage_children_list, _idmef_linkage_get_child, _idmef_linkage_new_child, _idmef_linkage_destroy_child, NULL, NULL, (void *) idmef_linkage_copy, (void *) idmef_linkage_clone, (void *) idmef_linkage_compare, (void *) idmef_linkage_print, (void *) idmef_linkage_print_json, (void *) idmef_linkage_ref, (void *) idmef_linkage_destroy, 1 },/* ID: 28 */ { "target_decoy", 0, NULL, NULL, NULL, NULL, (void *) idmef_target_decoy_to_numeric, (void *) idmef_target_decoy_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 29 */ { "target", sizeof(idmef_target_children_list) / sizeof(*idmef_target_children_list), idmef_target_children_list, _idmef_target_get_child, _idmef_target_new_child, _idmef_target_destroy_child, NULL, NULL, (void *) idmef_target_copy, (void *) idmef_target_clone, (void *) idmef_target_compare, (void *) idmef_target_print, (void *) idmef_target_print_json, (void *) idmef_target_ref, (void *) idmef_target_destroy, 1 },/* ID: 30 */ { "analyzer", sizeof(idmef_analyzer_children_list) / sizeof(*idmef_analyzer_children_list), idmef_analyzer_children_list, _idmef_analyzer_get_child, _idmef_analyzer_new_child, _idmef_analyzer_destroy_child, NULL, NULL, (void *) idmef_analyzer_copy, (void *) idmef_analyzer_clone, (void *) idmef_analyzer_compare, (void *) idmef_analyzer_print, (void *) idmef_analyzer_print_json, (void *) idmef_analyzer_ref, (void *) idmef_analyzer_destroy, 1 },/* ID: 31 */ { "alertident", sizeof(idmef_alertident_children_list) / sizeof(*idmef_alertident_children_list), idmef_alertident_children_list, _idmef_alertident_get_child, _idmef_alertident_new_child, _idmef_alertident_destroy_child, NULL, NULL, (void *) idmef_alertident_copy, (void *) idmef_alertident_clone, (void *) idmef_alertident_compare, (void *) idmef_alertident_print, (void *) idmef_alertident_print_json, (void *) idmef_alertident_ref, (void *) idmef_alertident_destroy, 1 },/* ID: 32 */ { "impact_severity", 0, NULL, NULL, NULL, NULL, (void *) idmef_impact_severity_to_numeric, (void *) idmef_impact_severity_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 33 */ { "impact_completion", 0, NULL, NULL, NULL, NULL, (void *) idmef_impact_completion_to_numeric, (void *) idmef_impact_completion_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 34 */ { "impact_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_impact_type_to_numeric, (void *) idmef_impact_type_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 35 */ { "impact", sizeof(idmef_impact_children_list) / sizeof(*idmef_impact_children_list), idmef_impact_children_list, _idmef_impact_get_child, _idmef_impact_new_child, _idmef_impact_destroy_child, NULL, NULL, (void *) idmef_impact_copy, (void *) idmef_impact_clone, (void *) idmef_impact_compare, (void *) idmef_impact_print, (void *) idmef_impact_print_json, (void *) idmef_impact_ref, (void *) idmef_impact_destroy, 0 },/* ID: 36 */ { "action_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_action_category_to_numeric, (void *) idmef_action_category_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 37 */ { "action", sizeof(idmef_action_children_list) / sizeof(*idmef_action_children_list), idmef_action_children_list, _idmef_action_get_child, _idmef_action_new_child, _idmef_action_destroy_child, NULL, NULL, (void *) idmef_action_copy, (void *) idmef_action_clone, (void *) idmef_action_compare, (void *) idmef_action_print, (void *) idmef_action_print_json, (void *) idmef_action_ref, (void *) idmef_action_destroy, 1 },/* ID: 38 */ { "confidence_rating", 0, NULL, NULL, NULL, NULL, (void *) idmef_confidence_rating_to_numeric, (void *) idmef_confidence_rating_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 39 */ { "confidence", sizeof(idmef_confidence_children_list) / sizeof(*idmef_confidence_children_list), idmef_confidence_children_list, _idmef_confidence_get_child, _idmef_confidence_new_child, _idmef_confidence_destroy_child, NULL, NULL, (void *) idmef_confidence_copy, (void *) idmef_confidence_clone, (void *) idmef_confidence_compare, (void *) idmef_confidence_print, (void *) idmef_confidence_print_json, (void *) idmef_confidence_ref, (void *) idmef_confidence_destroy, 0 },/* ID: 40 */ { "assessment", sizeof(idmef_assessment_children_list) / sizeof(*idmef_assessment_children_list), idmef_assessment_children_list, _idmef_assessment_get_child, _idmef_assessment_new_child, _idmef_assessment_destroy_child, NULL, NULL, (void *) idmef_assessment_copy, (void *) idmef_assessment_clone, (void *) idmef_assessment_compare, (void *) idmef_assessment_print, (void *) idmef_assessment_print_json, (void *) idmef_assessment_ref, (void *) idmef_assessment_destroy, 0 },/* ID: 41 */ { "tool_alert", sizeof(idmef_tool_alert_children_list) / sizeof(*idmef_tool_alert_children_list), idmef_tool_alert_children_list, _idmef_tool_alert_get_child, _idmef_tool_alert_new_child, _idmef_tool_alert_destroy_child, NULL, NULL, (void *) idmef_tool_alert_copy, (void *) idmef_tool_alert_clone, (void *) idmef_tool_alert_compare, (void *) idmef_tool_alert_print, (void *) idmef_tool_alert_print_json, (void *) idmef_tool_alert_ref, (void *) idmef_tool_alert_destroy, 0 },/* ID: 42 */ { "correlation_alert", sizeof(idmef_correlation_alert_children_list) / sizeof(*idmef_correlation_alert_children_list), idmef_correlation_alert_children_list, _idmef_correlation_alert_get_child, _idmef_correlation_alert_new_child, _idmef_correlation_alert_destroy_child, NULL, NULL, (void *) idmef_correlation_alert_copy, (void *) idmef_correlation_alert_clone, (void *) idmef_correlation_alert_compare, (void *) idmef_correlation_alert_print, (void *) idmef_correlation_alert_print_json, (void *) idmef_correlation_alert_ref, (void *) idmef_correlation_alert_destroy, 0 },/* ID: 43 */ { "overflow_alert", sizeof(idmef_overflow_alert_children_list) / sizeof(*idmef_overflow_alert_children_list), idmef_overflow_alert_children_list, _idmef_overflow_alert_get_child, _idmef_overflow_alert_new_child, _idmef_overflow_alert_destroy_child, NULL, NULL, (void *) idmef_overflow_alert_copy, (void *) idmef_overflow_alert_clone, (void *) idmef_overflow_alert_compare, (void *) idmef_overflow_alert_print, (void *) idmef_overflow_alert_print_json, (void *) idmef_overflow_alert_ref, (void *) idmef_overflow_alert_destroy, 0 },/* ID: 44 */ { "alert_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_alert_type_to_numeric, (void *) idmef_alert_type_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 45 */ { "alert", sizeof(idmef_alert_children_list) / sizeof(*idmef_alert_children_list), idmef_alert_children_list, _idmef_alert_get_child, _idmef_alert_new_child, _idmef_alert_destroy_child, NULL, NULL, (void *) idmef_alert_copy, (void *) idmef_alert_clone, (void *) idmef_alert_compare, (void *) idmef_alert_print, (void *) idmef_alert_print_json, (void *) idmef_alert_ref, (void *) idmef_alert_destroy, 0 },/* ID: 46 */ { "heartbeat", sizeof(idmef_heartbeat_children_list) / sizeof(*idmef_heartbeat_children_list), idmef_heartbeat_children_list, _idmef_heartbeat_get_child, _idmef_heartbeat_new_child, _idmef_heartbeat_destroy_child, NULL, NULL, (void *) idmef_heartbeat_copy, (void *) idmef_heartbeat_clone, (void *) idmef_heartbeat_compare, (void *) idmef_heartbeat_print, (void *) idmef_heartbeat_print_json, (void *) idmef_heartbeat_ref, (void *) idmef_heartbeat_destroy, 0 },/* ID: 47 */ { "message_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_message_type_to_numeric, (void *) idmef_message_type_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 48 */ { "message", sizeof(idmef_message_children_list) / sizeof(*idmef_message_children_list), idmef_message_children_list, _idmef_message_get_child, _idmef_message_new_child, _idmef_message_destroy_child, NULL, NULL, (void *) idmef_message_copy, (void *) idmef_message_clone, (void *) idmef_message_compare, (void *) idmef_message_print, (void *) idmef_message_print_json, (void *) idmef_message_ref, (void *) idmef_message_destroy, 0 },/* ID: 49 */ { "reference", sizeof(idmef_reference_children_list) / sizeof(*idmef_reference_children_list), idmef_reference_children_list, _idmef_reference_get_child, _idmef_reference_new_child, _idmef_reference_destroy_child, NULL, NULL, (void *) idmef_reference_copy, (void *) idmef_reference_clone, (void *) idmef_reference_compare, (void *) idmef_reference_print, (void *) idmef_reference_print_json, (void *) idmef_reference_ref, (void *) idmef_reference_destroy, 1 },/* ID: 50 */ { "(unassigned)", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, /* ID: 51 */ { "checksum", sizeof(idmef_checksum_children_list) / sizeof(*idmef_checksum_children_list), idmef_checksum_children_list, _idmef_checksum_get_child, _idmef_checksum_new_child, _idmef_checksum_destroy_child, NULL, NULL, (void *) idmef_checksum_copy, (void *) idmef_checksum_clone, (void *) idmef_checksum_compare, (void *) idmef_checksum_print, (void *) idmef_checksum_print_json, (void *) idmef_checksum_ref, (void *) idmef_checksum_destroy, 1 },/* ID: 52 */ { "checksum_algorithm", 0, NULL, NULL, NULL, NULL, (void *) idmef_checksum_algorithm_to_numeric, (void *) idmef_checksum_algorithm_to_string, NULL, NULL, NULL, NULL, NULL, 0 }, /* ID: 53 */ { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } }; libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-tree-wrap.h0000644000000000000000000000011013726163410022216 xustar000000000000000024 mtime=1599661832.689 24 atime=1599661832.788 24 ctime=1599662000.072 libprelude-5.2.0/src/include/idmef-tree-wrap.h0000644000000000000000000025016113726163410021226 0ustar00rootroot00000000000000 /***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* Auto-generated by the GenerateIDMEFTreeWrapH package */ #ifndef _LIBPRELUDE_IDMEF_TREE_WRAP_H #define _LIBPRELUDE_IDMEF_TREE_WRAP_H #include #include "idmef-class.h" #include "idmef-value.h" #include "prelude-inttypes.h" #include "prelude-string.h" #include "prelude-msg.h" #ifdef __cplusplus extern "C" { #endif #ifdef WIN32 # undef interface #endif #define IDMEF_LIST_APPEND INT_MAX #define IDMEF_LIST_PREPEND (INT_MAX - 1) typedef enum { IDMEF_ADDITIONAL_DATA_TYPE_ERROR = -1, IDMEF_ADDITIONAL_DATA_TYPE_STRING = 0, IDMEF_ADDITIONAL_DATA_TYPE_BYTE = 1, IDMEF_ADDITIONAL_DATA_TYPE_CHARACTER = 2, IDMEF_ADDITIONAL_DATA_TYPE_DATE_TIME = 3, IDMEF_ADDITIONAL_DATA_TYPE_INTEGER = 4, IDMEF_ADDITIONAL_DATA_TYPE_NTPSTAMP = 5, IDMEF_ADDITIONAL_DATA_TYPE_PORTLIST = 6, IDMEF_ADDITIONAL_DATA_TYPE_REAL = 7, IDMEF_ADDITIONAL_DATA_TYPE_BOOLEAN = 8, IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING = 9, IDMEF_ADDITIONAL_DATA_TYPE_XML = 10 } idmef_additional_data_type_t; idmef_additional_data_type_t idmef_additional_data_type_to_numeric(const char *name); const char *idmef_additional_data_type_to_string(idmef_additional_data_type_t val); /* * struct { * IS_KEY_LISTED(meaning); * REFCOUNT; * IGNORED(prelude_bool_t, _type_is_set); * idmef_additional_data_type_t type; * REQUIRED(idmef_data_t, *data); * } TYPE_ID(idmef_additional_data_t, 4); */ typedef struct idmef_additional_data idmef_additional_data_t; int idmef_additional_data_new(idmef_additional_data_t **ret); int idmef_additional_data_copy(const idmef_additional_data_t *src, idmef_additional_data_t *dst); int idmef_additional_data_clone(idmef_additional_data_t *src, idmef_additional_data_t **dst); int idmef_additional_data_compare(const idmef_additional_data_t *obj1, const idmef_additional_data_t *obj2); idmef_additional_data_t *idmef_additional_data_ref(idmef_additional_data_t *additional_data); #ifndef SWIG int _idmef_additional_data_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_additional_data_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_additional_data_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_additional_data_destroy(idmef_additional_data_t *ptr); prelude_string_t *idmef_additional_data_get_meaning(idmef_additional_data_t *ptr); void idmef_additional_data_set_meaning(idmef_additional_data_t *ptr, prelude_string_t *meaning); int idmef_additional_data_new_meaning(idmef_additional_data_t *ptr, prelude_string_t **ret); idmef_additional_data_type_t idmef_additional_data_get_type(idmef_additional_data_t *ptr); void idmef_additional_data_set_type(idmef_additional_data_t *ptr, idmef_additional_data_type_t type); int idmef_additional_data_new_type(idmef_additional_data_t *ptr, idmef_additional_data_type_t **ret); idmef_data_t *idmef_additional_data_get_data(idmef_additional_data_t *ptr); void idmef_additional_data_set_data(idmef_additional_data_t *ptr, idmef_data_t *data); int idmef_additional_data_new_data(idmef_additional_data_t *ptr, idmef_data_t **ret); typedef enum { IDMEF_REFERENCE_ORIGIN_ERROR = -1, IDMEF_REFERENCE_ORIGIN_UNKNOWN = 0, IDMEF_REFERENCE_ORIGIN_VENDOR_SPECIFIC = 1, IDMEF_REFERENCE_ORIGIN_USER_SPECIFIC = 2, IDMEF_REFERENCE_ORIGIN_BUGTRAQID = 3, IDMEF_REFERENCE_ORIGIN_CVE = 4, IDMEF_REFERENCE_ORIGIN_OSVDB = 5 } idmef_reference_origin_t; idmef_reference_origin_t idmef_reference_origin_to_numeric(const char *name); const char *idmef_reference_origin_to_string(idmef_reference_origin_t val); /* * struct { * IDMEF_LINKED_OBJECT; * REFCOUNT; * idmef_reference_origin_t origin; * * REQUIRED(prelude_string_t, *name); DISPLAY_ATTRS({"priority", "0", NULL}) * REQUIRED(prelude_string_t, *url); * prelude_string_t *meaning; * } TYPE_ID(idmef_reference_t, 50); */ typedef struct idmef_reference idmef_reference_t; int idmef_reference_new(idmef_reference_t **ret); int idmef_reference_copy(const idmef_reference_t *src, idmef_reference_t *dst); int idmef_reference_clone(idmef_reference_t *src, idmef_reference_t **dst); int idmef_reference_compare(const idmef_reference_t *obj1, const idmef_reference_t *obj2); idmef_reference_t *idmef_reference_ref(idmef_reference_t *reference); #ifndef SWIG int _idmef_reference_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_reference_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_reference_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_reference_destroy(idmef_reference_t *ptr); idmef_reference_origin_t idmef_reference_get_origin(idmef_reference_t *ptr); void idmef_reference_set_origin(idmef_reference_t *ptr, idmef_reference_origin_t origin); int idmef_reference_new_origin(idmef_reference_t *ptr, idmef_reference_origin_t **ret); prelude_string_t *idmef_reference_get_name(idmef_reference_t *ptr); void idmef_reference_set_name(idmef_reference_t *ptr, prelude_string_t *name); int idmef_reference_new_name(idmef_reference_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_reference_get_url(idmef_reference_t *ptr); void idmef_reference_set_url(idmef_reference_t *ptr, prelude_string_t *url); int idmef_reference_new_url(idmef_reference_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_reference_get_meaning(idmef_reference_t *ptr); void idmef_reference_set_meaning(idmef_reference_t *ptr, prelude_string_t *meaning); int idmef_reference_new_meaning(idmef_reference_t *ptr, prelude_string_t **ret); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * prelude_string_t *ident; * REQUIRED(prelude_string_t, *text); DISPLAY_ATTRS({"priority", "0", NULL}) * LISTED_OBJECT(reference_list, idmef_reference_t); DISPLAY_ATTRS({"priority", "0", NULL}) * * } TYPE_ID(idmef_classification_t, 6); */ typedef struct idmef_classification idmef_classification_t; int idmef_classification_new(idmef_classification_t **ret); int idmef_classification_copy(const idmef_classification_t *src, idmef_classification_t *dst); int idmef_classification_clone(idmef_classification_t *src, idmef_classification_t **dst); int idmef_classification_compare(const idmef_classification_t *obj1, const idmef_classification_t *obj2); idmef_classification_t *idmef_classification_ref(idmef_classification_t *classification); #ifndef SWIG int _idmef_classification_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_classification_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_classification_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_classification_destroy(idmef_classification_t *ptr); prelude_string_t *idmef_classification_get_ident(idmef_classification_t *ptr); void idmef_classification_set_ident(idmef_classification_t *ptr, prelude_string_t *ident); int idmef_classification_new_ident(idmef_classification_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_classification_get_text(idmef_classification_t *ptr); void idmef_classification_set_text(idmef_classification_t *ptr, prelude_string_t *text); int idmef_classification_new_text(idmef_classification_t *ptr, prelude_string_t **ret); idmef_reference_t *idmef_classification_get_next_reference(idmef_classification_t *classification, idmef_reference_t *reference_cur); void idmef_classification_set_reference(idmef_classification_t *ptr, idmef_reference_t *object, int pos); int idmef_classification_new_reference(idmef_classification_t *ptr, idmef_reference_t **ret, int pos); typedef enum { IDMEF_USER_ID_TYPE_ORIGINAL_ERROR = -1, IDMEF_USER_ID_TYPE_ORIGINAL_USER = 0, IDMEF_USER_ID_TYPE_CURRENT_USER = 1, IDMEF_USER_ID_TYPE_TARGET_USER = 2, IDMEF_USER_ID_TYPE_USER_PRIVS = 3, IDMEF_USER_ID_TYPE_CURRENT_GROUP = 4, IDMEF_USER_ID_TYPE_GROUP_PRIVS = 5, IDMEF_USER_ID_TYPE_OTHER_PRIVS = 6 } idmef_user_id_type_t; idmef_user_id_type_t idmef_user_id_type_to_numeric(const char *name); const char *idmef_user_id_type_to_string(idmef_user_id_type_t val); /* * struct { * IDMEF_LINKED_OBJECT; * REFCOUNT; * prelude_string_t *ident; * idmef_user_id_type_t type; * prelude_string_t *tty; * prelude_string_t *name; DISPLAY_ATTRS({"priority", "0", NULL}) * OPTIONAL_INT(uint32_t, number); DISPLAY_ATTRS({"priority", "0", NULL}) * } TYPE_ID(idmef_user_id_t, 8); */ typedef struct idmef_user_id idmef_user_id_t; int idmef_user_id_new(idmef_user_id_t **ret); int idmef_user_id_copy(const idmef_user_id_t *src, idmef_user_id_t *dst); int idmef_user_id_clone(idmef_user_id_t *src, idmef_user_id_t **dst); int idmef_user_id_compare(const idmef_user_id_t *obj1, const idmef_user_id_t *obj2); idmef_user_id_t *idmef_user_id_ref(idmef_user_id_t *user_id); #ifndef SWIG int _idmef_user_id_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_user_id_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_user_id_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_user_id_destroy(idmef_user_id_t *ptr); prelude_string_t *idmef_user_id_get_ident(idmef_user_id_t *ptr); void idmef_user_id_set_ident(idmef_user_id_t *ptr, prelude_string_t *ident); int idmef_user_id_new_ident(idmef_user_id_t *ptr, prelude_string_t **ret); idmef_user_id_type_t idmef_user_id_get_type(idmef_user_id_t *ptr); void idmef_user_id_set_type(idmef_user_id_t *ptr, idmef_user_id_type_t type); int idmef_user_id_new_type(idmef_user_id_t *ptr, idmef_user_id_type_t **ret); prelude_string_t *idmef_user_id_get_tty(idmef_user_id_t *ptr); void idmef_user_id_set_tty(idmef_user_id_t *ptr, prelude_string_t *tty); int idmef_user_id_new_tty(idmef_user_id_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_user_id_get_name(idmef_user_id_t *ptr); void idmef_user_id_set_name(idmef_user_id_t *ptr, prelude_string_t *name); int idmef_user_id_new_name(idmef_user_id_t *ptr, prelude_string_t **ret); void idmef_user_id_unset_number(idmef_user_id_t *ptr); uint32_t *idmef_user_id_get_number(idmef_user_id_t *ptr); void idmef_user_id_set_number(idmef_user_id_t *ptr, uint32_t number); int idmef_user_id_new_number(idmef_user_id_t *ptr, uint32_t **ret); typedef enum { IDMEF_USER_CATEGORY_ERROR = -1, IDMEF_USER_CATEGORY_UNKNOWN = 0, IDMEF_USER_CATEGORY_APPLICATION = 1, IDMEF_USER_CATEGORY_OS_DEVICE = 2 } idmef_user_category_t; idmef_user_category_t idmef_user_category_to_numeric(const char *name); const char *idmef_user_category_to_string(idmef_user_category_t val); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * prelude_string_t *ident; * idmef_user_category_t category; * LISTED_OBJECT(user_id_list, idmef_user_id_t); DISPLAY_ATTRS({"priority", "0", NULL}) * } TYPE_ID(idmef_user_t, 10); */ typedef struct idmef_user idmef_user_t; int idmef_user_new(idmef_user_t **ret); int idmef_user_copy(const idmef_user_t *src, idmef_user_t *dst); int idmef_user_clone(idmef_user_t *src, idmef_user_t **dst); int idmef_user_compare(const idmef_user_t *obj1, const idmef_user_t *obj2); idmef_user_t *idmef_user_ref(idmef_user_t *user); #ifndef SWIG int _idmef_user_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_user_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_user_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_user_destroy(idmef_user_t *ptr); prelude_string_t *idmef_user_get_ident(idmef_user_t *ptr); void idmef_user_set_ident(idmef_user_t *ptr, prelude_string_t *ident); int idmef_user_new_ident(idmef_user_t *ptr, prelude_string_t **ret); idmef_user_category_t idmef_user_get_category(idmef_user_t *ptr); void idmef_user_set_category(idmef_user_t *ptr, idmef_user_category_t category); int idmef_user_new_category(idmef_user_t *ptr, idmef_user_category_t **ret); idmef_user_id_t *idmef_user_get_next_user_id(idmef_user_t *user, idmef_user_id_t *user_id_cur); void idmef_user_set_user_id(idmef_user_t *ptr, idmef_user_id_t *object, int pos); int idmef_user_new_user_id(idmef_user_t *ptr, idmef_user_id_t **ret, int pos); typedef enum { IDMEF_ADDRESS_CATEGORY_ERROR = -1, IDMEF_ADDRESS_CATEGORY_UNKNOWN = 0, IDMEF_ADDRESS_CATEGORY_ATM = 1, IDMEF_ADDRESS_CATEGORY_E_MAIL = 2, IDMEF_ADDRESS_CATEGORY_LOTUS_NOTES = 3, IDMEF_ADDRESS_CATEGORY_MAC = 4, IDMEF_ADDRESS_CATEGORY_SNA = 5, IDMEF_ADDRESS_CATEGORY_VM = 6, IDMEF_ADDRESS_CATEGORY_IPV4_ADDR = 7, IDMEF_ADDRESS_CATEGORY_IPV4_ADDR_HEX = 8, IDMEF_ADDRESS_CATEGORY_IPV4_NET = 9, IDMEF_ADDRESS_CATEGORY_IPV4_NET_MASK = 10, IDMEF_ADDRESS_CATEGORY_IPV6_ADDR = 11, IDMEF_ADDRESS_CATEGORY_IPV6_ADDR_HEX = 12, IDMEF_ADDRESS_CATEGORY_IPV6_NET = 13, IDMEF_ADDRESS_CATEGORY_IPV6_NET_MASK = 14 } idmef_address_category_t; idmef_address_category_t idmef_address_category_to_numeric(const char *name); const char *idmef_address_category_to_string(idmef_address_category_t val); /* * struct { * IDMEF_LINKED_OBJECT; * REFCOUNT; * prelude_string_t *ident; * idmef_address_category_t category; * prelude_string_t *vlan_name; * OPTIONAL_INT(int32_t, vlan_num); * REQUIRED(prelude_string_t, *address); DISPLAY_ATTRS({"priority", "0", NULL}) * prelude_string_t *netmask; * } TYPE_ID(idmef_address_t, 12); */ typedef struct idmef_address idmef_address_t; int idmef_address_new(idmef_address_t **ret); int idmef_address_copy(const idmef_address_t *src, idmef_address_t *dst); int idmef_address_clone(idmef_address_t *src, idmef_address_t **dst); int idmef_address_compare(const idmef_address_t *obj1, const idmef_address_t *obj2); idmef_address_t *idmef_address_ref(idmef_address_t *address); #ifndef SWIG int _idmef_address_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_address_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_address_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_address_destroy(idmef_address_t *ptr); prelude_string_t *idmef_address_get_ident(idmef_address_t *ptr); void idmef_address_set_ident(idmef_address_t *ptr, prelude_string_t *ident); int idmef_address_new_ident(idmef_address_t *ptr, prelude_string_t **ret); idmef_address_category_t idmef_address_get_category(idmef_address_t *ptr); void idmef_address_set_category(idmef_address_t *ptr, idmef_address_category_t category); int idmef_address_new_category(idmef_address_t *ptr, idmef_address_category_t **ret); prelude_string_t *idmef_address_get_vlan_name(idmef_address_t *ptr); void idmef_address_set_vlan_name(idmef_address_t *ptr, prelude_string_t *vlan_name); int idmef_address_new_vlan_name(idmef_address_t *ptr, prelude_string_t **ret); void idmef_address_unset_vlan_num(idmef_address_t *ptr); int32_t *idmef_address_get_vlan_num(idmef_address_t *ptr); void idmef_address_set_vlan_num(idmef_address_t *ptr, int32_t vlan_num); int idmef_address_new_vlan_num(idmef_address_t *ptr, int32_t **ret); prelude_string_t *idmef_address_get_address(idmef_address_t *ptr); void idmef_address_set_address(idmef_address_t *ptr, prelude_string_t *address); int idmef_address_new_address(idmef_address_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_address_get_netmask(idmef_address_t *ptr); void idmef_address_set_netmask(idmef_address_t *ptr, prelude_string_t *netmask); int idmef_address_new_netmask(idmef_address_t *ptr, prelude_string_t **ret); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * prelude_string_t *ident; * REQUIRED(prelude_string_t, *name); * OPTIONAL_INT(uint32_t, pid); * prelude_string_t *path; * * LISTED_OBJECT(arg_list, prelude_string_t); * LISTED_OBJECT(env_list, prelude_string_t); * } TYPE_ID(idmef_process_t, 13); */ typedef struct idmef_process idmef_process_t; int idmef_process_new(idmef_process_t **ret); int idmef_process_copy(const idmef_process_t *src, idmef_process_t *dst); int idmef_process_clone(idmef_process_t *src, idmef_process_t **dst); int idmef_process_compare(const idmef_process_t *obj1, const idmef_process_t *obj2); idmef_process_t *idmef_process_ref(idmef_process_t *process); #ifndef SWIG int _idmef_process_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_process_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_process_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_process_destroy(idmef_process_t *ptr); prelude_string_t *idmef_process_get_ident(idmef_process_t *ptr); void idmef_process_set_ident(idmef_process_t *ptr, prelude_string_t *ident); int idmef_process_new_ident(idmef_process_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_process_get_name(idmef_process_t *ptr); void idmef_process_set_name(idmef_process_t *ptr, prelude_string_t *name); int idmef_process_new_name(idmef_process_t *ptr, prelude_string_t **ret); void idmef_process_unset_pid(idmef_process_t *ptr); uint32_t *idmef_process_get_pid(idmef_process_t *ptr); void idmef_process_set_pid(idmef_process_t *ptr, uint32_t pid); int idmef_process_new_pid(idmef_process_t *ptr, uint32_t **ret); prelude_string_t *idmef_process_get_path(idmef_process_t *ptr); void idmef_process_set_path(idmef_process_t *ptr, prelude_string_t *path); int idmef_process_new_path(idmef_process_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_process_get_next_arg(idmef_process_t *process, prelude_string_t *prelude_string_cur); void idmef_process_set_arg(idmef_process_t *ptr, prelude_string_t *object, int pos); int idmef_process_new_arg(idmef_process_t *ptr, prelude_string_t **ret, int pos); prelude_string_t *idmef_process_get_next_env(idmef_process_t *process, prelude_string_t *prelude_string_cur); void idmef_process_set_env(idmef_process_t *ptr, prelude_string_t *object, int pos); int idmef_process_new_env(idmef_process_t *ptr, prelude_string_t **ret, int pos); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * REQUIRED(prelude_string_t, *url); * prelude_string_t *cgi; * prelude_string_t *http_method; * LISTED_OBJECT(arg_list, prelude_string_t); * } TYPE_ID(idmef_web_service_t, 14); */ typedef struct idmef_web_service idmef_web_service_t; int idmef_web_service_new(idmef_web_service_t **ret); int idmef_web_service_copy(const idmef_web_service_t *src, idmef_web_service_t *dst); int idmef_web_service_clone(idmef_web_service_t *src, idmef_web_service_t **dst); int idmef_web_service_compare(const idmef_web_service_t *obj1, const idmef_web_service_t *obj2); idmef_web_service_t *idmef_web_service_ref(idmef_web_service_t *web_service); #ifndef SWIG int _idmef_web_service_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_web_service_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_web_service_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_web_service_destroy(idmef_web_service_t *ptr); prelude_string_t *idmef_web_service_get_url(idmef_web_service_t *ptr); void idmef_web_service_set_url(idmef_web_service_t *ptr, prelude_string_t *url); int idmef_web_service_new_url(idmef_web_service_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_web_service_get_cgi(idmef_web_service_t *ptr); void idmef_web_service_set_cgi(idmef_web_service_t *ptr, prelude_string_t *cgi); int idmef_web_service_new_cgi(idmef_web_service_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_web_service_get_http_method(idmef_web_service_t *ptr); void idmef_web_service_set_http_method(idmef_web_service_t *ptr, prelude_string_t *http_method); int idmef_web_service_new_http_method(idmef_web_service_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_web_service_get_next_arg(idmef_web_service_t *web_service, prelude_string_t *prelude_string_cur); void idmef_web_service_set_arg(idmef_web_service_t *ptr, prelude_string_t *object, int pos); int idmef_web_service_new_arg(idmef_web_service_t *ptr, prelude_string_t **ret, int pos); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * prelude_string_t *oid; * OPTIONAL_INT(uint32_t, message_processing_model); * OPTIONAL_INT(uint32_t, security_model); * prelude_string_t *security_name; * OPTIONAL_INT(uint32_t, security_level); * prelude_string_t *context_name; * prelude_string_t *context_engine_id; * prelude_string_t *command; * } TYPE_ID(idmef_snmp_service_t, 15); */ typedef struct idmef_snmp_service idmef_snmp_service_t; int idmef_snmp_service_new(idmef_snmp_service_t **ret); int idmef_snmp_service_copy(const idmef_snmp_service_t *src, idmef_snmp_service_t *dst); int idmef_snmp_service_clone(idmef_snmp_service_t *src, idmef_snmp_service_t **dst); int idmef_snmp_service_compare(const idmef_snmp_service_t *obj1, const idmef_snmp_service_t *obj2); idmef_snmp_service_t *idmef_snmp_service_ref(idmef_snmp_service_t *snmp_service); #ifndef SWIG int _idmef_snmp_service_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_snmp_service_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_snmp_service_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_snmp_service_destroy(idmef_snmp_service_t *ptr); prelude_string_t *idmef_snmp_service_get_oid(idmef_snmp_service_t *ptr); void idmef_snmp_service_set_oid(idmef_snmp_service_t *ptr, prelude_string_t *oid); int idmef_snmp_service_new_oid(idmef_snmp_service_t *ptr, prelude_string_t **ret); void idmef_snmp_service_unset_message_processing_model(idmef_snmp_service_t *ptr); uint32_t *idmef_snmp_service_get_message_processing_model(idmef_snmp_service_t *ptr); void idmef_snmp_service_set_message_processing_model(idmef_snmp_service_t *ptr, uint32_t message_processing_model); int idmef_snmp_service_new_message_processing_model(idmef_snmp_service_t *ptr, uint32_t **ret); void idmef_snmp_service_unset_security_model(idmef_snmp_service_t *ptr); uint32_t *idmef_snmp_service_get_security_model(idmef_snmp_service_t *ptr); void idmef_snmp_service_set_security_model(idmef_snmp_service_t *ptr, uint32_t security_model); int idmef_snmp_service_new_security_model(idmef_snmp_service_t *ptr, uint32_t **ret); prelude_string_t *idmef_snmp_service_get_security_name(idmef_snmp_service_t *ptr); void idmef_snmp_service_set_security_name(idmef_snmp_service_t *ptr, prelude_string_t *security_name); int idmef_snmp_service_new_security_name(idmef_snmp_service_t *ptr, prelude_string_t **ret); void idmef_snmp_service_unset_security_level(idmef_snmp_service_t *ptr); uint32_t *idmef_snmp_service_get_security_level(idmef_snmp_service_t *ptr); void idmef_snmp_service_set_security_level(idmef_snmp_service_t *ptr, uint32_t security_level); int idmef_snmp_service_new_security_level(idmef_snmp_service_t *ptr, uint32_t **ret); prelude_string_t *idmef_snmp_service_get_context_name(idmef_snmp_service_t *ptr); void idmef_snmp_service_set_context_name(idmef_snmp_service_t *ptr, prelude_string_t *context_name); int idmef_snmp_service_new_context_name(idmef_snmp_service_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_snmp_service_get_context_engine_id(idmef_snmp_service_t *ptr); void idmef_snmp_service_set_context_engine_id(idmef_snmp_service_t *ptr, prelude_string_t *context_engine_id); int idmef_snmp_service_new_context_engine_id(idmef_snmp_service_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_snmp_service_get_command(idmef_snmp_service_t *ptr); void idmef_snmp_service_set_command(idmef_snmp_service_t *ptr, prelude_string_t *command); int idmef_snmp_service_new_command(idmef_snmp_service_t *ptr, prelude_string_t **ret); typedef enum { IDMEF_SERVICE_TYPE_ERROR = -1, IDMEF_SERVICE_TYPE_DEFAULT = 0, IDMEF_SERVICE_TYPE_WEB = 1, IDMEF_SERVICE_TYPE_SNMP = 2 } idmef_service_type_t; idmef_service_type_t idmef_service_type_to_numeric(const char *name); const char *idmef_service_type_to_string(idmef_service_type_t val); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * prelude_string_t *ident; * * OPTIONAL_INT(uint8_t, ip_version); * OPTIONAL_INT(uint8_t, iana_protocol_number); * prelude_string_t *iana_protocol_name; * * prelude_string_t *name; * OPTIONAL_INT(uint16_t, port); DISPLAY_ATTRS({"priority", "0", NULL}) * prelude_string_t *portlist; DISPLAY_ATTRS({"priority", "0", NULL}) * prelude_string_t *protocol; * * UNION(idmef_service_type_t, type) { * UNION_MEMBER(IDMEF_SERVICE_TYPE_WEB, idmef_web_service_t, *web_service); * UNION_MEMBER(IDMEF_SERVICE_TYPE_SNMP, idmef_snmp_service_t, *snmp_service); * } specific; * * } TYPE_ID(idmef_service_t, 17); */ typedef struct idmef_service idmef_service_t; int idmef_service_new(idmef_service_t **ret); int idmef_service_copy(const idmef_service_t *src, idmef_service_t *dst); int idmef_service_clone(idmef_service_t *src, idmef_service_t **dst); int idmef_service_compare(const idmef_service_t *obj1, const idmef_service_t *obj2); idmef_service_t *idmef_service_ref(idmef_service_t *service); #ifndef SWIG int _idmef_service_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_service_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_service_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_service_destroy(idmef_service_t *ptr); prelude_string_t *idmef_service_get_ident(idmef_service_t *ptr); void idmef_service_set_ident(idmef_service_t *ptr, prelude_string_t *ident); int idmef_service_new_ident(idmef_service_t *ptr, prelude_string_t **ret); void idmef_service_unset_ip_version(idmef_service_t *ptr); uint8_t *idmef_service_get_ip_version(idmef_service_t *ptr); void idmef_service_set_ip_version(idmef_service_t *ptr, uint8_t ip_version); int idmef_service_new_ip_version(idmef_service_t *ptr, uint8_t **ret); void idmef_service_unset_iana_protocol_number(idmef_service_t *ptr); uint8_t *idmef_service_get_iana_protocol_number(idmef_service_t *ptr); void idmef_service_set_iana_protocol_number(idmef_service_t *ptr, uint8_t iana_protocol_number); int idmef_service_new_iana_protocol_number(idmef_service_t *ptr, uint8_t **ret); prelude_string_t *idmef_service_get_iana_protocol_name(idmef_service_t *ptr); void idmef_service_set_iana_protocol_name(idmef_service_t *ptr, prelude_string_t *iana_protocol_name); int idmef_service_new_iana_protocol_name(idmef_service_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_service_get_name(idmef_service_t *ptr); void idmef_service_set_name(idmef_service_t *ptr, prelude_string_t *name); int idmef_service_new_name(idmef_service_t *ptr, prelude_string_t **ret); void idmef_service_unset_port(idmef_service_t *ptr); uint16_t *idmef_service_get_port(idmef_service_t *ptr); void idmef_service_set_port(idmef_service_t *ptr, uint16_t port); int idmef_service_new_port(idmef_service_t *ptr, uint16_t **ret); prelude_string_t *idmef_service_get_portlist(idmef_service_t *ptr); void idmef_service_set_portlist(idmef_service_t *ptr, prelude_string_t *portlist); int idmef_service_new_portlist(idmef_service_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_service_get_protocol(idmef_service_t *ptr); void idmef_service_set_protocol(idmef_service_t *ptr, prelude_string_t *protocol); int idmef_service_new_protocol(idmef_service_t *ptr, prelude_string_t **ret); idmef_service_type_t idmef_service_get_type(idmef_service_t *ptr); idmef_web_service_t *idmef_service_get_web_service(idmef_service_t *ptr); void idmef_service_set_web_service(idmef_service_t *ptr, idmef_web_service_t *web_service); int idmef_service_new_web_service(idmef_service_t *ptr, idmef_web_service_t **ret); idmef_snmp_service_t *idmef_service_get_snmp_service(idmef_service_t *ptr); void idmef_service_set_snmp_service(idmef_service_t *ptr, idmef_snmp_service_t *snmp_service); int idmef_service_new_snmp_service(idmef_service_t *ptr, idmef_snmp_service_t **ret); typedef enum { IDMEF_NODE_CATEGORY_ERROR = -1, IDMEF_NODE_CATEGORY_UNKNOWN = 0, IDMEF_NODE_CATEGORY_ADS = 1, IDMEF_NODE_CATEGORY_AFS = 2, IDMEF_NODE_CATEGORY_CODA = 3, IDMEF_NODE_CATEGORY_DFS = 4, IDMEF_NODE_CATEGORY_DNS = 5, IDMEF_NODE_CATEGORY_HOSTS = 6, IDMEF_NODE_CATEGORY_KERBEROS = 7, IDMEF_NODE_CATEGORY_NDS = 8, IDMEF_NODE_CATEGORY_NIS = 9, IDMEF_NODE_CATEGORY_NISPLUS = 10, IDMEF_NODE_CATEGORY_NT = 11, IDMEF_NODE_CATEGORY_WFW = 12 } idmef_node_category_t; idmef_node_category_t idmef_node_category_to_numeric(const char *name); const char *idmef_node_category_to_string(idmef_node_category_t val); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * prelude_string_t *ident; * idmef_node_category_t category; * prelude_string_t *name; DISPLAY_ATTRS({"priority", "0", NULL}); * prelude_string_t *location; DISPLAY_ATTRS({"priority", "0", NULL}); * LISTED_OBJECT(address_list, idmef_address_t); DISPLAY_ATTRS({"priority", "0", NULL}) * } TYPE_ID(idmef_node_t, 19); */ typedef struct idmef_node idmef_node_t; int idmef_node_new(idmef_node_t **ret); int idmef_node_copy(const idmef_node_t *src, idmef_node_t *dst); int idmef_node_clone(idmef_node_t *src, idmef_node_t **dst); int idmef_node_compare(const idmef_node_t *obj1, const idmef_node_t *obj2); idmef_node_t *idmef_node_ref(idmef_node_t *node); #ifndef SWIG int _idmef_node_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_node_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_node_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_node_destroy(idmef_node_t *ptr); prelude_string_t *idmef_node_get_ident(idmef_node_t *ptr); void idmef_node_set_ident(idmef_node_t *ptr, prelude_string_t *ident); int idmef_node_new_ident(idmef_node_t *ptr, prelude_string_t **ret); idmef_node_category_t idmef_node_get_category(idmef_node_t *ptr); void idmef_node_set_category(idmef_node_t *ptr, idmef_node_category_t category); int idmef_node_new_category(idmef_node_t *ptr, idmef_node_category_t **ret); prelude_string_t *idmef_node_get_name(idmef_node_t *ptr); void idmef_node_set_name(idmef_node_t *ptr, prelude_string_t *name); int idmef_node_new_name(idmef_node_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_node_get_location(idmef_node_t *ptr); void idmef_node_set_location(idmef_node_t *ptr, prelude_string_t *location); int idmef_node_new_location(idmef_node_t *ptr, prelude_string_t **ret); idmef_address_t *idmef_node_get_next_address(idmef_node_t *node, idmef_address_t *address_cur); void idmef_node_set_address(idmef_node_t *ptr, idmef_address_t *object, int pos); int idmef_node_new_address(idmef_node_t *ptr, idmef_address_t **ret, int pos); typedef enum { IDMEF_SOURCE_SPOOFED_ERROR = -1, IDMEF_SOURCE_SPOOFED_UNKNOWN = 0, IDMEF_SOURCE_SPOOFED_YES = 1, IDMEF_SOURCE_SPOOFED_NO = 2 } idmef_source_spoofed_t; idmef_source_spoofed_t idmef_source_spoofed_to_numeric(const char *name); const char *idmef_source_spoofed_to_string(idmef_source_spoofed_t val); /* * struct { * IDMEF_LINKED_OBJECT; * REFCOUNT; * prelude_string_t *ident; * * idmef_source_spoofed_t spoofed; * prelude_string_t *interface; * * idmef_node_t *node; DISPLAY_ATTRS({"priority", "0", NULL}) * idmef_user_t *user; DISPLAY_ATTRS({"priority", "0", NULL}) * idmef_process_t *process; DISPLAY_ATTRS({"priority", "0", NULL}) * idmef_service_t *service; DISPLAY_ATTRS({"priority", "0", NULL}) * * } TYPE_ID(idmef_source_t, 21); */ typedef struct idmef_source idmef_source_t; int idmef_source_new(idmef_source_t **ret); int idmef_source_copy(const idmef_source_t *src, idmef_source_t *dst); int idmef_source_clone(idmef_source_t *src, idmef_source_t **dst); int idmef_source_compare(const idmef_source_t *obj1, const idmef_source_t *obj2); idmef_source_t *idmef_source_ref(idmef_source_t *source); #ifndef SWIG int _idmef_source_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_source_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_source_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_source_destroy(idmef_source_t *ptr); prelude_string_t *idmef_source_get_ident(idmef_source_t *ptr); void idmef_source_set_ident(idmef_source_t *ptr, prelude_string_t *ident); int idmef_source_new_ident(idmef_source_t *ptr, prelude_string_t **ret); idmef_source_spoofed_t idmef_source_get_spoofed(idmef_source_t *ptr); void idmef_source_set_spoofed(idmef_source_t *ptr, idmef_source_spoofed_t spoofed); int idmef_source_new_spoofed(idmef_source_t *ptr, idmef_source_spoofed_t **ret); prelude_string_t *idmef_source_get_interface(idmef_source_t *ptr); void idmef_source_set_interface(idmef_source_t *ptr, prelude_string_t *interface); int idmef_source_new_interface(idmef_source_t *ptr, prelude_string_t **ret); idmef_node_t *idmef_source_get_node(idmef_source_t *ptr); void idmef_source_set_node(idmef_source_t *ptr, idmef_node_t *node); int idmef_source_new_node(idmef_source_t *ptr, idmef_node_t **ret); idmef_user_t *idmef_source_get_user(idmef_source_t *ptr); void idmef_source_set_user(idmef_source_t *ptr, idmef_user_t *user); int idmef_source_new_user(idmef_source_t *ptr, idmef_user_t **ret); idmef_process_t *idmef_source_get_process(idmef_source_t *ptr); void idmef_source_set_process(idmef_source_t *ptr, idmef_process_t *process); int idmef_source_new_process(idmef_source_t *ptr, idmef_process_t **ret); idmef_service_t *idmef_source_get_service(idmef_source_t *ptr); void idmef_source_set_service(idmef_source_t *ptr, idmef_service_t *service); int idmef_source_new_service(idmef_source_t *ptr, idmef_service_t **ret); /* * struct { * IDMEF_LINKED_OBJECT; * REFCOUNT; * * REQUIRED(idmef_user_id_t, *user_id); * LISTED_OBJECT(permission_list, prelude_string_t); * } TYPE_ID(idmef_file_access_t, 22); */ typedef struct idmef_file_access idmef_file_access_t; int idmef_file_access_new(idmef_file_access_t **ret); int idmef_file_access_copy(const idmef_file_access_t *src, idmef_file_access_t *dst); int idmef_file_access_clone(idmef_file_access_t *src, idmef_file_access_t **dst); int idmef_file_access_compare(const idmef_file_access_t *obj1, const idmef_file_access_t *obj2); idmef_file_access_t *idmef_file_access_ref(idmef_file_access_t *file_access); #ifndef SWIG int _idmef_file_access_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_file_access_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_file_access_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_file_access_destroy(idmef_file_access_t *ptr); idmef_user_id_t *idmef_file_access_get_user_id(idmef_file_access_t *ptr); void idmef_file_access_set_user_id(idmef_file_access_t *ptr, idmef_user_id_t *user_id); int idmef_file_access_new_user_id(idmef_file_access_t *ptr, idmef_user_id_t **ret); prelude_string_t *idmef_file_access_get_next_permission(idmef_file_access_t *file_access, prelude_string_t *prelude_string_cur); void idmef_file_access_set_permission(idmef_file_access_t *ptr, prelude_string_t *object, int pos); int idmef_file_access_new_permission(idmef_file_access_t *ptr, prelude_string_t **ret, int pos); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * idmef_time_t *change_time; * OPTIONAL_INT(uint32_t, number); * OPTIONAL_INT(uint32_t, major_device); * OPTIONAL_INT(uint32_t, minor_device); * OPTIONAL_INT(uint32_t, c_major_device); * OPTIONAL_INT(uint32_t, c_minor_device); * } TYPE_ID(idmef_inode_t, 23); */ typedef struct idmef_inode idmef_inode_t; int idmef_inode_new(idmef_inode_t **ret); int idmef_inode_copy(const idmef_inode_t *src, idmef_inode_t *dst); int idmef_inode_clone(idmef_inode_t *src, idmef_inode_t **dst); int idmef_inode_compare(const idmef_inode_t *obj1, const idmef_inode_t *obj2); idmef_inode_t *idmef_inode_ref(idmef_inode_t *inode); #ifndef SWIG int _idmef_inode_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_inode_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_inode_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_inode_destroy(idmef_inode_t *ptr); idmef_time_t *idmef_inode_get_change_time(idmef_inode_t *ptr); void idmef_inode_set_change_time(idmef_inode_t *ptr, idmef_time_t *change_time); int idmef_inode_new_change_time(idmef_inode_t *ptr, idmef_time_t **ret); void idmef_inode_unset_number(idmef_inode_t *ptr); uint32_t *idmef_inode_get_number(idmef_inode_t *ptr); void idmef_inode_set_number(idmef_inode_t *ptr, uint32_t number); int idmef_inode_new_number(idmef_inode_t *ptr, uint32_t **ret); void idmef_inode_unset_major_device(idmef_inode_t *ptr); uint32_t *idmef_inode_get_major_device(idmef_inode_t *ptr); void idmef_inode_set_major_device(idmef_inode_t *ptr, uint32_t major_device); int idmef_inode_new_major_device(idmef_inode_t *ptr, uint32_t **ret); void idmef_inode_unset_minor_device(idmef_inode_t *ptr); uint32_t *idmef_inode_get_minor_device(idmef_inode_t *ptr); void idmef_inode_set_minor_device(idmef_inode_t *ptr, uint32_t minor_device); int idmef_inode_new_minor_device(idmef_inode_t *ptr, uint32_t **ret); void idmef_inode_unset_c_major_device(idmef_inode_t *ptr); uint32_t *idmef_inode_get_c_major_device(idmef_inode_t *ptr); void idmef_inode_set_c_major_device(idmef_inode_t *ptr, uint32_t c_major_device); int idmef_inode_new_c_major_device(idmef_inode_t *ptr, uint32_t **ret); void idmef_inode_unset_c_minor_device(idmef_inode_t *ptr); uint32_t *idmef_inode_get_c_minor_device(idmef_inode_t *ptr); void idmef_inode_set_c_minor_device(idmef_inode_t *ptr, uint32_t c_minor_device); int idmef_inode_new_c_minor_device(idmef_inode_t *ptr, uint32_t **ret); typedef struct idmef_linkage idmef_linkage_t; typedef enum { IDMEF_CHECKSUM_ALGORITHM_ERROR = -1, IDMEF_CHECKSUM_ALGORITHM_MD4 = 1, IDMEF_CHECKSUM_ALGORITHM_MD5 = 2, IDMEF_CHECKSUM_ALGORITHM_SHA1 = 3, IDMEF_CHECKSUM_ALGORITHM_SHA2_256 = 4, IDMEF_CHECKSUM_ALGORITHM_SHA2_384 = 5, IDMEF_CHECKSUM_ALGORITHM_SHA2_512 = 6, IDMEF_CHECKSUM_ALGORITHM_CRC_32 = 7, IDMEF_CHECKSUM_ALGORITHM_HAVAL = 8, IDMEF_CHECKSUM_ALGORITHM_TIGER = 9, IDMEF_CHECKSUM_ALGORITHM_GOST = 10 } idmef_checksum_algorithm_t; idmef_checksum_algorithm_t idmef_checksum_algorithm_to_numeric(const char *name); const char *idmef_checksum_algorithm_to_string(idmef_checksum_algorithm_t val); /* * struct { * IDMEF_LINKED_OBJECT; * REFCOUNT; * REQUIRED(prelude_string_t, *value); * prelude_string_t *key; * idmef_checksum_algorithm_t algorithm; * } TYPE_ID(idmef_checksum_t, 52); */ typedef struct idmef_checksum idmef_checksum_t; int idmef_checksum_new(idmef_checksum_t **ret); int idmef_checksum_copy(const idmef_checksum_t *src, idmef_checksum_t *dst); int idmef_checksum_clone(idmef_checksum_t *src, idmef_checksum_t **dst); int idmef_checksum_compare(const idmef_checksum_t *obj1, const idmef_checksum_t *obj2); idmef_checksum_t *idmef_checksum_ref(idmef_checksum_t *checksum); #ifndef SWIG int _idmef_checksum_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_checksum_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_checksum_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_checksum_destroy(idmef_checksum_t *ptr); prelude_string_t *idmef_checksum_get_value(idmef_checksum_t *ptr); void idmef_checksum_set_value(idmef_checksum_t *ptr, prelude_string_t *value); int idmef_checksum_new_value(idmef_checksum_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_checksum_get_key(idmef_checksum_t *ptr); void idmef_checksum_set_key(idmef_checksum_t *ptr, prelude_string_t *key); int idmef_checksum_new_key(idmef_checksum_t *ptr, prelude_string_t **ret); idmef_checksum_algorithm_t idmef_checksum_get_algorithm(idmef_checksum_t *ptr); void idmef_checksum_set_algorithm(idmef_checksum_t *ptr, idmef_checksum_algorithm_t algorithm); int idmef_checksum_new_algorithm(idmef_checksum_t *ptr, idmef_checksum_algorithm_t **ret); typedef enum { IDMEF_FILE_CATEGORY_ERROR = -1, IDMEF_FILE_CATEGORY_CURRENT = 1, IDMEF_FILE_CATEGORY_ORIGINAL = 2 } idmef_file_category_t; idmef_file_category_t idmef_file_category_to_numeric(const char *name); const char *idmef_file_category_to_string(idmef_file_category_t val); typedef enum { IDMEF_FILE_FSTYPE_ERROR = -1, IDMEF_FILE_FSTYPE_UFS = 1, IDMEF_FILE_FSTYPE_EFS = 2, IDMEF_FILE_FSTYPE_NFS = 3, IDMEF_FILE_FSTYPE_AFS = 4, IDMEF_FILE_FSTYPE_NTFS = 5, IDMEF_FILE_FSTYPE_FAT16 = 6, IDMEF_FILE_FSTYPE_FAT32 = 7, IDMEF_FILE_FSTYPE_PCFS = 8, IDMEF_FILE_FSTYPE_JOLIET = 9, IDMEF_FILE_FSTYPE_ISO9660 = 10 } idmef_file_fstype_t; idmef_file_fstype_t idmef_file_fstype_to_numeric(const char *name); const char *idmef_file_fstype_to_string(idmef_file_fstype_t val); /* * struct { * IDMEF_LINKED_OBJECT; * REFCOUNT; * prelude_string_t *ident; * * REQUIRED(prelude_string_t, *name); * REQUIRED(prelude_string_t, *path); * * idmef_time_t *create_time; * idmef_time_t *modify_time; * idmef_time_t *access_time; * * * OPTIONAL_INT(uint64_t, data_size); * OPTIONAL_INT(uint64_t, disk_size); * * LISTED_OBJECT(file_access_list, idmef_file_access_t); * LISTED_OBJECT(linkage_list, idmef_linkage_t); * * idmef_inode_t *inode; * LISTED_OBJECT(checksum_list, idmef_checksum_t); * * idmef_file_category_t category; * OPTIONAL_INT(idmef_file_fstype_t, fstype); * prelude_string_t *file_type; * * } TYPE_ID(idmef_file_t, 26); */ typedef struct idmef_file idmef_file_t; int idmef_file_new(idmef_file_t **ret); int idmef_file_copy(const idmef_file_t *src, idmef_file_t *dst); int idmef_file_clone(idmef_file_t *src, idmef_file_t **dst); int idmef_file_compare(const idmef_file_t *obj1, const idmef_file_t *obj2); idmef_file_t *idmef_file_ref(idmef_file_t *file); #ifndef SWIG int _idmef_file_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_file_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_file_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_file_destroy(idmef_file_t *ptr); prelude_string_t *idmef_file_get_ident(idmef_file_t *ptr); void idmef_file_set_ident(idmef_file_t *ptr, prelude_string_t *ident); int idmef_file_new_ident(idmef_file_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_file_get_name(idmef_file_t *ptr); void idmef_file_set_name(idmef_file_t *ptr, prelude_string_t *name); int idmef_file_new_name(idmef_file_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_file_get_path(idmef_file_t *ptr); void idmef_file_set_path(idmef_file_t *ptr, prelude_string_t *path); int idmef_file_new_path(idmef_file_t *ptr, prelude_string_t **ret); idmef_time_t *idmef_file_get_create_time(idmef_file_t *ptr); void idmef_file_set_create_time(idmef_file_t *ptr, idmef_time_t *create_time); int idmef_file_new_create_time(idmef_file_t *ptr, idmef_time_t **ret); idmef_time_t *idmef_file_get_modify_time(idmef_file_t *ptr); void idmef_file_set_modify_time(idmef_file_t *ptr, idmef_time_t *modify_time); int idmef_file_new_modify_time(idmef_file_t *ptr, idmef_time_t **ret); idmef_time_t *idmef_file_get_access_time(idmef_file_t *ptr); void idmef_file_set_access_time(idmef_file_t *ptr, idmef_time_t *access_time); int idmef_file_new_access_time(idmef_file_t *ptr, idmef_time_t **ret); void idmef_file_unset_data_size(idmef_file_t *ptr); uint64_t *idmef_file_get_data_size(idmef_file_t *ptr); void idmef_file_set_data_size(idmef_file_t *ptr, uint64_t data_size); int idmef_file_new_data_size(idmef_file_t *ptr, uint64_t **ret); void idmef_file_unset_disk_size(idmef_file_t *ptr); uint64_t *idmef_file_get_disk_size(idmef_file_t *ptr); void idmef_file_set_disk_size(idmef_file_t *ptr, uint64_t disk_size); int idmef_file_new_disk_size(idmef_file_t *ptr, uint64_t **ret); idmef_file_access_t *idmef_file_get_next_file_access(idmef_file_t *file, idmef_file_access_t *file_access_cur); void idmef_file_set_file_access(idmef_file_t *ptr, idmef_file_access_t *object, int pos); int idmef_file_new_file_access(idmef_file_t *ptr, idmef_file_access_t **ret, int pos); idmef_linkage_t *idmef_file_get_next_linkage(idmef_file_t *file, idmef_linkage_t *linkage_cur); void idmef_file_set_linkage(idmef_file_t *ptr, idmef_linkage_t *object, int pos); int idmef_file_new_linkage(idmef_file_t *ptr, idmef_linkage_t **ret, int pos); idmef_inode_t *idmef_file_get_inode(idmef_file_t *ptr); void idmef_file_set_inode(idmef_file_t *ptr, idmef_inode_t *inode); int idmef_file_new_inode(idmef_file_t *ptr, idmef_inode_t **ret); idmef_checksum_t *idmef_file_get_next_checksum(idmef_file_t *file, idmef_checksum_t *checksum_cur); void idmef_file_set_checksum(idmef_file_t *ptr, idmef_checksum_t *object, int pos); int idmef_file_new_checksum(idmef_file_t *ptr, idmef_checksum_t **ret, int pos); idmef_file_category_t idmef_file_get_category(idmef_file_t *ptr); void idmef_file_set_category(idmef_file_t *ptr, idmef_file_category_t category); int idmef_file_new_category(idmef_file_t *ptr, idmef_file_category_t **ret); void idmef_file_unset_fstype(idmef_file_t *ptr); idmef_file_fstype_t *idmef_file_get_fstype(idmef_file_t *ptr); void idmef_file_set_fstype(idmef_file_t *ptr, idmef_file_fstype_t fstype); int idmef_file_new_fstype(idmef_file_t *ptr, idmef_file_fstype_t **ret); prelude_string_t *idmef_file_get_file_type(idmef_file_t *ptr); void idmef_file_set_file_type(idmef_file_t *ptr, prelude_string_t *file_type); int idmef_file_new_file_type(idmef_file_t *ptr, prelude_string_t **ret); typedef enum { IDMEF_LINKAGE_CATEGORY_ERROR = -1, IDMEF_LINKAGE_CATEGORY_HARD_LINK = 1, IDMEF_LINKAGE_CATEGORY_MOUNT_POINT = 2, IDMEF_LINKAGE_CATEGORY_REPARSE_POINT = 3, IDMEF_LINKAGE_CATEGORY_SHORTCUT = 4, IDMEF_LINKAGE_CATEGORY_STREAM = 5, IDMEF_LINKAGE_CATEGORY_SYMBOLIC_LINK = 6 } idmef_linkage_category_t; idmef_linkage_category_t idmef_linkage_category_to_numeric(const char *name); const char *idmef_linkage_category_to_string(idmef_linkage_category_t val); /* * struct { * IDMEF_LINKED_OBJECT; * REFCOUNT; * * idmef_linkage_category_t category; * REQUIRED(prelude_string_t, *name); * REQUIRED(prelude_string_t, *path); * REQUIRED(idmef_file_t, *file); * } TYPE_ID(idmef_linkage_t, 28); */ int idmef_linkage_new(idmef_linkage_t **ret); int idmef_linkage_copy(const idmef_linkage_t *src, idmef_linkage_t *dst); int idmef_linkage_clone(idmef_linkage_t *src, idmef_linkage_t **dst); int idmef_linkage_compare(const idmef_linkage_t *obj1, const idmef_linkage_t *obj2); idmef_linkage_t *idmef_linkage_ref(idmef_linkage_t *linkage); #ifndef SWIG int _idmef_linkage_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_linkage_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_linkage_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_linkage_destroy(idmef_linkage_t *ptr); idmef_linkage_category_t idmef_linkage_get_category(idmef_linkage_t *ptr); void idmef_linkage_set_category(idmef_linkage_t *ptr, idmef_linkage_category_t category); int idmef_linkage_new_category(idmef_linkage_t *ptr, idmef_linkage_category_t **ret); prelude_string_t *idmef_linkage_get_name(idmef_linkage_t *ptr); void idmef_linkage_set_name(idmef_linkage_t *ptr, prelude_string_t *name); int idmef_linkage_new_name(idmef_linkage_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_linkage_get_path(idmef_linkage_t *ptr); void idmef_linkage_set_path(idmef_linkage_t *ptr, prelude_string_t *path); int idmef_linkage_new_path(idmef_linkage_t *ptr, prelude_string_t **ret); idmef_file_t *idmef_linkage_get_file(idmef_linkage_t *ptr); void idmef_linkage_set_file(idmef_linkage_t *ptr, idmef_file_t *file); int idmef_linkage_new_file(idmef_linkage_t *ptr, idmef_file_t **ret); typedef enum { IDMEF_TARGET_DECOY_ERROR = -1, IDMEF_TARGET_DECOY_UNKNOWN = 0, IDMEF_TARGET_DECOY_YES = 1, IDMEF_TARGET_DECOY_NO = 2 } idmef_target_decoy_t; idmef_target_decoy_t idmef_target_decoy_to_numeric(const char *name); const char *idmef_target_decoy_to_string(idmef_target_decoy_t val); /* * struct { * IDMEF_LINKED_OBJECT; * REFCOUNT; * prelude_string_t *ident; * * idmef_target_decoy_t decoy; * prelude_string_t *interface; * * idmef_node_t *node; DISPLAY_ATTRS({"priority", "0", NULL}) * idmef_user_t *user; DISPLAY_ATTRS({"priority", "0", NULL}) * idmef_process_t *process; DISPLAY_ATTRS({"priority", "0", NULL}) * idmef_service_t *service; DISPLAY_ATTRS({"priority", "0", NULL}) * LISTED_OBJECT(file_list, idmef_file_t); DISPLAY_ATTRS({"priority", "0", NULL}) * } TYPE_ID(idmef_target_t, 30); */ typedef struct idmef_target idmef_target_t; int idmef_target_new(idmef_target_t **ret); int idmef_target_copy(const idmef_target_t *src, idmef_target_t *dst); int idmef_target_clone(idmef_target_t *src, idmef_target_t **dst); int idmef_target_compare(const idmef_target_t *obj1, const idmef_target_t *obj2); idmef_target_t *idmef_target_ref(idmef_target_t *target); #ifndef SWIG int _idmef_target_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_target_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_target_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_target_destroy(idmef_target_t *ptr); prelude_string_t *idmef_target_get_ident(idmef_target_t *ptr); void idmef_target_set_ident(idmef_target_t *ptr, prelude_string_t *ident); int idmef_target_new_ident(idmef_target_t *ptr, prelude_string_t **ret); idmef_target_decoy_t idmef_target_get_decoy(idmef_target_t *ptr); void idmef_target_set_decoy(idmef_target_t *ptr, idmef_target_decoy_t decoy); int idmef_target_new_decoy(idmef_target_t *ptr, idmef_target_decoy_t **ret); prelude_string_t *idmef_target_get_interface(idmef_target_t *ptr); void idmef_target_set_interface(idmef_target_t *ptr, prelude_string_t *interface); int idmef_target_new_interface(idmef_target_t *ptr, prelude_string_t **ret); idmef_node_t *idmef_target_get_node(idmef_target_t *ptr); void idmef_target_set_node(idmef_target_t *ptr, idmef_node_t *node); int idmef_target_new_node(idmef_target_t *ptr, idmef_node_t **ret); idmef_user_t *idmef_target_get_user(idmef_target_t *ptr); void idmef_target_set_user(idmef_target_t *ptr, idmef_user_t *user); int idmef_target_new_user(idmef_target_t *ptr, idmef_user_t **ret); idmef_process_t *idmef_target_get_process(idmef_target_t *ptr); void idmef_target_set_process(idmef_target_t *ptr, idmef_process_t *process); int idmef_target_new_process(idmef_target_t *ptr, idmef_process_t **ret); idmef_service_t *idmef_target_get_service(idmef_target_t *ptr); void idmef_target_set_service(idmef_target_t *ptr, idmef_service_t *service); int idmef_target_new_service(idmef_target_t *ptr, idmef_service_t **ret); idmef_file_t *idmef_target_get_next_file(idmef_target_t *target, idmef_file_t *file_cur); void idmef_target_set_file(idmef_target_t *ptr, idmef_file_t *object, int pos); int idmef_target_new_file(idmef_target_t *ptr, idmef_file_t **ret, int pos); /* * struct { * IDMEF_LINKED_OBJECT; * REFCOUNT; * prelude_string_t *analyzerid; * * prelude_string_t *name; DISPLAY_ATTRS({"priority", "0", NULL}) * prelude_string_t *manufacturer; * prelude_string_t *model; DISPLAY_ATTRS({"priority", "0", NULL}) * prelude_string_t *version; * prelude_string_t *class; DISPLAY_ATTRS({"priority", "0", NULL}) * prelude_string_t *ostype; * prelude_string_t *osversion; * * idmef_node_t *node; DISPLAY_ATTRS({"priority", "0", NULL}) * idmef_process_t *process; * * } TYPE_ID(idmef_analyzer_t, 31); */ typedef struct idmef_analyzer idmef_analyzer_t; int idmef_analyzer_new(idmef_analyzer_t **ret); int idmef_analyzer_copy(const idmef_analyzer_t *src, idmef_analyzer_t *dst); int idmef_analyzer_clone(idmef_analyzer_t *src, idmef_analyzer_t **dst); int idmef_analyzer_compare(const idmef_analyzer_t *obj1, const idmef_analyzer_t *obj2); idmef_analyzer_t *idmef_analyzer_ref(idmef_analyzer_t *analyzer); #ifndef SWIG int _idmef_analyzer_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_analyzer_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_analyzer_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_analyzer_destroy(idmef_analyzer_t *ptr); prelude_string_t *idmef_analyzer_get_analyzerid(idmef_analyzer_t *ptr); void idmef_analyzer_set_analyzerid(idmef_analyzer_t *ptr, prelude_string_t *analyzerid); int idmef_analyzer_new_analyzerid(idmef_analyzer_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_analyzer_get_name(idmef_analyzer_t *ptr); void idmef_analyzer_set_name(idmef_analyzer_t *ptr, prelude_string_t *name); int idmef_analyzer_new_name(idmef_analyzer_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_analyzer_get_manufacturer(idmef_analyzer_t *ptr); void idmef_analyzer_set_manufacturer(idmef_analyzer_t *ptr, prelude_string_t *manufacturer); int idmef_analyzer_new_manufacturer(idmef_analyzer_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_analyzer_get_model(idmef_analyzer_t *ptr); void idmef_analyzer_set_model(idmef_analyzer_t *ptr, prelude_string_t *model); int idmef_analyzer_new_model(idmef_analyzer_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_analyzer_get_version(idmef_analyzer_t *ptr); void idmef_analyzer_set_version(idmef_analyzer_t *ptr, prelude_string_t *version); int idmef_analyzer_new_version(idmef_analyzer_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_analyzer_get_class(idmef_analyzer_t *ptr); void idmef_analyzer_set_class(idmef_analyzer_t *ptr, prelude_string_t *class_str); int idmef_analyzer_new_class(idmef_analyzer_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_analyzer_get_ostype(idmef_analyzer_t *ptr); void idmef_analyzer_set_ostype(idmef_analyzer_t *ptr, prelude_string_t *ostype); int idmef_analyzer_new_ostype(idmef_analyzer_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_analyzer_get_osversion(idmef_analyzer_t *ptr); void idmef_analyzer_set_osversion(idmef_analyzer_t *ptr, prelude_string_t *osversion); int idmef_analyzer_new_osversion(idmef_analyzer_t *ptr, prelude_string_t **ret); idmef_node_t *idmef_analyzer_get_node(idmef_analyzer_t *ptr); void idmef_analyzer_set_node(idmef_analyzer_t *ptr, idmef_node_t *node); int idmef_analyzer_new_node(idmef_analyzer_t *ptr, idmef_node_t **ret); idmef_process_t *idmef_analyzer_get_process(idmef_analyzer_t *ptr); void idmef_analyzer_set_process(idmef_analyzer_t *ptr, idmef_process_t *process); int idmef_analyzer_new_process(idmef_analyzer_t *ptr, idmef_process_t **ret); /* * struct { * IDMEF_LINKED_OBJECT; * REFCOUNT; * * REQUIRED(prelude_string_t, *alertident); * prelude_string_t *analyzerid; * * } TYPE_ID(idmef_alertident_t, 32); */ typedef struct idmef_alertident idmef_alertident_t; int idmef_alertident_new(idmef_alertident_t **ret); int idmef_alertident_copy(const idmef_alertident_t *src, idmef_alertident_t *dst); int idmef_alertident_clone(idmef_alertident_t *src, idmef_alertident_t **dst); int idmef_alertident_compare(const idmef_alertident_t *obj1, const idmef_alertident_t *obj2); idmef_alertident_t *idmef_alertident_ref(idmef_alertident_t *alertident); #ifndef SWIG int _idmef_alertident_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_alertident_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_alertident_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_alertident_destroy(idmef_alertident_t *ptr); prelude_string_t *idmef_alertident_get_alertident(idmef_alertident_t *ptr); void idmef_alertident_set_alertident(idmef_alertident_t *ptr, prelude_string_t *alertident); int idmef_alertident_new_alertident(idmef_alertident_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_alertident_get_analyzerid(idmef_alertident_t *ptr); void idmef_alertident_set_analyzerid(idmef_alertident_t *ptr, prelude_string_t *analyzerid); int idmef_alertident_new_analyzerid(idmef_alertident_t *ptr, prelude_string_t **ret); typedef enum { IDMEF_IMPACT_SEVERITY_ERROR = -1, IDMEF_IMPACT_SEVERITY_INFO = 1, IDMEF_IMPACT_SEVERITY_LOW = 2, IDMEF_IMPACT_SEVERITY_MEDIUM = 3, IDMEF_IMPACT_SEVERITY_HIGH = 4 } idmef_impact_severity_t; idmef_impact_severity_t idmef_impact_severity_to_numeric(const char *name); const char *idmef_impact_severity_to_string(idmef_impact_severity_t val); typedef enum { IDMEF_IMPACT_COMPLETION_ERROR = -1, IDMEF_IMPACT_COMPLETION_FAILED = 1, IDMEF_IMPACT_COMPLETION_SUCCEEDED = 2 } idmef_impact_completion_t; idmef_impact_completion_t idmef_impact_completion_to_numeric(const char *name); const char *idmef_impact_completion_to_string(idmef_impact_completion_t val); typedef enum { IDMEF_IMPACT_TYPE_ERROR = -1, IDMEF_IMPACT_TYPE_OTHER = 0, IDMEF_IMPACT_TYPE_ADMIN = 1, IDMEF_IMPACT_TYPE_DOS = 2, IDMEF_IMPACT_TYPE_FILE = 3, IDMEF_IMPACT_TYPE_RECON = 4, IDMEF_IMPACT_TYPE_USER = 5 } idmef_impact_type_t; idmef_impact_type_t idmef_impact_type_to_numeric(const char *name); const char *idmef_impact_type_to_string(idmef_impact_type_t val); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * * OPTIONAL_INT(idmef_impact_severity_t, severity); * OPTIONAL_INT(idmef_impact_completion_t, completion); * idmef_impact_type_t type; * prelude_string_t *description; DISPLAY_ATTRS({"priority", "0", NULL}) * } TYPE_ID(idmef_impact_t, 36); */ typedef struct idmef_impact idmef_impact_t; int idmef_impact_new(idmef_impact_t **ret); int idmef_impact_copy(const idmef_impact_t *src, idmef_impact_t *dst); int idmef_impact_clone(idmef_impact_t *src, idmef_impact_t **dst); int idmef_impact_compare(const idmef_impact_t *obj1, const idmef_impact_t *obj2); idmef_impact_t *idmef_impact_ref(idmef_impact_t *impact); #ifndef SWIG int _idmef_impact_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_impact_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_impact_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_impact_destroy(idmef_impact_t *ptr); void idmef_impact_unset_severity(idmef_impact_t *ptr); idmef_impact_severity_t *idmef_impact_get_severity(idmef_impact_t *ptr); void idmef_impact_set_severity(idmef_impact_t *ptr, idmef_impact_severity_t severity); int idmef_impact_new_severity(idmef_impact_t *ptr, idmef_impact_severity_t **ret); void idmef_impact_unset_completion(idmef_impact_t *ptr); idmef_impact_completion_t *idmef_impact_get_completion(idmef_impact_t *ptr); void idmef_impact_set_completion(idmef_impact_t *ptr, idmef_impact_completion_t completion); int idmef_impact_new_completion(idmef_impact_t *ptr, idmef_impact_completion_t **ret); idmef_impact_type_t idmef_impact_get_type(idmef_impact_t *ptr); void idmef_impact_set_type(idmef_impact_t *ptr, idmef_impact_type_t type); int idmef_impact_new_type(idmef_impact_t *ptr, idmef_impact_type_t **ret); prelude_string_t *idmef_impact_get_description(idmef_impact_t *ptr); void idmef_impact_set_description(idmef_impact_t *ptr, prelude_string_t *description); int idmef_impact_new_description(idmef_impact_t *ptr, prelude_string_t **ret); typedef enum { IDMEF_ACTION_CATEGORY_ERROR = -1, IDMEF_ACTION_CATEGORY_OTHER = 0, IDMEF_ACTION_CATEGORY_BLOCK_INSTALLED = 1, IDMEF_ACTION_CATEGORY_NOTIFICATION_SENT = 2, IDMEF_ACTION_CATEGORY_TAKEN_OFFLINE = 3 } idmef_action_category_t; idmef_action_category_t idmef_action_category_to_numeric(const char *name); const char *idmef_action_category_to_string(idmef_action_category_t val); /* * struct { * IDMEF_LINKED_OBJECT; * REFCOUNT; * * idmef_action_category_t category; * prelude_string_t *description; * } TYPE_ID(idmef_action_t, 38); */ typedef struct idmef_action idmef_action_t; int idmef_action_new(idmef_action_t **ret); int idmef_action_copy(const idmef_action_t *src, idmef_action_t *dst); int idmef_action_clone(idmef_action_t *src, idmef_action_t **dst); int idmef_action_compare(const idmef_action_t *obj1, const idmef_action_t *obj2); idmef_action_t *idmef_action_ref(idmef_action_t *action); #ifndef SWIG int _idmef_action_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_action_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_action_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_action_destroy(idmef_action_t *ptr); idmef_action_category_t idmef_action_get_category(idmef_action_t *ptr); void idmef_action_set_category(idmef_action_t *ptr, idmef_action_category_t category); int idmef_action_new_category(idmef_action_t *ptr, idmef_action_category_t **ret); prelude_string_t *idmef_action_get_description(idmef_action_t *ptr); void idmef_action_set_description(idmef_action_t *ptr, prelude_string_t *description); int idmef_action_new_description(idmef_action_t *ptr, prelude_string_t **ret); typedef enum { IDMEF_CONFIDENCE_RATING_ERROR = -1, IDMEF_CONFIDENCE_RATING_NUMERIC = 0, IDMEF_CONFIDENCE_RATING_LOW = 1, IDMEF_CONFIDENCE_RATING_MEDIUM = 2, IDMEF_CONFIDENCE_RATING_HIGH = 3 } idmef_confidence_rating_t; idmef_confidence_rating_t idmef_confidence_rating_to_numeric(const char *name); const char *idmef_confidence_rating_to_string(idmef_confidence_rating_t val); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * * idmef_confidence_rating_t rating; * float confidence; * } TYPE_ID(idmef_confidence_t, 40); */ typedef struct idmef_confidence idmef_confidence_t; int idmef_confidence_new(idmef_confidence_t **ret); int idmef_confidence_copy(const idmef_confidence_t *src, idmef_confidence_t *dst); int idmef_confidence_clone(idmef_confidence_t *src, idmef_confidence_t **dst); int idmef_confidence_compare(const idmef_confidence_t *obj1, const idmef_confidence_t *obj2); idmef_confidence_t *idmef_confidence_ref(idmef_confidence_t *confidence); #ifndef SWIG int _idmef_confidence_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_confidence_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_confidence_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_confidence_destroy(idmef_confidence_t *ptr); idmef_confidence_rating_t idmef_confidence_get_rating(idmef_confidence_t *ptr); void idmef_confidence_set_rating(idmef_confidence_t *ptr, idmef_confidence_rating_t rating); int idmef_confidence_new_rating(idmef_confidence_t *ptr, idmef_confidence_rating_t **ret); float idmef_confidence_get_confidence(idmef_confidence_t *ptr); void idmef_confidence_set_confidence(idmef_confidence_t *ptr, float confidence); int idmef_confidence_new_confidence(idmef_confidence_t *ptr, float **ret); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * * idmef_impact_t *impact; DISPLAY_ATTRS({"priority", "0", NULL}) * LISTED_OBJECT(action_list, idmef_action_t); * idmef_confidence_t *confidence; DISPLAY_ATTRS({"priority", "0", NULL}) * } TYPE_ID(idmef_assessment_t, 41); */ typedef struct idmef_assessment idmef_assessment_t; int idmef_assessment_new(idmef_assessment_t **ret); int idmef_assessment_copy(const idmef_assessment_t *src, idmef_assessment_t *dst); int idmef_assessment_clone(idmef_assessment_t *src, idmef_assessment_t **dst); int idmef_assessment_compare(const idmef_assessment_t *obj1, const idmef_assessment_t *obj2); idmef_assessment_t *idmef_assessment_ref(idmef_assessment_t *assessment); #ifndef SWIG int _idmef_assessment_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_assessment_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_assessment_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_assessment_destroy(idmef_assessment_t *ptr); idmef_impact_t *idmef_assessment_get_impact(idmef_assessment_t *ptr); void idmef_assessment_set_impact(idmef_assessment_t *ptr, idmef_impact_t *impact); int idmef_assessment_new_impact(idmef_assessment_t *ptr, idmef_impact_t **ret); idmef_action_t *idmef_assessment_get_next_action(idmef_assessment_t *assessment, idmef_action_t *action_cur); void idmef_assessment_set_action(idmef_assessment_t *ptr, idmef_action_t *object, int pos); int idmef_assessment_new_action(idmef_assessment_t *ptr, idmef_action_t **ret, int pos); idmef_confidence_t *idmef_assessment_get_confidence(idmef_assessment_t *ptr); void idmef_assessment_set_confidence(idmef_assessment_t *ptr, idmef_confidence_t *confidence); int idmef_assessment_new_confidence(idmef_assessment_t *ptr, idmef_confidence_t **ret); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * * REQUIRED(prelude_string_t, *name); DISPLAY_ATTRS({"priority", "0", NULL}) * prelude_string_t *command; DISPLAY_ATTRS({"priority", "0", NULL}) * LISTED_OBJECT(alertident_list, idmef_alertident_t); * } TYPE_ID(idmef_tool_alert_t, 42); */ typedef struct idmef_tool_alert idmef_tool_alert_t; int idmef_tool_alert_new(idmef_tool_alert_t **ret); int idmef_tool_alert_copy(const idmef_tool_alert_t *src, idmef_tool_alert_t *dst); int idmef_tool_alert_clone(idmef_tool_alert_t *src, idmef_tool_alert_t **dst); int idmef_tool_alert_compare(const idmef_tool_alert_t *obj1, const idmef_tool_alert_t *obj2); idmef_tool_alert_t *idmef_tool_alert_ref(idmef_tool_alert_t *tool_alert); #ifndef SWIG int _idmef_tool_alert_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_tool_alert_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_tool_alert_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_tool_alert_destroy(idmef_tool_alert_t *ptr); prelude_string_t *idmef_tool_alert_get_name(idmef_tool_alert_t *ptr); void idmef_tool_alert_set_name(idmef_tool_alert_t *ptr, prelude_string_t *name); int idmef_tool_alert_new_name(idmef_tool_alert_t *ptr, prelude_string_t **ret); prelude_string_t *idmef_tool_alert_get_command(idmef_tool_alert_t *ptr); void idmef_tool_alert_set_command(idmef_tool_alert_t *ptr, prelude_string_t *command); int idmef_tool_alert_new_command(idmef_tool_alert_t *ptr, prelude_string_t **ret); idmef_alertident_t *idmef_tool_alert_get_next_alertident(idmef_tool_alert_t *tool_alert, idmef_alertident_t *alertident_cur); void idmef_tool_alert_set_alertident(idmef_tool_alert_t *ptr, idmef_alertident_t *object, int pos); int idmef_tool_alert_new_alertident(idmef_tool_alert_t *ptr, idmef_alertident_t **ret, int pos); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * * REQUIRED(prelude_string_t, *name); DISPLAY_ATTRS({"priority", "0", NULL}) * LISTED_OBJECT(alertident_list, idmef_alertident_t); * } TYPE_ID(idmef_correlation_alert_t, 43); */ typedef struct idmef_correlation_alert idmef_correlation_alert_t; int idmef_correlation_alert_new(idmef_correlation_alert_t **ret); int idmef_correlation_alert_copy(const idmef_correlation_alert_t *src, idmef_correlation_alert_t *dst); int idmef_correlation_alert_clone(idmef_correlation_alert_t *src, idmef_correlation_alert_t **dst); int idmef_correlation_alert_compare(const idmef_correlation_alert_t *obj1, const idmef_correlation_alert_t *obj2); idmef_correlation_alert_t *idmef_correlation_alert_ref(idmef_correlation_alert_t *correlation_alert); #ifndef SWIG int _idmef_correlation_alert_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_correlation_alert_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_correlation_alert_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_correlation_alert_destroy(idmef_correlation_alert_t *ptr); prelude_string_t *idmef_correlation_alert_get_name(idmef_correlation_alert_t *ptr); void idmef_correlation_alert_set_name(idmef_correlation_alert_t *ptr, prelude_string_t *name); int idmef_correlation_alert_new_name(idmef_correlation_alert_t *ptr, prelude_string_t **ret); idmef_alertident_t *idmef_correlation_alert_get_next_alertident(idmef_correlation_alert_t *correlation_alert, idmef_alertident_t *alertident_cur); void idmef_correlation_alert_set_alertident(idmef_correlation_alert_t *ptr, idmef_alertident_t *object, int pos); int idmef_correlation_alert_new_alertident(idmef_correlation_alert_t *ptr, idmef_alertident_t **ret, int pos); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * * REQUIRED(prelude_string_t, *program); DISPLAY_ATTRS({"priority", "0", NULL}) * OPTIONAL_INT(uint32_t, size); * idmef_data_t *buffer; * } TYPE_ID(idmef_overflow_alert_t, 44); */ typedef struct idmef_overflow_alert idmef_overflow_alert_t; int idmef_overflow_alert_new(idmef_overflow_alert_t **ret); int idmef_overflow_alert_copy(const idmef_overflow_alert_t *src, idmef_overflow_alert_t *dst); int idmef_overflow_alert_clone(idmef_overflow_alert_t *src, idmef_overflow_alert_t **dst); int idmef_overflow_alert_compare(const idmef_overflow_alert_t *obj1, const idmef_overflow_alert_t *obj2); idmef_overflow_alert_t *idmef_overflow_alert_ref(idmef_overflow_alert_t *overflow_alert); #ifndef SWIG int _idmef_overflow_alert_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_overflow_alert_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_overflow_alert_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_overflow_alert_destroy(idmef_overflow_alert_t *ptr); prelude_string_t *idmef_overflow_alert_get_program(idmef_overflow_alert_t *ptr); void idmef_overflow_alert_set_program(idmef_overflow_alert_t *ptr, prelude_string_t *program); int idmef_overflow_alert_new_program(idmef_overflow_alert_t *ptr, prelude_string_t **ret); void idmef_overflow_alert_unset_size(idmef_overflow_alert_t *ptr); uint32_t *idmef_overflow_alert_get_size(idmef_overflow_alert_t *ptr); void idmef_overflow_alert_set_size(idmef_overflow_alert_t *ptr, uint32_t size); int idmef_overflow_alert_new_size(idmef_overflow_alert_t *ptr, uint32_t **ret); idmef_data_t *idmef_overflow_alert_get_buffer(idmef_overflow_alert_t *ptr); void idmef_overflow_alert_set_buffer(idmef_overflow_alert_t *ptr, idmef_data_t *buffer); int idmef_overflow_alert_new_buffer(idmef_overflow_alert_t *ptr, idmef_data_t **ret); typedef enum { IDMEF_ALERT_TYPE_ERROR = -1, IDMEF_ALERT_TYPE_DEFAULT = 0, IDMEF_ALERT_TYPE_TOOL = 1, IDMEF_ALERT_TYPE_CORRELATION = 2, IDMEF_ALERT_TYPE_OVERFLOW = 3 } idmef_alert_type_t; idmef_alert_type_t idmef_alert_type_to_numeric(const char *name); const char *idmef_alert_type_to_string(idmef_alert_type_t val); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * prelude_string_t *messageid; * * LISTED_OBJECT(analyzer_list, idmef_analyzer_t); * * REQUIRED(idmef_time_t, *create_time); * REQUIRED(idmef_classification_t, *classification); * idmef_time_t *detect_time; * idmef_time_t *analyzer_time; * * LISTED_OBJECT(source_list, idmef_source_t); * LISTED_OBJECT(target_list, idmef_target_t); * * idmef_assessment_t *assessment; * * KEYLISTED_OBJECT(additional_data_list, idmef_additional_data_t); * * UNION(idmef_alert_type_t, type) { * UNION_MEMBER(IDMEF_ALERT_TYPE_TOOL, idmef_tool_alert_t, *tool_alert); * UNION_MEMBER(IDMEF_ALERT_TYPE_CORRELATION, idmef_correlation_alert_t, *correlation_alert); * UNION_MEMBER(IDMEF_ALERT_TYPE_OVERFLOW, idmef_overflow_alert_t, *overflow_alert); * } detail; * * } TYPE_ID(idmef_alert_t, 46); */ typedef struct idmef_alert idmef_alert_t; int idmef_alert_new(idmef_alert_t **ret); int idmef_alert_copy(const idmef_alert_t *src, idmef_alert_t *dst); int idmef_alert_clone(idmef_alert_t *src, idmef_alert_t **dst); int idmef_alert_compare(const idmef_alert_t *obj1, const idmef_alert_t *obj2); idmef_alert_t *idmef_alert_ref(idmef_alert_t *alert); #ifndef SWIG int _idmef_alert_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_alert_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_alert_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_alert_destroy(idmef_alert_t *ptr); prelude_string_t *idmef_alert_get_messageid(idmef_alert_t *ptr); void idmef_alert_set_messageid(idmef_alert_t *ptr, prelude_string_t *messageid); int idmef_alert_new_messageid(idmef_alert_t *ptr, prelude_string_t **ret); idmef_analyzer_t *idmef_alert_get_next_analyzer(idmef_alert_t *alert, idmef_analyzer_t *analyzer_cur); void idmef_alert_set_analyzer(idmef_alert_t *ptr, idmef_analyzer_t *object, int pos); int idmef_alert_new_analyzer(idmef_alert_t *ptr, idmef_analyzer_t **ret, int pos); idmef_time_t *idmef_alert_get_create_time(idmef_alert_t *ptr); void idmef_alert_set_create_time(idmef_alert_t *ptr, idmef_time_t *create_time); int idmef_alert_new_create_time(idmef_alert_t *ptr, idmef_time_t **ret); idmef_classification_t *idmef_alert_get_classification(idmef_alert_t *ptr); void idmef_alert_set_classification(idmef_alert_t *ptr, idmef_classification_t *classification); int idmef_alert_new_classification(idmef_alert_t *ptr, idmef_classification_t **ret); idmef_time_t *idmef_alert_get_detect_time(idmef_alert_t *ptr); void idmef_alert_set_detect_time(idmef_alert_t *ptr, idmef_time_t *detect_time); int idmef_alert_new_detect_time(idmef_alert_t *ptr, idmef_time_t **ret); idmef_time_t *idmef_alert_get_analyzer_time(idmef_alert_t *ptr); void idmef_alert_set_analyzer_time(idmef_alert_t *ptr, idmef_time_t *analyzer_time); int idmef_alert_new_analyzer_time(idmef_alert_t *ptr, idmef_time_t **ret); idmef_source_t *idmef_alert_get_next_source(idmef_alert_t *alert, idmef_source_t *source_cur); void idmef_alert_set_source(idmef_alert_t *ptr, idmef_source_t *object, int pos); int idmef_alert_new_source(idmef_alert_t *ptr, idmef_source_t **ret, int pos); idmef_target_t *idmef_alert_get_next_target(idmef_alert_t *alert, idmef_target_t *target_cur); void idmef_alert_set_target(idmef_alert_t *ptr, idmef_target_t *object, int pos); int idmef_alert_new_target(idmef_alert_t *ptr, idmef_target_t **ret, int pos); idmef_assessment_t *idmef_alert_get_assessment(idmef_alert_t *ptr); void idmef_alert_set_assessment(idmef_alert_t *ptr, idmef_assessment_t *assessment); int idmef_alert_new_assessment(idmef_alert_t *ptr, idmef_assessment_t **ret); idmef_additional_data_t *idmef_alert_get_next_additional_data(idmef_alert_t *alert, idmef_additional_data_t *additional_data_cur); void idmef_alert_set_additional_data(idmef_alert_t *ptr, idmef_additional_data_t *object, int pos); int idmef_alert_new_additional_data(idmef_alert_t *ptr, idmef_additional_data_t **ret, int pos); idmef_alert_type_t idmef_alert_get_type(idmef_alert_t *ptr); idmef_tool_alert_t *idmef_alert_get_tool_alert(idmef_alert_t *ptr); void idmef_alert_set_tool_alert(idmef_alert_t *ptr, idmef_tool_alert_t *tool_alert); int idmef_alert_new_tool_alert(idmef_alert_t *ptr, idmef_tool_alert_t **ret); idmef_correlation_alert_t *idmef_alert_get_correlation_alert(idmef_alert_t *ptr); void idmef_alert_set_correlation_alert(idmef_alert_t *ptr, idmef_correlation_alert_t *correlation_alert); int idmef_alert_new_correlation_alert(idmef_alert_t *ptr, idmef_correlation_alert_t **ret); idmef_overflow_alert_t *idmef_alert_get_overflow_alert(idmef_alert_t *ptr); void idmef_alert_set_overflow_alert(idmef_alert_t *ptr, idmef_overflow_alert_t *overflow_alert); int idmef_alert_new_overflow_alert(idmef_alert_t *ptr, idmef_overflow_alert_t **ret); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * * prelude_string_t *messageid; * LISTED_OBJECT(analyzer_list, idmef_analyzer_t); * * REQUIRED(idmef_time_t, *create_time); * idmef_time_t *analyzer_time; * * OPTIONAL_INT(uint32_t, heartbeat_interval); * KEYLISTED_OBJECT(additional_data_list, idmef_additional_data_t); * } TYPE_ID(idmef_heartbeat_t, 47); */ typedef struct idmef_heartbeat idmef_heartbeat_t; int idmef_heartbeat_new(idmef_heartbeat_t **ret); int idmef_heartbeat_copy(const idmef_heartbeat_t *src, idmef_heartbeat_t *dst); int idmef_heartbeat_clone(idmef_heartbeat_t *src, idmef_heartbeat_t **dst); int idmef_heartbeat_compare(const idmef_heartbeat_t *obj1, const idmef_heartbeat_t *obj2); idmef_heartbeat_t *idmef_heartbeat_ref(idmef_heartbeat_t *heartbeat); #ifndef SWIG int _idmef_heartbeat_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_heartbeat_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_heartbeat_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_heartbeat_destroy(idmef_heartbeat_t *ptr); prelude_string_t *idmef_heartbeat_get_messageid(idmef_heartbeat_t *ptr); void idmef_heartbeat_set_messageid(idmef_heartbeat_t *ptr, prelude_string_t *messageid); int idmef_heartbeat_new_messageid(idmef_heartbeat_t *ptr, prelude_string_t **ret); idmef_analyzer_t *idmef_heartbeat_get_next_analyzer(idmef_heartbeat_t *heartbeat, idmef_analyzer_t *analyzer_cur); void idmef_heartbeat_set_analyzer(idmef_heartbeat_t *ptr, idmef_analyzer_t *object, int pos); int idmef_heartbeat_new_analyzer(idmef_heartbeat_t *ptr, idmef_analyzer_t **ret, int pos); idmef_time_t *idmef_heartbeat_get_create_time(idmef_heartbeat_t *ptr); void idmef_heartbeat_set_create_time(idmef_heartbeat_t *ptr, idmef_time_t *create_time); int idmef_heartbeat_new_create_time(idmef_heartbeat_t *ptr, idmef_time_t **ret); idmef_time_t *idmef_heartbeat_get_analyzer_time(idmef_heartbeat_t *ptr); void idmef_heartbeat_set_analyzer_time(idmef_heartbeat_t *ptr, idmef_time_t *analyzer_time); int idmef_heartbeat_new_analyzer_time(idmef_heartbeat_t *ptr, idmef_time_t **ret); void idmef_heartbeat_unset_heartbeat_interval(idmef_heartbeat_t *ptr); uint32_t *idmef_heartbeat_get_heartbeat_interval(idmef_heartbeat_t *ptr); void idmef_heartbeat_set_heartbeat_interval(idmef_heartbeat_t *ptr, uint32_t heartbeat_interval); int idmef_heartbeat_new_heartbeat_interval(idmef_heartbeat_t *ptr, uint32_t **ret); idmef_additional_data_t *idmef_heartbeat_get_next_additional_data(idmef_heartbeat_t *heartbeat, idmef_additional_data_t *additional_data_cur); void idmef_heartbeat_set_additional_data(idmef_heartbeat_t *ptr, idmef_additional_data_t *object, int pos); int idmef_heartbeat_new_additional_data(idmef_heartbeat_t *ptr, idmef_additional_data_t **ret, int pos); typedef enum { IDMEF_MESSAGE_TYPE_ERROR = -1, IDMEF_MESSAGE_TYPE_ALERT = 1, IDMEF_MESSAGE_TYPE_HEARTBEAT = 2 } idmef_message_type_t; idmef_message_type_t idmef_message_type_to_numeric(const char *name); const char *idmef_message_type_to_string(idmef_message_type_t val); /* * struct { * IDMEF_OBJECT; * REFCOUNT; * * REQUIRED(prelude_string_t, *version); * * UNION(idmef_message_type_t, type) { * UNION_MEMBER(IDMEF_MESSAGE_TYPE_ALERT, idmef_alert_t, *alert); * UNION_MEMBER(IDMEF_MESSAGE_TYPE_HEARTBEAT, idmef_heartbeat_t, *heartbeat); * } message; * * HIDE(prelude_msg_t *, pmsg); * * } TYPE_ID(idmef_message_t, 49); */ typedef struct idmef_message idmef_message_t; int idmef_message_new(idmef_message_t **ret); int idmef_message_copy(const idmef_message_t *src, idmef_message_t *dst); int idmef_message_clone(idmef_message_t *src, idmef_message_t **dst); int idmef_message_compare(const idmef_message_t *obj1, const idmef_message_t *obj2); idmef_message_t *idmef_message_ref(idmef_message_t *message); #ifndef SWIG int _idmef_message_get_child(void *p, idmef_class_child_id_t child, void **childptr); int _idmef_message_new_child(void *p, idmef_class_child_id_t child, int n, void **ret); int _idmef_message_destroy_child(void *p, idmef_class_child_id_t child, int n); #endif void idmef_message_destroy(idmef_message_t *ptr); prelude_string_t *idmef_message_get_version(idmef_message_t *ptr); void idmef_message_set_version(idmef_message_t *ptr, prelude_string_t *version); int idmef_message_new_version(idmef_message_t *ptr, prelude_string_t **ret); idmef_message_type_t idmef_message_get_type(idmef_message_t *ptr); idmef_alert_t *idmef_message_get_alert(idmef_message_t *ptr); void idmef_message_set_alert(idmef_message_t *ptr, idmef_alert_t *alert); int idmef_message_new_alert(idmef_message_t *ptr, idmef_alert_t **ret); idmef_heartbeat_t *idmef_message_get_heartbeat(idmef_message_t *ptr); void idmef_message_set_heartbeat(idmef_message_t *ptr, idmef_heartbeat_t *heartbeat); int idmef_message_new_heartbeat(idmef_message_t *ptr, idmef_heartbeat_t **ret); void idmef_message_set_pmsg(idmef_message_t *message, prelude_msg_t *msg); prelude_msg_t *idmef_message_get_pmsg(idmef_message_t *message); int _idmef_additional_data_type_is_set(idmef_additional_data_t *ad); #ifdef __cplusplus } #endif #define IDMEF_CLASS_ID_ADDITIONAL_DATA_TYPE 3 #define IDMEF_CLASS_ID_ADDITIONAL_DATA 4 #define IDMEF_CLASS_ID_REFERENCE_ORIGIN 5 #define IDMEF_CLASS_ID_REFERENCE 50 #define IDMEF_CLASS_ID_CLASSIFICATION 6 #define IDMEF_CLASS_ID_USER_ID_TYPE 7 #define IDMEF_CLASS_ID_USER_ID 8 #define IDMEF_CLASS_ID_USER_CATEGORY 9 #define IDMEF_CLASS_ID_USER 10 #define IDMEF_CLASS_ID_ADDRESS_CATEGORY 11 #define IDMEF_CLASS_ID_ADDRESS 12 #define IDMEF_CLASS_ID_PROCESS 13 #define IDMEF_CLASS_ID_WEB_SERVICE 14 #define IDMEF_CLASS_ID_SNMP_SERVICE 15 #define IDMEF_CLASS_ID_SERVICE_TYPE 16 #define IDMEF_CLASS_ID_SERVICE 17 #define IDMEF_CLASS_ID_NODE_CATEGORY 18 #define IDMEF_CLASS_ID_NODE 19 #define IDMEF_CLASS_ID_SOURCE_SPOOFED 20 #define IDMEF_CLASS_ID_SOURCE 21 #define IDMEF_CLASS_ID_FILE_ACCESS 22 #define IDMEF_CLASS_ID_INODE 23 #define IDMEF_CLASS_ID_CHECKSUM_ALGORITHM 53 #define IDMEF_CLASS_ID_CHECKSUM 52 #define IDMEF_CLASS_ID_FILE_CATEGORY 24 #define IDMEF_CLASS_ID_FILE_FSTYPE 25 #define IDMEF_CLASS_ID_FILE 26 #define IDMEF_CLASS_ID_LINKAGE_CATEGORY 27 #define IDMEF_CLASS_ID_LINKAGE 28 #define IDMEF_CLASS_ID_TARGET_DECOY 29 #define IDMEF_CLASS_ID_TARGET 30 #define IDMEF_CLASS_ID_ANALYZER 31 #define IDMEF_CLASS_ID_ALERTIDENT 32 #define IDMEF_CLASS_ID_IMPACT_SEVERITY 33 #define IDMEF_CLASS_ID_IMPACT_COMPLETION 34 #define IDMEF_CLASS_ID_IMPACT_TYPE 35 #define IDMEF_CLASS_ID_IMPACT 36 #define IDMEF_CLASS_ID_ACTION_CATEGORY 37 #define IDMEF_CLASS_ID_ACTION 38 #define IDMEF_CLASS_ID_CONFIDENCE_RATING 39 #define IDMEF_CLASS_ID_CONFIDENCE 40 #define IDMEF_CLASS_ID_ASSESSMENT 41 #define IDMEF_CLASS_ID_TOOL_ALERT 42 #define IDMEF_CLASS_ID_CORRELATION_ALERT 43 #define IDMEF_CLASS_ID_OVERFLOW_ALERT 44 #define IDMEF_CLASS_ID_ALERT_TYPE 45 #define IDMEF_CLASS_ID_ALERT 46 #define IDMEF_CLASS_ID_HEARTBEAT 47 #define IDMEF_CLASS_ID_MESSAGE_TYPE 48 #define IDMEF_CLASS_ID_MESSAGE 49 #endif /* _LIBPRELUDE_IDMEF_TREE_WRAP */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-value.h0000644000000000000000000000010713726163410021432 xustar000000000000000023 mtime=1599661832.69 24 atime=1599661832.789 24 ctime=1599662000.074 libprelude-5.2.0/src/include/idmef-value.h0000644000000000000000000001534113726163410020433 0ustar00rootroot00000000000000/***** * * Copyright (C) 2002-2020 CS GROUP - France. All Rights Reserved. * Author: Nicolas Delon * Author: Krzysztof Zaraska * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_VALUE_H #define _LIBPRELUDE_IDMEF_VALUE_H typedef struct idmef_value idmef_value_t; #include "prelude-io.h" #include "idmef-value-type.h" #include "prelude-string.h" #include "idmef-class.h" #include "idmef-path.h" #ifdef __cplusplus extern "C" { #endif int idmef_value_new_int8(idmef_value_t **value, int8_t val); int idmef_value_new_uint8(idmef_value_t **value, uint8_t val); int idmef_value_new_int16(idmef_value_t **value, int16_t val); int idmef_value_new_uint16(idmef_value_t **value, uint16_t val); int idmef_value_new_int32(idmef_value_t **value, int32_t val); int idmef_value_new_uint32(idmef_value_t **value, uint32_t val); int idmef_value_new_int64(idmef_value_t **value, int64_t val); int idmef_value_new_uint64(idmef_value_t **value, uint64_t val); int idmef_value_new_float(idmef_value_t **value, float val); int idmef_value_new_double(idmef_value_t **value, double val); int idmef_value_new_string(idmef_value_t **value, prelude_string_t *string); int idmef_value_new_time(idmef_value_t **value, idmef_time_t *time); int idmef_value_new_data(idmef_value_t **value, idmef_data_t *data); int idmef_value_new_class(idmef_value_t **value, idmef_class_id_t classid, void *ptr); int idmef_value_new_list(idmef_value_t **value); int idmef_value_new_enum(idmef_value_t **value, idmef_class_id_t classid, const char *buf); int idmef_value_new_enum_from_string(idmef_value_t **value, idmef_class_id_t classid, const char *buf); int idmef_value_new_enum_from_numeric(idmef_value_t **value, idmef_class_id_t classid, int val); int idmef_value_set_int8(idmef_value_t *value, int8_t val); int idmef_value_set_uint8(idmef_value_t *value, uint8_t val); int idmef_value_set_int16(idmef_value_t *value, int16_t val); int idmef_value_set_uint16(idmef_value_t *value, uint16_t val); int idmef_value_set_int32(idmef_value_t *value, int32_t val); int idmef_value_set_uint32(idmef_value_t *value, uint32_t val); int idmef_value_set_int64(idmef_value_t *value, int64_t val); int idmef_value_set_uint64(idmef_value_t *value, uint64_t val); int idmef_value_set_float(idmef_value_t *value, float val); int idmef_value_set_double(idmef_value_t *value, double val); int idmef_value_set_string(idmef_value_t *value, prelude_string_t *string); int idmef_value_set_time(idmef_value_t *value, idmef_time_t *time); int idmef_value_set_data(idmef_value_t *value, idmef_data_t *data); int idmef_value_set_enum(idmef_value_t *value, idmef_class_id_t classid, const char *buf); int idmef_value_set_enum_from_string(idmef_value_t *value, idmef_class_id_t classid, const char *buf); int idmef_value_set_enum_from_numeric(idmef_value_t *value, idmef_class_id_t classid, int no); int idmef_value_set_class(idmef_value_t *value, idmef_class_id_t classid, void *ptr); int idmef_value_new(idmef_value_t **value, idmef_value_type_id_t type, void *ptr); int idmef_value_new_from_path(idmef_value_t **value, idmef_path_t *path, const char *buf); int idmef_value_new_from_string(idmef_value_t **value, idmef_value_type_id_t type, const char *buf); int8_t idmef_value_get_int8(const idmef_value_t *val); uint8_t idmef_value_get_uint8(const idmef_value_t *val); int16_t idmef_value_get_int16(const idmef_value_t *val); uint16_t idmef_value_get_uint16(const idmef_value_t *val); int32_t idmef_value_get_int32(const idmef_value_t *val); uint32_t idmef_value_get_uint32(const idmef_value_t *val); int64_t idmef_value_get_int64(const idmef_value_t *val); uint64_t idmef_value_get_uint64(const idmef_value_t *val); int idmef_value_get_enum(const idmef_value_t *val); float idmef_value_get_float(const idmef_value_t *val); double idmef_value_get_double(const idmef_value_t *val); idmef_time_t *idmef_value_get_time(const idmef_value_t *val); idmef_data_t *idmef_value_get_data(const idmef_value_t *val); prelude_string_t *idmef_value_get_string(const idmef_value_t *val); int idmef_value_list_add(idmef_value_t *list, idmef_value_t *item); prelude_bool_t idmef_value_is_list(const idmef_value_t *list); prelude_bool_t idmef_value_list_is_empty(const idmef_value_t *list); int idmef_value_have_own_data(idmef_value_t *value); int idmef_value_dont_have_own_data(idmef_value_t *value); idmef_value_type_id_t idmef_value_get_type(const idmef_value_t *value); idmef_class_id_t idmef_value_get_class(const idmef_value_t *value); void *idmef_value_get_object(const idmef_value_t *value); int idmef_value_iterate(const idmef_value_t *value, int (*callback)(idmef_value_t *ptr, void *extra), void *extra); int idmef_value_iterate_reversed(const idmef_value_t *value, int (*callback)(idmef_value_t *ptr, void *extra), void *extra); int idmef_value_get_nth2(const idmef_value_t *val, int index, idmef_value_t **ret); idmef_value_t *idmef_value_get_nth(const idmef_value_t *val, int n); int idmef_value_get_count(const idmef_value_t *val); int idmef_value_clone(const idmef_value_t *val, idmef_value_t **dst); idmef_value_t *idmef_value_ref(idmef_value_t *val); int idmef_value_print(const idmef_value_t *val, prelude_io_t *fd); int idmef_value_to_string(const idmef_value_t *value, prelude_string_t *out); int idmef_value_get(const idmef_value_t *val, void *res); int idmef_value_match(idmef_value_t *val1, idmef_value_t *val2, idmef_criterion_operator_t op); int idmef_value_check_operator(const idmef_value_t *value, idmef_criterion_operator_t op); int idmef_value_get_applicable_operators(const idmef_value_t *value, idmef_criterion_operator_t *result); void idmef_value_destroy(idmef_value_t *val); #ifndef SWIG int _idmef_value_copy_internal(const idmef_value_t *val, idmef_value_type_id_t res_type, idmef_class_id_t res_id, void *res); int _idmef_value_cast(idmef_value_t *val, idmef_value_type_id_t target_type, idmef_class_id_t enum_class); #endif #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_IDMEF_VALUE_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-value-type.h0000644000000000000000000000011013726163410022403 xustar000000000000000024 mtime=1599661832.689 24 atime=1599661832.789 24 ctime=1599662000.075 libprelude-5.2.0/src/include/idmef-value-type.h0000644000000000000000000000700713726163410021412 0ustar00rootroot00000000000000/***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _IDMEF_VALUE_TYPE_H #define _IDMEF_VALUE_TYPE_H #include "idmef-time.h" #include "idmef-data.h" #include "prelude-string.h" #ifdef __cplusplus extern "C" { #endif typedef enum { IDMEF_VALUE_TYPE_ERROR = -1, IDMEF_VALUE_TYPE_UNKNOWN = 0, IDMEF_VALUE_TYPE_INT8 = 1, IDMEF_VALUE_TYPE_UINT8 = 2, IDMEF_VALUE_TYPE_INT16 = 3, IDMEF_VALUE_TYPE_UINT16 = 4, IDMEF_VALUE_TYPE_INT32 = 5, IDMEF_VALUE_TYPE_UINT32 = 6, IDMEF_VALUE_TYPE_INT64 = 7, IDMEF_VALUE_TYPE_UINT64 = 8, IDMEF_VALUE_TYPE_FLOAT = 9, IDMEF_VALUE_TYPE_DOUBLE = 10, IDMEF_VALUE_TYPE_STRING = 11, IDMEF_VALUE_TYPE_TIME = 12, IDMEF_VALUE_TYPE_DATA = 13, IDMEF_VALUE_TYPE_ENUM = 14, IDMEF_VALUE_TYPE_LIST = 15, IDMEF_VALUE_TYPE_CLASS = 16 } idmef_value_type_id_t; typedef struct { void *object; int class_id; } idmef_value_type_class_t; typedef struct { int value; int class_id; } idmef_value_type_enum_t; typedef union { int8_t int8_val; uint8_t uint8_val; int16_t int16_val; uint16_t uint16_val; int32_t int32_val; uint32_t uint32_val; int64_t int64_val; uint64_t uint64_val; float float_val; double double_val; prelude_string_t *string_val; idmef_time_t *time_val; idmef_data_t *data_val; prelude_list_t list_val; idmef_value_type_enum_t enum_val; idmef_value_type_class_t class_val; } idmef_value_type_data_t; typedef struct { idmef_value_type_id_t id; idmef_value_type_data_t data; } idmef_value_type_t; #include "idmef-criteria.h" int idmef_value_type_ref(const idmef_value_type_t *src); int idmef_value_type_copy(const idmef_value_type_t *src, void *dst); int idmef_value_type_read(idmef_value_type_t *dst, const char *buf); int idmef_value_type_write(const idmef_value_type_t *src, prelude_string_t *out); void idmef_value_type_destroy(idmef_value_type_t *type); int idmef_value_type_clone(const idmef_value_type_t *src, idmef_value_type_t *dst); int idmef_value_type_compare(const idmef_value_type_t *type1, const idmef_value_type_t *type2, idmef_criterion_operator_t op); int idmef_value_type_check_operator(idmef_value_type_id_t type, idmef_criterion_operator_t op); int idmef_value_type_get_applicable_operators(idmef_value_type_id_t type, idmef_criterion_operator_t *result); const char *idmef_value_type_to_string(idmef_value_type_id_t type); #ifdef __cplusplus } #endif #endif libprelude-5.2.0/src/include/PaxHeaders.14770/prelude.h0000644000000000000000000000010713726163571020704 xustar000000000000000023 mtime=1599661945.59 24 atime=1599661946.973 24 ctime=1599662000.077 libprelude-5.2.0/src/include/prelude.h0000644000000000000000000000544613726163571017712 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_H #define _LIBPRELUDE_PRELUDE_H /* * LIBPRELUDE_VERSION: * Version of libprelude this header come from. * * This is mostly used by the libprelude detection routine in libprelude.m4 * to make sure that the header version is consistant with the linked library. */ #define LIBPRELUDE_VERSION "5.2.0" #define LIBPRELUDE_RELEASE_LEVEL_ALPHA 0xa #define LIBPRELUDE_RELEASE_LEVEL_BETA 0xb #define LIBPRELUDE_RELEASE_LEVEL_RC 0xc #define LIBPRELUDE_RELEASE_LEVEL_FINAL 0xf #define LIBPRELUDE_MAJOR_VERSION 5 #define LIBPRELUDE_MINOR_VERSION 2 #define LIBPRELUDE_MICRO_VERSION 0 #define LIBPRELUDE_LEVEL_VERSION LIBPRELUDE_RELEASE_LEVEL_FINAL #define LIBPRELUDE_SERIAL_VERSION 0 #define LIBPRELUDE_HEXVERSION ((LIBPRELUDE_MAJOR_VERSION << 24) | \ (LIBPRELUDE_MINOR_VERSION << 16) | \ (LIBPRELUDE_MICRO_VERSION << 8) | \ (LIBPRELUDE_LEVEL_VERSION << 4) | \ (LIBPRELUDE_SERIAL_VERSION << 0)) #include "prelude-inttypes.h" #include "prelude-macros.h" #include "common.h" #include "prelude-client.h" #include "prelude-connection.h" #include "prelude-connection-pool.h" #include "prelude-error.h" #include "prelude-io.h" #include "prelude-option.h" #include "prelude-async.h" #include "prelude-error.h" #include "prelude-plugin.h" #include "prelude-msg.h" #include "prelude-msgbuf.h" #include "prelude-timer.h" #include "idmef.h" #ifdef __cplusplus extern "C" { #endif int prelude_init(int *argc, char **argv); void prelude_deinit(void); int prelude_parse_version(const char *version, unsigned int *out); const char *prelude_check_version(const char *req_version); int prelude_thread_init(void *future_use); void prelude_fork_prepare(void); void prelude_fork_parent(void); void prelude_fork_child(void); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-async.h0000644000000000000000000000010713726163410022007 xustar000000000000000023 mtime=1599661832.69 24 atime=1599661832.789 24 ctime=1599662000.079 libprelude-5.2.0/src/include/prelude-async.h0000644000000000000000000000502513726163410021006 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_ASYNC_H #define _LIBPRELUDE_PRELUDE_ASYNC_H #include "prelude-linked-object.h" #ifdef __cplusplus extern "C" { #endif /** * prelude_async_flags_t * @PRELUDE_ASYNC_FLAGS_TIMER: Enable asynchronous timer. * * This provides asynchronous timer. When enabled, the heartbeat * function (and user specified callback, if any) will be called * automatically, from an asynchronous thread. * * If you use this flags, you won't need to call prelude_wake_up_timer() * anymore. */ typedef enum { PRELUDE_ASYNC_FLAGS_TIMER = 0x01 } prelude_async_flags_t; typedef void (*prelude_async_callback_t)(void *object, void *data); #define PRELUDE_ASYNC_OBJECT \ PRELUDE_LINKED_OBJECT; \ void *_async_data; \ prelude_async_callback_t _async_func typedef struct { PRELUDE_ASYNC_OBJECT; } prelude_async_object_t; static inline void prelude_async_set_data(prelude_async_object_t *obj, void *data) { obj->_async_data = data; } static inline void prelude_async_set_callback(prelude_async_object_t *obj, prelude_async_callback_t func) { obj->_async_func = func; } int prelude_async_init(void); prelude_async_flags_t prelude_async_get_flags(void); void prelude_async_set_flags(prelude_async_flags_t flags); void prelude_async_add(prelude_async_object_t *obj); void prelude_async_del(prelude_async_object_t *obj); void prelude_async_exit(void); void _prelude_async_fork_prepare(void); void _prelude_async_fork_parent(void); void _prelude_async_fork_child(void); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_ASYNC_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-extract.h0000644000000000000000000000010713726163410022344 xustar000000000000000024 mtime=1599661832.691 24 atime=1599661832.789 23 ctime=1599662000.08 libprelude-5.2.0/src/include/prelude-extract.h0000644000000000000000000001426513726163410021351 0ustar00rootroot00000000000000/***** * * Copyright (C) 2002-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_EXTRACT_H #define _LIBPRELUDE_EXTRACT_H #include "prelude-config.h" #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifndef WIN32 # include #else # include #endif #include "prelude-inttypes.h" #ifdef PRELUDE_ALIGNED_ACCESS #include /* for memmove */ #ifdef __cplusplus extern "C" { #endif /* * Using memmove make the generated code substencially slower, * we seen difference from 20MB/s to 200MB/s from the memmove version * to this version in doing checksum test. */ #ifdef PRELUDE_WORDS_BIGENDIAN # define byte(type, buf, pos) (type) ((const uint8_t *) (buf))[(pos)] #else # define byte(type, buf, pos) (type) ((const uint8_t *) (buf))[sizeof(type) - 1 - (pos)] #endif static inline uint16_t prelude_align_uint16(const void *buf) { return byte(uint16_t, buf, 0) << 8 | byte(uint16_t, buf, 1); } static inline int32_t prelude_align_int32(const void *buf) { return byte(int32_t, buf, 0) << 24 | byte(int32_t, buf, 1) << 16 | byte(int32_t, buf, 2) << 8 | byte(int32_t, buf, 3); } static inline uint32_t prelude_align_uint32(const void *buf) { return byte(uint32_t, buf, 0) << 24 | byte(uint32_t, buf, 1) << 16 | byte(uint32_t, buf, 2) << 8 | byte(uint32_t, buf, 3); } static inline uint64_t prelude_align_uint64(const void *buf) { return byte(uint64_t, buf, 0) << 56 | byte(uint64_t, buf, 1) << 48 | byte(uint64_t, buf, 2) << 40 | byte(uint64_t, buf, 3) << 32 | byte(uint64_t, buf, 4) << 24 | byte(uint64_t, buf, 5) << 16 | byte(uint64_t, buf, 6) << 8 | byte(uint64_t, buf, 7); } static inline float prelude_align_float(const void *buf) { return prelude_align_uint32(buf); } #else #define prelude_align_uint16(x) (*(const uint16_t *) (x)) #define prelude_align_int32(x) (*(const int32_t *) (x)) #define prelude_align_uint32(x) (*(const uint32_t *) (x)) #define prelude_align_uint64(x) (*(const uint64_t *) (x)) #define prelude_align_float(x) (*(const float *) (x)) #endif #include "prelude-string.h" #include "idmef-time.h" #include "idmef-data.h" static inline uint16_t prelude_extract_uint16(const void *buf) { return ntohs(prelude_align_uint16(buf)); } static inline int32_t prelude_extract_int32(const void *buf) { return ntohl(prelude_align_int32(buf)); } static inline uint32_t prelude_extract_uint32(const void *buf) { return ntohl(prelude_align_uint32(buf)); } static inline float prelude_extract_float(const void *buf) { union { float fval; uint32_t ival; } val; val.ival = ntohl(prelude_align_uint32(buf)); return val.fval; } static inline uint64_t prelude_extract_uint64(const void *buf) { #ifdef PRELUDE_WORDS_BIGENDIAN return prelude_align_uint64(buf); #else union { uint64_t val64; uint32_t val32[2]; } combo_r, combo_w; combo_r.val64 = prelude_align_uint64(buf); combo_w.val32[0] = ntohl(combo_r.val32[1]); combo_w.val32[1] = ntohl(combo_r.val32[0]); return combo_w.val64; #endif } /* * Theses function check the buffer size for safety. */ static inline int prelude_extract_uint8_safe(uint8_t *out, const void *buf, size_t len) { if ( len != sizeof(uint8_t) ) return prelude_error_make(PRELUDE_ERROR_SOURCE_EXTRACT, PRELUDE_ERROR_INVAL_INT8); *out = *(const uint8_t *) buf; return 0; } static inline int prelude_extract_uint16_safe(uint16_t *out, const void *buf, size_t len) { if ( len != sizeof(uint16_t) ) return prelude_error_make(PRELUDE_ERROR_SOURCE_EXTRACT, PRELUDE_ERROR_INVAL_INT16); *out = prelude_extract_uint16(buf); return 0; } static inline int prelude_extract_uint32_safe(uint32_t *out, const void *buf, size_t len) { if ( len != sizeof(uint32_t) ) return prelude_error_make(PRELUDE_ERROR_SOURCE_EXTRACT, PRELUDE_ERROR_INVAL_INT32); *out = prelude_extract_uint32(buf); return 0; } static inline int prelude_extract_int32_safe(int32_t *out, const void *buf, size_t len) { if ( len != sizeof(int32_t) ) return prelude_error_make(PRELUDE_ERROR_SOURCE_EXTRACT, PRELUDE_ERROR_INVAL_INT32); *out = prelude_extract_int32(buf); return 0; } static inline int prelude_extract_uint64_safe(uint64_t *out, const void *buf, size_t len) { if ( len != sizeof(uint64_t) ) return prelude_error_make(PRELUDE_ERROR_SOURCE_EXTRACT, PRELUDE_ERROR_INVAL_INT64); *out = prelude_extract_uint64(buf); return 0; } static inline int prelude_extract_float_safe(float *out, const void *buf, size_t len) { if ( len != sizeof(uint32_t) ) /* We pack float as an uint32_t */ return prelude_error_make(PRELUDE_ERROR_SOURCE_EXTRACT, PRELUDE_ERROR_INVAL_FLOAT); *out = prelude_extract_float(buf); return 0; } static inline int prelude_extract_characters_safe(const char **out, char *buf, size_t len) { if ( len < 2 || buf[len - 1] != '\0' ) return prelude_error_make(PRELUDE_ERROR_SOURCE_EXTRACT, PRELUDE_ERROR_INVAL_CHAR); *out = buf; return 0; } #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_EXTRACT_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-hash.h0000644000000000000000000000011013726163410021607 xustar000000000000000024 mtime=1599661832.691 24 atime=1599661832.789 24 ctime=1599662000.082 libprelude-5.2.0/src/include/prelude-hash.h0000644000000000000000000000406213726163410020614 0ustar00rootroot00000000000000/***** * * Copyright (C) 2003-2020 CS GROUP - France. All Rights Reserved. * Author: Nicolas Delon * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_HASH_H #define _LIBPRELUDE_HASH_H #ifdef __cplusplus extern "C" { #endif typedef struct prelude_hash prelude_hash_t; int prelude_hash_new(prelude_hash_t **hash, unsigned int (*hash_func)(const void *), int (*key_cmp_func)(const void *, const void *), void (*key_destroy_func)(void *), void (*value_destroy_func)(void *)); int prelude_hash_new2(prelude_hash_t **hash, size_t size, unsigned int (*hash_func)(const void *), int (*key_cmp_func)(const void *, const void *), void (*key_destroy_func)(void *), void (*value_destroy_func)(void *)); void prelude_hash_destroy(prelude_hash_t *hash); int prelude_hash_set(prelude_hash_t *hash, void *key, void *value); int prelude_hash_add(prelude_hash_t *hash, void *key, void *value); void *prelude_hash_get(prelude_hash_t *hash, const void *key); int prelude_hash_elem_destroy(prelude_hash_t *hash, const void *key); void prelude_hash_iterate(prelude_hash_t *hash, void (*cb)(void *data)); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_HASH_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-linked-object.h0000644000000000000000000000011013726163410023376 xustar000000000000000024 mtime=1599661832.692 24 atime=1599661832.789 24 ctime=1599662000.084 libprelude-5.2.0/src/include/prelude-linked-object.h0000644000000000000000000000427013726163410022404 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_LINKED_OBJECT_H #define _LIBPRELUDE_PRELUDE_LINKED_OBJECT_H #include "prelude-list.h" #define PRELUDE_LINKED_OBJECT \ unsigned int _object_id; \ prelude_list_t _list typedef struct { PRELUDE_LINKED_OBJECT; } prelude_linked_object_t; static inline void prelude_linked_object_del(prelude_linked_object_t *obj) { prelude_list_del(&obj->_list); } static inline void prelude_linked_object_del_init(prelude_linked_object_t *obj) { prelude_list_del(&obj->_list); prelude_list_init(&obj->_list); } static inline void prelude_linked_object_add(prelude_list_t *head, prelude_linked_object_t *obj) { prelude_list_add(head, &obj->_list); } static inline void prelude_linked_object_add_tail(prelude_list_t *head, prelude_linked_object_t *obj) { prelude_list_add_tail(head, &obj->_list); } static inline void prelude_linked_object_set_id(prelude_linked_object_t *obj, unsigned int id) { obj->_object_id = id; } static inline unsigned int prelude_linked_object_get_id(prelude_linked_object_t *obj) { return obj->_object_id; } #define prelude_linked_object_get_object(object) \ (void *) prelude_list_entry(object, prelude_linked_object_t, _list) #endif /* _LIBPRELUDE_PRELUDE_LINKED_OBJECT_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-list.h0000644000000000000000000000011013726163410021637 xustar000000000000000024 mtime=1599661832.692 24 atime=1599661832.789 24 ctime=1599662000.085 libprelude-5.2.0/src/include/prelude-list.h0000644000000000000000000002454013726163410020647 0ustar00rootroot00000000000000/***** * * Copyright (C) 2005-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* * This is a blind rewrite of the kernel linked list handling code, * done so that we can dual-license libprelude. The code still look * pretty similar, but there is no way to write such list implementation * in many different manner. */ #ifndef HAVE_LIBPRELUDE_PRELUDE_LIST_H #define HAVE_LIBPRELUDE_PRELUDE_LIST_H #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "prelude-inttypes.h" #ifdef __cplusplus extern "C" { #endif #define PRELUDE_LIST(item) prelude_list_t (item) = { &(item), &(item) } typedef struct prelude_list { struct prelude_list *next; struct prelude_list *prev; } prelude_list_t; static inline void __prelude_list_splice(const prelude_list_t *list, prelude_list_t *prev, prelude_list_t *next) { prelude_list_t *first = list->next, *last = list->prev; first->prev = prev; prev->next = first; last->next = next; next->prev = last; } static inline void __prelude_list_add(prelude_list_t *item, prelude_list_t *prev, prelude_list_t *next) { prev->next = item; item->prev = prev; item->next = next; next->prev = item; } /** * prelude_list_init: * @item: Pointer to a #prelude_list_t object. * * Initialize @item. Note that this is only required if @item * is the head of a list, but might also be useful in case you * want to use prelude_list_del_init(). */ static inline void prelude_list_init(prelude_list_t *item) { item->next = item->prev = item; } /** * prelude_list_is_empty: * @item: Pointer to a #prelude_list_t object. * * Check whether @item is empty or not. * * Returns: TRUE if @item is empty, FALSE otherwise. */ static inline prelude_bool_t prelude_list_is_empty(prelude_list_t *item) { return (item->next == item) ? PRELUDE_BOOL_TRUE : PRELUDE_BOOL_FALSE; } /** * prelude_list_splice_tail: * @head: Pointer to a #prelude_list_t list. * @list: Pointer to a #prelude_list_t object to add to @head. * * All item from list @list are added at the beginning of @head. */ static inline void prelude_list_splice(prelude_list_t *head, prelude_list_t *list) { if ( ! prelude_list_is_empty(list) ) __prelude_list_splice(list, head, head->next); } /** * prelude_list_splice_tail: * @head: Pointer to a #prelude_list_t list. * @list: Pointer to a #prelude_list_t object to add to @head. * * All item from list @list are added at the end of @head. */ static inline void prelude_list_splice_tail(prelude_list_t *head, prelude_list_t *list) { if ( ! prelude_list_is_empty(list) ) __prelude_list_splice(list, head->prev, head); } /** * prelude_list_add: * @head: Pointer to a #prelude_list_t list. * @item: Pointer to a #prelude_list_t object to add to @head. * * Add @item at the beginning of @head list. */ static inline void prelude_list_add(prelude_list_t *head, prelude_list_t *item) { __prelude_list_add(item, head, head->next); } /** * prelude_list_add_tail: * @head: Pointer to a #prelude_list_t list. * @item: Pointer to a #prelude_list_t object to add to @head. * * Add @item at the tail of @head list. */ static inline void prelude_list_add_tail(prelude_list_t *head, prelude_list_t *item) { __prelude_list_add(item, head->prev, head); } /** * prelude_list_del: * @item: Pointer to a #prelude_list_t object. * * Delete @item from the list it is linked in. */ static inline void prelude_list_del(prelude_list_t *item) { item->prev->next = item->next; item->next->prev = item->prev; } /** * prelude_list_del_init: * @item: Pointer to a #prelude_list_t object. * * Delete @item from the list it is linked in, and reinitialize * @item member so that the list can be considered as empty. */ static inline void prelude_list_del_init(prelude_list_t *item) { item->prev->next = item->next; item->next->prev = item->prev; prelude_list_init(item); } /** * prelude_list_entry: * @item: Pointer to a #prelude_list_t object to retrieve the entry from. * @type: Type of the entry to retrieve. * @member: List member in @type used to link it to a list. * * Retrieve the entry of type @type from the #prelude_list_t object @tmp, * using the item list member @member. Returns the entry associated with @item. */ #define prelude_list_entry(item, type, member) \ (type *) ((unsigned long) item - (unsigned long) &((type *) 0)->member) /** * prelude_list_for_each: * @list: Pointer to a #prelude_list_t list. * @pos: Pointer to a #prelude_list_t object pointing to the current list member. * * Iterate through all @list entry. prelude_list_entry() can be used to retrieve * and entry from the @pos pointer. It is not safe to call prelude_list_del() while * iterating using this function, see prelude_list_for_each_safe(). */ #define prelude_list_for_each(list, pos) \ for ( (pos) = (list)->next; (pos) != (list); (pos) = (pos)->next ) /** * prelude_list_for_each_safe: * @list: Pointer to a #prelude_list_t list. * @pos: Pointer to a #prelude_list_t object pointing to the current list member. * @bkp: Pointer to a #prelude_list_t object pointing to the next list member. * * Iterate through all @list entry. prelude_list_entry() can be used to retrieve * and entry from the @pos pointer. Calling prelude_list_del() while iterating the * list is safe. */ #define prelude_list_for_each_safe(list, pos, bkp) \ for ( (pos) = (list)->next, (bkp) = (pos)->next; (pos) != (list); (pos) = (bkp), (bkp) = (pos)->next ) /** * prelude_list_for_each_reversed: * @list: Pointer to a #prelude_list_t list. * @pos: Pointer to a #prelude_list_t object pointing to the current list member. * * Iterate through all @list entry in reverse order. prelude_list_entry() can be * used to retrieve and entry from the @pos pointer. It is not safe to call * prelude_list_del() while iterating using this function, see * prelude_list_for_each_reversed_safe(). */ #define prelude_list_for_each_reversed(list, pos) \ for ( (pos) = (list)->prev; (pos) != (list); (pos) = (pos)->prev ) /** * prelude_list_for_each_reversed_safe: * @list: Pointer to a #prelude_list_t list. * @pos: Pointer to a #prelude_list_t object pointing to the current list member. * @bkp: Pointer to a #prelude_list_t object pointing to the next list member. * * Iterate through all @list entry in reverse order. prelude_list_entry() can be used to retrieve * and entry from the @pos pointer. Calling prelude_list_del() while iterating the * list is safe. */ #define prelude_list_for_each_reversed_safe(list, pos, bkp) \ for ( (pos) = (list)->prev, (bkp) = (pos)->prev; (pos) != (list); (pos) = (bkp), (bkp) = (pos)->prev ) /** * prelude_list_for_each_continue: * @list: Pointer to a #prelude_list_t list. * @pos: Pointer to a #prelude_list_t object pointing to the current list member. * * Iterate through all @list entry starting from @pos if it is not NULL, or from * the start of @list if it is. prelude_list_entry() can be used to retrieve * and entry from the @pos pointer. Calling prelude_list_del() while iterating the * list is not safe. */ #define prelude_list_for_each_continue(list, pos) \ for ( (pos) = ((pos) == NULL) ? (list)->next : (pos)->next; (pos) != (list); (pos) = (pos)->next ) /** * prelude_list_for_each_continue_safe: * @list: Pointer to a #prelude_list_t list. * @pos: Pointer to a #prelude_list_t object pointing to the current list member. * @bkp: Pointer to a #prelude_list_t object pointing to the next list member. * * Iterate through all @list entry starting from @pos if it is not NULL, or from * the start of @list if it is. prelude_list_entry() can be used to retrieve * and entry from the @pos pointer. Calling prelude_list_del() while iterating the * list is safe. */ #define prelude_list_for_each_continue_safe(list, pos, bkp) \ for ( (pos) = ((bkp) == NULL) ? (list)->next : (bkp); (bkp) = (pos)->next, (pos) != (list); (pos) = (bkp) ) #define prelude_list_get_next(list, pos, class, member) \ pos ? \ ((pos)->member.next == (list)) ? NULL : \ prelude_list_entry((pos)->member.next, class, member) \ : \ ((list)->next == (list)) ? NULL : \ prelude_list_entry((list)->next, class, member) #define prelude_list_get_next_safe(list, pos, bkp, class, member) \ pos ? \ (((pos) = bkp), \ ((bkp) = (! (bkp) || (bkp)->member.next == list) ? NULL : prelude_list_entry((pos)->member.next, class, member)), \ (pos)) \ : \ (((pos) = ((list)->next == list) ? NULL : prelude_list_entry((list)->next, class, member)), \ ((bkp) = (! (pos) ||(pos)->member.next == list ) ? NULL : prelude_list_entry((pos)->member.next, class, member)), \ (pos)) #ifdef __cplusplus } #endif #endif libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-log.h0000644000000000000000000000011013726163410021445 xustar000000000000000024 mtime=1599661832.692 24 atime=1599661832.789 24 ctime=1599662000.087 libprelude-5.2.0/src/include/prelude-log.h0000644000000000000000000000625513726163410020460 0ustar00rootroot00000000000000/***** * * Copyright (C) 2005-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_LOG_H #define _LIBPRELUDE_PRELUDE_LOG_H #include "prelude-config.h" #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "prelude-macros.h" #include #ifdef __cplusplus extern "C" { #endif typedef enum { PRELUDE_LOG_CRIT = -1, PRELUDE_LOG_ERR = 0, PRELUDE_LOG_WARN = 1, PRELUDE_LOG_INFO = 2, PRELUDE_LOG_DEBUG = 3 } prelude_log_t; typedef enum { PRELUDE_LOG_FLAGS_QUIET = 0x01, /* Drop PRELUDE_LOG_PRIORITY_INFO */ PRELUDE_LOG_FLAGS_SYSLOG = 0x02 } prelude_log_flags_t; void _prelude_log_v(prelude_log_t level, const char *file, const char *function, int line, const char *fmt, va_list ap) PRELUDE_FMT_PRINTF(5, 0); void _prelude_log(prelude_log_t level, const char *file, const char *function, int line, const char *fmt, ...) PRELUDE_FMT_PRINTF(5, 6); #ifdef HAVE_VARIADIC_MACROS #define prelude_log(level, ...) \ _prelude_log(level, __FILE__, __PRELUDE_FUNC__, __LINE__, __VA_ARGS__) #define prelude_log_debug(level, ...) \ _prelude_log(PRELUDE_LOG_DEBUG + level, __FILE__, __PRELUDE_FUNC__, __LINE__, __VA_ARGS__) #else void prelude_log(prelude_log_t level, const char *fmt, ...) PRELUDE_FMT_PRINTF(2, 3); void prelude_log_debug(prelude_log_t level, const char *fmt, ...) PRELUDE_FMT_PRINTF(2, 3); #endif #define prelude_log_v(level, fmt, ap) \ _prelude_log_v(level, __FILE__, __PRELUDE_FUNC__, __LINE__, fmt, ap) #define prelude_log_debug_v(level, fmt, ap) \ _prelude_log_v(PRELUDE_LOG_DEBUG + level, __FILE__, __PRELUDE_FUNC__, __LINE__, fmt, ap) void prelude_log_set_level(prelude_log_t level); void prelude_log_set_debug_level(int level); prelude_log_flags_t prelude_log_get_flags(void); void prelude_log_set_flags(prelude_log_flags_t flags); char *prelude_log_get_prefix(void); void prelude_log_set_prefix(char *prefix); void prelude_log_set_callback(void log_cb(prelude_log_t level, const char *str)); int prelude_log_set_logfile(const char *filename); void _prelude_log_set_abort_level(prelude_log_t level); int _prelude_log_set_abort_level_from_string(const char *level); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_LOG_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-client.h0000644000000000000000000000010613726163410022147 xustar000000000000000023 mtime=1599661832.69 24 atime=1599661832.789 23 ctime=1599662000.09 libprelude-5.2.0/src/include/prelude-client.h0000644000000000000000000000754413726163410021157 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_CLIENT_H #define _LIBPRELUDE_PRELUDE_CLIENT_H #ifdef __cplusplus extern "C" { #endif typedef enum { PRELUDE_CLIENT_EXIT_STATUS_SUCCESS = 0, PRELUDE_CLIENT_EXIT_STATUS_FAILURE = -1 } prelude_client_exit_status_t; typedef enum { PRELUDE_CLIENT_FLAGS_ASYNC_SEND = 0x01, PRELUDE_CLIENT_FLAGS_ASYNC_TIMER = 0x02, PRELUDE_CLIENT_FLAGS_HEARTBEAT = 0x04, PRELUDE_CLIENT_FLAGS_CONNECT = 0x08, PRELUDE_CLIENT_FLAGS_AUTOCONFIG = 0x10 } prelude_client_flags_t; typedef struct prelude_client prelude_client_t; #include "prelude-client-profile.h" #include "prelude-ident.h" #include "prelude-connection.h" #include "prelude-connection-pool.h" #include "idmef.h" prelude_ident_t *prelude_client_get_unique_ident(prelude_client_t *client); void prelude_client_set_connection_pool(prelude_client_t *client, prelude_connection_pool_t *pool); prelude_connection_pool_t *prelude_client_get_connection_pool(prelude_client_t *client); int prelude_client_start(prelude_client_t *client); int prelude_client_init(prelude_client_t *client); int prelude_client_new(prelude_client_t **client, const char *profile); prelude_client_t *prelude_client_ref(prelude_client_t *client); idmef_analyzer_t *prelude_client_get_analyzer(prelude_client_t *client); prelude_client_flags_t prelude_client_get_flags(prelude_client_t *client); void prelude_client_set_required_permission(prelude_client_t *client, prelude_connection_permission_t permission); prelude_connection_permission_t prelude_client_get_required_permission(prelude_client_t *client); void prelude_client_send_msg(prelude_client_t *client, prelude_msg_t *msg); int prelude_client_recv_msg(prelude_client_t *client, int timeout, prelude_msg_t **msg); void prelude_client_set_heartbeat_cb(prelude_client_t *client, void (*cb)(prelude_client_t *client, idmef_message_t *hb)); void prelude_client_send_idmef(prelude_client_t *client, idmef_message_t *msg); int prelude_client_recv_idmef(prelude_client_t *client, int timeout, idmef_message_t **idmef); void prelude_client_destroy(prelude_client_t *client, prelude_client_exit_status_t status); int prelude_client_set_flags(prelude_client_t *client, prelude_client_flags_t flags); int prelude_client_set_config_filename(prelude_client_t *client, const char *filename); const char *prelude_client_get_config_filename(prelude_client_t *client); prelude_client_profile_t *prelude_client_get_profile(prelude_client_t *client); int prelude_client_new_msgbuf(prelude_client_t *client, prelude_msgbuf_t **msgbuf); int prelude_client_handle_msg_default(prelude_client_t *client, prelude_msg_t *msg, prelude_msgbuf_t *msgbuf); int _prelude_client_register_options(void); #ifndef PRELUDE_DISABLE_DEPRECATED const char *prelude_client_get_setup_error(prelude_client_t *client); prelude_bool_t prelude_client_is_setup_needed(int error); #endif void prelude_client_print_setup_error(prelude_client_t *client); #ifdef __cplusplus } #endif #endif libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-client-profile.h0000644000000000000000000000010713726163410023606 xustar000000000000000023 mtime=1599661832.69 24 atime=1599661832.789 24 ctime=1599662000.091 libprelude-5.2.0/src/include/prelude-client-profile.h0000644000000000000000000000775513726163410022621 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_CLIENT_PROFILE_H #define _LIBPRELUDE_CLIENT_PROFILE_H #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "prelude-config.h" #include "prelude-inttypes.h" #ifdef __cplusplus extern "C" { #endif #ifdef HAVE_UID_T typedef uid_t prelude_uid_t; #else typedef int prelude_uid_t; #endif #ifdef HAVE_GID_T typedef gid_t prelude_gid_t; #else typedef int prelude_gid_t; #endif typedef struct prelude_client_profile prelude_client_profile_t; int _prelude_client_profile_init(prelude_client_profile_t *cp); int _prelude_client_profile_new(prelude_client_profile_t **ret); int prelude_client_profile_new(prelude_client_profile_t **ret, const char *name); prelude_client_profile_t *prelude_client_profile_ref(prelude_client_profile_t *cp); void prelude_client_profile_destroy(prelude_client_profile_t *cp); void prelude_client_profile_get_config_filename(const prelude_client_profile_t *cp, char *buf, size_t size); void prelude_client_profile_get_default_config_dirname(const prelude_client_profile_t *cp, char *buf, size_t size); void prelude_client_profile_get_analyzerid_filename(const prelude_client_profile_t *cp, char *buf, size_t size); void prelude_client_profile_get_tls_key_filename(const prelude_client_profile_t *cp, char *buf, size_t size); void prelude_client_profile_get_tls_server_ca_cert_filename(const prelude_client_profile_t *cp, char *buf, size_t size); void prelude_client_profile_get_tls_server_keycert_filename(const prelude_client_profile_t *cp, char *buf, size_t size); void prelude_client_profile_get_tls_server_crl_filename(const prelude_client_profile_t *cp, char *buf, size_t size); void prelude_client_profile_get_tls_client_keycert_filename(const prelude_client_profile_t *cp, char *buf, size_t size); void prelude_client_profile_get_tls_client_trusted_cert_filename(const prelude_client_profile_t *cp, char *buf, size_t size); void prelude_client_profile_get_backup_dirname(const prelude_client_profile_t *cp, char *buf, size_t size); void prelude_client_profile_get_profile_dirname(const prelude_client_profile_t *cp, char *buf, size_t size); void prelude_client_profile_set_uid(prelude_client_profile_t *cp, prelude_uid_t uid); prelude_uid_t prelude_client_profile_get_uid(const prelude_client_profile_t *cp); void prelude_client_profile_set_gid(prelude_client_profile_t *cp, prelude_uid_t gid); prelude_gid_t prelude_client_profile_get_gid(const prelude_client_profile_t *cp); int prelude_client_profile_set_name(prelude_client_profile_t *cp, const char *name); const char *prelude_client_profile_get_name(const prelude_client_profile_t *cp); uint64_t prelude_client_profile_get_analyzerid(const prelude_client_profile_t *cp); void prelude_client_profile_set_analyzerid(prelude_client_profile_t *cp, uint64_t analyzerid); int prelude_client_profile_get_credentials(prelude_client_profile_t *cp, void **credentials); int prelude_client_profile_set_prefix(prelude_client_profile_t *cp, const char *prefix); void prelude_client_profile_get_prefix(const prelude_client_profile_t *cp, char *buf, size_t size); #ifdef __cplusplus } #endif #endif libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-connection.h0000644000000000000000000000011013726163410023023 xustar000000000000000024 mtime=1599661832.691 24 atime=1599661832.789 24 ctime=1599662000.093 libprelude-5.2.0/src/include/prelude-connection.h0000644000000000000000000001043113726163410022025 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_CONNECTION_H #define _LIBPRELUDE_PRELUDE_CONNECTION_H #ifdef __cplusplus extern "C" { #endif typedef enum { PRELUDE_CONNECTION_PERMISSION_IDMEF_READ = 0x01, /* client might read received IDMEF message */ PRELUDE_CONNECTION_PERMISSION_ADMIN_READ = 0x02, /* client might read received ADMIN message */ PRELUDE_CONNECTION_PERMISSION_IDMEF_WRITE = 0x04, /* client might send IDMEF message */ PRELUDE_CONNECTION_PERMISSION_ADMIN_WRITE = 0x08 /* client might issue OPTION request */ } prelude_connection_permission_t; typedef enum { PRELUDE_CONNECTION_STATE_ESTABLISHED = 0x01 } prelude_connection_state_t; typedef struct prelude_connection prelude_connection_t; #include "prelude-msg.h" #include "prelude-msgbuf.h" #include "prelude-string.h" #include "prelude-client-profile.h" #include "idmef.h" void prelude_connection_destroy(prelude_connection_t *conn); prelude_connection_t *prelude_connection_ref(prelude_connection_t *conn); int prelude_connection_send(prelude_connection_t *cnx, prelude_msg_t *msg); int prelude_connection_recv(prelude_connection_t *cnx, prelude_msg_t **outmsg); int prelude_connection_recv_idmef(prelude_connection_t *con, idmef_message_t **idmef); int prelude_connection_connect(prelude_connection_t *cnx, prelude_client_profile_t *profile, prelude_connection_permission_t permission); ssize_t prelude_connection_forward(prelude_connection_t *cnx, prelude_io_t *src, size_t count); const char *prelude_connection_get_local_addr(prelude_connection_t *cnx); unsigned int prelude_connection_get_local_port(prelude_connection_t *cnx); const char *prelude_connection_get_peer_addr(prelude_connection_t *cnx); unsigned int prelude_connection_get_peer_port(prelude_connection_t *cnx); prelude_bool_t prelude_connection_is_alive(prelude_connection_t *cnx); prelude_io_t *prelude_connection_get_fd(prelude_connection_t *cnx); int prelude_connection_close(prelude_connection_t *cnx); void prelude_connection_set_fd_ref(prelude_connection_t *cnx, prelude_io_t *fd); void prelude_connection_set_fd_nodup(prelude_connection_t *cnx, prelude_io_t *fd); void prelude_connection_set_state(prelude_connection_t *cnx, prelude_connection_state_t state); prelude_connection_state_t prelude_connection_get_state(prelude_connection_t *cnx); void prelude_connection_set_data(prelude_connection_t *cnx, void *data); void *prelude_connection_get_data(prelude_connection_t *cnx); const char *prelude_connection_get_default_socket_filename(void); prelude_connection_permission_t prelude_connection_get_permission(prelude_connection_t *conn); uint64_t prelude_connection_get_peer_analyzerid(prelude_connection_t *cnx); void prelude_connection_set_peer_analyzerid(prelude_connection_t *cnx, uint64_t analyzerid); #include "prelude-client.h" int prelude_connection_new(prelude_connection_t **ret, const char *addr); int prelude_connection_new_msgbuf(prelude_connection_t *connection, prelude_msgbuf_t **msgbuf); int prelude_connection_permission_to_string(prelude_connection_permission_t perm, prelude_string_t *out); int prelude_connection_permission_new_from_string(prelude_connection_permission_t *out, const char *buf); prelude_connection_t *prelude_connection_ref(prelude_connection_t *conn); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_CONNECTION_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-connection-pool.h0000644000000000000000000000011013726163410023772 xustar000000000000000024 mtime=1599661832.691 24 atime=1599661832.789 24 ctime=1599662000.095 libprelude-5.2.0/src/include/prelude-connection-pool.h0000644000000000000000000001144713726163410023004 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_CONNECTION_POOL_H #define _LIBPRELUDE_PRELUDE_CONNECTION_POOL_H #include "prelude-list.h" #include "prelude-connection.h" #ifdef __cplusplus extern "C" { #endif typedef enum { PRELUDE_CONNECTION_POOL_FLAGS_RECONNECT = 0x01, PRELUDE_CONNECTION_POOL_FLAGS_FAILOVER = 0x02 } prelude_connection_pool_flags_t; typedef enum { PRELUDE_CONNECTION_POOL_EVENT_INPUT = 0x01, PRELUDE_CONNECTION_POOL_EVENT_DEAD = 0x02, PRELUDE_CONNECTION_POOL_EVENT_ALIVE = 0x04 } prelude_connection_pool_event_t; typedef struct prelude_connection_pool prelude_connection_pool_t; void prelude_connection_pool_broadcast(prelude_connection_pool_t *pool, prelude_msg_t *msg); void prelude_connection_pool_broadcast_async(prelude_connection_pool_t *pool, prelude_msg_t *msg); int prelude_connection_pool_init(prelude_connection_pool_t *pool); int prelude_connection_pool_new(prelude_connection_pool_t **ret, prelude_client_profile_t *cp, prelude_connection_permission_t permission); prelude_list_t *prelude_connection_pool_get_connection_list(prelude_connection_pool_t *pool); int prelude_connection_pool_add_connection(prelude_connection_pool_t *pool, prelude_connection_t *cnx); int prelude_connection_pool_del_connection(prelude_connection_pool_t *pool, prelude_connection_t *cnx); int prelude_connection_pool_set_connection_dead(prelude_connection_pool_t *pool, prelude_connection_t *cnx); int prelude_connection_pool_set_connection_alive(prelude_connection_pool_t *pool, prelude_connection_t *cnx); int prelude_connection_pool_set_connection_string(prelude_connection_pool_t *pool, const char *cfgstr); const char *prelude_connection_pool_get_connection_string(prelude_connection_pool_t *pool); void prelude_connection_pool_destroy(prelude_connection_pool_t *pool); prelude_connection_pool_t *prelude_connection_pool_ref(prelude_connection_pool_t *pool); prelude_connection_pool_flags_t prelude_connection_pool_get_flags(prelude_connection_pool_t *pool); void prelude_connection_pool_set_flags(prelude_connection_pool_t *pool, prelude_connection_pool_flags_t flags); void prelude_connection_pool_set_required_permission(prelude_connection_pool_t *pool, prelude_connection_permission_t req_perm); void prelude_connection_pool_set_data(prelude_connection_pool_t *pool, void *data); void *prelude_connection_pool_get_data(prelude_connection_pool_t *pool); int prelude_connection_pool_recv(prelude_connection_pool_t *pool, int timeout, prelude_connection_t **outcon, prelude_msg_t **outmsg); int prelude_connection_pool_check_event(prelude_connection_pool_t *pool, int timeout, int (*event_cb)(prelude_connection_pool_t *pool, prelude_connection_pool_event_t event, prelude_connection_t *cnx, void *extra), void *extra); void prelude_connection_pool_set_global_event_handler(prelude_connection_pool_t *pool, prelude_connection_pool_event_t wanted_events, int (*callback)(prelude_connection_pool_t *pool, prelude_connection_pool_event_t events)); void prelude_connection_pool_set_event_handler(prelude_connection_pool_t *pool, prelude_connection_pool_event_t wanted_events, int (*callback)(prelude_connection_pool_t *pool, prelude_connection_pool_event_t events, prelude_connection_t *cnx)); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_CONNECTION_POOL_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-failover.h0000644000000000000000000000011013726163410022473 xustar000000000000000024 mtime=1599661832.691 24 atime=1599661832.789 24 ctime=1599662000.096 libprelude-5.2.0/src/include/prelude-failover.h0000644000000000000000000000367513726163410021511 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_FAILOVER_H #define _LIBPRELUDE_PRELUDE_FAILOVER_H #ifdef __cplusplus extern "C" { #endif typedef struct prelude_failover prelude_failover_t; void prelude_failover_destroy(prelude_failover_t *failover); int prelude_failover_new(prelude_failover_t **ret, const char *dirname); void prelude_failover_set_quota(prelude_failover_t *failover, size_t limit); int prelude_failover_save_msg(prelude_failover_t *failover, prelude_msg_t *msg); ssize_t prelude_failover_get_saved_msg(prelude_failover_t *failover, prelude_msg_t **out); unsigned long prelude_failover_get_deleted_msg_count(prelude_failover_t *failover); unsigned long prelude_failover_get_available_msg_count(prelude_failover_t *failover); void prelude_failover_enable_transaction(prelude_failover_t *failover); void prelude_failover_disable_transaction(prelude_failover_t *failover); int prelude_failover_commit(prelude_failover_t *failover, prelude_msg_t *msg); int prelude_failover_rollback(prelude_failover_t *failover, prelude_msg_t *msg); #ifdef __cplusplus } #endif #endif libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-ident.h0000644000000000000000000000011013726163410021767 xustar000000000000000024 mtime=1599661832.692 24 atime=1599661832.789 24 ctime=1599662000.098 libprelude-5.2.0/src/include/prelude-ident.h0000644000000000000000000000261613726163410020777 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_IDENT_H #define _LIBPRELUDE_PRELUDE_IDENT_H #include "prelude-inttypes.h" #include "prelude-string.h" #ifdef __cplusplus extern "C" { #endif typedef struct prelude_ident prelude_ident_t; int prelude_ident_generate(prelude_ident_t *ident, prelude_string_t *out); uint64_t prelude_ident_inc(prelude_ident_t *ident); void prelude_ident_destroy(prelude_ident_t *ident); int prelude_ident_new(prelude_ident_t **ret); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_IDENT_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-io.h0000644000000000000000000000010613726163410021300 xustar000000000000000024 mtime=1599661832.692 24 atime=1599661832.789 22 ctime=1599662000.1 libprelude-5.2.0/src/include/prelude-io.h0000644000000000000000000000530113726163410020275 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_IO_H #define _LIBPRELUDE_PRELUDE_IO_H #ifdef __cplusplus extern "C" { #endif #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "prelude-inttypes.h" typedef struct prelude_io prelude_io_t; /* * Object creation / destruction functions. */ int prelude_io_new(prelude_io_t **ret); void prelude_io_destroy(prelude_io_t *pio); void prelude_io_set_file_io(prelude_io_t *pio, FILE *fd); void prelude_io_set_tls_io(prelude_io_t *pio, void *tls); void prelude_io_set_sys_io(prelude_io_t *pio, int fd); int prelude_io_set_buffer_io(prelude_io_t *pio); /* * */ void prelude_io_set_fdptr(prelude_io_t *pio, void *ptr); void prelude_io_set_write_callback(prelude_io_t *pio, ssize_t (*write)(prelude_io_t *io, const void *buf, size_t count)); void prelude_io_set_read_callback(prelude_io_t *pio, ssize_t (*read)(prelude_io_t *io, void *buf, size_t count)); void prelude_io_set_pending_callback(prelude_io_t *pio, ssize_t (*pending)(prelude_io_t *io)); /* * IO operations. */ int prelude_io_close(prelude_io_t *pio); ssize_t prelude_io_read(prelude_io_t *pio, void *buf, size_t count); ssize_t prelude_io_read_wait(prelude_io_t *pio, void *buf, size_t count); ssize_t prelude_io_read_delimited(prelude_io_t *pio, unsigned char **buf); ssize_t prelude_io_write(prelude_io_t *pio, const void *buf, size_t count); ssize_t prelude_io_write_delimited(prelude_io_t *pio, const void *buf, uint16_t count); ssize_t prelude_io_forward(prelude_io_t *dst, prelude_io_t *src, size_t count); int prelude_io_get_fd(prelude_io_t *pio); void *prelude_io_get_fdptr(prelude_io_t *pio); ssize_t prelude_io_pending(prelude_io_t *pio); prelude_bool_t prelude_io_is_error_fatal(prelude_io_t *pio, int error); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_IO_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-macros.h0000644000000000000000000000011013726163410022150 xustar000000000000000024 mtime=1599661832.693 24 atime=1599661832.789 24 ctime=1599662000.101 libprelude-5.2.0/src/include/prelude-macros.h0000644000000000000000000000367313726163410021164 0ustar00rootroot00000000000000/***** * * Copyright (C) 2014-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_MACROS_H #define _LIBPRELUDE_PRELUDE_MACROS_H #define PRELUDE_CHECK_GNUC_VERSION(major, minor) \ (__GNUC__ > (major) || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor))) #if PRELUDE_CHECK_GNUC_VERSION(3, 1) && ! __STRICT_ANSI__ # define PRELUDE_DEPRECATED __attribute__((__deprecated__)) #else # define PRELUDE_DEPRECATED #endif #if ! PRELUDE_CHECK_GNUC_VERSION(2, 5) || __STRICT_ANSI__ # define PRELUDE_FMT_SCANF(format_idx, arg_idx) # define PRELUDE_FMT_PRINTF(format_idx, arg_idx) #else /* The __-protected variants of `format' and `printf' attributes * are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ # if ! PRELUDE_CHECK_GNUC_VERSION(2, 7) # define __scanf__ scanf # define __printf__ printf # define __format__ format # endif # define PRELUDE_FMT_SCANF(format_idx, arg_idx) \ __attribute__((__format__(__scanf__, format_idx, arg_idx))) # define PRELUDE_FMT_PRINTF(format_idx, arg_idx) \ __attribute__((__format__(__printf__, format_idx, arg_idx))) #endif #endif /* _LIBPRELUDE_PRELUDE_MACROS */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-msg.h0000644000000000000000000000010713726163410021460 xustar000000000000000024 mtime=1599661832.693 23 atime=1599661832.79 24 ctime=1599662000.103 libprelude-5.2.0/src/include/prelude-msg.h0000644000000000000000000000620213726163410020455 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_MESSAGE_H #define _LIBPRELUDE_PRELUDE_MESSAGE_H #include "prelude-io.h" #ifdef __cplusplus extern "C" { #endif typedef struct prelude_msg prelude_msg_t; typedef enum { PRELUDE_MSG_PRIORITY_NONE = 0, PRELUDE_MSG_PRIORITY_LOW = 1, PRELUDE_MSG_PRIORITY_MID = 2, PRELUDE_MSG_PRIORITY_HIGH = 3 } prelude_msg_priority_t; int prelude_msg_read(prelude_msg_t **msg, prelude_io_t *pio); int prelude_msg_forward(prelude_msg_t *msg, prelude_io_t *dst, prelude_io_t *src); int prelude_msg_get(prelude_msg_t *msg, uint8_t *tag, uint32_t *len, void **buf); /* * Write function. */ void prelude_msg_recycle(prelude_msg_t *msg); void prelude_msg_mark_end(prelude_msg_t *msg); int prelude_msg_dynamic_new(prelude_msg_t **ret, int (*flush_msg_cb)(prelude_msg_t **msg, void *data), void *data); int prelude_msg_new(prelude_msg_t **ret, size_t msgcount, size_t msglen, uint8_t tag, prelude_msg_priority_t priority); int prelude_msg_clone(prelude_msg_t **dst, const prelude_msg_t *src); int prelude_msg_set(prelude_msg_t *msg, uint8_t tag, uint32_t len, const void *data); int prelude_msg_write(prelude_msg_t *msg, prelude_io_t *dst); int prelude_msg_write_r(prelude_msg_t *msg, prelude_io_t *dst, uint32_t *windex); /* * */ void prelude_msg_set_tag(prelude_msg_t *msg, uint8_t tag); void prelude_msg_set_priority(prelude_msg_t *msg, prelude_msg_priority_t priority); uint8_t prelude_msg_get_tag(prelude_msg_t *msg); prelude_msg_priority_t prelude_msg_get_priority(prelude_msg_t *msg); uint32_t prelude_msg_get_len(prelude_msg_t *msg); uint32_t prelude_msg_get_datalen(prelude_msg_t *msg); const unsigned char *prelude_msg_get_message_data(prelude_msg_t *msg); struct timeval *prelude_msg_get_time(prelude_msg_t *msg, struct timeval *tv); int prelude_msg_is_empty(prelude_msg_t *msg); int prelude_msg_is_fragment(prelude_msg_t *msg); void prelude_msg_destroy(prelude_msg_t *msg); void prelude_msg_set_callback(prelude_msg_t *msg, int (*flush_msg_cb)(prelude_msg_t **msg, void *data)); void prelude_msg_set_data(prelude_msg_t *msg, void *data); void *prelude_msg_get_data(prelude_msg_t *msg); prelude_msg_t *prelude_msg_ref(prelude_msg_t *msg); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_MESSAGE_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-msgbuf.h0000644000000000000000000000010713726163410022155 xustar000000000000000024 mtime=1599661832.693 23 atime=1599661832.79 24 ctime=1599662000.105 libprelude-5.2.0/src/include/prelude-msgbuf.h0000644000000000000000000000376713726163410021167 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_MSGBUF_H #define _LIBPRELUDE_PRELUDE_MSGBUF_H #ifdef __cplusplus extern "C" { #endif typedef struct prelude_msgbuf prelude_msgbuf_t; typedef enum { PRELUDE_MSGBUF_FLAGS_ASYNC = 0x01 } prelude_msgbuf_flags_t; #include "prelude-client.h" #include "prelude-msg.h" int prelude_msgbuf_new(prelude_msgbuf_t **msgbuf); void prelude_msgbuf_destroy(prelude_msgbuf_t *msgbuf); void prelude_msgbuf_mark_end(prelude_msgbuf_t *msgbuf); int prelude_msgbuf_set(prelude_msgbuf_t *msgbuf, uint8_t tag, uint32_t len, const void *data); prelude_msg_t *prelude_msgbuf_get_msg(prelude_msgbuf_t *msgbuf); void prelude_msgbuf_set_callback(prelude_msgbuf_t *msgbuf, int (*send_msg)(prelude_msgbuf_t *msgbuf, prelude_msg_t *msg)); void prelude_msgbuf_set_data(prelude_msgbuf_t *msgbuf, void *data); void *prelude_msgbuf_get_data(prelude_msgbuf_t *msgbuf); void prelude_msgbuf_set_flags(prelude_msgbuf_t *msgbuf, prelude_msgbuf_flags_t flags); prelude_msgbuf_flags_t prelude_msgbuf_get_flags(prelude_msgbuf_t *msgbuf); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_MSGBUF_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-message-id.h0000644000000000000000000000011013726163410022702 xustar000000000000000024 mtime=1599661832.693 24 atime=1599661832.789 24 ctime=1599662000.106 libprelude-5.2.0/src/include/prelude-message-id.h0000644000000000000000000000526313726163410021713 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_MESSAGE_ID_H #define _LIBPRELUDE_PRELUDE_MESSAGE_ID_H /* * Top level message tag (to be used with prelude_msg_new()). */ #define PRELUDE_MSG_IDMEF 0 #define PRELUDE_MSG_ID 3 #define PRELUDE_MSG_AUTH 4 #define PRELUDE_MSG_CM 5 #define PRELUDE_MSG_CONNECTION_CAPABILITY 6 #define PRELUDE_MSG_OPTION_REQUEST 7 #define PRELUDE_MSG_OPTION_REPLY 8 /* * PRELUDE_MSG_ID submessage */ #define PRELUDE_MSG_ID_DECLARE 0 /* * authentication msg */ #define PRELUDE_MSG_AUTH_SUCCEED 6 #define PRELUDE_MSG_AUTH_FAILED 7 /* * PRELUDE_MSG_CM submessages */ #define PRELUDE_MSG_CM_FIREWALL 0 #define PRELUDE_MSG_CM_THROTTLE 1 #define PRELUDE_MSG_CM_ISLAND 2 #define PRELUDE_MSG_CM_FEATURE 3 /* * PRELUDE_MSG_OPTION submessages */ #define PRELUDE_MSG_OPTION_TARGET_ID 0 #define PRELUDE_MSG_OPTION_LIST 2 #define PRELUDE_MSG_OPTION_VALUE 3 #define PRELUDE_MSG_OPTION_SET 4 #define PRELUDE_MSG_OPTION_GET 5 #define PRELUDE_MSG_OPTION_REQUEST_ID 6 #define PRELUDE_MSG_OPTION_ERROR 7 #define PRELUDE_MSG_OPTION_START 8 #define PRELUDE_MSG_OPTION_END 9 #define PRELUDE_MSG_OPTION_NAME 10 #define PRELUDE_MSG_OPTION_DESC 11 #define PRELUDE_MSG_OPTION_HAS_ARG 12 #define PRELUDE_MSG_OPTION_HELP 13 #define PRELUDE_MSG_OPTION_INPUT_VALIDATION 14 #define PRELUDE_MSG_OPTION_INPUT_TYPE 15 #define PRELUDE_MSG_OPTION_ARG 16 #define PRELUDE_MSG_OPTION_TYPE 17 #define PRELUDE_MSG_OPTION_DESTROY 18 #define PRELUDE_MSG_OPTION_COMMIT 19 #define PRELUDE_MSG_OPTION_HOP 20 #define PRELUDE_MSG_OPTION_TARGET_INSTANCE_ID 21 #endif /* _LIBPRELUDE_PRELUDE_MESSAGE_ID_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-option.h0000644000000000000000000000010713726163410022202 xustar000000000000000024 mtime=1599661832.694 23 atime=1599661832.79 24 ctime=1599662000.108 libprelude-5.2.0/src/include/prelude-option.h0000644000000000000000000001740313726163410021204 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_GETOPT_H #define _LIBPRELUDE_PRELUDE_GETOPT_H #include "prelude-msgbuf.h" #ifdef __cplusplus extern "C" { #endif typedef enum { PRELUDE_OPTION_TYPE_CLI = 0x01, PRELUDE_OPTION_TYPE_CFG = 0x02, PRELUDE_OPTION_TYPE_WIDE = 0x04, PRELUDE_OPTION_TYPE_CONTEXT = 0x08, PRELUDE_OPTION_TYPE_ROOT = 0x10, PRELUDE_OPTION_TYPE_DESTROY = 0x20 } prelude_option_type_t; typedef enum { PRELUDE_OPTION_INPUT_TYPE_STRING = 1, PRELUDE_OPTION_INPUT_TYPE_INTEGER = 2, PRELUDE_OPTION_INPUT_TYPE_BOOLEAN = 3 } prelude_option_input_type_t; typedef struct prelude_option prelude_option_t; typedef struct prelude_option_context prelude_option_context_t; typedef int (*prelude_option_destroy_callback_t)(prelude_option_t *opt, prelude_string_t *out, void *context); typedef int (*prelude_option_commit_callback_t)(prelude_option_t *opt, prelude_string_t *out, void *context); typedef int (*prelude_option_get_callback_t)(prelude_option_t *opt, prelude_string_t *out, void *context); typedef int (*prelude_option_set_callback_t)(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context); typedef enum { PRELUDE_OPTION_ARGUMENT_REQUIRED = 1, PRELUDE_OPTION_ARGUMENT_OPTIONAL = 2, PRELUDE_OPTION_ARGUMENT_NONE = 3 } prelude_option_argument_t; typedef enum { PRELUDE_OPTION_PRIORITY_IMMEDIATE = -2, PRELUDE_OPTION_PRIORITY_FIRST = -1, PRELUDE_OPTION_PRIORITY_NONE = 0, PRELUDE_OPTION_PRIORITY_LAST = 2 } prelude_option_priority_t; typedef enum { PRELUDE_OPTION_WARNING_OPTION = 0x1, PRELUDE_OPTION_WARNING_ARG = 0x2 } prelude_option_warning_t; void prelude_option_set_priority(prelude_option_t *option, prelude_option_priority_t priority); void prelude_option_print(prelude_option_t *opt, prelude_option_type_t type, int descoff, FILE *fd); int prelude_option_wide_send_msg(prelude_msgbuf_t *msgbuf, void *context); void prelude_option_destroy(prelude_option_t *option); int prelude_option_read(prelude_option_t *option, const char **filename, int *argc, char **argv, prelude_string_t **err, void *context); int prelude_option_add(prelude_option_t *parent, prelude_option_t **retopt, prelude_option_type_t type, char shortopt, const char *longopt, const char *desc, prelude_option_argument_t has_arg, int (*set)(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context), int (*get)(prelude_option_t *opt, prelude_string_t *out, void *context)); void prelude_option_set_type(prelude_option_t *opt, prelude_option_type_t type); prelude_option_type_t prelude_option_get_type(prelude_option_t *opt); void prelude_option_set_warnings(prelude_option_warning_t new_warnings, prelude_option_warning_t *old_warnings); char prelude_option_get_shortname(prelude_option_t *opt); const char *prelude_option_get_longname(prelude_option_t *opt); void _prelude_option_set_private_data(prelude_option_t *opt, void *data); void *_prelude_option_get_private_data(prelude_option_t *opt); void prelude_option_set_data(prelude_option_t *opt, void *data); void *prelude_option_get_data(prelude_option_t *opt); int prelude_option_invoke_commit(prelude_option_t *opt, const char *ctname, prelude_string_t *value, void *context); int prelude_option_invoke_set(prelude_option_t *opt, const char *ctname, prelude_string_t *value, void **context); int prelude_option_invoke_get(prelude_option_t *opt, const char *ctname, prelude_string_t *value, void *context); int prelude_option_invoke_destroy(prelude_option_t *opt, const char *ctname, prelude_string_t *value, void *context); /* * */ int prelude_option_new_root(prelude_option_t **retopt); int prelude_option_new(prelude_option_t *parent, prelude_option_t **retopt); void prelude_option_set_longopt(prelude_option_t *opt, const char *longopt); const char *prelude_option_get_longopt(prelude_option_t *opt); void prelude_option_set_description(prelude_option_t *opt, const char *description); const char *prelude_option_get_description(prelude_option_t *opt); void prelude_option_set_has_arg(prelude_option_t *opt, prelude_option_argument_t has_arg); prelude_option_argument_t prelude_option_get_has_arg(prelude_option_t *opt); void prelude_option_set_value(prelude_option_t *opt, const char *value); const char *prelude_option_get_value(prelude_option_t *opt); void prelude_option_set_help(prelude_option_t *opt, const char *help); const char *prelude_option_get_help(prelude_option_t *opt); void prelude_option_set_input_validation_regex(prelude_option_t *opt, const char *regex); const char *prelude_option_get_input_validation_regex(prelude_option_t *opt); void prelude_option_set_input_type(prelude_option_t *opt, prelude_option_input_type_t input_type); prelude_option_input_type_t prelude_option_get_input_type(prelude_option_t *opt); prelude_list_t *prelude_option_get_optlist(prelude_option_t *opt); prelude_option_t *prelude_option_get_next(prelude_option_t *start, prelude_option_t *cur); prelude_bool_t prelude_option_has_optlist(prelude_option_t *opt); prelude_option_t *prelude_option_get_parent(prelude_option_t *opt); void prelude_option_set_destroy_callback(prelude_option_t *opt, prelude_option_destroy_callback_t destroy); prelude_option_destroy_callback_t prelude_option_get_destroy_callback(prelude_option_t *opt); void prelude_option_set_set_callback(prelude_option_t *opt, prelude_option_set_callback_t set); prelude_option_set_callback_t prelude_option_get_set_callback(prelude_option_t *opt); void prelude_option_set_get_callback(prelude_option_t *opt, int (*get)(prelude_option_t *opt, prelude_string_t *out, void *context)); prelude_option_get_callback_t prelude_option_get_get_callback(prelude_option_t *opt); void prelude_option_set_commit_callback(prelude_option_t *opt, prelude_option_commit_callback_t commit); prelude_option_commit_callback_t prelude_option_get_commit_callback(prelude_option_t *opt); void prelude_option_set_default_context(prelude_option_t *opt, void *context); int prelude_option_new_context(prelude_option_t *opt, prelude_option_context_t **ctx, const char *name, void *data); void prelude_option_context_destroy(prelude_option_context_t *oc); void *prelude_option_context_get_data(prelude_option_context_t *oc); void prelude_option_context_set_data(prelude_option_context_t *oc, void *data); prelude_option_t *prelude_option_search(prelude_option_t *parent, const char *name, prelude_option_type_t type, prelude_bool_t walk_children); prelude_option_context_t *prelude_option_search_context(prelude_option_t *opt, const char *name); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_GETOPT_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-option-wide.h0000644000000000000000000000010613726163410023127 xustar000000000000000024 mtime=1599661832.693 23 atime=1599661832.79 23 ctime=1599662000.11 libprelude-5.2.0/src/include/prelude-option-wide.h0000644000000000000000000000320313726163410022123 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_GETOPT_WIDE_H #define _LIBPRELUDE_PRELUDE_GETOPT_WIDE_H #define PRELUDE_OPTION_REPLY_TYPE_SET 0x01 #define PRELUDE_OPTION_REPLY_TYPE_GET 0x02 #define PRELUDE_OPTION_REPLY_TYPE_LIST 0x04 #define PRELUDE_OPTION_REPLY_TYPE_ERROR 0x08 int prelude_option_push_request(prelude_msgbuf_t *msg, int type, const char *request); int prelude_option_new_request(prelude_msgbuf_t *msgbuf, uint32_t request_id, uint64_t *target_id, size_t size); int prelude_option_process_request(prelude_client_t *client, prelude_msg_t *msg, prelude_msgbuf_t *reply); int prelude_option_recv_reply(prelude_msg_t *msg, uint64_t *source_id, uint32_t *request_id, void **value); #endif /* _LIBPRELUDE_PRELUDE_GETOPT_WIDE_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-plugin.h0000644000000000000000000000010713726163410022170 xustar000000000000000024 mtime=1599661832.694 23 atime=1599661832.79 24 ctime=1599662000.111 libprelude-5.2.0/src/include/prelude-plugin.h0000644000000000000000000002143313726163410021170 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PLUGIN_H #define _LIBPRELUDE_PLUGIN_H #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "prelude-list.h" #include "prelude-option.h" #ifdef __cplusplus extern "C" { #endif #define PRELUDE_PLUGIN_API_VERSION 1 typedef struct prelude_plugin_entry prelude_plugin_entry_t; typedef struct prelude_plugin_instance prelude_plugin_instance_t; #define PRELUDE_PLUGIN_GENERIC \ prelude_plugin_entry_t *_pe; \ char *name; \ void (*destroy)(prelude_plugin_instance_t *pi, prelude_string_t *err) typedef struct { PRELUDE_PLUGIN_GENERIC; } prelude_plugin_generic_t; /* * Hack for plugin preloading, * without having the end program depend on ltdl. */ #ifdef PRELUDE_APPLICATION_USE_LIBTOOL2 # define lt_preloaded_symbols lt__PROGRAM__LTX_preloaded_symbols #endif /* * LT_DLSYM_CONST has been defined during the libtool 2.2.10 -> 2.4 * transition. Use it to guess whether lt_preloaded_symbols is already * defined by ltdl.h as a different kind of symbol. * * We use void * so that application requiring plugin preloading doesn't * depend on libltdl headers and lib. In case the application doesn't * use libltdl, plugin preloading can still be used throught libprelude * preloading function. */ #ifndef LT_DLSYM_CONST extern const void *lt_preloaded_symbols[]; #endif #define PRELUDE_PLUGIN_SET_PRELOADED_SYMBOLS() \ prelude_plugin_set_preloaded_symbols(lt_preloaded_symbols) #define PRELUDE_PLUGIN_OPTION_DECLARE_STRING_CB(prefix, type, name) \ static int prefix ## _set_ ## name(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) \ { \ char *dup = NULL; \ type *ptr = prelude_plugin_instance_get_plugin_data(context); \ \ if ( optarg ) { \ dup = strdup(optarg); \ if ( ! dup ) \ return prelude_error_from_errno(errno); \ } \ \ if ( ptr->name ) \ free(ptr->name); \ \ ptr->name = dup; \ \ return 0; \ } \ \ \ static int prefix ## _get_ ## name(prelude_option_t *opt, prelude_string_t *out, void *context) \ { \ type *ptr = prelude_plugin_instance_get_plugin_data(context); \ if ( ptr->name ) \ prelude_string_cat(out, ptr->name); \ \ return 0; \ } /* * */ #define prelude_plugin_get_name(p) (p)->name #define prelude_plugin_set_name(p, str) (p)->name = (str) #define prelude_plugin_set_destroy_func(p, func) (p)->destroy = func /* * Plugin need to call this function in order to get registered. */ void prelude_plugin_entry_set_plugin(prelude_plugin_entry_t *pe, prelude_plugin_generic_t *pl); int prelude_plugin_set_activation_option(prelude_plugin_entry_t *pe, prelude_option_t *opt, int (*commit)(prelude_plugin_instance_t *pi, prelude_string_t *err)); int prelude_plugin_instance_subscribe(prelude_plugin_instance_t *pi); int prelude_plugin_instance_unsubscribe(prelude_plugin_instance_t *pi); int prelude_plugin_new_instance(prelude_plugin_instance_t **pi, prelude_plugin_generic_t *plugin, const char *name, void *data); /* * */ prelude_plugin_generic_t *prelude_plugin_search_by_name(prelude_list_t *head, const char *name); prelude_plugin_instance_t *prelude_plugin_search_instance_by_name(prelude_list_t *head, const char *pname, const char *iname); void prelude_plugin_instance_set_data(prelude_plugin_instance_t *pi, void *data); void *prelude_plugin_instance_get_data(prelude_plugin_instance_t *pi); void prelude_plugin_instance_set_plugin_data(prelude_plugin_instance_t *pi, void *data); void *prelude_plugin_instance_get_plugin_data(prelude_plugin_instance_t *pi); const char *prelude_plugin_instance_get_name(prelude_plugin_instance_t *pi); prelude_plugin_generic_t *prelude_plugin_instance_get_plugin(prelude_plugin_instance_t *pi); /* * Load all plugins in directory 'dirname'. * The CB arguments will be called for each plugin that register * (using the plugin_register function), then the application will * have the ability to use plugin_register_for_use to tell it want * to use this plugin. */ int prelude_plugin_load_from_dir(prelude_list_t *head, const char *dirname, const char *symbol, void *ptr, int (*subscribe)(prelude_plugin_instance_t *p), void (*unsubscribe)(prelude_plugin_instance_t *pi)); /* * Call this if you want to use this plugin. */ int prelude_plugin_instance_add(prelude_plugin_instance_t *pi, prelude_list_t *h); void prelude_plugin_instance_del(prelude_plugin_instance_t *pi); void prelude_plugin_instance_compute_time(prelude_plugin_instance_t *pi, struct timeval *start, struct timeval *end); int prelude_plugin_instance_call_commit_func(prelude_plugin_instance_t *pi, prelude_string_t *err); prelude_bool_t prelude_plugin_instance_has_commit_func(prelude_plugin_instance_t *pi); void prelude_plugin_set_preloaded_symbols(void *symlist); prelude_plugin_generic_t *prelude_plugin_get_next(prelude_list_t *head, prelude_list_t **iter); void prelude_plugin_unload(prelude_plugin_generic_t *plugin); /* * */ #define prelude_plugin_compute_stats(pi, func) do { \ struct timeval start, end; \ gettimeofday(&start, NULL); \ (func); \ gettimeofday(&end, NULL); \ prelude_plugin_instance_compute_time(&start, &end); \ } while(0) /* * Macro used to start a plugin. */ #define prelude_plugin_run(pi, type, member, ...) \ (((type *)prelude_plugin_instance_get_plugin(pi))->member(__VA_ARGS__)) #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PLUGIN_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-string.h0000644000000000000000000000010713726163410022200 xustar000000000000000024 mtime=1599661832.694 23 atime=1599661832.79 24 ctime=1599662000.113 libprelude-5.2.0/src/include/prelude-string.h0000644000000000000000000000777613726163410021216 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_STRING_H #define _LIBPRELUDE_PRELUDE_STRING_H #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "prelude-list.h" #include "prelude-macros.h" #include "prelude-inttypes.h" #include "prelude-linked-object.h" #ifdef __cplusplus extern "C" { #endif typedef struct prelude_string prelude_string_t; int prelude_string_new(prelude_string_t **string); int prelude_string_new_nodup(prelude_string_t **string, char *str); int prelude_string_new_ref(prelude_string_t **string, const char *str); int prelude_string_new_dup(prelude_string_t **string, const char *str); int prelude_string_new_dup_fast(prelude_string_t **string, const char *str, size_t len); void prelude_string_destroy(prelude_string_t *string); void prelude_string_destroy_internal(prelude_string_t *string); int prelude_string_new_nodup_fast(prelude_string_t **string, char *str, size_t len); int prelude_string_new_ref_fast(prelude_string_t **string, const char *str, size_t len); int prelude_string_set_dup_fast(prelude_string_t *string, const char *buf, size_t len); int prelude_string_set_dup(prelude_string_t *string, const char *buf); int prelude_string_set_nodup_fast(prelude_string_t *string, char *buf, size_t len); int prelude_string_set_nodup(prelude_string_t *string, char *buf); int prelude_string_set_ref_fast(prelude_string_t *string, const char *buf, size_t len); int prelude_string_set_ref(prelude_string_t *string, const char *buf); int prelude_string_copy_ref(const prelude_string_t *src, prelude_string_t *dst); int prelude_string_copy_dup(const prelude_string_t *src, prelude_string_t *dst); prelude_string_t *prelude_string_ref(prelude_string_t *string); int prelude_string_clone(const prelude_string_t *src, prelude_string_t **dst); size_t prelude_string_get_len(const prelude_string_t *string); const char *prelude_string_get_string_or_default(const prelude_string_t *string, const char *def); const char *prelude_string_get_string(const prelude_string_t *string); int prelude_string_get_string_released(prelude_string_t *string, char **outptr); prelude_bool_t prelude_string_is_empty(const prelude_string_t *string); int prelude_string_truncate(prelude_string_t *string, size_t len); void prelude_string_clear(prelude_string_t *string); /* * string operation */ int prelude_string_cat(prelude_string_t *dst, const char *str); int prelude_string_ncat(prelude_string_t *dst, const char *str, size_t len); int prelude_string_sprintf(prelude_string_t *string, const char *fmt, ...) PRELUDE_FMT_PRINTF(2, 3); int prelude_string_vprintf(prelude_string_t *string, const char *fmt, va_list ap) PRELUDE_FMT_PRINTF(2, 0); int prelude_string_compare(const prelude_string_t *str1, const prelude_string_t *str2); #define prelude_string_set_constant(string, str) \ prelude_string_set_ref_fast((string), (str), strlen((str))) #define prelude_string_new_constant(string, str) \ prelude_string_new_ref_fast((string), (str), strlen((str))) #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_STRING_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-timer.h0000644000000000000000000000010713726163410022012 xustar000000000000000024 mtime=1599661832.694 23 atime=1599661832.79 24 ctime=1599662000.115 libprelude-5.2.0/src/include/prelude-timer.h0000644000000000000000000000533413726163410021014 0ustar00rootroot00000000000000/***** * * Copyright (C) 1998-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_PRELUDE_TIMER_H #define _LIBPRELUDE_PRELUDE_TIMER_H #include "prelude-config.h" #if TIME_WITH_SYS_TIME # include # include #else # if HAVE_SYS_TIME_H # include # else # include # endif #endif #include "prelude-list.h" #ifdef __cplusplus extern "C" { #endif typedef struct { prelude_list_t list; int expire; time_t start_time; void *data; void (*function)(void *data); } prelude_timer_t; /* * Use theses macros for compatibility purpose * if the internal timer structure change. */ #define prelude_timer_get_expire(timer) (timer)->expire #define prelude_timer_get_data(timer) (timer)->data #define prelude_timer_get_callback(timer) (timer)->function #define prelude_timer_set_expire(timer, x) prelude_timer_get_expire((timer)) = (x) #define prelude_timer_set_data(timer, x) prelude_timer_get_data((timer)) = (x) #define prelude_timer_set_callback(timer, x) prelude_timer_get_callback((timer)) = (x) /* * Init a timer (add it to the timer list). */ void prelude_timer_init(prelude_timer_t *timer); void prelude_timer_init_list(prelude_timer_t *timer); /* * Reset timer 'timer'. */ void prelude_timer_reset(prelude_timer_t *timer); /* * Destroy timer 'timer'. */ void prelude_timer_destroy(prelude_timer_t *timer); /* * Wake up time that need it. * This function should be called every second to work properly. */ int prelude_timer_wake_up(void); /* * */ void prelude_timer_flush(void); /* * */ void prelude_timer_lock_critical_region(void); /* * */ void prelude_timer_unlock_critical_region(void); /* * */ int _prelude_timer_init(void); void _prelude_timer_fork_prepare(void); void _prelude_timer_fork_parent(void); void _prelude_timer_fork_child(void); #ifdef __cplusplus } #endif #endif /* _LIBPRELUDE_PRELUDE_TIMER_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/prelude-thread.h0000644000000000000000000000010713726163410022141 xustar000000000000000024 mtime=1599661832.694 23 atime=1599661832.79 24 ctime=1599662000.116 libprelude-5.2.0/src/include/prelude-thread.h0000644000000000000000000000237613726163410021146 0ustar00rootroot00000000000000/***** * * Copyright (C) 2005-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_THREAD_H #define _LIBPRELUDE_THREAD_H #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef __cplusplus extern "C" { #endif /* * */ int prelude_thread_init(void *nil); int _prelude_thread_set_error(const char *error); const char *_prelude_thread_get_error(void); void _prelude_thread_deinit(void); #ifdef __cplusplus } #endif #endif libprelude-5.2.0/src/include/PaxHeaders.14770/config-engine.h0000644000000000000000000000011013726163410021736 xustar000000000000000024 mtime=1599661832.685 24 atime=1599661832.787 24 ctime=1599662000.118 libprelude-5.2.0/src/include/config-engine.h0000644000000000000000000000313213726163410020740 0ustar00rootroot00000000000000/***** * * Copyright (C) 2000-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_CONFIG_ENGINE_H #define _LIBPRELUDE_CONFIG_ENGINE_H typedef struct config config_t; int _config_get_next(config_t *cfg, char **section, char **entry, char **value, unsigned int *line); int _config_get_section(config_t *cfg, const char *section, unsigned int *line); char *_config_get(config_t *cfg, const char *section, const char *entry, unsigned int *line); int _config_set(config_t *cfg, const char *section, const char *entry, const char *val, unsigned int *line); int _config_open(config_t **ret, const char *filename); int _config_close(config_t *cfg); int _config_del(config_t *cfg, const char *section, const char *entry); #endif /* _LIBPRELUDE_CONFIG_ENGINE_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/idmef-object-prv.h0000644000000000000000000000010713726163410022371 xustar000000000000000024 mtime=1599661832.688 24 atime=1599661832.788 23 ctime=1599662000.12 libprelude-5.2.0/src/include/idmef-object-prv.h0000644000000000000000000000256313726163410021374 0ustar00rootroot00000000000000/***** * * Copyright (C) 2014-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_IDMEF_OBJECT_PRV_H #define _LIBPRELUDE_IDMEF_OBJECT_PRV_H #define IDMEF_OBJECT unsigned int _idmef_object_id #define IDMEF_LINKED_OBJECT IDMEF_OBJECT; prelude_list_t _list struct idmef_object { IDMEF_OBJECT; }; struct idmef_linked_object { IDMEF_OBJECT; prelude_list_t _list; }; #define idmef_linked_object_get_object(object) \ (void *) prelude_list_entry(object, struct idmef_linked_object, _list) #endif /* _LIBPRELUDE_IDMEF_OBJECT_PRV_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/libmissing.h0000644000000000000000000000010713726163410021374 xustar000000000000000023 mtime=1599661832.69 24 atime=1599661832.789 24 ctime=1599662000.121 libprelude-5.2.0/src/include/libmissing.h0000644000000000000000000000257613726163410020403 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ /* * should be in $(top_srcdir)/libmissing, but since the Makefile.am * is generated dynamically by gnulib-tool, it can't go there. */ #ifndef _LIBPRELUDE_LIBMISSING_H #define _LIBPRELUDE_LIBMISSING_H #include "config.h" #include "ftw_.h" #include "getpass.h" #include "minmax.h" #include "pathmax.h" /* * GNULib pathmax module does not cover system which have no limit on filename length (like GNU Hurd). */ #ifndef PATH_MAX # define PATH_MAX 8192 #endif #endif /* _LIBPRELUDE_LIBMISSING_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/ntp.h0000644000000000000000000000010713726163410020035 xustar000000000000000023 mtime=1599661832.69 24 atime=1599661832.789 24 ctime=1599662000.123 libprelude-5.2.0/src/include/ntp.h0000644000000000000000000001030513726163410017031 0ustar00rootroot00000000000000/********************************************************************** * Copyright (c) David L. Mills 1992-2001 * * * * Permission to use, copy, modify, and distribute this software and * * its documentation for any purpose and without fee is hereby * * granted, provided that the above copyright notice appears in all * * copies and that both the copyright notice and this permission * * notice appear in supporting documentation, and that the name * * University of Delaware not be used in advertising or publicity * * pertaining to distribution of the software without specific, * * written prior permission. The University of Delaware makes no * * representations about the suitability this software for any * * purpose. It is provided "as is" without express or implied * * warranty. * * * ***********************************************************************/ #ifndef _LIBPRELUDE_NTP_H #define _LIBPRELUDE_NTP_H #define TS_MASK 0xfffff000 /* mask to usec, for time stamps */ #define TS_ROUNDBIT 0x00000800 /* round at this bit */ #define JAN_1970 0x83aa7e80 /* 2208988800 1970 - 1900 in seconds */ typedef int32_t s_fp; typedef struct { union { uint32_t Xl_ui; int32_t Xl_i; } Ul_i; union { uint32_t Xl_uf; int32_t Xl_f; } Ul_f; } l_fp; #define l_ui Ul_i.Xl_ui /* unsigned integral part */ #define l_i Ul_i.Xl_i /* signed integral part */ #define l_uf Ul_f.Xl_uf /* unsigned fractional part */ #define l_f Ul_f.Xl_f /* signed fractional part */ extern const unsigned long ustotslo[]; extern const unsigned long ustotsmid[]; extern const unsigned long ustotshi[]; #define M_NEG(v_i, v_f) /* v = -v */ \ do { \ if ((v_f) == 0) \ (v_i) = -((s_fp)(v_i)); \ else { \ (v_f) = -((s_fp)(v_f)); \ (v_i) = ~(v_i); \ } \ } while(0) #define L_NEG(v) M_NEG((v)->l_ui, (v)->l_uf) #define TVUTOTSF(tvu, tsf) \ (tsf) = ustotslo[(tvu) & 0xff] \ + ustotsmid[((tvu) >> 8) & 0xff] \ + ustotshi[((tvu) >> 16) & 0xf] #define sTVTOTS(tv, ts) \ do { \ int isneg = 0; \ long usec; \ (ts)->l_ui = (tv)->tv_sec; \ usec = (tv)->tv_usec; \ if (((tv)->tv_sec < 0) || ((tv)->tv_usec < 0)) { \ usec = -usec; \ (ts)->l_ui = -(ts)->l_ui; \ isneg = 1; \ } \ TVUTOTSF(usec, (ts)->l_uf); \ if (isneg) { \ L_NEG((ts)); \ } \ } while(0) /* Taken from /usr/src/contrib/ntp/include/ntp_unixtime.h, FreeBSD 5.1-RELEASE */ /* * TV_SHIFT is used to turn the table result into a usec value. To round, * add in TV_ROUNDBIT before shifting */ #define TV_SHIFT 3 #define TV_ROUNDBIT 0x4 /* * Convert a time stamp fraction to microseconds. The time stamp * fraction is assumed to be unsigned. To use this in a program, declare: */ extern const long tstouslo[]; extern const long tstousmid[]; extern const long tstoushi[]; #define TSFTOTVU(tsf, tvu) \ (tvu) = (tstoushi[((tsf) >> 24) & 0xff] \ + tstousmid[((tsf) >> 16) & 0xff] \ + tstouslo[((tsf) >> 9) & 0x7f] \ + TV_ROUNDBIT) >> TV_SHIFT /* * Convert a time stamp to a struct timeval. The time stamp * has to be positive. */ #define TSTOTV(ts, tv) \ do { \ (tv)->tv_sec = (ts)->l_ui; \ TSFTOTVU((ts)->l_uf, (tv)->tv_usec); \ if ((tv)->tv_usec == 1000000) { \ (tv)->tv_sec++; \ (tv)->tv_usec = 0; \ } \ } while (0) #endif /* _LIBPRELUDE_NTP_H */ libprelude-5.2.0/src/include/PaxHeaders.14770/tls-auth.h0000644000000000000000000000010713726163410020775 xustar000000000000000024 mtime=1599661832.695 23 atime=1599661832.79 24 ctime=1599662000.125 libprelude-5.2.0/src/include/tls-auth.h0000644000000000000000000000254413726163410017777 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_TLS_AUTH_H #define _LIBPRELUDE_TLS_AUTH_H #include "prelude-io.h" #include "prelude-connection.h" int tls_auth_connection(prelude_client_profile_t *cp, prelude_io_t *io, int crypt, uint64_t *peer_analyzerid, prelude_connection_permission_t *permission); int tls_auth_init(prelude_client_profile_t *cp, gnutls_certificate_credentials_t *cred); int tls_auth_init_priority(const char *tlsopts); void tls_auth_deinit(void); #endif libprelude-5.2.0/src/include/PaxHeaders.14770/tls-util.h0000644000000000000000000000010713726163410021011 xustar000000000000000024 mtime=1599661832.695 23 atime=1599661832.79 24 ctime=1599662000.127 libprelude-5.2.0/src/include/tls-util.h0000644000000000000000000000304013726163410020003 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #ifndef _LIBPRELUDE_TLS_UTIL_H #define _LIBPRELUDE_TLS_UTIL_H void tls_unload_file(gnutls_datum_t *data); int tls_load_file(const char *filename, gnutls_datum_t *data); int tls_certificates_load(gnutls_x509_privkey_t key, const char *certfile, gnutls_certificate_credentials_t cred); int tls_certificate_get_peer_analyzerid(gnutls_session_t session, uint64_t *analyzerid); int tls_certificate_get_permission(gnutls_session_t session, prelude_connection_permission_t *permission); int _prelude_tls_crt_list_import(gnutls_x509_crt_t *certs, unsigned int *cmax, const gnutls_datum_t *data, gnutls_x509_crt_fmt_t format); #endif libprelude-5.2.0/src/include/PaxHeaders.14770/variable.h0000644000000000000000000000010713726163410021021 xustar000000000000000024 mtime=1599661832.695 23 atime=1599661832.79 24 ctime=1599662000.128 libprelude-5.2.0/src/include/variable.h0000644000000000000000000000234613726163410020023 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * * Written by Yoann Vandoorselaere * *****/ #ifndef _LIBPRELUDE_RULES_VARIABLE_H #define _LIBPRELUDE_RULES_VARIABLE_H int variable_set(const char *variable, const char *value); int variable_unset(const char *variable); char *variable_get(const char *variable); void variable_unset_all(void); #endif /* _LIBPRELUDE_RULES_VARIABLE_H */ libprelude-5.2.0/PaxHeaders.14770/ylwrap0000644000000000000000000000011013726163516016113 xustar000000000000000024 mtime=1599661902.148 24 atime=1599661902.148 24 ctime=1599661999.785 libprelude-5.2.0/ylwrap0000755000000000000000000001553613726163516015133 0ustar00rootroot00000000000000#! /bin/sh # ylwrap - wrapper for lex/yacc invocations. scriptversion=2012-12-21.17; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # Written by Tom Tromey . # # 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . get_dirname () { case $1 in */*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';; # Otherwise, we want the empty string (not "."). esac } # guard FILE # ---------- # The CPP macro used to guard inclusion of FILE. guard() { printf '%s\n' "$1" \ | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g' \ -e 's/__*/_/g' } # quote_for_sed [STRING] # ---------------------- # Return STRING (or stdin) quoted to be used as a sed pattern. quote_for_sed () { case $# in 0) cat;; 1) printf '%s\n' "$1";; esac \ | sed -e 's|[][\\.*]|\\&|g' } case "$1" in '') echo "$0: No files given. Try '$0 --help' for more information." 1>&2 exit 1 ;; --basedir) basedir=$2 shift 2 ;; -h|--h*) cat <<\EOF Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... Wrapper for lex/yacc invocations, renaming files as desired. INPUT is the input file OUTPUT is one file PROG generates DESIRED is the file we actually want instead of OUTPUT PROGRAM is program to run ARGS are passed to PROG Any number of OUTPUT,DESIRED pairs may be used. Report bugs to . EOF exit $? ;; -v|--v*) echo "ylwrap $scriptversion" exit $? ;; esac # The input. input="$1" shift # We'll later need for a correct munging of "#line" directives. input_sub_rx=`get_dirname "$input" | quote_for_sed` case "$input" in [\\/]* | ?:[\\/]*) # Absolute path; do nothing. ;; *) # Relative path. Make it absolute. input="`pwd`/$input" ;; esac input_rx=`get_dirname "$input" | quote_for_sed` # Since DOS filename conventions don't allow two dots, # the DOS version of Bison writes out y_tab.c instead of y.tab.c # and y_tab.h instead of y.tab.h. Test to see if this is the case. y_tab_nodot=false if test -f y_tab.c || test -f y_tab.h; then y_tab_nodot=true fi # The parser itself, the first file, is the destination of the .y.c # rule in the Makefile. parser=$1 # A sed program to s/FROM/TO/g for all the FROM/TO so that, for # instance, we rename #include "y.tab.h" into #include "parse.h" # during the conversion from y.tab.c to parse.c. sed_fix_filenames= # Also rename header guards, as Bison 2.7 for instance uses its header # guard in its implementation file. sed_fix_header_guards= while test "$#" -ne 0; do if test "$1" = "--"; then shift break fi from=$1 # Handle y_tab.c and y_tab.h output by DOS if $y_tab_nodot; then case $from in "y.tab.c") from=y_tab.c;; "y.tab.h") from=y_tab.h;; esac fi shift to=$1 shift sed_fix_filenames="${sed_fix_filenames}s|"`quote_for_sed "$from"`"|$to|g;" sed_fix_header_guards="${sed_fix_header_guards}s|"`guard "$from"`"|"`guard "$to"`"|g;" done # The program to run. prog="$1" shift # Make any relative path in $prog absolute. case "$prog" in [\\/]* | ?:[\\/]*) ;; *[\\/]*) prog="`pwd`/$prog" ;; esac # FIXME: add hostname here for parallel makes that run commands on # other machines. But that might take us over the 14-char limit. dirname=ylwrap$$ do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 mkdir $dirname || exit 1 cd $dirname case $# in 0) "$prog" "$input" ;; *) "$prog" "$@" "$input" ;; esac ret=$? if test $ret -eq 0; then for from in * do to=`printf '%s\n' "$from" | sed "$sed_fix_filenames"` if test -f "$from"; then # If $2 is an absolute path name, then just use that, # otherwise prepend '../'. case $to in [\\/]* | ?:[\\/]*) target=$to;; *) target="../$to";; esac # Do not overwrite unchanged header files to avoid useless # recompilations. Always update the parser itself: it is the # destination of the .y.c rule in the Makefile. Divert the # output of all other files to a temporary file so we can # compare them to existing versions. if test $from != $parser; then realtarget="$target" target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'` fi # Munge "#line" or "#" directives. Don't let the resulting # debug information point at an absolute srcdir. Use the real # output file name, not yy.lex.c for instance. Adjust the # include guards too. sed -e "/^#/!b" \ -e "s|$input_rx|$input_sub_rx|" \ -e "$sed_fix_filenames" \ -e "$sed_fix_header_guards" \ "$from" >"$target" || ret=$? # Check whether files must be updated. if test "$from" != "$parser"; then if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then echo "$to is unchanged" rm -f "$target" else echo "updating $to" mv -f "$target" "$realtarget" fi fi else # A missing file is only an error for the parser. This is a # blatant hack to let us support using "yacc -d". If -d is not # specified, don't fail when the header file is "missing". if test "$from" = "$parser"; then ret=1 fi fi done fi # Remove the directory. cd .. rm -rf $dirname exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libprelude-5.2.0/PaxHeaders.14770/prelude-admin0000644000000000000000000000010713726163660017331 xustar000000000000000024 mtime=1599662000.184 23 atime=1599662006.65 24 ctime=1599662000.184 libprelude-5.2.0/prelude-admin/0000755000000000000000000000000013726163660016403 5ustar00rootroot00000000000000libprelude-5.2.0/prelude-admin/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163516021445 xustar000000000000000024 mtime=1599661902.033 24 atime=1599661945.655 24 ctime=1599662000.172 libprelude-5.2.0/prelude-admin/Makefile.in0000644000000000000000000020331413726163516020453 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = prelude-admin$(EXEEXT) subdir = prelude-admin DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/prelude-adduser.in $(top_srcdir)/depcomp \ $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = prelude-adduser CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_prelude_admin_OBJECTS = prelude-admin.$(OBJEXT) server.$(OBJEXT) \ tls-register.$(OBJEXT) prelude_admin_OBJECTS = $(am_prelude_admin_OBJECTS) am__DEPENDENCIES_1 = prelude_admin_DEPENDENCIES = $(top_builddir)/src/config-engine.lo \ $(top_builddir)/src/variable.lo \ $(top_builddir)/src/libprelude.la ../libmissing/libmissing.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } SCRIPTS = $(bin_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(prelude_admin_SOURCES) DIST_SOURCES = $(prelude_admin_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = @PCFLAGS@ -I$(top_builddir)/src/include -I$(top_srcdir)/src/include -I$(top_builddir)/libmissing -I$(top_srcdir)/libmissing -I$(top_builddir)/src/libprelude-error @LIBPRELUDE_CFLAGS@ @PRELUDE_ADMIN_CFLAGS@ bin_SCRIPTS = prelude-adduser prelude_admin_LDADD = $(top_builddir)/src/config-engine.lo \ $(top_builddir)/src/variable.lo \ $(top_builddir)/src/libprelude.la \ @PRELUDE_ADMIN_LIBS@ \ ../libmissing/libmissing.la $(GETADDRINFO_LIB) $(GETHOSTNAME_LIB) $(HOSTENT_LIB) $(INET_NTOP_LIB) $(INET_PTON_LIB) $(LIBSOCKET) $(LIB_POLL) $(LIB_SELECT) $(LTLIBINTL) $(LTLIBTHREAD) $(SERVENT_LIB) prelude_admin_SOURCES = \ prelude-admin.c \ server.c \ tls-register.c noinst_HEADERS = tls-register.h server.h all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu prelude-admin/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu prelude-admin/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): prelude-adduser: $(top_builddir)/config.status $(srcdir)/prelude-adduser.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list prelude-admin$(EXEEXT): $(prelude_admin_OBJECTS) $(prelude_admin_DEPENDENCIES) $(EXTRA_prelude_admin_DEPENDENCIES) @rm -f prelude-admin$(EXEEXT) $(AM_V_CCLD)$(LINK) $(prelude_admin_OBJECTS) $(prelude_admin_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-admin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/server.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls-register.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-binSCRIPTS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-binSCRIPTS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-binSCRIPTS -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/prelude-admin/PaxHeaders.14770/Makefile.am0000644000000000000000000000011013726163410021425 xustar000000000000000024 mtime=1599661832.661 24 atime=1599661832.774 24 ctime=1599662000.173 libprelude-5.2.0/prelude-admin/Makefile.am0000644000000000000000000000144713726163410020436 0ustar00rootroot00000000000000AM_CPPFLAGS = @PCFLAGS@ -I$(top_builddir)/src/include -I$(top_srcdir)/src/include -I$(top_builddir)/libmissing -I$(top_srcdir)/libmissing -I$(top_builddir)/src/libprelude-error @LIBPRELUDE_CFLAGS@ @PRELUDE_ADMIN_CFLAGS@ bin_PROGRAMS = prelude-admin bin_SCRIPTS = prelude-adduser prelude_admin_LDADD = $(top_builddir)/src/config-engine.lo \ $(top_builddir)/src/variable.lo \ $(top_builddir)/src/libprelude.la \ @PRELUDE_ADMIN_LIBS@ \ ../libmissing/libmissing.la $(GETADDRINFO_LIB) $(GETHOSTNAME_LIB) $(HOSTENT_LIB) $(INET_NTOP_LIB) $(INET_PTON_LIB) $(LIBSOCKET) $(LIB_POLL) $(LIB_SELECT) $(LTLIBINTL) $(LTLIBTHREAD) $(SERVENT_LIB) prelude_admin_SOURCES = \ prelude-admin.c \ server.c \ tls-register.c noinst_HEADERS = tls-register.h server.h -include $(top_srcdir)/git.mk libprelude-5.2.0/prelude-admin/PaxHeaders.14770/prelude-adduser.in0000644000000000000000000000011013726163410023006 xustar000000000000000024 mtime=1599661832.661 24 atime=1599661832.774 24 ctime=1599662000.175 libprelude-5.2.0/prelude-admin/prelude-adduser.in0000644000000000000000000000051413726163410022011 0ustar00rootroot00000000000000#!/bin/sh # @configure_input@ prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ libdir=@libdir@ datarootdir=@datarootdir@ datadir=@datadir@ echo "*" echo "* WARNING: prelude-adduser is deprecated and will be removed in the future." echo "* WARNING: Please use 'prelude-admin' instead." echo "*" $bindir/prelude-admin $@ libprelude-5.2.0/prelude-admin/PaxHeaders.14770/tls-register.h0000644000000000000000000000011013726163410022166 xustar000000000000000024 mtime=1599661832.663 24 atime=1599661832.775 24 ctime=1599662000.177 libprelude-5.2.0/prelude-admin/tls-register.h0000644000000000000000000000362313726163410021175 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "tls-util.h" int tls_request_certificate(prelude_client_profile_t *cp, prelude_io_t *fd, gnutls_x509_privkey_t key, prelude_connection_permission_t permission); int tls_handle_certificate_request(const char *srcinfo, prelude_client_profile_t *cp, prelude_io_t *fd, gnutls_x509_privkey_t cakey, gnutls_x509_crt_t cacrt, gnutls_x509_crt_t crt); gnutls_x509_privkey_t tls_load_privkey(prelude_client_profile_t *cp); int tls_load_ca_certificate(prelude_client_profile_t *cp, gnutls_x509_privkey_t key, gnutls_x509_crt_t *crt); int tls_load_ca_signed_certificate(prelude_client_profile_t *cp, gnutls_x509_privkey_t cakey, gnutls_x509_crt_t cacrt, gnutls_x509_crt_t *crt); int tls_revoke_analyzer(prelude_client_profile_t *cp, gnutls_x509_privkey_t key, gnutls_x509_crt_t crt, uint64_t revoked_analyzerid); libprelude-5.2.0/prelude-admin/PaxHeaders.14770/server.h0000644000000000000000000000011013726163410021050 xustar000000000000000024 mtime=1599661832.662 24 atime=1599661832.775 24 ctime=1599662000.178 libprelude-5.2.0/prelude-admin/server.h0000644000000000000000000000217013726163410020053 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ int server_create(prelude_client_profile_t *cp, const char *addr, unsigned int port, prelude_bool_t keepalive, const char *pass, gnutls_x509_privkey_t key, gnutls_x509_crt_t cacrt, gnutls_x509_crt_t crt); libprelude-5.2.0/prelude-admin/PaxHeaders.14770/prelude-admin.c0000644000000000000000000000010713726163410022271 xustar000000000000000024 mtime=1599661832.662 24 atime=1599661832.774 23 ctime=1599662000.18 libprelude-5.2.0/prelude-admin/prelude-admin.c0000644000000000000000000020432313726163410021272 0ustar00rootroot00000000000000/***** * * Copyright (C) 2001-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) # include # include #endif #if TIME_WITH_SYS_TIME # include # include #else # if HAVE_SYS_TIME_H # include # else # include # endif #endif #include #include #include #ifdef NEED_GNUTLS_EXTRA # include #endif #include "common.h" #include "config-engine.h" #include "prelude.h" #include "idmef-message-print.h" #include "server.h" #include "tls-register.h" #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ # define chown(x, y, z) (0) # define fchown(x, y, z) (0) # define getuid(x) (0) # define getgid(x) (0) #endif struct rm_dir_s { prelude_list_t list; char *filename; }; struct cmdtbl { char *cmd; int argnum; int (*cmd_func)(int argc, char **argv); void (*help_func)(void); }; static const char *myprogname; static unsigned int port = 5553; static PRELUDE_LIST(rm_dir_list); static prelude_option_t *parentopt; static prelude_client_profile_t *profile; static char *addr = NULL, *one_shot_passwd = NULL, *arg_command = NULL; static prelude_bool_t gid_set = FALSE, uid_set = FALSE, detailed_listing = FALSE; static prelude_bool_t prompt_passwd = FALSE, server_keepalive = FALSE, pass_from_stdin = FALSE; int generated_key_size = 0; prelude_bool_t server_confirm = TRUE; int authority_certificate_lifetime = 0; int generated_certificate_lifetime = 0; static int64_t offset = -1, count = -1; static const char *get_tls_config(void) { static char buf[PATH_MAX]; static int initialized = 0; if ( initialized ) return buf; prelude_client_profile_get_default_config_dirname(NULL, buf, sizeof(buf)); snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "/tls.conf"); initialized = 1; return buf; } static int chown_cb(const char *filename, const struct stat *st, int flag) { int ret; prelude_uid_t uid; prelude_gid_t gid; uid = uid_set ? prelude_client_profile_get_uid(profile) : (prelude_uid_t) -1; gid = gid_set ? prelude_client_profile_get_gid(profile) : (prelude_gid_t) -1; ret = chown(filename, uid, gid); if ( ret < 0 ) fprintf(stderr, "could not change '%s' to UID:%d GID:%d: %s.\n\n", filename, (int) uid, (int) gid, strerror(errno)); return ret; } static int do_chown(const char *name) { int ret; char dirname[PATH_MAX]; prelude_client_profile_get_profile_dirname(profile, dirname, sizeof(dirname)); ret = ftw(dirname, chown_cb, 10); if ( ret < 0 ) return -1; prelude_client_profile_get_backup_dirname(profile, dirname, sizeof(dirname)); ret = ftw(dirname, chown_cb, 10); if ( ret < 0 ) return -1; fprintf(stderr, "Changed '%s' ownership to UID:%d GID:%d.\n", name, uid_set ? (int) prelude_client_profile_get_uid(profile) : -1, gid_set ? (int) prelude_client_profile_get_gid(profile) : -1); return 0; } static void permission_warning(void) { #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) fprintf(stderr, "* WARNING: no --uid or --gid command line options were provided.\n*\n" "* The profile will be created under the current UID (%d) and GID (%d). The\n" "* created profile should be available for writing to the program that will\n" "* be using it.\n*\n" "* Your sensor WILL NOT START without sufficient permission to load the profile.\n" "* [Please press enter if this is what you intend to do]\n", (int) prelude_client_profile_get_uid(profile), (int) prelude_client_profile_get_gid(profile)); while ( getchar() != '\n' ); #endif } static int change_permission(int exist_uid, int exist_gid) { fprintf(stderr, "* WARNING: A profile named '%s' already exist with permission UID:%d, GID:%d.\n" "* If you continue, '%s' permission will be updated to UID:%d, GID:%d.\n" "* [Please press enter if this is what you intend to do]\n", prelude_client_profile_get_name(profile), exist_uid, exist_gid, prelude_client_profile_get_name(profile), (int) prelude_client_profile_get_uid(profile), (int) prelude_client_profile_get_gid(profile)); while ( getchar() != '\n' ); return do_chown(prelude_client_profile_get_name(profile)); } static const char *lifetime_to_str(char *out, size_t size, int lifetime) { if ( ! lifetime ) snprintf(out, size, "unlimited"); else snprintf(out, size, "%d days", lifetime); return out; } static void print_tls_settings(void) { char buf1[128], buf2[128]; lifetime_to_str(buf1, sizeof(buf1), generated_certificate_lifetime); lifetime_to_str(buf2, sizeof(buf2), authority_certificate_lifetime); fprintf(stderr, "TLS Options (from: %s):\n" " --key-len=LEN : Profile private key length (default: %d bits).\n" " --cert-lifetime=DAYS : Profile certificate lifetime (default: %s).\n" " --ca-cert-lifetime=DAYS : Authority certificate lifetime (default: %s).\n" "\n", get_tls_config(), generated_key_size, buf1, buf2); } static void print_delete_help(void) { fprintf(stderr, "Usage : delete \n"); fprintf(stderr, "Example: delete my-profile\n\n"); fprintf(stderr, "Delete an analyzer profile.\n\n"); } static void print_rename_help(void) { fprintf(stderr, "Usage : rename \n" "Example: rename prelude-lml-old prelude-lml-new\n\n" "Rename an analyzer profile.\n\n"); } static void print_registration_server_help(void) { fprintf(stderr, "Usage : registration-server [options]\n" "Example: registration-server prelude-manager\n\n" "Launch a registration server for the specified Prelude-Manager profile. The\n" "profile will be created if it does not exist. Registered analyzers will be able\n" "to communicate with Prelude-Manager instance using this profile.\n\n" "Options:\n" #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) " --uid=UID : UID or user used to create the analyzer profile.\n" " --gid=GID : GID or group used to create the analyzer profile.\n" #endif " --prompt : Prompt for a password instead of auto generating it.\n" " --passwd=PASSWD : Use provided password instead of auto generating it.\n" " --passwd-file=-|FILE : Read password from file instead of auto generating it (- for stdin).\n" " --keepalive : Register analyzer in an infinite loop.\n" " --no-confirm : Do not ask for confirmation on sensor registration.\n" " --listen : Address to listen on for registration request (default is any:5553).\n\n"); print_tls_settings(); } static void print_register_help(void) { fprintf(stderr, "Usage : register [options]\n" "Example: register prelude-lml \"idmef:w\" 192.168.0.1\n\n" "This command will register the specified analyzer profile to the remote\n" "registration server. The analyzer profile will be created if it does not exist.\n\n" "Options:\n" #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) " --uid=UID : UID or user used to create analyzer profile.\n" " --gid=GID : GID or group used to create analyzer profile.\n" #endif " --passwd=PASSWD : Use provided password instead of prompting it.\n" " --passwd-file=-|FILE\t: Read password from file (- for stdin).\n\n"); print_tls_settings(); } static void print_add_help(void) { fprintf(stderr, "Usage : add \n" "Example: add prelude-lml\n\n" "This command will create the specified analyzer profile.\n\n" #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) "Options:\n" " --uid=UID: UID or user used to create analyzer profile.\n" " --gid=GID: GID or group used to create analyzer profile.\n" #endif "\n"); print_tls_settings(); } static void print_chown_help(void) { fprintf(stderr, "Usage : chown <--uid|--gid>\n" "Example: chown prelude-lml --uid lmluser --gid lmlgroup\n\n" #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) "Options:\n" " --uid=UID : UID or user used as new profile permission.\n" " --gid=GID : GID to group used as new profile permission.\n" #endif "\n"); } static void print_revoke_help(void) { fprintf(stderr, "Usage : revoke \n" "Example: revoke prelude-manager 227879253605921\n\n" "This command will revoke the analyzer using the given analyzerID from the\n" "specified profile. Analyzer using the revoked analyzerID won't be able to\n" "communicate with the profile it was revoked from anymore.\n\n"); } static void print_list_help(void) { fprintf(stderr, "Usage : list [-l]\n" "Example: list -l\n\n" "Print the list of available profile, their permissions, and the certificate\n" "issuer analyzerID.\n\n" "Options:\n" " -l --long : Print detailed listing (include uid/gid, profile analyzerID).\n" "\n"); } static void print_print_help(void) { fprintf(stderr, "Usage : print \n" "Example: print /path/to/file1 /path/to/file2 /path/to/fileN\n\n" "Print the messages within a Prelude IDMEF binary file (example: failover file)\n" "to stdout using an human readable format.\n\n" "Options:\n" " --offset=OFFSET : Skip processing until 'offset' events.\n" " --count=COUNT : Process at most 'count' events.\n" "\n"); } static void print_send_help(void) { fprintf(stderr, "Usage : send \n" "Example: send prelude-lml 192.168.0.1 /path/to/file1 /path/to/file2 /path/to/fileN\n\n" "Send the messages within a Prelude IDMEF binary file (example: failover file)\n" "to the specified Prelude-Manager address. The specified profile is used for\n" "authentication.\n\n" "Options:\n" " --offset=OFFSET : Skip processing until 'offset' events.\n" " --count=COUNT : Process at most 'count' events.\n" "\n"); } #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) static int set_uid(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { prelude_uid_t uid; const char *p; struct passwd *pw; for ( p = optarg; isdigit((int) *p); p++ ); if ( *p == 0 ) uid = atoi(optarg); else { pw = getpwnam(optarg); if ( ! pw ) { fprintf(stderr, "could not lookup user '%s'.\n", optarg); return -1; } uid = pw->pw_uid; } uid_set = TRUE; prelude_client_profile_set_uid(profile, uid); return 0; } static int set_gid(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { prelude_gid_t gid; const char *p; struct group *grp; for ( p = optarg; isdigit((int) *p); p++ ); if ( *p == 0 ) gid = atoi(optarg); else { grp = getgrnam(optarg); if ( ! grp ) { fprintf(stderr, "could not lookup group '%s'.\n", optarg); return -1; } gid = grp->gr_gid; } gid_set = TRUE; prelude_client_profile_set_gid(profile, gid); return 0; } #endif static int set_offset(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { offset = strtoll(optarg, NULL, 0); return 0; } static int set_count(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { count = strtoll(optarg, NULL, 0); return 0; } static int set_server_keepalive(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { server_keepalive = TRUE; return 0; } static int set_passwd(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { one_shot_passwd = strdup(optarg); return 0; } static int set_passwd_file(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { FILE *fd; size_t len; char buf[1024], *ptr; prompt_passwd = FALSE; if ( strcmp(optarg, "-") == 0 ) { fd = stdin; server_confirm = FALSE; pass_from_stdin = TRUE; } else { fd = fopen(optarg, "r"); if ( ! fd ) { fprintf(stderr, "could not open file '%s': %s\n", optarg, strerror(errno)); return -1; } } ptr = fgets(buf, sizeof(buf), fd); if ( fd != stdin ) fclose(fd); if ( ! ptr ) return -1; len = strlen(buf); if ( buf[len - 1] == '\n' ) buf[len - 1] = 0; one_shot_passwd = strdup(buf); return 0; } static int set_prompt_passwd(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { prompt_passwd = TRUE; return 0; } static int set_server_no_confirm(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { server_confirm = FALSE; return 0; } static int set_server_listen_address(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { int ret; ret = prelude_parse_address(optarg, &addr, &port); if ( ret < 0 ) fprintf(stderr, "could not parse address '%s'.\n", optarg); return ret; } static int set_key_len(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { generated_key_size = atoi(optarg); return 0; } static int set_cert_lifetime(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { generated_certificate_lifetime = atoi(optarg); return 0; } static int set_ca_cert_lifetime(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { authority_certificate_lifetime = atoi(optarg); return 0; } static int set_long_listing(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { detailed_listing = TRUE; return 0; } static void setup_permission_options(void) { #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 'u', "uid", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_uid, NULL); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 'g', "gid", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_gid, NULL); #endif } static void setup_read_options(void) { prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 'o', "offset", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_offset, NULL); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 'c', "count", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_count, NULL); } static void setup_list_options(void) { prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 'l', "long", NULL, PRELUDE_OPTION_ARGUMENT_NONE, set_long_listing, NULL); } static int read_tls_setting(void) { int ret; char *ptr; config_t *cfg; unsigned int line; ret = _config_open(&cfg, get_tls_config()); if ( ret < 0 ) { prelude_perror(ret, "could not open %s", get_tls_config()); return -1; } line = 0; ptr = _config_get(cfg, NULL, "generated-key-size", &line); if ( ! ptr ) { fprintf(stderr, "%s: couldn't find \"generated-key-size\" setting.\n", get_tls_config()); goto err; } generated_key_size = atoi(ptr); free(ptr); line = 0; ptr = _config_get(cfg, NULL, "authority-certificate-lifetime", &line); if ( ! ptr ) { fprintf(stderr, "%s: couldn't find \"authority-certificate-lifetime\" setting.\n", get_tls_config()); goto err; } authority_certificate_lifetime = atoi(ptr); free(ptr); line = 0; ptr = _config_get(cfg, NULL, "generated-certificate-lifetime", &line); if ( ! ptr ) { fprintf(stderr, "%s: couldn't find \"generated-certificate-lifetime\" setting.\n", get_tls_config()); goto err; } generated_certificate_lifetime = atoi(ptr); free(ptr); err: _config_close(cfg); return (ptr) ? 0 : -1; } static void setup_tls_options(void) { int ret; ret = read_tls_setting(); if ( ret < 0 ) exit(1); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 0, "key-len", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_key_len, NULL); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 0, "cert-lifetime", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_cert_lifetime, NULL); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 0, "ca-cert-lifetime", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_ca_cert_lifetime, NULL); } static uint64_t generate_analyzerid(void) { struct timeval tv; union { uint64_t val64; uint32_t val32[2]; } combo; gettimeofday(&tv, NULL); combo.val32[0] = tv.tv_sec; combo.val32[1] = tv.tv_usec; return combo.val64; } /* * If the client provided no configuration filename, it is important * that we use the default configuration (idmef-client.conf). Here, * we do a copy of this file to the analyzer profile directory, so * that admin request to the analyzer can be saved locally for this * analyzer. */ static int create_template_config_file(prelude_client_profile_t *profile) { int ret; FILE *fd, *tfd; size_t len, wlen; char dirname[PATH_MAX], filename[PATH_MAX], buf[8192]; prelude_client_profile_get_default_config_dirname(profile, dirname, sizeof(dirname)); snprintf(dirname + strlen(dirname), sizeof(dirname) - strlen(dirname), "/idmef-client.conf"); prelude_client_profile_get_config_filename(profile, filename, sizeof(filename)); ret = access(filename, F_OK); if ( ret == 0 ) return 0; tfd = fopen(dirname, "r"); if ( ! tfd ) { fprintf(stderr, "could not open '%s' for reading: %s.\n", dirname, strerror(errno)); return -1; } fd = fopen(filename, "w"); if ( ! fd ) { fclose(tfd); fprintf(stderr, "could not open '%s' for writing: %s.\n", filename, strerror(errno)); return -1; } ret = fchown(fileno(fd), prelude_client_profile_get_uid(profile), prelude_client_profile_get_gid(profile)); if ( ret < 0 ) fprintf(stderr, "error changing '%s' ownership: %s.\n", filename, strerror(errno)); while ( fgets(buf, sizeof(buf), tfd) ) { len = strlen(buf); wlen = fwrite(buf, 1, len, fd); if ( wlen != len && ferror(fd) ) { fprintf(stderr, "error writing to '%s': %s.\n", filename, strerror(errno)); ret = -1; goto err; } } err: fclose(fd); fclose(tfd); if ( ret < 0 ) unlink(buf); return ret; } static int register_sensor_ident(const char *name, uint64_t *ident) { FILE *fd; int ret, already_exist; char buf[256], filename[256]; *ident = generate_analyzerid(); prelude_client_profile_get_analyzerid_filename(profile, filename, sizeof(filename)); already_exist = access(filename, F_OK); ret = open(filename, (already_exist == 0) ? O_RDONLY : O_CREAT|O_WRONLY, S_IRUSR|S_IWUSR|S_IRGRP); if ( ret < 0 ) { fprintf(stderr, "error opening '%s': %s.\n", filename, strerror(errno)); return -1; } fd = fdopen(ret, (already_exist == 0) ? "r" : "w"); if ( ! fd ) { close(ret); fprintf(stderr, "error opening '%s': %s.\n", filename, strerror(errno)); return -1; } if ( already_exist == 0 ) { if ( ! fgets(buf, sizeof(buf), fd) ) { fclose(fd); unlink(filename); return register_sensor_ident(name, ident); } if ( ! sscanf(buf, "%" PRELUDE_SCNu64, ident) ) { fclose(fd); unlink(filename); return register_sensor_ident(name, ident); } fclose(fd); return 0; } ret = fchown(fileno(fd), prelude_client_profile_get_uid(profile), prelude_client_profile_get_gid(profile)); if ( ret < 0 ) fprintf(stderr, "error changing '%s' ownership: %s.\n", filename, strerror(errno)); fprintf(fd, "%" PRELUDE_PRIu64 "\n", *ident); fclose(fd); return 0; } static int anon_check_passwd(prelude_io_t *fd, char *passwd) { int ret; ssize_t size; unsigned char *rbuf; size = prelude_io_write_delimited(fd, passwd, strlen(passwd) + 1); if ( size < 0 ) { fprintf(stderr, "error sending authentication token: %s.\n", prelude_strerror(size)); return -1; } size = prelude_io_read_delimited(fd, &rbuf); if ( size < 2 ) { fprintf(stderr, "error receiving authentication result: %s.\n", prelude_strerror(size)); return -1; } ret = memcmp(rbuf, "OK", 2); free(rbuf); if ( ret != 0 ) return -1; return 0; } static inline gnutls_transport_ptr_t fd_to_ptr(int fd) { union { gnutls_transport_ptr_t ptr; int fd; } data; data.fd = fd; return data.ptr; } static inline int ptr_to_fd(gnutls_transport_ptr_t ptr) { union { gnutls_transport_ptr_t ptr; int fd; } data; data.ptr = ptr; return data.fd; } static ssize_t tls_pull(gnutls_transport_ptr_t fd, void *buf, size_t count) { return read(ptr_to_fd(fd), buf, count); } static ssize_t tls_push(gnutls_transport_ptr_t fd, const void *buf, size_t count) { return write(ptr_to_fd(fd), buf, count); } static gnutls_session_t new_tls_session(int sock, char *passwd) { int ret; const char *err; gnutls_session_t session; gnutls_anon_client_credentials_t anoncred; #if defined LIBGNUTLS_VERSION_MAJOR && LIBGNUTLS_VERSION_MAJOR >= 3 # define TLS_DH_STR "+ANON-ECDH:+ANON-DH" #else # define TLS_DH_STR "+ANON-DH" #endif #ifdef GNUTLS_SRP_ENABLED const char *pstring = "NORMAL:+SRP:+SRP-DSS:+SRP-RSA:" TLS_DH_STR; #else const char *pstring = "NORMAL:" TLS_DH_STR; #endif gnutls_init(&session, GNUTLS_CLIENT); gnutls_set_default_priority(session); ret = gnutls_priority_set_direct(session, pstring, &err); if (ret < 0) { fprintf(stderr, "TLS priority syntax error at: %s\n", err); return NULL; } #ifdef GNUTLS_SRP_ENABLED { gnutls_srp_client_credentials_t srpcred; gnutls_srp_allocate_client_credentials(&srpcred); gnutls_srp_set_client_credentials(srpcred, "prelude-adduser", passwd); gnutls_credentials_set(session, GNUTLS_CRD_SRP, srpcred); } #endif gnutls_anon_allocate_client_credentials(&anoncred); gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred); gnutls_transport_set_ptr(session, fd_to_ptr(sock)); gnutls_transport_set_pull_function(session, tls_pull); gnutls_transport_set_push_function(session, tls_push); ret = gnutls_handshake(session); if ( ret < 0 ) { const char *errstr; if (ret == GNUTLS_E_WARNING_ALERT_RECEIVED || ret == GNUTLS_E_FATAL_ALERT_RECEIVED) errstr = gnutls_alert_get_name(gnutls_alert_get(session)); else errstr = gnutls_strerror(ret); fprintf(stderr, "\nGnuTLS handshake failed: %s.\n", errstr); return NULL; } return session; } static prelude_io_t *connect_manager(const char *addr, unsigned int port, char *passwd) { int ret, sock; prelude_io_t *fd; gnutls_session_t session; char buf[sizeof("65535")]; struct addrinfo hints, *ai; memset(&hints, 0, sizeof(hints)); snprintf(buf, sizeof(buf), "%u", port); #ifdef AI_ADDRCONFIG hints.ai_flags = AI_ADDRCONFIG; #endif hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; ret = getaddrinfo(addr, buf, &hints, &ai); if ( ret != 0 ) { fprintf(stderr, "could not resolve %s: %s.\n", addr, (ret == EAI_SYSTEM) ? strerror(errno) : gai_strerror(ret)); return NULL; } sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); if ( sock < 0) { fprintf(stderr, "error creating socket: %s.\n", strerror(errno)); return NULL; } fprintf(stderr, "\nConnecting to registration server (%s:%u)... ", addr, port); fflush(stderr); ret = connect(sock, ai->ai_addr, ai->ai_addrlen); if ( ret < 0 ) { fprintf(stderr, "\ncould not connect to %s port %s: %s.\n", addr, buf, strerror(errno)); close(sock); return NULL; } session = new_tls_session(sock, passwd); if ( ! session ) return NULL; ret = prelude_io_new(&fd); if ( ret < 0 ) { fprintf(stderr, "\nerror creating an IO object.\n"); gnutls_deinit(session); close(sock); return NULL; } prelude_io_set_tls_io(fd, session); if ( gnutls_auth_get_type(session) == GNUTLS_CRD_ANON && anon_check_passwd(fd, passwd) < 0 ) { fprintf(stderr, "Authentication failed.\n"); return NULL; } fprintf(stderr, "Authentication succeeded.\n"); return fd; } static int create_directory(prelude_client_profile_t *profile, const char *dirname, int flags) { int ret; ret = mkdir(dirname, flags); if ( ret < 0 && errno != EEXIST ) { fprintf(stderr, "error creating directory %s: %s.\n", dirname, strerror(errno)); return -1; } ret = chown(dirname, prelude_client_profile_get_uid(profile), prelude_client_profile_get_gid(profile)); if ( ret < 0 ) { fprintf(stderr, "could not chown %s to %d:%d: %s.\n", dirname, (int) prelude_client_profile_get_uid(profile), (int) prelude_client_profile_get_gid(profile), strerror(errno)); return -1; } return 0; } static int setup_analyzer_files(prelude_client_profile_t *profile, uint64_t *analyzerid, gnutls_x509_privkey_t *key, gnutls_x509_crt_t *crt) { int ret; char buf[256]; const char *name; prelude_client_profile_get_profile_dirname(profile, buf, sizeof(buf)); ret = create_directory(profile, buf, S_IRWXU|S_IRGRP|S_IXGRP); if ( ret < 0 ) { fprintf(stderr, "error creating directory %s: %s.\n", buf, strerror(errno)); return -1; } *key = tls_load_privkey(profile); if ( ! *key ) return -1; name = prelude_client_profile_get_name(profile); ret = create_template_config_file(profile); if ( ret < 0 ) return -1; ret = register_sensor_ident(name, analyzerid); if ( ret < 0 ) return -1; prelude_client_profile_set_analyzerid(profile, *analyzerid); prelude_client_profile_get_backup_dirname(profile, buf, sizeof(buf)); return create_directory(profile, buf, S_IRWXU|S_IRWXG); } static int ask_one_shot_password(char **buf, const char *ask, ...) { int ret; va_list ap; char *pass1, *pass2; char str[1024], askbuf[1024]; va_start(ap, ask); vsnprintf(askbuf, sizeof(askbuf), ask, ap); va_end(ap); do { snprintf(str, sizeof(str), "Enter %s: ", askbuf); pass1 = getpass(str); if ( ! pass1 || ! (pass1 = strdup(pass1)) ) return -1; snprintf(str, sizeof(str), "Confirm %s: ", askbuf); pass2 = getpass(str); if ( ! pass2 ) { memset(pass1, 0, strlen(pass1)); free(pass1); return -1; } ret = strcmp(pass1, pass2); memset(pass2, 0, strlen(pass2)); if ( ret == 0 ) { *buf = pass1; return 0; } memset(pass1, 0, strlen(pass1)); free(pass1); } while ( TRUE ); } static int add_to_rm_dir_list(const char *filename) { struct rm_dir_s *new; new = malloc(sizeof(*new)); if ( ! new ) { fprintf(stderr, "memory exhausted.\n"); return -1; } new->filename = strdup(filename); prelude_list_add(&rm_dir_list, &new->list); return 0; } static int flush_rm_dir_list(void) { int ret; struct rm_dir_s *dir; prelude_list_t *tmp, *bkp; prelude_list_for_each_safe(&rm_dir_list, tmp, bkp) { dir = prelude_list_entry(tmp, struct rm_dir_s, list); ret = rmdir(dir->filename); if ( ret < 0 ) { fprintf(stderr, "could not delete directory %s: %s.\n", dir->filename, strerror(errno)); return -1; } prelude_list_del(&dir->list); free(dir->filename); free(dir); } return 0; } static int del_cb(const char *filename, const struct stat *st, int flag) { int ret; if ( flag != FTW_F ) return (flag == FTW_DNR) ? -1 : add_to_rm_dir_list(filename); ret = unlink(filename); if ( ret < 0 ) fprintf(stderr, "unlink %s: %s.\n", filename, strerror(errno)); return ret; } static int delete_dir(const char *dirname) { int ret; ret = ftw(dirname, del_cb, 10); if ( ret < 0 && errno != ENOENT ) { fprintf(stderr, "traversing '%s' returned an error: %s.\n", dirname, strerror(errno)); return ret; } return flush_rm_dir_list(); } static int delete_profile(prelude_client_profile_t *profile) { int ret; char buf[PATH_MAX]; prelude_client_profile_get_profile_dirname(profile, buf, sizeof(buf)); if ( access(buf, F_OK) < 0 ) { fprintf(stderr, "Could not find profile '%s'.\n", prelude_client_profile_get_name(profile)); return -1; } ret = delete_dir(buf); if ( ret < 0 ) return ret; prelude_client_profile_get_backup_dirname(profile, buf, sizeof(buf)); ret = delete_dir(buf); if ( ret < 0 ) return ret; return 0; } static int rename_cmd(int argc, char **argv) { int ret, i; prelude_string_t *err; const char *sname, *dname; char spath[256], dpath[256]; prelude_client_profile_t *sprofile, *dprofile; i = ret = prelude_option_read(parentopt, NULL, &argc, argv, &err, NULL); if ( ret < 0 ) { prelude_perror(ret, "Option error"); return -1; } if ( argc - i != 2 ) return -2; sname = argv[i]; dname = argv[i + 1]; if ( *sname == '\0' ) { fprintf(stderr, "Empty source profile name provided: '%s'.\n", argv[i]); return -1; } if ( *dname == '\0' ) { fprintf(stderr, "Empty target profile name provided: '%s'.\n", argv[i]); return -1; } ret = prelude_client_profile_new(&sprofile, sname); if ( ret < 0 ) { fprintf(stderr, "Error opening profile '%s': %s\n", sname, prelude_strerror(ret)); return -1; } ret = prelude_client_profile_new(&sprofile, dname); if ( ret == 0 ) { fprintf(stderr, "Could not rename profile '%s' to '%s': profile '%s' already exist.\n", sname, dname, dname); return -1; } ret = _prelude_client_profile_new(&dprofile); prelude_client_profile_set_name(dprofile, dname); prelude_client_profile_get_profile_dirname(sprofile, spath, sizeof(spath)); prelude_client_profile_get_profile_dirname(dprofile, dpath, sizeof(dpath)); ret = rename(spath, dpath); if ( ret < 0 ) { fprintf(stderr, "Error renaming '%s' to '%s': %s.\n", spath, dpath, strerror(errno)); return ret; } prelude_client_profile_get_backup_dirname(sprofile, spath, sizeof(spath)); prelude_client_profile_get_backup_dirname(dprofile, dpath, sizeof(dpath)); ret = rename(spath, dpath); if ( ret < 0 ) { fprintf(stderr, "error renaming '%s' to '%s': %s.\n", spath, dpath, strerror(errno)); return ret; } fprintf(stderr, "Successfully renamed profile '%s' to '%s'.\n", sname, dname); return 0; } static int get_existing_profile_owner(const char *buf) { int ret; struct stat st; ret = stat(buf, &st); if ( ret < 0 ) { if ( errno != ENOENT ) fprintf(stderr, "error stating %s: %s.\n", buf, strerror(errno)); return -1; } if ( ! uid_set ) prelude_client_profile_set_uid(profile, st.st_uid); if ( ! gid_set ) prelude_client_profile_set_gid(profile, st.st_gid); if ( (uid_set && st.st_uid != prelude_client_profile_get_uid(profile)) || (gid_set && st.st_gid != prelude_client_profile_get_gid(profile)) ) return change_permission(st.st_uid, st.st_gid); uid_set = gid_set = TRUE; return 0; } static int add_analyzer(const char *name, uint64_t *analyzerid, gnutls_x509_privkey_t *key, gnutls_x509_crt_t *crt, gnutls_x509_crt_t *ca_crt) { int ret; char buf[PATH_MAX]; prelude_client_profile_set_name(profile, name); prelude_client_profile_get_profile_dirname(profile, buf, sizeof(buf)); ret = get_existing_profile_owner(buf); if ( ret < 0 ) { if ( errno != ENOENT ) return -1; if ( ! uid_set && ! gid_set ) permission_warning(); if ( ! uid_set || ! gid_set ) { if ( ! uid_set ) prelude_client_profile_set_uid(profile, getuid()); if ( ! gid_set ) prelude_client_profile_set_gid(profile, getgid()); } } ret = setup_analyzer_files(profile, analyzerid, key, crt); if ( ret < 0 ) return ret; ret = tls_load_ca_certificate(profile, *key, ca_crt); if ( ret < 0 ) return ret; ret = tls_load_ca_signed_certificate(profile, *key, *ca_crt, crt); if ( ret < 0 ) return ret; return 0; } static int add_cmd(int argc, char **argv) { int ret, i; uint64_t analyzerid; prelude_string_t *err; gnutls_x509_privkey_t key; gnutls_x509_crt_t ca_crt, crt; prelude_client_profile_t *testprofile; ret = _prelude_client_profile_new(&profile); setup_permission_options(); setup_tls_options(); i = ret = prelude_option_read(parentopt, NULL, &argc, argv, &err, NULL); if ( ret < 0 ) { prelude_perror(ret, "Option error"); return -1; } if ( argc - ret != 1 ) return -2; if ( *argv[i] == '\0' ) { fprintf(stderr, "Empty profile name provided: '%s'.\n", argv[i]); return -1; } ret = prelude_client_profile_new(&testprofile, argv[i]); if ( ret == 0 ) { fprintf(stderr, "Could not create already existing profile '%s'.\n", argv[i]); return -1; } ret = add_analyzer(argv[i], &analyzerid, &key, &crt, &ca_crt); if ( ret < 0 ) goto out; gnutls_x509_privkey_deinit(key); gnutls_x509_crt_deinit(crt); gnutls_x509_crt_deinit(ca_crt); fprintf(stderr, "Created profile '%s' with analyzerID '%" PRELUDE_PRIu64 "'.\n", argv[i], analyzerid); out: if ( ret < 0 ) delete_profile(profile); return ret; } static int chown_cmd(int argc, char **argv) { int ret, i; prelude_string_t *err; _prelude_client_profile_new(&profile); setup_permission_options(); i = ret = prelude_option_read(parentopt, NULL, &argc, argv, &err, NULL); if ( ret < 0 ) { prelude_perror(ret, "Option error"); return -2; } if ( argc - i < 1 ) return -2; if ( *argv[i] == '\0' ) { fprintf(stderr, "Empty profile name provided: '%s'.\n", argv[i]); return -1; } ret = prelude_client_profile_set_name(profile, argv[i]); if ( ret < 0 ) { fprintf(stderr, "Error loading analyzer profile '%s': %s.\n\n", argv[i], prelude_strerror(ret)); return -1; } if ( ! uid_set && ! gid_set ) { fprintf(stderr, "Option --uid or --gid should be provided to change the profile permission.\n\n"); return -1; } return do_chown(argv[i]); } static int del_cmd(int argc, char **argv) { int ret, i; prelude_string_t *err; i = ret = prelude_option_read(parentopt, NULL, &argc, argv, &err, NULL); if ( ret < 0 ) return ret; if ( argc - i <= 0 ) return -2; ret = _prelude_client_profile_new(&profile); if ( ret < 0 ) { fprintf(stderr, "Error creating analyzer profile: %s.\n", prelude_strerror(ret)); return -1; } for ( ; i < argc; i++ ) { if ( *argv[i] == '\0' ) { fprintf(stderr, "Empty profile name provided: '%s'.\n", argv[i]); return -1; } ret = prelude_client_profile_set_name(profile, argv[i]); if ( ret < 0 ) { fprintf(stderr, "Error setting analyzer profile name: %s.\n", prelude_strerror(ret)); return -1; } ret = delete_profile(profile); if ( ret < 0 ) return ret; fprintf(stderr, "Successfully deleted analyzer profile '%s'.\n", argv[i]); } return 0; } static int register_cmd(int argc, char **argv) { int ret, i; prelude_io_t *fd; uint64_t analyzerid; prelude_string_t *err; gnutls_x509_privkey_t key; gnutls_x509_crt_t crt, ca_crt; prelude_connection_permission_t permission_bits; ret = _prelude_client_profile_new(&profile); setup_permission_options(); setup_tls_options(); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 0, "passwd", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_passwd, NULL); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 0, "passwd-file", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_passwd_file, NULL); i = ret = prelude_option_read(parentopt, NULL, &argc, argv, &err, NULL); if ( ret < 0 ) { prelude_perror(ret, "Option error"); return -1; } if ( argc - i < 3 ) return -2; if ( *argv[i] == '\0' ) { fprintf(stderr, "Empty profile name provided: '%s'.\n", argv[i]); return -1; } ret = prelude_connection_permission_new_from_string(&permission_bits, argv[i + 1]); if ( ret < 0 ) { fprintf(stderr, "could not parse permission: %s.\n", prelude_strerror(ret)); return -1; } ret = prelude_parse_address(strdup(argv[i + 2]), &addr, &port); if ( ret < 0 ) { fprintf(stderr, "error parsing address '%s'.\n", argv[i + 3]); return -1; } ret = add_analyzer(argv[i], &analyzerid, &key, &crt, &ca_crt); if ( ret < 0 ) return -1; fprintf(stderr, "\nYou now need to start \"%s\" registration-server on %s:\n" "example: \"%s registration-server prelude-manager\"\n\n", myprogname, argv[i + 2], myprogname); if ( ! one_shot_passwd ) { ret = ask_one_shot_password(&one_shot_passwd, "the one-shot password provided on %s", argv[i + 2]); if ( ret < 0 ) return -1; } fd = connect_manager(addr, port, one_shot_passwd); memset(one_shot_passwd, 0, strlen(one_shot_passwd)); if ( ! fd ) return -1; ret = tls_request_certificate(profile, fd, key, permission_bits); prelude_io_close(fd); prelude_io_destroy(fd); if ( ret < 0 ) return -1; fprintf(stderr, "Successful registration to %s:%u.\n\n", addr, port); return 0; } static int generate_one_shot_password(char **buf) { int i; char c, *mybuf; struct timeval tv; const int passlen = 8; const char letters[] = "01234567890abcdefghijklmnopqrstuvwxyz"; gettimeofday(&tv, NULL); srand((unsigned int) getpid() * tv.tv_usec); mybuf = malloc(passlen + 1); if ( ! mybuf ) return -1; for ( i = 0; i < passlen; i++ ) { c = letters[rand() % (sizeof(letters) - 1)]; mybuf[i] = c; } mybuf[passlen] = '\0'; *buf = mybuf; fprintf(stderr, "The \"%s\" password will be requested by \"%s register\"\n" "in order to connect. Please remove the quotes before using it.\n\n", mybuf, myprogname); return 0; } static int registration_server_cmd(int argc, char **argv) { int ret, i; uint64_t analyzerid; prelude_string_t *err; gnutls_x509_privkey_t key; gnutls_x509_crt_t ca_crt, crt; ret = _prelude_client_profile_new(&profile); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 'k', "keepalive", NULL, PRELUDE_OPTION_ARGUMENT_NONE, set_server_keepalive, NULL); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 0, "passwd", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_passwd, NULL); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 0, "passwd-file", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_passwd_file, NULL); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 'p', "prompt", NULL, PRELUDE_OPTION_ARGUMENT_NONE, set_prompt_passwd, NULL); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 'n', "no-confirm", NULL, PRELUDE_OPTION_ARGUMENT_NONE, set_server_no_confirm, NULL); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 'l', "listen", NULL, PRELUDE_OPTION_ARGUMENT_REQUIRED, set_server_listen_address, NULL); setup_permission_options(); setup_tls_options(); i = ret = prelude_option_read(parentopt, NULL, &argc, argv, &err, NULL); if ( ret < 0 ) { prelude_perror(ret, "Option error"); return -1; } if ( argc - i < 1 ) return -2; if ( *argv[i] == '\0' ) { fprintf(stderr, "Empty profile name provided: '%s'.\n", argv[i]); return -1; } if ( pass_from_stdin ) fprintf(stderr, "Warning: registration confirmation disabled as a result of reading from a pipe.\n\n"); if ( prompt_passwd && one_shot_passwd ) { fprintf(stderr, "Options --prompt, --passwd, and --passwd-file are incompatible.\n\n"); return -1; } ret = add_analyzer(argv[i], &analyzerid, &key, &crt, &ca_crt); if ( ret < 0 ) return -1; if ( prompt_passwd ) { fprintf(stderr, "\n Please enter registration one-shot password.\n" " This password will be requested by \"%s\" in order to connect.\n\n", myprogname); ret = ask_one_shot_password(&one_shot_passwd, ""); } else if ( ! one_shot_passwd ) ret = generate_one_shot_password(&one_shot_passwd); if ( ret < 0 ) return -1; ret = server_create(profile, addr, port, server_keepalive, one_shot_passwd, key, ca_crt, crt); memset(one_shot_passwd, 0, strlen(one_shot_passwd)); gnutls_x509_privkey_deinit(key); gnutls_x509_crt_deinit(crt); gnutls_x509_crt_deinit(ca_crt); return ret; } static int revoke_cmd(int argc, char **argv) { int ret, i; char *eptr = NULL; uint64_t analyzerid; prelude_string_t *err; gnutls_x509_privkey_t key; gnutls_x509_crt_t ca_crt, crt; i = ret = prelude_option_read(parentopt, NULL, &argc, argv, &err, NULL); if ( ret < 0 ) { prelude_perror(ret, "Option error"); return -1; } if ( argc - i < 2 ) return -2; if ( *argv[i] == '\0' ) { fprintf(stderr, "Empty profile name provided: '%s'.\n", argv[i]); return -1; } ret = prelude_client_profile_new(&profile, argv[i]); if ( ret < 0 ) { fprintf(stderr, "Error opening profile '%s': %s.\n", argv[i], prelude_strerror(ret)); return -1; } key = tls_load_privkey(profile); if ( ! key ) return -1; ret = tls_load_ca_certificate(profile, key, &ca_crt); if ( ret < 0 ) return -1; ret = tls_load_ca_signed_certificate(profile, key, ca_crt, &crt); if ( ret < 0 ) return -1; analyzerid = strtoull(argv[i + 1], &eptr, 0); if ( eptr != argv[i + 1] + strlen(argv[i + 1]) ) { fprintf(stderr, "Invalid analyzerid: '%s'.\n", argv[i + 1]); return -1; } ret = tls_revoke_analyzer(profile, key, crt, analyzerid); if ( ret == 0 ) fprintf(stderr, "AnalyzerID '%s' already revoked from profile '%s'.\n", argv[i + 1], argv[i]); else if ( ret == 1 ) fprintf(stderr, "Successfully revoked analyzerID '%s' from profile '%s'.\n", argv[i + 1], argv[i]); return ret; } static int read_messages(const char *filename, prelude_io_t *io, int (*process_cb)(idmef_message_t *msg, void *data), void *data) { int ret, i = 0; prelude_msg_t *msg; idmef_message_t *idmef; do { msg = NULL; ret = prelude_msg_read(&msg, io); if ( ret < 0 ) { if ( prelude_error_get_code(ret) == PRELUDE_ERROR_EOF ) return 0; fprintf(stderr, "error reading message from '%s': %s.\n", filename, prelude_strerror(ret)); return -1; } if ( offset != -1 && i++ < offset ) continue; if ( count != -1 && count-- == 0 ) return 0; ret = idmef_message_new(&idmef); if ( ret < 0 ) { fprintf(stderr, "error creating IDMEF root message: %s.\n", prelude_strerror(ret)); prelude_msg_destroy(msg); return -1; } ret = idmef_message_read(idmef, msg); if ( ret < 0 ) { fprintf(stderr, "error decoding message: %s.\n", prelude_strerror(ret)); prelude_msg_destroy(msg); idmef_message_destroy(idmef); return -1; } ret = process_cb(idmef, data); idmef_message_destroy(idmef); prelude_msg_destroy(msg); } while ( ret >= 0 ); return ret; } static int print_cb(idmef_message_t *idmef, void *data) { idmef_message_print(idmef, data); return 0; } static int print_cmd(int argc, char **argv) { FILE *fd; int i, ret; prelude_string_t *str; prelude_io_t *io, *out; setup_read_options(); i = ret = prelude_option_read(parentopt, NULL, &argc, argv, &str, NULL); if ( ret < 0 ) { prelude_perror(ret, "Option error"); return -1; } if ( argc - i < 1 ) return -2; ret = prelude_io_new(&io); if ( ret < 0 ) return ret; ret = prelude_io_new(&out); if ( ret < 0 ) return ret; prelude_io_set_file_io(out, stdout); for ( ; i < argc; i++ ) { fd = fopen(argv[i], "r"); if ( ! fd ) { fprintf(stderr, "Error opening '%s' for reading: %s.\n", argv[i], strerror(errno)); return -1; } prelude_io_set_file_io(io, fd); ret = read_messages(argv[i], io, print_cb, out); prelude_io_close(io); if ( ret < 0 ) break; } prelude_io_destroy(out); prelude_io_destroy(io); return ret; } static int send_cb(idmef_message_t *idmef, void *data) { prelude_client_send_idmef(data, idmef); return 0; } static int send_cmd(int argc, char **argv) { FILE *fd; int ret, i; prelude_io_t *io; prelude_string_t *str; prelude_client_t *client; prelude_connection_pool_t *pool; prelude_connection_pool_flags_t flags; setup_read_options(); i = ret = prelude_option_read(parentopt, NULL, &argc, argv, &str, NULL); if ( ret < 0 ) { prelude_perror(ret, "Option error"); return -1; } if ( argc - i < 3 ) return -2; if ( *argv[i] == '\0' ) { fprintf(stderr, "Empty profile name provided: '%s'.\n", argv[i]); return -1; } ret = prelude_io_new(&io); if ( ret < 0 ) return ret; ret = prelude_client_new(&client, argv[i]); if ( ret < 0 ) return ret; flags = prelude_client_get_flags(client); flags &= ~PRELUDE_CLIENT_FLAGS_HEARTBEAT; prelude_client_set_flags(client, flags); pool = prelude_client_get_connection_pool(client); flags = prelude_connection_pool_get_flags(pool); ret = prelude_client_init(client); flags &= ~(PRELUDE_CONNECTION_POOL_FLAGS_RECONNECT|PRELUDE_CONNECTION_POOL_FLAGS_FAILOVER); prelude_connection_pool_set_flags(pool, flags); prelude_connection_pool_set_connection_string(pool, argv[i + 1]); ret = prelude_client_start(client); if ( ret < 0 ) { fprintf(stderr, "Error starting prelude-client: %s.\n", prelude_strerror(ret)); return ret; } for ( i += 2; i < argc; i++ ) { fd = fopen(argv[i], "r"); if ( ! fd ) { fprintf(stderr, "error opening '%s' for reading: %s.\n", argv[i], strerror(errno)); return -1; } prelude_io_set_file_io(io, fd); ret = read_messages(argv[i], io, send_cb, client); prelude_io_close(io); if ( ret < 0 ) break; } prelude_client_destroy(client, PRELUDE_CLIENT_EXIT_STATUS_SUCCESS); return ret; } static PRELUDE_LIST(print_list); typedef struct { prelude_list_t list; unsigned int sub; char *name; char *uid; char *gid; char *analyzerid; char *permission; char *tanalyzerid; } print_entry_t; static void print_info(const char *info, unsigned int pad) { unsigned int i; size_t len = strlen(info); printf("%s", info); if ( pad < len ) { if ( pad != 0 ) putchar(' '); return; } pad -= strlen(info); for ( i = 0; i < pad; i++ ) putchar(' '); } static void print_add(unsigned int sub, const char *name, const char *uid, const char *gid, const char *analyzerid, const char *perm, const char *tanalyzerid) { print_entry_t *ent = malloc(sizeof(*ent)); ent->sub = sub; ent->name = strdup(name); ent->uid = strdup(uid); ent->gid = strdup(gid); ent->analyzerid = strdup(analyzerid); ent->permission = strdup(perm); ent->tanalyzerid = strdup(tanalyzerid); prelude_list_add_tail(&print_list, &ent->list); } static void print_added(void) { unsigned int i; print_entry_t *ent; prelude_list_t *tmp, *bkp; unsigned int mtotal = 0, mpartial = 0; unsigned int mlen_name = 0, mlen_uid = 0, mlen_gid = 0, mlen_analyzerid = 0, mlen_tanalyzerid = 0, mlen_perm = 0; prelude_list_for_each(&print_list, tmp) { ent = prelude_list_entry(tmp, print_entry_t, list); mlen_name = MAX(mlen_name, strlen(ent->name)); mlen_uid = MAX(mlen_uid, strlen(ent->uid)); mlen_gid = MAX(mlen_gid, strlen(ent->gid)); mlen_analyzerid = MAX(mlen_analyzerid, strlen(ent->analyzerid)); mlen_tanalyzerid = MAX(mlen_tanalyzerid, strlen(ent->tanalyzerid)); mlen_perm = MAX(mlen_perm, strlen(ent->permission)); } print_info("Profile", ++mlen_name); if ( detailed_listing ) { print_info("UID", ++mlen_uid); print_info("GID", ++mlen_gid); print_info("AnalyzerID", ++mlen_analyzerid); mtotal += mlen_uid + mlen_gid + mlen_analyzerid; mpartial = mlen_uid + mlen_gid + mlen_analyzerid; } print_info("Permission", ++mlen_perm); printf("Issuer AnalyzerID\n"); mpartial += mlen_name; mtotal += mlen_name + mlen_perm + ++mlen_tanalyzerid; for ( i = 0; i < mtotal; i++) putchar('-'); putchar('\n'); prelude_list_for_each_safe(&print_list, tmp, bkp) { ent = prelude_list_entry(tmp, print_entry_t, list); if ( ent->sub > 0 ) { print_info("", mpartial); } else { print_info(ent->name, mlen_name); if ( detailed_listing ) { print_info(ent->uid, mlen_uid); print_info(ent->gid, mlen_gid); print_info(ent->analyzerid, mlen_analyzerid); } } print_info(ent->permission, mlen_perm); printf("%s\n", ent->tanalyzerid); free(ent->name); free(ent->uid); free(ent->gid); free(ent->analyzerid); free(ent->permission); free(ent->tanalyzerid); prelude_list_del(&ent->list); free(ent); } } static int list_cmd(int argc, char **argv) { FILE *fd; DIR *dir; size_t size; struct stat st; struct dirent *dh; #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) struct group *gr; struct passwd *pw; #endif gnutls_datum_t data; prelude_string_t *str; unsigned int cert_max, i; int ret, permission; gnutls_x509_crt_t certs[1024]; char dirname[PATH_MAX]; char buf[1024], analyzerid[128], uidbuf[128] = { 0 }, gidbuf[128] = { 0 }; setup_list_options(); i = ret = prelude_option_read(parentopt, NULL, &argc, argv, &str, NULL); prelude_client_profile_get_profile_dirname(NULL, dirname, sizeof(dirname)); dir = opendir(dirname); if ( ! dir ) { fprintf(stderr, "could not open '%s': %s.\n", dirname, strerror(errno)); return -1; } ret = prelude_string_new(&str); if ( ret < 0 ) { closedir(dir); return ret; } while ( (dh = readdir(dir)) ) { if ( strcmp(dh->d_name, ".") == 0 || strcmp(dh->d_name, "..") == 0 ) continue; snprintf(buf, sizeof(buf), "%s/%s", dirname, dh->d_name); ret = stat(buf, &st); if ( ret < 0 ) { if ( errno != EACCES ) fprintf(stderr, "error stating '%s': %s.\n", buf, strerror(errno)); continue; } #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) pw = getpwuid(st.st_uid); if ( ! pw ) snprintf(uidbuf, sizeof(uidbuf), "%d", (int) st.st_uid); else snprintf(uidbuf, sizeof(uidbuf), "%s", pw->pw_name); gr = getgrgid(st.st_gid); if ( ! gr ) snprintf(gidbuf, sizeof(gidbuf), "%d", (int) st.st_gid); else snprintf(gidbuf, sizeof(gidbuf), "%s", gr->gr_name); #endif snprintf(buf, sizeof(buf), "%s/%s/analyzerid", dirname, dh->d_name); fd = fopen(buf, "r"); if ( ! fd ) snprintf(analyzerid, sizeof(analyzerid), "n/a"); else { if ( (! fgets(analyzerid, sizeof(analyzerid), fd)) || (size = strlen(analyzerid)) <= 0 ) { fprintf(stderr, "failed to read analyzerID.\n"); continue; } fclose(fd); analyzerid[size - 1] = 0; } snprintf(buf, sizeof(buf), "%s/%s/client.keycrt", dirname, dh->d_name); ret = _prelude_load_file(buf, &data.data, &size); if ( ret < 0 ) { print_add(0, dh->d_name, uidbuf, gidbuf, analyzerid, "n/a", "n/a"); continue; } data.size = (unsigned int) size; cert_max = sizeof(certs) / sizeof(*certs); ret = _prelude_tls_crt_list_import(certs, &cert_max, &data, GNUTLS_X509_FMT_PEM); if ( ret < 0 ) { fprintf(stderr, "error importing certificate listing: %s.\n", gnutls_strerror(ret)); continue; } for ( i = 0; i < cert_max; i++ ) { size = sizeof(buf); ret = gnutls_x509_crt_get_dn_by_oid(certs[i], GNUTLS_OID_X520_COMMON_NAME, 0, 0, buf, &size); if ( ret < 0 ) { fprintf(stderr, "error reading certificate CN: %s.\n", gnutls_strerror(ret)); continue; } ret = sscanf(buf, "%d", (int *) &permission); if ( ret != 1 ) continue; size = sizeof(buf); ret = gnutls_x509_crt_get_issuer_dn_by_oid(certs[i], GNUTLS_OID_X520_DN_QUALIFIER, 0, 0, buf, &size); if ( ret < 0 ) { fprintf(stderr, "error reading certificate DN: %s.\n", gnutls_strerror(ret)); continue; } prelude_connection_permission_to_string(permission, str); print_add(i, dh->d_name, uidbuf, gidbuf, analyzerid, prelude_string_get_string(str), buf); prelude_string_clear(str); gnutls_x509_crt_deinit(certs[i]); } } closedir(dir); prelude_string_destroy(str); print_added(); return 0; } static const struct cmdtbl tbl[] = { { "add", 1, add_cmd, print_add_help }, { "chown", 1, chown_cmd, print_chown_help }, { "del", 1, del_cmd, print_delete_help }, { "list", 0, list_cmd, print_list_help }, { "print", 1, print_cmd, print_print_help }, { "rename", 2, rename_cmd, print_rename_help }, { "register", 3, register_cmd, print_register_help }, { "registration-server", 1, registration_server_cmd, print_registration_server_help }, { "revoke", 2, revoke_cmd, print_revoke_help }, { "send", 3, send_cmd, print_send_help }, }; static int print_help(void) { unsigned int i; fprintf(stderr, "\nUsage %s [options] [args]\n", myprogname); fprintf(stderr, "Type \"%s \" for help on a specific subcommand.\n\n", myprogname); fprintf(stderr, "Available subcommands:\n"); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) fprintf(stderr, " %s\n", tbl[i].cmd); exit(1); } static int print_detailed_help(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context) { unsigned int i; for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcmp(arg_command, tbl[i].cmd) == 0 ) { tbl[i].help_func(); exit(0); } } print_help(); exit(0); } int main(int argc, char **argv) { int ret = -1; unsigned int i; const char *slash; slash = strrchr(argv[0], '/'); myprogname = slash ? slash + 1 : argv[0]; if ( argc < 2 ) print_help(); arg_command = argv[1]; prelude_init(NULL, NULL); ret = prelude_option_new(NULL, &parentopt); prelude_option_add(parentopt, NULL, PRELUDE_OPTION_TYPE_CLI, 'h', "help", NULL, PRELUDE_OPTION_ARGUMENT_NONE, print_detailed_help, NULL); ret = gnutls_global_init(); if ( ret < 0 ) { fprintf(stderr, "TLS initialization failed: %s", gnutls_strerror(ret)); return -1; } ret = -1; #ifdef NEED_GNUTLS_EXTRA gnutls_global_init_extra(); #endif #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) signal(SIGPIPE, SIG_IGN); #endif umask(S_IRWXO); for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) { if ( strcmp(tbl[i].cmd, argv[1]) != 0 ) continue; ret = tbl[i].cmd_func(argc - 1, &argv[1]); if ( ret < 0 ) { if ( ret == -2 ) tbl[i].help_func(); return ret; } break; } gnutls_global_deinit(); if ( i == sizeof(tbl) / sizeof(*tbl) ) print_help(); return ret; } libprelude-5.2.0/prelude-admin/PaxHeaders.14770/server.c0000644000000000000000000000011013726163410021043 xustar000000000000000024 mtime=1599661832.662 24 atime=1599661832.774 24 ctime=1599662000.182 libprelude-5.2.0/prelude-admin/server.c0000644000000000000000000003447513726163410020063 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "config.h" #include "libmissing.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef NEED_GNUTLS_EXTRA # include #endif #include "prelude-client.h" #include "prelude-error.h" #include "common.h" #include "server.h" #include "tls-register.h" #define ANON_DH_BITS 1024 static const char *one_shot_passwd; static gnutls_anon_server_credentials_t anoncred; #ifdef GNUTLS_SRP_ENABLED static gnutls_srp_server_credentials_t srpcred; #endif static int anon_check_passwd(prelude_io_t *fd) { ssize_t ret; const char *result; unsigned char *rbuf; ret = prelude_io_read_delimited(fd, &rbuf); if ( ret < 0 ) { fprintf(stderr, "error receiving authentication result: %s.\n", prelude_strerror(ret)); return -1; } if ( rbuf[ret - 1] != 0 ) { fprintf(stderr, "invalid password token received.\n"); return -1; } if ( strcmp((char *) rbuf, one_shot_passwd) == 0 ) { result = "OK"; } else { result = "NOK"; fprintf(stderr, "Anonymous authentication one-shot password check failed.\n"); } free(rbuf); ret = prelude_io_write_delimited(fd, result, strlen(result)); if ( ret < 0 ) { fprintf(stderr, "error sending authentication token: %s.\n", prelude_strerror(ret)); return -1; } return *result == 'O' ? 0 : -1; } static inline gnutls_transport_ptr_t fd_to_ptr(int fd) { union { gnutls_transport_ptr_t ptr; int fd; } data; data.fd = fd; return data.ptr; } static inline int ptr_to_fd(gnutls_transport_ptr_t ptr) { union { gnutls_transport_ptr_t ptr; int fd; } data; data.ptr = ptr; return data.fd; } static ssize_t tls_pull(gnutls_transport_ptr_t fd, void *buf, size_t count) { return read(ptr_to_fd(fd), buf, count); } static ssize_t tls_push(gnutls_transport_ptr_t fd, const void *buf, size_t count) { return write(ptr_to_fd(fd), buf, count); } static gnutls_session_t new_tls_session(int sock) { int ret; gnutls_session_t session; const char *err; #if defined LIBGNUTLS_VERSION_MAJOR && LIBGNUTLS_VERSION_MAJOR >= 3 # define TLS_DH_STR "+ANON-ECDH:+ANON-DH" #else # define TLS_DH_STR "+ANON-DH" #endif #ifdef GNUTLS_SRP_ENABLED const char *pstring = "NORMAL:+SRP:+SRP-DSS:+SRP-RSA:" TLS_DH_STR; #else const char *pstring = "NORMAL:" TLS_DH_STR; #endif gnutls_init(&session, GNUTLS_SERVER); gnutls_set_default_priority(session); ret = gnutls_priority_set_direct(session, pstring, &err); if (ret < 0) { fprintf(stderr, "TLS priority syntax error at: %s\n", err); return NULL; } #ifdef GNUTLS_SRP_ENABLED gnutls_credentials_set(session, GNUTLS_CRD_SRP, srpcred); gnutls_certificate_server_set_request(session, GNUTLS_CERT_IGNORE); #endif gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred); gnutls_transport_set_ptr(session, fd_to_ptr(sock)); gnutls_transport_set_pull_function(session, tls_pull); gnutls_transport_set_push_function(session, tls_push); ret = gnutls_handshake(session); if ( ret < 0 ) { fprintf(stderr, "GnuTLS handshake failed: %s.\n", gnutls_strerror(ret)); gnutls_alert_send_appropriate(session, ret); return NULL; } return session; } static int handle_client_connection(const char *srcinfo, prelude_client_profile_t *cp, prelude_io_t *fd, gnutls_x509_privkey_t key, gnutls_x509_crt_t cacrt, gnutls_x509_crt_t crt) { gnutls_session_t session; session = new_tls_session(prelude_io_get_fd(fd)); if ( ! session ) return -1; prelude_io_set_tls_io(fd, session); if ( gnutls_auth_get_type(session) == GNUTLS_CRD_ANON && anon_check_passwd(fd) < 0 ) return -1; return tls_handle_certificate_request(srcinfo, cp, fd, key, cacrt, crt); } static int process_event(prelude_client_profile_t *cp, int server_sock, prelude_io_t *fd, gnutls_x509_privkey_t key, gnutls_x509_crt_t cacrt, gnutls_x509_crt_t crt) { char buf[512]; void *inaddr; socklen_t len; int ret, csock; union { struct sockaddr sa; #ifndef HAVE_IPV6 struct sockaddr_in addr; # define ADDR_PORT(x) (x).sin_port #else struct sockaddr_in6 addr; # define ADDR_PORT(x) (x).sin6_port #endif } addr; len = sizeof(addr.addr); csock = accept(server_sock, &addr.sa, &len); if ( csock < 0 ) { fprintf(stderr, "accept returned an error: %s.\n", strerror(errno)); return -1; } inaddr = prelude_sockaddr_get_inaddr(&addr.sa); if ( ! inaddr ) return -1; inet_ntop(addr.sa.sa_family, inaddr, buf, sizeof(buf)); snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), ":%u", ntohs(ADDR_PORT(addr.addr))); prelude_io_set_sys_io(fd, csock); fprintf(stderr, "\nConnection from %s...\n", buf); ret = handle_client_connection("", cp, fd, key, cacrt, crt); if ( ret == 0 ) fprintf(stderr, "%s successfully registered.\n", buf); prelude_io_close(fd); return ret; } static int wait_connection(prelude_client_profile_t *cp, int sock, struct pollfd *pfd, size_t size, int keepalive, gnutls_x509_privkey_t key, gnutls_x509_crt_t cacrt, gnutls_x509_crt_t crt) { size_t i; prelude_io_t *fd; int ret, active_fd; ret = prelude_io_new(&fd); if ( ret < 0 ) { fprintf(stderr, "%s: error creating a new IO object: %s.\n", prelude_strsource(ret), prelude_strerror(ret)); return -1; } do { active_fd = poll(pfd, size, -1); if ( active_fd < 0 ) { if ( errno != EINTR ) fprintf(stderr, "poll error : %s.\n", strerror(errno)); return -1; } for ( i = 0; i < size && active_fd > 0; i++ ) { if ( pfd[i].revents & POLLIN ) { active_fd--; ret = process_event(cp, pfd[i].fd, fd, key, cacrt, crt); } } } while ( keepalive || ret < 0 ); prelude_io_destroy(fd); return ret; } static int setup_server(const char *addr, unsigned int port, struct pollfd *pfd, size_t *size) { size_t i = 0; char buf[1024]; struct addrinfo hints, *ai, *ai_start; int sock, ret, on = 1; snprintf(buf, sizeof(buf), "%u", port); memset(&hints, 0, sizeof(hints)); hints.ai_flags = AI_PASSIVE; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; hints.ai_family = AF_UNSPEC; #ifdef AI_ADDRCONFIG hints.ai_flags |= AI_ADDRCONFIG; #endif ret = getaddrinfo(addr, buf, &hints, &ai); if ( ret != 0 ) { fprintf(stderr, "could not resolve %s: %s.\n", addr ? addr : "", (ret == EAI_SYSTEM) ? strerror(errno) : gai_strerror(ret)); return -1; } for ( ai_start = ai; ai && i < *size; ai = ai->ai_next ) { inet_ntop(ai->ai_family, prelude_sockaddr_get_inaddr(ai->ai_addr), buf, sizeof(buf)); sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); if ( sock < 0 ) { fprintf(stderr, "could not open socket for '%s': %s.\n", buf, strerror(errno)); break; } #ifdef IPV6_V6ONLY /* * There is a problem on Linux system where getaddrinfo() return address in * the wrong sort order (IPv4 first, IPv6 next). * * As a result we first bind IPv4 addresses, but then we get an error for * dual-stacked addresses, when the IPv6 addresses come second. When an * address is dual-stacked, we thus end-up listening only to the IPv4 * instance. * * The error happen on dual-stack Linux system, because mapping the IPv6 * address will actually attempt to bind both the IPv4 and IPv6 address. * * In order to prevent this problem, we set the IPV6_V6ONLY option so that * only the IPv6 address will be bound. */ if ( ai->ai_family == AF_INET6 ) { ret = setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (void *) &on, sizeof(int)); if ( ret < 0 ) fprintf(stderr, "could not set IPV6_V6ONLY: %s.\n", strerror(errno)); } #endif ret = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *) &on, sizeof(int)); if ( ret < 0 ) fprintf(stderr, "could not set SO_REUSEADDR: %s.\n", strerror(errno)); ret = bind(sock, ai->ai_addr, ai->ai_addrlen); if ( ret < 0 ) { close(sock); fprintf(stderr, "could not bind to '%s': %s.\n", buf, strerror(errno)); break; } ret = listen(sock, 1); if ( ret < 0 ) { close(sock); fprintf(stderr, "could not listen on '%s': %s.\n", buf, strerror(errno)); break; } fprintf(stderr, "Waiting for peers install request on %s:%u...\n", buf, ntohs(((struct sockaddr_in *) ai->ai_addr)->sin_port)); pfd[i].fd = sock; pfd[i].events = POLLIN; i++; } if ( i == 0 ) { fprintf(stderr, "could not find any address to listen on.\n"); return -1; } freeaddrinfo(ai_start); *size = i; return ret; } #ifdef GNUTLS_SRP_ENABLED static int copy_datum(gnutls_datum_t *dst, const gnutls_datum_t *src) { dst->size = src->size; dst->data = gnutls_malloc(dst->size); if ( ! dst->data ) { fprintf(stderr, "memory exhausted.\n"); return -1; } memcpy(dst->data, src->data, dst->size); return 0; } static int srp_callback(gnutls_session_t session, const char *username, gnutls_datum_t *salt, gnutls_datum_t *verifier, gnutls_datum_t *generator, gnutls_datum_t *prime) { int ret; if ( strcmp(username, "prelude-adduser") != 0 ) return -1; salt->size = 16; salt->data = gnutls_malloc(salt->size); if ( ! salt->data ) { fprintf(stderr, "memory exhausted.\n"); return -1; } ret = gnutls_rnd(GNUTLS_RND_NONCE, salt->data, salt->size); if ( ret < 0 ) { fprintf(stderr, "could not create nonce.\n"); return -1; } ret = copy_datum(generator, &gnutls_srp_1024_group_generator); if ( ret < 0 ) return -1; ret = copy_datum(prime, &gnutls_srp_1024_group_prime); if ( ret < 0 ) return -1; return gnutls_srp_verifier(username, one_shot_passwd, salt, generator, prime, verifier); } #endif int server_create(prelude_client_profile_t *cp, const char *addr, unsigned int port, prelude_bool_t keepalive, const char *pass, gnutls_x509_privkey_t key, gnutls_x509_crt_t cacrt, gnutls_x509_crt_t crt) { int sock; size_t size; struct pollfd pfd[128]; gnutls_dh_params_t dh_params; #ifdef GNUTLS_SRP_ENABLED int ret; ret = gnutls_srp_allocate_server_credentials(&srpcred); if ( ret < 0 ) { fprintf(stderr, "error creating SRP credentials: %s.\n", gnutls_strerror(ret)); return -1; } gnutls_srp_set_server_credentials_function(srpcred, srp_callback); #endif one_shot_passwd = pass; gnutls_anon_allocate_server_credentials(&anoncred); fprintf(stderr, "Generating %d bits Diffie-Hellman key for anonymous authentication...", ANON_DH_BITS); gnutls_dh_params_init(&dh_params); gnutls_dh_params_generate2(dh_params, ANON_DH_BITS); gnutls_anon_set_server_dh_params(anoncred, dh_params); fprintf(stderr, "\n"); size = sizeof(pfd) / sizeof(*pfd); sock = setup_server(addr, port, pfd, &size); if ( sock < 0 ) return -1; wait_connection(cp, sock, pfd, size, keepalive, key, cacrt, crt); #ifdef GNUTLS_SRP_ENABLED gnutls_srp_free_server_credentials(srpcred); #endif gnutls_anon_free_server_credentials(anoncred); return 0; } libprelude-5.2.0/prelude-admin/PaxHeaders.14770/tls-register.c0000644000000000000000000000011013726163410022161 xustar000000000000000024 mtime=1599661832.663 24 atime=1599661832.775 24 ctime=1599662000.184 libprelude-5.2.0/prelude-admin/tls-register.c0000644000000000000000000007645513726163410021205 0ustar00rootroot00000000000000/***** * * Copyright (C) 2004-2020 CS GROUP - France. All Rights Reserved. * Author: Yoann Vandoorselaere * * This file is part of the Prelude library. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1, 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * *****/ #include "libmissing.h" #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_GNUTLS_PRIVKEY_ABSTRACT # include #endif #include "prelude-client.h" #include "prelude-error.h" #include "tls-register.h" #include "common.h" #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ # define fchown(x, y, z) (0) #endif extern prelude_bool_t server_confirm; extern int generated_key_size; extern int authority_certificate_lifetime; extern int generated_certificate_lifetime; #ifdef HAVE_GNUTLS_PRIVKEY_ABSTRACT static gnutls_privkey_t get_privkey_from_x509(gnutls_x509_privkey_t x509key) { int ret; gnutls_privkey_t key; ret = gnutls_privkey_init(&key); if ( ret < 0 ) { fprintf(stderr, "error creating abstract key: %s.\n", gnutls_strerror(ret)); return NULL; } ret = gnutls_privkey_import_x509(key, x509key, GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE); if ( ret < 0 ) { fprintf(stderr, "error importing x509 abstract key: %s.\n", gnutls_strerror(ret)); gnutls_privkey_deinit(key); return NULL; } return key; } #endif static int cmp_certificate_dn(gnutls_x509_crt_t crt, uint64_t wanted_dn, uint64_t wanted_issuer_dn) { int ret; char buf[128]; size_t size = sizeof(buf); ret = gnutls_x509_crt_get_dn_by_oid(crt, GNUTLS_OID_X520_DN_QUALIFIER, 0, 0, buf, &size); if ( ret < 0 ) { fprintf(stderr, "couldn't get certificate issue dn: %s.\n", gnutls_strerror(ret)); return -1; } if ( strtoull(buf, NULL, 10) != wanted_dn ) return -1; size = sizeof(buf); ret = gnutls_x509_crt_get_issuer_dn_by_oid(crt, GNUTLS_OID_X520_DN_QUALIFIER, 0, 0, buf, &size); if ( ret < 0 ) { fprintf(stderr, "couldn't get certificate issue dn: %s.\n", gnutls_strerror(ret)); return -1; } if ( strtoull(buf, NULL, 10) != wanted_issuer_dn ) return -1; return 0; } static char *const_to_char(const char *ptr) { union { char *rw; const char *ro; } hack; hack.ro = ptr; return hack.rw; } static int remove_old_certificate(const char *filename, uint64_t dn, uint64_t issuer_dn) { int ret; char buf[65536]; unsigned char *data, *datap; size_t size; FILE *fd; gnutls_datum_t datum; gnutls_x509_crt_t crt; prelude_string_t *out; ret = _prelude_load_file(filename, &data, &size); if ( ret < 0 ) { if ( prelude_error_get_code(ret) == PRELUDE_ERROR_ENOENT ) return 0; fprintf(stderr, "error loading '%s': %s.\n", filename, prelude_strerror(ret)); return ret; } ret = prelude_string_new(&out); if ( ret < 0 ) { _prelude_unload_file(data, size); return ret; } unlink(filename); fd = fopen(filename, "w"); if ( ! fd ) { fprintf(stderr, "error opening '%s' for writing: %s.\n", filename, strerror(errno)); _prelude_unload_file(data, size); prelude_string_destroy(out); return -1; } datap = data; while ( 1 ) { ret = sscanf((const char *) data, "-----BEGIN CERTIFICATE-----\n%65535[^-]%*[^\n]\n", buf); if ( ret != 1 ) { ret = 0; break; } prelude_string_sprintf(out, "-----BEGIN CERTIFICATE-----\n%s-----END CERTIFICATE-----\n", buf); datum.size = prelude_string_get_len(out); datum.data = (unsigned char *) const_to_char(prelude_string_get_string(out)); data += datum.size; ret = gnutls_x509_crt_init(&crt); if ( ret < 0 ) break; ret = gnutls_x509_crt_import(crt, &datum, GNUTLS_X509_FMT_PEM); if ( ret < 0 ) { fprintf(stderr, "error importing certificate: %s\n", gnutls_strerror(ret)); break; } ret = cmp_certificate_dn(crt, dn, issuer_dn); if ( ret == 0 ) prelude_log_debug(1, "Removing old certificate with subject=%" PRELUDE_PRIu64 " issuer=%" PRELUDE_PRIu64 ".\n", dn, issuer_dn); else { if ( fwrite(datum.data, 1, datum.size, fd) != datum.size ) fprintf(stderr, "error writing certificate: %s\n", strerror(errno)); } prelude_string_clear(out); gnutls_x509_crt_deinit(crt); } fclose(fd); _prelude_unload_file(datap, size); prelude_string_destroy(out); return ret; } static int remove_old(const char *filename, unsigned char *buf, size_t size) { int ret; char out[512]; gnutls_datum_t data; gnutls_x509_crt_t crt; uint64_t dn, issuer_dn; data.size = size; data.data = buf; gnutls_x509_crt_init(&crt); ret = gnutls_x509_crt_import(crt, &data, GNUTLS_X509_FMT_PEM); if ( ret < 0 ) { fprintf(stderr, "error importing certificate: %s.\n", gnutls_strerror(ret)); goto err; } size = sizeof(out); ret = gnutls_x509_crt_get_issuer_dn_by_oid(crt, GNUTLS_OID_X520_DN_QUALIFIER, 0, 0, out, &size); if ( ret < 0 ) { fprintf(stderr, "error reading issuer dn: %s.\n", gnutls_strerror(ret)); goto err; } issuer_dn = strtoull(out, NULL, 10); size = sizeof(out); ret = gnutls_x509_crt_get_dn_by_oid(crt, GNUTLS_OID_X520_DN_QUALIFIER, 0, 0, out, &size); if ( ret < 0 ) { fprintf(stderr, "error reading issuer dn: %s.\n", gnutls_strerror(ret)); goto err; } dn = strtoull(out, NULL, 10); ret = remove_old_certificate(filename, dn, issuer_dn); if ( ret < 0 ) return ret; err: gnutls_x509_crt_deinit(crt); return ret; } static int safe_close(int fd) { int ret; do { ret = close(fd); } while ( ret < 0 && errno == EINTR ); return ret; } static ssize_t safe_write(int fd, const unsigned char *buf, size_t size) { ssize_t ret; do { ret = write(fd, buf, size); } while ( ret < 0 && errno == EINTR ); return ret; } static int save_buf(const char *filename, prelude_uid_t uid, prelude_gid_t gid, const unsigned char *buf, size_t size) { ssize_t sret; int fd, ret, flags = 0; #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) flags |= S_IRGRP; #endif fd = open(filename, O_CREAT|O_WRONLY|O_APPEND, S_IRUSR|S_IWUSR|flags); if ( fd < 0 ) { fprintf(stderr, "couldn't open %s for writing: %s.\n", filename, strerror(errno)); return -1; } ret = fchown(fd, uid, gid); if ( ret < 0 ) { fprintf(stderr, "could not set %s owner to UID %d GID %d: %s.\n", filename, (int) uid, (int) gid, strerror(errno)); safe_close(fd); return -1; } sret = safe_write(fd, buf, size); if ( sret < 0 || (size_t) sret != size ) { fprintf(stderr, "error writing to %s: %s.\n", filename, strerror(errno)); safe_close(fd); return -1; } return safe_close(fd); } static gnutls_x509_crt_t generate_certificate(prelude_client_profile_t *cp, gnutls_x509_privkey_t key, int expire) { int ret; char buf[1024]; gnutls_x509_crt_t crt; uint64_t analyzerid; size_t size = sizeof(buf); ret = gnutls_x509_crt_init(&crt); if ( ret < 0 ) { fprintf(stderr, "error creating x509 certificate: %s.\n", gnutls_strerror(ret)); return NULL; } if ( ! expire ) expire = 0x7fffffff; else expire = time(NULL) + expire * 24 * 60 * 60; gnutls_x509_crt_set_version(crt, 3); gnutls_x509_crt_set_ca_status(crt, 0); gnutls_x509_crt_set_activation_time(crt, time(NULL)); gnutls_x509_crt_set_expiration_time(crt, expire); analyzerid = prelude_client_profile_get_analyzerid(cp); ret = snprintf(buf, sizeof(buf), "%" PRELUDE_PRIu64, analyzerid); ret = gnutls_x509_crt_set_dn_by_oid(crt, GNUTLS_OID_X520_DN_QUALIFIER, 0, buf, ret); if ( ret < 0 ) { fprintf(stderr, "error setting common name: %s.\n", gnutls_strerror(ret)); return NULL; } gnutls_x509_crt_set_serial(crt, &analyzerid, sizeof(analyzerid)); if ( ! key ) return crt; gnutls_x509_crt_set_key(crt, key); ret = gnutls_x509_crt_get_key_id(crt, 0, (unsigned char *) buf, &size); if ( ret == 0 ) { ret = gnutls_x509_crt_set_subject_key_id(crt, buf, size); if ( ret < 0 ) { gnutls_x509_crt_deinit(crt); fprintf(stderr, "error setting subject key ID: %s\n", gnutls_strerror(ret)); return NULL; } } return crt; } static gnutls_x509_crt_t generate_signed_certificate(prelude_client_profile_t *cp, uint64_t analyzerid, gnutls_x509_crt_t ca_crt, gnutls_x509_privkey_t ca_key, gnutls_x509_crq_t crq) { int ret; gnutls_x509_crt_t crt; unsigned char buf[65535]; size_t size = sizeof(buf); crt = generate_certificate(cp, NULL, generated_certificate_lifetime); if ( ! crt ) return NULL; ret = gnutls_x509_crt_set_crq(crt, crq); if ( ret < 0 ) { fprintf(stderr, "error associating certificate with CRQ: %s.\n", gnutls_strerror(ret)); goto err; } ret = gnutls_x509_crt_set_serial(crt, &analyzerid, sizeof(analyzerid)); if ( ret < 0 ) { fprintf(stderr, "error setting certificate serial: %s.\n", gnutls_strerror(ret)); goto err; } ret = gnutls_x509_crt_get_key_id(ca_crt, 0, buf, &size); if ( ret < 0 ) { fprintf(stderr, "error getting CA key ID: %s.\n", gnutls_strerror(ret)); goto err; } ret = gnutls_x509_crt_set_authority_key_id(crt, buf, size); if ( ret < 0 ) { fprintf(stderr, "error setting authority key ID: %s?\n", gnutls_strerror(ret)); goto err; } ret = gnutls_x509_crt_sign2(crt, ca_crt, ca_key, GNUTLS_DIG_SHA256, 0); if ( ret < 0 ) { fprintf(stderr, "error signing certificate: %s.\n", gnutls_strerror(ret)); goto err; } return crt; err: gnutls_x509_crt_deinit(crt); return NULL; } static gnutls_x509_crt_t generate_ca_certificate(prelude_client_profile_t *cp, gnutls_x509_privkey_t key) { int ret; gnutls_x509_crt_t crt; unsigned int usage = 0; crt = generate_certificate(cp, key, authority_certificate_lifetime); if ( ! crt ) return NULL; usage |= GNUTLS_KEY_CRL_SIGN; usage |= GNUTLS_KEY_KEY_CERT_SIGN; usage |= GNUTLS_KEY_KEY_AGREEMENT; usage |= GNUTLS_KEY_KEY_ENCIPHERMENT; usage |= GNUTLS_KEY_DATA_ENCIPHERMENT; usage |= GNUTLS_KEY_DIGITAL_SIGNATURE; gnutls_x509_crt_set_ca_status(crt, 1); gnutls_x509_crt_set_key_usage(crt, usage); ret = gnutls_x509_crt_sign2(crt, crt, key, GNUTLS_DIG_SHA256, 0); if ( ret < 0 ) { fprintf(stderr, "error self-signing certificate: %s.\n", gnutls_strerror(ret)); gnutls_x509_crt_deinit(crt); return NULL; } return crt; } static gnutls_x509_privkey_t generate_private_key(void) { int ret; gnutls_x509_privkey_t key; ret = gnutls_x509_privkey_init(&key); if ( ret < 0 ) { fprintf(stderr, "error initializing private key: %s.\n", gnutls_strerror(ret)); return NULL; } fprintf(stderr, "Generating %d bits RSA private key... This might take a very long time.\n", generated_key_size); fprintf(stderr, "[Increasing system activity will speed-up the process].\n"); fprintf(stderr, "Generation in progress... "); fflush(stderr); ret = gnutls_x509_privkey_generate(key, GNUTLS_PK_RSA, generated_key_size, 0); if ( ret < 0 ) { fprintf(stderr, "error generating private RSA key: %s\n", gnutls_strerror(ret)); gnutls_x509_privkey_deinit(key); return NULL; } fprintf(stderr, "\n\n"); return key; } static gnutls_x509_crq_t generate_certificate_request(prelude_client_profile_t *cp, prelude_connection_permission_t permission, gnutls_x509_privkey_t x509key, unsigned char *buf, size_t *size) { int ret; gnutls_x509_crq_t crq; #ifdef HAVE_GNUTLS_PRIVKEY_ABSTRACT gnutls_privkey_t key; #endif ret = gnutls_x509_crq_init(&crq); if ( ret < 0 ) { fprintf(stderr, "error creating certificate request: %s.\n", gnutls_strerror(ret)); return NULL; } ret = gnutls_x509_crq_set_key(crq, x509key); if ( ret < 0 ) { fprintf(stderr, "error setting certificate request key: %s.\n", gnutls_strerror(ret)); gnutls_x509_crq_deinit(crq); return NULL; } if ( permission ) { ret = snprintf((char *) buf, *size, "%d", (int) permission); ret = gnutls_x509_crq_set_dn_by_oid(crq, GNUTLS_OID_X520_COMMON_NAME, 0, buf, ret); if ( ret < 0 ) { fprintf(stderr, "error setting common name: %s.\n", gnutls_strerror(ret)); return NULL; } } gnutls_x509_crq_set_version(crq, 3); ret = snprintf((char*) buf, *size, "%" PRELUDE_PRIu64, prelude_client_profile_get_analyzerid(cp)); ret = gnutls_x509_crq_set_dn_by_oid(crq, GNUTLS_OID_X520_DN_QUALIFIER, 0, buf, ret); if ( ret < 0 ) { fprintf(stderr, "error setting common name: %s.\n", gnutls_strerror(ret)); return NULL; } #ifdef HAVE_GNUTLS_PRIVKEY_ABSTRACT key = get_privkey_from_x509(x509key); if ( ! key ) return NULL; ret = gnutls_x509_crq_privkey_sign(crq, key, GNUTLS_DIG_SHA256, 0); #else ret = gnutls_x509_crq_sign(crq, x509key); #endif if ( ret < 0 ) { fprintf(stderr, "error signing certificate request: %s.\n", gnutls_strerror(ret)); gnutls_x509_crq_deinit(crq); return NULL; } ret = gnutls_x509_crq_export(crq, GNUTLS_X509_FMT_PEM, buf, size); if ( ret < 0 ) { fprintf(stderr, "error exporting certificate request: %s.\n", gnutls_strerror(ret)); gnutls_x509_crq_deinit(crq); return NULL; } return crq; } static gnutls_x509_privkey_t gen_crypto(prelude_client_profile_t *cp, const char *filename, prelude_uid_t uid, prelude_gid_t gid) { int ret; char buf[65535]; gnutls_x509_privkey_t key; size_t size = sizeof(buf); key = generate_private_key(); if ( ! key ) { fprintf(stderr, "error while generating RSA private key.\n"); return NULL; } ret = gnutls_x509_privkey_export(key, GNUTLS_X509_FMT_PEM, buf, &size); if ( ret < 0 ) { fprintf(stderr, "error exporting private key: %s\n", gnutls_strerror(ret)); gnutls_x509_privkey_deinit(key); return NULL; } ret = save_buf(filename, uid, gid, (unsigned char *) buf, size); if ( ret < 0 ) { fprintf(stderr, "error saving private key.\n"); return NULL; } return key; } gnutls_x509_privkey_t tls_load_privkey(prelude_client_profile_t *cp) { int ret; size_t size; gnutls_datum_t data; char filename[256]; gnutls_x509_privkey_t key; prelude_client_profile_get_tls_key_filename(cp, filename, sizeof(filename)); ret = access(filename, F_OK); if ( ret < 0 ) return gen_crypto(cp, filename, prelude_client_profile_get_uid(cp), prelude_client_profile_get_gid(cp)); ret = _prelude_load_file(filename, &data.data, &size); if ( ret < 0 ) { fprintf(stderr, "could not load '%s': %s.\n", filename, prelude_strerror(ret)); return NULL; } data.size = (unsigned int) size; gnutls_x509_privkey_init(&key); gnutls_x509_privkey_import(key, &data, GNUTLS_X509_FMT_PEM); _prelude_unload_file(data.data, size); return key; } static char ask_req_confirmation(void) { int ret; char c; do { fprintf(stderr, "Approve registration? [y/n]: "); c = 0; while ( (ret = getchar()) != '\n' ) if ( ! c ) c = ret; if ( c == 'y' ) return c; else if ( c == 'n' ) return c; } while ( 1 ); } static int check_req(const char *srcinfo, prelude_io_t *fd, gnutls_x509_crq_t crq, uint64_t *analyzerid) { int ret; size_t size; char buf[128], c; prelude_string_t *out; prelude_connection_permission_t perms; size = sizeof(buf); ret = gnutls_x509_crq_get_dn_by_oid(crq, GNUTLS_OID_X520_DN_QUALIFIER, 0, 0, buf, &size); if ( ret < 0 ) { fprintf(stderr, "could not retrieve dn qualifier: %s.\n", gnutls_strerror(ret)); return -1; } *analyzerid = strtoull(buf, NULL, 10); size = sizeof(buf); ret = gnutls_x509_crq_get_dn_by_oid(crq, GNUTLS_OID_X520_COMMON_NAME, 0, 0, buf, &size); if ( ret < 0 ) { fprintf(stderr, "could not retrieve common name: %s.\n", gnutls_strerror(ret)); return -1; } perms = atoi(buf); ret = prelude_string_new(&out); if ( ret < 0 ) { prelude_perror(ret, "error creating prelude-string"); return -1; } ret = prelude_connection_permission_to_string(perms, out); if ( ret < 0 ) { prelude_perror(ret, "could not convert permission to string"); return -1; } fprintf(stderr, "Registration request for analyzerID=\"%" PRELUDE_PRIu64 "\" permission=\"%s\".\n", *analyzerid, prelude_string_get_string(out)); if ( server_confirm ) { c = ask_req_confirmation(); if ( c != 'y' ) { gnutls_alert_send(prelude_io_get_fdptr(fd), GNUTLS_AL_FATAL, GNUTLS_A_USER_CANCELED); return -1; } } prelude_string_destroy(out); return 0; } int tls_handle_certificate_request(const char *srcinfo, prelude_client_profile_t *cp, prelude_io_t *fd, gnutls_x509_privkey_t cakey, gnutls_x509_crt_t cacrt, gnutls_x509_crt_t crt) { ssize_t ret; size_t size; char buf[65535]; gnutls_datum_t data; gnutls_x509_crq_t crq; unsigned char *rbuf; uint64_t analyzerid; gnutls_x509_crt_t gencrt; /* * Read the client CRQ and generate a certificate for it. */ prelude_log_debug(1, "Waiting for client certificate request.\n"); ret = prelude_io_read_delimited(fd, &rbuf); if ( ret < 0 ) { prelude_perror(ret, "error receiving client certificate request"); return -1; } data.size = ret; data.data = rbuf; gnutls_x509_crq_init(&crq); gnutls_x509_crq_import(crq, &data, GNUTLS_X509_FMT_PEM); free(rbuf); ret = check_req(srcinfo, fd, crq, &analyzerid); if ( ret < 0 ) return ret; /* * Generate a CA signed certificate for this CRQ. */ prelude_log_debug(1, "Generating signed certificate for client.\n"); gencrt = generate_signed_certificate(cp, analyzerid, cacrt, cakey, crq); if ( ! gencrt ) { fprintf(stderr, "error generating signed certificate for this request.\n"); return -1; } gnutls_x509_crq_deinit(crq); size = sizeof(buf); gnutls_x509_crt_export(gencrt, GNUTLS_X509_FMT_PEM, buf, &size); ret = prelude_io_write_delimited(fd, buf, size); if ( ret < 0 || (size_t) ret != size ) { prelude_perror(ret, "error sending signed certificate"); return -1; } gnutls_x509_crt_deinit(gencrt); /* * write our own certificate back to the client. */ prelude_log_debug(1, "Sending server certificate to client.\n"); size = sizeof(buf); gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_PEM, buf, &size); ret = prelude_io_write_delimited(fd, buf, size); if ( ret < 0 || (size_t) ret != size ) { prelude_perror(ret, "error sending signed certificate"); return -1; } return 0; } int tls_request_certificate(prelude_client_profile_t *cp, prelude_io_t *fd, gnutls_x509_privkey_t key, prelude_connection_permission_t permission) { ssize_t ret; ssize_t rsize; char buf[65535]; unsigned char *rbuf; gnutls_x509_crq_t crq; size_t size = sizeof(buf); prelude_log_debug(1, "Sending certificate request.\n"); crq = generate_certificate_request(cp, permission, key, (unsigned char *) buf, &size); if ( ! crq ) return -1; gnutls_x509_crq_deinit(crq); ret = prelude_io_write_delimited(fd, buf, size); if ( ret < 0 || (size_t) ret != size ) { prelude_perror(ret, "error sending certificate request"); return -1; } prelude_log_debug(1, "Receiving signed certificate.\n"); rsize = prelude_io_read_delimited(fd, &rbuf); if ( rsize < 0 ) { prelude_perror(rsize, "error receiving CA-signed certificate"); return -1; } prelude_client_profile_get_tls_client_keycert_filename(cp, buf, sizeof(buf)); ret = remove_old(buf, rbuf, rsize); if ( ret < 0 ) return ret; ret = save_buf(buf, prelude_client_profile_get_uid(cp), prelude_client_profile_get_gid(cp), rbuf, rsize); if ( ret < 0 ) return ret; free(rbuf); prelude_log_debug(1, "Receiving CA certificate.\n"); rsize = prelude_io_read_delimited(fd, &rbuf); if ( rsize < 0 ) { prelude_perror(rsize, "error receiving server certificate"); return rsize; } prelude_client_profile_get_tls_client_trusted_cert_filename(cp, buf, sizeof(buf)); ret = remove_old(buf, rbuf, rsize); if ( ret < 0 ) return ret; ret = save_buf(buf, prelude_client_profile_get_uid(cp), prelude_client_profile_get_gid(cp), rbuf, rsize); if ( ret < 0 ) return ret; free(rbuf); return 0; } static int crt_import(gnutls_x509_crt_t *crt, const char *filename) { int ret; size_t dsize; gnutls_datum_t data; ret = _prelude_load_file(filename, &data.data, &dsize); if ( ret < 0 ) { fprintf(stderr, "error loading '%s': %s.\n", filename, prelude_strerror(ret)); return ret; } data.size = (unsigned int) dsize; gnutls_x509_crt_init(crt); ret = gnutls_x509_crt_import(*crt, &data, GNUTLS_X509_FMT_PEM); if ( ret < 0 ) fprintf(stderr, "error importing certificate: %s.\n", gnutls_strerror(ret)); _prelude_unload_file(data.data, dsize); return ret; } static int crt_export(prelude_client_profile_t *cp, gnutls_x509_crt_t *crt, const char *filename) { int ret; size_t size; unsigned char buf[65535]; size = sizeof(buf); ret = gnutls_x509_crt_export(*crt, GNUTLS_X509_FMT_PEM, buf, &size); if ( ret < 0 ) { fprintf(stderr, "error exporting self-signed certificate: %s.\n", gnutls_strerror(ret)); gnutls_x509_crt_deinit(*crt); return -1; } ret = save_buf(filename, prelude_client_profile_get_uid(cp), prelude_client_profile_get_gid(cp), buf, size); if ( ret < 0 ) { fprintf(stderr, "error saving private key certificate.\n"); gnutls_x509_crt_deinit(*crt); return -1; } return 0; } int tls_load_ca_certificate(prelude_client_profile_t *cp, gnutls_x509_privkey_t key, gnutls_x509_crt_t *crt) { int ret; char filename[256]; prelude_client_profile_get_tls_server_ca_cert_filename(cp, filename, sizeof(filename)); ret = access(filename, F_OK); if ( ret == 0 ) return crt_import(crt, filename); *crt = generate_ca_certificate(cp, key); if ( ! *crt ) return -1; ret = crt_export(cp, crt, filename); if ( ret < 0 ) gnutls_x509_crt_deinit(*crt); return ret; } int tls_load_ca_signed_certificate(prelude_client_profile_t *cp, gnutls_x509_privkey_t cakey, gnutls_x509_crt_t cacrt, gnutls_x509_crt_t *crt) { int ret; char filename[256]; gnutls_x509_crq_t crq; unsigned char buf[65535]; size_t size = sizeof(buf); prelude_client_profile_get_tls_server_keycert_filename(cp, filename, sizeof(filename)); ret = access(filename, F_OK); if ( ret == 0 ) return crt_import(crt, filename); crq = generate_certificate_request(cp, 0, cakey, buf, &size); if ( ! crq ) return -1; *crt = generate_signed_certificate(cp, prelude_client_profile_get_analyzerid(cp), cacrt, cakey, crq); if ( ! *crt ) return -1; ret = crt_export(cp, crt, filename); if ( ret < 0 ) gnutls_x509_crt_deinit(*crt); return ret; } int tls_revoke_analyzer(prelude_client_profile_t *cp, gnutls_x509_privkey_t x509key, gnutls_x509_crt_t crt, uint64_t revoked_analyzerid) { int ret, i; size_t len, dsize; gnutls_datum_t data; #ifdef HAVE_GNUTLS_PRIVKEY_ABSTRACT gnutls_privkey_t key; #endif gnutls_x509_crl_t crl; uint64_t analyzerid; char crlfile[PATH_MAX], buf[65535]; ret = gnutls_x509_crl_init(&crl); prelude_client_profile_get_tls_server_crl_filename(cp, crlfile, sizeof(crlfile)); ret = access(crlfile, R_OK); if ( ret == 0 ) { ret = _prelude_load_file(crlfile, &data.data, &dsize); if ( ret < 0 ) { fprintf(stderr, "error loading '%s': %s.\n", crlfile, prelude_strerror(ret)); return ret; } data.size = (unsigned int) dsize; ret = gnutls_x509_crl_import(crl, &data, GNUTLS_X509_FMT_PEM); if ( ret < 0 ) { fprintf(stderr, "error importing CRL: %s.\n", gnutls_strerror(ret)); return -1; } } for ( i = 0; i < gnutls_x509_crl_get_crt_count(crl); i++ ) { len = sizeof(analyzerid); gnutls_x509_crl_get_crt_serial(crl, i, (unsigned char *) &analyzerid, &len, NULL); if ( analyzerid == revoked_analyzerid ) return 0; } ret = gnutls_x509_crl_set_crt_serial(crl, &revoked_analyzerid, sizeof(revoked_analyzerid), time(NULL)); if ( ret < 0 ) { fprintf(stderr, "error setting CRL certificate serial: %s.\n", gnutls_strerror(ret)); return -1; } gnutls_x509_crl_set_version(crl, 2); gnutls_x509_crl_set_next_update(crl, time(NULL)); gnutls_x509_crl_set_this_update(crl, time(NULL)); #ifdef HAVE_GNUTLS_PRIVKEY_ABSTRACT key = get_privkey_from_x509(x509key); if ( ! key ) return -1; ret = gnutls_x509_crl_privkey_sign(crl, crt, key, GNUTLS_DIG_SHA256, 0); #else ret = gnutls_x509_crl_sign(crl, crt, x509key); #endif if ( ret < 0 ) { fprintf(stderr, "error signing CRL: %s.\n", gnutls_strerror(ret)); return -1; } len = sizeof(buf); ret = gnutls_x509_crl_export(crl, GNUTLS_X509_FMT_PEM, buf, &len); if ( ret < 0 ) { fprintf(stderr, "error exporting certificate revocation list: %s\n", gnutls_strerror(ret)); gnutls_x509_crl_deinit(crl); return -1; } gnutls_x509_crl_deinit(crl); unlink(crlfile); ret = save_buf(crlfile, prelude_client_profile_get_uid(cp), prelude_client_profile_get_gid(cp), (unsigned char *) buf, len); if ( ret < 0 ) { fprintf(stderr, "error saving private key.\n"); return -1; } return 1; } libprelude-5.2.0/PaxHeaders.14770/docs0000644000000000000000000000010713726163660015533 xustar000000000000000024 mtime=1599662000.865 23 atime=1599662006.65 24 ctime=1599662000.865 libprelude-5.2.0/docs/0000755000000000000000000000000013726163660014605 5ustar00rootroot00000000000000libprelude-5.2.0/docs/PaxHeaders.14770/Makefile.in0000644000000000000000000000010713726163514017653 xustar000000000000000024 mtime=1599661900.163 23 atime=1599661945.69 24 ctime=1599662000.552 libprelude-5.2.0/docs/Makefile.in0000644000000000000000000017075413726163514016666 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = docs DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = api manpages all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu docs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/docs/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163410017635 xustar000000000000000023 mtime=1599661832.52 24 atime=1599661832.737 24 ctime=1599662000.553 libprelude-5.2.0/docs/Makefile.am0000644000000000000000000000006613726163410016634 0ustar00rootroot00000000000000SUBDIRS = api manpages -include $(top_srcdir)/git.mk libprelude-5.2.0/docs/PaxHeaders.14770/api0000644000000000000000000000010713726163660016304 xustar000000000000000024 mtime=1599662000.639 23 atime=1599662006.65 24 ctime=1599662000.639 libprelude-5.2.0/docs/api/0000755000000000000000000000000013726163660015356 5ustar00rootroot00000000000000libprelude-5.2.0/docs/api/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163514020416 xustar000000000000000024 mtime=1599661900.341 24 atime=1599661945.725 24 ctime=1599662000.605 libprelude-5.2.0/docs/api/Makefile.in0000644000000000000000000021242413726163514017426 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- mode: makefile -*- # # gtk-doc.make - make rules for gtk-doc # Copyright (C) 2003 James Henstridge # 2004-2007 Damon Chaplin # 2007-2017 Stefan Sauer # # 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 3 of the License, 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, see . #################################### # Everything below here is generic # #################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am subdir = docs/api ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # This is a blank Makefile.am for using gtk-doc. # Copy this to your project's API docs directory and modify the variables to # suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples # of using the various options. # The name of the module, e.g. 'glib'. DOC_MODULE = libprelude # Uncomment for versioned docs and specify the version of the module, e.g. '2'. #DOC_MODULE_VERSION=2 # The top-level XML file (SGML in the past). You can change this if you want to. DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml # Directories containing the source code. # gtk-doc will search all .c and .h files beneath these paths # for inline comments documenting functions and macros. # e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk DOC_SOURCE_DIR = $(top_srcdir)/src # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS = # Extra options to supply to gtkdoc-scan. # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" SCAN_OPTIONS = --deprecated-guards="PRELUDE_DISABLE_DEPRECATED" # Extra options to supply to gtkdoc-mkdb. # e.g. MKDB_OPTIONS=--xml-mode --output-format=xml MKDB_OPTIONS = --xml-mode --output-format=xml --ignore-files=idmef-criteria-string.lex.c # Extra options to supply to gtkdoc-mktmpl # e.g. MKTMPL_OPTIONS=--only-section-tmpl MKTMPL_OPTIONS = # Extra options to supply to gtkdoc-mkhtml MKHTML_OPTIONS = # Extra options to supply to gtkdoc-fixref. Not normally needed. # e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html FIXXREF_OPTIONS = # Used for dependencies. The docs will be rebuilt if any of these change. # e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h # e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c HFILE_GLOB = CFILE_GLOB = # Extra header to include when scanning, which are not under DOC_SOURCE_DIR # e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h EXTRA_HFILES = # Header files or dirs to ignore when scanning. Use base file/dir names # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code IGNORE_HFILES = config-engine.h libmissing.h idmef-tree-data.h ntp.h tls-auth.h tls-util.h code-from-errno.h code-to-errno.h err-codes-sym.h err-codes.h err-sources-sym.h err-sources.h errnos-sym.h gettext.h mkerrcodes.h idmef-criteria-string.yac.h idmef-tree.h prelude-extract.h prelude-message-id.h idmef-message-id.h idmef-class.h idmef-value-type.h daemonize.h common.h variable.h # Images to copy into HTML directory. # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files = # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files = # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. # e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) GTKDOC_CFLAGS = GTKDOC_LIBS = @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. # GPATH = $(srcdir) TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) SETUP_FILES = \ $(content_files) \ $(expand_content_files) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt # This includes the standard gtk-doc make rules, copied by gtkdocize. # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ html-build.stamp pdf-build.stamp \ sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals REPORT_FILES = \ $(DOC_MODULE)-undocumented.txt \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test @GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = @GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp @GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = @GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp #### setup #### GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_@AM_V@) GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_@AM_DEFAULT_V@) GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; #### scan #### GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_@AM_V@) GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_@AM_DEFAULT_V@) GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_@AM_V@) GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@) GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; #### xml #### GTK_DOC_V_XML = $(GTK_DOC_V_XML_@AM_V@) GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_@AM_DEFAULT_V@) GTK_DOC_V_XML_0 = @echo " DOC Building XML"; #### html #### GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_@AM_V@) GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_@AM_DEFAULT_V@) GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_@AM_V@) GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_@AM_DEFAULT_V@) GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; #### pdf #### GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_@AM_V@) GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_@AM_DEFAULT_V@) GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; # Files not to distribute # for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types # for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt #DISTCLEANFILES += # Comment this out if you want 'make check' to test you doc status # and run some sanity checks @ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = cd $(srcdir) && \ @ENABLE_GTK_DOC_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ @ENABLE_GTK_DOC_TRUE@ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/api/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu docs/api/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/gtk-doc.make: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-am @ENABLE_GTK_DOC_FALSE@all-local: all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool clean-local cscopelist-am ctags-am dist-hook \ distclean distclean-generic distclean-libtool distclean-local \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-data-local \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ maintainer-clean-local mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-local gtkdoc-check.test: Makefile $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ chmod +x $@ all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) .PHONY: all-gtk-doc @ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ if test "x$$files" != "x" ; then \ for file in $$files ; do \ destdir=`dirname $(abs_builddir)/$$file`; \ test -d "$$destdir" || mkdir -p "$$destdir"; \ test -f $(abs_srcdir)/$$file && \ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ done; \ fi; \ fi $(AM_V_at)touch setup-build.stamp scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi $(AM_V_at)touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true $(DOC_MAIN_SGML_FILE): sgml-build.stamp @true xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ ) > $@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$$?" = "0"; then \ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) $(AM_V_at)touch html-build.stamp pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ mkpdf_options=""; \ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkpdf_options="$$mkpdf_options --verbose"; \ fi; \ fi; \ if test "x$(HTML_IMAGES)" != "x"; then \ for img in $(HTML_IMAGES); do \ part=`dirname $$img`; \ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ if test $$? != 0; then \ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ fi; \ done; \ fi; \ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) $(AM_V_at)touch pdf-build.stamp ############## clean-local: @rm -f *~ *.bak @rm -rf .libs @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ rm -f $(DOC_MODULE).types; \ fi @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ rm -f $(DOC_MODULE)-sections.txt; \ fi distclean-local: @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ fi maintainer-clean-local: @rm -rf xml html install-data-local: @installfiles=`echo $(builddir)/html/*`; \ if test "$$installfiles" = '$(builddir)/html/*'; \ then echo 1>&2 'Nothing to install' ; \ else \ if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ $(mkinstalldirs) $${installdir} ; \ for i in $$installfiles; do \ echo ' $(INSTALL_DATA) '$$i ; \ $(INSTALL_DATA) $$i $${installdir}; \ done; \ if test -n "$(DOC_MODULE_VERSION)"; then \ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ rm -rf $${installdir} # # Require gtk-doc when making dist # @HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs @HAVE_GTK_DOC_FALSE@dist-check-gtkdoc: @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***" @HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***" @HAVE_GTK_DOC_FALSE@ @false dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local @mkdir $(distdir)/html @cp ./html/* $(distdir)/html @-cp ./$(DOC_MODULE).pdf $(distdir)/ @-cp ./$(DOC_MODULE).types $(distdir)/ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ @cd $(distdir) && rm -f $(DISTCLEANFILES) @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs #TESTS = $(GTKDOC_CHECK) -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/docs/api/PaxHeaders.14770/Makefile.am0000644000000000000000000000010713726163410020406 xustar000000000000000023 mtime=1599661832.52 24 atime=1599661832.737 24 ctime=1599662000.607 libprelude-5.2.0/docs/api/Makefile.am0000644000000000000000000000761013726163410017407 0ustar00rootroot00000000000000## Process this file with automake to produce Makefile.in # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # This is a blank Makefile.am for using gtk-doc. # Copy this to your project's API docs directory and modify the variables to # suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples # of using the various options. # The name of the module, e.g. 'glib'. DOC_MODULE=libprelude # Uncomment for versioned docs and specify the version of the module, e.g. '2'. #DOC_MODULE_VERSION=2 # The top-level XML file (SGML in the past). You can change this if you want to. DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml # Directories containing the source code. # gtk-doc will search all .c and .h files beneath these paths # for inline comments documenting functions and macros. # e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk DOC_SOURCE_DIR=$(top_srcdir)/src # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS= # Extra options to supply to gtkdoc-scan. # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" SCAN_OPTIONS=--deprecated-guards="PRELUDE_DISABLE_DEPRECATED" # Extra options to supply to gtkdoc-mkdb. # e.g. MKDB_OPTIONS=--xml-mode --output-format=xml MKDB_OPTIONS=--xml-mode --output-format=xml --ignore-files=idmef-criteria-string.lex.c # Extra options to supply to gtkdoc-mktmpl # e.g. MKTMPL_OPTIONS=--only-section-tmpl MKTMPL_OPTIONS= # Extra options to supply to gtkdoc-mkhtml MKHTML_OPTIONS= # Extra options to supply to gtkdoc-fixref. Not normally needed. # e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html FIXXREF_OPTIONS= # Used for dependencies. The docs will be rebuilt if any of these change. # e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h # e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c HFILE_GLOB= CFILE_GLOB= # Extra header to include when scanning, which are not under DOC_SOURCE_DIR # e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h EXTRA_HFILES= # Header files or dirs to ignore when scanning. Use base file/dir names # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code IGNORE_HFILES=config-engine.h libmissing.h idmef-tree-data.h ntp.h tls-auth.h tls-util.h code-from-errno.h code-to-errno.h err-codes-sym.h err-codes.h err-sources-sym.h err-sources.h errnos-sym.h gettext.h mkerrcodes.h idmef-criteria-string.yac.h idmef-tree.h prelude-extract.h prelude-message-id.h idmef-message-id.h idmef-class.h idmef-value-type.h daemonize.h common.h variable.h # Images to copy into HTML directory. # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png HTML_IMAGES= # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files= # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files= # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. # e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) GTKDOC_CFLAGS= GTKDOC_LIBS= # This includes the standard gtk-doc make rules, copied by gtkdocize. include $(top_srcdir)/gtk-doc.make # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST += # Files not to distribute # for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types # for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt #DISTCLEANFILES += # Comment this out if you want 'make check' to test you doc status # and run some sanity checks if ENABLE_GTK_DOC TESTS_ENVIRONMENT = cd $(srcdir) && \ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) #TESTS = $(GTKDOC_CHECK) endif -include $(top_srcdir)/git.mk libprelude-5.2.0/docs/api/PaxHeaders.14770/libprelude-docs.xml0000644000000000000000000000011013726163410022143 xustar000000000000000024 mtime=1599661832.521 24 atime=1599661832.737 24 ctime=1599662000.608 libprelude-5.2.0/docs/api/libprelude-docs.xml0000644000000000000000000000541213726163410021150 0ustar00rootroot00000000000000 ]> libprelude Reference Manual for libprelude [VERSION]. The latest version of this documentation can be found on-line at http://[SERVER]/libprelude/. [Insert title here] Object Hierarchy API Index Index of deprecated API libprelude-5.2.0/docs/api/PaxHeaders.14770/libprelude-sections.txt0000644000000000000000000000010613726163660023075 xustar000000000000000023 mtime=1599662000.64 24 atime=1599661832.737 23 ctime=1599662000.64 libprelude-5.2.0/docs/api/libprelude-sections.txt0000644000000000000000000012475013726163660022104 0ustar00rootroot00000000000000
prelude-error PRELUDE_ERROR_SOURCE_DEFAULT PRELUDE_ERROR_SYSTEM_ERROR prelude_error_source_t prelude_error_code_t prelude_error_t prelude_error_get_code prelude_error_get_source prelude_perror prelude_strerror prelude_strsource prelude_error_code_from_errno prelude_error_make prelude_error_make_from_errno prelude_error_verbose_make prelude_error_verbose_make_v prelude_error_code_to_errno prelude_error_is_verbose
prelude-linked-object PRELUDE_LINKED_OBJECT prelude_linked_object_t prelude_linked_object_get_object
idmef-tree-wrap IDMEF_LIST_APPEND IDMEF_LIST_PREPEND idmef_message_get_data idmef_message_get_number idmef_message_get_string idmef_message_get_value idmef_message_set_data idmef_message_set_number idmef_message_set_string idmef_message_set_value idmef_additional_data_type_t idmef_additional_data_type_to_numeric idmef_additional_data_type_to_string idmef_additional_data_t idmef_additional_data_new idmef_additional_data_copy idmef_additional_data_clone idmef_additional_data_ref idmef_additional_data_destroy idmef_additional_data_get_type idmef_additional_data_set_type idmef_additional_data_new_type idmef_additional_data_get_meaning idmef_additional_data_set_meaning idmef_additional_data_new_meaning idmef_additional_data_get_data idmef_additional_data_set_data idmef_additional_data_new_data idmef_reference_origin_t idmef_reference_origin_to_numeric idmef_reference_origin_to_string idmef_reference_t idmef_reference_new idmef_reference_copy idmef_reference_clone idmef_reference_ref idmef_reference_destroy idmef_reference_get_origin idmef_reference_set_origin idmef_reference_new_origin idmef_reference_get_name idmef_reference_set_name idmef_reference_new_name idmef_reference_get_url idmef_reference_set_url idmef_reference_new_url idmef_reference_get_meaning idmef_reference_set_meaning idmef_reference_new_meaning idmef_classification_t idmef_classification_new idmef_classification_copy idmef_classification_clone idmef_classification_ref idmef_classification_destroy idmef_classification_get_ident idmef_classification_set_ident idmef_classification_new_ident idmef_classification_get_text idmef_classification_set_text idmef_classification_new_text idmef_classification_get_next_reference idmef_classification_set_reference idmef_classification_new_reference idmef_user_id_type_t idmef_user_id_type_to_numeric idmef_user_id_type_to_string idmef_user_id_t idmef_user_id_new idmef_user_id_copy idmef_user_id_clone idmef_user_id_ref idmef_user_id_destroy idmef_user_id_get_ident idmef_user_id_set_ident idmef_user_id_new_ident idmef_user_id_get_type idmef_user_id_set_type idmef_user_id_new_type idmef_user_id_get_tty idmef_user_id_set_tty idmef_user_id_new_tty idmef_user_id_get_name idmef_user_id_set_name idmef_user_id_new_name idmef_user_id_unset_number idmef_user_id_get_number idmef_user_id_set_number idmef_user_id_new_number idmef_user_category_t idmef_user_category_to_numeric idmef_user_category_to_string idmef_user_t idmef_user_new idmef_user_copy idmef_user_clone idmef_user_ref idmef_user_destroy idmef_user_get_ident idmef_user_set_ident idmef_user_new_ident idmef_user_get_category idmef_user_set_category idmef_user_new_category idmef_user_get_next_user_id idmef_user_set_user_id idmef_user_new_user_id idmef_address_category_t idmef_address_category_to_numeric idmef_address_category_to_string idmef_address_t idmef_address_new idmef_address_copy idmef_address_clone idmef_address_ref idmef_address_destroy idmef_address_get_ident idmef_address_set_ident idmef_address_new_ident idmef_address_get_category idmef_address_set_category idmef_address_new_category idmef_address_get_vlan_name idmef_address_set_vlan_name idmef_address_new_vlan_name idmef_address_unset_vlan_num idmef_address_get_vlan_num idmef_address_set_vlan_num idmef_address_new_vlan_num idmef_address_get_address idmef_address_set_address idmef_address_new_address idmef_address_get_netmask idmef_address_set_netmask idmef_address_new_netmask idmef_process_t idmef_process_new idmef_process_copy idmef_process_clone idmef_process_ref idmef_process_destroy idmef_process_get_ident idmef_process_set_ident idmef_process_new_ident idmef_process_get_name idmef_process_set_name idmef_process_new_name idmef_process_unset_pid idmef_process_get_pid idmef_process_set_pid idmef_process_new_pid idmef_process_get_path idmef_process_set_path idmef_process_new_path idmef_process_get_next_arg idmef_process_set_arg idmef_process_new_arg idmef_process_get_next_env idmef_process_set_env idmef_process_new_env idmef_web_service_t idmef_web_service_new idmef_web_service_copy idmef_web_service_clone idmef_web_service_ref idmef_web_service_destroy idmef_web_service_get_url idmef_web_service_set_url idmef_web_service_new_url idmef_web_service_get_cgi idmef_web_service_set_cgi idmef_web_service_new_cgi idmef_web_service_get_http_method idmef_web_service_set_http_method idmef_web_service_new_http_method idmef_web_service_get_next_arg idmef_web_service_set_arg idmef_web_service_new_arg idmef_snmp_service_t idmef_snmp_service_new idmef_snmp_service_copy idmef_snmp_service_clone idmef_snmp_service_ref idmef_snmp_service_destroy idmef_snmp_service_get_oid idmef_snmp_service_set_oid idmef_snmp_service_new_oid idmef_snmp_service_unset_message_processing_model idmef_snmp_service_get_message_processing_model idmef_snmp_service_set_message_processing_model idmef_snmp_service_new_message_processing_model idmef_snmp_service_unset_security_model idmef_snmp_service_get_security_model idmef_snmp_service_set_security_model idmef_snmp_service_new_security_model idmef_snmp_service_get_security_name idmef_snmp_service_set_security_name idmef_snmp_service_new_security_name idmef_snmp_service_unset_security_level idmef_snmp_service_get_security_level idmef_snmp_service_set_security_level idmef_snmp_service_new_security_level idmef_snmp_service_get_context_name idmef_snmp_service_set_context_name idmef_snmp_service_new_context_name idmef_snmp_service_get_context_engine_id idmef_snmp_service_set_context_engine_id idmef_snmp_service_new_context_engine_id idmef_snmp_service_get_command idmef_snmp_service_set_command idmef_snmp_service_new_command idmef_snmp_service_get_community idmef_snmp_service_set_community idmef_snmp_service_new_community idmef_service_type_t idmef_service_type_to_numeric idmef_service_type_to_string idmef_service_t idmef_service_new idmef_service_copy idmef_service_clone idmef_service_ref idmef_service_destroy idmef_service_get_ident idmef_service_set_ident idmef_service_new_ident idmef_service_unset_ip_version idmef_service_get_ip_version idmef_service_set_ip_version idmef_service_new_ip_version idmef_service_unset_iana_protocol_number idmef_service_get_iana_protocol_number idmef_service_set_iana_protocol_number idmef_service_new_iana_protocol_number idmef_service_get_iana_protocol_name idmef_service_set_iana_protocol_name idmef_service_new_iana_protocol_name idmef_service_get_name idmef_service_set_name idmef_service_new_name idmef_service_unset_port idmef_service_get_port idmef_service_set_port idmef_service_new_port idmef_service_get_portlist idmef_service_set_portlist idmef_service_new_portlist idmef_service_get_protocol idmef_service_set_protocol idmef_service_new_protocol idmef_service_get_type idmef_service_get_web_service idmef_service_set_web_service idmef_service_new_web_service idmef_service_get_snmp_service idmef_service_set_snmp_service idmef_service_new_snmp_service idmef_node_category_t idmef_node_category_to_numeric idmef_node_category_to_string idmef_node_t idmef_node_new idmef_node_copy idmef_node_clone idmef_node_ref idmef_node_destroy idmef_node_get_ident idmef_node_set_ident idmef_node_new_ident idmef_node_get_category idmef_node_set_category idmef_node_new_category idmef_node_get_location idmef_node_set_location idmef_node_new_location idmef_node_get_name idmef_node_set_name idmef_node_new_name idmef_node_get_next_address idmef_node_set_address idmef_node_new_address idmef_source_spoofed_t idmef_source_spoofed_to_numeric idmef_source_spoofed_to_string idmef_source_t idmef_source_new idmef_source_copy idmef_source_clone idmef_source_ref idmef_source_destroy idmef_source_get_ident idmef_source_set_ident idmef_source_new_ident idmef_source_get_spoofed idmef_source_set_spoofed idmef_source_new_spoofed idmef_source_get_interface idmef_source_set_interface idmef_source_new_interface idmef_source_get_node idmef_source_set_node idmef_source_new_node idmef_source_get_user idmef_source_set_user idmef_source_new_user idmef_source_get_process idmef_source_set_process idmef_source_new_process idmef_source_get_service idmef_source_set_service idmef_source_new_service idmef_file_access_t idmef_file_access_new idmef_file_access_copy idmef_file_access_clone idmef_file_access_ref idmef_file_access_destroy idmef_file_access_get_user_id idmef_file_access_set_user_id idmef_file_access_new_user_id idmef_file_access_get_next_permission idmef_file_access_set_permission idmef_file_access_new_permission idmef_inode_t idmef_inode_new idmef_inode_copy idmef_inode_clone idmef_inode_ref idmef_inode_destroy idmef_inode_get_change_time idmef_inode_set_change_time idmef_inode_new_change_time idmef_inode_unset_number idmef_inode_get_number idmef_inode_set_number idmef_inode_new_number idmef_inode_unset_major_device idmef_inode_get_major_device idmef_inode_set_major_device idmef_inode_new_major_device idmef_inode_unset_minor_device idmef_inode_get_minor_device idmef_inode_set_minor_device idmef_inode_new_minor_device idmef_inode_unset_c_major_device idmef_inode_get_c_major_device idmef_inode_set_c_major_device idmef_inode_new_c_major_device idmef_inode_unset_c_minor_device idmef_inode_get_c_minor_device idmef_inode_set_c_minor_device idmef_inode_new_c_minor_device idmef_linkage_t idmef_checksum_algorithm_t idmef_checksum_algorithm_to_numeric idmef_checksum_algorithm_to_string idmef_checksum_t idmef_checksum_new idmef_checksum_copy idmef_checksum_clone idmef_checksum_ref idmef_checksum_destroy idmef_checksum_get_value idmef_checksum_set_value idmef_checksum_new_value idmef_checksum_get_key idmef_checksum_set_key idmef_checksum_new_key idmef_checksum_get_algorithm idmef_checksum_set_algorithm idmef_checksum_new_algorithm idmef_file_category_t idmef_file_category_to_numeric idmef_file_category_to_string idmef_file_fstype_t idmef_file_fstype_to_numeric idmef_file_fstype_to_string idmef_file_t idmef_file_new idmef_file_copy idmef_file_clone idmef_file_ref idmef_file_destroy idmef_file_get_ident idmef_file_set_ident idmef_file_new_ident idmef_file_get_name idmef_file_set_name idmef_file_new_name idmef_file_get_path idmef_file_set_path idmef_file_new_path idmef_file_get_create_time idmef_file_set_create_time idmef_file_new_create_time idmef_file_get_modify_time idmef_file_set_modify_time idmef_file_new_modify_time idmef_file_get_access_time idmef_file_set_access_time idmef_file_new_access_time idmef_file_unset_data_size idmef_file_get_data_size idmef_file_set_data_size idmef_file_new_data_size idmef_file_unset_disk_size idmef_file_get_disk_size idmef_file_set_disk_size idmef_file_new_disk_size idmef_file_get_next_file_access idmef_file_set_file_access idmef_file_new_file_access idmef_file_get_next_linkage idmef_file_set_linkage idmef_file_new_linkage idmef_file_get_inode idmef_file_set_inode idmef_file_new_inode idmef_file_get_next_checksum idmef_file_set_checksum idmef_file_new_checksum idmef_file_get_category idmef_file_set_category idmef_file_new_category idmef_file_unset_fstype idmef_file_get_fstype idmef_file_set_fstype idmef_file_new_fstype idmef_file_get_file_type idmef_file_set_file_type idmef_file_new_file_type idmef_linkage_category_t idmef_linkage_category_to_numeric idmef_linkage_category_to_string idmef_linkage_new idmef_linkage_copy idmef_linkage_clone idmef_linkage_ref idmef_linkage_destroy idmef_linkage_get_category idmef_linkage_set_category idmef_linkage_new_category idmef_linkage_get_name idmef_linkage_set_name idmef_linkage_new_name idmef_linkage_get_path idmef_linkage_set_path idmef_linkage_new_path idmef_linkage_get_file idmef_linkage_set_file idmef_linkage_new_file idmef_target_decoy_t idmef_target_decoy_to_numeric idmef_target_decoy_to_string idmef_target_t idmef_target_new idmef_target_copy idmef_target_clone idmef_target_ref idmef_target_destroy idmef_target_get_ident idmef_target_set_ident idmef_target_new_ident idmef_target_get_decoy idmef_target_set_decoy idmef_target_new_decoy idmef_target_get_interface idmef_target_set_interface idmef_target_new_interface idmef_target_get_node idmef_target_set_node idmef_target_new_node idmef_target_get_user idmef_target_set_user idmef_target_new_user idmef_target_get_process idmef_target_set_process idmef_target_new_process idmef_target_get_service idmef_target_set_service idmef_target_new_service idmef_target_get_next_file idmef_target_set_file idmef_target_new_file idmef_analyzer_t idmef_analyzer_new idmef_analyzer_copy idmef_analyzer_clone idmef_analyzer_ref idmef_analyzer_destroy idmef_analyzer_get_analyzerid idmef_analyzer_set_analyzerid idmef_analyzer_new_analyzerid idmef_analyzer_get_name idmef_analyzer_set_name idmef_analyzer_new_name idmef_analyzer_get_manufacturer idmef_analyzer_set_manufacturer idmef_analyzer_new_manufacturer idmef_analyzer_get_model idmef_analyzer_set_model idmef_analyzer_new_model idmef_analyzer_get_version idmef_analyzer_set_version idmef_analyzer_new_version idmef_analyzer_get_class idmef_analyzer_set_class idmef_analyzer_new_class idmef_analyzer_get_ostype idmef_analyzer_set_ostype idmef_analyzer_new_ostype idmef_analyzer_get_osversion idmef_analyzer_set_osversion idmef_analyzer_new_osversion idmef_analyzer_get_node idmef_analyzer_set_node idmef_analyzer_new_node idmef_analyzer_get_process idmef_analyzer_set_process idmef_analyzer_new_process idmef_alertident_t idmef_alertident_new idmef_alertident_copy idmef_alertident_clone idmef_alertident_ref idmef_alertident_destroy idmef_alertident_get_alertident idmef_alertident_set_alertident idmef_alertident_new_alertident idmef_alertident_get_analyzerid idmef_alertident_set_analyzerid idmef_alertident_new_analyzerid idmef_impact_severity_t idmef_impact_severity_to_numeric idmef_impact_severity_to_string idmef_impact_completion_t idmef_impact_completion_to_numeric idmef_impact_completion_to_string idmef_impact_type_t idmef_impact_type_to_numeric idmef_impact_type_to_string idmef_impact_t idmef_impact_new idmef_impact_copy idmef_impact_clone idmef_impact_ref idmef_impact_destroy idmef_impact_unset_severity idmef_impact_get_severity idmef_impact_set_severity idmef_impact_new_severity idmef_impact_unset_completion idmef_impact_get_completion idmef_impact_set_completion idmef_impact_new_completion idmef_impact_get_type idmef_impact_set_type idmef_impact_new_type idmef_impact_get_description idmef_impact_set_description idmef_impact_new_description idmef_action_category_t idmef_action_category_to_numeric idmef_action_category_to_string idmef_action_t idmef_action_new idmef_action_copy idmef_action_clone idmef_action_ref idmef_action_destroy idmef_action_get_category idmef_action_set_category idmef_action_new_category idmef_action_get_description idmef_action_set_description idmef_action_new_description idmef_confidence_rating_t idmef_confidence_rating_to_numeric idmef_confidence_rating_to_string idmef_confidence_t idmef_confidence_new idmef_confidence_copy idmef_confidence_clone idmef_confidence_ref idmef_confidence_destroy idmef_confidence_get_rating idmef_confidence_set_rating idmef_confidence_new_rating idmef_confidence_get_confidence idmef_confidence_set_confidence idmef_confidence_new_confidence idmef_assessment_t idmef_assessment_new idmef_assessment_copy idmef_assessment_clone idmef_assessment_ref idmef_assessment_destroy idmef_assessment_get_impact idmef_assessment_set_impact idmef_assessment_new_impact idmef_assessment_get_next_action idmef_assessment_set_action idmef_assessment_new_action idmef_assessment_get_confidence idmef_assessment_set_confidence idmef_assessment_new_confidence idmef_tool_alert_t idmef_tool_alert_new idmef_tool_alert_copy idmef_tool_alert_clone idmef_tool_alert_ref idmef_tool_alert_destroy idmef_tool_alert_get_name idmef_tool_alert_set_name idmef_tool_alert_new_name idmef_tool_alert_get_command idmef_tool_alert_set_command idmef_tool_alert_new_command idmef_tool_alert_get_next_alertident idmef_tool_alert_set_alertident idmef_tool_alert_new_alertident idmef_correlation_alert_t idmef_correlation_alert_new idmef_correlation_alert_copy idmef_correlation_alert_clone idmef_correlation_alert_ref idmef_correlation_alert_destroy idmef_correlation_alert_get_name idmef_correlation_alert_set_name idmef_correlation_alert_new_name idmef_correlation_alert_get_next_alertident idmef_correlation_alert_set_alertident idmef_correlation_alert_new_alertident idmef_overflow_alert_t idmef_overflow_alert_new idmef_overflow_alert_copy idmef_overflow_alert_clone idmef_overflow_alert_ref idmef_overflow_alert_destroy idmef_overflow_alert_get_program idmef_overflow_alert_set_program idmef_overflow_alert_new_program idmef_overflow_alert_unset_size idmef_overflow_alert_get_size idmef_overflow_alert_set_size idmef_overflow_alert_new_size idmef_overflow_alert_get_buffer idmef_overflow_alert_set_buffer idmef_overflow_alert_new_buffer idmef_alert_type_t idmef_alert_type_to_numeric idmef_alert_type_to_string idmef_alert_t idmef_alert_new idmef_alert_copy idmef_alert_clone idmef_alert_ref idmef_alert_destroy idmef_alert_get_messageid idmef_alert_set_messageid idmef_alert_new_messageid idmef_alert_get_next_analyzer idmef_alert_set_analyzer idmef_alert_new_analyzer idmef_alert_get_create_time idmef_alert_set_create_time idmef_alert_new_create_time idmef_alert_get_classification idmef_alert_set_classification idmef_alert_new_classification idmef_alert_get_detect_time idmef_alert_set_detect_time idmef_alert_new_detect_time idmef_alert_get_analyzer_time idmef_alert_set_analyzer_time idmef_alert_new_analyzer_time idmef_alert_get_next_source idmef_alert_set_source idmef_alert_new_source idmef_alert_get_next_target idmef_alert_set_target idmef_alert_new_target idmef_alert_get_assessment idmef_alert_set_assessment idmef_alert_new_assessment idmef_alert_get_next_additional_data idmef_alert_set_additional_data idmef_alert_new_additional_data idmef_alert_get_type idmef_alert_get_tool_alert idmef_alert_set_tool_alert idmef_alert_new_tool_alert idmef_alert_get_correlation_alert idmef_alert_set_correlation_alert idmef_alert_new_correlation_alert idmef_alert_get_overflow_alert idmef_alert_set_overflow_alert idmef_alert_new_overflow_alert idmef_heartbeat_t idmef_heartbeat_new idmef_heartbeat_copy idmef_heartbeat_clone idmef_heartbeat_ref idmef_heartbeat_destroy idmef_heartbeat_get_messageid idmef_heartbeat_set_messageid idmef_heartbeat_new_messageid idmef_heartbeat_get_next_analyzer idmef_heartbeat_set_analyzer idmef_heartbeat_new_analyzer idmef_heartbeat_get_create_time idmef_heartbeat_set_create_time idmef_heartbeat_new_create_time idmef_heartbeat_get_analyzer_time idmef_heartbeat_set_analyzer_time idmef_heartbeat_new_analyzer_time idmef_heartbeat_unset_heartbeat_interval idmef_heartbeat_get_heartbeat_interval idmef_heartbeat_set_heartbeat_interval idmef_heartbeat_new_heartbeat_interval idmef_heartbeat_get_next_additional_data idmef_heartbeat_set_additional_data idmef_heartbeat_new_additional_data idmef_message_type_t idmef_message_type_to_numeric idmef_message_type_to_string idmef_message_t idmef_message_new idmef_message_copy idmef_message_clone idmef_message_ref idmef_message_destroy idmef_message_get_version idmef_message_set_version idmef_message_new_version idmef_message_get_type idmef_message_get_alert idmef_message_set_alert idmef_message_new_alert idmef_message_get_heartbeat idmef_message_set_heartbeat idmef_message_new_heartbeat idmef_message_set_pmsg idmef_message_get_pmsg idmef_action_compare idmef_additional_data_compare idmef_address_compare idmef_alert_compare idmef_alertident_compare idmef_analyzer_compare idmef_assessment_compare idmef_checksum_compare idmef_classification_compare idmef_confidence_compare idmef_correlation_alert_compare idmef_data_compare idmef_file_access_compare idmef_file_compare idmef_heartbeat_compare idmef_impact_compare idmef_inode_compare idmef_linkage_compare idmef_message_compare idmef_node_compare idmef_overflow_alert_compare idmef_process_compare idmef_reference_compare idmef_service_compare idmef_snmp_service_compare idmef_source_compare idmef_target_compare idmef_time_compare idmef_tool_alert_compare idmef_user_compare idmef_user_id_compare idmef_web_service_compare IDMEF_CLASS_ID_ADDITIONAL_DATA_TYPE IDMEF_CLASS_ID_ADDITIONAL_DATA IDMEF_CLASS_ID_REFERENCE_ORIGIN IDMEF_CLASS_ID_REFERENCE IDMEF_CLASS_ID_CLASSIFICATION IDMEF_CLASS_ID_USER_ID_TYPE IDMEF_CLASS_ID_USER_ID IDMEF_CLASS_ID_USER_CATEGORY IDMEF_CLASS_ID_USER IDMEF_CLASS_ID_ADDRESS_CATEGORY IDMEF_CLASS_ID_ADDRESS IDMEF_CLASS_ID_PROCESS IDMEF_CLASS_ID_WEB_SERVICE IDMEF_CLASS_ID_SNMP_SERVICE IDMEF_CLASS_ID_SERVICE_TYPE IDMEF_CLASS_ID_SERVICE IDMEF_CLASS_ID_NODE_CATEGORY IDMEF_CLASS_ID_NODE IDMEF_CLASS_ID_SOURCE_SPOOFED IDMEF_CLASS_ID_SOURCE IDMEF_CLASS_ID_FILE_ACCESS IDMEF_CLASS_ID_INODE IDMEF_CLASS_ID_CHECKSUM_ALGORITHM IDMEF_CLASS_ID_CHECKSUM IDMEF_CLASS_ID_FILE_CATEGORY IDMEF_CLASS_ID_FILE_FSTYPE IDMEF_CLASS_ID_FILE IDMEF_CLASS_ID_LINKAGE_CATEGORY IDMEF_CLASS_ID_LINKAGE IDMEF_CLASS_ID_TARGET_DECOY IDMEF_CLASS_ID_TARGET IDMEF_CLASS_ID_ANALYZER IDMEF_CLASS_ID_ALERTIDENT IDMEF_CLASS_ID_IMPACT_SEVERITY IDMEF_CLASS_ID_IMPACT_COMPLETION IDMEF_CLASS_ID_IMPACT_TYPE IDMEF_CLASS_ID_IMPACT IDMEF_CLASS_ID_ACTION_CATEGORY IDMEF_CLASS_ID_ACTION IDMEF_CLASS_ID_CONFIDENCE_RATING IDMEF_CLASS_ID_CONFIDENCE IDMEF_CLASS_ID_ASSESSMENT IDMEF_CLASS_ID_TOOL_ALERT IDMEF_CLASS_ID_CORRELATION_ALERT IDMEF_CLASS_ID_OVERFLOW_ALERT IDMEF_CLASS_ID_ALERT_TYPE IDMEF_CLASS_ID_ALERT IDMEF_CLASS_ID_HEARTBEAT IDMEF_CLASS_ID_MESSAGE_TYPE IDMEF_CLASS_ID_MESSAGE
prelude-io prelude_io_t prelude_io_new prelude_io_destroy prelude_io_set_file_io prelude_io_set_tls_io prelude_io_set_sys_io prelude_io_set_buffer_io prelude_io_set_fdptr prelude_io_set_pending_callback prelude_io_set_read_callback prelude_io_set_write_callback prelude_io_close prelude_io_read prelude_io_read_wait prelude_io_read_delimited prelude_io_write prelude_io_write_delimited prelude_io_forward prelude_io_get_fd prelude_io_get_fdptr prelude_io_pending prelude_io_is_error_fatal
prelude-log prelude_log_t prelude_log_flags_t prelude_log prelude_log_debug prelude_log_v prelude_log_debug_v prelude_log_set_level prelude_log_set_debug_level prelude_log_get_flags prelude_log_set_flags prelude_log_get_prefix prelude_log_set_prefix prelude_log_set_callback prelude_log_set_logfile
prelude-msg prelude_msg_t prelude_msg_priority_t prelude_msg_read prelude_msg_forward prelude_msg_get prelude_msg_recycle prelude_msg_mark_end prelude_msg_dynamic_new prelude_msg_new prelude_msg_set prelude_msg_write prelude_msg_set_tag prelude_msg_set_priority prelude_msg_get_tag prelude_msg_get_priority prelude_msg_get_len prelude_msg_get_datalen prelude_msg_destroy prelude_msg_get_time prelude_msg_is_empty prelude_msg_is_fragment prelude_msg_ref prelude_msg_set_callback prelude_msg_set_data prelude_msg_get_message_data
prelude-option prelude_option_type_t prelude_option_input_type_t prelude_option_t prelude_option_context_t prelude_option_destroy_callback_t prelude_option_commit_callback_t prelude_option_get_callback_t prelude_option_set_callback_t prelude_option_argument_t prelude_option_priority_t prelude_option_warning_t prelude_option_set_priority prelude_option_print prelude_option_wide_send_msg prelude_option_destroy prelude_option_read prelude_option_add prelude_option_set_type prelude_option_get_type prelude_option_set_warnings prelude_option_get_shortname prelude_option_get_longname prelude_option_set_data prelude_option_get_data prelude_option_context_get_data prelude_option_context_set_data prelude_option_invoke_commit prelude_option_invoke_set prelude_option_invoke_get prelude_option_invoke_destroy prelude_option_new_root prelude_option_new prelude_option_set_longopt prelude_option_get_longopt prelude_option_set_description prelude_option_get_description prelude_option_set_has_arg prelude_option_get_has_arg prelude_option_set_value prelude_option_get_value prelude_option_set_help prelude_option_get_help prelude_option_set_input_validation_regex prelude_option_get_input_validation_regex prelude_option_set_input_type prelude_option_get_input_type prelude_option_get_optlist prelude_option_get_next prelude_option_has_optlist prelude_option_get_parent prelude_option_set_destroy_callback prelude_option_get_destroy_callback prelude_option_set_set_callback prelude_option_get_set_callback prelude_option_set_get_callback prelude_option_get_get_callback prelude_option_set_commit_callback prelude_option_get_commit_callback prelude_option_set_default_context prelude_option_new_context prelude_option_context_destroy prelude_option_search prelude_option_search_context
prelude-connection prelude_connection_permission_t prelude_connection_state_t prelude_connection_t prelude_connection_destroy prelude_connection_send prelude_connection_recv prelude_connection_recv_idmef prelude_connection_connect prelude_connection_forward prelude_connection_get_local_addr prelude_connection_get_local_port prelude_connection_get_peer_addr prelude_connection_get_peer_port prelude_connection_is_alive prelude_connection_get_fd prelude_connection_close prelude_connection_set_fd_ref prelude_connection_set_fd_nodup prelude_connection_set_state prelude_connection_get_state prelude_connection_set_data prelude_connection_get_data prelude_connection_get_default_socket_filename prelude_connection_get_permission prelude_connection_get_peer_analyzerid prelude_connection_set_peer_analyzerid prelude_connection_new prelude_connection_ref prelude_connection_new_msgbuf prelude_connection_permission_to_string prelude_connection_permission_new_from_string
prelude-string prelude_string_t prelude_string_new prelude_string_new_nodup prelude_string_new_ref prelude_string_new_dup prelude_string_new_dup_fast prelude_string_destroy prelude_string_destroy_internal prelude_string_new_nodup_fast prelude_string_new_ref_fast prelude_string_set_dup_fast prelude_string_set_dup prelude_string_set_nodup_fast prelude_string_set_nodup prelude_string_set_ref_fast prelude_string_set_ref prelude_string_copy_ref prelude_string_copy_dup prelude_string_ref prelude_string_clone prelude_string_get_len prelude_string_get_string_or_default prelude_string_get_string prelude_string_get_string_released prelude_string_is_empty prelude_string_clear prelude_string_cat prelude_string_ncat prelude_string_sprintf prelude_string_vprintf prelude_string_set_constant prelude_string_new_constant prelude_string_compare
idmef-message-print idmef_additional_data_print idmef_reference_print idmef_classification_print idmef_user_id_print idmef_user_print idmef_address_print idmef_process_print idmef_web_service_print idmef_snmp_service_print idmef_service_print idmef_node_print idmef_source_print idmef_file_access_print idmef_inode_print idmef_checksum_print idmef_file_print idmef_linkage_print idmef_target_print idmef_analyzer_print idmef_alertident_print idmef_impact_print idmef_action_print idmef_confidence_print idmef_assessment_print idmef_tool_alert_print idmef_correlation_alert_print idmef_overflow_alert_print idmef_alert_print idmef_heartbeat_print idmef_message_print
prelude-msgbuf prelude_msgbuf_t prelude_msgbuf_flags_t prelude_msgbuf_new prelude_msgbuf_destroy prelude_msgbuf_mark_end prelude_msgbuf_set prelude_msgbuf_get_msg prelude_msgbuf_set_callback prelude_msgbuf_set_data prelude_msgbuf_get_data prelude_msgbuf_set_flags prelude_msgbuf_get_flags
idmef-message-write idmef_additional_data_write idmef_reference_write idmef_classification_write idmef_user_id_write idmef_user_write idmef_address_write idmef_process_write idmef_web_service_write idmef_snmp_service_write idmef_service_write idmef_node_write idmef_source_write idmef_file_access_write idmef_inode_write idmef_checksum_write idmef_file_write idmef_linkage_write idmef_target_write idmef_analyzer_write idmef_alertident_write idmef_impact_write idmef_action_write idmef_confidence_write idmef_assessment_write idmef_tool_alert_write idmef_correlation_alert_write idmef_overflow_alert_write idmef_alert_write idmef_heartbeat_write idmef_message_write
prelude-ident prelude_ident_t prelude_ident_inc prelude_ident_generate prelude_ident_destroy prelude_ident_new
prelude-client prelude_client_exit_status_t prelude_client_flags_t prelude_client_t prelude_client_get_unique_ident prelude_client_set_connection_pool prelude_client_get_connection_pool prelude_client_start prelude_client_init prelude_client_new prelude_client_ref prelude_client_get_analyzer prelude_client_get_flags prelude_client_set_required_permission prelude_client_get_required_permission prelude_client_send_msg prelude_client_recv_msg prelude_client_set_heartbeat_cb prelude_client_send_idmef prelude_client_recv_idmef prelude_client_destroy prelude_client_set_flags prelude_client_set_config_filename prelude_client_get_config_filename prelude_client_is_setup_needed prelude_client_get_profile prelude_client_new_msgbuf prelude_client_handle_msg_default prelude_client_get_setup_error prelude_client_print_setup_error
prelude-client-profile prelude_gid_t prelude_uid_t prelude_client_profile_t prelude_client_profile_new prelude_client_profile_ref prelude_client_profile_destroy prelude_client_profile_get_config_filename prelude_client_profile_get_analyzerid_filename prelude_client_profile_get_tls_key_filename prelude_client_profile_get_tls_server_ca_cert_filename prelude_client_profile_get_tls_server_keycert_filename prelude_client_profile_get_tls_server_crl_filename prelude_client_profile_get_tls_client_keycert_filename prelude_client_profile_get_tls_client_trusted_cert_filename prelude_client_profile_get_backup_dirname prelude_client_profile_get_profile_dirname prelude_client_profile_get_default_config_dirname prelude_client_profile_set_prefix prelude_client_profile_get_prefix prelude_client_profile_set_uid prelude_client_profile_get_uid prelude_client_profile_set_gid prelude_client_profile_get_gid prelude_client_profile_set_name prelude_client_profile_get_name prelude_client_profile_get_analyzerid prelude_client_profile_set_analyzerid prelude_client_profile_get_credentials
prelude-plugin lt_preloaded_symbols PRELUDE_PLUGIN_API_VERSION prelude_plugin_entry_t prelude_plugin_instance_t PRELUDE_PLUGIN_GENERIC prelude_plugin_generic_t PRELUDE_PLUGIN_SET_PRELOADED_SYMBOLS PRELUDE_PLUGIN_OPTION_DECLARE_STRING_CB prelude_plugin_get_name prelude_plugin_set_name prelude_plugin_set_destroy_func prelude_plugin_entry_set_plugin prelude_plugin_set_activation_option prelude_plugin_instance_subscribe prelude_plugin_instance_unsubscribe prelude_plugin_new_instance prelude_plugin_search_by_name prelude_plugin_search_instance_by_name prelude_plugin_instance_set_data prelude_plugin_instance_get_data prelude_plugin_instance_set_plugin_data prelude_plugin_instance_get_plugin_data prelude_plugin_instance_get_name prelude_plugin_instance_get_plugin prelude_plugin_load_from_dir prelude_plugin_instance_add prelude_plugin_instance_del prelude_plugin_instance_compute_time prelude_plugin_instance_call_commit_func prelude_plugin_instance_has_commit_func prelude_plugin_set_preloaded_symbols prelude_plugin_get_next prelude_plugin_unload prelude_plugin_compute_stats prelude_plugin_run
prelude-hash prelude_hash_t prelude_hash_new prelude_hash_new2 prelude_hash_destroy prelude_hash_set prelude_hash_get prelude_hash_elem_destroy prelude_hash_iterate
prelude-failover prelude_failover_t prelude_failover_destroy prelude_failover_new prelude_failover_set_quota prelude_failover_save_msg prelude_failover_get_saved_msg prelude_failover_get_deleted_msg_count prelude_failover_get_available_msg_count prelude_failover_commit prelude_failover_disable_transaction prelude_failover_enable_transaction prelude_failover_rollback
prelude-connection-pool prelude_connection_pool_flags_t prelude_connection_pool_event_t prelude_connection_pool_t prelude_connection_pool_broadcast prelude_connection_pool_broadcast_async prelude_connection_pool_init prelude_connection_pool_new prelude_connection_pool_ref prelude_connection_pool_get_connection_list prelude_connection_pool_add_connection prelude_connection_pool_del_connection prelude_connection_pool_set_connection_dead prelude_connection_pool_set_connection_alive prelude_connection_pool_set_connection_string prelude_connection_pool_get_connection_string prelude_connection_pool_destroy prelude_connection_pool_get_flags prelude_connection_pool_set_flags prelude_connection_pool_set_required_permission prelude_connection_pool_set_data prelude_connection_pool_get_data prelude_connection_pool_recv prelude_connection_pool_check_event prelude_connection_pool_set_global_event_handler prelude_connection_pool_set_event_handler
prelude-async prelude_async_flags_t prelude_async_callback_t PRELUDE_ASYNC_OBJECT prelude_async_object_t prelude_async_init prelude_async_get_flags prelude_async_set_flags prelude_async_add prelude_async_del prelude_async_exit
idmef-message-read idmef_additional_data_read idmef_reference_read idmef_classification_read idmef_user_id_read idmef_user_read idmef_address_read idmef_process_read idmef_web_service_read idmef_snmp_service_read idmef_service_read idmef_node_read idmef_source_read idmef_file_access_read idmef_inode_read idmef_checksum_read idmef_file_read idmef_linkage_read idmef_target_read idmef_analyzer_read idmef_alertident_read idmef_impact_read idmef_action_read idmef_confidence_read idmef_assessment_read idmef_tool_alert_read idmef_correlation_alert_read idmef_overflow_alert_read idmef_alert_read idmef_heartbeat_read idmef_message_read
prelude-list PRELUDE_LIST prelude_list_t prelude_list_entry prelude_list_for_each prelude_list_for_each_safe prelude_list_for_each_reversed prelude_list_for_each_reversed_safe prelude_list_for_each_continue prelude_list_for_each_continue_safe prelude_list_get_next prelude_list_get_next_safe
prelude-inttypes PRELUDE_INT8_MIN PRELUDE_INT16_MIN PRELUDE_INT32_MIN PRELUDE_INT64_MIN PRELUDE_INT8_MAX PRELUDE_INT16_MAX PRELUDE_INT32_MAX PRELUDE_INT64_MAX PRELUDE_UINT8_MAX PRELUDE_UINT16_MAX PRELUDE_UINT32_MAX PRELUDE_UINT64_MAX PRELUDE_INTMAX_MIN PRELUDE_INTMAX_MAX PRELUDE_UINTMAX_MAX PRELUDE_PRId64 PRELUDE_PRIi64 PRELUDE_PRIo64 PRELUDE_PRIx64 PRELUDE_PRIX64 PRELUDE_PRIu64 PRELUDE_PRId32 PRELUDE_PRIi32 PRELUDE_PRIo32 PRELUDE_PRIx32 PRELUDE_PRIX32 PRELUDE_PRIu32 PRELUDE_PRId16 PRELUDE_PRIi16 PRELUDE_PRIo16 PRELUDE_PRIx16 PRELUDE_PRIX16 PRELUDE_PRIu16 PRELUDE_PRId8 PRELUDE_PRIi8 PRELUDE_PRIo8 PRELUDE_PRIx8 PRELUDE_PRIX8 PRELUDE_PRIu8 PRELUDE_SCNd64 PRELUDE_SCNi64 PRELUDE_SCNo64 PRELUDE_SCNx64 PRELUDE_SCNu64 prelude_bool_t int8_t uint8_t int16_t uint16_t int32_t uint32_t int64_t uint64_t
prelude LIBPRELUDE_VERSION prelude_init prelude_deinit prelude_check_version prelude_thread_init prelude_fork_child prelude_fork_parent prelude_fork_prepare
prelude-option-wide PRELUDE_OPTION_REPLY_TYPE_SET PRELUDE_OPTION_REPLY_TYPE_GET PRELUDE_OPTION_REPLY_TYPE_LIST PRELUDE_OPTION_REPLY_TYPE_ERROR prelude_option_push_request prelude_option_new_request prelude_option_process_request prelude_option_recv_reply
idmef-criteria idmef_criterion_operator_t idmef_criteria_t idmef_criterion_t idmef_criterion_operator_to_string idmef_criterion_new idmef_criterion_destroy idmef_criterion_clone idmef_criterion_print idmef_criterion_to_string idmef_criterion_get_path idmef_criterion_get_value idmef_criterion_get_operator idmef_criterion_match idmef_criteria_new idmef_criteria_ref idmef_criteria_destroy idmef_criteria_clone idmef_criteria_print idmef_criteria_to_string idmef_criteria_is_criterion idmef_criteria_get_criterion idmef_criteria_set_criterion idmef_criteria_or_criteria idmef_criteria_and_criteria idmef_criteria_match idmef_criteria_get_or idmef_criteria_get_and idmef_criteria_new_from_string idmef_criteria_get_negation idmef_criteria_set_negation
idmef-data idmef_data_type_t data idmef_data_new idmef_data_ref idmef_data_new_char idmef_data_new_byte idmef_data_new_uint32 idmef_data_new_uint64 idmef_data_new_float idmef_data_set_char idmef_data_set_byte idmef_data_set_uint32 idmef_data_set_uint64 idmef_data_set_float idmef_data_set_ptr_dup_fast idmef_data_set_ptr_ref_fast idmef_data_set_ptr_nodup_fast idmef_data_new_ptr_dup_fast idmef_data_new_ptr_ref_fast idmef_data_new_ptr_nodup_fast idmef_data_set_char_string_dup_fast idmef_data_new_char_string_dup_fast idmef_data_new_char_string_ref_fast idmef_data_new_char_string_nodup_fast idmef_data_set_char_string_ref_fast idmef_data_set_char_string_nodup_fast idmef_data_new_char_string_ref idmef_data_new_char_string_dup idmef_data_new_char_string_nodup idmef_data_set_char_string_ref idmef_data_set_char_string_dup idmef_data_set_char_string_nodup idmef_data_set_char_string_constant idmef_data_new_byte_string_ref idmef_data_new_byte_string_dup idmef_data_new_byte_string_nodup idmef_data_set_byte_string_ref idmef_data_set_byte_string_dup idmef_data_set_byte_string_nodup idmef_data_destroy idmef_data_copy_ref idmef_data_copy_dup idmef_data_clone idmef_data_get_type idmef_data_get_len idmef_data_get_data idmef_data_get_char idmef_data_get_byte idmef_data_get_uint32 idmef_data_get_uint64 idmef_data_get_float idmef_data_get_char_string idmef_data_get_byte_string idmef_data_is_empty idmef_data_to_string idmef_data_destroy_internal
idmef-criterion-value idmef_criterion_value_t idmef_criterion_value_type_t idmef_criterion_value_new idmef_criterion_value_new_regex idmef_criterion_value_new_value idmef_criterion_value_new_from_string idmef_criterion_value_new_broken_down_time idmef_criterion_value_clone idmef_criterion_value_destroy idmef_criterion_value_print idmef_criterion_value_to_string idmef_criterion_value_match idmef_criterion_value_get_value idmef_criterion_value_get_regex idmef_criterion_value_get_broken_down_time idmef_criterion_value_get_type
idmef-path idmef_path_t idmef_path_get idmef_path_set idmef_path_new idmef_path_new_v idmef_path_new_fast idmef_path_get_class idmef_path_get_value_type idmef_path_set_index idmef_path_undefine_index idmef_path_get_index idmef_path_make_child idmef_path_make_parent idmef_path_destroy idmef_path_ncompare idmef_path_compare idmef_path_clone idmef_path_ref idmef_path_get_name idmef_path_is_ambiguous idmef_path_has_lists idmef_path_is_list idmef_path_get_depth idmef_path_check_operator idmef_path_get_applicable_operators
idmef-additional-data idmef_additional_data_new_real idmef_additional_data_new_byte idmef_additional_data_new_integer idmef_additional_data_new_boolean idmef_additional_data_new_character idmef_additional_data_set_real idmef_additional_data_set_byte idmef_additional_data_set_integer idmef_additional_data_set_boolean idmef_additional_data_set_character idmef_additional_data_new_byte_string_ref idmef_additional_data_set_byte_string_ref idmef_additional_data_new_byte_string_dup idmef_additional_data_set_byte_string_dup idmef_additional_data_new_byte_string_nodup idmef_additional_data_set_byte_string_nodup idmef_additional_data_copy_ref idmef_additional_data_copy_dup idmef_additional_data_get_real idmef_additional_data_get_integer idmef_additional_data_get_boolean idmef_additional_data_get_character idmef_additional_data_get_byte idmef_additional_data_get_len idmef_additional_data_is_empty idmef_additional_data_data_to_string
idmef
idmef-time idmef_time_t idmef_time_ref idmef_time_new idmef_time_new_from_time idmef_time_new_from_gettimeofday idmef_time_new_from_string idmef_time_new_from_ntpstamp idmef_time_new_from_timeval idmef_time_set_from_time idmef_time_set_from_gettimeofday idmef_time_set_from_string idmef_time_set_from_ntpstamp idmef_time_set_from_timeval idmef_time_destroy_internal idmef_time_destroy idmef_time_clone idmef_time_copy idmef_time_set_sec idmef_time_set_usec idmef_time_set_gmt_offset idmef_time_get_sec idmef_time_get_usec idmef_time_get_gmt_offset idmef_time_to_string idmef_time_to_ntpstamp
prelude-timer prelude_timer_t prelude_timer_get_expire prelude_timer_get_data prelude_timer_get_callback prelude_timer_set_expire prelude_timer_set_data prelude_timer_set_callback prelude_timer_init prelude_timer_init_list prelude_timer_reset prelude_timer_destroy prelude_timer_wake_up prelude_timer_flush prelude_timer_lock_critical_region prelude_timer_unlock_critical_region
idmef-value idmef_value_t idmef_value_new_int8 idmef_value_new_uint8 idmef_value_new_int16 idmef_value_new_uint16 idmef_value_new_int32 idmef_value_new_uint32 idmef_value_new_int64 idmef_value_new_uint64 idmef_value_new_float idmef_value_new_double idmef_value_new_string idmef_value_new_time idmef_value_new_data idmef_value_new_class idmef_value_new_list idmef_value_new_enum idmef_value_new_enum_from_string idmef_value_new_enum_from_numeric idmef_value_new idmef_value_new_from_path idmef_value_new_from_string idmef_value_set_class idmef_value_set_data idmef_value_set_double idmef_value_set_enum idmef_value_set_enum_from_numeric idmef_value_set_enum_from_string idmef_value_set_float idmef_value_set_int16 idmef_value_set_int32 idmef_value_set_int64 idmef_value_set_int8 idmef_value_set_string idmef_value_set_time idmef_value_set_uint16 idmef_value_set_uint32 idmef_value_set_uint64 idmef_value_set_uint8 idmef_value_get_int8 idmef_value_get_uint8 idmef_value_get_int16 idmef_value_get_uint16 idmef_value_get_int32 idmef_value_get_uint32 idmef_value_get_int64 idmef_value_get_uint64 idmef_value_get_enum idmef_value_get_float idmef_value_get_double idmef_value_get_time idmef_value_get_data idmef_value_get_string idmef_value_list_add idmef_value_is_list idmef_value_list_is_empty idmef_value_have_own_data idmef_value_dont_have_own_data idmef_value_get_type idmef_value_get_class idmef_value_get_object idmef_value_iterate idmef_value_iterate_reversed idmef_value_get_nth idmef_value_get_count idmef_value_clone idmef_value_ref idmef_value_print idmef_value_to_string idmef_value_get idmef_value_match idmef_value_check_operator idmef_value_get_applicable_operators idmef_value_destroy
libprelude-5.2.0/docs/api/PaxHeaders.14770/libprelude-overrides.txt0000644000000000000000000000011013726163410023234 xustar000000000000000024 mtime=1599661832.521 24 atime=1599661948.962 24 ctime=1599662000.612 libprelude-5.2.0/docs/api/libprelude-overrides.txt0000644000000000000000000000000013726163410022225 0ustar00rootroot00000000000000libprelude-5.2.0/docs/api/PaxHeaders.14770/html0000644000000000000000000000010713726163660017250 xustar000000000000000024 mtime=1599662000.855 23 atime=1599662006.65 24 ctime=1599662000.855 libprelude-5.2.0/docs/api/html/0000755000000000000000000000000013726163660016322 5ustar00rootroot00000000000000libprelude-5.2.0/docs/api/html/PaxHeaders.14770/home.png0000644000000000000000000000011013726163660020755 xustar000000000000000024 mtime=1599662000.628 24 atime=1599662000.628 24 ctime=1599662000.628 libprelude-5.2.0/docs/api/html/home.png0000644000000000000000000000040013726163660017752 0ustar00rootroot00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÝ¡ &IDAT8ËÝÒ½ AÅñßž¦f`n v`6`/¶`Y€š˜Ü¡`f&k$,Ëá}˜ˆ ÌüßÀ0ü§bŒ+Ô¸aQW~bæ ËOà e˜{‡y N°Á£üö[LáØÌ}.pÇiÀ­÷¨BzüžÆmm Šoæ·.I]7Ì^[úÃô;%:å†ÁVIEND®B`‚libprelude-5.2.0/docs/api/html/PaxHeaders.14770/left-insensitive.png0000644000000000000000000000011013726163660023315 xustar000000000000000024 mtime=1599662000.628 24 atime=1599662000.628 24 ctime=1599662000.628 libprelude-5.2.0/docs/api/html/left-insensitive.png0000644000000000000000000000061313726163660022320 0ustar00rootroot00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÝÆ«q‡IDAT8ËÍ’­NQ…¿éö†…@¡p üdsÛÀÖ`*š4Á@ò„W@ A!ÈÔ†@6Ü^ƒ 5hxèIH R`sQpäÌ™339þBÊó|Ês¤ªKEQTÛíöK°@·ÛÎià¦^¯Ï~îWʆ½÷‹ÀÕûðå`0˜åTJ6·Tõ˜‘cYn6›AÞû Æ€½~¿ß±Ö>}Ç­Žœs;ªº ¨ˆlYkwËÞürˆ¼†ºó£ Þû5U= °/"›ÖÚç  ¬µ‡"ÒuU=ɲlü×ArÎÕDä˜zÃáp5I’ûà4^E+ÀP3Æœçàq_«êp Ì¥iñ¯ðUY¥‚p=#IEND®B`‚libprelude-5.2.0/docs/api/html/PaxHeaders.14770/left.png0000644000000000000000000000011013726163660020757 xustar000000000000000024 mtime=1599662000.629 24 atime=1599662000.629 24 ctime=1599662000.629 libprelude-5.2.0/docs/api/html/left.png0000644000000000000000000000040613726163660017762 0ustar00rootroot00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÝ,`m;½“IDAT8ËÕÒ¯Áa‡ñ?ÁDAPY‘\‚$‹º[p¢+ÐÜIÐIªMlfü('Úì}MpâÙyží{Îá_ª…ž¨¤ÂÞ¥Â}œ^£‘q xZ <Æ=àYjî) <0ù4\~Ó+Púöl#Ü"ÂÕÉ—,QÏ‘ôp ÉÍIÇlswÒÆ>÷•[/]_i0‘3ÃIEND®B`‚libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude.devhelp20000644000000000000000000000011013726163660023101 xustar000000000000000024 mtime=1599662000.629 24 atime=1599662000.629 24 ctime=1599662000.629 libprelude-5.2.0/docs/api/html/libprelude.devhelp20000644000000000000000000073531113726163660022116 0ustar00rootroot00000000000000 libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-idmef-value.html0000644000000000000000000000011013726163660024530 xustar000000000000000024 mtime=1599662000.824 24 atime=1599662000.823 24 ctime=1599662000.824 libprelude-5.2.0/docs/api/html/libprelude-idmef-value.html0000644000000000000000000020703613726163660023543 0ustar00rootroot00000000000000 idmef-value: libprelude Reference Manual
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-async.html0000644000000000000000000000011013726163660025105 xustar000000000000000024 mtime=1599662000.825 24 atime=1599662000.824 24 ctime=1599662000.825 libprelude-5.2.0/docs/api/html/libprelude-prelude-async.html0000644000000000000000000002742713726163660024124 0ustar00rootroot00000000000000 prelude-async: libprelude Reference Manual

prelude-async

prelude-async

Description

Functions

prelude_async_callback_t ()

void
(*prelude_async_callback_t) (void *object,
                             void *data);

prelude_async_init ()

int
prelude_async_init (void);

Initialize the asynchronous subsystem.

Returns

0 on success, -1 if an error occured.


prelude_async_get_flags ()

prelude_async_flags_t
prelude_async_get_flags (void);

Retrieves flags from the asynchronous subsystem

Returns

asynchronous flags


prelude_async_set_flags ()

void
prelude_async_set_flags (prelude_async_flags_t flags);

Sets flags to the asynchronous subsystem.

Parameters

flags

flags you want to set

 

prelude_async_add ()

void
prelude_async_add (prelude_async_object_t *obj);

Adds obj to the asynchronous processing list.

Parameters

obj

Pointer to a prelude_async_t object.

 

prelude_async_del ()

void
prelude_async_del (prelude_async_object_t *obj);

Deletes obj from the asynchronous processing list.

Parameters

obj

Pointer to a prelude_async_t object.

 

prelude_async_exit ()

void
prelude_async_exit (void);

Types and Values

enum prelude_async_flags_t

This provides asynchronous timer. When enabled, the heartbeat function (and user specified callback, if any) will be called automatically, from an asynchronous thread.

If you use this flags, you won't need to call prelude_wake_up_timer() anymore.

Members

PRELUDE_ASYNC_FLAGS_TIMER

Enable asynchronous timer.

 

PRELUDE_ASYNC_OBJECT

#define             PRELUDE_ASYNC_OBJECT

prelude_async_object_t

typedef struct {
        PRELUDE_ASYNC_OBJECT;
} prelude_async_object_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-client.html0000644000000000000000000000011013726163660025246 xustar000000000000000024 mtime=1599662000.829 24 atime=1599662000.828 24 ctime=1599662000.829 libprelude-5.2.0/docs/api/html/libprelude-prelude-client.html0000644000000000000000000015675013726163660024267 0ustar00rootroot00000000000000 prelude-client: libprelude Reference Manual

prelude-client

prelude-client

Description

Functions

prelude_client_get_unique_ident ()

prelude_ident_t *
prelude_client_get_unique_ident (prelude_client_t *client);

prelude_client_set_connection_pool ()

void
prelude_client_set_connection_pool (prelude_client_t *client,
                                    prelude_connection_pool_t *pool);

Use this function in order to set your own list of peer that client should send message too. This might be usefull in case you don't want this to be automated by prelude_client_init().

Parameters

client

pointer to a prelude_client_t object.

 

pool

pointer to a prelude_client_pool_t object.

 

prelude_client_get_connection_pool ()

prelude_connection_pool_t *
prelude_client_get_connection_pool (prelude_client_t *client);

Return a pointer to the prelude_connection_pool_t object used by client to send messages.

Parameters

client

pointer to a prelude_client_t object.

 

Returns

a pointer to a prelude_connection_pool_t object.


prelude_client_start ()

int
prelude_client_start (prelude_client_t *client);

This function start the client object, triggering a connection from the client to it's server if any were specified, and sending the initial client heartbeat.

If client was not initialized, then prelude_client_init() will be called and thus this function might fail if the client was not registered.

Parameters

client

Pointer to a client object to initialize.

 

Returns

0 on success, -1 if an error occured.


prelude_client_init ()

int
prelude_client_init (prelude_client_t *client);

This function initialize the client object, meaning reading generic options from the prelude_client_new() provided configuration file and the array of arguments specified through prelude_init().

Calling this function is optional and should be done only if you need more granularity between prelude_client_new() and prelude_client_start():

prelude_client_start() will call prelude_client_init() for you if needed.

Parameters

client

Pointer to a prelude_client_t object to initialize.

 

Returns

0 on success, -1 if an error occured.


prelude_client_new ()

int
prelude_client_new (prelude_client_t **client,
                    const char *profile);

This function initialize the client object.

Parameters

client

Pointer to a client object to initialize.

 

profile

Default profile name for this analyzer.

 

Returns

0 on success or a negative value if an error occur.


prelude_client_ref ()

prelude_client_t *
prelude_client_ref (prelude_client_t *client);

prelude_client_get_analyzer ()

idmef_analyzer_t *
prelude_client_get_analyzer (prelude_client_t *client);

Provide access to the idmef_analyzer_t object associated to client . This analyzer object is sent along with every alerts and heartbeats emited by this client. The analyzer object is created by prelude_client_init().

Parameters

client

Pointer to a prelude_client_t object.

 

Returns

the idmef_analyzer_t object associated with client .


prelude_client_get_flags ()

prelude_client_flags_t
prelude_client_get_flags (prelude_client_t *client);

Get flags set through prelude_client_set_flags().

Parameters

client

Pointer on a prelude_client_t object.

 

Returns

an or'ed list of prelude_client_flags_t.


prelude_client_set_required_permission ()

void
prelude_client_set_required_permission
                               (prelude_client_t *client,
                                prelude_connection_permission_t permission);

Set the required permission for client . The default is PRELUDE_CONNECTION_PERMISSION_IDMEF_WRITE | PRELUDE_CONNECTION_PERMISSION_ADMIN_READ. Value set through this function should be set before prelude_client_start().

If the client certificate for connecting to one of the specified manager doesn't have theses permission the client will reject the certificate and ask for registration.

Parameters

client

Pointer on a prelude_client_t object.

 

permission

Required permission for client .

 

prelude_client_get_required_permission ()

prelude_connection_permission_t
prelude_client_get_required_permission
                               (prelude_client_t *client);

Parameters

client

Pointer on a prelude_client_t object.

 

Returns

client permission as set with prelude_client_set_required_permission()


prelude_client_send_msg ()

void
prelude_client_send_msg (prelude_client_t *client,
                         prelude_msg_t *msg);

Send msg to the peers client is communicating with.

The message will be sent asynchronously if PRELUDE_CLIENT_FLAGS_ASYNC_SEND was set using prelude_client_set_flags() in which case the caller should not call prelude_msg_destroy() on msg .

Parameters

client

Pointer to a prelude_client_t object.

 

msg

pointer to a message that client should send.

 

prelude_client_recv_msg ()

int
prelude_client_recv_msg (prelude_client_t *client,
                         int timeout,
                         prelude_msg_t **msg);

Wait timeout second for a message on client connection pool.

A timeout of -1, mean prelude_client_recv_msg() will block until a message is received. A timeout of 0 mean that it will return immediatly.

Parameters

client

Pointer to a prelude_client_t object.

 

timeout

Number of millisecond to wait for a message.

 

msg

Pointer where the received prelude_msg_t should be stored.

 

Returns

0 on timeout, a negative value on error, 1 on success.


prelude_client_set_heartbeat_cb ()

void
prelude_client_set_heartbeat_cb (prelude_client_t *client,
                                 void (*cb) (prelude_client_t *client, idmef_message_t *hb));

Use if you want to override the default function used to automatically send heartbeat to client peers.

Parameters

client

pointer to a prelude_client_t object.

 

cb

pointer to a function handling heartbeat sending.

 

prelude_client_send_idmef ()

void
prelude_client_send_idmef (prelude_client_t *client,
                           idmef_message_t *msg);

Send msg to the peers client is communicating with.

The message will be sent asynchronously if PRELUDE_CLIENT_FLAGS_ASYNC_SEND was set using prelude_client_set_flags().

Parameters

client

Pointer to a prelude_client_t object.

 

msg

pointer to an IDMEF message to be sent to client peers.

 

prelude_client_recv_idmef ()

int
prelude_client_recv_idmef (prelude_client_t *client,
                           int timeout,
                           idmef_message_t **idmef);

Wait timeout second for a message on client connection pool.

A timeout of -1, mean prelude_client_recv_idmef() will block until a message is received. A timeout of 0 mean that it will return immediatly.

Parameters

client

Pointer to a prelude_client_t object.

 

timeout

Number of second to wait for a message.

 

idmef

Pointer where the received idmef_message_t should be stored.

 

Returns

0 on timeout, a negative value on error, 1 on success.


prelude_client_destroy ()

void
prelude_client_destroy (prelude_client_t *client,
                        prelude_client_exit_status_t status);

Destroy client , and send an heartbeat containing the 'exiting' status in case status is PRELUDE_CLIENT_EXIT_STATUS_SUCCESS.

This is useful for analyzer expected to be running periodically, and that shouldn't be treated as behaving anormaly in case no heartbeat is sent.

Please note that your are not supposed to run this function from a signal handler.

Parameters

client

Pointer on a client object.

 

status

Exit status for the client.

 

prelude_client_set_flags ()

int
prelude_client_set_flags (prelude_client_t *client,
                          prelude_client_flags_t flags);

Set specific flags in the client structure. This function can be called anytime after the creation of the client object.

When settings asynchronous flags such as PRELUDE_CLIENT_FLAGS_ASYNC_SEND or PRELUDE_CLIENT_FLAGS_ASYNC_TIMER, be carefull to call prelude_client_set_flags() in the same process you want to use the asynchronous API from. Threads aren't copied accross fork().

Parameters

client

Pointer on a prelude_client_t object.

 

flags

Or'd list of flags used by client .

 

Returns

0 if setting flags succeed, -1 otherwise.


prelude_client_set_config_filename ()

int
prelude_client_set_config_filename (prelude_client_t *client,
                                    const char *filename);

The default for a client is to use a template configuration file (idmef-client.conf). By using this function you might override the default and provide your own configuration file to use for client . The format of the configuration file need to be compatible with the Prelude format.

Parameters

client

pointer on a prelude_client_t object.

 

filename

Configuration file to use for this client.

 

Returns

0 on success, -1 if an error occured.


prelude_client_get_config_filename ()

const char *
prelude_client_get_config_filename (prelude_client_t *client);

Return the filename where client configuration is stored. This filename is originally set by the prelude_client_new() function.

Parameters

client

pointer on a prelude_client_t object.

 

Returns

a pointer to client configuration filename.


prelude_client_is_setup_needed ()

prelude_bool_t
prelude_client_is_setup_needed (int error);

prelude_client_is_setup_needed is deprecated and should not be used in newly-written code.

use standard error API.

This function should be called as a result of an error by the prelude_client_start() function, to know if the analyzer need to be registered.

Parameters

error

Error returned by prelude_client_start().

 

Returns

TRUE if setup is needed, FALSE otherwise.


prelude_client_get_profile ()

prelude_client_profile_t *
prelude_client_get_profile (prelude_client_t *client);

prelude_client_new_msgbuf ()

int
prelude_client_new_msgbuf (prelude_client_t *client,
                           prelude_msgbuf_t **msgbuf);

prelude_client_handle_msg_default ()

int
prelude_client_handle_msg_default (prelude_client_t *client,
                                   prelude_msg_t *msg,
                                   prelude_msgbuf_t *msgbuf);

prelude_client_get_setup_error ()

const char *
prelude_client_get_setup_error (prelude_client_t *client);

prelude_client_get_setup_error is deprecated and should not be used in newly-written code.


prelude_client_print_setup_error ()

void
prelude_client_print_setup_error (prelude_client_t *client);

Types and Values

enum prelude_client_exit_status_t

Members

PRELUDE_CLIENT_EXIT_STATUS_SUCCESS

   

PRELUDE_CLIENT_EXIT_STATUS_FAILURE

   

enum prelude_client_flags_t

Members

PRELUDE_CLIENT_FLAGS_ASYNC_SEND

   

PRELUDE_CLIENT_FLAGS_ASYNC_TIMER

   

PRELUDE_CLIENT_FLAGS_HEARTBEAT

   

PRELUDE_CLIENT_FLAGS_CONNECT

   

PRELUDE_CLIENT_FLAGS_AUTOCONFIG

   

prelude_client_t

typedef struct prelude_client prelude_client_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-connection.html0000644000000000000000000000011013726163660026127 xustar000000000000000024 mtime=1599662000.833 24 atime=1599662000.832 24 ctime=1599662000.833 libprelude-5.2.0/docs/api/html/libprelude-prelude-connection.html0000644000000000000000000011122613726163660025135 0ustar00rootroot00000000000000 prelude-connection: libprelude Reference Manual

prelude-connection

prelude-connection

Description

Functions

prelude_connection_destroy ()

void
prelude_connection_destroy (prelude_connection_t *conn);

Destroy the connection referenced by conn .

In case the connection is still alive, it is closed in a blocking manner. Use prelude_connection_close() if you want to close the connection in a non blocking manner prior prelude_connection_destroy().

Parameters

conn

Pointer to a prelude_connection_t object.

 

prelude_connection_send ()

int
prelude_connection_send (prelude_connection_t *cnx,
                         prelude_msg_t *msg);

prelude_connection_recv ()

int
prelude_connection_recv (prelude_connection_t *cnx,
                         prelude_msg_t **outmsg);

prelude_connection_recv_idmef ()

int
prelude_connection_recv_idmef (prelude_connection_t *con,
                               idmef_message_t **idmef);

prelude_connection_connect ()

int
prelude_connection_connect (prelude_connection_t *cnx,
                            prelude_client_profile_t *profile,
                            prelude_connection_permission_t permission);

prelude_connection_forward ()

ssize_t
prelude_connection_forward (prelude_connection_t *cnx,
                            prelude_io_t *src,
                            size_t count);

prelude_connection_get_local_addr ()

const char *
prelude_connection_get_local_addr (prelude_connection_t *cnx);

Parameters

cnx

Pointer to a prelude_connection_t object.

 

Returns

the local address used to connect.


prelude_connection_get_local_port ()

unsigned int
prelude_connection_get_local_port (prelude_connection_t *cnx);

Parameters

cnx

Pointer to a prelude_connection_t object.

 

Returns

the local port used to connect.


prelude_connection_get_peer_addr ()

const char *
prelude_connection_get_peer_addr (prelude_connection_t *cnx);

prelude_connection_get_peer_port ()

unsigned int
prelude_connection_get_peer_port (prelude_connection_t *cnx);

prelude_connection_is_alive ()

prelude_bool_t
prelude_connection_is_alive (prelude_connection_t *cnx);

Parameters

cnx

Pointer to a prelude_connection_t object.

 

Returns

0 if the connection associated with cnx is alive, -1 otherwise.


prelude_connection_get_fd ()

prelude_io_t *
prelude_connection_get_fd (prelude_connection_t *cnx);

Parameters

cnx

Pointer to a prelude_connection_t object.

 

Returns

A pointer to the prelude_io_t object used for communicating with the peer.


prelude_connection_close ()

int
prelude_connection_close (prelude_connection_t *cnx);

prelude_connection_set_fd_ref ()

void
prelude_connection_set_fd_ref (prelude_connection_t *cnx,
                               prelude_io_t *fd);

prelude_connection_set_fd_nodup ()

void
prelude_connection_set_fd_nodup (prelude_connection_t *cnx,
                                 prelude_io_t *fd);

prelude_connection_set_state ()

void
prelude_connection_set_state (prelude_connection_t *cnx,
                              prelude_connection_state_t state);

prelude_connection_get_state ()

prelude_connection_state_t
prelude_connection_get_state (prelude_connection_t *cnx);

prelude_connection_set_data ()

void
prelude_connection_set_data (prelude_connection_t *cnx,
                             void *data);

prelude_connection_get_data ()

void *
prelude_connection_get_data (prelude_connection_t *cnx);

prelude_connection_get_default_socket_filename ()

const char *
prelude_connection_get_default_socket_filename
                               (void);

prelude_connection_get_permission ()

prelude_connection_permission_t
prelude_connection_get_permission (prelude_connection_t *conn);

prelude_connection_get_peer_analyzerid ()

uint64_t
prelude_connection_get_peer_analyzerid
                               (prelude_connection_t *cnx);

prelude_connection_set_peer_analyzerid ()

void
prelude_connection_set_peer_analyzerid
                               (prelude_connection_t *cnx,
                                uint64_t analyzerid);

prelude_connection_new ()

int
prelude_connection_new (prelude_connection_t **ret,
                        const char *addr);

prelude_connection_ref ()

prelude_connection_t *
prelude_connection_ref (prelude_connection_t *conn);

Increases conn reference count.

prelude_connection_destroy() will decrease the refcount until it reaches 0, at which point conn will be destroyed.

Parameters

conn

Pointer to a prelude_connection_t object to reference.

 

Returns

conn .


prelude_connection_new_msgbuf ()

int
prelude_connection_new_msgbuf (prelude_connection_t *connection,
                               prelude_msgbuf_t **msgbuf);

prelude_connection_permission_to_string ()

int
prelude_connection_permission_to_string
                               (prelude_connection_permission_t perm,
                                prelude_string_t *out);

prelude_connection_permission_new_from_string ()

int
prelude_connection_permission_new_from_string
                               (prelude_connection_permission_t *out,
                                const char *buf);

Types and Values

enum prelude_connection_permission_t

Members

PRELUDE_CONNECTION_PERMISSION_IDMEF_READ

   

PRELUDE_CONNECTION_PERMISSION_ADMIN_READ

   

PRELUDE_CONNECTION_PERMISSION_IDMEF_WRITE

   

PRELUDE_CONNECTION_PERMISSION_ADMIN_WRITE

   

enum prelude_connection_state_t

Members

PRELUDE_CONNECTION_STATE_ESTABLISHED

   

prelude_connection_t

typedef struct prelude_connection prelude_connection_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-error.html0000644000000000000000000000011013726163660025121 xustar000000000000000024 mtime=1599662000.833 24 atime=1599662000.833 24 ctime=1599662000.833 libprelude-5.2.0/docs/api/html/libprelude-prelude-error.html0000644000000000000000000000456713726163660024140 0ustar00rootroot00000000000000 prelude-error: libprelude Reference Manual

prelude-error

prelude-error

Description

Functions

Types and Values

libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-failover.html0000644000000000000000000000011013726163660025577 xustar000000000000000024 mtime=1599662000.834 24 atime=1599662000.834 24 ctime=1599662000.834 libprelude-5.2.0/docs/api/html/libprelude-prelude-failover.html0000644000000000000000000003072113726163660024605 0ustar00rootroot00000000000000 prelude-failover: libprelude Reference Manual

prelude-failover

prelude-failover

Types and Values

Description

Functions

prelude_failover_destroy ()

void
prelude_failover_destroy (prelude_failover_t *failover);

prelude_failover_new ()

int
prelude_failover_new (prelude_failover_t **ret,
                      const char *dirname);

prelude_failover_set_quota ()

void
prelude_failover_set_quota (prelude_failover_t *failover,
                            size_t limit);

prelude_failover_save_msg ()

int
prelude_failover_save_msg (prelude_failover_t *failover,
                           prelude_msg_t *msg);

prelude_failover_get_saved_msg ()

ssize_t
prelude_failover_get_saved_msg (prelude_failover_t *failover,
                                prelude_msg_t **out);

prelude_failover_get_deleted_msg_count ()

unsigned long
prelude_failover_get_deleted_msg_count
                               (prelude_failover_t *failover);

prelude_failover_get_available_msg_count ()

unsigned long
prelude_failover_get_available_msg_count
                               (prelude_failover_t *failover);

prelude_failover_commit ()

int
prelude_failover_commit (prelude_failover_t *failover,
                         prelude_msg_t *msg);

prelude_failover_disable_transaction ()

void
prelude_failover_disable_transaction (prelude_failover_t *failover);

prelude_failover_enable_transaction ()

void
prelude_failover_enable_transaction (prelude_failover_t *failover);

prelude_failover_rollback ()

int
prelude_failover_rollback (prelude_failover_t *failover,
                           prelude_msg_t *msg);

Types and Values

prelude_failover_t

typedef struct prelude_failover prelude_failover_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-hash.html0000644000000000000000000000011013726163660024713 xustar000000000000000024 mtime=1599662000.835 24 atime=1599662000.835 24 ctime=1599662000.835 libprelude-5.2.0/docs/api/html/libprelude-prelude-hash.html0000644000000000000000000002252113726163660023720 0ustar00rootroot00000000000000 prelude-hash: libprelude Reference Manual

prelude-hash

prelude-hash

Functions

Types and Values

typedef prelude_hash_t

Description

Functions

prelude_hash_new ()

int
prelude_hash_new (prelude_hash_t **hash,
                  unsigned int (*hash_func) (const void *),
                  int (*key_cmp_func) (const void *, const void *),
                  void (*key_destroy_func) (void *),
                  void (*value_destroy_func) (void *));

prelude_hash_new2 ()

int
prelude_hash_new2 (prelude_hash_t **hash,
                   size_t size,
                   unsigned int (*hash_func) (const void *),
                   int (*key_cmp_func) (const void *, const void *),
                   void (*key_destroy_func) (void *),
                   void (*value_destroy_func) (void *));

prelude_hash_destroy ()

void
prelude_hash_destroy (prelude_hash_t *hash);

prelude_hash_set ()

int
prelude_hash_set (prelude_hash_t *hash,
                  void *key,
                  void *value);

prelude_hash_get ()

void *
prelude_hash_get (prelude_hash_t *hash,
                  const void *key);

prelude_hash_elem_destroy ()

int
prelude_hash_elem_destroy (prelude_hash_t *hash,
                           const void *key);

prelude_hash_iterate ()

void
prelude_hash_iterate (prelude_hash_t *hash,
                      void (*cb) (void *data));

Types and Values

prelude_hash_t

typedef struct prelude_hash prelude_hash_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-ident.html0000644000000000000000000000011013726163660025073 xustar000000000000000024 mtime=1599662000.836 24 atime=1599662000.835 24 ctime=1599662000.836 libprelude-5.2.0/docs/api/html/libprelude-prelude-ident.html0000644000000000000000000002347613726163660024112 0ustar00rootroot00000000000000 prelude-ident: libprelude Reference Manual

prelude-ident

prelude-ident

Types and Values

typedef prelude_ident_t

Description

Functions

prelude_ident_inc ()

uint64_t
prelude_ident_inc (prelude_ident_t *ident);

Deprecated.

Parameters

ident

Pointer to a prelude_ident_t object.

 

Returns

A new ident.


prelude_ident_generate ()

int
prelude_ident_generate (prelude_ident_t *ident,
                        prelude_string_t *out);

Generate an UUID and store it in out .

Parameters

ident

Pointer to a prelude_ident_t object.

 

out

prelude_string_t where the ident will be generated.

 

Returns

A negative value if an error occur.


prelude_ident_destroy ()

void
prelude_ident_destroy (prelude_ident_t *ident);

Destroy a prelude_ident_t object.

Parameters

ident

Pointer to a prelude_ident_t object.

 

prelude_ident_new ()

int
prelude_ident_new (prelude_ident_t **ret);

Create a new prelude_ident_t object with an unique value.

Parameters

ret

Pointer where to store the created object.

 

Returns

0 on success, or a negative value if an error occured.

Types and Values

prelude_ident_t

typedef struct prelude_ident prelude_ident_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-linked-object.html0000644000000000000000000000010513726163660026506 xustar000000000000000023 mtime=1599662000.84 23 atime=1599662000.84 23 ctime=1599662000.84 libprelude-5.2.0/docs/api/html/libprelude-prelude-linked-object.html0000644000000000000000000001052013726163660025503 0ustar00rootroot00000000000000 prelude-linked-object: libprelude Reference Manual

prelude-linked-object

prelude-linked-object

Functions

Types and Values

Description

Functions

prelude_linked_object_get_object()

#define             prelude_linked_object_get_object(object)

Types and Values

PRELUDE_LINKED_OBJECT

#define             PRELUDE_LINKED_OBJECT

prelude_linked_object_t

typedef struct {
        PRELUDE_LINKED_OBJECT;
} prelude_linked_object_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-msg.html0000644000000000000000000000011013726163660024556 xustar000000000000000024 mtime=1599662000.844 24 atime=1599662000.844 24 ctime=1599662000.844 libprelude-5.2.0/docs/api/html/libprelude-prelude-msg.html0000644000000000000000000013656713726163660023603 0ustar00rootroot00000000000000 prelude-msg: libprelude Reference Manual

prelude-msg

prelude-msg

Types and Values

Description

Functions

prelude_msg_read ()

int
prelude_msg_read (prelude_msg_t **msg,
                  prelude_io_t *pio);

Read a message on pio into msg . If msg is NULL, it is allocated. This function will never block.

Parameters

msg

Pointer on a prelude_msg_t object address.

 

pio

Pointer on a prelude_io_t object.

 

Returns

0 if reading the message is complete, or a prelude_error_t error if an error occured. Take particular attention to PRELUDE_ERROR_EAGAIN and PRELUDE_ERROR_EOF.


prelude_msg_forward ()

int
prelude_msg_forward (prelude_msg_t *msg,
                     prelude_io_t *dst,
                     prelude_io_t *src);

prelude_msg_forward() read the message corresponding to the msg object containing the message header previously gathered using prelude_msg_read_header() from the src object, and transfer it to dst . The header is also transfered.

Parameters

msg

Pointer on a prelude_msg_t object containing a message header.

 

dst

Pointer on a prelude_io_t object to send message to.

 

src

Pointer on a prelude_io_t object to read message from.

 

Returns

0 on success, or a negative value if an error occured.


prelude_msg_get ()

int
prelude_msg_get (prelude_msg_t *msg,
                 uint8_t *tag,
                 uint32_t *len,
                 void **buf);

prelude_msg_get() read the next data chunk contained in the message. tag is updated to contain the kind of data the chunk contain. len is updated to contain the len of the data chunk. buf is updated to point on the data chunk.

Parameters

msg

Pointer on a prelude_msg_t object representing the message to get data from.

 

tag

Pointer on a 8 bits unsigned integer to store the message tag.

 

len

Pointer on a 32 bits unsigned integer to store the message len to.

 

buf

Address of a pointer to store the buffer starting address.

 

Returns

0 on success, or a prelude_error_t value on error.


prelude_msg_recycle ()

void
prelude_msg_recycle (prelude_msg_t *msg);

Recycle msg so you can write at it again, even thought it was written.

Parameters

msg

Pointer on prelude_msg_t object.

 

prelude_msg_mark_end ()

void
prelude_msg_mark_end (prelude_msg_t *msg);

Mark end of message in the msg buffer, so you can continue adding different message in the same buffer.

Parameters

msg

Pointer on prelude_msg_t object.

 

prelude_msg_dynamic_new ()

int
prelude_msg_dynamic_new (prelude_msg_t **ret,
                         int (*flush_msg_cb) (prelude_msg_t **msg, void *data),
                         void *data);

Allocate a new prelude_msg_t object. prelude_msg_set() can then be used to add chunk of data to the message, and prelude_msg_mark_start() to separate different message in the same buffer.

This function use memory chunk of static size to store the message in. If the size of the data you want to store is bigger than the actual chunk size, flush_msg_cb callback will be called for the current message to be flushed, and the returned message will be used in order to store remaining data.

Parameters

ret

Pointer where to store the create prelude_msg_t.

 

flush_msg_cb

Callback function to call when the buffer need to be flushed.

 

data

Data to pass to the flush_msg_cb callback function.

 

Returns

0 on success, a negative value if an error occured.


prelude_msg_new ()

int
prelude_msg_new (prelude_msg_t **ret,
                 size_t msgcount,
                 size_t msglen,
                 uint8_t tag,
                 prelude_msg_priority_t priority);

Allocate a new prelude_msg_t object and store it into ret . prelude_msg_set() can then be used to add chunk of data to the message, and prelude_msg_write() to send it.

Parameters

ret

Pointer where to store the created prelude_msg_t.

 

msgcount

Number of chunk of data the created object can accept.

 

msglen

Maximum number of bytes the object should handle for all the chunks.

 

tag

A tag identifying the kind of message.

 

priority

The priority of this message.

 

Returns

0 on success, a negative value if an error occured.


prelude_msg_set ()

int
prelude_msg_set (prelude_msg_t *msg,
                 uint8_t tag,
                 uint32_t len,
                 const void *data);

prelude_msg_set() append len bytes of data from the data buffer to the msg object representing a message. The data is tagged with tag .

Parameters

msg

Pointer on a prelude_msg_t object to store the data to.

 

tag

8 bits unsigned integer describing the kind of data.

 

len

len of the data chunk.

 

data

Pointer to the starting address of the data.

 

Returns

0 on success, or a negative value if the remaining space is not available. You might check the return value mostly if using a dynamic message through prelude_msg_dynamic_new()


prelude_msg_write ()

int
prelude_msg_write (prelude_msg_t *msg,
                   prelude_io_t *dst);

prelude_msg_write() write the message corresponding to the msg object to dst . The message should have been created using the prelude_msg_new() and prelude_msg_set() functions.

Parameters

msg

Pointer on a prelude_msg_t object containing the message.

 

dst

Pointer on a prelude_io_t object to send the message to.

 

Returns

0 on success, or a negative value if an error occured.


prelude_msg_set_tag ()

void
prelude_msg_set_tag (prelude_msg_t *msg,
                     uint8_t tag);

Tag msg .

Parameters

msg

Pointer on a prelude_msg_t object.

 

tag

Tag to associate with msg .

 

prelude_msg_set_priority ()

void
prelude_msg_set_priority (prelude_msg_t *msg,
                          prelude_msg_priority_t priority);

Associate priority with msg .

Parameters

msg

Pointer on a prelude_msg_t object.

 

priority

Priority to associate with msg .

 

prelude_msg_get_tag ()

uint8_t
prelude_msg_get_tag (prelude_msg_t *msg);

prelude_msg_get_tag() return the tag contained in the msg header.

Parameters

msg

Pointer on a prelude_msg_t object.

 

Returns

A tag.


prelude_msg_get_priority ()

prelude_msg_priority_t
prelude_msg_get_priority (prelude_msg_t *msg);

prelude_msg_get_priority() return the priority contained in the msg header.

Parameters

msg

Pointer on a prelude_msg_t object.

 

Returns

A priority.


prelude_msg_get_len ()

uint32_t
prelude_msg_get_len (prelude_msg_t *msg);

prelude_msg_get_len() return the currently used len for the msg message.

Parameters

msg

Pointer on a prelude_msg_t object.

 

Returns

Len of the message.


prelude_msg_get_datalen ()

uint32_t
prelude_msg_get_datalen (prelude_msg_t *msg);

prelude_msg_get_datalen() return the len of the whole message contained in the msg header.

Parameters

msg

Pointer on a prelude_msg_t object.

 

Returns

Len of the message.


prelude_msg_destroy ()

void
prelude_msg_destroy (prelude_msg_t *msg);

prelude_msg_destroy() destroy the prelude_msg_t object pointed to by msg . All the ressources for this message are freed.

Parameters

msg

Pointer on a prelude_msg_t object.

 

prelude_msg_get_time ()

struct timeval *
prelude_msg_get_time (prelude_msg_t *msg,
                      struct timeval *tv);

prelude_msg_is_empty ()

int
prelude_msg_is_empty (prelude_msg_t *msg);

Parameters

msg

Pointer on a prelude_msg_t object.

 

Returns

true if msg doesn't contain any data to send.


prelude_msg_is_fragment ()

int
prelude_msg_is_fragment (prelude_msg_t *msg);

Parameters

msg

Pointer on a prelude_msg_t object.

 

Returns

true if msg only contain a fragment of message.


prelude_msg_ref ()

prelude_msg_t *
prelude_msg_ref (prelude_msg_t *msg);

prelude_msg_set_callback ()

void
prelude_msg_set_callback (prelude_msg_t *msg,
                          int (*flush_msg_cb) (prelude_msg_t **msg, void *data));

prelude_msg_set_callback() allow to change the callback used to flush a message created with prelude_msg_dynamic_new().

Parameters

msg

Pointer on a prelude_msg_t object.

 

flush_msg_cb

Pointer on a function responssible of sending the message.

 

prelude_msg_set_data ()

void
prelude_msg_set_data (prelude_msg_t *msg,
                      void *data);

prelude_msg_set_data() allow to change the data passed to the message sending callback.

Parameters

msg

Pointer on a prelude_msg_t object.

 

data

Pointer on the data to associate to this message.

 

prelude_msg_get_message_data ()

const unsigned char *
prelude_msg_get_message_data (prelude_msg_t *msg);

Types and Values

prelude_msg_t

typedef struct prelude_msg prelude_msg_t;

enum prelude_msg_priority_t

Members

PRELUDE_MSG_PRIORITY_NONE

   

PRELUDE_MSG_PRIORITY_LOW

   

PRELUDE_MSG_PRIORITY_MID

   

PRELUDE_MSG_PRIORITY_HIGH

   
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude.html0000644000000000000000000000011013726163660023772 xustar000000000000000024 mtime=1599662000.855 24 atime=1599662000.855 24 ctime=1599662000.855 libprelude-5.2.0/docs/api/html/libprelude-prelude.html0000644000000000000000000002300313726163660022773 0ustar00rootroot00000000000000 prelude: libprelude Reference Manual

prelude

prelude

Functions

int prelude_init ()
void prelude_deinit ()
const char * prelude_check_version ()
int prelude_thread_init ()
void prelude_fork_child ()
void prelude_fork_parent ()
void prelude_fork_prepare ()

Types and Values

Description

Functions

prelude_init ()

int
prelude_init (int *argc,
              char **argv);

Call this function before using any other Prelude functions in your applications. It will initialize everything needed to operate the library and parses some standard command line options. argc and argv are adjusted accordingly so your own code will never see those standard arguments.

Parameters

argc

Address of the argc parameter of your main() function.

 

argv

Address of the argv parameter of your main() function.

 

Returns

0 on success, a negative value if an error occured.


prelude_deinit ()

void
prelude_deinit (void);

Call this function if you're done using the library and want to free global shared ressource allocated by libprelude.


prelude_check_version ()

const char *
prelude_check_version (const char *req_version);

If req_version is NULL this function will return the version of the library. Otherwise, req_version will be compared to the current library version. If the library version is higher or equal, this function will return the current library version. Otherwise, NULL is returned.

Parameters

req_version

The minimum acceptable version number.

 

Returns

The current library version, or NULL if req_version doesn't match.


prelude_thread_init ()

int
prelude_thread_init (void *nil);

prelude_fork_child ()

void
prelude_fork_child (void);

prelude_fork_parent ()

void
prelude_fork_parent (void);

prelude_fork_prepare ()

void
prelude_fork_prepare (void);

Types and Values

LIBPRELUDE_VERSION

#define LIBPRELUDE_VERSION "5.2.0"
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-list.html0000644000000000000000000000011013726163660024743 xustar000000000000000024 mtime=1599662000.841 24 atime=1599662000.841 24 ctime=1599662000.841 libprelude-5.2.0/docs/api/html/libprelude-prelude-list.html0000644000000000000000000004672113726163660023760 0ustar00rootroot00000000000000 prelude-list: libprelude Reference Manual

prelude-list

prelude-list

Types and Values

Description

Functions

PRELUDE_LIST()

#define PRELUDE_LIST(item) prelude_list_t (item) = { &(item), &(item) }

prelude_list_entry()

#define             prelude_list_entry(item, type, member)

Retrieve the entry of type type from the prelude_list_t object tmp , using the item list member member . Returns the entry associated with item .

Parameters

item

Pointer to a prelude_list_t object to retrieve the entry from.

 

type

Type of the entry to retrieve.

 

member

List member in type used to link it to a list.

 

prelude_list_for_each()

#define             prelude_list_for_each(list, pos)

Iterate through all list entry. prelude_list_entry() can be used to retrieve and entry from the pos pointer. It is not safe to call prelude_list_del() while iterating using this function, see prelude_list_for_each_safe().

Parameters

list

Pointer to a prelude_list_t list.

 

pos

Pointer to a prelude_list_t object pointing to the current list member.

 

prelude_list_for_each_safe()

#define             prelude_list_for_each_safe(list, pos, bkp)

Iterate through all list entry. prelude_list_entry() can be used to retrieve and entry from the pos pointer. Calling prelude_list_del() while iterating the list is safe.

Parameters

list

Pointer to a prelude_list_t list.

 

pos

Pointer to a prelude_list_t object pointing to the current list member.

 

bkp

Pointer to a prelude_list_t object pointing to the next list member.

 

prelude_list_for_each_reversed()

#define             prelude_list_for_each_reversed(list, pos)

Iterate through all list entry in reverse order. prelude_list_entry() can be used to retrieve and entry from the pos pointer. It is not safe to call prelude_list_del() while iterating using this function, see prelude_list_for_each_reversed_safe().

Parameters

list

Pointer to a prelude_list_t list.

 

pos

Pointer to a prelude_list_t object pointing to the current list member.

 

prelude_list_for_each_reversed_safe()

#define             prelude_list_for_each_reversed_safe(list, pos, bkp)

Iterate through all list entry in reverse order. prelude_list_entry() can be used to retrieve and entry from the pos pointer. Calling prelude_list_del() while iterating the list is safe.

Parameters

list

Pointer to a prelude_list_t list.

 

pos

Pointer to a prelude_list_t object pointing to the current list member.

 

bkp

Pointer to a prelude_list_t object pointing to the next list member.

 

prelude_list_for_each_continue()

#define             prelude_list_for_each_continue(list, pos)

Iterate through all list entry starting from pos if it is not NULL, or from the start of list if it is. prelude_list_entry() can be used to retrieve and entry from the pos pointer. Calling prelude_list_del() while iterating the list is not safe.

Parameters

list

Pointer to a prelude_list_t list.

 

pos

Pointer to a prelude_list_t object pointing to the current list member.

 

prelude_list_for_each_continue_safe()

#define             prelude_list_for_each_continue_safe(list, pos, bkp)

Iterate through all list entry starting from pos if it is not NULL, or from the start of list if it is. prelude_list_entry() can be used to retrieve and entry from the pos pointer. Calling prelude_list_del() while iterating the list is safe.

Parameters

list

Pointer to a prelude_list_t list.

 

pos

Pointer to a prelude_list_t object pointing to the current list member.

 

bkp

Pointer to a prelude_list_t object pointing to the next list member.

 

prelude_list_get_next()

#define             prelude_list_get_next(list, pos, class, member)

prelude_list_get_next_safe()

#define             prelude_list_get_next_safe(list, pos, bkp, class, member)

Types and Values

prelude_list_t

typedef struct {
        struct prelude_list *next;
        struct prelude_list *prev;
} prelude_list_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-log.html0000644000000000000000000000011013726163660024551 xustar000000000000000024 mtime=1599662000.842 24 atime=1599662000.841 24 ctime=1599662000.842 libprelude-5.2.0/docs/api/html/libprelude-prelude-log.html0000644000000000000000000003145213726163660023561 0ustar00rootroot00000000000000 prelude-log: libprelude Reference Manual

prelude-log

prelude-log

Types and Values

Description

Functions

prelude_log()

#define             prelude_log(level, ...)

prelude_log_debug()

#define             prelude_log_debug(level, ...)

prelude_log_v()

#define             prelude_log_v(level, fmt, ap)

prelude_log_debug_v()

#define             prelude_log_debug_v(level, fmt, ap)

prelude_log_set_level ()

void
prelude_log_set_level (prelude_log_t level);

prelude_log_set_debug_level ()

void
prelude_log_set_debug_level (int level);

prelude_log_get_flags ()

prelude_log_flags_t
prelude_log_get_flags (void);

prelude_log_set_flags ()

void
prelude_log_set_flags (prelude_log_flags_t flags);

prelude_log_get_prefix ()

char *
prelude_log_get_prefix (void);

prelude_log_set_prefix ()

void
prelude_log_set_prefix (char *prefix);

Tell the Prelude standard logger to add prefix before logging a line.

Parameters

prefix

Pointer to the prefix to use.

 

prelude_log_set_callback ()

void
prelude_log_set_callback ();

log_cb() will be called in place of the prelude function usally used for loging.

Parameters

log_cb

Callback function.

 

prelude_log_set_logfile ()

int
prelude_log_set_logfile (const char *filename);

Types and Values

enum prelude_log_t

Members

PRELUDE_LOG_CRIT

   

PRELUDE_LOG_ERR

   

PRELUDE_LOG_WARN

   

PRELUDE_LOG_INFO

   

PRELUDE_LOG_DEBUG

   

enum prelude_log_flags_t

Members

PRELUDE_LOG_FLAGS_QUIET

   

PRELUDE_LOG_FLAGS_SYSLOG

   
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-msgbuf.html0000644000000000000000000000011013726163660025253 xustar000000000000000024 mtime=1599662000.845 24 atime=1599662000.845 24 ctime=1599662000.845 libprelude-5.2.0/docs/api/html/libprelude-prelude-msgbuf.html0000644000000000000000000004501313726163660024261 0ustar00rootroot00000000000000 prelude-msgbuf: libprelude Reference Manual

prelude-msgbuf

prelude-msgbuf

Types and Values

Description

Functions

prelude_msgbuf_new ()

int
prelude_msgbuf_new (prelude_msgbuf_t **msgbuf);

Create a new prelude_msgbuf_t object and store it into msgbuf . You can then write data to msgbuf using the prelude_msgbuf_set() function.

When the message buffer is full, the message will be flushed using the user provided callback.

Parameters

msgbuf

Pointer where to store the created prelude_msgbuf_t object.

 

Returns

0 on success, or a negative value if an error occured.


prelude_msgbuf_destroy ()

void
prelude_msgbuf_destroy (prelude_msgbuf_t *msgbuf);

Destroy msgbuf , all data remaining will be flushed.

Parameters

msgbuf

Pointer on a prelude_msgbuf_t object.

 

prelude_msgbuf_mark_end ()

void
prelude_msgbuf_mark_end (prelude_msgbuf_t *msgbuf);

This function should be called to tell the msgbuf subsystem that you finished writing your message.

Parameters

msgbuf

Pointer on prelude_msgbuf_t object.

 

prelude_msgbuf_set ()

int
prelude_msgbuf_set (prelude_msgbuf_t *msgbuf,
                    uint8_t tag,
                    uint32_t len,
                    const void *data);

prelude_msgbuf_set() append len bytes of data from the data buffer to the msgbuf object representing a message. The data is tagged with tag .

Parameters

msgbuf

Pointer on a prelude_msgbuf_t object to store the data to.

 

tag

8 bits unsigned integer describing the kind of data.

 

len

len of the data chunk.

 

data

Pointer to the data.

 

Returns

0 on success, a negative value if an error occured.


prelude_msgbuf_get_msg ()

prelude_msg_t *
prelude_msgbuf_get_msg (prelude_msgbuf_t *msgbuf);

Parameters

msgbuf

Pointer on a prelude_msgbuf_t object.

 

Returns

This function return the current message associated with the message buffer.


prelude_msgbuf_set_callback ()

void
prelude_msgbuf_set_callback (prelude_msgbuf_t *msgbuf,
                             int (*send_msg) (prelude_msgbuf_t *msgbuf, prelude_msg_t *msg));

Associate an application specific callback to this msgbuf .

Parameters

msgbuf

Pointer on a prelude_msgbuf_t object.

 

send_msg

Pointer to a function for sending a message.

 

prelude_msgbuf_set_data ()

void
prelude_msgbuf_set_data (prelude_msgbuf_t *msgbuf,
                         void *data);

prelude_msgbuf_get_data ()

void *
prelude_msgbuf_get_data (prelude_msgbuf_t *msgbuf);

prelude_msgbuf_set_flags ()

void
prelude_msgbuf_set_flags (prelude_msgbuf_t *msgbuf,
                          prelude_msgbuf_flags_t flags);

prelude_msgbuf_get_flags ()

prelude_msgbuf_flags_t
prelude_msgbuf_get_flags (prelude_msgbuf_t *msgbuf);

Types and Values

prelude_msgbuf_t

typedef struct prelude_msgbuf prelude_msgbuf_t;

enum prelude_msgbuf_flags_t

Members

PRELUDE_MSGBUF_FLAGS_ASYNC

   
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-option.html0000644000000000000000000000011013726163660025300 xustar000000000000000024 mtime=1599662000.849 24 atime=1599662000.848 24 ctime=1599662000.849 libprelude-5.2.0/docs/api/html/libprelude-prelude-option.html0000644000000000000000000021705413726163660024314 0ustar00rootroot00000000000000 prelude-option: libprelude Reference Manual

prelude-option

prelude-option

Functions

int (*prelude_option_destroy_callback_t) ()
int (*prelude_option_commit_callback_t) ()
int (*prelude_option_get_callback_t) ()
int (*prelude_option_set_callback_t) ()
void prelude_option_set_priority ()
void prelude_option_print ()
int prelude_option_wide_send_msg ()
void prelude_option_destroy ()
int prelude_option_read ()
int prelude_option_add ()
void prelude_option_set_type ()
prelude_option_type_t prelude_option_get_type ()
void prelude_option_set_warnings ()
char prelude_option_get_shortname ()
const char * prelude_option_get_longname ()
void prelude_option_set_data ()
void * prelude_option_get_data ()
void * prelude_option_context_get_data ()
void prelude_option_context_set_data ()
int prelude_option_invoke_commit ()
int prelude_option_invoke_set ()
int prelude_option_invoke_get ()
int prelude_option_invoke_destroy ()
int prelude_option_new_root ()
int prelude_option_new ()
void prelude_option_set_longopt ()
const char * prelude_option_get_longopt ()
void prelude_option_set_description ()
const char * prelude_option_get_description ()
void prelude_option_set_has_arg ()
prelude_option_argument_t prelude_option_get_has_arg ()
void prelude_option_set_value ()
const char * prelude_option_get_value ()
void prelude_option_set_help ()
const char * prelude_option_get_help ()
void prelude_option_set_input_validation_regex ()
const char * prelude_option_get_input_validation_regex ()
void prelude_option_set_input_type ()
prelude_option_input_type_t prelude_option_get_input_type ()
prelude_list_t * prelude_option_get_optlist ()
prelude_option_t * prelude_option_get_next ()
prelude_bool_t prelude_option_has_optlist ()
prelude_option_t * prelude_option_get_parent ()
void prelude_option_set_destroy_callback ()
prelude_option_destroy_callback_t prelude_option_get_destroy_callback ()
void prelude_option_set_set_callback ()
prelude_option_set_callback_t prelude_option_get_set_callback ()
void prelude_option_set_get_callback ()
prelude_option_get_callback_t prelude_option_get_get_callback ()
void prelude_option_set_commit_callback ()
prelude_option_commit_callback_t prelude_option_get_commit_callback ()
void prelude_option_set_default_context ()
int prelude_option_new_context ()
void prelude_option_context_destroy ()
prelude_option_t * prelude_option_search ()
prelude_option_context_t * prelude_option_search_context ()

Description

Functions

prelude_option_destroy_callback_t ()

int
(*prelude_option_destroy_callback_t) (prelude_option_t *opt,
                                      prelude_string_t *out,
                                      void *context);

prelude_option_commit_callback_t ()

int
(*prelude_option_commit_callback_t) (prelude_option_t *opt,
                                     prelude_string_t *out,
                                     void *context);

prelude_option_get_callback_t ()

int
(*prelude_option_get_callback_t) (prelude_option_t *opt,
                                  prelude_string_t *out,
                                  void *context);

prelude_option_set_callback_t ()

int
(*prelude_option_set_callback_t) (prelude_option_t *opt,
                                  const char *optarg,
                                  prelude_string_t *err,
                                  void *context);

prelude_option_set_priority ()

void
prelude_option_set_priority (prelude_option_t *option,
                             prelude_option_priority_t priority);

prelude_option_set_priority() can be used to associate a priority with an option. This can be used to solve dependancies problem within differents options.

A priority of -1 mean an option will always be executed last (with all other option with a -1 priority).

The default priority for an option is 0, the caller is responssible for the way it assign priority (knowing that highest priority are always executed first).

Parameters

option

Pointer on an option object.

 

priority

Priority of the option object.

 

prelude_option_print ()

void
prelude_option_print (prelude_option_t *opt,
                      prelude_option_type_t type,
                      int descoff,
                      FILE *fd);

Dump option available in opt and hooked to the given types. If opt is NULL, then the root of the option list is used.

Parameters

opt

Option(s) to print out.

 

type

Only option with specified types will be printed.

 

descoff

offset from the begining of the line where the description should start.

 

fd

File descriptor where the option should be dumped.

 

prelude_option_wide_send_msg ()

int
prelude_option_wide_send_msg (prelude_msgbuf_t *msgbuf,
                              void *context);

prelude_option_destroy ()

void
prelude_option_destroy (prelude_option_t *option);

Destroy a prelude_option_t object and all data associated with it (including all suboption).

Parameters

option

Pointer on an option object.

 

prelude_option_read ()

int
prelude_option_read (prelude_option_t *option,
                     const char **filename,
                     int *argc,
                     char **argv,
                     prelude_string_t **err,
                     void *context);

prelude_option_read(), parse the given argument and try to match them against option in option . If an option match, it's associated callback function is called with the eventual option argument if any.

Option not matched on the command line are searched in the configuration file specified by filename .

if option is NULL, all system option will be matched against argc, and argv.

Parameters

option

A pointer on an option (list).

 

filename

Pointer to the config filename.

 

argc

Number of argument.

 

argv

Argument list.

 

err

Pointer to a prelude_string_t object where to store an error string.

 

context

Pointer to an optional option context.

 

Returns

The index of the first unhandled parameter if option parsing succeeded, or a negative value if an error occured.


prelude_option_add ()

int
prelude_option_add (prelude_option_t *parent,
                    prelude_option_t **retopt,
                    prelude_option_type_t type,
                    char shortopt,
                    const char *longopt,
                    const char *desc,
                    prelude_option_argument_t has_arg,
                    int (*set) (prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context),
                    int (*get) (prelude_option_t *opt, prelude_string_t *out, void *context));

prelude_option_add() create a new option. The option is set to be the child of parent , unless it is NULL. In this case the option is a root option.

The type parameters can be set to PRELUDE_OPTION_TYPE_CLI (telling the option may be searched on the command line), PRELUDE_OPTION_TYPE_CFG (telling the option may be searched in the configuration file) or both.

Parameters

parent

Pointer on a parent option.

 

retopt

Pointer where to store the created option.

 

type

bitfields.

 

shortopt

Short option name.

 

longopt

Long option name.

 

desc

Description of the option.

 

has_arg

Define if the option has argument.

 

set

Callback to be called when the value for this option change.

 

get

Callback to be called to get the value for this option.

 

Returns

Pointer on the option object, or NULL if an error occured.


prelude_option_set_type ()

void
prelude_option_set_type (prelude_option_t *opt,
                         prelude_option_type_t type);

prelude_option_get_type ()

prelude_option_type_t
prelude_option_get_type (prelude_option_t *opt);

prelude_option_set_warnings ()

void
prelude_option_set_warnings (prelude_option_warning_t new_warnings,
                             prelude_option_warning_t *old_warnings);

prelude_option_get_shortname ()

char
prelude_option_get_shortname (prelude_option_t *opt);

prelude_option_get_longname ()

const char *
prelude_option_get_longname (prelude_option_t *opt);

prelude_option_set_data ()

void
prelude_option_set_data (prelude_option_t *opt,
                         void *data);

prelude_option_get_data ()

void *
prelude_option_get_data (prelude_option_t *opt);

prelude_option_context_get_data ()

void *
prelude_option_context_get_data (prelude_option_context_t *oc);

prelude_option_context_set_data ()

void
prelude_option_context_set_data (prelude_option_context_t *oc,
                                 void *data);

prelude_option_invoke_commit ()

int
prelude_option_invoke_commit (prelude_option_t *opt,
                              const char *ctname,
                              prelude_string_t *value,
                              void *context);

prelude_option_invoke_set ()

int
prelude_option_invoke_set (prelude_option_t *opt,
                           const char *ctname,
                           prelude_string_t *value,
                           void **context);

prelude_option_invoke_get ()

int
prelude_option_invoke_get (prelude_option_t *opt,
                           const char *ctname,
                           prelude_string_t *value,
                           void *context);

prelude_option_invoke_destroy ()

int
prelude_option_invoke_destroy (prelude_option_t *opt,
                               const char *ctname,
                               prelude_string_t *value,
                               void *context);

prelude_option_new_root ()

int
prelude_option_new_root (prelude_option_t **retopt);

prelude_option_new ()

int
prelude_option_new (prelude_option_t *parent,
                    prelude_option_t **retopt);

prelude_option_set_longopt ()

void
prelude_option_set_longopt (prelude_option_t *opt,
                            const char *longopt);

prelude_option_get_longopt ()

const char *
prelude_option_get_longopt (prelude_option_t *opt);

prelude_option_set_description ()

void
prelude_option_set_description (prelude_option_t *opt,
                                const char *description);

prelude_option_get_description ()

const char *
prelude_option_get_description (prelude_option_t *opt);

prelude_option_set_has_arg ()

void
prelude_option_set_has_arg (prelude_option_t *opt,
                            prelude_option_argument_t has_arg);

prelude_option_get_has_arg ()

prelude_option_argument_t
prelude_option_get_has_arg (prelude_option_t *opt);

prelude_option_set_value ()

void
prelude_option_set_value (prelude_option_t *opt,
                          const char *value);

prelude_option_get_value ()

const char *
prelude_option_get_value (prelude_option_t *opt);

prelude_option_set_help ()

void
prelude_option_set_help (prelude_option_t *opt,
                         const char *help);

prelude_option_get_help ()

const char *
prelude_option_get_help (prelude_option_t *opt);

prelude_option_set_input_validation_regex ()

void
prelude_option_set_input_validation_regex
                               (prelude_option_t *opt,
                                const char *regex);

prelude_option_get_input_validation_regex ()

const char *
prelude_option_get_input_validation_regex
                               (prelude_option_t *opt);

prelude_option_set_input_type ()

void
prelude_option_set_input_type (prelude_option_t *opt,
                               prelude_option_input_type_t input_type);

prelude_option_get_input_type ()

prelude_option_input_type_t
prelude_option_get_input_type (prelude_option_t *opt);

prelude_option_get_optlist ()

prelude_list_t *
prelude_option_get_optlist (prelude_option_t *opt);

prelude_option_get_next ()

prelude_option_t *
prelude_option_get_next (prelude_option_t *start,
                         prelude_option_t *cur);

prelude_option_has_optlist ()

prelude_bool_t
prelude_option_has_optlist (prelude_option_t *opt);

prelude_option_get_parent ()

prelude_option_t *
prelude_option_get_parent (prelude_option_t *opt);

prelude_option_set_destroy_callback ()

void
prelude_option_set_destroy_callback (prelude_option_t *opt,
                                     prelude_option_destroy_callback_t destroy);

prelude_option_get_destroy_callback ()

prelude_option_destroy_callback_t
prelude_option_get_destroy_callback (prelude_option_t *opt);

prelude_option_set_set_callback ()

void
prelude_option_set_set_callback (prelude_option_t *opt,
                                 prelude_option_set_callback_t set);

prelude_option_get_set_callback ()

prelude_option_set_callback_t
prelude_option_get_set_callback (prelude_option_t *opt);

prelude_option_set_get_callback ()

void
prelude_option_set_get_callback (prelude_option_t *opt,
                                 int (*get) (prelude_option_t *opt, prelude_string_t *out, void *context));

prelude_option_get_get_callback ()

prelude_option_get_callback_t
prelude_option_get_get_callback (prelude_option_t *opt);

prelude_option_set_commit_callback ()

void
prelude_option_set_commit_callback (prelude_option_t *opt,
                                    prelude_option_commit_callback_t commit);

prelude_option_get_commit_callback ()

prelude_option_commit_callback_t
prelude_option_get_commit_callback (prelude_option_t *opt);

prelude_option_set_default_context ()

void
prelude_option_set_default_context (prelude_option_t *opt,
                                    void *context);

prelude_option_new_context ()

int
prelude_option_new_context (prelude_option_t *opt,
                            prelude_option_context_t **ctx,
                            const char *name,
                            void *data);

prelude_option_context_destroy ()

void
prelude_option_context_destroy (prelude_option_context_t *oc);

prelude_option_search ()

prelude_option_t *
prelude_option_search (prelude_option_t *parent,
                       const char *name,
                       prelude_option_type_t type,
                       prelude_bool_t walk_children);

prelude_option_search_context ()

prelude_option_context_t *
prelude_option_search_context (prelude_option_t *opt,
                               const char *name);

Types and Values

enum prelude_option_type_t

Members

PRELUDE_OPTION_TYPE_CLI

   

PRELUDE_OPTION_TYPE_CFG

   

PRELUDE_OPTION_TYPE_WIDE

   

PRELUDE_OPTION_TYPE_CONTEXT

   

PRELUDE_OPTION_TYPE_ROOT

   

PRELUDE_OPTION_TYPE_DESTROY

   

enum prelude_option_input_type_t

Members

PRELUDE_OPTION_INPUT_TYPE_STRING

   

PRELUDE_OPTION_INPUT_TYPE_INTEGER

   

PRELUDE_OPTION_INPUT_TYPE_BOOLEAN

   

prelude_option_t

typedef struct prelude_option prelude_option_t;

prelude_option_context_t

typedef struct prelude_option_context prelude_option_context_t;

enum prelude_option_argument_t

Members

PRELUDE_OPTION_ARGUMENT_REQUIRED

   

PRELUDE_OPTION_ARGUMENT_OPTIONAL

   

PRELUDE_OPTION_ARGUMENT_NONE

   

enum prelude_option_priority_t

Members

PRELUDE_OPTION_PRIORITY_IMMEDIATE

   

PRELUDE_OPTION_PRIORITY_FIRST

   

PRELUDE_OPTION_PRIORITY_NONE

   

PRELUDE_OPTION_PRIORITY_LAST

   

enum prelude_option_warning_t

Members

PRELUDE_OPTION_WARNING_OPTION

   

PRELUDE_OPTION_WARNING_ARG

   
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-plugin.html0000644000000000000000000000010713726163660025274 xustar000000000000000024 mtime=1599662000.851 23 atime=1599662000.85 24 ctime=1599662000.851 libprelude-5.2.0/docs/api/html/libprelude-prelude-plugin.html0000644000000000000000000010751613726163660024303 0ustar00rootroot00000000000000 prelude-plugin: libprelude Reference Manual

prelude-plugin

prelude-plugin

Description

Functions

PRELUDE_PLUGIN_SET_PRELOADED_SYMBOLS

#define             PRELUDE_PLUGIN_SET_PRELOADED_SYMBOLS()

PRELUDE_PLUGIN_OPTION_DECLARE_STRING_CB()

#define             PRELUDE_PLUGIN_OPTION_DECLARE_STRING_CB(prefix, type, name)

prelude_plugin_get_name()

#define prelude_plugin_get_name(p) (p)->name

prelude_plugin_set_name()

#define prelude_plugin_set_name(p, str) (p)->name = (str)

prelude_plugin_set_destroy_func()

#define prelude_plugin_set_destroy_func(p, func) (p)->destroy = func

prelude_plugin_entry_set_plugin ()

void
prelude_plugin_entry_set_plugin (prelude_plugin_entry_t *pe,
                                 prelude_plugin_generic_t *pl);

prelude_plugin_set_activation_option ()

int
prelude_plugin_set_activation_option (prelude_plugin_entry_t *pe,
                                      prelude_option_t *opt,
                                      int (*commit) (prelude_plugin_instance_t *pi, prelude_string_t *err));

prelude_plugin_instance_subscribe ()

int
prelude_plugin_instance_subscribe (prelude_plugin_instance_t *pi);

prelude_plugin_instance_unsubscribe ()

int
prelude_plugin_instance_unsubscribe (prelude_plugin_instance_t *pi);

Set pi to be inactive.

The unsubscribe function specified in plugin_load_from_dir() is called for plugin un-registration and the instance for this plugin is freed.

Parameters

pi

Pointer to a plugin instance.

 

Returns

0 on success, -1 if an error occured.


prelude_plugin_new_instance ()

int
prelude_plugin_new_instance (prelude_plugin_instance_t **pi,
                             prelude_plugin_generic_t *plugin,
                             const char *name,
                             void *data);

prelude_plugin_search_by_name ()

prelude_plugin_generic_t *
prelude_plugin_search_by_name (prelude_list_t *head,
                               const char *name);

Search head list of plugin for a plugin with name name .

Parameters

head

List where to search the plugin from.

 

name

Name of the plugin to search.

 

Returns

the a prelude_plugin_t on success, or NULL if the plugin does not exist.


prelude_plugin_search_instance_by_name ()

prelude_plugin_instance_t *
prelude_plugin_search_instance_by_name
                               (prelude_list_t *head,
                                const char *pname,
                                const char *iname);

prelude_plugin_instance_set_data ()

void
prelude_plugin_instance_set_data (prelude_plugin_instance_t *pi,
                                  void *data);

prelude_plugin_instance_get_data ()

void *
prelude_plugin_instance_get_data (prelude_plugin_instance_t *pi);

prelude_plugin_instance_set_plugin_data ()

void
prelude_plugin_instance_set_plugin_data
                               (prelude_plugin_instance_t *pi,
                                void *data);

prelude_plugin_instance_get_plugin_data ()

void *
prelude_plugin_instance_get_plugin_data
                               (prelude_plugin_instance_t *pi);

prelude_plugin_instance_get_name ()

const char *
prelude_plugin_instance_get_name (prelude_plugin_instance_t *pi);

prelude_plugin_instance_get_plugin ()

prelude_plugin_generic_t *
prelude_plugin_instance_get_plugin (prelude_plugin_instance_t *pi);

prelude_plugin_load_from_dir ()

int
prelude_plugin_load_from_dir (prelude_list_t *head,
                              const char *dirname,
                              const char *symbol,
                              void *ptr,
                              int (*subscribe) (prelude_plugin_instance_t *p),
                              void (*unsubscribe) (prelude_plugin_instance_t *pi));

Load all plugins in directory 'dirname', using symbol entry point. Each plugin have a subscribe and unsubscribe callback associated with it.

The plugins are loaded, but not active, until someone call prelude_plugin_subscribe() on one of the plugin. Which'll call subscribe in order to register it.

ptr is an extra argument provided to the plugin at initialization time.

Parameters

head

List where the loaded plugin should be added.

 

dirname

The directory to load the plugin from.

 

symbol

Symbol to lookup within loaded plugin.

 

ptr

Extra pointer to provide to the plugin initialization function.

 

subscribe

Pointer to a callback function for plugin subscribtion.

 

unsubscribe

Pointer to a callback function for plugin un-subscribtion.

 

Returns

The number of loaded plugins on success, -1 on error.


prelude_plugin_instance_add ()

int
prelude_plugin_instance_add (prelude_plugin_instance_t *pi,
                             prelude_list_t *h);

This function add the plugin instance associated with pi to the linked list specified by h . If this instance is already used somewhere else, a copy is made, since instance does not share information).

Parameters

pi

Pointer to a plugin instance

 

h

Pointer to a linked list

 

Returns

0 on success or -1 if an error occured.


prelude_plugin_instance_del ()

void
prelude_plugin_instance_del (prelude_plugin_instance_t *pi);

Delete pi from the list specified at prelude_plugin_instance_add() time.

Parameters

pi

Pointer to a plugin instance.

 

prelude_plugin_instance_compute_time ()

void
prelude_plugin_instance_compute_time (prelude_plugin_instance_t *pi,
                                      struct timeval *start,
                                      struct timeval *end);

prelude_plugin_instance_call_commit_func ()

int
prelude_plugin_instance_call_commit_func
                               (prelude_plugin_instance_t *pi,
                                prelude_string_t *err);

prelude_plugin_instance_has_commit_func ()

prelude_bool_t
prelude_plugin_instance_has_commit_func
                               (prelude_plugin_instance_t *pi);

prelude_plugin_set_preloaded_symbols ()

void
prelude_plugin_set_preloaded_symbols (void *symlist);

prelude_plugin_get_next ()

prelude_plugin_generic_t *
prelude_plugin_get_next (prelude_list_t *head,
                         prelude_list_t **iter);

prelude_plugin_unload ()

void
prelude_plugin_unload (prelude_plugin_generic_t *plugin);

prelude_plugin_compute_stats()

#define             prelude_plugin_compute_stats(pi, func)

prelude_plugin_run()

#define             prelude_plugin_run(pi, type, member, ...)

Types and Values

lt_preloaded_symbols

# define lt_preloaded_symbols lt__PROGRAM__LTX_preloaded_symbols

PRELUDE_PLUGIN_API_VERSION

#define PRELUDE_PLUGIN_API_VERSION 1

prelude_plugin_entry_t

typedef struct prelude_plugin_entry prelude_plugin_entry_t;

prelude_plugin_instance_t

typedef struct prelude_plugin_instance prelude_plugin_instance_t;

PRELUDE_PLUGIN_GENERIC

#define             PRELUDE_PLUGIN_GENERIC

prelude_plugin_generic_t

typedef struct {
        PRELUDE_PLUGIN_GENERIC;
} prelude_plugin_generic_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-string.html0000644000000000000000000000011013726163660025276 xustar000000000000000024 mtime=1599662000.853 24 atime=1599662000.853 24 ctime=1599662000.853 libprelude-5.2.0/docs/api/html/libprelude-prelude-string.html0000644000000000000000000020656513726163660024317 0ustar00rootroot00000000000000 prelude-string: libprelude Reference Manual

prelude-string

prelude-string

Types and Values

Description

Functions

prelude_string_new ()

int
prelude_string_new (prelude_string_t **string);

Create a new prelude_string_t object, and store in in string .

Parameters

string

Pointer where to store the created prelude_string_t.

 

Returns

0 on success, or a negative value if an error occured.


prelude_string_new_nodup ()

int
prelude_string_new_nodup (prelude_string_t **string,
                          char *str);

Create a new prelude_string_t object with a reference to str as initial value. str is owned by string and will be freed upon prelude_string_destroy().

Parameters

string

Pointer where to store the created prelude_string_t object.

 

str

Initial string value.

 

Returns

0 on success, a negative value if an error occured.


prelude_string_new_ref ()

int
prelude_string_new_ref (prelude_string_t **string,
                        const char *str);

Create a new prelude_string_t object with a reference to str as initial value. str won't be freed upon prelude_string_destroy().

Parameters

string

Pointer where to store the created prelude_string_t object.

 

str

Initial string value.

 

Returns

0 on success, a negative value if an error occured.


prelude_string_new_dup ()

int
prelude_string_new_dup (prelude_string_t **string,
                        const char *str);

Create a new prelude_string_t object with a copy of str as it's initial value. The copy is owned by the string and will be freed upon prelude_string_destroy().

Parameters

string

Pointer where to store the created prelude_string_t object.

 

str

Initial string value.

 

Returns

0 on success, a negative value if an error occured.


prelude_string_new_dup_fast ()

int
prelude_string_new_dup_fast (prelude_string_t **string,
                             const char *str,
                             size_t len);

Create a new prelude_string_t object with a copy of str as it's initial value. The copy is owned by the string and will be freed upon prelude_string_destroy().

Parameters

string

Pointer where to store the created prelude_string_t object.

 

str

Initial string value.

 

len

Lenght of str .

 

Returns

0 on success, a negative value if an error occured.


prelude_string_destroy ()

void
prelude_string_destroy (prelude_string_t *string);

Decrease refcount and destroy string . string content content is destroyed if applicable (dup and nodup, or a referenced string that have been modified.

Parameters

string

Pointer to a prelude_string_t object.

 

prelude_string_destroy_internal ()

void
prelude_string_destroy_internal (prelude_string_t *string);

prelude_string_new_nodup_fast ()

int
prelude_string_new_nodup_fast (prelude_string_t **string,
                               char *str,
                               size_t len);

Create a new prelude_string_t object with a reference to str as initial value. str is owned by string and will be freed upon prelude_string_destroy().

Parameters

string

Pointer where to store the created prelude_string_t object.

 

str

Initial string value.

 

len

Lenght of str .

 

Returns

0 on success, a negative value if an error occured.


prelude_string_new_ref_fast ()

int
prelude_string_new_ref_fast (prelude_string_t **string,
                             const char *str,
                             size_t len);

Create a new prelude_string_t object with a reference to str as initial value. str won't be freed upon prelude_string_destroy().

Parameters

string

Pointer where to store the created prelude_string_t object.

 

str

Initial string value.

 

len

Length of str .

 

Returns

0 on success, a negative value if an error occured.


prelude_string_set_dup_fast ()

int
prelude_string_set_dup_fast (prelude_string_t *string,
                             const char *buf,
                             size_t len);

Store a copy of the string pointed by buf in string . The buf copy will be freed upon prelude_string_destroy().

Parameters

string

Pointer to a prelude_string_t object.

 

buf

String to store in string .

 

len

Lenght of buf .

 

Returns

0 on success, or a negative value if an error occured.


prelude_string_set_dup ()

int
prelude_string_set_dup (prelude_string_t *string,
                        const char *buf);

Store a copy of the string pointed by buf in string . The buf copy will be freed upon prelude_string_destroy().

Parameters

string

Pointer to a prelude_string_t object.

 

buf

String to store in string .

 

Returns

0 on success, or a negative value if an error occured.


prelude_string_set_nodup_fast ()

int
prelude_string_set_nodup_fast (prelude_string_t *string,
                               char *buf,
                               size_t len);

Store a reference to the string pointed by buf in string . The referenced buf will be freed upon prelude_string_destroy().

Parameters

string

Pointer to a prelude_string_t object.

 

buf

String to store in string .

 

len

Lenght of buf .

 

Returns

0 on success, or a negative value if an error occured.


prelude_string_set_nodup ()

int
prelude_string_set_nodup (prelude_string_t *string,
                          char *buf);

Store a reference to the string pointed by buf in string . The referenced buf will be freed upon prelude_string_destroy().

Parameters

string

Pointer to a prelude_string_t object.

 

buf

String to store in string .

 

Returns

0 on success, or a negative value if an error occured.


prelude_string_set_ref_fast ()

int
prelude_string_set_ref_fast (prelude_string_t *string,
                             const char *buf,
                             size_t len);

Store a reference to the string pointed by buf in string . The referenced buf value won't be modified or freed.

Parameters

string

Pointer to a prelude_string_t object.

 

buf

String to store in string .

 

len

Lenght of buf .

 

Returns

0 on success, or a negative value if an error occured.


prelude_string_set_ref ()

int
prelude_string_set_ref (prelude_string_t *string,
                        const char *buf);

Store a reference to the string pointed by buf in string . The referenced buf value won't be modified or freed.

Parameters

string

Pointer to a prelude_string_t object.

 

buf

String to store in string .

 

Returns

0 on success, or a negative value if an error occured.


prelude_string_copy_ref ()

int
prelude_string_copy_ref (const prelude_string_t *src,
                         prelude_string_t *dst);

Reference src content within dst . The referenced content won't be modified or freed.

Parameters

src

Pointer to a prelude_string_t object to copy data from.

 

dst

Pointer to a prelude_string_t object to copy data to.

 

Returns

0 on success, or a negative value if an error occured.


prelude_string_copy_dup ()

int
prelude_string_copy_dup (const prelude_string_t *src,
                         prelude_string_t *dst);

Copy src content within dst . The content is owned by src and independent of dst .

Parameters

src

Pointer to a prelude_string_t object to copy data from.

 

dst

Pointer to a prelude_string_t object to copy data to.

 

Returns

0 on success, or a negative value if an error occured.


prelude_string_ref ()

prelude_string_t *
prelude_string_ref (prelude_string_t *string);

Increase string reference count.

Parameters

string

Pointer to a prelude_string_t object to reference.

 

Returns

string .


prelude_string_clone ()

int
prelude_string_clone (const prelude_string_t *src,
                      prelude_string_t **dst);

Clone src within a new prelude_string_t object stored into dst . Data carried by dst and src are independant.

Parameters

src

Pointer to an existing prelude_string_t object.

 

dst

Pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


prelude_string_get_len ()

size_t
prelude_string_get_len (const prelude_string_t *string);

Return the length of the string carried by string object.

Parameters

string

Pointer to a prelude_string_t object.

 

Returns

The length of the string owned by string .


prelude_string_get_string_or_default ()

const char *
prelude_string_get_string_or_default (const prelude_string_t *string,
                                      const char *def);

Return the string carried on by string object, or def if it is empty. There should be no operation done on the returned string since it is still owned by string .

Parameters

string

Pointer to a prelude_string_t object.

 

def

Default value to a return in case string is empty.

 

Returns

The string owned by string or def .


prelude_string_get_string ()

const char *
prelude_string_get_string (const prelude_string_t *string);

Return the string carried on by string object. There should be no operation done on the returned string since it is still owned by string .

Parameters

string

Pointer to a prelude_string_t object.

 

Returns

The string owned by string if any.


prelude_string_get_string_released ()

int
prelude_string_get_string_released (prelude_string_t *string,
                                    char **outptr);

Get string content, and release it so that further operation on string won't modify the returned content.

Parameters

string

Pointer to a prelude_string_t object.

 

outptr

Pointer to an address where to store the released string.

 

Returns

0 on success, or a negative value if an error occured.


prelude_string_is_empty ()

prelude_bool_t
prelude_string_is_empty (const prelude_string_t *string);

Check whether string is empty.

Parameters

string

Pointer to a prelude_string_t object.

 

Returns

TRUE if string is empty, FALSE otherwise.


prelude_string_clear ()

void
prelude_string_clear (prelude_string_t *string);

Reset string content to zero.

Parameters

string

Pointer to a prelude_string_t object.

 

prelude_string_cat ()

int
prelude_string_cat (prelude_string_t *dst,
                    const char *str);

The prelude_string_cat() function appends the str string to the dst prelude_string_t object over-writing the \0' character at the end of @dst, and then adds a terminating \0' character.

Parameters

dst

Pointer to a prelude_string_t object.

 

str

Pointer to a string.

 

Returns

len , or a negative value if an error occurred.


prelude_string_ncat ()

int
prelude_string_ncat (prelude_string_t *dst,
                     const char *str,
                     size_t len);

The prelude_string_ncat() function appends len characters from str to the dst prelude_string_t object over-writing the \0' character at the end of @dst, and then adds a terminating \0' character.

Parameters

dst

Pointer to a prelude_string_t object.

 

str

Pointer to a string.

 

len

Length of str to copy.

 

Returns

len , or a negative value if an error occurred.


prelude_string_sprintf ()

int
prelude_string_sprintf (prelude_string_t *string,
                        const char *fmt);

Produce output according to fmt , and write output to the given string . See snprintf(3) to learn more about fmt format.

Parameters

string

Pointer to a prelude_string_t object.

 

fmt

Format string to use.

 

...

Variable argument list.

 

Returns

The number of characters written, or a negative value if an error occured.


prelude_string_vprintf ()

int
prelude_string_vprintf (prelude_string_t *string,
                        const char *fmt);

Produce output according to fmt , storing argument provided in ap variable argument list, and write the output to the given string . See sprintf(3) for more information on fmt format.

Parameters

string

Pointer to a prelude_string_t object.

 

fmt

Format string to use.

 

ap

Variable argument list.

 

Returns

The number of characters written, or a negative value if an error occured.


prelude_string_set_constant()

#define             prelude_string_set_constant(string, str)

prelude_string_new_constant()

#define             prelude_string_new_constant(string, str)

prelude_string_compare ()

int
prelude_string_compare (const prelude_string_t *str1,
                        const prelude_string_t *str2);

Compare str1 and str2 .

Parameters

str1

Pointer to a prelude_string_t object to compare with str2 .

 

str2

Pointer to a prelude_string_t object to compare with str1 .

 

Returns

0 if str1 and str2 value are equal, a negative value otherwise.

Types and Values

prelude_string_t

typedef struct prelude_string prelude_string_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/object-tree.html0000644000000000000000000000011013726163660022410 xustar000000000000000024 mtime=1599662000.855 24 atime=1599662000.855 24 ctime=1599662000.855 libprelude-5.2.0/docs/api/html/object-tree.html0000644000000000000000000000315713726163660021421 0ustar00rootroot00000000000000 Object Hierarchy: libprelude Reference Manual

Object Hierarchy


libprelude-5.2.0/docs/api/html/PaxHeaders.14770/right-insensitive.png0000644000000000000000000000011013726163660023500 xustar000000000000000024 mtime=1599662000.635 24 atime=1599662000.635 24 ctime=1599662000.635 libprelude-5.2.0/docs/api/html/right-insensitive.png0000644000000000000000000000056513726163660022511 0ustar00rootroot00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÝ ¥­^IDAT8ËÍ’±JÃ`…¿ ‚“‹³«/ S’_$ÄÁÁAqrÐÙW(>€“à‚®©“m¥"]\œ„è(‘49.NÚdÒ3¸ß9Ü{á¯eM#MSI‡Î¹·E¯iHz|3{̲l½3 ,K˜k’ž†ÃáV'@EŸEQlwÀŠçyišî·Äqüçù‘™]KÀíh4:mµÄ¦²,;“t˜¤sç\aƒÆR5/¬7'¹W×õp”’Žs×­I’,Kº1³=àËÌÂ0´j0Wg³ÙØ>€Ý ¦­¯PUÕýïð»¤0 §]?qCÒ«™ùιgþ½~œÉkÄAâ…_IEND®B`‚libprelude-5.2.0/docs/api/html/PaxHeaders.14770/right.png0000644000000000000000000000011013726163660021142 xustar000000000000000024 mtime=1599662000.635 24 atime=1599662000.635 24 ctime=1599662000.635 libprelude-5.2.0/docs/api/html/right.png0000644000000000000000000000040513726163660020144 0ustar00rootroot00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÝ!ÜG’IDAT8ËÕÒ¯aÇñ?›M´½IdErš,¾Ù-¸ÑhîAâIl’Í ¯r’äy§ž}¿ç·s¿X6èæ ö!9¢Ÿ#èD‚ Œr$-¬BrÃ$GÒÀ"$”¹;™á‰æŸÍú—WZêä&–!¸cš·±øŠq \`ðÃÔ軀Oä¾ò=QouføòIEND®B`‚libprelude-5.2.0/docs/api/html/PaxHeaders.14770/style.css0000644000000000000000000000011013726163660021171 xustar000000000000000024 mtime=1599662000.635 24 atime=1599662000.635 24 ctime=1599662000.635 libprelude-5.2.0/docs/api/html/style.css0000644000000000000000000002122413726163660020175 0ustar00rootroot00000000000000body { font-family: cantarell, sans-serif; } .synopsis, .classsynopsis { /* tango:aluminium 1/2 */ background: #eeeeec; background: rgba(238, 238, 236, 0.5); border: solid 1px rgb(238, 238, 236); padding: 0.5em; } .programlisting { /* tango:sky blue 0/1 */ /* fallback for no rgba support */ background: #e6f3ff; border: solid 1px #729fcf; background: rgba(114, 159, 207, 0.1); border: solid 1px rgba(114, 159, 207, 0.2); padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .variablelist td:first-child { vertical-align: top; } span.nowrap { white-space: nowrap; } div.gallery-float { float: left; padding: 10px; } div.gallery-float img { border-style: none; } div.gallery-spacer { clear: both; } a, a:visited { text-decoration: none; /* tango:sky blue 2 */ color: #3465a4; } a:hover { text-decoration: underline; /* tango:sky blue 1 */ color: #729fcf; } div.informaltable table { border-collapse: separate; border-spacing: 1em 0.3em; border: none; } div.informaltable table td, div.informaltable table th { vertical-align: top; } .function_type, .variable_type, .property_type, .signal_type, .parameter_name, .struct_member_name, .union_member_name, .define_keyword, .datatype_keyword, .typedef_keyword { text-align: right; } /* dim non-primary columns */ .c_punctuation, .function_type, .variable_type, .property_type, .signal_type, .define_keyword, .datatype_keyword, .typedef_keyword, .property_flags, .signal_flags, .parameter_annotations, .enum_member_annotations, .struct_member_annotations, .union_member_annotations { color: #888a85; } .function_type a, .function_type a:visited, .function_type a:hover, .property_type a, .property_type a:visited, .property_type a:hover, .signal_type a, .signal_type a:visited, .signal_type a:hover, .signal_flags a, .signal_flags a:visited, .signal_flags a:hover { color: #729fcf; } td p { margin: 0.25em; } div.table table { border-collapse: collapse; border-spacing: 0px; /* tango:aluminium 3 */ border: solid 1px #babdb6; } div.table table td, div.table table th { /* tango:aluminium 3 */ border: solid 1px #babdb6; padding: 3px; vertical-align: top; } div.table table th { /* tango:aluminium 2 */ background-color: #d3d7cf; } h4 { color: #555753; margin-top: 1em; margin-bottom: 1em; } hr { /* tango:aluminium 1 */ color: #d3d7cf; background: #d3d7cf; border: none 0px; height: 1px; clear: both; margin: 2.0em 0em 2.0em 0em; } dl.toc dt { padding-bottom: 0.25em; } dl.toc > dt { padding-top: 0.25em; padding-bottom: 0.25em; font-weight: bold; } dl.toc > dl { padding-bottom: 0.5em; } .parameter { font-style: normal; } .footer { padding-top: 3.5em; /* tango:aluminium 3 */ color: #babdb6; text-align: center; font-size: 80%; } .informalfigure, .figure { margin: 1em; } .informalexample, .example { margin-top: 1em; margin-bottom: 1em; } .warning { /* tango:orange 0/1 */ background: #ffeed9; background: rgba(252, 175, 62, 0.1); border-color: #ffb04f; border-color: rgba(252, 175, 62, 0.2); } .note { /* tango:chameleon 0/0.5 */ background: #d8ffb2; background: rgba(138, 226, 52, 0.1); border-color: #abf562; border-color: rgba(138, 226, 52, 0.2); } div.blockquote { border-color: #eeeeec; } .note, .warning, div.blockquote { padding: 0.5em; border-width: 1px; border-style: solid; margin: 2em; } .note p, .warning p { margin: 0; } div.warning h3.title, div.note h3.title { display: none; } p + div.section { margin-top: 1em; } div.refnamediv, div.refsynopsisdiv, div.refsect1, div.refsect2, div.toc, div.section { margin-bottom: 1em; } /* blob links */ h2 .extralinks, h3 .extralinks { float: right; /* tango:aluminium 3 */ color: #babdb6; font-size: 80%; font-weight: normal; } .lineart { color: #d3d7cf; font-weight: normal; } .annotation { /* tango:aluminium 5 */ color: #555753; font-weight: normal; } .structfield { font-style: normal; font-weight: normal; } acronym,abbr { border-bottom: 1px dotted gray; } /* code listings */ .listing_code .programlisting .normal, .listing_code .programlisting .normal a, .listing_code .programlisting .number, .listing_code .programlisting .cbracket, .listing_code .programlisting .symbol { color: #555753; } .listing_code .programlisting .comment, .listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ .listing_code .programlisting .function, .listing_code .programlisting .function a, .listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ .listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ .listing_code .programlisting .keyword, .listing_code .programlisting .usertype, .listing_code .programlisting .type, .listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; border: solid 1px rgba(114, 159, 207, 0.2); padding: 0px; } .listing_lines, .listing_code { margin-top: 0px; margin-bottom: 0px; padding: 0.5em; } .listing_lines { /* tango:sky blue 0.5 */ background: #a6c5e3; background: rgba(114, 159, 207, 0.2); /* tango:aluminium 6 */ color: #2e3436; } .listing_code { /* tango:sky blue 0 */ background: #e6f3ff; background: rgba(114, 159, 207, 0.1); } .listing_code .programlisting { /* override from previous */ border: none 0px; padding: 0px; background: none; } .listing_lines pre, .listing_code pre { margin: 0px; } @media screen { /* these have a as a first child, but since there are no parent selectors * we can't use that. */ a.footnote { position: relative; top: 0em ! important; } /* this is needed so that the local anchors are displayed below the naviagtion */ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] { display: inline-block; position: relative; top:-5em; } /* this seems to be a bug in the xsl style sheets when generating indexes */ div.index div.index { top: 0em; } /* make space for the fixed navigation bar and add space at the bottom so that * link targets appear somewhat close to top */ body { padding-top: 2.5em; padding-bottom: 500px; max-width: 60em; } p { max-width: 60em; } /* style and size the navigation bar */ table.navigation#top { position: fixed; background: #e2e2e2; border-bottom: solid 1px #babdb6; border-spacing: 5px; margin-top: 0; margin-bottom: 0; top: 0; left: 0; z-index: 10; } table.navigation#top td { padding-left: 6px; padding-right: 6px; } .navigation a, .navigation a:visited { /* tango:sky blue 3 */ color: #204a87; } .navigation a:hover { /* tango:sky blue 2 */ color: #3465a4; } td.shortcuts { /* tango:sky blue 2 */ color: #3465a4; font-size: 80%; white-space: nowrap; } td.shortcuts .dim { color: #babdb6; } .navigation .title { font-size: 80%; max-width: none; margin: 0px; font-weight: normal; } } @media screen and (min-width: 60em) { /* screen larger than 60em */ body { margin: auto; } } @media screen and (max-width: 60em) { /* screen less than 60em */ #nav_hierarchy { display: none; } #nav_interfaces { display: none; } #nav_prerequisites { display: none; } #nav_derived_interfaces { display: none; } #nav_implementations { display: none; } #nav_child_properties { display: none; } #nav_style_properties { display: none; } #nav_index { display: none; } #nav_glossary { display: none; } .gallery_image { display: none; } .property_flags { display: none; } .signal_flags { display: none; } .parameter_annotations { display: none; } .enum_member_annotations { display: none; } .struct_member_annotations { display: none; } .union_member_annotations { display: none; } /* now that a column is hidden, optimize space */ col.parameters_name { width: auto; } col.parameters_description { width: auto; } col.struct_members_name { width: auto; } col.struct_members_description { width: auto; } col.enum_members_name { width: auto; } col.enum_members_description { width: auto; } col.union_members_name { width: auto; } col.union_members_description { width: auto; } .listing_lines { display: none; } } @media print { table.navigation { visibility: collapse; display: none; } div.titlepage table.navigation { visibility: visible; display: table; background: #e2e2e2; border: solid 1px #babdb6; margin-top: 0; margin-bottom: 0; top: 0; left: 0; height: 3em; } } libprelude-5.2.0/docs/api/html/PaxHeaders.14770/up-insensitive.png0000644000000000000000000000011013726163660023007 xustar000000000000000024 mtime=1599662000.635 24 atime=1599662000.635 24 ctime=1599662000.635 libprelude-5.2.0/docs/api/html/up-insensitive.png0000644000000000000000000000056613726163660022021 0ustar00rootroot00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÝwIûIDAT8Ëí’?/QÅÏ™?[êu$¾€V³î›ÑâHTD³ø”ÛˆBM+¡!™ÂÌ<ˆDã+èô[mdÞ\…·bø{º{sÎ/97˜ªSÖÚ£º®»<ìTõ8ŒcÌÉ¿UU­‘¼‡•WÕÍ,Ë®ÿ”e¹EÑ €žªîÉSïmÛ®æy~û+À9·è½¿0`hŒ9u†ªº`Çñr¿ßùpÎÍ{ïÌ8‘m’ ªJkí€-o$—Dä¢  išË¾'¹; ‡ Jr‡äCð\¨*¿HΑ|JÓtCDÆßo#"ã$IÖ<«êBQ½é£êêÉ]•TKúIEND®B`‚libprelude-5.2.0/docs/api/html/PaxHeaders.14770/up.png0000644000000000000000000000011013726163660020451 xustar000000000000000024 mtime=1599662000.635 24 atime=1599662000.635 24 ctime=1599662000.635 libprelude-5.2.0/docs/api/html/up.png0000644000000000000000000000040413726163660017452 0ustar00rootroot00000000000000‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÝ ”èÁ‘IDAT8Ëí’1 ƒ@DŸ•¶{ƒxa™ƒØÄ;$]r =JR´È1,Ë øSd„-©}0°ÌŸÙÏÂÂÎàüo¹L:m-˜¤QÞOäÀ[› Éäåkå T¸zþMÞ Lè¬Ì,š:ךuÀ!tÁK;æ ðP¦õÌôÀp Ot@£l¼ÿò/̵*á§l}IEND®B`‚libprelude-5.2.0/docs/api/html/PaxHeaders.14770/api-index-full.html0000644000000000000000000000011013726163660023023 xustar000000000000000024 mtime=1599662000.725 24 atime=1599662000.724 24 ctime=1599662000.725 libprelude-5.2.0/docs/api/html/api-index-full.html0000644000000000000000000156033413726163660022042 0ustar00rootroot00000000000000 API Index: libprelude Reference Manual

API Index

A

idmef_action_category_t, enum in idmef-tree-wrap
idmef_action_category_to_numeric, function in idmef-tree-wrap
idmef_action_category_to_string, function in idmef-tree-wrap
idmef_action_clone, function in idmef-tree-wrap
idmef_action_compare, function in idmef-tree-wrap
idmef_action_copy, function in idmef-tree-wrap
idmef_action_destroy, function in idmef-tree-wrap
idmef_action_get_category, function in idmef-tree-wrap
idmef_action_get_description, function in idmef-tree-wrap
idmef_action_new, function in idmef-tree-wrap
idmef_action_new_category, function in idmef-tree-wrap
idmef_action_new_description, function in idmef-tree-wrap
idmef_action_print, function in idmef-message-print
idmef_action_read, function in idmef-message-read
idmef_action_ref, function in idmef-tree-wrap
idmef_action_set_category, function in idmef-tree-wrap
idmef_action_set_description, function in idmef-tree-wrap
idmef_action_t, typedef in idmef-tree-wrap
idmef_action_write, function in idmef-message-write
idmef_additional_data_clone, function in idmef-tree-wrap
idmef_additional_data_compare, function in idmef-tree-wrap
idmef_additional_data_copy, function in idmef-tree-wrap
idmef_additional_data_copy_dup, function in idmef-additional-data
idmef_additional_data_copy_ref, function in idmef-additional-data
idmef_additional_data_data_to_string, function in idmef-additional-data
idmef_additional_data_destroy, function in idmef-tree-wrap
idmef_additional_data_get_boolean, function in idmef-additional-data
idmef_additional_data_get_byte, function in idmef-additional-data
idmef_additional_data_get_character, function in idmef-additional-data
idmef_additional_data_get_data, function in idmef-tree-wrap
idmef_additional_data_get_integer, function in idmef-additional-data
idmef_additional_data_get_len, function in idmef-additional-data
idmef_additional_data_get_meaning, function in idmef-tree-wrap
idmef_additional_data_get_real, function in idmef-additional-data
idmef_additional_data_get_type, function in idmef-tree-wrap
idmef_additional_data_is_empty, function in idmef-additional-data
idmef_additional_data_new, function in idmef-tree-wrap
idmef_additional_data_new_boolean, function in idmef-additional-data
idmef_additional_data_new_byte, function in idmef-additional-data
idmef_additional_data_new_byte_string_dup, function in idmef-additional-data
idmef_additional_data_new_byte_string_nodup, function in idmef-additional-data
idmef_additional_data_new_byte_string_ref, function in idmef-additional-data
idmef_additional_data_new_character, function in idmef-additional-data
idmef_additional_data_new_data, function in idmef-tree-wrap
idmef_additional_data_new_integer, function in idmef-additional-data
idmef_additional_data_new_meaning, function in idmef-tree-wrap
idmef_additional_data_new_real, function in idmef-additional-data
idmef_additional_data_new_type, function in idmef-tree-wrap
idmef_additional_data_print, function in idmef-message-print
idmef_additional_data_read, function in idmef-message-read
idmef_additional_data_ref, function in idmef-tree-wrap
idmef_additional_data_set_boolean, function in idmef-additional-data
idmef_additional_data_set_byte, function in idmef-additional-data
idmef_additional_data_set_byte_string_dup, function in idmef-additional-data
idmef_additional_data_set_byte_string_nodup, function in idmef-additional-data
idmef_additional_data_set_byte_string_ref, function in idmef-additional-data
idmef_additional_data_set_character, function in idmef-additional-data
idmef_additional_data_set_data, function in idmef-tree-wrap
idmef_additional_data_set_integer, function in idmef-additional-data
idmef_additional_data_set_meaning, function in idmef-tree-wrap
idmef_additional_data_set_real, function in idmef-additional-data
idmef_additional_data_set_type, function in idmef-tree-wrap
idmef_additional_data_t, typedef in idmef-tree-wrap
idmef_additional_data_type_t, enum in idmef-tree-wrap
idmef_additional_data_type_to_numeric, function in idmef-tree-wrap
idmef_additional_data_type_to_string, function in idmef-tree-wrap
idmef_additional_data_write, function in idmef-message-write
idmef_address_category_t, enum in idmef-tree-wrap
idmef_address_category_to_numeric, function in idmef-tree-wrap
idmef_address_category_to_string, function in idmef-tree-wrap
idmef_address_clone, function in idmef-tree-wrap
idmef_address_compare, function in idmef-tree-wrap
idmef_address_copy, function in idmef-tree-wrap
idmef_address_destroy, function in idmef-tree-wrap
idmef_address_get_address, function in idmef-tree-wrap
idmef_address_get_category, function in idmef-tree-wrap
idmef_address_get_ident, function in idmef-tree-wrap
idmef_address_get_netmask, function in idmef-tree-wrap
idmef_address_get_vlan_name, function in idmef-tree-wrap
idmef_address_get_vlan_num, function in idmef-tree-wrap
idmef_address_new, function in idmef-tree-wrap
idmef_address_new_address, function in idmef-tree-wrap
idmef_address_new_category, function in idmef-tree-wrap
idmef_address_new_ident, function in idmef-tree-wrap
idmef_address_new_netmask, function in idmef-tree-wrap
idmef_address_new_vlan_name, function in idmef-tree-wrap
idmef_address_new_vlan_num, function in idmef-tree-wrap
idmef_address_print, function in idmef-message-print
idmef_address_read, function in idmef-message-read
idmef_address_ref, function in idmef-tree-wrap
idmef_address_set_address, function in idmef-tree-wrap
idmef_address_set_category, function in idmef-tree-wrap
idmef_address_set_ident, function in idmef-tree-wrap
idmef_address_set_netmask, function in idmef-tree-wrap
idmef_address_set_vlan_name, function in idmef-tree-wrap
idmef_address_set_vlan_num, function in idmef-tree-wrap
idmef_address_t, typedef in idmef-tree-wrap
idmef_address_unset_vlan_num, function in idmef-tree-wrap
idmef_address_write, function in idmef-message-write
idmef_alertident_clone, function in idmef-tree-wrap
idmef_alertident_compare, function in idmef-tree-wrap
idmef_alertident_copy, function in idmef-tree-wrap
idmef_alertident_destroy, function in idmef-tree-wrap
idmef_alertident_get_alertident, function in idmef-tree-wrap
idmef_alertident_get_analyzerid, function in idmef-tree-wrap
idmef_alertident_new, function in idmef-tree-wrap
idmef_alertident_new_alertident, function in idmef-tree-wrap
idmef_alertident_new_analyzerid, function in idmef-tree-wrap
idmef_alertident_print, function in idmef-message-print
idmef_alertident_read, function in idmef-message-read
idmef_alertident_ref, function in idmef-tree-wrap
idmef_alertident_set_alertident, function in idmef-tree-wrap
idmef_alertident_set_analyzerid, function in idmef-tree-wrap
idmef_alertident_t, typedef in idmef-tree-wrap
idmef_alertident_write, function in idmef-message-write
idmef_alert_clone, function in idmef-tree-wrap
idmef_alert_compare, function in idmef-tree-wrap
idmef_alert_copy, function in idmef-tree-wrap
idmef_alert_destroy, function in idmef-tree-wrap
idmef_alert_get_analyzer_time, function in idmef-tree-wrap
idmef_alert_get_assessment, function in idmef-tree-wrap
idmef_alert_get_classification, function in idmef-tree-wrap
idmef_alert_get_correlation_alert, function in idmef-tree-wrap
idmef_alert_get_create_time, function in idmef-tree-wrap
idmef_alert_get_detect_time, function in idmef-tree-wrap
idmef_alert_get_messageid, function in idmef-tree-wrap
idmef_alert_get_next_additional_data, function in idmef-tree-wrap
idmef_alert_get_next_analyzer, function in idmef-tree-wrap
idmef_alert_get_next_source, function in idmef-tree-wrap
idmef_alert_get_next_target, function in idmef-tree-wrap
idmef_alert_get_overflow_alert, function in idmef-tree-wrap
idmef_alert_get_tool_alert, function in idmef-tree-wrap
idmef_alert_get_type, function in idmef-tree-wrap
idmef_alert_new, function in idmef-tree-wrap
idmef_alert_new_additional_data, function in idmef-tree-wrap
idmef_alert_new_analyzer, function in idmef-tree-wrap
idmef_alert_new_analyzer_time, function in idmef-tree-wrap
idmef_alert_new_assessment, function in idmef-tree-wrap
idmef_alert_new_classification, function in idmef-tree-wrap
idmef_alert_new_correlation_alert, function in idmef-tree-wrap
idmef_alert_new_create_time, function in idmef-tree-wrap
idmef_alert_new_detect_time, function in idmef-tree-wrap
idmef_alert_new_messageid, function in idmef-tree-wrap
idmef_alert_new_overflow_alert, function in idmef-tree-wrap
idmef_alert_new_source, function in idmef-tree-wrap
idmef_alert_new_target, function in idmef-tree-wrap
idmef_alert_new_tool_alert, function in idmef-tree-wrap
idmef_alert_print, function in idmef-message-print
idmef_alert_read, function in idmef-message-read
idmef_alert_ref, function in idmef-tree-wrap
idmef_alert_set_additional_data, function in idmef-tree-wrap
idmef_alert_set_analyzer, function in idmef-tree-wrap
idmef_alert_set_analyzer_time, function in idmef-tree-wrap
idmef_alert_set_assessment, function in idmef-tree-wrap
idmef_alert_set_classification, function in idmef-tree-wrap
idmef_alert_set_correlation_alert, function in idmef-tree-wrap
idmef_alert_set_create_time, function in idmef-tree-wrap
idmef_alert_set_detect_time, function in idmef-tree-wrap
idmef_alert_set_messageid, function in idmef-tree-wrap
idmef_alert_set_overflow_alert, function in idmef-tree-wrap
idmef_alert_set_source, function in idmef-tree-wrap
idmef_alert_set_target, function in idmef-tree-wrap
idmef_alert_set_tool_alert, function in idmef-tree-wrap
idmef_alert_t, typedef in idmef-tree-wrap
idmef_alert_type_t, enum in idmef-tree-wrap
idmef_alert_type_to_numeric, function in idmef-tree-wrap
idmef_alert_type_to_string, function in idmef-tree-wrap
idmef_alert_write, function in idmef-message-write
idmef_analyzer_clone, function in idmef-tree-wrap
idmef_analyzer_compare, function in idmef-tree-wrap
idmef_analyzer_copy, function in idmef-tree-wrap
idmef_analyzer_destroy, function in idmef-tree-wrap
idmef_analyzer_get_analyzerid, function in idmef-tree-wrap
idmef_analyzer_get_class, function in idmef-tree-wrap
idmef_analyzer_get_manufacturer, function in idmef-tree-wrap
idmef_analyzer_get_model, function in idmef-tree-wrap
idmef_analyzer_get_name, function in idmef-tree-wrap
idmef_analyzer_get_node, function in idmef-tree-wrap
idmef_analyzer_get_ostype, function in idmef-tree-wrap
idmef_analyzer_get_osversion, function in idmef-tree-wrap
idmef_analyzer_get_process, function in idmef-tree-wrap
idmef_analyzer_get_version, function in idmef-tree-wrap
idmef_analyzer_new, function in idmef-tree-wrap
idmef_analyzer_new_analyzerid, function in idmef-tree-wrap
idmef_analyzer_new_class, function in idmef-tree-wrap
idmef_analyzer_new_manufacturer, function in idmef-tree-wrap
idmef_analyzer_new_model, function in idmef-tree-wrap
idmef_analyzer_new_name, function in idmef-tree-wrap
idmef_analyzer_new_node, function in idmef-tree-wrap
idmef_analyzer_new_ostype, function in idmef-tree-wrap
idmef_analyzer_new_osversion, function in idmef-tree-wrap
idmef_analyzer_new_process, function in idmef-tree-wrap
idmef_analyzer_new_version, function in idmef-tree-wrap
idmef_analyzer_print, function in idmef-message-print
idmef_analyzer_read, function in idmef-message-read
idmef_analyzer_ref, function in idmef-tree-wrap
idmef_analyzer_set_analyzerid, function in idmef-tree-wrap
idmef_analyzer_set_class, function in idmef-tree-wrap
idmef_analyzer_set_manufacturer, function in idmef-tree-wrap
idmef_analyzer_set_model, function in idmef-tree-wrap
idmef_analyzer_set_name, function in idmef-tree-wrap
idmef_analyzer_set_node, function in idmef-tree-wrap
idmef_analyzer_set_ostype, function in idmef-tree-wrap
idmef_analyzer_set_osversion, function in idmef-tree-wrap
idmef_analyzer_set_process, function in idmef-tree-wrap
idmef_analyzer_set_version, function in idmef-tree-wrap
idmef_analyzer_t, typedef in idmef-tree-wrap
idmef_analyzer_write, function in idmef-message-write
idmef_assessment_clone, function in idmef-tree-wrap
idmef_assessment_compare, function in idmef-tree-wrap
idmef_assessment_copy, function in idmef-tree-wrap
idmef_assessment_destroy, function in idmef-tree-wrap
idmef_assessment_get_confidence, function in idmef-tree-wrap
idmef_assessment_get_impact, function in idmef-tree-wrap
idmef_assessment_get_next_action, function in idmef-tree-wrap
idmef_assessment_new, function in idmef-tree-wrap
idmef_assessment_new_action, function in idmef-tree-wrap
idmef_assessment_new_confidence, function in idmef-tree-wrap
idmef_assessment_new_impact, function in idmef-tree-wrap
idmef_assessment_print, function in idmef-message-print
idmef_assessment_read, function in idmef-message-read
idmef_assessment_ref, function in idmef-tree-wrap
idmef_assessment_set_action, function in idmef-tree-wrap
idmef_assessment_set_confidence, function in idmef-tree-wrap
idmef_assessment_set_impact, function in idmef-tree-wrap
idmef_assessment_t, typedef in idmef-tree-wrap
idmef_assessment_write, function in idmef-message-write

C

idmef_checksum_algorithm_t, enum in idmef-tree-wrap
idmef_checksum_algorithm_to_numeric, function in idmef-tree-wrap
idmef_checksum_algorithm_to_string, function in idmef-tree-wrap
idmef_checksum_clone, function in idmef-tree-wrap
idmef_checksum_compare, function in idmef-tree-wrap
idmef_checksum_copy, function in idmef-tree-wrap
idmef_checksum_destroy, function in idmef-tree-wrap
idmef_checksum_get_algorithm, function in idmef-tree-wrap
idmef_checksum_get_key, function in idmef-tree-wrap
idmef_checksum_get_value, function in idmef-tree-wrap
idmef_checksum_new, function in idmef-tree-wrap
idmef_checksum_new_algorithm, function in idmef-tree-wrap
idmef_checksum_new_key, function in idmef-tree-wrap
idmef_checksum_new_value, function in idmef-tree-wrap
idmef_checksum_print, function in idmef-message-print
idmef_checksum_read, function in idmef-message-read
idmef_checksum_ref, function in idmef-tree-wrap
idmef_checksum_set_algorithm, function in idmef-tree-wrap
idmef_checksum_set_key, function in idmef-tree-wrap
idmef_checksum_set_value, function in idmef-tree-wrap
idmef_checksum_t, typedef in idmef-tree-wrap
idmef_checksum_write, function in idmef-message-write
idmef_classification_clone, function in idmef-tree-wrap
idmef_classification_compare, function in idmef-tree-wrap
idmef_classification_copy, function in idmef-tree-wrap
idmef_classification_destroy, function in idmef-tree-wrap
idmef_classification_get_ident, function in idmef-tree-wrap
idmef_classification_get_next_reference, function in idmef-tree-wrap
idmef_classification_get_text, function in idmef-tree-wrap
idmef_classification_new, function in idmef-tree-wrap
idmef_classification_new_ident, function in idmef-tree-wrap
idmef_classification_new_reference, function in idmef-tree-wrap
idmef_classification_new_text, function in idmef-tree-wrap
idmef_classification_print, function in idmef-message-print
idmef_classification_read, function in idmef-message-read
idmef_classification_ref, function in idmef-tree-wrap
idmef_classification_set_ident, function in idmef-tree-wrap
idmef_classification_set_reference, function in idmef-tree-wrap
idmef_classification_set_text, function in idmef-tree-wrap
idmef_classification_t, typedef in idmef-tree-wrap
idmef_classification_write, function in idmef-message-write
IDMEF_CLASS_ID_ACTION, macro in idmef-tree-wrap
IDMEF_CLASS_ID_ACTION_CATEGORY, macro in idmef-tree-wrap
IDMEF_CLASS_ID_ADDITIONAL_DATA, macro in idmef-tree-wrap
IDMEF_CLASS_ID_ADDITIONAL_DATA_TYPE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_ADDRESS, macro in idmef-tree-wrap
IDMEF_CLASS_ID_ADDRESS_CATEGORY, macro in idmef-tree-wrap
IDMEF_CLASS_ID_ALERT, macro in idmef-tree-wrap
IDMEF_CLASS_ID_ALERTIDENT, macro in idmef-tree-wrap
IDMEF_CLASS_ID_ALERT_TYPE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_ANALYZER, macro in idmef-tree-wrap
IDMEF_CLASS_ID_ASSESSMENT, macro in idmef-tree-wrap
IDMEF_CLASS_ID_CHECKSUM, macro in idmef-tree-wrap
IDMEF_CLASS_ID_CHECKSUM_ALGORITHM, macro in idmef-tree-wrap
IDMEF_CLASS_ID_CLASSIFICATION, macro in idmef-tree-wrap
IDMEF_CLASS_ID_CONFIDENCE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_CONFIDENCE_RATING, macro in idmef-tree-wrap
IDMEF_CLASS_ID_CORRELATION_ALERT, macro in idmef-tree-wrap
IDMEF_CLASS_ID_FILE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_FILE_ACCESS, macro in idmef-tree-wrap
IDMEF_CLASS_ID_FILE_CATEGORY, macro in idmef-tree-wrap
IDMEF_CLASS_ID_FILE_FSTYPE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_HEARTBEAT, macro in idmef-tree-wrap
IDMEF_CLASS_ID_IMPACT, macro in idmef-tree-wrap
IDMEF_CLASS_ID_IMPACT_COMPLETION, macro in idmef-tree-wrap
IDMEF_CLASS_ID_IMPACT_SEVERITY, macro in idmef-tree-wrap
IDMEF_CLASS_ID_IMPACT_TYPE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_INODE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_LINKAGE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_LINKAGE_CATEGORY, macro in idmef-tree-wrap
IDMEF_CLASS_ID_MESSAGE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_MESSAGE_TYPE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_NODE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_NODE_CATEGORY, macro in idmef-tree-wrap
IDMEF_CLASS_ID_OVERFLOW_ALERT, macro in idmef-tree-wrap
IDMEF_CLASS_ID_PROCESS, macro in idmef-tree-wrap
IDMEF_CLASS_ID_REFERENCE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_REFERENCE_ORIGIN, macro in idmef-tree-wrap
IDMEF_CLASS_ID_SERVICE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_SERVICE_TYPE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_SNMP_SERVICE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_SOURCE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_SOURCE_SPOOFED, macro in idmef-tree-wrap
IDMEF_CLASS_ID_TARGET, macro in idmef-tree-wrap
IDMEF_CLASS_ID_TARGET_DECOY, macro in idmef-tree-wrap
IDMEF_CLASS_ID_TOOL_ALERT, macro in idmef-tree-wrap
IDMEF_CLASS_ID_USER, macro in idmef-tree-wrap
IDMEF_CLASS_ID_USER_CATEGORY, macro in idmef-tree-wrap
IDMEF_CLASS_ID_USER_ID, macro in idmef-tree-wrap
IDMEF_CLASS_ID_USER_ID_TYPE, macro in idmef-tree-wrap
IDMEF_CLASS_ID_WEB_SERVICE, macro in idmef-tree-wrap
idmef_confidence_clone, function in idmef-tree-wrap
idmef_confidence_compare, function in idmef-tree-wrap
idmef_confidence_copy, function in idmef-tree-wrap
idmef_confidence_destroy, function in idmef-tree-wrap
idmef_confidence_get_confidence, function in idmef-tree-wrap
idmef_confidence_get_rating, function in idmef-tree-wrap
idmef_confidence_new, function in idmef-tree-wrap
idmef_confidence_new_confidence, function in idmef-tree-wrap
idmef_confidence_new_rating, function in idmef-tree-wrap
idmef_confidence_print, function in idmef-message-print
idmef_confidence_rating_t, enum in idmef-tree-wrap
idmef_confidence_rating_to_numeric, function in idmef-tree-wrap
idmef_confidence_rating_to_string, function in idmef-tree-wrap
idmef_confidence_read, function in idmef-message-read
idmef_confidence_ref, function in idmef-tree-wrap
idmef_confidence_set_confidence, function in idmef-tree-wrap
idmef_confidence_set_rating, function in idmef-tree-wrap
idmef_confidence_t, typedef in idmef-tree-wrap
idmef_confidence_write, function in idmef-message-write
idmef_correlation_alert_clone, function in idmef-tree-wrap
idmef_correlation_alert_compare, function in idmef-tree-wrap
idmef_correlation_alert_copy, function in idmef-tree-wrap
idmef_correlation_alert_destroy, function in idmef-tree-wrap
idmef_correlation_alert_get_name, function in idmef-tree-wrap
idmef_correlation_alert_get_next_alertident, function in idmef-tree-wrap
idmef_correlation_alert_new, function in idmef-tree-wrap
idmef_correlation_alert_new_alertident, function in idmef-tree-wrap
idmef_correlation_alert_new_name, function in idmef-tree-wrap
idmef_correlation_alert_print, function in idmef-message-print
idmef_correlation_alert_read, function in idmef-message-read
idmef_correlation_alert_ref, function in idmef-tree-wrap
idmef_correlation_alert_set_alertident, function in idmef-tree-wrap
idmef_correlation_alert_set_name, function in idmef-tree-wrap
idmef_correlation_alert_t, typedef in idmef-tree-wrap
idmef_correlation_alert_write, function in idmef-message-write
idmef_criteria_and_criteria, function in idmef-criteria
idmef_criteria_clone, function in idmef-criteria
idmef_criteria_destroy, function in idmef-criteria
idmef_criteria_is_criterion, function in idmef-criteria
idmef_criteria_match, function in idmef-criteria
idmef_criteria_new, function in idmef-criteria
idmef_criteria_new_from_string, function in idmef-criteria
idmef_criteria_or_criteria, function in idmef-criteria
idmef_criteria_print, function in idmef-criteria
idmef_criteria_ref, function in idmef-criteria
idmef_criteria_t, typedef in idmef-criteria
idmef_criteria_to_string, function in idmef-criteria
idmef_criterion_new, function in idmef-criteria
idmef_criterion_operator_t, enum in idmef-criteria
idmef_criterion_value_clone, function in idmef-criterion-value
idmef_criterion_value_destroy, function in idmef-criterion-value
idmef_criterion_value_get_broken_down_time, function in idmef-criterion-value
idmef_criterion_value_get_regex, function in idmef-criterion-value
idmef_criterion_value_get_type, function in idmef-criterion-value
idmef_criterion_value_get_value, function in idmef-criterion-value
idmef_criterion_value_match, function in idmef-criterion-value
idmef_criterion_value_new, function in idmef-criterion-value
idmef_criterion_value_new_broken_down_time, function in idmef-criterion-value
idmef_criterion_value_new_from_string, function in idmef-criterion-value
idmef_criterion_value_new_regex, function in idmef-criterion-value
idmef_criterion_value_new_value, function in idmef-criterion-value
idmef_criterion_value_print, function in idmef-criterion-value
idmef_criterion_value_t, typedef in idmef-criterion-value
idmef_criterion_value_to_string, function in idmef-criterion-value
idmef_criterion_value_type_t, enum in idmef-criterion-value

D

idmef_data_clone, function in idmef-data
idmef_data_compare, function in idmef-tree-wrap
idmef_data_copy_dup, function in idmef-data
idmef_data_copy_ref, function in idmef-data
idmef_data_destroy, function in idmef-data
idmef_data_destroy_internal, function in idmef-data
idmef_data_get_byte, function in idmef-data
idmef_data_get_byte_string, function in idmef-data
idmef_data_get_char, function in idmef-data
idmef_data_get_char_string, function in idmef-data
idmef_data_get_data, function in idmef-data
idmef_data_get_float, function in idmef-data
idmef_data_get_len, function in idmef-data
idmef_data_get_type, function in idmef-data
idmef_data_get_uint32, function in idmef-data
idmef_data_get_uint64, function in idmef-data
idmef_data_is_empty, function in idmef-data
idmef_data_new, function in idmef-data
idmef_data_new_byte, function in idmef-data
idmef_data_new_byte_string_dup, function in idmef-data
idmef_data_new_byte_string_nodup, function in idmef-data
idmef_data_new_byte_string_ref, function in idmef-data
idmef_data_new_char, function in idmef-data
idmef_data_new_char_string_dup, function in idmef-data
idmef_data_new_char_string_dup_fast, function in idmef-data
idmef_data_new_char_string_nodup, function in idmef-data
idmef_data_new_char_string_nodup_fast, function in idmef-data
idmef_data_new_char_string_ref, function in idmef-data
idmef_data_new_char_string_ref_fast, function in idmef-data
idmef_data_new_float, function in idmef-data
idmef_data_new_ptr_dup_fast, function in idmef-data
idmef_data_new_ptr_nodup_fast, function in idmef-data
idmef_data_new_ptr_ref_fast, function in idmef-data
idmef_data_new_uint32, function in idmef-data
idmef_data_new_uint64, function in idmef-data
idmef_data_ref, function in idmef-data
idmef_data_set_byte, function in idmef-data
idmef_data_set_byte_string_dup, function in idmef-data
idmef_data_set_byte_string_nodup, function in idmef-data
idmef_data_set_byte_string_ref, function in idmef-data
idmef_data_set_char, function in idmef-data
idmef_data_set_char_string_constant, macro in idmef-data
idmef_data_set_char_string_dup, function in idmef-data
idmef_data_set_char_string_dup_fast, function in idmef-data
idmef_data_set_char_string_nodup, function in idmef-data
idmef_data_set_char_string_nodup_fast, function in idmef-data
idmef_data_set_char_string_ref, function in idmef-data
idmef_data_set_char_string_ref_fast, function in idmef-data
idmef_data_set_float, function in idmef-data
idmef_data_set_ptr_dup_fast, function in idmef-data
idmef_data_set_ptr_nodup_fast, function in idmef-data
idmef_data_set_ptr_ref_fast, function in idmef-data
idmef_data_set_uint32, function in idmef-data
idmef_data_set_uint64, function in idmef-data
idmef_data_to_string, function in idmef-data
idmef_data_type_t, enum in idmef-data

F

idmef_file_access_clone, function in idmef-tree-wrap
idmef_file_access_compare, function in idmef-tree-wrap
idmef_file_access_copy, function in idmef-tree-wrap
idmef_file_access_destroy, function in idmef-tree-wrap
idmef_file_access_get_next_permission, function in idmef-tree-wrap
idmef_file_access_get_user_id, function in idmef-tree-wrap
idmef_file_access_new, function in idmef-tree-wrap
idmef_file_access_new_permission, function in idmef-tree-wrap
idmef_file_access_new_user_id, function in idmef-tree-wrap
idmef_file_access_print, function in idmef-message-print
idmef_file_access_read, function in idmef-message-read
idmef_file_access_ref, function in idmef-tree-wrap
idmef_file_access_set_permission, function in idmef-tree-wrap
idmef_file_access_set_user_id, function in idmef-tree-wrap
idmef_file_access_t, typedef in idmef-tree-wrap
idmef_file_access_write, function in idmef-message-write
idmef_file_category_t, enum in idmef-tree-wrap
idmef_file_category_to_numeric, function in idmef-tree-wrap
idmef_file_category_to_string, function in idmef-tree-wrap
idmef_file_clone, function in idmef-tree-wrap
idmef_file_compare, function in idmef-tree-wrap
idmef_file_copy, function in idmef-tree-wrap
idmef_file_destroy, function in idmef-tree-wrap
idmef_file_fstype_t, enum in idmef-tree-wrap
idmef_file_fstype_to_numeric, function in idmef-tree-wrap
idmef_file_fstype_to_string, function in idmef-tree-wrap
idmef_file_get_access_time, function in idmef-tree-wrap
idmef_file_get_category, function in idmef-tree-wrap
idmef_file_get_create_time, function in idmef-tree-wrap
idmef_file_get_data_size, function in idmef-tree-wrap
idmef_file_get_disk_size, function in idmef-tree-wrap
idmef_file_get_file_type, function in idmef-tree-wrap
idmef_file_get_fstype, function in idmef-tree-wrap
idmef_file_get_ident, function in idmef-tree-wrap
idmef_file_get_inode, function in idmef-tree-wrap
idmef_file_get_modify_time, function in idmef-tree-wrap
idmef_file_get_name, function in idmef-tree-wrap
idmef_file_get_next_checksum, function in idmef-tree-wrap
idmef_file_get_next_file_access, function in idmef-tree-wrap
idmef_file_get_next_linkage, function in idmef-tree-wrap
idmef_file_get_path, function in idmef-tree-wrap
idmef_file_new, function in idmef-tree-wrap
idmef_file_new_access_time, function in idmef-tree-wrap
idmef_file_new_category, function in idmef-tree-wrap
idmef_file_new_checksum, function in idmef-tree-wrap
idmef_file_new_create_time, function in idmef-tree-wrap
idmef_file_new_data_size, function in idmef-tree-wrap
idmef_file_new_disk_size, function in idmef-tree-wrap
idmef_file_new_file_access, function in idmef-tree-wrap
idmef_file_new_file_type, function in idmef-tree-wrap
idmef_file_new_fstype, function in idmef-tree-wrap
idmef_file_new_ident, function in idmef-tree-wrap
idmef_file_new_inode, function in idmef-tree-wrap
idmef_file_new_linkage, function in idmef-tree-wrap
idmef_file_new_modify_time, function in idmef-tree-wrap
idmef_file_new_name, function in idmef-tree-wrap
idmef_file_new_path, function in idmef-tree-wrap
idmef_file_print, function in idmef-message-print
idmef_file_read, function in idmef-message-read
idmef_file_ref, function in idmef-tree-wrap
idmef_file_set_access_time, function in idmef-tree-wrap
idmef_file_set_category, function in idmef-tree-wrap
idmef_file_set_checksum, function in idmef-tree-wrap
idmef_file_set_create_time, function in idmef-tree-wrap
idmef_file_set_data_size, function in idmef-tree-wrap
idmef_file_set_disk_size, function in idmef-tree-wrap
idmef_file_set_file_access, function in idmef-tree-wrap
idmef_file_set_file_type, function in idmef-tree-wrap
idmef_file_set_fstype, function in idmef-tree-wrap
idmef_file_set_ident, function in idmef-tree-wrap
idmef_file_set_inode, function in idmef-tree-wrap
idmef_file_set_linkage, function in idmef-tree-wrap
idmef_file_set_modify_time, function in idmef-tree-wrap
idmef_file_set_name, function in idmef-tree-wrap
idmef_file_set_path, function in idmef-tree-wrap
idmef_file_t, typedef in idmef-tree-wrap
idmef_file_unset_data_size, function in idmef-tree-wrap
idmef_file_unset_disk_size, function in idmef-tree-wrap
idmef_file_unset_fstype, function in idmef-tree-wrap
idmef_file_write, function in idmef-message-write

H

idmef_heartbeat_clone, function in idmef-tree-wrap
idmef_heartbeat_compare, function in idmef-tree-wrap
idmef_heartbeat_copy, function in idmef-tree-wrap
idmef_heartbeat_destroy, function in idmef-tree-wrap
idmef_heartbeat_get_analyzer_time, function in idmef-tree-wrap
idmef_heartbeat_get_create_time, function in idmef-tree-wrap
idmef_heartbeat_get_heartbeat_interval, function in idmef-tree-wrap
idmef_heartbeat_get_messageid, function in idmef-tree-wrap
idmef_heartbeat_get_next_additional_data, function in idmef-tree-wrap
idmef_heartbeat_get_next_analyzer, function in idmef-tree-wrap
idmef_heartbeat_new, function in idmef-tree-wrap
idmef_heartbeat_new_additional_data, function in idmef-tree-wrap
idmef_heartbeat_new_analyzer, function in idmef-tree-wrap
idmef_heartbeat_new_analyzer_time, function in idmef-tree-wrap
idmef_heartbeat_new_create_time, function in idmef-tree-wrap
idmef_heartbeat_new_heartbeat_interval, function in idmef-tree-wrap
idmef_heartbeat_new_messageid, function in idmef-tree-wrap
idmef_heartbeat_print, function in idmef-message-print
idmef_heartbeat_read, function in idmef-message-read
idmef_heartbeat_ref, function in idmef-tree-wrap
idmef_heartbeat_set_additional_data, function in idmef-tree-wrap
idmef_heartbeat_set_analyzer, function in idmef-tree-wrap
idmef_heartbeat_set_analyzer_time, function in idmef-tree-wrap
idmef_heartbeat_set_create_time, function in idmef-tree-wrap
idmef_heartbeat_set_heartbeat_interval, function in idmef-tree-wrap
idmef_heartbeat_set_messageid, function in idmef-tree-wrap
idmef_heartbeat_t, typedef in idmef-tree-wrap
idmef_heartbeat_unset_heartbeat_interval, function in idmef-tree-wrap
idmef_heartbeat_write, function in idmef-message-write

I

idmef_impact_clone, function in idmef-tree-wrap
idmef_impact_compare, function in idmef-tree-wrap
idmef_impact_completion_t, enum in idmef-tree-wrap
idmef_impact_completion_to_numeric, function in idmef-tree-wrap
idmef_impact_completion_to_string, function in idmef-tree-wrap
idmef_impact_copy, function in idmef-tree-wrap
idmef_impact_destroy, function in idmef-tree-wrap
idmef_impact_get_completion, function in idmef-tree-wrap
idmef_impact_get_description, function in idmef-tree-wrap
idmef_impact_get_severity, function in idmef-tree-wrap
idmef_impact_get_type, function in idmef-tree-wrap
idmef_impact_new, function in idmef-tree-wrap
idmef_impact_new_completion, function in idmef-tree-wrap
idmef_impact_new_description, function in idmef-tree-wrap
idmef_impact_new_severity, function in idmef-tree-wrap
idmef_impact_new_type, function in idmef-tree-wrap
idmef_impact_print, function in idmef-message-print
idmef_impact_read, function in idmef-message-read
idmef_impact_ref, function in idmef-tree-wrap
idmef_impact_set_completion, function in idmef-tree-wrap
idmef_impact_set_description, function in idmef-tree-wrap
idmef_impact_set_severity, function in idmef-tree-wrap
idmef_impact_set_type, function in idmef-tree-wrap
idmef_impact_severity_t, enum in idmef-tree-wrap
idmef_impact_severity_to_numeric, function in idmef-tree-wrap
idmef_impact_severity_to_string, function in idmef-tree-wrap
idmef_impact_t, typedef in idmef-tree-wrap
idmef_impact_type_t, enum in idmef-tree-wrap
idmef_impact_type_to_numeric, function in idmef-tree-wrap
idmef_impact_type_to_string, function in idmef-tree-wrap
idmef_impact_unset_completion, function in idmef-tree-wrap
idmef_impact_unset_severity, function in idmef-tree-wrap
idmef_impact_write, function in idmef-message-write
idmef_inode_clone, function in idmef-tree-wrap
idmef_inode_compare, function in idmef-tree-wrap
idmef_inode_copy, function in idmef-tree-wrap
idmef_inode_destroy, function in idmef-tree-wrap
idmef_inode_get_change_time, function in idmef-tree-wrap
idmef_inode_get_c_major_device, function in idmef-tree-wrap
idmef_inode_get_c_minor_device, function in idmef-tree-wrap
idmef_inode_get_major_device, function in idmef-tree-wrap
idmef_inode_get_minor_device, function in idmef-tree-wrap
idmef_inode_get_number, function in idmef-tree-wrap
idmef_inode_new, function in idmef-tree-wrap
idmef_inode_new_change_time, function in idmef-tree-wrap
idmef_inode_new_c_major_device, function in idmef-tree-wrap
idmef_inode_new_c_minor_device, function in idmef-tree-wrap
idmef_inode_new_major_device, function in idmef-tree-wrap
idmef_inode_new_minor_device, function in idmef-tree-wrap
idmef_inode_new_number, function in idmef-tree-wrap
idmef_inode_print, function in idmef-message-print
idmef_inode_read, function in idmef-message-read
idmef_inode_ref, function in idmef-tree-wrap
idmef_inode_set_change_time, function in idmef-tree-wrap
idmef_inode_set_c_major_device, function in idmef-tree-wrap
idmef_inode_set_c_minor_device, function in idmef-tree-wrap
idmef_inode_set_major_device, function in idmef-tree-wrap
idmef_inode_set_minor_device, function in idmef-tree-wrap
idmef_inode_set_number, function in idmef-tree-wrap
idmef_inode_t, typedef in idmef-tree-wrap
idmef_inode_unset_c_major_device, function in idmef-tree-wrap
idmef_inode_unset_c_minor_device, function in idmef-tree-wrap
idmef_inode_unset_major_device, function in idmef-tree-wrap
idmef_inode_unset_minor_device, function in idmef-tree-wrap
idmef_inode_unset_number, function in idmef-tree-wrap
idmef_inode_write, function in idmef-message-write
int16_t, typedef in prelude-inttypes
int32_t, typedef in prelude-inttypes
int64_t, typedef in prelude-inttypes
int8_t, typedef in prelude-inttypes

L

LIBPRELUDE_VERSION, macro in prelude
idmef_linkage_category_t, enum in idmef-tree-wrap
idmef_linkage_category_to_numeric, function in idmef-tree-wrap
idmef_linkage_category_to_string, function in idmef-tree-wrap
idmef_linkage_clone, function in idmef-tree-wrap
idmef_linkage_compare, function in idmef-tree-wrap
idmef_linkage_copy, function in idmef-tree-wrap
idmef_linkage_destroy, function in idmef-tree-wrap
idmef_linkage_get_category, function in idmef-tree-wrap
idmef_linkage_get_file, function in idmef-tree-wrap
idmef_linkage_get_name, function in idmef-tree-wrap
idmef_linkage_get_path, function in idmef-tree-wrap
idmef_linkage_new, function in idmef-tree-wrap
idmef_linkage_new_category, function in idmef-tree-wrap
idmef_linkage_new_file, function in idmef-tree-wrap
idmef_linkage_new_name, function in idmef-tree-wrap
idmef_linkage_new_path, function in idmef-tree-wrap
idmef_linkage_print, function in idmef-message-print
idmef_linkage_read, function in idmef-message-read
idmef_linkage_ref, function in idmef-tree-wrap
idmef_linkage_set_category, function in idmef-tree-wrap
idmef_linkage_set_file, function in idmef-tree-wrap
idmef_linkage_set_name, function in idmef-tree-wrap
idmef_linkage_set_path, function in idmef-tree-wrap
idmef_linkage_t, typedef in idmef-tree-wrap
idmef_linkage_write, function in idmef-message-write
IDMEF_LIST_APPEND, macro in idmef-tree-wrap
IDMEF_LIST_PREPEND, macro in idmef-tree-wrap
lt_preloaded_symbols, macro in prelude-plugin

M

idmef_message_clone, function in idmef-tree-wrap
idmef_message_compare, function in idmef-tree-wrap
idmef_message_copy, function in idmef-tree-wrap
idmef_message_destroy, function in idmef-tree-wrap
idmef_message_get_alert, function in idmef-tree-wrap
idmef_message_get_data, function in idmef-tree-wrap
idmef_message_get_heartbeat, function in idmef-tree-wrap
idmef_message_get_number, function in idmef-tree-wrap
idmef_message_get_pmsg, function in idmef-tree-wrap
idmef_message_get_string, function in idmef-tree-wrap
idmef_message_get_type, function in idmef-tree-wrap
idmef_message_get_value, function in idmef-tree-wrap
idmef_message_get_version, function in idmef-tree-wrap
idmef_message_new, function in idmef-tree-wrap
idmef_message_new_alert, function in idmef-tree-wrap
idmef_message_new_heartbeat, function in idmef-tree-wrap
idmef_message_new_version, function in idmef-tree-wrap
idmef_message_print, function in idmef-message-print
idmef_message_read, function in idmef-message-read
idmef_message_ref, function in idmef-tree-wrap
idmef_message_set_alert, function in idmef-tree-wrap
idmef_message_set_data, function in idmef-tree-wrap
idmef_message_set_heartbeat, function in idmef-tree-wrap
idmef_message_set_number, function in idmef-tree-wrap
idmef_message_set_pmsg, function in idmef-tree-wrap
idmef_message_set_string, function in idmef-tree-wrap
idmef_message_set_value, function in idmef-tree-wrap
idmef_message_set_version, function in idmef-tree-wrap
idmef_message_t, typedef in idmef-tree-wrap
idmef_message_type_t, enum in idmef-tree-wrap
idmef_message_type_to_numeric, function in idmef-tree-wrap
idmef_message_type_to_string, function in idmef-tree-wrap
idmef_message_write, function in idmef-message-write

N

idmef_node_category_t, enum in idmef-tree-wrap
idmef_node_category_to_numeric, function in idmef-tree-wrap
idmef_node_category_to_string, function in idmef-tree-wrap
idmef_node_clone, function in idmef-tree-wrap
idmef_node_compare, function in idmef-tree-wrap
idmef_node_copy, function in idmef-tree-wrap
idmef_node_destroy, function in idmef-tree-wrap
idmef_node_get_category, function in idmef-tree-wrap
idmef_node_get_ident, function in idmef-tree-wrap
idmef_node_get_location, function in idmef-tree-wrap
idmef_node_get_name, function in idmef-tree-wrap
idmef_node_get_next_address, function in idmef-tree-wrap
idmef_node_new, function in idmef-tree-wrap
idmef_node_new_address, function in idmef-tree-wrap
idmef_node_new_category, function in idmef-tree-wrap
idmef_node_new_ident, function in idmef-tree-wrap
idmef_node_new_location, function in idmef-tree-wrap
idmef_node_new_name, function in idmef-tree-wrap
idmef_node_print, function in idmef-message-print
idmef_node_read, function in idmef-message-read
idmef_node_ref, function in idmef-tree-wrap
idmef_node_set_address, function in idmef-tree-wrap
idmef_node_set_category, function in idmef-tree-wrap
idmef_node_set_ident, function in idmef-tree-wrap
idmef_node_set_location, function in idmef-tree-wrap
idmef_node_set_name, function in idmef-tree-wrap
idmef_node_t, typedef in idmef-tree-wrap
idmef_node_write, function in idmef-message-write

O

idmef_overflow_alert_clone, function in idmef-tree-wrap
idmef_overflow_alert_compare, function in idmef-tree-wrap
idmef_overflow_alert_copy, function in idmef-tree-wrap
idmef_overflow_alert_destroy, function in idmef-tree-wrap
idmef_overflow_alert_get_buffer, function in idmef-tree-wrap
idmef_overflow_alert_get_program, function in idmef-tree-wrap
idmef_overflow_alert_get_size, function in idmef-tree-wrap
idmef_overflow_alert_new, function in idmef-tree-wrap
idmef_overflow_alert_new_buffer, function in idmef-tree-wrap
idmef_overflow_alert_new_program, function in idmef-tree-wrap
idmef_overflow_alert_new_size, function in idmef-tree-wrap
idmef_overflow_alert_print, function in idmef-message-print
idmef_overflow_alert_read, function in idmef-message-read
idmef_overflow_alert_ref, function in idmef-tree-wrap
idmef_overflow_alert_set_buffer, function in idmef-tree-wrap
idmef_overflow_alert_set_program, function in idmef-tree-wrap
idmef_overflow_alert_set_size, function in idmef-tree-wrap
idmef_overflow_alert_t, typedef in idmef-tree-wrap
idmef_overflow_alert_unset_size, function in idmef-tree-wrap
idmef_overflow_alert_write, function in idmef-message-write

P

idmef_path_check_operator, function in idmef-path
idmef_path_clone, function in idmef-path
idmef_path_compare, function in idmef-path
idmef_path_destroy, function in idmef-path
idmef_path_get, function in idmef-path
idmef_path_get_applicable_operators, function in idmef-path
idmef_path_get_class, function in idmef-path
idmef_path_get_depth, function in idmef-path
idmef_path_get_index, function in idmef-path
idmef_path_get_name, function in idmef-path
idmef_path_get_value_type, function in idmef-path
idmef_path_has_lists, function in idmef-path
idmef_path_is_ambiguous, function in idmef-path
idmef_path_is_list, function in idmef-path
idmef_path_make_child, function in idmef-path
idmef_path_make_parent, function in idmef-path
idmef_path_ncompare, function in idmef-path
idmef_path_new, function in idmef-path
idmef_path_new_fast, function in idmef-path
idmef_path_new_v, function in idmef-path
idmef_path_ref, function in idmef-path
idmef_path_set, function in idmef-path
idmef_path_set_index, function in idmef-path
idmef_path_t, typedef in idmef-path
idmef_path_undefine_index, function in idmef-path
prelude_async_add, function in prelude-async
prelude_async_callback_t, user_function in prelude-async
prelude_async_del, function in prelude-async
prelude_async_exit, function in prelude-async
prelude_async_flags_t, enum in prelude-async
prelude_async_get_flags, function in prelude-async
prelude_async_init, function in prelude-async
PRELUDE_ASYNC_OBJECT, macro in prelude-async
prelude_async_object_t, struct in prelude-async
prelude_async_set_flags, function in prelude-async
prelude_bool_t, enum in prelude-inttypes
prelude_check_version, function in prelude
prelude_client_destroy, function in prelude-client
prelude_client_exit_status_t, enum in prelude-client
prelude_client_flags_t, enum in prelude-client
prelude_client_get_analyzer, function in prelude-client
prelude_client_get_config_filename, function in prelude-client
prelude_client_get_connection_pool, function in prelude-client
prelude_client_get_flags, function in prelude-client
prelude_client_get_profile, function in prelude-client
prelude_client_get_required_permission, function in prelude-client
prelude_client_get_setup_error, function in prelude-client
prelude_client_get_unique_ident, function in prelude-client
prelude_client_handle_msg_default, function in prelude-client
prelude_client_init, function in prelude-client
prelude_client_is_setup_needed, function in prelude-client
prelude_client_new, function in prelude-client
prelude_client_new_msgbuf, function in prelude-client
prelude_client_print_setup_error, function in prelude-client
prelude_client_profile_destroy, function in prelude-client-profile
prelude_client_profile_get_analyzerid, function in prelude-client-profile
prelude_client_profile_get_analyzerid_filename, function in prelude-client-profile
prelude_client_profile_get_backup_dirname, function in prelude-client-profile
prelude_client_profile_get_config_filename, function in prelude-client-profile
prelude_client_profile_get_credentials, function in prelude-client-profile
prelude_client_profile_get_default_config_dirname, function in prelude-client-profile
prelude_client_profile_get_gid, function in prelude-client-profile
prelude_client_profile_get_name, function in prelude-client-profile
prelude_client_profile_get_prefix, function in prelude-client-profile
prelude_client_profile_get_profile_dirname, function in prelude-client-profile
prelude_client_profile_get_tls_client_keycert_filename, function in prelude-client-profile
prelude_client_profile_get_tls_client_trusted_cert_filename, function in prelude-client-profile
prelude_client_profile_get_tls_key_filename, function in prelude-client-profile
prelude_client_profile_get_tls_server_ca_cert_filename, function in prelude-client-profile
prelude_client_profile_get_tls_server_crl_filename, function in prelude-client-profile
prelude_client_profile_get_tls_server_keycert_filename, function in prelude-client-profile
prelude_client_profile_get_uid, function in prelude-client-profile
prelude_client_profile_new, function in prelude-client-profile
prelude_client_profile_ref, function in prelude-client-profile
prelude_client_profile_set_analyzerid, function in prelude-client-profile
prelude_client_profile_set_gid, function in prelude-client-profile
prelude_client_profile_set_name, function in prelude-client-profile
prelude_client_profile_set_prefix, function in prelude-client-profile
prelude_client_profile_set_uid, function in prelude-client-profile
prelude_client_profile_t, typedef in prelude-client-profile
prelude_client_recv_idmef, function in prelude-client
prelude_client_recv_msg, function in prelude-client
prelude_client_ref, function in prelude-client
prelude_client_send_idmef, function in prelude-client
prelude_client_send_msg, function in prelude-client
prelude_client_set_config_filename, function in prelude-client
prelude_client_set_connection_pool, function in prelude-client
prelude_client_set_flags, function in prelude-client
prelude_client_set_heartbeat_cb, function in prelude-client
prelude_client_set_required_permission, function in prelude-client
prelude_client_start, function in prelude-client
prelude_client_t, typedef in prelude-client
prelude_connection_close, function in prelude-connection
prelude_connection_connect, function in prelude-connection
prelude_connection_destroy, function in prelude-connection
prelude_connection_forward, function in prelude-connection
prelude_connection_get_data, function in prelude-connection
prelude_connection_get_default_socket_filename, function in prelude-connection
prelude_connection_get_fd, function in prelude-connection
prelude_connection_get_local_addr, function in prelude-connection
prelude_connection_get_local_port, function in prelude-connection
prelude_connection_get_peer_addr, function in prelude-connection
prelude_connection_get_peer_analyzerid, function in prelude-connection
prelude_connection_get_peer_port, function in prelude-connection
prelude_connection_get_permission, function in prelude-connection
prelude_connection_get_state, function in prelude-connection
prelude_connection_is_alive, function in prelude-connection
prelude_connection_new, function in prelude-connection
prelude_connection_new_msgbuf, function in prelude-connection
prelude_connection_permission_new_from_string, function in prelude-connection
prelude_connection_permission_t, enum in prelude-connection
prelude_connection_permission_to_string, function in prelude-connection
prelude_connection_pool_add_connection, function in prelude-connection-pool
prelude_connection_pool_broadcast, function in prelude-connection-pool
prelude_connection_pool_broadcast_async, function in prelude-connection-pool
prelude_connection_pool_check_event, function in prelude-connection-pool
prelude_connection_pool_del_connection, function in prelude-connection-pool
prelude_connection_pool_destroy, function in prelude-connection-pool
prelude_connection_pool_event_t, enum in prelude-connection-pool
prelude_connection_pool_flags_t, enum in prelude-connection-pool
prelude_connection_pool_get_connection_list, function in prelude-connection-pool
prelude_connection_pool_get_connection_string, function in prelude-connection-pool
prelude_connection_pool_get_data, function in prelude-connection-pool
prelude_connection_pool_get_flags, function in prelude-connection-pool
prelude_connection_pool_init, function in prelude-connection-pool
prelude_connection_pool_new, function in prelude-connection-pool
prelude_connection_pool_recv, function in prelude-connection-pool
prelude_connection_pool_ref, function in prelude-connection-pool
prelude_connection_pool_set_connection_alive, function in prelude-connection-pool
prelude_connection_pool_set_connection_dead, function in prelude-connection-pool
prelude_connection_pool_set_connection_string, function in prelude-connection-pool
prelude_connection_pool_set_data, function in prelude-connection-pool
prelude_connection_pool_set_event_handler, function in prelude-connection-pool
prelude_connection_pool_set_flags, function in prelude-connection-pool
prelude_connection_pool_set_global_event_handler, function in prelude-connection-pool
prelude_connection_pool_set_required_permission, function in prelude-connection-pool
prelude_connection_pool_t, typedef in prelude-connection-pool
prelude_connection_recv, function in prelude-connection
prelude_connection_recv_idmef, function in prelude-connection
prelude_connection_ref, function in prelude-connection
prelude_connection_send, function in prelude-connection
prelude_connection_set_data, function in prelude-connection
prelude_connection_set_fd_nodup, function in prelude-connection
prelude_connection_set_fd_ref, function in prelude-connection
prelude_connection_set_peer_analyzerid, function in prelude-connection
prelude_connection_set_state, function in prelude-connection
prelude_connection_state_t, enum in prelude-connection
prelude_connection_t, typedef in prelude-connection
prelude_deinit, function in prelude
prelude_failover_commit, function in prelude-failover
prelude_failover_destroy, function in prelude-failover
prelude_failover_disable_transaction, function in prelude-failover
prelude_failover_enable_transaction, function in prelude-failover
prelude_failover_get_available_msg_count, function in prelude-failover
prelude_failover_get_deleted_msg_count, function in prelude-failover
prelude_failover_get_saved_msg, function in prelude-failover
prelude_failover_new, function in prelude-failover
prelude_failover_rollback, function in prelude-failover
prelude_failover_save_msg, function in prelude-failover
prelude_failover_set_quota, function in prelude-failover
prelude_failover_t, typedef in prelude-failover
prelude_fork_child, function in prelude
prelude_fork_parent, function in prelude
prelude_fork_prepare, function in prelude
prelude_gid_t, typedef in prelude-client-profile
prelude_hash_destroy, function in prelude-hash
prelude_hash_elem_destroy, function in prelude-hash
prelude_hash_get, function in prelude-hash
prelude_hash_iterate, function in prelude-hash
prelude_hash_new, function in prelude-hash
prelude_hash_new2, function in prelude-hash
prelude_hash_set, function in prelude-hash
prelude_hash_t, typedef in prelude-hash
prelude_ident_destroy, function in prelude-ident
prelude_ident_generate, function in prelude-ident
prelude_ident_inc, function in prelude-ident
prelude_ident_new, function in prelude-ident
prelude_ident_t, typedef in prelude-ident
prelude_init, function in prelude
PRELUDE_INT16_MAX, macro in prelude-inttypes
PRELUDE_INT16_MIN, macro in prelude-inttypes
PRELUDE_INT32_MAX, macro in prelude-inttypes
PRELUDE_INT32_MIN, macro in prelude-inttypes
PRELUDE_INT64_MAX, macro in prelude-inttypes
PRELUDE_INT64_MIN, macro in prelude-inttypes
PRELUDE_INT8_MAX, macro in prelude-inttypes
PRELUDE_INT8_MIN, macro in prelude-inttypes
PRELUDE_INTMAX_MAX, macro in prelude-inttypes
PRELUDE_INTMAX_MIN, macro in prelude-inttypes
prelude_io_close, function in prelude-io
prelude_io_destroy, function in prelude-io
prelude_io_forward, function in prelude-io
prelude_io_get_fd, function in prelude-io
prelude_io_get_fdptr, function in prelude-io
prelude_io_is_error_fatal, function in prelude-io
prelude_io_new, function in prelude-io
prelude_io_pending, function in prelude-io
prelude_io_read, function in prelude-io
prelude_io_read_delimited, function in prelude-io
prelude_io_read_wait, function in prelude-io
prelude_io_set_buffer_io, function in prelude-io
prelude_io_set_fdptr, function in prelude-io
prelude_io_set_file_io, function in prelude-io
prelude_io_set_pending_callback, function in prelude-io
prelude_io_set_read_callback, function in prelude-io
prelude_io_set_sys_io, function in prelude-io
prelude_io_set_tls_io, function in prelude-io
prelude_io_set_write_callback, function in prelude-io
prelude_io_t, typedef in prelude-io
prelude_io_write, function in prelude-io
prelude_io_write_delimited, function in prelude-io
PRELUDE_LINKED_OBJECT, macro in prelude-linked-object
prelude_linked_object_get_object, macro in prelude-linked-object
prelude_linked_object_t, struct in prelude-linked-object
PRELUDE_LIST, macro in prelude-list
prelude_list_entry, macro in prelude-list
prelude_list_for_each, macro in prelude-list
prelude_list_for_each_continue, macro in prelude-list
prelude_list_for_each_continue_safe, macro in prelude-list
prelude_list_for_each_reversed, macro in prelude-list
prelude_list_for_each_reversed_safe, macro in prelude-list
prelude_list_for_each_safe, macro in prelude-list
prelude_list_get_next, macro in prelude-list
prelude_list_get_next_safe, macro in prelude-list
prelude_list_t, struct in prelude-list
prelude_log, macro in prelude-log
prelude_log_debug, macro in prelude-log
prelude_log_debug_v, macro in prelude-log
prelude_log_flags_t, enum in prelude-log
prelude_log_get_flags, function in prelude-log
prelude_log_get_prefix, function in prelude-log
prelude_log_set_callback, function in prelude-log
prelude_log_set_debug_level, function in prelude-log
prelude_log_set_flags, function in prelude-log
prelude_log_set_level, function in prelude-log
prelude_log_set_logfile, function in prelude-log
prelude_log_set_prefix, function in prelude-log
prelude_log_t, enum in prelude-log
prelude_log_v, macro in prelude-log
prelude_msgbuf_destroy, function in prelude-msgbuf
prelude_msgbuf_flags_t, enum in prelude-msgbuf
prelude_msgbuf_get_data, function in prelude-msgbuf
prelude_msgbuf_get_flags, function in prelude-msgbuf
prelude_msgbuf_get_msg, function in prelude-msgbuf
prelude_msgbuf_mark_end, function in prelude-msgbuf
prelude_msgbuf_new, function in prelude-msgbuf
prelude_msgbuf_set, function in prelude-msgbuf
prelude_msgbuf_set_callback, function in prelude-msgbuf
prelude_msgbuf_set_data, function in prelude-msgbuf
prelude_msgbuf_set_flags, function in prelude-msgbuf
prelude_msgbuf_t, typedef in prelude-msgbuf
prelude_msg_destroy, function in prelude-msg
prelude_msg_dynamic_new, function in prelude-msg
prelude_msg_forward, function in prelude-msg
prelude_msg_get, function in prelude-msg
prelude_msg_get_datalen, function in prelude-msg
prelude_msg_get_len, function in prelude-msg
prelude_msg_get_message_data, function in prelude-msg
prelude_msg_get_priority, function in prelude-msg
prelude_msg_get_tag, function in prelude-msg
prelude_msg_get_time, function in prelude-msg
prelude_msg_is_empty, function in prelude-msg
prelude_msg_is_fragment, function in prelude-msg
prelude_msg_mark_end, function in prelude-msg
prelude_msg_new, function in prelude-msg
prelude_msg_priority_t, enum in prelude-msg
prelude_msg_read, function in prelude-msg
prelude_msg_recycle, function in prelude-msg
prelude_msg_ref, function in prelude-msg
prelude_msg_set, function in prelude-msg
prelude_msg_set_callback, function in prelude-msg
prelude_msg_set_data, function in prelude-msg
prelude_msg_set_priority, function in prelude-msg
prelude_msg_set_tag, function in prelude-msg
prelude_msg_t, typedef in prelude-msg
prelude_msg_write, function in prelude-msg
prelude_option_add, function in prelude-option
prelude_option_argument_t, enum in prelude-option
prelude_option_commit_callback_t, user_function in prelude-option
prelude_option_context_destroy, function in prelude-option
prelude_option_context_get_data, function in prelude-option
prelude_option_context_set_data, function in prelude-option
prelude_option_context_t, typedef in prelude-option
prelude_option_destroy, function in prelude-option
prelude_option_destroy_callback_t, user_function in prelude-option
prelude_option_get_callback_t, user_function in prelude-option
prelude_option_get_commit_callback, function in prelude-option
prelude_option_get_data, function in prelude-option
prelude_option_get_description, function in prelude-option
prelude_option_get_destroy_callback, function in prelude-option
prelude_option_get_get_callback, function in prelude-option
prelude_option_get_has_arg, function in prelude-option
prelude_option_get_help, function in prelude-option
prelude_option_get_input_type, function in prelude-option
prelude_option_get_input_validation_regex, function in prelude-option
prelude_option_get_longname, function in prelude-option
prelude_option_get_longopt, function in prelude-option
prelude_option_get_next, function in prelude-option
prelude_option_get_optlist, function in prelude-option
prelude_option_get_parent, function in prelude-option
prelude_option_get_set_callback, function in prelude-option
prelude_option_get_shortname, function in prelude-option
prelude_option_get_type, function in prelude-option
prelude_option_get_value, function in prelude-option
prelude_option_has_optlist, function in prelude-option
prelude_option_input_type_t, enum in prelude-option
prelude_option_invoke_commit, function in prelude-option
prelude_option_invoke_destroy, function in prelude-option
prelude_option_invoke_get, function in prelude-option
prelude_option_invoke_set, function in prelude-option
prelude_option_new, function in prelude-option
prelude_option_new_context, function in prelude-option
prelude_option_new_request, function in prelude-option-wide
prelude_option_new_root, function in prelude-option
prelude_option_print, function in prelude-option
prelude_option_priority_t, enum in prelude-option
prelude_option_process_request, function in prelude-option-wide
prelude_option_push_request, function in prelude-option-wide
prelude_option_read, function in prelude-option
prelude_option_recv_reply, function in prelude-option-wide
PRELUDE_OPTION_REPLY_TYPE_ERROR, macro in prelude-option-wide
PRELUDE_OPTION_REPLY_TYPE_GET, macro in prelude-option-wide
PRELUDE_OPTION_REPLY_TYPE_LIST, macro in prelude-option-wide
PRELUDE_OPTION_REPLY_TYPE_SET, macro in prelude-option-wide
prelude_option_search, function in prelude-option
prelude_option_search_context, function in prelude-option
prelude_option_set_callback_t, user_function in prelude-option
prelude_option_set_commit_callback, function in prelude-option
prelude_option_set_data, function in prelude-option
prelude_option_set_default_context, function in prelude-option
prelude_option_set_description, function in prelude-option
prelude_option_set_destroy_callback, function in prelude-option
prelude_option_set_get_callback, function in prelude-option
prelude_option_set_has_arg, function in prelude-option
prelude_option_set_help, function in prelude-option
prelude_option_set_input_type, function in prelude-option
prelude_option_set_input_validation_regex, function in prelude-option
prelude_option_set_longopt, function in prelude-option
prelude_option_set_priority, function in prelude-option
prelude_option_set_set_callback, function in prelude-option
prelude_option_set_type, function in prelude-option
prelude_option_set_value, function in prelude-option
prelude_option_set_warnings, function in prelude-option
prelude_option_t, typedef in prelude-option
prelude_option_type_t, enum in prelude-option
prelude_option_warning_t, enum in prelude-option
prelude_option_wide_send_msg, function in prelude-option
PRELUDE_PLUGIN_API_VERSION, macro in prelude-plugin
prelude_plugin_compute_stats, macro in prelude-plugin
prelude_plugin_entry_set_plugin, function in prelude-plugin
prelude_plugin_entry_t, typedef in prelude-plugin
PRELUDE_PLUGIN_GENERIC, macro in prelude-plugin
prelude_plugin_generic_t, struct in prelude-plugin
prelude_plugin_get_name, macro in prelude-plugin
prelude_plugin_get_next, function in prelude-plugin
prelude_plugin_instance_add, function in prelude-plugin
prelude_plugin_instance_call_commit_func, function in prelude-plugin
prelude_plugin_instance_compute_time, function in prelude-plugin
prelude_plugin_instance_del, function in prelude-plugin
prelude_plugin_instance_get_data, function in prelude-plugin
prelude_plugin_instance_get_name, function in prelude-plugin
prelude_plugin_instance_get_plugin, function in prelude-plugin
prelude_plugin_instance_get_plugin_data, function in prelude-plugin
prelude_plugin_instance_has_commit_func, function in prelude-plugin
prelude_plugin_instance_set_data, function in prelude-plugin
prelude_plugin_instance_set_plugin_data, function in prelude-plugin
prelude_plugin_instance_subscribe, function in prelude-plugin
prelude_plugin_instance_t, typedef in prelude-plugin
prelude_plugin_instance_unsubscribe, function in prelude-plugin
prelude_plugin_load_from_dir, function in prelude-plugin
prelude_plugin_new_instance, function in prelude-plugin
PRELUDE_PLUGIN_OPTION_DECLARE_STRING_CB, macro in prelude-plugin
prelude_plugin_run, macro in prelude-plugin
prelude_plugin_search_by_name, function in prelude-plugin
prelude_plugin_search_instance_by_name, function in prelude-plugin
prelude_plugin_set_activation_option, function in prelude-plugin
prelude_plugin_set_destroy_func, macro in prelude-plugin
prelude_plugin_set_name, macro in prelude-plugin
PRELUDE_PLUGIN_SET_PRELOADED_SYMBOLS, macro in prelude-plugin
prelude_plugin_set_preloaded_symbols, function in prelude-plugin
prelude_plugin_unload, function in prelude-plugin
PRELUDE_PRId16, macro in prelude-inttypes
PRELUDE_PRId32, macro in prelude-inttypes
PRELUDE_PRId64, macro in prelude-inttypes
PRELUDE_PRId8, macro in prelude-inttypes
PRELUDE_PRIi16, macro in prelude-inttypes
PRELUDE_PRIi32, macro in prelude-inttypes
PRELUDE_PRIi64, macro in prelude-inttypes
PRELUDE_PRIi8, macro in prelude-inttypes
PRELUDE_PRIo16, macro in prelude-inttypes
PRELUDE_PRIo32, macro in prelude-inttypes
PRELUDE_PRIo64, macro in prelude-inttypes
PRELUDE_PRIo8, macro in prelude-inttypes
PRELUDE_PRIu16, macro in prelude-inttypes
PRELUDE_PRIu32, macro in prelude-inttypes
PRELUDE_PRIu64, macro in prelude-inttypes
PRELUDE_PRIu8, macro in prelude-inttypes
PRELUDE_PRIX16, macro in prelude-inttypes
PRELUDE_PRIx16, macro in prelude-inttypes
PRELUDE_PRIX32, macro in prelude-inttypes
PRELUDE_PRIx32, macro in prelude-inttypes
PRELUDE_PRIX64, macro in prelude-inttypes
PRELUDE_PRIx64, macro in prelude-inttypes
PRELUDE_PRIX8, macro in prelude-inttypes
PRELUDE_PRIx8, macro in prelude-inttypes
PRELUDE_SCNd64, macro in prelude-inttypes
PRELUDE_SCNi64, macro in prelude-inttypes
PRELUDE_SCNo64, macro in prelude-inttypes
PRELUDE_SCNu64, macro in prelude-inttypes
PRELUDE_SCNx64, macro in prelude-inttypes
prelude_string_cat, function in prelude-string
prelude_string_clear, function in prelude-string
prelude_string_clone, function in prelude-string
prelude_string_compare, function in prelude-string
prelude_string_copy_dup, function in prelude-string
prelude_string_copy_ref, function in prelude-string
prelude_string_destroy, function in prelude-string
prelude_string_destroy_internal, function in prelude-string
prelude_string_get_len, function in prelude-string
prelude_string_get_string, function in prelude-string
prelude_string_get_string_or_default, function in prelude-string
prelude_string_get_string_released, function in prelude-string
prelude_string_is_empty, function in prelude-string
prelude_string_ncat, function in prelude-string
prelude_string_new, function in prelude-string
prelude_string_new_constant, macro in prelude-string
prelude_string_new_dup, function in prelude-string
prelude_string_new_dup_fast, function in prelude-string
prelude_string_new_nodup, function in prelude-string
prelude_string_new_nodup_fast, function in prelude-string
prelude_string_new_ref, function in prelude-string
prelude_string_new_ref_fast, function in prelude-string
prelude_string_ref, function in prelude-string
prelude_string_set_constant, macro in prelude-string
prelude_string_set_dup, function in prelude-string
prelude_string_set_dup_fast, function in prelude-string
prelude_string_set_nodup, function in prelude-string
prelude_string_set_nodup_fast, function in prelude-string
prelude_string_set_ref, function in prelude-string
prelude_string_set_ref_fast, function in prelude-string
prelude_string_sprintf, function in prelude-string
prelude_string_t, typedef in prelude-string
prelude_string_vprintf, function in prelude-string
prelude_thread_init, function in prelude
prelude_timer_destroy, function in prelude-timer
prelude_timer_flush, function in prelude-timer
prelude_timer_get_callback, macro in prelude-timer
prelude_timer_get_data, macro in prelude-timer
prelude_timer_get_expire, macro in prelude-timer
prelude_timer_init, function in prelude-timer
prelude_timer_init_list, function in prelude-timer
prelude_timer_lock_critical_region, function in prelude-timer
prelude_timer_reset, function in prelude-timer
prelude_timer_set_callback, macro in prelude-timer
prelude_timer_set_data, macro in prelude-timer
prelude_timer_set_expire, macro in prelude-timer
prelude_timer_t, struct in prelude-timer
prelude_timer_unlock_critical_region, function in prelude-timer
prelude_timer_wake_up, function in prelude-timer
prelude_uid_t, typedef in prelude-client-profile
PRELUDE_UINT16_MAX, macro in prelude-inttypes
PRELUDE_UINT32_MAX, macro in prelude-inttypes
PRELUDE_UINT64_MAX, macro in prelude-inttypes
PRELUDE_UINT8_MAX, macro in prelude-inttypes
PRELUDE_UINTMAX_MAX, macro in prelude-inttypes
idmef_process_clone, function in idmef-tree-wrap
idmef_process_compare, function in idmef-tree-wrap
idmef_process_copy, function in idmef-tree-wrap
idmef_process_destroy, function in idmef-tree-wrap
idmef_process_get_ident, function in idmef-tree-wrap
idmef_process_get_name, function in idmef-tree-wrap
idmef_process_get_next_arg, function in idmef-tree-wrap
idmef_process_get_next_env, function in idmef-tree-wrap
idmef_process_get_path, function in idmef-tree-wrap
idmef_process_get_pid, function in idmef-tree-wrap
idmef_process_new, function in idmef-tree-wrap
idmef_process_new_arg, function in idmef-tree-wrap
idmef_process_new_env, function in idmef-tree-wrap
idmef_process_new_ident, function in idmef-tree-wrap
idmef_process_new_name, function in idmef-tree-wrap
idmef_process_new_path, function in idmef-tree-wrap
idmef_process_new_pid, function in idmef-tree-wrap
idmef_process_print, function in idmef-message-print
idmef_process_read, function in idmef-message-read
idmef_process_ref, function in idmef-tree-wrap
idmef_process_set_arg, function in idmef-tree-wrap
idmef_process_set_env, function in idmef-tree-wrap
idmef_process_set_ident, function in idmef-tree-wrap
idmef_process_set_name, function in idmef-tree-wrap
idmef_process_set_path, function in idmef-tree-wrap
idmef_process_set_pid, function in idmef-tree-wrap
idmef_process_t, typedef in idmef-tree-wrap
idmef_process_unset_pid, function in idmef-tree-wrap
idmef_process_write, function in idmef-message-write

R

idmef_reference_clone, function in idmef-tree-wrap
idmef_reference_compare, function in idmef-tree-wrap
idmef_reference_copy, function in idmef-tree-wrap
idmef_reference_destroy, function in idmef-tree-wrap
idmef_reference_get_meaning, function in idmef-tree-wrap
idmef_reference_get_name, function in idmef-tree-wrap
idmef_reference_get_origin, function in idmef-tree-wrap
idmef_reference_get_url, function in idmef-tree-wrap
idmef_reference_new, function in idmef-tree-wrap
idmef_reference_new_meaning, function in idmef-tree-wrap
idmef_reference_new_name, function in idmef-tree-wrap
idmef_reference_new_origin, function in idmef-tree-wrap
idmef_reference_new_url, function in idmef-tree-wrap
idmef_reference_origin_t, enum in idmef-tree-wrap
idmef_reference_origin_to_numeric, function in idmef-tree-wrap
idmef_reference_origin_to_string, function in idmef-tree-wrap
idmef_reference_print, function in idmef-message-print
idmef_reference_read, function in idmef-message-read
idmef_reference_ref, function in idmef-tree-wrap
idmef_reference_set_meaning, function in idmef-tree-wrap
idmef_reference_set_name, function in idmef-tree-wrap
idmef_reference_set_origin, function in idmef-tree-wrap
idmef_reference_set_url, function in idmef-tree-wrap
idmef_reference_t, typedef in idmef-tree-wrap
idmef_reference_write, function in idmef-message-write

S

idmef_service_clone, function in idmef-tree-wrap
idmef_service_compare, function in idmef-tree-wrap
idmef_service_copy, function in idmef-tree-wrap
idmef_service_destroy, function in idmef-tree-wrap
idmef_service_get_iana_protocol_name, function in idmef-tree-wrap
idmef_service_get_iana_protocol_number, function in idmef-tree-wrap
idmef_service_get_ident, function in idmef-tree-wrap
idmef_service_get_ip_version, function in idmef-tree-wrap
idmef_service_get_name, function in idmef-tree-wrap
idmef_service_get_port, function in idmef-tree-wrap
idmef_service_get_portlist, function in idmef-tree-wrap
idmef_service_get_protocol, function in idmef-tree-wrap
idmef_service_get_snmp_service, function in idmef-tree-wrap
idmef_service_get_type, function in idmef-tree-wrap
idmef_service_get_web_service, function in idmef-tree-wrap
idmef_service_new, function in idmef-tree-wrap
idmef_service_new_iana_protocol_name, function in idmef-tree-wrap
idmef_service_new_iana_protocol_number, function in idmef-tree-wrap
idmef_service_new_ident, function in idmef-tree-wrap
idmef_service_new_ip_version, function in idmef-tree-wrap
idmef_service_new_name, function in idmef-tree-wrap
idmef_service_new_port, function in idmef-tree-wrap
idmef_service_new_portlist, function in idmef-tree-wrap
idmef_service_new_protocol, function in idmef-tree-wrap
idmef_service_new_snmp_service, function in idmef-tree-wrap
idmef_service_new_web_service, function in idmef-tree-wrap
idmef_service_print, function in idmef-message-print
idmef_service_read, function in idmef-message-read
idmef_service_ref, function in idmef-tree-wrap
idmef_service_set_iana_protocol_name, function in idmef-tree-wrap
idmef_service_set_iana_protocol_number, function in idmef-tree-wrap
idmef_service_set_ident, function in idmef-tree-wrap
idmef_service_set_ip_version, function in idmef-tree-wrap
idmef_service_set_name, function in idmef-tree-wrap
idmef_service_set_port, function in idmef-tree-wrap
idmef_service_set_portlist, function in idmef-tree-wrap
idmef_service_set_protocol, function in idmef-tree-wrap
idmef_service_set_snmp_service, function in idmef-tree-wrap
idmef_service_set_web_service, function in idmef-tree-wrap
idmef_service_t, typedef in idmef-tree-wrap
idmef_service_type_t, enum in idmef-tree-wrap
idmef_service_type_to_numeric, function in idmef-tree-wrap
idmef_service_type_to_string, function in idmef-tree-wrap
idmef_service_unset_iana_protocol_number, function in idmef-tree-wrap
idmef_service_unset_ip_version, function in idmef-tree-wrap
idmef_service_unset_port, function in idmef-tree-wrap
idmef_service_write, function in idmef-message-write
idmef_snmp_service_clone, function in idmef-tree-wrap
idmef_snmp_service_compare, function in idmef-tree-wrap
idmef_snmp_service_copy, function in idmef-tree-wrap
idmef_snmp_service_destroy, function in idmef-tree-wrap
idmef_snmp_service_get_command, function in idmef-tree-wrap
idmef_snmp_service_get_context_engine_id, function in idmef-tree-wrap
idmef_snmp_service_get_context_name, function in idmef-tree-wrap
idmef_snmp_service_get_message_processing_model, function in idmef-tree-wrap
idmef_snmp_service_get_oid, function in idmef-tree-wrap
idmef_snmp_service_get_security_level, function in idmef-tree-wrap
idmef_snmp_service_get_security_model, function in idmef-tree-wrap
idmef_snmp_service_get_security_name, function in idmef-tree-wrap
idmef_snmp_service_new, function in idmef-tree-wrap
idmef_snmp_service_new_command, function in idmef-tree-wrap
idmef_snmp_service_new_context_engine_id, function in idmef-tree-wrap
idmef_snmp_service_new_context_name, function in idmef-tree-wrap
idmef_snmp_service_new_message_processing_model, function in idmef-tree-wrap
idmef_snmp_service_new_oid, function in idmef-tree-wrap
idmef_snmp_service_new_security_level, function in idmef-tree-wrap
idmef_snmp_service_new_security_model, function in idmef-tree-wrap
idmef_snmp_service_new_security_name, function in idmef-tree-wrap
idmef_snmp_service_print, function in idmef-message-print
idmef_snmp_service_read, function in idmef-message-read
idmef_snmp_service_ref, function in idmef-tree-wrap
idmef_snmp_service_set_command, function in idmef-tree-wrap
idmef_snmp_service_set_context_engine_id, function in idmef-tree-wrap
idmef_snmp_service_set_context_name, function in idmef-tree-wrap
idmef_snmp_service_set_message_processing_model, function in idmef-tree-wrap
idmef_snmp_service_set_oid, function in idmef-tree-wrap
idmef_snmp_service_set_security_level, function in idmef-tree-wrap
idmef_snmp_service_set_security_model, function in idmef-tree-wrap
idmef_snmp_service_set_security_name, function in idmef-tree-wrap
idmef_snmp_service_t, typedef in idmef-tree-wrap
idmef_snmp_service_unset_message_processing_model, function in idmef-tree-wrap
idmef_snmp_service_unset_security_level, function in idmef-tree-wrap
idmef_snmp_service_unset_security_model, function in idmef-tree-wrap
idmef_snmp_service_write, function in idmef-message-write
idmef_source_clone, function in idmef-tree-wrap
idmef_source_compare, function in idmef-tree-wrap
idmef_source_copy, function in idmef-tree-wrap
idmef_source_destroy, function in idmef-tree-wrap
idmef_source_get_ident, function in idmef-tree-wrap
idmef_source_get_interface, function in idmef-tree-wrap
idmef_source_get_node, function in idmef-tree-wrap
idmef_source_get_process, function in idmef-tree-wrap
idmef_source_get_service, function in idmef-tree-wrap
idmef_source_get_spoofed, function in idmef-tree-wrap
idmef_source_get_user, function in idmef-tree-wrap
idmef_source_new, function in idmef-tree-wrap
idmef_source_new_ident, function in idmef-tree-wrap
idmef_source_new_interface, function in idmef-tree-wrap
idmef_source_new_node, function in idmef-tree-wrap
idmef_source_new_process, function in idmef-tree-wrap
idmef_source_new_service, function in idmef-tree-wrap
idmef_source_new_spoofed, function in idmef-tree-wrap
idmef_source_new_user, function in idmef-tree-wrap
idmef_source_print, function in idmef-message-print
idmef_source_read, function in idmef-message-read
idmef_source_ref, function in idmef-tree-wrap
idmef_source_set_ident, function in idmef-tree-wrap
idmef_source_set_interface, function in idmef-tree-wrap
idmef_source_set_node, function in idmef-tree-wrap
idmef_source_set_process, function in idmef-tree-wrap
idmef_source_set_service, function in idmef-tree-wrap
idmef_source_set_spoofed, function in idmef-tree-wrap
idmef_source_set_user, function in idmef-tree-wrap
idmef_source_spoofed_t, enum in idmef-tree-wrap
idmef_source_spoofed_to_numeric, function in idmef-tree-wrap
idmef_source_spoofed_to_string, function in idmef-tree-wrap
idmef_source_t, typedef in idmef-tree-wrap
idmef_source_write, function in idmef-message-write

T

idmef_target_clone, function in idmef-tree-wrap
idmef_target_compare, function in idmef-tree-wrap
idmef_target_copy, function in idmef-tree-wrap
idmef_target_decoy_t, enum in idmef-tree-wrap
idmef_target_decoy_to_numeric, function in idmef-tree-wrap
idmef_target_decoy_to_string, function in idmef-tree-wrap
idmef_target_destroy, function in idmef-tree-wrap
idmef_target_get_decoy, function in idmef-tree-wrap
idmef_target_get_ident, function in idmef-tree-wrap
idmef_target_get_interface, function in idmef-tree-wrap
idmef_target_get_next_file, function in idmef-tree-wrap
idmef_target_get_node, function in idmef-tree-wrap
idmef_target_get_process, function in idmef-tree-wrap
idmef_target_get_service, function in idmef-tree-wrap
idmef_target_get_user, function in idmef-tree-wrap
idmef_target_new, function in idmef-tree-wrap
idmef_target_new_decoy, function in idmef-tree-wrap
idmef_target_new_file, function in idmef-tree-wrap
idmef_target_new_ident, function in idmef-tree-wrap
idmef_target_new_interface, function in idmef-tree-wrap
idmef_target_new_node, function in idmef-tree-wrap
idmef_target_new_process, function in idmef-tree-wrap
idmef_target_new_service, function in idmef-tree-wrap
idmef_target_new_user, function in idmef-tree-wrap
idmef_target_print, function in idmef-message-print
idmef_target_read, function in idmef-message-read
idmef_target_ref, function in idmef-tree-wrap
idmef_target_set_decoy, function in idmef-tree-wrap
idmef_target_set_file, function in idmef-tree-wrap
idmef_target_set_ident, function in idmef-tree-wrap
idmef_target_set_interface, function in idmef-tree-wrap
idmef_target_set_node, function in idmef-tree-wrap
idmef_target_set_process, function in idmef-tree-wrap
idmef_target_set_service, function in idmef-tree-wrap
idmef_target_set_user, function in idmef-tree-wrap
idmef_target_t, typedef in idmef-tree-wrap
idmef_target_write, function in idmef-message-write
idmef_time_clone, function in idmef-time
idmef_time_compare, function in idmef-tree-wrap
idmef_time_copy, function in idmef-time
idmef_time_destroy, function in idmef-time
idmef_time_destroy_internal, function in idmef-time
idmef_time_get_gmt_offset, function in idmef-time
idmef_time_get_sec, function in idmef-time
idmef_time_get_usec, function in idmef-time
idmef_time_new, function in idmef-time
idmef_time_new_from_gettimeofday, function in idmef-time
idmef_time_new_from_ntpstamp, function in idmef-time
idmef_time_new_from_string, function in idmef-time
idmef_time_new_from_time, function in idmef-time
idmef_time_new_from_timeval, function in idmef-time
idmef_time_ref, function in idmef-time
idmef_time_set_from_gettimeofday, function in idmef-time
idmef_time_set_from_ntpstamp, function in idmef-time
idmef_time_set_from_string, function in idmef-time
idmef_time_set_from_time, function in idmef-time
idmef_time_set_from_timeval, function in idmef-time
idmef_time_set_gmt_offset, function in idmef-time
idmef_time_set_sec, function in idmef-time
idmef_time_set_usec, function in idmef-time
idmef_time_t, typedef in idmef-time
idmef_time_to_ntpstamp, function in idmef-time
idmef_time_to_string, function in idmef-time
idmef_tool_alert_clone, function in idmef-tree-wrap
idmef_tool_alert_compare, function in idmef-tree-wrap
idmef_tool_alert_copy, function in idmef-tree-wrap
idmef_tool_alert_destroy, function in idmef-tree-wrap
idmef_tool_alert_get_command, function in idmef-tree-wrap
idmef_tool_alert_get_name, function in idmef-tree-wrap
idmef_tool_alert_get_next_alertident, function in idmef-tree-wrap
idmef_tool_alert_new, function in idmef-tree-wrap
idmef_tool_alert_new_alertident, function in idmef-tree-wrap
idmef_tool_alert_new_command, function in idmef-tree-wrap
idmef_tool_alert_new_name, function in idmef-tree-wrap
idmef_tool_alert_print, function in idmef-message-print
idmef_tool_alert_read, function in idmef-message-read
idmef_tool_alert_ref, function in idmef-tree-wrap
idmef_tool_alert_set_alertident, function in idmef-tree-wrap
idmef_tool_alert_set_command, function in idmef-tree-wrap
idmef_tool_alert_set_name, function in idmef-tree-wrap
idmef_tool_alert_t, typedef in idmef-tree-wrap
idmef_tool_alert_write, function in idmef-message-write

U

uint16_t, typedef in prelude-inttypes
uint32_t, typedef in prelude-inttypes
uint64_t, typedef in prelude-inttypes
uint8_t, typedef in prelude-inttypes
idmef_user_category_t, enum in idmef-tree-wrap
idmef_user_category_to_numeric, function in idmef-tree-wrap
idmef_user_category_to_string, function in idmef-tree-wrap
idmef_user_clone, function in idmef-tree-wrap
idmef_user_compare, function in idmef-tree-wrap
idmef_user_copy, function in idmef-tree-wrap
idmef_user_destroy, function in idmef-tree-wrap
idmef_user_get_category, function in idmef-tree-wrap
idmef_user_get_ident, function in idmef-tree-wrap
idmef_user_get_next_user_id, function in idmef-tree-wrap
idmef_user_id_clone, function in idmef-tree-wrap
idmef_user_id_compare, function in idmef-tree-wrap
idmef_user_id_copy, function in idmef-tree-wrap
idmef_user_id_destroy, function in idmef-tree-wrap
idmef_user_id_get_ident, function in idmef-tree-wrap
idmef_user_id_get_name, function in idmef-tree-wrap
idmef_user_id_get_number, function in idmef-tree-wrap
idmef_user_id_get_tty, function in idmef-tree-wrap
idmef_user_id_get_type, function in idmef-tree-wrap
idmef_user_id_new, function in idmef-tree-wrap
idmef_user_id_new_ident, function in idmef-tree-wrap
idmef_user_id_new_name, function in idmef-tree-wrap
idmef_user_id_new_number, function in idmef-tree-wrap
idmef_user_id_new_tty, function in idmef-tree-wrap
idmef_user_id_new_type, function in idmef-tree-wrap
idmef_user_id_print, function in idmef-message-print
idmef_user_id_read, function in idmef-message-read
idmef_user_id_ref, function in idmef-tree-wrap
idmef_user_id_set_ident, function in idmef-tree-wrap
idmef_user_id_set_name, function in idmef-tree-wrap
idmef_user_id_set_number, function in idmef-tree-wrap
idmef_user_id_set_tty, function in idmef-tree-wrap
idmef_user_id_set_type, function in idmef-tree-wrap
idmef_user_id_t, typedef in idmef-tree-wrap
idmef_user_id_type_t, enum in idmef-tree-wrap
idmef_user_id_type_to_numeric, function in idmef-tree-wrap
idmef_user_id_type_to_string, function in idmef-tree-wrap
idmef_user_id_unset_number, function in idmef-tree-wrap
idmef_user_id_write, function in idmef-message-write
idmef_user_new, function in idmef-tree-wrap
idmef_user_new_category, function in idmef-tree-wrap
idmef_user_new_ident, function in idmef-tree-wrap
idmef_user_new_user_id, function in idmef-tree-wrap
idmef_user_print, function in idmef-message-print
idmef_user_read, function in idmef-message-read
idmef_user_ref, function in idmef-tree-wrap
idmef_user_set_category, function in idmef-tree-wrap
idmef_user_set_ident, function in idmef-tree-wrap
idmef_user_set_user_id, function in idmef-tree-wrap
idmef_user_t, typedef in idmef-tree-wrap
idmef_user_write, function in idmef-message-write

V

idmef_value_check_operator, function in idmef-value
idmef_value_clone, function in idmef-value
idmef_value_destroy, function in idmef-value
idmef_value_dont_have_own_data, function in idmef-value
idmef_value_get, function in idmef-value
idmef_value_get_applicable_operators, function in idmef-value
idmef_value_get_class, function in idmef-value
idmef_value_get_count, function in idmef-value
idmef_value_get_data, function in idmef-value
idmef_value_get_double, function in idmef-value
idmef_value_get_enum, function in idmef-value
idmef_value_get_float, function in idmef-value
idmef_value_get_int16, function in idmef-value
idmef_value_get_int32, function in idmef-value
idmef_value_get_int64, function in idmef-value
idmef_value_get_int8, function in idmef-value
idmef_value_get_nth, function in idmef-value
idmef_value_get_object, function in idmef-value
idmef_value_get_string, function in idmef-value
idmef_value_get_time, function in idmef-value
idmef_value_get_type, function in idmef-value
idmef_value_get_uint16, function in idmef-value
idmef_value_get_uint32, function in idmef-value
idmef_value_get_uint64, function in idmef-value
idmef_value_get_uint8, function in idmef-value
idmef_value_have_own_data, function in idmef-value
idmef_value_is_list, function in idmef-value
idmef_value_iterate, function in idmef-value
idmef_value_iterate_reversed, function in idmef-value
idmef_value_list_add, function in idmef-value
idmef_value_list_is_empty, function in idmef-value
idmef_value_match, function in idmef-value
idmef_value_new, function in idmef-value
idmef_value_new_class, function in idmef-value
idmef_value_new_data, function in idmef-value
idmef_value_new_double, function in idmef-value
idmef_value_new_enum, function in idmef-value
idmef_value_new_enum_from_numeric, function in idmef-value
idmef_value_new_enum_from_string, function in idmef-value
idmef_value_new_float, function in idmef-value
idmef_value_new_from_path, function in idmef-value
idmef_value_new_from_string, function in idmef-value
idmef_value_new_int16, function in idmef-value
idmef_value_new_int32, function in idmef-value
idmef_value_new_int64, function in idmef-value
idmef_value_new_int8, function in idmef-value
idmef_value_new_list, function in idmef-value
idmef_value_new_string, function in idmef-value
idmef_value_new_time, function in idmef-value
idmef_value_new_uint16, function in idmef-value
idmef_value_new_uint32, function in idmef-value
idmef_value_new_uint64, function in idmef-value
idmef_value_new_uint8, function in idmef-value
idmef_value_print, function in idmef-value
idmef_value_ref, function in idmef-value
idmef_value_set_class, function in idmef-value
idmef_value_set_data, function in idmef-value
idmef_value_set_double, function in idmef-value
idmef_value_set_enum, function in idmef-value
idmef_value_set_enum_from_numeric, function in idmef-value
idmef_value_set_enum_from_string, function in idmef-value
idmef_value_set_float, function in idmef-value
idmef_value_set_int16, function in idmef-value
idmef_value_set_int32, function in idmef-value
idmef_value_set_int64, function in idmef-value
idmef_value_set_int8, function in idmef-value
idmef_value_set_string, function in idmef-value
idmef_value_set_time, function in idmef-value
idmef_value_set_uint16, function in idmef-value
idmef_value_set_uint32, function in idmef-value
idmef_value_set_uint64, function in idmef-value
idmef_value_set_uint8, function in idmef-value
idmef_value_t, typedef in idmef-value
idmef_value_to_string, function in idmef-value

W

idmef_web_service_clone, function in idmef-tree-wrap
idmef_web_service_compare, function in idmef-tree-wrap
idmef_web_service_copy, function in idmef-tree-wrap
idmef_web_service_destroy, function in idmef-tree-wrap
idmef_web_service_get_cgi, function in idmef-tree-wrap
idmef_web_service_get_http_method, function in idmef-tree-wrap
idmef_web_service_get_next_arg, function in idmef-tree-wrap
idmef_web_service_get_url, function in idmef-tree-wrap
idmef_web_service_new, function in idmef-tree-wrap
idmef_web_service_new_arg, function in idmef-tree-wrap
idmef_web_service_new_cgi, function in idmef-tree-wrap
idmef_web_service_new_http_method, function in idmef-tree-wrap
idmef_web_service_new_url, function in idmef-tree-wrap
idmef_web_service_print, function in idmef-message-print
idmef_web_service_read, function in idmef-message-read
idmef_web_service_ref, function in idmef-tree-wrap
idmef_web_service_set_arg, function in idmef-tree-wrap
idmef_web_service_set_cgi, function in idmef-tree-wrap
idmef_web_service_set_http_method, function in idmef-tree-wrap
idmef_web_service_set_url, function in idmef-tree-wrap
idmef_web_service_t, typedef in idmef-tree-wrap
idmef_web_service_write, function in idmef-message-write
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/ch01.html0000644000000000000000000000011013726163660020740 xustar000000000000000024 mtime=1599662000.726 24 atime=1599662000.726 24 ctime=1599662000.726 libprelude-5.2.0/docs/api/html/ch01.html0000644000000000000000000001420513726163660017745 0ustar00rootroot00000000000000 [Insert title here]: libprelude Reference Manual libprelude-5.2.0/docs/api/html/PaxHeaders.14770/deprecated-api-index.html0000644000000000000000000000011013726163660024161 xustar000000000000000024 mtime=1599662000.727 24 atime=1599662000.727 24 ctime=1599662000.727 libprelude-5.2.0/docs/api/html/deprecated-api-index.html0000644000000000000000000000744513726163660023176 0ustar00rootroot00000000000000 Index of deprecated API: libprelude Reference Manual libprelude-5.2.0/docs/api/html/PaxHeaders.14770/index.html0000644000000000000000000000011013726163660021314 xustar000000000000000024 mtime=1599662000.728 24 atime=1599662000.728 24 ctime=1599662000.728 libprelude-5.2.0/docs/api/html/index.html0000644000000000000000000001414213726163660020321 0ustar00rootroot00000000000000 libprelude Reference Manual: libprelude Reference Manual libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-idmef-additional-data.html0000644000000000000000000000010713726163660026441 xustar000000000000000024 mtime=1599662000.729 24 atime=1599662000.729 23 ctime=1599662000.73 libprelude-5.2.0/docs/api/html/libprelude-idmef-additional-data.html0000644000000000000000000006663713726163660025460 0ustar00rootroot00000000000000 idmef-additional-data: libprelude Reference Manual

idmef-additional-data

idmef-additional-data

Description

Functions

idmef_additional_data_new_real ()

int
idmef_additional_data_new_real (idmef_additional_data_t **ret,
                                float data);

idmef_additional_data_new_byte ()

int
idmef_additional_data_new_byte (idmef_additional_data_t **ret,
                                uint8_t byte);

idmef_additional_data_new_integer ()

int
idmef_additional_data_new_integer (idmef_additional_data_t **ret,
                                   uint32_t data);

idmef_additional_data_new_boolean ()

int
idmef_additional_data_new_boolean (idmef_additional_data_t **ret,
                                   prelude_bool_t data);

idmef_additional_data_new_character ()

int
idmef_additional_data_new_character (idmef_additional_data_t **ret,
                                     char data);

idmef_additional_data_set_real ()

void
idmef_additional_data_set_real (idmef_additional_data_t *ptr,
                                float data);

idmef_additional_data_set_byte ()

void
idmef_additional_data_set_byte (idmef_additional_data_t *ptr,
                                uint8_t byte);

idmef_additional_data_set_integer ()

void
idmef_additional_data_set_integer (idmef_additional_data_t *ptr,
                                   uint32_t data);

idmef_additional_data_set_boolean ()

void
idmef_additional_data_set_boolean (idmef_additional_data_t *ptr,
                                   prelude_bool_t data);

idmef_additional_data_set_character ()

void
idmef_additional_data_set_character (idmef_additional_data_t *ptr,
                                     char data);

idmef_additional_data_new_byte_string_ref ()

int
idmef_additional_data_new_byte_string_ref
                               (idmef_additional_data_t **ad,
                                const unsigned char *data,
                                size_t len);

idmef_additional_data_set_byte_string_ref ()

int
idmef_additional_data_set_byte_string_ref
                               (idmef_additional_data_t *ad,
                                const unsigned char *data,
                                size_t len);

idmef_additional_data_new_byte_string_dup ()

int
idmef_additional_data_new_byte_string_dup
                               (idmef_additional_data_t **ad,
                                const unsigned char *data,
                                size_t len);

idmef_additional_data_set_byte_string_dup ()

int
idmef_additional_data_set_byte_string_dup
                               (idmef_additional_data_t *ad,
                                const unsigned char *data,
                                size_t len);

idmef_additional_data_new_byte_string_nodup ()

int
idmef_additional_data_new_byte_string_nodup
                               (idmef_additional_data_t **ad,
                                unsigned char *data,
                                size_t len);

idmef_additional_data_set_byte_string_nodup ()

int
idmef_additional_data_set_byte_string_nodup
                               (idmef_additional_data_t *ad,
                                unsigned char *data,
                                size_t len);

idmef_additional_data_copy_ref ()

int
idmef_additional_data_copy_ref (idmef_additional_data_t *src,
                                idmef_additional_data_t *dst);

idmef_additional_data_copy_dup ()

int
idmef_additional_data_copy_dup (idmef_additional_data_t *src,
                                idmef_additional_data_t *dst);

idmef_additional_data_get_real ()

float
idmef_additional_data_get_real (idmef_additional_data_t *data);

idmef_additional_data_get_integer ()

uint32_t
idmef_additional_data_get_integer (idmef_additional_data_t *data);

idmef_additional_data_get_boolean ()

prelude_bool_t
idmef_additional_data_get_boolean (idmef_additional_data_t *data);

idmef_additional_data_get_character ()

char
idmef_additional_data_get_character (idmef_additional_data_t *data);

idmef_additional_data_get_byte ()

uint8_t
idmef_additional_data_get_byte (idmef_additional_data_t *data);

idmef_additional_data_get_len ()

size_t
idmef_additional_data_get_len (idmef_additional_data_t *data);

idmef_additional_data_is_empty ()

prelude_bool_t
idmef_additional_data_is_empty (idmef_additional_data_t *data);

idmef_additional_data_data_to_string ()

int
idmef_additional_data_data_to_string (idmef_additional_data_t *ad,
                                      prelude_string_t *out);

Types and Values

libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-idmef-criteria.html0000644000000000000000000000010713726163660025224 xustar000000000000000024 mtime=1599662000.731 23 atime=1599662000.73 24 ctime=1599662000.731 libprelude-5.2.0/docs/api/html/libprelude-idmef-criteria.html0000644000000000000000000006216213726163660024230 0ustar00rootroot00000000000000 idmef-criteria: libprelude Reference Manual

idmef-criteria

idmef-criteria

Types and Values

Description

Functions

idmef_criterion_new ()

int
idmef_criterion_new (idmef_criteria_t **criterion,
                     idmef_path_t *path,
                     idmef_criterion_value_t *value,
                     idmef_criterion_operator_t op);

Creates a new idmef_criteria_t object and store it in criterion . Matching this criterion will result in comparing the object value pointed by path against the provided value , using op .

Parameters

criterion

Address where to store the created idmef_criteria_t object.

 

path

Pointer to an idmef_path_t object.

 

value

Pointer to an idmef_criterion_value_t object.

 

op

idmef_criterion_operator_t to use for matching this criterion.

 

Returns

0 on success, a negative value if an error occured.


idmef_criteria_new ()

int
idmef_criteria_new (idmef_criteria_t **criteria);

Creates a new idmef_criteria_t object and store it into criteria .

Parameters

criteria

Address where to store the created idmef_criteria_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_criteria_ref ()

idmef_criteria_t *
idmef_criteria_ref (idmef_criteria_t *criteria);

Increases criteria reference count.

idmef_criteria_destroy() will decrease the refcount until it reaches 0, at which point criteria will be destroyed.

Parameters

criteria

Pointer to a idmef_criteria_t object to reference.

 

Returns

criteria .


idmef_criteria_destroy ()

void
idmef_criteria_destroy (idmef_criteria_t *criteria);

Destroys criteria and its content.

Parameters

criteria

Pointer to a idmef_criteria_t object.

 

idmef_criteria_clone ()

int
idmef_criteria_clone (idmef_criteria_t *src,
                      idmef_criteria_t **dst);

Clones src and stores the cloned criteria within dst .

Parameters

src

Pointer to a idmef_criteria_t object to clone.

 

dst

Address where to store the cloned idmef_criteria_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_criteria_print ()

int
idmef_criteria_print (const idmef_criteria_t *criteria,
                      prelude_io_t *fd);

idmef_criteria_to_string ()

int
idmef_criteria_to_string (const idmef_criteria_t *criteria,
                          prelude_string_t *out);

idmef_criteria_is_criterion ()

prelude_bool_t
idmef_criteria_is_criterion (const idmef_criteria_t *criteria);

idmef_criteria_or_criteria ()

int
idmef_criteria_or_criteria (idmef_criteria_t *criteria,
                            idmef_criteria_t *criteria2);

idmef_criteria_and_criteria ()

int
idmef_criteria_and_criteria (idmef_criteria_t *criteria,
                             idmef_criteria_t *criteria2);

idmef_criteria_match ()

int
idmef_criteria_match (const idmef_criteria_t *criteria,
                      void *object);

Matches object against the provided criteria.

Parameters

criteria

Pointer to a idmef_criteria_t object.

 

object

Pointer to a idmef_object_t object.

 

Returns

1 if criteria match, 0 if it did not, a negative value if an error occured.


idmef_criteria_new_from_string ()

int
idmef_criteria_new_from_string (idmef_criteria_t **criteria,
                                const char *str);

Types and Values

enum idmef_criterion_operator_t

Members

IDMEF_CRITERION_OPERATOR_NOT

   

IDMEF_CRITERION_OPERATOR_NOCASE

   

IDMEF_CRITERION_OPERATOR_EQUAL

   

IDMEF_CRITERION_OPERATOR_EQUAL_NOCASE

   

IDMEF_CRITERION_OPERATOR_NOT_EQUAL

   

IDMEF_CRITERION_OPERATOR_NOT_EQUAL_NOCASE

   

IDMEF_CRITERION_OPERATOR_LESSER

   

IDMEF_CRITERION_OPERATOR_LESSER_OR_EQUAL

   

IDMEF_CRITERION_OPERATOR_GREATER

   

IDMEF_CRITERION_OPERATOR_GREATER_OR_EQUAL

   

IDMEF_CRITERION_OPERATOR_SUBSTR

   

IDMEF_CRITERION_OPERATOR_SUBSTR_NOCASE

   

IDMEF_CRITERION_OPERATOR_NOT_SUBSTR

   

IDMEF_CRITERION_OPERATOR_NOT_SUBSTR_NOCASE

   

IDMEF_CRITERION_OPERATOR_REGEX

   

IDMEF_CRITERION_OPERATOR_REGEX_NOCASE

   

IDMEF_CRITERION_OPERATOR_NOT_REGEX

   

IDMEF_CRITERION_OPERATOR_NOT_REGEX_NOCASE

   

IDMEF_CRITERION_OPERATOR_NULL

   

IDMEF_CRITERION_OPERATOR_NOT_NULL

   

idmef_criteria_t

typedef struct idmef_criteria idmef_criteria_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-idmef-criterion-value.html0000644000000000000000000000011013726163660026524 xustar000000000000000024 mtime=1599662000.732 24 atime=1599662000.731 24 ctime=1599662000.732 libprelude-5.2.0/docs/api/html/libprelude-idmef-criterion-value.html0000644000000000000000000004560613726163660025542 0ustar00rootroot00000000000000 idmef-criterion-value: libprelude Reference Manual

idmef-criterion-value

idmef-criterion-value

Description

Functions

idmef_criterion_value_new ()

int
idmef_criterion_value_new (idmef_criterion_value_t **cv);

idmef_criterion_value_new_regex ()

int
idmef_criterion_value_new_regex (idmef_criterion_value_t **cv,
                                 const char *regex,
                                 idmef_criterion_operator_t op);

idmef_criterion_value_new_value ()

int
idmef_criterion_value_new_value (idmef_criterion_value_t **cv,
                                 idmef_value_t *value,
                                 idmef_criterion_operator_t op);

idmef_criterion_value_new_from_string ()

int
idmef_criterion_value_new_from_string (idmef_criterion_value_t **cv,
                                       idmef_path_t *path,
                                       const char *value,
                                       idmef_criterion_operator_t op);

idmef_criterion_value_new_broken_down_time ()

int
idmef_criterion_value_new_broken_down_time
                               (idmef_criterion_value_t **cv,
                                const char *time,
                                idmef_criterion_operator_t op);

idmef_criterion_value_clone ()

int
idmef_criterion_value_clone (const idmef_criterion_value_t *src,
                             idmef_criterion_value_t **dst);

idmef_criterion_value_destroy ()

void
idmef_criterion_value_destroy (idmef_criterion_value_t *value);

idmef_criterion_value_print ()

int
idmef_criterion_value_print (idmef_criterion_value_t *value,
                             prelude_io_t *fd);

idmef_criterion_value_to_string ()

int
idmef_criterion_value_to_string (idmef_criterion_value_t *value,
                                 prelude_string_t *out);

idmef_criterion_value_match ()

int
idmef_criterion_value_match (idmef_criterion_value_t *cv,
                             idmef_value_t *value,
                             idmef_criterion_operator_t op);

idmef_criterion_value_get_value ()

const idmef_value_t *
idmef_criterion_value_get_value (idmef_criterion_value_t *cv);

idmef_criterion_value_get_regex ()

const char *
idmef_criterion_value_get_regex (idmef_criterion_value_t *cv);

idmef_criterion_value_get_broken_down_time ()

const struct tm *
idmef_criterion_value_get_broken_down_time
                               (idmef_criterion_value_t *cv);

idmef_criterion_value_get_type ()

idmef_criterion_value_type_t
idmef_criterion_value_get_type (idmef_criterion_value_t *cv);

Types and Values

idmef_criterion_value_t

typedef struct idmef_criterion_value idmef_criterion_value_t;

enum idmef_criterion_value_type_t

Members

IDMEF_CRITERION_VALUE_TYPE_ERROR

   

IDMEF_CRITERION_VALUE_TYPE_VALUE

   

IDMEF_CRITERION_VALUE_TYPE_REGEX

   

IDMEF_CRITERION_VALUE_TYPE_BROKEN_DOWN_TIME

   
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-idmef-data.html0000644000000000000000000000011013726163660024325 xustar000000000000000024 mtime=1599662000.734 24 atime=1599662000.733 24 ctime=1599662000.734 libprelude-5.2.0/docs/api/html/libprelude-idmef-data.html0000644000000000000000000015215413726163660023340 0ustar00rootroot00000000000000 idmef-data: libprelude Reference Manual

idmef-data

idmef-data

Functions

int idmef_data_new ()
idmef_data_t * idmef_data_ref ()
int idmef_data_new_char ()
int idmef_data_new_byte ()
int idmef_data_new_uint32 ()
int idmef_data_new_uint64 ()
int idmef_data_new_float ()
void idmef_data_set_char ()
void idmef_data_set_byte ()
void idmef_data_set_uint32 ()
void idmef_data_set_uint64 ()
void idmef_data_set_float ()
int idmef_data_set_ptr_dup_fast ()
int idmef_data_set_ptr_ref_fast ()
int idmef_data_set_ptr_nodup_fast ()
int idmef_data_new_ptr_dup_fast ()
int idmef_data_new_ptr_ref_fast ()
int idmef_data_new_ptr_nodup_fast ()
int idmef_data_set_char_string_dup_fast ()
int idmef_data_new_char_string_dup_fast ()
int idmef_data_new_char_string_ref_fast ()
int idmef_data_new_char_string_nodup_fast ()
int idmef_data_set_char_string_ref_fast ()
int idmef_data_set_char_string_nodup_fast ()
int idmef_data_new_char_string_ref ()
int idmef_data_new_char_string_dup ()
int idmef_data_new_char_string_nodup ()
int idmef_data_set_char_string_ref ()
int idmef_data_set_char_string_dup ()
int idmef_data_set_char_string_nodup ()
#define idmef_data_set_char_string_constant()
int idmef_data_new_byte_string_ref ()
int idmef_data_new_byte_string_dup ()
int idmef_data_new_byte_string_nodup ()
int idmef_data_set_byte_string_ref ()
int idmef_data_set_byte_string_dup ()
int idmef_data_set_byte_string_nodup ()
void idmef_data_destroy ()
int idmef_data_copy_ref ()
int idmef_data_copy_dup ()
int idmef_data_clone ()
idmef_data_type_t idmef_data_get_type ()
size_t idmef_data_get_len ()
const void * idmef_data_get_data ()
char idmef_data_get_char ()
uint8_t idmef_data_get_byte ()
uint32_t idmef_data_get_uint32 ()
uint64_t idmef_data_get_uint64 ()
float idmef_data_get_float ()
const char * idmef_data_get_char_string ()
const unsigned char * idmef_data_get_byte_string ()
prelude_bool_t idmef_data_is_empty ()
int idmef_data_to_string ()
void idmef_data_destroy_internal ()

Types and Values

Description

Functions

idmef_data_new ()

int
idmef_data_new (idmef_data_t **data);

idmef_data_ref ()

idmef_data_t *
idmef_data_ref (idmef_data_t *data);

idmef_data_new_char ()

int
idmef_data_new_char (idmef_data_t **data,
                     char c);

idmef_data_new_byte ()

int
idmef_data_new_byte (idmef_data_t **data,
                     uint8_t i);

idmef_data_new_uint32 ()

int
idmef_data_new_uint32 (idmef_data_t **data,
                       uint32_t i);

idmef_data_new_uint32 is deprecated and should not be used in newly-written code.


idmef_data_new_uint64 ()

int
idmef_data_new_uint64 (idmef_data_t **data,
                       uint64_t i);

idmef_data_new_uint64 is deprecated and should not be used in newly-written code.


idmef_data_new_float ()

int
idmef_data_new_float (idmef_data_t **data,
                      float f);

idmef_data_set_char ()

void
idmef_data_set_char (idmef_data_t *data,
                     char c);

idmef_data_set_byte ()

void
idmef_data_set_byte (idmef_data_t *data,
                     uint8_t i);

idmef_data_set_uint32 ()

void
idmef_data_set_uint32 (idmef_data_t *data,
                       uint32_t i);

idmef_data_set_uint32 is deprecated and should not be used in newly-written code.


idmef_data_set_uint64 ()

void
idmef_data_set_uint64 (idmef_data_t *data,
                       uint64_t i);

idmef_data_set_uint64 is deprecated and should not be used in newly-written code.


idmef_data_set_float ()

void
idmef_data_set_float (idmef_data_t *data,
                      float f);

idmef_data_set_ptr_dup_fast ()

int
idmef_data_set_ptr_dup_fast (idmef_data_t *data,
                             idmef_data_type_t type,
                             const void *ptr,
                             size_t len);

idmef_data_set_ptr_ref_fast ()

int
idmef_data_set_ptr_ref_fast (idmef_data_t *data,
                             idmef_data_type_t type,
                             const void *ptr,
                             size_t len);

idmef_data_set_ptr_nodup_fast ()

int
idmef_data_set_ptr_nodup_fast (idmef_data_t *data,
                               idmef_data_type_t type,
                               void *ptr,
                               size_t len);

idmef_data_new_ptr_dup_fast ()

int
idmef_data_new_ptr_dup_fast (idmef_data_t **data,
                             idmef_data_type_t type,
                             const void *ptr,
                             size_t len);

idmef_data_new_ptr_ref_fast ()

int
idmef_data_new_ptr_ref_fast (idmef_data_t **data,
                             idmef_data_type_t type,
                             const void *ptr,
                             size_t len);

idmef_data_new_ptr_nodup_fast ()

int
idmef_data_new_ptr_nodup_fast (idmef_data_t **data,
                               idmef_data_type_t type,
                               void *ptr,
                               size_t len);

idmef_data_set_char_string_dup_fast ()

int
idmef_data_set_char_string_dup_fast (idmef_data_t *data,
                                     const char *str,
                                     size_t len);

idmef_data_new_char_string_dup_fast ()

int
idmef_data_new_char_string_dup_fast (idmef_data_t **data,
                                     const char *str,
                                     size_t len);

idmef_data_new_char_string_ref_fast ()

int
idmef_data_new_char_string_ref_fast (idmef_data_t **data,
                                     const char *ptr,
                                     size_t len);

idmef_data_new_char_string_nodup_fast ()

int
idmef_data_new_char_string_nodup_fast (idmef_data_t **data,
                                       char *ptr,
                                       size_t len);

idmef_data_set_char_string_ref_fast ()

int
idmef_data_set_char_string_ref_fast (idmef_data_t *data,
                                     const char *ptr,
                                     size_t len);

idmef_data_set_char_string_nodup_fast ()

int
idmef_data_set_char_string_nodup_fast (idmef_data_t *data,
                                       char *ptr,
                                       size_t len);

idmef_data_new_char_string_ref ()

int
idmef_data_new_char_string_ref (idmef_data_t **data,
                                const char *ptr);

idmef_data_new_char_string_dup ()

int
idmef_data_new_char_string_dup (idmef_data_t **data,
                                const char *ptr);

idmef_data_new_char_string_nodup ()

int
idmef_data_new_char_string_nodup (idmef_data_t **data,
                                  char *ptr);

idmef_data_set_char_string_ref ()

int
idmef_data_set_char_string_ref (idmef_data_t *data,
                                const char *ptr);

idmef_data_set_char_string_dup ()

int
idmef_data_set_char_string_dup (idmef_data_t *data,
                                const char *ptr);

idmef_data_set_char_string_nodup ()

int
idmef_data_set_char_string_nodup (idmef_data_t *data,
                                  char *ptr);

idmef_data_set_char_string_constant()

#define             idmef_data_set_char_string_constant(string, str)

idmef_data_new_byte_string_ref ()

int
idmef_data_new_byte_string_ref (idmef_data_t **data,
                                const unsigned char *ptr,
                                size_t len);

idmef_data_new_byte_string_dup ()

int
idmef_data_new_byte_string_dup (idmef_data_t **data,
                                const unsigned char *ptr,
                                size_t len);

idmef_data_new_byte_string_nodup ()

int
idmef_data_new_byte_string_nodup (idmef_data_t **data,
                                  unsigned char *ptr,
                                  size_t len);

idmef_data_set_byte_string_ref ()

int
idmef_data_set_byte_string_ref (idmef_data_t *data,
                                const unsigned char *ptr,
                                size_t len);

idmef_data_set_byte_string_dup ()

int
idmef_data_set_byte_string_dup (idmef_data_t *data,
                                const unsigned char *ptr,
                                size_t len);

idmef_data_set_byte_string_nodup ()

int
idmef_data_set_byte_string_nodup (idmef_data_t *data,
                                  unsigned char *ptr,
                                  size_t len);

idmef_data_destroy ()

void
idmef_data_destroy (idmef_data_t *data);

Frees data . The buffer pointed by data will be freed if the data object is marked as _dup or _nodup.

Parameters

data

Pointer to an idmef_data_t object.

 

idmef_data_copy_ref ()

int
idmef_data_copy_ref (const idmef_data_t *src,
                     idmef_data_t *dst);

Makes dst reference the same buffer as src .

Parameters

src

Source idmef_data_t object.

 

dst

Destination idmef_data_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_data_copy_dup ()

int
idmef_data_copy_dup (const idmef_data_t *src,
                     idmef_data_t *dst);

Copies src to dst , including the associated buffer. This is an alternative to idmef_data_clone().

Parameters

src

Source idmef_data_t object.

 

dst

Destination idmef_data_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_data_clone ()

int
idmef_data_clone (const idmef_data_t *src,
                  idmef_data_t **dst);

idmef_data_get_type ()

idmef_data_type_t
idmef_data_get_type (const idmef_data_t *data);

Parameters

data

Pointer to an idmef_data_t object.

 

Returns

the type of the embedded data.


idmef_data_get_len ()

size_t
idmef_data_get_len (const idmef_data_t *data);

Parameters

data

Pointer to an idmef_data_t object.

 

Returns

the length of data contained within data object.


idmef_data_get_data ()

const void *
idmef_data_get_data (const idmef_data_t *data);

Parameters

data

Pointer to an idmef_data_t object.

 

Returns

the data contained within data object.


idmef_data_get_char ()

char
idmef_data_get_char (const idmef_data_t *data);

idmef_data_get_byte ()

uint8_t
idmef_data_get_byte (const idmef_data_t *data);

idmef_data_get_uint32 ()

uint32_t
idmef_data_get_uint32 (const idmef_data_t *data);

idmef_data_get_uint32 is deprecated and should not be used in newly-written code.


idmef_data_get_uint64 ()

uint64_t
idmef_data_get_uint64 (const idmef_data_t *data);

idmef_data_get_uint64 is deprecated and should not be used in newly-written code.


idmef_data_get_float ()

float
idmef_data_get_float (const idmef_data_t *data);

idmef_data_get_char_string ()

const char *
idmef_data_get_char_string (const idmef_data_t *data);

idmef_data_get_byte_string ()

const unsigned char *
idmef_data_get_byte_string (const idmef_data_t *data);

idmef_data_is_empty ()

prelude_bool_t
idmef_data_is_empty (const idmef_data_t *data);

Parameters

data

Pointer to an idmef_data_t object.

 

Returns

TRUE if empty, FALSE otherwise.


idmef_data_to_string ()

int
idmef_data_to_string (const idmef_data_t *data,
                      prelude_string_t *out);

Formats data contained within data to be printable, and stores the result in the provided out buffer.

Parameters

data

Pointer to an idmef_data_t object.

 

out

Pointer to a prelude_string_t to store the formated data into.

 

Returns

0 on success, a negative value if an error occured.


idmef_data_destroy_internal ()

void
idmef_data_destroy_internal (idmef_data_t *data);

Types and Values

enum idmef_data_type_t

Members

IDMEF_DATA_TYPE_UNKNOWN

   

IDMEF_DATA_TYPE_CHAR

   

IDMEF_DATA_TYPE_BYTE

   

IDMEF_DATA_TYPE_UINT32

   

IDMEF_DATA_TYPE_UINT64

   

IDMEF_DATA_TYPE_INT

   

IDMEF_DATA_TYPE_FLOAT

   

IDMEF_DATA_TYPE_CHAR_STRING

   

IDMEF_DATA_TYPE_BYTE_STRING

   

IDMEF_DATA_TYPE_TIME

   
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-idmef-message-print.html0000644000000000000000000000011013726163660026172 xustar000000000000000024 mtime=1599662000.736 24 atime=1599662000.736 24 ctime=1599662000.736 libprelude-5.2.0/docs/api/html/libprelude-idmef-message-print.html0000644000000000000000000016767613726163660025224 0ustar00rootroot00000000000000 idmef-message-print: libprelude Reference Manual

idmef-message-print

idmef-message-print

Description

Functions

idmef_additional_data_print ()

void
idmef_additional_data_print (idmef_additional_data_t *ptr,
                             prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_additional_data_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_reference_print ()

void
idmef_reference_print (idmef_reference_t *ptr,
                       prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_reference_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_classification_print ()

void
idmef_classification_print (idmef_classification_t *ptr,
                            prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_classification_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_user_id_print ()

void
idmef_user_id_print (idmef_user_id_t *ptr,
                     prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_user_id_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_user_print ()

void
idmef_user_print (idmef_user_t *ptr,
                  prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_user_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_address_print ()

void
idmef_address_print (idmef_address_t *ptr,
                     prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_address_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_process_print ()

void
idmef_process_print (idmef_process_t *ptr,
                     prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_process_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_web_service_print ()

void
idmef_web_service_print (idmef_web_service_t *ptr,
                         prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_web_service_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_snmp_service_print ()

void
idmef_snmp_service_print (idmef_snmp_service_t *ptr,
                          prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_snmp_service_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_service_print ()

void
idmef_service_print (idmef_service_t *ptr,
                     prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_service_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_node_print ()

void
idmef_node_print (idmef_node_t *ptr,
                  prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_node_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_source_print ()

void
idmef_source_print (idmef_source_t *ptr,
                    prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_source_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_file_access_print ()

void
idmef_file_access_print (idmef_file_access_t *ptr,
                         prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_file_access_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_inode_print ()

void
idmef_inode_print (idmef_inode_t *ptr,
                   prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_inode_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_checksum_print ()

void
idmef_checksum_print (idmef_checksum_t *ptr,
                      prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_checksum_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_file_print ()

void
idmef_file_print (idmef_file_t *ptr,
                  prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_file_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_linkage_print ()

void
idmef_linkage_print (idmef_linkage_t *ptr,
                     prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_linkage_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_target_print ()

void
idmef_target_print (idmef_target_t *ptr,
                    prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_target_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_analyzer_print ()

void
idmef_analyzer_print (idmef_analyzer_t *ptr,
                      prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_analyzer_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_alertident_print ()

void
idmef_alertident_print (idmef_alertident_t *ptr,
                        prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_alertident_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_impact_print ()

void
idmef_impact_print (idmef_impact_t *ptr,
                    prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_impact_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_action_print ()

void
idmef_action_print (idmef_action_t *ptr,
                    prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_action_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_confidence_print ()

void
idmef_confidence_print (idmef_confidence_t *ptr,
                        prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_confidence_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_assessment_print ()

void
idmef_assessment_print (idmef_assessment_t *ptr,
                        prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_assessment_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_tool_alert_print ()

void
idmef_tool_alert_print (idmef_tool_alert_t *ptr,
                        prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_tool_alert_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_correlation_alert_print ()

void
idmef_correlation_alert_print (idmef_correlation_alert_t *ptr,
                               prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_correlation_alert_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_overflow_alert_print ()

void
idmef_overflow_alert_print (idmef_overflow_alert_t *ptr,
                            prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_overflow_alert_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_alert_print ()

void
idmef_alert_print (idmef_alert_t *ptr,
                   prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_alert_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_heartbeat_print ()

void
idmef_heartbeat_print (idmef_heartbeat_t *ptr,
                       prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_heartbeat_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

idmef_message_print ()

void
idmef_message_print (idmef_message_t *ptr,
                     prelude_io_t *fd);

This function will convert ptr to a string suitable for writing, and write it to the provided fd descriptor.

Parameters

ptr

Pointer to an idmef_message_t object.

 

fd

Pointer to a prelude_io_t object where to print ptr to.

 

Types and Values

libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-idmef-message-read.html0000644000000000000000000000011013726163660025751 xustar000000000000000024 mtime=1599662000.739 24 atime=1599662000.739 24 ctime=1599662000.739 libprelude-5.2.0/docs/api/html/libprelude-idmef-message-read.html0000644000000000000000000020417313726163660024763 0ustar00rootroot00000000000000 idmef-message-read: libprelude Reference Manual

idmef-message-read

idmef-message-read

Description

Functions

idmef_additional_data_read ()

int
idmef_additional_data_read (idmef_additional_data_t *additional_data,
                            prelude_msg_t *msg);

Read an idmef_additional_data from the msg message, and store it into additional_data .

Parameters

additional_data

Pointer to a idmef_additional_data_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_reference_read ()

int
idmef_reference_read (idmef_reference_t *reference,
                      prelude_msg_t *msg);

Read an idmef_reference from the msg message, and store it into reference .

Parameters

reference

Pointer to a idmef_reference_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_classification_read ()

int
idmef_classification_read (idmef_classification_t *classification,
                           prelude_msg_t *msg);

Read an idmef_classification from the msg message, and store it into classification .

Parameters

classification

Pointer to a idmef_classification_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_user_id_read ()

int
idmef_user_id_read (idmef_user_id_t *user_id,
                    prelude_msg_t *msg);

Read an idmef_user_id from the msg message, and store it into user_id .

Parameters

user_id

Pointer to a idmef_user_id_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_user_read ()

int
idmef_user_read (idmef_user_t *user,
                 prelude_msg_t *msg);

Read an idmef_user from the msg message, and store it into user .

Parameters

user

Pointer to a idmef_user_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_address_read ()

int
idmef_address_read (idmef_address_t *address,
                    prelude_msg_t *msg);

Read an idmef_address from the msg message, and store it into address .

Parameters

address

Pointer to a idmef_address_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_process_read ()

int
idmef_process_read (idmef_process_t *process,
                    prelude_msg_t *msg);

Read an idmef_process from the msg message, and store it into process .

Parameters

process

Pointer to a idmef_process_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_web_service_read ()

int
idmef_web_service_read (idmef_web_service_t *web_service,
                        prelude_msg_t *msg);

Read an idmef_web_service from the msg message, and store it into web_service .

Parameters

web_service

Pointer to a idmef_web_service_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_snmp_service_read ()

int
idmef_snmp_service_read (idmef_snmp_service_t *snmp_service,
                         prelude_msg_t *msg);

Read an idmef_snmp_service from the msg message, and store it into snmp_service .

Parameters

snmp_service

Pointer to a idmef_snmp_service_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_service_read ()

int
idmef_service_read (idmef_service_t *service,
                    prelude_msg_t *msg);

Read an idmef_service from the msg message, and store it into service .

Parameters

service

Pointer to a idmef_service_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_node_read ()

int
idmef_node_read (idmef_node_t *node,
                 prelude_msg_t *msg);

Read an idmef_node from the msg message, and store it into node .

Parameters

node

Pointer to a idmef_node_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_source_read ()

int
idmef_source_read (idmef_source_t *source,
                   prelude_msg_t *msg);

Read an idmef_source from the msg message, and store it into source .

Parameters

source

Pointer to a idmef_source_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_file_access_read ()

int
idmef_file_access_read (idmef_file_access_t *file_access,
                        prelude_msg_t *msg);

Read an idmef_file_access from the msg message, and store it into file_access .

Parameters

file_access

Pointer to a idmef_file_access_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_inode_read ()

int
idmef_inode_read (idmef_inode_t *inode,
                  prelude_msg_t *msg);

Read an idmef_inode from the msg message, and store it into inode .

Parameters

inode

Pointer to a idmef_inode_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_checksum_read ()

int
idmef_checksum_read (idmef_checksum_t *checksum,
                     prelude_msg_t *msg);

Read an idmef_checksum from the msg message, and store it into checksum .

Parameters

checksum

Pointer to a idmef_checksum_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_file_read ()

int
idmef_file_read (idmef_file_t *file,
                 prelude_msg_t *msg);

Read an idmef_file from the msg message, and store it into file .

Parameters

file

Pointer to a idmef_file_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_linkage_read ()

int
idmef_linkage_read (idmef_linkage_t *linkage,
                    prelude_msg_t *msg);

Read an idmef_linkage from the msg message, and store it into linkage .

Parameters

linkage

Pointer to a idmef_linkage_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_target_read ()

int
idmef_target_read (idmef_target_t *target,
                   prelude_msg_t *msg);

Read an idmef_target from the msg message, and store it into target .

Parameters

target

Pointer to a idmef_target_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_analyzer_read ()

int
idmef_analyzer_read (idmef_analyzer_t *analyzer,
                     prelude_msg_t *msg);

Read an idmef_analyzer from the msg message, and store it into analyzer .

Parameters

analyzer

Pointer to a idmef_analyzer_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_alertident_read ()

int
idmef_alertident_read (idmef_alertident_t *alertident,
                       prelude_msg_t *msg);

Read an idmef_alertident from the msg message, and store it into alertident .

Parameters

alertident

Pointer to a idmef_alertident_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_impact_read ()

int
idmef_impact_read (idmef_impact_t *impact,
                   prelude_msg_t *msg);

Read an idmef_impact from the msg message, and store it into impact .

Parameters

impact

Pointer to a idmef_impact_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_action_read ()

int
idmef_action_read (idmef_action_t *action,
                   prelude_msg_t *msg);

Read an idmef_action from the msg message, and store it into action .

Parameters

action

Pointer to a idmef_action_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_confidence_read ()

int
idmef_confidence_read (idmef_confidence_t *confidence,
                       prelude_msg_t *msg);

Read an idmef_confidence from the msg message, and store it into confidence .

Parameters

confidence

Pointer to a idmef_confidence_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_assessment_read ()

int
idmef_assessment_read (idmef_assessment_t *assessment,
                       prelude_msg_t *msg);

Read an idmef_assessment from the msg message, and store it into assessment .

Parameters

assessment

Pointer to a idmef_assessment_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_tool_alert_read ()

int
idmef_tool_alert_read (idmef_tool_alert_t *tool_alert,
                       prelude_msg_t *msg);

Read an idmef_tool_alert from the msg message, and store it into tool_alert .

Parameters

tool_alert

Pointer to a idmef_tool_alert_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_correlation_alert_read ()

int
idmef_correlation_alert_read (idmef_correlation_alert_t *correlation_alert,
                              prelude_msg_t *msg);

Read an idmef_correlation_alert from the msg message, and store it into correlation_alert .

Parameters

correlation_alert

Pointer to a idmef_correlation_alert_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_overflow_alert_read ()

int
idmef_overflow_alert_read (idmef_overflow_alert_t *overflow_alert,
                           prelude_msg_t *msg);

Read an idmef_overflow_alert from the msg message, and store it into overflow_alert .

Parameters

overflow_alert

Pointer to a idmef_overflow_alert_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_alert_read ()

int
idmef_alert_read (idmef_alert_t *alert,
                  prelude_msg_t *msg);

Read an idmef_alert from the msg message, and store it into alert .

Parameters

alert

Pointer to a idmef_alert_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_heartbeat_read ()

int
idmef_heartbeat_read (idmef_heartbeat_t *heartbeat,
                      prelude_msg_t *msg);

Read an idmef_heartbeat from the msg message, and store it into heartbeat .

Parameters

heartbeat

Pointer to a idmef_heartbeat_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.


idmef_message_read ()

int
idmef_message_read (idmef_message_t *message,
                    prelude_msg_t *msg);

Read an idmef_message from the msg message, and store it into message .

Parameters

message

Pointer to a idmef_message_t object.

 

msg

Pointer to a prelude_msg_t object, containing a message.

 

Returns

0 on success, a negative value if an error occured.

Types and Values

libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-idmef-message-write.html0000644000000000000000000000011013726163660026170 xustar000000000000000024 mtime=1599662000.742 24 atime=1599662000.741 24 ctime=1599662000.742 libprelude-5.2.0/docs/api/html/libprelude-idmef-message-write.html0000644000000000000000000022133113726163660025175 0ustar00rootroot00000000000000 idmef-message-write: libprelude Reference Manual

idmef-message-write

idmef-message-write

Description

Functions

idmef_additional_data_write ()

int
idmef_additional_data_write (idmef_additional_data_t *additional_data,
                             prelude_msgbuf_t *msg);

Write additional_data within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

additional_data

Pointer to a idmef_additional_data_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_reference_write ()

int
idmef_reference_write (idmef_reference_t *reference,
                       prelude_msgbuf_t *msg);

Write reference within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

reference

Pointer to a idmef_reference_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_classification_write ()

int
idmef_classification_write (idmef_classification_t *classification,
                            prelude_msgbuf_t *msg);

Write classification within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

classification

Pointer to a idmef_classification_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_user_id_write ()

int
idmef_user_id_write (idmef_user_id_t *user_id,
                     prelude_msgbuf_t *msg);

Write user_id within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

user_id

Pointer to a idmef_user_id_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_user_write ()

int
idmef_user_write (idmef_user_t *user,
                  prelude_msgbuf_t *msg);

Write user within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

user

Pointer to a idmef_user_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_address_write ()

int
idmef_address_write (idmef_address_t *address,
                     prelude_msgbuf_t *msg);

Write address within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

address

Pointer to a idmef_address_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_process_write ()

int
idmef_process_write (idmef_process_t *process,
                     prelude_msgbuf_t *msg);

Write process within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

process

Pointer to a idmef_process_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_web_service_write ()

int
idmef_web_service_write (idmef_web_service_t *web_service,
                         prelude_msgbuf_t *msg);

Write web_service within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

web_service

Pointer to a idmef_web_service_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_snmp_service_write ()

int
idmef_snmp_service_write (idmef_snmp_service_t *snmp_service,
                          prelude_msgbuf_t *msg);

Write snmp_service within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

snmp_service

Pointer to a idmef_snmp_service_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_service_write ()

int
idmef_service_write (idmef_service_t *service,
                     prelude_msgbuf_t *msg);

Write service within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

service

Pointer to a idmef_service_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_node_write ()

int
idmef_node_write (idmef_node_t *node,
                  prelude_msgbuf_t *msg);

Write node within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

node

Pointer to a idmef_node_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_source_write ()

int
idmef_source_write (idmef_source_t *source,
                    prelude_msgbuf_t *msg);

Write source within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

source

Pointer to a idmef_source_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_file_access_write ()

int
idmef_file_access_write (idmef_file_access_t *file_access,
                         prelude_msgbuf_t *msg);

Write file_access within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

file_access

Pointer to a idmef_file_access_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_inode_write ()

int
idmef_inode_write (idmef_inode_t *inode,
                   prelude_msgbuf_t *msg);

Write inode within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

inode

Pointer to a idmef_inode_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_checksum_write ()

int
idmef_checksum_write (idmef_checksum_t *checksum,
                      prelude_msgbuf_t *msg);

Write checksum within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

checksum

Pointer to a idmef_checksum_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_file_write ()

int
idmef_file_write (idmef_file_t *file,
                  prelude_msgbuf_t *msg);

Write file within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

file

Pointer to a idmef_file_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_linkage_write ()

int
idmef_linkage_write (idmef_linkage_t *linkage,
                     prelude_msgbuf_t *msg);

Write linkage within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

linkage

Pointer to a idmef_linkage_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_target_write ()

int
idmef_target_write (idmef_target_t *target,
                    prelude_msgbuf_t *msg);

Write target within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

target

Pointer to a idmef_target_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_analyzer_write ()

int
idmef_analyzer_write (idmef_analyzer_t *analyzer,
                      prelude_msgbuf_t *msg);

Write analyzer within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

analyzer

Pointer to a idmef_analyzer_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_alertident_write ()

int
idmef_alertident_write (idmef_alertident_t *alertident,
                        prelude_msgbuf_t *msg);

Write alertident within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

alertident

Pointer to a idmef_alertident_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_impact_write ()

int
idmef_impact_write (idmef_impact_t *impact,
                    prelude_msgbuf_t *msg);

Write impact within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

impact

Pointer to a idmef_impact_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_action_write ()

int
idmef_action_write (idmef_action_t *action,
                    prelude_msgbuf_t *msg);

Write action within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

action

Pointer to a idmef_action_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_confidence_write ()

int
idmef_confidence_write (idmef_confidence_t *confidence,
                        prelude_msgbuf_t *msg);

Write confidence within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

confidence

Pointer to a idmef_confidence_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_assessment_write ()

int
idmef_assessment_write (idmef_assessment_t *assessment,
                        prelude_msgbuf_t *msg);

Write assessment within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

assessment

Pointer to a idmef_assessment_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_tool_alert_write ()

int
idmef_tool_alert_write (idmef_tool_alert_t *tool_alert,
                        prelude_msgbuf_t *msg);

Write tool_alert within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

tool_alert

Pointer to a idmef_tool_alert_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_correlation_alert_write ()

int
idmef_correlation_alert_write (idmef_correlation_alert_t *correlation_alert,
                               prelude_msgbuf_t *msg);

Write correlation_alert within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

correlation_alert

Pointer to a idmef_correlation_alert_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_overflow_alert_write ()

int
idmef_overflow_alert_write (idmef_overflow_alert_t *overflow_alert,
                            prelude_msgbuf_t *msg);

Write overflow_alert within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

overflow_alert

Pointer to a idmef_overflow_alert_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_alert_write ()

int
idmef_alert_write (idmef_alert_t *alert,
                   prelude_msgbuf_t *msg);

Write alert within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

alert

Pointer to a idmef_alert_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_heartbeat_write ()

int
idmef_heartbeat_write (idmef_heartbeat_t *heartbeat,
                       prelude_msgbuf_t *msg);

Write heartbeat within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

heartbeat

Pointer to a idmef_heartbeat_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.


idmef_message_write ()

int
idmef_message_write (idmef_message_t *message,
                     prelude_msgbuf_t *msg);

Write message within msg message buffer. The buffer is associated with a prelude_io_t file descriptor where the data will be written.

Parameters

message

Pointer to a idmef_message_t object.

 

msg

Pointer to a prelude_msgbuf_t object, where the message should be written.

 

Returns

0 on success, a negative value if an error occured.

Types and Values

libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-idmef-path.html0000644000000000000000000000011013726163660024350 xustar000000000000000024 mtime=1599662000.744 24 atime=1599662000.743 24 ctime=1599662000.744 libprelude-5.2.0/docs/api/html/libprelude-idmef-path.html0000644000000000000000000014456413726163660023371 0ustar00rootroot00000000000000 idmef-path: libprelude Reference Manual

idmef-path

idmef-path

Types and Values

typedef idmef_path_t

Description

Functions

idmef_path_get ()

int
idmef_path_get (const idmef_path_t *path,
                void *object,
                idmef_value_t **ret);

This function retrieves the value for path within message , and stores it into the provided ret address of type idmef_value_t.

Parameters

path

Pointer to a idmef_path_t object.

 

obj

Pointer to a idmef_object_t object.

 

ret

Address where to store the retrieved idmef_value_t.

 

Returns

The number of element retrieved, or a negative value if an error occured.


idmef_path_set ()

int
idmef_path_set (const idmef_path_t *path,
                void *object,
                idmef_value_t *value);

This function sets the provided value for path within message .

Parameters

path

Pointer to a idmef_path_t object.

 

obj

Pointer to a idmef_object_t object.

 

value

Pointer to a idmef_value_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_path_new ()

int
idmef_path_new (idmef_path_t **path,
                const char *format);

Creates an idmef_path_t object pointing to the provided format string format and @..., and stores it within path .

Parameters

path

Address where to store the created idmef_path_t object.

 

format

Format string.

 

...

Arguments list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_path_new_v ()

int
idmef_path_new_v (idmef_path_t **path,
                  const char *format);

Creates an idmef_path_t object pointing to the provided format string format and args , and stores it within path .

Parameters

path

Address where to store the created idmef_path_t object.

 

format

Format string.

 

args

Pointer to a variable argument list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_path_new_fast ()

int
idmef_path_new_fast (idmef_path_t **path,
                     const char *buffer);

Creates a idmef_path_t object pointing to buffer , and stores it within path .

Parameters

path

Address where to store the created idmef_path_t object.

 

buffer

Name of the path to create.

 

Returns

0 on success, or a negative value if an error occured.


idmef_path_get_class ()

idmef_class_id_t
idmef_path_get_class (const idmef_path_t *path,
                      int depth);

Retrieves the idmef_class_id_t value for the element of path located at depth . If depth is -1, the last element depth is addressed.

Parameters

path

Pointer to an idmef_path_t object.

 

depth

Depth of path to retrieve the idmef_class_id_t from.

 

Returns

The idmef_class_id_t for the elemnt, or a negative value if an error occured.


idmef_path_get_value_type ()

idmef_value_type_id_t
idmef_path_get_value_type (const idmef_path_t *path,
                           int depth);

Retrieves the idmef_value_type_id_t identifying the type of value acceptable for this path element, for the path element located at depth . If depth is -1, the last element depth is addressed.

Parameters

path

Pointer to an idmef_path_t object.

 

depth

Depth of path to retrieve the idmef_value_type_id_t from.

 

Returns

The idmef_value_type_id_t for the element, or a negative value if an error occured.


idmef_path_set_index ()

int
idmef_path_set_index (idmef_path_t *path,
                      unsigned int depth,
                      int index);

Modifies index for the element located at depth of provided path . This function is only applicable for element that accept listed value.

Parameters

path

Pointer to an idmef_path_t object.

 

depth

Depth of path to set index for.

 

index

Index for the provided element depth .

 

Returns

0 on success, a negative value if an error occured.


idmef_path_undefine_index ()

int
idmef_path_undefine_index (idmef_path_t *path,
                           unsigned int depth);

Modifies the element located at depth of provided path so that it's index is undefined.

This function is only applicable for element that accept listed value.

Parameters

path

Pointer to an idmef_path_t object.

 

depth

Depth of path to undefine the index for.

 

Returns

0 on success, a negative value if an error occured.


idmef_path_get_index ()

int
idmef_path_get_index (const idmef_path_t *path,
                      unsigned int depth);

Gets the current index for element located at depth of path . This function is only applicable for element that accepts listed value.

Parameters

path

Pointer to an idmef_path_t object.

 

depth

Depth of path to retrieve the index from.

 

Returns

The element index, or a negative value if an error occured.


idmef_path_make_child ()

int
idmef_path_make_child (idmef_path_t *path,
                       const char *child_name,
                       int index);

Modifies path so that it points to the child node identified by child_name , children of the current path. That is if the path is currently pointing to alert.classification, and child_name is set to "text", path will be modified to point to alert.classification.text.

Parameters

path

Pointer to an idmef_path_t object.

 

child_name

Name of the child element to create.

 

index

Index for child_name , if applicable.

 

Returns

0 on success, or a negative value if an error occured.


idmef_path_make_parent ()

int
idmef_path_make_parent (idmef_path_t *path);

Removes the last element of the path. That is, if path is currently pointing to alert.classification, path will be modified to point to alert.

Parameters

path

Pointer to an idmef_path_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_path_destroy ()

void
idmef_path_destroy (idmef_path_t *path);

Destroys the provided path object.

Parameters

path

Pointer to an idmef_path_t object.

 

idmef_path_ncompare ()

int
idmef_path_ncompare (const idmef_path_t *p1,
                     const idmef_path_t *p2,
                     unsigned int depth);

Compares p1 and p2 elements up to depth .

Parameters

p1

Pointer to an idmef_path_t object.

 

p2

Pointer to another idmef_path_t object.

 

depth

Maximum depth to use for path comparison.

 

Returns

0 if both element match, a negative value otherwise.


idmef_path_compare ()

int
idmef_path_compare (const idmef_path_t *p1,
                    const idmef_path_t *p2);

Compares p1 and p2 elements.

Parameters

p1

Pointer to an idmef_path_t object.

 

p2

Pointer to another idmef_path_t object.

 

Returns

0 if both element match, a negative value otherwise.


idmef_path_clone ()

int
idmef_path_clone (const idmef_path_t *src,
                  idmef_path_t **dst);

Clones src and stores the result in the provided dst address.

Parameters

src

Pointer to an idmef_path_t object.

 

dst

Address where to store the copy of src .

 

Returns

0 on success, a negative value otherwise.


idmef_path_ref ()

idmef_path_t *
idmef_path_ref (idmef_path_t *path);

Increases path reference count.

idmef_path_destroy() will destroy the refcount until it reaches 0, at which point the path will be destroyed.

Parameters

path

Pointer to an idmef_path_t object.

 

Returns

The provided path is returned.


idmef_path_get_name ()

const char *
idmef_path_get_name (const idmef_path_t *path,
                     int depth);

Returns the full path name if the provided depth is -1, or the specific element name if depth is set. That is, for a path pointing to "alert.classification.text": A depth of -1 would return "alert.classification.text"; a depth of 0 would return "alert"; a depth of 1 would return "classification"; and a depth of 2 would return "text".

Parameters

path

Pointer to an idmef_path_t object.

 

depth

Depth of the path element to get the name from.

 

Returns

path name relative to the provided dept .


idmef_path_is_ambiguous ()

prelude_bool_t
idmef_path_is_ambiguous (const idmef_path_t *path);

Returns TRUE if path contain elements that are supposed to be listed, but for which no index were provided.

Parameters

path

Pointer to an idmef_path_t object.

 

Returns

TRUE if the object is ambiguous, FALSE otherwise.


idmef_path_has_lists ()

int
idmef_path_has_lists (const idmef_path_t *path);

Parameters

path

Pointer to an idmef_path_t object.

 

Returns

the number of listed element within path .


idmef_path_is_list ()

prelude_bool_t
idmef_path_is_list (const idmef_path_t *path,
                    int depth);

idmef_path_get_depth ()

unsigned int
idmef_path_get_depth (const idmef_path_t *path);

Parameters

path

Pointer to an idmef_path_t object.

 

Returns

depth number of elements.


idmef_path_check_operator ()

int
idmef_path_check_operator (const idmef_path_t *path,
                           idmef_criterion_operator_t op);

Check whether op can apply to value pointed to by path .

Parameters

path

Pointer to a idmef_path_t object.

 

op

Operator to check compatibility with.

 

Returns

0 on success, a negative value if an error occured.


idmef_path_get_applicable_operators ()

int
idmef_path_get_applicable_operators (const idmef_path_t *path,
                                     idmef_criterion_operator_t *result);

Retrieve all applicable operator that might be used by the type of value pointed to by path .

Parameters

path

Pointer to a idmef_path_t object.

 

result

Pointer to storage for applicable operator.

 

Returns

0 on success, a negative value if an error occured.

Types and Values

idmef_path_t

typedef struct idmef_path idmef_path_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-idmef-time.html0000644000000000000000000000011013726163660024352 xustar000000000000000024 mtime=1599662000.745 24 atime=1599662000.745 24 ctime=1599662000.746 libprelude-5.2.0/docs/api/html/libprelude-idmef-time.html0000644000000000000000000014131213726163660023357 0ustar00rootroot00000000000000 idmef-time: libprelude Reference Manual

idmef-time

idmef-time

Types and Values

typedef idmef_time_t

Description

Functions

idmef_time_ref ()

idmef_time_t *
idmef_time_ref (idmef_time_t *time);

Increases time reference count. idmef_time_destroy() won't destroy time until the refcount reach 0.

Parameters

time

Pointer to an idmef_time_t object.

 

Returns

The time provided argument.


idmef_time_new ()

int
idmef_time_new (idmef_time_t **time);

Creates an empty idmef_time_t object and store it in time .

Parameters

time

Address where to store the created idmef_time_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_time_new_from_time ()

int
idmef_time_new_from_time (idmef_time_t **time,
                          const time_t *t);

Creates a new idmef_time_t object and store it in time . This object will be filled with information available in t . The created time won't contain micro seconds information, since theses are not available within t .

Parameters

time

Address where to store the created idmef_time_t object.

 

t

Pointer to a time_t.

 

Returns

0 on success, a negative value if an error occured.


idmef_time_new_from_gettimeofday ()

int
idmef_time_new_from_gettimeofday (idmef_time_t **time);

Creates an idmef_time_t object filled with information retrieved using gettimeofday(), and stores it in time .

Parameters

time

Address where to store the created idmef_time_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_time_new_from_string ()

int
idmef_time_new_from_string (idmef_time_t **time,
                            const char *buf);

Creates an idmef_time_t object filled with information retrieved from the user provided buf , containing a string describing a time in a format conforming to the IDMEF definition (v. 0.10, section 3.2.6).

Additionally, the provided time might be separated with white spaces, instead of the IDMEF define 'T' character. The format might not specify a timezone (will assume UTC in this case).

The resulting idmef_time_t object is stored in time .

Parameters

time

Address where to store the created idmef_time_t object.

 

buf

Pointer to a string describing a time in an IDMEF conforming format.

 

Returns

0 on success, a negative value if an error occured.


idmef_time_new_from_ntpstamp ()

int
idmef_time_new_from_ntpstamp (idmef_time_t **time,
                              const char *buf);

Creates an idmef_time_t object filled with information provided from the buf NTP timestamp, and stores it in time .

Parameters

time

Address where to store the created idmef_time_t object.

 

buf

Pointer to a string containing an NTP timestamp.

 

Returns

0 on success, a negative value if an error occured.


idmef_time_new_from_timeval ()

int
idmef_time_new_from_timeval (idmef_time_t **time,
                             const struct timeval *tv);

Creates an idmef_time_t object filled with information provided within the tv structure.

Parameters

time

Address where to store the created idmef_time_t object.

 

tv

Pointer to a struct timeval (see gettimeofday()).

 

Returns

0 on success, a negative value if an error occured.


idmef_time_set_from_time ()

void
idmef_time_set_from_time (idmef_time_t *time,
                          const time_t *t);

Fills time from the information described by t . time won't contain micro seconds information, since theses are not available within t .

Parameters

time

Pointer to an idmef_time_t object.

 

t

Pointer to a time_t.

 

idmef_time_set_from_gettimeofday ()

int
idmef_time_set_from_gettimeofday (idmef_time_t *time);

Fills time with information retrieved using gettimeofday().

Parameters

time

Pointer to an idmef_time_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_time_set_from_string ()

int
idmef_time_set_from_string (idmef_time_t *time,
                            const char *buf);

Fills time object with information retrieved from the user provided buf , containing a string describing a time in a format conforming to the IDMEF definition (v. 0.10, section 3.2.6).

Additionally, the provided time might be separated with white spaces, instead of the IDMEF defined 'T' character.

If there is no UTC offset specified, we assume that the provided time is local, and compute the GMT offset by ourselve.

Parameters

time

Pointer to an idmef_time_t object.

 

buf

Pointer to a string describing a time in an IDMEF conforming format.

 

Returns

0 on success, a negative value if an error occured.


idmef_time_set_from_ntpstamp ()

int
idmef_time_set_from_ntpstamp (idmef_time_t *time,
                              const char *buf);

Fills the time object with information provided within the buf NTP timestamp.

Parameters

time

Pointer to a idmef_time_t object.

 

buf

Pointer to a string containing an NTP timestamp.

 

Returns

0 on success, a negative value if an error occured.


idmef_time_set_from_timeval ()

int
idmef_time_set_from_timeval (idmef_time_t *time,
                             const struct timeval *tv);

Fills time object filled with information provided within the tv structure.

Parameters

time

Pointer to an idmef_time_t object.

 

tv

Pointer to a struct timeval (see gettimeofday()).

 

Returns

0 on success, a negative value if an error occured.


idmef_time_destroy_internal ()

void
idmef_time_destroy_internal (idmef_time_t *time);

idmef_time_destroy ()

void
idmef_time_destroy (idmef_time_t *time);

Destroys time if refcount reach 0.

Parameters

time

Pointer to an idmef_time_t object.

 

idmef_time_clone ()

int
idmef_time_clone (const idmef_time_t *src,
                  idmef_time_t **dst);

Clones src and stores the result in the dst address.

Parameters

src

Pointer to a idmef_time_t to clone.

 

dst

Address where to store the cloned src object.

 

Returns

0 on success, a negative value if an error occured.


idmef_time_copy ()

int
idmef_time_copy (const idmef_time_t *src,
                 idmef_time_t *dst);

Copies src internal to dst .

Parameters

src

Pointer to a idmef_time_t to copy data from.

 

dst

Pointer to a idmef_time_t to copy data to.

 

Returns

0 on success, a negative value if an error occured.


idmef_time_set_sec ()

void
idmef_time_set_sec (idmef_time_t *time,
                    uint32_t sec);

Sets the number of second from the Epoch to sec within time .

WARNING: this is just an accessor function, and using it to set time current time also requires the use of idmef_time_set_usec() and idmef_time_set_gmt_offset().

Parameters

time

Pointer to a idmef_time_t.

 

sec

Number of seconds since the Epoch.

 

idmef_time_set_usec ()

void
idmef_time_set_usec (idmef_time_t *time,
                     uint32_t usec);

Sets the number of micro second to usec within time .

WARNING: this is just an accessor function, and using it to set time current time also requires the use of idmef_time_set_sec() and idmef_time_set_gmt_offset().

Parameters

time

Pointer to a idmef_time_t.

 

usec

Number of micro seconds to set within time .

 

idmef_time_set_gmt_offset ()

void
idmef_time_set_gmt_offset (idmef_time_t *time,
                           int32_t gmtoff);

Sets the GMT offset gmtoff , in seconds, within time .

WARNING: this is just an accessor function, and using it to set time current time also requires the use of idmef_time_set_sec() and idmef_time_set_usec().

Parameters

time

Pointer to a idmef_time_t.

 

gmtoff

GMT offset for time , in seconds.

 

idmef_time_get_sec ()

uint32_t
idmef_time_get_sec (const idmef_time_t *time);

Returns the number of second since the Epoch (00:00:00 UTC, January 1, 1970), previously set within time .

Parameters

time

Pointer to a idmef_time_t.

 

Returns

The number of seconds.


idmef_time_get_usec ()

uint32_t
idmef_time_get_usec (const idmef_time_t *time);

Returns the u-second member of time .

Parameters

time

Pointer to a idmef_time_t.

 

Returns

The number of u-seconds.


idmef_time_get_gmt_offset ()

int32_t
idmef_time_get_gmt_offset (const idmef_time_t *time);

Returns the GMT offset that applies to time .

Parameters

time

Pointer to a idmef_time_t.

 

Returns

The GMT offset, in seconds.


idmef_time_to_string ()

int
idmef_time_to_string (const idmef_time_t *time,
                      prelude_string_t *out);

Translates time to an user readable string conforming to the IDMEF defined time format.

Parameters

time

Pointer to an IDMEF time structure.

 

out

Pointer to a prelude_string_t output buffer.

 

Returns

number of bytes written on success, a negative value if an error occured.


idmef_time_to_ntpstamp ()

int
idmef_time_to_ntpstamp (const idmef_time_t *time,
                        prelude_string_t *out);

Translates time to an user readable NTP timestamp string, conforming to the IDMEF defined time format.

Parameters

time

Pointer to an IDMEF time structure.

 

out

Pointer to a prelude_string_t output buffer.

 

Returns

number of bytes written on success, a negative value if an error occured.

Types and Values

idmef_time_t

typedef struct idmef_time idmef_time_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-idmef-tree-wrap.html0000644000000000000000000000011013726163660025322 xustar000000000000000024 mtime=1599662000.818 24 atime=1599662000.814 24 ctime=1599662000.819 libprelude-5.2.0/docs/api/html/libprelude-idmef-tree-wrap.html0000644000000000000000000614704513726163660024346 0ustar00rootroot00000000000000 idmef-tree-wrap: libprelude Reference Manual

idmef-tree-wrap

idmef-tree-wrap

Functions

int idmef_message_get_data ()
int idmef_message_get_number ()
int idmef_message_get_string ()
int idmef_message_get_value ()
int idmef_message_set_data ()
int idmef_message_set_number ()
int idmef_message_set_string ()
int idmef_message_set_value ()
idmef_additional_data_type_t idmef_additional_data_type_to_numeric ()
const char * idmef_additional_data_type_to_string ()
int idmef_additional_data_new ()
int idmef_additional_data_copy ()
int idmef_additional_data_clone ()
idmef_additional_data_t * idmef_additional_data_ref ()
void idmef_additional_data_destroy ()
idmef_additional_data_type_t idmef_additional_data_get_type ()
void idmef_additional_data_set_type ()
int idmef_additional_data_new_type ()
prelude_string_t * idmef_additional_data_get_meaning ()
void idmef_additional_data_set_meaning ()
int idmef_additional_data_new_meaning ()
idmef_data_t * idmef_additional_data_get_data ()
void idmef_additional_data_set_data ()
int idmef_additional_data_new_data ()
idmef_reference_origin_t idmef_reference_origin_to_numeric ()
const char * idmef_reference_origin_to_string ()
int idmef_reference_new ()
int idmef_reference_copy ()
int idmef_reference_clone ()
idmef_reference_t * idmef_reference_ref ()
void idmef_reference_destroy ()
idmef_reference_origin_t idmef_reference_get_origin ()
void idmef_reference_set_origin ()
int idmef_reference_new_origin ()
prelude_string_t * idmef_reference_get_name ()
void idmef_reference_set_name ()
int idmef_reference_new_name ()
prelude_string_t * idmef_reference_get_url ()
void idmef_reference_set_url ()
int idmef_reference_new_url ()
prelude_string_t * idmef_reference_get_meaning ()
void idmef_reference_set_meaning ()
int idmef_reference_new_meaning ()
int idmef_classification_new ()
int idmef_classification_copy ()
int idmef_classification_clone ()
idmef_classification_t * idmef_classification_ref ()
void idmef_classification_destroy ()
prelude_string_t * idmef_classification_get_ident ()
void idmef_classification_set_ident ()
int idmef_classification_new_ident ()
prelude_string_t * idmef_classification_get_text ()
void idmef_classification_set_text ()
int idmef_classification_new_text ()
idmef_reference_t * idmef_classification_get_next_reference ()
void idmef_classification_set_reference ()
int idmef_classification_new_reference ()
idmef_user_id_type_t idmef_user_id_type_to_numeric ()
const char * idmef_user_id_type_to_string ()
int idmef_user_id_new ()
int idmef_user_id_copy ()
int idmef_user_id_clone ()
idmef_user_id_t * idmef_user_id_ref ()
void idmef_user_id_destroy ()
prelude_string_t * idmef_user_id_get_ident ()
void idmef_user_id_set_ident ()
int idmef_user_id_new_ident ()
idmef_user_id_type_t idmef_user_id_get_type ()
void idmef_user_id_set_type ()
int idmef_user_id_new_type ()
prelude_string_t * idmef_user_id_get_tty ()
void idmef_user_id_set_tty ()
int idmef_user_id_new_tty ()
prelude_string_t * idmef_user_id_get_name ()
void idmef_user_id_set_name ()
int idmef_user_id_new_name ()
void idmef_user_id_unset_number ()
uint32_t * idmef_user_id_get_number ()
void idmef_user_id_set_number ()
int idmef_user_id_new_number ()
idmef_user_category_t idmef_user_category_to_numeric ()
const char * idmef_user_category_to_string ()
int idmef_user_new ()
int idmef_user_copy ()
int idmef_user_clone ()
idmef_user_t * idmef_user_ref ()
void idmef_user_destroy ()
prelude_string_t * idmef_user_get_ident ()
void idmef_user_set_ident ()
int idmef_user_new_ident ()
idmef_user_category_t idmef_user_get_category ()
void idmef_user_set_category ()
int idmef_user_new_category ()
idmef_user_id_t * idmef_user_get_next_user_id ()
void idmef_user_set_user_id ()
int idmef_user_new_user_id ()
idmef_address_category_t idmef_address_category_to_numeric ()
const char * idmef_address_category_to_string ()
int idmef_address_new ()
int idmef_address_copy ()
int idmef_address_clone ()
idmef_address_t * idmef_address_ref ()
void idmef_address_destroy ()
prelude_string_t * idmef_address_get_ident ()
void idmef_address_set_ident ()
int idmef_address_new_ident ()
idmef_address_category_t idmef_address_get_category ()
void idmef_address_set_category ()
int idmef_address_new_category ()
prelude_string_t * idmef_address_get_vlan_name ()
void idmef_address_set_vlan_name ()
int idmef_address_new_vlan_name ()
void idmef_address_unset_vlan_num ()
int32_t * idmef_address_get_vlan_num ()
void idmef_address_set_vlan_num ()
int idmef_address_new_vlan_num ()
prelude_string_t * idmef_address_get_address ()
void idmef_address_set_address ()
int idmef_address_new_address ()
prelude_string_t * idmef_address_get_netmask ()
void idmef_address_set_netmask ()
int idmef_address_new_netmask ()
int idmef_process_new ()
int idmef_process_copy ()
int idmef_process_clone ()
idmef_process_t * idmef_process_ref ()
void idmef_process_destroy ()
prelude_string_t * idmef_process_get_ident ()
void idmef_process_set_ident ()
int idmef_process_new_ident ()
prelude_string_t * idmef_process_get_name ()
void idmef_process_set_name ()
int idmef_process_new_name ()
void idmef_process_unset_pid ()
uint32_t * idmef_process_get_pid ()
void idmef_process_set_pid ()
int idmef_process_new_pid ()
prelude_string_t * idmef_process_get_path ()
void idmef_process_set_path ()
int idmef_process_new_path ()
prelude_string_t * idmef_process_get_next_arg ()
void idmef_process_set_arg ()
int idmef_process_new_arg ()
prelude_string_t * idmef_process_get_next_env ()
void idmef_process_set_env ()
int idmef_process_new_env ()
int idmef_web_service_new ()
int idmef_web_service_copy ()
int idmef_web_service_clone ()
idmef_web_service_t * idmef_web_service_ref ()
void idmef_web_service_destroy ()
prelude_string_t * idmef_web_service_get_url ()
void idmef_web_service_set_url ()
int idmef_web_service_new_url ()
prelude_string_t * idmef_web_service_get_cgi ()
void idmef_web_service_set_cgi ()
int idmef_web_service_new_cgi ()
prelude_string_t * idmef_web_service_get_http_method ()
void idmef_web_service_set_http_method ()
int idmef_web_service_new_http_method ()
prelude_string_t * idmef_web_service_get_next_arg ()
void idmef_web_service_set_arg ()
int idmef_web_service_new_arg ()
int idmef_snmp_service_new ()
int idmef_snmp_service_copy ()
int idmef_snmp_service_clone ()
idmef_snmp_service_t * idmef_snmp_service_ref ()
void idmef_snmp_service_destroy ()
prelude_string_t * idmef_snmp_service_get_oid ()
void idmef_snmp_service_set_oid ()
int idmef_snmp_service_new_oid ()
void idmef_snmp_service_unset_message_processing_model ()
uint32_t * idmef_snmp_service_get_message_processing_model ()
void idmef_snmp_service_set_message_processing_model ()
int idmef_snmp_service_new_message_processing_model ()
void idmef_snmp_service_unset_security_model ()
uint32_t * idmef_snmp_service_get_security_model ()
void idmef_snmp_service_set_security_model ()
int idmef_snmp_service_new_security_model ()
prelude_string_t * idmef_snmp_service_get_security_name ()
void idmef_snmp_service_set_security_name ()
int idmef_snmp_service_new_security_name ()
void idmef_snmp_service_unset_security_level ()
uint32_t * idmef_snmp_service_get_security_level ()
void idmef_snmp_service_set_security_level ()
int idmef_snmp_service_new_security_level ()
prelude_string_t * idmef_snmp_service_get_context_name ()
void idmef_snmp_service_set_context_name ()
int idmef_snmp_service_new_context_name ()
prelude_string_t * idmef_snmp_service_get_context_engine_id ()
void idmef_snmp_service_set_context_engine_id ()
int idmef_snmp_service_new_context_engine_id ()
prelude_string_t * idmef_snmp_service_get_command ()
void idmef_snmp_service_set_command ()
int idmef_snmp_service_new_command ()
idmef_service_type_t idmef_service_type_to_numeric ()
const char * idmef_service_type_to_string ()
int idmef_service_new ()
int idmef_service_copy ()
int idmef_service_clone ()
idmef_service_t * idmef_service_ref ()
void idmef_service_destroy ()
prelude_string_t * idmef_service_get_ident ()
void idmef_service_set_ident ()
int idmef_service_new_ident ()
void idmef_service_unset_ip_version ()
uint8_t * idmef_service_get_ip_version ()
void idmef_service_set_ip_version ()
int idmef_service_new_ip_version ()
void idmef_service_unset_iana_protocol_number ()
uint8_t * idmef_service_get_iana_protocol_number ()
void idmef_service_set_iana_protocol_number ()
int idmef_service_new_iana_protocol_number ()
prelude_string_t * idmef_service_get_iana_protocol_name ()
void idmef_service_set_iana_protocol_name ()
int idmef_service_new_iana_protocol_name ()
prelude_string_t * idmef_service_get_name ()
void idmef_service_set_name ()
int idmef_service_new_name ()
void idmef_service_unset_port ()
uint16_t * idmef_service_get_port ()
void idmef_service_set_port ()
int idmef_service_new_port ()
prelude_string_t * idmef_service_get_portlist ()
void idmef_service_set_portlist ()
int idmef_service_new_portlist ()
prelude_string_t * idmef_service_get_protocol ()
void idmef_service_set_protocol ()
int idmef_service_new_protocol ()
idmef_service_type_t idmef_service_get_type ()
idmef_web_service_t * idmef_service_get_web_service ()
void idmef_service_set_web_service ()
int idmef_service_new_web_service ()
idmef_snmp_service_t * idmef_service_get_snmp_service ()
void idmef_service_set_snmp_service ()
int idmef_service_new_snmp_service ()
idmef_node_category_t idmef_node_category_to_numeric ()
const char * idmef_node_category_to_string ()
int idmef_node_new ()
int idmef_node_copy ()
int idmef_node_clone ()
idmef_node_t * idmef_node_ref ()
void idmef_node_destroy ()
prelude_string_t * idmef_node_get_ident ()
void idmef_node_set_ident ()
int idmef_node_new_ident ()
idmef_node_category_t idmef_node_get_category ()
void idmef_node_set_category ()
int idmef_node_new_category ()
prelude_string_t * idmef_node_get_location ()
void idmef_node_set_location ()
int idmef_node_new_location ()
prelude_string_t * idmef_node_get_name ()
void idmef_node_set_name ()
int idmef_node_new_name ()
idmef_address_t * idmef_node_get_next_address ()
void idmef_node_set_address ()
int idmef_node_new_address ()
idmef_source_spoofed_t idmef_source_spoofed_to_numeric ()
const char * idmef_source_spoofed_to_string ()
int idmef_source_new ()
int idmef_source_copy ()
int idmef_source_clone ()
idmef_source_t * idmef_source_ref ()
void idmef_source_destroy ()
prelude_string_t * idmef_source_get_ident ()
void idmef_source_set_ident ()
int idmef_source_new_ident ()
idmef_source_spoofed_t idmef_source_get_spoofed ()
void idmef_source_set_spoofed ()
int idmef_source_new_spoofed ()
prelude_string_t * idmef_source_get_interface ()
void idmef_source_set_interface ()
int idmef_source_new_interface ()
idmef_node_t * idmef_source_get_node ()
void idmef_source_set_node ()
int idmef_source_new_node ()
idmef_user_t * idmef_source_get_user ()
void idmef_source_set_user ()
int idmef_source_new_user ()
idmef_process_t * idmef_source_get_process ()
void idmef_source_set_process ()
int idmef_source_new_process ()
idmef_service_t * idmef_source_get_service ()
void idmef_source_set_service ()
int idmef_source_new_service ()
int idmef_file_access_new ()
int idmef_file_access_copy ()
int idmef_file_access_clone ()
idmef_file_access_t * idmef_file_access_ref ()
void idmef_file_access_destroy ()
idmef_user_id_t * idmef_file_access_get_user_id ()
void idmef_file_access_set_user_id ()
int idmef_file_access_new_user_id ()
prelude_string_t * idmef_file_access_get_next_permission ()
void idmef_file_access_set_permission ()
int idmef_file_access_new_permission ()
int idmef_inode_new ()
int idmef_inode_copy ()
int idmef_inode_clone ()
idmef_inode_t * idmef_inode_ref ()
void idmef_inode_destroy ()
idmef_time_t * idmef_inode_get_change_time ()
void idmef_inode_set_change_time ()
int idmef_inode_new_change_time ()
void idmef_inode_unset_number ()
uint32_t * idmef_inode_get_number ()
void idmef_inode_set_number ()
int idmef_inode_new_number ()
void idmef_inode_unset_major_device ()
uint32_t * idmef_inode_get_major_device ()
void idmef_inode_set_major_device ()
int idmef_inode_new_major_device ()
void idmef_inode_unset_minor_device ()
uint32_t * idmef_inode_get_minor_device ()
void idmef_inode_set_minor_device ()
int idmef_inode_new_minor_device ()
void idmef_inode_unset_c_major_device ()
uint32_t * idmef_inode_get_c_major_device ()
void idmef_inode_set_c_major_device ()
int idmef_inode_new_c_major_device ()
void idmef_inode_unset_c_minor_device ()
uint32_t * idmef_inode_get_c_minor_device ()
void idmef_inode_set_c_minor_device ()
int idmef_inode_new_c_minor_device ()
idmef_checksum_algorithm_t idmef_checksum_algorithm_to_numeric ()
const char * idmef_checksum_algorithm_to_string ()
int idmef_checksum_new ()
int idmef_checksum_copy ()
int idmef_checksum_clone ()
idmef_checksum_t * idmef_checksum_ref ()
void idmef_checksum_destroy ()
prelude_string_t * idmef_checksum_get_value ()
void idmef_checksum_set_value ()
int idmef_checksum_new_value ()
prelude_string_t * idmef_checksum_get_key ()
void idmef_checksum_set_key ()
int idmef_checksum_new_key ()
idmef_checksum_algorithm_t idmef_checksum_get_algorithm ()
void idmef_checksum_set_algorithm ()
int idmef_checksum_new_algorithm ()
idmef_file_category_t idmef_file_category_to_numeric ()
const char * idmef_file_category_to_string ()
idmef_file_fstype_t idmef_file_fstype_to_numeric ()
const char * idmef_file_fstype_to_string ()
int idmef_file_new ()
int idmef_file_copy ()
int idmef_file_clone ()
idmef_file_t * idmef_file_ref ()
void idmef_file_destroy ()
prelude_string_t * idmef_file_get_ident ()
void idmef_file_set_ident ()
int idmef_file_new_ident ()
prelude_string_t * idmef_file_get_name ()
void idmef_file_set_name ()
int idmef_file_new_name ()
prelude_string_t * idmef_file_get_path ()
void idmef_file_set_path ()
int idmef_file_new_path ()
idmef_time_t * idmef_file_get_create_time ()
void idmef_file_set_create_time ()
int idmef_file_new_create_time ()
idmef_time_t * idmef_file_get_modify_time ()
void idmef_file_set_modify_time ()
int idmef_file_new_modify_time ()
idmef_time_t * idmef_file_get_access_time ()
void idmef_file_set_access_time ()
int idmef_file_new_access_time ()
void idmef_file_unset_data_size ()
uint64_t * idmef_file_get_data_size ()
void idmef_file_set_data_size ()
int idmef_file_new_data_size ()
void idmef_file_unset_disk_size ()
uint64_t * idmef_file_get_disk_size ()
void idmef_file_set_disk_size ()
int idmef_file_new_disk_size ()
idmef_file_access_t * idmef_file_get_next_file_access ()
void idmef_file_set_file_access ()
int idmef_file_new_file_access ()
idmef_linkage_t * idmef_file_get_next_linkage ()
void idmef_file_set_linkage ()
int idmef_file_new_linkage ()
idmef_inode_t * idmef_file_get_inode ()
void idmef_file_set_inode ()
int idmef_file_new_inode ()
idmef_checksum_t * idmef_file_get_next_checksum ()
void idmef_file_set_checksum ()
int idmef_file_new_checksum ()
idmef_file_category_t idmef_file_get_category ()
void idmef_file_set_category ()
int idmef_file_new_category ()
void idmef_file_unset_fstype ()
idmef_file_fstype_t * idmef_file_get_fstype ()
void idmef_file_set_fstype ()
int idmef_file_new_fstype ()
prelude_string_t * idmef_file_get_file_type ()
void idmef_file_set_file_type ()
int idmef_file_new_file_type ()
idmef_linkage_category_t idmef_linkage_category_to_numeric ()
const char * idmef_linkage_category_to_string ()
int idmef_linkage_new ()
int idmef_linkage_copy ()
int idmef_linkage_clone ()
idmef_linkage_t * idmef_linkage_ref ()
void idmef_linkage_destroy ()
idmef_linkage_category_t idmef_linkage_get_category ()
void idmef_linkage_set_category ()
int idmef_linkage_new_category ()
prelude_string_t * idmef_linkage_get_name ()
void idmef_linkage_set_name ()
int idmef_linkage_new_name ()
prelude_string_t * idmef_linkage_get_path ()
void idmef_linkage_set_path ()
int idmef_linkage_new_path ()
idmef_file_t * idmef_linkage_get_file ()
void idmef_linkage_set_file ()
int idmef_linkage_new_file ()
idmef_target_decoy_t idmef_target_decoy_to_numeric ()
const char * idmef_target_decoy_to_string ()
int idmef_target_new ()
int idmef_target_copy ()
int idmef_target_clone ()
idmef_target_t * idmef_target_ref ()
void idmef_target_destroy ()
prelude_string_t * idmef_target_get_ident ()
void idmef_target_set_ident ()
int idmef_target_new_ident ()
idmef_target_decoy_t idmef_target_get_decoy ()
void idmef_target_set_decoy ()
int idmef_target_new_decoy ()
prelude_string_t * idmef_target_get_interface ()
void idmef_target_set_interface ()
int idmef_target_new_interface ()
idmef_node_t * idmef_target_get_node ()
void idmef_target_set_node ()
int idmef_target_new_node ()
idmef_user_t * idmef_target_get_user ()
void idmef_target_set_user ()
int idmef_target_new_user ()
idmef_process_t * idmef_target_get_process ()
void idmef_target_set_process ()
int idmef_target_new_process ()
idmef_service_t * idmef_target_get_service ()
void idmef_target_set_service ()
int idmef_target_new_service ()
idmef_file_t * idmef_target_get_next_file ()
void idmef_target_set_file ()
int idmef_target_new_file ()
int idmef_analyzer_new ()
int idmef_analyzer_copy ()
int idmef_analyzer_clone ()
idmef_analyzer_t * idmef_analyzer_ref ()
void idmef_analyzer_destroy ()
prelude_string_t * idmef_analyzer_get_analyzerid ()
void idmef_analyzer_set_analyzerid ()
int idmef_analyzer_new_analyzerid ()
prelude_string_t * idmef_analyzer_get_name ()
void idmef_analyzer_set_name ()
int idmef_analyzer_new_name ()
prelude_string_t * idmef_analyzer_get_manufacturer ()
void idmef_analyzer_set_manufacturer ()
int idmef_analyzer_new_manufacturer ()
prelude_string_t * idmef_analyzer_get_model ()
void idmef_analyzer_set_model ()
int idmef_analyzer_new_model ()
prelude_string_t * idmef_analyzer_get_version ()
void idmef_analyzer_set_version ()
int idmef_analyzer_new_version ()
prelude_string_t * idmef_analyzer_get_class ()
void idmef_analyzer_set_class ()
int idmef_analyzer_new_class ()
prelude_string_t * idmef_analyzer_get_ostype ()
void idmef_analyzer_set_ostype ()
int idmef_analyzer_new_ostype ()
prelude_string_t * idmef_analyzer_get_osversion ()
void idmef_analyzer_set_osversion ()
int idmef_analyzer_new_osversion ()
idmef_node_t * idmef_analyzer_get_node ()
void idmef_analyzer_set_node ()
int idmef_analyzer_new_node ()
idmef_process_t * idmef_analyzer_get_process ()
void idmef_analyzer_set_process ()
int idmef_analyzer_new_process ()
int idmef_alertident_new ()
int idmef_alertident_copy ()
int idmef_alertident_clone ()
idmef_alertident_t * idmef_alertident_ref ()
void idmef_alertident_destroy ()
prelude_string_t * idmef_alertident_get_alertident ()
void idmef_alertident_set_alertident ()
int idmef_alertident_new_alertident ()
prelude_string_t * idmef_alertident_get_analyzerid ()
void idmef_alertident_set_analyzerid ()
int idmef_alertident_new_analyzerid ()
idmef_impact_severity_t idmef_impact_severity_to_numeric ()
const char * idmef_impact_severity_to_string ()
idmef_impact_completion_t idmef_impact_completion_to_numeric ()
const char * idmef_impact_completion_to_string ()
idmef_impact_type_t idmef_impact_type_to_numeric ()
const char * idmef_impact_type_to_string ()
int idmef_impact_new ()
int idmef_impact_copy ()
int idmef_impact_clone ()
idmef_impact_t * idmef_impact_ref ()
void idmef_impact_destroy ()
void idmef_impact_unset_severity ()
idmef_impact_severity_t * idmef_impact_get_severity ()
void idmef_impact_set_severity ()
int idmef_impact_new_severity ()
void idmef_impact_unset_completion ()
idmef_impact_completion_t * idmef_impact_get_completion ()
void idmef_impact_set_completion ()
int idmef_impact_new_completion ()
idmef_impact_type_t idmef_impact_get_type ()
void idmef_impact_set_type ()
int idmef_impact_new_type ()
prelude_string_t * idmef_impact_get_description ()
void idmef_impact_set_description ()
int idmef_impact_new_description ()
idmef_action_category_t idmef_action_category_to_numeric ()
const char * idmef_action_category_to_string ()
int idmef_action_new ()
int idmef_action_copy ()
int idmef_action_clone ()
idmef_action_t * idmef_action_ref ()
void idmef_action_destroy ()
idmef_action_category_t idmef_action_get_category ()
void idmef_action_set_category ()
int idmef_action_new_category ()
prelude_string_t * idmef_action_get_description ()
void idmef_action_set_description ()
int idmef_action_new_description ()
idmef_confidence_rating_t idmef_confidence_rating_to_numeric ()
const char * idmef_confidence_rating_to_string ()
int idmef_confidence_new ()
int idmef_confidence_copy ()
int idmef_confidence_clone ()
idmef_confidence_t * idmef_confidence_ref ()
void idmef_confidence_destroy ()
idmef_confidence_rating_t idmef_confidence_get_rating ()
void idmef_confidence_set_rating ()
int idmef_confidence_new_rating ()
float idmef_confidence_get_confidence ()
void idmef_confidence_set_confidence ()
int idmef_confidence_new_confidence ()
int idmef_assessment_new ()
int idmef_assessment_copy ()
int idmef_assessment_clone ()
idmef_assessment_t * idmef_assessment_ref ()
void idmef_assessment_destroy ()
idmef_impact_t * idmef_assessment_get_impact ()
void idmef_assessment_set_impact ()
int idmef_assessment_new_impact ()
idmef_action_t * idmef_assessment_get_next_action ()
void idmef_assessment_set_action ()
int idmef_assessment_new_action ()
idmef_confidence_t * idmef_assessment_get_confidence ()
void idmef_assessment_set_confidence ()
int idmef_assessment_new_confidence ()
int idmef_tool_alert_new ()
int idmef_tool_alert_copy ()
int idmef_tool_alert_clone ()
idmef_tool_alert_t * idmef_tool_alert_ref ()
void idmef_tool_alert_destroy ()
prelude_string_t * idmef_tool_alert_get_name ()
void idmef_tool_alert_set_name ()
int idmef_tool_alert_new_name ()
prelude_string_t * idmef_tool_alert_get_command ()
void idmef_tool_alert_set_command ()
int idmef_tool_alert_new_command ()
idmef_alertident_t * idmef_tool_alert_get_next_alertident ()
void idmef_tool_alert_set_alertident ()
int idmef_tool_alert_new_alertident ()
int idmef_correlation_alert_new ()
int idmef_correlation_alert_copy ()
int idmef_correlation_alert_clone ()
idmef_correlation_alert_t * idmef_correlation_alert_ref ()
void idmef_correlation_alert_destroy ()
prelude_string_t * idmef_correlation_alert_get_name ()
void idmef_correlation_alert_set_name ()
int idmef_correlation_alert_new_name ()
idmef_alertident_t * idmef_correlation_alert_get_next_alertident ()
void idmef_correlation_alert_set_alertident ()
int idmef_correlation_alert_new_alertident ()
int idmef_overflow_alert_new ()
int idmef_overflow_alert_copy ()
int idmef_overflow_alert_clone ()
idmef_overflow_alert_t * idmef_overflow_alert_ref ()
void idmef_overflow_alert_destroy ()
prelude_string_t * idmef_overflow_alert_get_program ()
void idmef_overflow_alert_set_program ()
int idmef_overflow_alert_new_program ()
void idmef_overflow_alert_unset_size ()
uint32_t * idmef_overflow_alert_get_size ()
void idmef_overflow_alert_set_size ()
int idmef_overflow_alert_new_size ()
idmef_data_t * idmef_overflow_alert_get_buffer ()
void idmef_overflow_alert_set_buffer ()
int idmef_overflow_alert_new_buffer ()
idmef_alert_type_t idmef_alert_type_to_numeric ()
const char * idmef_alert_type_to_string ()
int idmef_alert_new ()
int idmef_alert_copy ()
int idmef_alert_clone ()
idmef_alert_t * idmef_alert_ref ()
void idmef_alert_destroy ()
prelude_string_t * idmef_alert_get_messageid ()
void idmef_alert_set_messageid ()
int idmef_alert_new_messageid ()
idmef_analyzer_t * idmef_alert_get_next_analyzer ()
void idmef_alert_set_analyzer ()
int idmef_alert_new_analyzer ()
idmef_time_t * idmef_alert_get_create_time ()
void idmef_alert_set_create_time ()
int idmef_alert_new_create_time ()
idmef_classification_t * idmef_alert_get_classification ()
void idmef_alert_set_classification ()
int idmef_alert_new_classification ()
idmef_time_t * idmef_alert_get_detect_time ()
void idmef_alert_set_detect_time ()
int idmef_alert_new_detect_time ()
idmef_time_t * idmef_alert_get_analyzer_time ()
void idmef_alert_set_analyzer_time ()
int idmef_alert_new_analyzer_time ()
idmef_source_t * idmef_alert_get_next_source ()
void idmef_alert_set_source ()
int idmef_alert_new_source ()
idmef_target_t * idmef_alert_get_next_target ()
void idmef_alert_set_target ()
int idmef_alert_new_target ()
idmef_assessment_t * idmef_alert_get_assessment ()
void idmef_alert_set_assessment ()
int idmef_alert_new_assessment ()
idmef_additional_data_t * idmef_alert_get_next_additional_data ()
void idmef_alert_set_additional_data ()
int idmef_alert_new_additional_data ()
idmef_alert_type_t idmef_alert_get_type ()
idmef_tool_alert_t * idmef_alert_get_tool_alert ()
void idmef_alert_set_tool_alert ()
int idmef_alert_new_tool_alert ()
idmef_correlation_alert_t * idmef_alert_get_correlation_alert ()
void idmef_alert_set_correlation_alert ()
int idmef_alert_new_correlation_alert ()
idmef_overflow_alert_t * idmef_alert_get_overflow_alert ()
void idmef_alert_set_overflow_alert ()
int idmef_alert_new_overflow_alert ()
int idmef_heartbeat_new ()
int idmef_heartbeat_copy ()
int idmef_heartbeat_clone ()
idmef_heartbeat_t * idmef_heartbeat_ref ()
void idmef_heartbeat_destroy ()
prelude_string_t * idmef_heartbeat_get_messageid ()
void idmef_heartbeat_set_messageid ()
int idmef_heartbeat_new_messageid ()
idmef_analyzer_t * idmef_heartbeat_get_next_analyzer ()
void idmef_heartbeat_set_analyzer ()
int idmef_heartbeat_new_analyzer ()
idmef_time_t * idmef_heartbeat_get_create_time ()
void idmef_heartbeat_set_create_time ()
int idmef_heartbeat_new_create_time ()
idmef_time_t * idmef_heartbeat_get_analyzer_time ()
void idmef_heartbeat_set_analyzer_time ()
int idmef_heartbeat_new_analyzer_time ()
void idmef_heartbeat_unset_heartbeat_interval ()
uint32_t * idmef_heartbeat_get_heartbeat_interval ()
void idmef_heartbeat_set_heartbeat_interval ()
int idmef_heartbeat_new_heartbeat_interval ()
idmef_additional_data_t * idmef_heartbeat_get_next_additional_data ()
void idmef_heartbeat_set_additional_data ()
int idmef_heartbeat_new_additional_data ()
idmef_message_type_t idmef_message_type_to_numeric ()
const char * idmef_message_type_to_string ()
int idmef_message_new ()
int idmef_message_copy ()
int idmef_message_clone ()
idmef_message_t * idmef_message_ref ()
void idmef_message_destroy ()
prelude_string_t * idmef_message_get_version ()
void idmef_message_set_version ()
int idmef_message_new_version ()
idmef_message_type_t idmef_message_get_type ()
idmef_alert_t * idmef_message_get_alert ()
void idmef_message_set_alert ()
int idmef_message_new_alert ()
idmef_heartbeat_t * idmef_message_get_heartbeat ()
void idmef_message_set_heartbeat ()
int idmef_message_new_heartbeat ()
void idmef_message_set_pmsg ()
prelude_msg_t * idmef_message_get_pmsg ()
int idmef_action_compare ()
int idmef_additional_data_compare ()
int idmef_address_compare ()
int idmef_alert_compare ()
int idmef_alertident_compare ()
int idmef_analyzer_compare ()
int idmef_assessment_compare ()
int idmef_checksum_compare ()
int idmef_classification_compare ()
int idmef_confidence_compare ()
int idmef_correlation_alert_compare ()
int idmef_data_compare ()
int idmef_file_access_compare ()
int idmef_file_compare ()
int idmef_heartbeat_compare ()
int idmef_impact_compare ()
int idmef_inode_compare ()
int idmef_linkage_compare ()
int idmef_message_compare ()
int idmef_node_compare ()
int idmef_overflow_alert_compare ()
int idmef_process_compare ()
int idmef_reference_compare ()
int idmef_service_compare ()
int idmef_snmp_service_compare ()
int idmef_source_compare ()
int idmef_target_compare ()
int idmef_time_compare ()
int idmef_tool_alert_compare ()
int idmef_user_compare ()
int idmef_user_id_compare ()
int idmef_web_service_compare ()

Types and Values

#define IDMEF_LIST_APPEND
#define IDMEF_LIST_PREPEND
enum idmef_additional_data_type_t
typedef idmef_additional_data_t
enum idmef_reference_origin_t
typedef idmef_reference_t
typedef idmef_classification_t
enum idmef_user_id_type_t
typedef idmef_user_id_t
enum idmef_user_category_t
typedef idmef_user_t
enum idmef_address_category_t
typedef idmef_address_t
typedef idmef_process_t
typedef idmef_web_service_t
typedef idmef_snmp_service_t
enum idmef_service_type_t
typedef idmef_service_t
enum idmef_node_category_t
typedef idmef_node_t
enum idmef_source_spoofed_t
typedef idmef_source_t
typedef idmef_file_access_t
typedef idmef_inode_t
typedef idmef_linkage_t
enum idmef_checksum_algorithm_t
typedef idmef_checksum_t
enum idmef_file_category_t
enum idmef_file_fstype_t
typedef idmef_file_t
enum idmef_linkage_category_t
enum idmef_target_decoy_t
typedef idmef_target_t
typedef idmef_analyzer_t
typedef idmef_alertident_t
enum idmef_impact_severity_t
enum idmef_impact_completion_t
enum idmef_impact_type_t
typedef idmef_impact_t
enum idmef_action_category_t
typedef idmef_action_t
enum idmef_confidence_rating_t
typedef idmef_confidence_t
typedef idmef_assessment_t
typedef idmef_tool_alert_t
typedef idmef_correlation_alert_t
typedef idmef_overflow_alert_t
enum idmef_alert_type_t
typedef idmef_alert_t
typedef idmef_heartbeat_t
enum idmef_message_type_t
typedef idmef_message_t
#define IDMEF_CLASS_ID_ADDITIONAL_DATA_TYPE
#define IDMEF_CLASS_ID_ADDITIONAL_DATA
#define IDMEF_CLASS_ID_REFERENCE_ORIGIN
#define IDMEF_CLASS_ID_REFERENCE
#define IDMEF_CLASS_ID_CLASSIFICATION
#define IDMEF_CLASS_ID_USER_ID_TYPE
#define IDMEF_CLASS_ID_USER_ID
#define IDMEF_CLASS_ID_USER_CATEGORY
#define IDMEF_CLASS_ID_USER
#define IDMEF_CLASS_ID_ADDRESS_CATEGORY
#define IDMEF_CLASS_ID_ADDRESS
#define IDMEF_CLASS_ID_PROCESS
#define IDMEF_CLASS_ID_WEB_SERVICE
#define IDMEF_CLASS_ID_SNMP_SERVICE
#define IDMEF_CLASS_ID_SERVICE_TYPE
#define IDMEF_CLASS_ID_SERVICE
#define IDMEF_CLASS_ID_NODE_CATEGORY
#define IDMEF_CLASS_ID_NODE
#define IDMEF_CLASS_ID_SOURCE_SPOOFED
#define IDMEF_CLASS_ID_SOURCE
#define IDMEF_CLASS_ID_FILE_ACCESS
#define IDMEF_CLASS_ID_INODE
#define IDMEF_CLASS_ID_CHECKSUM_ALGORITHM
#define IDMEF_CLASS_ID_CHECKSUM
#define IDMEF_CLASS_ID_FILE_CATEGORY
#define IDMEF_CLASS_ID_FILE_FSTYPE
#define IDMEF_CLASS_ID_FILE
#define IDMEF_CLASS_ID_LINKAGE_CATEGORY
#define IDMEF_CLASS_ID_LINKAGE
#define IDMEF_CLASS_ID_TARGET_DECOY
#define IDMEF_CLASS_ID_TARGET
#define IDMEF_CLASS_ID_ANALYZER
#define IDMEF_CLASS_ID_ALERTIDENT
#define IDMEF_CLASS_ID_IMPACT_SEVERITY
#define IDMEF_CLASS_ID_IMPACT_COMPLETION
#define IDMEF_CLASS_ID_IMPACT_TYPE
#define IDMEF_CLASS_ID_IMPACT
#define IDMEF_CLASS_ID_ACTION_CATEGORY
#define IDMEF_CLASS_ID_ACTION
#define IDMEF_CLASS_ID_CONFIDENCE_RATING
#define IDMEF_CLASS_ID_CONFIDENCE
#define IDMEF_CLASS_ID_ASSESSMENT
#define IDMEF_CLASS_ID_TOOL_ALERT
#define IDMEF_CLASS_ID_CORRELATION_ALERT
#define IDMEF_CLASS_ID_OVERFLOW_ALERT
#define IDMEF_CLASS_ID_ALERT_TYPE
#define IDMEF_CLASS_ID_ALERT
#define IDMEF_CLASS_ID_HEARTBEAT
#define IDMEF_CLASS_ID_MESSAGE_TYPE
#define IDMEF_CLASS_ID_MESSAGE

Description

Functions

idmef_message_get_data ()

int
idmef_message_get_data (idmef_message_t *message,
                        const char *path,
                        unsigned char **data,
                        size_t *size);

idmef_message_get_number ()

int
idmef_message_get_number (idmef_message_t *message,
                          const char *path,
                          double *result);

Retrieve the number stored within path of message and store it in the user provided result .

Parameters

message

Pointer to an idmef_message_t object.

 

path

Path to retrieve the number from within message .

 

result

Pointer where the result should be stored.

 

Returns

A positive value in case path was successfully retrieved 0 if the path is empty, or a negative value if an error occured.


idmef_message_get_string ()

int
idmef_message_get_string (idmef_message_t *message,
                          const char *path,
                          char **result);

Retrieve the string stored within path of message and store it in the user provided result .

The caller is responssible for freeing result .

Parameters

message

Pointer to an idmef_message_t object.

 

path

Path to retrieve the string from within message .

 

result

Pointer where the result should be stored.

 

Returns

A positive value in case path was successfully retrieved 0 if the path is empty, or a negative value if an error occured.


idmef_message_get_value ()

int
idmef_message_get_value (idmef_message_t *message,
                         const char *path,
                         idmef_value_t **value);

Retrieve the value stored within path of message and store it in the user provided value .

Parameters

message

Pointer to an idmef_message_t object.

 

path

Path to retrieve the value from within message .

 

value

Pointer where the result should be stored.

 

Returns

A positive value in case path was successfully retrieved 0 if the path is empty, or a negative value if an error occured.


idmef_message_set_data ()

int
idmef_message_set_data (idmef_message_t *message,
                        const char *path,
                        const unsigned char *data,
                        size_t size);

This function will set the path member within message to the provided data of size size .

Parameters

message

Pointer to an idmef_message_t object.

 

path

Path to be set within message .

 

data

Pointer to data to associate message [path ] with.

 

size

Size of the data pointed to by data .

 

Returns

0 on success, or a negative value if an error occured.


idmef_message_set_number ()

int
idmef_message_set_number (idmef_message_t *message,
                          const char *path,
                          double number);

This function will set the path member within message to the provided value , which will be converted to the path value type.

Example: idmef_message_set_number(message, "alert.assessment.confidence.confidence", 0.123456); idmef_message_set_number(message, "alert.source(0).service.port", 1024);

Parameters

message

Pointer to an idmef_message_t object.

 

path

Path to be set within message .

 

number

Value to associate message [path ] with.

 

Returns

0 on success, or a negative value if an error occured.


idmef_message_set_string ()

int
idmef_message_set_string (idmef_message_t *message,
                          const char *path,
                          const char *value);

This function will set the path member within message to the provided value , which will be converted to the corresponding path value type.

Example: idmef_message_set_string(message, "alert.classification.text", "MyText"); idmef_message_set_string(message, "alert.source(0).service.port", "1024");

Parameters

message

Pointer to an idmef_message_t object.

 

path

Path to be set within message .

 

value

Value to associate message [path ] with.

 

Returns

0 on success, or a negative value if an error occured.


idmef_message_set_value ()

int
idmef_message_set_value (idmef_message_t *message,
                         const char *path,
                         idmef_value_t *value);

This function will set the path member within message to the provided value .

Parameters

message

Pointer to an idmef_message_t object.

 

path

Path to be set within message .

 

value

Value to associate message [path ] with.

 

Returns

0 on success, or a negative value if an error occured.


idmef_additional_data_type_to_numeric ()

idmef_additional_data_type_t
idmef_additional_data_type_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_additional_data_type_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_additional_data_type_to_string ()

const char *
idmef_additional_data_type_to_string (idmef_additional_data_type_t val);

Return the IDMEF string equivalent of val provided idmef_additional_data_type_t value.

Parameters

val

an enumeration value for idmef_additional_data_type_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_additional_data_new ()

int
idmef_additional_data_new (idmef_additional_data_t **ret);

Create a new idmef_additional_data_t object.

Parameters

ret

Pointer where to store the created idmef_additional_data_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_additional_data_copy ()

int
idmef_additional_data_copy (const idmef_additional_data_t *src,
                            idmef_additional_data_t *dst);

Copy a new idmef_additional_data_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_additional_data_clone ()

int
idmef_additional_data_clone (idmef_additional_data_t *src,
                             idmef_additional_data_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_additional_data_ref ()

idmef_additional_data_t *
idmef_additional_data_ref (idmef_additional_data_t *additional_data);

Increase additional_data reference count, so that it can be referenced multiple time.

Parameters

additional_data

pointer to a idmef_additional_data_t object.

 

Returns

a pointer to additional_data .


idmef_additional_data_destroy ()

void
idmef_additional_data_destroy (idmef_additional_data_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_additional_data_t object.

 

idmef_additional_data_get_type ()

idmef_additional_data_type_t
idmef_additional_data_get_type (idmef_additional_data_t *ptr);

Get type children of the idmef_additional_data_t object.

Parameters

ptr

pointer to a idmef_additional_data_t object.

 

Returns

a pointer to a idmef_additional_data_type_t object, or NULL if the children object is not set.


idmef_additional_data_set_type ()

void
idmef_additional_data_set_type (idmef_additional_data_t *ptr,
                                idmef_additional_data_type_t type);

Set type object as a children of ptr . if ptr already contain an type object, then it is destroyed, and updated to point to the provided type object.

Parameters

ptr

pointer to a idmef_additional_data_t object.

 

type

pointer to a idmef_additional_data_type_t object.

 

idmef_additional_data_new_type ()

int
idmef_additional_data_new_type (idmef_additional_data_t *ptr,
                                idmef_additional_data_type_t **ret);

Create a new type object, children of idmef_additional_data_t. If ptr already contain a idmef_additional_data_type_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_additional_data_t object.

 

ret

pointer to an address where to store the created idmef_additional_data_type_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_additional_data_get_meaning ()

prelude_string_t *
idmef_additional_data_get_meaning (idmef_additional_data_t *ptr);

Get meaning children of the idmef_additional_data_t object.

Parameters

ptr

pointer to a idmef_additional_data_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_additional_data_set_meaning ()

void
idmef_additional_data_set_meaning (idmef_additional_data_t *ptr,
                                   prelude_string_t *meaning);

Set meaning object as a children of ptr . if ptr already contain an meaning object, then it is destroyed, and updated to point to the provided meaning object.

Parameters

ptr

pointer to a idmef_additional_data_t object.

 

meaning

pointer to a prelude_string_t object.

 

idmef_additional_data_new_meaning ()

int
idmef_additional_data_new_meaning (idmef_additional_data_t *ptr,
                                   prelude_string_t **ret);

Create a new meaning object, children of idmef_additional_data_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_additional_data_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_additional_data_get_data ()

idmef_data_t *
idmef_additional_data_get_data (idmef_additional_data_t *ptr);

Get data children of the idmef_additional_data_t object.

Parameters

ptr

pointer to a idmef_additional_data_t object.

 

Returns

a pointer to a idmef_data_t object, or NULL if the children object is not set.


idmef_additional_data_set_data ()

void
idmef_additional_data_set_data (idmef_additional_data_t *ptr,
                                idmef_data_t *data);

Set data object as a children of ptr . if ptr already contain an data object, then it is destroyed, and updated to point to the provided data object.

Parameters

ptr

pointer to a idmef_additional_data_t object.

 

data

pointer to a idmef_data_t object.

 

idmef_additional_data_new_data ()

int
idmef_additional_data_new_data (idmef_additional_data_t *ptr,
                                idmef_data_t **ret);

Create a new data object, children of idmef_additional_data_t. If ptr already contain a idmef_data_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_additional_data_t object.

 

ret

pointer to an address where to store the created idmef_data_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_reference_origin_to_numeric ()

idmef_reference_origin_t
idmef_reference_origin_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_reference_origin_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_reference_origin_to_string ()

const char *
idmef_reference_origin_to_string (idmef_reference_origin_t val);

Return the IDMEF string equivalent of val provided idmef_reference_origin_t value.

Parameters

val

an enumeration value for idmef_reference_origin_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_reference_new ()

int
idmef_reference_new (idmef_reference_t **ret);

Create a new idmef_reference_t object.

Parameters

ret

Pointer where to store the created idmef_reference_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_reference_copy ()

int
idmef_reference_copy (const idmef_reference_t *src,
                      idmef_reference_t *dst);

Copy a new idmef_reference_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_reference_clone ()

int
idmef_reference_clone (idmef_reference_t *src,
                       idmef_reference_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_reference_ref ()

idmef_reference_t *
idmef_reference_ref (idmef_reference_t *reference);

Increase reference reference count, so that it can be referenced multiple time.

Parameters

reference

pointer to a idmef_reference_t object.

 

Returns

a pointer to reference .


idmef_reference_destroy ()

void
idmef_reference_destroy (idmef_reference_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_reference_t object.

 

idmef_reference_get_origin ()

idmef_reference_origin_t
idmef_reference_get_origin (idmef_reference_t *ptr);

Get origin children of the idmef_reference_t object.

Parameters

ptr

pointer to a idmef_reference_t object.

 

Returns

a pointer to a idmef_reference_origin_t object, or NULL if the children object is not set.


idmef_reference_set_origin ()

void
idmef_reference_set_origin (idmef_reference_t *ptr,
                            idmef_reference_origin_t origin);

Set origin object as a children of ptr . if ptr already contain an origin object, then it is destroyed, and updated to point to the provided origin object.

Parameters

ptr

pointer to a idmef_reference_t object.

 

origin

pointer to a idmef_reference_origin_t object.

 

idmef_reference_new_origin ()

int
idmef_reference_new_origin (idmef_reference_t *ptr,
                            idmef_reference_origin_t **ret);

Create a new origin object, children of idmef_reference_t. If ptr already contain a idmef_reference_origin_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_reference_t object.

 

ret

pointer to an address where to store the created idmef_reference_origin_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_reference_get_name ()

prelude_string_t *
idmef_reference_get_name (idmef_reference_t *ptr);

Get name children of the idmef_reference_t object.

Parameters

ptr

pointer to a idmef_reference_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_reference_set_name ()

void
idmef_reference_set_name (idmef_reference_t *ptr,
                          prelude_string_t *name);

Set name object as a children of ptr . if ptr already contain an name object, then it is destroyed, and updated to point to the provided name object.

Parameters

ptr

pointer to a idmef_reference_t object.

 

name

pointer to a prelude_string_t object.

 

idmef_reference_new_name ()

int
idmef_reference_new_name (idmef_reference_t *ptr,
                          prelude_string_t **ret);

Create a new name object, children of idmef_reference_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_reference_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_reference_get_url ()

prelude_string_t *
idmef_reference_get_url (idmef_reference_t *ptr);

Get url children of the idmef_reference_t object.

Parameters

ptr

pointer to a idmef_reference_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_reference_set_url ()

void
idmef_reference_set_url (idmef_reference_t *ptr,
                         prelude_string_t *url);

Set url object as a children of ptr . if ptr already contain an url object, then it is destroyed, and updated to point to the provided url object.

Parameters

ptr

pointer to a idmef_reference_t object.

 

url

pointer to a prelude_string_t object.

 

idmef_reference_new_url ()

int
idmef_reference_new_url (idmef_reference_t *ptr,
                         prelude_string_t **ret);

Create a new url object, children of idmef_reference_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_reference_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_reference_get_meaning ()

prelude_string_t *
idmef_reference_get_meaning (idmef_reference_t *ptr);

Get meaning children of the idmef_reference_t object.

Parameters

ptr

pointer to a idmef_reference_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_reference_set_meaning ()

void
idmef_reference_set_meaning (idmef_reference_t *ptr,
                             prelude_string_t *meaning);

Set meaning object as a children of ptr . if ptr already contain an meaning object, then it is destroyed, and updated to point to the provided meaning object.

Parameters

ptr

pointer to a idmef_reference_t object.

 

meaning

pointer to a prelude_string_t object.

 

idmef_reference_new_meaning ()

int
idmef_reference_new_meaning (idmef_reference_t *ptr,
                             prelude_string_t **ret);

Create a new meaning object, children of idmef_reference_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_reference_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_classification_new ()

int
idmef_classification_new (idmef_classification_t **ret);

Create a new idmef_classification_t object.

Parameters

ret

Pointer where to store the created idmef_classification_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_classification_copy ()

int
idmef_classification_copy (const idmef_classification_t *src,
                           idmef_classification_t *dst);

Copy a new idmef_classification_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_classification_clone ()

int
idmef_classification_clone (idmef_classification_t *src,
                            idmef_classification_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_classification_ref ()

idmef_classification_t *
idmef_classification_ref (idmef_classification_t *classification);

Increase classification reference count, so that it can be referenced multiple time.

Parameters

classification

pointer to a idmef_classification_t object.

 

Returns

a pointer to classification .


idmef_classification_destroy ()

void
idmef_classification_destroy (idmef_classification_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_classification_t object.

 

idmef_classification_get_ident ()

prelude_string_t *
idmef_classification_get_ident (idmef_classification_t *ptr);

Get ident children of the idmef_classification_t object.

Parameters

ptr

pointer to a idmef_classification_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_classification_set_ident ()

void
idmef_classification_set_ident (idmef_classification_t *ptr,
                                prelude_string_t *ident);

Set ident object as a children of ptr . if ptr already contain an ident object, then it is destroyed, and updated to point to the provided ident object.

Parameters

ptr

pointer to a idmef_classification_t object.

 

ident

pointer to a prelude_string_t object.

 

idmef_classification_new_ident ()

int
idmef_classification_new_ident (idmef_classification_t *ptr,
                                prelude_string_t **ret);

Create a new ident object, children of idmef_classification_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_classification_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_classification_get_text ()

prelude_string_t *
idmef_classification_get_text (idmef_classification_t *ptr);

Get text children of the idmef_classification_t object.

Parameters

ptr

pointer to a idmef_classification_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_classification_set_text ()

void
idmef_classification_set_text (idmef_classification_t *ptr,
                               prelude_string_t *text);

Set text object as a children of ptr . if ptr already contain an text object, then it is destroyed, and updated to point to the provided text object.

Parameters

ptr

pointer to a idmef_classification_t object.

 

text

pointer to a prelude_string_t object.

 

idmef_classification_new_text ()

int
idmef_classification_new_text (idmef_classification_t *ptr,
                               prelude_string_t **ret);

Create a new text object, children of idmef_classification_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_classification_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_classification_get_next_reference ()

idmef_reference_t *
idmef_classification_get_next_reference
                               (idmef_classification_t *classification,
                                idmef_reference_t *reference_cur);

Get the next idmef_reference_t object listed in ptr . When iterating over the idmef_reference_t object listed in ptr , object should be set to the latest returned idmef_reference_t object.

Parameters

classification

pointer to a idmef_classification_t object.

 

reference_cur

pointer to a idmef_reference_t object.

 

Returns

the next idmef_reference_t in the list.


idmef_classification_set_reference ()

void
idmef_classification_set_reference (idmef_classification_t *ptr,
                                    idmef_reference_t *object,
                                    int pos);

Add object to position pos of ptr list of idmef_reference_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_classification_t object.

 

object

pointer to a idmef_reference_t object.

 

pos

Position in the list.

 

idmef_classification_new_reference ()

int
idmef_classification_new_reference (idmef_classification_t *ptr,
                                    idmef_reference_t **ret,
                                    int pos);

Create a new idmef_reference_t children of ptr , and add it to position pos of ptr list of idmef_reference_t object. The created idmef_reference_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_classification_t object.

 

ret

pointer to an address where to store the created idmef_reference_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_user_id_type_to_numeric ()

idmef_user_id_type_t
idmef_user_id_type_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_user_id_type_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_user_id_type_to_string ()

const char *
idmef_user_id_type_to_string (idmef_user_id_type_t val);

Return the IDMEF string equivalent of val provided idmef_user_id_type_t value.

Parameters

val

an enumeration value for idmef_user_id_type_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_user_id_new ()

int
idmef_user_id_new (idmef_user_id_t **ret);

Create a new idmef_user_id_t object.

Parameters

ret

Pointer where to store the created idmef_user_id_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_user_id_copy ()

int
idmef_user_id_copy (const idmef_user_id_t *src,
                    idmef_user_id_t *dst);

Copy a new idmef_user_id_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_user_id_clone ()

int
idmef_user_id_clone (idmef_user_id_t *src,
                     idmef_user_id_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_user_id_ref ()

idmef_user_id_t *
idmef_user_id_ref (idmef_user_id_t *user_id);

Increase user_id reference count, so that it can be referenced multiple time.

Parameters

user_id

pointer to a idmef_user_id_t object.

 

Returns

a pointer to user_id .


idmef_user_id_destroy ()

void
idmef_user_id_destroy (idmef_user_id_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

idmef_user_id_get_ident ()

prelude_string_t *
idmef_user_id_get_ident (idmef_user_id_t *ptr);

Get ident children of the idmef_user_id_t object.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_user_id_set_ident ()

void
idmef_user_id_set_ident (idmef_user_id_t *ptr,
                         prelude_string_t *ident);

Set ident object as a children of ptr . if ptr already contain an ident object, then it is destroyed, and updated to point to the provided ident object.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

ident

pointer to a prelude_string_t object.

 

idmef_user_id_new_ident ()

int
idmef_user_id_new_ident (idmef_user_id_t *ptr,
                         prelude_string_t **ret);

Create a new ident object, children of idmef_user_id_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_user_id_get_type ()

idmef_user_id_type_t
idmef_user_id_get_type (idmef_user_id_t *ptr);

Get type children of the idmef_user_id_t object.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

Returns

a pointer to a idmef_user_id_type_t object, or NULL if the children object is not set.


idmef_user_id_set_type ()

void
idmef_user_id_set_type (idmef_user_id_t *ptr,
                        idmef_user_id_type_t type);

Set type object as a children of ptr . if ptr already contain an type object, then it is destroyed, and updated to point to the provided type object.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

type

pointer to a idmef_user_id_type_t object.

 

idmef_user_id_new_type ()

int
idmef_user_id_new_type (idmef_user_id_t *ptr,
                        idmef_user_id_type_t **ret);

Create a new type object, children of idmef_user_id_t. If ptr already contain a idmef_user_id_type_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

ret

pointer to an address where to store the created idmef_user_id_type_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_user_id_get_tty ()

prelude_string_t *
idmef_user_id_get_tty (idmef_user_id_t *ptr);

Get tty children of the idmef_user_id_t object.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_user_id_set_tty ()

void
idmef_user_id_set_tty (idmef_user_id_t *ptr,
                       prelude_string_t *tty);

Set tty object as a children of ptr . if ptr already contain an tty object, then it is destroyed, and updated to point to the provided tty object.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

tty

pointer to a prelude_string_t object.

 

idmef_user_id_new_tty ()

int
idmef_user_id_new_tty (idmef_user_id_t *ptr,
                       prelude_string_t **ret);

Create a new tty object, children of idmef_user_id_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_user_id_get_name ()

prelude_string_t *
idmef_user_id_get_name (idmef_user_id_t *ptr);

Get name children of the idmef_user_id_t object.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_user_id_set_name ()

void
idmef_user_id_set_name (idmef_user_id_t *ptr,
                        prelude_string_t *name);

Set name object as a children of ptr . if ptr already contain an name object, then it is destroyed, and updated to point to the provided name object.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

name

pointer to a prelude_string_t object.

 

idmef_user_id_new_name ()

int
idmef_user_id_new_name (idmef_user_id_t *ptr,
                        prelude_string_t **ret);

Create a new name object, children of idmef_user_id_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_user_id_unset_number ()

void
idmef_user_id_unset_number (idmef_user_id_t *ptr);

idmef_user_id_get_number ()

uint32_t *
idmef_user_id_get_number (idmef_user_id_t *ptr);

Get number children of the idmef_user_id_t object.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

Returns

a pointer to a uint32_t object, or NULL if the children object is not set.


idmef_user_id_set_number ()

void
idmef_user_id_set_number (idmef_user_id_t *ptr,
                          uint32_t number);

Set number object as a children of ptr . if ptr already contain an number object, then it is destroyed, and updated to point to the provided number object.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

number

pointer to a uint32_t object.

 

idmef_user_id_new_number ()

int
idmef_user_id_new_number (idmef_user_id_t *ptr,
                          uint32_t **ret);

Create a new number object, children of idmef_user_id_t. If ptr already contain a uint32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_user_id_t object.

 

ret

pointer to an address where to store the created uint32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_user_category_to_numeric ()

idmef_user_category_t
idmef_user_category_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_user_category_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_user_category_to_string ()

const char *
idmef_user_category_to_string (idmef_user_category_t val);

Return the IDMEF string equivalent of val provided idmef_user_category_t value.

Parameters

val

an enumeration value for idmef_user_category_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_user_new ()

int
idmef_user_new (idmef_user_t **ret);

Create a new idmef_user_t object.

Parameters

ret

Pointer where to store the created idmef_user_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_user_copy ()

int
idmef_user_copy (const idmef_user_t *src,
                 idmef_user_t *dst);

Copy a new idmef_user_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_user_clone ()

int
idmef_user_clone (idmef_user_t *src,
                  idmef_user_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_user_ref ()

idmef_user_t *
idmef_user_ref (idmef_user_t *user);

Increase user reference count, so that it can be referenced multiple time.

Parameters

user

pointer to a idmef_user_t object.

 

Returns

a pointer to user .


idmef_user_destroy ()

void
idmef_user_destroy (idmef_user_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_user_t object.

 

idmef_user_get_ident ()

prelude_string_t *
idmef_user_get_ident (idmef_user_t *ptr);

Get ident children of the idmef_user_t object.

Parameters

ptr

pointer to a idmef_user_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_user_set_ident ()

void
idmef_user_set_ident (idmef_user_t *ptr,
                      prelude_string_t *ident);

Set ident object as a children of ptr . if ptr already contain an ident object, then it is destroyed, and updated to point to the provided ident object.

Parameters

ptr

pointer to a idmef_user_t object.

 

ident

pointer to a prelude_string_t object.

 

idmef_user_new_ident ()

int
idmef_user_new_ident (idmef_user_t *ptr,
                      prelude_string_t **ret);

Create a new ident object, children of idmef_user_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_user_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_user_get_category ()

idmef_user_category_t
idmef_user_get_category (idmef_user_t *ptr);

Get category children of the idmef_user_t object.

Parameters

ptr

pointer to a idmef_user_t object.

 

Returns

a pointer to a idmef_user_category_t object, or NULL if the children object is not set.


idmef_user_set_category ()

void
idmef_user_set_category (idmef_user_t *ptr,
                         idmef_user_category_t category);

Set category object as a children of ptr . if ptr already contain an category object, then it is destroyed, and updated to point to the provided category object.

Parameters

ptr

pointer to a idmef_user_t object.

 

category

pointer to a idmef_user_category_t object.

 

idmef_user_new_category ()

int
idmef_user_new_category (idmef_user_t *ptr,
                         idmef_user_category_t **ret);

Create a new category object, children of idmef_user_t. If ptr already contain a idmef_user_category_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_user_t object.

 

ret

pointer to an address where to store the created idmef_user_category_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_user_get_next_user_id ()

idmef_user_id_t *
idmef_user_get_next_user_id (idmef_user_t *user,
                             idmef_user_id_t *user_id_cur);

Get the next idmef_user_id_t object listed in ptr . When iterating over the idmef_user_id_t object listed in ptr , object should be set to the latest returned idmef_user_id_t object.

Parameters

user

pointer to a idmef_user_t object.

 

user_id_cur

pointer to a idmef_user_id_t object.

 

Returns

the next idmef_user_id_t in the list.


idmef_user_set_user_id ()

void
idmef_user_set_user_id (idmef_user_t *ptr,
                        idmef_user_id_t *object,
                        int pos);

Add object to position pos of ptr list of idmef_user_id_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_user_t object.

 

object

pointer to a idmef_user_id_t object.

 

pos

Position in the list.

 

idmef_user_new_user_id ()

int
idmef_user_new_user_id (idmef_user_t *ptr,
                        idmef_user_id_t **ret,
                        int pos);

Create a new idmef_user_id_t children of ptr , and add it to position pos of ptr list of idmef_user_id_t object. The created idmef_user_id_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_user_t object.

 

ret

pointer to an address where to store the created idmef_user_id_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_address_category_to_numeric ()

idmef_address_category_t
idmef_address_category_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_address_category_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_address_category_to_string ()

const char *
idmef_address_category_to_string (idmef_address_category_t val);

Return the IDMEF string equivalent of val provided idmef_address_category_t value.

Parameters

val

an enumeration value for idmef_address_category_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_address_new ()

int
idmef_address_new (idmef_address_t **ret);

Create a new idmef_address_t object.

Parameters

ret

Pointer where to store the created idmef_address_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_address_copy ()

int
idmef_address_copy (const idmef_address_t *src,
                    idmef_address_t *dst);

Copy a new idmef_address_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_address_clone ()

int
idmef_address_clone (idmef_address_t *src,
                     idmef_address_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_address_ref ()

idmef_address_t *
idmef_address_ref (idmef_address_t *address);

Increase address reference count, so that it can be referenced multiple time.

Parameters

address

pointer to a idmef_address_t object.

 

Returns

a pointer to address .


idmef_address_destroy ()

void
idmef_address_destroy (idmef_address_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_address_t object.

 

idmef_address_get_ident ()

prelude_string_t *
idmef_address_get_ident (idmef_address_t *ptr);

Get ident children of the idmef_address_t object.

Parameters

ptr

pointer to a idmef_address_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_address_set_ident ()

void
idmef_address_set_ident (idmef_address_t *ptr,
                         prelude_string_t *ident);

Set ident object as a children of ptr . if ptr already contain an ident object, then it is destroyed, and updated to point to the provided ident object.

Parameters

ptr

pointer to a idmef_address_t object.

 

ident

pointer to a prelude_string_t object.

 

idmef_address_new_ident ()

int
idmef_address_new_ident (idmef_address_t *ptr,
                         prelude_string_t **ret);

Create a new ident object, children of idmef_address_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_address_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_address_get_category ()

idmef_address_category_t
idmef_address_get_category (idmef_address_t *ptr);

Get category children of the idmef_address_t object.

Parameters

ptr

pointer to a idmef_address_t object.

 

Returns

a pointer to a idmef_address_category_t object, or NULL if the children object is not set.


idmef_address_set_category ()

void
idmef_address_set_category (idmef_address_t *ptr,
                            idmef_address_category_t category);

Set category object as a children of ptr . if ptr already contain an category object, then it is destroyed, and updated to point to the provided category object.

Parameters

ptr

pointer to a idmef_address_t object.

 

category

pointer to a idmef_address_category_t object.

 

idmef_address_new_category ()

int
idmef_address_new_category (idmef_address_t *ptr,
                            idmef_address_category_t **ret);

Create a new category object, children of idmef_address_t. If ptr already contain a idmef_address_category_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_address_t object.

 

ret

pointer to an address where to store the created idmef_address_category_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_address_get_vlan_name ()

prelude_string_t *
idmef_address_get_vlan_name (idmef_address_t *ptr);

Get vlan_name children of the idmef_address_t object.

Parameters

ptr

pointer to a idmef_address_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_address_set_vlan_name ()

void
idmef_address_set_vlan_name (idmef_address_t *ptr,
                             prelude_string_t *vlan_name);

Set vlan_name object as a children of ptr . if ptr already contain an vlan_name object, then it is destroyed, and updated to point to the provided vlan_name object.

Parameters

ptr

pointer to a idmef_address_t object.

 

vlan_name

pointer to a prelude_string_t object.

 

idmef_address_new_vlan_name ()

int
idmef_address_new_vlan_name (idmef_address_t *ptr,
                             prelude_string_t **ret);

Create a new vlan_name object, children of idmef_address_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_address_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_address_unset_vlan_num ()

void
idmef_address_unset_vlan_num (idmef_address_t *ptr);

idmef_address_get_vlan_num ()

int32_t *
idmef_address_get_vlan_num (idmef_address_t *ptr);

Get vlan_num children of the idmef_address_t object.

Parameters

ptr

pointer to a idmef_address_t object.

 

Returns

a pointer to a int32_t object, or NULL if the children object is not set.


idmef_address_set_vlan_num ()

void
idmef_address_set_vlan_num (idmef_address_t *ptr,
                            int32_t vlan_num);

Set vlan_num object as a children of ptr . if ptr already contain an vlan_num object, then it is destroyed, and updated to point to the provided vlan_num object.

Parameters

ptr

pointer to a idmef_address_t object.

 

vlan_num

pointer to a int32_t object.

 

idmef_address_new_vlan_num ()

int
idmef_address_new_vlan_num (idmef_address_t *ptr,
                            int32_t **ret);

Create a new vlan_num object, children of idmef_address_t. If ptr already contain a int32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_address_t object.

 

ret

pointer to an address where to store the created int32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_address_get_address ()

prelude_string_t *
idmef_address_get_address (idmef_address_t *ptr);

Get address children of the idmef_address_t object.

Parameters

ptr

pointer to a idmef_address_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_address_set_address ()

void
idmef_address_set_address (idmef_address_t *ptr,
                           prelude_string_t *address);

Set address object as a children of ptr . if ptr already contain an address object, then it is destroyed, and updated to point to the provided address object.

Parameters

ptr

pointer to a idmef_address_t object.

 

address

pointer to a prelude_string_t object.

 

idmef_address_new_address ()

int
idmef_address_new_address (idmef_address_t *ptr,
                           prelude_string_t **ret);

Create a new address object, children of idmef_address_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_address_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_address_get_netmask ()

prelude_string_t *
idmef_address_get_netmask (idmef_address_t *ptr);

Get netmask children of the idmef_address_t object.

Parameters

ptr

pointer to a idmef_address_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_address_set_netmask ()

void
idmef_address_set_netmask (idmef_address_t *ptr,
                           prelude_string_t *netmask);

Set netmask object as a children of ptr . if ptr already contain an netmask object, then it is destroyed, and updated to point to the provided netmask object.

Parameters

ptr

pointer to a idmef_address_t object.

 

netmask

pointer to a prelude_string_t object.

 

idmef_address_new_netmask ()

int
idmef_address_new_netmask (idmef_address_t *ptr,
                           prelude_string_t **ret);

Create a new netmask object, children of idmef_address_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_address_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_process_new ()

int
idmef_process_new (idmef_process_t **ret);

Create a new idmef_process_t object.

Parameters

ret

Pointer where to store the created idmef_process_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_process_copy ()

int
idmef_process_copy (const idmef_process_t *src,
                    idmef_process_t *dst);

Copy a new idmef_process_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_process_clone ()

int
idmef_process_clone (idmef_process_t *src,
                     idmef_process_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_process_ref ()

idmef_process_t *
idmef_process_ref (idmef_process_t *process);

Increase process reference count, so that it can be referenced multiple time.

Parameters

process

pointer to a idmef_process_t object.

 

Returns

a pointer to process .


idmef_process_destroy ()

void
idmef_process_destroy (idmef_process_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_process_t object.

 

idmef_process_get_ident ()

prelude_string_t *
idmef_process_get_ident (idmef_process_t *ptr);

Get ident children of the idmef_process_t object.

Parameters

ptr

pointer to a idmef_process_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_process_set_ident ()

void
idmef_process_set_ident (idmef_process_t *ptr,
                         prelude_string_t *ident);

Set ident object as a children of ptr . if ptr already contain an ident object, then it is destroyed, and updated to point to the provided ident object.

Parameters

ptr

pointer to a idmef_process_t object.

 

ident

pointer to a prelude_string_t object.

 

idmef_process_new_ident ()

int
idmef_process_new_ident (idmef_process_t *ptr,
                         prelude_string_t **ret);

Create a new ident object, children of idmef_process_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_process_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_process_get_name ()

prelude_string_t *
idmef_process_get_name (idmef_process_t *ptr);

Get name children of the idmef_process_t object.

Parameters

ptr

pointer to a idmef_process_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_process_set_name ()

void
idmef_process_set_name (idmef_process_t *ptr,
                        prelude_string_t *name);

Set name object as a children of ptr . if ptr already contain an name object, then it is destroyed, and updated to point to the provided name object.

Parameters

ptr

pointer to a idmef_process_t object.

 

name

pointer to a prelude_string_t object.

 

idmef_process_new_name ()

int
idmef_process_new_name (idmef_process_t *ptr,
                        prelude_string_t **ret);

Create a new name object, children of idmef_process_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_process_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_process_unset_pid ()

void
idmef_process_unset_pid (idmef_process_t *ptr);

idmef_process_get_pid ()

uint32_t *
idmef_process_get_pid (idmef_process_t *ptr);

Get pid children of the idmef_process_t object.

Parameters

ptr

pointer to a idmef_process_t object.

 

Returns

a pointer to a uint32_t object, or NULL if the children object is not set.


idmef_process_set_pid ()

void
idmef_process_set_pid (idmef_process_t *ptr,
                       uint32_t pid);

Set pid object as a children of ptr . if ptr already contain an pid object, then it is destroyed, and updated to point to the provided pid object.

Parameters

ptr

pointer to a idmef_process_t object.

 

pid

pointer to a uint32_t object.

 

idmef_process_new_pid ()

int
idmef_process_new_pid (idmef_process_t *ptr,
                       uint32_t **ret);

Create a new pid object, children of idmef_process_t. If ptr already contain a uint32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_process_t object.

 

ret

pointer to an address where to store the created uint32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_process_get_path ()

prelude_string_t *
idmef_process_get_path (idmef_process_t *ptr);

Get path children of the idmef_process_t object.

Parameters

ptr

pointer to a idmef_process_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_process_set_path ()

void
idmef_process_set_path (idmef_process_t *ptr,
                        prelude_string_t *path);

Set path object as a children of ptr . if ptr already contain an path object, then it is destroyed, and updated to point to the provided path object.

Parameters

ptr

pointer to a idmef_process_t object.

 

path

pointer to a prelude_string_t object.

 

idmef_process_new_path ()

int
idmef_process_new_path (idmef_process_t *ptr,
                        prelude_string_t **ret);

Create a new path object, children of idmef_process_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_process_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_process_get_next_arg ()

prelude_string_t *
idmef_process_get_next_arg (idmef_process_t *process,
                            prelude_string_t *prelude_string_cur);

Get the next prelude_string_t object listed in ptr . When iterating over the prelude_string_t object listed in ptr , object should be set to the latest returned prelude_string_t object.

Parameters

process

pointer to a idmef_process_t object.

 

prelude_string_cur

pointer to a prelude_string_t object.

 

Returns

the next prelude_string_t in the list.


idmef_process_set_arg ()

void
idmef_process_set_arg (idmef_process_t *ptr,
                       prelude_string_t *object,
                       int pos);

Add object to position pos of ptr list of prelude_string_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_process_t object.

 

object

pointer to a prelude_string_t object.

 

pos

Position in the list.

 

idmef_process_new_arg ()

int
idmef_process_new_arg (idmef_process_t *ptr,
                       prelude_string_t **ret,
                       int pos);

Create a new prelude_string_t children of ptr , and add it to position pos of ptr list of prelude_string_t object. The created prelude_string_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_process_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_process_get_next_env ()

prelude_string_t *
idmef_process_get_next_env (idmef_process_t *process,
                            prelude_string_t *prelude_string_cur);

Get the next prelude_string_t object listed in ptr . When iterating over the prelude_string_t object listed in ptr , object should be set to the latest returned prelude_string_t object.

Parameters

process

pointer to a idmef_process_t object.

 

prelude_string_cur

pointer to a prelude_string_t object.

 

Returns

the next prelude_string_t in the list.


idmef_process_set_env ()

void
idmef_process_set_env (idmef_process_t *ptr,
                       prelude_string_t *object,
                       int pos);

Add object to position pos of ptr list of prelude_string_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_process_t object.

 

object

pointer to a prelude_string_t object.

 

pos

Position in the list.

 

idmef_process_new_env ()

int
idmef_process_new_env (idmef_process_t *ptr,
                       prelude_string_t **ret,
                       int pos);

Create a new prelude_string_t children of ptr , and add it to position pos of ptr list of prelude_string_t object. The created prelude_string_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_process_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_web_service_new ()

int
idmef_web_service_new (idmef_web_service_t **ret);

Create a new idmef_web_service_t object.

Parameters

ret

Pointer where to store the created idmef_web_service_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_web_service_copy ()

int
idmef_web_service_copy (const idmef_web_service_t *src,
                        idmef_web_service_t *dst);

Copy a new idmef_web_service_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_web_service_clone ()

int
idmef_web_service_clone (idmef_web_service_t *src,
                         idmef_web_service_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_web_service_ref ()

idmef_web_service_t *
idmef_web_service_ref (idmef_web_service_t *web_service);

Increase web_service reference count, so that it can be referenced multiple time.

Parameters

web_service

pointer to a idmef_web_service_t object.

 

Returns

a pointer to web_service .


idmef_web_service_destroy ()

void
idmef_web_service_destroy (idmef_web_service_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_web_service_t object.

 

idmef_web_service_get_url ()

prelude_string_t *
idmef_web_service_get_url (idmef_web_service_t *ptr);

Get url children of the idmef_web_service_t object.

Parameters

ptr

pointer to a idmef_web_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_web_service_set_url ()

void
idmef_web_service_set_url (idmef_web_service_t *ptr,
                           prelude_string_t *url);

Set url object as a children of ptr . if ptr already contain an url object, then it is destroyed, and updated to point to the provided url object.

Parameters

ptr

pointer to a idmef_web_service_t object.

 

url

pointer to a prelude_string_t object.

 

idmef_web_service_new_url ()

int
idmef_web_service_new_url (idmef_web_service_t *ptr,
                           prelude_string_t **ret);

Create a new url object, children of idmef_web_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_web_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_web_service_get_cgi ()

prelude_string_t *
idmef_web_service_get_cgi (idmef_web_service_t *ptr);

Get cgi children of the idmef_web_service_t object.

Parameters

ptr

pointer to a idmef_web_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_web_service_set_cgi ()

void
idmef_web_service_set_cgi (idmef_web_service_t *ptr,
                           prelude_string_t *cgi);

Set cgi object as a children of ptr . if ptr already contain an cgi object, then it is destroyed, and updated to point to the provided cgi object.

Parameters

ptr

pointer to a idmef_web_service_t object.

 

cgi

pointer to a prelude_string_t object.

 

idmef_web_service_new_cgi ()

int
idmef_web_service_new_cgi (idmef_web_service_t *ptr,
                           prelude_string_t **ret);

Create a new cgi object, children of idmef_web_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_web_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_web_service_get_http_method ()

prelude_string_t *
idmef_web_service_get_http_method (idmef_web_service_t *ptr);

Get http_method children of the idmef_web_service_t object.

Parameters

ptr

pointer to a idmef_web_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_web_service_set_http_method ()

void
idmef_web_service_set_http_method (idmef_web_service_t *ptr,
                                   prelude_string_t *http_method);

Set http_method object as a children of ptr . if ptr already contain an http_method object, then it is destroyed, and updated to point to the provided http_method object.

Parameters

ptr

pointer to a idmef_web_service_t object.

 

http_method

pointer to a prelude_string_t object.

 

idmef_web_service_new_http_method ()

int
idmef_web_service_new_http_method (idmef_web_service_t *ptr,
                                   prelude_string_t **ret);

Create a new http_method object, children of idmef_web_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_web_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_web_service_get_next_arg ()

prelude_string_t *
idmef_web_service_get_next_arg (idmef_web_service_t *web_service,
                                prelude_string_t *prelude_string_cur);

Get the next prelude_string_t object listed in ptr . When iterating over the prelude_string_t object listed in ptr , object should be set to the latest returned prelude_string_t object.

Parameters

web_service

pointer to a idmef_web_service_t object.

 

prelude_string_cur

pointer to a prelude_string_t object.

 

Returns

the next prelude_string_t in the list.


idmef_web_service_set_arg ()

void
idmef_web_service_set_arg (idmef_web_service_t *ptr,
                           prelude_string_t *object,
                           int pos);

Add object to position pos of ptr list of prelude_string_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_web_service_t object.

 

object

pointer to a prelude_string_t object.

 

pos

Position in the list.

 

idmef_web_service_new_arg ()

int
idmef_web_service_new_arg (idmef_web_service_t *ptr,
                           prelude_string_t **ret,
                           int pos);

Create a new prelude_string_t children of ptr , and add it to position pos of ptr list of prelude_string_t object. The created prelude_string_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_web_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_snmp_service_new ()

int
idmef_snmp_service_new (idmef_snmp_service_t **ret);

Create a new idmef_snmp_service_t object.

Parameters

ret

Pointer where to store the created idmef_snmp_service_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_snmp_service_copy ()

int
idmef_snmp_service_copy (const idmef_snmp_service_t *src,
                         idmef_snmp_service_t *dst);

Copy a new idmef_snmp_service_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_snmp_service_clone ()

int
idmef_snmp_service_clone (idmef_snmp_service_t *src,
                          idmef_snmp_service_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_snmp_service_ref ()

idmef_snmp_service_t *
idmef_snmp_service_ref (idmef_snmp_service_t *snmp_service);

Increase snmp_service reference count, so that it can be referenced multiple time.

Parameters

snmp_service

pointer to a idmef_snmp_service_t object.

 

Returns

a pointer to snmp_service .


idmef_snmp_service_destroy ()

void
idmef_snmp_service_destroy (idmef_snmp_service_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

idmef_snmp_service_get_oid ()

prelude_string_t *
idmef_snmp_service_get_oid (idmef_snmp_service_t *ptr);

Get oid children of the idmef_snmp_service_t object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_snmp_service_set_oid ()

void
idmef_snmp_service_set_oid (idmef_snmp_service_t *ptr,
                            prelude_string_t *oid);

Set oid object as a children of ptr . if ptr already contain an oid object, then it is destroyed, and updated to point to the provided oid object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

oid

pointer to a prelude_string_t object.

 

idmef_snmp_service_new_oid ()

int
idmef_snmp_service_new_oid (idmef_snmp_service_t *ptr,
                            prelude_string_t **ret);

Create a new oid object, children of idmef_snmp_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_snmp_service_unset_message_processing_model ()

void
idmef_snmp_service_unset_message_processing_model
                               (idmef_snmp_service_t *ptr);

idmef_snmp_service_get_message_processing_model ()

uint32_t *
idmef_snmp_service_get_message_processing_model
                               (idmef_snmp_service_t *ptr);

Get message_processing_model children of the idmef_snmp_service_t object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

Returns

a pointer to a uint32_t object, or NULL if the children object is not set.


idmef_snmp_service_set_message_processing_model ()

void
idmef_snmp_service_set_message_processing_model
                               (idmef_snmp_service_t *ptr,
                                uint32_t message_processing_model);

Set message_processing_model object as a children of ptr . if ptr already contain an message_processing_model object, then it is destroyed, and updated to point to the provided message_processing_model object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

message_processing_model

pointer to a uint32_t object.

 

idmef_snmp_service_new_message_processing_model ()

int
idmef_snmp_service_new_message_processing_model
                               (idmef_snmp_service_t *ptr,
                                uint32_t **ret);

Create a new message_processing_model object, children of idmef_snmp_service_t. If ptr already contain a uint32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

ret

pointer to an address where to store the created uint32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_snmp_service_unset_security_model ()

void
idmef_snmp_service_unset_security_model
                               (idmef_snmp_service_t *ptr);

idmef_snmp_service_get_security_model ()

uint32_t *
idmef_snmp_service_get_security_model (idmef_snmp_service_t *ptr);

Get security_model children of the idmef_snmp_service_t object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

Returns

a pointer to a uint32_t object, or NULL if the children object is not set.


idmef_snmp_service_set_security_model ()

void
idmef_snmp_service_set_security_model (idmef_snmp_service_t *ptr,
                                       uint32_t security_model);

Set security_model object as a children of ptr . if ptr already contain an security_model object, then it is destroyed, and updated to point to the provided security_model object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

security_model

pointer to a uint32_t object.

 

idmef_snmp_service_new_security_model ()

int
idmef_snmp_service_new_security_model (idmef_snmp_service_t *ptr,
                                       uint32_t **ret);

Create a new security_model object, children of idmef_snmp_service_t. If ptr already contain a uint32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

ret

pointer to an address where to store the created uint32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_snmp_service_get_security_name ()

prelude_string_t *
idmef_snmp_service_get_security_name (idmef_snmp_service_t *ptr);

Get security_name children of the idmef_snmp_service_t object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_snmp_service_set_security_name ()

void
idmef_snmp_service_set_security_name (idmef_snmp_service_t *ptr,
                                      prelude_string_t *security_name);

Set security_name object as a children of ptr . if ptr already contain an security_name object, then it is destroyed, and updated to point to the provided security_name object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

security_name

pointer to a prelude_string_t object.

 

idmef_snmp_service_new_security_name ()

int
idmef_snmp_service_new_security_name (idmef_snmp_service_t *ptr,
                                      prelude_string_t **ret);

Create a new security_name object, children of idmef_snmp_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_snmp_service_unset_security_level ()

void
idmef_snmp_service_unset_security_level
                               (idmef_snmp_service_t *ptr);

idmef_snmp_service_get_security_level ()

uint32_t *
idmef_snmp_service_get_security_level (idmef_snmp_service_t *ptr);

Get security_level children of the idmef_snmp_service_t object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

Returns

a pointer to a uint32_t object, or NULL if the children object is not set.


idmef_snmp_service_set_security_level ()

void
idmef_snmp_service_set_security_level (idmef_snmp_service_t *ptr,
                                       uint32_t security_level);

Set security_level object as a children of ptr . if ptr already contain an security_level object, then it is destroyed, and updated to point to the provided security_level object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

security_level

pointer to a uint32_t object.

 

idmef_snmp_service_new_security_level ()

int
idmef_snmp_service_new_security_level (idmef_snmp_service_t *ptr,
                                       uint32_t **ret);

Create a new security_level object, children of idmef_snmp_service_t. If ptr already contain a uint32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

ret

pointer to an address where to store the created uint32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_snmp_service_get_context_name ()

prelude_string_t *
idmef_snmp_service_get_context_name (idmef_snmp_service_t *ptr);

Get context_name children of the idmef_snmp_service_t object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_snmp_service_set_context_name ()

void
idmef_snmp_service_set_context_name (idmef_snmp_service_t *ptr,
                                     prelude_string_t *context_name);

Set context_name object as a children of ptr . if ptr already contain an context_name object, then it is destroyed, and updated to point to the provided context_name object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

context_name

pointer to a prelude_string_t object.

 

idmef_snmp_service_new_context_name ()

int
idmef_snmp_service_new_context_name (idmef_snmp_service_t *ptr,
                                     prelude_string_t **ret);

Create a new context_name object, children of idmef_snmp_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_snmp_service_get_context_engine_id ()

prelude_string_t *
idmef_snmp_service_get_context_engine_id
                               (idmef_snmp_service_t *ptr);

Get context_engine_id children of the idmef_snmp_service_t object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_snmp_service_set_context_engine_id ()

void
idmef_snmp_service_set_context_engine_id
                               (idmef_snmp_service_t *ptr,
                                prelude_string_t *context_engine_id);

Set context_engine_id object as a children of ptr . if ptr already contain an context_engine_id object, then it is destroyed, and updated to point to the provided context_engine_id object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

context_engine_id

pointer to a prelude_string_t object.

 

idmef_snmp_service_new_context_engine_id ()

int
idmef_snmp_service_new_context_engine_id
                               (idmef_snmp_service_t *ptr,
                                prelude_string_t **ret);

Create a new context_engine_id object, children of idmef_snmp_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_snmp_service_get_command ()

prelude_string_t *
idmef_snmp_service_get_command (idmef_snmp_service_t *ptr);

Get command children of the idmef_snmp_service_t object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_snmp_service_set_command ()

void
idmef_snmp_service_set_command (idmef_snmp_service_t *ptr,
                                prelude_string_t *command);

Set command object as a children of ptr . if ptr already contain an command object, then it is destroyed, and updated to point to the provided command object.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

command

pointer to a prelude_string_t object.

 

idmef_snmp_service_new_command ()

int
idmef_snmp_service_new_command (idmef_snmp_service_t *ptr,
                                prelude_string_t **ret);

Create a new command object, children of idmef_snmp_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_snmp_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_service_type_to_numeric ()

idmef_service_type_t
idmef_service_type_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_service_type_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_service_type_to_string ()

const char *
idmef_service_type_to_string (idmef_service_type_t val);

Return the IDMEF string equivalent of val provided idmef_service_type_t value.

Parameters

val

an enumeration value for idmef_service_type_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_service_new ()

int
idmef_service_new (idmef_service_t **ret);

Create a new idmef_service_t object.

Parameters

ret

Pointer where to store the created idmef_service_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_service_copy ()

int
idmef_service_copy (const idmef_service_t *src,
                    idmef_service_t *dst);

Copy a new idmef_service_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_service_clone ()

int
idmef_service_clone (idmef_service_t *src,
                     idmef_service_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_service_ref ()

idmef_service_t *
idmef_service_ref (idmef_service_t *service);

Increase service reference count, so that it can be referenced multiple time.

Parameters

service

pointer to a idmef_service_t object.

 

Returns

a pointer to service .


idmef_service_destroy ()

void
idmef_service_destroy (idmef_service_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_service_t object.

 

idmef_service_get_ident ()

prelude_string_t *
idmef_service_get_ident (idmef_service_t *ptr);

Get ident children of the idmef_service_t object.

Parameters

ptr

pointer to a idmef_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_service_set_ident ()

void
idmef_service_set_ident (idmef_service_t *ptr,
                         prelude_string_t *ident);

Set ident object as a children of ptr . if ptr already contain an ident object, then it is destroyed, and updated to point to the provided ident object.

Parameters

ptr

pointer to a idmef_service_t object.

 

ident

pointer to a prelude_string_t object.

 

idmef_service_new_ident ()

int
idmef_service_new_ident (idmef_service_t *ptr,
                         prelude_string_t **ret);

Create a new ident object, children of idmef_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_service_unset_ip_version ()

void
idmef_service_unset_ip_version (idmef_service_t *ptr);

idmef_service_get_ip_version ()

uint8_t *
idmef_service_get_ip_version (idmef_service_t *ptr);

Get ip_version children of the idmef_service_t object.

Parameters

ptr

pointer to a idmef_service_t object.

 

Returns

a pointer to a uint8_t object, or NULL if the children object is not set.


idmef_service_set_ip_version ()

void
idmef_service_set_ip_version (idmef_service_t *ptr,
                              uint8_t ip_version);

Set ip_version object as a children of ptr . if ptr already contain an ip_version object, then it is destroyed, and updated to point to the provided ip_version object.

Parameters

ptr

pointer to a idmef_service_t object.

 

ip_version

pointer to a uint8_t object.

 

idmef_service_new_ip_version ()

int
idmef_service_new_ip_version (idmef_service_t *ptr,
                              uint8_t **ret);

Create a new ip_version object, children of idmef_service_t. If ptr already contain a uint8_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_service_t object.

 

ret

pointer to an address where to store the created uint8_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_service_unset_iana_protocol_number ()

void
idmef_service_unset_iana_protocol_number
                               (idmef_service_t *ptr);

idmef_service_get_iana_protocol_number ()

uint8_t *
idmef_service_get_iana_protocol_number
                               (idmef_service_t *ptr);

Get iana_protocol_number children of the idmef_service_t object.

Parameters

ptr

pointer to a idmef_service_t object.

 

Returns

a pointer to a uint8_t object, or NULL if the children object is not set.


idmef_service_set_iana_protocol_number ()

void
idmef_service_set_iana_protocol_number
                               (idmef_service_t *ptr,
                                uint8_t iana_protocol_number);

Set iana_protocol_number object as a children of ptr . if ptr already contain an iana_protocol_number object, then it is destroyed, and updated to point to the provided iana_protocol_number object.

Parameters

ptr

pointer to a idmef_service_t object.

 

iana_protocol_number

pointer to a uint8_t object.

 

idmef_service_new_iana_protocol_number ()

int
idmef_service_new_iana_protocol_number
                               (idmef_service_t *ptr,
                                uint8_t **ret);

Create a new iana_protocol_number object, children of idmef_service_t. If ptr already contain a uint8_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_service_t object.

 

ret

pointer to an address where to store the created uint8_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_service_get_iana_protocol_name ()

prelude_string_t *
idmef_service_get_iana_protocol_name (idmef_service_t *ptr);

Get iana_protocol_name children of the idmef_service_t object.

Parameters

ptr

pointer to a idmef_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_service_set_iana_protocol_name ()

void
idmef_service_set_iana_protocol_name (idmef_service_t *ptr,
                                      prelude_string_t *iana_protocol_name);

Set iana_protocol_name object as a children of ptr . if ptr already contain an iana_protocol_name object, then it is destroyed, and updated to point to the provided iana_protocol_name object.

Parameters

ptr

pointer to a idmef_service_t object.

 

iana_protocol_name

pointer to a prelude_string_t object.

 

idmef_service_new_iana_protocol_name ()

int
idmef_service_new_iana_protocol_name (idmef_service_t *ptr,
                                      prelude_string_t **ret);

Create a new iana_protocol_name object, children of idmef_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_service_get_name ()

prelude_string_t *
idmef_service_get_name (idmef_service_t *ptr);

Get name children of the idmef_service_t object.

Parameters

ptr

pointer to a idmef_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_service_set_name ()

void
idmef_service_set_name (idmef_service_t *ptr,
                        prelude_string_t *name);

Set name object as a children of ptr . if ptr already contain an name object, then it is destroyed, and updated to point to the provided name object.

Parameters

ptr

pointer to a idmef_service_t object.

 

name

pointer to a prelude_string_t object.

 

idmef_service_new_name ()

int
idmef_service_new_name (idmef_service_t *ptr,
                        prelude_string_t **ret);

Create a new name object, children of idmef_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_service_unset_port ()

void
idmef_service_unset_port (idmef_service_t *ptr);

idmef_service_get_port ()

uint16_t *
idmef_service_get_port (idmef_service_t *ptr);

Get port children of the idmef_service_t object.

Parameters

ptr

pointer to a idmef_service_t object.

 

Returns

a pointer to a uint16_t object, or NULL if the children object is not set.


idmef_service_set_port ()

void
idmef_service_set_port (idmef_service_t *ptr,
                        uint16_t port);

Set port object as a children of ptr . if ptr already contain an port object, then it is destroyed, and updated to point to the provided port object.

Parameters

ptr

pointer to a idmef_service_t object.

 

port

pointer to a uint16_t object.

 

idmef_service_new_port ()

int
idmef_service_new_port (idmef_service_t *ptr,
                        uint16_t **ret);

Create a new port object, children of idmef_service_t. If ptr already contain a uint16_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_service_t object.

 

ret

pointer to an address where to store the created uint16_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_service_get_portlist ()

prelude_string_t *
idmef_service_get_portlist (idmef_service_t *ptr);

Get portlist children of the idmef_service_t object.

Parameters

ptr

pointer to a idmef_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_service_set_portlist ()

void
idmef_service_set_portlist (idmef_service_t *ptr,
                            prelude_string_t *portlist);

Set portlist object as a children of ptr . if ptr already contain an portlist object, then it is destroyed, and updated to point to the provided portlist object.

Parameters

ptr

pointer to a idmef_service_t object.

 

portlist

pointer to a prelude_string_t object.

 

idmef_service_new_portlist ()

int
idmef_service_new_portlist (idmef_service_t *ptr,
                            prelude_string_t **ret);

Create a new portlist object, children of idmef_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_service_get_protocol ()

prelude_string_t *
idmef_service_get_protocol (idmef_service_t *ptr);

Get protocol children of the idmef_service_t object.

Parameters

ptr

pointer to a idmef_service_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_service_set_protocol ()

void
idmef_service_set_protocol (idmef_service_t *ptr,
                            prelude_string_t *protocol);

Set protocol object as a children of ptr . if ptr already contain an protocol object, then it is destroyed, and updated to point to the provided protocol object.

Parameters

ptr

pointer to a idmef_service_t object.

 

protocol

pointer to a prelude_string_t object.

 

idmef_service_new_protocol ()

int
idmef_service_new_protocol (idmef_service_t *ptr,
                            prelude_string_t **ret);

Create a new protocol object, children of idmef_service_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_service_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_service_get_type ()

idmef_service_type_t
idmef_service_get_type (idmef_service_t *ptr);

Access the type children of ptr .

Parameters

ptr

pointer to a idmef_service_t object.

 

Returns

a pointer to the idmef_service_type_t children, or NULL if it is not set.


idmef_service_get_web_service ()

idmef_web_service_t *
idmef_service_get_web_service (idmef_service_t *ptr);

Access the web_service children of ptr .

Parameters

ptr

pointer to a idmef_service_t object.

 

Returns

a pointer to the idmef_web_service_t children, or NULL if it is not set.


idmef_service_set_web_service ()

void
idmef_service_set_web_service (idmef_service_t *ptr,
                               idmef_web_service_t *web_service);

Set web_service object as a children of ptr . if ptr already contain a web_service object, then it is destroyed, and updated to point to the provided web_service object.

Parameters

ptr

pointer to a idmef_service_t object.

 

web_service

pointer to a idmef_web_service_t object.

 

idmef_service_new_web_service ()

int
idmef_service_new_web_service (idmef_service_t *ptr,
                               idmef_web_service_t **ret);

Create a new idmef_web_service_t object, children of idmef_service_t. If ptr already contain a idmef_web_service_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_service_t object.

 

ret

pointer where to store the created idmef_web_service_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_service_get_snmp_service ()

idmef_snmp_service_t *
idmef_service_get_snmp_service (idmef_service_t *ptr);

Access the snmp_service children of ptr .

Parameters

ptr

pointer to a idmef_service_t object.

 

Returns

a pointer to the idmef_snmp_service_t children, or NULL if it is not set.


idmef_service_set_snmp_service ()

void
idmef_service_set_snmp_service (idmef_service_t *ptr,
                                idmef_snmp_service_t *snmp_service);

Set snmp_service object as a children of ptr . if ptr already contain a snmp_service object, then it is destroyed, and updated to point to the provided snmp_service object.

Parameters

ptr

pointer to a idmef_service_t object.

 

snmp_service

pointer to a idmef_snmp_service_t object.

 

idmef_service_new_snmp_service ()

int
idmef_service_new_snmp_service (idmef_service_t *ptr,
                                idmef_snmp_service_t **ret);

Create a new idmef_snmp_service_t object, children of idmef_service_t. If ptr already contain a idmef_snmp_service_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_service_t object.

 

ret

pointer where to store the created idmef_snmp_service_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_node_category_to_numeric ()

idmef_node_category_t
idmef_node_category_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_node_category_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_node_category_to_string ()

const char *
idmef_node_category_to_string (idmef_node_category_t val);

Return the IDMEF string equivalent of val provided idmef_node_category_t value.

Parameters

val

an enumeration value for idmef_node_category_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_node_new ()

int
idmef_node_new (idmef_node_t **ret);

Create a new idmef_node_t object.

Parameters

ret

Pointer where to store the created idmef_node_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_node_copy ()

int
idmef_node_copy (const idmef_node_t *src,
                 idmef_node_t *dst);

Copy a new idmef_node_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_node_clone ()

int
idmef_node_clone (idmef_node_t *src,
                  idmef_node_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_node_ref ()

idmef_node_t *
idmef_node_ref (idmef_node_t *node);

Increase node reference count, so that it can be referenced multiple time.

Parameters

node

pointer to a idmef_node_t object.

 

Returns

a pointer to node .


idmef_node_destroy ()

void
idmef_node_destroy (idmef_node_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_node_t object.

 

idmef_node_get_ident ()

prelude_string_t *
idmef_node_get_ident (idmef_node_t *ptr);

Get ident children of the idmef_node_t object.

Parameters

ptr

pointer to a idmef_node_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_node_set_ident ()

void
idmef_node_set_ident (idmef_node_t *ptr,
                      prelude_string_t *ident);

Set ident object as a children of ptr . if ptr already contain an ident object, then it is destroyed, and updated to point to the provided ident object.

Parameters

ptr

pointer to a idmef_node_t object.

 

ident

pointer to a prelude_string_t object.

 

idmef_node_new_ident ()

int
idmef_node_new_ident (idmef_node_t *ptr,
                      prelude_string_t **ret);

Create a new ident object, children of idmef_node_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_node_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_node_get_category ()

idmef_node_category_t
idmef_node_get_category (idmef_node_t *ptr);

Get category children of the idmef_node_t object.

Parameters

ptr

pointer to a idmef_node_t object.

 

Returns

a pointer to a idmef_node_category_t object, or NULL if the children object is not set.


idmef_node_set_category ()

void
idmef_node_set_category (idmef_node_t *ptr,
                         idmef_node_category_t category);

Set category object as a children of ptr . if ptr already contain an category object, then it is destroyed, and updated to point to the provided category object.

Parameters

ptr

pointer to a idmef_node_t object.

 

category

pointer to a idmef_node_category_t object.

 

idmef_node_new_category ()

int
idmef_node_new_category (idmef_node_t *ptr,
                         idmef_node_category_t **ret);

Create a new category object, children of idmef_node_t. If ptr already contain a idmef_node_category_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_node_t object.

 

ret

pointer to an address where to store the created idmef_node_category_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_node_get_location ()

prelude_string_t *
idmef_node_get_location (idmef_node_t *ptr);

Get location children of the idmef_node_t object.

Parameters

ptr

pointer to a idmef_node_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_node_set_location ()

void
idmef_node_set_location (idmef_node_t *ptr,
                         prelude_string_t *location);

Set location object as a children of ptr . if ptr already contain an location object, then it is destroyed, and updated to point to the provided location object.

Parameters

ptr

pointer to a idmef_node_t object.

 

location

pointer to a prelude_string_t object.

 

idmef_node_new_location ()

int
idmef_node_new_location (idmef_node_t *ptr,
                         prelude_string_t **ret);

Create a new location object, children of idmef_node_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_node_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_node_get_name ()

prelude_string_t *
idmef_node_get_name (idmef_node_t *ptr);

Get name children of the idmef_node_t object.

Parameters

ptr

pointer to a idmef_node_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_node_set_name ()

void
idmef_node_set_name (idmef_node_t *ptr,
                     prelude_string_t *name);

Set name object as a children of ptr . if ptr already contain an name object, then it is destroyed, and updated to point to the provided name object.

Parameters

ptr

pointer to a idmef_node_t object.

 

name

pointer to a prelude_string_t object.

 

idmef_node_new_name ()

int
idmef_node_new_name (idmef_node_t *ptr,
                     prelude_string_t **ret);

Create a new name object, children of idmef_node_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_node_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_node_get_next_address ()

idmef_address_t *
idmef_node_get_next_address (idmef_node_t *node,
                             idmef_address_t *address_cur);

Get the next idmef_address_t object listed in ptr . When iterating over the idmef_address_t object listed in ptr , object should be set to the latest returned idmef_address_t object.

Parameters

node

pointer to a idmef_node_t object.

 

address_cur

pointer to a idmef_address_t object.

 

Returns

the next idmef_address_t in the list.


idmef_node_set_address ()

void
idmef_node_set_address (idmef_node_t *ptr,
                        idmef_address_t *object,
                        int pos);

Add object to position pos of ptr list of idmef_address_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_node_t object.

 

object

pointer to a idmef_address_t object.

 

pos

Position in the list.

 

idmef_node_new_address ()

int
idmef_node_new_address (idmef_node_t *ptr,
                        idmef_address_t **ret,
                        int pos);

Create a new idmef_address_t children of ptr , and add it to position pos of ptr list of idmef_address_t object. The created idmef_address_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_node_t object.

 

ret

pointer to an address where to store the created idmef_address_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_source_spoofed_to_numeric ()

idmef_source_spoofed_t
idmef_source_spoofed_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_source_spoofed_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_source_spoofed_to_string ()

const char *
idmef_source_spoofed_to_string (idmef_source_spoofed_t val);

Return the IDMEF string equivalent of val provided idmef_source_spoofed_t value.

Parameters

val

an enumeration value for idmef_source_spoofed_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_source_new ()

int
idmef_source_new (idmef_source_t **ret);

Create a new idmef_source_t object.

Parameters

ret

Pointer where to store the created idmef_source_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_source_copy ()

int
idmef_source_copy (const idmef_source_t *src,
                   idmef_source_t *dst);

Copy a new idmef_source_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_source_clone ()

int
idmef_source_clone (idmef_source_t *src,
                    idmef_source_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_source_ref ()

idmef_source_t *
idmef_source_ref (idmef_source_t *source);

Increase source reference count, so that it can be referenced multiple time.

Parameters

source

pointer to a idmef_source_t object.

 

Returns

a pointer to source .


idmef_source_destroy ()

void
idmef_source_destroy (idmef_source_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_source_t object.

 

idmef_source_get_ident ()

prelude_string_t *
idmef_source_get_ident (idmef_source_t *ptr);

Get ident children of the idmef_source_t object.

Parameters

ptr

pointer to a idmef_source_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_source_set_ident ()

void
idmef_source_set_ident (idmef_source_t *ptr,
                        prelude_string_t *ident);

Set ident object as a children of ptr . if ptr already contain an ident object, then it is destroyed, and updated to point to the provided ident object.

Parameters

ptr

pointer to a idmef_source_t object.

 

ident

pointer to a prelude_string_t object.

 

idmef_source_new_ident ()

int
idmef_source_new_ident (idmef_source_t *ptr,
                        prelude_string_t **ret);

Create a new ident object, children of idmef_source_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_source_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_source_get_spoofed ()

idmef_source_spoofed_t
idmef_source_get_spoofed (idmef_source_t *ptr);

Get spoofed children of the idmef_source_t object.

Parameters

ptr

pointer to a idmef_source_t object.

 

Returns

a pointer to a idmef_source_spoofed_t object, or NULL if the children object is not set.


idmef_source_set_spoofed ()

void
idmef_source_set_spoofed (idmef_source_t *ptr,
                          idmef_source_spoofed_t spoofed);

Set spoofed object as a children of ptr . if ptr already contain an spoofed object, then it is destroyed, and updated to point to the provided spoofed object.

Parameters

ptr

pointer to a idmef_source_t object.

 

spoofed

pointer to a idmef_source_spoofed_t object.

 

idmef_source_new_spoofed ()

int
idmef_source_new_spoofed (idmef_source_t *ptr,
                          idmef_source_spoofed_t **ret);

Create a new spoofed object, children of idmef_source_t. If ptr already contain a idmef_source_spoofed_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_source_t object.

 

ret

pointer to an address where to store the created idmef_source_spoofed_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_source_get_interface ()

prelude_string_t *
idmef_source_get_interface (idmef_source_t *ptr);

Get interface children of the idmef_source_t object.

Parameters

ptr

pointer to a idmef_source_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_source_set_interface ()

void
idmef_source_set_interface (idmef_source_t *ptr,
                            prelude_string_t *interface);

Set interface object as a children of ptr . if ptr already contain an interface object, then it is destroyed, and updated to point to the provided interface object.

Parameters

ptr

pointer to a idmef_source_t object.

 

interface

pointer to a prelude_string_t object.

 

idmef_source_new_interface ()

int
idmef_source_new_interface (idmef_source_t *ptr,
                            prelude_string_t **ret);

Create a new interface object, children of idmef_source_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_source_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_source_get_node ()

idmef_node_t *
idmef_source_get_node (idmef_source_t *ptr);

Get node children of the idmef_source_t object.

Parameters

ptr

pointer to a idmef_source_t object.

 

Returns

a pointer to a idmef_node_t object, or NULL if the children object is not set.


idmef_source_set_node ()

void
idmef_source_set_node (idmef_source_t *ptr,
                       idmef_node_t *node);

Set node object as a children of ptr . if ptr already contain an node object, then it is destroyed, and updated to point to the provided node object.

Parameters

ptr

pointer to a idmef_source_t object.

 

node

pointer to a idmef_node_t object.

 

idmef_source_new_node ()

int
idmef_source_new_node (idmef_source_t *ptr,
                       idmef_node_t **ret);

Create a new node object, children of idmef_source_t. If ptr already contain a idmef_node_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_source_t object.

 

ret

pointer to an address where to store the created idmef_node_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_source_get_user ()

idmef_user_t *
idmef_source_get_user (idmef_source_t *ptr);

Get user children of the idmef_source_t object.

Parameters

ptr

pointer to a idmef_source_t object.

 

Returns

a pointer to a idmef_user_t object, or NULL if the children object is not set.


idmef_source_set_user ()

void
idmef_source_set_user (idmef_source_t *ptr,
                       idmef_user_t *user);

Set user object as a children of ptr . if ptr already contain an user object, then it is destroyed, and updated to point to the provided user object.

Parameters

ptr

pointer to a idmef_source_t object.

 

user

pointer to a idmef_user_t object.

 

idmef_source_new_user ()

int
idmef_source_new_user (idmef_source_t *ptr,
                       idmef_user_t **ret);

Create a new user object, children of idmef_source_t. If ptr already contain a idmef_user_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_source_t object.

 

ret

pointer to an address where to store the created idmef_user_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_source_get_process ()

idmef_process_t *
idmef_source_get_process (idmef_source_t *ptr);

Get process children of the idmef_source_t object.

Parameters

ptr

pointer to a idmef_source_t object.

 

Returns

a pointer to a idmef_process_t object, or NULL if the children object is not set.


idmef_source_set_process ()

void
idmef_source_set_process (idmef_source_t *ptr,
                          idmef_process_t *process);

Set process object as a children of ptr . if ptr already contain an process object, then it is destroyed, and updated to point to the provided process object.

Parameters

ptr

pointer to a idmef_source_t object.

 

process

pointer to a idmef_process_t object.

 

idmef_source_new_process ()

int
idmef_source_new_process (idmef_source_t *ptr,
                          idmef_process_t **ret);

Create a new process object, children of idmef_source_t. If ptr already contain a idmef_process_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_source_t object.

 

ret

pointer to an address where to store the created idmef_process_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_source_get_service ()

idmef_service_t *
idmef_source_get_service (idmef_source_t *ptr);

Get service children of the idmef_source_t object.

Parameters

ptr

pointer to a idmef_source_t object.

 

Returns

a pointer to a idmef_service_t object, or NULL if the children object is not set.


idmef_source_set_service ()

void
idmef_source_set_service (idmef_source_t *ptr,
                          idmef_service_t *service);

Set service object as a children of ptr . if ptr already contain an service object, then it is destroyed, and updated to point to the provided service object.

Parameters

ptr

pointer to a idmef_source_t object.

 

service

pointer to a idmef_service_t object.

 

idmef_source_new_service ()

int
idmef_source_new_service (idmef_source_t *ptr,
                          idmef_service_t **ret);

Create a new service object, children of idmef_source_t. If ptr already contain a idmef_service_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_source_t object.

 

ret

pointer to an address where to store the created idmef_service_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_access_new ()

int
idmef_file_access_new (idmef_file_access_t **ret);

Create a new idmef_file_access_t object.

Parameters

ret

Pointer where to store the created idmef_file_access_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_file_access_copy ()

int
idmef_file_access_copy (const idmef_file_access_t *src,
                        idmef_file_access_t *dst);

Copy a new idmef_file_access_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_file_access_clone ()

int
idmef_file_access_clone (idmef_file_access_t *src,
                         idmef_file_access_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_file_access_ref ()

idmef_file_access_t *
idmef_file_access_ref (idmef_file_access_t *file_access);

Increase file_access reference count, so that it can be referenced multiple time.

Parameters

file_access

pointer to a idmef_file_access_t object.

 

Returns

a pointer to file_access .


idmef_file_access_destroy ()

void
idmef_file_access_destroy (idmef_file_access_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_file_access_t object.

 

idmef_file_access_get_user_id ()

idmef_user_id_t *
idmef_file_access_get_user_id (idmef_file_access_t *ptr);

Get user_id children of the idmef_file_access_t object.

Parameters

ptr

pointer to a idmef_file_access_t object.

 

Returns

a pointer to a idmef_user_id_t object, or NULL if the children object is not set.


idmef_file_access_set_user_id ()

void
idmef_file_access_set_user_id (idmef_file_access_t *ptr,
                               idmef_user_id_t *user_id);

Set user_id object as a children of ptr . if ptr already contain an user_id object, then it is destroyed, and updated to point to the provided user_id object.

Parameters

ptr

pointer to a idmef_file_access_t object.

 

user_id

pointer to a idmef_user_id_t object.

 

idmef_file_access_new_user_id ()

int
idmef_file_access_new_user_id (idmef_file_access_t *ptr,
                               idmef_user_id_t **ret);

Create a new user_id object, children of idmef_file_access_t. If ptr already contain a idmef_user_id_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_access_t object.

 

ret

pointer to an address where to store the created idmef_user_id_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_access_get_next_permission ()

prelude_string_t *
idmef_file_access_get_next_permission (idmef_file_access_t *file_access,
                                       prelude_string_t *prelude_string_cur);

Get the next prelude_string_t object listed in ptr . When iterating over the prelude_string_t object listed in ptr , object should be set to the latest returned prelude_string_t object.

Parameters

file_access

pointer to a idmef_file_access_t object.

 

prelude_string_cur

pointer to a prelude_string_t object.

 

Returns

the next prelude_string_t in the list.


idmef_file_access_set_permission ()

void
idmef_file_access_set_permission (idmef_file_access_t *ptr,
                                  prelude_string_t *object,
                                  int pos);

Add object to position pos of ptr list of prelude_string_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_file_access_t object.

 

object

pointer to a prelude_string_t object.

 

pos

Position in the list.

 

idmef_file_access_new_permission ()

int
idmef_file_access_new_permission (idmef_file_access_t *ptr,
                                  prelude_string_t **ret,
                                  int pos);

Create a new prelude_string_t children of ptr , and add it to position pos of ptr list of prelude_string_t object. The created prelude_string_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_file_access_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_inode_new ()

int
idmef_inode_new (idmef_inode_t **ret);

Create a new idmef_inode_t object.

Parameters

ret

Pointer where to store the created idmef_inode_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_inode_copy ()

int
idmef_inode_copy (const idmef_inode_t *src,
                  idmef_inode_t *dst);

Copy a new idmef_inode_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_inode_clone ()

int
idmef_inode_clone (idmef_inode_t *src,
                   idmef_inode_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_inode_ref ()

idmef_inode_t *
idmef_inode_ref (idmef_inode_t *inode);

Increase inode reference count, so that it can be referenced multiple time.

Parameters

inode

pointer to a idmef_inode_t object.

 

Returns

a pointer to inode .


idmef_inode_destroy ()

void
idmef_inode_destroy (idmef_inode_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_inode_t object.

 

idmef_inode_get_change_time ()

idmef_time_t *
idmef_inode_get_change_time (idmef_inode_t *ptr);

Get change_time children of the idmef_inode_t object.

Parameters

ptr

pointer to a idmef_inode_t object.

 

Returns

a pointer to a idmef_time_t object, or NULL if the children object is not set.


idmef_inode_set_change_time ()

void
idmef_inode_set_change_time (idmef_inode_t *ptr,
                             idmef_time_t *change_time);

Set change_time object as a children of ptr . if ptr already contain an change_time object, then it is destroyed, and updated to point to the provided change_time object.

Parameters

ptr

pointer to a idmef_inode_t object.

 

change_time

pointer to a idmef_time_t object.

 

idmef_inode_new_change_time ()

int
idmef_inode_new_change_time (idmef_inode_t *ptr,
                             idmef_time_t **ret);

Create a new change_time object, children of idmef_inode_t. If ptr already contain a idmef_time_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_inode_t object.

 

ret

pointer to an address where to store the created idmef_time_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_inode_unset_number ()

void
idmef_inode_unset_number (idmef_inode_t *ptr);

idmef_inode_get_number ()

uint32_t *
idmef_inode_get_number (idmef_inode_t *ptr);

Get number children of the idmef_inode_t object.

Parameters

ptr

pointer to a idmef_inode_t object.

 

Returns

a pointer to a uint32_t object, or NULL if the children object is not set.


idmef_inode_set_number ()

void
idmef_inode_set_number (idmef_inode_t *ptr,
                        uint32_t number);

Set number object as a children of ptr . if ptr already contain an number object, then it is destroyed, and updated to point to the provided number object.

Parameters

ptr

pointer to a idmef_inode_t object.

 

number

pointer to a uint32_t object.

 

idmef_inode_new_number ()

int
idmef_inode_new_number (idmef_inode_t *ptr,
                        uint32_t **ret);

Create a new number object, children of idmef_inode_t. If ptr already contain a uint32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_inode_t object.

 

ret

pointer to an address where to store the created uint32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_inode_unset_major_device ()

void
idmef_inode_unset_major_device (idmef_inode_t *ptr);

idmef_inode_get_major_device ()

uint32_t *
idmef_inode_get_major_device (idmef_inode_t *ptr);

Get major_device children of the idmef_inode_t object.

Parameters

ptr

pointer to a idmef_inode_t object.

 

Returns

a pointer to a uint32_t object, or NULL if the children object is not set.


idmef_inode_set_major_device ()

void
idmef_inode_set_major_device (idmef_inode_t *ptr,
                              uint32_t major_device);

Set major_device object as a children of ptr . if ptr already contain an major_device object, then it is destroyed, and updated to point to the provided major_device object.

Parameters

ptr

pointer to a idmef_inode_t object.

 

major_device

pointer to a uint32_t object.

 

idmef_inode_new_major_device ()

int
idmef_inode_new_major_device (idmef_inode_t *ptr,
                              uint32_t **ret);

Create a new major_device object, children of idmef_inode_t. If ptr already contain a uint32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_inode_t object.

 

ret

pointer to an address where to store the created uint32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_inode_unset_minor_device ()

void
idmef_inode_unset_minor_device (idmef_inode_t *ptr);

idmef_inode_get_minor_device ()

uint32_t *
idmef_inode_get_minor_device (idmef_inode_t *ptr);

Get minor_device children of the idmef_inode_t object.

Parameters

ptr

pointer to a idmef_inode_t object.

 

Returns

a pointer to a uint32_t object, or NULL if the children object is not set.


idmef_inode_set_minor_device ()

void
idmef_inode_set_minor_device (idmef_inode_t *ptr,
                              uint32_t minor_device);

Set minor_device object as a children of ptr . if ptr already contain an minor_device object, then it is destroyed, and updated to point to the provided minor_device object.

Parameters

ptr

pointer to a idmef_inode_t object.

 

minor_device

pointer to a uint32_t object.

 

idmef_inode_new_minor_device ()

int
idmef_inode_new_minor_device (idmef_inode_t *ptr,
                              uint32_t **ret);

Create a new minor_device object, children of idmef_inode_t. If ptr already contain a uint32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_inode_t object.

 

ret

pointer to an address where to store the created uint32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_inode_unset_c_major_device ()

void
idmef_inode_unset_c_major_device (idmef_inode_t *ptr);

idmef_inode_get_c_major_device ()

uint32_t *
idmef_inode_get_c_major_device (idmef_inode_t *ptr);

Get c_major_device children of the idmef_inode_t object.

Parameters

ptr

pointer to a idmef_inode_t object.

 

Returns

a pointer to a uint32_t object, or NULL if the children object is not set.


idmef_inode_set_c_major_device ()

void
idmef_inode_set_c_major_device (idmef_inode_t *ptr,
                                uint32_t c_major_device);

Set c_major_device object as a children of ptr . if ptr already contain an c_major_device object, then it is destroyed, and updated to point to the provided c_major_device object.

Parameters

ptr

pointer to a idmef_inode_t object.

 

c_major_device

pointer to a uint32_t object.

 

idmef_inode_new_c_major_device ()

int
idmef_inode_new_c_major_device (idmef_inode_t *ptr,
                                uint32_t **ret);

Create a new c_major_device object, children of idmef_inode_t. If ptr already contain a uint32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_inode_t object.

 

ret

pointer to an address where to store the created uint32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_inode_unset_c_minor_device ()

void
idmef_inode_unset_c_minor_device (idmef_inode_t *ptr);

idmef_inode_get_c_minor_device ()

uint32_t *
idmef_inode_get_c_minor_device (idmef_inode_t *ptr);

Get c_minor_device children of the idmef_inode_t object.

Parameters

ptr

pointer to a idmef_inode_t object.

 

Returns

a pointer to a uint32_t object, or NULL if the children object is not set.


idmef_inode_set_c_minor_device ()

void
idmef_inode_set_c_minor_device (idmef_inode_t *ptr,
                                uint32_t c_minor_device);

Set c_minor_device object as a children of ptr . if ptr already contain an c_minor_device object, then it is destroyed, and updated to point to the provided c_minor_device object.

Parameters

ptr

pointer to a idmef_inode_t object.

 

c_minor_device

pointer to a uint32_t object.

 

idmef_inode_new_c_minor_device ()

int
idmef_inode_new_c_minor_device (idmef_inode_t *ptr,
                                uint32_t **ret);

Create a new c_minor_device object, children of idmef_inode_t. If ptr already contain a uint32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_inode_t object.

 

ret

pointer to an address where to store the created uint32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_checksum_algorithm_to_numeric ()

idmef_checksum_algorithm_t
idmef_checksum_algorithm_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_checksum_algorithm_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_checksum_algorithm_to_string ()

const char *
idmef_checksum_algorithm_to_string (idmef_checksum_algorithm_t val);

Return the IDMEF string equivalent of val provided idmef_checksum_algorithm_t value.

Parameters

val

an enumeration value for idmef_checksum_algorithm_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_checksum_new ()

int
idmef_checksum_new (idmef_checksum_t **ret);

Create a new idmef_checksum_t object.

Parameters

ret

Pointer where to store the created idmef_checksum_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_checksum_copy ()

int
idmef_checksum_copy (const idmef_checksum_t *src,
                     idmef_checksum_t *dst);

Copy a new idmef_checksum_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_checksum_clone ()

int
idmef_checksum_clone (idmef_checksum_t *src,
                      idmef_checksum_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_checksum_ref ()

idmef_checksum_t *
idmef_checksum_ref (idmef_checksum_t *checksum);

Increase checksum reference count, so that it can be referenced multiple time.

Parameters

checksum

pointer to a idmef_checksum_t object.

 

Returns

a pointer to checksum .


idmef_checksum_destroy ()

void
idmef_checksum_destroy (idmef_checksum_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_checksum_t object.

 

idmef_checksum_get_value ()

prelude_string_t *
idmef_checksum_get_value (idmef_checksum_t *ptr);

Get value children of the idmef_checksum_t object.

Parameters

ptr

pointer to a idmef_checksum_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_checksum_set_value ()

void
idmef_checksum_set_value (idmef_checksum_t *ptr,
                          prelude_string_t *value);

Set value object as a children of ptr . if ptr already contain an value object, then it is destroyed, and updated to point to the provided value object.

Parameters

ptr

pointer to a idmef_checksum_t object.

 

value

pointer to a prelude_string_t object.

 

idmef_checksum_new_value ()

int
idmef_checksum_new_value (idmef_checksum_t *ptr,
                          prelude_string_t **ret);

Create a new value object, children of idmef_checksum_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_checksum_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_checksum_get_key ()

prelude_string_t *
idmef_checksum_get_key (idmef_checksum_t *ptr);

Get key children of the idmef_checksum_t object.

Parameters

ptr

pointer to a idmef_checksum_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_checksum_set_key ()

void
idmef_checksum_set_key (idmef_checksum_t *ptr,
                        prelude_string_t *key);

Set key object as a children of ptr . if ptr already contain an key object, then it is destroyed, and updated to point to the provided key object.

Parameters

ptr

pointer to a idmef_checksum_t object.

 

key

pointer to a prelude_string_t object.

 

idmef_checksum_new_key ()

int
idmef_checksum_new_key (idmef_checksum_t *ptr,
                        prelude_string_t **ret);

Create a new key object, children of idmef_checksum_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_checksum_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_checksum_get_algorithm ()

idmef_checksum_algorithm_t
idmef_checksum_get_algorithm (idmef_checksum_t *ptr);

Get algorithm children of the idmef_checksum_t object.

Parameters

ptr

pointer to a idmef_checksum_t object.

 

Returns

a pointer to a idmef_checksum_algorithm_t object, or NULL if the children object is not set.


idmef_checksum_set_algorithm ()

void
idmef_checksum_set_algorithm (idmef_checksum_t *ptr,
                              idmef_checksum_algorithm_t algorithm);

Set algorithm object as a children of ptr . if ptr already contain an algorithm object, then it is destroyed, and updated to point to the provided algorithm object.

Parameters

ptr

pointer to a idmef_checksum_t object.

 

algorithm

pointer to a idmef_checksum_algorithm_t object.

 

idmef_checksum_new_algorithm ()

int
idmef_checksum_new_algorithm (idmef_checksum_t *ptr,
                              idmef_checksum_algorithm_t **ret);

Create a new algorithm object, children of idmef_checksum_t. If ptr already contain a idmef_checksum_algorithm_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_checksum_t object.

 

ret

pointer to an address where to store the created idmef_checksum_algorithm_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_category_to_numeric ()

idmef_file_category_t
idmef_file_category_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_file_category_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_file_category_to_string ()

const char *
idmef_file_category_to_string (idmef_file_category_t val);

Return the IDMEF string equivalent of val provided idmef_file_category_t value.

Parameters

val

an enumeration value for idmef_file_category_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_file_fstype_to_numeric ()

idmef_file_fstype_t
idmef_file_fstype_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_file_fstype_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_file_fstype_to_string ()

const char *
idmef_file_fstype_to_string (idmef_file_fstype_t val);

Return the IDMEF string equivalent of val provided idmef_file_fstype_t value.

Parameters

val

an enumeration value for idmef_file_fstype_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_file_new ()

int
idmef_file_new (idmef_file_t **ret);

Create a new idmef_file_t object.

Parameters

ret

Pointer where to store the created idmef_file_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_file_copy ()

int
idmef_file_copy (const idmef_file_t *src,
                 idmef_file_t *dst);

Copy a new idmef_file_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_file_clone ()

int
idmef_file_clone (idmef_file_t *src,
                  idmef_file_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_file_ref ()

idmef_file_t *
idmef_file_ref (idmef_file_t *file);

Increase file reference count, so that it can be referenced multiple time.

Parameters

file

pointer to a idmef_file_t object.

 

Returns

a pointer to file .


idmef_file_destroy ()

void
idmef_file_destroy (idmef_file_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_file_t object.

 

idmef_file_get_ident ()

prelude_string_t *
idmef_file_get_ident (idmef_file_t *ptr);

Get ident children of the idmef_file_t object.

Parameters

ptr

pointer to a idmef_file_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_file_set_ident ()

void
idmef_file_set_ident (idmef_file_t *ptr,
                      prelude_string_t *ident);

Set ident object as a children of ptr . if ptr already contain an ident object, then it is destroyed, and updated to point to the provided ident object.

Parameters

ptr

pointer to a idmef_file_t object.

 

ident

pointer to a prelude_string_t object.

 

idmef_file_new_ident ()

int
idmef_file_new_ident (idmef_file_t *ptr,
                      prelude_string_t **ret);

Create a new ident object, children of idmef_file_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_get_name ()

prelude_string_t *
idmef_file_get_name (idmef_file_t *ptr);

Get name children of the idmef_file_t object.

Parameters

ptr

pointer to a idmef_file_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_file_set_name ()

void
idmef_file_set_name (idmef_file_t *ptr,
                     prelude_string_t *name);

Set name object as a children of ptr . if ptr already contain an name object, then it is destroyed, and updated to point to the provided name object.

Parameters

ptr

pointer to a idmef_file_t object.

 

name

pointer to a prelude_string_t object.

 

idmef_file_new_name ()

int
idmef_file_new_name (idmef_file_t *ptr,
                     prelude_string_t **ret);

Create a new name object, children of idmef_file_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_get_path ()

prelude_string_t *
idmef_file_get_path (idmef_file_t *ptr);

Get path children of the idmef_file_t object.

Parameters

ptr

pointer to a idmef_file_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_file_set_path ()

void
idmef_file_set_path (idmef_file_t *ptr,
                     prelude_string_t *path);

Set path object as a children of ptr . if ptr already contain an path object, then it is destroyed, and updated to point to the provided path object.

Parameters

ptr

pointer to a idmef_file_t object.

 

path

pointer to a prelude_string_t object.

 

idmef_file_new_path ()

int
idmef_file_new_path (idmef_file_t *ptr,
                     prelude_string_t **ret);

Create a new path object, children of idmef_file_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_get_create_time ()

idmef_time_t *
idmef_file_get_create_time (idmef_file_t *ptr);

Get create_time children of the idmef_file_t object.

Parameters

ptr

pointer to a idmef_file_t object.

 

Returns

a pointer to a idmef_time_t object, or NULL if the children object is not set.


idmef_file_set_create_time ()

void
idmef_file_set_create_time (idmef_file_t *ptr,
                            idmef_time_t *create_time);

Set create_time object as a children of ptr . if ptr already contain an create_time object, then it is destroyed, and updated to point to the provided create_time object.

Parameters

ptr

pointer to a idmef_file_t object.

 

create_time

pointer to a idmef_time_t object.

 

idmef_file_new_create_time ()

int
idmef_file_new_create_time (idmef_file_t *ptr,
                            idmef_time_t **ret);

Create a new create_time object, children of idmef_file_t. If ptr already contain a idmef_time_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created idmef_time_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_get_modify_time ()

idmef_time_t *
idmef_file_get_modify_time (idmef_file_t *ptr);

Get modify_time children of the idmef_file_t object.

Parameters

ptr

pointer to a idmef_file_t object.

 

Returns

a pointer to a idmef_time_t object, or NULL if the children object is not set.


idmef_file_set_modify_time ()

void
idmef_file_set_modify_time (idmef_file_t *ptr,
                            idmef_time_t *modify_time);

Set modify_time object as a children of ptr . if ptr already contain an modify_time object, then it is destroyed, and updated to point to the provided modify_time object.

Parameters

ptr

pointer to a idmef_file_t object.

 

modify_time

pointer to a idmef_time_t object.

 

idmef_file_new_modify_time ()

int
idmef_file_new_modify_time (idmef_file_t *ptr,
                            idmef_time_t **ret);

Create a new modify_time object, children of idmef_file_t. If ptr already contain a idmef_time_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created idmef_time_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_get_access_time ()

idmef_time_t *
idmef_file_get_access_time (idmef_file_t *ptr);

Get access_time children of the idmef_file_t object.

Parameters

ptr

pointer to a idmef_file_t object.

 

Returns

a pointer to a idmef_time_t object, or NULL if the children object is not set.


idmef_file_set_access_time ()

void
idmef_file_set_access_time (idmef_file_t *ptr,
                            idmef_time_t *access_time);

Set access_time object as a children of ptr . if ptr already contain an access_time object, then it is destroyed, and updated to point to the provided access_time object.

Parameters

ptr

pointer to a idmef_file_t object.

 

access_time

pointer to a idmef_time_t object.

 

idmef_file_new_access_time ()

int
idmef_file_new_access_time (idmef_file_t *ptr,
                            idmef_time_t **ret);

Create a new access_time object, children of idmef_file_t. If ptr already contain a idmef_time_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created idmef_time_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_unset_data_size ()

void
idmef_file_unset_data_size (idmef_file_t *ptr);

idmef_file_get_data_size ()

uint64_t *
idmef_file_get_data_size (idmef_file_t *ptr);

Get data_size children of the idmef_file_t object.

Parameters

ptr

pointer to a idmef_file_t object.

 

Returns

a pointer to a uint64_t object, or NULL if the children object is not set.


idmef_file_set_data_size ()

void
idmef_file_set_data_size (idmef_file_t *ptr,
                          uint64_t data_size);

Set data_size object as a children of ptr . if ptr already contain an data_size object, then it is destroyed, and updated to point to the provided data_size object.

Parameters

ptr

pointer to a idmef_file_t object.

 

data_size

pointer to a uint64_t object.

 

idmef_file_new_data_size ()

int
idmef_file_new_data_size (idmef_file_t *ptr,
                          uint64_t **ret);

Create a new data_size object, children of idmef_file_t. If ptr already contain a uint64_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created uint64_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_unset_disk_size ()

void
idmef_file_unset_disk_size (idmef_file_t *ptr);

idmef_file_get_disk_size ()

uint64_t *
idmef_file_get_disk_size (idmef_file_t *ptr);

Get disk_size children of the idmef_file_t object.

Parameters

ptr

pointer to a idmef_file_t object.

 

Returns

a pointer to a uint64_t object, or NULL if the children object is not set.


idmef_file_set_disk_size ()

void
idmef_file_set_disk_size (idmef_file_t *ptr,
                          uint64_t disk_size);

Set disk_size object as a children of ptr . if ptr already contain an disk_size object, then it is destroyed, and updated to point to the provided disk_size object.

Parameters

ptr

pointer to a idmef_file_t object.

 

disk_size

pointer to a uint64_t object.

 

idmef_file_new_disk_size ()

int
idmef_file_new_disk_size (idmef_file_t *ptr,
                          uint64_t **ret);

Create a new disk_size object, children of idmef_file_t. If ptr already contain a uint64_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created uint64_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_get_next_file_access ()

idmef_file_access_t *
idmef_file_get_next_file_access (idmef_file_t *file,
                                 idmef_file_access_t *file_access_cur);

Get the next idmef_file_access_t object listed in ptr . When iterating over the idmef_file_access_t object listed in ptr , object should be set to the latest returned idmef_file_access_t object.

Parameters

file

pointer to a idmef_file_t object.

 

file_access_cur

pointer to a idmef_file_access_t object.

 

Returns

the next idmef_file_access_t in the list.


idmef_file_set_file_access ()

void
idmef_file_set_file_access (idmef_file_t *ptr,
                            idmef_file_access_t *object,
                            int pos);

Add object to position pos of ptr list of idmef_file_access_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_file_t object.

 

object

pointer to a idmef_file_access_t object.

 

pos

Position in the list.

 

idmef_file_new_file_access ()

int
idmef_file_new_file_access (idmef_file_t *ptr,
                            idmef_file_access_t **ret,
                            int pos);

Create a new idmef_file_access_t children of ptr , and add it to position pos of ptr list of idmef_file_access_t object. The created idmef_file_access_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created idmef_file_access_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_get_next_linkage ()

idmef_linkage_t *
idmef_file_get_next_linkage (idmef_file_t *file,
                             idmef_linkage_t *linkage_cur);

Get the next idmef_linkage_t object listed in ptr . When iterating over the idmef_linkage_t object listed in ptr , object should be set to the latest returned idmef_linkage_t object.

Parameters

file

pointer to a idmef_file_t object.

 

linkage_cur

pointer to a idmef_linkage_t object.

 

Returns

the next idmef_linkage_t in the list.


idmef_file_set_linkage ()

void
idmef_file_set_linkage (idmef_file_t *ptr,
                        idmef_linkage_t *object,
                        int pos);

Add object to position pos of ptr list of idmef_linkage_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_file_t object.

 

object

pointer to a idmef_linkage_t object.

 

pos

Position in the list.

 

idmef_file_new_linkage ()

int
idmef_file_new_linkage (idmef_file_t *ptr,
                        idmef_linkage_t **ret,
                        int pos);

Create a new idmef_linkage_t children of ptr , and add it to position pos of ptr list of idmef_linkage_t object. The created idmef_linkage_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created idmef_linkage_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_get_inode ()

idmef_inode_t *
idmef_file_get_inode (idmef_file_t *ptr);

Get inode children of the idmef_file_t object.

Parameters

ptr

pointer to a idmef_file_t object.

 

Returns

a pointer to a idmef_inode_t object, or NULL if the children object is not set.


idmef_file_set_inode ()

void
idmef_file_set_inode (idmef_file_t *ptr,
                      idmef_inode_t *inode);

Set inode object as a children of ptr . if ptr already contain an inode object, then it is destroyed, and updated to point to the provided inode object.

Parameters

ptr

pointer to a idmef_file_t object.

 

inode

pointer to a idmef_inode_t object.

 

idmef_file_new_inode ()

int
idmef_file_new_inode (idmef_file_t *ptr,
                      idmef_inode_t **ret);

Create a new inode object, children of idmef_file_t. If ptr already contain a idmef_inode_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created idmef_inode_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_get_next_checksum ()

idmef_checksum_t *
idmef_file_get_next_checksum (idmef_file_t *file,
                              idmef_checksum_t *checksum_cur);

Get the next idmef_checksum_t object listed in ptr . When iterating over the idmef_checksum_t object listed in ptr , object should be set to the latest returned idmef_checksum_t object.

Parameters

file

pointer to a idmef_file_t object.

 

checksum_cur

pointer to a idmef_checksum_t object.

 

Returns

the next idmef_checksum_t in the list.


idmef_file_set_checksum ()

void
idmef_file_set_checksum (idmef_file_t *ptr,
                         idmef_checksum_t *object,
                         int pos);

Add object to position pos of ptr list of idmef_checksum_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_file_t object.

 

object

pointer to a idmef_checksum_t object.

 

pos

Position in the list.

 

idmef_file_new_checksum ()

int
idmef_file_new_checksum (idmef_file_t *ptr,
                         idmef_checksum_t **ret,
                         int pos);

Create a new idmef_checksum_t children of ptr , and add it to position pos of ptr list of idmef_checksum_t object. The created idmef_checksum_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created idmef_checksum_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_get_category ()

idmef_file_category_t
idmef_file_get_category (idmef_file_t *ptr);

Get category children of the idmef_file_t object.

Parameters

ptr

pointer to a idmef_file_t object.

 

Returns

a pointer to a idmef_file_category_t object, or NULL if the children object is not set.


idmef_file_set_category ()

void
idmef_file_set_category (idmef_file_t *ptr,
                         idmef_file_category_t category);

Set category object as a children of ptr . if ptr already contain an category object, then it is destroyed, and updated to point to the provided category object.

Parameters

ptr

pointer to a idmef_file_t object.

 

category

pointer to a idmef_file_category_t object.

 

idmef_file_new_category ()

int
idmef_file_new_category (idmef_file_t *ptr,
                         idmef_file_category_t **ret);

Create a new category object, children of idmef_file_t. If ptr already contain a idmef_file_category_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created idmef_file_category_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_unset_fstype ()

void
idmef_file_unset_fstype (idmef_file_t *ptr);

idmef_file_get_fstype ()

idmef_file_fstype_t *
idmef_file_get_fstype (idmef_file_t *ptr);

Get fstype children of the idmef_file_t object.

Parameters

ptr

pointer to a idmef_file_t object.

 

Returns

a pointer to a idmef_file_fstype_t object, or NULL if the children object is not set.


idmef_file_set_fstype ()

void
idmef_file_set_fstype (idmef_file_t *ptr,
                       idmef_file_fstype_t fstype);

Set fstype object as a children of ptr . if ptr already contain an fstype object, then it is destroyed, and updated to point to the provided fstype object.

Parameters

ptr

pointer to a idmef_file_t object.

 

fstype

pointer to a idmef_file_fstype_t object.

 

idmef_file_new_fstype ()

int
idmef_file_new_fstype (idmef_file_t *ptr,
                       idmef_file_fstype_t **ret);

Create a new fstype object, children of idmef_file_t. If ptr already contain a idmef_file_fstype_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created idmef_file_fstype_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_file_get_file_type ()

prelude_string_t *
idmef_file_get_file_type (idmef_file_t *ptr);

Get file_type children of the idmef_file_t object.

Parameters

ptr

pointer to a idmef_file_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_file_set_file_type ()

void
idmef_file_set_file_type (idmef_file_t *ptr,
                          prelude_string_t *file_type);

Set file_type object as a children of ptr . if ptr already contain an file_type object, then it is destroyed, and updated to point to the provided file_type object.

Parameters

ptr

pointer to a idmef_file_t object.

 

file_type

pointer to a prelude_string_t object.

 

idmef_file_new_file_type ()

int
idmef_file_new_file_type (idmef_file_t *ptr,
                          prelude_string_t **ret);

Create a new file_type object, children of idmef_file_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_file_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_linkage_category_to_numeric ()

idmef_linkage_category_t
idmef_linkage_category_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_linkage_category_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_linkage_category_to_string ()

const char *
idmef_linkage_category_to_string (idmef_linkage_category_t val);

Return the IDMEF string equivalent of val provided idmef_linkage_category_t value.

Parameters

val

an enumeration value for idmef_linkage_category_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_linkage_new ()

int
idmef_linkage_new (idmef_linkage_t **ret);

Create a new idmef_linkage_t object.

Parameters

ret

Pointer where to store the created idmef_linkage_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_linkage_copy ()

int
idmef_linkage_copy (const idmef_linkage_t *src,
                    idmef_linkage_t *dst);

Copy a new idmef_linkage_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_linkage_clone ()

int
idmef_linkage_clone (idmef_linkage_t *src,
                     idmef_linkage_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_linkage_ref ()

idmef_linkage_t *
idmef_linkage_ref (idmef_linkage_t *linkage);

Increase linkage reference count, so that it can be referenced multiple time.

Parameters

linkage

pointer to a idmef_linkage_t object.

 

Returns

a pointer to linkage .


idmef_linkage_destroy ()

void
idmef_linkage_destroy (idmef_linkage_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

idmef_linkage_get_category ()

idmef_linkage_category_t
idmef_linkage_get_category (idmef_linkage_t *ptr);

Get category children of the idmef_linkage_t object.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

Returns

a pointer to a idmef_linkage_category_t object, or NULL if the children object is not set.


idmef_linkage_set_category ()

void
idmef_linkage_set_category (idmef_linkage_t *ptr,
                            idmef_linkage_category_t category);

Set category object as a children of ptr . if ptr already contain an category object, then it is destroyed, and updated to point to the provided category object.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

category

pointer to a idmef_linkage_category_t object.

 

idmef_linkage_new_category ()

int
idmef_linkage_new_category (idmef_linkage_t *ptr,
                            idmef_linkage_category_t **ret);

Create a new category object, children of idmef_linkage_t. If ptr already contain a idmef_linkage_category_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

ret

pointer to an address where to store the created idmef_linkage_category_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_linkage_get_name ()

prelude_string_t *
idmef_linkage_get_name (idmef_linkage_t *ptr);

Get name children of the idmef_linkage_t object.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_linkage_set_name ()

void
idmef_linkage_set_name (idmef_linkage_t *ptr,
                        prelude_string_t *name);

Set name object as a children of ptr . if ptr already contain an name object, then it is destroyed, and updated to point to the provided name object.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

name

pointer to a prelude_string_t object.

 

idmef_linkage_new_name ()

int
idmef_linkage_new_name (idmef_linkage_t *ptr,
                        prelude_string_t **ret);

Create a new name object, children of idmef_linkage_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_linkage_get_path ()

prelude_string_t *
idmef_linkage_get_path (idmef_linkage_t *ptr);

Get path children of the idmef_linkage_t object.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_linkage_set_path ()

void
idmef_linkage_set_path (idmef_linkage_t *ptr,
                        prelude_string_t *path);

Set path object as a children of ptr . if ptr already contain an path object, then it is destroyed, and updated to point to the provided path object.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

path

pointer to a prelude_string_t object.

 

idmef_linkage_new_path ()

int
idmef_linkage_new_path (idmef_linkage_t *ptr,
                        prelude_string_t **ret);

Create a new path object, children of idmef_linkage_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_linkage_get_file ()

idmef_file_t *
idmef_linkage_get_file (idmef_linkage_t *ptr);

Get file children of the idmef_linkage_t object.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

Returns

a pointer to a idmef_file_t object, or NULL if the children object is not set.


idmef_linkage_set_file ()

void
idmef_linkage_set_file (idmef_linkage_t *ptr,
                        idmef_file_t *file);

Set file object as a children of ptr . if ptr already contain an file object, then it is destroyed, and updated to point to the provided file object.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

file

pointer to a idmef_file_t object.

 

idmef_linkage_new_file ()

int
idmef_linkage_new_file (idmef_linkage_t *ptr,
                        idmef_file_t **ret);

Create a new file object, children of idmef_linkage_t. If ptr already contain a idmef_file_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_linkage_t object.

 

ret

pointer to an address where to store the created idmef_file_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_target_decoy_to_numeric ()

idmef_target_decoy_t
idmef_target_decoy_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_target_decoy_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_target_decoy_to_string ()

const char *
idmef_target_decoy_to_string (idmef_target_decoy_t val);

Return the IDMEF string equivalent of val provided idmef_target_decoy_t value.

Parameters

val

an enumeration value for idmef_target_decoy_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_target_new ()

int
idmef_target_new (idmef_target_t **ret);

Create a new idmef_target_t object.

Parameters

ret

Pointer where to store the created idmef_target_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_target_copy ()

int
idmef_target_copy (const idmef_target_t *src,
                   idmef_target_t *dst);

Copy a new idmef_target_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_target_clone ()

int
idmef_target_clone (idmef_target_t *src,
                    idmef_target_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_target_ref ()

idmef_target_t *
idmef_target_ref (idmef_target_t *target);

Increase target reference count, so that it can be referenced multiple time.

Parameters

target

pointer to a idmef_target_t object.

 

Returns

a pointer to target .


idmef_target_destroy ()

void
idmef_target_destroy (idmef_target_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_target_t object.

 

idmef_target_get_ident ()

prelude_string_t *
idmef_target_get_ident (idmef_target_t *ptr);

Get ident children of the idmef_target_t object.

Parameters

ptr

pointer to a idmef_target_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_target_set_ident ()

void
idmef_target_set_ident (idmef_target_t *ptr,
                        prelude_string_t *ident);

Set ident object as a children of ptr . if ptr already contain an ident object, then it is destroyed, and updated to point to the provided ident object.

Parameters

ptr

pointer to a idmef_target_t object.

 

ident

pointer to a prelude_string_t object.

 

idmef_target_new_ident ()

int
idmef_target_new_ident (idmef_target_t *ptr,
                        prelude_string_t **ret);

Create a new ident object, children of idmef_target_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_target_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_target_get_decoy ()

idmef_target_decoy_t
idmef_target_get_decoy (idmef_target_t *ptr);

Get decoy children of the idmef_target_t object.

Parameters

ptr

pointer to a idmef_target_t object.

 

Returns

a pointer to a idmef_target_decoy_t object, or NULL if the children object is not set.


idmef_target_set_decoy ()

void
idmef_target_set_decoy (idmef_target_t *ptr,
                        idmef_target_decoy_t decoy);

Set decoy object as a children of ptr . if ptr already contain an decoy object, then it is destroyed, and updated to point to the provided decoy object.

Parameters

ptr

pointer to a idmef_target_t object.

 

decoy

pointer to a idmef_target_decoy_t object.

 

idmef_target_new_decoy ()

int
idmef_target_new_decoy (idmef_target_t *ptr,
                        idmef_target_decoy_t **ret);

Create a new decoy object, children of idmef_target_t. If ptr already contain a idmef_target_decoy_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_target_t object.

 

ret

pointer to an address where to store the created idmef_target_decoy_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_target_get_interface ()

prelude_string_t *
idmef_target_get_interface (idmef_target_t *ptr);

Get interface children of the idmef_target_t object.

Parameters

ptr

pointer to a idmef_target_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_target_set_interface ()

void
idmef_target_set_interface (idmef_target_t *ptr,
                            prelude_string_t *interface);

Set interface object as a children of ptr . if ptr already contain an interface object, then it is destroyed, and updated to point to the provided interface object.

Parameters

ptr

pointer to a idmef_target_t object.

 

interface

pointer to a prelude_string_t object.

 

idmef_target_new_interface ()

int
idmef_target_new_interface (idmef_target_t *ptr,
                            prelude_string_t **ret);

Create a new interface object, children of idmef_target_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_target_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_target_get_node ()

idmef_node_t *
idmef_target_get_node (idmef_target_t *ptr);

Get node children of the idmef_target_t object.

Parameters

ptr

pointer to a idmef_target_t object.

 

Returns

a pointer to a idmef_node_t object, or NULL if the children object is not set.


idmef_target_set_node ()

void
idmef_target_set_node (idmef_target_t *ptr,
                       idmef_node_t *node);

Set node object as a children of ptr . if ptr already contain an node object, then it is destroyed, and updated to point to the provided node object.

Parameters

ptr

pointer to a idmef_target_t object.

 

node

pointer to a idmef_node_t object.

 

idmef_target_new_node ()

int
idmef_target_new_node (idmef_target_t *ptr,
                       idmef_node_t **ret);

Create a new node object, children of idmef_target_t. If ptr already contain a idmef_node_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_target_t object.

 

ret

pointer to an address where to store the created idmef_node_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_target_get_user ()

idmef_user_t *
idmef_target_get_user (idmef_target_t *ptr);

Get user children of the idmef_target_t object.

Parameters

ptr

pointer to a idmef_target_t object.

 

Returns

a pointer to a idmef_user_t object, or NULL if the children object is not set.


idmef_target_set_user ()

void
idmef_target_set_user (idmef_target_t *ptr,
                       idmef_user_t *user);

Set user object as a children of ptr . if ptr already contain an user object, then it is destroyed, and updated to point to the provided user object.

Parameters

ptr

pointer to a idmef_target_t object.

 

user

pointer to a idmef_user_t object.

 

idmef_target_new_user ()

int
idmef_target_new_user (idmef_target_t *ptr,
                       idmef_user_t **ret);

Create a new user object, children of idmef_target_t. If ptr already contain a idmef_user_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_target_t object.

 

ret

pointer to an address where to store the created idmef_user_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_target_get_process ()

idmef_process_t *
idmef_target_get_process (idmef_target_t *ptr);

Get process children of the idmef_target_t object.

Parameters

ptr

pointer to a idmef_target_t object.

 

Returns

a pointer to a idmef_process_t object, or NULL if the children object is not set.


idmef_target_set_process ()

void
idmef_target_set_process (idmef_target_t *ptr,
                          idmef_process_t *process);

Set process object as a children of ptr . if ptr already contain an process object, then it is destroyed, and updated to point to the provided process object.

Parameters

ptr

pointer to a idmef_target_t object.

 

process

pointer to a idmef_process_t object.

 

idmef_target_new_process ()

int
idmef_target_new_process (idmef_target_t *ptr,
                          idmef_process_t **ret);

Create a new process object, children of idmef_target_t. If ptr already contain a idmef_process_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_target_t object.

 

ret

pointer to an address where to store the created idmef_process_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_target_get_service ()

idmef_service_t *
idmef_target_get_service (idmef_target_t *ptr);

Get service children of the idmef_target_t object.

Parameters

ptr

pointer to a idmef_target_t object.

 

Returns

a pointer to a idmef_service_t object, or NULL if the children object is not set.


idmef_target_set_service ()

void
idmef_target_set_service (idmef_target_t *ptr,
                          idmef_service_t *service);

Set service object as a children of ptr . if ptr already contain an service object, then it is destroyed, and updated to point to the provided service object.

Parameters

ptr

pointer to a idmef_target_t object.

 

service

pointer to a idmef_service_t object.

 

idmef_target_new_service ()

int
idmef_target_new_service (idmef_target_t *ptr,
                          idmef_service_t **ret);

Create a new service object, children of idmef_target_t. If ptr already contain a idmef_service_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_target_t object.

 

ret

pointer to an address where to store the created idmef_service_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_target_get_next_file ()

idmef_file_t *
idmef_target_get_next_file (idmef_target_t *target,
                            idmef_file_t *file_cur);

Get the next idmef_file_t object listed in ptr . When iterating over the idmef_file_t object listed in ptr , object should be set to the latest returned idmef_file_t object.

Parameters

target

pointer to a idmef_target_t object.

 

file_cur

pointer to a idmef_file_t object.

 

Returns

the next idmef_file_t in the list.


idmef_target_set_file ()

void
idmef_target_set_file (idmef_target_t *ptr,
                       idmef_file_t *object,
                       int pos);

Add object to position pos of ptr list of idmef_file_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_target_t object.

 

object

pointer to a idmef_file_t object.

 

pos

Position in the list.

 

idmef_target_new_file ()

int
idmef_target_new_file (idmef_target_t *ptr,
                       idmef_file_t **ret,
                       int pos);

Create a new idmef_file_t children of ptr , and add it to position pos of ptr list of idmef_file_t object. The created idmef_file_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_target_t object.

 

ret

pointer to an address where to store the created idmef_file_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_analyzer_new ()

int
idmef_analyzer_new (idmef_analyzer_t **ret);

Create a new idmef_analyzer_t object.

Parameters

ret

Pointer where to store the created idmef_analyzer_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_analyzer_copy ()

int
idmef_analyzer_copy (const idmef_analyzer_t *src,
                     idmef_analyzer_t *dst);

Copy a new idmef_analyzer_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_analyzer_clone ()

int
idmef_analyzer_clone (idmef_analyzer_t *src,
                      idmef_analyzer_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_analyzer_ref ()

idmef_analyzer_t *
idmef_analyzer_ref (idmef_analyzer_t *analyzer);

Increase analyzer reference count, so that it can be referenced multiple time.

Parameters

analyzer

pointer to a idmef_analyzer_t object.

 

Returns

a pointer to analyzer .


idmef_analyzer_destroy ()

void
idmef_analyzer_destroy (idmef_analyzer_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

idmef_analyzer_get_analyzerid ()

prelude_string_t *
idmef_analyzer_get_analyzerid (idmef_analyzer_t *ptr);

Get analyzerid children of the idmef_analyzer_t object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_analyzer_set_analyzerid ()

void
idmef_analyzer_set_analyzerid (idmef_analyzer_t *ptr,
                               prelude_string_t *analyzerid);

Set analyzerid object as a children of ptr . if ptr already contain an analyzerid object, then it is destroyed, and updated to point to the provided analyzerid object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

analyzerid

pointer to a prelude_string_t object.

 

idmef_analyzer_new_analyzerid ()

int
idmef_analyzer_new_analyzerid (idmef_analyzer_t *ptr,
                               prelude_string_t **ret);

Create a new analyzerid object, children of idmef_analyzer_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_analyzer_get_name ()

prelude_string_t *
idmef_analyzer_get_name (idmef_analyzer_t *ptr);

Get name children of the idmef_analyzer_t object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_analyzer_set_name ()

void
idmef_analyzer_set_name (idmef_analyzer_t *ptr,
                         prelude_string_t *name);

Set name object as a children of ptr . if ptr already contain an name object, then it is destroyed, and updated to point to the provided name object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

name

pointer to a prelude_string_t object.

 

idmef_analyzer_new_name ()

int
idmef_analyzer_new_name (idmef_analyzer_t *ptr,
                         prelude_string_t **ret);

Create a new name object, children of idmef_analyzer_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_analyzer_get_manufacturer ()

prelude_string_t *
idmef_analyzer_get_manufacturer (idmef_analyzer_t *ptr);

Get manufacturer children of the idmef_analyzer_t object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_analyzer_set_manufacturer ()

void
idmef_analyzer_set_manufacturer (idmef_analyzer_t *ptr,
                                 prelude_string_t *manufacturer);

Set manufacturer object as a children of ptr . if ptr already contain an manufacturer object, then it is destroyed, and updated to point to the provided manufacturer object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

manufacturer

pointer to a prelude_string_t object.

 

idmef_analyzer_new_manufacturer ()

int
idmef_analyzer_new_manufacturer (idmef_analyzer_t *ptr,
                                 prelude_string_t **ret);

Create a new manufacturer object, children of idmef_analyzer_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_analyzer_get_model ()

prelude_string_t *
idmef_analyzer_get_model (idmef_analyzer_t *ptr);

Get model children of the idmef_analyzer_t object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_analyzer_set_model ()

void
idmef_analyzer_set_model (idmef_analyzer_t *ptr,
                          prelude_string_t *model);

Set model object as a children of ptr . if ptr already contain an model object, then it is destroyed, and updated to point to the provided model object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

model

pointer to a prelude_string_t object.

 

idmef_analyzer_new_model ()

int
idmef_analyzer_new_model (idmef_analyzer_t *ptr,
                          prelude_string_t **ret);

Create a new model object, children of idmef_analyzer_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_analyzer_get_version ()

prelude_string_t *
idmef_analyzer_get_version (idmef_analyzer_t *ptr);

Get version children of the idmef_analyzer_t object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_analyzer_set_version ()

void
idmef_analyzer_set_version (idmef_analyzer_t *ptr,
                            prelude_string_t *version);

Set version object as a children of ptr . if ptr already contain an version object, then it is destroyed, and updated to point to the provided version object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

version

pointer to a prelude_string_t object.

 

idmef_analyzer_new_version ()

int
idmef_analyzer_new_version (idmef_analyzer_t *ptr,
                            prelude_string_t **ret);

Create a new version object, children of idmef_analyzer_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_analyzer_get_class ()

prelude_string_t *
idmef_analyzer_get_class (idmef_analyzer_t *ptr);

Get class children of the idmef_analyzer_t object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_analyzer_set_class ()

void
idmef_analyzer_set_class (idmef_analyzer_t *ptr,
                          prelude_string_t *class_str);

Set class_str object as a children of ptr . if ptr already contain an class_str object, then it is destroyed, and updated to point to the provided class_str object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

class_str

pointer to a prelude_string_t object.

 

idmef_analyzer_new_class ()

int
idmef_analyzer_new_class (idmef_analyzer_t *ptr,
                          prelude_string_t **ret);

Create a new class object, children of idmef_analyzer_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_analyzer_get_ostype ()

prelude_string_t *
idmef_analyzer_get_ostype (idmef_analyzer_t *ptr);

Get ostype children of the idmef_analyzer_t object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_analyzer_set_ostype ()

void
idmef_analyzer_set_ostype (idmef_analyzer_t *ptr,
                           prelude_string_t *ostype);

Set ostype object as a children of ptr . if ptr already contain an ostype object, then it is destroyed, and updated to point to the provided ostype object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

ostype

pointer to a prelude_string_t object.

 

idmef_analyzer_new_ostype ()

int
idmef_analyzer_new_ostype (idmef_analyzer_t *ptr,
                           prelude_string_t **ret);

Create a new ostype object, children of idmef_analyzer_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_analyzer_get_osversion ()

prelude_string_t *
idmef_analyzer_get_osversion (idmef_analyzer_t *ptr);

Get osversion children of the idmef_analyzer_t object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_analyzer_set_osversion ()

void
idmef_analyzer_set_osversion (idmef_analyzer_t *ptr,
                              prelude_string_t *osversion);

Set osversion object as a children of ptr . if ptr already contain an osversion object, then it is destroyed, and updated to point to the provided osversion object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

osversion

pointer to a prelude_string_t object.

 

idmef_analyzer_new_osversion ()

int
idmef_analyzer_new_osversion (idmef_analyzer_t *ptr,
                              prelude_string_t **ret);

Create a new osversion object, children of idmef_analyzer_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_analyzer_get_node ()

idmef_node_t *
idmef_analyzer_get_node (idmef_analyzer_t *ptr);

Get node children of the idmef_analyzer_t object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

Returns

a pointer to a idmef_node_t object, or NULL if the children object is not set.


idmef_analyzer_set_node ()

void
idmef_analyzer_set_node (idmef_analyzer_t *ptr,
                         idmef_node_t *node);

Set node object as a children of ptr . if ptr already contain an node object, then it is destroyed, and updated to point to the provided node object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

node

pointer to a idmef_node_t object.

 

idmef_analyzer_new_node ()

int
idmef_analyzer_new_node (idmef_analyzer_t *ptr,
                         idmef_node_t **ret);

Create a new node object, children of idmef_analyzer_t. If ptr already contain a idmef_node_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

ret

pointer to an address where to store the created idmef_node_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_analyzer_get_process ()

idmef_process_t *
idmef_analyzer_get_process (idmef_analyzer_t *ptr);

Get process children of the idmef_analyzer_t object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

Returns

a pointer to a idmef_process_t object, or NULL if the children object is not set.


idmef_analyzer_set_process ()

void
idmef_analyzer_set_process (idmef_analyzer_t *ptr,
                            idmef_process_t *process);

Set process object as a children of ptr . if ptr already contain an process object, then it is destroyed, and updated to point to the provided process object.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

process

pointer to a idmef_process_t object.

 

idmef_analyzer_new_process ()

int
idmef_analyzer_new_process (idmef_analyzer_t *ptr,
                            idmef_process_t **ret);

Create a new process object, children of idmef_analyzer_t. If ptr already contain a idmef_process_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_analyzer_t object.

 

ret

pointer to an address where to store the created idmef_process_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alertident_new ()

int
idmef_alertident_new (idmef_alertident_t **ret);

Create a new idmef_alertident_t object.

Parameters

ret

Pointer where to store the created idmef_alertident_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_alertident_copy ()

int
idmef_alertident_copy (const idmef_alertident_t *src,
                       idmef_alertident_t *dst);

Copy a new idmef_alertident_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_alertident_clone ()

int
idmef_alertident_clone (idmef_alertident_t *src,
                        idmef_alertident_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_alertident_ref ()

idmef_alertident_t *
idmef_alertident_ref (idmef_alertident_t *alertident);

Increase alertident reference count, so that it can be referenced multiple time.

Parameters

alertident

pointer to a idmef_alertident_t object.

 

Returns

a pointer to alertident .


idmef_alertident_destroy ()

void
idmef_alertident_destroy (idmef_alertident_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_alertident_t object.

 

idmef_alertident_get_alertident ()

prelude_string_t *
idmef_alertident_get_alertident (idmef_alertident_t *ptr);

Get alertident children of the idmef_alertident_t object.

Parameters

ptr

pointer to a idmef_alertident_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_alertident_set_alertident ()

void
idmef_alertident_set_alertident (idmef_alertident_t *ptr,
                                 prelude_string_t *alertident);

Set alertident object as a children of ptr . if ptr already contain an alertident object, then it is destroyed, and updated to point to the provided alertident object.

Parameters

ptr

pointer to a idmef_alertident_t object.

 

alertident

pointer to a prelude_string_t object.

 

idmef_alertident_new_alertident ()

int
idmef_alertident_new_alertident (idmef_alertident_t *ptr,
                                 prelude_string_t **ret);

Create a new alertident object, children of idmef_alertident_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_alertident_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alertident_get_analyzerid ()

prelude_string_t *
idmef_alertident_get_analyzerid (idmef_alertident_t *ptr);

Get analyzerid children of the idmef_alertident_t object.

Parameters

ptr

pointer to a idmef_alertident_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_alertident_set_analyzerid ()

void
idmef_alertident_set_analyzerid (idmef_alertident_t *ptr,
                                 prelude_string_t *analyzerid);

Set analyzerid object as a children of ptr . if ptr already contain an analyzerid object, then it is destroyed, and updated to point to the provided analyzerid object.

Parameters

ptr

pointer to a idmef_alertident_t object.

 

analyzerid

pointer to a prelude_string_t object.

 

idmef_alertident_new_analyzerid ()

int
idmef_alertident_new_analyzerid (idmef_alertident_t *ptr,
                                 prelude_string_t **ret);

Create a new analyzerid object, children of idmef_alertident_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_alertident_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_impact_severity_to_numeric ()

idmef_impact_severity_t
idmef_impact_severity_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_impact_severity_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_impact_severity_to_string ()

const char *
idmef_impact_severity_to_string (idmef_impact_severity_t val);

Return the IDMEF string equivalent of val provided idmef_impact_severity_t value.

Parameters

val

an enumeration value for idmef_impact_severity_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_impact_completion_to_numeric ()

idmef_impact_completion_t
idmef_impact_completion_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_impact_completion_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_impact_completion_to_string ()

const char *
idmef_impact_completion_to_string (idmef_impact_completion_t val);

Return the IDMEF string equivalent of val provided idmef_impact_completion_t value.

Parameters

val

an enumeration value for idmef_impact_completion_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_impact_type_to_numeric ()

idmef_impact_type_t
idmef_impact_type_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_impact_type_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_impact_type_to_string ()

const char *
idmef_impact_type_to_string (idmef_impact_type_t val);

Return the IDMEF string equivalent of val provided idmef_impact_type_t value.

Parameters

val

an enumeration value for idmef_impact_type_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_impact_new ()

int
idmef_impact_new (idmef_impact_t **ret);

Create a new idmef_impact_t object.

Parameters

ret

Pointer where to store the created idmef_impact_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_impact_copy ()

int
idmef_impact_copy (const idmef_impact_t *src,
                   idmef_impact_t *dst);

Copy a new idmef_impact_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_impact_clone ()

int
idmef_impact_clone (idmef_impact_t *src,
                    idmef_impact_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_impact_ref ()

idmef_impact_t *
idmef_impact_ref (idmef_impact_t *impact);

Increase impact reference count, so that it can be referenced multiple time.

Parameters

impact

pointer to a idmef_impact_t object.

 

Returns

a pointer to impact .


idmef_impact_destroy ()

void
idmef_impact_destroy (idmef_impact_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_impact_t object.

 

idmef_impact_unset_severity ()

void
idmef_impact_unset_severity (idmef_impact_t *ptr);

idmef_impact_get_severity ()

idmef_impact_severity_t *
idmef_impact_get_severity (idmef_impact_t *ptr);

Get severity children of the idmef_impact_t object.

Parameters

ptr

pointer to a idmef_impact_t object.

 

Returns

a pointer to a idmef_impact_severity_t object, or NULL if the children object is not set.


idmef_impact_set_severity ()

void
idmef_impact_set_severity (idmef_impact_t *ptr,
                           idmef_impact_severity_t severity);

Set severity object as a children of ptr . if ptr already contain an severity object, then it is destroyed, and updated to point to the provided severity object.

Parameters

ptr

pointer to a idmef_impact_t object.

 

severity

pointer to a idmef_impact_severity_t object.

 

idmef_impact_new_severity ()

int
idmef_impact_new_severity (idmef_impact_t *ptr,
                           idmef_impact_severity_t **ret);

Create a new severity object, children of idmef_impact_t. If ptr already contain a idmef_impact_severity_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_impact_t object.

 

ret

pointer to an address where to store the created idmef_impact_severity_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_impact_unset_completion ()

void
idmef_impact_unset_completion (idmef_impact_t *ptr);

idmef_impact_get_completion ()

idmef_impact_completion_t *
idmef_impact_get_completion (idmef_impact_t *ptr);

Get completion children of the idmef_impact_t object.

Parameters

ptr

pointer to a idmef_impact_t object.

 

Returns

a pointer to a idmef_impact_completion_t object, or NULL if the children object is not set.


idmef_impact_set_completion ()

void
idmef_impact_set_completion (idmef_impact_t *ptr,
                             idmef_impact_completion_t completion);

Set completion object as a children of ptr . if ptr already contain an completion object, then it is destroyed, and updated to point to the provided completion object.

Parameters

ptr

pointer to a idmef_impact_t object.

 

completion

pointer to a idmef_impact_completion_t object.

 

idmef_impact_new_completion ()

int
idmef_impact_new_completion (idmef_impact_t *ptr,
                             idmef_impact_completion_t **ret);

Create a new completion object, children of idmef_impact_t. If ptr already contain a idmef_impact_completion_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_impact_t object.

 

ret

pointer to an address where to store the created idmef_impact_completion_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_impact_get_type ()

idmef_impact_type_t
idmef_impact_get_type (idmef_impact_t *ptr);

Get type children of the idmef_impact_t object.

Parameters

ptr

pointer to a idmef_impact_t object.

 

Returns

a pointer to a idmef_impact_type_t object, or NULL if the children object is not set.


idmef_impact_set_type ()

void
idmef_impact_set_type (idmef_impact_t *ptr,
                       idmef_impact_type_t type);

Set type object as a children of ptr . if ptr already contain an type object, then it is destroyed, and updated to point to the provided type object.

Parameters

ptr

pointer to a idmef_impact_t object.

 

type

pointer to a idmef_impact_type_t object.

 

idmef_impact_new_type ()

int
idmef_impact_new_type (idmef_impact_t *ptr,
                       idmef_impact_type_t **ret);

Create a new type object, children of idmef_impact_t. If ptr already contain a idmef_impact_type_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_impact_t object.

 

ret

pointer to an address where to store the created idmef_impact_type_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_impact_get_description ()

prelude_string_t *
idmef_impact_get_description (idmef_impact_t *ptr);

Get description children of the idmef_impact_t object.

Parameters

ptr

pointer to a idmef_impact_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_impact_set_description ()

void
idmef_impact_set_description (idmef_impact_t *ptr,
                              prelude_string_t *description);

Set description object as a children of ptr . if ptr already contain an description object, then it is destroyed, and updated to point to the provided description object.

Parameters

ptr

pointer to a idmef_impact_t object.

 

description

pointer to a prelude_string_t object.

 

idmef_impact_new_description ()

int
idmef_impact_new_description (idmef_impact_t *ptr,
                              prelude_string_t **ret);

Create a new description object, children of idmef_impact_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_impact_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_action_category_to_numeric ()

idmef_action_category_t
idmef_action_category_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_action_category_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_action_category_to_string ()

const char *
idmef_action_category_to_string (idmef_action_category_t val);

Return the IDMEF string equivalent of val provided idmef_action_category_t value.

Parameters

val

an enumeration value for idmef_action_category_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_action_new ()

int
idmef_action_new (idmef_action_t **ret);

Create a new idmef_action_t object.

Parameters

ret

Pointer where to store the created idmef_action_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_action_copy ()

int
idmef_action_copy (const idmef_action_t *src,
                   idmef_action_t *dst);

Copy a new idmef_action_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_action_clone ()

int
idmef_action_clone (idmef_action_t *src,
                    idmef_action_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_action_ref ()

idmef_action_t *
idmef_action_ref (idmef_action_t *action);

Increase action reference count, so that it can be referenced multiple time.

Parameters

action

pointer to a idmef_action_t object.

 

Returns

a pointer to action .


idmef_action_destroy ()

void
idmef_action_destroy (idmef_action_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_action_t object.

 

idmef_action_get_category ()

idmef_action_category_t
idmef_action_get_category (idmef_action_t *ptr);

Get category children of the idmef_action_t object.

Parameters

ptr

pointer to a idmef_action_t object.

 

Returns

a pointer to a idmef_action_category_t object, or NULL if the children object is not set.


idmef_action_set_category ()

void
idmef_action_set_category (idmef_action_t *ptr,
                           idmef_action_category_t category);

Set category object as a children of ptr . if ptr already contain an category object, then it is destroyed, and updated to point to the provided category object.

Parameters

ptr

pointer to a idmef_action_t object.

 

category

pointer to a idmef_action_category_t object.

 

idmef_action_new_category ()

int
idmef_action_new_category (idmef_action_t *ptr,
                           idmef_action_category_t **ret);

Create a new category object, children of idmef_action_t. If ptr already contain a idmef_action_category_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_action_t object.

 

ret

pointer to an address where to store the created idmef_action_category_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_action_get_description ()

prelude_string_t *
idmef_action_get_description (idmef_action_t *ptr);

Get description children of the idmef_action_t object.

Parameters

ptr

pointer to a idmef_action_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_action_set_description ()

void
idmef_action_set_description (idmef_action_t *ptr,
                              prelude_string_t *description);

Set description object as a children of ptr . if ptr already contain an description object, then it is destroyed, and updated to point to the provided description object.

Parameters

ptr

pointer to a idmef_action_t object.

 

description

pointer to a prelude_string_t object.

 

idmef_action_new_description ()

int
idmef_action_new_description (idmef_action_t *ptr,
                              prelude_string_t **ret);

Create a new description object, children of idmef_action_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_action_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_confidence_rating_to_numeric ()

idmef_confidence_rating_t
idmef_confidence_rating_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_confidence_rating_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_confidence_rating_to_string ()

const char *
idmef_confidence_rating_to_string (idmef_confidence_rating_t val);

Return the IDMEF string equivalent of val provided idmef_confidence_rating_t value.

Parameters

val

an enumeration value for idmef_confidence_rating_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_confidence_new ()

int
idmef_confidence_new (idmef_confidence_t **ret);

Create a new idmef_confidence_t object.

Parameters

ret

Pointer where to store the created idmef_confidence_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_confidence_copy ()

int
idmef_confidence_copy (const idmef_confidence_t *src,
                       idmef_confidence_t *dst);

Copy a new idmef_confidence_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_confidence_clone ()

int
idmef_confidence_clone (idmef_confidence_t *src,
                        idmef_confidence_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_confidence_ref ()

idmef_confidence_t *
idmef_confidence_ref (idmef_confidence_t *confidence);

Increase confidence reference count, so that it can be referenced multiple time.

Parameters

confidence

pointer to a idmef_confidence_t object.

 

Returns

a pointer to confidence .


idmef_confidence_destroy ()

void
idmef_confidence_destroy (idmef_confidence_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_confidence_t object.

 

idmef_confidence_get_rating ()

idmef_confidence_rating_t
idmef_confidence_get_rating (idmef_confidence_t *ptr);

Get rating children of the idmef_confidence_t object.

Parameters

ptr

pointer to a idmef_confidence_t object.

 

Returns

a pointer to a idmef_confidence_rating_t object, or NULL if the children object is not set.


idmef_confidence_set_rating ()

void
idmef_confidence_set_rating (idmef_confidence_t *ptr,
                             idmef_confidence_rating_t rating);

Set rating object as a children of ptr . if ptr already contain an rating object, then it is destroyed, and updated to point to the provided rating object.

Parameters

ptr

pointer to a idmef_confidence_t object.

 

rating

pointer to a idmef_confidence_rating_t object.

 

idmef_confidence_new_rating ()

int
idmef_confidence_new_rating (idmef_confidence_t *ptr,
                             idmef_confidence_rating_t **ret);

Create a new rating object, children of idmef_confidence_t. If ptr already contain a idmef_confidence_rating_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_confidence_t object.

 

ret

pointer to an address where to store the created idmef_confidence_rating_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_confidence_get_confidence ()

float
idmef_confidence_get_confidence (idmef_confidence_t *ptr);

Get confidence children of the idmef_confidence_t object.

Parameters

ptr

pointer to a idmef_confidence_t object.

 

Returns

a pointer to a float object, or NULL if the children object is not set.


idmef_confidence_set_confidence ()

void
idmef_confidence_set_confidence (idmef_confidence_t *ptr,
                                 float confidence);

Set confidence object as a children of ptr . if ptr already contain an confidence object, then it is destroyed, and updated to point to the provided confidence object.

Parameters

ptr

pointer to a idmef_confidence_t object.

 

confidence

pointer to a float object.

 

idmef_confidence_new_confidence ()

int
idmef_confidence_new_confidence (idmef_confidence_t *ptr,
                                 float **ret);

Create a new confidence object, children of idmef_confidence_t. If ptr already contain a float object, then it is destroyed.

Parameters

ptr

pointer to a idmef_confidence_t object.

 

ret

pointer to an address where to store the created float object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_assessment_new ()

int
idmef_assessment_new (idmef_assessment_t **ret);

Create a new idmef_assessment_t object.

Parameters

ret

Pointer where to store the created idmef_assessment_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_assessment_copy ()

int
idmef_assessment_copy (const idmef_assessment_t *src,
                       idmef_assessment_t *dst);

Copy a new idmef_assessment_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_assessment_clone ()

int
idmef_assessment_clone (idmef_assessment_t *src,
                        idmef_assessment_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_assessment_ref ()

idmef_assessment_t *
idmef_assessment_ref (idmef_assessment_t *assessment);

Increase assessment reference count, so that it can be referenced multiple time.

Parameters

assessment

pointer to a idmef_assessment_t object.

 

Returns

a pointer to assessment .


idmef_assessment_destroy ()

void
idmef_assessment_destroy (idmef_assessment_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_assessment_t object.

 

idmef_assessment_get_impact ()

idmef_impact_t *
idmef_assessment_get_impact (idmef_assessment_t *ptr);

Get impact children of the idmef_assessment_t object.

Parameters

ptr

pointer to a idmef_assessment_t object.

 

Returns

a pointer to a idmef_impact_t object, or NULL if the children object is not set.


idmef_assessment_set_impact ()

void
idmef_assessment_set_impact (idmef_assessment_t *ptr,
                             idmef_impact_t *impact);

Set impact object as a children of ptr . if ptr already contain an impact object, then it is destroyed, and updated to point to the provided impact object.

Parameters

ptr

pointer to a idmef_assessment_t object.

 

impact

pointer to a idmef_impact_t object.

 

idmef_assessment_new_impact ()

int
idmef_assessment_new_impact (idmef_assessment_t *ptr,
                             idmef_impact_t **ret);

Create a new impact object, children of idmef_assessment_t. If ptr already contain a idmef_impact_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_assessment_t object.

 

ret

pointer to an address where to store the created idmef_impact_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_assessment_get_next_action ()

idmef_action_t *
idmef_assessment_get_next_action (idmef_assessment_t *assessment,
                                  idmef_action_t *action_cur);

Get the next idmef_action_t object listed in ptr . When iterating over the idmef_action_t object listed in ptr , object should be set to the latest returned idmef_action_t object.

Parameters

assessment

pointer to a idmef_assessment_t object.

 

action_cur

pointer to a idmef_action_t object.

 

Returns

the next idmef_action_t in the list.


idmef_assessment_set_action ()

void
idmef_assessment_set_action (idmef_assessment_t *ptr,
                             idmef_action_t *object,
                             int pos);

Add object to position pos of ptr list of idmef_action_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_assessment_t object.

 

object

pointer to a idmef_action_t object.

 

pos

Position in the list.

 

idmef_assessment_new_action ()

int
idmef_assessment_new_action (idmef_assessment_t *ptr,
                             idmef_action_t **ret,
                             int pos);

Create a new idmef_action_t children of ptr , and add it to position pos of ptr list of idmef_action_t object. The created idmef_action_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_assessment_t object.

 

ret

pointer to an address where to store the created idmef_action_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_assessment_get_confidence ()

idmef_confidence_t *
idmef_assessment_get_confidence (idmef_assessment_t *ptr);

Get confidence children of the idmef_assessment_t object.

Parameters

ptr

pointer to a idmef_assessment_t object.

 

Returns

a pointer to a idmef_confidence_t object, or NULL if the children object is not set.


idmef_assessment_set_confidence ()

void
idmef_assessment_set_confidence (idmef_assessment_t *ptr,
                                 idmef_confidence_t *confidence);

Set confidence object as a children of ptr . if ptr already contain an confidence object, then it is destroyed, and updated to point to the provided confidence object.

Parameters

ptr

pointer to a idmef_assessment_t object.

 

confidence

pointer to a idmef_confidence_t object.

 

idmef_assessment_new_confidence ()

int
idmef_assessment_new_confidence (idmef_assessment_t *ptr,
                                 idmef_confidence_t **ret);

Create a new confidence object, children of idmef_assessment_t. If ptr already contain a idmef_confidence_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_assessment_t object.

 

ret

pointer to an address where to store the created idmef_confidence_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_tool_alert_new ()

int
idmef_tool_alert_new (idmef_tool_alert_t **ret);

Create a new idmef_tool_alert_t object.

Parameters

ret

Pointer where to store the created idmef_tool_alert_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_tool_alert_copy ()

int
idmef_tool_alert_copy (const idmef_tool_alert_t *src,
                       idmef_tool_alert_t *dst);

Copy a new idmef_tool_alert_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_tool_alert_clone ()

int
idmef_tool_alert_clone (idmef_tool_alert_t *src,
                        idmef_tool_alert_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_tool_alert_ref ()

idmef_tool_alert_t *
idmef_tool_alert_ref (idmef_tool_alert_t *tool_alert);

Increase tool_alert reference count, so that it can be referenced multiple time.

Parameters

tool_alert

pointer to a idmef_tool_alert_t object.

 

Returns

a pointer to tool_alert .


idmef_tool_alert_destroy ()

void
idmef_tool_alert_destroy (idmef_tool_alert_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_tool_alert_t object.

 

idmef_tool_alert_get_name ()

prelude_string_t *
idmef_tool_alert_get_name (idmef_tool_alert_t *ptr);

Get name children of the idmef_tool_alert_t object.

Parameters

ptr

pointer to a idmef_tool_alert_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_tool_alert_set_name ()

void
idmef_tool_alert_set_name (idmef_tool_alert_t *ptr,
                           prelude_string_t *name);

Set name object as a children of ptr . if ptr already contain an name object, then it is destroyed, and updated to point to the provided name object.

Parameters

ptr

pointer to a idmef_tool_alert_t object.

 

name

pointer to a prelude_string_t object.

 

idmef_tool_alert_new_name ()

int
idmef_tool_alert_new_name (idmef_tool_alert_t *ptr,
                           prelude_string_t **ret);

Create a new name object, children of idmef_tool_alert_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_tool_alert_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_tool_alert_get_command ()

prelude_string_t *
idmef_tool_alert_get_command (idmef_tool_alert_t *ptr);

Get command children of the idmef_tool_alert_t object.

Parameters

ptr

pointer to a idmef_tool_alert_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_tool_alert_set_command ()

void
idmef_tool_alert_set_command (idmef_tool_alert_t *ptr,
                              prelude_string_t *command);

Set command object as a children of ptr . if ptr already contain an command object, then it is destroyed, and updated to point to the provided command object.

Parameters

ptr

pointer to a idmef_tool_alert_t object.

 

command

pointer to a prelude_string_t object.

 

idmef_tool_alert_new_command ()

int
idmef_tool_alert_new_command (idmef_tool_alert_t *ptr,
                              prelude_string_t **ret);

Create a new command object, children of idmef_tool_alert_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_tool_alert_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_tool_alert_get_next_alertident ()

idmef_alertident_t *
idmef_tool_alert_get_next_alertident (idmef_tool_alert_t *tool_alert,
                                      idmef_alertident_t *alertident_cur);

Get the next idmef_alertident_t object listed in ptr . When iterating over the idmef_alertident_t object listed in ptr , object should be set to the latest returned idmef_alertident_t object.

Parameters

tool_alert

pointer to a idmef_tool_alert_t object.

 

alertident_cur

pointer to a idmef_alertident_t object.

 

Returns

the next idmef_alertident_t in the list.


idmef_tool_alert_set_alertident ()

void
idmef_tool_alert_set_alertident (idmef_tool_alert_t *ptr,
                                 idmef_alertident_t *object,
                                 int pos);

Add object to position pos of ptr list of idmef_alertident_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_tool_alert_t object.

 

object

pointer to a idmef_alertident_t object.

 

pos

Position in the list.

 

idmef_tool_alert_new_alertident ()

int
idmef_tool_alert_new_alertident (idmef_tool_alert_t *ptr,
                                 idmef_alertident_t **ret,
                                 int pos);

Create a new idmef_alertident_t children of ptr , and add it to position pos of ptr list of idmef_alertident_t object. The created idmef_alertident_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_tool_alert_t object.

 

ret

pointer to an address where to store the created idmef_alertident_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_correlation_alert_new ()

int
idmef_correlation_alert_new (idmef_correlation_alert_t **ret);

Create a new idmef_correlation_alert_t object.

Parameters

ret

Pointer where to store the created idmef_correlation_alert_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_correlation_alert_copy ()

int
idmef_correlation_alert_copy (const idmef_correlation_alert_t *src,
                              idmef_correlation_alert_t *dst);

Copy a new idmef_correlation_alert_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_correlation_alert_clone ()

int
idmef_correlation_alert_clone (idmef_correlation_alert_t *src,
                               idmef_correlation_alert_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_correlation_alert_ref ()

idmef_correlation_alert_t *
idmef_correlation_alert_ref (idmef_correlation_alert_t *correlation_alert);

Increase correlation_alert reference count, so that it can be referenced multiple time.

Parameters

correlation_alert

pointer to a idmef_correlation_alert_t object.

 

Returns

a pointer to correlation_alert .


idmef_correlation_alert_destroy ()

void
idmef_correlation_alert_destroy (idmef_correlation_alert_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_correlation_alert_t object.

 

idmef_correlation_alert_get_name ()

prelude_string_t *
idmef_correlation_alert_get_name (idmef_correlation_alert_t *ptr);

Get name children of the idmef_correlation_alert_t object.

Parameters

ptr

pointer to a idmef_correlation_alert_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_correlation_alert_set_name ()

void
idmef_correlation_alert_set_name (idmef_correlation_alert_t *ptr,
                                  prelude_string_t *name);

Set name object as a children of ptr . if ptr already contain an name object, then it is destroyed, and updated to point to the provided name object.

Parameters

ptr

pointer to a idmef_correlation_alert_t object.

 

name

pointer to a prelude_string_t object.

 

idmef_correlation_alert_new_name ()

int
idmef_correlation_alert_new_name (idmef_correlation_alert_t *ptr,
                                  prelude_string_t **ret);

Create a new name object, children of idmef_correlation_alert_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_correlation_alert_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_correlation_alert_get_next_alertident ()

idmef_alertident_t *
idmef_correlation_alert_get_next_alertident
                               (idmef_correlation_alert_t *correlation_alert,
                                idmef_alertident_t *alertident_cur);

Get the next idmef_alertident_t object listed in ptr . When iterating over the idmef_alertident_t object listed in ptr , object should be set to the latest returned idmef_alertident_t object.

Parameters

correlation_alert

pointer to a idmef_correlation_alert_t object.

 

alertident_cur

pointer to a idmef_alertident_t object.

 

Returns

the next idmef_alertident_t in the list.


idmef_correlation_alert_set_alertident ()

void
idmef_correlation_alert_set_alertident
                               (idmef_correlation_alert_t *ptr,
                                idmef_alertident_t *object,
                                int pos);

Add object to position pos of ptr list of idmef_alertident_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_correlation_alert_t object.

 

object

pointer to a idmef_alertident_t object.

 

pos

Position in the list.

 

idmef_correlation_alert_new_alertident ()

int
idmef_correlation_alert_new_alertident
                               (idmef_correlation_alert_t *ptr,
                                idmef_alertident_t **ret,
                                int pos);

Create a new idmef_alertident_t children of ptr , and add it to position pos of ptr list of idmef_alertident_t object. The created idmef_alertident_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_correlation_alert_t object.

 

ret

pointer to an address where to store the created idmef_alertident_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_overflow_alert_new ()

int
idmef_overflow_alert_new (idmef_overflow_alert_t **ret);

Create a new idmef_overflow_alert_t object.

Parameters

ret

Pointer where to store the created idmef_overflow_alert_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_overflow_alert_copy ()

int
idmef_overflow_alert_copy (const idmef_overflow_alert_t *src,
                           idmef_overflow_alert_t *dst);

Copy a new idmef_overflow_alert_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_overflow_alert_clone ()

int
idmef_overflow_alert_clone (idmef_overflow_alert_t *src,
                            idmef_overflow_alert_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_overflow_alert_ref ()

idmef_overflow_alert_t *
idmef_overflow_alert_ref (idmef_overflow_alert_t *overflow_alert);

Increase overflow_alert reference count, so that it can be referenced multiple time.

Parameters

overflow_alert

pointer to a idmef_overflow_alert_t object.

 

Returns

a pointer to overflow_alert .


idmef_overflow_alert_destroy ()

void
idmef_overflow_alert_destroy (idmef_overflow_alert_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_overflow_alert_t object.

 

idmef_overflow_alert_get_program ()

prelude_string_t *
idmef_overflow_alert_get_program (idmef_overflow_alert_t *ptr);

Get program children of the idmef_overflow_alert_t object.

Parameters

ptr

pointer to a idmef_overflow_alert_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_overflow_alert_set_program ()

void
idmef_overflow_alert_set_program (idmef_overflow_alert_t *ptr,
                                  prelude_string_t *program);

Set program object as a children of ptr . if ptr already contain an program object, then it is destroyed, and updated to point to the provided program object.

Parameters

ptr

pointer to a idmef_overflow_alert_t object.

 

program

pointer to a prelude_string_t object.

 

idmef_overflow_alert_new_program ()

int
idmef_overflow_alert_new_program (idmef_overflow_alert_t *ptr,
                                  prelude_string_t **ret);

Create a new program object, children of idmef_overflow_alert_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_overflow_alert_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_overflow_alert_unset_size ()

void
idmef_overflow_alert_unset_size (idmef_overflow_alert_t *ptr);

idmef_overflow_alert_get_size ()

uint32_t *
idmef_overflow_alert_get_size (idmef_overflow_alert_t *ptr);

Get size children of the idmef_overflow_alert_t object.

Parameters

ptr

pointer to a idmef_overflow_alert_t object.

 

Returns

a pointer to a uint32_t object, or NULL if the children object is not set.


idmef_overflow_alert_set_size ()

void
idmef_overflow_alert_set_size (idmef_overflow_alert_t *ptr,
                               uint32_t size);

Set size object as a children of ptr . if ptr already contain an size object, then it is destroyed, and updated to point to the provided size object.

Parameters

ptr

pointer to a idmef_overflow_alert_t object.

 

size

pointer to a uint32_t object.

 

idmef_overflow_alert_new_size ()

int
idmef_overflow_alert_new_size (idmef_overflow_alert_t *ptr,
                               uint32_t **ret);

Create a new size object, children of idmef_overflow_alert_t. If ptr already contain a uint32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_overflow_alert_t object.

 

ret

pointer to an address where to store the created uint32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_overflow_alert_get_buffer ()

idmef_data_t *
idmef_overflow_alert_get_buffer (idmef_overflow_alert_t *ptr);

Get buffer children of the idmef_overflow_alert_t object.

Parameters

ptr

pointer to a idmef_overflow_alert_t object.

 

Returns

a pointer to a idmef_data_t object, or NULL if the children object is not set.


idmef_overflow_alert_set_buffer ()

void
idmef_overflow_alert_set_buffer (idmef_overflow_alert_t *ptr,
                                 idmef_data_t *buffer);

Set buffer object as a children of ptr . if ptr already contain an buffer object, then it is destroyed, and updated to point to the provided buffer object.

Parameters

ptr

pointer to a idmef_overflow_alert_t object.

 

buffer

pointer to a idmef_data_t object.

 

idmef_overflow_alert_new_buffer ()

int
idmef_overflow_alert_new_buffer (idmef_overflow_alert_t *ptr,
                                 idmef_data_t **ret);

Create a new buffer object, children of idmef_overflow_alert_t. If ptr already contain a idmef_data_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_overflow_alert_t object.

 

ret

pointer to an address where to store the created idmef_data_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_type_to_numeric ()

idmef_alert_type_t
idmef_alert_type_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_alert_type_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_alert_type_to_string ()

const char *
idmef_alert_type_to_string (idmef_alert_type_t val);

Return the IDMEF string equivalent of val provided idmef_alert_type_t value.

Parameters

val

an enumeration value for idmef_alert_type_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_alert_new ()

int
idmef_alert_new (idmef_alert_t **ret);

Create a new idmef_alert_t object.

Parameters

ret

Pointer where to store the created idmef_alert_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_alert_copy ()

int
idmef_alert_copy (const idmef_alert_t *src,
                  idmef_alert_t *dst);

Copy a new idmef_alert_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_alert_clone ()

int
idmef_alert_clone (idmef_alert_t *src,
                   idmef_alert_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_alert_ref ()

idmef_alert_t *
idmef_alert_ref (idmef_alert_t *alert);

Increase alert reference count, so that it can be referenced multiple time.

Parameters

alert

pointer to a idmef_alert_t object.

 

Returns

a pointer to alert .


idmef_alert_destroy ()

void
idmef_alert_destroy (idmef_alert_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_alert_t object.

 

idmef_alert_get_messageid ()

prelude_string_t *
idmef_alert_get_messageid (idmef_alert_t *ptr);

Get messageid children of the idmef_alert_t object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_alert_set_messageid ()

void
idmef_alert_set_messageid (idmef_alert_t *ptr,
                           prelude_string_t *messageid);

Set messageid object as a children of ptr . if ptr already contain an messageid object, then it is destroyed, and updated to point to the provided messageid object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

messageid

pointer to a prelude_string_t object.

 

idmef_alert_new_messageid ()

int
idmef_alert_new_messageid (idmef_alert_t *ptr,
                           prelude_string_t **ret);

Create a new messageid object, children of idmef_alert_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_get_next_analyzer ()

idmef_analyzer_t *
idmef_alert_get_next_analyzer (idmef_alert_t *alert,
                               idmef_analyzer_t *analyzer_cur);

Get the next idmef_analyzer_t object listed in ptr . When iterating over the idmef_analyzer_t object listed in ptr , object should be set to the latest returned idmef_analyzer_t object.

Parameters

alert

pointer to a idmef_alert_t object.

 

analyzer_cur

pointer to a idmef_analyzer_t object.

 

Returns

the next idmef_analyzer_t in the list.


idmef_alert_set_analyzer ()

void
idmef_alert_set_analyzer (idmef_alert_t *ptr,
                          idmef_analyzer_t *object,
                          int pos);

Add object to position pos of ptr list of idmef_analyzer_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_alert_t object.

 

object

pointer to a idmef_analyzer_t object.

 

pos

Position in the list.

 

idmef_alert_new_analyzer ()

int
idmef_alert_new_analyzer (idmef_alert_t *ptr,
                          idmef_analyzer_t **ret,
                          int pos);

Create a new idmef_analyzer_t children of ptr , and add it to position pos of ptr list of idmef_analyzer_t object. The created idmef_analyzer_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer to an address where to store the created idmef_analyzer_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_get_create_time ()

idmef_time_t *
idmef_alert_get_create_time (idmef_alert_t *ptr);

Get create_time children of the idmef_alert_t object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

Returns

a pointer to a idmef_time_t object, or NULL if the children object is not set.


idmef_alert_set_create_time ()

void
idmef_alert_set_create_time (idmef_alert_t *ptr,
                             idmef_time_t *create_time);

Set create_time object as a children of ptr . if ptr already contain an create_time object, then it is destroyed, and updated to point to the provided create_time object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

create_time

pointer to a idmef_time_t object.

 

idmef_alert_new_create_time ()

int
idmef_alert_new_create_time (idmef_alert_t *ptr,
                             idmef_time_t **ret);

Create a new create_time object, children of idmef_alert_t. If ptr already contain a idmef_time_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer to an address where to store the created idmef_time_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_get_classification ()

idmef_classification_t *
idmef_alert_get_classification (idmef_alert_t *ptr);

Get classification children of the idmef_alert_t object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

Returns

a pointer to a idmef_classification_t object, or NULL if the children object is not set.


idmef_alert_set_classification ()

void
idmef_alert_set_classification (idmef_alert_t *ptr,
                                idmef_classification_t *classification);

Set classification object as a children of ptr . if ptr already contain an classification object, then it is destroyed, and updated to point to the provided classification object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

classification

pointer to a idmef_classification_t object.

 

idmef_alert_new_classification ()

int
idmef_alert_new_classification (idmef_alert_t *ptr,
                                idmef_classification_t **ret);

Create a new classification object, children of idmef_alert_t. If ptr already contain a idmef_classification_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer to an address where to store the created idmef_classification_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_get_detect_time ()

idmef_time_t *
idmef_alert_get_detect_time (idmef_alert_t *ptr);

Get detect_time children of the idmef_alert_t object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

Returns

a pointer to a idmef_time_t object, or NULL if the children object is not set.


idmef_alert_set_detect_time ()

void
idmef_alert_set_detect_time (idmef_alert_t *ptr,
                             idmef_time_t *detect_time);

Set detect_time object as a children of ptr . if ptr already contain an detect_time object, then it is destroyed, and updated to point to the provided detect_time object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

detect_time

pointer to a idmef_time_t object.

 

idmef_alert_new_detect_time ()

int
idmef_alert_new_detect_time (idmef_alert_t *ptr,
                             idmef_time_t **ret);

Create a new detect_time object, children of idmef_alert_t. If ptr already contain a idmef_time_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer to an address where to store the created idmef_time_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_get_analyzer_time ()

idmef_time_t *
idmef_alert_get_analyzer_time (idmef_alert_t *ptr);

Get analyzer_time children of the idmef_alert_t object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

Returns

a pointer to a idmef_time_t object, or NULL if the children object is not set.


idmef_alert_set_analyzer_time ()

void
idmef_alert_set_analyzer_time (idmef_alert_t *ptr,
                               idmef_time_t *analyzer_time);

Set analyzer_time object as a children of ptr . if ptr already contain an analyzer_time object, then it is destroyed, and updated to point to the provided analyzer_time object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

analyzer_time

pointer to a idmef_time_t object.

 

idmef_alert_new_analyzer_time ()

int
idmef_alert_new_analyzer_time (idmef_alert_t *ptr,
                               idmef_time_t **ret);

Create a new analyzer_time object, children of idmef_alert_t. If ptr already contain a idmef_time_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer to an address where to store the created idmef_time_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_get_next_source ()

idmef_source_t *
idmef_alert_get_next_source (idmef_alert_t *alert,
                             idmef_source_t *source_cur);

Get the next idmef_source_t object listed in ptr . When iterating over the idmef_source_t object listed in ptr , object should be set to the latest returned idmef_source_t object.

Parameters

alert

pointer to a idmef_alert_t object.

 

source_cur

pointer to a idmef_source_t object.

 

Returns

the next idmef_source_t in the list.


idmef_alert_set_source ()

void
idmef_alert_set_source (idmef_alert_t *ptr,
                        idmef_source_t *object,
                        int pos);

Add object to position pos of ptr list of idmef_source_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_alert_t object.

 

object

pointer to a idmef_source_t object.

 

pos

Position in the list.

 

idmef_alert_new_source ()

int
idmef_alert_new_source (idmef_alert_t *ptr,
                        idmef_source_t **ret,
                        int pos);

Create a new idmef_source_t children of ptr , and add it to position pos of ptr list of idmef_source_t object. The created idmef_source_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer to an address where to store the created idmef_source_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_get_next_target ()

idmef_target_t *
idmef_alert_get_next_target (idmef_alert_t *alert,
                             idmef_target_t *target_cur);

Get the next idmef_target_t object listed in ptr . When iterating over the idmef_target_t object listed in ptr , object should be set to the latest returned idmef_target_t object.

Parameters

alert

pointer to a idmef_alert_t object.

 

target_cur

pointer to a idmef_target_t object.

 

Returns

the next idmef_target_t in the list.


idmef_alert_set_target ()

void
idmef_alert_set_target (idmef_alert_t *ptr,
                        idmef_target_t *object,
                        int pos);

Add object to position pos of ptr list of idmef_target_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_alert_t object.

 

object

pointer to a idmef_target_t object.

 

pos

Position in the list.

 

idmef_alert_new_target ()

int
idmef_alert_new_target (idmef_alert_t *ptr,
                        idmef_target_t **ret,
                        int pos);

Create a new idmef_target_t children of ptr , and add it to position pos of ptr list of idmef_target_t object. The created idmef_target_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer to an address where to store the created idmef_target_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_get_assessment ()

idmef_assessment_t *
idmef_alert_get_assessment (idmef_alert_t *ptr);

Get assessment children of the idmef_alert_t object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

Returns

a pointer to a idmef_assessment_t object, or NULL if the children object is not set.


idmef_alert_set_assessment ()

void
idmef_alert_set_assessment (idmef_alert_t *ptr,
                            idmef_assessment_t *assessment);

Set assessment object as a children of ptr . if ptr already contain an assessment object, then it is destroyed, and updated to point to the provided assessment object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

assessment

pointer to a idmef_assessment_t object.

 

idmef_alert_new_assessment ()

int
idmef_alert_new_assessment (idmef_alert_t *ptr,
                            idmef_assessment_t **ret);

Create a new assessment object, children of idmef_alert_t. If ptr already contain a idmef_assessment_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer to an address where to store the created idmef_assessment_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_get_next_additional_data ()

idmef_additional_data_t *
idmef_alert_get_next_additional_data (idmef_alert_t *alert,
                                      idmef_additional_data_t *additional_data_cur);

Get the next idmef_additional_data_t object listed in ptr . When iterating over the idmef_additional_data_t object listed in ptr , object should be set to the latest returned idmef_additional_data_t object.

Parameters

alert

pointer to a idmef_alert_t object.

 

additional_data_cur

pointer to a idmef_additional_data_t object.

 

Returns

the next idmef_additional_data_t in the list.


idmef_alert_set_additional_data ()

void
idmef_alert_set_additional_data (idmef_alert_t *ptr,
                                 idmef_additional_data_t *object,
                                 int pos);

Add object to position pos of ptr list of idmef_additional_data_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_alert_t object.

 

object

pointer to a idmef_additional_data_t object.

 

pos

Position in the list.

 

idmef_alert_new_additional_data ()

int
idmef_alert_new_additional_data (idmef_alert_t *ptr,
                                 idmef_additional_data_t **ret,
                                 int pos);

Create a new idmef_additional_data_t children of ptr , and add it to position pos of ptr list of idmef_additional_data_t object. The created idmef_additional_data_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer to an address where to store the created idmef_additional_data_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_get_type ()

idmef_alert_type_t
idmef_alert_get_type (idmef_alert_t *ptr);

Access the type children of ptr .

Parameters

ptr

pointer to a idmef_alert_t object.

 

Returns

a pointer to the idmef_alert_type_t children, or NULL if it is not set.


idmef_alert_get_tool_alert ()

idmef_tool_alert_t *
idmef_alert_get_tool_alert (idmef_alert_t *ptr);

Access the tool_alert children of ptr .

Parameters

ptr

pointer to a idmef_alert_t object.

 

Returns

a pointer to the idmef_tool_alert_t children, or NULL if it is not set.


idmef_alert_set_tool_alert ()

void
idmef_alert_set_tool_alert (idmef_alert_t *ptr,
                            idmef_tool_alert_t *tool_alert);

Set tool_alert object as a children of ptr . if ptr already contain a tool_alert object, then it is destroyed, and updated to point to the provided tool_alert object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

tool_alert

pointer to a idmef_tool_alert_t object.

 

idmef_alert_new_tool_alert ()

int
idmef_alert_new_tool_alert (idmef_alert_t *ptr,
                            idmef_tool_alert_t **ret);

Create a new idmef_tool_alert_t object, children of idmef_alert_t. If ptr already contain a idmef_tool_alert_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer where to store the created idmef_tool_alert_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_get_correlation_alert ()

idmef_correlation_alert_t *
idmef_alert_get_correlation_alert (idmef_alert_t *ptr);

Access the correlation_alert children of ptr .

Parameters

ptr

pointer to a idmef_alert_t object.

 

Returns

a pointer to the idmef_correlation_alert_t children, or NULL if it is not set.


idmef_alert_set_correlation_alert ()

void
idmef_alert_set_correlation_alert (idmef_alert_t *ptr,
                                   idmef_correlation_alert_t *correlation_alert);

Set correlation_alert object as a children of ptr . if ptr already contain a correlation_alert object, then it is destroyed, and updated to point to the provided correlation_alert object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

correlation_alert

pointer to a idmef_correlation_alert_t object.

 

idmef_alert_new_correlation_alert ()

int
idmef_alert_new_correlation_alert (idmef_alert_t *ptr,
                                   idmef_correlation_alert_t **ret);

Create a new idmef_correlation_alert_t object, children of idmef_alert_t. If ptr already contain a idmef_correlation_alert_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer where to store the created idmef_correlation_alert_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_alert_get_overflow_alert ()

idmef_overflow_alert_t *
idmef_alert_get_overflow_alert (idmef_alert_t *ptr);

Access the overflow_alert children of ptr .

Parameters

ptr

pointer to a idmef_alert_t object.

 

Returns

a pointer to the idmef_overflow_alert_t children, or NULL if it is not set.


idmef_alert_set_overflow_alert ()

void
idmef_alert_set_overflow_alert (idmef_alert_t *ptr,
                                idmef_overflow_alert_t *overflow_alert);

Set overflow_alert object as a children of ptr . if ptr already contain a overflow_alert object, then it is destroyed, and updated to point to the provided overflow_alert object.

Parameters

ptr

pointer to a idmef_alert_t object.

 

overflow_alert

pointer to a idmef_overflow_alert_t object.

 

idmef_alert_new_overflow_alert ()

int
idmef_alert_new_overflow_alert (idmef_alert_t *ptr,
                                idmef_overflow_alert_t **ret);

Create a new idmef_overflow_alert_t object, children of idmef_alert_t. If ptr already contain a idmef_overflow_alert_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_alert_t object.

 

ret

pointer where to store the created idmef_overflow_alert_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_heartbeat_new ()

int
idmef_heartbeat_new (idmef_heartbeat_t **ret);

Create a new idmef_heartbeat_t object.

Parameters

ret

Pointer where to store the created idmef_heartbeat_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_heartbeat_copy ()

int
idmef_heartbeat_copy (const idmef_heartbeat_t *src,
                      idmef_heartbeat_t *dst);

Copy a new idmef_heartbeat_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_heartbeat_clone ()

int
idmef_heartbeat_clone (idmef_heartbeat_t *src,
                       idmef_heartbeat_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_heartbeat_ref ()

idmef_heartbeat_t *
idmef_heartbeat_ref (idmef_heartbeat_t *heartbeat);

Increase heartbeat reference count, so that it can be referenced multiple time.

Parameters

heartbeat

pointer to a idmef_heartbeat_t object.

 

Returns

a pointer to heartbeat .


idmef_heartbeat_destroy ()

void
idmef_heartbeat_destroy (idmef_heartbeat_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

idmef_heartbeat_get_messageid ()

prelude_string_t *
idmef_heartbeat_get_messageid (idmef_heartbeat_t *ptr);

Get messageid children of the idmef_heartbeat_t object.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_heartbeat_set_messageid ()

void
idmef_heartbeat_set_messageid (idmef_heartbeat_t *ptr,
                               prelude_string_t *messageid);

Set messageid object as a children of ptr . if ptr already contain an messageid object, then it is destroyed, and updated to point to the provided messageid object.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

messageid

pointer to a prelude_string_t object.

 

idmef_heartbeat_new_messageid ()

int
idmef_heartbeat_new_messageid (idmef_heartbeat_t *ptr,
                               prelude_string_t **ret);

Create a new messageid object, children of idmef_heartbeat_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_heartbeat_get_next_analyzer ()

idmef_analyzer_t *
idmef_heartbeat_get_next_analyzer (idmef_heartbeat_t *heartbeat,
                                   idmef_analyzer_t *analyzer_cur);

Get the next idmef_analyzer_t object listed in ptr . When iterating over the idmef_analyzer_t object listed in ptr , object should be set to the latest returned idmef_analyzer_t object.

Parameters

heartbeat

pointer to a idmef_heartbeat_t object.

 

analyzer_cur

pointer to a idmef_analyzer_t object.

 

Returns

the next idmef_analyzer_t in the list.


idmef_heartbeat_set_analyzer ()

void
idmef_heartbeat_set_analyzer (idmef_heartbeat_t *ptr,
                              idmef_analyzer_t *object,
                              int pos);

Add object to position pos of ptr list of idmef_analyzer_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

object

pointer to a idmef_analyzer_t object.

 

pos

Position in the list.

 

idmef_heartbeat_new_analyzer ()

int
idmef_heartbeat_new_analyzer (idmef_heartbeat_t *ptr,
                              idmef_analyzer_t **ret,
                              int pos);

Create a new idmef_analyzer_t children of ptr , and add it to position pos of ptr list of idmef_analyzer_t object. The created idmef_analyzer_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

ret

pointer to an address where to store the created idmef_analyzer_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_heartbeat_get_create_time ()

idmef_time_t *
idmef_heartbeat_get_create_time (idmef_heartbeat_t *ptr);

Get create_time children of the idmef_heartbeat_t object.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

Returns

a pointer to a idmef_time_t object, or NULL if the children object is not set.


idmef_heartbeat_set_create_time ()

void
idmef_heartbeat_set_create_time (idmef_heartbeat_t *ptr,
                                 idmef_time_t *create_time);

Set create_time object as a children of ptr . if ptr already contain an create_time object, then it is destroyed, and updated to point to the provided create_time object.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

create_time

pointer to a idmef_time_t object.

 

idmef_heartbeat_new_create_time ()

int
idmef_heartbeat_new_create_time (idmef_heartbeat_t *ptr,
                                 idmef_time_t **ret);

Create a new create_time object, children of idmef_heartbeat_t. If ptr already contain a idmef_time_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

ret

pointer to an address where to store the created idmef_time_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_heartbeat_get_analyzer_time ()

idmef_time_t *
idmef_heartbeat_get_analyzer_time (idmef_heartbeat_t *ptr);

Get analyzer_time children of the idmef_heartbeat_t object.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

Returns

a pointer to a idmef_time_t object, or NULL if the children object is not set.


idmef_heartbeat_set_analyzer_time ()

void
idmef_heartbeat_set_analyzer_time (idmef_heartbeat_t *ptr,
                                   idmef_time_t *analyzer_time);

Set analyzer_time object as a children of ptr . if ptr already contain an analyzer_time object, then it is destroyed, and updated to point to the provided analyzer_time object.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

analyzer_time

pointer to a idmef_time_t object.

 

idmef_heartbeat_new_analyzer_time ()

int
idmef_heartbeat_new_analyzer_time (idmef_heartbeat_t *ptr,
                                   idmef_time_t **ret);

Create a new analyzer_time object, children of idmef_heartbeat_t. If ptr already contain a idmef_time_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

ret

pointer to an address where to store the created idmef_time_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_heartbeat_unset_heartbeat_interval ()

void
idmef_heartbeat_unset_heartbeat_interval
                               (idmef_heartbeat_t *ptr);

idmef_heartbeat_get_heartbeat_interval ()

uint32_t *
idmef_heartbeat_get_heartbeat_interval
                               (idmef_heartbeat_t *ptr);

Get heartbeat_interval children of the idmef_heartbeat_t object.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

Returns

a pointer to a uint32_t object, or NULL if the children object is not set.


idmef_heartbeat_set_heartbeat_interval ()

void
idmef_heartbeat_set_heartbeat_interval
                               (idmef_heartbeat_t *ptr,
                                uint32_t heartbeat_interval);

Set heartbeat_interval object as a children of ptr . if ptr already contain an heartbeat_interval object, then it is destroyed, and updated to point to the provided heartbeat_interval object.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

heartbeat_interval

pointer to a uint32_t object.

 

idmef_heartbeat_new_heartbeat_interval ()

int
idmef_heartbeat_new_heartbeat_interval
                               (idmef_heartbeat_t *ptr,
                                uint32_t **ret);

Create a new heartbeat_interval object, children of idmef_heartbeat_t. If ptr already contain a uint32_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

ret

pointer to an address where to store the created uint32_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_heartbeat_get_next_additional_data ()

idmef_additional_data_t *
idmef_heartbeat_get_next_additional_data
                               (idmef_heartbeat_t *heartbeat,
                                idmef_additional_data_t *additional_data_cur);

Get the next idmef_additional_data_t object listed in ptr . When iterating over the idmef_additional_data_t object listed in ptr , object should be set to the latest returned idmef_additional_data_t object.

Parameters

heartbeat

pointer to a idmef_heartbeat_t object.

 

additional_data_cur

pointer to a idmef_additional_data_t object.

 

Returns

the next idmef_additional_data_t in the list.


idmef_heartbeat_set_additional_data ()

void
idmef_heartbeat_set_additional_data (idmef_heartbeat_t *ptr,
                                     idmef_additional_data_t *object,
                                     int pos);

Add object to position pos of ptr list of idmef_additional_data_t object.

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

object

pointer to a idmef_additional_data_t object.

 

pos

Position in the list.

 

idmef_heartbeat_new_additional_data ()

int
idmef_heartbeat_new_additional_data (idmef_heartbeat_t *ptr,
                                     idmef_additional_data_t **ret,
                                     int pos);

Create a new idmef_additional_data_t children of ptr , and add it to position pos of ptr list of idmef_additional_data_t object. The created idmef_additional_data_t object is stored in ret .

If pos is IDMEF_LIST_APPEND, object will be inserted at the tail of the list. If pos is IDMEF_LIST_PREPEND, object will be inserted at the head of the list.

Parameters

ptr

pointer to a idmef_heartbeat_t object.

 

ret

pointer to an address where to store the created idmef_additional_data_t object.

 

pos

position in the list.

 

Returns

0 on success, or a negative value if an error occured.


idmef_message_type_to_numeric ()

idmef_message_type_t
idmef_message_type_to_numeric (const char *name);

Parameters

name

pointer to an IDMEF string representation of a idmef_message_type_t value.

 

Returns

the numeric equivalent of name , or -1 if name is not valid.


idmef_message_type_to_string ()

const char *
idmef_message_type_to_string (idmef_message_type_t val);

Return the IDMEF string equivalent of val provided idmef_message_type_t value.

Parameters

val

an enumeration value for idmef_message_type_t.

 

Returns

a pointer to the string describing val , or NULL if val is invalid.


idmef_message_new ()

int
idmef_message_new (idmef_message_t **ret);

Create a new idmef_message_t object.

Parameters

ret

Pointer where to store the created idmef_message_t object.

 

Returns

0 on success, a negative value if an error occured.


idmef_message_copy ()

int
idmef_message_copy (const idmef_message_t *src,
                    idmef_message_t *dst);

Copy a new idmef_message_t object from src to dst .

Parameters

src

Source of the copy.

 

dst

Where to copy the object.

 

Returns

0 on success, a negative value if an error occured.


idmef_message_clone ()

int
idmef_message_clone (idmef_message_t *src,
                     idmef_message_t **dst);

Create a copy of src , and store it in dst .

Parameters

src

Object to be cloned.

 

dst

Address where to store the pointer to the cloned object.

 

Returns

0 on success, a negative value if an error occured.


idmef_message_ref ()

idmef_message_t *
idmef_message_ref (idmef_message_t *message);

Increase message reference count, so that it can be referenced multiple time.

Parameters

message

pointer to a idmef_message_t object.

 

Returns

a pointer to message .


idmef_message_destroy ()

void
idmef_message_destroy (idmef_message_t *ptr);

Destroy ptr and all of it's children. The objects are only destroyed if their reference count reach zero.

Parameters

ptr

pointer to a idmef_message_t object.

 

idmef_message_get_version ()

prelude_string_t *
idmef_message_get_version (idmef_message_t *ptr);

Get version children of the idmef_message_t object.

Parameters

ptr

pointer to a idmef_message_t object.

 

Returns

a pointer to a prelude_string_t object, or NULL if the children object is not set.


idmef_message_set_version ()

void
idmef_message_set_version (idmef_message_t *ptr,
                           prelude_string_t *version);

Set version object as a children of ptr . if ptr already contain an version object, then it is destroyed, and updated to point to the provided version object.

Parameters

ptr

pointer to a idmef_message_t object.

 

version

pointer to a prelude_string_t object.

 

idmef_message_new_version ()

int
idmef_message_new_version (idmef_message_t *ptr,
                           prelude_string_t **ret);

Create a new version object, children of idmef_message_t. If ptr already contain a prelude_string_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_message_t object.

 

ret

pointer to an address where to store the created prelude_string_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_message_get_type ()

idmef_message_type_t
idmef_message_get_type (idmef_message_t *ptr);

Access the type children of ptr .

Parameters

ptr

pointer to a idmef_message_t object.

 

Returns

a pointer to the idmef_message_type_t children, or NULL if it is not set.


idmef_message_get_alert ()

idmef_alert_t *
idmef_message_get_alert (idmef_message_t *ptr);

Access the alert children of ptr .

Parameters

ptr

pointer to a idmef_message_t object.

 

Returns

a pointer to the idmef_alert_t children, or NULL if it is not set.


idmef_message_set_alert ()

void
idmef_message_set_alert (idmef_message_t *ptr,
                         idmef_alert_t *alert);

Set alert object as a children of ptr . if ptr already contain a alert object, then it is destroyed, and updated to point to the provided alert object.

Parameters

ptr

pointer to a idmef_message_t object.

 

alert

pointer to a idmef_alert_t object.

 

idmef_message_new_alert ()

int
idmef_message_new_alert (idmef_message_t *ptr,
                         idmef_alert_t **ret);

Create a new idmef_alert_t object, children of idmef_message_t. If ptr already contain a idmef_alert_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_message_t object.

 

ret

pointer where to store the created idmef_alert_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_message_get_heartbeat ()

idmef_heartbeat_t *
idmef_message_get_heartbeat (idmef_message_t *ptr);

Access the heartbeat children of ptr .

Parameters

ptr

pointer to a idmef_message_t object.

 

Returns

a pointer to the idmef_heartbeat_t children, or NULL if it is not set.


idmef_message_set_heartbeat ()

void
idmef_message_set_heartbeat (idmef_message_t *ptr,
                             idmef_heartbeat_t *heartbeat);

Set heartbeat object as a children of ptr . if ptr already contain a heartbeat object, then it is destroyed, and updated to point to the provided heartbeat object.

Parameters

ptr

pointer to a idmef_message_t object.

 

heartbeat

pointer to a idmef_heartbeat_t object.

 

idmef_message_new_heartbeat ()

int
idmef_message_new_heartbeat (idmef_message_t *ptr,
                             idmef_heartbeat_t **ret);

Create a new idmef_heartbeat_t object, children of idmef_message_t. If ptr already contain a idmef_heartbeat_t object, then it is destroyed.

Parameters

ptr

pointer to a idmef_message_t object.

 

ret

pointer where to store the created idmef_heartbeat_t object.

 

Returns

0 on success, or a negative value if an error occured.


idmef_message_set_pmsg ()

void
idmef_message_set_pmsg (idmef_message_t *message,
                        prelude_msg_t *msg);

idmef_message_get_pmsg ()

prelude_msg_t *
idmef_message_get_pmsg (idmef_message_t *message);

idmef_action_compare ()

int
idmef_action_compare (const idmef_action_t *obj1,
                      const idmef_action_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_additional_data_compare ()

int
idmef_additional_data_compare (const idmef_additional_data_t *obj1,
                               const idmef_additional_data_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_address_compare ()

int
idmef_address_compare (const idmef_address_t *obj1,
                       const idmef_address_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_alert_compare ()

int
idmef_alert_compare (const idmef_alert_t *obj1,
                     const idmef_alert_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_alertident_compare ()

int
idmef_alertident_compare (const idmef_alertident_t *obj1,
                          const idmef_alertident_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_analyzer_compare ()

int
idmef_analyzer_compare (const idmef_analyzer_t *obj1,
                        const idmef_analyzer_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_assessment_compare ()

int
idmef_assessment_compare (const idmef_assessment_t *obj1,
                          const idmef_assessment_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_checksum_compare ()

int
idmef_checksum_compare (const idmef_checksum_t *obj1,
                        const idmef_checksum_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_classification_compare ()

int
idmef_classification_compare (const idmef_classification_t *obj1,
                              const idmef_classification_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_confidence_compare ()

int
idmef_confidence_compare (const idmef_confidence_t *obj1,
                          const idmef_confidence_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_correlation_alert_compare ()

int
idmef_correlation_alert_compare (const idmef_correlation_alert_t *obj1,
                                 const idmef_correlation_alert_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_data_compare ()

int
idmef_data_compare (const idmef_data_t *data1,
                    const idmef_data_t *data2);

idmef_file_access_compare ()

int
idmef_file_access_compare (const idmef_file_access_t *obj1,
                           const idmef_file_access_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_file_compare ()

int
idmef_file_compare (const idmef_file_t *obj1,
                    const idmef_file_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_heartbeat_compare ()

int
idmef_heartbeat_compare (const idmef_heartbeat_t *obj1,
                         const idmef_heartbeat_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_impact_compare ()

int
idmef_impact_compare (const idmef_impact_t *obj1,
                      const idmef_impact_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_inode_compare ()

int
idmef_inode_compare (const idmef_inode_t *obj1,
                     const idmef_inode_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_linkage_compare ()

int
idmef_linkage_compare (const idmef_linkage_t *obj1,
                       const idmef_linkage_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_message_compare ()

int
idmef_message_compare (const idmef_message_t *obj1,
                       const idmef_message_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_node_compare ()

int
idmef_node_compare (const idmef_node_t *obj1,
                    const idmef_node_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_overflow_alert_compare ()

int
idmef_overflow_alert_compare (const idmef_overflow_alert_t *obj1,
                              const idmef_overflow_alert_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_process_compare ()

int
idmef_process_compare (const idmef_process_t *obj1,
                       const idmef_process_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_reference_compare ()

int
idmef_reference_compare (const idmef_reference_t *obj1,
                         const idmef_reference_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_service_compare ()

int
idmef_service_compare (const idmef_service_t *obj1,
                       const idmef_service_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_snmp_service_compare ()

int
idmef_snmp_service_compare (const idmef_snmp_service_t *obj1,
                            const idmef_snmp_service_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_source_compare ()

int
idmef_source_compare (const idmef_source_t *obj1,
                      const idmef_source_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_target_compare ()

int
idmef_target_compare (const idmef_target_t *obj1,
                      const idmef_target_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_time_compare ()

int
idmef_time_compare (const idmef_time_t *time1,
                    const idmef_time_t *time2);

Parameters

time1

Pointer to an idmef_time_t object to compare with time2 .

 

time2

Pointer to an idmef_time_t object to compare with time1 .

 

Returns

0 if time1 and time2 match, 1 if time1 is greater than time2 , -1 if time1 is lesser than time2 .


idmef_tool_alert_compare ()

int
idmef_tool_alert_compare (const idmef_tool_alert_t *obj1,
                          const idmef_tool_alert_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_user_compare ()

int
idmef_user_compare (const idmef_user_t *obj1,
                    const idmef_user_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_user_id_compare ()

int
idmef_user_id_compare (const idmef_user_id_t *obj1,
                       const idmef_user_id_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.


idmef_web_service_compare ()

int
idmef_web_service_compare (const idmef_web_service_t *obj1,
                           const idmef_web_service_t *obj2);

Compare obj1 with obj2 .

Parameters

obj1

Object to compare with obj2 .

 

obj2

Object to compare with obj1 .

 

Returns

0 on match, a negative value on comparison failure.

Types and Values

IDMEF_LIST_APPEND

#define IDMEF_LIST_APPEND  INT_MAX

IDMEF_LIST_PREPEND

#define IDMEF_LIST_PREPEND (INT_MAX - 1)

enum idmef_additional_data_type_t

Members

IDMEF_ADDITIONAL_DATA_TYPE_ERROR

   

IDMEF_ADDITIONAL_DATA_TYPE_STRING

   

IDMEF_ADDITIONAL_DATA_TYPE_BYTE

   

IDMEF_ADDITIONAL_DATA_TYPE_CHARACTER

   

IDMEF_ADDITIONAL_DATA_TYPE_DATE_TIME

   

IDMEF_ADDITIONAL_DATA_TYPE_INTEGER

   

IDMEF_ADDITIONAL_DATA_TYPE_NTPSTAMP

   

IDMEF_ADDITIONAL_DATA_TYPE_PORTLIST

   

IDMEF_ADDITIONAL_DATA_TYPE_REAL

   

IDMEF_ADDITIONAL_DATA_TYPE_BOOLEAN

   

IDMEF_ADDITIONAL_DATA_TYPE_BYTE_STRING

   

IDMEF_ADDITIONAL_DATA_TYPE_XML

   

idmef_additional_data_t

typedef struct idmef_additional_data idmef_additional_data_t;

enum idmef_reference_origin_t

Members

IDMEF_REFERENCE_ORIGIN_ERROR

   

IDMEF_REFERENCE_ORIGIN_UNKNOWN

   

IDMEF_REFERENCE_ORIGIN_VENDOR_SPECIFIC

   

IDMEF_REFERENCE_ORIGIN_USER_SPECIFIC

   

IDMEF_REFERENCE_ORIGIN_BUGTRAQID

   

IDMEF_REFERENCE_ORIGIN_CVE

   

IDMEF_REFERENCE_ORIGIN_OSVDB

   

idmef_reference_t

typedef struct idmef_reference idmef_reference_t;

idmef_classification_t

typedef struct idmef_classification idmef_classification_t;

enum idmef_user_id_type_t

Members

IDMEF_USER_ID_TYPE_ORIGINAL_ERROR

   

IDMEF_USER_ID_TYPE_ORIGINAL_USER

   

IDMEF_USER_ID_TYPE_CURRENT_USER

   

IDMEF_USER_ID_TYPE_TARGET_USER

   

IDMEF_USER_ID_TYPE_USER_PRIVS

   

IDMEF_USER_ID_TYPE_CURRENT_GROUP

   

IDMEF_USER_ID_TYPE_GROUP_PRIVS

   

IDMEF_USER_ID_TYPE_OTHER_PRIVS

   

idmef_user_id_t

typedef struct idmef_user_id idmef_user_id_t;

enum idmef_user_category_t

Members

IDMEF_USER_CATEGORY_ERROR

   

IDMEF_USER_CATEGORY_UNKNOWN

   

IDMEF_USER_CATEGORY_APPLICATION

   

IDMEF_USER_CATEGORY_OS_DEVICE

   

idmef_user_t

typedef struct idmef_user idmef_user_t;

enum idmef_address_category_t

Members

IDMEF_ADDRESS_CATEGORY_ERROR

   

IDMEF_ADDRESS_CATEGORY_UNKNOWN

   

IDMEF_ADDRESS_CATEGORY_ATM

   

IDMEF_ADDRESS_CATEGORY_E_MAIL

   

IDMEF_ADDRESS_CATEGORY_LOTUS_NOTES

   

IDMEF_ADDRESS_CATEGORY_MAC

   

IDMEF_ADDRESS_CATEGORY_SNA

   

IDMEF_ADDRESS_CATEGORY_VM

   

IDMEF_ADDRESS_CATEGORY_IPV4_ADDR

   

IDMEF_ADDRESS_CATEGORY_IPV4_ADDR_HEX

   

IDMEF_ADDRESS_CATEGORY_IPV4_NET

   

IDMEF_ADDRESS_CATEGORY_IPV4_NET_MASK

   

IDMEF_ADDRESS_CATEGORY_IPV6_ADDR

   

IDMEF_ADDRESS_CATEGORY_IPV6_ADDR_HEX

   

IDMEF_ADDRESS_CATEGORY_IPV6_NET

   

IDMEF_ADDRESS_CATEGORY_IPV6_NET_MASK

   

idmef_address_t

typedef struct idmef_address idmef_address_t;

idmef_process_t

typedef struct idmef_process idmef_process_t;

idmef_web_service_t

typedef struct idmef_web_service idmef_web_service_t;

idmef_snmp_service_t

typedef struct idmef_snmp_service idmef_snmp_service_t;

enum idmef_service_type_t

Members

IDMEF_SERVICE_TYPE_ERROR

   

IDMEF_SERVICE_TYPE_DEFAULT

   

IDMEF_SERVICE_TYPE_WEB

   

IDMEF_SERVICE_TYPE_SNMP

   

idmef_service_t

typedef struct idmef_service idmef_service_t;

enum idmef_node_category_t

Members

IDMEF_NODE_CATEGORY_ERROR

   

IDMEF_NODE_CATEGORY_UNKNOWN

   

IDMEF_NODE_CATEGORY_ADS

   

IDMEF_NODE_CATEGORY_AFS

   

IDMEF_NODE_CATEGORY_CODA

   

IDMEF_NODE_CATEGORY_DFS

   

IDMEF_NODE_CATEGORY_DNS

   

IDMEF_NODE_CATEGORY_HOSTS

   

IDMEF_NODE_CATEGORY_KERBEROS

   

IDMEF_NODE_CATEGORY_NDS

   

IDMEF_NODE_CATEGORY_NIS

   

IDMEF_NODE_CATEGORY_NISPLUS

   

IDMEF_NODE_CATEGORY_NT

   

IDMEF_NODE_CATEGORY_WFW

   

idmef_node_t

typedef struct idmef_node idmef_node_t;

enum idmef_source_spoofed_t

Members

IDMEF_SOURCE_SPOOFED_ERROR

   

IDMEF_SOURCE_SPOOFED_UNKNOWN

   

IDMEF_SOURCE_SPOOFED_YES

   

IDMEF_SOURCE_SPOOFED_NO

   

idmef_source_t

typedef struct idmef_source idmef_source_t;

idmef_file_access_t

typedef struct idmef_file_access idmef_file_access_t;

idmef_inode_t

typedef struct idmef_inode idmef_inode_t;

idmef_linkage_t

typedef struct idmef_linkage idmef_linkage_t;

enum idmef_checksum_algorithm_t

Members

IDMEF_CHECKSUM_ALGORITHM_ERROR

   

IDMEF_CHECKSUM_ALGORITHM_MD4

   

IDMEF_CHECKSUM_ALGORITHM_MD5

   

IDMEF_CHECKSUM_ALGORITHM_SHA1

   

IDMEF_CHECKSUM_ALGORITHM_SHA2_256

   

IDMEF_CHECKSUM_ALGORITHM_SHA2_384

   

IDMEF_CHECKSUM_ALGORITHM_SHA2_512

   

IDMEF_CHECKSUM_ALGORITHM_CRC_32

   

IDMEF_CHECKSUM_ALGORITHM_HAVAL

   

IDMEF_CHECKSUM_ALGORITHM_TIGER

   

IDMEF_CHECKSUM_ALGORITHM_GOST

   

idmef_checksum_t

typedef struct idmef_checksum idmef_checksum_t;

enum idmef_file_category_t

Members

IDMEF_FILE_CATEGORY_ERROR

   

IDMEF_FILE_CATEGORY_CURRENT

   

IDMEF_FILE_CATEGORY_ORIGINAL

   

enum idmef_file_fstype_t

Members

IDMEF_FILE_FSTYPE_ERROR

   

IDMEF_FILE_FSTYPE_UFS

   

IDMEF_FILE_FSTYPE_EFS

   

IDMEF_FILE_FSTYPE_NFS

   

IDMEF_FILE_FSTYPE_AFS

   

IDMEF_FILE_FSTYPE_NTFS

   

IDMEF_FILE_FSTYPE_FAT16

   

IDMEF_FILE_FSTYPE_FAT32

   

IDMEF_FILE_FSTYPE_PCFS

   

IDMEF_FILE_FSTYPE_JOLIET

   

IDMEF_FILE_FSTYPE_ISO9660

   

idmef_file_t

typedef struct idmef_file idmef_file_t;

enum idmef_linkage_category_t

Members

IDMEF_LINKAGE_CATEGORY_ERROR

   

IDMEF_LINKAGE_CATEGORY_HARD_LINK

   

IDMEF_LINKAGE_CATEGORY_MOUNT_POINT

   

IDMEF_LINKAGE_CATEGORY_REPARSE_POINT

   

IDMEF_LINKAGE_CATEGORY_SHORTCUT

   

IDMEF_LINKAGE_CATEGORY_STREAM

   

IDMEF_LINKAGE_CATEGORY_SYMBOLIC_LINK

   

enum idmef_target_decoy_t

Members

IDMEF_TARGET_DECOY_ERROR

   

IDMEF_TARGET_DECOY_UNKNOWN

   

IDMEF_TARGET_DECOY_YES

   

IDMEF_TARGET_DECOY_NO

   

idmef_target_t

typedef struct idmef_target idmef_target_t;

idmef_analyzer_t

typedef struct idmef_analyzer idmef_analyzer_t;

idmef_alertident_t

typedef struct idmef_alertident idmef_alertident_t;

enum idmef_impact_severity_t

Members

IDMEF_IMPACT_SEVERITY_ERROR

   

IDMEF_IMPACT_SEVERITY_INFO

   

IDMEF_IMPACT_SEVERITY_LOW

   

IDMEF_IMPACT_SEVERITY_MEDIUM

   

IDMEF_IMPACT_SEVERITY_HIGH

   

enum idmef_impact_completion_t

Members

IDMEF_IMPACT_COMPLETION_ERROR

   

IDMEF_IMPACT_COMPLETION_FAILED

   

IDMEF_IMPACT_COMPLETION_SUCCEEDED

   

enum idmef_impact_type_t

Members

IDMEF_IMPACT_TYPE_ERROR

   

IDMEF_IMPACT_TYPE_OTHER

   

IDMEF_IMPACT_TYPE_ADMIN

   

IDMEF_IMPACT_TYPE_DOS

   

IDMEF_IMPACT_TYPE_FILE

   

IDMEF_IMPACT_TYPE_RECON

   

IDMEF_IMPACT_TYPE_USER

   

idmef_impact_t

typedef struct idmef_impact idmef_impact_t;

enum idmef_action_category_t

Members

IDMEF_ACTION_CATEGORY_ERROR

   

IDMEF_ACTION_CATEGORY_OTHER

   

IDMEF_ACTION_CATEGORY_BLOCK_INSTALLED

   

IDMEF_ACTION_CATEGORY_NOTIFICATION_SENT

   

IDMEF_ACTION_CATEGORY_TAKEN_OFFLINE

   

idmef_action_t

typedef struct idmef_action idmef_action_t;

enum idmef_confidence_rating_t

Members

IDMEF_CONFIDENCE_RATING_ERROR

   

IDMEF_CONFIDENCE_RATING_NUMERIC

   

IDMEF_CONFIDENCE_RATING_LOW

   

IDMEF_CONFIDENCE_RATING_MEDIUM

   

IDMEF_CONFIDENCE_RATING_HIGH

   

idmef_confidence_t

typedef struct idmef_confidence idmef_confidence_t;

idmef_assessment_t

typedef struct idmef_assessment idmef_assessment_t;

idmef_tool_alert_t

typedef struct idmef_tool_alert idmef_tool_alert_t;

idmef_correlation_alert_t

typedef struct idmef_correlation_alert idmef_correlation_alert_t;

idmef_overflow_alert_t

typedef struct idmef_overflow_alert idmef_overflow_alert_t;

enum idmef_alert_type_t

Members

IDMEF_ALERT_TYPE_ERROR

   

IDMEF_ALERT_TYPE_DEFAULT

   

IDMEF_ALERT_TYPE_TOOL

   

IDMEF_ALERT_TYPE_CORRELATION

   

IDMEF_ALERT_TYPE_OVERFLOW

   

idmef_alert_t

typedef struct idmef_alert idmef_alert_t;

idmef_heartbeat_t

typedef struct idmef_heartbeat idmef_heartbeat_t;

enum idmef_message_type_t

Members

IDMEF_MESSAGE_TYPE_ERROR

   

IDMEF_MESSAGE_TYPE_ALERT

   

IDMEF_MESSAGE_TYPE_HEARTBEAT

   

idmef_message_t

typedef struct idmef_message idmef_message_t;

IDMEF_CLASS_ID_ADDITIONAL_DATA_TYPE

#define IDMEF_CLASS_ID_ADDITIONAL_DATA_TYPE 3

IDMEF_CLASS_ID_ADDITIONAL_DATA

#define IDMEF_CLASS_ID_ADDITIONAL_DATA 4

IDMEF_CLASS_ID_REFERENCE_ORIGIN

#define IDMEF_CLASS_ID_REFERENCE_ORIGIN 5

IDMEF_CLASS_ID_REFERENCE

#define IDMEF_CLASS_ID_REFERENCE 50

IDMEF_CLASS_ID_CLASSIFICATION

#define IDMEF_CLASS_ID_CLASSIFICATION 6

IDMEF_CLASS_ID_USER_ID_TYPE

#define IDMEF_CLASS_ID_USER_ID_TYPE 7

IDMEF_CLASS_ID_USER_ID

#define IDMEF_CLASS_ID_USER_ID 8

IDMEF_CLASS_ID_USER_CATEGORY

#define IDMEF_CLASS_ID_USER_CATEGORY 9

IDMEF_CLASS_ID_USER

#define IDMEF_CLASS_ID_USER 10

IDMEF_CLASS_ID_ADDRESS_CATEGORY

#define IDMEF_CLASS_ID_ADDRESS_CATEGORY 11

IDMEF_CLASS_ID_ADDRESS

#define IDMEF_CLASS_ID_ADDRESS 12

IDMEF_CLASS_ID_PROCESS

#define IDMEF_CLASS_ID_PROCESS 13

IDMEF_CLASS_ID_WEB_SERVICE

#define IDMEF_CLASS_ID_WEB_SERVICE 14

IDMEF_CLASS_ID_SNMP_SERVICE

#define IDMEF_CLASS_ID_SNMP_SERVICE 15

IDMEF_CLASS_ID_SERVICE_TYPE

#define IDMEF_CLASS_ID_SERVICE_TYPE 16

IDMEF_CLASS_ID_SERVICE

#define IDMEF_CLASS_ID_SERVICE 17

IDMEF_CLASS_ID_NODE_CATEGORY

#define IDMEF_CLASS_ID_NODE_CATEGORY 18

IDMEF_CLASS_ID_NODE

#define IDMEF_CLASS_ID_NODE 19

IDMEF_CLASS_ID_SOURCE_SPOOFED

#define IDMEF_CLASS_ID_SOURCE_SPOOFED 20

IDMEF_CLASS_ID_SOURCE

#define IDMEF_CLASS_ID_SOURCE 21

IDMEF_CLASS_ID_FILE_ACCESS

#define IDMEF_CLASS_ID_FILE_ACCESS 22

IDMEF_CLASS_ID_INODE

#define IDMEF_CLASS_ID_INODE 23

IDMEF_CLASS_ID_CHECKSUM_ALGORITHM

#define IDMEF_CLASS_ID_CHECKSUM_ALGORITHM 53

IDMEF_CLASS_ID_CHECKSUM

#define IDMEF_CLASS_ID_CHECKSUM 52

IDMEF_CLASS_ID_FILE_CATEGORY

#define IDMEF_CLASS_ID_FILE_CATEGORY 24

IDMEF_CLASS_ID_FILE_FSTYPE

#define IDMEF_CLASS_ID_FILE_FSTYPE 25

IDMEF_CLASS_ID_FILE

#define IDMEF_CLASS_ID_FILE 26

IDMEF_CLASS_ID_LINKAGE_CATEGORY

#define IDMEF_CLASS_ID_LINKAGE_CATEGORY 27

IDMEF_CLASS_ID_LINKAGE

#define IDMEF_CLASS_ID_LINKAGE 28

IDMEF_CLASS_ID_TARGET_DECOY

#define IDMEF_CLASS_ID_TARGET_DECOY 29

IDMEF_CLASS_ID_TARGET

#define IDMEF_CLASS_ID_TARGET 30

IDMEF_CLASS_ID_ANALYZER

#define IDMEF_CLASS_ID_ANALYZER 31

IDMEF_CLASS_ID_ALERTIDENT

#define IDMEF_CLASS_ID_ALERTIDENT 32

IDMEF_CLASS_ID_IMPACT_SEVERITY

#define IDMEF_CLASS_ID_IMPACT_SEVERITY 33

IDMEF_CLASS_ID_IMPACT_COMPLETION

#define IDMEF_CLASS_ID_IMPACT_COMPLETION 34

IDMEF_CLASS_ID_IMPACT_TYPE

#define IDMEF_CLASS_ID_IMPACT_TYPE 35

IDMEF_CLASS_ID_IMPACT

#define IDMEF_CLASS_ID_IMPACT 36

IDMEF_CLASS_ID_ACTION_CATEGORY

#define IDMEF_CLASS_ID_ACTION_CATEGORY 37

IDMEF_CLASS_ID_ACTION

#define IDMEF_CLASS_ID_ACTION 38

IDMEF_CLASS_ID_CONFIDENCE_RATING

#define IDMEF_CLASS_ID_CONFIDENCE_RATING 39

IDMEF_CLASS_ID_CONFIDENCE

#define IDMEF_CLASS_ID_CONFIDENCE 40

IDMEF_CLASS_ID_ASSESSMENT

#define IDMEF_CLASS_ID_ASSESSMENT 41

IDMEF_CLASS_ID_TOOL_ALERT

#define IDMEF_CLASS_ID_TOOL_ALERT 42

IDMEF_CLASS_ID_CORRELATION_ALERT

#define IDMEF_CLASS_ID_CORRELATION_ALERT 43

IDMEF_CLASS_ID_OVERFLOW_ALERT

#define IDMEF_CLASS_ID_OVERFLOW_ALERT 44

IDMEF_CLASS_ID_ALERT_TYPE

#define IDMEF_CLASS_ID_ALERT_TYPE 45

IDMEF_CLASS_ID_ALERT

#define IDMEF_CLASS_ID_ALERT 46

IDMEF_CLASS_ID_HEARTBEAT

#define IDMEF_CLASS_ID_HEARTBEAT 47

IDMEF_CLASS_ID_MESSAGE_TYPE

#define IDMEF_CLASS_ID_MESSAGE_TYPE 48

IDMEF_CLASS_ID_MESSAGE

#define IDMEF_CLASS_ID_MESSAGE 49
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-client-profile.html0000644000000000000000000000011013726163660026704 xustar000000000000000024 mtime=1599662000.826 24 atime=1599662000.826 24 ctime=1599662000.827 libprelude-5.2.0/docs/api/html/libprelude-prelude-client-profile.html0000644000000000000000000015066613726163660025725 0ustar00rootroot00000000000000 prelude-client-profile: libprelude Reference Manual

prelude-client-profile

prelude-client-profile

Types and Values

Description

Functions

prelude_client_profile_new ()

int
prelude_client_profile_new (prelude_client_profile_t **ret,
                            const char *name);

Creates a new prelude_client_profile_t object and store its address into ret .

Parameters

ret

Pointer where to store the address of the created object.

 

name

Name for this profile.

 

Returns

0 on success or a negative value if an error occured.


prelude_client_profile_ref ()

prelude_client_profile_t *
prelude_client_profile_ref (prelude_client_profile_t *cp);

prelude_client_profile_destroy ()

void
prelude_client_profile_destroy (prelude_client_profile_t *cp);

Destroys cp .

Parameters

cp

Pointer to a prelude_client_profile_t.

 

prelude_client_profile_get_config_filename ()

void
prelude_client_profile_get_config_filename
                               (const prelude_client_profile_t *cp,
                                char *buf,
                                size_t size);

Writes the filename used to store cp configuration template.

Parameters

cp

pointer on a prelude_client_profile_t object.

 

buf

buffer to write the returned filename to.

 

size

size of buf .

 

prelude_client_profile_get_analyzerid_filename ()

void
prelude_client_profile_get_analyzerid_filename
                               (const prelude_client_profile_t *cp,
                                char *buf,
                                size_t size);

Writes the filename used to store cp unique and permanent analyzer ident.

Parameters

cp

pointer on a prelude_client_profile_t object.

 

buf

buffer to write the returned filename to.

 

size

size of buf .

 

prelude_client_profile_get_tls_key_filename ()

void
prelude_client_profile_get_tls_key_filename
                               (const prelude_client_profile_t *cp,
                                char *buf,
                                size_t size);

Writes the filename used to store cp private key.

Parameters

cp

pointer on a prelude_client_profile_t object.

 

buf

buffer to write the returned filename to.

 

size

size of buf .

 

prelude_client_profile_get_tls_server_ca_cert_filename ()

void
prelude_client_profile_get_tls_server_ca_cert_filename
                               (const prelude_client_profile_t *cp,
                                char *buf,
                                size_t size);

Writes the filename used to store cp related CA certificate. This only apply to cp receiving connection from analyzer (server).

Parameters

cp

pointer on a prelude_client_profile_t object.

 

buf

buffer to write the returned filename to.

 

size

size of buf .

 

prelude_client_profile_get_tls_server_keycert_filename ()

void
prelude_client_profile_get_tls_server_keycert_filename
                               (const prelude_client_profile_t *cp,
                                char *buf,
                                size_t size);

Writes the filename used to store certificate for cp server. This only apply to cp receiving connection from analyzer (server).

Parameters

cp

pointer on a prelude_client_profile_t object.

 

buf

buffer to write the returned filename to.

 

size

size of buf .

 

prelude_client_profile_get_tls_server_crl_filename ()

void
prelude_client_profile_get_tls_server_crl_filename
                               (const prelude_client_profile_t *cp,
                                char *buf,
                                size_t size);

Writes the filename used to store CRL for cp server. This only apply to cp receiving connection from analyzer (server).

Parameters

cp

pointer on a prelude_client_profile_t object.

 

buf

buffer to write the returned filename to.

 

size

size of buf .

 

prelude_client_profile_get_tls_client_keycert_filename ()

void
prelude_client_profile_get_tls_client_keycert_filename
                               (const prelude_client_profile_t *cp,
                                char *buf,
                                size_t size);

Writes the filename used to store public certificate for cp private key. This only apply to client connecting to a peer.

Parameters

cp

pointer on a prelude_client_profile_t object.

 

buf

buffer to write the returned filename to.

 

size

size of buf .

 

prelude_client_profile_get_tls_client_trusted_cert_filename ()

void
prelude_client_profile_get_tls_client_trusted_cert_filename
                               (const prelude_client_profile_t *cp,
                                char *buf,
                                size_t size);

Writes the filename used to store peers public certificates that cp trust. This only apply to client connecting to a peer.

Parameters

cp

pointer on a prelude_client_profile_t object.

 

buf

buffer to write the returned filename to.

 

size

size of buf .

 

prelude_client_profile_get_backup_dirname ()

void
prelude_client_profile_get_backup_dirname
                               (const prelude_client_profile_t *cp,
                                char *buf,
                                size_t size);

Writes the directory name where the profile for cp is stored. If cp is NULL or has no name, then this function will provide the main profile directory.

Parameters

cp

pointer on a prelude_client_profile_t object.

 

buf

buffer to write the returned filename to.

 

size

size of buf .

 

prelude_client_profile_get_profile_dirname ()

void
prelude_client_profile_get_profile_dirname
                               (const prelude_client_profile_t *cp,
                                char *buf,
                                size_t size);

prelude_client_profile_get_default_config_dirname ()

void
prelude_client_profile_get_default_config_dirname
                               (const prelude_client_profile_t *cp,
                                char *buf,
                                size_t size);

prelude_client_profile_set_prefix ()

int
prelude_client_profile_set_prefix (prelude_client_profile_t *cp,
                                   const char *prefix);

This function allow to dynamically change the prefix used to acess libprelude related file. This is particularly usefull in case of application running under certain condition (chroot).

Parameters

cp

pointer on a prelude_client_profile_t object.

 

prefix

Prefix to use for various libprelude files.

 

Returns

0 on success, a negative value if an error occured.


prelude_client_profile_get_prefix ()

void
prelude_client_profile_get_prefix (const prelude_client_profile_t *cp,
                                   char *buf,
                                   size_t size);

Retrieve current prefix used with this profile.

Parameters

cp

pointer on a prelude_client_profile_t object.

 

buf

buffer to write the returned filename to.

 

size

size of buf .

 

prelude_client_profile_set_uid ()

void
prelude_client_profile_set_uid (prelude_client_profile_t *cp,
                                prelude_uid_t uid);

Sets the UID used by cp to uid .

Parameters

cp

Pointer to a prelude_client_profile_t object.

 

uid

UID to be used by cp .

 

prelude_client_profile_get_uid ()

prelude_uid_t
prelude_client_profile_get_uid (const prelude_client_profile_t *cp);

Gets the UID associated with cp .

Parameters

cp

Pointer to a prelude_client_profile_t object.

 

Returns

the UID associated used by cp .


prelude_client_profile_set_gid ()

void
prelude_client_profile_set_gid (prelude_client_profile_t *cp,
                                prelude_uid_t gid);

Sets the GID used by cp to gid .

Parameters

cp

Pointer to a prelude_client_profile_t object.

 

gid

GID to be used by cp .

 

prelude_client_profile_get_gid ()

prelude_gid_t
prelude_client_profile_get_gid (const prelude_client_profile_t *cp);

Gets the GID associated with cp .

Parameters

cp

Pointer to a prelude_client_profile_t object.

 

Returns

the GID associated used by cp .


prelude_client_profile_set_name ()

int
prelude_client_profile_set_name (prelude_client_profile_t *cp,
                                 const char *name);

Sets the prelude client profile name.

Parameters

cp

Pointer to a prelude_client_profile_t object.

 

name

Name to associate the profile with.

 

Returns

0 on success or a negative value if an error occured.


prelude_client_profile_get_name ()

const char *
prelude_client_profile_get_name (const prelude_client_profile_t *cp);

Gets the name of cp client profile.

Parameters

cp

Pointer to a prelude_client_profile_t object.

 

Returns

the name used by cp .


prelude_client_profile_get_analyzerid ()

uint64_t
prelude_client_profile_get_analyzerid (const prelude_client_profile_t *cp);

Gets the unique and permanent analyzer ident associated with cp .

Parameters

cp

Pointer to a prelude_client_profile_t object.

 

Returns

the analyzer ident used by cp .


prelude_client_profile_set_analyzerid ()

void
prelude_client_profile_set_analyzerid (prelude_client_profile_t *cp,
                                       uint64_t analyzerid);

Sets the Analyzer ID used by cp to analyzerid .

Parameters

cp

Pointer to a prelude_client_profile_t object.

 

analyzerid

Analyzer ID to be used by cp .

 

prelude_client_profile_get_credentials ()

int
prelude_client_profile_get_credentials
                               (prelude_client_profile_t *cp,
                                void **credentials);

Types and Values

prelude_gid_t

typedef gid_t prelude_gid_t;

prelude_uid_t

typedef uid_t prelude_uid_t;

prelude_client_profile_t

typedef struct prelude_client_profile prelude_client_profile_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-connection-pool.html0000644000000000000000000000011013726163660027076 xustar000000000000000024 mtime=1599662000.831 24 atime=1599662000.831 24 ctime=1599662000.831 libprelude-5.2.0/docs/api/html/libprelude-prelude-connection-pool.html0000644000000000000000000016346013726163660026113 0ustar00rootroot00000000000000 prelude-connection-pool: libprelude Reference Manual

prelude-connection-pool

prelude-connection-pool

Description

Functions

prelude_connection_pool_broadcast ()

void
prelude_connection_pool_broadcast (prelude_connection_pool_t *pool,
                                   prelude_msg_t *msg);

Sends the message contained in msg to all the connection in pool .

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

msg

Pointer on a prelude_msg_t object.

 

prelude_connection_pool_broadcast_async ()

void
prelude_connection_pool_broadcast_async
                               (prelude_connection_pool_t *pool,
                                prelude_msg_t *msg);

Sends the message contained in msg to all connections in pool asynchronously. After the request is processed, the msg message will be freed.

Parameters

pool

Pointer to a prelude_connection_pool_t object

 

msg

Pointer on a prelude_msg_t object.

 

prelude_connection_pool_init ()

int
prelude_connection_pool_init (prelude_connection_pool_t *pool);

Initializes pool . This means that connection associated with pool using prelude_connection_pool_set_connection_string() will be established.

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

Returns

0 on success, a negative value on error.


prelude_connection_pool_new ()

int
prelude_connection_pool_new (prelude_connection_pool_t **ret,
                             prelude_client_profile_t *cp,
                             prelude_connection_permission_t permission);

prelude_connection_pool_new() initializes a new Connection Manager object.

Parameters

ret

Pointer to an address where to store the created prelude_connection_pool_t object.

 

cp

The prelude_client_profile_t to use for connection.

 

permission

Permission the connection in this connection-pool will require.

 

Returns

0 on success or a negative value if an error occured.


prelude_connection_pool_ref ()

prelude_connection_pool_t *
prelude_connection_pool_ref (prelude_connection_pool_t *pool);

Increases pool reference count.

prelude_connection_pool_destroy() will decrease the refcount until it reaches 0, at which point the pool will be destroyed.

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

Returns

The provided pool is returned.


prelude_connection_pool_get_connection_list ()

prelude_list_t *
prelude_connection_pool_get_connection_list
                               (prelude_connection_pool_t *pool);

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

Returns

The list of connections handled by pool .


prelude_connection_pool_add_connection ()

int
prelude_connection_pool_add_connection
                               (prelude_connection_pool_t *pool,
                                prelude_connection_t *cnx);

Adds cnx to pool set of connections.

If pool is already initialized (prelude_connection_pool_init() called) and cnx is not alive, it will attempt a reconnection.

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

cnx

Pointer to a prelude_connection_t object to add to pool .

 

Returns

0 on success, a negative value if an error occured.


prelude_connection_pool_del_connection ()

int
prelude_connection_pool_del_connection
                               (prelude_connection_pool_t *pool,
                                prelude_connection_t *cnx);

Remove cnx from pool of connections.

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

cnx

Pointer to a prelude_connection_t object to remove from pool .

 

Returns

0 on success, a negative value if an error occured.


prelude_connection_pool_set_connection_dead ()

int
prelude_connection_pool_set_connection_dead
                               (prelude_connection_pool_t *pool,
                                prelude_connection_t *cnx);

Notifies pool that the connection identified by cnx is dead.

Usually, this function should not be used since pool is self sufficient, and handles connections issues internally. However, it is sometime useful when the user has several mechanisms using the connection, and that its own mechanism detects a connection problem before pool notice.

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

cnx

Pointer to a prelude_connection_t object used within pool .

 

Returns

0 on success, a negative value if an error occured.


prelude_connection_pool_set_connection_alive ()

int
prelude_connection_pool_set_connection_alive
                               (prelude_connection_pool_t *pool,
                                prelude_connection_t *cnx);

Notifies pool that the connection identified by cnx went back alive.

Usually, this function should not be used since pool is self sufficient, and handles connection issues internally. However, it is sometime useful when the user has several mechanisms using the connection, and that its own mechanism detects a connection problem before pool notice.

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

cnx

Pointer to a prelude_connection_t object used within pool .

 

Returns

0 on success, a negative value if an error occured.


prelude_connection_pool_set_connection_string ()

int
prelude_connection_pool_set_connection_string
                               (prelude_connection_pool_t *pool,
                                const char *cfgstr);

Sets the connection string for pool . The connection string should be in the form of : "address". Special operand like || (OR) and && (AND), are also accepted: "address && address".

Where && means that alert sent using pool will go to both configured addresses, and || means that if the left address fails, the right address will be used.

prelude_connection_pool_init() should be used to initiates the connection.

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

cfgstr

Connection string.

 

Returns

0 on success, a negative value if an error occured.


prelude_connection_pool_get_connection_string ()

const char *
prelude_connection_pool_get_connection_string
                               (prelude_connection_pool_t *pool);

Used to query the connection string used by pool .

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

Returns

The connection string.


prelude_connection_pool_destroy ()

void
prelude_connection_pool_destroy (prelude_connection_pool_t *pool);

Destroys pool and all connections handled.

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

prelude_connection_pool_get_flags ()

prelude_connection_pool_flags_t
prelude_connection_pool_get_flags (prelude_connection_pool_t *pool);

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

Returns

the prelude_connection_pool_flags_t used in pool .


prelude_connection_pool_set_flags ()

void
prelude_connection_pool_set_flags (prelude_connection_pool_t *pool,
                                   prelude_connection_pool_flags_t flags);

Sets flags within pools .

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

flags

Flags to use for pool .

 

prelude_connection_pool_set_required_permission ()

void
prelude_connection_pool_set_required_permission
                               (prelude_connection_pool_t *pool,
                                prelude_connection_permission_t req_perm);

prelude_connection_pool_set_data ()

void
prelude_connection_pool_set_data (prelude_connection_pool_t *pool,
                                  void *data);

The user might use this function to associate data with pool . The data associated might be retrieved using prelude_connection_pool_get_data().

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

data

Pointer to user specific data.

 

prelude_connection_pool_get_data ()

void *
prelude_connection_pool_get_data (prelude_connection_pool_t *pool);

The user might use this function to query data associated with pool using prelude_connection_pool_set_data().

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

Returns

the user data associated to pool .


prelude_connection_pool_recv ()

int
prelude_connection_pool_recv (prelude_connection_pool_t *pool,
                              int timeout,
                              prelude_connection_t **outcon,
                              prelude_msg_t **outmsg);

This function queries the set of connections available in pool to see if events are waiting to be handled. If timeout is zero, then this function will return immediatly in case there is no event to be handled.

If timeout is -1, this function won't return until an event is available. Otherwise this function will return if there is no event after the specified number of second.

If an event is available, it will be read and store the prelude_connection_t object in the outcon pointer. If outmsg was specified, the message will be read and stored in there.

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

timeout

Time to wait for an event.

 

outcon

Pointer where the connection where an event happened should be stored.

 

outmsg

Pointer where the next message that will be read should be stored.

 

Returns

The number of handled events (0 or 1) or a negative value if an error occured.


prelude_connection_pool_check_event ()

int
prelude_connection_pool_check_event (prelude_connection_pool_t *pool,
                                     int timeout,
                                     int (*event_cb) (prelude_connection_pool_t *pool, prelude_connection_pool_event_t event, prelude_connection_t *cnx, void *extra),
                                     void *extra);

This function queries the set of connections available in pool to see if events are waiting to be handled. If timeout is zero, then this function will return immediatly in case there is no event to be handled.

If timeout is -1, this function won't return until an event is available. Otherwise this function will return if there is no event after the specified number of second.

For each event, event_cb is called with the concerned pool , the provided extra data, and the cnx where an event has occured.

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

timeout

Time to wait for an event.

 

event_cb

User provided callback function to call on received events.

 

extra

Pointer to user specific data provided to event_cb .

 

Returns

The number of handled events, or a negative value if an error occured.


prelude_connection_pool_set_global_event_handler ()

void
prelude_connection_pool_set_global_event_handler
                               (prelude_connection_pool_t *pool,
                                prelude_connection_pool_event_t wanted_events,
                                int (*callback) (prelude_connection_pool_t *pool, prelude_connection_pool_event_t events));

callback will be called each time one of the event specified in wanted_events happen to pool . However, contrary to prelude_connection_pool_set_event_handler(), the callback will be called only once per set of event.

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

wanted_events

Event the user want to be notified about.

 

callback

User specific callback to call when an event is available.

 

prelude_connection_pool_set_event_handler ()

void
prelude_connection_pool_set_event_handler
                               (prelude_connection_pool_t *pool,
                                prelude_connection_pool_event_t wanted_events,
                                int (*callback) (prelude_connection_pool_t *pool, prelude_connection_pool_event_t events, prelude_connection_t *cnx));

callback will be called each time one of the event specified in wanted_events happens to pool .

Parameters

pool

Pointer to a prelude_connection_pool_t object.

 

wanted_events

Event the user want to be notified about.

 

callback

User specific callback to call when an event is available.

 

Types and Values

enum prelude_connection_pool_flags_t

Members

PRELUDE_CONNECTION_POOL_FLAGS_RECONNECT

   

PRELUDE_CONNECTION_POOL_FLAGS_FAILOVER

   

enum prelude_connection_pool_event_t

Members

PRELUDE_CONNECTION_POOL_EVENT_INPUT

   

PRELUDE_CONNECTION_POOL_EVENT_DEAD

   

PRELUDE_CONNECTION_POOL_EVENT_ALIVE

   

prelude_connection_pool_t

typedef struct prelude_connection_pool prelude_connection_pool_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-inttypes.html0000644000000000000000000000011013726163660025647 xustar000000000000000024 mtime=1599662000.837 24 atime=1599662000.837 24 ctime=1599662000.837 libprelude-5.2.0/docs/api/html/libprelude-prelude-inttypes.html0000644000000000000000000005414613726163660024664 0ustar00rootroot00000000000000 prelude-inttypes: libprelude Reference Manual

prelude-inttypes

prelude-inttypes

Types and Values

Description

Functions

Types and Values

PRELUDE_INT8_MIN

#define PRELUDE_INT8_MIN               (-128)

PRELUDE_INT16_MIN

#define PRELUDE_INT16_MIN              (-32767 - 1)

PRELUDE_INT32_MIN

#define PRELUDE_INT32_MIN              (-2147483647 - 1)

PRELUDE_INT64_MIN

#define PRELUDE_INT64_MIN              (-__PRELUDE_INT64_SUFFIX(9223372036854775807) - 1)

PRELUDE_INT8_MAX

#define PRELUDE_INT8_MAX               (127)

PRELUDE_INT16_MAX

#define PRELUDE_INT16_MAX              (32767)

PRELUDE_INT32_MAX

#define PRELUDE_INT32_MAX              (2147483647)

PRELUDE_INT64_MAX

#define PRELUDE_INT64_MAX              (__PRELUDE_INT64_SUFFIX(9223372036854775807))

PRELUDE_UINT8_MAX

#define PRELUDE_UINT8_MAX              (255)

PRELUDE_UINT16_MAX

#define PRELUDE_UINT16_MAX             (65535)

PRELUDE_UINT32_MAX

#define PRELUDE_UINT32_MAX             (4294967295U)

PRELUDE_UINT64_MAX

#define PRELUDE_UINT64_MAX             (__PRELUDE_UINT64_SUFFIX(18446744073709551615))

PRELUDE_INTMAX_MIN

#define PRELUDE_INTMAX_MIN             INT64_MIN

PRELUDE_INTMAX_MAX

#define PRELUDE_INTMAX_MAX             INT64_MAX

PRELUDE_UINTMAX_MAX

#define PRELUDE_UINTMAX_MAX            UINT64_MAX

PRELUDE_PRId64

#define PRELUDE_PRId64      __PRELUDE_64BIT_FORMAT_PREFIX "d"

PRELUDE_PRIi64

#define PRELUDE_PRIi64      __PRELUDE_64BIT_FORMAT_PREFIX "i"

PRELUDE_PRIo64

#define PRELUDE_PRIo64      __PRELUDE_64BIT_FORMAT_PREFIX "o"

PRELUDE_PRIx64

#define PRELUDE_PRIx64      __PRELUDE_64BIT_FORMAT_PREFIX "x"

PRELUDE_PRIX64

#define PRELUDE_PRIX64      __PRELUDE_64BIT_FORMAT_PREFIX "X"

PRELUDE_PRIu64

#define PRELUDE_PRIu64      __PRELUDE_64BIT_FORMAT_PREFIX "u"

PRELUDE_PRId32

#define PRELUDE_PRId32      "d"

PRELUDE_PRIi32

#define PRELUDE_PRIi32      "i"

PRELUDE_PRIo32

#define PRELUDE_PRIo32      "o"

PRELUDE_PRIx32

#define PRELUDE_PRIx32      "x"

PRELUDE_PRIX32

#define PRELUDE_PRIX32      "X"

PRELUDE_PRIu32

#define PRELUDE_PRIu32      "u"

PRELUDE_PRId16

#define PRELUDE_PRId16      "d"

PRELUDE_PRIi16

#define PRELUDE_PRIi16      "i"

PRELUDE_PRIo16

#define PRELUDE_PRIo16      "o"

PRELUDE_PRIx16

#define PRELUDE_PRIx16      "x"

PRELUDE_PRIX16

#define PRELUDE_PRIX16      "X"

PRELUDE_PRIu16

#define PRELUDE_PRIu16      "u"

PRELUDE_PRId8

#define PRELUDE_PRId8       "d"

PRELUDE_PRIi8

#define PRELUDE_PRIi8       "i"

PRELUDE_PRIo8

#define PRELUDE_PRIo8       "o"

PRELUDE_PRIx8

#define PRELUDE_PRIx8       "x"

PRELUDE_PRIX8

#define PRELUDE_PRIX8       "X"

PRELUDE_PRIu8

#define PRELUDE_PRIu8       "u"

PRELUDE_SCNd64

#define PRELUDE_SCNd64      __PRELUDE_64BIT_FORMAT_PREFIX "d"

PRELUDE_SCNi64

#define PRELUDE_SCNi64      __PRELUDE_64BIT_FORMAT_PREFIX "i"

PRELUDE_SCNo64

#define PRELUDE_SCNo64      __PRELUDE_64BIT_FORMAT_PREFIX "o"

PRELUDE_SCNx64

#define PRELUDE_SCNx64      __PRELUDE_64BIT_FORMAT_PREFIX "x"

PRELUDE_SCNu64

#define PRELUDE_SCNu64      __PRELUDE_64BIT_FORMAT_PREFIX "u"

enum prelude_bool_t

Members

PRELUDE_BOOL_TRUE

   

PRELUDE_BOOL_FALSE

   

int8_t

 typedef signed char int8_t;

uint8_t

 typedef unsigned char uint8_t;

int16_t

 typedef short int16_t;

uint16_t

 typedef unsigned short uint16_t;

int32_t

 typedef int int32_t;

uint32_t

 typedef unsigned int uint32_t;

int64_t

  typedef long int64_t;

uint64_t

  typedef unsigned long uint64_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-io.html0000644000000000000000000000011013726163660024377 xustar000000000000000024 mtime=1599662000.839 24 atime=1599662000.839 24 ctime=1599662000.839 libprelude-5.2.0/docs/api/html/libprelude-prelude-io.html0000644000000000000000000013227413726163660023413 0ustar00rootroot00000000000000 prelude-io: libprelude Reference Manual

prelude-io

prelude-io

Types and Values

typedef prelude_io_t

Description

Functions

prelude_io_new ()

int
prelude_io_new (prelude_io_t **ret);

Create a new prelude IO object.

Parameters

ret

Pointer where to store the created prelude_io_t object.

 

Returns

0 on success, or a negative value if an error occur.


prelude_io_destroy ()

void
prelude_io_destroy (prelude_io_t *pio);

Destroy the pio object.

Parameters

pio

Pointer to a prelude_io_t object.

 

prelude_io_set_file_io ()

void
prelude_io_set_file_io (prelude_io_t *pio,
                        FILE *fd);

Setup the pio object to work with file I/O function. The pio object is then associated with fd .

Parameters

pio

A pointer on the prelude_io_t object.

 

fd

File descriptor identifying a file.

 

prelude_io_set_tls_io ()

void
prelude_io_set_tls_io (prelude_io_t *pio,
                       void *tls);

Setup the pio object to work with TLS based I/O function. The pio object is then associated with tls .

Parameters

pio

A pointer on the prelude_io_t object.

 

tls

Pointer on the TLS structure holding the TLS connection data.

 

prelude_io_set_sys_io ()

void
prelude_io_set_sys_io (prelude_io_t *pio,
                       int fd);

Setup the pio object to work with system based I/O function. The pio object is then associated with fd .

Parameters

pio

A pointer on the prelude_io_t object.

 

fd

A file descriptor.

 

prelude_io_set_buffer_io ()

int
prelude_io_set_buffer_io (prelude_io_t *pio);

prelude_io_set_fdptr ()

void
prelude_io_set_fdptr (prelude_io_t *pio,
                      void *ptr);

Set an user defined pointer that might be retrieved using prelude_io_get_fdptr().

Parameters

pio

Pointer to a prelude_io_t object.

 

ptr

Pointer to user defined data.

 

prelude_io_set_pending_callback ()

void
prelude_io_set_pending_callback (prelude_io_t *pio,
                                 ssize_t (*pending) (prelude_io_t *io));

Set an user defined read callback function to be called on prelude_io_pending().

Parameters

pio

Pointer to a prelude_io_t object.

 

pending

Callback function to be called on prelude_io_pending().

 

prelude_io_set_read_callback ()

void
prelude_io_set_read_callback (prelude_io_t *pio,
                              ssize_t (*read) (prelude_io_t *io, void *buf, size_t count));

Set an user defined read callback function to be called on prelude_io_read().

Parameters

pio

Pointer to a prelude_io_t object.

 

read

Callback function to be called on prelude_io_read().

 

prelude_io_set_write_callback ()

void
prelude_io_set_write_callback (prelude_io_t *pio,
                               ssize_t (*write) (prelude_io_t *io, const void *buf, size_t count));

Set an user defined write callback function to be called on prelude_io_write().

Parameters

pio

Pointer to a prelude_io_t object.

 

write

Callback function to be called on prelude_io_write().

 

prelude_io_close ()

int
prelude_io_close (prelude_io_t *pio);

prelude_io_close() closes the file descriptor indentified by pio ,

The case where the close() function would be interrupted by a signal is handled internally. So you don't have to check for EINTR.

However, and especially when the underlaying layer is TLS, prelude_io_close() might return error. If this happen, you should continue calling the function until it return zero.

Parameters

pio

Pointer to a prelude_io_t object.

 

Returns

zero on success, or -1 if an error occurred.


prelude_io_read ()

ssize_t
prelude_io_read (prelude_io_t *pio,
                 void *buf,
                 size_t count);

prelude_io_read() attempts to read up to count bytes from the file descriptor identified by pio into the buffer starting at buf .

If count is zero, prelude_io_read() returns zero and has no other results. If count is greater than SSIZE_MAX, the result is unspecified.

The case where the read function would be interrupted by a signal is handled internally. So you don't have to check for EINTR.

Parameters

pio

Pointer to a prelude_io_t object.

 

buf

Pointer to the buffer to store data into.

 

count

Number of bytes to read.

 

Returns

On success, the number of bytes read is returned (zero indicates end of file). It is not an error if this number is smaller than the number of bytes requested; this may happen for example because fewer bytes are actually available right now or because read() was interrupted by a signal.

On error, a negative value is returned. In this case it is left unspecified whether the file position (if any) changes.


prelude_io_read_wait ()

ssize_t
prelude_io_read_wait (prelude_io_t *pio,
                      void *buf,
                      size_t count);

prelude_io_read_wait() attempts to read up to count bytes from the file descriptor identified by pio into the buffer starting at buf .

If count is zero, prelude_io_read() returns zero and has no other results. If count is greater than SSIZE_MAX, the result is unspecified.

The case where the read function would be interrupted by a signal is handled internally. So you don't have to check for EINTR.

prelude_io_read_wait() always return the number of bytes requested. Be carefull that this function is blocking.

Parameters

pio

Pointer to a prelude_io_t object.

 

buf

Pointer to the buffer to store data into.

 

count

Number of bytes to read.

 

Returns

On success, the number of bytes read is returned (zero indicates end of file).

On error, -1 is returned, and errno is set appropriately. In this case it is left unspecified whether the file position (if any) changes.


prelude_io_read_delimited ()

ssize_t
prelude_io_read_delimited (prelude_io_t *pio,
                           unsigned char **buf);

prelude_io_read_delimited() read message written by prelude_write_delimited(). Theses messages are sents along with the len of the message.

Uppon return the buf argument is updated to point on a newly allocated buffer containing the data read. The count argument is set to the number of bytes the message was containing.

The case where the read function would be interrupted by a signal is handled internally. So you don't have to check for EINTR.

Parameters

pio

Pointer to a prelude_io_t object.

 

buf

Pointer to the address of a buffer to store address of data into.

 

Returns

On success, the number of bytes read is returned (zero indicates end of file).

On error, -1 is returned, and errno is set appropriately. In this case it is left unspecified whether the file position (if any) changes.


prelude_io_write ()

ssize_t
prelude_io_write (prelude_io_t *pio,
                  const void *buf,
                  size_t count);

prelude_io_write() writes up to count bytes to the file descriptor identified by pio from the buffer starting at buf . POSIX requires that a read() which can be proved to occur after a write() has returned returns the new data. Note that not all file systems are POSIX conforming.

The case where the write() function would be interrupted by a signal is handled internally. So you don't have to check for EINTR.

Parameters

pio

Pointer to a prelude_io_t object.

 

buf

Pointer to the buffer to write data from.

 

count

Number of bytes to write.

 

Returns

On success, the number of bytes written are returned (zero indicates nothing was written). On error, -1 is returned, and errno is set appropriately. If count is zero and the file descriptor refers to a regular file, 0 will be returned without causing any other effect. For a special file, the results are not portable.


prelude_io_write_delimited ()

ssize_t
prelude_io_write_delimited (prelude_io_t *pio,
                            const void *buf,
                            uint16_t count);

prelude_io_write_delimited() writes up to count bytes to the file descriptor identified by pio from the buffer starting at buf . POSIX requires that a read() which can be proved to occur after a write() has returned returns the new data. Note that not all file systems are POSIX conforming.

prelude_io_write_delimited() also write the len of the data to be sent. which allow prelude_io_read_delimited() to safely know if it got all the data a given write contain.

The case where the write() function would be interrupted by a signal is handled internally. So you don't have to check for EINTR.

Parameters

pio

Pointer to a prelude_io_t object.

 

buf

Pointer to the buffer to write data from.

 

count

Number of bytes to write.

 

Returns

On success, the number of bytes written are returned (zero indicates nothing was written). On error, -1 is returned, and errno is set appropriately.


prelude_io_forward ()

ssize_t
prelude_io_forward (prelude_io_t *dst,
                    prelude_io_t *src,
                    size_t count);

prelude_io_forward() attempts to transfer up to count bytes from the file descriptor identified by src into the file descriptor identified by dst .

Parameters

src

Pointer to a prelude_io_t object.

 

dst

Pointer to a prelude_io_t object.

 

count

Number of byte to forward from src to dst .

 

Returns

If the transfer was successful, the number of bytes written to dst is returned. On error, -1 is returned, and errno is set appropriately.


prelude_io_get_fd ()

int
prelude_io_get_fd (prelude_io_t *pio);

Parameters

pio

A pointer on a prelude_io_t object.

 

Returns

The FD associated with this object.


prelude_io_get_fdptr ()

void *
prelude_io_get_fdptr (prelude_io_t *pio);

Parameters

pio

A pointer on a prelude_io_t object.

 

Returns

Pointer associated with this object (file, tls, buffer, or NULL).


prelude_io_pending ()

ssize_t
prelude_io_pending (prelude_io_t *pio);

prelude_io_pending return the number of bytes waiting to be read on an TLS or socket fd.

Parameters

pio

Pointer to a prelude_io_t object.

 

Returns

Number of byte waiting to be read on pio , or -1 if pio is not of type TLS or socket.


prelude_io_is_error_fatal ()

prelude_bool_t
prelude_io_is_error_fatal (prelude_io_t *pio,
                           int error);

Check whether the returned error is fatal, or not.

Parameters

pio

Pointer to a prelude_io_t object.

 

error

Error returned by one of the prelude_io_t function.

 

Returns

TRUE if error is fatal, FALSE if it is not.

Types and Values

prelude_io_t

typedef struct prelude_io prelude_io_t;
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-option-wide.html0000644000000000000000000000011013726163660026226 xustar000000000000000024 mtime=1599662000.846 24 atime=1599662000.846 24 ctime=1599662000.846 libprelude-5.2.0/docs/api/html/libprelude-prelude-option-wide.html0000644000000000000000000002225513726163660025237 0ustar00rootroot00000000000000 prelude-option-wide: libprelude Reference Manual

prelude-option-wide

prelude-option-wide

Description

Functions

prelude_option_push_request ()

int
prelude_option_push_request (prelude_msgbuf_t *msg,
                             int type,
                             const char *request);

prelude_option_new_request ()

int
prelude_option_new_request (prelude_msgbuf_t *msgbuf,
                            uint32_t request_id,
                            uint64_t *target_id,
                            size_t size);

prelude_option_process_request ()

int
prelude_option_process_request (prelude_client_t *client,
                                prelude_msg_t *msg,
                                prelude_msgbuf_t *reply);

prelude_option_recv_reply ()

int
prelude_option_recv_reply (prelude_msg_t *msg,
                           uint64_t *source_id,
                           uint32_t *request_id,
                           void **value);

Types and Values

PRELUDE_OPTION_REPLY_TYPE_SET

#define PRELUDE_OPTION_REPLY_TYPE_SET   0x01

PRELUDE_OPTION_REPLY_TYPE_GET

#define PRELUDE_OPTION_REPLY_TYPE_GET   0x02

PRELUDE_OPTION_REPLY_TYPE_LIST

#define PRELUDE_OPTION_REPLY_TYPE_LIST  0x04

PRELUDE_OPTION_REPLY_TYPE_ERROR

#define PRELUDE_OPTION_REPLY_TYPE_ERROR 0x08
libprelude-5.2.0/docs/api/html/PaxHeaders.14770/libprelude-prelude-timer.html0000644000000000000000000000011013726163660025110 xustar000000000000000024 mtime=1599662000.854 24 atime=1599662000.854 24 ctime=1599662000.854 libprelude-5.2.0/docs/api/html/libprelude-prelude-timer.html0000644000000000000000000003507713726163660024127 0ustar00rootroot00000000000000 prelude-timer: libprelude Reference Manual

prelude-timer

prelude-timer

Types and Values

Description

Functions

prelude_timer_get_expire()

#define prelude_timer_get_expire(timer) (timer)->expire

prelude_timer_get_data()

#define prelude_timer_get_data(timer) (timer)->data

prelude_timer_get_callback()

#define prelude_timer_get_callback(timer) (timer)->function

prelude_timer_set_expire()

#define prelude_timer_set_expire(timer, x) prelude_timer_get_expire((timer)) = (x)

prelude_timer_set_data()

#define prelude_timer_set_data(timer, x) prelude_timer_get_data((timer)) = (x)

prelude_timer_set_callback()

#define prelude_timer_set_callback(timer, x) prelude_timer_get_callback((timer)) = (x)

prelude_timer_init ()

void
prelude_timer_init (prelude_timer_t *timer);

Initialize a timer (add it to the timer list).

Parameters

timer

timer to initialize.

 

prelude_timer_init_list ()

void
prelude_timer_init_list (prelude_timer_t *timer);

Initialize timer list member. This is useful if you're going to call prelude_timer_destroy() on timer for which prelude_timer_init() was never called.

Parameters

timer

Pointer to a prelude_timer_t object.

 

prelude_timer_reset ()

void
prelude_timer_reset (prelude_timer_t *timer);

Reset timer 'timer', as if it was just started.

Parameters

timer

the timer to reset.

 

prelude_timer_destroy ()

void
prelude_timer_destroy (prelude_timer_t *timer);

Destroy the timer 'timer', this remove it from the active timer list.

Parameters

timer

the timer to destroy.

 

prelude_timer_wake_up ()

int
prelude_timer_wake_up (void);

Wake up timer that need it. This function should be called every second to work properly.

Returns

Number of second in which prelude_timer_wake_up() should be called again.


prelude_timer_flush ()

void
prelude_timer_flush (void);

Expire every timer.


prelude_timer_lock_critical_region ()

void
prelude_timer_lock_critical_region (void);

Deactivate timer wake-up until timer_unlock_critical_region() is called.


prelude_timer_unlock_critical_region ()

void
prelude_timer_unlock_critical_region (void);

Reactivate timer wake-up after timer_lock_critical_regions() has been called.

Types and Values

prelude_timer_t

typedef struct {
        prelude_list_t list;

        int expire;
        time_t start_time;

        void *data;
        void (*function)(void *data);
} prelude_timer_t;
libprelude-5.2.0/docs/api/PaxHeaders.14770/libprelude.types0000644000000000000000000000011013726163660021570 xustar000000000000000024 mtime=1599662000.639 24 atime=1599662000.639 24 ctime=1599662000.639 libprelude-5.2.0/docs/api/libprelude.types0000644000000000000000000000000013726163660020561 0ustar00rootroot00000000000000libprelude-5.2.0/docs/PaxHeaders.14770/manpages0000644000000000000000000000010713726163660017326 xustar000000000000000024 mtime=1599662000.904 23 atime=1599662006.65 24 ctime=1599662000.904 libprelude-5.2.0/docs/manpages/0000755000000000000000000000000013726163660016400 5ustar00rootroot00000000000000libprelude-5.2.0/docs/manpages/PaxHeaders.14770/Makefile.in0000644000000000000000000000010713726163514021446 xustar000000000000000024 mtime=1599661900.501 23 atime=1599661945.76 24 ctime=1599662000.899 libprelude-5.2.0/docs/manpages/Makefile.in0000644000000000000000000016261013726163514020451 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = docs/manpages DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(dist_man_MANS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(dist_man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dist_man_MANS = prelude-admin.1 libprelude-config.1 all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/manpages/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu docs/manpages/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(dist_man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(dist_man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-man \ uninstall-man1 -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/docs/manpages/PaxHeaders.14770/Makefile.am0000644000000000000000000000010513726163410021426 xustar000000000000000023 mtime=1599661832.53 24 atime=1599661832.739 22 ctime=1599662000.9 libprelude-5.2.0/docs/manpages/Makefile.am0000644000000000000000000000012413726163410020422 0ustar00rootroot00000000000000dist_man_MANS = prelude-admin.1 libprelude-config.1 -include $(top_srcdir)/git.mk libprelude-5.2.0/docs/manpages/PaxHeaders.14770/prelude-admin.10000644000000000000000000000010713726163410022204 xustar000000000000000023 mtime=1599661832.53 24 atime=1599661832.739 24 ctime=1599662000.902 libprelude-5.2.0/docs/manpages/prelude-admin.10000644000000000000000000001224613726163410021206 0ustar00rootroot00000000000000.TH "prelude-admin" 1 "19 June 2007" .SH NAME prelude-admin \- Manage agents accounts .SH SYNOPSIS .B prelude-admin [options] [args] .B prelude-admin add [--uid UID] [--gid GID] .B prelude-admin chown [--uid UID] [--gid GID] .B prelude-admin del .B prelude-admin rename .B prelude-admin register [--uid UID] [--gid GID] [--passwd=PASSWD>] [--passwd-file=] .B prelude-admin registration-server [--uid UID] [--gid GID] [--prompt] [--passwd=PASSWD>] [--passwd-file=] [--keepalive] [--no-confirm] [--listen] .B prelude-admin revoke [--uid UID] [--gid GID] .SH DESCRIPTION In order for an agent to communicate with a manager, it must be registered. Registration involves several steps: - Allocating a unique identity for the agent - Creating directory to be used by the agent (example: failover purpose) - Registering to a remote 'prelude-manager': get a signed X509 certificate that will allow communication between agent and manager using the specified permissions. All this information is stored in an agent profile. An agent profile is identified by its name. When an agent is started, it will load the profile of the same name as the program itself, that is, if your agent is named "prelude-lml", the agent will load the profile named "prelude-lml". The name of the profile can be overridden using the '--prelude --profile name_of_my_profile' command line option. It is possible to define the profile name so that you can have several instances of one agent running with different permissions, using different profiles. Note that profiles are not specific to agents, but are used in all programs of the Prelude suite (agents, managers, etc). If you are not sure which permission your agent should get, just start it and default permissions will be displayed. .SH OPTIONS .B is the default name of the agent you are installing or your own defined name. If you start your agent without prior registration, a warning is displayed including the default profile name on how to register the agent. .B is the permission your agent needs. It is composed of permission attributes (idmef or admin) and access type: read/write (r/w). By default, an agent need permissions for writing IDMEF to a manager, and reading administrative command sent to it. That is: "idmef:w admin:r". .B is the address of the prelude-manager you wish to register. This can either be its IP address or its hostname. If you made a local installation, you can write localhost to connect via unix socket. Remember to use the correct uid/gid when registering your agent. For instance, if you want to register snort (running with snort euid / egid), use --uid snort --gid snort. .TP 5 .B add Setup a new agent user. .B --uid=UID UID or user to use to setup agent files. .B --gid=GID GID or group to use to setup agent files. .TP .B chown Change analyzer owner. .B --uid=UID UID or user to use to setup agent files. .B --gid=GID GID or group to use to setup agent files. .TP .B del The delete command will remove the agent files created through "add" command. Once this is done, the analyzer can't be used unless "register" or "add" is called again. .TP .B rename Rename an existing analyzer. .TP .B register Register an analyzer. Register and create the analyzer basic setup if needed. It will also configure communication of this analyzer with a receiving analyzer (like a Manager) through the specified registration-server. .B --uid=UID UID or user to use to setup analyzer files. .B --gid=GID GID or group to use to setup analyzer files. .B --passwd=PASSWD Use provided password instead of prompting it. .B --passwd-file=-|FILE Read password from file instead of prompting it (- for stdin). .TP .B registration-server Start a registration server to register agents. This is used in order to register 'sending' analyzer to 'receiving' analyzer. should be set to the profile name of the 'receiving' analyzer, the one where 'sending' analyzer will register to. .B --uid=UID UID or user to use to setup 'receiving' analyzer files. .B --gid=GID GID or group to use to setup 'receiving' analyzer files. .B --prompt Prompt for a password instead of auto generating it. .B --passwd=PASSWD Use provided password instead of auto generating it. .B --passwd-file=-|FILE Read password from file instead of auto generating it (- for stdin). .B --keepalive Register analyzer in an infinite loop. .B --no-confirm Do not ask for confirmation on agent registration. .B --listen Address to listen on for registration request (default is any:5553). .TP .B revoke Revoke access to for the given analyzerID. .B --uid=UID UID or user to use to setup analyzer files. .B --gid=GID GID to group to use to setup analyzer files. .TP .B --help Print help .SH AUTHOR This man page has been written by Frederic Motte libprelude-5.2.0/docs/manpages/PaxHeaders.14770/libprelude-config.10000644000000000000000000000010713726163410023050 xustar000000000000000023 mtime=1599661832.53 24 atime=1599661832.739 24 ctime=1599662000.904 libprelude-5.2.0/docs/manpages/libprelude-config.10000644000000000000000000000345713726163410022056 0ustar00rootroot00000000000000.TH "libprelude-config" 1 "2 May 2016" .SH NAME libprelude\-config \- helper script for building with libprelude .LP .SH SYNOPSIS .B libprelude\-config [options] .SH DESCRIPTION .B libprelude-config is a simple shell script used to determine the compiler and linker flags that should be used to compile and link programs that use the libprelude library. .SH OPTIONS .TP 15 .PD 0 .B \-\-prefix=dir If specified, use dir instead of the installation prefix that the library was built with, when computing the output for the \-\-cflags and \-\-libs options. This option must be specified before any \-\-libs or \-\-cflags options. This option is also used for the exec prefix if the \-\-exec-prefix option is not specified. .TP .PD 0 .B \-\-exec\-prefix=dir If specified, use dir instead of the exec installation prefix that the library was built with, when computing the output for the \-\-cflags and \-\-libs options. This option must be specified before any \-\-libs or \-\-cflags options. .TP .PD 0 .B \-\-config\-prefix Print the directory prefix where libprelude configuration is installed on the standard output. .TP .PD 0 .B \-\-version Print the currently installed version of the library on the standard output. .TP .PD 0 .B \-\-c++ If specified, indicate that the linkage will be done with a C++ library .TP .PD 0 .B \-\-libs Print the linker flags that are necessary to link with the specified library. .TP .PD 0 .B \-\-ldflags Print the LDflags that are necessary to compile a program using the specified library. .TP .PD 0 .B \-\-cflags Print the compiler flags that are necessary to compile a program using the specified library. .TP .PD 0 .B \-\-pthread\-cflags Print the pthread compiler flags that are necessary to compile a program using the specified library. .SH AUTHOR This man page has been written by CS GROUP - France libprelude-5.2.0/PaxHeaders.14770/gtk-doc.make0000644000000000000000000000010713726163411017041 xustar000000000000000024 mtime=1599661833.317 23 atime=1599661900.24 24 ctime=1599662000.603 libprelude-5.2.0/gtk-doc.make0000644000000000000000000002475113726163411016047 0ustar00rootroot00000000000000# -*- mode: makefile -*- # # gtk-doc.make - make rules for gtk-doc # Copyright (C) 2003 James Henstridge # 2004-2007 Damon Chaplin # 2007-2017 Stefan Sauer # # 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 3 of the License, 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, see . #################################### # Everything below here is generic # #################################### if GTK_DOC_USE_LIBTOOL GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) GTKDOC_RUN = $(LIBTOOL) --mode=execute else GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) GTKDOC_RUN = endif # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. # GPATH = $(srcdir) TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) SETUP_FILES = \ $(content_files) \ $(expand_content_files) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt EXTRA_DIST = \ $(HTML_IMAGES) \ $(SETUP_FILES) DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \ html-build.stamp pdf-build.stamp \ sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals REPORT_FILES = \ $(DOC_MODULE)-undocumented.txt \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt gtkdoc-check.test: Makefile $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ chmod +x $@ CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test if GTK_DOC_BUILD_HTML HTML_BUILD_STAMP=html-build.stamp else HTML_BUILD_STAMP= endif if GTK_DOC_BUILD_PDF PDF_BUILD_STAMP=pdf-build.stamp else PDF_BUILD_STAMP= endif all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) .PHONY: all-gtk-doc if ENABLE_GTK_DOC all-local: all-gtk-doc endif docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp #### setup #### GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_@AM_V@) GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_@AM_DEFAULT_V@) GTK_DOC_V_SETUP_0=@echo " DOC Preparing build"; setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ if test "x$$files" != "x" ; then \ for file in $$files ; do \ destdir=`dirname $(abs_builddir)/$$file`; \ test -d "$$destdir" || mkdir -p "$$destdir"; \ test -f $(abs_srcdir)/$$file && \ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ done; \ fi; \ fi $(AM_V_at)touch setup-build.stamp #### scan #### GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_@AM_V@) GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_@AM_DEFAULT_V@) GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files"; GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_@AM_V@) GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@) GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi $(AM_V_at)touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true #### xml #### GTK_DOC_V_XML=$(GTK_DOC_V_XML_@AM_V@) GTK_DOC_V_XML_=$(GTK_DOC_V_XML_@AM_DEFAULT_V@) GTK_DOC_V_XML_0=@echo " DOC Building XML"; sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true $(DOC_MAIN_SGML_FILE): sgml-build.stamp @true xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ echo ""; \ ) > $@ #### html #### GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_@AM_V@) GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_@AM_DEFAULT_V@) GTK_DOC_V_HTML_0=@echo " DOC Building HTML"; GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_@AM_V@) GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_@AM_DEFAULT_V@) GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references"; html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$$?" = "0"; then \ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) $(AM_V_at)touch html-build.stamp #### pdf #### GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_@AM_V@) GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_@AM_DEFAULT_V@) GTK_DOC_V_PDF_0=@echo " DOC Building PDF"; pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ mkpdf_options=""; \ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$$?" = "0"; then \ if test "x$(V)" = "x1"; then \ mkpdf_options="$$mkpdf_options --verbose"; \ fi; \ fi; \ if test "x$(HTML_IMAGES)" != "x"; then \ for img in $(HTML_IMAGES); do \ part=`dirname $$img`; \ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ if test $$? != 0; then \ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ fi; \ done; \ fi; \ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) $(AM_V_at)touch pdf-build.stamp ############## clean-local: @rm -f *~ *.bak @rm -rf .libs @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ rm -f $(DOC_MODULE).types; \ fi @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ rm -f $(DOC_MODULE)-sections.txt; \ fi distclean-local: @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ fi maintainer-clean-local: @rm -rf xml html install-data-local: @installfiles=`echo $(builddir)/html/*`; \ if test "$$installfiles" = '$(builddir)/html/*'; \ then echo 1>&2 'Nothing to install' ; \ else \ if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ $(mkinstalldirs) $${installdir} ; \ for i in $$installfiles; do \ echo ' $(INSTALL_DATA) '$$i ; \ $(INSTALL_DATA) $$i $${installdir}; \ done; \ if test -n "$(DOC_MODULE_VERSION)"; then \ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ rm -rf $${installdir} # # Require gtk-doc when making dist # if HAVE_GTK_DOC dist-check-gtkdoc: docs else dist-check-gtkdoc: @echo "*** gtk-doc is needed to run 'make dist'. ***" @echo "*** gtk-doc was not found when 'configure' ran. ***" @echo "*** please install gtk-doc and rerun 'configure'. ***" @false endif dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local @mkdir $(distdir)/html @cp ./html/* $(distdir)/html @-cp ./$(DOC_MODULE).pdf $(distdir)/ @-cp ./$(DOC_MODULE).types $(distdir)/ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ @cd $(distdir) && rm -f $(DISTCLEANFILES) @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs libprelude-5.2.0/PaxHeaders.14770/tests0000644000000000000000000000010713726163660015745 xustar000000000000000024 mtime=1599662000.965 23 atime=1599662006.65 24 ctime=1599662000.965 libprelude-5.2.0/tests/0000755000000000000000000000000013726163660015017 5ustar00rootroot00000000000000libprelude-5.2.0/tests/PaxHeaders.14770/Makefile.in0000644000000000000000000000011013726163517020062 xustar000000000000000024 mtime=1599661903.007 24 atime=1599661946.056 24 ctime=1599662000.948 libprelude-5.2.0/tests/Makefile.in0000644000000000000000000024445013726163517017076 0ustar00rootroot00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ TESTS = async-timer$(EXEEXT) idmef$(EXEEXT) idmef-criteria$(EXEEXT) \ idmef-message-helper$(EXEEXT) idmef-path$(EXEEXT) \ idmef-value$(EXEEXT) prelude-client$(EXEEXT) \ prelude-string$(EXEEXT) prelude-timer$(EXEEXT) check_PROGRAMS = $(am__EXEEXT_1) subdir = tests DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libmissing/m4/00gnulib.m4 \ $(top_srcdir)/libmissing/m4/absolute-header.m4 \ $(top_srcdir)/libmissing/m4/alloca.m4 \ $(top_srcdir)/libmissing/m4/arpa_inet_h.m4 \ $(top_srcdir)/libmissing/m4/asm-underscore.m4 \ $(top_srcdir)/libmissing/m4/btowc.m4 \ $(top_srcdir)/libmissing/m4/builtin-expect.m4 \ $(top_srcdir)/libmissing/m4/close.m4 \ $(top_srcdir)/libmissing/m4/codeset.m4 \ $(top_srcdir)/libmissing/m4/cond.m4 \ $(top_srcdir)/libmissing/m4/ctype.m4 \ $(top_srcdir)/libmissing/m4/dup2.m4 \ $(top_srcdir)/libmissing/m4/eealloc.m4 \ $(top_srcdir)/libmissing/m4/environ.m4 \ $(top_srcdir)/libmissing/m4/errno_h.m4 \ $(top_srcdir)/libmissing/m4/exponentd.m4 \ $(top_srcdir)/libmissing/m4/extensions.m4 \ $(top_srcdir)/libmissing/m4/extern-inline.m4 \ $(top_srcdir)/libmissing/m4/fclose.m4 \ $(top_srcdir)/libmissing/m4/fcntl-o.m4 \ $(top_srcdir)/libmissing/m4/fcntl.m4 \ $(top_srcdir)/libmissing/m4/fcntl_h.m4 \ $(top_srcdir)/libmissing/m4/fdopen.m4 \ $(top_srcdir)/libmissing/m4/fflush.m4 \ $(top_srcdir)/libmissing/m4/flexmember.m4 \ $(top_srcdir)/libmissing/m4/float_h.m4 \ $(top_srcdir)/libmissing/m4/fopen.m4 \ $(top_srcdir)/libmissing/m4/fpieee.m4 \ $(top_srcdir)/libmissing/m4/fpurge.m4 \ $(top_srcdir)/libmissing/m4/freading.m4 \ $(top_srcdir)/libmissing/m4/fseek.m4 \ $(top_srcdir)/libmissing/m4/fseeko.m4 \ $(top_srcdir)/libmissing/m4/fstat.m4 \ $(top_srcdir)/libmissing/m4/ftell.m4 \ $(top_srcdir)/libmissing/m4/ftello.m4 \ $(top_srcdir)/libmissing/m4/ftruncate.m4 \ $(top_srcdir)/libmissing/m4/ftw.m4 \ $(top_srcdir)/libmissing/m4/getaddrinfo.m4 \ $(top_srcdir)/libmissing/m4/getcwd.m4 \ $(top_srcdir)/libmissing/m4/getdelim.m4 \ $(top_srcdir)/libmissing/m4/getdtablesize.m4 \ $(top_srcdir)/libmissing/m4/gethostname.m4 \ $(top_srcdir)/libmissing/m4/getline.m4 \ $(top_srcdir)/libmissing/m4/getpagesize.m4 \ $(top_srcdir)/libmissing/m4/getpass.m4 \ $(top_srcdir)/libmissing/m4/gettimeofday.m4 \ $(top_srcdir)/libmissing/m4/glibc21.m4 \ $(top_srcdir)/libmissing/m4/gnulib-common.m4 \ $(top_srcdir)/libmissing/m4/gnulib-comp.m4 \ $(top_srcdir)/libmissing/m4/gnulib-tool.m4 \ $(top_srcdir)/libmissing/m4/host-cpu-c-abi.m4 \ $(top_srcdir)/libmissing/m4/hostent.m4 \ $(top_srcdir)/libmissing/m4/include_next.m4 \ $(top_srcdir)/libmissing/m4/inet_ntop.m4 \ $(top_srcdir)/libmissing/m4/inet_pton.m4 \ $(top_srcdir)/libmissing/m4/intlmacosx.m4 \ $(top_srcdir)/libmissing/m4/intmax_t.m4 \ $(top_srcdir)/libmissing/m4/inttypes-pri.m4 \ $(top_srcdir)/libmissing/m4/inttypes.m4 \ $(top_srcdir)/libmissing/m4/inttypes_h.m4 \ $(top_srcdir)/libmissing/m4/ioctl.m4 \ $(top_srcdir)/libmissing/m4/isblank.m4 \ $(top_srcdir)/libmissing/m4/langinfo_h.m4 \ $(top_srcdir)/libmissing/m4/largefile.m4 \ $(top_srcdir)/libmissing/m4/lcmessage.m4 \ $(top_srcdir)/libmissing/m4/lib-ld.m4 \ $(top_srcdir)/libmissing/m4/lib-link.m4 \ $(top_srcdir)/libmissing/m4/lib-prefix.m4 \ $(top_srcdir)/libmissing/m4/limits-h.m4 \ $(top_srcdir)/libmissing/m4/localcharset.m4 \ $(top_srcdir)/libmissing/m4/locale-fr.m4 \ $(top_srcdir)/libmissing/m4/locale-ja.m4 \ $(top_srcdir)/libmissing/m4/locale-tr.m4 \ $(top_srcdir)/libmissing/m4/locale-zh.m4 \ $(top_srcdir)/libmissing/m4/locale_h.m4 \ $(top_srcdir)/libmissing/m4/localeconv.m4 \ $(top_srcdir)/libmissing/m4/localename.m4 \ $(top_srcdir)/libmissing/m4/localtime-buffer.m4 \ $(top_srcdir)/libmissing/m4/lock.m4 \ $(top_srcdir)/libmissing/m4/longlong.m4 \ $(top_srcdir)/libmissing/m4/lseek.m4 \ $(top_srcdir)/libmissing/m4/lstat.m4 \ $(top_srcdir)/libmissing/m4/malloc.m4 \ $(top_srcdir)/libmissing/m4/malloca.m4 \ $(top_srcdir)/libmissing/m4/mbrtowc.m4 \ $(top_srcdir)/libmissing/m4/mbsinit.m4 \ $(top_srcdir)/libmissing/m4/mbstate_t.m4 \ $(top_srcdir)/libmissing/m4/mbtowc.m4 \ $(top_srcdir)/libmissing/m4/memchr.m4 \ $(top_srcdir)/libmissing/m4/memmem.m4 \ $(top_srcdir)/libmissing/m4/minmax.m4 \ $(top_srcdir)/libmissing/m4/mktime.m4 \ $(top_srcdir)/libmissing/m4/mmap-anon.m4 \ $(top_srcdir)/libmissing/m4/mode_t.m4 \ $(top_srcdir)/libmissing/m4/msvc-inval.m4 \ $(top_srcdir)/libmissing/m4/msvc-nothrow.m4 \ $(top_srcdir)/libmissing/m4/multiarch.m4 \ $(top_srcdir)/libmissing/m4/nanosleep.m4 \ $(top_srcdir)/libmissing/m4/netdb_h.m4 \ $(top_srcdir)/libmissing/m4/netinet_in_h.m4 \ $(top_srcdir)/libmissing/m4/nl_langinfo.m4 \ $(top_srcdir)/libmissing/m4/off_t.m4 \ $(top_srcdir)/libmissing/m4/onceonly.m4 \ $(top_srcdir)/libmissing/m4/open-cloexec.m4 \ $(top_srcdir)/libmissing/m4/open.m4 \ $(top_srcdir)/libmissing/m4/pathmax.m4 \ $(top_srcdir)/libmissing/m4/perror.m4 \ $(top_srcdir)/libmissing/m4/pipe.m4 \ $(top_srcdir)/libmissing/m4/poll.m4 \ $(top_srcdir)/libmissing/m4/poll_h.m4 \ $(top_srcdir)/libmissing/m4/printf.m4 \ $(top_srcdir)/libmissing/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/libmissing/m4/pthread_sigmask.m4 \ $(top_srcdir)/libmissing/m4/putenv.m4 \ $(top_srcdir)/libmissing/m4/raise.m4 \ $(top_srcdir)/libmissing/m4/regex.m4 \ $(top_srcdir)/libmissing/m4/relocatable-lib.m4 \ $(top_srcdir)/libmissing/m4/select.m4 \ $(top_srcdir)/libmissing/m4/servent.m4 \ $(top_srcdir)/libmissing/m4/setenv.m4 \ $(top_srcdir)/libmissing/m4/setlocale.m4 \ $(top_srcdir)/libmissing/m4/sigaction.m4 \ $(top_srcdir)/libmissing/m4/signal_h.m4 \ $(top_srcdir)/libmissing/m4/signalblocking.m4 \ $(top_srcdir)/libmissing/m4/size_max.m4 \ $(top_srcdir)/libmissing/m4/sleep.m4 \ $(top_srcdir)/libmissing/m4/snprintf.m4 \ $(top_srcdir)/libmissing/m4/socketlib.m4 \ $(top_srcdir)/libmissing/m4/sockets.m4 \ $(top_srcdir)/libmissing/m4/socklen.m4 \ $(top_srcdir)/libmissing/m4/sockpfaf.m4 \ $(top_srcdir)/libmissing/m4/ssize_t.m4 \ $(top_srcdir)/libmissing/m4/stat-time.m4 \ $(top_srcdir)/libmissing/m4/stat.m4 \ $(top_srcdir)/libmissing/m4/stdalign.m4 \ $(top_srcdir)/libmissing/m4/stdbool.m4 \ $(top_srcdir)/libmissing/m4/stddef_h.m4 \ $(top_srcdir)/libmissing/m4/stdint.m4 \ $(top_srcdir)/libmissing/m4/stdint_h.m4 \ $(top_srcdir)/libmissing/m4/stdio_h.m4 \ $(top_srcdir)/libmissing/m4/stdlib_h.m4 \ $(top_srcdir)/libmissing/m4/strcase.m4 \ $(top_srcdir)/libmissing/m4/strcasestr.m4 \ $(top_srcdir)/libmissing/m4/strdup.m4 \ $(top_srcdir)/libmissing/m4/strerror.m4 \ $(top_srcdir)/libmissing/m4/strerror_r.m4 \ $(top_srcdir)/libmissing/m4/string_h.m4 \ $(top_srcdir)/libmissing/m4/strings_h.m4 \ $(top_srcdir)/libmissing/m4/strndup.m4 \ $(top_srcdir)/libmissing/m4/strnlen.m4 \ $(top_srcdir)/libmissing/m4/strptime.m4 \ $(top_srcdir)/libmissing/m4/strsep.m4 \ $(top_srcdir)/libmissing/m4/symlink.m4 \ $(top_srcdir)/libmissing/m4/sys_ioctl_h.m4 \ $(top_srcdir)/libmissing/m4/sys_select_h.m4 \ $(top_srcdir)/libmissing/m4/sys_socket_h.m4 \ $(top_srcdir)/libmissing/m4/sys_stat_h.m4 \ $(top_srcdir)/libmissing/m4/sys_time_h.m4 \ $(top_srcdir)/libmissing/m4/sys_types_h.m4 \ $(top_srcdir)/libmissing/m4/sys_uio_h.m4 \ $(top_srcdir)/libmissing/m4/sys_utsname_h.m4 \ $(top_srcdir)/libmissing/m4/thread.m4 \ $(top_srcdir)/libmissing/m4/threadlib.m4 \ $(top_srcdir)/libmissing/m4/time_h.m4 \ $(top_srcdir)/libmissing/m4/time_r.m4 \ $(top_srcdir)/libmissing/m4/timegm.m4 \ $(top_srcdir)/libmissing/m4/tls.m4 \ $(top_srcdir)/libmissing/m4/tm_gmtoff.m4 \ $(top_srcdir)/libmissing/m4/uname.m4 \ $(top_srcdir)/libmissing/m4/ungetc.m4 \ $(top_srcdir)/libmissing/m4/unistd_h.m4 \ $(top_srcdir)/libmissing/m4/usleep.m4 \ $(top_srcdir)/libmissing/m4/vasnprintf.m4 \ $(top_srcdir)/libmissing/m4/vsnprintf.m4 \ $(top_srcdir)/libmissing/m4/warn-on-use.m4 \ $(top_srcdir)/libmissing/m4/wchar_h.m4 \ $(top_srcdir)/libmissing/m4/wchar_t.m4 \ $(top_srcdir)/libmissing/m4/wcrtomb.m4 \ $(top_srcdir)/libmissing/m4/wctob.m4 \ $(top_srcdir)/libmissing/m4/wctomb.m4 \ $(top_srcdir)/libmissing/m4/wctype_h.m4 \ $(top_srcdir)/libmissing/m4/wint_t.m4 \ $(top_srcdir)/libmissing/m4/write.m4 \ $(top_srcdir)/libmissing/m4/xsize.m4 \ $(top_srcdir)/libmissing/m4/yield.m4 \ $(top_srcdir)/m4/am_path_ruby.m4 $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/as-ac-expand.m4 \ $(top_srcdir)/m4/ax_check_aligned_access_required.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_create_prelude_inttypes_h.m4 \ $(top_srcdir)/m4/ax_reset_headers_cache.m4 \ $(top_srcdir)/m4/gtk-doc.m4 \ $(top_srcdir)/m4/libgnutls-extra.m4 \ $(top_srcdir)/m4/libgnutls.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = async-timer$(EXEEXT) idmef$(EXEEXT) \ idmef-criteria$(EXEEXT) idmef-message-helper$(EXEEXT) \ idmef-path$(EXEEXT) idmef-value$(EXEEXT) \ prelude-client$(EXEEXT) prelude-string$(EXEEXT) \ prelude-timer$(EXEEXT) async_timer_SOURCES = async-timer.c async_timer_OBJECTS = async-timer.$(OBJEXT) async_timer_DEPENDENCIES = $(LDADD) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = idmef_SOURCES = idmef.c idmef_OBJECTS = idmef.$(OBJEXT) idmef_LDADD = $(LDADD) idmef_DEPENDENCIES = $(top_builddir)/src/libprelude.la \ ../libmissing/libmissing.la idmef_criteria_SOURCES = idmef-criteria.c idmef_criteria_OBJECTS = idmef-criteria.$(OBJEXT) idmef_criteria_LDADD = $(LDADD) idmef_criteria_DEPENDENCIES = $(top_builddir)/src/libprelude.la \ ../libmissing/libmissing.la idmef_message_helper_SOURCES = idmef-message-helper.c idmef_message_helper_OBJECTS = idmef-message-helper.$(OBJEXT) idmef_message_helper_LDADD = $(LDADD) idmef_message_helper_DEPENDENCIES = $(top_builddir)/src/libprelude.la \ ../libmissing/libmissing.la idmef_path_SOURCES = idmef-path.c idmef_path_OBJECTS = idmef-path.$(OBJEXT) idmef_path_LDADD = $(LDADD) idmef_path_DEPENDENCIES = $(top_builddir)/src/libprelude.la \ ../libmissing/libmissing.la idmef_value_SOURCES = idmef-value.c idmef_value_OBJECTS = idmef-value.$(OBJEXT) idmef_value_DEPENDENCIES = $(top_builddir)/src/idmef-value.lo $(LDADD) prelude_client_SOURCES = prelude-client.c prelude_client_OBJECTS = prelude-client.$(OBJEXT) prelude_client_LDADD = $(LDADD) prelude_client_DEPENDENCIES = $(top_builddir)/src/libprelude.la \ ../libmissing/libmissing.la prelude_string_SOURCES = prelude-string.c prelude_string_OBJECTS = prelude-string.$(OBJEXT) prelude_string_LDADD = $(LDADD) prelude_string_DEPENDENCIES = $(top_builddir)/src/libprelude.la \ ../libmissing/libmissing.la prelude_timer_SOURCES = prelude-timer.c prelude_timer_OBJECTS = prelude-timer.$(OBJEXT) prelude_timer_LDADD = $(LDADD) prelude_timer_DEPENDENCIES = $(top_builddir)/src/libprelude.la \ ../libmissing/libmissing.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = async-timer.c idmef.c idmef-criteria.c \ idmef-message-helper.c idmef-path.c idmef-value.c \ prelude-client.c prelude-string.c prelude-timer.c DIST_SOURCES = async-timer.c idmef.c idmef-criteria.c \ idmef-message-helper.c idmef-path.c idmef-value.c \ prelude-client.c prelude-string.c prelude-timer.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ARGZ_H = @ARGZ_H@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BINDINGS_CC = @BINDINGS_CC@ BINDIR = @BINDIR@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIR = @DATADIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ FLOAT_H = @FLOAT_H@ GETADDRINFO_LIB = @GETADDRINFO_LIB@ GETHOSTNAME_LIB = @GETHOSTNAME_LIB@ GLIBC21 = @GLIBC21@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_CTIME = @GNULIB_CTIME@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXPLICIT_BZERO = @GNULIB_EXPLICIT_BZERO@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ GNULIB_INET_PTON = @GNULIB_INET_PTON@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISBLANK = @GNULIB_ISBLANK@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_STRUCT_STAT = @GNULIB_OVERRIDES_STRUCT_STAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POLL = @GNULIB_POLL@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PSELECT = @GNULIB_PSELECT@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOCARRAY = @GNULIB_REALLOCARRAY@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SELECT = @GNULIB_SELECT@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRFTIME = @GNULIB_STRFTIME@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNCATE = @GNULIB_TRUNCATE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_TZSET = @GNULIB_TZSET@ GNULIB_UNAME = @GNULIB_UNAME@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSFTIME = @GNULIB_WCSFTIME@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ HAVE_CXX = @HAVE_CXX@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISBLANK = @HAVE_ISBLANK@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NETDB_H = @HAVE_NETDB_H@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POLL = @HAVE_POLL@ HAVE_POLL_H = @HAVE_POLL_H@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PSELECT = @HAVE_PSELECT@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRUCT_UTSNAME = @HAVE_STRUCT_UTSNAME@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_SYS_UTSNAME_H = @HAVE_SYS_UTSNAME_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNAME = @HAVE_UNAME@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSFTIME = @HAVE_WCSFTIME@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HOSTENT_LIB = @HOSTENT_LIB@ HOST_CPU = @HOST_CPU@ HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ HTML_DIR = @HTML_DIR@ INCLTDL = @INCLTDL@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INET_NTOP_LIB = @INET_NTOP_LIB@ INET_PTON_LIB = @INET_PTON_LIB@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBDIR = @LIBDIR@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_EXTRA_CFLAGS = @LIBGNUTLS_EXTRA_CFLAGS@ LIBGNUTLS_EXTRA_CONFIG = @LIBGNUTLS_EXTRA_CONFIG@ LIBGNUTLS_EXTRA_LIBS = @LIBGNUTLS_EXTRA_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBLTDL_DECL = @LIBLTDL_DECL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPRELUDECPP_SONAME = @LIBPRELUDECPP_SONAME@ LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ LIBPRELUDE_LEVEL_VERSION = @LIBPRELUDE_LEVEL_VERSION@ LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ LIBPRELUDE_MAJOR_VERSION = @LIBPRELUDE_MAJOR_VERSION@ LIBPRELUDE_MICRO_VERSION = @LIBPRELUDE_MICRO_VERSION@ LIBPRELUDE_MINOR_VERSION = @LIBPRELUDE_MINOR_VERSION@ LIBPRELUDE_SERIAL_VERSION = @LIBPRELUDE_SERIAL_VERSION@ LIBPRELUDE_SONAME = @LIBPRELUDE_SONAME@ LIBPRELUDE_VERSION = @LIBPRELUDE_VERSION@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBSOCKET = @LIBSOCKET@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIB_NANOSLEEP = @LIB_NANOSLEEP@ LIB_POLL = @LIB_POLL@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_SELECT = @LIB_SELECT@ LIMITS_H = @LIMITS_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOCALSTATEDIR = @LOCALSTATEDIR@ LTALLOCA = @LTALLOCA@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_CONFIG = @LUA_CONFIG@ LUA_LIBS = @LUA_LIBS@ LUA_VERSION = @LUA_VERSION@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NETINET_IN_H = @NETINET_IN_H@ NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ NEXT_AS_FIRST_DIRECTIVE_POLL_H = @NEXT_AS_FIRST_DIRECTIVE_POLL_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UTSNAME_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_CTYPE_H = @NEXT_CTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_NETDB_H = @NEXT_NETDB_H@ NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ NEXT_POLL_H = @NEXT_POLL_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_UTSNAME_H = @NEXT_SYS_UTSNAME_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCFLAGS = @PCFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_CONFIG = @PCRE_CONFIG@ PCRE_LIBS = @PCRE_LIBS@ PERL = @PERL@ PERL_EXTRA_PARAMS = @PERL_EXTRA_PARAMS@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRELUDE_ADMIN_CFLAGS = @PRELUDE_ADMIN_CFLAGS@ PRELUDE_ADMIN_LIBS = @PRELUDE_ADMIN_LIBS@ PRELUDE_CONFIG_DIR = @PRELUDE_CONFIG_DIR@ PRELUDE_SPOOL_DIR = @PRELUDE_SPOOL_DIR@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTHREAD_LDFLAGS = @PTHREAD_LDFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PYTHON2 = @PYTHON2@ PYTHON3 = @PYTHON3@ RANLIB = @RANLIB@ RELOCATABLE = @RELOCATABLE@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_CTIME = @REPLACE_CTIME@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GAI_STRERROR = @REPLACE_GAI_STRERROR@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ REPLACE_INET_PTON = @REPLACE_INET_PTON@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POLL = @REPLACE_POLL@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PSELECT = @REPLACE_PSELECT@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SELECT = @REPLACE_SELECT@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRFTIME = @REPLACE_STRFTIME@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_TZSET = @REPLACE_TZSET@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ RUBY = @RUBY@ RUBY_CCFLAGS = @RUBY_CCFLAGS@ RUBY_EXEC_PREFIX = @RUBY_EXEC_PREFIX@ RUBY_INCLUDES = @RUBY_INCLUDES@ RUBY_LIBS = @RUBY_LIBS@ RUBY_PKG_CONFIG_CFLAGS = @RUBY_PKG_CONFIG_CFLAGS@ RUBY_PKG_CONFIG_LIBS = @RUBY_PKG_CONFIG_LIBS@ RUBY_PLATFORM = @RUBY_PLATFORM@ RUBY_PREFIX = @RUBY_PREFIX@ RUBY_VERSION = @RUBY_VERSION@ SED = @SED@ SERVENT_LIB = @SERVENT_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SWIG = @SWIG@ SWIG_DATA_DIR = @SWIG_DATA_DIR@ SYSCONFDIR = @SYSCONFDIR@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ YACC = @YACC@ YFLAGS = @YFLAGS@ YIELD_LIB = @YIELD_LIB@ __PRELUDE_64BIT_FORMAT_PREFIX = @__PRELUDE_64BIT_FORMAT_PREFIX@ __PRELUDE_HAVE_64BIT_LONG = @__PRELUDE_HAVE_64BIT_LONG@ __PRELUDE_HAVE_INTTYPES_H = @__PRELUDE_HAVE_INTTYPES_H@ __PRELUDE_HAVE_STDINT_H = @__PRELUDE_HAVE_STDINT_H@ __PRELUDE_STDINT_HAVE_UINT16 = @__PRELUDE_STDINT_HAVE_UINT16@ __PRELUDE_STDINT_HAVE_UINT32 = @__PRELUDE_STDINT_HAVE_UINT32@ __PRELUDE_STDINT_HAVE_UINT64 = @__PRELUDE_STDINT_HAVE_UINT64@ __PRELUDE_STDINT_HAVE_UINT8 = @__PRELUDE_STDINT_HAVE_UINT8@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgrbexecdir = @pkgrbexecdir@ pkgrubydir = @pkgrubydir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ rbexecdir = @rbexecdir@ rubydir = @rubydir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ LDADD = $(top_builddir)/src/libprelude.la ../libmissing/libmissing.la AM_CPPFLAGS = -I$(top_builddir)/src/include -I$(top_srcdir)/src/include -I$(top_builddir)/src/libprelude-error -I$(top_builddir)/libmissing -I$(top_srcdir)/libmissing idmef_value_LDADD = $(top_builddir)/src/idmef-value.lo $(LDADD) async_timer_LDADD = @LTLIBMULTITHREAD@ $(LDADD) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list async-timer$(EXEEXT): $(async_timer_OBJECTS) $(async_timer_DEPENDENCIES) $(EXTRA_async_timer_DEPENDENCIES) @rm -f async-timer$(EXEEXT) $(AM_V_CCLD)$(LINK) $(async_timer_OBJECTS) $(async_timer_LDADD) $(LIBS) idmef$(EXEEXT): $(idmef_OBJECTS) $(idmef_DEPENDENCIES) $(EXTRA_idmef_DEPENDENCIES) @rm -f idmef$(EXEEXT) $(AM_V_CCLD)$(LINK) $(idmef_OBJECTS) $(idmef_LDADD) $(LIBS) idmef-criteria$(EXEEXT): $(idmef_criteria_OBJECTS) $(idmef_criteria_DEPENDENCIES) $(EXTRA_idmef_criteria_DEPENDENCIES) @rm -f idmef-criteria$(EXEEXT) $(AM_V_CCLD)$(LINK) $(idmef_criteria_OBJECTS) $(idmef_criteria_LDADD) $(LIBS) idmef-message-helper$(EXEEXT): $(idmef_message_helper_OBJECTS) $(idmef_message_helper_DEPENDENCIES) $(EXTRA_idmef_message_helper_DEPENDENCIES) @rm -f idmef-message-helper$(EXEEXT) $(AM_V_CCLD)$(LINK) $(idmef_message_helper_OBJECTS) $(idmef_message_helper_LDADD) $(LIBS) idmef-path$(EXEEXT): $(idmef_path_OBJECTS) $(idmef_path_DEPENDENCIES) $(EXTRA_idmef_path_DEPENDENCIES) @rm -f idmef-path$(EXEEXT) $(AM_V_CCLD)$(LINK) $(idmef_path_OBJECTS) $(idmef_path_LDADD) $(LIBS) idmef-value$(EXEEXT): $(idmef_value_OBJECTS) $(idmef_value_DEPENDENCIES) $(EXTRA_idmef_value_DEPENDENCIES) @rm -f idmef-value$(EXEEXT) $(AM_V_CCLD)$(LINK) $(idmef_value_OBJECTS) $(idmef_value_LDADD) $(LIBS) prelude-client$(EXEEXT): $(prelude_client_OBJECTS) $(prelude_client_DEPENDENCIES) $(EXTRA_prelude_client_DEPENDENCIES) @rm -f prelude-client$(EXEEXT) $(AM_V_CCLD)$(LINK) $(prelude_client_OBJECTS) $(prelude_client_LDADD) $(LIBS) prelude-string$(EXEEXT): $(prelude_string_OBJECTS) $(prelude_string_DEPENDENCIES) $(EXTRA_prelude_string_DEPENDENCIES) @rm -f prelude-string$(EXEEXT) $(AM_V_CCLD)$(LINK) $(prelude_string_OBJECTS) $(prelude_string_LDADD) $(LIBS) prelude-timer$(EXEEXT): $(prelude_timer_OBJECTS) $(prelude_timer_DEPENDENCIES) $(EXTRA_prelude_timer_DEPENDENCIES) @rm -f prelude-timer$(EXEEXT) $(AM_V_CCLD)$(LINK) $(prelude_timer_OBJECTS) $(prelude_timer_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/async-timer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-criteria.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-message-helper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-path.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef-value.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idmef.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-client.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-string.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prelude-timer.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(check_PROGRAMS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? async-timer.log: async-timer$(EXEEXT) @p='async-timer$(EXEEXT)'; \ b='async-timer'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) idmef.log: idmef$(EXEEXT) @p='idmef$(EXEEXT)'; \ b='idmef'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) idmef-criteria.log: idmef-criteria$(EXEEXT) @p='idmef-criteria$(EXEEXT)'; \ b='idmef-criteria'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) idmef-message-helper.log: idmef-message-helper$(EXEEXT) @p='idmef-message-helper$(EXEEXT)'; \ b='idmef-message-helper'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) idmef-path.log: idmef-path$(EXEEXT) @p='idmef-path$(EXEEXT)'; \ b='idmef-path'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) idmef-value.log: idmef-value$(EXEEXT) @p='idmef-value$(EXEEXT)'; \ b='idmef-value'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) prelude-client.log: prelude-client$(EXEEXT) @p='prelude-client$(EXEEXT)'; \ b='prelude-client'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) prelude-string.log: prelude-string$(EXEEXT) @p='prelude-string$(EXEEXT)'; \ b='prelude-string'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) prelude-timer.log: prelude-timer$(EXEEXT) @p='prelude-timer$(EXEEXT)'; \ b='prelude-timer'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @HAVE_VALGRIND_FALSE@check-local: check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: check-am install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am \ check-local clean clean-checkPROGRAMS clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am recheck tags tags-am uninstall \ uninstall-am @HAVE_VALGRIND_TRUE@check-local: @HAVE_VALGRIND_TRUE@ $(MAKE) valgrind @HAVE_VALGRIND_TRUE@%.valgrind: % @HAVE_VALGRIND_TRUE@ $(LIBTOOL) --mode=execute \ @HAVE_VALGRIND_TRUE@ $(VALGRIND) -q \ @HAVE_VALGRIND_TRUE@ --tool=memcheck --leak-check=full --trace-children=yes \ @HAVE_VALGRIND_TRUE@ --leak-resolution=high --num-callers=20 \ @HAVE_VALGRIND_TRUE@ $* 2>&1 | tee valgrind.log @HAVE_VALGRIND_TRUE@ @if grep "==" valgrind.log > /dev/null 2>&1; then \ @HAVE_VALGRIND_TRUE@ rm valgrind.log; \ @HAVE_VALGRIND_TRUE@ exit 1; \ @HAVE_VALGRIND_TRUE@ fi @HAVE_VALGRIND_TRUE@ @rm valgrind.log @HAVE_VALGRIND_TRUE@valgrind: $(TESTS) @HAVE_VALGRIND_TRUE@ @echo "Valgrinding tests ..." @HAVE_VALGRIND_TRUE@ @failed=0; \ @HAVE_VALGRIND_TRUE@ for t in $(TESTS); do \ @HAVE_VALGRIND_TRUE@ $(MAKE) $$t.valgrind; \ @HAVE_VALGRIND_TRUE@ if test "$$?" -ne 0; then \ @HAVE_VALGRIND_TRUE@ echo "Valgrind error for test $$t"; \ @HAVE_VALGRIND_TRUE@ failed=`expr $$failed + 1`; \ @HAVE_VALGRIND_TRUE@ whicht="$$whicht $$t"; \ @HAVE_VALGRIND_TRUE@ fi; \ @HAVE_VALGRIND_TRUE@ done; \ @HAVE_VALGRIND_TRUE@ if test "$$failed" -ne 0; then \ @HAVE_VALGRIND_TRUE@ echo "$$failed tests had leaks or errors under valgrind:"; \ @HAVE_VALGRIND_TRUE@ echo "$$whicht"; \ @HAVE_VALGRIND_TRUE@ false; \ @HAVE_VALGRIND_TRUE@ fi @HAVE_VALGRIND_FALSE@valgrind: -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libprelude-5.2.0/tests/PaxHeaders.14770/Makefile.am0000644000000000000000000000011013726163410020041 xustar000000000000000024 mtime=1599661832.707 24 atime=1599661832.794 24 ctime=1599662000.949 libprelude-5.2.0/tests/Makefile.am0000644000000000000000000000354313726163410017051 0ustar00rootroot00000000000000TESTS = async-timer idmef idmef-criteria idmef-message-helper idmef-path idmef-value prelude-client prelude-string prelude-timer check_PROGRAMS = $(TESTS) LDADD = $(top_builddir)/src/libprelude.la ../libmissing/libmissing.la AM_CPPFLAGS = -I$(top_builddir)/src/include -I$(top_srcdir)/src/include -I$(top_builddir)/src/libprelude-error -I$(top_builddir)/libmissing -I$(top_srcdir)/libmissing idmef_value_LDADD = $(top_builddir)/src/idmef-value.lo $(LDADD) async_timer_LDADD = @LTLIBMULTITHREAD@ $(LDADD) if HAVE_VALGRIND check-local: $(MAKE) valgrind %.valgrind: % $(LIBTOOL) --mode=execute \ $(VALGRIND) -q \ --tool=memcheck --leak-check=full --trace-children=yes \ --leak-resolution=high --num-callers=20 \ $* 2>&1 | tee valgrind.log @if grep "==" valgrind.log > /dev/null 2>&1; then \ rm valgrind.log; \ exit 1; \ fi @rm valgrind.log valgrind: $(TESTS) @echo "Valgrinding tests ..." @failed=0; \ for t in $(TESTS); do \ $(MAKE) $$t.valgrind; \ if test "$$?" -ne 0; then \ echo "Valgrind error for test $$t"; \ failed=`expr $$failed + 1`; \ whicht="$$whicht $$t"; \ fi; \ done; \ if test "$$failed" -ne 0; then \ echo "$$failed tests had leaks or errors under valgrind:"; \ echo "$$whicht"; \ false; \ fi else valgrind: endif -include $(top_srcdir)/git.mk libprelude-5.2.0/tests/PaxHeaders.14770/async-timer.c0000644000000000000000000000011013726163410020404 xustar000000000000000024 mtime=1599661832.707 24 atime=1599661832.794 24 ctime=1599662000.951 libprelude-5.2.0/tests/async-timer.c0000644000000000000000000000267513726163410017421 0ustar00rootroot00000000000000#include "config.h" #include #include #include #include "prelude.h" #include "glthread/lock.h" struct asyncobj { PRELUDE_ASYNC_OBJECT; int myval; }; static int async_done = 0; static int timer_count = 0; static gl_lock_t lock = gl_lock_initializer; static void timer_cb(void *data) { gl_lock_lock(lock); timer_count++; prelude_timer_reset(data); gl_lock_unlock(lock); } static void async_func(void *obj, void *data) { struct asyncobj *ptr = obj; gl_lock_lock(lock); async_done = 1; assert(ptr->myval == 10); gl_lock_unlock(lock); } int main(void) { prelude_timer_t timer; struct asyncobj myobj; assert(prelude_init(NULL, NULL) == 0); assert(prelude_async_init() == 0); prelude_async_set_flags(PRELUDE_ASYNC_FLAGS_TIMER); prelude_timer_set_expire(&timer, 1); prelude_timer_set_data(&timer, &timer); prelude_timer_set_callback(&timer, timer_cb); prelude_timer_init(&timer); sleep(3); gl_lock_lock(lock); assert(timer_count >= 2); gl_lock_unlock(lock); myobj.myval = 10; prelude_async_set_callback((prelude_async_object_t *) &myobj, async_func); prelude_async_add((prelude_async_object_t *) &myobj); prelude_async_exit(); assert(async_done); prelude_deinit(); exit(0); } libprelude-5.2.0/tests/PaxHeaders.14770/idmef.c0000644000000000000000000000011013726163410017235 xustar000000000000000024 mtime=1599661832.708 24 atime=1599661832.794 24 ctime=1599662000.953 libprelude-5.2.0/tests/idmef.c0000644000000000000000000000111113726163410016232 0ustar00rootroot00000000000000#include "config.h" #include #include #include "prelude.h" #define TEST_STR "abcdefghijklmnopqrstuvwxyz" #define MAX_LAG_SEC 3 int main(void) { time_t now; idmef_time_t *ctime; idmef_alert_t *alert; idmef_message_t *idmef; assert(idmef_message_new(&idmef) == 0); assert(idmef_message_new_alert(idmef, &alert) == 0); ctime = idmef_alert_get_create_time(alert); assert(ctime != NULL); now = time(NULL); assert(now - idmef_time_get_sec(ctime) < MAX_LAG_SEC); exit(0); } libprelude-5.2.0/tests/PaxHeaders.14770/idmef-criteria.c0000644000000000000000000000011013726163410021035 xustar000000000000000024 mtime=1599661832.707 24 atime=1599661832.794 24 ctime=1599662000.954 libprelude-5.2.0/tests/idmef-criteria.c0000644000000000000000000002640313726163410020045 0ustar00rootroot00000000000000#include "config.h" #include #include #include "prelude.h" static void test_criteria(idmef_message_t *idmef, const char *criteria_str, int expect_create, int expect_match) { idmef_criteria_t *criteria; if ( expect_create < 0 ) { assert(idmef_criteria_new_from_string(&criteria, criteria_str) < 0); return; } else assert(idmef_criteria_new_from_string(&criteria, criteria_str) == 0); assert(idmef_criteria_match(criteria, idmef) == expect_match); idmef_criteria_destroy(criteria); prelude_string_t *not; prelude_string_new(¬); prelude_string_sprintf(not, "!(%s)", criteria_str); assert(idmef_criteria_new_from_string(&criteria, prelude_string_get_string(not)) == 0); assert(idmef_criteria_match(criteria, idmef) == !expect_match); prelude_string_destroy(not); idmef_criteria_destroy(criteria); } int main(void) { idmef_time_t *ctime; idmef_alert_t *alert; idmef_message_t *idmef; idmef_classification_t *classification; prelude_string_t *str; assert(prelude_string_new_ref(&str, "A") == 0); assert(idmef_message_new(&idmef) == 0); assert(idmef_message_new_alert(idmef, &alert) == 0); assert(idmef_alert_new_classification(alert, &classification) == 0); idmef_classification_set_text(classification, str); idmef_message_set_string(idmef, "alert.analyzer(0).name", "A"); idmef_message_set_string(idmef, "alert.analyzer(1).name", "B"); idmef_message_set_string(idmef, "alert.analyzer(1).ostype", "C"); idmef_message_set_string(idmef, "alert.analyzer(1).process.arg(0)", "a0"); idmef_message_set_string(idmef, "alert.analyzer(1).process.arg(2)", "a2"); test_criteria(idmef, "alert", 0, 1); test_criteria(idmef, "heartbeat", 0, 0); test_criteria(idmef, "alert || heartbeat", 0, 1); test_criteria(idmef, "alert.classification.txt == A", -1, -1); test_criteria(idmef, "alert.classification.text = (A || B || C || D) || heartbeat", 0, 1); test_criteria(idmef, "(alert.classification.text == A || heartbeat", -1, -1); test_criteria(idmef, "!(alert.classification.text == A || heartbeat)", 0, 0); test_criteria(idmef, "!(alert.classification.text == A && heartbeat)", 0, 1); prelude_string_set_ref(str, "My String"); test_criteria(idmef, "alert.classification.text != 'My String'", 0, 0); test_criteria(idmef, "alert.classification.text != 'random'", 0, 1); test_criteria(idmef, "alert.classification.text == 'My String'", 0, 1); test_criteria(idmef, "alert.classification.text <> 'My*'", 0, 1); test_criteria(idmef, "alert.classification.text <> 'my*'", 0, 0); test_criteria(idmef, "alert.classification.text <>* 'my*'", 0, 1); test_criteria(idmef, "alert.classification.text ~ 'My String'", 0, 1); test_criteria(idmef, "alert.classification.text ~ 'My (String|Check)'", 0, 1); test_criteria(idmef, "alert.classification.text ~ 'my'", 0, 0); test_criteria(idmef, "alert.classification.text ~* 'my'", 0, 1); idmef_alert_new_create_time(alert, &ctime); assert(idmef_time_set_from_string(ctime, "2015-05-03 1:59:08") == 0); /* * Operator precedence * * A || (B && C) */ test_criteria(idmef, "alert.classification.text == NOMATCH || alert.classification.text == 'My String' && alert.analyzer(0).name == A", 0, 1); test_criteria(idmef, "alert.classification.text == 'My String' || alert.classification.text == NOMATCH && alert.analyzer(0).name == NOMATCH", 0, 1); /* * (A && B) || (C && D) */ test_criteria(idmef, "alert.analyzer(0).name == A && alert.classification.text == 'My String' || alert.analyzer(0).name == A && alert.classification.text == NOMATCH", 0, 1); test_criteria(idmef, "alert.analyzer(0).name == A && alert.classification.text == NOMATCH || alert.analyzer(0).name == A && alert.classification.text == 'My String'", 0, 1); /* * ((!A) && B) || C */ test_criteria(idmef, "! alert.classification.text == A && alert.analyzer(0).name == A || alert.classification.text == NOMATCH", 0, 1); test_criteria(idmef, "!!! alert.classification.text == A && alert.analyzer(0).name == A || alert.classification.text == NOMATCH", 0, 1); test_criteria(idmef, "! alert.classification.text == A && alert.analyzer(0).name == B || alert.classification.text == NOMATCH", 0, 0); test_criteria(idmef, "! alert.classification.text == 'My String' && alert.analyzer(0).name == A || alert.classification.text == 'My String'", 0, 1); /* * Regular time operator check */ test_criteria(idmef, "alert.create_time == '2015-05-03 1:59:08'", 0, 1); test_criteria(idmef, "alert.create_time != '2015-05-03 1:59:08'", 0, 0); test_criteria(idmef, "alert.create_time < '2015-05-03 1:59:08'", 0, 0); test_criteria(idmef, "alert.create_time > '2015-05-03 1:59:08'", 0, 0); test_criteria(idmef, "alert.create_time <= '2015-05-03 1:59:08'", 0, 1); test_criteria(idmef, "alert.create_time >= '2015-05-03 1:59:08'", 0, 1); test_criteria(idmef, "alert.create_time == '2015-05-03 1:59:07'", 0, 0); test_criteria(idmef, "alert.create_time != '2015-05-03 1:59:07'", 0, 1); test_criteria(idmef, "alert.create_time < '2015-05-03 1:59:07'", 0, 0); test_criteria(idmef, "alert.create_time > '2015-05-03 1:59:07'", 0, 1); test_criteria(idmef, "alert.create_time <= '2015-05-03 1:59:07'", 0, 0); test_criteria(idmef, "alert.create_time >= '2015-05-03 1:59:07'", 0, 1); test_criteria(idmef, "alert.create_time < '2015-05-03 1:59:09'", 0, 1); test_criteria(idmef, "alert.create_time > '2015-05-03 1:59:09'", 0, 0); test_criteria(idmef, "alert.create_time <= '2015-05-03 1:59:09'", 0, 1); test_criteria(idmef, "alert.create_time >= '2015-05-03 1:59:09'", 0, 0); /* * Broken down time check */ assert(idmef_time_set_from_string(ctime, "2015-05-04 00:00:00+00:00") == 0); test_criteria(idmef, "alert.create_time == 'month:may mday:3'", 0, 0); test_criteria(idmef, "alert.create_time != 'month:may mday:3'", 0, 1); test_criteria(idmef, "alert.create_time < 'month:may mday:3'", 0, 0); test_criteria(idmef, "alert.create_time > 'month:may mday:3'", 0, 1); test_criteria(idmef, "alert.create_time <= 'month:may mday:3'", 0, 0); test_criteria(idmef, "alert.create_time >= 'month:may mday:3'", 0, 1); test_criteria(idmef, "alert.create_time == 'month:may mday:4'", 0, 1); test_criteria(idmef, "alert.create_time != 'month:may mday:4'", 0, 0); test_criteria(idmef, "alert.create_time < 'month:may mday:4'", 0, 0); test_criteria(idmef, "alert.create_time > 'month:may mday:4'", 0, 0); test_criteria(idmef, "alert.create_time <= 'month:may mday:4'", 0, 1); test_criteria(idmef, "alert.create_time >= 'month:may mday:4'", 0, 1); test_criteria(idmef, "alert.create_time == 'month:may mday:5'", 0, 0); test_criteria(idmef, "alert.create_time != 'month:may mday:5'", 0, 1); test_criteria(idmef, "alert.create_time < 'month:may mday:5'", 0, 1); test_criteria(idmef, "alert.create_time > 'month:may mday:5'", 0, 0); test_criteria(idmef, "alert.create_time <= 'month:may mday:5'", 0, 1); test_criteria(idmef, "alert.create_time >= 'month:may mday:5'", 0, 0); /* * Broken down time special wday/yday fields */ test_criteria(idmef, "alert.create_time == 'wday:monday'", 0, 1); test_criteria(idmef, "alert.create_time != 'wday:monday'", 0, 0); test_criteria(idmef, "alert.create_time == 'wday:tuesday'", 0, 0); test_criteria(idmef, "alert.create_time != 'wday:tuesday'", 0, 1); test_criteria(idmef, "alert.create_time == 'wday:monday mday:3'", 0, 0); test_criteria(idmef, "alert.create_time != 'wday:monday mday:3'", 0, 1); test_criteria(idmef, "alert.create_time < 'wday:monday mday:3'", 0, 0); test_criteria(idmef, "alert.create_time > 'wday:monday mday:3'", 0, 1); test_criteria(idmef, "alert.create_time <= 'wday:monday mday:3'", 0, 0); test_criteria(idmef, "alert.create_time >= 'wday:monday mday:3'", 0, 1); test_criteria(idmef, "alert.create_time == 'wday:monday mday:4'", 0, 1); test_criteria(idmef, "alert.create_time != 'wday:monday mday:4'", 0, 0); test_criteria(idmef, "alert.create_time < 'wday:monday mday:4'", 0, 0); test_criteria(idmef, "alert.create_time > 'wday:monday mday:4'", 0, 0); test_criteria(idmef, "alert.create_time <= 'wday:monday mday:4'", 0, 1); test_criteria(idmef, "alert.create_time >= 'wday:monday mday:4'", 0, 1); test_criteria(idmef, "alert.create_time == 'wday:monday mday:5'", 0, 0); test_criteria(idmef, "alert.create_time != 'wday:monday mday:5'", 0, 1); test_criteria(idmef, "alert.create_time < 'wday:monday mday:5'", 0, 1); test_criteria(idmef, "alert.create_time > 'wday:monday mday:5'", 0, 0); test_criteria(idmef, "alert.create_time <= 'wday:monday mday:5'", 0, 1); test_criteria(idmef, "alert.create_time >= 'wday:monday mday:5'", 0, 0); /* * Test on listed object without specific index */ test_criteria(idmef, "alert.analyzer(*).name == 'A'", 0, 1); test_criteria(idmef, "alert.analyzer(*).name != 'A'", 0, 0); test_criteria(idmef, "alert.analyzer(*).name == 'NOT EXIST'", 0, 0); test_criteria(idmef, "alert.analyzer(*).name != 'NOT EXIST'", 0, 1); test_criteria(idmef, "alert.analyzer(*).ostype == 'C'", 0, 1); test_criteria(idmef, "alert.analyzer(*).ostype != 'C'", 0, 0); test_criteria(idmef, "alert.analyzer(*).ostype == 'NOT EXIST'", 0, 0); test_criteria(idmef, "alert.analyzer(*).ostype != 'NOT EXIST'", 0, 1); test_criteria(idmef, "alert.analyzer(*).class", 0, 0); test_criteria(idmef, "! alert.analyzer(*).class", 0, 1); test_criteria(idmef, "alert.analyzer(*).name", 0, 1); test_criteria(idmef, "! alert.analyzer(*).name", 0, 0); test_criteria(idmef, "alert.analyzer(*).ostype", 0, 1); test_criteria(idmef, "! alert.analyzer(*).ostype", 0, 0); test_criteria(idmef, "alert.source(*).interface", 0, 0); test_criteria(idmef, "! alert.source(*).interface", 0, 1); test_criteria(idmef, "alert.source", 0, 0); test_criteria(idmef, "! alert.source", 0, 1); test_criteria(idmef, "alert.analyzer", 0, 1); test_criteria(idmef, "! alert.analyzer", 0, 0); test_criteria(idmef, "alert.analyzer(*).process.arg", 0, 1); test_criteria(idmef, "! alert.analyzer(*).process.arg", 0, 0); test_criteria(idmef, "alert.analyzer(*).process.arg == 'a0'", 0, 1); test_criteria(idmef, "alert.analyzer(*).process.arg != 'a0'", 0, 0); test_criteria(idmef, "alert.analyzer(*).process.arg == 'NOT EXIST'", 0, 0); test_criteria(idmef, "alert.analyzer(*).process.arg != 'NOT EXIST'", 0, 1); idmef_message_destroy(idmef); exit(0); } libprelude-5.2.0/tests/PaxHeaders.14770/idmef-message-helper.c0000644000000000000000000000011013726163410022134 xustar000000000000000024 mtime=1599661832.708 24 atime=1599661832.794 24 ctime=1599662000.956 libprelude-5.2.0/tests/idmef-message-helper.c0000644000000000000000000000267713726163410021153 0ustar00rootroot00000000000000#include "config.h" #include #include #include #include "prelude.h" #define FLOAT_TOLERANCE 0.0001 #ifndef ABS # define ABS(x) (((x) < 0) ? -(x) : (x)) #endif #ifndef MAX # define MAX(x, y) ((x) > (y) ? (x) : (y)) #endif static double reldif(double a, double b) { double c = ABS(a); double d = ABS(b); d = MAX(c, d); return d == 0.0 ? 0.0 : ABS(a - b) / d; } int main(void) { char *res; double resd; idmef_message_t *idmef; assert(idmef_message_new(&idmef) == 0); assert(idmef_message_set_string(idmef, "alert.classification.text", "Random value") == 0); assert(idmef_message_get_string(idmef, "alert.classification.text", &res) > 0); assert(strcmp("Random value", res) == 0); free(res); assert(idmef_message_set_string(idmef, "alert.assessment.impact.severity", "high") == 0); assert(idmef_message_get_string(idmef, "alert.assessment.impact.severity", &res) > 0); assert(strcmp("high", res) == 0); free(res); assert(idmef_message_set_number(idmef, "alert.assessment.confidence.confidence", 10.2) == 0); assert(idmef_message_get_number(idmef, "alert.assessment.confidence.confidence", &resd) == 1); assert(reldif(resd, 10.2) <= FLOAT_TOLERANCE); assert(idmef_message_set_string(idmef, "alert.assessment.impact.severity", "Random value") < 0); exit(0); } libprelude-5.2.0/tests/PaxHeaders.14770/idmef-path.c0000644000000000000000000000011013726163410020167 xustar000000000000000024 mtime=1599661832.708 24 atime=1599661832.794 24 ctime=1599662000.958 libprelude-5.2.0/tests/idmef-path.c0000644000000000000000000000652613726163410017203 0ustar00rootroot00000000000000#include "config.h" #include #include #include #include "prelude.h" static void set_value_check(idmef_message_t *idmef, const char *paths, const char *str_value, prelude_bool_t verify_get) { idmef_path_t *path; idmef_value_t *value; prelude_string_t *str; prelude_string_t *res; assert(idmef_path_new_fast(&path, paths) == 0); assert(prelude_string_new_ref(&str, str_value) == 0); assert(idmef_value_new_string(&value, str) == 0); if ( verify_get ) assert(idmef_path_set(path, idmef, value) == 0); else assert(idmef_path_set(path, idmef, value) < 0); idmef_value_destroy(value); if ( ! verify_get ) { idmef_path_destroy(path); return; } assert(idmef_path_get(path, idmef, &value) > 0); assert(prelude_string_new(&res) == 0); assert(idmef_value_to_string(value, res) >= 0); assert(strcmp(str_value, prelude_string_get_string(res)) == 0); prelude_string_destroy(res); idmef_value_destroy(value); idmef_path_destroy(path); } int main(void) { int i, ret; idmef_value_t *value; idmef_path_t *path; idmef_message_t *idmef; struct { const char *path; int depth; prelude_bool_t has_list; prelude_bool_t ambiguous; prelude_bool_t successful; } plist[] = { { "alert.classification.text", 3, FALSE, FALSE, TRUE }, { "alert.assessment.impact.severity", 4, FALSE, FALSE, TRUE }, { "alert.source.node.name", 4, TRUE, TRUE, TRUE }, { "alert.target(0).node.name", 4, TRUE, FALSE, TRUE }, { "alert.invalid.path", 0, FALSE, FALSE, FALSE } }; assert(idmef_message_new(&idmef) == 0); for ( i = 0; i < sizeof(plist) / sizeof(*plist); i++ ) { ret = idmef_path_new_fast(&path, plist[i].path); assert((plist[i].successful == TRUE && ret == 0) || (plist[i].successful == FALSE && ret < 0)); if ( ret < 0 ) continue; assert(strcmp(plist[i].path, idmef_path_get_name(path, -1)) == 0); assert(idmef_path_get_depth(path) == plist[i].depth); assert(idmef_path_has_lists(path) == plist[i].has_list); assert(idmef_path_is_ambiguous(path) == plist[i].ambiguous); if ( plist[i].ambiguous ) { idmef_path_destroy(path); continue; } /* * Check whether setting NULL value work. */ ret = idmef_path_set(path, idmef, NULL); assert(ret == 0); ret = idmef_path_get(path, idmef, &value); assert(ret == 0); /* empty value */ idmef_path_destroy(path); } set_value_check(idmef, "alert.classification.text", "Random value", TRUE); set_value_check(idmef, "alert.assessment.impact.severity", "high", TRUE); set_value_check(idmef, "alert.assessment.impact.severity", "Invalid enumeration", FALSE); idmef_message_destroy(idmef); exit(0); } libprelude-5.2.0/tests/PaxHeaders.14770/idmef-value.c0000644000000000000000000000010713726163410020355 xustar000000000000000024 mtime=1599661832.708 24 atime=1599661832.794 23 ctime=1599662000.96 libprelude-5.2.0/tests/idmef-value.c0000644000000000000000000002311713726163410017356 0ustar00rootroot00000000000000#include "config.h" #include #include #include #include "prelude.h" static void cast_data(idmef_value_t *value) { assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT8, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT8, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT16, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT16, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT32, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT32, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT64, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT64, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_FLOAT, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_DOUBLE, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_TIME, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_ENUM, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_LIST, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_CLASS, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_STRING, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_STRING); } static void cast_int8(void) { idmef_value_t *value; assert(idmef_value_new_int8(&value, INT8_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT8, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT16, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT32, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT64, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT16, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_INT16); assert(idmef_value_get_int16(value) == INT8_MIN); idmef_value_destroy(value); assert(idmef_value_new_int8(&value, INT8_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT32, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_INT32); assert(idmef_value_get_int32(value) == INT8_MIN); idmef_value_destroy(value); assert(idmef_value_new_int8(&value, INT8_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT64, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_INT64); assert(idmef_value_get_int64(value) == INT8_MIN); idmef_value_destroy(value); assert(idmef_value_new_int8(&value, INT8_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_FLOAT, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_FLOAT); assert(idmef_value_get_float(value) == INT8_MIN); idmef_value_destroy(value); assert(idmef_value_new_int8(&value, INT8_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_DOUBLE, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_DOUBLE); assert(idmef_value_get_double(value) == INT8_MIN); idmef_value_destroy(value); assert(idmef_value_new_int8(&value, INT8_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_DATA, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_DATA); assert((int) idmef_data_get_uint32(idmef_value_get_data(value)) == INT8_MIN); idmef_value_destroy(value); } static void cast_int16(void) { idmef_value_t *value; assert(idmef_value_new_int16(&value, INT16_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT8, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT8, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT16, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT32, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT64, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT32, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_INT32); assert(idmef_value_get_int32(value) == INT16_MIN); idmef_value_destroy(value); assert(idmef_value_new_int16(&value, INT16_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT64, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_INT64); assert(idmef_value_get_int64(value) == INT16_MIN); idmef_value_destroy(value); assert(idmef_value_new_int16(&value, INT16_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_FLOAT, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_FLOAT); assert(idmef_value_get_float(value) == INT16_MIN); idmef_value_destroy(value); assert(idmef_value_new_int16(&value, INT16_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_DOUBLE, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_DOUBLE); assert(idmef_value_get_double(value) == INT16_MIN); idmef_value_destroy(value); assert(idmef_value_new_int16(&value, INT16_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_DATA, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_DATA); assert((int) idmef_data_get_uint32(idmef_value_get_data(value)) == INT16_MIN); idmef_value_destroy(value); } static void cast_int32(void) { idmef_value_t *value; assert(idmef_value_new_int32(&value, INT32_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT8, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT16, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT8, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT16, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT32, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT64, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT64, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_INT64); assert(idmef_value_get_int64(value) == INT32_MIN); idmef_value_destroy(value); assert(idmef_value_new_int32(&value, INT32_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_FLOAT, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_FLOAT); assert(idmef_value_get_float(value) == INT32_MIN); idmef_value_destroy(value); assert(idmef_value_new_int32(&value, INT32_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_DOUBLE, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_DOUBLE); assert(idmef_value_get_double(value) == INT32_MIN); idmef_value_destroy(value); assert(idmef_value_new_int32(&value, INT32_MIN) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_DATA, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_DATA); assert((int) idmef_data_get_uint32(idmef_value_get_data(value)) == INT32_MIN); idmef_value_destroy(value); assert(idmef_value_new_int32(&value, INT32_MAX) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_TIME, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_TIME); assert(idmef_time_get_sec(idmef_value_get_time(value)) == INT32_MAX); idmef_value_destroy(value); } static void cast_string(void) { idmef_data_t *data; idmef_value_t *value; prelude_string_t *str; assert(prelude_string_new_ref(&str, "abcdefgh") == 0); assert(idmef_value_new_string(&value, str) == 0); idmef_value_dont_have_own_data(value); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT8, -1) < 0); // assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT8, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT16, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT16, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT32, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT32, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_INT64, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_UINT64, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_FLOAT, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_DOUBLE, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_TIME, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_ENUM, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_LIST, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_CLASS, -1) < 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_DATA, -1) == 0); assert(idmef_value_get_type(value) == IDMEF_VALUE_TYPE_DATA); assert(data = idmef_value_get_data(value)); assert(idmef_data_get_len(data) == (prelude_string_get_len(str) + 1)); assert(memcmp(prelude_string_get_string(str), idmef_data_get_data(data), idmef_data_get_len(data)) == 0); prelude_string_destroy(str); cast_data(value); idmef_value_destroy(value); assert(prelude_string_new_ref(&str, "2008-01-01 20:42:31") == 0); assert(idmef_value_new_string(&value, str) == 0); assert(_idmef_value_cast(value, IDMEF_VALUE_TYPE_TIME, -1) == 0); idmef_value_destroy(value); } int main(void) { cast_int8(); cast_int16(); cast_int32(); cast_string(); exit(0); } libprelude-5.2.0/tests/PaxHeaders.14770/prelude-client.c0000644000000000000000000000011013726163410021065 xustar000000000000000024 mtime=1599661832.708 24 atime=1599661832.794 24 ctime=1599662000.961 libprelude-5.2.0/tests/prelude-client.c0000644000000000000000000000107213726163410020070 0ustar00rootroot00000000000000#include "config.h" #include #include #include #include "prelude.h" int main(int argc, char **argv) { int ret; prelude_client_t *client; assert(prelude_init(&argc, argv) == 0); assert(prelude_client_new(&client, "Client that does not exist") == 0); assert((ret = prelude_client_start(client)) < 0); assert(prelude_error_get_code(ret) == PRELUDE_ERROR_PROFILE); prelude_client_destroy(client, PRELUDE_CLIENT_EXIT_STATUS_FAILURE); prelude_deinit(); return 0; } libprelude-5.2.0/tests/PaxHeaders.14770/prelude-string.c0000644000000000000000000000011013726163410021115 xustar000000000000000024 mtime=1599661832.708 24 atime=1599661832.794 24 ctime=1599662000.963 libprelude-5.2.0/tests/prelude-string.c0000644000000000000000000000166513726163410020130 0ustar00rootroot00000000000000#include "config.h" #include #include #include "prelude.h" #define TEST_COUNT 10 #define TEST_STR "abcdefghijklmnopqrstuvwxyz" static void create_str(prelude_string_t **str) { size_t i; assert(prelude_string_new(str) == 0); assert(prelude_string_is_empty(*str) == TRUE); for ( i = 0; i < TEST_COUNT; i++ ) { assert(prelude_string_cat(*str, TEST_STR) >= 0); } assert(prelude_string_get_len(*str) == (TEST_COUNT * (sizeof(TEST_STR) - 1))); } int main(void) { prelude_string_t *str1, *str2; create_str(&str1); assert(prelude_string_clone(str1, &str2) == 0); assert(prelude_string_compare(str1, str2) == 0); assert(prelude_string_cat(str2, "won't match") >= 0); assert(prelude_string_compare(str1, str2) != 0); prelude_string_destroy(str1); prelude_string_destroy(str2); exit(0); } libprelude-5.2.0/tests/PaxHeaders.14770/prelude-timer.c0000644000000000000000000000011013726163410020727 xustar000000000000000024 mtime=1599661832.709 24 atime=1599661832.794 24 ctime=1599662000.965 libprelude-5.2.0/tests/prelude-timer.c0000644000000000000000000000442213726163410017734 0ustar00rootroot00000000000000#include "config.h" #include #include #include #include "prelude.h" #ifndef MAX # define MAX(x, y) ((x) > (y) ? (x) : (y)) #endif typedef struct { prelude_timer_t timer; time_t start_time; } test_timer_t; static unsigned int timer_alive = 0; static unsigned int get_random_expire(unsigned int min, unsigned int max) { return rand() % (max - min) + min; } static void timer_callback(void *data) { test_timer_t *timer = data; unsigned int elapsed = time(NULL) - timer->start_time; assert(elapsed == prelude_timer_get_expire(&timer->timer)); prelude_timer_destroy(&timer->timer); free(timer); timer_alive--; } int main(int argc, char **argv) { int ret; time_t start; test_timer_t *timer; unsigned int i, expire, max_expire = 0; prelude_init(NULL, NULL); start = time(NULL); /* * Create a bunch of timer for the first 3 seconds. */ i = 100; while ( i-- ) { timer = malloc(sizeof(*timer)); if ( ! timer ) exit(1); expire = get_random_expire(1, 60); max_expire = MAX(max_expire, expire); prelude_timer_set_callback(&timer->timer, timer_callback); prelude_timer_set_data(&timer->timer, timer); prelude_timer_set_expire(&timer->timer, expire); prelude_timer_init(&timer->timer); timer->start_time = timer->timer.start_time; timer_alive++; if ( time(NULL) - start >= 1 ) break; } printf("DONE initializing tmer_alive=%d max_expire=%u\n", timer_alive, max_expire); unsigned int prev_timer_alive = timer_alive; for ( i = 0; i <= max_expire && timer_alive; i++ ) { ret = prelude_timer_wake_up(); printf("%u timer woke up, %u remaining, next wake up in %d seconds.\n", prev_timer_alive - timer_alive, timer_alive, ret); prev_timer_alive = timer_alive; if ( ret ) sleep(ret); } assert(timer_alive == 0); prelude_deinit(); return 0; }

idmef-value

idmef-value

Functions

int idmef_value_new_int8 ()
int idmef_value_new_uint8 ()
int idmef_value_new_int16 ()
int idmef_value_new_uint16 ()
int idmef_value_new_int32 ()
int idmef_value_new_uint32 ()
int idmef_value_new_int64 ()
int idmef_value_new_uint64 ()
int idmef_value_new_float ()
int idmef_value_new_double ()
int idmef_value_new_string ()
int idmef_value_new_time ()
int idmef_value_new_data ()
int idmef_value_new_class ()
int idmef_value_new_list ()
int idmef_value_new_enum ()
int idmef_value_new_enum_from_string ()
int idmef_value_new_enum_from_numeric ()
int idmef_value_new ()
int idmef_value_new_from_path ()
int idmef_value_new_from_string ()
int idmef_value_set_class ()
int idmef_value_set_data ()
int idmef_value_set_double ()
int idmef_value_set_enum ()
int idmef_value_set_enum_from_numeric ()
int idmef_value_set_enum_from_string ()
int idmef_value_set_float ()
int idmef_value_set_int16 ()
int idmef_value_set_int32 ()
int idmef_value_set_int64 ()
int idmef_value_set_int8 ()
int idmef_value_set_string ()
int idmef_value_set_time ()
int idmef_value_set_uint16 ()
int idmef_value_set_uint32 ()
int idmef_value_set_uint64 ()
int idmef_value_set_uint8 ()
int8_t idmef_value_get_int8 ()
uint8_t idmef_value_get_uint8 ()
int16_t idmef_value_get_int16 ()
uint16_t idmef_value_get_uint16 ()
int32_t idmef_value_get_int32 ()
uint32_t idmef_value_get_uint32 ()
int64_t idmef_value_get_int64 ()
uint64_t idmef_value_get_uint64 ()
int idmef_value_get_enum ()
float idmef_value_get_float ()
double idmef_value_get_double ()
idmef_time_t * idmef_value_get_time ()
idmef_data_t * idmef_value_get_data ()
prelude_string_t * idmef_value_get_string ()
int idmef_value_list_add ()
prelude_bool_t idmef_value_is_list ()
prelude_bool_t idmef_value_list_is_empty ()
int idmef_value_have_own_data ()
int idmef_value_dont_have_own_data ()
idmef_value_type_id_t idmef_value_get_type ()
idmef_class_id_t idmef_value_get_class ()
void * idmef_value_get_object ()
int idmef_value_iterate ()
int idmef_value_iterate_reversed ()
idmef_value_t * idmef_value_get_nth ()
int idmef_value_get_count ()
int idmef_value_clone ()
idmef_value_t * idmef_value_ref ()
int idmef_value_print ()
int idmef_value_to_string ()
int idmef_value_get ()
int idmef_value_match ()
int idmef_value_check_operator ()
int idmef_value_get_applicable_operators ()
void idmef_value_destroy ()

Types and Values

typedef idmef_value_t

Description

Functions

idmef_value_new_int8 ()

int
idmef_value_new_int8 (idmef_value_t **value,
                      int8_t val);

idmef_value_new_uint8 ()

int
idmef_value_new_uint8 (idmef_value_t **value,
                       uint8_t val);

idmef_value_new_int16 ()

int
idmef_value_new_int16 (idmef_value_t **value,
                       int16_t val);

idmef_value_new_uint16 ()

int
idmef_value_new_uint16 (idmef_value_t **value,
                        uint16_t val);

idmef_value_new_int32 ()

int
idmef_value_new_int32 (idmef_value_t **value,
                       int32_t val);

idmef_value_new_uint32 ()

int
idmef_value_new_uint32 (idmef_value_t **value,
                        uint32_t val);

idmef_value_new_int64 ()

int
idmef_value_new_int64 (idmef_value_t **value,
                       int64_t val);

idmef_value_new_uint64 ()

int
idmef_value_new_uint64 (idmef_value_t **value,
                        uint64_t val);

idmef_value_new_float ()

int
idmef_value_new_float (idmef_value_t **value,
                       float val);

idmef_value_new_double ()

int
idmef_value_new_double (idmef_value_t **value,
                        double val);

idmef_value_new_string ()

int
idmef_value_new_string (idmef_value_t **value,
                        prelude_string_t *string);

idmef_value_new_time ()

int
idmef_value_new_time (idmef_value_t **value,
                      idmef_time_t *time);

idmef_value_new_data ()

int
idmef_value_new_data (idmef_value_t **value,
                      idmef_data_t *data);

idmef_value_new_class ()

int
idmef_value_new_class (idmef_value_t **value,
                       idmef_class_id_t classid,
                       void *ptr);

idmef_value_new_list ()

int
idmef_value_new_list (idmef_value_t **value);

idmef_value_new_enum ()

int
idmef_value_new_enum (idmef_value_t **value,
                      idmef_class_id_t classid,
                      const char *buf);

idmef_value_new_enum_from_string ()

int
idmef_value_new_enum_from_string (idmef_value_t **value,
                                  idmef_class_id_t classid,
                                  const char *buf);

idmef_value_new_enum_from_numeric ()

int
idmef_value_new_enum_from_numeric (idmef_value_t **value,
                                   idmef_class_id_t classid,
                                   int val);

idmef_value_new ()

int
idmef_value_new (idmef_value_t **value,
                 idmef_value_type_id_t type,
                 void *ptr);

idmef_value_new_from_path ()

int
idmef_value_new_from_path (idmef_value_t **value,
                           idmef_path_t *path,
                           const char *buf);

idmef_value_new_from_string ()

int
idmef_value_new_from_string (idmef_value_t **value,
                             idmef_value_type_id_t type,
                             const char *buf);

idmef_value_set_class ()

int
idmef_value_set_class (idmef_value_t *value,
                       idmef_class_id_t classid,
                       void *ptr);

idmef_value_set_data ()

int
idmef_value_set_data (idmef_value_t *value,
                      idmef_data_t *data);

idmef_value_set_double ()

int
idmef_value_set_double (idmef_value_t *value,
                        double val);

idmef_value_set_enum ()

int
idmef_value_set_enum (idmef_value_t *value,
                      idmef_class_id_t classid,
                      const char *buf);

idmef_value_set_enum_from_numeric ()

int
idmef_value_set_enum_from_numeric (idmef_value_t *value,
                                   idmef_class_id_t classid,
                                   int no);

idmef_value_set_enum_from_string ()

int
idmef_value_set_enum_from_string (idmef_value_t *value,
                                  idmef_class_id_t classid,
                                  const char *buf);

idmef_value_set_float ()

int
idmef_value_set_float (idmef_value_t *value,
                       float val);

idmef_value_set_int16 ()

int
idmef_value_set_int16 (idmef_value_t *value,
                       int16_t val);

idmef_value_set_int32 ()

int
idmef_value_set_int32 (idmef_value_t *value,
                       int32_t val);

idmef_value_set_int64 ()

int
idmef_value_set_int64 (idmef_value_t *value,
                       int64_t val);

idmef_value_set_int8 ()

int
idmef_value_set_int8 (idmef_value_t *value,
                      int8_t val);

idmef_value_set_string ()

int
idmef_value_set_string (idmef_value_t *value,
                        prelude_string_t *string);

idmef_value_set_time ()

int
idmef_value_set_time (idmef_value_t *value,
                      idmef_time_t *time);

idmef_value_set_uint16 ()

int
idmef_value_set_uint16 (idmef_value_t *value,
                        uint16_t val);

idmef_value_set_uint32 ()

int
idmef_value_set_uint32 (idmef_value_t *value,
                        uint32_t val);

idmef_value_set_uint64 ()

int
idmef_value_set_uint64 (idmef_value_t *value,
                        uint64_t val);

idmef_value_set_uint8 ()

int
idmef_value_set_uint8 (idmef_value_t *value,
                       uint8_t val);

idmef_value_get_int8 ()

int8_t
idmef_value_get_int8 (const idmef_value_t *val);

idmef_value_get_uint8 ()

uint8_t
idmef_value_get_uint8 (const idmef_value_t *val);

idmef_value_get_int16 ()

int16_t
idmef_value_get_int16 (const idmef_value_t *val);

idmef_value_get_uint16 ()

uint16_t
idmef_value_get_uint16 (const idmef_value_t *val);

idmef_value_get_int32 ()

int32_t
idmef_value_get_int32 (const idmef_value_t *val);

idmef_value_get_uint32 ()

uint32_t
idmef_value_get_uint32 (const idmef_value_t *val);

idmef_value_get_int64 ()

int64_t
idmef_value_get_int64 (const idmef_value_t *val);

idmef_value_get_uint64 ()

uint64_t
idmef_value_get_uint64 (const idmef_value_t *val);

idmef_value_get_enum ()

int
idmef_value_get_enum (const idmef_value_t *val);

idmef_value_get_float ()

float
idmef_value_get_float (const idmef_value_t *val);

idmef_value_get_double ()

double
idmef_value_get_double (const idmef_value_t *val);

idmef_value_get_time ()

idmef_time_t *
idmef_value_get_time (const idmef_value_t *val);

idmef_value_get_data ()

idmef_data_t *
idmef_value_get_data (const idmef_value_t *val);

idmef_value_get_string ()

prelude_string_t *
idmef_value_get_string (const idmef_value_t *val);

idmef_value_list_add ()

int
idmef_value_list_add (idmef_value_t *list,
                      idmef_value_t *item);

idmef_value_is_list ()

prelude_bool_t
idmef_value_is_list (const idmef_value_t *list);

idmef_value_list_is_empty ()

prelude_bool_t
idmef_value_list_is_empty (const idmef_value_t *list);

idmef_value_have_own_data ()

int
idmef_value_have_own_data (idmef_value_t *value);

idmef_value_dont_have_own_data ()

int
idmef_value_dont_have_own_data (idmef_value_t *value);

idmef_value_get_type ()

idmef_value_type_id_t
idmef_value_get_type (const idmef_value_t *value);

idmef_value_get_class ()

idmef_class_id_t
idmef_value_get_class (const idmef_value_t *value);

idmef_value_get_object ()

void *
idmef_value_get_object (const idmef_value_t *value);

idmef_value_iterate ()

int
idmef_value_iterate (const idmef_value_t *value,
                     int (*callback) (idmef_value_t *ptr, void *extra),
                     void *extra);

idmef_value_iterate_reversed ()

int
idmef_value_iterate_reversed (const idmef_value_t *value,
                              int (*callback) (idmef_value_t *ptr, void *extra),
                              void *extra);

idmef_value_get_nth ()

idmef_value_t *
idmef_value_get_nth (const idmef_value_t *val,
                     int n);

idmef_value_get_count ()

int
idmef_value_get_count (const idmef_value_t *val);

idmef_value_clone ()

int
idmef_value_clone (const idmef_value_t *val,
                   idmef_value_t **dst);

idmef_value_ref ()

idmef_value_t *
idmef_value_ref (idmef_value_t *val);

idmef_value_print ()

int
idmef_value_print (const idmef_value_t *val,
                   prelude_io_t *fd);

idmef_value_to_string ()

int
idmef_value_to_string (const idmef_value_t *value,
                       prelude_string_t *out);

idmef_value_get ()

int
idmef_value_get (const idmef_value_t *val,
                 void *res);

idmef_value_match ()

int
idmef_value_match (idmef_value_t *val1,
                   idmef_value_t *val2,
                   idmef_criterion_operator_t op);

Match val1 and val2 using op .

Parameters

val1

Pointer to a idmef_value_t object.

 

val2

Pointer to a idmef_value_t object.

 

op

operator to use for matching.

 

Returns

the number of match, 0 for none, a negative value if an error occured.


idmef_value_check_operator ()

int
idmef_value_check_operator (const idmef_value_t *value,
                            idmef_criterion_operator_t op);

Check whether op can apply to value .

Parameters

value

Pointer to a idmef_value_t object.

 

op

Type of operator to check value for.

 

Returns

0 on success, a negative value if an error occured.


idmef_value_get_applicable_operators ()

int
idmef_value_get_applicable_operators (const idmef_value_t *value,
                                      idmef_criterion_operator_t *result);

Store all operator supported by value in result .

Parameters

value

Pointer to a idmef_value_t object.

 

result

Pointer where the result will be stored.

 

Returns

0 on success, a negative value if an error occured.


idmef_value_destroy ()

void
idmef_value_destroy (idmef_value_t *val);

Decrement refcount and destroy value if it reach 0.

Parameters

val

Pointer to a idmef_value_t object.

 

Types and Values

idmef_value_t

typedef struct idmef_value idmef_value_t;